自动驾驶与机器人中的SLAM技术
从底层原理出发逐步实现自动驾驶激光SLAM、惯性导航、组合导航的核心算法
通过极简化的数学推导,让您了解算法本质
使用更简洁的C++编程方式及并发编程思想
对课程有疑问? 立刻查看课程介绍了解详情!
- 本课程包括:
- 3个月群内答疑,讲师助教及时解答
- 课程有效期为1年,建议合理规划学习
- 课程配有作业练习,助教一对一批改
- 班主任带班,严格督学,告别拖延
- 根据学习情况颁发结业证书、优秀学员证书
高翔
慕尼黑工业大学博后,清华大学博士,长期从事SLAM的研究,主要包括机器人的中的视觉SLAM技术、机器学习与SLAM的结合。主要著译作包括《视觉SLAM十四讲:从理论到实践》、《机器人学中的状态估计》、《自动驾驶与机器人中的SLAM技术:从理论到实践》,在ICRA、IROS、RA-Letters、Transactions on Mechatronics、Robotics and Autonomous Systems、Autonomous Robots等国际知名期刊、会议有多篇论文发表。
课程目标
O1点云最近邻和点云配准算法的原理与应用
深入理解K-d树、八叉树、栅格与体素等多种点云最近邻算法的原理与优劣;掌握ICP类、NDT等点云配准算法的原理与实现过程,并将上述算法熟练应用到2D/3D激光SLAM中。
O2组合导航系统与LIO系统的公式细节与实现
熟悉IMU、激光雷达、GPS等传感器的数学观测模型,掌握IMU预积分/ESKF/IEKF的公式推导,学会在滤波和图优化两种框架下实现多传感器融合的位姿估计。
O3建图与定位项目实践
根据所学理论,最终完成一整个基于多传感器融合的建图系统,并实现基于地图的融合定位,且具备改进整个系统性能的能力。
课程脉络
-
首先对SLAM中的数学基础复习,讲解SLAM在自动驾驶与机器人中的应用。随后引入自动驾驶与机器人中最重要的传感器之一——IMU,从原理出发和数学推导对IMU进行系统且深入的讲解。最后分别引入滤波方法和图优化方法,将IMU与卫星导航和轮速计进行多传感器融合,实现组合导航。
01 -
02
激光雷达成为近几年自动驾驶与机器人中高精度的传感器,本课程对激光SLAM进行着重讲解。从激光雷达的原理出发,详细推导了点云相关算法,如最近邻、ICP等,讲解2D、3D激光SLAM涉及的算法。然后使用C++对所学进行部署,并对比出各类算法的优劣。
-
课程最后我们将结合IMU和激光雷达的知识,实现二者的融合定位,分别实现LIO系统的紧耦合和松耦合形式。同时我们将学习激光建图,熟悉从公式推导到算法部署的开发流程,对SLAM技术全方位掌握。
03
课程大纲
-
第1章:自动驾驶概述、基础数学知识回顾
第一章带领学生了解SLAM在自动驾驶领域中的应用,主要包括定位和建图。随后复习SLAM中的基础知识,如运动学、优化方法等,便于对后续深入内容的讲解打下基础。
-
第2章:惯性导航与组合导航
自动驾驶领域中一个非常重要的传感器就是IMU。第二章从IMU的底层出发,由浅入深讲解了IMU的原理与使用,其中对IMU如何得到角速度和位移做了详细的解答与数学推导。本章也讲解了IMU关系最为密切的ESKF滤波器,依然是从数学公式推导出发,得到最终形式。最终将用C++实践上述原理,并利用我们所学的IMU的原理和ESKF滤波器,结合卫星导航数据进行多传感器融合导航。
-
第3章:预积分原理
本章节主要讲解了IMU中的预积分系统,该系统是IMU作为紧耦合融合定位方法中必不可少的一环,与IMU密不可分。同上一章,我们从数学公式推导出发,深入讲解预积分系统,以及如何将预积分系统加入到图优化中实现紧耦合框架。最后我们同样结合卫星导航,实现基于预积分系统的组合导航。
-
第4章:基础点云处理
项目实践
-
实践一:平抛运动轨迹仿真
通过右乘模型,实现平抛运动的状态估计和轨迹生成。
-
实践二:基于多传感器融合的平滑轨迹估计
构建包括IMU预积分约束、轮速计约束、RTK约束等在内的图优化问题,并使用g2o优化器进行求解,获取更平滑的车辆轨迹。
-
实践三:不同最近邻搜索策略的实现与对比
在基于3D体素的最近邻方法中实现Nearby6,Nearby14等不同的查询策略,并完成测试程序来对比暴力方法、体素方法、K-d树方法等不同最近邻方法在不同配置下的准召率、性能。
-
实践四:单线激光雷达退化场景检测
了解2D激光雷达的基本原理,并重点关注在挑战场景中,如长廊等环境下的退化场景检测算法。
-
实践五:在ICP和NDT算法中实现鲁棒核函数并应用在LO中
通过手写鲁棒核函数,抑制外点对点云配准结果的负面影响,提高点云配准的精度,并应用在LO中进行测试。
-
实践六:实现基于点面ICP的IEKF LIO系统
推导基于点面约束的IEKF观测方程,最终实现基于点面约束的紧耦合IEKF LIO系统。
学习收获
- 1了解与自动驾驶SLAM系统相关的底层算法原理并亲自动手实现
- 2循序渐进地实现整个SLAM系统中的各种模块,例如第四章实现的K-d树会在第五章中使用,第三章实现的ESKF滤波器可以在第七、八章使用
- 3培养良好的代码习惯和测试意识,保证每一步的正确性后再拓展应用
课程适合谁学习
自动驾驶及机器人领域融合定位/SLAM的工程师
融合定位领域的研究生及高年级本科生
课程所需的基础知识
C++编程基础
熟悉Linux操作系统
有线性代数、矩阵论、概率论等基础知识
熟悉三维空间刚体运动的表示、李群与李代数、非线性优化
全方位的学习服务
个性化增值服务,学习有保障更高效
-
作业批改 助教1V1批改作业,定期针对作业中的“通病”进行点评
-
结业证书 本课程将根据作业完成情况评选结业学员及优秀学员,颁发证书
-
实时答疑 讲师微信群答疑,及时解决大家遇到的问题
-
班班督学 班主任全程带班,不定时“关照”未交作业的同学,克服拖延
- 1:开课仪式
- 2-1:【资料】⾃动驾驶与机器人中的SLAM技术Docker环境布署
- 2-2:【资料】课程参考文献
- 2-3:【资料】课程数据集
- 2-4:自动驾驶与机器人中的SLAM技术环境配置(18.04)_v3
- 2-5:【教材】slam-in-auto-driving
-
第1章: 自动驾驶概述、基础数学知识回顾 4节课程1篇阅读材料·1次作业·2小时22分钟
第一章带领学生了解SLAM在自动驾驶领域中的应用,主要包括定位和建图。随后复习SLAM中的基础知识,如运动学、优化方法等,便于对后续深入内容的讲解打下基础。
-
第1节: 课程内容安排
- 3-1:【课件】自动驾驶中的slam技术第一章
- 3-2: 【视频】课程引言
- 3-3:【视频】本章内容与安排介绍
-
第2节: 自动驾驶的分类,自动驾驶中的定位与地图技术
- 4:【视频】自动驾驶介绍
-
第3节: 基础数学知识回顾
- 5:【视频】点、坐标系、李群与李代数、旋转表示
- 6-1:【视频】运动学理论
- 6-2:【实践】运动学表示
- 7:【视频】滤波器理论回顾
-
第4节: 作业
- 8-1:【视频】作业介绍
- 8-2:【作业】第一章
- 8-3:第一章作业思路提示
-
第2章: 惯性导航与组合导航 6节课程1篇阅读材料·1次作业·2小时19分钟
自动驾驶领域中一个非常重要的传感器就是IMU。第二章从IMU的底层出发,由浅入深讲解了IMU的原理与使用,其中对IMU如何得到角速度和位移做了详细的解答与数学推导。本章也讲解了IMU关系最为密切的ESKF滤波器,依然是从数学公式推导出发,得到最终形式。最终将用C++实践上述原理,并利用我们所学的IMU的原理和ESKF滤波器,结合卫星导航数据进行多传感器融合导航。
- 9:【课件】惯性导航与组合导航
-
第1节: 章节介绍
- 10:【视频】章节介绍
-
第2节: IMU系统的运动学方程与噪声方程
- 11-1:【视频】IMU系统运动学
- 11-2:【实践】IMU航迹推算
-
第3节: 卫星导航的原理与数据结果
- 12-1:【视频】卫星导航
- 12-2:【实践】RTK轨迹读取与显示
-
第4节: 误差卡尔曼滤波器原理与应用实践
- 13:【视频】ESKF推导
-
第5节: ESKF实现组合导航及轮速融合
- 14:【视频】基于ESKF的IMU与RTK融合
-
第6节: 作业
- 15-1:【作业】第二章
- 15-2:第二章作业思路提示
-
第3章: 预积分原理 6节课程1篇阅读材料·1次作业·1小时29分钟
本章节主要讲解了IMU中的预积分系统,该系统是IMU作为紧耦合融合定位方法中必不可少的一环,与IMU密不可分。同上一章,我们从数学公式推导出发,深入讲解预积分系统,以及如何将预积分系统加入到图优化中实现紧耦合框架。最后我们同样结合卫星导航,实现基于预积分系统的组合导航。
- 16:【课件】预积分学和图优化模型
-
第1节: 本章内容介绍
- 17:【视频】内容概览
-
第2节: IMU状态的预积分模型
- 18:【视频】IMU状态的预积分模型
-
第3节: 预积分的噪声模型
- 19:【视频】预积分的噪声模型
-
第4节: 图优化与雅可比
- 20:【视频】图优化模型与雅可比
-
第5节: 实践:基于预积分系统的组合导航
- 21-1:【视频】实践内容引入
- 21-2:【实践】预积分优化GINS
-
第6节: 作业
- 22-1:【作业】第三章
- 22-2:第三章作业思路提示
-
第4章: 基础点云处理 5节课程1篇阅读材料·1次作业·2小时4分钟
近几年越来越多的自动驾驶解决方案加入了激光雷达。激光雷达的高精度使它在众多传感器中的地位逐渐凸显。因此本章着重讲解了激光雷达的基础,其中包括数学模型、点云最近邻查找、直线与平面拟合等算法。为后续激光里程计的讲解做好铺垫,帮同学们打下良好的基础。
- 23:【课件】点云基础数据结构与最近邻
-
第1节: 激光传感器的数学模型
- 24:【视频】 激光雷达测量模型与点云
-
第2节: 点云最近邻方法
- 25:【视频】点云的近邻问题
-
第3节: KNN数据结构的实现:暴力方法、栅格与体素方法、K-d树、八叉树,以及各类方法的对比讨论
- 26:【视频】点云的拟合问题
-
第4节: 数据拟合问题:直线拟合与平面拟合问题的实现方式
- 27:【视频】代码实践
-
第5节: 作业
- 28-1:【作业】第四章
- 28-2:第四章作业思路提示
-
第5章: 2D激光SLAM 7节课程1篇阅读材料·1次作业·1小时46分钟
2D激光SLAM是扫地机器人等领域应用的核心算法之一。本章从原理出发,展开讲解了2D激光SLAM中的不同模块,如Scan Matching、栅格地图、子地图、回环检测等,既帮助同学了解到2D激光SLAM中核心知识的数学推导和原理,又顺理成章引出了下一章3D激光SLAM的讲解。本章节最后通过C++对本章所讲内容进行代码实现,让同学们更好地理解2D激光SLAM是如何应用到实际项目中的。
- 29:【课件】2D激光SLAM
-
第1节: 章节内容介绍
- 30:【视频】章节内容介绍
-
第2节: 2D激光SLAM的基本框架
- 31:【视频】2D SLAM的假设与基本原理
-
第3节: Scan Matching的ICP、ICL、高斯场算法
- 32:【视频】 Scan Matching
-
第4节: 占据栅格地图的生成和更新
- 33:【视频】 占据栅格地图
-
第5节: 子地图的管理
- 34:【视频】子地图
-
第6节: 回环检测与2D位姿图
- 35:【实践】2D SLAM pipeline
-
第7节: 作业
- 36-1:【作业】第五章
- 36-2:第五章作业思路提示
-
第6章: 3D 激光SLAM 5节课程1篇阅读材料·1次作业·1小时40分钟
3D激光SLAM是真正在自动驾驶中使用的算法。本章节有了上一章的铺垫,很自然地进入到多线激光雷达的原理和算法的讲解中。本章为同学们详细讲解了基于NDT和ICP类的直接法LO、特征点法LO以及引入IMU传感器的松耦合LIO,通过代码实现对比各个算法的优劣。最后结合近两章所学知识,实现一个LOAM-Like里程计,将所学知识应用起来。
- 37:【课件】L6 3D激光SLAM
-
第1节: 多线激光的Scan Matching:ICP与NDT
- 38-1:【视频】ICP类方法
- 38-2:【视频】NDT方法
-
第2节: 直接法LO与特征法LO
- 39:【视频】直接法LO与特征法LO
-
第3节: 松耦合LIO
- 40:【视频】松耦合LIO原理
-
第4节: 实践环节
- 41:【视频】代码实践
-
第5节: 作业
- 42-1:【作业】第六章
- 42-2:第六章作业思路提示
-
第7章: LIO系统 6节课程1篇阅读材料·1次作业·1小时44分钟
LIO系统作为激光雷达和IMU融合的重要开源框架,在激光SLAM中拥有不可撼动的地位。第七章着重讲解了LIO系统松耦合和紧耦合的实现方式,不但让同学们从源码了解LIO的原理,而且帮助同学们复习了前几章中IMU的知识。本章还讲解了IEKF滤波算法,并对比了IEKF和ESKF的异同,使得同学们能够加深对滤波的理解,在工作中面对不同场景能够合理选择并设计算法,解决实际问题。
- 43:【课件】紧耦合LIO系统
-
第1节: 本章内容介绍
- 44:【视频】章节介绍
-
第2节: 紧耦合LIO系统:基于IEKF的实现、IEKF与ESKF的不同点
- 45:【视频】紧耦合LIO系统
-
第3节: 紧耦合LIO系统:基于预积分的实现
- 46:【视频】预积分LIO系统
-
第4节: LIO系统用于建图前端
- 47:【视频】LIO用于建图前端
-
第5节: 代码实践
- 48:【视频】LIO实践
-
第6节: 作业
- 49-1:【作业】第七章
- 49-2:第七章作业思路提示
-
第8章: 离线建图与在线定位系统 4节课程1篇阅读材料·1次作业·1小时3分钟
该章主要讲解点云建图方面的知识,还包括建图中不可或缺的回环检测、切片、导出和加载、以及基于ESKF实现的实时定位。帮助同学全面搭建自动驾驶中SLAM的学习框架,不仅让同学们学会实时定位,还会实时建图。最后结合全部课程所学知识,完成课程安排的大作业。
- 50:【课件】离线建图与在线定位系统
-
第1节: 离线建图后端优化机制
- 51: 【视频】离线建图后端优化机制
-
第2节: 地图切分、导出、在线定位
- 52:【视频】地图切分、导出、在线定位
-
第3节: 代码实践
- 53:【视频】代码实践
-
第4节: 作业
- 54-1:【视频】Final Project
- 54-2:【作业】第八章
- 54-3:第八章作业思路提示
课程讨论区
已累计讨论26495个问题
课程配备专属讨论区,不仅有讲师、助教全程答疑,更能与同学们交流讨论,在思维碰撞中加深理解
在课程中随想随问,同学们的问题也可能启发到你
在课程讨论区,和684位同学一起探讨更多问题···
作业批改
已累计批改4951份作业
助教一对一批改作业,定期针对作业中的问题进行评讲
结业证书
课程根据作业完成情况评选结业学员及优秀学员,颁发证书
优秀学员更能获得额外购课优惠
班班督学
班班、助教、讲师全程带班,日常答疑解惑
FAQ
1、课程可以试听吗?
可以,您可以联系客服领取试听内容,根据试听的效果决定是否报名。
2、报名课程后,如果不满意,可以退款吗?
我们承诺: 报名后7天内且学习进度停留在第一章节的内容可以无条件全额退款,若您的学习进度超过第一章或报名时间超过7天将不再支持退款哦。课好不好,学了就知道了!
3、报名课程的费用可以开发票吗?
深蓝学院所有课程都可以开具发票。您可以登录深蓝学院官网(https://www.shenlanxueyuan.com),进入个人“账户中心”,在线申请。
4、报名后怎么开始学习呢?
PC端:登录深蓝学院官网(https://www.shenlanxueyuan.com),进入“个人中心”或“我的课程” 的课程即可开始学习。课程中包含讲师讲解的视频、课件、代码、作业及其它学习资料。建议在PC端学习体验更好。
如果想缓存视频,可下载深蓝学院APP。
5、可以跟讲师直接交流吗?
报名课程后添加课程对应的班主任微信,由其邀请加入微信答疑群。在答疑群内,您可以直接跟讲师和其他同学讨论交流。
报名后在对应的课程详情页,可查看对应的班主任微信。
6、学习形式和学习周期是怎样的?
为保证学习质量方便同学们反复观看,本课程采用录播形式。建议同学们登录深蓝学院PC端官网体验更佳。
7、课程有有效期吗?
为了督促同学们学习,保证学习效率,学院的课程有效期均为一年,当课程有效期截止后将不再支持观看视频、下载课件等课程服务及操作。若同学们依旧想观看视频和下载课件,建议可选择续费本课程。需要提醒大家的是,课程答疑、作业批改&讲评等课程相关服务期从报名加入课程后开始计算至少保证三个月。
8、作业会提供参考答案吗?
不提供参考答案。当每章作业截止提交后,会解锁作业思路讲解。我们希望引导大家培养独立思考的习惯和敢于动手实践的勇气,以便尽快适应实际工作中解决问题的模式。做作业过程中,如果有任何困惑和问题,可以在课程讨论区和交流群内提问解决。
课程预览
自动驾驶与机器人中的SLAM技术