[ROS][feat] Autocompute parameters in converters
Goal
This MR is to synchronise the changes done for converters in ros_wrapping. Please see especially in MR !284 (merged) ros_wrapping.
Changes
- Some parameters are auto computed for lidar points conversion.
Results
Reproduce
Data
- velodyne: car_loop
- hesai: hesai_car
- ouster: os1-128-roof-parking
- robosense: pointcloud_partial_2023-10-02-18-22-29.bag
Build
catkin build --cmake-args -DCMAKE_BUILD_TYPE=Release
Parameters
- Change the parameters in
lidar_conversions/params/conversion_config.yaml
:- nb_lasers :
- possible_frequencies : choose the right parameters for each data
Run
- For Velodyne:
roslaunch lidar_slam slam_velodyne.launch
and rosbag play --clock path/to/velodynebag.bag
- For Hesai:
roslaunch lidar_slam slam_hesai.launch
and rosbag play --clock path/to/hesaibag.bag
for the data I tested, the frame_id in slam_hesai.launch need to be changed to hesai
- For Ouster:
roslaunch lidar_slam slam_ouster.launch
and rosbag play --clock path/to/ousterbag.bag /os_clound_node/points:=/ouster/points
- For Robosense:
In lidar_slam/params/slam_config_indoor.yaml
, change parameter:
-tracking_frame: "bpearl_back_left_frame"
In the first terminal, launch robesense conversion node:
rosrun lidar_conversions robosense_conversion_node
In the second terminal, launch slam node:
roslaunch lidar_slam slam_velodyne.launch outdoor:=false
In the third terminal, launch rosbag:
rosbag play --clock path/to/robosensedata.bag /lidars/bpearl_back_left:=/rslidar_points
Performance
Trajectory of slam
- Green trajectory: slam result of master branch
- Red trajectory: slam result of this MR
Time
Average time | master | this MR |
---|---|---|
Velodyne Conversion | 1.31ms | 2.52ms |
Output
- Here is a screenshot of the SLAM result
- Here are resulting maps and trajectories: link
CI
The ros tests of the CI didn't pass. Because the new converters use the two first frames to compute RotationDuration
and these two frames are not used in slam. So the result of slam trajectory is slightly different.
It is verified with the debug commit in this MR. In this commit, we force to use the first two frames and the CI passed. See in this pipeline.
Remains to do:
-
Compare master and this MR on velodyne data -
Test livox bag