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。

  1. 点云投影成 Range Image,按线束 ID 和水平角分桶,形成 $ N_{\mathrm{scan}} \times N_{\mathrm{horizon}}$ 的二维矩阵

  2. 地面分割(Ground Segmentation):先根据底部扫描线(如第 0–7 线)拟合局部地面平面。判断点的俯仰角是否与地面平面一致,小角度差判为地面。

  3. 障碍物点云分割(Segmentation):用区域生长 + 邻接关系划分障碍物,便于后续特征筛选。

  4. 特征提取:在地面点中选平面点(Planar),在障碍物点中选棱边点(Edge)。计算曲率: 其中$N\left ( i \right )$为邻域点集

\[\mathrm{curvature} \left( i \right) = \frac{1}{\left \| S \right \| } \sum_{k\in N\left ( i \right ) }^{} \left \| p_k-p_i \right \| ^2\]
  1. 双步位姿优化(Two‑Step LM)
    1. 第一步(低频部分):利用地面平面特征优化 $ t_z, \theta_{\mathrm{roll}}, \theta_{\mathrm{pitch}} $
    2. 第二步(高频部分):用边缘特征优化 $ t_x, t_y, \theta_{\mathrm{yaw}} $
  2. Mapping 与局部地图维护: 建立基于特征点的局部地图;周期性将新特征加入并用 K‑d 树加速匹配。

地面优化

思路: 对地面车辆来说,垂直方向姿态变化主要来自倾斜和坑洼,可用地面点稳定估计

实现:

  • 提取足够密集的地面点。
  • 先算 roll/pitch 和高度z。
  • 固定这三维参数,在后续匹配中减少搜索空间 → 计算加速,收敛更稳。

回环

回环检测: 代码中提供了基于 ICP 的简单闭环检测,但在漂移大时鲁棒性不佳,建议配合更强的闭环模块(如 SC‑LeGO‑LOAM)

局限

  • 依赖地面假设,在无地面或地面被大量遮挡的场景(如架空桥梁)性能下降。
  • 点云稀疏时(VLP‑16),对远距离物体几何约束较弱。