基于STM32自动网球拾取机器人设计
2020-10-30刘玲靳伍银王洪建
刘玲 靳伍银 王洪建
0 引言
随着网球运动的不断发展,加入网球运动项目的人越来越多,规模不等的比赛也非常多[1].网球比赛或训练时,一般是人工捡球,劳动强度大、工作效率低.目前从事网球拾取的球童数量少[2].Gu等[3]提出了一种利用TSP进行路径规划,使用YOLO作为网球识别的模型来实现机器人的自主捡球.温秀兰等[4]提出了一种改进的粒子群算法应用在机器人的几何参数标定中,提高了六自由度机器人末端绝对定位精度.Yasaswy等[5]采用红外发光二极管和ATMEG32单片机实现自主拾取网球的整个过程.Zhao等[6]利用模糊控制和超声波传感器对目标进行避让,配合计算机视觉对网球进行自动检测和跟踪.目前捡球方式分为两种,一种是设计机械手抓取球;另一种为仿吸尘器原理将球吸进腔中[7-10].考虑到网球质量、体积较大,多采用第一种方式进行抓取.现有的网球捡球机器人[11]采用叶轮旋转产生足够大的力和惯性使球上升并落入后框[12],但由于内轮与网球接触面积较小,力矩大小难保证,故抓取精度低、失误率高;同时,捡球机器人为履带式行走方式,在网球场馆平地内显得非必要且速度不高.基于以上问题,本文设计了一款小型的双机械臂网球拾取机器人,实验结果表明机器人的抓取精度可达98%.
1 机器人总体方案设计
本机器人系统由本体、双机械臂、摄像头、控制器、行走机构、图像处理及双抓取机构等构成.网球拾取机器人工作时,摄像头用于识别网球,捕捉到网球的具体位置坐标反馈给控制中心,控制中心驱动电机轮子向最近的一个目标物靠近,当目标物的面积达到起初设置的值时机器人停止前进,再驱动两个三自由度的机械臂协同合作,同时向目标物靠近并准确拾取网球,放置于储球装置中,完成一次拾取工作.摄像头低端设计有一个自由度,当完成第一次拾取工作后可自动旋转,开始第二次寻找、识别以及拾取网球,依次类推实现机器人拾球工作.图1所示为总体设计框图.
机器人三维模型结构如图2所示.机身共有两层,分为机身上板和机身下板,两板之间放置STM32控制器及电源模块,机身上下板呈六边形,其中六个角分别对称位于机身左右两侧,行走机构分为两个轮子和一个万向轮,三点支撑整个机器人,稳定性可靠.
双机械双抓手结构如图3所示.抓取机构的两机械手位于小臂末端,包括左右夹钳.两夹钳首端依靠齿轮连接定位,左右夹钳各有一抓取舵机,其输出端连接抓取底盘,两个抓取舵机共同控制两个机械手作用在两根杠杆上实现杠杆的合拢抓取动作.因网球为圆形,传统机械手夹持容易滑落且作用范围窄、工作效率低,使用双机械臂双手爪使抓取范围扩大,同时执行机构末端设置两杠杆带动夹持器对网球进行拾取,抓取精度也得到进一步提高.
2 软件控制系统实现
2.1 系统硬件设计
硬件系统包括STM32103VCT6单片机控制器、电源模块、视觉系统模块及舵机控制驱动模块.其中舵机由减速齿轮、舵盘、直流电机、控制电路和位置反馈电位计等组成,通过Keil uVision4编译程序控制电机转动速度来控制机器人的方位、前进的速度以及双机械臂各关节舵机的角度和速度,达到调整各关节伸长长度、双机械臂高度的目的.
STM32103VCT6单片机控制器配置有16路A/D接口用于摄像头等传感器数据输入,6路输出接口用于驱动舵机等外设,且拥有大量的外设I/O接口可连接和驱动实现指定功能所需的各类传感器与外设设备[13].
视觉系统采用Logitech C170型免驱动摄像头,分辨率为1 024×768,像素130万,与STM32单片机配合使用.
2.2 系统软件设计
机器人采用C语言进行环境开发,将捕捉到的目标物去除其他像素点的干扰,按像素点集中区域,求取目标物中心坐标位置,视觉系统采用像素坐标系,图像是以左上角为坐标原点,横向向右,竖向向下为正方向的坐标的像素点阵,X-Y的上限坐标是640像素×480像素,将采集的图像进行区域划分.图4所示图像质心计算的具体值为X=172,Y=225.对摄像头采集的图像使用如图5所示模块进行区域划分,检测目标物出现在某一区域中,则执行对应区域的指令.
机器人拾取速率指的是机器人的移动速度,也可用机器人电机的转速表示,转速越快,机器人的移动速度越快.如图5所示期望目标物坐标始终保持在A区域,当目标物落入不同的区域时,则根据指令进行相应的运动.同时计算捕捉到的像素点面积大小来判断与目标物之间的距离,面积越大,距离越近,如图4所示,此时的目标物面积为63.198.摄像头把目标物的定位信息以及距离信息反馈给控制中心,控制中心根据反馈回来的坐标信息进行判断,决定机器人接下来的移动路径.目标物坐标确定后,拾球机器人会根据坐标信息向目标物靠近,当目标物的面积达到一定值时(即达到适合抓取的距离d=60 cm)触发双机械臂双手爪关节舵机,对目标物进行拾取并准确放置于机器人储物筐内,完成一次拾取工作.其系统总体框架如图6所示.
摄像头低端设置有一个自由度,摄像头连接处有一个自由度,摄像头本身自带一个自由度,便于网球场范围内自动转动摄像头寻求目标.当有多个目标出现时,根据反馈回来的目标物面积大小,按从大到小的顺序依次拾取,从而完成目标物定位、拾取与储存的工作.
经图像处理后,对网球目标物进行面积、质心计算,其中质心法是图像能量密度函数一阶空间矩和零阶空间矩的比值[14].假设图像内单个目标物的质心坐标为(Xc,Yc),该位置可由图像灰度值质心计算得:
(1)
式中,Xc,Yc是计算所得质心坐标,x,y分别是图像的横纵坐标,D为限定积分区域,是已知的,即图像尺寸大小由C170摄像头视场确定.G(x,y)指每个像素点的灰度值,也称图像灰度函数.
上述积分为连续积分,但C170摄像头得到的图像实际是离散的,只能得到G(x,y)在像素点位置的采样值,故用质心法时,式(1)做近似推导变为式(2)的形式:
(2)
(3)
对每帧图像的目标进行位置坐标计算,通过判断质心点在屏幕中的位置为网球机器人提供方向导航[15].机器人获取网球目标物(Xc,Yc)位置信息,将获取到的位置信息通过A/D端口反馈给控制中心.
3 寻找目标物质心实验验证与分析
对开发的智能全自动小型移动拾球机器人进行多种场合测试实验,机器人可在不同环境下准确识别和定位网球位置,能有效追踪并利用双机械臂双手爪对目标进行抓取以及顺利完成网球的放置工作.机器人相机视场为1 024×768,所测目标物质心坐标、舵机偏转角度及电机输出占空比等实验数据采样值如表1所示.
表1 实验数据采样值Table 1 Sample values of experimental data
机器人的工作状态如图7a所示,成功捕捉到目标物如图7b所示.随机在场馆放50个球进行多次实验,记录机器人开始工作后的时间、拾球个数,测试结果如图8所示.场馆球数越多,机器人移动速度就越慢,随着地上网球数量越来越少,机器人的移动速度会有所增加.实验结果表明拾球机器人抓取精度能达到98%.
4 结论
1)通过构建机器人三维模型设计,分析结构特征,设计了一款全自动小型移动拾球机器人.
2)机器人基于视觉识别系统,以摄像头作为眼睛,结合视觉识别与双机械臂双手爪控制技术,采用质心法对目标物进行识别并拾取,实现机器人自主寻球、拾球、卸球等动作.
3)根据网球的形状特征设计的双机械臂抓取机构能扩大抓取范围,能有效抓取网球等圆状类目标.
本文旨在解决网球运动员训练以及比赛中出现的捡球效率低问题,规避了现有网球机器人结构庞大的缺点.通过实验验证,结果表明所设计的机器人能有效解决捡球问题,抓取精度达到98%.