在手持3D扫描和机器人导航领域,SLAM(同步定位与建图)算法的选择直接决定了建图精度、实时性能和硬件成本。来自香港大学MARS实验室(HKU-MARS)的三个算法——FAST-LIO2、R3LIVE、Point-LIO——是目前开源社区最受欢迎的LiDAR惯性里程计算法。

本文将逐一拆解它们的原理、优劣势和最佳使用场景,并附上实操配置经验,帮你快速做出选型决策。

三大算法一览

对比维度 FAST-LIO2 R3LIVE Point-LIO
传感器输入 LiDAR + IMU LiDAR + IMU + 摄像头 LiDAR + IMU
输出类型 点云地图(单色) 点云地图(彩色)+ 位姿 点云地图(单色)
里程计频率 LiDAR帧率(通常10Hz) LiDAR帧率(10Hz) 4-8 kHz(逐点处理)
回环检测 ❌ 无(需外接模块) ❌ 无(需外接模块) ❌ 无
RGB彩色重建 ❌ 不支持 ✅ 实时上色 ❌ 不支持
IMU饱和处理 基于模型补偿 基于模型补偿 逐点自适应
运动畸变校正 帧内插值 帧内插值 无需(逐点处理)
计算需求 低(~15%单核ARM) 中高(FAST-LIO2的2-3倍)
M360配置难度 ⭐ 简单 ⭐⭐⭐ 中等偏难 ⭐⭐ 简单
社区资源 丰富(8k+ stars) 中等 较少
GitHub Stars 8,000+ 1,500+ 800+
最佳场景 通用建图、资源受限平台 彩色点云、LiDAR退化环境 快速运动、高振动环境

FAST-LIO2:大多数项目的默认选择

FAST-LIO2 是目前最主流的开源紧耦合LiDAR惯性里程计算法,GitHub 上拥有超过 8000 颗星,社区活跃、文档完善。

核心原理

FAST-LIO2 采用紧耦合迭代扩展卡尔曼滤波(IEKF)架构,直接对原始点云进行扫描配准,无需特征提取(不提取角点、面点等),这一点大大简化了算法流程。地图管理使用 ikd-Tree(增量式k-d树),支持高效的动态点插入和删除。

关键优势

致命短板

M360 配置参数

使用 Livox MID-360 时,关键参数为:

cut_frame_num × orig_odom_freq = 50

例如 orig_odom_freq = 10Hz,则 cut_frame_num = 5。这意味着算法每收集5帧原始数据后执行一次里程计更新。

R3LIVE:需要彩色点云时的进阶选择

R3LIVE(Robust Real-time Renderable 3D LiDAR-Inertial-Visual Odometry)在 FAST-LIO2 的基础上引入了视觉子系统,是目前最完善的紧耦合 LiDAR-IMU-Visual 三传感器融合方案之一。

核心原理

R3LIVE 采用双子系统架构

  1. LIO子系统:类似 FAST-LIO2,负责LiDAR-IMU紧耦合定位建图
  2. VIO子系统:从摄像头图像提取特征,一方面为点云实时上色,另一方面在LiDAR退化时提供额外的位姿约束

两个子系统通过状态传递机制紧密耦合,VIO的位姿估计可以补偿LIO在退化环境下的精度损失。

性能数据

在 NTU-VIRAL 数据集上的 RMSE 达到 0.185m,精度表现优秀。

关键优势

使用代价

Point-LIO:快速运动与高振动场景的利器

Point-LIO 是三个算法中最独特的——它打破了"以帧为单位"的处理范式,改为逐点处理。

核心原理

与 FAST-LIO2 和 R3LIVE 每收到一帧完整点云后才进行一次状态更新不同,Point-LIO 在每收到一个LiDAR点时就执行一次状态估计。这使得里程计输出频率高达 4-8 kHz,远远超过帧级处理方案的10Hz。

关键优势

局限性

选型决策树

根据实际项目需求,选择建议如下:

你的项目需要彩色点云吗?
├── 是 → 预算和算力充足吗?
│       ├── 是 → R3LIVE
│       └── 否 → FAST-LIO2 + 后处理上色
└── 否 → 工作环境有高振动或快速运动?
        ├── 是 → Point-LIO
        └── 否 → FAST-LIO2(推荐)

总结一句话:大多数项目直接从 FAST-LIO2 开始就对了。 只有在明确需要彩色点云或应对极端动态场景时,才考虑升级到 R3LIVE 或 Point-LIO。

M360 + FAST-LIO2 实操要点

对于使用 Livox MID-360 的手持扫描仪项目,以下是 FAST-LIO2 的快速部署清单:

硬件配置

组件 推荐型号 用途
LiDAR Livox MID-360 主传感器
计算平台 Jetson Orin Nano 实时SLAM处理
IMU M360内置(BMI088) 惯性测量
电池 12V移动电源 供电

ROS Workspace 配置

在 Jetson Orin Nano 上搭建 FAST-LIO2 的工作空间,核心依赖包括:ROS Noetic(或 ROS2 Humble)、PCL、Eigen 3.3+、ikd-Tree。克隆仓库后直接 catkin_make 编译即可。

关键参数调优

M360 的配置核心是确保数据采集率与里程计更新率的匹配:

如果发现建图效果不理想,可以尝试调整 max_iter(默认2-3)和 filter_size_map(建图分辨率)。

结语

三个算法各有侧重:FAST-LIO2 是"万金油",R3LIVE 是"锦上添花",Point-LIO 是"极限运动选手"。在手持3D扫描仪的开发实践中,建议先用 FAST-LIO2 跑通全流程,再根据实际痛点决定是否升级。

本文基于 HKU-MARS 实验室开源项目及实测经验整理,如有遗漏欢迎交流讨论。