从零配置Livox Mid-360到Faster-LIO:一份给ROS Noetic新手的保姆级环境搭建清单
从零配置Livox Mid-360到Faster-LIO一份给ROS Noetic新手的保姆级环境搭建清单第一次接触Livox Mid-360激光雷达和SLAM算法时我完全被各种依赖项和编译错误搞懵了。ROS Noetic环境下的配置过程就像走迷宫稍有不慎就会陷入版本冲突、路径错误的泥潭。经过三个项目的实战积累我总结出这套零基础也能上手的完整配置方案特别适合刚接触Livox设备需要在Ubuntu 20.04上搭建Faster-LIO开发环境的工程师。1. 基础环境准备打造稳定的ROS开发地基在Ubuntu 20.04上配置ROS Noetic就像盖房子打地基基础不牢后续所有工作都会摇摇欲坠。我强烈建议使用纯净系统开始避免历史安装残留导致的玄学问题。关键组件版本要求Ubuntu 20.04.6 LTS内核5.15ROS Noetic Ninjemys完整桌面版Python 3.8ROS Noetic默认版本安装ROS时最容易踩的坑是网络源配置。清华源虽然速度快但偶尔会出现包不全的情况。这是我的备用方案# 首选官方源耐心等待 sudo sh -c echo deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main /etc/apt/sources.list.d/ros-latest.list # 当官方源超时时切换中科大源 sudo sh -c . /etc/lsb-release echo deb http://mirrors.ustc.edu.cn/ros/ubuntu/ $DISTRIB_CODENAME main /etc/apt/sources.list.d/ros-latest.list安装完成后务必验证核心功能是否正常# 测试ROS核心服务 roscore # 后台启动 rosnode list # 应显示/rosout rostopic list # 应显示/rosout等基础话题提示如果遇到Unable to contact my own server错误检查~/.bashrc中是否有冲突的ROS版本环境变量2. Livox Mid-360驱动安装从硬件连接到点云可视化Livox设备的独特之处在于其非标网络通信协议这要求我们必须先安装专用SDK才能驱动雷达。最新Livox SDK2采用更高效的通信机制但也带来了新的编译依赖。硬件连接检查清单使用附带的万兆网线连接雷达与主机主机网卡需支持1000Mbps全双工模式雷达供电需稳定建议使用原装电源适配器安装SDK2时最常遇到的问题是libpcap依赖缺失# 预装编译依赖 sudo apt-get install -y libpcap-dev libboost-all-dev # 编译安装Livox SDK2 git clone https://github.com/Livox-SDK/Livox-SDK2.git cd Livox-SDK2 mkdir build cd build cmake .. -DCMAKE_BUILD_TYPERelease # 一定要指定Release模式 make -j$(nproc) sudo make install雷达IP配置是个精细活MID360_config.json中有两处关键设置需要匹配{ host_net_info: { cmd_data_ip: 192.168.1.50, // 主机IP point_data_ip: 192.168.1.50 }, lidar_configs: [{ ip: 192.168.1.126, // 雷达IPSN后两位 pcl_data_type: 1 // 点云格式0为Livox自定义1为PCL标准 }] }验证驱动是否正常工作# 在新终端运行 roslaunch livox_ros_driver2 rviz_MID360.launch # 正常应看到绿色点云数据注意如果rviz中无数据显示先用ping测试物理连接再检查防火墙设置sudo ufw disable3. 编译器与TBB库Faster-LIO的性能基石Faster-LIO对编译器版本有严格要求gcc/g 9是必须项。但直接升级系统编译器可能导致ROS崩溃这里推荐更安全的方案双编译器共存方案# 安装gcc-9但不替换系统默认 sudo apt-get install -y gcc-9 g-9 # 为Faster-LIO单独配置编译环境 cat EOF ~/catkin_ws/fasterlio_env.sh export CC/usr/bin/gcc-9 export CXX/usr/bin/g-9 EOFTBB库的编译是另一个大坑2019_U8版本与新版gcc存在兼容性问题。这是我验证过的编译参数wget https://github.com/intel/tbb/archive/2019_U8.tar.gz tar zxvf 2019_U8.tar.gz cd oneTBB-2019_U8 # 关键修改指定gcc-9和C17标准 make compilergcc-9 stdverc17 tbb_build_prefixrelease安装后必须正确设置动态链接库路径否则运行时会出现libtbb.so.2 not found错误# 系统级安装 sudo cp -r include /usr/local/tbb-2019_U8/include sudo cp -r build/release_release /usr/local/tbb-2019_U8/lib # 永久生效配置 echo export LD_LIBRARY_PATH/usr/local/tbb-2019_U8/lib:$LD_LIBRARY_PATH ~/.bashrc source ~/.bashrc验证TBB是否生效# 运行测试程序 cd examples make ./test_parallel_for # 应看到多线程执行输出4. Faster-LIO编译与调参从源码到实时建图终于来到核心环节Faster-LIO的编译过程就像在拆炸弹稍有不慎就会前功尽弃。关键是要处理好与livox_ros_driver2的共存问题。编译前必做操作cd ~/catkin_ws/src git clone https://github.com/gaoxiang12/faster-lio.git # 解决驱动冲突关键步骤 rm -rf faster-lio/thirdparty/livox_ros_driver sed -i s/add_subdirectory(thirdparty\/livox_ros_driver)/# / faster-lio/CMakeLists.txt修改CMakeLists.txt中的链接路径是成败关键要用绝对路径指定TBB库target_link_libraries(${PROJECT_NAME} ${catkin_LIBRARIES} ${PCL_LIBRARIES} /usr/local/tbb-2019_U8/lib/libtbb.so.2 /usr/local/tbb-2019_U8/lib/libtbbmalloc.so.2 )启动建图前需要根据实际环境调整avia.yaml参数# 点云降采样配置室内环境建议值 point_filter_num: 3 # 雷达-IMU外参微调单位米/弧度 extrinsic_T: [0, 0, 0] extrinsic_R: [0, 0, 0]最终启动命令组合# 终端1启动雷达驱动 source ~/catkin_ws/devel/setup.bash roslaunch livox_ros_driver2 msg_MID360.launch # 终端2启动Faster-LIO source ~/catkin_ws/fasterlio_env.sh roslaunch faster_lio mapping_avia.launch实测数据在i7-11800H处理器上Faster-LIO处理Mid-360点云可达25Hz更新频率内存占用约1.2GB5. 仿真环境搭建Gazebo中的Livox Mid-360模拟有时候真实设备不在身边或者需要测试极端场景仿真环境就显得尤为重要。XTDrone提供的Gazebo插件可以高度还原Livox特性。仿真与真实环境的差异对比特性真实环境仿真环境点云噪声有环境干扰可配置噪声模型刷新频率固定硬件限制可自由调整故障模拟不可控可注入特定故障硬件成本高设备场地仅需计算资源安装仿真插件时需要特别注意点云格式转换// 修改livox_points_plugin.cpp publishPointCloudType 0; // 0PointCloud, 1PointCloud2完整的仿真启动流程# 克隆仿真插件 cd ~/catkin_ws/src git clone https://github.com/Luchuanzhao/Livox_simulation.git # 编译并启动Gazebo catkin_make roslaunch livox_laser_simulation mid360_IMU_platform.launch在RViz中添加PointCloud2显示话题选择/livox/lidar即可看到仿真点云。我常用以下参数测试算法鲁棒性!-- 在mid360_IMU_platform.xacro中配置 -- noise typegaussian/type mean0.0/mean stddev0.03/stddev !-- 添加3cm噪声 -- /noise6. 常见问题排坑指南Q1编译时报错undefined reference to tbb::internal::allocate_root_with_context_proxy...A这是典型的TBB链接问题检查LD_LIBRARY_PATH是否包含TBB库路径CMakeLists.txt是否使用绝对路径链接.so文件是否混用了不同版本的TBBQ2rviz中能看到点云但Faster-LIO没有输出A按以下步骤排查# 检查话题连通性 rostopic list | grep cloud_registered # 应看到/faster_lio/cloud_registered # 检查TF树 rosrun tf view_frames # 查看map-odom-livox_frame链路是否完整Q3仿真点云与实物数据差异大A需要调整两个参数修改mid360.csv扫描模式文件调整livox_points_plugin.cpp中的垂直FOV参数默认-7.22°~55.22°性能优化建议在avia.yaml中调大point_filter_num可提升处理速度启用use_imu_as_input选项可提高初始估计精度对于大场景将max_iteration从3降到2可节省30%计算资源
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2496522.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!