Foodjx导读:移动机器人是机器人学一个重要分支,且随着相关技术的迅速发展,它正向着智能化和多样化方向发展,应用广泛,几乎渗透所有领域。于春和采用激光雷达的方式检测道路边界,效果较好,但干扰信号很强时,就会影响检测效果。付梦印等提出以踢脚线为参考目标的导航方法,可提高视觉导航的实时性。
这里采用视觉导航方式,机器人在基于结构化道路的环境下实现道路跟踪,目标点的停靠,以及导游解说,并取得较好的效果。
导览机器人简介
导览机器人用在大型展览馆、博物馆或其他会展中心,引导参访者沿着固定路线参访,向参访者解说以及进行简单对话。因此导览机器人必须具有自主导航、路径规划、智能避障、目标点的停靠与定位、语音解说以及能与参访者进行简单对话等功能,并具有对外界环境快速反应和自适应能力。基于层次结构,导览机器人可分为:人工智能层、控制协调层和运动执行层。其中人工智能层主要利用CCD摄像头规划和自主导航机器人的路径,控制层协调完成多传感信息的融合,而运动执行层完成机器人行走。图1为智能导览机器人的总体结构框图。
导览机器人硬件设计
人工智能层硬件实现
考虑到移动机器人控制系统要求处理速度快、方便外围设备扩展、体积和质量小等要求,因此上位机选用PC104系统,其软件用C语言编程。采用USB摄像头,采集机器人前方的视觉信息,为机器人视觉导航,路径规划提供依据。外设麦克和扬声器,当机器人到达目标点后,进行导览解说。
控制协调层的硬件实现
机器人
传感器的选取应取决于机器人的工作需要和应用特点。这里选用超声波传感器、红外传感器、电子罗盘及陀螺仪,采集机器人周围环境信息,为机器人避障、路径规划提供帮助。利用ARM处理平台,通过RS-485总线驱动电机,驱动机器人行走。
导览机器人要求传感器精度稍高,重复性好,抗*力强,稳定性和可靠性高。机器人在行进过程中必须能够准确获得其位置信息,数字罗盘可靠输出航向角,陀螺仪测量偏移并进行必要修正,以保证机器人行走的方向不偏离。采用超声波传感器和红外传感器相结合的方法获取前方障碍物信息。该系统设计选用6个超声波传感器和6个红外传感器。其中,正前方和正后方各1个,其余4个超声波传感器分别位于正前方和正后方的两边,夹角为45°,红外传感器分别安装在超声波传感器的正上方1~2cm处。超声波传感器主要通过测距实现避障,而红外传感器主要是用于补偿超声波传感器的盲区,判断近距离是否有障碍物。
运动执行层的硬件实现
该智能导览机器人的执行机构采用直流伺服电机。这里选用三洋电机Super_L(24V/3.7A)额定输出功率为60W,zui大空载转速为3000r/rain,并带500线的光学码盘,使机器人完成相应动作。导览机器人采用闭环控制,通过光学码盘测量车轮速度的实际值并反馈给微控制器。基于实际转速与给定转速的差值,驱动器按一定的计算方法(如PID算法)调整相应电压,如此反复,直到达到给定转速。机器人调速采用FAULHABER公司的MCDC2805实现。它能实现速度同步性能,同时转矩波动zui小,内置PI调节器能准确到达位置。当配备Super_L电机及集成编码器时,即使在转速非常低的情况下,也能达到0.180的定位控制精度。
导览机器人软件设计
通过USB摄像头或其他摄像头采集导览机器人前方的视觉信息,通过图像处理算法处理视频,使机器人能够进行路径规划和自主导航。通过接收下层的多传感融合信息,能够实现近距离的避障,因此在遇到障碍物时进行报警。到达目标点后,能够语音解说,解说完后能与参访者进行简单对话。
视觉导航
视觉导航是移动机器人一种导航方式,并且基本视觉导航的研究是未来移动机器人导航的主要发展方向之一。该视觉子系统在整个系统中的作用是将摄像头采集周围环境的视觉信息进行图像理解,并根据图像处理算法控制机器人运动。所谓“图像理解”就是通过处理图像数据来获得对图像所反映的场景的理解,包括图像中含有哪些物体以及它们在图像中的位置。罔像中蕴含丰富信息,只需从中提取出有用信息即可。因此,罔像理解算法往往是根据具体目的而制定的,有一定的适用条件和局限性。
图像预处理
原始图像为Logiteeh摄像头采集的一幅室内用蓝色
标签制作的结构化道路图片,像素大小为320x240,首先将原始图像进行灰度变换,并通过选取合适的阈值进行二值化处理。然后提取罔像有用信息,通过形态学的膨胀腐蚀等操作提取前进方向。如图2所示。
图3为常见的边缘算子检测效果比较。从图3中可看出Canny和Sobel算子检测效果相对好些,其中Sobel算子对噪声具有平滑作用,能提供较为的边缘方向信息。这里采用Sobel算子进行检测,如图4所示。
根据图4,系统通过hough变换检测两条直线的位置,测出图像的两条边缘线离两端的像素大小,再根据实际地面距离进行标定,便可获知机器人所在位置。
模板匹配算法
模板匹配技术是图像目标识别技术中一个重要的研究方向,具有算法简单、计算量小以及识别率高等特点,目前在目标识别领域得到广泛应用。它是用一个较小的图像,将模板与源图像相比较,确定在源图像中是否存在与该模板相同或相似的区域,若该区域存在,可确定其位置并提取该区域。它常采用模板与源图像对应区域的误差平方和作为测度。
设f(x,y)为MxN的源图像,g(s,t)为SxT(s≤M,T≤N)的模板图像,则误差平方和测度定义为:
当A为常数时,则可用2B相匹配,当D(x,y)取得zui大值时,便认为模板与图像相匹配。通常假设A为常数时会产生误差。严重时将无法正确匹配,因此可用归一化互相关作为误差平方和测度,定义为:
模板匹配改进算法
但是按模板匹配算法求匹配计算工作量非常大,考虑到相关是卷积的一种特定形式以及Matlab计算功能的强大,采用FFT方法,在频域中计算后再进行逆变换即可求出。图像和定位模板图像旋转180°的傅里叶变换后作点乘运算,再求其逆FFT变换并返回空间域值也就相当于相关运算。在求取空间域值的zui大值后,再根据zui大值选取合适的阈值,便可确定目标点的位置。实验中在模板匹配成功后,可将目标和背景颜色二值化,并用红色“十”字符号标记,不断更新数据信息。将停靠点设定在自己期望的像素位置(如图像的中心位置偏下),然后自动调整机器人位置,设计成如图5形式,可知机器人需要向右行驶。
实验结果与结论
基于以上设计,对进行机器人运动控制和路径规划进行实验。实验分别采用Matlab语言进行图像仿真,能够自动选择合适的阈值分割,并得到较好的边缘检测,然而在实验中有时会因为光照强度或其他因素影响,在进行阈值分割时不能达到理想效果,在VC环境下能够控制机器人运动,模板匹配取得较好效果,后续将着重在VisualC++6.0环境进行图像处理方法研究。这样可以更好控制机器人运动。总之,该系统设计可使机器人能够在复杂多变的环境下准确识别图像信息,并做出正确决策,完成所需动作,从而实现既定目标。