基于NAO机器人的红球定位与步态重写

2023-06-03 18:04熊方莹刘怀民张越
电脑知识与技术 2023年10期

熊方莹 刘怀民 张越

关键词:NAO;单目视觉;机器人高尔夫;机器人步态

中图分类号:TP311 文献标识码:A

文章编号:1009-3044(2023)10-0029-03

近年来,机器人技术蓬勃发展,许多机器人比赛也陆续开展。相关技术主要体现在以下几个方面:识别目标对象、平衡处理、避让障碍物、感知环境以及相应事件的决策等[1]。NAO机器人全长约为58cm,使用Linux嵌入式处理器,可通过使用C++或Python语言对机器人进行控制。NAO机器人一般用于人机交互、舞蹈表演、监测识别等领域,它的多用途是基于它可以通过现成的指令块进行可视化编程,因此它允许用户探索各种领域,运用各种复杂程度的编程程序实现用户想要体验的各种不同效果。而在NAO机器人高尔夫比赛中,NAO机器人通过对比赛场地的感知以及对红球的识别,找到红球,调整位置,最后将球打入球洞中,完成比赛[2]。本文为提高红球识别效果,决定先提取RGB三通道色彩,再将其转化为更接近观察且受光照强度影响较小的HSV颜色空间,以使得NAO机器人的识别更加精确。同时对NAO机器人的身体各个电机的配合进行了算法重写,使得NAO机器人可以在更多的场景下完成工作。

1 研究现状

1.1 NAO 机器人研究现状

针对NAO机器人的研究中一共有以下四个研究方向。

1)将NAO机器人平台与孤独症儿童治疗智能陪护的实际需求相结合的陪护型机器人,该陪护机器人实现了人脸识别、智能避障、语音交互、物品抓取及视频监控等功能,以减轻医护人员工作负担,缓解孤独症儿童病情[3]。

2)研究生成式Camshift跟踪算法的优缺点,提出结合ORB特征匹配和Kalman滤波改进Camshift算法应用于NAO机器人运动目标跟踪,解决跟踪过程中颜色干扰导致跟踪失败的问题[4]。

3)基于NAO机器人的校园导游机器人实施方案,实现和学生语音交互、唱歌跳舞等功能。借助NAO机器人,通过百度API语音转文本、Gensim、Jieba等第三方库以及数据库的调用,实现了问答系统,完成导游功能[5]。

4)以仿人智能机器人“NAO”作为研究对象,结合目标识别、行走控制以及手臂控制三个研究方向,,搭建了基于NAO机器人的目标识别及手臂抓取系统,最终实现对目标物体的识别以及抓取。提出多项式误差补偿方法对位置坐标进行补偿[6]。

1.2 红球定位研究现状

在过去的研究中,NAO机器人红球定位一般分为红球识别与三维信息定位两个部分。首先识别到红球后,获取到红球数据,再依据其信息进行定位,即可获得红球与机器人的相对定位信息。红球识别部分一般总结[1,7]为以下三步:1)提取红球色域,通过YUV 颜色空间提取红色部分;2)圆形检测,通过圆形检测进行圆形标定;3)定位红球的像素信息,结合当前的红球数据以及圆形信息,得到当前的红球在画面中的数据信息。

针对三维信息定位部分,是利用NAO机器人自身所带的摄像头进行单目识别[2]。单目识别的一般步骤分为:1)获取红球的像素信息,将红球的图片信息读取;2)转换红球信息,转换红球的像素信息为三维空间位置信息;3)得到红球相对于NAO机器人的位置信息。利用获取到的红球识别数据与机器人自身的位置相结合,结合相似性原理,将红球的相關数据进行相似性转换,最终将数据转换为当前空间下的位置信息。最终实现单目识别,将获取到的数据转换成红球与机器人的相对位置,以此获取红球定位。

目前针对红球定位的研究现状仍然存在无法适配更多场景的问题,而机器人的单目识别同样也存在会出现误差的情况,针对以上的问题我们对NAO机器人的红球定位进行了进一步的更改。

1.3 步态重写研究现状

在目前的研究中,没有针对NAO机器人的步态重写策略。但依据官方的运动文档可知,针对NAO机器人的运动模型一般是由机器人自带的D-H连杆模型,依据反向运动学[8]的运动学方程:

2 实验与数据

2.1 红球定位

根据当前红球定位的研究现状,结合实际需要,实验进行了部分改进。

首先,需要识别红球。在过去的研究中是通过YUV颜色空间提取红色部分,但是我们考虑到使用的是由红、绿、蓝三种颜色组成的RGB颜色空间,它是其他颜色变换的基础。由于RGB颜色空间没有考虑光照强度的影响,所以若采用RGB颜色空间获取图像,环境中的光照强度将会对识别产生较大影响[1]。为了降低环境中的光照强度对识别产生的影响,并且得到红球的最新位置信息,选择了数字化图像处理的方法。先通过处理,降低GBR图像中的G与B的值,将原本的数据转换为HSV色域[10],再通过圆形检测进行红球识别。

其次,需要定位红球。通过霍夫圆找球确定红球位置,为防止筛选错误,我们还设置了红球半径的约束条件,并针对当前捕获的画面大小以及机器人的俯仰角度来确定最终的数据,最后结合上述约束条件,来确定已选定的红球集合中最准确、最符合条件的红球位置数据。并根据红球在画面中的分布,来更新红球的最新位置信息:[centerX, centerY, Alpha]。

然后,我们根据红球的位置与信息进行三维建模,得到红球的空间位置,并且求出红球与机器人的相对位置与距离。公式(2)与公式(3)表示的是:根据像素比例计算出红球的三维相对数据,根据画面的像素比例可以推算出红球在实际位置上的数据信息,即得到DisReal。

最后,需要返回信息。根据得到的数据来整合红球与机器人的相对位置,即可得到红球的三维空间信息。将红球的相关信息记录为数组之后,再利用获取到的红球识别数据与机器人自身的位置相结合,利用单目识别[2]将获取的数据转换成红球与机器人的相对位置,以此获取红球定位。

2.2 机器人步态重写

在我们的实验过程中,我们发现由于机器人的使用年限以及机器人的电机损耗不同,机器人的关节会不可避免地出现角度偏移,以至于原本的行走、击球姿势无法适用。针对这个问题,我们重新定义一个新的动作链来解决本问题。

使用欧拉角描述可以对NAO机器人的各个关节以及其电机进行更加精确的描述以及联动[11],同时通过对NAO机器人的各个连杆、关节位姿的描述,我们发现可以进一步更正机器人的步态姿势,使其在运动姿势以及运动速度上可以有更大的提升。本实验可以使得NAO机器人具有更强的实用性以及在面对不同场景时,NAO机器人也能具有更好的應对效率。

2.3 实验数据与对比

通过对比,发现此方法可以检测到更远距离的红球。我们在大量的图像数据中进行测试,使用机器人进行多次的红球识别与定位,描述了传统方法与本实验方法的可测距离范围以及准确率数据变化。使用控制变量法对距离与角度进行控制,以观测数据的准确性,并且得到更加准确的方位数据信息。表1描述了在控制距离不变的情况下,其角度的最佳范围。表2则描述了在角度不变的情况下,其距离的最远值。

通过多组数据的调研与使用,最终得到了目前的红球识别数据与过去方法的红球识别数据的对比,如表3所示。在过去的方法中,识别的距离仅为0.05~0.7m,且受光线以及机器人运动的震动等干扰严重,所以其最终准确识别率仅为60%~75%。而通过我们的方法改进后,其最远距离增加至1.3m,且其识别的准确率也大幅提高。

为了得到更加精确的距离与角度之间的关系数据,表1描述了在控制距离不变的情况下,其角度的最佳范围。我们在一个圆形范围内确定红球信息,当距离为0.5m 时,机器人的可视角度为±120?,距离为0.7m时,则降低为±110°,并且随着距离的增加,其可视范围也逐步降低,最终在最远可视的1.3m处,仅可识别当前正面视角的数据,而不可视其更广的范围。这一信息也向我们表明了,红球识别部分的数据信息与机器人所处位置有密切关系。

表2则描述了在角度不变的情况下,其距离的最远值。我们固定了当前的角度,不停更改其远近距离,最终测得了其相应位置的距离参数信息。在120° 处时,其最远距离为0.5m,在100°处时其最远距离为0.75m,并且该数据随着识别角度的缩小而逐渐变大。这一信息也向我们表明了,红球识别部分的数据信息与机器人的识别角度也有密切关系。

3 总结

本文描述了通过传统红球识别方法改进得到的本文的红球识别定位方法,同时通过实验得出了在原有红球测距范围下的提升幅度。我们通过图像二值化、红球阈值设定、红色噪点过滤、霍夫圆变换等方法,识别红球。其次,使用欧拉角描述了NAO机器人腿部各个电机与关节的转动程度,并通过定义动作链、时间轴的方式来得到更加贴合每台机器人的步态参数与行走姿态,最后由机器人本身的反运动学公式进行协调,即可使得NAO机器人的整体运动步态与整体协调性更强。