APP下载

基于NAO机器人的目标识别与运动控制

2022-05-26温盛军孙宇昂

中原工学院学报 2022年2期
关键词:单目小球补偿

温盛军, 孙宇昂

(1.中原工学院 中原彼得堡航空学院, 河南 郑州 450007; 2.中原工学院 电子信息学院, 河南 郑州 450007)

近年来,机器人技术作为高新技术的代表得到了飞速发展,全自主仿人机器人成为了机器人研究的主要方向,机器人的目标识别和步态规划正是仿人机器人研究的重要内容[1]。NAO机器人(即仿人智能机器人)将传感器、视觉系统和控制系统集于一体,是学术领域迄今为止使用最广泛的全自主仿人机器人[2-3]。梁付新等针对NAO机器人识别目标准确率过低的问题,提出了一种基于HSV颜色空间的轮廓信息特征识别算法,提高了图像识别的精度[4]。宗鹏程采用YUV颜色空间来采集图像,并对图像进行分割,提取目标图像,通过去噪处理,获取了目标轮廓和坐标[5]。白雪冰提出了航向修正与机体侧移相结合的校正方法,达到了在迷宫中找寻物体、抓取物体并按最优路径返回指定位置的目的[6]。柏雪峰等对图像进行二值化处理后采用腐蚀、膨胀方法去噪,并通过高斯滤波平滑处理获取了目标[7]。王中成等采用摄像机小孔透视模型,通过几何关系将图像二维坐标映射为三维坐标,虽然实现了基于NAO机器人单目视觉的空间目标定位,但是目标识别后的位置误差较大,达5 cm,所确定位置坐标无法作为机器人行走的依据[8]。

本文以NAO机器人为研究平台,结合目标识别和行走控制,搭建基于NAO机器人的目标识别行走系统,首先建立单目视觉定位模型,从图像坐标与空间坐标的关系确定目标位置的坐标;然后对目标位置的坐标进行误差补偿[9],缩小位置坐标的误差;在位置坐标的误差缩至2 cm后,进行NAO机器人的步态规划,使其能以很小误差行走至目标物体的前方。

1 NAO机器人的的单目视觉空间目标定位方法

NAO机器人采用的是单摄像头工作方式,因此本文采用单目视觉定位技术进行目标定位,在建立单目视觉定位模型[10]后,通过几何计算将图像中二维坐标转换为机器人坐标系下的三维坐标,来实现空间目标的定位。单目视觉系统是典型的视觉定位系统[11]。目前,关于目标位置定位模型的研究成果已有很多,但大都未考虑实际目标物体的高度,而基于NAO机器人的抓取实验中需要物体具有一定的高度,这就导致基于平面目标的定位方法无法满足实际要求。本文首先通过图像识别方法获取目标中心在图像坐标系下的位置坐标;然后采用单目视觉定位模型建立空间固定高度下的位置坐标与图像坐标之间的关系;最后得到目标在NAO机器人坐标系下的位置坐标。

1.1 图像预处理

图像预处理是目标识别的基础,也是后续图像处理的前提。图像预处理需要对图像进行特定通道的分离和滤波[12]。NAO机器人支持的彩色图像格式(简称颜色空间)主要有YUV422、RGB和HSV。其中RGB颜色空间是最常见的,由R(红)、G(绿)、B(蓝)3种颜色组合而成,其他颜色都是由它们变换而来的[13]。HSV颜色空间包含的颜色参数为H(色调)、S(饱和度)和V(亮度)。无论是采用RGB颜色空间还是采用HSV颜色空间,通常都能准确地将红球分割出来,但在光线过强或较弱的情况下,HSV颜色空间更加稳定。因此,本文采用HSV颜色空间来处理NAO机器人的视觉图像。

根据阈值将目标从图像中分离出来,是机器人目标识别的重要任务之一。对用摄像头获取的彩色图像来说,根据一个阈值进行二值化处理的方法,很难将目标分离出来,因此需要对3个分量的阈值进行采样标定。

本文,首先在实验环境的光照条件下,选取目标在图像中的颜色区域,统计各点的颜色特征,获取HSV颜色空间每个分量的上下限值[14];然后,根据阈值对图像进行二值化处理,观察结果并及时进行调整,在效果理想时记录对应的阈值,并将其作为所确定的阈值;最后,对图像进行滤波。由于高斯滤波[15]能有效地抑制噪声,平滑图像,因此可利用高斯滤波让图像局部信息模糊,以便下一步进行Hough圆检测[16]。

1.2 目标识别

虽然在图像的预处理阶段已经将图像红色区域标记出来,但这些区域包含了一些干扰点,需要进一步对图像的几何特征进行提取。本文通过Hough圆检测,对目标图像做进一步的几何特征提取,以获取它的中心坐标。通过Hough圆变换,让图像的每个边界像素点(x,y) 都能采用Canny检测算法[17]来提取。这里,检测圆的3个参数可表示为C(x0,y0,r0)。其中(x0,y0)为检测圆的圆心坐标;r0为检测圆的半径。通过Hough圆检测,选出一组峰值,作为检测圆的圆心坐标和半径。

实验中用Hough圆检测所得小球的数量可能很多,检测结果也可能包含一些噪声。本文针对每次测出的红球,以红球圆心为中心,以红球半径的4倍为边长,画出一个绿色的外接正方形,计算了外接正方形区域内红色色素、绿色色素各占全部色素点的比例。理想情况下,红色色素占比为0.196,绿色色素占比为0.804。这里给出的红色色素占比计算式为:

πr2/(16r2)=0.196

(1)

式中,r为小球半径。

考虑到实际检测存在很多不确定因素(如圆检测误差、光线不均匀导致的颜色变化、干扰物的存在等),很难达到理想情况,本文将红色色素占比和绿色色素占比分别设定为0.12和0.10。

1.3 单目视觉定位测距

针对图1所示的单目视觉定位模型,可采用小孔透视模型的处理方法,经过图像坐标与实际空间坐标的变换,确定目标在空间的具体位置。对目标物体进行机器人坐标系下的定位时,需要满足目标高度低于相机高度这一条件。由单目视觉定位模型得到的目标图像及其图像坐标系如图2所示。

图2中:θhead pitch为头部俯仰角,可在图像预处理后通过内部函数获取其值;θball pitch为小球的垂直视角;H为摄像头高度,可在图像预处理后通过内部函数获取;w为图像像素宽度;h为图像像素高度;(X0,Y0) 为小球图像坐标系的坐标;(X1,Y1) 为小球世界坐标系的坐标;θc_pitch为图像预处理后的相机垂直视角;θc_yaw为图像预处理后的相机俯仰角。

图1 单目视觉定位模型Fig. 1 Monocular visual localization model

(a) 目标俯视图

(b) 目标侧视图

(c) 图像坐标系图2 由单目视觉定位模型得到的目标图像及其图像坐标系Fig. 2 Vertical view, side view and image coordinate

在图像预处理后,检测圆的圆心坐标也是(X0,Y0),而相机坐标(Xcamera,Ycamera)可通过内部函数获取。

小球的垂直视角计算式为:

(2)

小球的水平视角计算式为:

(3)

小球到摄像头的距离为:

(4)

式中,θc_direction为相机位置的视角。

小球的世界坐标系坐标为:

(5)

式中,θhead yaw为头部偏转角。

当小球具有一定高度时,以NAO机器人坐标系作为三维空间坐标系,设小球高度为h1,则式(4)可转化为:

(6)

将式(6)代入式(5),可得到小球在一定高度时的坐标。小球在机器人坐标系下的坐标为(X1,Y1,r+h1-h2)。其中,h2为机器人坐标系下原点距地面的高度。

通过上述计算获得的小球坐标存在一定的误差,为了消除其误差,可使用误差系数k对实际坐标进行补偿。误差补偿后的小球坐标为:

(7)

误差补偿系数k可以用四次多项式求解,即

k=ax4+bx3+cx2+dx+e

(8)

式中:a,b,c,d,e为多项式系数。

2 NAO机器人的步态规划和误差补偿策略

2.1 步态规划

进行NAO机器人步态规划时,在确定目标小球的位置后,应让NAO机器人能行走至小球附近。NAOqi系统的ALMotion模块含有的行走函数为MoveTo(x,y,theta)。选用MoveTo(x,y,theta)行走函数,并设定X轴、Y轴以及机器人绕Z轴旋转的角度后,即可让NAO机器人开始行走。但实验中发现,NAO机器人在此行走函数下,步伐不稳定,在行走距离远的情况下很容易出现相对目标的较大偏移。

针对NAO机器人行走问题,本文通过控制NAO机器人的步态参数,使机器人能够在行走中减小误差。

机器人行走前,需要对其路径进行规划。为了保证机器人行走至目标的距离最近,本文选择了直线行走方案。机器人首先在原地转向,让小球处于机器人的X轴方向,然后再行走至小球位置。根据单目视觉定位测距所得小球的空间位置坐标和图像位置坐标,让机器人首先进行两次转向(两次转向后,小球基本上在X轴方向),然后以每步0.1 m的长度行走,最后行走至剩下距离小于0.1 m处,到达目标小球前。

2.2 误差补偿

在NAOqi系统中,ALMotion模块下还有一个函数,即setFootSteps()。通过该函数,可自定义NAO机器人的步态参数,通过调整每步的距离,让机器人行走步态更加稳定,误差更小。该函数的FootSteps格式[x,y,theta],包括机器人左脚或右脚迈出一步后,两脚之间X轴方向的距离、Y轴方向的距离以及绕Z轴的旋转角度。实验发现,将步态参数设置为[0.15,0.1,0]时,NAO机器人的行走过程基本上每步都是0.1 m。

行走总距离包括下列两部分:每步距离大于0.1 m 时,机器人按setFootSteps()函数行走;每步距离小于0.1 m 时,机器人按MoveTo()行走函数行走。采用误差补偿策略,使NAO机器人能以很小误差行走至小球前。

3 NAO机器人的目标定位与行走实验

3.1 目标定位实验

机器人目标定位实验包括作为目标的红色小球放置在箱子上和放置在地面上两个实验。

在红色小球放置在地面的实验中,发现小球距离NAO机器人越远,得到位置坐标的误差就越大;特别是在X轴方向,小球距离NAO机器人越远,实验距离与实际距离的误差就越大,但Y轴方向基本准确。因此,本文将小球放在NAO机器人正前方,并尽量保证小球在Y轴方向到NAO机器人的距离为零,通过采集视野内不同位置的坐标信息,统计各离散点的实验距离X0与实际距离x,计算了相应的位置误差。实验距离与实际距离如表1所示。

为了进行误差补偿,考虑到四次多项式(8)中的5个未知系数,至少需要5个约束条件才能求解。因此,本文将0.25~0.65 m的离散点位置分为两部分求解,得到了两个误差补偿系数k1和k2。

表1 实验距离与实际距离

k1=a1x4+b1x3+c1x2+d1x+e1

(9)

式中:a1=-3 978.190 470 159 66;

b1=4 678.636 094 834 16;

c1=-2 046.828 429 567 13;

d1=395.300 067 760 91;

e1=-27.262 122 550 00。

k2=a2x4+b2x3+c2x2+d2x+e2

(10)

式中:a2=3 281.857 153 256 74;

b2=-5 815.255 086 348 00;

c2=3 839.508 513 031 15;

d2=-1 118.757 348 607 49;

e2=122.592 359 760 91。

将误差补偿系数代入式(7),计算后进行误差补偿。在误差补偿后,将小球放置在NAO机器人所在地面的X轴方向上各点位(横坐标分别为0.30 m、0.40 m、0.45 m、0.50 m、0.55 m和0.60 m)处,再次进行了实验。对应地面上小球各点位横坐标的实际距离(10组数据)如表2所示。

表2 对应地面上小球各点位横坐标的实际距离(10组数据)

从表2可看出,误差补偿后的实际距离与实验距离之间的误差被缩小至2 cm左右,能够满足设计要求。当小球在箱子上时,同样存在X轴方向的位置误差,因此还需要对X轴方向的位置坐标进行误差补偿。本文针对0.10~0.30 m的离散点位置,通过求解得到了误差补偿系数k3。

k3=a3x4+b3x3+c3x2+d3x+e3

(11)

式中:a3=8 751.202 730 574 65;

b3=-6 153.748 948 425 56;

c3=1 592.462 715 453 89;

d3=-177.345 005 935 16;

e3=8.075 123 346 135 31。

将误差补偿系数k3代入式(7),计算后进行误差补偿。在误差补偿后,将小球放置在NAO机器人X轴方向上各点位(横坐标分别为0.15 m、0.20 m和0.30 m)处,再次进行了实验。对应箱子上小球各点位横坐标的实际距离(10组数据)如表3所示。

从表3可看出,对于小球放置在箱子上的情况,NAO机器人的目标定位结果虽然存在一定的距离误差,但通过多项式误差补偿后,能将距离误差缩小至2 cm 左右,可满足让机器人行走至小球附近的要求,为机器人行走路径规划创造条件。

表3 对应箱子上小球各点位横坐标的实际距离(10组数据)

3.2 行走实验

NAO机器人的行走实验也包括小球在地面上和箱子上两种情况。小球在地面上时,针对小球在机器人正前方、左前方和右前方3个方向分别做行走实验(见图3);小球在箱子上时,针对小球在机器人正前方做行走实验(见图4)。

正前方 左前方 右前方图3 针对小球在地面上的机器人行走实验Fig. 3 A robot walking experiment with a small ball on the ground

在机器人行走实验中发现:NAO机器人只采用内置的MoveTo()函数时,其行走误差较明显;采用本文提出的步态规划误差补偿策略后,机器人行走过程较为稳定,对于目标小球放置于不同位置的情况,其行走路线均不会偏移,能达到直线行走的要求。

图4 针对小球在箱子上的机器人行走实验Fig. 4 A robot walking experiment with a small ball on the box

4 结语

本文采用单目视觉定位算法,对目标进行定位和步态规划,建立了基于NAO机器人的目标识别行走系统,让NAO机器人在可视范围内通过视觉获取目标的位置坐标后,行走至目标附近。通过实验发现,误差补偿后的目标位置误差在2 cm左右,为机器人行走路径规划提供了条件。本文提出的步态规划误差补偿策略能够满足NAO机器人目标识别及行走要求,达到预期目标。对机器人进行步态规划时,应对其每一步的距离进行控制,以便较好地解决机器人的行走偏差问题。

猜你喜欢

单目小球补偿
基于单目视觉的分离图像分析方法
基于单目视觉车距测量方法综述
基于改进k-means算法的可见光通信非线性补偿技术
联想等效,拓展建模——以“带电小球在等效场中做圆周运动”为例
小球进洞了
小球别跑
小球别跑
基于单目视觉的仓储物流机器人定位方法探讨
单目SLAM直线匹配增强平面发现方法
解读补偿心理