当前位置:首页 期刊杂志

基于双目视觉的智能送餐机器人系统设计

时间:2024-05-22

裴汉华,秦会斌

(杭州电子科技大学 新型电子器件与应用研究所,浙江 杭州 310018)

0 引言

随着老龄化问题不断加剧,社会对于服务型机器人的需求进一步增加,在我国餐饮业中,顾客点餐和送餐等服务是最繁杂的工作[1]。餐饮业劳动力的成本越来越高。再加上社会老龄化的问题日益加剧,传统的以人为劳动力的运营方式已经远远不能满足社会的需求,同时面对全球的经济压力,如何缩减成本也是各行各业都在考虑的问题。

送餐机器人的导航方式的设计直接决定送餐的效率,常用的方案有以下几种:(1)使用反射式红外光电管[2];(2)使用激 光扫 描[3];(3)使用磁导引传感器[4];(4)使 用GPS导航[5]。使用反射式红外光电管,信号处理的速度较快,电路结构也比较简单,但是感知前方道路的距离有限,容易受外界环境的干扰,精度低;使用激光扫描来导航,对环境无明显要求,通过反光带更改路线,但是成本太高;磁导引传感器通过铺设磁带更改路线,柔性较好,但一般磁导航传感器只能检测磁条上方100 Gauss以下的微弱磁场,容易受到周围金属物质的干扰,检测的结果容易产生偏差;使用GPS导航,环境的影响较小,稳定性和精度都很高,只是成本太高。除了以上的几种导航方式外,视觉导航的应用也很广泛。视觉识别导航通过采用CCD摄像机构建视觉导引系统,是实现智能导航的最佳方式之一,也是项具有潜力的实用技术[6]。使用CCD的最大优势在于能够准确地判断出机器人前方较长的一段距离上路面的走向,可以给机器人的控制提供更多的信息,能够很好地弥补上述导航方案的缺陷。

本文采用双目视觉系统来为智能送餐机器人提供路径规划,与传统的路径规划相比成本较低,并且能够实时地采集和存储图像信息,方便以后的分析。系统中使用的立体匹配算法,能够减小信息获取处理过程中的计算量,缓解微处理器处理数据的压力,使得整个系统具有处理速度快、稳定性好、准确度高等特点。

1 智能送餐机器人整体结构

系统在工作时,首先,图像采集模块通过左右两个CCD摄像机来采集路径上的图像信息,同时利用视频解码器将模拟图像转换为数字图像。然后对处理得到的数字图像进行预处理,包括特征提取、模式识别、匹配等步骤,其中最重要的环节就是三维重建。双目视觉技术是实现三维重建的常用方法,一套完整的双目视觉系统包含摄像机标定、双目校正、立体匹配、三维重建等过程[7]。三维重建后可以获取目标在世界坐标系下的具体坐标,从而为智能机器人建立运动模型提供必要的参数信息。机器人的寄存器中存储有室内环境的坐标信息,将获取的路径坐标信息与室内环境坐标信息对比,分析数据差值得出结果,机器人将结果信息发送给主控模块,由主控模块控制机器人的各种运动。系统整体方案如图1所示。

图1 系统整体方案设计

2 系统硬件设计

基于上述原理,实现智能送餐机器人的自主识径,其基本模块组成如图2所示。

电源模块:电源模块的功能为为系统的其他模块提供所需的电源。两个12 V串联的蓄电池构成外接电源,通过LM2596电压调节器,将24 V的电压分别转换成5 V。

图2 系统框图

(1)信号采集模块:通过CCD摄像机获取道路的图像信息,并经过信息处理得到道路的相关参数。

(2)电机驱动模块:从微处理器的I/O端口输出的电流无法直接驱动电机,因此需要另外加一个驱动模块。通过MC33886来控制驱动电机两端的电压能够灵活地实现机器人的加减速运行。

(3)舵机驱动模块:利用PWM波来控制舵机输出转角。

3 系统软件设计

3.1 整体方案设计

通过CCD摄像机采集到的图像信息,经过摄像机标定、双目校正、立体匹配、三维重建等过程,得到路径的坐标信息,将信息处理过后交给主控模块,从而控制机器人的运动。

3.2 双目立体视觉系统

双目立体视觉系统以人的眼睛为出发点,用两个摄像头代替人的双眼,以此来还原人类通过眼睛识别目标的过程。一个完整的双目立体视觉系统主要包括以下几部分:双目视觉系统标定、图像获取、双目校正、立体匹配和三维重建[10]。

3.2.1 双目视觉系统标定

摄像机参数分为内、外参数,双目视觉系统标定就是求取摄像机内外参数的过程。

因为成像仪几何中心和光轴间存在误差,在获取摄像头的内部参数时,需要引入两个参数cx与cy。另一方面,考虑到成像仪是矩形,而非理想的正方形,因此设x、y方向的焦距分别为fx和fy。三维的空间坐标使用x、y、z来表示,q里的 x与y表示二维投影空间,w用于限制任意两个点的交比不变化。利用投影变换,把世界坐标下的Q点映射进投影平面q中,如式(1)所示。

求取摄像头的外部参数,要考虑双目视觉系统中左右两个摄像头的相对位置关系,主要由平移向量T和旋转矩阵R共同表征。T和R就是要求的摄像头的外部参数,其关系如式(2)和式(3)所示。

其中,Rl和Rr分别表示的是左右摄像头的旋转矩阵,Tl和Tr则分别代表左右摄像头的平移向量。

3.2.2 双目校正

双目标定之后,为了使两个图像完全行对准,将上述的标定结果通过Bouguet算法得到旋转矩阵和平移向量来进行双目校正。该方法是为了使摄像头获取的左右两幅图像中的任意一幅的重投影次数最小,也就是为了使观测的面积最大化。根据双目标定的结果得到的各参数将二维的点重投影到三维坐标里,重投影矩阵M如式(4)所示。

其中(ax,ay)为主点在左侧摄像机拍摄图像里的坐标是主点在右侧摄像机拍摄图像的x坐标,Tx是双目间距,f是摄像机的焦距。经过双目校正后,可以很好地校正两幅图像中的桶形畸变,使得两幅图像实现行对准。

3.2.3 立体匹配

在整个系统中,立体匹配是最为重要的一个环节。其原理是通过寻找校正后两幅图像间的对应点,然后计算该点的视觉差,以此来获取三维信息。

立体匹配要考虑选择匹配基元、选择匹配准则等诸多问题,其中最重要的是确定立体匹配算法[11]。目前,主流的立体匹配算法主要指的是SGBM(Semi-Global Block Matching)算法。

SGBM算法的流程如下:首先选取所有图像中每个像素点的 disparity,将其组成一个 disparity map,然后,设置一个全局的能量函数,使其与disparity map相关,计算这个能量函数得到的最小值,得出的结果就是对应的disparity的最优解。能量函数的表达式如式(5)所示:

其中,D表示的是上面提到的disparity map。E(D)表示的是disparity map对应的能量函数。p和q都指的是图像中的某个像素,Np指的是像素p相邻像素点,P1和P2指的是惩罚系数。C(p,Dp)指的是当前的像素点的disparity是Dp时,该像素点的cost。当函数条件为真,I函数返回1,为假则返回0。考虑到在二维图像中获得最优解的复杂性,可以将问题分解为多个一维问题。考虑下面的函数:

其中,R指的是指向当前的像素p的某一个方向,Lr(p,d)指沿着当前方向,目前像素的p的disparity取值为d时,其最小的cost值。因为Lr(p,d)会随着像素移动而不断增长,所以为了防止数值溢出,当前像素的cost值需要减去前面像素取不同的disparity时最小的cost值。然后将不同方向上的所有cost值相加,选择累加的cost值最小的disparity作为像素最终的disparity。

通过对每个对象进行上述操作后,得到了整个图像的disparity map。具体的公式如式(7)所示:

3.2.4 三维重建

三维重建指的是将从不同角度拍摄的独幅图像恢复物体在空间里的坐标[12]。三维重建的原理如图3所示,其中,p为世界坐标系下物体上某一点,P1、P2为摄像机 C1、C2所成图像平面上的投影,O1、O2为 C1、C2的光心,点 p正好位于 O1P1和O2P2的连线上,即两直线的交点,所以点p的三维空间位置唯一确定。

图3 三维重建原理模型

正常情况下,若双目摄像机C1和C2已经标定,其各自的投影矩阵为M1、M2,点p在世界坐标下的坐标为t=[X,Y,Z,1]T,P1、P2在图像坐标系下的坐标分别为[u1,v1,1]T、[u2,v2,1]T,可得:

联立式(10)和式(11)可求出(X,Y,Z)的值。

4 实验结果分析

由于智能送餐机器人是在室内工作,考虑到室内的面积,因此实验只模拟了30 m长,5 m宽的范围内机器人的运行轨迹,同时和实际的运行轨迹进行对比。实验结果如图4所示。从图中可以看出,仿真轨迹和机器人的实际轨迹大致相符。

图4 轨迹拟合结果

为了更好地验证送餐机器人系统的稳定性,对上述数据进行进一步处理。取不同的X值时,计算对应的Y方向上模拟路径与实际路径的差值,得出的误差曲线如图5所示。

图5 测距误差曲线

图中的曲线表明,模拟路径与实际路径的差值,即:Y1-Y2的值主要集中在±0.2的范围内,其最大误差(Y1-Y2)max≈0.32 m,整体的平均误差,基本能够满足智能送餐的要求。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!