Skip to content

Commit 72bd594

Browse files
authored
Merge branch 'main' into fix/refactor_radar_tracks_noise_filter
2 parents 03888fd + a1d4df1 commit 72bd594

File tree

62 files changed

+1004
-428
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

62 files changed

+1004
-428
lines changed

.github/workflows/build-and-test-differential.yaml

+8-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ jobs:
1616
build-and-test-differential:
1717
needs: prevent-no-label-execution
1818
if: ${{ needs.prevent-no-label-execution.outputs.run == 'true' }}
19-
runs-on: [self-hosted, linux, X64]
19+
runs-on: ubuntu-latest
2020
container: ${{ matrix.container }}${{ matrix.container-suffix }}
2121
strategy:
2222
fail-fast: false
@@ -36,6 +36,9 @@ jobs:
3636
with:
3737
fetch-depth: 0
3838

39+
- name: Check disk space before build
40+
run: df -h
41+
3942
- name: Remove exec_depend
4043
uses: autowarefoundation/autoware-github-actions/remove-exec-depend@v1
4144

@@ -69,8 +72,11 @@ jobs:
6972
verbose: true
7073
flags: differential
7174

75+
- name: Check disk space after build
76+
run: df -h
77+
7278
clang-tidy-differential:
73-
runs-on: [self-hosted, linux, X64]
79+
runs-on: ubuntu-latest
7480
container: ghcr.io/autowarefoundation/autoware-universe:humble-latest-cuda
7581
needs: build-and-test-differential
7682
steps:

launch/tier4_localization_launch/launch/pose_twist_fusion_filter/pose_twist_fusion_filter.launch.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,10 +27,10 @@
2727

2828
<group>
2929
<include file="$(find-pkg-share twist2accel)/launch/twist2accel.launch.xml">
30-
<arg name="use_odom" value="true"/>
3130
<arg name="in_odom" value="/localization/kinematic_state"/>
3231
<arg name="in_twist" value="/localization/twist_estimator/twist_with_covariance"/>
3332
<arg name="out_accel" value="/localization/acceleration"/>
33+
<arg name="param_file" value="$(var twist2accel_param_path)"/>
3434
</include>
3535
</group>
3636

launch/tier4_map_launch/package.xml

+5
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,11 @@
88
<maintainer email="ryu.yamamoto@tier4.jp">Ryu Yamamoto</maintainer>
99
<maintainer email="koji.minoda@tier4.jp">Koji Minoda</maintainer>
1010
<maintainer email="kento.yabuuchi.2@tier4.jp">Kento Yabuuchi</maintainer>
11+
<maintainer email="yamato.ando@tier4.jp">Yamato Ando</maintainer>
12+
<maintainer email="anh.nguyen.2@tier4.jp">NGUYEN Viet Anh</maintainer>
13+
<maintainer email="taiki.yamada@tier4.jp">Taiki Yamada</maintainer>
14+
<maintainer email="shintaro.sakoda@tier4.jp">Shintaro Sakoda</maintainer>
15+
<maintainer email="masahiro.sakamoto@tier4.jp">Masahiro Sakamoto</maintainer>
1116
<license>Apache License 2.0</license>
1217

1318
<buildtool_depend>ament_cmake_auto</buildtool_depend>

launch/tier4_perception_launch/launch/object_recognition/detection/detection.launch.xml

+6-7
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,6 @@
3131

3232
<!-- Radar parameters -->
3333
<arg name="input/radar" default="/sensing/radar/detected_objects"/>
34-
<arg name="radar_lanelet_filtering_range_param" default="$(find-pkg-share detected_object_validation)/config/object_lanelet_filter.param.yaml"/>
35-
<arg name="radar_object_clustering_param_path" default="$(find-pkg-share radar_object_clustering)/config/radar_object_clustering.param.yaml"/>
3634

3735
<!-- Camera-Lidar-Radar fusion based detection -->
3836
<group if="$(eval '&quot;$(var mode)&quot;==&quot;camera_lidar_radar_fusion&quot;')">
@@ -75,11 +73,10 @@
7573
<include file="$(find-pkg-share tier4_perception_launch)/launch/object_recognition/detection/detector/radar_detector.launch.xml">
7674
<arg name="input/radar" value="$(var input/radar)"/>
7775
<arg name="output/objects" value="far_objects"/>
78-
<arg name="filter/angle_threshold" value="1.0472"/>
79-
<arg name="filter/velocity_threshold" value="3.0"/>
76+
<arg name="radar_lanelet_filtering_range_param_path" value="$(var radar_lanelet_filtering_range_param_path)"/>
77+
<arg name="radar_crossing_objects_noise_filter_param_path" value="$(var object_recognition_detection_radar_crossing_objects_noise_filter_param_path)"/>
8078
<arg name="object_velocity_splitter_param_path" value="$(var object_recognition_detection_object_velocity_splitter_radar_fusion_param_path)"/>
8179
<arg name="object_range_splitter_param_path" value="$(var object_recognition_detection_object_range_splitter_radar_fusion_param_path)"/>
82-
<arg name="radar_lanelet_filtering_range_param" value="$(var radar_lanelet_filtering_range_param)"/>
8380
<arg name="radar_object_clustering_param_path" value="$(var radar_object_clustering_param_path)"/>
8481
</include>
8582
</group>
@@ -177,9 +174,10 @@
177174
<include file="$(find-pkg-share tier4_perception_launch)/launch/object_recognition/detection/detector/radar_detector.launch.xml">
178175
<arg name="input/radar" value="$(var input/radar)"/>
179176
<arg name="output/objects" value="far_objects"/>
177+
<arg name="radar_lanelet_filtering_range_param_path" value="$(var radar_lanelet_filtering_range_param_path)"/>
178+
<arg name="radar_crossing_objects_noise_filter_param_path" value="$(var object_recognition_detection_radar_crossing_objects_noise_filter_param_path)"/>
180179
<arg name="object_velocity_splitter_param_path" value="$(var object_recognition_detection_object_velocity_splitter_radar_fusion_param_path)"/>
181180
<arg name="object_range_splitter_param_path" value="$(var object_recognition_detection_object_range_splitter_radar_fusion_param_path)"/>
182-
<arg name="radar_lanelet_filtering_range_param" value="$(var radar_lanelet_filtering_range_param)"/>
183181
<arg name="radar_object_clustering_param_path" value="$(var radar_object_clustering_param_path)"/>
184182
</include>
185183
</group>
@@ -238,9 +236,10 @@
238236
<include file="$(find-pkg-share tier4_perception_launch)/launch/object_recognition/detection/detector/radar_detector.launch.xml">
239237
<arg name="input/radar" value="$(var input/radar)"/>
240238
<arg name="output/objects" value="objects"/>
239+
<arg name="radar_lanelet_filtering_range_param_path" value="$(var radar_lanelet_filtering_range_param_path)"/>
240+
<arg name="radar_crossing_objects_noise_filter_param_path" value="$(var object_recognition_detection_radar_crossing_objects_noise_filter_param_path)"/>
241241
<arg name="object_velocity_splitter_param_path" value="$(var object_recognition_detection_object_velocity_splitter_radar_param_path)"/>
242242
<arg name="object_range_splitter_param_path" value="$(var object_recognition_detection_object_range_splitter_radar_param_path)"/>
243-
<arg name="radar_lanelet_filtering_range_param" value="$(var radar_lanelet_filtering_range_param)"/>
244243
<arg name="radar_object_clustering_param_path" value="$(var radar_object_clustering_param_path)"/>
245244
</include>
246245
</group>

launch/tier4_perception_launch/launch/object_recognition/detection/detector/camera_lidar_detector.launch.xml

+3
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,9 @@
8585
<arg name="model_path" value="$(var pointpainting_model_path)"/>
8686
<arg name="model_param_path" value="$(var lidar_model_param_path)/$(var lidar_detection_model).param.yaml"/>
8787
<arg name="class_remapper_param_path" value="$(var lidar_model_param_path)/detection_class_remapper.param.yaml"/>
88+
89+
<arg name="use_pointcloud_container" value="$(var use_pointcloud_container)"/>
90+
<arg name="pointcloud_container_name" value="$(var pointcloud_container_name)"/>
8891
</include>
8992
</group>
9093

launch/tier4_perception_launch/launch/object_recognition/detection/detector/lidar_dnn_detector.launch.xml

+3
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
<arg name="model_path" value="$(var centerpoint_model_path)"/>
2323
<arg name="model_param_path" value="$(var lidar_model_param_path)/$(var centerpoint_model_name).param.yaml"/>
2424
<arg name="class_remapper_param_path" value="$(var lidar_model_param_path)/detection_class_remapper.param.yaml"/>
25+
26+
<arg name="use_pointcloud_container" value="$(var use_pointcloud_container)"/>
27+
<arg name="pointcloud_container_name" value="$(var pointcloud_container_name)"/>
2528
</include>
2629
</group>
2730
</group>

launch/tier4_perception_launch/launch/object_recognition/detection/detector/lidar_rule_detector.launch.xml

+3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@
2626
<arg name="input_pointcloud" value="/perception/object_recognition/detection/pointcloud_map_filtered/pointcloud"/>
2727
<arg name="output_clusters" value="clusters"/>
2828
<arg name="use_low_height_cropbox" value="$(var use_low_height_cropbox)"/>
29+
30+
<arg name="use_pointcloud_container" value="$(var use_pointcloud_container)"/>
31+
<arg name="pointcloud_container_name" value="$(var pointcloud_container_name)"/>
2932
</include>
3033
</group>
3134

launch/tier4_perception_launch/launch/object_recognition/detection/detector/radar_detector.launch.xml

+4-6
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,7 @@
22
<launch>
33
<arg name="input/radar" default="/sensing/radar/detected_objects"/>
44
<arg name="output/objects" default="far_objects"/>
5-
<arg name="filter/angle_threshold" default="1.221"/>
6-
<arg name="filter/velocity_threshold" default="1.5"/>
5+
<arg name="radar_crossing_objects_noise_filter_param_path"/>
76
<arg name="object_velocity_splitter_param_path" default="$(var object_recognition_detection_object_velocity_splitter_radar_param_path)"/>
87
<arg name="object_range_splitter_param_path" default="$(var object_recognition_detection_object_range_splitter_radar_param_path)"/>
98
<arg name="radar_lanelet_filtering_range_param" default="$(find-pkg-share detected_object_validation)/config/object_lanelet_filter.param.yaml"/>
@@ -14,8 +13,7 @@
1413
<arg name="input/objects" value="$(var input/radar)"/>
1514
<arg name="output/noise_objects" value="noise_objects"/>
1615
<arg name="output/filtered_objects" value="noise_filtered_objects"/>
17-
<arg name="angle_threshold" value="$(var filter/angle_threshold)"/>
18-
<arg name="velocity_threshold" value="$(var filter/velocity_threshold)"/>
16+
<arg name="param_path" value="$(var radar_crossing_objects_noise_filter_param_path)"/>
1917
</include>
2018

2119
<include file="$(find-pkg-share object_velocity_splitter)/launch/object_velocity_splitter.launch.xml">
@@ -35,12 +33,12 @@
3533
<include file="$(find-pkg-share detected_object_validation)/launch/object_lanelet_filter.launch.xml">
3634
<arg name="input/object" value="far_high_speed_objects"/>
3735
<arg name="output/object" value="lanelet_filtered_objects"/>
38-
<arg name="filtering_range_param" value="$(var radar_lanelet_filtering_range_param)"/>
36+
<arg name="filtering_range_param_path" value="$(var radar_lanelet_filtering_range_param_path)"/>
3937
</include>
4038

4139
<include file="$(find-pkg-share radar_object_clustering)/launch/radar_object_clustering.launch.xml">
4240
<arg name="input/objects" value="lanelet_filtered_objects"/>
4341
<arg name="output/objects" value="$(var output/objects)"/>
44-
<arg name="radar_object_clustering_param_path" value="$(var radar_object_clustering_param_path)"/>
42+
<arg name="param_path" value="$(var radar_object_clustering_param_path)"/>
4543
</include>
4644
</launch>

launch/tier4_perception_launch/launch/perception.launch.xml

+3-2
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
<arg name="object_recognition_detection_roi_pointcloud_fusion_param_path"/>
1515
<arg name="object_recognition_detection_roi_detected_object_fusion_param_path"/>
1616
<arg name="object_recognition_detection_lidar_model_param_path"/>
17-
<arg name="object_recognition_detection_radar_lanelet_filtering_range_param"/>
17+
<arg name="object_recognition_detection_radar_lanelet_filtering_range_param_path"/>
18+
<arg name="object_recognition_detection_radar_crossing_objects_noise_filter_param_path"/>
1819
<arg name="object_recognition_detection_radar_object_clustering_param_path"/>
1920
<arg name="object_recognition_detection_object_velocity_splitter_radar_param_path"/>
2021
<arg name="object_recognition_detection_object_velocity_splitter_radar_fusion_param_path"/>
@@ -189,7 +190,7 @@
189190
<arg name="euclidean_param_path" value="$(var object_recognition_detection_euclidean_cluster_param_path)"/>
190191
<arg name="outlier_param_path" value="$(var object_recognition_detection_outlier_param_path)"/>
191192
<arg name="voxel_grid_based_euclidean_param_path" value="$(var object_recognition_detection_voxel_grid_based_euclidean_cluster_param_path)"/>
192-
<arg name="radar_lanelet_filtering_range_param" value="$(var object_recognition_detection_radar_lanelet_filtering_range_param)"/>
193+
<arg name="radar_lanelet_filtering_range_param_path" value="$(var object_recognition_detection_radar_lanelet_filtering_range_param_path)"/>
193194
<arg name="radar_object_clustering_param_path" value="$(var object_recognition_detection_radar_object_clustering_param_path)"/>
194195
<arg name="detection_by_tracker_param_path" value="$(var object_recognition_detection_detection_by_tracker_param)"/>
195196

Original file line numberDiff line numberDiff line change
@@ -1,102 +1,114 @@
11
/**:
22
ros__parameters:
3-
# Vehicle reference frame
4-
base_frame: "base_link"
3+
frame:
4+
# Vehicle reference frame
5+
base_frame: "base_link"
56

6-
# NDT reference frame
7-
ndt_base_frame: "ndt_base_link"
7+
# NDT reference frame
8+
ndt_base_frame: "ndt_base_link"
89

9-
# map frame
10-
map_frame: "map"
10+
# Map frame
11+
map_frame: "map"
1112

12-
# Subscriber queue size
13-
input_sensor_points_queue_size: 1
1413

15-
# The maximum difference between two consecutive
16-
# transformations in order to consider convergence
17-
trans_epsilon: 0.01
14+
ndt:
15+
# The maximum difference between two consecutive
16+
# transformations in order to consider convergence
17+
trans_epsilon: 0.01
1818

19-
# The newton line search maximum step length
20-
step_size: 0.1
19+
# The newton line search maximum step length
20+
step_size: 0.1
2121

22-
# The ND voxel grid resolution
23-
resolution: 2.0
22+
# The ND voxel grid resolution
23+
resolution: 2.0
2424

25-
# The number of iterations required to calculate alignment
26-
max_iterations: 30
25+
# The number of iterations required to calculate alignment
26+
max_iterations: 30
2727

28-
# Converged param type
29-
# 0=TRANSFORM_PROBABILITY, 1=NEAREST_VOXEL_TRANSFORMATION_LIKELIHOOD
30-
converged_param_type: 1
28+
# Number of threads used for parallel computing
29+
num_threads: 4
3130

32-
# If converged_param_type is 0
33-
# Threshold for deciding whether to trust the estimation result
34-
converged_param_transform_probability: 3.0
31+
regularization:
32+
enable: false
3533

36-
# If converged_param_type is 1
37-
# Threshold for deciding whether to trust the estimation result
38-
converged_param_nearest_voxel_transformation_likelihood: 2.3
34+
# Regularization scale factor
35+
scale_factor: 0.01
3936

40-
# The number of particles to estimate initial pose
41-
initial_estimate_particles_num: 200
4237

43-
# The number of initial random trials in the TPE (Tree-Structured Parzen Estimator).
44-
# This value should be equal to or less than 'initial_estimate_particles_num' and more than 0.
45-
# If it is equal to 'initial_estimate_particles_num', the search will be the same as a full random search.
46-
n_startup_trials: 20
38+
initial_pose_estimation:
39+
# The number of particles to estimate initial pose
40+
particles_num: 200
4741

48-
# Tolerance of timestamp difference between current time and sensor pointcloud. [sec]
49-
lidar_topic_timeout_sec: 1.0
42+
# The number of initial random trials in the TPE (Tree-Structured Parzen Estimator).
43+
# This value should be equal to or less than 'initial_estimate_particles_num' and more than 0.
44+
# If it is equal to 'initial_estimate_particles_num', the search will be the same as a full random search.
45+
n_startup_trials: 20
5046

51-
# Tolerance of timestamp difference between initial_pose and sensor pointcloud. [sec]
52-
initial_pose_timeout_sec: 1.0
5347

54-
# Tolerance of distance difference between two initial poses used for linear interpolation. [m]
55-
initial_pose_distance_tolerance_m: 10.0
48+
validation:
49+
# Tolerance of timestamp difference between current time and sensor pointcloud. [sec]
50+
lidar_topic_timeout_sec: 1.0
5651

57-
# The execution time which means probably NDT cannot matches scans properly. [ms]
58-
critical_upper_bound_exe_time_ms: 100.0
52+
# Tolerance of timestamp difference between initial_pose and sensor pointcloud. [sec]
53+
initial_pose_timeout_sec: 1.0
5954

60-
# Number of threads used for parallel computing
61-
num_threads: 4
55+
# Tolerance of distance difference between two initial poses used for linear interpolation. [m]
56+
initial_pose_distance_tolerance_m: 10.0
6257

63-
# The covariance of output pose
64-
# Note that this covariance matrix is empirically derived
65-
output_pose_covariance:
66-
[
67-
0.0225, 0.0, 0.0, 0.0, 0.0, 0.0,
68-
0.0, 0.0225, 0.0, 0.0, 0.0, 0.0,
69-
0.0, 0.0, 0.0225, 0.0, 0.0, 0.0,
70-
0.0, 0.0, 0.0, 0.000625, 0.0, 0.0,
71-
0.0, 0.0, 0.0, 0.0, 0.000625, 0.0,
72-
0.0, 0.0, 0.0, 0.0, 0.0, 0.000625,
73-
]
58+
# The execution time which means probably NDT cannot matches scans properly. [ms]
59+
critical_upper_bound_exe_time_ms: 100.0
7460

75-
# 2D Real-time covariance estimation with multiple searches (output_pose_covariance is the minimum value)
76-
use_covariance_estimation: false
7761

78-
# Offset arrangement in covariance estimation [m]
79-
# initial_pose_offset_model_x & initial_pose_offset_model_y must have the same number of elements.
80-
initial_pose_offset_model_x: [0.0, 0.0, 0.5, -0.5, 1.0, -1.0]
81-
initial_pose_offset_model_y: [0.5, -0.5, 0.0, 0.0, 0.0, 0.0]
62+
score_estimation:
63+
# Converged param type
64+
# 0=TRANSFORM_PROBABILITY, 1=NEAREST_VOXEL_TRANSFORMATION_LIKELIHOOD
65+
converged_param_type: 1
8266

83-
# Regularization switch
84-
regularization_enabled: false
67+
# If converged_param_type is 0
68+
# Threshold for deciding whether to trust the estimation result
69+
converged_param_transform_probability: 3.0
8570

86-
# Regularization scale factor
87-
regularization_scale_factor: 0.01
71+
# If converged_param_type is 1
72+
# Threshold for deciding whether to trust the estimation result
73+
converged_param_nearest_voxel_transformation_likelihood: 2.3
8874

89-
# Dynamic map loading distance
90-
dynamic_map_loading_update_distance: 20.0
75+
# Scan matching score based on no ground LiDAR scan
76+
no_ground_points:
77+
enable: false
9178

92-
# Dynamic map loading loading radius
93-
dynamic_map_loading_map_radius: 150.0
79+
# If lidar_point.z - base_link.z <= this threshold , the point will be removed
80+
z_margin_for_ground_removal: 0.8
9481

95-
# Radius of input LiDAR range (used for diagnostics of dynamic map loading)
96-
lidar_radius: 100.0
9782

98-
# A flag for using scan matching score based on no ground LiDAR scan
99-
estimate_scores_by_no_ground_points: false
83+
covariance:
84+
# The covariance of output pose
85+
# Note that this covariance matrix is empirically derived
86+
output_pose_covariance:
87+
[
88+
0.0225, 0.0, 0.0, 0.0, 0.0, 0.0,
89+
0.0, 0.0225, 0.0, 0.0, 0.0, 0.0,
90+
0.0, 0.0, 0.0225, 0.0, 0.0, 0.0,
91+
0.0, 0.0, 0.0, 0.000625, 0.0, 0.0,
92+
0.0, 0.0, 0.0, 0.0, 0.000625, 0.0,
93+
0.0, 0.0, 0.0, 0.0, 0.0, 0.000625,
94+
]
10095

101-
# If lidar_point.z - base_link.z <= this threshold , the point will be removed
102-
z_margin_for_ground_removal: 0.8
96+
# 2D Real-time covariance estimation with multiple searches (output_pose_covariance is the minimum value)
97+
covariance_estimation:
98+
enable: false
99+
100+
# Offset arrangement in covariance estimation [m]
101+
# initial_pose_offset_model_x & initial_pose_offset_model_y must have the same number of elements.
102+
initial_pose_offset_model_x: [0.0, 0.0, 0.5, -0.5, 1.0, -1.0]
103+
initial_pose_offset_model_y: [0.5, -0.5, 0.0, 0.0, 0.0, 0.0]
104+
105+
106+
dynamic_map_loading:
107+
# Dynamic map loading distance
108+
update_distance: 20.0
109+
110+
# Dynamic map loading loading radius
111+
map_radius: 150.0
112+
113+
# Radius of input LiDAR range (used for diagnostics of dynamic map loading)
114+
lidar_radius: 100.0

0 commit comments

Comments
 (0)