傅雨亭 高淳楠
摘 要:滚球控制系统搭建了一个几种不同颜色构成的视觉环境。通过摄像头获得环境图像,利用树莓派运行OpenCV进行图像处理,运用otsu阈值分割算法实现图像分割,并将图像的RBG信息分层,进而完成图像识别,通过坐标变换转换为小球在平板上的位置信息,将位置信息通过usrat通信传送给stm32f103zet6,由stm32f103zet6完成舵机的控制。在平板的两个相互垂直的方向上搭载舵机,舵机旋转带动连动结构,驱动平板倾斜,利用PID控制算法,从而间接控制了小球完成停留、直线、绕环等运动。
关键词:滚球控制系统 图像处理 PID控制
中图分类号:TP273 文献标识码:A 文章编号:1674-098X(2019)07(c)-0082-03
1 方案设计
1.1 控制方案设计
本系统主要由单片机控制模块、摄像头模块、图像处理模块、电机及机械支架构成。具体工作过程为:通过摄像机采集小球的运动图像,在图像处理模块对图片进行处理,获取小球相对于板的位置,将位置信息传送到单片机中,利用PID算法进行控制,使小球向目标位置运动[1-2,6]。
1.2 机械结构方案设计
在完成搭建机械结构之前,在MATLAB上完成了仿真测试,得到了舵机旋转角度与木板倾斜角度之间的关系[3]。
选用轻便的雪弗板作为底座。用木板作为小球活动平台。在木板背面固定了3万个向节,以实现木板的倾斜和固定。木板与舵机之间进行做了一个单自由度的关节连接。利用舵机转动,带动关节运动,从而牵动木板倾斜运动。
选择推力足够大,能够实现快速制动静止的舵机。以木板中心为坐标系原点,xy轴各放置一个电机,利用电机旋转带动连动结构工作,控制平板在各个方向上倾斜。
2 理論分析
2.1 机器视觉识别原理
不同颜色的物体在图像中的RGB信息不同。我们搭建了一个几种颜色构成的环境,实现小球识别及其位置信息的获取,以便后续的图像分割和位置信息计算。
利用OpenCV完成图像处理[4]。指标圆区域和木板边缘可以采用红绿蓝中的任意一种。小球则使用另外的任意一种。这样可以在RGB分层之后,根据不同颜色在不同分层中的不同表现来完成区域分割。
如图2所示,在长65cm的白色木板上有9个直径3cm的蓝色圆形区域。并在木板外的地板上放置了一定宽度的蓝色边缘带。使用的小球是深红的。
摄像头采集到的图像中会有部分的地板区域,利用otsu阈值分割算法完成图像分割。为了缩短处理时间和提高系统整体稳定性,我们降低了处理精度,初步处理之后依然存在部分蓝色边缘,不是准确地切割到木板区域。
对树莓派采集到的图像进行了RGB三层分离。
在B层中,木板、木板边缘和指标圆区域都会呈浅色。只有小球会呈深色。因此可以得到小球区域图像。通过对处理后的图像中小球区域进行平均运算,可以得到小球的重心位置[2]。
在R层中,木板边缘和指标圆区域呈深色,而木板和小球都会呈浅色,因此可以完成对指标圆区域的识别。但使用的小球是深红色的,在实际检测过程中呈深色。如果指标圆区域和小球有重叠,不利于我们分离出指标圆区域的边界,且难以判定小球是否进入指标圆区域,直接检测会增加计算量,降低运行效率。
因此把图像分成9个等面积的正方形,每个正方形区域里有一个指标圆区域。把除了小球所在区域的其他区域里的指标圆区域寻找出来,再根据等比例计算出最后一个指标圆区域的位置。相邻指标圆区域中心点的距离为20cm,以此为坐标系标度尺,定义小球位置坐标。
2.2 小球运动控制原理
在机械系统控制中,PID控制算法[5]是一种常用的方法。按照偏差的比例(P)、积分(I)和微分(D)进行控制,我们在MATLAB上完成了仿真测试[3]。
目前用于控制点的主要有三种PID算法:增量式算法,微分先行,位置式算法。本系统原计划是使用通过计算小球位置坐标与目标位置坐标偏差,只调节比例(P)、微分(D)的PD增量式算法。但在实际调试过程中发现因为系统设计中存在一些难以规避的系统误差,最终还是加入了积分(I)来调节误差。
3 电路与程序设计
3.1 电路设计
因为该系统主要电路是集成好的开发平台,因此我们只做了用于选择系统工作模式的选择电路。在该电路中设计了单片机接口,电机接口,上拉电阻以及由拨码开关构成的选通电路,作为模式选择的电路实现方案。
3.2 程序设计
为了提高抗干扰能力、为随时间处理程序提供时间指标,我们利用stm32定时器1产生时基信号,周期是1ms。
开始工作之后,通过模式选择电路确定工作模式,然后执行系统初始化。不同的模式会执行不同的指令。接着开启串口等待数据传输过来。数据以我们自定义的编码进行传输,加入了校验数据组,有效提高稳定性。成功接收数据之后,单片机控制舵机转动以实现控制木板倾斜。
4 测试结果与分析
在电机开始工作后,我们测试木板能否控制小球固定在一个指定区域内至少2s,发现至少稳定5s以上。又控制小球在各个指定区域之间运动和停留一段时间,发现小球均能够完成我们设定的指标,因此该系统性能相对稳定,基本满足我们的要求。
5 结语
该系统采用RGB分层来进一步完成图像处理,相对准确地提取到了小球的位置坐标。用各种方法来降低图像处理的运算复杂度,提高了运行效率,对后续的开发研究有一定的参考价值。
参考文献
[1] 王赓. 基于视觉系统的板球控制装置的设计与开发[D].清华大学,2004.
[2] 武凡凯,付伟,张釜荣,等.基于视觉反馈的板球系统定位控制[J].长春工业大学学报,2019,40(1):14-19.
[3] 鄢喜爱,杨金民,田华.Matlab在数据处理和绘图中的应用[J].科学技术与工程,2006(22):3631-3633.
[4] 聂红梅,刘忠艳.基于OpenCV的摄像机标定研究[J].微处理机,2017,38(6):58-61.
[5] 张新楠.板球系统的控制算法研究[D].大连理工大学,2011.
[6] 曾乘,柳强.板球系统PID控制响应的多项式响应面建模研究[J].电子设计工程,2016,24(16):28-30.