赞
踩
原版的LIO-SAM代码支持的雷达类型都是机械旋转式激光雷达,其主要特点是点云数据以线束顺序进行排列,LIO-SAM中对于角特征和面特征的提取也是利用了这一特点,数据没有线束的然而固态激光雷达的点云概念,不是按照线束顺序进行排列的,因此直接将Livox-Mid-360的点云数据放入LIO-SAM中是无法运行的。
通过查看其余适配Livox-Mid-360雷达的LIO-SAM版本代码后总结了以下两种方法:
此方式来自: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的激光雷达,其余厂商的雷达数据将不能使用。
待更新
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。