SLAM代码(SLAM简介)

SLAM是什么呢?Google一下,就会发现很长的一串名字-Simultaneous Localization and Mapping,哇感觉第一单词就不明白是干啥的啊!听我慢慢道来,先看后边的,Localization就是定位,Mapiing就是建图。所以从这里可以看到,这个东东至少玩了2个并发的线程。”同时“这个词就是要告诉我们localization 和mapping是同时发生的。问题是为什么要同时进行呢?这个我们稍后会讲。
第一个线程是定位,那么定位的结果是什么呢?一般我们知道飞机在空中有一个三维的坐标,这是位置。然后有一个飞行的方向,也是三维的,这是姿态,所以总共6维的信息。知道了这六维信息机器人就知道自己在哪里,地图,我们生活中的地图(百度地图)和这里的地图有啥不一样呢?百度地图呢,是为人而服务的,那么这里的地图既是给机器人用的,同时也给人看,所谓的可视化。有了地图呢,机器人就知道往哪里去,这就是导航,总而言之捏,slam算法就是为了导航而来滴。

SLAM怎么实现呢

感觉还是很有意思的啊,那么搞起来。

我们首先要考虑一个问题,人自己是怎么定位导航的呢?人使用眼和前厅系统综合完成自己定位,详细请参考博客玩转四旋翼无人机(sensor数据融合)。中的内容。
为了模拟人,机器人装了视觉和各种传感器。那么我们先从硬件着手,硬件呢得有一个机器人,当然没有也没关系,把自己模拟机器人好啦。然后可以把各种传感器啊,摄像头啊,挂在身上,拿着笔记本到处转。
好,回归正经模式。

按照传感器种类和安装方式的不同,SLAM呢,玩起来,搞法和难度完全不一样啊。现在的SLAM主要有2种,激光和视觉。激光SLAM被早些年玩slam的人搞的很好很好啦,可谓‘理论和工程均比较成熟”。视觉SLAM还是还没有被“玩坏”,“尚处于实验室研究阶段”。这样的发展的的原因是什么呢?为什么视觉传感器的方式比激光的slam更加困难,更难解决?

这个可以归咎于视觉的缓慢发展和近期的突破。近期计算机能力的提高和一些不变形特征描述子的发现,使得机器人上的计算机能够实时的处理图像信息。

SLAM研究自1988年提出以来,已经过了近三十年。早期SLAM研究侧重于使用滤波器理论,最小化运动体位姿和地图的路标点的噪声。21世纪之后,学者们开始借鉴SfM(Structure from Motion)中的方式,以优化理论为基础求解SLAM问题。这种方式取得了一定的成就,并且在视觉SLAM领域中取得了主导地位。

视觉传感器很难直接获得相对于环境的直接距离信息,而必须通过两帧或多帧图像来估计自身的位姿(这里的位子就是之前介绍的6自由度定位信息)变化,再通过累积位姿变化计算当前位置。这种方法更类似于直接用里程计进行定位,即视觉里程计(Visual Odometry),关于视觉里程计的详细内容可参考博客SLAM代码(VO简介)。里程计的测量积分后才相当于激光传感器直接获得的定位信息,这就是图优化SLAM框架中的前端。而后端对定位和位姿轨迹的优化本质上与激光传感器的优化相同,都基于最优估计的理论框架进行。

通过累计位姿变换这样的方式计算当前机器人的位姿信息的运行较长的时间之后会发生较大的偏移,这个误差称为累计误差。那么slam通过地图记录机器人走过的轨迹,当机器人重新回到走过的位置的时候,算法会完成回环检测,这样可以将累计误差归零。这也就是为什么会在定位的同时进行建图。因为地图的存在可以有效的提高定位的精度。

使用SLAM的机器人

来来我们看一看最高端的,火星车,先来张照片
SLAM代码(SLAM简介)_第1张图片
好,有请我们的扫地机器人闪亮登场。扫地机器人对于slam的普及工作做出了巨大的贡献SLAM曾经只有扫地机器人用,如今成了最火技术。其次是大疆的Guidance,使用的飞机就是精灵4,以及后来的mavic。

使用SLAM的AR

AR上使用SLAM算法就是典型的AR中inside out的定位方式,这样节约基站的搭建。让AR的运动范围变广。具体的可以参照知乎上的回答Magic Leap 和微软的 HoloLens 相比有哪些异同点?,magic leap 主页。另外一个比较出名的是project Tango。

refer

  1. http://www.computervisionblog.com/2016/01/why-slam-matters-future-of-real-time.html
  2. https://en.wikipedia.org/wiki/Simultaneous_localization_and_mapping
  3. Andrew Davison, “15 Years of Visual SLAM”,Robot Vision Group and Dyson Robotics Laboratory, Department of Computing Imperial College London.

你可能感兴趣的:(UAV)