高长旭, 孙巧妍, 陈祥光, 张德军
(1.烟台南山学院 人文学院,山东 烟台 265713; 2.烟台南山学院 工学院,山东 烟台 265713;3.北京理工大学 化学与化工学院,北京 100081)
乒乓球运动是我国的国球运动,在我国有很深的群众基础。在乒乓球训练基地和乒乓球俱乐部等大中型训练场馆,人工捡球工作较为繁重,设计一种全自动捡球机器人是很有实用价值的。全自动捡球机器人应包括三部分功能:一是自动识别场地中的乒乓球,二是自动规划最优行进路线,三是自动捡球。目前国内的研究大多侧重于捡球机械手或者捡球小车的机构设计,此类捡球小车多为半自动。而对于全自动识别乒乓球图像及位置自动规划最优行进路线的研究较少[1,2]。
为减小捡球机器人的体积和成本,机器人的执行机构大多采用嵌入式系统结构。嵌入式结构的主处理器一般分为8位、16位和32位三种。即使是32位芯片也不具备实时快速处理彩色图片的能力。因此,本设计采用安装在小车上的单目视觉摄像头采集图像,然后通过无线传输给个人电脑(PC)。PC为上位机,根据训练场地的大小,可配置1~4个捡球小车作为下位机。PC用于图像识别和最优运行路径规划算法的程序运行。摄像头采集图像传送至上位机,上位机周期性采集图片处理完毕后把识别结果传送给下位机,再由下位机驱动电机控制小车运行和捡球动作。
图1 采集的原始图片
该房间铺设的地砖颜色很浅,所采用的乒乓球为使用中的乒乓球,即颜色因陈旧或脏斑造成变色或不均匀。采集的时间是傍晚,房间内已打开照明灯。由于本次实验采用的乒乓球为白色,图片中明显有和乒乓球直径相近的灯光光斑干扰。
具体的球心坐标识别算法流程如下:
1)将采集到的RBG彩色图片降为灰度图像。经对比验证采用RGB三维数据中的B维分量图像数据相较于其他方法所得到的结果更有利于后续步骤的判定。
2)设定灯光光斑阈值。由于采集到的图片中乒乓球为白色,故设定阈值为250。然后测试灰度图像大小,新建一个相同大小的全0标记图像I3,查找原灰度图中的每一个像素,如果I(i,j)>250则标记图像中对应点位置设为1,即为粗选的光斑区域。其中,I(i,j)为图像对应行列位置的灰度值。若采用的乒乓球为黄色球,则通过颜色判断更容易判别光斑区域。
3)将光斑区域标记图像I3进行3次处理半径为3的自适应中值滤波[3],使图像更为平滑。
4)标记I3中的连通区域,使用普通质心算法获得质心的位置[4~6]。计算公式如下
(xc,yc)=∑ijxijIij/∑ijxij
宁夏图书馆流通部主要服务于14岁以上的普通读者,根据普通读者对宁夏图书馆利用的目的,大致可以分为以下几种类型:①常年到馆的老读者。这类读者往往有良好的阅读习惯,他们对图书馆某些文献了解得比较清楚。②做专题的读者。需要查阅大量文献的研究性读者。③只查阅某种特定文献的读者。这类读者查完所需的特种文献后就离开图书馆了,目的性比较强。④随便看看的读者。没有什么特别的具体目的,仅仅为了娱乐消遣,放松心情。
(1)
式中xc,yc为计算得到的质心坐标,Iij为图像上对应位置的像素点光强。使用加权质心算法的效果虽然更精准,但是算法带来的微小误差完全可以由硬件捡球装置的设计弥补。普通质心算法能够达到控制要求,且计算相对简单,程序执行速度快。
5)计算光斑半径,然后用接近地面颜色的其他数据遮盖光斑区域进行补偿。灯光光斑在地面上呈现圆形图像,根据圆形面积公式A=πr2可计算出光斑半径,面积在上一步计算质心坐标时即能得到。遮盖光斑后,图像如图2所示。
图2 遮盖光斑后图像
6)将补偿后的图像进行灰度值调整后二值化。实验处理中将0.5~0.75之间的灰度扩展到0~1整个范围,将乒乓球颜色所在区域灰度加强,再以0.8为阈值进行二值化。
7)将上一步处理完毕的图像进行10次处理半径为3的自适应中值滤波,去噪,再去掉面积小于2 000的小区域,进一步去干扰。处理后图像如图3所示。
图3 将二值化图像进一步降噪
8)对上一步处理后的图像采用普通质心算法获得质心的位置[7],处理后的结果如图4所示。明显可看出实验图片有9个乒乓球,执行算法后找到的具体质心坐标如表1所示。
表1 执行算法后得到的乒乓球质心坐标
由图4可看出,由于灯光、阴影、乒乓球表面脏斑等问题,通过上述算法找到的个别乒乓球质心坐标有明显偏差。但根据国际国际乒联手册(2016)规定,通用乒乓球的直径为40.00 mm。上述质心算法可能产生的最大误差小于10 mm。而制作的捡球小车捡球机构,宽度为170.00 mm,显然误差不影响捡球执行机构的运作。
图4 乒乓球质心位置
找到每个乒乓球的质心坐标后,下一步是要规划一个最短路径用以捡球机器人高效快捷运行。寻找最短路径的算法属于经典的“旅行商问题”,处理该问题的算法很多,例如遗传算法、蚁群算法、模拟退火算法等[8~9]。考虑到实际应用时对最优化程度和执行时间要求并不高,本设计采用遗传算法解决问题。设小车当前坐标位置为1号位置即(2 016,3 024),设置种群规模为200,最大遗传代数为1 000,经过选择、交叉、变异后,可求得最短路径1→6→9→8→10→7→5→4→2→3。将识别后的图片按上述算法执行后标记路径行进顺序如表2所示,路线图如图5所示。
表2 路径规划后的行进顺序
图5 规划后的最优路线
用上述算法处理另一张图片,结果如图6所示。小车实际执行捡球时,由于每次拍摄图片时乒乓球数量随机,路线各异,捡球速度是不定的,且整个算法是周期性拍摄识别并控制的,因此,捡球机器人并不是完全按照识别的最优路线方案行走完毕,而是动态调整的。
图6 采集到的另一张图片处理结果
PC将处理好的乒乓球质心坐标和规划好的最短路径通过蓝牙无线模块传送至安装在小车上的下位机。
小车上的嵌入式系统根据上位机传送的小球质心坐标值及其顺序,根据勾股定理可求得两球心坐标之间的距离。
设摄像头安装高度为h,安装位置与地面法线所夹角度为Φ,如图7所示。可通过拍摄静态图片实际标定所拍摄区域长度为l,宽度为w。根据拍摄图片的像素大小可获得图片像素与实际地面位置的对应关系。显然,实际区域的宽度w与拍摄图片宽度成固定比例k。而实际区域的长度l与图片高度的比例为k/cosΦ。实际地面中两球心距离为
图7 摄像头安装与拍摄区域示意
(2)
式中d为际地面中两球心距离,x1,x2为求两个球心的列坐标,y1,y2为图像中所求两个球心的行坐标。为了使拍摄的图像清晰,拍摄图片时小车处于静止状态[10]。
确定两质心之间的距离后,可通过光电码盘等技术手段控制小车行进的距离。设行进路线上相邻的3个质心坐标为(x1,y1),(x2,y2),(x3,y3),在转折位置可通过式(3)计算小车所需做的转角度数
(3)
捡球小车从初始位置出发,周期性拍摄图像用于小球位置判别和行进路径规划。如果当前拍摄的图像中没有识别出乒乓球的存在,则可控制小车向前行进l距离,再拍照,遇到墙壁障碍后向右旋转90°,若持续一段时间未找到乒乓球,则视为所有球均减取完毕,可控制小车回到初始位置。
捡球执行机构采用滚筒结构,横截图如图8(a)所示。滚动捡球时,两个齿轮逆向旋转,乒乓球的运动路径呈现“S”形。采用这种结构方案相比机械手方案效率高,按照设计要求实际制作的小车执行机构如图8(b)所示,经实验验证该方案可以高效完成捡球动作。
图8 捡球执行机构截面示意与实物
为了减轻乒乓球训练中心、乒乓球俱乐部等集中训练场地的人工捡球工作,本文设计采用了一种双齿轮逆向旋转的滚筒式结构进行捡球操作。通过单目视觉进行周期性的图片采集,将采集到的图像传送到PC,使用MATLAB软件通过降噪、去干扰光斑、球心坐标识别、最优路径规划等算法处理,可以得到每个乒乓球的质心坐标和规划后的最优行进路线。通过无线传送到捡球小车的嵌入式系统中,控制小车按照既定轨迹运行,以达到全自动捡球的目的。经过仿真和实践,证明方案切实可行。