LIO-SAM:Livox-Mid-360点云适配

前言:

原版的LIO-SAM代码支持的雷达类型都是机械旋转式激光雷达,其主要特点是点云数据以线束顺序进行排列,LIO-SAM中对于角特征和面特征的提取也是利用了这一特点,数据没有线束的然而固态激光雷达的点云概念,不是按照线束顺序进行排列的,因此直接将Livox-Mid-360的点云数据放入LIO-SAM中是无法运行的。

通过查看其余适配Livox-Mid-360雷达的LIO-SAM版本代码后总结了以下两种方法

方式一:采用livox_ros_driver的自定义点云数据CustomMsg

此方式来自:GitHub - nkymzsy/LIO-SAM-MID360

采用Livox的ROS驱动包中的自定义点云数据CustomMsg,即LIVOX ROS驱动请运行livox_lidar_msg.launch。

LIVOX ROS驱动包livox_ros_driver可以启动Livox雷达,并采集Lidar数据转化成自定义点云数据CustomMsg并发布出去。自定义点云数据CustomMsg的信息如下:

Header header             # ROS standard message header
uint64 timebase           # The time of first point
uint32 point_num          # Total number of pointclouds
uint8  lidar_id           # Lidar device id number
uint8[3]  rsvd            # Reserved use
CustomPoint[] points      # Pointcloud data

上述自定义数据包中的自定义点云(CustomPoint)格式 :

uint32 offset_time      # offset time relative to the base time
float32 x               # X axis, unit:m
float32 y               # Y axis, unit:m
float32 z               # Z axis, unit:m
uint8 reflectivity      # reflectivity, 0~255
uint8 tag               # livox tag
uint8 line              # laser number in lidar

采用这种自定义的点云格式,在livox的ROS驱动包中,将Mid-360的点云数据等效于以线束顺序进行排列,这样就不需要修改LIO-SAM的框架了。

但是原版的LIO-SAM框架接受点云时定义的数据类型都是ROS提供的点云消息类型sensor_msgs::PointCloud2类型,因此采用这种方式就需要把LIO-SAM中所有的接受点云数据类型改成livox_ros_driver::CustomMsg类型。

优缺点:

优点:不需要修改LIO-SAM框架,只需要修改接受点云数据的类型,不会损耗LIO-SAM的运行效率。

缺点:修改接受点云数据的类型后只能适配Livox的激光雷达,其余厂商的雷达数据将不能使用。

方式二:修改LIO-SAM特征提取的方法


待更新

 

你可能感兴趣的:(SLAM学习笔记,LOAM系列阅读笔记,笔记,机器人,算法)