LeGO-LOAM
LOAM
2018 IROS
Paper: LeGO-LOAM: Lightweight and Ground-Optimized Lidar Odometry and Mapping on Variable Terrain
Code: https://github.com/RobustFieldAutonomyLab/LeGO-LOAM
背景
LOAM 的局限:
- 对地面和障碍物“一视同仁”,低线束雷达在稠密度和噪声下的匹配不稳定。
- 室外地面场景浪费了不少地面点的信息潜力。
LeGO‑LOAM 的目标:
- 针对地面车辆假设(激光水平安装,始终存在地面平面)。
- 在不牺牲精度的前提下,减少计算量,让低功耗嵌入式平台也能实时运行。
系统流程
输入:水平安装的多线雷达(VLP‑16)点云,可选 IMU。
-
点云投影成 Range Image,按线束 ID 和水平角分桶,形成 $ N_{\mathrm{scan}} \times N_{\mathrm{horizon}}$ 的二维矩阵
-
地面分割(Ground Segmentation):先根据底部扫描线(如第 0–7 线)拟合局部地面平面。判断点的俯仰角是否与地面平面一致,小角度差判为地面。
-
障碍物点云分割(Segmentation):用区域生长 + 邻接关系划分障碍物,便于后续特征筛选。
-
特征提取:在地面点中选平面点(Planar),在障碍物点中选棱边点(Edge)。计算曲率: 其中$N\left ( i \right )$为邻域点集
- 双步位姿优化(Two‑Step LM)
- 第一步(低频部分):利用地面平面特征优化 $ t_z, \theta_{\mathrm{roll}}, \theta_{\mathrm{pitch}} $
- 第二步(高频部分):用边缘特征优化 $ t_x, t_y, \theta_{\mathrm{yaw}} $
- Mapping 与局部地图维护: 建立基于特征点的局部地图;周期性将新特征加入并用 K‑d 树加速匹配。
地面优化
思路: 对地面车辆来说,垂直方向姿态变化主要来自倾斜和坑洼,可用地面点稳定估计
实现:
- 提取足够密集的地面点。
- 先算 roll/pitch 和高度z。
- 固定这三维参数,在后续匹配中减少搜索空间 → 计算加速,收敛更稳。
回环
回环检测: 代码中提供了基于 ICP 的简单闭环检测,但在漂移大时鲁棒性不佳,建议配合更强的闭环模块(如 SC‑LeGO‑LOAM)
局限
- 依赖地面假设,在无地面或地面被大量遮挡的场景(如架空桥梁)性能下降。
- 点云稀疏时(VLP‑16),对远距离物体几何约束较弱。