Skip to content

Commit 03888fd

Browse files
authored
Merge branch 'main' into fix/refactor_radar_tracks_noise_filter
2 parents 3f0e7a6 + 18a599e commit 03888fd

File tree

47 files changed

+388
-168
lines changed

Some content is hidden

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

47 files changed

+388
-168
lines changed

.github/workflows/spell-check-differential.yaml

-16
This file was deleted.

common/autoware_auto_perception_rviz_plugin/package.xml

+2-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,8 @@
88
<maintainer email="satoshi.tanaka@tier4.jp">Satoshi Tanaka</maintainer>
99
<maintainer email="taiki.tanaka@tier4.jp">Taiki Tanaka</maintainer>
1010
<maintainer email="takeshi.miura@tier4.jp">Takeshi Miura</maintainer>
11-
11+
<maintainer email="shunsuke.miura@tier4.jp">Shunsuke Miura</maintainer>
12+
<maintainer email="yoshi.ri@tier4.jp">Yoshi Ri</maintainer>
1213
<license>Apache 2.0</license>
1314

1415
<buildtool_depend>ament_cmake</buildtool_depend>

common/object_recognition_utils/package.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
<description>The object_recognition_utils package</description>
77
<maintainer email="takayuki.murooka@tier4.jp">Takayuki Murooka</maintainer>
88
<maintainer email="satoshi.tanaka@tier4.jp">Satoshi Tanaka</maintainer>
9-
<maintainer email="yusuke.muramatsu@tier4.jp">Yusuke Muramatsu</maintainer>
109
<maintainer email="shunsuke.miura@tier4.jp">Shunsuke Miura</maintainer>
10+
<maintainer email="yoshi.ri@tier4.jp">Yoshi Ri</maintainer>
1111
<license>Apache License 2.0</license>
1212

1313
<buildtool_depend>ament_cmake_auto</buildtool_depend>

common/perception_utils/package.xml

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
<version>0.1.0</version>
66
<description>The perception_utils package</description>
77
<maintainer email="satoshi.tanaka@tier4.jp">Satoshi Tanaka</maintainer>
8-
<maintainer email="yusuke.muramatsu@tier4.jp">Yusuke Muramatsu</maintainer>
98
<maintainer email="shunsuke.miura@tier4.jp">Shunsuke Miura</maintainer>
9+
<maintainer email="yoshi.ri@tier4.jp">Yoshi Ri</maintainer>
1010
<license>Apache License 2.0</license>
1111

1212
<buildtool_depend>ament_cmake_auto</buildtool_depend>

control/control_validator/package.xml

+3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
<maintainer email="kyoichi.sugahara@tier4.jp">Kyoichi Sugahara</maintainer>
88
<maintainer email="takamasa.horibe@tier4.jp">Takamasa Horibe</maintainer>
99
<maintainer email="makoto.kurihara@tier4.jp">Makoto Kurihara</maintainer>
10+
<maintainer email="mamoru.sobue@tier4.jp">Mamoru Sobue</maintainer>
11+
<maintainer email="takayuki.murooka@tier4.jp">Takayuki Murooka</maintainer>
12+
1013
<license>Apache License 2.0</license>
1114

1215
<author email="kyoichi.sugahara@tier4.jp">Kyoichi Sugahara</author>

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

+3-1
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@
7777
<arg name="output/objects" value="far_objects"/>
7878
<arg name="filter/angle_threshold" value="1.0472"/>
7979
<arg name="filter/velocity_threshold" value="3.0"/>
80-
<arg name="split/velocity_threshold" value="4.5"/>
80+
<arg name="object_velocity_splitter_param_path" value="$(var object_recognition_detection_object_velocity_splitter_radar_fusion_param_path)"/>
8181
<arg name="object_range_splitter_param_path" value="$(var object_recognition_detection_object_range_splitter_radar_fusion_param_path)"/>
8282
<arg name="radar_lanelet_filtering_range_param" value="$(var radar_lanelet_filtering_range_param)"/>
8383
<arg name="radar_object_clustering_param_path" value="$(var radar_object_clustering_param_path)"/>
@@ -177,6 +177,7 @@
177177
<include file="$(find-pkg-share tier4_perception_launch)/launch/object_recognition/detection/detector/radar_detector.launch.xml">
178178
<arg name="input/radar" value="$(var input/radar)"/>
179179
<arg name="output/objects" value="far_objects"/>
180+
<arg name="object_velocity_splitter_param_path" value="$(var object_recognition_detection_object_velocity_splitter_radar_fusion_param_path)"/>
180181
<arg name="object_range_splitter_param_path" value="$(var object_recognition_detection_object_range_splitter_radar_fusion_param_path)"/>
181182
<arg name="radar_lanelet_filtering_range_param" value="$(var radar_lanelet_filtering_range_param)"/>
182183
<arg name="radar_object_clustering_param_path" value="$(var radar_object_clustering_param_path)"/>
@@ -237,6 +238,7 @@
237238
<include file="$(find-pkg-share tier4_perception_launch)/launch/object_recognition/detection/detector/radar_detector.launch.xml">
238239
<arg name="input/radar" value="$(var input/radar)"/>
239240
<arg name="output/objects" value="objects"/>
241+
<arg name="object_velocity_splitter_param_path" value="$(var object_recognition_detection_object_velocity_splitter_radar_param_path)"/>
240242
<arg name="object_range_splitter_param_path" value="$(var object_recognition_detection_object_range_splitter_radar_param_path)"/>
241243
<arg name="radar_lanelet_filtering_range_param" value="$(var radar_lanelet_filtering_range_param)"/>
242244
<arg name="radar_object_clustering_param_path" value="$(var radar_object_clustering_param_path)"/>

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<arg name="output/objects" default="far_objects"/>
55
<arg name="filter/angle_threshold" default="1.221"/>
66
<arg name="filter/velocity_threshold" default="1.5"/>
7-
<arg name="split/velocity_threshold" default="5.5"/>
7+
<arg name="object_velocity_splitter_param_path" default="$(var object_recognition_detection_object_velocity_splitter_radar_param_path)"/>
88
<arg name="object_range_splitter_param_path" default="$(var object_recognition_detection_object_range_splitter_radar_param_path)"/>
99
<arg name="radar_lanelet_filtering_range_param" default="$(find-pkg-share detected_object_validation)/config/object_lanelet_filter.param.yaml"/>
1010
<arg name="radar_object_clustering_param_path" default="$(find-pkg-share radar_object_clustering)/config/radar_object_clustering.param.yaml"/>
@@ -22,7 +22,7 @@
2222
<arg name="input/objects" value="noise_filtered_objects"/>
2323
<arg name="output/low_speed_objects" value="low_speed_objects"/>
2424
<arg name="output/high_speed_objects" value="high_speed_objects"/>
25-
<arg name="velocity_threshold" value="$(var split/velocity_threshold)"/>
25+
<arg name="param_path" value="$(var object_velocity_splitter_param_path)"/>
2626
</include>
2727

2828
<include file="$(find-pkg-share object_range_splitter)/launch/object_range_splitter.launch.xml">

launch/tier4_perception_launch/launch/perception.launch.xml

+2
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
<arg name="object_recognition_detection_lidar_model_param_path"/>
1717
<arg name="object_recognition_detection_radar_lanelet_filtering_range_param"/>
1818
<arg name="object_recognition_detection_radar_object_clustering_param_path"/>
19+
<arg name="object_recognition_detection_object_velocity_splitter_radar_param_path"/>
20+
<arg name="object_recognition_detection_object_velocity_splitter_radar_fusion_param_path"/>
1921
<arg name="object_recognition_detection_object_range_splitter_radar_param_path"/>
2022
<arg name="object_recognition_detection_object_range_splitter_radar_fusion_param_path"/>
2123
<arg name="object_recognition_tracking_multi_object_tracker_data_association_matrix_param_path"/>

mkdocs_macros.py

+2
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,8 @@ def format_param_range(param):
4242
def extract_parameter_info(parameters, namespace=""):
4343
params = []
4444
for k, v in parameters.items():
45+
if "$ref" in v.keys():
46+
continue
4547
if v["type"] != "object":
4648
param = {}
4749
param["Name"] = namespace + k

perception/ground_segmentation/CMakeLists.txt

+1
Original file line numberDiff line numberDiff line change
@@ -89,6 +89,7 @@ if(BUILD_TESTING)
8989

9090
target_link_libraries(test_ray_ground_filter
9191
ground_segmentation
92+
${YAML_CPP_LIBRARIES}
9293
)
9394

9495
ament_add_ros_isolated_gtest(test_scan_ground_filter

perception/ground_segmentation/config/ground_segmentation.param.yaml

+4
Original file line numberDiff line numberDiff line change
@@ -29,3 +29,7 @@
2929
gnd_grid_buffer_size: 4
3030
detection_range_z_max: 2.5
3131
elevation_grid_mode: true
32+
low_priority_region_x: -20.0
33+
center_pcl_shift: 0.0
34+
radial_divider_angle_deg: 1.0
35+
use_recheck_ground_cluster: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**:
2+
ros__parameters:
3+
base_frame: "base_link"
4+
unit_axis: "z"
5+
max_iterations: 1000
6+
min_trial: 5000
7+
min_points: 1000
8+
outlier_threshold: 0.01
9+
plane_slope_threshold: 10.0
10+
voxel_size_x: 0.04
11+
voxel_size_y: 0.04
12+
voxel_size_z: 0.04
13+
height_threshold: 0.01
14+
debug: false
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
/**:
2+
ros__parameters:
3+
min_x: -0.01
4+
max_x: 0.01
5+
min_y: -0.01
6+
max_y: 0.01
7+
use_vehicle_footprint: false
8+
general_max_slope: 8.0
9+
local_max_slope: 6.0
10+
initial_max_slope: 3.0
11+
radial_divider_angle: 1.0
12+
min_height_threshold: 0.15
13+
concentric_divider_distance: 0.0
14+
reclass_distance_threshold: 0.1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/**:
2+
ros__parameters:
3+
global_slope_max_angle_deg: 10.0
4+
local_slope_max_angle_deg: 13.0 # recommended 30.0 for non elevation_grid_mode
5+
split_points_distance_tolerance: 0.2
6+
use_virtual_ground_point: True
7+
split_height_distance: 0.2
8+
non_ground_height_threshold: 0.20
9+
grid_size_m: 0.1
10+
grid_mode_switch_radius: 20.0
11+
gnd_grid_buffer_size: 4
12+
detection_range_z_max: 2.5
13+
elevation_grid_mode: true
14+
low_priority_region_x: -20.0
15+
center_pcl_shift: 0.0
16+
radial_divider_angle_deg: 1.0
17+
use_recheck_ground_cluster: true
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0"?>
2+
<launch>
3+
<arg name="ground_segmentation_param_file" default="$(find-pkg-share ground_segmentation)/config/ransac_ground_filter.param.yaml"/>
4+
<arg name="input/pointcloud" default="/sensing/lidar/concatenated/pointcloud"/>
5+
<arg name="output/pointcloud" default="/perception/obstacle_segmentation/pointcloud"/>
6+
<node pkg="ground_segmentation" exec="ransac_ground_filter_node" name="ransac_ground_filter_node" output="screen">
7+
<remap from="input" to="$(var input/pointcloud)"/>
8+
<remap from="output" to="$(var output/pointcloud)"/>
9+
<param from="$(var ground_segmentation_param_file)"/>
10+
</node>
11+
</launch>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
<?xml version="1.0"?>
2+
<launch>
3+
<arg name="ground_segmentation_param_file" default="$(find-pkg-share ground_segmentation)/config/ray_ground_filter.param.yaml"/>
4+
<arg name="input/pointcloud" default="/sensing/lidar/concatenated/pointcloud"/>
5+
<arg name="output/pointcloud" default="/perception/obstacle_segmentation/pointcloud"/>
6+
<node pkg="ground_segmentation" exec="ray_ground_filter_node" name="ray_ground_filter_node" output="screen">
7+
<remap from="input" to="$(var input/pointcloud)"/>
8+
<remap from="output" to="$(var output/pointcloud)"/>
9+
<param from="$(var ground_segmentation_param_file)"/>
10+
</node>
11+
</launch>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
<?xml version="1.0"?>
2+
<launch>
3+
<arg name="ground_segmentation_param_file" default="$(find-pkg-share ground_segmentation)/config/scan_ground_filter.param.yaml"/>
4+
5+
<!-- vehicle info -->
6+
<arg name="vehicle_info_param_file" default="$(find-pkg-share vehicle_info_util)/config/vehicle_info.param.yaml"/>
7+
<arg name="input/pointcloud" default="/sensing/lidar/concatenated/pointcloud"/>
8+
<arg name="output/pointcloud" default="/perception/obstacle_segmentation/pointcloud"/>
9+
<node pkg="ground_segmentation" exec="scan_ground_filter_node" name="scan_ground_filter_node" output="screen">
10+
<remap from="input" to="$(var input/pointcloud)"/>
11+
<remap from="output" to="$(var output/pointcloud)"/>
12+
<param from="$(var ground_segmentation_param_file)"/>
13+
<param from="$(var vehicle_info_param_file)"/>
14+
</node>
15+
</launch>

perception/ground_segmentation/src/ransac_ground_filter_nodelet.cpp

+12-12
Original file line numberDiff line numberDiff line change
@@ -85,18 +85,18 @@ using pointcloud_preprocessor::get_param;
8585
RANSACGroundFilterComponent::RANSACGroundFilterComponent(const rclcpp::NodeOptions & options)
8686
: Filter("RANSACGroundFilter", options)
8787
{
88-
base_frame_ = declare_parameter("base_frame", "base_link");
89-
unit_axis_ = declare_parameter("unit_axis", "z");
90-
max_iterations_ = declare_parameter("max_iterations", 1000);
91-
min_inliers_ = declare_parameter("min_trial", 5000);
92-
min_points_ = declare_parameter("min_points", 1000);
93-
outlier_threshold_ = declare_parameter("outlier_threshold", 0.01);
94-
plane_slope_threshold_ = declare_parameter("plane_slope_threshold", 10.0);
95-
voxel_size_x_ = declare_parameter("voxel_size_x", 0.04);
96-
voxel_size_y_ = declare_parameter("voxel_size_y", 0.04);
97-
voxel_size_z_ = declare_parameter("voxel_size_z", 0.04);
98-
height_threshold_ = declare_parameter("height_threshold", 0.01);
99-
debug_ = declare_parameter("debug", false);
88+
base_frame_ = declare_parameter<std::string>("base_frame", "base_link");
89+
unit_axis_ = declare_parameter<std::string>("unit_axis");
90+
max_iterations_ = declare_parameter<int>("max_iterations");
91+
min_inliers_ = declare_parameter<int>("min_trial");
92+
min_points_ = declare_parameter<int>("min_points");
93+
outlier_threshold_ = declare_parameter<double>("outlier_threshold");
94+
plane_slope_threshold_ = declare_parameter<double>("plane_slope_threshold");
95+
voxel_size_x_ = declare_parameter<double>("voxel_size_x");
96+
voxel_size_y_ = declare_parameter<double>("voxel_size_y");
97+
voxel_size_z_ = declare_parameter<double>("voxel_size_z");
98+
height_threshold_ = declare_parameter<double>("height_threshold");
99+
debug_ = declare_parameter<bool>("debug");
100100

101101
if (unit_axis_ == "x") {
102102
unit_vec_ = Eigen::Vector3d::UnitX();

perception/ground_segmentation/src/ray_ground_filter_nodelet.cpp

+12-12
Original file line numberDiff line numberDiff line change
@@ -48,22 +48,22 @@ RayGroundFilterComponent::RayGroundFilterComponent(const rclcpp::NodeOptions & o
4848
grid_precision_ = 0.2;
4949
ray_ground_filter::generateColors(colors_, color_num_);
5050

51-
min_x_ = declare_parameter("min_x", -0.01);
52-
max_x_ = declare_parameter("max_x", 0.01);
53-
min_y_ = declare_parameter("min_y", -0.01);
54-
max_y_ = declare_parameter("max_y", 0.01);
51+
min_x_ = declare_parameter<double>("min_x");
52+
max_x_ = declare_parameter<double>("max_x");
53+
min_y_ = declare_parameter<double>("min_y");
54+
max_y_ = declare_parameter<double>("max_y");
5555

5656
setVehicleFootprint(min_x_, max_x_, min_y_, max_y_);
5757

58-
use_vehicle_footprint_ = declare_parameter("use_vehicle_footprint", false);
58+
use_vehicle_footprint_ = declare_parameter<bool>("use_vehicle_footprint", false);
5959

60-
general_max_slope_ = declare_parameter("general_max_slope", 8.0);
61-
local_max_slope_ = declare_parameter("local_max_slope", 6.0);
62-
initial_max_slope_ = declare_parameter("initial_max_slope", 3.0);
63-
radial_divider_angle_ = declare_parameter("radial_divider_angle", 1.0);
64-
min_height_threshold_ = declare_parameter("min_height_threshold", 0.15);
65-
concentric_divider_distance_ = declare_parameter("concentric_divider_distance", 0.0);
66-
reclass_distance_threshold_ = declare_parameter("reclass_distance_threshold", 0.1);
60+
general_max_slope_ = declare_parameter<double>("general_max_slope");
61+
local_max_slope_ = declare_parameter<double>("local_max_slope");
62+
initial_max_slope_ = declare_parameter<double>("initial_max_slope");
63+
radial_divider_angle_ = declare_parameter<double>("radial_divider_angle");
64+
min_height_threshold_ = declare_parameter<double>("min_height_threshold");
65+
concentric_divider_distance_ = declare_parameter<double>("concentric_divider_distance");
66+
reclass_distance_threshold_ = declare_parameter<double>("reclass_distance_threshold");
6767
}
6868

6969
using std::placeholders::_1;

perception/ground_segmentation/src/scan_ground_filter_nodelet.cpp

+16-18
Original file line numberDiff line numberDiff line change
@@ -37,24 +37,22 @@ ScanGroundFilterComponent::ScanGroundFilterComponent(const rclcpp::NodeOptions &
3737
{
3838
// set initial parameters
3939
{
40-
low_priority_region_x_ = static_cast<float>(declare_parameter("low_priority_region_x", -20.0f));
41-
detection_range_z_max_ = static_cast<float>(declare_parameter("detection_range_z_max", 2.5f));
42-
center_pcl_shift_ = static_cast<float>(declare_parameter("center_pcl_shift", 0.0));
43-
non_ground_height_threshold_ =
44-
static_cast<float>(declare_parameter("non_ground_height_threshold", 0.20));
45-
grid_mode_switch_radius_ =
46-
static_cast<float>(declare_parameter("grid_mode_switch_radius", 20.0));
47-
48-
grid_size_m_ = static_cast<float>(declare_parameter("grid_size_m", 0.5));
49-
gnd_grid_buffer_size_ = static_cast<int>(declare_parameter("gnd_grid_buffer_size", 4));
50-
elevation_grid_mode_ = static_cast<bool>(declare_parameter("elevation_grid_mode", true));
51-
global_slope_max_angle_rad_ = deg2rad(declare_parameter("global_slope_max_angle_deg", 8.0));
52-
local_slope_max_angle_rad_ = deg2rad(declare_parameter("local_slope_max_angle_deg", 10.0));
53-
radial_divider_angle_rad_ = deg2rad(declare_parameter("radial_divider_angle_deg", 1.0));
54-
split_points_distance_tolerance_ = declare_parameter("split_points_distance_tolerance", 0.2);
55-
split_height_distance_ = declare_parameter("split_height_distance", 0.2);
56-
use_virtual_ground_point_ = declare_parameter("use_virtual_ground_point", true);
57-
use_recheck_ground_cluster_ = declare_parameter("use_recheck_ground_cluster", true);
40+
low_priority_region_x_ = declare_parameter<float>("low_priority_region_x");
41+
detection_range_z_max_ = declare_parameter<float>("detection_range_z_max");
42+
center_pcl_shift_ = declare_parameter<float>("center_pcl_shift");
43+
non_ground_height_threshold_ = declare_parameter<float>("non_ground_height_threshold");
44+
grid_mode_switch_radius_ = declare_parameter<float>("grid_mode_switch_radius");
45+
46+
grid_size_m_ = declare_parameter<float>("grid_size_m");
47+
gnd_grid_buffer_size_ = declare_parameter<int>("gnd_grid_buffer_size");
48+
elevation_grid_mode_ = declare_parameter<bool>("elevation_grid_mode");
49+
global_slope_max_angle_rad_ = deg2rad(declare_parameter<float>("global_slope_max_angle_deg"));
50+
local_slope_max_angle_rad_ = deg2rad(declare_parameter<float>("local_slope_max_angle_deg"));
51+
radial_divider_angle_rad_ = deg2rad(declare_parameter<float>("radial_divider_angle_deg"));
52+
split_points_distance_tolerance_ = declare_parameter<float>("split_points_distance_tolerance");
53+
split_height_distance_ = declare_parameter<float>("split_height_distance");
54+
use_virtual_ground_point_ = declare_parameter<bool>("use_virtual_ground_point");
55+
use_recheck_ground_cluster_ = declare_parameter<bool>("use_recheck_ground_cluster");
5856
radial_dividers_num_ = std::ceil(2.0 * M_PI / radial_divider_angle_rad_);
5957
vehicle_info_ = VehicleInfoUtil(*this).getVehicleInfo();
6058

0 commit comments

Comments
 (0)