王 皓 胡乃文 李昆泰 杨家武* 张龙一
(东北林业大学 机电工程学院,黑龙江 哈尔滨150040)
随着机器人技术的发展及在各领域内的广泛应用,国内外对于消杀炮机器人都进行了一定的设计与研究:国外的消杀炮机器人主要研究对室内环境小面积的异形表面的消杀效果,以新加坡南洋理工大学开发的半自动机器人XDBOT 为例,该系统使用光检测和测距传感器和高清摄像头,使用六轴机械臂控制头部喷雾设备的方向,其喷头不同于传统的压力喷嘴,而是使用带静电的喷嘴来确保消毒剂在隐藏表面的后面和上方更广泛和进一步地传播;国内在这方面的研究方法主要侧重于对室外环境消杀的覆盖性及实用性,多使用两轴云台,配用不同的移动平台,通过红外传感器等进行循迹和检测,通过半自动的方式进行遥控,可减轻消杀工作人员的负担。各种不同的消杀炮机器人投入消杀工作的实际应用中,是实现消杀工作便捷化、自动化的有效方案之一,具有一定的研究价值。
在消杀机器人的设计中,消杀系统的设计十分的重要,它直接影响着消杀工作的效率。基于STM32 单片机实现对消杀炮机器人整体消杀系统的控制,易于实现,可靠性高。
图1 消杀炮系统结构图
智能消杀炮系统采用STM32F103C8T6 芯片作为控制器。其控制方式分为两种:遥控与自动循迹。
STM32F103C8T6 是一款基于ARM Cortex-M 内核STM32系列的32 位的微控制器,程序存储器容量是64KB,需要电压2V~3.6V,工作温度为-40℃~85℃。该芯片工作频率为72MHz,内置高速存储器,丰富的增强I/O 端口和联接到两条APB 总线的外设,其封装体积小,价格与同类芯片相比较低,与8 位单片机相比性能更优,有着高性能、低成本、低功耗的特点[1]。
以STM32F103C8T6 为核心,设计出智能消杀炮系统。如图1 所示,该系统集避障模块、电机驱动模块、循迹模块、云台驱动模块等硬件装置于一体,通过软件控制实现对于消杀炮的控制。
履带用RoboMaster M3508 减速直流电机进行底盘的驱动,云台的Pitch 轴与Yaw 轴均用RoboMaster GM6020 直流电机。其电机具有扭矩大、电机和驱动器一体化设计、结构紧凑、集成度高的特点。
该电机可通过CAN 总线来获取转子位置、转子速度、电机温度等信息,从而对消杀炮机器人进行控制。用SN65HVD232DR 作为CAN 芯片进行使用[2],如图2 所示。
图2 VD232 电路
遥控部分采用RoboMaster DR16 接收机对消杀炮进行遥控,控制逻辑电路部分如图3 所示。
图3 DBUS 接收电路
消杀控制模块采用继电器模块进行控制,通过MCU 进行通断控制。在输入部分DC+与DC- 分别接电源正负极,IN 引脚通过高低电平控制继电器吸合;输出部分NO、NC 分别为继电器常开、常闭接口,COM为继电器公用接口。基于继电器的基本原理可以实现对消杀炮的喷雾控制。
超声波模块采用的是HC-SR04 测距模块,其测距的范围在2cm 到4m 之间,消杀炮会在前端设置5~6 个超声波测距模块,当有物体或人靠近小于1m 时就会停止进行等待并进行报警,当检测到物体移走或者人离开后,将继续进行消杀工作,由STM32 处理器根据设定的程序调整超声波测量角度,测量小车与障碍物的距离,从而实现避障功能。
图4 HC-SR04 测距模块
大致程序流程如下所示:
首先,与TRIG 相连的I/O 输出一个不少于10us 高电平触发测距;其次,模块自动向某一方向发射8 个40khz 的方波; 发射的同时,打开程序中所用的定时器并检测与ECHO 相连的I/O 口电位,当有信号返回时,ECHO 输出高电平,此时关闭定时器,读取定时器的计时时间即为超声波从发出信号到在空中传播,再到接收到返回信号的总时间,该程序中会采取连续测量5次求平均值的方法来减小测量误差[3]。
由于消杀炮体积相对于普通小车过大,因此大多数的使用时间会在遥控上,但也不妨一些特殊情况:当消杀炮需要再固定地点多次、来回的进行消杀工作时,我们可以采取自动循迹的方式进行工作。循迹,就是循线,其是通过一些特定的传感器来探测地面色调迥异的两种色彩从而获得引导线位置,修正机器人运动路径的一种技术。
自动循迹工作分为两部分:红外循迹和摄像头辅助识别。
2.5.1 红外循迹
红外循迹是可以实现消杀炮在白底黑线的场地上行驶,通过AD 采样来获得红外对管反馈来的电压信息,再由MCU 转化为二值信息,然后通过每个管子反馈回来的信息来判断消杀炮所处的位置并与之调节方向进行循线,其缺点就是容易受到光线的影响,红外对管可能会很难进行颜色的区分,这使其受到一定的限制[4]。
2.5.2 摄像头辅助识别
摄像头辅助识别是基于红外循迹的情况下进行的,其经过摄像头收集到的图像进行处理,我们用OpenCV 和高像素摄像头来完成,其功能强大,图传稳定,会根据接受到的图像智能识别来大致确定消杀炮所处的位置与方向,之后进行处理与调整[5]。对于在室内,红外循迹是足够的,如果在室外光线较强的情况下,可以使摄像头对路面、墙壁、人物、花草等元素进行识别,并判断消杀炮需要如何进行处理。这个步骤是漫长的,需要进行调试与学习。
遥控器和STM32 之间采用DBUS 协议进行通讯。DBUS 通讯协议和串口类似,DBUS 的传输速率为100k bit/s,数据长度为8 位,奇偶校验位为偶校验,结束位1 位。DMA 全称为Direct Memory Access(直接存储器访问),当需要将外部设备发来的数据存储在存储器中时,如果不使用DMA 方式则首先需要将外部设备数据先读入CPU 中,再由CPU 将数据存储到存储器中,如果数据量很大的话,那么将会占用大量的CPU 时间,而通过使用DMA 控制器直接将外部设备数据送入存储器,不需要占用CPU。
在消杀炮上采用串口加DMA 的通讯方式来实现DBUS 接收机的信号接收,DMA 是在使用串口进行通讯时常用的一个功能,使用该功能能够完成串口和内存之间直接的数据传送,而不需要CPU 进行控制,从而节约CPU 的处理时间。但需要注意的是DBUS 使用的电平标准和串口是相反的,在DBUS 协议中高电平表示0,低电平表示1,需要在接收电路上添加一个反相器。
图5 反相器电路
由于设备上电机用的比较多,因此采用汽车上的CAN 通讯方式,将多个电机挂载到同一CAN 总线上,便于控制。CAN 是控制器域网(Controller Area Network, CAN)的简称,是由研发和生产汽车电子产品著称的德国BOACH 公司开发,并最终成为国际标准(ISO11898)。CAN 总线由CAN_H 和CAN_L 两根线构成,各个设备一起挂载在总线上。消杀炮采用的电机均支持CAN 通讯方式[6]。
CAN 的ID 分为标准ID 和拓展ID 两类,标准ID 长度为11位。如果设备过多,标准ID 不够用的情况下,可以使用拓展ID,拓展ID 的长度有29 位。每一个挂载在CAN 总线上的CAN 都有一个自己独属的ID,每当一个设备发送一帧数据时,总线其它设备会检查这个ID 是否是自己需要接收数据的对象,如果是则会接收本帧数据,如果不是则会忽略。
对于消杀炮的云台控制,我们通过两个RM6020 大扭矩电机来实现控制Pitch 和Yaw两个空间自由度,从而对设定的精准位置进行控制,将遥控器的信号输出给期望角度,在STM32单片机内进行PID 闭环精准控制来实现对两个自由度的角度控制,从而进行对目标的消杀。
对于消杀炮的底盘控制,我们采用两种方案,一种是麦克纳姆轮四轮控制,另一种是履带控制。
3.4.1 麦克纳姆轮四轮控制
麦克纳姆轮是一种可以进行全方位任意移动的轮子。它由轮毂和围绕轮毂的辊子组合而成,同时麦克纳姆轮的辊子轴线与轮毂轴线成夹角。在轮毂的轮缘上斜向分布着许多小轮子,叫辊子,因此轮子可以横向滑移。辊子又是一种没有动力的小滚子,小滚子的母线十分特殊,当轮子绕着固定的轮心轴转动得时候,各个小滚子的包络线会为圆柱面,所以该轮能够连续地向前滚动。由四个这种轮加以组合,便可使设备实现任意方位移动的功能[7]。
图6 麦克纳姆轮
麦克纳姆轮有着互为镜像关系的AB 轮, 如果A 轮可以向斜向左前方、右后方运动,那么B 轮就会向斜向右前方以及左后方移动。根据物理知识可知,速度是可以正交分解的,那么A轮可以分解成轴向向左,以及垂直轴向向前的速度分量;或者轴向向右,以及垂直轴向向后的速度分量。这样下来,B 轮的速度分量和A 轮便会成为镜像关系。
当四个轮子都向前方转动的时候,AB 轮可以相互抵消掉轴向的速度,这样就只剩下向前的速度了,底盘就可以前进不会跑偏,后退也是同样的道理。如果当A 轮正转,而B 轮反转的时候,向前以及向后的速度便会抵消,只会剩下向左的速度,这样底盘便会向左平移;相反,如果A 轮反转,B 轮进行正转,那么底盘便会向右平移;底盘左侧的车轮正转,右侧的车轮反转,就可以实现底盘向右的旋转方式,反之,底盘就能够向左旋转。
3.4.2 履带控制
履带控制比起麦克纳姆轮四轮控制来说相对更加简单,其采用的是差速转向机构,其转向时保持直线行驶速度不变的点在车辆的几何中心,在转向时只需要使左右两侧的驱动电机驱动履带的速度不一样即可。
图7 MID-001 中型履带机器人底盘
对于履带控制来说,其难点在于要使同一侧的电机保持转速一致而且在消杀炮直行的过程中要保证两侧电机驱动履带的速度是一样的。可以通过STM32 单片机进行PID 闭环精准控制来解决其难点。
本论文使用STM32 为基础,实现智能消杀炮系统的搭建。通过CAN 通讯方式对消杀炮机器人的消杀和基本运动功能进行控制,同时,针对不同的底盘系统提出了不同的运动控制方案。通过HC-SR04 测距模块实现超声波避障的功能,通过使用红外和摄像头辅助识别实现循迹功能,即可对其消杀工作进行轨迹的预规划,实现机器人在不同环境下的自动运行,减轻了消杀人员的工作负担,降低了工作强度。本文也有需要改进的地方,例如通过更先进的5G 技术等作为通讯手段,结合物联网的实现方式,对机器人进行更加精确的室内定位和控制,通过物联网的方式实现远程网络控制是一个更好的发展方向。