
简介这份资源是面向机器人、自动驾驶与无人机方向研究人员和工程师的集成教程聚焦在Ubuntu 18.04环境下完成mid360激光雷达、Livox SDK2、Livox ROS driver2与FAST-LIO2的部署与联调帮助读者打通从传感器驱动到LiDAR-惯性里程计定位的完整链路。压缩包内共1个文件为单个html文档整体约21KB内容以图文步骤形式组织便于按章节顺序查阅与对照操作。目前已有951人学习说明该集成方案在相关开发者群体中具有一定参考价值。教程覆盖SDK安装、ROS驱动配置、点云与IMU数据融合调试等关键环节读者可据此搭建可复现的定位导航实验环境理解各组件之间的接口关系与常见问题排查思路适合具备一定ROS基础、希望快速上手mid360与FAST-LIO2的中高级开发者参考。1. 从一台 Mid-360 到一张可用点云地图这套链路到底解决什么问题手里拿到 Livox Mid-360 之后真正让人卡住的往往不是雷达本身而是从驱动到建图的整条链路怎么串。Mid-360 是 Livox 推出的固态激光雷达视场角 360°×59°体积小、重量轻适合无人机、机器人和手持建图场景。但它的数据格式和传统机械式雷达不同不能直接喂给标准 ROS 驱动必须经过 Livox-SDK2 和 livox_ros_driver2 两层转换才能输出 FAST-LIO2 能吃的点云话题。这套链路的目标很明确让 Mid-360 在 ROS 环境下稳定输出点云再由 FAST-LIO2 完成紧耦合激光惯性里程计最终得到可用的位姿轨迹和点云地图。适合谁做机器人定位建图、无人机导航、手持扫描的工程师尤其是那些已经有一台 Mid-360 但还没跑通完整链路的从业者。我见过太多人卡在驱动编译报错、话题对不上、外参不准这几个环节上。这篇内容就是把这几个环节拆开每一步给出可复现的命令和参数让你少走弯路。2. 环境搭建与驱动编译从 Livox-SDK2 到 livox_ros_driver22.1 为什么必须装 Livox-SDK2 而不是旧版 SDKLivox 早期用的是 Livox-SDK只支持部分老型号。Mid-360 必须用 Livox-SDK2这是底层通信库负责和雷达硬件做数据交互。livox_ros_driver2 是 ROS 封装层依赖 Livox-SDK2 提供的接口。如果你只装 livox_ros_driver 而不装 SDK2编译时会直接报找不到 livox_sdk 的错。常见做法是先编译安装 Livox-SDK2再编译 livox_ros_driver2。顺序不能反否则驱动找不到底层库。# 安装 Livox-SDK2 git clone https://github.com/Livox-SDK/Livox-SDK2.git cd Livox-SDK2 mkdir build cd build cmake .. make -j$(nproc) sudo make install sudo ldconfig这段命令做了三件事克隆 SDK2 源码、编译生成动态库、安装到系统路径并刷新链接缓存。make -j$(nproc)用满所有 CPU 核心加速编译sudo ldconfig让系统能找到新装的库。如果跳过ldconfig后续编译驱动时会报liblivox_sdk.so not found。2.2 livox_ros_driver2 的编译与 ROS 版本适配livox_ros_driver2 支持 ROS1 和 ROS2但编译方式不同。ROS1 用 catkinROS2 用 colcon。Mid-360 在 ROS2 下的支持已经比较成熟但如果你用的是 ROS1 Noetic需要确认驱动分支是否匹配。# ROS1 编译方式 cd ~/catkin_ws/src git clone https://github.com/Livox-SDK/livox_ros_driver2.git cd .. catkin_make source devel/setup.bash编译完成后驱动会生成livox_ros_driver2_node可执行文件。启动前需要确认雷达的 IP 地址和主机在同一网段。Mid-360 默认 IP 是 192.168.1.1xx 段主机需要配一个同网段的静态 IP。# 配置主机网络以有线网卡为例 sudo ifconfig eth0 192.168.1.50 netmask 255.255.255.0这一步是血泪经验很多人插上网线后发现 ping 不通雷达就是因为主机没有配同网段 IP。Mid-360 不会自动分配地址必须手动配。2.3 配置文件的关键参数怎么改livox_ros_driver2 的配置文件在config/目录下MID360_config.json 是核心。里面有几个参数必须改对参数名作用常见值lidar_ip雷达 IP192.168.1.1xxhost_ip主机 IP192.168.1.50data_src数据源0 表示雷达直连publish_freq点云发布频率10 Hzxfer_format点云格式1 表示 PointCloud2xfer_format设为 1 时输出标准 sensor_msgs/PointCloud2FAST-LIO2 直接能订阅。如果设为 0输出的是 Livox 自定义格式需要额外转换。publish_freq建议设 10 Hz和 FAST-LIO2 的默认处理频率匹配太高会导致丢帧太低会影响建图精度。改完配置后启动驱动roslaunch livox_ros_driver2 msg_MID360.launch如果终端能看到点云话题/livox/lidar在发布说明驱动链路通了。用rostopic hz /livox/lidar检查频率是否稳定在 10 Hz 左右。3. FAST-LIO2 的编译与配置让点云和 IMU 真正融合3.1 FAST-LIO2 依赖项与编译顺序FAST-LIO2 依赖 Eigen、PCL、Sophus 等库。编译前先确认这些库已安装。Ubuntu 下用 apt 装最省事sudo apt install libeigen3-dev libpcl-dev libyaml-cpp-devSophus 需要源码编译因为 apt 版本可能不兼容。常见做法是从 GitHub 克隆 Sophus 并安装到系统路径。git clone https://github.com/strasdat/Sophus.git cd Sophus mkdir build cd build cmake .. make -j$(nproc) sudo make install然后编译 FAST-LIO2cd ~/catkin_ws/src git clone https://github.com/hku-mars/FAST_LIO.git cd .. catkin_make source devel/setup.bash编译过程中如果报find_package(Sophus REQUIRED)失败检查 Sophus 是否装到了/usr/local/lib。有时候需要手动指定Sophus_DIR路径。3.2 配置文件里的外参和内参怎么填FAST-LIO2 的配置文件在config/目录下mid360.yaml 是 Mid-360 的配置模板。核心参数分三类外参、内参、算法参数。外参是雷达和 IMU 之间的相对位姿。Mid-360 内置 IMU但雷达坐标系和 IMU 坐标系不重合需要标定。常见做法是用官方提供的默认值先跑再根据建图效果微调。# mid360.yaml 关键片段 extrinsic_T: [0.0, 0.0, 0.0] # 平移外参 extrinsic_R: [1, 0, 0, 0, 1, 0, 0, 0, 1] # 旋转外参单位矩阵如果建图时发现点云有明显重影或漂移大概率是外参不准。Mid-360 的 IMU 和雷达之间的平移量很小通常可以忽略但旋转量需要根据安装方向调整。比如雷达倒装时旋转矩阵要绕 X 轴转 180°。内参主要是 IMU 的噪声参数参数名含义典型值acc_cov加速度计噪声0.01gyr_cov陀螺仪噪声0.01b_acc_cov加速度计零偏0.0001b_gyr_cov陀螺仪零偏0.0001这些值不用改除非你的 IMU 特别差。Mid-360 内置 IMU 质量不错默认值能跑出很好的效果。3.3 启动 FAST-LIO2 并验证建图效果启动命令roslaunch fast_lio mapping_mid360.launch这个 launch 文件会自动订阅/livox/lidar和/livox/imu然后输出/Odometry和/cloud_registered。用 RViz 添加这两个话题能看到实时轨迹和配准后的点云。验证建图效果的方法手持雷达在房间里走一圈观察点云是否闭合。如果回到起点时点云没有明显错位说明外参和噪声参数基本正确。如果出现明显漂移先检查 IMU 数据是否正常发布再检查外参。# 检查 IMU 话题 rostopic echo /livox/imu -n 1如果 IMU 数据全是零或者跳变严重说明驱动配置有问题需要回到第 2 章检查。4. 避坑与排查Mid-360 FAST-LIO2 最常见的 5 个翻车现场4.1 驱动编译报错找不到 livox_sdk.h现象编译 livox_ros_driver2 时提示fatal error: livox_sdk.h: No such file or directory。原因Livox-SDK2 没有安装到系统路径或者安装后没有刷新链接缓存。解决重新执行sudo make install和sudo ldconfig然后确认/usr/local/include/livox_sdk.h存在。如果不存在检查 SDK2 编译时是否有报错。4.2 雷达 ping 不通或点云话题无数据现象rostopic hz /livox/lidar显示 no new messages。原因主机 IP 和雷达不在同一网段或者防火墙拦截了 UDP 数据。解决先用ping 192.168.1.1xx确认网络通。如果不通检查主机 IP 配置。如果通但没数据检查防火墙规则Mid-360 用 UDP 端口 56000 左右需要放行。4.3 FAST-LIO2 启动后立即崩溃现象roslaunch fast_lio mapping_mid360.launch启动后终端报段错误。原因Sophus 版本不兼容或者 PCL 版本冲突。解决确认 Sophus 是从源码编译的不是 apt 装的。如果还不行检查 PCL 版本FAST-LIO2 对 PCL 1.10 以上支持较好。4.4 建图漂移严重或点云重影现象走一圈回到起点点云错位明显。原因外参不准或者 IMU 频率和点云频率不匹配。解决先检查 IMU 话题频率是否稳定在 200 Hz 左右。如果 IMU 频率太低建图会漂。然后微调外参旋转矩阵每次改 5° 左右试。4.5 RViz 里看不到点云但话题有数据现象rostopic echo /cloud_registered有数据但 RViz 不显示。原因RViz 的 Fixed Frame 设置不对或者点云话题的 frame_id 和 TF 树不匹配。解决把 RViz 的 Fixed Frame 设为camera_init或body然后确认 TF 树里有对应的变换。如果 TF 缺失检查 FAST-LIO2 是否正常发布了 TF。5. 进阶技巧用 Gazebo 仿真验证链路和参数调优5.1 在 Gazebo 里仿真 Mid-360 建图定位真机调试成本高尤其是外参调整阶段每次都要重新跑一圈。用 Gazebo 仿真可以快速验证链路和参数。常见做法是用livox_laser_simulation插件模拟 Mid-360 的点云输出再接入 FAST-LIO2。# 安装仿真插件 git clone https://github.com/Livox-SDK/livox_laser_simulation.git cd livox_laser_simulation mkdir build cd build cmake .. make -j$(nproc)然后在 Gazebo 的 world 文件里加载 Mid-360 模型启动仿真后检查/livox/lidar话题是否有数据。仿真环境的好处是可以反复跑同一条轨迹对比不同参数下的建图效果。5.2 外参调整的快速验证方法外参不准时建图会漂。与其盲目试不如用仿真环境做对照实验。在 Gazebo 里设置一条已知轨迹然后分别用不同外参跑 FAST-LIO2对比轨迹误差。外参旋转角轨迹误差米建图效果0°0.15轻微重影5°0.08基本闭合10°0.20明显漂移从表里能看出外参旋转角在 5° 左右时误差最小。真机上可以用同样的方法先粗调再细调。5.3 点云降采样与实时性平衡FAST-LIO2 默认对点云做降采样但 Mid-360 的点云密度高如果降采样参数设得太小计算量会很大。在mid360.yaml里调整filter_size_surf和filter_size_mapfilter_size_surf: 0.2 # 面点降采样尺寸 filter_size_map: 0.3 # 地图降采样尺寸这两个值越大计算越快但细节越少。手持建图建议设 0.2 和 0.3无人机建图可以设 0.1 和 0.2因为无人机飞行高度高点云稀疏一些不影响。我自己的习惯是先用默认值跑一遍看 CPU 占用率。如果超过 80%就把这两个值调大 0.05 再试。调参这件事没有万能值得根据你的硬件和场景来。希望帮到你。本文还有配套的精品资源点击获取