基于OpenMV的捡球机器人系统设计*

2020-03-24 01:53王新勇
山西电子技术 2020年1期
关键词:校验串口数据包

普 邑,杨 哲,王新勇

(1.郑州宇通客车股份有限公司,郑州 450061;2.河南科技大学,洛阳 471023)

0 引言

随着全民健身理念的持续普及,体育锻炼逐渐走进大众的生活。在众多体育运动中,乒乓球运动以其时尚、观赏性高的特点被大众普遍认可。同时乒乓球作为一项深受大众喜欢的体育运动也越来越普及。面对训练结束后散落一地的乒乓球,如何快速高效的拾取是个很令人头疼的问题。人工的方法不外乎有雇佣球童和运动员自行拾取两种方法,但前者的费用较高,而后者对运动员的体能又是更多地消耗。为此,迫切需要开发一种能够自动捡取乒乓球的机器人。

OpenMV[1]是一个开源、低成本、功能强大的机器视觉模块,它以STM32为核心,集成了高性能摄像头芯片,在小巧的硬件模块上,可用C语言高效地实现了核心机器视觉算法,并提供了Python编程接口,为开发应用人员提供了极大的方便。近年来,不少开发人员使用OpenMV平台在目标跟踪[2]、智能小车[3,4]、寻的赛车[5]、捡网球[6]等系统中应用,取得了很好的效果。在对图像的处理方面,Lab色彩模式[7]越来越受到人们的青睐。该模式是由国际照明委员会于1976年提出的,在表述颜色上也分为三个通道:明度通道L(Luminosity)和两个颜色通道a和b。L通道表示明度从暗到亮的变化,a通道表示从深绿色到灰色再到亮粉红色的过渡,b通道表示从亮蓝色到灰色再到黄色的过渡。因此,Lab是基于人对颜色的感觉,Lab中的数值描述正常视力的人能够看到的所有颜色,它描述的是颜色的显示方式,而不是设备生成颜色所需的特定色料的数量,所以Lab被视为与设备无关的颜色模型。颜色色彩管理系统使用Lab作为色标,以将颜色从一个色彩空间转换到另一个色彩空间。

本文基于OpenMV嵌入式机器视觉平台,对从摄像头采集的图像,采用Lab色彩模型提取颜色特征,设计一种全自动捡球机器人系统。本设计实现的功能包括:机器人全自动寻找并定位小球,运动控制平台移动到小球附近,利用滚筒式捡球机构回收小球。该系统可取代人工捡球,以解放人力劳动。

1 系统总体设计

基于OpenMV的捡球机器人融合交叉了自动控制、现代无线通讯、图像识别处理、传感器等多种技术,如图1所示,其主要由识别定位小球的图像处理平台和控制机器人移动的运动控制平台以及电源模块三大部分组成。

图像处理平台主要由STM32主控制器、OV7725摄像头、串口硬件电路等组成,主要负责寻找视野范围内特定颜色和大小的小球,并通过串口及时向运动控制平台发送小球的位置和距离信息。运动控制平台负责解析图像处理平台发送的小球位置数据信息,进一步规划机器人的运动路径,并控制机器人运动到小球附近,最后机器人通过滚筒式捡球机构回收小球。电源模块主要由MP2480DN和AMS1117降压芯片组成,用于提供24V、5V和3.3V三种不同的电压。同时运动控制平台还提供无线遥控功能,便于在光线环境复杂的情况下手动遥控机器人进行捡球。

图1 捡球机器人系统结构图

2 系统的硬件设计

2.1 捡球机构设计

图2所示是滚筒式捡球器,当滚筒在地面滚动时即可轻易将乒乓球压入捡球器内。这种方案的优点是容错性好,噪音很小,捡球效率较高,结构简便且适合轮式机器人使用。

图2 滚筒式捡球机构

2.2 控制电路设计

捡球机器人的硬件部分主要分为电源、图像处理平台和运动控制平台三大部分,电源部分主要包括电池和电压转换电路;图像处理平台包括STM32F765微处理器、OV7725摄像头和LCD显示屏;运动控制平台包括STM32F405微处理器、红外光电传感器、RM35直流无刷电机及其驱动和滚筒式捡球机构。具体结构组成如图3所示。

图3 控制系统结构

2.3 电源降压电路设计

根据MP2482DN手册提供的典型应用电路,我们只需计算调整电阻R1和R2即可得到不同的输出电压,输出电压与电阻R1和R2的关系如式(1)所示:

(1)

系统中需要的输出电压为5V,同时电阻精度有限,所以选择阻值较大的电阻进行配比,在这里选取的R1为124K,R2为23.7K。所设计的降压电路原理图如图4所示。

图4 24V-5V降压电路原理图

3 系统的软件设计

3.1 软件总体设计

基于OpenMV捡球机器人的软件总体流程图如图5所示,首先分别进行图像处理平台和运动控制平台的硬件初始化,初始化完成之后机器人先进入巡航模式,如果在摄像头视野内发现目标小球,立即计算其位置信息并通过串口打包发送到运动控制平台。而运动控制平台在初始化完成后便等待图像处理平台数据的来临,一旦接收到串口发送来的数据,立即开始解析串口数据包得到小球的位置信息,随后控制机器人运动到小球附近。机器人移动到规定距离后,机器人的捡球装置开始工作,进行捡球,而且捡球装置可以同时收集多个目标球,容错性很好。

图5 软件总体流程图

3.2 颜色阈值调整

在颜色识别的过程中,将彩色格式转换为Lab颜色空间模型,通过设置L,a,b三者的阈值来进行颜色追踪的。阈值的范围决定了可识别物体的精度,一般来说,范围越小,可识别出来的物体就越精确。阈值范围越小,目标物体在进行识别的过程中也会造成目标物体识别大小上的损失,甚至可能造成识别不出来目标物体,所以阈值的范围选取是十分重要的。Lab颜色模型不仅可以表示RGB颜色模型中的所有颜色,而且还能表现它们不能表现的色彩。它使用L、a、b三个通道即亮度和a、b两个基本的要素来描述颜色,反映了人类视觉的生理特征。我们使用的是OpenMV IDE中的Threshold Editor工具进行阈值调整,阈值调整好以后的效果图如图6所示。

图6 颜色阈值调整

3.3 运动平台软件设计

运动控制平台开机后首先进行运动控制平台的硬件初始化,初始化完成之后机器人开始进行巡航。当红外光电传感器检测到前方有障碍时,机器人会自动进入避障模式躲避障碍[8],直到前方障碍消失,机器人继续进行巡航。

运动控制平台接收到图像处理平台发来的串口数据后,开始进行串口数据解析并验证本次数据是否有效,如果解析所得的数据有效时,运动控制平台通过控制电机转动从而达到控制机器人运动的目的。当摄像头视野内没有小球存在时,机器人再次进入巡航模式进行巡航。

RM3508直流无刷电机的调速过程如下:首先进行C620电调参数初始化,设置C620电调为CAN总线指令控制模式,通过对C620发送调速指令,RM3508电机开始开环运行。然后再通过CAN总线指令读取回RM3508电机编码器反馈的速度值,根据开环给定的速度值和编码器反馈的速度值开始进行PID闭环调节。由于单片机性能有限,我们选取运算较快增量式PID算法进行速度调节。

串口通信过程如下:当串口接收到数据包起始字节后,便开始本帧数据的传送,直到接收数据包到达指定长度后结束本次数据包接收,开始进行数据校验。校验的过程以求取校验和为主要校验方式,将接收到的有效数据进行累加和对比,如校验通过,则认为本次数据传输有效;如果校验失败,则认为本次数据传输无效,丢弃本次接收的数据包。

4 结束语

本文阐述的基于OpenMV的捡球机器人,通过OpenMV图像处理平台和运动控制平台的配合实现了机器人全自动自主导航捡球、避障等功能。通过提取图像中小球的Lab颜色特征寻找并定位小球,可以在原有人工捡球的基础上提高捡球效率,使捡球工作不再麻烦。该系统操作简单,只需打开电源将其放入目标区域即可,用简便的捡球方式使捡球工作不再费时费力。

猜你喜欢
校验串口数据包
使用Excel朗读功能校验工作表中的数据
二维隐蔽时间信道构建的研究*
基于NPORT的地面综合气象观测系统通信测试方法及故障处理
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
基于API函数库实现串口数据通信的分析与设计
基于EM9000工控板高性能双串口通信模型设计与实现
C#串口高效可靠的接收方案设计
智能电能表的现场快速校验方法探讨
船舶电子设备串口数据的软件共享方法
电子式互感器校验方式研究