现代机器人技术在人工智能、计算机技术和传感器技术的推动下获得了飞速发展,其中移动机器人因具有可移动性和自治能力,能适应环境变化被广泛用于物流、探测、服务等领域。移动机器人的核心技术之一是导航技术,特别是自主导航技术。由于环境的动态变化和不可预测性、机器人感知手段的不完备等原因,使得移动机器人的导航难度较大,一直是人们研究的重点。
目前常用的一种导航方式是“跟随路径导引”,即机器人通过对能感知到某些外部的连续路径参考信息做出相应的反应来导航。如在机器人运动路径上敷设金属导线或磁钉,通过检测金属导线或磁钉的特征信息来确定机器人的位置。从导航的角度看,这种方法的优点是可靠性较高,但功能单一,如不能在行进的同时对目标进行识别、避障,对环境的适应能力较弱、灵活性较差、维护成本较高,因此限制了其在移动机器人中的应用。
随着计算机技术、数字图像处理技术及图像处理硬件的发展,基于计算机视觉的导航方式在机器人导航中得到广泛关注。在实际应用中,只需要在路面上画出路径引导线,如同在公共交通道路上画的引导线一样,机器人就可以通过视觉进行自主导航。相对于敷设金属导线、磁钉等方法,这种方法增强了系统的灵活性,降低了维护成本。视觉信息中包含有大量的数据,要从中提取有用的信息,需要复杂的算法及耗时的计算。如何保证视觉导航系统在正确理解路径信息的前提下仍具有较好的实时性和鲁棒性,是该方法要解决的核心问题。
1 视觉导航系统构成及工作过程
基于计算机视觉的移动机器人导航实验系统的硬件部分由计算机、USB接口的摄像头、LEGO实验用机器人组成。软件分为2部分,即图像处理和机器人运动控制。基于视觉导航的原始输入图像是连续的数字视频图像。系统工作时,图像预处理模块首先对原始的输入图像进行缩小、边缘检测、二值化等预处理。其次利用哈夫变换提取出对机器人有用的路径信息。最后,运动控制模块根据识别的路径信息,调用直行或转弯功能模块使机器人做相应的移动。整个工作流程如图1所示。
1.1 视觉导航的图像预处理
目前图像采集设备都具有较高的空间和灰度分辨率,精度高、数据量大。
实验中的原始输入图像是USB摄像头采集320×240像素的RGB格式图像,最大帧数30帧/s。
图像预处理的效果对后续哈夫变换检测路径信息的速度和准确性有很大影响。对整幅图像进行抽取时计算量过大、也无必要,故先将彩色图像转换为灰度图像,再将图像的大小依据最近邻域插值法原理进行缩小以节约后续计算时间。在实验室环境下,经测试,将原始图像缩小到30%仍然能满足需要,处理时间缩短了72%。
由于图像传感器从时间和空间上对介质(光)采样,其图像质量对现场的非均匀光场和其他干扰因素非常敏感,二值化时,不同光照条件下阈值的确定是一件比较困难的工作。目前常用的阈值选取方法有双峰法、迭代法和最大类间方差法。从执行时问和处理效果2方面考虑,对3种方法比较后(结果如表1所示),在优先考虑实时性的前提下,选用双峰法来求取阈值。在实验室条件下,路径环境相对理想,黑色引导线与背景反差较大。在灰度直方图上,引导线和背景都形成高峰,对这2个峰值及谷底的求取也可简化,使用灰度级的最大值和最小值代替2个峰值,那么这2个峰值的中间值即可作为谷底用作图像的阈值。
地面的反光和阴影,以及不均匀的光照都会导致同一幅图像的二值化效果表现出很大差别,图2和图3是对同一幅图像在不同光照条件下二值化的结果,可以看到在光照条件2下会出现大量的黑点,这些黑点将严重影响提取路径信息的速度并且可能导致错误的路径信息。然而,相对于灰度、颜色特征,边缘特征受光照影响较小。为此,对缩小后的图像先进行引导线的边缘检测,边缘检测后图像中引导线边缘像素灰度的对比度得到增强,通过实验确定合适的阈值,然后对图像进行二值化以提取路径信息。
1.2 引导线角度检测
采用哈夫变换检测路径引导线的角度。为了简单而又不失一般性,引导线分1条路径和2条相交的路径。当2条直线的夹角等于90°时即认为是两条相互垂直的路径。直线的哈夫变换利用如下直线的极坐标方程:
式(1)中,(x,y)表示图像空间xy中所有共线的点即图像中的黑点;θ表示直线法线和x轴的夹角,取值范围为0~180°;λ表示直线到原点的距离。
2 视觉导航的机器人运动控制
机器人运动控制部分分为直行控制和转弯控制2部分。
2.1 直行控制
如果哈夫变换的检测结果表明是一条直线即机器人视野中只有1条主引导线时,则运行直行模块。实际中有2种情况需要考虑:一是机器人的初始位置不一定正对引导线,二是在机器人的机电配置中,左右轮子的马达运动不会绝对精确和对称。这些会使机器人在运动中出现侧偏。可采用下述方法进行直行控制:根据引导线在图像平面坐标中的位置来判断机器人的偏向。当引导线位于图像平面的左半边,说明摄像头的光轴与引导线不垂直且相对于引导线右偏,则命令机器人左转;当引导线位于图像平面的右半边,说明摄像头的光轴与引导线不垂直且相对于引导线左偏,则命令机器人右转;当引导线在图像平面两边均存在时,则命令机器人不偏转继续直行。机器人在前进过程中,根据图像平面中引导线位置不断调整方位,以一定的转动角度(转动角度尽量小,这样机器人的摆动幅度就会小)在直线路径上行走。
2.2 转弯控制
如果哈夫变换的检测结果表明是两条相互垂直的直线,即机器人的视野中出现转弯路口,则开始运行转弯模块。
机器人需要在距转角合适的距离处开始运行转弯模块,以保证机器人视野中始终具有引导线。如图4所示,AB段表示摄像头的纵向视野范围,C点为转角点,机器人需要知道自身在实际二维平面中相对于转角点C的距离即BC段距离。由图像信息获得现实世界坐标系中的参数,即所谓三维重建,这需要对基于计算机视觉的移动机器人导航系统进行摄像机标定。
鉴于移动机器人识别的引导线在地面上这一限制条件,并且摄像头固定在机器人上,可以选择机器人坐标系为世界坐标系,即世界坐标系与机器人同步移动。坐标原点为标定模板的左下角标定点的中心,Zw轴垂直地面,XwYw平面即为地面。在该坐标系下地面目标的坐标可以表示为(Xw,Yw,0),标定模板由直径5 mm、相距10 mm共72个圆点构成,如图5所示。
移动机器人的摄像机标定问题,如果忽略因物面与摄像机光轴不垂直造成的非线性,则可归结为在二维世界坐标系中求变换矩阵M。
世界坐标系(Xw,Yw,Zw),Zw轴垂直地面,XwYw平面即为地面,在该坐标系下地面目标的坐标P可以表示为(Xw,Yw,0)。式(2)中Xi,Yj(其中i=1,2,…,n,j=1,2,…,n)即为地面目标的坐标(Xw,Yw)。只要有4个标定点就可以求解该线性方程组,分别测得其在地面上的坐标(Xw,Yw,0),再根据由图像处理的方法得到的图像坐标系中的像素坐标(ui,vj)(其中i=1,2,…,n,j=1,2,…,n),即可求得变换矩阵M,M=[m11,m12,m14,m21,m22,m24,m31,m32]T,其中m34=1。变换矩阵M的元素取值受到摄像头俯仰角和架设高度的影响。在实验室条件下,本系统选取BC=13 cm时开始运行转弯模块。
在单目视觉的条件下,对于固定的俯仰角,为保证道路引导线不移出摄像头视野范围,必须控制机器人以一定的弧度转弯,即沿弧线路径执行转弯模块。要做到这一点,弧线的弧度必须选取合适。在转弯过程中需要根据机器人的位置不断调整机器人的运动速度和转动角度,具体过程如下:
(1)找出图像中最后一行中点m的像素坐标(um,vm),即摄像头视野最下方的中点,通过变换矩阵M将其转换为世界坐标系xyz中的位置(xm,ym),z轴垂直于xy平面即地面。
(2)找出图像中转角点t的像素坐标(ut,vt),通过变换矩阵M求出其在世界坐标系xyz中的位置(xt,yt)。
(3)以地面上转角点为圆心的世界坐标系定义为XYZ,Z轴垂直于XY平面即地面,求出弧线在此坐标系中的方程,(x-a)2+(y-b)2=r2(a,b)表示在坐标系XYZ下弧线所在圆的圆心,r表示圆的半径。
(4)将xyz坐标系下的坐标点(xm,ym)转换到XYZ坐标系下,用坐标(Xm,Ym)表示,如图6所示。X轴与x的夹角为θ,XOY坐标系的原点O即为转角点t,则:
(5)弧线方程中当y=Ym时,求得X,比较x与Xm,若Xm-x>0,则命令机器人左转;若Xm-x<0,则命令机器人右转,否则直行。
本系统确定转弯弧的半径为20 cm,弧度为90°的弧线即可使机器人顺利转弯,机器人视野中始终保持引导线。
3 实验结果及结论
实验中选用的LEGO移动机器人,其运动速度为8.57 cm/s(指令设定Power=25 RPM