魏保龙,王 霏
(宜春学院 数学与计算机科学学院,江西 宜春 336000)
障碍物探测是智能机器人实现自主避障和导航的热点研究领域。通过确定前方障碍物的存在并对其距离进行准确测量,可以实现机器人环境感知、地图创建、自主移动等功能。[1-2]在移动机器人障碍物检测技术中,主要有基于测距传感器的非视觉方法,例如:毫米波雷达测距[3]、超声波测距[4]、激光测距[5-7]等;以及基于机器视觉的图像处理方法,例如:基于纹理特征的边缘检测算法[8]、基于卡尔曼滤波的RANSAC算法[9]、基于热成像的模糊逻辑算法[10]、基于权重融合的动态模板匹配算法[11]、基于立体视觉的深度图像分割检测算法[12]等。
视觉图像方法相比较于非视觉方法,虽然可以更有效检测出障碍物,但其图像数据计算量大,算法实现需要相对较好的硬件支持,难以直接应用于本文场景。
本文针对嵌入式机器人自主移动场景,结合视觉与非视觉检测方法的异同,提出了一种基于双激光扫描线的双目立体视觉三维重建方法;利用激光线对物体进行不同位置的扫描获得被测物体上形成的变形光条,并将其作为特征点进行像素匹配得到三维世界坐标,再通过对比每幅图像上光条之间的位置关系得到被测物体的三维信息。方法中使用的激光器可以自适应地根据场景需要,动态地改变舵机在水平及垂直方向的位置来调整特征点的密度信息。既可以解决特征匹配算法中特征点太少、深度信息不够,又可以解决区域匹配算法中计算量太大,实时性差的问题。[13]
系统采用的智能信息采集及处理硬件框图如图1所示。
图1 系统硬件框图
图1中两个CCD摄像机在两个激光器的水平和垂直辅助扫描下,采集有效的图像信息。图像数据通过视频解码器ADV7180数字化后流入DSP处理器进行处理;同时三维重力加速度传感器ADXL330采集3轴加速度信息,并通过AD7928芯片进行AD转换后,让机器人具有对自身的状态感知能力。系统通过UART总线对机器人及激光器的舵机进行实时操作,采集电子罗盘信息,并通过以太网控制器LAN9218或在SD CARD接口处外接Wi-Fi热点进行远程通讯,从而实现远端的操作控制及姿态调整等。
双目立体视觉是利用两幅图像中对应点之间的视差来恢复三维深度信息的方法,相较于基于激光雷达、超声波以及单目相机等传统的三维重构方法,具有成本低、效率高、系统结构简单等特点,非常适用于小型嵌入式开发场景。利用位于同一平面的两个相同摄像机,从不同角度抓取同一目标的两幅图像,对于场景中的任意一目标点P,可以分别在左右两个相机中找到对应的成像点Pl和Pr,其模型如图2所示:
图2 立体视觉成像模型图
图中x'l和x'r分别表示成像点Pl和Pr在像面上距离平面左边缘的距离,B和f分别表示视差和焦距大小。依据图中相似三角形PMCl和PlLCl及PNCr和PlRCr的几何关系,可得到目标点深度值Z的大小,如式(1)和(2):
(1)
(2)
合并上式得Z的关系式(3):
(3)
为了建立有效的成像模型,需要对摄像机进行标定,构建起世界坐标系到图像中像素坐标系的转换关系,获得相机视角的内外参数、畸变系数及平移和旋转矩阵参数,实现场景目标点与图像像素点的有效匹配,从而得出各点的深度值。[14-15]摄像头经过标定后得到的参数如表1所示。
表1 左右相机标定后的参数
以一定角度对称放置(如图所示)的摄像机采集视频图像,经过视频解码器ADV7180数字化后流入DSP处理器进行预处理。初始采集的图像会引入各种条件的限制和随机干扰,影响到图像匹配的精度,需对其进行中值滤波保留图像的边缘细节,背景噪声去除突出特征光线,二值图像实现对比度提升等处理过程,便于更好地获取景物特征点。[16-17]
以数字伺服电机安装的两个直线型激光器对被检测物体进行水平和垂直方向的移动扫描,发射出的激光点作为景物图像中的特征点,用来匹配实现三维坐标的重建。本论文采用激光线的亮度质心作为特征点(提取公式如式4所示:其中,fxi表示xi处的像素灰度值;xi表示像素的行坐标),并采用外机线约束作为匹配过程中的几何约束规则,实现二维搜索空间缩小至一维核线空间的转变,减少了搜索范围和错误匹配,提升了效率。
(4)
障碍物的检测可为机器人的下一步动作提供决策信息,实现系统感知功能。整个系统起始按照一定的初始轨迹运行,并将激光线交点初始化至视野的中心;在运行过程中,两CCD摄像机间隔一定的时间同时采集两张图像,经过图像预处理、特征点提取与匹配后获得所有特征点的三维数据信息,恢复场景特征的深度图;再依据深度信息的变化判断是否存在待测物体。如果存在待测物体,机器人停止移动,并将激光线交点移至视野的左上方;激光器开始以一定角度不断移动位置来进行扫描直至超出视野范围。系统可根据特征点深度信息的坐标变化计算出障碍物的尺寸大小,进而依据相关预设规则决定机器人的下一步动作变化。具体检测流程如图3所示。
图3 扫描激光线双目立体视觉的障碍检测流程图
机器人在走廊中行走,并通过双目视觉和平行激光模块的扫描,检测走廊两侧是否有障碍物,并将系统检测结果与走廊宽度进行比较,确定是否有打开的门。如果有打开的大门,机器人将转向大门,同时关掉水平方向上的激光线,保留垂直方向扫描线,通过空间几何约束条件,判断是否有门槛,机器人找到门槛后,为方便跨过门槛,将自身姿态由轮行变形为步行模式,完成整个测量实验。整个测量过程由嵌入式DSP平台通过nRF24L01无线传输模块将数据回传并在控制终端窗口中输出,可实现动态实时显示,效果好。
1)验证摄像机标定结果
为了测量特征点的三维坐标,为机器人提供三维视觉的环境感知能力,测量之前必须要对摄像头进行标定。实验对摄像机的标定采用基于径向对准约束关系的方法实现。[18]如图4所示,是摄像头拍到图像,色彩部分表示找到的角点。
图4 摄像头采集图像
对标靶上有7*7个点,摄像头经过标定后,利用所得到的参数,对标靶上的角点进行计算,所得到的结果如表2所示。
表2 计算标靶上的角点坐标(mm)
通过标定后的7*7个不同颜色的角点通过Matlab软件恢复后的三维坐标图如图5所示(色彩部分表示对应的角点):
图5 不同角度下角点的三维坐标恢复图
从图中可看出所有的色彩角点几乎都在同一个平面上,且基本平行,表明系统测量到的结果是正确的。同时,通过计算得出两角点的矢量平均距离为21.89 mm,比实际距离22.93 mm相差4.54 %,说明系统工作相对稳定。
2)验证障碍物检测结果
实验以在室内走廊行走时,能成功检测出障碍物尺寸为测试标准:
步骤一:门套厚度的检测验证,机器人在走廊往前行走时,当系统检测到扫描激光线出现拐点后,将调整摄像头及激光器转向拐点方向,并调整扫描角度及频率,获得更多的特征点密度信息。如图6中示,在前进方向检测到门拐点的存在后,转向门的方向进一步计算出特征点的深度信息值,整个测量计算过程由嵌入式DSP平台通过无线网络回传并在控制终端窗口中输出显示;通过计算机器人反馈回来的门套周围激光线交点Z轴的最高与最低三维坐标数据差值,可以测量出门套的厚度,检测图像及数据反馈窗口如图7所示。
图6 有关闭门时的现场环境图
图7 激光线交点返回的坐标数据图
实验中所取的最高与最低激光线交点的三维坐标值如表3所示,坐标值是机器人在移动过程中所获取的,左右两边的深度值约有变化,符合现场测试场景;通过分别计算左右两边特征点Z轴的最高与最低差值,测量得出的左右门套的厚度值分别为20.35 mm与19.27 mm,与实际厚度20 mm相比,误差分别为0.35 mm及0.73 mm,误差均在5 %以内,检测效果良好。
表3 门套周围激光线交点的三维坐标值
步骤二:门槛高度的检测验证,机器人在行走过程中检测到周围有门存在时,会进一步通过判断此时的激光线交点在摄像头视野内的位置及其深度值的变化情况来判定大门的状态。当检测到有大门打开时(检测图像及数据反馈窗口如图8所示),系统将通过进一步测量门槛高度来决定是以轮行模式还是步行模式继续前行;为了减少计算量,系统将关掉水平方向上的激光线,保留垂直方向扫描线,从而只需根据垂直激光线中转折拐点坐标值的变化就可以计算出门槛的尺寸,测量结果符合预期,截取测量门槛图像中的一部分拐点图像数据如图9所示。
图8 有打开门时的数据反馈窗口
图9 垂直激光线拐点的数据反馈窗口
从上述两个步骤的验证结果可以看出,在本论文的测试场景中,此测量方法可以自适应地改变激光器的扫描角度和频率,动态地调整特征点的密度信息,使得DSP处理器在处理多任务的同时,能有效的检测出障碍物的尺寸信息,且误测量差均在5 %以内,效果良好。
本项目基于嵌入式DSP的智能信息采集及处理硬件平台,设计了基于双激光扫描线辅助的双目立体视觉三维重建方法,并成功实现了机器人在移动过程中的障碍物检测,从而实现机器人的姿态调整和行为控制。主要解决了在嵌入式小型开发过程中,既要保障机器人处理任务的灵活性,又要使其具有环境感知与姿态调整的远程控制能力。实验结果表明,该方法能以小于5 %的距离误差实现障碍物检测,具有时效高、成本低等特点。