Skip to content

[ROS][feat] Autocompute parameters in converters

Tong Fu requested to merge ROS/feat/AutocomputeParametersInConverters into master

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

Capture_d_écran_de_2024-01-05_11-37-10

Time

Average time master this MR
Velodyne Conversion 1.31ms 2.52ms

Output

  • Here is a screenshot of the SLAM result
    • For Velodyne: velodyne
    • For Hesai: hesai
    • For Ouster: Capture_d<span data-escaped-char>_</span>écran_de_2023-12-28_14-23-55
    • For robosense: robosense
  • 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
Edited by Tong Fu

Merge request reports