设为首页 加入收藏
   
     
   
科技•信息
 
地面特征识别的室内机器人视觉导航系统的研究
双击自动滚屏 发布者:admin 时间:2011-2-25 17:31:55 阅读:374次 【字体:

地面特征识别的室内机器人视觉导航系统的研究

 

  摘 要:
  导航技术是移动机器人实现自主的关键技术。视觉导航以其自身的优点成为移动机器人智能导航的热点。本文利用室内环境中普遍铺设的地面瓷砖作为导航陆标,把瓷砖之间的间隙作为机器人的行走路径,把瓷砖的四个角点作为跟踪控制参数,来完成机器人导航的任务。利用Intel公司开发的计算机视觉库函数OpenCV进行了一系列的试验。试验表明,本文提出的视觉导航方法效果良好。
  
  关键词:室内移动机器人 视觉导航 地面特征识别
  
  1、引言
  
  导航技术是移动机器人实现自主的关键技术。由于视觉系统具有信号探测范围宽、目标信息完整等优势,再加上近年来,计算机图像处理能力和技术的飞速发展以及大量的数字图像处理设备性价比的提高,移动机器人视觉导航成为研究热点[1]。
  
  沿着地面轨线行走是视觉导航最简单的应用[2]。近年国内外组织的机器人比赛项目中有一类是提供导航线的,自主机器人可以寻导航线行走导航。机器人的寻迹有广泛的研究。文献[2]、[3]和[4]中,机器人通过视觉寻找地面上的路径引导线来完成导航。同时在文献[3]的结论中提到,室内环境中,大量存在可用于视觉导航的陆标,如规则的地板瓷砖、天花板网格线、踢脚板、门牌标志等。所以在本文中,就利用了目前室内普遍都铺设了地板瓷砖所提供的环境信息,提出了一种室内移动机器人导航的方法。
  
  本文中的视觉导航方法,是以地板瓷砖之间的缝隙为边缘特征以及瓷砖的四个角为角点特征,机器人识别这些特征为导航陆标来完成导航的任务。
  
  2、基本方法
  
  2.1 工作流程
  
  机器人在导航过程中要充分利用环境的特征,为了满足机器人导航实时性和准确性的要求,对这些特征的识别必须做到快速和准确。现在的室内环境中一般都铺设有地板瓷砖,所以本文就以地板瓷砖作为导航的陆标。地板瓷砖具有比较多的特征,如颜色、规则的四边形、瓷砖之间的间隙、四边形的四个角点等。利用颜色不能很容易地完成机器人的定位,并且彩色图像处理复杂,所以本文先不考虑颜色。由于摄像机是安装在机器人上随着机器人一起移动,摄像机拍摄到的瓷砖的形状和角度在不断变化,所以瓷砖的四边形这个特征不在考虑之列。本文主要利用瓷砖之间的间隙和瓷砖的四个角点这两个特征,把瓷砖之间的间隙作为机器人的行走路径,把瓷砖的四个角点作为跟踪控制参数,从而使机器人完成导航的任务。本文的视觉导航系统的工作流程如图1所示。
  
  2.2 图像处理工具包OpenCV 简介
  
  利用一些现有的图像处理工具包可以缩短程序的开发周期,从而可以有更多的时间和精力去解决关键问题。本文选用Intel 公司开发的开源项目OpenCV 视觉库函数,结合Visual C++6.0 来完成图像处理的工作。
  
  OpenCV 库具有以下特点:开放C 源码;基于Intel 处理器指令集开发的优化代码;统一的结构和功能定义;强大的图像和矩阵运算能力;方便灵活的用户接口;同时支持MS-WINDOWS、LINUX 平台等。作为一个基本的计算机视觉、图像处理和模式识别的开源项目,OpenCV 可以直接应用于很多领域,作为第二次开发的理想工具。比如实时计算机视觉领域中的人机交互目标分割和识别;人脸识别;手势识别;运动跟踪、自我运动、运动理解;移动机器人等。
  
  3、主要算法描述
  
  为了保证机器人导航的快速、准确和稳定,要充分考虑到图像处理模块中算法的实时性与鲁棒性。
  
  3.1 图像预处理
  
  这里,图像预处理包括视频的采集、高斯滤波和彩色图像的灰度图转换。
  
  OpenCV 视频采集的技术是基于VFW 的,其捕获图像的函数分别在highgui 类库和cvcam 类库中,本文中的视频采集就利用这两个类库。从CCD 得到的输入图像可能存在噪音,在随后的边缘检测中有会把这些噪音当作边缘,所以要对原始输入图像进行滤波处理,消除噪音。但是由于高斯平滑处理会使边缘变模糊,综合考虑选用5×5 高斯滤波器进行滤波。由CCD 获得的图像为彩色图像,为了减少以后图像处理的计算量,将滤波后的彩色图像变换为灰度图像。本文中的灰度转换的公式为:Gray = 0.212671R + 0.715160G + 0.072169B。其中Gray 是每个象素的灰度值,R、G 和B 分别是彩色图像中每个象素的红、绿、蓝三个分量值。图2 就是采集的一帧图像预处理后的结果。
  
  3.2 边缘检测
  
  在计算机视觉中,图像的边缘提取是一个非常基本的研究课题。比较常用的边缘检测算法包括Roberts 、Sobel 、Laplace 、Prewitt 、Canny 等算法。近年来也出现了不少基于计算智能的图像边缘检测的方法,如基于神经网络和模糊逻辑推理的边缘抽取方法等。移动机器人视觉导航过程是在运动中对图像进行实时处理,过于复杂的图像处理方法,如Laplace、Canny 算法和一些基于计算智能的算法,往往由于处理时间较长,难以满足系统实时性要求。综合考虑边缘检测效果和耗时,本系统选用由OpenCV提供的3×3Scharr边缘检测算子。该算子与3×3Sobel算子类似,具有方法简单、处理速度快、能得到光滑连续边缘的特点,因而有利于机器人寻迹。边缘检测后的图像如图3。其卷积核为:
  
  3.3 角点检测
  
  由于瓷砖的四个角点都是在瓷砖的边界上,所以本文的角点检测并不是对图像的每个象素进行检测,而只是检测边缘图像中边界上的象素。这使得计算量减少,提高了处理的效率。
  
  OpenCV视觉库函数中用于检测角点的方法有两种:
  
  方法一:对于要处理的象素,如果函数Dx2Dyy+Dy2Dxx-2DxDyDxy的值为局部最大值,则该点象素就被认为是角点,其中D*表示一阶图像差分,D**表示二阶图像差分。  
  方法二:计算要检测角点的区域在x和y方向上的微分。随后创建一个2×2的矩阵:通过求解)det(Icλ=0,得到特征值,其中λ是特征值,I是单位阵。对于上述2×2矩阵,其特征值为:
  
  如果t>21,其中t是某个阈值,那么点(x,y)处就为角点。这种方法对于目标或形状识别很有帮助。
  
  本文通过大量的试验,选用cvGoodFeaturesToTrack这个函数来进行角点检测。该函数是基于第二种方法的,图像中寻找具有大特征值的角点。首先计算要检测的象素的最小特征值,然后进行非最大值抑制(仅保留3×3邻域中的局部最大值),将最小特征值小于一定值的象素排除掉,最后函数确保所有发现的角点之间具有足够的距离。图4是角点检测的结果,图中可以看出,瓷砖的角点被很好地检测出来了。
  
  3.4 路径跟踪
  
  从图4中,我们已经得到了边缘信息和角点信息。机器人就利用这些两个信息来导航。机器人在移动前先选择一条行走边缘以及输入机器人转弯时走过的角点的数目(Ni,第i次转弯时经过的角点数目)。在移动时,让它沿着所选择好的边缘直线行走,在行走的过程中,记下已经走过的角点的数目。当计数器的数目达到Ni时,让机器人转弯(左转90°或右转90°,也可以在对角的方向上转弯到另一个角点),同时计数器清零。然后沿着另一条边缘直线行走,计数器重新开始计数。通过记下行走的角点的总数目(ΣiN),再乘以瓷砖的宽度,就可以计算出机器人行走的里程,同时也可以实现机器人的定位。
  
  4、试验分析
  
  本文算法借助于OpenCV图像处理工具包,在Visual C++6.0编译环境中实现。如图5是对实验室的地面瓷砖进行识别,结果显示瓷砖的边缘和四个角点都很清楚地识别出来了。这样,机器人的导航过程中,不用装载环境地图,仅仅根据这些边缘和角点来行走。试验中视频图像的大小是320×240,在P4 3.0G的CPU上,整个算法的处理时间平均为17ms左右。常用摄像机可以是NTSC制式和PAL制式,每秒所对应的刷新频率分别是30Hz和25Hz,即每帧图像的采集周期分别为33ms和40ms,所以本文的算法能够满足实时性的要求。
  
  5、结论
  
  本文根据目前室内中普遍存在的地面瓷砖这个环境特征,提出了一种视觉导航的方法,使得机器人的导航不用依赖专用的路径引导线。在图像处理的每一步都运用简单高效的算法来满足机器人视觉导航的实时性和准确性要求。当然本文的算法中没有包括避障这一导航任务。我们可以利用瓷砖的颜色来区分出地面和障碍物,这是对本算法很好的补充,是以后要努力的方向。

上一篇|下一篇

 相关评论

暂无评论

 发表评论
 昵称:
 评论内容:
 验证码:
  
打印本页 || 关闭窗口
 
 

咨询电话: 13891856539  欢迎投稿:gmlwfbzx@163.com  gmlwfb@163.com
617765117  243223901(发表)  741156950(论文写作指导)63777606     13891856539   (同微信)

All rights reserved 版权所有 光明论文发表中心 公司地址:西安市碑林区南大街169号-6
CopyRight ©  2006-2009  All Rights Reserved.


  制作维护:中联世纪  网站管理
访问 人次
国家信息产业部ICP备案:陕ICP备17019044号-1 网监备案号:XA12993