本文主要分享一下在运行fast_lio2时遇到的问题以及解决办法
Fast-LIO2 启动后 RVIZ 不显示点云?最全排查与解决记录(Livox Mid-360 为例)
1. 问题背景
在 ROS 环境下使用 Livox Mid-360 雷达运行 Fast-LIO2 算法,执行roslaunch fast_lio mapping_mid360.launch后,所有节点(/laserMapping、/livox_lidar_publisher2、/rviz)均正常启动,但在 RVIZ 中看不到任何点云。
这通常是数据链路、坐标系或配置参数出现问题。本文记录从排查到最终解决的全过程,为遇到同类问题的开发者提供参考。
2. 排查命令
在开始之前,请先确认以下命令的输出:
bash
rosnode list # 查看所有节点 rostopic list # 查看所有话题 rostopic info /livox/lidar # 查看激光话题的类型及订阅关系 rostopic echo /cloud_registered -n1 # 检查FAST-LIO2输出的地图话题 rostopic hz /livox/lidar # 检查雷达数据频率3. 如果节点正常,但RVIZ 无点云
例如我这里的节点列表显示:
/laserMapping /livox_lidar_publisher2 /rosout /rviz说明 SLAM 节点与驱动节点均已启动且没有崩溃。于是重点排查数据流通和RVIZ 配置。
4.解决方案:修改xfer_format参数
Livox 驱动通过xfer_format控制发布的消息类型:
| xfer_format | 消息类型 | 说明 |
|---|---|---|
| 0 | sensor_msgs/PointCloud2 | 标准点云格式,可直接在 RVIZ 预览 |
| 1 | livox_ros_driver2::CustomMsg | Fast-LIO2 所必须的格式 |
| 2 | pcl::PointXYZI | PCL 点云格式 |
因此需要将xfer_format改为1。
4.1 定位配置文件
问题在于,直接打开mapping_mid360.launch可能找不到这个参数。
实际上它在Livox 驱动的 launch 文件中定义,例如msg_MID360.launch(位于livox_ros_driver2/launch/)。在mapping_mid360.launch中通常会通过<include>或<node>引用它。
4.2 修改方式
打开驱动的 launch 文件,可以看到类似内容:
下面是我的文件路径,msg_MID360.launch就是我们要修改的文件
我要修改的是第六行,xfer_format
<arg name="xfer_format" default="0"/> <!-- 将默认值改为 1 --> <!-- ... --> <param name="xfer_format" value="$(arg xfer_format)"/>最后再重新运行就可以看见点云