SLAM新理解(1)
虽然我已经做了两次关于SLAM的周报了,但是平日里和实验室的师兄师姐交流的时候,他们好像还是不了解我要做啥。我觉得可能是前两次周报的时候,我对这个SLAM领域也是一知半解,所以才说的不够清楚。因此这次我想先把我要做的事情形象化地说明白,然后再汇报我这两周的工作。
好,先上图:东华大学松江区地图;为了说明问题引入另一个伙伴——实验室的机器人“葫芦娃”
有一天,师兄正在实验室敲代码(嗯,你没听错,而且就在2号学院楼),“葫芦娃”突然来找师兄:
“葫芦娃”:师兄,我要去二号教学楼上课了,你知道怎么去吗?(假设葫芦娃已经可以自己上课了)
师 兄:知道啊,从楼下往南走遇到体育馆,然后左拐、直走,然后......
“葫芦娃”:师兄,那具体走多远的距离啊?我又不认识体育馆、食堂......
师 兄:......?那这样吧,你边走边把周围的地图画出来,并画上你走的路径,我来告诉你对不对怎么样?
“葫芦娃”:好呀,好呀,出发喽
接下来,“葫芦娃”给师兄传回一张这样的地图:
蓝色表示的是起点——2号学院楼,黄色表示的是目的地——2号教学楼。上完课后“葫芦娃”又回到了二号学院楼,因此会形成一个闭合的环路。(当然地图是在我的指导下画好的,不然“葫芦娃”有可能就会掉到静月湖里面了,hhhh~)
好,那么我们SLAM做的事情是什么呢?
第一:把周围的环境“画”出来,包括建筑物、树、路and so on;
第二:“葫芦娃”必须实时向师兄“汇报”他在哪里?
实际上,第一步和第二步是同时进行的,“葫芦娃”必须一边建图,一边告诉师兄他的位置(是不是很智能啊);那么SLAM涉及到的三个模块就出来了:
视觉里程计——闭环检测——后端优化
视觉里程计:估计“葫芦娃”是前进了还是后退了,向左转了一下头,还是向右转了一下头(就像我们人一样,来到一个陌生的地方总会左看看,右看看,向前走走,再退回去看看)
闭环检测:当“葫芦娃”再次回到学院楼的时候,他必须知道自己已经“回家”了,这样他才能画出这样一张完整的闭合的地图。(难道还让师兄告诉他“你已经到家了”之类的话不成?)
后端优化:实际上“葫芦娃”传回来的是一张波动轨迹的地图,就像下面那张地图一样。但是我们需要关心他是怎么调整的吗?不,我们只关心他在哪,比如你是在体育馆前面,还是在东华大道上走着。所以这些扭扭曲曲的路线必须由他自己调整,称之为后端优化。
这些扭扭曲曲的线主要是因为噪声,有可能“葫芦娃”自己没有移动多少距离,但是计算机计算位姿变化时没有计算好从而导致了波动的路线;其次是闭环检测也有助于后端优化,因为闭环检测会告诉“葫芦娃”你又回到了以前到过的地方,这样“葫芦娃”才能画出一个闭合的地图,没有闭环检测就可能会画出一个越绕越大的圈。想象一下你被扔到一个陌生的城市,摸索了一圈又回到了原来到过的地方,是多么开心的事情啊!
一切准备妥当后就可以画出一张完整的地图了,欧耶!
到了这里你对SLAM(simultaneous localization and mapping)要做的事情了解了没?实际上,画出来的图有好几种,并不是局限于二维地图,比如路标地图、度量地图、拓扑地图等等。当然我们希望“葫芦娃”画出来的不是那种像手画版一样的地图,而是像下面这样的。你可以想象一下以你自己的第一视角画出来的三维地图是怎么样的?不过要实现这样的效果还是需要各位科研工作者的努力。
好!本次向大家介绍了SLAM 的基本内容,我想大家已经对它有了一个比较清晰的认识了,那么接下来就来谈谈我看的论文吧!
posted on 2019-10-27 11:11 Attack-DrHao 阅读(944) 评论(0) 编辑 收藏 举报