[ROS][feat] Add Hesai converter
Goal
Add a converter node between Hesai driver output and Lidar SLAM node
Changes
- Add a new node for Hesai point conversion
- Based on velodyne node
- Remove the time of the frame from the time of the points
- Add a launch file slam_hesai with this conversion node
- The hesai point is added to external includes. It is taken from here
Results
Reproduce
Data
LD data from wheezy -> Hesai XT32
Build
catkin build --cmake-args -DCMAKE_BUILD_TYPE=Release
Parameters
No change
Run
roslaunch lidar_slam slam_hesai.launch
rosbag play --clock path/to/hesai_bag.bag
Output
- Here is a resulting map built with this converter.
Checklist
-
Camel case everywhere except for ROS variables/parameters -
Lower case for local variables and lambda functions -
Upper case for pour members, methods and tool functions (in Utils) -
Precise namespace when calling a function (or this->X or classe.X) -
Align code (for multiline if and while, "&&" or "||" go in upper line to ensure alignement) -
Space between if, while, for and parenthesis -
Space between operators and variables: e.g. a + b -
Space after "," -
Mind your commit titles/desc (plurals, he/she + "s", correct tags, title should begin by a verb...) -
Function names should start with a verb, variable names should start with a name -
Macros should be between {} -
Do not use negative boolean (i.e. noJoe) -
Check minimal size of the types (double -> float -> int -> uint) -
Check const and ref in functions arguments -
References should be written "type& name", not "type &name" -
Update documentation if needed -
Add MR labels [ROS]/[ROS2]/[PV] -
If ros/ros2, update task table here -
Add a comment over each non trivial function in header files -
Add a header to each new file
What remains to do
WARNING : The dual return mode of Hesai driver is not handled in the converter and can cause the SLAM to have a weird behavior (bad keypoints extraction)
Edited by Tong Fu