在同一个项目中同时使用FAST-LIO和Point-LIO两种激光惯性里程计(LIO)算法,通常是基于以下几个关键原因:
1.算法特性互补
| 特性 | FAST-LIO | Point-LIO |
|---|---|---|
| 核心创新 | 基于ikd-Tree的高效地图管理 | 基于点面特征的紧耦合优化 |
| 计算效率 | 极高(毫秒级处理) | 较高(但低于FAST-LIO) |
| 鲁棒性 | 适合结构化环境 | 在非结构化环境中更稳定 |
| 特征提取 | 主要使用平面特征 | 同时使用平面+边缘特征 |
| 适用场景 | 高速移动/计算资源受限 | 复杂几何结构(如楼梯、植被) |
项目需求:
- 在开阔场景(如仓库)使用 FAST-LIO 实现高速建图
- 在复杂场景(如多障碍物区域)切换到 Point-LIO 提升精度
2.传感器兼容性验证
- FAST-LIO:对 Livox固态雷达(如Mid360)优化更好
- Point-LIO:传统机械雷达(如Velodyne)兼容性更强
→ 项目可能同时使用多种雷达硬件,需双算法支持
3.冗余设计提升可靠性
- 故障切换:当FAST-LIO因高速运动失效时,自动切换至Point-LIO
- 交叉验证:通过比较两者输出,检测定位漂移(如协方差超阈值报警)
4.场景专用优化
FAST-LIO 主导场景
- 全局路径规划时的低延迟定位(100Hz+)
- 资源受限设备(如嵌入式平台)
Point-LIO 主导场景
- 高精度局部建图(如货架间导航)
- 动态物体过滤(通过边缘特征稳定性)
5.算法开发与对比
- 研究目的:
在相同硬件平台上对比两种前沿LIO算法的性能(论文/报告) - 模块化测试:
# 伪代码:算法选择器ifenvironment=="structured":use_algorithm=FAST_LIOelifenvironment=="unstructured":use_algorithm=POINT_LIO
实际项目中的典型工作流
为什么不是二选一?
- 无单一最优解:
LIO算法性能高度依赖环境(FAST-LIO在长走廊可能失效) - 硬件异构:
项目可能包含不同算力的机器人(高端用Point-LIO,低端用FAST-LIO) - 容灾需求:
工业场景要求SLAM系统必须有备份方案
数据佐证:
根据论文《LIO-SAM vs FAST-LIO》的测试:
- FAST-LIO 在高速公路场景误差低于0.5%
- Point-LIO 在森林场景误差比FAST-LIO低42%
建议优化方向
若资源允许,可添加自适应切换模块:
defselect_best_lio(pointcloud,imu):# 计算点云曲率特征curvature=compute_curvature(pointcloud)ifcurvature<THRESHOLD:# 结构化场景returnfast_lio.process(pointcloud,imu)else:# 非结构化场景returnpoint_lio.process(pointcloud,imu)这种设计既保留了双算法的优势,又避免了同时运行的计算开销。