学习SLAM需要哪些预备知识?

origin: https://www.zhihu.com/question/35186064/answer/61904775
作者:毛曙源
链接:https://www.zhihu.com/question/35186064/answer/61904775
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

SLAM涵盖的东西比较多,分为前端和后端两大块。前端主要是研究相邻帧的拼接,又叫配准。根据传感器不一样,有激光点云、图像、RGB-D拼接几种,其中图像配准中又分基于稀疏特征(Sparse)的和稠密(Dense)的两种。后端主要是研究地图拼接(前端)中累积误差的校正,主流就两种,基于概率学理论的贝叶斯滤波器(EKF,PF)以及基于优化的方法。EKF已经用得很少了,PF也就在2D地图SLAM(Gmapping)中用得多,大多还是用优化的方法在做。

你自己已经说了这块需要的知识,一个是数学,一个是编程。所以入门的话,也从这两块开始弄。
一、数学方面
数学的话,建议楼上说过的Thrun的《probabilistic robotics》,其实不需要全部看完,了解下概率学是如何解决机器人中的问题的,关键学习贝叶斯滤波,也是就是贝叶斯公式在各个问题(定位,SLAM)中的应用。另外,优化的话,建议先把最小二乘优化中给弄透彻,数学推导要会,因为很多问题,最后都是归结到最小二乘优化,然后就是梯度下降、求Jacobian之类的。
二、编程方面
理论的东西是比较无聊的,必须得实战。建议入门先写一发最小二乘优化,可以就做一个简单的直线拟合,不要用Matlab中的优化工具,了解数学推导最后是怎么写到代码里面的。然后,一定要玩好Matlab优化工具包,做实验最方便了。
有了一些基础之后,可以尝试玩一些现有的SLAM包,推荐两个地方,一个是www. openslam.org,里面有各种SLAM包,主流的SLAM算法,在这一般都有源码。另外一个就是ROS了,里面有很多现成的SLAM包,像Gmapping,RGB-D SLAM,上手非常快,甚至你没有任何设备,你也可以利用ROS中的仿真环境(如Gazebo)跑。建议先试试Gmapping,百度上有很多中文教程,一开始跑这些package还是很涨成就感的,可以提高你的兴趣。
如果你是做视觉或者RGB-D,那么OpenCV和PCL是必不可少的工具。早点上手肯定没得错。
三、进阶
大体入门之后,你就需要根据你实验室研究的项目来学习了,看是用激光、相机、还是Kinect来做了,不同传感器的前端算法还是有些差距的。激光的话一般是ICP,相对简单。视觉的东西还是比较多的,楼上推荐《Multiview Geometry in Computer Vision》确实很重要,不过,我觉得这同时你还应该了解特征提取、特征描述子、特征匹配这些东西。如果你们实验室做的Dense registration,那你还得学李代数那些东西(高大上啊,神马李群看好多天都看不懂啊!!!)。其实,很多算法都有开源包,你可以去ROS、一些大神博客、牛逼实验室主页中多逛逛。
四、学渣只能帮你到这了,再后面就不会了,再往后就得找真大神了。


1 习题说明 • 第 i 节课习题所有材料打包在 Li.zip 中,∀i = 1 . . . 8。 • 习题分为若⼲种:计算类习题,需要读者编程计算⼀个实际问题,我们会附有参考答案以供⾃测。 操作类习题,会指导读者做⼀个具体的实验,给出中间步骤截图或结果。简述类习题则提供阅读材 料,需要读者阅读材料后,回答若⼲问题。 • 每个习题会有⼀定的分值。每次习题分值加和为 10 分。你需要获得 8 分以上才能得到“通过”的评 价。带 ∗ 的习题为附加题,会在总分之外再提供⼀定的分值,所以总和可能超过 10 分。换句话说, 你也可以选择⼀道附加题,跳过⼀道正常题。 • 每道习题的给分由助教评判,简述类习题可能存在⼀定开放性,所以评分也存在主观因素。 • 请利⽤深蓝学院系统提交习题。每次习题我们会记通过与否。提交形式为 word 或 pdf 格式报告, 如有编程习题请提交可编译的源码。 • 为⽅便读者,我通常会准备⼀些阅读材料,放在 books/或 papers/⽬录下。请读者按个⼈需求使⽤ 这些材料。它们多数是从⽹络下载的,如果侵犯到你的权利,请及时告诉我。 • 每个习题会标注⼤致⽤时,但视同学个⼈⽔平可能会有出⼊。 • 习题的完成情况会影响你对本课程内容的掌握程度,请认真、独⽴完成。习题总得分较高的同学将 获得推荐资格。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值