SLAM (simultaneous localization and mapping)是“同时定位与地图构建”的缩写,指某个传感器在空间运动过程中,一边对自身定位、一边构建周围环境结构的问题。SLAM被很多学者认为是实现真正全自主移动机器人的基础技术,并在机器人、无人驾驶汽车、AR/VR设备等领域中占据重要的地位。时至今日,SLAM已有近三十年的研究历史,理论框架已经成熟,正在走向实际的生活环境中。然而,由于完整的SLAM系统原理较为复杂,数学知识比较零散,初学者不容易整体上掌握所有的知识。
本次课程将介绍有关视觉SLAM的基础知识,并配以许多程序实例,帮助读者深入理解视觉SLAM涉及的数学概念与编程知识。理论方面,我们将从基本的向量、矩阵与刚体运动开始,介绍诸如李群李代数、非线性优化、多视图几何等重要数学知;在编程上,亦将引导读者掌握一系列C++库的使用,包括OpenCV,Eigen,g2o,Ceres等等。最后,通过一系列精心设计的习题,让读者真正掌握视觉SLAM的知识。
本讲将带领读者快速理解SLAM的定义和经典的处理过程。我们将通过一些视频展示SLAM是如何完成的,然后介绍它的基本数学模型。在编程部分,我们将学习最基础的Linux下的C++编程,学习CMake这个C++的工程构建工具。
讲师提示
- 讲师简介
- 慕尼黑工业大学计算机视觉组博士后,清华大学自动控制与工程博士,现就职于百度自动驾驶。长期从事SLAM的研究,主要包括机器人的中的视觉SLAM技术、机器学习与SLAM的结合。主编畅销书《视觉SLAM十四讲:从理论到实践》,在国际知名期刊IEEE Transactions on Mechatronics、Robotics and Autonomous Systems、Autonomous Robots等发表论文数篇。
- 课程须知
- 1. 基础课程:高等数学、线性代数(矩阵论)、概率论、C++、Linux
2. 参考书籍:《视觉SLAM十四讲:从理论到实践》
3. 本讲需理论与实际相结合