一、课程导论与SLAM基础

什么是激光雷达-惯导组合里程计?

先说说这个拗口的名字。激光雷达-惯导组合里程计,英文叫 LiDAR-Inertial Odometry,简称 LIO。

说白了,就是让激光雷达和惯性测量单元(IMU)这两兄弟一起干活,估算出机器人在三维空间里的运动轨迹。激光雷达负责看世界,IMU 负责感受自身的加速度和角速度。

我刚开始接触这个领域时,有个很深的感触:单靠激光雷达做里程计,就像一个人闭着一只眼走路。环境稍微差点,比如长走廊、空旷场地,立马就飘了。而 IMU 呢?它短时间很准,但时间一长,积分出来的位置误差会像滚雪球一样越来越大。

所以,把两者结合起来,就成了很自然的选择。

核心思想:激光雷达提供精确的几何结构信息,IMU 提供高频的短时运动估计。两者互补,缺一不可。

为什么需要融合?

你可能会问:激光雷达本身不是能测距离吗?为什么还要加个 IMU?

嗯,这里有几个关键原因。

  • 运动畸变问题:激光雷达扫描一圈需要时间(比如 100ms)。如果机器人在这期间快速旋转或移动,点云就会扭曲。IMU 可以提供高频运动信息,帮我们把点云“矫正”回来。我在做 AGV 项目时,遇到过小车急转弯导致点云严重变形的情况,加了 IMU 后效果立竿见影。
  • 退化场景:在长走廊、隧道、开阔广场这些地方,激光雷达的匹配算法容易失效。IMU 可以在这段时间内提供相对可靠的位姿估计,撑到环境恢复特征。
  • 高频输出:激光雷达通常 10Hz,IMU 可以到 200Hz 甚至更高。融合后,我们能以 IMU 的频率输出里程计结果,这对控制模块来说非常友好。
  • 初始化:纯激光里程计需要初始位姿。IMU 可以帮我们快速估计出重力方向,甚至完成系统的初始化。

个人经验:我曾经在一个室内停车场项目里,纯激光里程计跑了不到 50 米就丢了。原因很简单——四周全是白墙,没有任何纹理特征。后来加上 IMU,虽然精度不算顶尖,但至少没丢。这个案例让我彻底信服了融合的必要性。

课程目标与学习路径

这门课的目标很明确:让你从零开始,亲手实现一个能用的激光雷达-惯导组合里程计系统。

不是那种只讲理论的课。我会带着你一步步搭建代码,从数据预处理、状态估计、优化求解,到最终的轨迹评估。每个环节我都会给出实际项目中踩过的坑和对应的解决方案。

学习路径大致是这样的:

  1. 基础篇(第1-5章):坐标系、刚体运动、IMU 模型、激光雷达模型。这些是地基,必须打牢。
  2. 核心算法篇(第6-15章):状态估计理论、卡尔曼滤波、因子图优化、点云配准。这是整个系统的骨架。
  3. 系统实现篇(第16-25章):前端里程计、后端优化、回环检测、地图构建。你会亲手写出完整的 LIO 系统。
  4. 进阶与实战篇(第26-30章):多传感器标定、性能调优、嵌入式部署、实际场景测试。

我个人建议的学习节奏是:每周花 8-10 小时,配合代码练习。光看不动手,效果会大打折扣。

注意事项:这门课需要一定的 C++ 和 ROS 基础。如果你还不熟悉,建议先花一周时间补一下。我在课程中会提供完整的代码框架,但不会手把手教语法。

知识体系总览

下面这张图,是我梳理的 LIO 系统核心知识结构。你可以把它当作整个课程的地图。

激光雷达-惯导组合里程计知识体系 传感器层 激光雷达 (LiDAR) 惯性测量单元 (IMU) 时间同步 / 标定 前端处理层 点云预处理 / 去畸变 特征提取 (角点/平面) IMU 预积分 状态估计层 卡尔曼滤波 (ESKF) 因子图优化 (iSAM2) 点云配准 (ICP/NDT) 后端与输出层 回环检测 / 图优化 轨迹输出 / 地图构建 性能评估 (ATE/RPE)

这张图展示了 LIO 系统的四个核心层次。从传感器数据采集,到前端处理,再到状态估计,最后输出结果。每一层都有对应的算法和实现细节,我们会在后续章节逐一攻克。

学习建议:我建议你把这张图打印出来贴在工位上。每学完一章,就在对应的模块上打个勾。这样能清楚知道自己走到了哪一步,也方便回头复习。

你需要准备什么?

工欲善其事,必先利其器。这里列出我推荐的开发环境:

工具 推荐版本 备注
操作系统 Ubuntu 20.04 / 22.04 ROS 生态最友好
ROS Noetic / Humble 用于数据通信和可视化
C++ 编译器 GCC 9+ / Clang 12+ 支持 C++17
Eigen3 3.4+ 线性代数库,必装
Ceres Solver 2.1+ 非线性优化库
PCL 1.12+ 点云处理库

避坑提醒:我曾经在 Ubuntu 18.04 上折腾了整整两天,就因为 Ceres 版本不兼容。建议直接上 20.04 或 22.04,能省去很多环境配置的麻烦。

好了,第一章的内容就到这里。记住,LIO 的核心就是让激光雷达和 IMU 互相补台。后面的章节,我们会一步步把这个系统搭建起来。

专注资料整理