
激光雷达定位实战用 FAST-LIO 打通无人机建图与自主导航全流程【免费下载链接】FAST_LIOA computationally efficient and robust LiDAR-inertial odometry (LIO) package项目地址: https://gitcode.com/gh_mirrors/fa/FAST_LIO想让无人机在没有 GPS 信号的室内、桥洞或树荫下不乱飞FAST-LIO 无人机建图是最值得先跑通的一套方案。它是香港大学团队开源的 Fast LiDAR-Inertial Odometry激光雷达-惯性里程计软件包把激光点云与 IMU 数据紧耦合实时输出机身位姿并增量构建三维点云地图。无论你手里的传感器是 Livox Avia还是 Velodyne、Ouster这份实战指南都能带你完成一次 LiDAR 里程计实战并顺手打通无人机自主导航配置的全链路。本文不堆代码、不摆术语按「认知 → 备件 → 部署 → 建图 → 调参 → 导航 → 避坑」的顺序走一遍全程可以跟着操作。 先讲两个真实困境在介绍 FAST-LIO 之前先聊聊你很可能遇到过的两个场景。第一个场景无人机飞进室内、地下车库或高架桥下GPS 信号骤降定位飘得厉害。飞控只能凭感觉维持姿态航线稍长就开始偏移飞完一圈建出来的点云图怎么都对不齐。第二个场景你想着换台高性能电脑就能解决可无人机能背得动的机载电脑往往只有几个 GB 内存和一颗低功耗 CPU。重型 SLAM 算法动辄跑不满 10Hz更别说实时给飞控喂位姿。这两个痛点的共同点在于我们需要一套不怎么挑算力、又足够稳的激光雷达定位方案。FAST-LIO 正是为这类场景设计的。 认识 FAST-LIO一台轻装上阵的定位建图引擎先建立两个直觉。第一个直觉把激光雷达当成无人机的眼睛每秒扫出数万个点把 IMU 当成内耳以数百赫兹的频率报告加速度和角速度。单独看眼睛怕剧烈晃动内耳怕长时间漂移把两者融合起来就能扬长避短。第二个直觉FAST-LIO 的核心是一个紧耦合的迭代扩展卡尔曼滤波器。它把预测和修正揉进同一次迭代里用激光特征点反复校正 IMU 积分出来的位姿精度高、抗退化在快速机动、噪声大、结构重复的环境里也不容易崩。在此基础上FAST-LIO 还做了三件关键的事用 ikd-Tree 做增量式建图地图随扫描边删边增避免全量重建扫描速率可以做到 100Hz 以上支持直接对原始点云做扫描到地图的配准特征提取可以关掉能适配不同形态的雷达对计算资源非常友好官方实测在 Intel i7 上单帧处理约 1.8 毫秒ARM 平台约 5 毫秒甚至能在树莓派 4B、NVIDIA TX2 这类 ARM 板子上运行。下图是一套典型的无人机挂载方案280mm 机架、内置 IMU 的 Livox Avia 雷达、机载电脑、电池与数传模块全部集成在一台小型四旋翼上。下图为真实实验中的实时性能表现面对 100Hz 的扫描输入Intel i7 处理单帧只要 1.82 毫秒ARM 平台约 5.23 毫秒意味着绝大部分算力都能留给上层的导航任务。 开工前的硬件与软件清单动手之前先把你需要的东西备齐。部件参考配置作用机架280mm 轴距四旋翼提供稳定的飞行平台激光雷达Livox Avia内置 IMU环境感知 高频 IMU 数据机载电脑DJI Manifold 2-C 或同级运行 FAST-LIO 主程序电池高倍率锂聚合物电池整机供电数传模块通用数传 / 遥控与地面站通信软件侧只需四样Ubuntu 18.04/20.04、ROS Melodic/Noetic、PCL≥ 1.8与 Eigen≥ 3.3.4外加你手里雷达的 ROS 驱动。如果用 Livox务必先装好livox_ros_driver并把它 source 进环境——这一步经常被忽略会导致后面启动建图时提示找不到节点。⚙️ 三步部署把 FAST-LIO 跑起来部署只有三步每一步我都会解释为什么这么做。第一步克隆源码并编译git clone https://gitcode.com/gh_mirrors/fa/FAST_LIO cd FAST_LIO git submodule update --init cd .. catkin_make source devel/setup.bash工程把 ikd-Tree 等算法库做成了 submodule所以克隆之后必须先执行git submodule update --init否则编译会报缺头文件。编译前记得先把livox_ros_driver的环境 source 进来。第二步按传感器选对配置仓库的config/目录里按传感器备好了现成的 yamlavia.yaml、horizon.yaml、mid360.yaml对应 Livox 系列velodyne.yaml、ouster64.yaml对应旋转式雷达marsim.yaml留给仿真环境。选错配置最常见的症状是节点起来了但一直收不到有效点云。第三步启动建图节点roslaunch fast_lio mapping_avia.launch roslaunch livox_ros_driver livox_lidar_msg.launch第一条命令加载config/avia.yaml并启动建图主程序第二条启动雷达驱动。注意 Livox 必须用livox_lidar_msg.launch提供的 CustomMsg 数据——它给每个点都打了时间戳FAST-LIO 要靠它做运动畸变补偿livox_lidar.launch不带时间戳暂时用不了。如果是 Velodyne 或 Ouster则换成mapping_velodyne.launch再单独播放雷达数据或 rosbag 即可。️ 首飞实战看看在线建图能建出什么配置就绪后把无人机在室内推一圈你会看到点云地图像油漆一样实时铺满整个空间。下图是一次室内飞行建图结果彩色点云勾勒出墙体、家具的轮廓蓝色虚线记录了无人机完整的运动轨迹。面对狭长走廊这种容易让里程计退化的场景FAST-LIO 依然能保持地图连续不断裂。下图是长走廊实测两侧墙体平行延伸点云完整覆盖走廊全段轨迹稳定地落在走廊中央。想看更大范围的效果下图是校园建筑周边的大规模建图整片建筑群、广场和道路都被稠密点云覆盖绿色轨迹贯穿其中。这种规模下FAST-LIO 靠 ikd-Tree 增量更新地图内存占用和耗时都能保持在可接受范围。 参数速查配置文件里那些隐藏开关跑通只是第一步跑得好就要会调参。下面是一份速查表传感器接口config/avia.yaml里的lid_topic、imu_topic分别指向雷达与 IMU 的话题名换话题必须先改这里。外参extrinsic_T平移和extrinsic_R旋转矩阵定义的是雷达在 IMU 机体坐标系下的位姿。外参已知时建议把extrinsic_est_en保持为 false让算法不再在线估计跑起来更稳。时间同步默认time_sync_en: false优先依赖硬件同步实在无法硬同步才打开软件同步并确认time_offset_lidar_to_imu的取值。计算负载launch 里的point_filter_num抽稀间隔越大越省算力、max_iteration迭代次数、feature_extract_enable是否提取特征这是无人机在线建图时最主要的算力油门。地图密度filter_size_map控制地图体素分辨率值越小点云越密、越吃内存按机载电脑的算力权衡即可。点云保存把 launch 里pcd_save_enable设为 1退出后全部点云会累积保存到PCD/scans.pcd用pcl_viewer scans.pcd即可查看pcd_save的interval保持 -1 会把所有帧写进同一个文件帧数很多时小心内存被挤爆。 从建图到导航让位姿输出变成飞行指令建图解决的是我在哪、周围长什么样导航要解决的是我该往哪走。FAST-LIO 实时输出的高频位姿可以直接喂给路径规划与飞控模块形成建图 → 定位 → 规划 → 执行的闭环。下图是室内场景下的规划结果蓝色虚线是算法规划出的往返路径其中的直角转弯说明路径规划对局部地图的响应相当灵敏。想让导航更顺重点盯三个方向定位频率确保位姿话题以稳定频率发布规划器才能拿到连续的状态量地图密度filter_size_map调小能看清障碍细节但别小到把噪声也当成障碍时间一致性点云时间戳是否完整、IMU 是否同步直接影响位姿输出与真实飞行状态的吻合程度。⚠️ 新手最容易踩的五个坑最后是一份避坑清单都是社区里高频出现的问题忘了 sourcelivox_ros_driver——launch 一启动就报找不到包多半是它没进环境。IMU 与雷达不同步——位姿时好时坏、地图重影先查同步再查参数。日志出现 Failed to find match for field time——说明点云里缺每点时间戳运动补偿会失效务必使用能输出 CustomMsg 的启动方式。外参方向写反——FAST-LIO 的外参定义是雷达在 IMU 坐标系下方向写反会导致地图分层甚至发散。一口气把地图全塞进内存——帧数多且interval为 -1 时PCD 保存可能耗尽内存长任务建议分段保存。✅ 写在最后到这里你已经完成了从认知到实战的完整闭环理解了 FAST-LIO 为什么适合无人机平台跑通了在线建图学会了调参也让位姿输出真正服务于自主导航。FAST-LIO 的价值可以用一句话概括——用很低的算力门槛换回高精度的激光雷达定位与一份可复用的三维地图。想深入探索的话这几条路径都值得走算法细节阅读doc/Fast_LIO_2.pdf与include/下的源码尤其是esekfom滤波器实现更多传感器参考config/与launch/目录覆盖 Livox 全系以及 Velodyne、Ouster数据复盘用Log/里的时间日志分析脚本plot.py统计各环节耗时可视化配置rviz_cfg/提供了开箱即用的loam_livox.rviz界面。现在就可以动手试试把代码拉下来接上你的雷达让 FAST-LIO 陪你的无人机完成第一次在线建图。【免费下载链接】FAST_LIOA computationally efficient and robust LiDAR-inertial odometry (LIO) package项目地址: https://gitcode.com/gh_mirrors/fa/FAST_LIO创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考