SLAM和MonoSLAM

转载 2015年11月18日 10:15:36

原文地址 : SLAM和MonoSLAM


MonoSLAM的概念来自于SLAM(wiki),是Robotics中的一种定位算法,全称是Simultaneous Localization and Mapping。

让机器人知道自己在那里(Localization),可以用GPS,但是误差有点大(5米左右?),而且还必须在室外。怎么才能让机器人在室内,或者更精确地知道自己的位置呢?SLAM就是一种方法。

基本的想法是,如果我是一个机器人,我知道两个定点1:(x1,y1)和定点2:(x2,y2),我现在可以看见定点1,测量一下,离它5米,把头向右转过30度角后,可以看见离定点2,测量一下,离它10米。然后解一个三角形,我就知道自己在那里了(Localization),位置准确度和测量精度有关(转角,距离),通常可以控制在很小。

但是问题又来了,每次我走几步,就得回头看看定点1和定点2,才知道自己在哪里。这一步三回头的走法,真是一件非常二的事情。于是聪明勤劳勇敢的博士生们想出来一个方法,在第一步的时候,一旦我知道自己在哪里,我就添加几个定点:定点3,定点4,定点5……。因为知道自己的坐标,我可以测量出这些新定点离我多远,加上自己的坐标,就知道这些定点在哪里(Mapping)。以后的定位(Localization)就可以用这些新定点。多了这些定点后,以后再走路,哇身边都是定点,腰不酸腿不疼,知道自己在哪里了。

所以SLAM就是指,同时(Simultaneous)知道自己的位置(Localization)和(And…) 新的定点的位置((feature) Mapping)。因为不管是测量距离,还是计算自己的转角,或记录行走的距离(利用Odometer)都会有noise,而直接计算SLAM,noise会叠加。所以一般SLAM要有一个Kalman Filter的过程。ICRA 10的一篇文章就讨论了为什么需要Filter. (ICRA 10: Why Filter?) .如果对SLAM还有兴趣,可以看看这个Oxford的Summer School

而MonoSLAM,是Andrew Davison提出来的利用一个摄像头来做SLAM的方法,也叫Real-Time Structure From Motion。在这里,定点变成了visual feature,测量定点的位置转变为match feature, then triangulate. 一个2004年的demo 。当摄像头在空间里忘乎所以地移动时,MonoSLAM都可以利用feature matching,知道摄像头的位置,和那些feature的位置。demo中的右图的黄线,是camera的trajectory。而椭圆表示对于新加的feature的不确定性。paper


可以看到在demo中,虽然知道摄像头的位置,但是mapping的feature很少很稀疏,这样不好不强大。经过了6年,随着CPU,GPU越来越可怕,人民生活越来越幸福,Andrew Davison这个组终于在CVPR 10搞出了dense live MonoSLAM:利用GPU计算PTAM,然后Mesh成Surfeace。请看demo。有点长,请耐心,最后的小车的激情一跃很精彩。project page

SLAM和MonoSLAM在网上都有很多现成的code。像MRPT (跨平台),Andrew Davison的SceneLib (Linux),还有C#版本的。

单目视觉SLAM: Monoslam scenelib2 by Davison

scenelib2: Note however that SceneLib is now unmaintained, and is tricky to compile on modern system...
  • zyh821351004
  • zyh821351004
  • 2015年09月07日 11:40
  • 2969

SLAM和MonoSLAM-cvchina介绍

MonoSLAM的概念来自于SLAM(wiki),是Robotics中的一种定位算法,全称是Simultaneous Localization and Mapping。 让机器人知道自己在那...
  • peterli_xue
  • peterli_xue
  • 2012年05月07日 14:32
  • 2345

MonoSLAM: Real-Time Single Camera SLAM

单目摄像头SLAM
  • zmdsjtu
  • zmdsjtu
  • 2016年10月08日 13:16
  • 784

Davison's MonoSLAM测试经验

Testing Davison's MonoSLAM 半个月前从Davison的主页上下载了monoSLAM的源码,在ubuntu 6.10(gcc 4.1.2)上编译通过,并运行正常,最近又...
  • chuckdanglars
  • chuckdanglars
  • 2015年07月02日 11:18
  • 1299

SLAM和MonoSLAM简介与理解,VSLAM和SFM(structure form motion)的区别-->cvchina

文章极为浅显易懂地介绍了SLAM和MonoSLAM算法的原理,很容易理解。同时它提供了很多相关的资源,入门很有帮助,能够深入了解SLAM的发展。 --------------------------...
  • chuckdanglars
  • chuckdanglars
  • 2015年07月02日 09:58
  • 4809

MATLAB Implementation of MonoSLAM

MATLAB Implementation of MonoSLAM ENSTA ParisTech - Mobile Robotics Garance Bruneau - Sorya ...
  • peterli_xue
  • peterli_xue
  • 2012年05月25日 20:40
  • 3762

monoSLAM

本质矩阵:essential matrix 基础矩阵:Fundamental matrix 1、基础矩阵的定义和推导过程 注:这里的Pr、Pl代表在两个相机坐标系下的三维坐标。 下面过程将外极...
  • KinboSong
  • KinboSong
  • 2017年03月20日 16:51
  • 282

摄像头立体成像资料记录--SLAM和MonoSLAM

SFM和vSLAM基本讨论的是同一问题,不过SFM是vision方向的叫法,而vSLAM是robotics方向的叫法,vSLAM所谓的mapping,我们vision方向叫structure,vSLA...
  • zouwen198317
  • zouwen198317
  • 2014年08月22日 09:19
  • 2635

MonocularSlam之SceneLib介绍及其使用说明

1.基于单目视觉的移动机器人定位与建图(Monocular SLAM for Mobile Robotics)国外主要的研究学者来自英国帝国理工大学 的Andrew J. Davison提出了用一个...
  • peterli_xue
  • peterli_xue
  • 2012年04月12日 20:55
  • 1818

SLAM和MonoSLAM

MonoSLAM的概念来自于SLAM(wiki),是Robotics中的一种定位算法,全称是Simultaneous Localization and Mapping。 让机器人知道自己在那里(Loc...
  • zyh821351004
  • zyh821351004
  • 2015年03月31日 15:21
  • 1435
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SLAM和MonoSLAM
举报原因:
原因补充:

(最多只允许输入30个字)