在机器人发展早期,人们已经开始研究移动机器人的定位问题。按正常思维来说,机器人想要知道自己位置,或者从A点走到B点,需要先有一张地图,然后用算法在地图上先规划出路线,然后机器人再沿着规划出来的路线走。但问题来了,对于一个新环境,机器人就需要先构建一个地图,但构建地图的过程中,机器人又需要知道自己的位置,否则画出来的图可能跟现实差了十万八千里(当不闭环的时候)。为了解决这个问题,研究者们提出了一个一石二鸟的方法,也就是即时定位与地图构建(Simultaneous Localization and Mapping, SLAM)

关于SLAM的文章可以在网上搜到一大堆,在这里只做科普性的解说,让初学者对SLAM有个概念。

SLAM按照其架构一般可以分解成前端和后端。 前端主要做视觉相关的东西,像识别,匹配。而后端主要做图优化,闭环。

举个简单的例子,假设你出国旅游的时候被绑架了,犯人把你押到一辆车上面,但是你可以从车窗看到沿途的景物。这个时候你就得使出吃奶的劲去记住沿途到底经过了哪些建筑了。一般来说,我们只会去记一些有特征的建筑或者标记,比如说麦当劳,肯德基,万达,等等,对于没有特征的居民楼,我们肯定是不会浪费有限的记忆空间去记住的。而这些有特征的标记,在SLAM中就充当landmark的角色,在机器视觉中,这些landmark可以是二维码,也可以是一些特征点,总之是机器人第二次看见他们的时候能够认出来我见过这些个东西的东西都能用作landmark(这个过程其实就是匹配),系统前端做的东西大概就是这些。

当你正在手忙脚乱的记landmark的时候,犯人接到了一个电话,说绑错人了,他要绑架的是富豪的儿子,而你明明是个穷二代。犯人一怒之下把你踹下车,然后扬长而去。然而你已经被送到了一个陌生城市,手机也被拿走了,语言也不通,你只能靠记忆走回去原来的地方。这时候后端就发挥作用了。由于车来的时候走的是高速,你无法沿路往回走,只能走旁边的路,这时候你经过了一个麦当劳(一个landmark),但你不确定这是哪个麦当劳,因为路上经过的麦当劳实在太多了。而恰好你发现麦当劳旁边还有一个加油站,于是你一下子就想起了自己处于哪个路段(定位加闭环)。然后你继续往前走,发现又是麦当劳旁边有一个加油站,这时候你犹豫了。到底哪个才是刚刚走过的位置?带着疑问你只好继续往前走,终于你见到的landmark越来越多,对自己的定位越来越熟悉。直到最后回到原来的位置。

用一个图来表示的话,左边代表闭合失败,也就是已经走到了原来的位置,但是机器人没认出来,以为是新的位置(由于轮子里程碑的误差,不加后端时候走出来的图一般就是左边的图),而右图就代表闭环成功。在实际应用中,机器人一般需要闭环很多次,而每一次闭环后端都会优化路径(推测机器人实际走过的距离,转过的角度)。而这个建图的过程现阶段还是需要人来控制的,因为只能是人来判断图建的好不好。也希望后续会有好的自动建图方法能被提出来。

想要动手或者想看看建图过程的童鞋,本人推荐用turtlebot,通过ros和gazebo来模拟建图。

网址见:http://wiki.ros.org/turtlebot_navigation/Tutorials/indigo/Build%20a%20map%20with%20SLAM

六. 先有鸡还是先有蛋?--SLAM相关推荐

  1. 菌群与疾病的关系探讨之一:先有鸡还是先有蛋?

    本文转载自"态昌基因",己获授权. 掐指一算,小昌也是有十几年菌群研究项目经验的老司机了,本以为做的多会的多,结果却是做得越多疑问越多,所以小昌对菌群研究的评价就是"这里 ...

  2. 先有鸡还是先有蛋? 加拿大科学家揭开谜底

    据美国生活科学网报道,鸡和蛋先后之争持续已久,究竟是先有的鸡还是先有的蛋,这一让人百思不得其解的古老谜题终于有了谜底.通过对7700万年前的恐龙蛋化石的研究后,科学家宣布谜题答案是先有的蛋后有的鸡. ...

  3. 先有鸡还是先有蛋,程序员怎么看

    先有鸡还是先有蛋,这个问题你是否也想过?这种具有互相依赖关系的情况,其实相对于经常接触电子产品和信息系统的程序员来说,也很常见.你有没有想过,这种现象就好比现代CPU的设计,需要在PC电脑上设计,而P ...

  4. 《系统思考》:先有鸡还是先有蛋?(转)

    <系统思考>:先有鸡还是先有蛋? 关于作者,关于本书 本书的作者是丹尼斯·舍伍德.丹尼斯曾就读于剑桥大学.耶鲁大学.加州大学以及伦敦商学院. 丹尼斯在学术界享有盛名,著述颇丰.他曾以合伙人 ...

  5. 蛋鸡问题,先有鸡还是先有蛋。顺便回答第一个编译器是怎么来的。(思考使人伟大)

    生活中存在着一些自举的例子,这些例子常被拿来做为思维狡辩的工具,它们确实也起到了让普通人思维混乱的作用. 问题如下: 1.  蛋鸡问题,鸡可以生蛋,蛋可以孵出鸡,那么到底先有鸡还是先有蛋? 2.  人 ...

  6. 破旧立新破解先有鸡还是先有蛋

    这个世界上是先有鸡还是先有鸡蛋呢? 这是一个流传极广的难题,往往被认为无法回答,算是一个"看起来很简单,实际上异常困难"的典型. 先有鸡还是先有蛋之所以无法解答,并非真的有多难,而 ...

  7. 逃不出的循环,先有鸡还是先有蛋?object和type纠葛(python中的基类和元类)

    问题 学习一段时间python了,一定会接触到两个词,基类和元类. 基类: 也叫父类,python中所有对象的终极父类是object,所有类都显式或隐式,直接或间接地继承了object类. 元类: 由 ...

  8. 用C#写C#编译器,先有鸡还是先有蛋

    前段时间翻译的一篇文章 微软是如何重写C#编译器并使它开源的,文章讲了微软用C#重写C#编译器的坎坷路,引发了一些童鞋的思考:用C#编写C#编译器(Roslyn),那么C#编译器本身是由谁来编译的?C ...

  9. 用 C# 编写 C# 编译器,先有鸡还是先有蛋?

    前段时间翻译了一篇文章 微软是如何重写 C# 编译器并使它开源的,文章讲了微软用 C# 重写 C# 编译器的坎坷路,引发了一些童鞋的思考:用 C# 编写 C# 编译器(Roslyn),那么 C# 编译 ...

  10. 哈罗发展顺风车业务,需要解决先有鸡还是先有蛋的问题

    哈罗顺风车上线已有近一个月了,其官方的说法是从1月25日至2月4日,哈罗顺风车车主注册量超过200万,累计发布订单量达到700万,看起来这是一个相当不错的数字,不过其业务要继续发展,柏颖科技认为它要解 ...

最新文章

  1. 敏捷宣言遵循的十二条原则
  2. Centos6.3下利用open***部署远程×××服务
  3. ubuntu18.04.4 获取当前文件路径
  4. Android 图像合成技术Xformodes图片剪裁
  5. Java 应用线上问题排查思路、常用工具小结
  6. 消费金融资金断流,银行抽贷、通道暂停,P2P离场
  7. 第十八期:闲鱼上哪些商品抢手?Python分析后告诉你
  8. ROS学习笔记2(ROS文件系统和ROS常用命令)
  9. 小米回应“海量备货致亏损”;美团饿了么“偷听”?苹果发布新 iPad | 极客头条...
  10. 戴尔服务器显示器接口类型,拒绝凌乱桌面 Type-C接口显示器的魅力
  11. 东野圭吾《解忧杂货店》读后感
  12. linux 文本随机抽样_Linux命令总结
  13. Android实现三角形气泡效果方式汇总,高级安卓面试题及答案2019
  14. Booststrap4布局(栅格系统)
  15. shell之免交互图文详解
  16. 全自动过滤型射频水处理器工作原理
  17. 泊松分布的矩母函数与特征函数
  18. Python常用函数date_range
  19. 集合的 相关 基础知识
  20. 提供TOR的使用方式

热门文章

  1. 李飞飞团队造出“窥视未来”新AI:去哪干啥一起猜,准确率压倒老前辈
  2. RPA之家视频讲解RPA-3
  3. Android多媒体之GL-ES战记第一集--勇者集结
  4. 怎样用c语言制作文件保险箱,开题(电子保险箱)技巧.doc
  5. Laravel Eloquent 必备的实用技巧
  6. 申请百度语音识别API 接口-免费
  7. 怎么在服务器里修改分机的ip,Avaya1608IP话机设置步骤、分机号重设、电话机重置_Avaya1608IP电话机设置步骤、分机号重设、电话机重置_软件教程_了忧科技...
  8. 这个世界的本源不是物质,而是物质背后的基本秩序-柏拉图
  9. JavaSE个人复习式整理知识点之函数式接⼝、Stream流、⽅法引⽤
  10. oracle认证考试指南全册,OCP认证考试指南全册Oracle Database10g