本书系统介绍了视觉 SLAM(同时定位与地图构建)所需的基本知识与核心算法,既包括数学理论基础,如三维空间的刚体运动、非线性优化,又包括计算机视觉的算法实现,例如多视图几何、回环检测等。此外,我们还提供了大量的实例代码供读者学习研究,从而更深入地掌握这些内容。
本书可以作为对 SLAM 感兴趣的研究人员的入门自学材料,也可以作为 SLAM 相关的高校本科生或研究生课程教材使用。
视觉SLAM入门比较难,编程实践很少,本书在这两方面有所突破。
高翔,清华大学自动化系博士,慕尼黑工业大学博士后。研究兴趣主要为计算机视觉、定位与建图、机器学习等,主要著、译作包括《视觉SLAM十四讲:从理论到实践》、《机器人学中的状态估计》,在RAS、Auto Robotics、IROS等期刊会议上发表论文,现从事自动驾驶车辆研发工作。
第二版序
《视觉 SLAM 十四讲:从理论到实践》出版已经两年多。两年来,这本书经历了 13 次重印,在 GitHub 上拥有 2500 个星星,也在业界引起了广泛的关注和讨论。大多数读者评价是正面的,当然,书中也有些地方不够令人满意。例如,这本书面向初学者,有些应该深入的地方讲得不够深入;书中的数学符号不够统一,有些地方容易令读者产生误解;工程实践章节内容不够丰富,介绍较浅,等等。实际上,我在 2016 年中期开始创作第 1 版,所有文字、图片和代码都是从零开始准备的,再加上当时在读博士,也是第一次写这么厚的书,错漏在所难免。2018 年,我在慕尼黑工大给学生讲 SLAM 课程,期间又积累了一些材料,所以本书从内容上更丰富、更合理。在第 1 版的基础上做了如下改动:
1. 更多的实例。增加了一些实验代码来介绍算法的原理。在第 1 版中,多数实践代码调用了各种库中的内置函数,现在我认为更深入地介绍底层计算会更好,所以本书中的许多代码,除了调用库函数,还提供了底层的实现。
2. 更深入的内容。主要是从第 7 讲至第 12 讲的部分,同时删除了一些泛泛而谈的边角料(比如 GTSAM 相关内容➀)。对第 1 版大部分数学公式进行了审查,重写了那些容易引起误解的内容。
3. 更完善的工程项目。将第 1 版的第 9 讲移至第 13 讲。于是,我们可以在介绍了所有必要知识之后,向大家展现一个完整的 SLAM 系统是如何工作的。相比于第 1 版,我在本书的项目中将追求以精简的代码实现完整的功能,你会得到一个由几百行代码实现的、有完整前后端的 SLAM 系统。
4. 更通俗、简洁的表达。我觉得这是一本好书的标准,特别是当介绍一些看起来高深莫测的数学知识时。我重新制作了部分插图,使它们即使在黑白印刷条件下也能看起来很清楚。
当然,每讲前的简笔画我是不会改的!
总之,我尽量做到深入浅出,也希望本书能够给你带来更加舒适的阅读体验。
第一页右上角第一幅图 2D拓扑地图没有图字。
tr(R-1)应该为tr(R)-1
“该式左侧为零,右侧可看成s2的一个方程”,应该是s1的方程,后面也是。
s1 s2顺序写反了。
式(7.58)下面一行: “U和V为对角矩阵”,应该是正交矩阵吧。