基于Lab特征模型的兵乓球追踪机器人的设计与实现

2019-01-07 11:57,,
计算机测量与控制 2018年12期
关键词:云台舵机测距

,,

(黄冈师范学院 物理与电信学院,湖北 黄冈 438000)

0 引言

兵乓球追踪机器人是一种典型的实时机器人,需要通过图像处理的方法对乒乓球识别和中心定位,主控制器识别乒乓球的位置来控制机器人进行追踪[1]。

文献[2]研究了多颜色模型下的乒乓球快速检测方法,提出了HSV颜色模型中对颜色的筛选,得到了一定的精度,但需要用两台摄像机才能实现。文献[3]设计了乒乓球机器人,实现了精确控制,速度也较快,但使用的是计算机资源,软件需要在LabVIEW上进行操作,不能集成的小车上。文献[4]提出单目摄像头视觉定位,但需要外界码盘陀螺仪传感器信息才能进行准确定位。

本文提出了一种基于Lab颜色特征模型的乒乓球追踪机器人的设计方案。系统主要采用Lab颜色特征对乒乓球颜色进行识别,运用质心法对乒乓球中心进行定位,采用单目摄像头进行距离测量,控制云台模块保持乒乓球处在图像中心位置。系统主要包含摄像头视频获取,图像处理,兵乓球中心检测与定位,云台与电机联动模块等,是兵乓球捡球机器人前期所必须的工作。

1 系统结构及原理

兵乓球追踪机器人框架如图1所示。系统主要由摄像头模块、STM32主控制器、STC89C52单片机模块、云台模块、电机控制模块等部分组成。

图1 兵乓球追踪机器人框架图

摄像头模块将采集到的图片信息送入主控芯片,通过图像处理算法对兵乓球进行识别与定位,控制云台模块保持乒乓球处在图像中心位置,并把乒乓球位置信息和云台数据通过串口传送至STC89C52单片机对电机驱动模块进行控制,单片机控制小车对乒乓球进行追踪。

2 硬件设计

乒乓球追踪机器人硬件电路主要包括主控制器、摄像头模块、云台舵机模块、电机控制模块。主控制器是性能强大的32单片机STM32F765,主频达216 MHZ,2M flash。可用于视频处理,在色块追踪上,帧率可以到达85~90帧,速度满足需要。

STM32F765作为主控制器,控制OV7725摄像头模块进行图像采集,采集到的图像,运用图像处理算法及中心定位算法,控制云台进行转动,采用光学原理对乒乓球进行单目测距,主控制器通过串口向STC89C52单片机传输云台角度与测量距离,通过单片机对小车进行控制,达到实时追踪目的。

硬件电路中电源模块需要提供12 V,5 V,3 V电压,摄像头电路需要通过主控制器硬件IIC总线对OV7725进行控制,电机驱动电路由STC89C52单片机进行控制运动,云台模块由主控制器控制,通过定时器控制占空比来控制两个舵机进行旋转。

2.1 电源模块

主电源采用4节18650电池供电,主要为电机驱动电路和云台模块提供大电流,通过ASM-1117-5V电压芯片将12V转为5V供STC89C52单片机供电,通过BD331A稳压芯片将5V转为3.3V为主控芯片和摄像头模块供电。

2.2 摄像头电路

摄像头选用 Omni Vision 公司生产的 OV7725 图像感光元件[5]。摄像头 OV7725 由8根数据线、1根帧同步信号引脚、1根行同步信号引、1根像素同步信号引脚、2根总线寄存器配置信号引脚 SCL 和 SDA、1根工作时钟信号引脚组成。OV7725是一款低功耗、高性能的VGA(Vide Graphics Array,视频图形陈列)COMS图像传感器,其在80 FPS下可以处理640×480 8-bit 灰度图或者320×240 16-bit RGB565彩色图像。通过IIC总线可以与主控芯片进行通信。

2.3 电机驱动电路

电机驱动芯片采用L293D芯片进行驱动,L293D是一款单片集成的高电压、高电流、4通道电机驱动,设计用于连接标准DTL或TTL逻辑电平,驱动电机工作。

为了简化为双桥应用,L293D每个通道对都配备了一个使能输入端。L293D逻辑电路具有独立的供电输入,可在更低的电压下工作。此外,L293D还内置了箝位二极管。其驱动电路如图2所示。

图2 电机驱动电路

2.4 云台模块

云台模块由2个微型SG90舵机组成,机械结构采用3D打印件,如图3所示,实现云台180度对乒乓球识别。

图3 云台模块

舵机由自由指定旋转角度的电机组成,引出线由两根电源线,1根控制线组成。电机内部有一个周期为20 ms,脉冲宽度为1.5 ms的基准脉冲V0。为了控制舵机,给信号线输入一个周期也为20 ms,由不同的占空比控制舵机正反转。该占控比经过舵机内部调制芯片的处理成为一个偏置电压V,舵机内部首先通过比较ΔV=V-V0,ΔV=V-V0的正负来进行正相或反相转动,同时舵机内部带有平衡电位器,内部齿轮转动的同时会带动电位器变化,电位器会逐渐减小电压差ΔV,当电机转到指定角度时ΔV刚好为0,舵机停止转动。因此,若想控制舵机转到指定角度,只需要主控制器输出指定占空比的脉冲信号即可。

SG90舵机的位置等级有1024个,有效角度范围180°,控制的角度精度是可以达到180/1024°约0.18°。

主控制器通过PID算法对两个微型舵机进行控制,实现抖动小,精准角度控制。

通过该云台,控制乒乓球始终处于图像正中心位置,为后续定位和测距做准备。

3 软件设计

乒乓球追踪机器人软件部分主要包含摄像头采集、乒乓球识别、中心定位、云台调整、小车电机控制等几个部分。其软件流程如图4所示。

图4 软件总流程图

该系统采用单摄像进行图像采集,STM32主控制器对采集的图片进行分析,设定颜色阈值对乒乓球进行识别,通过中心定位算法实现乒乓球中心定位,并调整云台模块控制乒乓球处在图像中央位置,通过光学原理对乒乓球距离测量,主控制器通过串口传输云台角度和距离信息,STC单片机通过云台角度和测量距离控制小车对乒乓球进行实时追踪。

3.1 色彩空间

RGB颜色模型最为常见,主要用于显示器等发光体的颜色显示,是一种加色法混色模型。通过将红(R)、绿(G)、蓝(B) 三种基本色按其亮度的不同分别划分为256个等级,进行不同程度的叠加,能够表示1600多万种不同的颜色[2]。该模型的颜色表达能力强,但对光照变化较为敏感。表1为强光与弱光条件黄色乒乓球RGB颜色分布范围。

表1 强光与弱光条件乒乓球RGB颜色分布范围

Notes: (1) condition of strong light, (2) condition of weak light

Lab颜色模型是一种与设备无关的颜色空间,它由三个分量组成,分别是亮度分量L,色调分量a,b。其中这是L分量取值范围为[0-100],a分量范围为-120(绿色)~120(红色),b分量取值范围为-120(蓝色)~120(黄色)[6]。

在复杂环境下,需要对乒乓球进行有效检测与跟踪, 本文提出了一种基于Lab颜色模型下的乒乓球检测与跟踪方法。结合乒乓球在LAB颜色空间中的颜色分布特性,可以有效去除光线及其他颜色的干扰,提取出乒乓球区域。并以图像中乒乓球区域的质心位置作为乒乓球的定位坐标, 从而实现对乒乓球的实时识别与跟踪的目的。通过测试分析, 证实了该方法的可行性。

RGB颜色空间与Lab颜色的转换[7],可用如下公式进行:

(1)

(2)

(3)

其中:(xyz)T为过渡空间,Xn,Yn,Zn为白光条件下的刺激值,一般取值分别为:95.047,100.0,108.883。

表2 强光与弱光条件乒乓球Lab颜色分布范围

Notes:(1) condition of strong light,(2) condition of weak light

利用Lab颜色模型对乒乓球进行检测并进行分割,设计乒乓球的RGB 变化范围,将 RGB 图像转换到 Lab 颜色模型中,统计出乒乓球在Lab颜色空间中的各分量范围,记作 ThresholdLab。

通过摄像头采集的RGB图像,转化成Lab颜色模型,并得到其各像素点 (x,y)对应的Lab各分量值[2], 分别对该像素的L,a,b值进行阈值判断:

通过阈值判断,实现对感兴趣区域(Region Of Interests,ROI)进行分割。本文中取值格式为:

Lab=(L-,L+,a-,a+,b-,b+),实验中取Lab阈值为:Lab=(55, 70, 18, 58, 45, 64)。

3.2 小球中心定位

分割后的图像包含的是乒乓球区域图像,要对球心进行定位, 则需要获得乒乓球的中心位置,本文以二值图像binary中乒乓球区域的质心位置作为乒乓球中心坐标。假设二值图像的大小为M*N,则质心坐标center=(x,y)的计算方式如下所示[2]:

(4)

(5)

其中,A表示二值图中,乒乓球面积的大小:

(6)

乒乓球识别及中心定位软件流程如图5如示。

图5 乒乓球中心识别及中心定位软件流程图

3.3 单目距离测量

单摄像头测距是一种采用图像处理和光学原理的视觉检测技术,单摄像头测距方法通过单个摄像头获取目标图像并结合摄像头模型及摄像头参数进行视觉测距[9]。与双目视觉测距相比较,单目视觉测距方法具有硬件要求低,构造简单,成本低等特点。除此之外,单摄像头测距不需要进行图像匹配,因此,单摄像头测距具有更快的测量速度,同时避免了双摄像头测距的图像匹配误差。目前单摄像头测距方法主要包括AprilTag法、几何光学法、几何相似法。

3.3.1 AprilTag法

AprilTag是一种视觉基准库,可用于各种视觉定位操作,包括增强现实技术,机器人和相机校准等。通过事先设定的与二维码相似的标签,通过摄像头可以快速准备的检测出标志,而AprilTag检测程序可以计算相对于相机的精确3D位置,方向和id。但需要对目标先进行打标处理。

3.3.2 几何光学法

几何光学法使用的是光学折射原理。该方法需要已知摄像头固有的焦距以及像距。该方法可能因为摄像机镜头畸变,而影响测距效果,因此不能达到实时测距的目的。

3.3.3 几何相似法

根据几何相似原理以及透视投影原理,几何相似法将实际空间中的目标物体映射到摄像机的成像平面,构建成一个几何模型,结合摄像机的实际物理焦距计算摄像机到目标物体之间的距离[8]。

本系统采用的是单摄像头的几何相似法,该方法需要选参照物,利用参照物的大小比例来计算距离。本文通过摄像头里乒乓球的大小,计算摄像头与乒乓球之间的距离。

图6 单摄像头测距原理

由图6中左边的摄像头里的几何关系可得知:

(7)

(8)

所以:

(9)

由图6中右边的真实环境里的几何关系得知:

(10)

带入(9式),可得(结论公式11):

(11)

Distance=K/Lm

(12)

其中:Lm是长度,Bpix是摄像头中兵乓球所占的像素(直径的像素),Rm是球真实的半径,Apix是固定的像素。公式(12)中K值计算方法,测试时先让球距离摄像头10 cm,打印出摄像头里直径的像素值,然后相乘,就得到了k的值。

4 实验结果与分析

4.1 Lab特征阈值实验

实验首先通过软件对乒乓球在强光和弱光下进行Lab值测定,其中强光下Lab=(66,89,-5,48,41,89),弱光下Lab=(51,72,12,38,40,82),其中取值格式为:

Lab=(L-,L+,a-,a+,b-,b+)。通过实验选择Lab阈值,即Lab=(55,70,18,58,45,64),实现在背景和不同色块干扰下对乒乓球ROI区域进行识别,如图7所示。

图7 Lab阈值测试

4.2 乒乓球中心定位实验

识别乒乓球区域后,通过质心算法对乒乓球中心进行中心定位,对乒乓球进行准确定位。如图8所示,通过白色框对黄色乒乓球进行识别,用+标签对中心进行定位。

图8 中心定位实验

4.3 单摄像头测距实验

测试时先让球距离摄像头10 cm,运用公式(7)~(12),确定公式(12)的K值,最后用公式(12)测试出如表3所示的数据。

从实验结果可知,系统能够从复杂背景中提取乒乓球,采用质心算法对乒乓球进行准确定位,并通过单目摄像头对目标进行精确测距,最终能够结合云台旋转角度和距离值控制机器人进行追踪。

表3 单摄像头测距实验数据 mm

5 结束语

充分考虑了乒乓球所固有的颜色特征,在分析各颜色模型的基础上, 提出了Lab模型下的乒乓球分割算法,结合Lab颜色模型对复杂环境下的乒乓球进行分割操作,以质心法对乒乓球进行精确定位。 提出了单摄像头对乒乓球进行距离测量方法,最后单片机根据测量数据和云台数据对电机进行控制,达到实时跟踪的目的。实验表明,该算法处理时间小于100 ms,定位误差小于30 mm,满足乒乓球机器人追踪需要。

图9 乒乓球追踪机器人

设计并实现了颜色乒乓球追踪机器人如图9所示,结合图像处理技术、光学原理、单片机技术、电机驱动技术,可实现乒乓球识别、中心定位、测距、跟踪等功能,后续将加入机械手臂,对小球实现精准夹起功能。

猜你喜欢
云台舵机测距
基于RSSI测距的最大似然估计的节点定位算法
直升机某型舵机自动测试系统设计分析
云台绝顶矗凌峰
帮我买云台
基于速度观测的双余度电液舵机系统容错同步控制
Help me buy a…Tripod head帮我买云台
基于STM32的多通道超声波测距系统设计
基于单片机的超声波测距导盲杖设计
基于STM32的无线FPV云台设计
超音速舵机保护器