/***********************************************************************************************************
.....从前,一种叫WALL-E的小机器人被送往地球清除垃圾,但WALL-E并不适合地球的环境,大批量地来也大批量地坏,最后只剩下WALL Tang还在日复一日的按照程序收拾废品。就这么过了几百年,仅存的WALL Tang还在垃圾堆里淘到不少人造宝贝,它也开始有了自我意识,懂得什么是孤独。有一天一艘飞船突然降落,一个女机器人夏娃来到地球执行搜寻任务,捡垃圾的机器人“爱”上了Candy,自此他决定跟随Candy远离地球。然而,以前WALL Tang的两只眼睛是两个固定的RGB相机,通过视觉算法(SFM)自动计算垃圾和自己的距离。这几年来,因为老化问题,它有一只眼睛已经看不见东西了,庆幸的是,它从垃圾堆里面捡到一种叫做深度相机的东西,它可以通过机构光,TOF或者激光扫描的方式直接计算自己和前面东西的位置。 就这样为了更好的适应这对新的眼睛实现私奔计划,WALL TANG潜心研究,志在用一只RGB眼睛和一只深度(depth)眼睛来进行高精度定位,搞清楚自己到底在哪,自己旁边都有神马,自己怎么走出去。
多年以后,当WALL TANG站在多普拉多星球俯视地球上堆积如山的垃圾堆的时候,才知道这种定位技术叫做机器人定位与制图(SLAM)技术,自此,WALL TANG走上了教书育人的道路,势必要把这项技术发扬传承。那么接下来就让WALL TANG 讲讲RGB-D SLAM 涉及到的硬件和关键吧。
*********************************************************************************************************/
1) 硬件部分
目前用在SLAM上的Sensor主要分两大类,激光雷达(单线阵,多线阵), RGB相机(单目,双目,多目)(这一部分就不详细介绍了),另一类为近年来新兴的RGB-D传感器(如微软的Kinect,Primer Sense的Structure Sensor),通过价格低廉,实时,以及可接受的量测精度打入室内建模市场, 其深度相机主要是以结构光原理进行成像,通常具有激光投射器、光学衍射元件(DOE)、红外摄像头三大核心器件。它可以同时产生RGB图像和深度图像,如下图所示,工作机制和视频流类似,以每秒30帧的速度收集数据。下图中是Primer sense 的strucutre sensor相机,它的doe是由两部分组成的,一个是扩散片,一个是衍射片。先通过扩散成一个区域的随机散斑,然后复制成九份,投射到了被摄物体上。根据红外摄像头捕捉到的红外散斑,PS1080这个芯片就可以快速解算出各个点的深度信息。
有了深度图和RGB图像之后呢,,SLAM算法就需要工作了,由于RGB-D传感器实际上将结合了三维结构和二维图像结合在一起,所以与传统的只通过激光点云或者只通过RGB图像序列进行SLAM有所不同,但其思路以及涉及到的关键技术都大同小异。
1) 关键技术部分
(1)深度数据模型
RGB-D的一大优势在于每一帧获取的RGB图像和深度图像能够逐像素匹配在一起,针对深度图像上的每一个像素,都可以获取到它对应的深度值,然而,RGB-D相机的量测范围有限,其数据量测精度和量测距离有关,一般只有3-4米以下的深度数据可用于室内建模。下图为量测距离与量测精度图表。
通过图像的像素坐标可通过以下公式来获取对应的三维坐标:
其中,Xc,Yc,Zc是获取的地面坐标,u’和v’是像素坐标,D是从深度图像中获取的深度值(一般都有一个scale,D=D‘/Scale),fxD和fyD是图像的焦距
(2)特征点探测(后续)