基于视觉传感器kinect的移动机器人由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“基于视觉的移动机器人”。
基于视觉传感器的移动机器人
摘要:
移动机器人的视觉系统研究已成为机器人导航领域中的一项关键研究内容,随着机器人导航在机器人应用领域中变得越来越重要,在机器人视觉导航系统中,获取图像深度信息逐渐成为研究的重点。
在机器人视觉领域,深度检测一般是通过对普通RGB图像处理的方法来实现,具有不小的工作量。本文利用Kinect深度摄像机来获取、显示深度图像这一方法,并应用于机器人视觉系统。进而实现移动机器人的认路。
关键词: 视觉系统 Kinect 深度图像
Abstract The visual system research in the field of robot navigation has become a key research content, as robot navigation in the robot navigation application fields become more and more important, in the robot vision navigation system, obtain image depth information has become the focus of research.In robot vision areas, Depth detection is generally through to the ordinary RGB image proceing methods to realize, have a lot of workload.This paper put forward according depth camera to gain、show the depth image this method, and application in robot vision system.The experimental results show that this method can achieve the depth information of the image extraction and greatly reduce the workload.so the robot can know the road.Keywords: Visual system Kinect Depth image 1 引言
智能自主移动机器人是当今国际机器人研究领域的热点,而路径规划则是智能移动机器人中的一个重要组成部分,其研究目的是使机器人能在不同的环境中自主路径规划。环境感知是移动机器人进行自主路径规划的关键技术,获取这些信息的传感器既需要足够大的视场来覆盖整个工作区,又需要较高的采集速率以保证在运动的环境中能够提供实时的信息。近几年来,由于计算机图像处理能力和技术的飞速发展以及大量的数字图像处理设备性能价格比的提高,加之视觉系统具有信号探测范围宽、目标信息完整等优势,视觉传感器在移动机器人导航中的应用越来越受到人们的重视并表现出很好的发展前景[1]。
本文的移动机器人主要是通过Kinect深度摄像机来获取场景的深度信息,然后对深度图象的处理来确定前方是否有障碍物,当移动机器人与目标障碍物有一定的距离时,做出相应的反应跟动作。机器人使用的视觉传感器:Kinect
Kinect是美国微软公司于2010年11月4日推出的Xbox 360游戏机体感周边外设的正式名称,起初名为Natal,意味初生。它实际上是一种3D体感摄影机,利用即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能让玩家摆脱传统游戏手柄的束缚,通过自己的肢体控制游戏,并且实现与互联网玩家互动,分享图片、影音信息。Kinect是微软最新的畅销产品,它是吉尼斯世界记录中销售速度最快的消费电子产品。自从2010年11月发布至2011年4月,微软已经在全球售出了超过1000万台Kinect。
多年以来,机器人科技领域一直被一个基本问题所困扰:机器人要移动,就必须能够创建它所处周围环境的地图,同时能够理解身处的位置。机器人学家已经开发出了实现这一项功能的工具,名为“同步定位绘图”。但是用于工具中绘制地图的传感器要么昂贵,要么计算不准确。而Kinect的出现,既能够实时拍摄3D图象的摄像头,而且重量轻,可以为机器人添加导航算法,执行路径追踪,路径规划,是“视觉传感器”的不二选择[2]。
2.1 Kinect传感器的主要结构
图2.1 Kinect传感器
Kinect的“心脏”:PS1080系统级芯片(SoC),PS1080 SoC 拥有超强的并行计算逻辑,可控制近红外光源,进行图象编码并主动投射近红外光谱。同时,通过一个标准的CMOS图象传感器接收投影的Light Coding 红外光谱并且将编码后的反射斑点图象输送给PS1080,PS1080对此进行处理并生成深度图象。
Kinect有三只不对称的“眼睛”,从左到右,分别是红外投影仪,彩色摄像头,以及红外摄像头。中间的摄像头提供了彩色图像;剩余的两个元件通过发射接收红外线,提供深度数据,如上图所示,尺寸上他们接近于网络摄像头,其镜头大,具备自动对焦功能[3]。
2.2 Kinect传感器获得深度图象的原理
Kinect 红外发射器(Infrared Projector)发射出雷射光,通过红外发射器镜头前的光栅(diffuser),均匀地投射到测量空间,测量空间的粗糙物体反射,形成随机的散斑,再通过红外摄影机(Infrared Camera)记录空间的每个散斑,通过晶片的计算便得到3D深度图像[4]。
运用Kinect传感器的一种名叫Light Coding的技术。Light Coding,是Kinect的核心技术,顾名思义就是用光源照明给需要测量的空间编上码。但与传统的结构光方法不同的是,他的光源打出去的并不是一副周期性变化的二维的图像编码,而是一个具有三维纵深的“体编码”。这种光源叫做激光散斑,是当激光照射到粗糙物体或穿透毛玻璃后形成的随机衍射斑点。Light Coding技术理论是利用连续光(近红外线)对测量空间进行编码,经感应器读取编码的光线,交由晶片运算进行解码后,产生成一张具有深度的图像。这些散斑具有高度的随机性,而且会随着距离的不同变换图案。也就是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了。当然,在这之前要把整个空间的散斑图案都记录下来,所以要先做一次光源的标定。标定的方法是这样的:每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。如下图:
图2.2 光源标定
假设Kinect规定的用户空间是距离摄像头1~4m的范围,每隔1cm取一个参考平面,那么标定下来我们就保存了300幅散斑图像。标定的间距越小,精度越高,如图2.2所示。需要进行测量的时候,拍摄一幅待测量的散斑图像,将这幅图像和我们保存下来的300幅参考图依次做互相关运算,进而得到300幅相关度图像。而空间中的物体存在的位置,会在相关图像上会显示出峰值,把这些峰值叠加在一起,再经过插值运算后就会得到整个场景的三维形状了。
2.3 Kinect传感器与机器人的结合实现认路
在移动机器人身上安装Kinect传感器以及导航软件:
图2.3 会认路的机器人
当机器人经过一场景时,Kinect会侦测这个拐角里面的墙壁、道路、障碍,导航软件将 Kinect所看到的东西统统绘制成三维图像,同时通过传感器,软件还会计算机器人目前的位置,然后计算出路径,并储存起来。当机器人再次经过这个场景时,Kinect再次绘制了三维图像,软件就把这次的得到的三维图像和之前得到的三维图像对比,看是否相同,如果相同就按照之前的路径去走,如果不同就重新计算新的路径,也就是说如果下次机器人经过这个拐角,它就能够轻松绕过不知从那里冒出来的箱子。
3.总结与展望
本文简单介绍了Kinect传感器的机构,工作原理。以及通过Kinect深度图象技术和导航软件的移动机器人进行认路功能,相信以后Kinect传感器的应用会更加的广泛。
Kinect传感器还具有识别人体动作等很多功能,因此还能开发出跟随人体而动的机器人,日本电影《环太平洋》里面的机器人场景也许在将来也会实现。
参考文献
[1] 钟玉琢, 乔秉新.机器人视觉技术[M].北京: 国防工业出版社, 1992.[2] 余涛.Kinect应用开发实战[M].机械工业出版社, 2013.[3] 余涛.Kinect应用开发实战[M].机械工业出版社, 2013.[4] Helen Knight.New system allows robots to continuously map their environment,MIT news[J].2012.4.