一、课程导论:激光雷达与视觉融合的背景、应用场景与学习路径

1.1 为什么我们需要融合?——从一次“翻车”说起

先讲个我自己的故事。

几年前,我参与一个园区物流机器人的项目。纯视觉方案,单目摄像头,跑着当时还算先进的ORB-SLAM。白天一切正常,机器人沿着固定路线跑得挺稳。结果一到傍晚,光线暗下来,走廊里还有几扇玻璃门——好家伙,定位直接漂移,机器人一头撞上了货架。

我当时就在想:如果当时车上有个激光雷达,哪怕是个单线的,也不至于这样。

这件事让我彻底明白了一个道理:单一传感器,永远有盲区

视觉传感器(摄像头)便宜、信息丰富,能识别车道线、交通标志、行人。但它怕暗、怕逆光、怕纹理缺失。激光雷达呢?精度高、不受光照影响,直接给你三维点云。但它稀疏、没颜色、认不出“这是红灯还是绿灯”。

说白了,激光雷达和视觉是天生互补的一对。一个负责“精确测量”,一个负责“语义理解”。融合起来,才能做出真正可靠的导航系统。

核心观点: 融合不是“1+1=2”,而是用激光雷达的几何结构去约束视觉的尺度模糊性,用视觉的语义信息去弥补点云的稀疏性。两者结合,定位精度和鲁棒性都能上一个台阶。

1.2 应用场景:自动驾驶与机器人,到底差在哪?

我经常被问到:“自动驾驶和机器人导航,不都是融合定位吗?有啥区别?”

嗯,区别还真不小。我列个表,你一看就明白。

维度 自动驾驶(车) 机器人(AGV/服务机器人)
速度 0-120 km/h,动态范围大 0-5 m/s,相对低速
环境 结构化道路,但有动态交通 室内/园区,结构多变
传感器配置 多线激光雷达(64/128线)+ 多目 单线/16线 + 单目/双目
计算资源 Orin/Thor 级别,功耗不敏感 Jetson/树莓派,功耗受限
核心挑战 高速下的实时性、动态物体剔除 低成本、低功耗、长续航

你看,虽然底层技术(SLAM、点云配准、特征匹配)是相通的,但工程侧重点完全不同。

做自动驾驶时,我最头疼的是高速下的运动畸变。车开到80码,一帧激光雷达点云扫完,车已经往前窜了好几米。不做运动补偿,点云全是拖影。

做机器人时呢?我反而更关注回环检测的稳定性。机器人经常在同一个走廊来回走,如果回环检测不准,地图就会“分层”,定位直接崩掉。

所以,这门课里,我会把两种场景都覆盖到。但核心方法是一致的——紧耦合的激光-视觉融合SLAM

1.3 课程目标:学完你能做什么?

我不喜欢画大饼。这门课的目标很具体:

  • 理解原理:搞懂激光雷达和视觉各自的坐标系、内参、外参,以及它们怎么“对齐”。
  • 掌握方法:从松耦合(EKF)到紧耦合(因子图优化),一步步搭建融合定位系统。
  • 动手实践:我会带着你用真实数据集(KITTI、M2DGR)跑通一个完整的融合SLAM系统。
  • 避坑指南:分享我在项目中踩过的坑——比如标定误差导致融合发散、时间戳不同步导致定位跳变。

我的建议: 如果你刚入门,别急着调参。先把坐标系变换搞明白。我见过太多人,代码跑通了,但问“这个点云是在哪个坐标系下的?”——答不上来。坐标系搞错,后面全白搭。

1.4 学习路径:怎么学最有效?

我个人习惯把学习路径分成三个阶段。你按这个节奏来,会轻松很多。

  1. 基础夯实(第1-3章):坐标系、传感器模型、标定方法。这部分有点枯燥,但绕不开。我建议你边看边画图,把“相机坐标系”、“激光雷达坐标系”、“车体坐标系”之间的关系画清楚。
  2. 核心算法(第4-7章):特征提取、点云配准(ICP、NDT)、视觉SLAM(ORB-SLAM)、融合框架(EKF、因子图)。这部分我会给代码示例,你最好跟着敲一遍。
  3. 工程实战(第8-10章):多传感器时间同步、运动畸变补偿、回环检测、地图构建。最后我们会做一个完整的融合定位demo。

你想想看,如果一上来就啃论文,很容易被数学公式劝退。不如先跑通一个demo,看到点云和图像叠加在一起,定位轨迹画出来了——那种成就感,才是你坚持下去的动力。

1.5 知识体系总览

下面这张图,是我自己梳理的课程知识体系。你可以把它当作“导航地图”,随时回来看看自己学到哪了。

激光雷达与视觉融合导航知识体系 传感器层 激光雷达 · 相机 · IMU 标定层 内参 · 外参 · 时间同步 数据预处理 畸变矫正 · 运动补偿 核心算法层 特征提取(ORB/LOAM) · 点云配准(ICP/NDT) · 视觉SLAM · 融合框架(EKF/因子图) 融合定位层 紧耦合 · 松耦合 · 回环检测 · 全局优化 应用层:自动驾驶 · 机器人导航 · 地图构建 由底向上,逐层递进

这张图里,我特意把“标定层”放在了传感器层旁边。为什么?因为标定是融合的前提。外参标定差1厘米,融合后的定位误差可能放大到10厘米。我在项目里吃过这个亏,所以后面会专门用一章讲标定。

1.6 写在前面的话

这门课不会让你成为“SLAM大师”——那需要几年的项目积累。但我会把最核心的思路、最实用的代码、最容易踩的坑,都掰开揉碎了讲给你听。

你可能会遇到数学公式(李群李代数、卡尔曼滤波),别怕。我会用代码和示意图帮你理解。实在看不懂,先跳过,回头再看——我当年也是这么过来的。

好了,导论就到这里。从下一章开始,我们直接进入传感器模型和坐标系。准备好你的IDE,我们动手了。

注意: 如果你用的是Windows系统,建议提前装好WSL2或者Docker。很多激光雷达SDK和ROS工具链在Linux下更友好。我曾经在Windows上折腾了三天环境,最后换了Ubuntu,半小时搞定。


专注资料整理