我用mid360录制的bag包,激光雷达的数据类型是sensor_msgs::PointCloud2,但是运行fast_lio中的mid360 launch文件,会报错(没截图),显示无法从livox_ros_driver2::CustomMsg转换到sensor_msgs::PointCloud2。这是因为fast_lio中默认mid360雷达的消息格式为livox_ros_driver2::CustomMsg。这个时候有两种方法,一是改录制的bag包的消息格式,二是修改fast_lio源码。我选择的是第二种。
一、修改livox_pcl_cbk中的消息格式
首先修改lasermapping.cpp中的livox_pcl_cbk中的消息格式
二、lidar_type设置为了2
修改完第一步编译通过,但是播放数据集时,会发现rviz没有点云,同时终端一直显示点云为空。这个时候我直接把mid360.yaml文件中的lidar_type设置为了2,后面进行处理的时候点云直接按照 velodyne格式修改
三、最终结果:终端会提示
Failed to find match for field 'ring'.
Failed to find match for field 'time'.
这是因为只处理了XYZI字段,而实际录制的bag包中还有ring和time两个字段