徐 军,杨 雄,陈怡佳,马 静
(哈尔滨理工大学自动化学院,黑龙江 哈尔滨 150080)
跟随机器人是未来机器人发展的重大趋势[1-3]。跟随机器人具有未来产业链长、行业带动性强以及战略布局分散等特点。目前的各类跟随机器人,如Five Elements Robotice公司的Budgee和CaddyTrek公司的电动高尔夫球童等,大多根据惯性跟随方法,在稳定性和实时性等性能方面尚有一定的缺陷[4-7]。而随着科技的发展,图像处理技术日趋成熟,视觉跟随逐渐成为热门研究领域,在工业、娱乐和交通等多个领域发挥着重要的作用[8-10]。
本文设计的自主跟随机器人,采用视觉跟随方法,以AprilTags[11-12]标记作为跟随目标,通过视觉传感器对图像进行采集。微控制器(micro control unit,MCU)对图像进行识别处理,获取目标的相应位置和数据。为提高系统的稳定性,设计了双模控制。手机端上位机通过WiFi向机器人发送控制模式命令,既可自主跟随,又可手动遥控。本文研制了系统模型机,完成了对机器人的调试工作。
自主跟随机器人系统包括自主跟随模式和遥控模式2种运行方式,运行方式由Processing编写的手机端应用程序(application,APP)控制,通过WiFi 模块与手机端APP通信。ATmega328作为主控芯片控制各模块运行。在自主跟随模式下,系统接收视觉传感器OpenMv对标记的定位信息,调用跟随算法,驱动电机运动,使机器人跟随标记移动并保持相应距离。遥控模式下,系统通过2.4 GHz射频模块接收遥控命令,驱动机器人行走。自主跟随机器人系统框图如图1所示。
图1 系统框图 Fig.1 Block diagram of the system
机器人的硬件组成部分主要包括视觉传感器、无线通信模块、电机驱动电路、电源和主控制器。
1.2.1 视觉传感器
为了实现自主跟随效果,系统首先需要具备感知目标功能,对目标位置信息进行定位。为此,系统采用OpenMv视觉传感器作为系统的感知元件。OpenMv是基于STM32F4XX ARM Cortex-M7单片机的一款开源机器视觉模块,搭载OV7725摄像头,并且板载MicroPython解释器。OpenMv视觉传感器具有的功能包括I/O控制、人脸检测、边缘检测、关键点提取和标记识别,以及强大的图像识别处理能力。
1.2.2 无线通信模块
无线通信部分包括2个方面。一是系统与手机端APP之间的通信。采用无线WiFi模块ESP8266,实现手机端对系统的控制以及运动模式选择的功能。ESP8266是一款低功耗的UART-WiFi透传模块,专为移动设备和物联网应用设计,数据传输可靠性好,最大传输速率可达460 800 bit/s。二是系统与遥控装置之间的通信。采用2.4 GHz射频模块NRF24L01,实现遥控模型下,遥控装置对机器人控制命令的传输。该模块主要由nRF24L01射频芯片及其外围电路组成,而nRF24L01芯片是由挪威的Nordic公司生产的一款单片射频收发芯片,其工作的ISM频段为世界通用频段2.4~2.5 GHz,工作电压为1.9~3.6 V,控制器通过串行外围设备接口(serial peripheral interface,SPI)与其通信。
1.2.3 电机驱动电路和电源
系统采用24 V可充放电锂电池供电。该锂电池作为动力部分电源,通过电压转换芯片为系统提供3.3 V和5 V控制部分电源。
机器人电机驱动部分采用MC33886全桥驱动芯片,24 V电压供电,最高电流达5 A,脉宽调制(pulse width modulation,PWM)的频率可达10 kHz。电机驱动电路具有输出短路保护、欠压关闭、故障状况报告等功能,可确保机器人的稳定运行。单个电机驱动电路如图2所示。
图2 电机驱动电路图 Fig.2 Motor drive circuitry
1.2.4 主控制器
自主跟随机器人主控制器和遥控装置的控制器均采用型号为ATmega328的AVR芯片,具备SPI接口、UART串口、数字口和模拟口拓展等。在作为跟随机器人控制器时,通过SPI接口获取OpenMv视觉传感器对目标的定位信息。SPI复用控制nRF24L01无线通信,接收遥控装置的控制命令,串口驱动ESP8266WiFi模块,接收上位机的控制命令,PWM输出控制电机运动。ATmega328作为遥控装置主控时,模拟口采集电位计电压值,转换为数字量进而转换为运动量,并配有灵敏度调节按键。通过SPI控制2.4 GHz无线射频模块nRF24L01,将运动量发送给机器人系统。
软件设计包括手机端APP、遥控装置程序、目标识别与定位以及机器人主体程序等设计。
手机端APP和遥控装置程序流程如图3所示。手机端APP采用Processing软件编写,主要功能是控制机器人的启动以及运行模式的选择。由手机连接机器人发出的WiFi信号,通过用户数据报网络协议(user datagram protocol,UDP)向机器人主机发送控制命令。遥控装置作为系统的辅助部分,主要功能是在不良环境下实现对机器人运动的控制。
图3 手机端APP和遥控装置程序流程图 Fig.3 Flowchart of mobile phone APP and remote control device program
自主跟随机器人的主体程序首先对I/O口、PWM、SPI等进行初始化,并且初始化UDP网络通信协议。然后进入待机模式,等待上位机的运行指令,接收UDP发来的数据,判断运行模式。在自主跟随模式时,SPI片选OpenMv视觉传感器,接收传感器传来的目标定位信息数据,数据为目标相对于摄像头的三维坐标。机器人解析坐标信息,根据相应的跟随算法驱动电机运动,使机器人跟随目标并保持相应的距离,运动包括前进、后退、左右移动等。而在遥控模式时,系统通过无线接收遥控装置传来的控制指令,手动控制机器人的行走。机器人主程序流程如图4所示。
图4 机器人主程序流程图 Fig.4 Flowchart of robot main program
目标识别定位是自主跟随的基础,通过在硬件平台OpenMv上搭载的MicroPython解释器,利用Python语言实现识别定位算法。当系统运行在跟随模式下,OpenMv视觉模块开始在摄像头范围内寻找目标。根据相应的识别定位算法,计算出目标的三维坐标信息(X,Y,Z),通过SPI传送给运动部分的MCU。目标识别定位程序流程如图5所示。
图5 目标识别定位程序流程图 Fig.5 Flowchart of target recognition and positioning program
根据设计方案,搭建系统测试模型机,对系统设计进行调试验证。自主跟随机器人系统配备载物仓,提供给使用者装载物品,跟随用户行走。
为实现跟随效果,本文采用AprilTags作为机器人跟随标记,如图6所示。AprilTags由黑白相间的、类似于二维码的方块组成,是由密歇根州大学的April实验室开发的一个免费开源的视觉定位系统,被广泛应用于机器人、无人机等定位系统中。
图6 AprilTags跟随标记图 Fig.6 The following mark of AprilTags
主控制器根据获取到的目标三维坐标信息,调用差速算法,驱动电机运动,使机器人跟随目标行走。机器人速度由目标的X轴坐标和Z轴坐标确定。
VL=KC|(|Z|-Z0)-(X-X0)|
(1)
VR=KC|(|Z|-Z0)+(X-X0)|
(2)
式中:VL为左轮速度标量;VR为右轮速度标量;KC为速度系数;Z0为Z轴跟随阈值,决定了跟随距离;X0为X轴偏移量。
KC、Z0和X0需要根据调试效果确定。本文经过调试,最终确定了KC为38、Z0为7、X0为0时,跟随效果最佳。
获取到左轮和右轮速度标量之后,将式中VL和VR映射到0~255,作为PWM值驱动电机运动。左轮和右轮速度标量值与坐标对应关系如图7所示。
图7 左、右轮速度标量与坐标对应关系图 Fig.7 Speed scalars of left and right wheels and corresponding coordinate value
通过调试,最终验证了系统的整体功能。自主跟随机器人可在2种运行模式下稳定工作,与上位机的无线WiFi通信稳定。在遥控模式下,对机器人的控制稳定,方向灵敏,速度可调;在自主跟随模式下,对标记的识别率较高,能够稳定跟随标记运动,满足预期要求。
本文采用AprilTags作为跟随标记,利用OpenMv机器视觉传感器对标记进行识别定位,调用差速跟随算法驱动电机运动,使机器人跟随标记行走。开发手机端上位机,并通过WiFi向机器人发送控制命令,选择运行模式。使用无线射频模块传输遥控装置的手动遥控命令,实现双模控制。搭建了1台系统模型机,对系统功能进行了验证。验证结果表明,系统无线通信稳定,实现了机器人对特定目标的自主跟随和手动遥控跟随,满足预期要求。
参考文献:
[1] 蒋建东,张钧,李聪聪,等.履带式移动机器人自主跟随算法研究[J].浙江工业大学学报,2017(4):355-360.
[2] 彭远哲.自助跟随平衡车的电子控制器设计与实现[J].计算机测量与控制,2017,25(4):96-99.
[3] 栾禄祥.室内移动机器人机器视觉定位系统的设计[J].自动化仪表,2017,38(2):49-52.
[4] 汪小旵,鲁伟,陈满,等.基于改进纯追踪模型的温室采摘运输自动跟随系统[J].农业机械学报,2016,47(12):8-13.
[5] 陈璐寒,张鹏,宋成.一种智能跟随机器人[J].通信世界,2016(21):263-265.
[6] 王欣,徐智,陶凤,等.基于超声波测距的跟随小车设计[J].电脑知识与技术,2016,12(17):246-247.
[7] 徐文浩,罗冠清,陈亚文,等.智能搬运机器人的研究与设计[J].科技广场,2016(4):170-173.
[8] 谭晓敏,韦雪梅,丰彬,等.基于DSP的运动人体小车跟随系统[J].广西大学学报(自然科学版),2015,40(6):1517-1525.
[9] 刘子龙,丁玉静,江艳霞.四轮移动机器人跟随控制[J].中南大学学报(自然科学版),2011,42(5):1348-1353.
[10]张雁宁.基于STM32和pixy CMUcam5视觉传感器的双控制模式全向车的设计[J].电子制作,2016(16):8-11.
[11]WANG J,OLSON E.AprilTag 2:Efficient and robust fiducial detection[C]//IEEE/RSJ International Conference on Intelligent Robot & Systems,IEEE,2016:4193-4198.
[12]杨勇,梁建宏,张代兵.一种基于视觉的小型无人机室内编队飞行系统设计[J].机器人技术与应用,2017(2):45-48.