Skip to content

Commit f221790

Browse files
Merge branch 'main' into feat/z_fitting_by_vectormap
2 parents 6c78842 + 7e53f30 commit f221790

File tree

16 files changed

+135
-73
lines changed

16 files changed

+135
-73
lines changed

control/joy_controller/config/joy_controller.param.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
/**:
22
ros__parameters:
3-
joy_type: DS4
3+
joy_type: $(var joy_type)
44
update_rate: 10.0
55
accel_ratio: 3.0
66
brake_ratio: 5.0

control/joy_controller/launch/joy_controller.launch.xml

+1-2
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@
3030
<remap from="service/emergency_stop" to="/api/autoware/set/emergency"/>
3131
<remap from="service/autoware_engage" to="/api/autoware/set/engage"/>
3232

33-
<param from="$(var config_file)"/>
34-
<param name="joy_type" value="$(var joy_type)"/>
33+
<param from="$(var config_file)" allow_substs="true"/>
3534
</node>
3635

3736
<node pkg="joy" exec="joy_node" name="joy_node" output="screen">

control/trajectory_follower_node/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,5 @@ ament_auto_package(
6262
param
6363
test
6464
launch
65+
config
6566
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
/**:
2+
ros__parameters:
3+
use_external_target_vel: $(var use_external_target_vel)
4+
external_target_vel: $(var external_target_vel)
5+
lateral_deviation: $(var lateral_deviation)

control/trajectory_follower_node/launch/simple_trajectory_follower.launch.xml

+1-3
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,7 @@
55

66
<!-- engage_transition_manager -->
77
<node pkg="trajectory_follower_node" exec="simple_trajectory_follower_exe" name="simple_trajectory_follower" output="screen">
8-
<param name="use_external_target_vel" value="$(var use_external_target_vel)"/>
9-
<param name="external_target_vel" value="$(var external_target_vel)"/>
10-
<param name="lateral_deviation" value="$(var lateral_deviation)"/>
8+
<param from="$(find-pkg-share trajectory_follower_node)/config/simple_trajectory_follower.param.yaml" allow_substs="true"/>
119

1210
<remap from="input/kinematics" to="/localization/kinematic_state"/>
1311
<remap from="input/trajectory" to="/planning/scenario_planning/trajectory"/>

control/vehicle_cmd_gate/config/vehicle_cmd_gate.param.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
update_rate: 10.0
44
system_emergency_heartbeat_timeout: 0.5
55
use_emergency_handling: false
6-
check_external_emergency_heartbeat: false
6+
check_external_emergency_heartbeat: $(var check_external_emergency_heartbeat)
77
use_start_request: false
88
enable_cmd_limit_filter: true
99
filter_activated_count_threshold: 5

control/vehicle_cmd_gate/launch/vehicle_cmd_gate.launch.xml

+1-6
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
<launch>
22
<arg name="config_file" default="$(find-pkg-share vehicle_cmd_gate)/config/vehicle_cmd_gate.param.yaml"/>
3-
<arg name="use_emergency_handling" default="false"/>
43
<arg name="check_external_emergency_heartbeat" default="true"/>
5-
<arg name="use_start_request" default="false"/>
64

75
<!-- vehicle info -->
86
<arg name="vehicle_info_param_file" default="$(find-pkg-share vehicle_info_util)/config/vehicle_info.param.yaml"/>
@@ -44,10 +42,7 @@
4442
<remap from="~/service/external_emergency_stop" to="~/external_emergency_stop"/>
4543
<remap from="~/service/clear_external_emergency_stop" to="~/clear_external_emergency_stop"/>
4644

47-
<param from="$(var config_file)"/>
45+
<param from="$(var config_file)" allow_substs="true"/>
4846
<param from="$(var vehicle_info_param_file)"/>
49-
<param name="use_emergency_handling" value="$(var use_emergency_handling)"/>
50-
<param name="check_external_emergency_heartbeat" value="$(var check_external_emergency_heartbeat)"/>
51-
<param name="use_start_request" value="$(var use_start_request)"/>
5247
</node>
5348
</launch>

control/vehicle_cmd_gate/test/src/test_filter_in_vehicle_cmd_gate_node.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -331,6 +331,9 @@ std::shared_ptr<VehicleCmdGate> generateNode()
331331
{"--ros-args", "--params-file", vehicle_cmd_gate_dir + "/config/vehicle_cmd_gate.param.yaml",
332332
"--ros-args", "--params-file", vehicle_info_util_dir + "/config/vehicle_info.param.yaml"});
333333

334+
node_options.append_parameter_override(
335+
"check_external_emergency_heartbeat", true); // This parameter has to be set when launching.
336+
334337
const auto override = [&](const auto s, const std::vector<double> v) {
335338
node_options.append_parameter_override<std::vector<double>>(s, v);
336339
};

perception/object_range_splitter/src/node.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ ObjectRangeSplitterNode::ObjectRangeSplitterNode(const rclcpp::NodeOptions & nod
2020
: Node("object_range_splitter_node", node_options)
2121
{
2222
using std::placeholders::_1;
23-
spilt_range_ = declare_parameter("split_range", 30.0);
23+
spilt_range_ = declare_parameter<double>("split_range");
2424
sub_ = this->create_subscription<autoware_auto_perception_msgs::msg::DetectedObjects>(
2525
"input/object", rclcpp::QoS{1}, std::bind(&ObjectRangeSplitterNode::objectCallback, this, _1));
2626
long_range_object_pub_ =

perception/object_velocity_splitter/README.md

+15-13
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@
33
This package contains a object filter module for [autoware_auto_perception_msgs/msg/DetectedObject](https://gitlab.com/autowarefoundation/autoware.auto/autoware_auto_msgs/-/blob/master/autoware_auto_perception_msgs/msg/DetectedObject.idl).
44
This package can split DetectedObjects into two messages by object's speed.
55

6-
## Input
6+
## Interface
77

8-
| Name | Type | Description |
9-
| ----------------- | ----------------------------------------------------- | -------------------- |
10-
| `~/input/objects` | autoware_auto_perception_msgs/msg/DetectedObjects.msg | 3D detected objects. |
8+
### Input
119

12-
## Output
10+
- `~/input/objects` (`autoware_auto_perception_msgs/msg/DetectedObjects.msg`)
11+
- 3D detected objects
1312

14-
| Name | Type | Description |
15-
| ----------------------------- | ----------------------------------------------------- | ----------------------- |
16-
| `~/output/low_speed_objects` | autoware_auto_perception_msgs/msg/DetectedObjects.msg | Objects with low speed |
17-
| `~/output/high_speed_objects` | autoware_auto_perception_msgs/msg/DetectedObjects.msg | Objects with high speed |
13+
### Output
1814

19-
## Parameters
15+
- `~/output/low_speed_objects` (`autoware_auto_perception_msgs/msg/DetectedObjects.msg`)
16+
- Objects with low speed
17+
- `~/output/high_speed_objects` (`autoware_auto_perception_msgs/msg/DetectedObjects.msg`)
18+
- Objects with high speed
2019

21-
| Name | Type | Description | Default value |
22-
| :------------------- | :----- | :-------------------------------------------------- | :------------ |
23-
| `velocity_threshold` | double | Velocity threshold parameter to split objects [m/s] | 3.0 |
20+
### Parameters
21+
22+
- `velocity_threshold` (double) [m/s]
23+
- Default parameter is 3.0
24+
25+
This parameter is velocity threshold to split objects
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,100 @@
11
# radar_fusion_to_detected_object
22

3-
This package contains a sensor fusion module for radar-detected objects and 3D detected objects. The fusion node can:
3+
This package contains a sensor fusion module for radar-detected objects and 3D detected objects.
4+
5+
The fusion node can:
46

57
- Attach velocity to 3D detections when successfully matching radar data. The tracking modules use the velocity information to enhance the tracking results while planning modules use it to execute actions like adaptive cruise control.
68
- Improve the low confidence 3D detections when corresponding radar detections are found.
79

810
![process_low_confidence](docs/radar_fusion_to_detected_object_6.drawio.svg)
911

10-
## Core algorithm
12+
## Design
13+
14+
### Background
15+
16+
This package is the fusion with LiDAR-based 3D detection output and radar data.
17+
LiDAR based 3D detection can estimate position and size of objects with high precision, but it cannot estimate velocity of objects.
18+
Radar data can estimate doppler velocity of objects, but it cannot estimate position and size of objects with high precision
19+
This fusion package is aim to fuse these characteristic data, and to estimate position, size, velocity of objects with high precision.
20+
21+
### Algorithm
1122

1223
The document of core algorithm is [here](docs/algorithm.md)
1324

25+
## Interface for core algorithm
26+
27+
The parameters for core algorithm can be set as `core_params`.
28+
1429
### Parameters for sensor fusion
1530

16-
| Name | Type | Description | Default value |
17-
| :----------------------- | :----- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ |
18-
| bounding_box_margin | double | The distance to extend the 2D bird's-eye view Bounding Box on each side. This distance is used as a threshold to find radar centroids falling inside the extended box. [m] | 2.0 |
19-
| split_threshold_velocity | double | The object's velocity threshold to decide to split for two objects from radar information (currently not implemented) [m/s] | 5.0 |
20-
| threshold_yaw_diff | double | The yaw orientation threshold. If ∣ θ_ob − θ_ra ∣ < threshold × yaw_diff attached to radar information include estimated velocity, where*θob*is yaw angle from 3d detected object,\*θ_ra is yaw angle from radar object. [rad] | 0.35 |
31+
- `bounding_box_margin` (double) [m]
32+
- Default parameter is 2.0.
33+
34+
This parameter is the distance to extend the 2D bird's-eye view bounding box on each side.
35+
This parameter is used as a threshold to find radar centroids falling inside the extended box.
36+
37+
- `split_threshold_velocity` (double) [m/s]
38+
- Default parameter is 5.0.
39+
40+
This parameter is the object's velocity threshold to decide to split for two objects from radar information.
41+
Note that this feature is not currently implemented.
42+
43+
- `threshold_yaw_diff` (double) [rad]
44+
- Default parameter is 0.35.
45+
46+
This parameter is the yaw orientation threshold.
47+
If the difference of yaw degree between from a LiDAR-based detection object and radar velocity, radar information is attached to output objects.
2148

2249
### Weight parameters for velocity estimation
2350

2451
To tune these weight parameters, please see [document](docs/algorithm.md) in detail.
2552

26-
| Name | Type | Description | Default value |
27-
| :----------------------------------- | :----- | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ |
28-
| velocity_weight_average | double | The twist coefficient of average twist of radar data in velocity estimation. | 0.0 |
29-
| velocity_weight_median | double | The twist coefficient of median twist of radar data in velocity estimation. | 0.0 |
30-
| velocity_weight_min_distance | double | The twist coefficient of radar data nearest to the center of bounding box in velocity estimation. | 1.0 |
31-
| velocity_weight_target_value_average | double | The twist coefficient of target value weighted average in velocity estimation. Target value is amplitude if using radar pointcloud. Target value is probability if using radar objects. |
32-
| 0.0 |
33-
| velocity_weight_target_value_top | double | The twist coefficient of top target value radar data in velocity estimation. Target value is amplitude if using radar pointcloud. Target value is probability if using radar objects. | 0.0 |
53+
- `velocity_weight_average` (double)
54+
- Default parameter is 0.0.
55+
56+
This parameter is the twist coefficient of average twist of radar data in velocity estimation.
57+
58+
- `velocity_weight_median` (double)
59+
- Default parameter is 0.0.
60+
61+
This parameter is the twist coefficient of median twist of radar data in velocity estimation.
62+
63+
- `velocity_weight_min_distance` (double)
64+
- Default parameter is 1.0.
65+
66+
This parameter is the twist coefficient of radar data nearest to the center of bounding box in velocity estimation.
67+
68+
- `velocity_weight_target_value_average` (double)
69+
- Default parameter is 0.0.
70+
71+
This parameter is the twist coefficient of target value weighted average in velocity estimation. Target value is amplitude if using radar pointcloud. Target value is probability if using radar objects.
72+
73+
- `velocity_weight_target_value_top` (double)
74+
- Default parameter is 0.0.
75+
76+
This parameter is the twist coefficient of top target value radar data in velocity estimation. Target value is amplitude if using radar pointcloud. Target value is probability if using radar objects.
3477

3578
### Parameters for fixed object information
3679

37-
| Name | Type | Description | Default value |
38-
| :----------------------- | :---- | :----------------------------------------------------------------------------------------------------------------------------------------------------- | :------------ |
39-
| convert_doppler_to_twist | bool | Convert doppler velocity to twist using the yaw information of a detected object. | false |
40-
| threshold_probability | float | If the probability of an output object is lower than this parameter, and the output object does not have radar points/objects, then delete the object. | 0.4 |
41-
| compensate_probability | bool | If this parameter is true, compensate probability of objects to threshold probability. | false |
80+
- `convert_doppler_to_twist` (bool)
81+
- Default parameter is false.
82+
83+
This parameter is the flag whether convert doppler velocity to twist using the yaw information of a detected object.
4284

43-
## radar_object_fusion_to_detected_object
85+
- `threshold_probability` (float)
86+
- Default parameter is 0.4.
87+
88+
This parameter is the threshold to filter output objects.
89+
If the probability of an output object is lower than this parameter, and the output object does not have radar points/objects, then delete the object.
90+
91+
- `compensate_probability` (bool)
92+
- Default parameter is false.
93+
94+
This parameter is the flag to use probability compensation.
95+
If this parameter is true, compensate probability of objects to threshold probability.
96+
97+
## Interface for radar_object_fusion_to_detected_object
4498

4599
Sensor fusion with radar objects and a detected object.
46100

@@ -56,24 +110,28 @@ ros2 launch radar_fusion_to_detected_object radar_object_to_detected_object.laun
56110

57111
### Input
58112

59-
| Name | Type | Description |
60-
| ----------------------- | ----------------------------------------------------- | ---------------------------------------------------------------------- |
61-
| `~/input/objects` | autoware_auto_perception_msgs/msg/DetectedObject.msg | 3D detected objects. |
62-
| `~/input/radar_objects` | autoware_auto_perception_msgs/msg/DetectedObjects.msg | Radar objects. Note that frame_id need to be same as `~/input/objects` |
113+
- `~/input/objects` (`autoware_auto_perception_msgs/msg/DetectedObjects.msg`)
114+
- 3D detected objects.
115+
- `~/input/radar_objects` (`autoware_auto_perception_msgs/msg/DetectedObjects.msg`)
116+
- Radar objects. Note that frame_id need to be same as `~/input/objects`
63117

64118
### Output
65119

66-
| Name | Type | Description |
67-
| -------------------------------- | ----------------------------------------------------- | -------------------------------------------------------------------------------------- |
68-
| `~/output/objects` | autoware_auto_perception_msgs/msg/DetectedObjects.msg | 3D detected object with twist. |
69-
| `~/debug/low_confidence_objects` | autoware_auto_perception_msgs/msg/DetectedObjects.msg | 3D detected object that doesn't output as `~/output/objects` because of low confidence |
120+
- `~/output/objects` (`autoware_auto_perception_msgs/msg/DetectedObjects.msg`)
121+
- 3D detected object with twist.
122+
- `~/debug/low_confidence_objects` (`autoware_auto_perception_msgs/msg/DetectedObjects.msg`)
123+
- 3D detected object that doesn't output as `~/output/objects` because of low confidence
70124

71125
### Parameters
72126

73-
| Name | Type | Description | Default value |
74-
| :------------- | :----- | :-------------------- | :------------ |
75-
| update_rate_hz | double | The update rate [hz]. | 20.0 |
127+
The parameters for core algorithm can be set as `node_params`.
128+
129+
- `update_rate_hz` (double) [hz]
130+
- Default parameter is 20.0
131+
132+
This parameter is update rate for the `onTimer` function.
133+
This parameter should be same as the frame rate of input topics.
76134

77-
## radar_scan_fusion_to_detected_object (TBD)
135+
## Interface for radar_scan_fusion_to_detected_object (TBD)
78136

79-
TBD
137+
Under implement

planning/obstacle_avoidance_planner/launch/obstacle_avoidance_planner.launch.xml

+1-3
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,11 @@
22
<arg name="input_path_topic" default="input/path"/>
33
<arg name="output_path_topic" default="output/path"/>
44
<arg name="enable_debug_info" default="false"/>
5-
<arg name="param_path" default="$(find-pkg-share obstacle_avoidance_planner)/param/obstacle_avoidance_planner.param.yaml"/>
6-
5+
<arg name="param_path" default="$(find-pkg-share obstacle_avoidance_planner)/config/obstacle_avoidance_planner.param.yaml"/>
76
<node pkg="obstacle_avoidance_planner" exec="obstacle_avoidance_planner_node" name="obstacle_avoidance_planner" output="screen">
87
<remap from="~/input/path" to="$(var input_path_topic)"/>
98
<remap from="~/input/odometry" to="/localization/kinematic_state"/>
109
<remap from="~/output/path" to="$(var output_path_topic)"/>
11-
1210
<param from="$(var param_path)"/>
1311
<param name="enable_debug_info" value="$(var enable_debug_info)"/>
1412
</node>

planning/obstacle_stop_planner/launch/obstacle_stop_planner.launch.xml

-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
<!-- vehicle info -->
77
<arg name="vehicle_info_param_file" default="$(find-pkg-share vehicle_info_util)/config/vehicle_info.param.yaml"/>
88

9-
<arg name="enable_slow_down" default="false"/>
109
<arg name="input_objects" default="/perception/object_recognition/objects"/>
1110
<arg name="input_pointcloud" default="input/pointcloud"/>
1211
<arg name="input_trajectory" default="input/trajectory"/>
@@ -21,7 +20,6 @@
2120
<param from="$(var adaptive_cruise_control_param_path)"/>
2221
<param from="$(var obstacle_stop_planner_param_path)"/>
2322
<param from="$(var vehicle_info_param_file)"/>
24-
<param name="enable_slow_down" value="$(var enable_slow_down)"/>
2523
<!-- remap topic name -->
2624
<remap from="~/output/stop_reason" to="/planning/scenario_planning/status/stop_reason"/>
2725
<remap from="~/output/stop_reasons" to="/planning/scenario_planning/status/stop_reasons"/>

vehicle/external_cmd_converter/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,5 @@ rclcpp_components_register_node(external_cmd_converter
1515

1616
ament_auto_package(INSTALL_TO_SHARE
1717
launch
18+
config
1819
)
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/**:
2+
ros__parameters:
3+
csv_path_accel_map: $(var csv_path_accel_map)
4+
csv_path_brake_map: $(var csv_path_brake_map)
5+
ref_vel_gain: $(var ref_vel_gain)
6+
timer_rate: $(var timer_rate)
7+
wait_for_first_topic: $(var wait_for_first_topic)
8+
control_command_timeout: $(var control_command_timeout)
9+
emergency_stop_timeout: $(var emergency_stop_timeout)

0 commit comments

Comments
 (0)