Fast_Lio系列(1)——从零搭建Livox Mid360与FAST_LIO的融合开发环境

张开发
2026/4/16 0:37:47 15 分钟阅读

分享文章

Fast_Lio系列(1)——从零搭建Livox Mid360与FAST_LIO的融合开发环境
1. 环境搭建前的准备工作刚拿到Livox Mid360雷达时我第一反应就是赶紧接上电脑跑个算法试试。但实际操作中发现这套设备的环境搭建就像搭积木底层没摆正上层就会垮。这里先给大家梳理清楚三个核心组件的关系Livox-SDK2相当于雷达的翻译官负责把硬件发出的二进制数据转换成可读的结构化数据。没有它你的电脑根本听不懂雷达在说什么livox_ros_driver2扮演快递员角色把翻译好的数据打包成ROS标准格式的消息FAST_LIO这才是真正的大脑负责处理数据并输出定位建图结果这三个组件必须按顺序安装就像盖房子要先打地基再砌墙。我刚开始图省事直接装FAST_LIO结果编译报错折腾了半天。特别提醒Mid360必须用SDK2而不是旧版SDK因为它的多回波模式和更高采样率需要新版SDK支持。2. 安装Livox-SDK2详细步骤2.1 基础依赖安装先确保系统有最新版CMake这是编译的基石。在Ubuntu终端执行sudo apt update sudo apt install -y cmake git build-essential有次我在旧系统上装完直接编译结果遇到C17特性不支持的问题。后来发现是系统默认的gcc版本太低建议先检查gcc --version # 确保版本≥7.52.2 编译SDK2源码推荐在home目录下新建工作空间避免路径混乱mkdir -p ~/livox_ws cd ~/livox_ws git clone https://github.com/Livox-SDK/Livox-SDK2.git --depth1这里有个小技巧加上--depth1只克隆最新commit能节省下载时间。进入项目后编译cd Livox-SDK2 mkdir build cd build cmake .. -DCMAKE_BUILD_TYPERelease # 一定要加Release优化 make -j$(nproc) # 使用所有CPU核心加速编译 sudo make install # 安装到系统目录编译成功后建议运行单元测试验证./livox_sdk2_unit_test3. 搭建FAST_LIO工作空间3.1 创建ROS工程结构ROS工作空间的目录结构有讲究我习惯用这样的布局mkdir -p ~/fast_lio_ws/src cd ~/fast_lio_ws/src这里有个易错点很多人直接克隆FAST_LIO结果漏了子模块。正确做法是git clone https://github.com/hku-mars/FAST_LIO.git cd FAST_LIO git submodule update --init --recursive3.2 安装livox_ros_driver2这是连接SDK2和ROS的桥梁必须单独编译cd ~/fast_lio_ws/src git clone https://github.com/Livox-SDK/livox_ros_driver2.git cd livox_ros_driver2 ./build.sh ROS1 # 注意根据ROS版本选择遇到过最坑的问题是网络超时导致编译失败。这时可以修改build.sh在wget命令后加上--timeout30参数。4. 关键代码修改指南4.1 适配Mid360的配置修改FAST_LIO原本是为livox_ros_driver设计的需要手动适配driver2。主要修改三处CMakeLists.txt把所有livox_ros_driver替换为livox_ros_driver2package.xml更新依赖项名称头文件引用例如在preprocess.h中修改为#include livox_ros_driver2/CustomMsg.h我专门写了个sed命令批量替换find . -type f -exec sed -i s/livox_ros_driver/livox_ros_driver2/g {} 4.2 网络配置实战Mid360的IP配置是个大坑分三步走修改电脑IP在Ubuntu网络设置里改成静态IP例如192.168.1.5配置雷达IP查看设备SN码后两位前面加1。比如SN尾号50雷达IP就是192.168.1.150修改配置文件调整MID360_config.json中的对应字段{ host_net_info: { cmd_data_ip: 192.168.1.5, push_msg_ip: 192.168.1.5 }, lidar_configs: [{ ip: 192.168.1.150 }] }5. 编译与调试技巧5.1 分步编译策略由于依赖关系复杂建议分步编译cd ~/fast_lio_ws catkin_make --pkg livox_ros_driver2 # 先单独编译驱动 catkin_make --pkg fast_lio # 再编译算法遇到编译错误时可以启用详细日志catkin_make -DCMAKE_VERBOSE_MAKEFILEON5.2 常见问题解决点云数据异常检查MID360_config.json中的pcl_data_type应为1表示XYZ格式时间戳不同步在launch文件中添加param nametimestamp_type value1/IMU数据缺失确认配置文件中的imu_data_port与雷达设置一致6. 实际运行测试启动顺序很关键必须按这个流程先启动雷达驱动roslaunch livox_ros_driver2 msg_MID360.launch看到绿色提示Device[0] start sample success才算成功再启动FAST_LIO建图roslaunch fast_lio mapping_mid360.launch建议用rviz实时查看点云rosrun rviz rviz -d $(rospack find fast_lio)/rviz_cfg/loam_livox.rviz第一次运行时建议缓慢移动雷达观察地图构建效果。如果出现漂移可能需要调整mapping_mid360.launch中的IMU噪声参数。

更多文章