李寿杰,宋华军,兴 雷,李 郑,刘东凯
(中国石油大学(华东) 信息与控制工程学院,山东 青岛 266580)
从谷歌公司AlphaGo 围棋机器人与李世石围棋对弈,人机对战机器人便受到广泛关注,各种各样的机器人开始不断向人类挑战。如文献[1]中的网球机器人,文献[2]中的乒乓球机器人。本文设计了一款适用于实验教学的气冰球机器人实验系统,以较高的交互性,加深学生对机器人的理解与学习。
在人机对抗机器人设计中,成本、可靠性、准确性是核心问题。目前气冰球机器人机械结构设计方案分为两类:一是利用文献[3]所说的多自由度工业机械臂原理;二利用是文献[4]所说的并联机械手原理。第一类设计方案硬件设计简单、精度好,但成本高,不适宜广泛应用,第二类方案成本低,但机械结构较复杂。
气冰球机器人的位置信息采集方案也有两类,一是文献[5]提到的陀螺仪方案,这种方案成本低,但可靠性、稳定性差;二是采用摄像头,借助机器人视觉进行数据采集,正如文献[6]所提到的技术,这种方案可靠性强,设计灵活,但成本较高。
文献[7-8]介绍了一种步进电机的快速控制算法,可使步进电机更快地移动,文献[9-10]所提到的轨迹预测算法,为气冰球机器人的轨迹预测提供了理论参考。
综上所述,为了减少成本、提高系统的稳定性,本文基于机器视觉,采用步进电机的机械结构,结合文献[11]介绍的透视变换及文献[12]提到的 Hough 变换轮廓检测、轨迹预测、碰撞检测、位置校准等算法,对气冰球的运动轨迹建模后,设计了一套稳定可靠的气冰球机器人实验系统。
整个实验系统由气冰球机器人和气冰球两部分组成。其中系统硬件包括气冰球桌、摄像头、步进电机机械臂,如图1 所示。摄像头位于气冰球桌中心位置正上方,以保证采集到的图像比例适宜。由3 个步进电机组成沿{Ow}世界坐标系的机械臂,因为 Y 轴方向的负载较大,所以由2 个步进电机控制Y 轴方向,另1 个步进电机控制X 轴方向,以保证气冰球机器人能够快速响应。
软件设计由目标追踪模块和运动策略设计模块构成。目标追踪模块负责气冰球机器人和气冰球的识别和位置追踪,运动策略设计模块负责预测气冰球下一步的位置和进行位置校准。
图1 气冰球机器人硬件结构示意图
为了准确描述气冰球机器人的运动,建立了3 个坐标系,{Ow}为世界坐标系,表示气冰球的桌上位置;{Or}为标记坐标系,以标记点为中心;{Oc}为摄像头采集到的图像坐标系。气冰球和气冰球机器人上各有一个颜色卡片作为颜色识别标志。
为了更准确地描述和预测气冰球的运动轨迹,在{Ow}世界坐标系中对气冰球的运动进行建模。气冰球的运动符合平面上的变加速运动,其产生一个v0的初速度,假设桌面的摩擦力为μ,t时刻的速度为vt,加速度为a,t时刻发生的位移为s,气冰球的质量为m,建立速度方程、位移方程和受力方程:
利用上述方程可以得到气冰球到达进攻范围所消耗的时间及最终的速度,从而提前设定好气冰球机器人的响应时间和运动速度。坐标系方程为:
若气冰球与气冰球桌的边缘发生碰撞,则会发生运动轨迹的变化,假设与气冰球桌发生碰撞时的速度为v1,发生碰撞后的速度为v2,发生碰撞后气冰球桌的速度为v′,建立如下方程:
图2 气冰球碰撞轨迹反弹原理图
如图3 所示,气冰球机器人实验系统采用了步进电机点到点的设计方式,建立坐标系之后,将气冰球的运动轨迹数字化。在{Or}标记坐标系对气冰球机器人实验系统进行建模,在气冰球桌上建立一个进攻界限ym,通过其与气冰球机器人轨迹方程y=kx+b的交点,得到xm,从而确定气冰球机器的运动终点及气冰球的运动距离s,利用公式(4)就可以得到气冰球到达进攻界限所需要的时间,进而可规划气冰球机器人的运动。
图3 气冰球进攻策略原理图
为了提高移动的准确性和稳定性,采用了S 形速度曲线来驱动步进电机。S 形曲线的加减速过程光滑,但加减速调参过程要比梯形曲线复杂。因此使用正弦函数曲线的 1/4 周期作为气冰球机器人的加减速曲线,如图4 所示。
图4 正弦曲线加速过程
设用正弦函数曲线对步进电机进行加速控制,目标速度为A。通过控制脉冲数目来控制步进电机角位移,设加速过程中总位移为S,则速度v与时间t的关系为:
由于已经指定加速距离为S(单位为脉冲,即 S个脉冲),所以曲线下面积S为:
联立式(9)和式(10),可解得:
由于步进电机的速度取决于给定脉冲的频率,每个脉冲周期的大小决定了在该脉冲出现时刻步进电机的速度,所以可通过控制每个脉冲高电平与低电平的时间之和来控制步进电机的速度。通常每个脉冲的周期非常短,不适合使用单片机进行实时运算,所以采用空间换时间的策略,提前建立好加减速过程中每个脉冲的延时长度数组,在使用时直接调用即可。
当求出上式中ti之后,即可求出每个脉冲高低电平时间之和:解上式可得:
利用公式(13)的数值解对每一个时间点的电机速度进行控制。
针对气冰球机器人目标追踪的要求,开发了基于HSV 颜色识别的动态目标追踪模块。识别过程主要包含透视变换、去噪点及轮廓检测等。图像处理模块软件流程如图5 所示,在完成图像采集后,先利用透视变换算法进行图像矫正,之后根据气冰球的HSV 阈值构建掩膜,利用腐蚀膨胀算法消除干扰,最后通过边缘检测算法得到气冰球的位置坐标。
图5 图像处理模块软件流程
在进行图像采集时,摄像头的位置不可能完全位于气冰球桌的中心,而移动摄像头需要很繁琐的操作,所以采用了透视变换,将摄像头采集到的不规则的气冰球桌图像变换为规则的长方形。
在{Oc}坐标系中对采集到的图像进行建模,透视变换的本质是将图像投影到一个新的视平面,其通用变换公式为:
其中(u,v)为原始图像像素坐标,(x=xʹ/wʹ,y=yʹ/wʹ)为变换之后的图像像素坐标。原图像及透视变换后的图像如图6 所示。
图6 原图像(上)透视变换后的图像(下)
在进行颜色捕捉时采用了HSV 颜色空间模型,首先利用HSV 筛选器选择出所需要的颜色。在根据HSV阈值构建掩膜后,为了有效滤除噪声,保留图像中原有信息,采用了形态学中的膨胀与腐蚀两种操作。利用先腐蚀后膨胀的过程可以消除小物体,在纤细点处分离物体,平滑较大物体边界,但同时并不会明显改变原来物体的面积。这样就可以减少环境中与气冰球颜色相近的物体的影响,效果如图7 所示。
图7 HSV 过滤后的图像(上)先腐蚀后膨胀后的图像(下)
为了确定气冰球和气冰球机器人的位置,首先采用Hough 变换轮廓检测找到二者的图像,之后通过质心判断来确定二者的中心和坐标。
在霍夫圆检测方法中,采用了一种投票方式来记录参数空间里的相关参数,并由此参数得到所需的图像空间信息。通过投票方式,可以得到累加器中最大值对应的圆心坐标(a,b)以及圆的半径r,如图8 所示。图中黄色所圈出的为所要检测的圆,圆心坐标为(629, 213)。
图8 Hough 变换检测所得到的圆
运动策略设计模块由气冰球机器人的位置校准模块和气冰球轨迹预测模块两部分组成。气冰球机器人位置校准模块是为了防止气冰球机器人在快速移动过程中,出现丢步现象而不能到达预定位置。气冰球轨迹预测模块则是通过气冰球机器人的移动,来确定气冰球最后的碰撞点。
为了降低成本,在设计时采用的是没有负反馈的步进电机。这种电机在高速移动或者撞击过程中难免会出现丢步现象,为了纠正丢步所带来的误差,采用图像校正方法进行位置调整。
在气冰球机器人的前端有一个颜色卡片,用以确定气冰球机器人的位置。初始化时,气冰球机器人会有一个固定位置(x0,y0),若不在此位置则应通过当前实际位置(x,y)及要达到的位置(x0,y0),来确定下一步应该移动的距离,具体流程如图9 所示。
图9 位置校准流程
轨迹预测模块是气冰球机器人进行攻击和防御的核心算法,通过轨迹预测系统来确定气冰球到达攻击区域时的位置,从而控制与气冰球机器人的碰撞。轨迹预测包括与冰球桌的两侧发生碰撞和不发生碰撞两种情况。由于气冰球桌利用气体的吹力减少了气冰球与桌面的摩擦,所以其移动轨迹可以看作线性函数y=kx+b。
当通过轨迹预测得到其轨迹运动函数后,如果其终点超过了气冰球桌的边界,则判定本次气冰球将与冰球桌碰撞,需对轨迹函数进行修改,使k= -k,得到碰撞之后的轨迹参数。
为了准确判断气冰球到达攻击范围的时间,加入了速度检测,在算法中加入计时函数,来读取相邻两帧图像拍摄的时间,并获取在两帧图像范围内气冰球位置的变换,计算气冰球在X 轴、Y 轴的速度。再根据此速度确定气冰球到达气冰球机器人攻击范围的时间,从而给气冰球机器人设置攻击时间和速度。
为了验证设计的有效性,所使用的气冰球机器人实验系统测试平台如图10 所示,长×宽×高为105.6 cm×57.5 cm×65 cm;供电电压为220 V。
图10 气冰球机器人测试平台实物图
气冰球机器人实验系统除了气冰球桌以外,其他结构全部通过机械加工或3D 打印制成,包括3 个步进电机及皮带、导轨、电机控制器、摄像头、支架等。步进电机具有精度高、响应速度快、扭力大等特点,通过持续发送一定占空比的 PWM 波使其到达某一位置。将X 轴的步进电机通过滚珠轴承固定在导轨上,两个Y 轴步进电机利用皮带拉动其沿X 轴的移动。
图11 中的蓝线为初始预测的曲线,绿线为发生碰撞之后的轨迹曲线。
图11 气冰球碰撞轨迹预测图
为了测试步进电机的移动速度,首先用刻度尺量出20 cm、10 cm、5 cm 的距离,在气冰球桌上标好位置,在程序内部建立计时函数,当执行完成后显示所用时间。通过不断提高速度和调整S 形速度曲线参数,来保证在不丢步的情况下实现气冰球机器人的最大反应速度。
由实验数据可得,当步进电机速度为30 cm/s 时,其速度保持稳定,并且不存在丢步现象,最后得到的步进电机参数如表1。
表1 步进电机设定参数
为了验证轨迹预测模块的准确性,在实验中设定特定的轨迹路线,对采集到的图像的预测轨迹与实际气冰球所到达的位置进行比较,来验证轨迹预测模型的准确度。
测试实验发现,不发生碰撞的情况下估计时间误差为±0.024 s,发生碰撞情况下估计时间误差为±0.04 s,在时间误差范围内发生的位移为±0.72 cm 和±1.2 cm,估计距离误差为±0.8 cm,气冰球机器人的直径为9 cm,满足系统设计要求。
本文提供了一种基于机器视觉和步进电机快速控制系统的气冰球机器人实验系统设计。系统包括追踪模块、运动策略设计模块及机械结构3 部分。采用了碰撞检测方式,将气冰球的运动轨迹拟合为线性函数曲线,在与冰球桌碰撞情况下依然可以准确预测气冰球的位置。所采用的边缘检测算法,可以实时准确捕捉气冰球的位置。整个机械结构的不断改进,将使气冰球机器人实验系统的教学性和趣味性不断增加。