Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(ground_segmentation): add missing parameters #230

Closed
wants to merge 30 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
07c5e62
feat: add XT32 sensor model
1222-takeshi May 15, 2023
6277716
fix(velodyne_node_container): fix param load failure
1222-takeshi May 17, 2023
945a5ea
fix(diagnostic_aggregator): update sensor kit param (#22) (#23)
YoheiMishina May 18, 2023
a9554dd
fix: add vehicle_velocity_converter.launch (#146)
1222-takeshi Jun 5, 2023
d5729d2
feat: add use_awsim option and add gnss imu
1222-takeshi Dec 13, 2023
662495a
feat: add GNSS
1222-takeshi Dec 13, 2023
cd145a2
feat: update for upstream
1222-takeshi Dec 13, 2023
dd21663
feat: add use_awsim option
1222-takeshi Dec 13, 2023
f5b9713
feat: change topic name
1222-takeshi Dec 13, 2023
efc9a65
comment out nebura
1222-takeshi Dec 13, 2023
3b6df96
feat: add node alive monitoring
1222-takeshi Jan 30, 2024
f7142c3
feat: add gnss
1222-takeshi Jan 30, 2024
03d73a3
feat: update ground_segmentation param
1222-takeshi Jan 30, 2024
a27c930
feat: remove use_awsim option
1222-takeshi Jan 30, 2024
5cc6419
feat: add cropbox filter
1222-takeshi Jan 30, 2024
99c7a59
feat: add diag of gyro_bias_validator
1222-takeshi Jan 31, 2024
6fc7873
chore: update for upstream
1222-takeshi Jan 31, 2024
299c263
chore: comment out for avoid no diag stale
1222-takeshi Jan 31, 2024
76c94be
feat: add gnss.launch for x1_1
1222-takeshi Feb 9, 2024
843369a
feat: use pointcloud_container
1222-takeshi Feb 9, 2024
b42ff60
fix: change topic name for ground segmentation
1222-takeshi Feb 9, 2024
199563e
feat(aip_x1_launch): rename some topics
1222-takeshi Feb 16, 2024
b02dc5e
feat(aip_x1, aip_x1_1): use interpolate
1222-takeshi Feb 20, 2024
34b87e3
feat(velodyne_node_container): use distortion_corrector
1222-takeshi Feb 26, 2024
7b74bd7
feat(ground_segmentation): change crop parameter
1222-takeshi Feb 26, 2024
66eef55
feat(obstacle_segmentation): relax ground_segmentation threshold
1222-takeshi Feb 28, 2024
f6bcfd7
chore(ground_segmentation): change parameter name
1222-takeshi Apr 4, 2024
1aa106d
ci(pre-commit): autofix
pre-commit-ci[bot] Apr 4, 2024
b6a04b7
Add missing params to ground_segmentation.param.yaml
Autumn60 Apr 5, 2024
eb68b11
ci(pre-commit): autofix
pre-commit-ci[bot] Apr 5, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions aip_x1_1_description/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
cmake_minimum_required(VERSION 3.5)
project(aip_x1_1_description)

find_package(ament_cmake_auto REQUIRED)

ament_auto_find_build_dependencies()

ament_auto_package(INSTALL_TO_SHARE
urdf
config
)
29 changes: 29 additions & 0 deletions aip_x1_1_description/config/sensor_kit_calibration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
sensor_kit_base_link:
velodyne_top_base_link:
x: 0.000
y: 0.000
z: 0.000
roll: 0.000
pitch: 0.000
yaw: 0.000
pandar_xt32_front_center_base_link:
x: 1.130
y: 0.038
z: -1.400
roll: -0.000
pitch: -0.00
yaw: 1.6225
tamagawa/imu_link:
x: 0.0
y: 0.0
z: 0.0
roll: 3.14159
pitch: 0.0
yaw: 0.0
gnss_link:
x: 0.0
y: 0.0
z: 0.0
roll: 0.0
pitch: 0.0
yaw: 0.0
8 changes: 8 additions & 0 deletions aip_x1_1_description/config/sensors_calibration.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
base_link:
sensor_kit_base_link:
x: 0.555
y: 0.000
z: 1.810
roll: 0.000
pitch: 0.000
yaw: 0.000
18 changes: 18 additions & 0 deletions aip_x1_1_description/package.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0"?>
<package format="2">
<name>aip_x1_1_description</name>
<version>0.1.0</version>
<description>The aip_x1_1_description package</description>

<maintainer email="[email protected]">Yohei Mishina</maintainer>
<license>Apache 2</license>

<buildtool_depend>ament_cmake_auto</buildtool_depend>

<depend>pandar_description</depend>
<depend>velodyne_description</depend>

<export>
<build_type>ament_cmake</build_type>
</export>
</package>
79 changes: 79 additions & 0 deletions aip_x1_1_description/urdf/sensor_kit.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,79 @@
<?xml version="1.0"?>
<robot xmlns:xacro="http://ros.org/wiki/xacro">
<xacro:macro name="sensor_kit_macro" params="parent x y z roll pitch yaw">
<xacro:include filename="$(find velodyne_description)/urdf/VLP-16.urdf.xacro"/>
<xacro:include filename="$(find imu_description)/urdf/imu.xacro"/>

<xacro:arg name="gpu" default="false"/>
<xacro:arg name="config_dir" default="$(find aip_x1_1_description)/config"/>
<xacro:property name="sensor_kit_base_link" default="sensor_kit_base_link"/>

<joint name="${sensor_kit_base_link}_joint" type="fixed">
<origin rpy="${roll} ${pitch} ${yaw}" xyz="${x} ${y} ${z}"/>
<parent link="${parent}"/>
<child link="${sensor_kit_base_link}"/>
</joint>
<link name="${sensor_kit_base_link}">
<origin rpy="0 0 0" xyz="0 0 0"/>
</link>

<!-- sensor -->
<xacro:property name="calibration" value="${load_yaml('$(arg config_dir)/sensor_kit_calibration.yaml')}"/>
<!-- lidar -->
<xacro:VLP-16
parent="sensor_kit_base_link"
name="velodyne_top"
topic="/points_raw"
hz="10"
samples="220"
gpu="$(arg gpu)"
>
<origin
xyz="${calibration['sensor_kit_base_link']['velodyne_top_base_link']['x']}
${calibration['sensor_kit_base_link']['velodyne_top_base_link']['y']}
${calibration['sensor_kit_base_link']['velodyne_top_base_link']['z']}"
rpy="${calibration['sensor_kit_base_link']['velodyne_top_base_link']['roll']}
${calibration['sensor_kit_base_link']['velodyne_top_base_link']['pitch']}
${calibration['sensor_kit_base_link']['velodyne_top_base_link']['yaw']}"
/>
</xacro:VLP-16>

<xacro:include filename="$(find pandar_description)/urdf/pandar_xt32.xacro"/>
<xacro:PandarXT-32
name="pandar_xt32_front_center"
parent="sensor_kit_base_link"
x="${calibration['sensor_kit_base_link']['pandar_xt32_front_center_base_link']['x']}"
y="${calibration['sensor_kit_base_link']['pandar_xt32_front_center_base_link']['y']}"
z="${calibration['sensor_kit_base_link']['pandar_xt32_front_center_base_link']['z']}"
roll="${calibration['sensor_kit_base_link']['pandar_xt32_front_center_base_link']['roll']}"
pitch="${calibration['sensor_kit_base_link']['pandar_xt32_front_center_base_link']['pitch']}"
yaw="${calibration['sensor_kit_base_link']['pandar_xt32_front_center_base_link']['yaw']}"
/>
<!-- gnss -->
<xacro:imu_macro
name="gnss"
parent="sensor_kit_base_link"
namespace=""
x="${calibration['sensor_kit_base_link']['gnss_link']['x']}"
y="${calibration['sensor_kit_base_link']['gnss_link']['y']}"
z="${calibration['sensor_kit_base_link']['gnss_link']['z']}"
roll="${calibration['sensor_kit_base_link']['gnss_link']['roll']}"
pitch="${calibration['sensor_kit_base_link']['gnss_link']['pitch']}"
yaw="${calibration['sensor_kit_base_link']['gnss_link']['yaw']}"
fps="100"
/>
<!-- imu -->
<xacro:imu_macro
name="tamagawa/imu"
parent="sensor_kit_base_link"
namespace=""
x="${calibration['sensor_kit_base_link']['tamagawa/imu_link']['x']}"
y="${calibration['sensor_kit_base_link']['tamagawa/imu_link']['y']}"
z="${calibration['sensor_kit_base_link']['tamagawa/imu_link']['z']}"
roll="${calibration['sensor_kit_base_link']['tamagawa/imu_link']['roll']}"
pitch="${calibration['sensor_kit_base_link']['tamagawa/imu_link']['pitch']}"
yaw="${calibration['sensor_kit_base_link']['tamagawa/imu_link']['yaw']}"
fps="100"
/>
</xacro:macro>
</robot>
21 changes: 21 additions & 0 deletions aip_x1_1_description/urdf/sensors.xacro
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
<?xml version="1.0"?>
<robot name="vehicle" xmlns:xacro="http://ros.org/wiki/xacro">

<xacro:arg name="config_dir" default="$(find aip_x1_1_description)/config"/>
<xacro:include filename="$(find aip_x1_1_description)/urdf/sensor_kit.xacro"/>
<xacro:property name="calibration" value="${load_yaml('$(arg config_dir)/sensors_calibration.yaml')}"/>

<!-- sensor kit -->
<xacro:sensor_kit_macro
parent="base_link"
x="${calibration['base_link']['sensor_kit_base_link']['x']}"
y="${calibration['base_link']['sensor_kit_base_link']['y']}"
z="${calibration['base_link']['sensor_kit_base_link']['z']}"
roll="${calibration['base_link']['sensor_kit_base_link']['roll']}"
pitch="${calibration['base_link']['sensor_kit_base_link']['pitch']}"
yaw="${calibration['base_link']['sensor_kit_base_link']['yaw']}"
/>

<!-- embedded sensors -->

</robot>
15 changes: 15 additions & 0 deletions aip_x1_1_launch/CMakeLists.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
cmake_minimum_required(VERSION 3.5)
project(aip_x1_1_launch)

find_package(ament_cmake_auto REQUIRED)
ament_auto_find_build_dependencies()

if(BUILD_TESTING)
find_package(ament_lint_auto REQUIRED)
ament_lint_auto_find_test_dependencies()
endif()

ament_auto_package(INSTALL_TO_SHARE
launch
config
)
80 changes: 80 additions & 0 deletions aip_x1_1_launch/config/diagnostic_aggregator/sensor_kit.param.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
/**:
ros__parameters:
sensing:
type: diagnostic_aggregator/AnalyzerGroup
path: sensing
analyzers:
node_alive_monitoring:
type: diagnostic_aggregator/AnalyzerGroup
path: node_alive_monitoring
analyzers:
topic_status:
type: diagnostic_aggregator/GenericAnalyzer
path: topic_status
contains: [": sensing_topic_status"]
timeout: 1.0
lidar:
type: diagnostic_aggregator/AnalyzerGroup
path: lidar
analyzers:
velodyne:
type: diagnostic_aggregator/AnalyzerGroup
path: velodyne
analyzers:
health_monitoring:
type: diagnostic_aggregator/AnalyzerGroup
path: health_monitoring
analyzers:
connection:
type: diagnostic_aggregator/GenericAnalyzer
path: connection
contains: [": velodyne_connection"]
timeout: 3.0

temperature:
type: diagnostic_aggregator/GenericAnalyzer
path: temperature
contains: [": velodyne_temperature"]
timeout: 3.0

rpm:
type: diagnostic_aggregator/GenericAnalyzer
path: rpm
contains: [": velodyne_rpm"]
timeout: 3.0
front:
type: diagnostic_aggregator/AnalyzerGroup
path: front
analyzers:
health_monitoring:
type: diagnostic_aggregator/AnalyzerGroup
path: health_monitoring
analyzers:
connection:
type: diagnostic_aggregator/GenericAnalyzer
path: connection
contains: [": pandar_connection"]
timeout: 1.0
temperature:
type: diagnostic_aggregator/GenericAnalyzer
path: temperature
contains: [": pandar_temperature"]
timeout: 1.0
ptp:
type: diagnostic_aggregator/GenericAnalyzer
path: ptp
contains: [": pandar_ptp"]
timeout: 1.0
imu:
type: diagnostic_aggregator/AnalyzerGroup
path: imu
analyzers:
bias_monitoring:
type: diagnostic_aggregator/AnalyzerGroup
path: bias_monitoring
analyzers:
gyro_bias_validator:
type: diagnostic_aggregator/GenericAnalyzer
path: gyro_bias_validator
contains: [": gyro_bias_validator"]
timeout: 1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
pcl_grid_map_extraction:
num_processing_threads: 12
cloud_transform:
translation:
x: 0.0
y: 0.0
z: 0.0
rotation: # intrinsic rotation X-Y-Z (r-p-y)sequence
r: 0.0
p: 0.0
y: 0.0
cluster_extraction:
cluster_tolerance: 0.2
min_num_points: 3
max_num_points: 1000000
outlier_removal:
is_remove_outliers: false
mean_K: 10
stddev_threshold: 1.0
downsampling:
is_downsample_cloud: false
voxel_size:
x: 0.02
y: 0.02
z: 0.02
grid_map:
min_num_points_per_cell: 3
resolution: 0.3
height_type: 1
height_thresh: 1.0
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
/**:
ros__parameters:
additional_lidars: []
ransac_input_topics: [
"/sensing/lidar/front_center/pointcloud"
]
use_single_frame_filter: True
use_time_series_filter: False

common_crop_box_filter:
parameters:
min_x: -100.0
max_x: 150.0
min_y: -70.0
max_y: 70.0
margin_max_z: 0.0 # to extend the crop box max_z from vehicle_height
margin_min_z: -2.5 # to extend the crop box min_z from ground
negative: False

common_ground_filter:
plugin: "ground_segmentation::ScanGroundFilterComponent"
parameters:
global_slope_max_angle_deg: 10.0
local_slope_max_angle_deg: 13.0 # recommended 30.0 for non elevation_grid_mode
split_points_distance_tolerance: 0.2
use_virtual_ground_point: True
split_height_distance: 0.2
non_ground_height_threshold: 0.20
grid_size_m: 0.5
grid_mode_switch_radius: 20.0
gnd_grid_buffer_size: 4
detection_range_z_max: 2.5
elevation_grid_mode: true

# common_ground_filter:
# plugin: "ground_segmentation::RayGroundFilterComponent"
# parameters:
# min_x: -0.01
# max_x: +0.01
# min_y: -0.01
# max_y: +0.01
# use_vehicle_footprint: True
# general_max_slope: 10.0
# local_max_slope: 10.0
# initial_max_slope: 10.0
# radial_divider_angle: 1.0
# min_height_threshold: 0.3
# concentric_divider_distance: 0.0
# reclass_distance_threshold: 0.1

short_height_obstacle_detection_area_filter:
parameters:
min_x: 0.0
max_x: 21.6 # max_x: 20.0m + base_link2xt32_front_center distance 1.6m
min_y: -4.0
max_y: 4.0
min_z: -0.5
max_z: 0.5
negative: False

ransac_ground_filter:
parameters:
# base_frame: base_link
unit_axis: "z"
max_iterations: 50
min_trial: 200
min_points: 400
outlier_threshold: 0.1
plane_slope_threshold: 10.0
voxel_size_x: 0.1
voxel_size_y: 0.1
voxel_size_z: 0.1
height_threshold: 0.10
debug: False
Loading
Loading