基于OpenMV和Arduino的智能巡线机器人*

2020-11-25 06:31李思熠王少坤
科技与创新 2020年22期
关键词:控制板巡线舵机

李思熠,王少坤

基于OpenMV和Arduino的智能巡线机器人*

李思熠,王少坤

(西北农林科技大学 水利与建筑工程学院,陕西 杨凌 712100)

巡线机器人作为一种能自动识别路径行走的机器人,被广泛用于快递分拣、输电线路巡检等路径规划场合,有着良好的发展前景[1]。但如何提高其识别路径的准确性、快速性仍是需要不断突破的难点,针对以上问题,设计了一种基于OpenMV和Arduino的智能巡线机器人。在机器视觉方面,采用颜色识别算法、阈值二值化处理、权重计算和线性回归算法进行图像捕捉和路径追踪。在通信系统方面,采用以机器人舵机控制板为主、OpenMV和Arduino为辅的主从加分布式模块化结构控制机器人行走模式和方向。在机械结构方面,采用了对称机械结构设计、大扭力舵机替换等方法来解决自身重心偏移、承重能力等问题。实验表明,在9 600波特率下,机器人可以十分稳定、快速地进行路径识别巡线工作。

OpenMV;智能控制;Arduino;巡线机器人

1 引言

随着人工智能技术的发展,机器人研究领域也变得越来越多元化,对机器人的要求也越来越高,机器人的智能化成为了当今研究热点。而作为应用广泛的巡线小车,其发展前景也是一片大好[2]。随着类人机器人成为机器人的主要发展方向,许多模仿人的形态和动作的机器人被设计出来,双足型仿人机器人也被用到了服务业、工业、军业等多个领域,对仿人巡线机器人也开始有了研究[3]。传统的仿人巡线机器人由舵机构成主要支架,外可加类人外形包装,其控制系统则由舵机控制板以及各种形式的传感器构成。例如可用安装在脚板上的位置型灰度传感器来判别机器人行走过程中是否偏离规定的线路,若设定线路为黑色,则传感器识别到黑色就会传递“是”指令,机器人仍保持直线行驶;若某一特定位置传感器检测到其他颜色,传感器就会传递“非”指令,机器人便按照传感器所在位置进行左右转判别,直到回归正常轨道为止。此种方法动作缓慢,需要传感器数量较大,传感器受周围光照环境等因素大,会出现“误判”情况。为了改善这种传统情况的不足,本文将OpenMV摄像头当作机器人的“眼睛”,利用Arduino单片机联结摄像头与舵机控制板通信,使巡线机器人能保持高度的灵敏性,并可随时调节由光线带来的颜色阈值问题。

2 基于OpenMV的机器视觉识别算法

2.1 OpenMV简介

OpenMV是一个以STM32F765VI ARM Cortex M7处理器为核心,集成了OV7725摄像头芯片的机器视觉模块,其搭载了Micro Python解释器,可用Python语言高效地实现核心机器视觉算法。OpenMV机器视觉算法包括寻找色块、人脸检测、颜色跟踪等功能,可以用来实现产品的残次品筛选、非法入侵检测、跟踪固定的标记物等,具有稳定性高、传输效率高等特点[4]。

2.2 OpenMV路径识别算法

图像处理技术是OpenMV的核心功能,也是巡线机器人最重要的部分。OpenMV IDE作为调试软件,可将图像处理部分与摄像头硬件连接起来,方便有效地操作。作为机器人的“眼睛”,OpenMV负责将道路状况实时发送给机器人,判断行走路线是否偏离既定的轨道。若偏离值在允许范围内,则机器人继续保持直行;若偏离值超过设定范围,则根据其大小和方向旋转相应的角度来控制机器人回归到轨 道上。

对于寻迹轨道,根据现实要求,可分为单轨巡线和双轨巡线。在这里,以单轨巡线为分析点。摄像头将把路面信息以实时图像呈现在IDE中,同时根据需要,设定图像显示形式,可采用GB565彩色显示,也可采用GRAYSCALE黑白模式,同时可使用ROI命令来选择自己所需要的图像区域。以轨道颜色为黑线为例,设置捕捉色块的阈值为黑色阈值,就可以抓捕到图像中所有黑色的色块并标记出来[5]。然后进行图像的Otsu二值化处理,即将图像转化为只有黑白两种阈值的图像[6]。在对其进行阈值分割时,选定的分割阈值应使前景区域的平均灰度、背景区域的平均灰度与整幅图像的平均灰度之间差别最大,这种差异用区域的方差来表示,其相互关系如下所示:

=0×0+1×1(1)

2=0×(0-)2+1×(1-)2(2)

式(1)(2)中:为图像的总平均灰度;0为前景像素点总数占图像总像素点数目比例;0为平均灰度;1为背景像素点总数占图像总像素点数目比例;1为平均灰度;2为前景和背景图象的方差。让阈值在灰度范围内依次取值,使2最大的阈值便是最佳区域分割阈值[7-8]。

经过色块寻找和Otsu二值化处理后,可对黑线实行多段标记,经过权重加和算法或者线性回归处理对黑线进行偏离值计算,这里的偏离值是指偏离图像中心线的角度,根据程序算法完成。如此,便可实时显现出机器人对于轨道的偏离程度。若想将偏离数据传给机器人,就需要采用URT命令与Arduino进行串口通信传值[9]。

3 基于Arduino的机器人控制系统设计

3.1 Arduino简介

Arduino是一块基于开放原始代码的Simple i/o平台,具有类似Java、C语言的开发环境,可以配合一些电子元件例如LED灯、蜂鸣器、光敏电阻等来开发出设计者想要的产品,效果惊人。此外,Arduino还可以在运行时和电脑中的程序如Flash、Processing、MaxMSP等进行通讯。其以高速的微处理控制器(Atmel Atmega328)、USB直供电或外部5~9 V直流电压供电以及简单、易理解的开放语言和环境等优点备受电子元件爱好者的推崇[10]。

3.2 Arduino控制算法设计

Arduino实际上由可编程电路板和Arduino IDE集成开发环境软件组成。可使用IDE编写计算机代码,然后下载到实际电路板中,实现电路板单独控制机器人的脱机运行。至于对电路板的大小要求比较严格的地方,可以采用Arduino Nano,它有着十分小巧的体积,且其他功能依然完善。Arduino Nano的引脚示如图1所示。

Arduino既要接受由OpenMV传递过来的角度偏转值,又要向舵机控制板输出信号控制机器人行走,但因其本身只有一个串口,无法同时进行接收与发送,于是在与OpenMV进行通信时,需设置模拟串口(软串口)进行信息交流[11]。串口通讯至少需要3根线,即TX、RX和GND,TX是发送端,RX是接收端,GND是地线。则在Arduino IDE软件中,需编写将数字串口设置成模拟串口的代码,以D2、D3数字口为例,其设置成为软串口的命令为:

其中,默认设置D2口为接收端RX,D3口为发送端TX。在硬件上,将Arduino Nano的D2、D3引脚分别与OpenMV的TX、RX引脚相连(实际为P4、P5引脚),就可以实现信号通讯。不同于传统的巡线机器人,此种设计下的传输速度是可控的,可以设置两者的通信传输速率为9 600波特率或者4 800波特率,具体数值可根据实际情况灵活选择。在这里,基于对机器人的快速性要求,选择9 600波特率。

图1 Arduino Nano引脚图

实际上,Arduino起着信号传递作用。OpenMV程序会将具体的偏转值转化成为左转和右转信号,若开始执行转向信号的偏转值为4°,则相关程序如下所示:

摄像头传递给Arduino“L”“R”或者“S”的信息,Arduino又将信号传递给舵机控制板,并按照内部编程信息执行事先已储存在控制板内的动作组,这样机器人就可以在偏差可控范围内沿着黑色直行走。

3.3 舵机控制系统设计

机器人控制系统是根据指令及传感信息控制机器人完成一定的动作或任务的装置,它是机器人的心脏,决定了机器人性能的优劣[12]。舵机控制板、Arduino与OpenMV三者相连的系统就是其控制系统,控制机器人的行走模式与方向。该控制系统采取模块化设计控制结构,将主从控制与分布式控制方式相结合,促使形成一种主从加分布的控制方式,这不仅可以有效地减少主控制器的工作量又可以及时处理从控制器出现的一些紧急或单一控制的情况,有助于机器人的整体实时控制与工作效率提升。

在实际运行时,需将舵机控制板的信号线、地线与Arduino连接进行信号通信,即接通控制板上的二次开发串口通信接口,舵机控制板如图2所示。该控制板同样搭配调试软件,在其内部程序中,可设定机器人每一个舵机运转的时间,根据各种情况下的实际需要,调试出不同时间的动作组。而一般情况下,准确率高的机器人动作较慢,动作快的机器人平稳性较差,可采用不同的行走姿态来解决这个问题。

图2 16路舵机控制板图

在组装机器人时,需将机器人舵机各个号位连接于舵机控制板中的特定接口,根据事先调试好的动作组执行相应程序。若想实现脱机运行,则需要为其安装7.4 V左右的锂电池,对舵机控制板和Arduino供电,并且将Arduino的5 V电源线与OpenMV的VIN接口相连,实现对摄像头的供电运行。如此,三者就可仅用一块电池实现三位控制器的脱机运行,具有良好的实际运用性。

4 系统整体结构设计

4.1 机器人结构设计

作为仿人机器人,其必须要有明显的头、手臂、躯干和双足等部分,与人体的结构比例相协调。所以设计机器人头部为1个自由度,手臂2个自由度,躯干设计自由度不等,但大体上可分为纵轴与横轴自由度,并且要求机器人在行走过程中有明显的、协调的摆头和摆臂动作[13]。

对于机器人的躯干设计,需选择两种型号舵机。一种是RDS3115双轴型舵机,这是一款专门为机器人设计的数字舵机,扭矩15 kg,运行噪声低、平稳且线性度高,可控角度范围为180°,断电可360°旋转,采用单片机MCU控制,特别适合机器人的各关节活动。在机器人的手臂、腰身以及大腿等位置安装,可实现最基础的行走、转向以及立定等动作。另一种则是SG90小舵机,其质量仅为9 g,在4.8 V供电电源下,无负载速度为0.12 s/60°,堵转扭矩为1.2~1.4 kg/cm,死区设定为7 μs左右。它则主要安装在机器的头部以及手腕处。因为头部舵机会导致重心的上移、机器人下盘不稳等问题,需要质量比较小的舵机来控制,而大小舵机联合组成机器人的手臂可使躯体在行进时更加协调与美观。

金属铝件作为一种将舵机连接起来的中间元件,是机器人机械结构必不可少的一部分,如图3所示。此仅为其中连接件的一种形式,机器人头部与肩部、肩部与手臂、肩部与腿部以及腿部与脚板之间的连接件都不一样,需要根据实际舵机位置而设计,具有灵活性。

图3 金属铝件连接图

机器人的脚板设计也需要与人类相仿,采用材质轻、强度高、机械性能好的有机塑料制作成为类似矩形的平行脚板,可有助于机器人的重心平稳。当要适用于摩擦力较小的环境时,可选择在原脚板上贴上防滑垫,也可选择其他摩擦力较大的脚板材料,以防机器人打滑。

4.2 系统调试

根据所选材料组装好机器人并同时接通电源与控制系统后,便开始进行机器人调试。在这过程中,出现了机器人重心不稳、承重能力差等问题,但可采用大扭力舵机替换机器人的肩部与脚踝舵机的方案来解决这个问题,根据现场调试情况来看,有良好的效果。同时,在机器人行走过程中根据各种实际情况,需要相应地调整机器人各个动作组中舵机的旋转角度以及运行时间,以适应行走的环境。一旦时间以及程序设定完成,其脱机运行独自完成巡线任务的速度就是一定的,可用于不需要频繁变更的场合,十分方便。

5 总结

总体来说,此次设计的仿人巡线机器人主要由机械结构和控制系统组成。仿人竞速机器人要求其外形似人,若把机械结构看作人的骨架,那么控制系统就被认为是人的大脑,所以机器人的先进程度与功能强弱通常都直接与其控制系统的性能密切相关。仿人机器人作为当今科技发展的主要机器人类型之一,注定有着不可估量的未来。比如可利用机器人携带的摄像装置,实现线路及其安全通道的检测与巡视,将检测到的数据和图像信息经过无线传输系统发送到地面基站,通过地面基站接收、显示发回的数据和图像资料。而本文设计的巡线机器人可与其他硬件相搭配实现物流搬运、智能分拣、输电线路巡检等功能,将在农业、工业、民业以及医学类等领域实现广泛运用[14]。

[1]陈超,郑彦宁,江鹏,等.基于两自由度模块化关节的巡线机器人设计[J].仪器仪表学报,2014,35(12):28-35.

[2]高峰,郭为忠.中国机器人的发展战略思考[J].机械工程学报,2016,52(7):1-5.

[3]任大林,刘恒,刘琴.浅析仿人机器人专利发展状况[J].科技创新与应用,2016(18):57.

[4]牛国臣.基于OpenMV的类人机器人教学实践[J].计算机教育,2019(10):38-41.

[5]刘彩霞,杨春.基于机器视觉的食品码垛机器人控制系统设计[J].食品工业,2020,41(1):231-233.

[6]OTSU N.A threshold selection method from gray-Level histograms[J].IEEE Transactions on Systems Man and Cybernetics,1979,9(1):62.

[7]雷建锋,汪伟.基于OpenCV的图像阈值分割研究与实现[J].现代电子技术,2013,36(24):73-76.

[8]牛国臣,许开鲁.基于线性CCD的类人机器人循迹系统的设计[J].现代电子技术,2018,41(2):133-136,140.

[9]李占鹏,郭颖,韩济阳,等.基于图像识别的双足循迹机器人设计[J].国外电子测量技术,2019,38(4):154-157.

[10]孙梅,张森林.基于Arduino模块化机器人视觉系统的研究与设计[J].华中师范大学学报(自然科学版),2014,48(4):511-515.

[11]施敏虎,栗云鹏,庄曙东,等.基于OpenMV的智能搬运车型机器人的设计[J].机械工程师,2020(4):20-25.

[12]韩富宁.中国民航信息化系统现状及发展展望[J].硅谷,2013,6(17):4,7.

[13]吴悦.仿人机器人的设计与竞赛应用[J].电子世界,2019(23):136-137.

[14]王田苗,陶永.我国工业机器人技术现状与产业化发展战略[J].机械工程学报,2014,50(9):1-13.

TP242

A

10.15913/j.cnki.kjycx.2020.22.020

2095-6835(2020)22-0050-04

西北农林科技大学教学改革项目“大学生科技竞赛与工科专业创新教学协同模式研究”(编号:JY1903095);西北农林科技大学大学生创新创业训练项目“多功能智能物流搬运机器人”(编号:X201910712285)

李思熠(1999—),女,重庆人,本科,主要从事机器人视觉方面与Arduino方面的研究。

王少坤(1979—),男,河北赵县人,硕士,实验师,主要从事智能控制技术与机器人技术、电力电子技术方面的研究。

〔编辑:严丽琴〕

猜你喜欢
控制板巡线舵机
基于共振磁耦合供电及电磁传感定位的无人机智能巡线技术与应用
基于移动互联网的智能化巡线管理系统的建设与应用
基于速度观测的双余度电液舵机系统容错同步控制
无人机为仁化高山电网线路“把脉”
谈谈DAM中波发射机的单元电路调整
让机器人巡线不脱线
一种集成脚本控制单元的设计与实现
一种全隔离的无刷直流电机的反馈制动控制板的研究
超音速舵机保护器
菜鸟看模型