余凡, 王庭有,刘晓光, 周勇, 蒋晓明, 张浩
(1.昆明理工大学机电工程学院,云南昆明 650500;2.广东省科学院智能制造研究所,广东省现代控制技术重点实验室,广东广州 510070)
近年来,随着建筑行业的快速发展,需要定期对特定区域高楼外墙进行安全侦察,以此来排除潜在的安全隐患。目前这些高危工作大部分都是靠人工完成,人工作业劳动强度大,工作危险性高。人们希望由爬壁机器人代替人去完成这些工作,以减少工人工作的危险性,因此负压爬壁机器人得以广泛应用和发展。负压爬壁机器人(Negative Pressure Wall Climbing Robot,NPWCR)采用离心风机转动,使负压腔内产生负压环境,利用内外压力差使它吸附在墙壁上以进行工作。此外,爬壁机器人在复杂高危环境下工作时可能存在控制线缆缠绕牵绊等问题,严重影响负压爬壁机器人工作的安全性,因此安全可靠的无线控制就显得尤为重要。
为解决上述问题,本文作者设计一款无缆负压爬壁机器人,以代替人工对高楼进行安全侦测。负压爬壁机器人的控制系统是以微控制器STM32F103RCT6 作为核心处理器,连接其他电源、驱动、通信、摄像等功能模块,与上位机(工业便携式计算机)实现通信,形成一个较为完整的控制系统。通过上位机发送指令到核心处理器,从而驱动爬壁机器人执行机构进行相应动作,摄像模块进行图像获取及处理,将视频传输到上位机,对工作区域实时监控。
负压爬壁机器人的控制系统模块主要包括:主控模块、电源模块、无线通信模块、电机驱动模块、风机驱动模块、摄像头模块等。主控模块是控制系统的核心,用于处理指令,控制其他辅助模块工作。电源模块为整个控制系统提供工作电压,保证各个模块的正常供电。电机驱动模块、风机驱动模块、摄像头模块等是执行机构,通过主控模块发送指令控制其进行工作。无线通信模块用于上位机与机器人之间无线通信。控制系统框图如图1所示。
图1 控制系统框图
负压爬壁机器人采用STM32F103RCT6单片机作为控制系统的核心处理器,它是一种嵌入式微控制器的集成电路。主控模块电路原理如图2所示。
图2 主控模块电路原理
主控芯片工作电压为3.3 V,时钟电路从PD0和PD1两个端口接入,外部接8 MHz时钟振荡器,时钟振荡电路精确地确定振荡频率,它与主芯片内部的振荡电路配合,共同组成石英晶体谐振器,从而产生主板上各个系统所必需的时钟信号。PA13和PA14为程序下载端口,RST为复位引脚。PB0、PB1、PB6、PB7是 PWM信号输出引脚,用于对驱动电机转速进行控制。PA0、PA1、PA8也是PWM信号输出引脚,用于控制云台舵机转动角度控制和离心风机转速。PA2、PA3连接主控芯片和WiFi通信模块,用于远程无线通信。
电源模块为整个控制系统提供相应的工作电压。由于轮组驱动电机和风机工作电压都是24 V,选用24 V锂电给机器人供电,并通过设计基于LM2596和ASM1117的降压电路为控制系统提供所需的5 V和3.3 V电压。电压转换电路如图3 所示。
图3 电源模块电压转换电路
无线通信模块的作用是实现负压爬壁机器人与上位机之间的信息交互。在控制系统中选用ESP-12E WiFi模块作为无线网络发射端。模块的21号引脚RXD0、22号引脚TXD0的两个接口用于数据通信;RXD接收数据、TXD发送数据,并分别与STM32引脚的RX2和TX2串口相连,用于数据通信。WiFi最小系统原理如图4所示。
图4 WiFi最小系统原理
电机驱动模块用来驱动轮组电机转动,带动负压爬壁机器人完成前进、后退、转弯等动作。电机驱动芯片选用BTN7971B。STM32芯片发送PWM信号到三态输出的八路缓冲器DM74LS244WM中,根据控制信号的状态,将总线上的地址代码暂存起来,并输出到电机驱动芯片BTN7971B,驱动电机运转。电机驱动模块电路原理如图5所示,其中P9、P10为电机接口。
图5 电机驱动模块电路原理
负压爬壁机器人的负载能力通过调节离心风机转速来改变。风机电机选用无刷直流电机,通过脉冲宽度调制(PWM)调控其转速,根据工作环境不同,调节风机转速,从而改变负压腔内外压力差。风机接入24 V工作电压,通过定时器从主控芯片PA8口输出PWM脉冲波,调节脉冲宽度大小以控制离心风扇转速。占空比越大,离心风扇转动得越快,产生的负压就越大,负压爬壁机器人负载能力就越大。
摄像模块首先通过镜头采集图像,再通过内部处理器处理图像信息,信息处理好后通过STM32将视频传输到上位机,以便进行远距离监控侦察。摄像头模块主要包含摄像头、图像传感器SENSOR、数字图像处理器DSP、同步信号发生器、A/D 和D/A转换电路和电源电路。摄像头模块工作电压为5 V,通过控制主板为它供电。控制端通过无线局域网连接摄像头获取监控信息,从而实现无线远程侦察监控。控制主板PA0和PA1口输出一定脉冲宽度的PWM波,用于控制摄像头舵机转动。通过调节脉冲宽度调节内部舵机的转动角度,从而实时调节摄像头的拍摄角度,来获取周围的环境信息。
负压爬壁机器人控制系统程序设计采用模块化设计思想,首先对各个模块相关的应用程序进行编写,当需要使用这些程序模块时,直接在主程序调用各模块的程序即可。
主程序主要完成系统中的各部分的初始化工作和各模块子程序的调用以及时序逻辑控制工作。系统上电后,进行时钟函数、中断分组、串口、系统延时函数等各模块函数的初始化。上位机与主控制板进行连接,当上位机与主控制板连接成功时,LDE灯呈现常亮状态,连接失败LDE灯呈现闪烁状态。离心风扇转动使负压腔内外产生压力差,机器人在内外压差作用下吸附在墙壁上。此时机器人等待控制端给予控制指令,WiFi信号连接成功后,摄像头开始工作,进行图像处理,并将数据传输给控制端。当STM32芯片接收到上位机发送的控制指令时,控制系统启动相应控制程序,使机器人完成相应工作。系统程序流程如图6所示。
图6 主程序流程
结合硬件电路设计,通过程序编写在上位机和主控制板之间形成协议通信,实现上位机与爬壁机器人之间无线远距离通信。将无线通信模块与核心处理器连接,进行串口初始化,系统进入配置模式,设置接收数据(RX2)和发送数据(TX2)的引脚。通过定时器定时发送数据,定时器时间达到后,执行定时器溢出中断程序并完成数据传输。通信模块进入RX模式,便可以接收数据。首先判断数据是否有新的更新;然后,开始接收数据,读取外部状态储存器的值并清除MAX_RT中断标志,当数据接收完成后将数据放入串口缓存器等待发送;当通信模块进入TX模式时,便可以发送指令,数据写入到TX_BUT(待发送数据地址)中,系统自动读取状态储存器的值,读取完成后清除TX_DX中断标志;达到最大发射次数后,清除TX_FIFO寄存器完成发送,整个收发过程完成。后面不断重复上述步骤,接收和发送新的数据,从而实现上位机和主控制板之间的数据通信。无线通信数据收发流程如图7所示。
图7 无线通信数据收发流程
电机和离心风机的驱动控制程序主要是对电机和离心风机进行PWM调速控制,通过控制PWM 脉冲占空比来调节电机运转速度。对于驱动电机运动控制,首先进行电机端口初始化,定义引脚输出状态;其次,运用定时器编写程序,输出一个PWM脉冲波形用于对左右驱动电机转速进行控制,在运动控制中定义L_Speed为电机左轮速度、R_Speed为电机右轮速度;当小车需要前进或后退时,左右两轮转动方向和转速相同,当小车需要转弯时,左右电机转向相同转速不同使用差速转弯。
对于离心风机转速控制,当系统上电后,风机模块初始化,系统进入风机调速程序,对风机转速是否达到程序设定转速进行判断。当转速不足时增加转速,达到设定转速后,再执行后面的操作。风机转速通过调节PWM脉冲宽度进行控制,风机调速控制程序利用高级定时器1编写,通过PA8口输出20 kHz的PWM矩形波,输出的脉冲占空比越大,风机转速就越大。当负压爬壁机器人工作时,通过控制端可以手动调节PA8口输出的PWM脉冲占空比,从而控制风机转速,进而增大或者减小负压腔内的负压。风机初始化程序转速设定为50%,在它工作过程中,可以根据工作环境,自行调节风机转速,以适应不同的工作环境。PWM调速控制流程如图8所示。
图8 PWM调速控制流程
上位机软件主要分为三大板块:小车的运动控制部分、风机的调速控制部分、摄像头的视频监控部分。上位机软件界面如图9所示。
图9 上位机软件界面
上位机用于来操控爬壁机器人进行运动和控制执行机构进行相应工作。打开负压爬壁机器人开关电源,运行上位机软件,连接无线网络,当无线网络连接成功后,上位机便可以向核心处理器发送控制信号,远程无线操控负压爬壁机器人运动,同时可通过摄像头获取视频信息,将视频经过处理后传输到上位机显示,以对周围环境进行实时监控。当需要手动调节风机转速时,可以通过上位机风机调速按钮向主控芯片发送控制信号,进而调节风机的转速。可通过控制上下舵机的转动角度,来改变摄像头的位置,扩大摄像头的视觉监控范围,以便于从上位机获得更多环境信息。
负压爬壁机器人结构框架采用尼龙塑料加工,整体更加轻盈,机器人质量为1.6 kg、尺寸为240 mm×240 mm×96 mm,机器人运动机构采用履带传动式,运动更加平稳。对其各功能模块进行测试,首先检查各个模块接线是否完好,开启电源开关,将爬壁机器人放置在墙壁上,通过上位机操控爬壁机器人运动,观察其运动情况、风机调速、视频传输、云台舵机等是否正常工作,并根据实际工作状况修改程序以对机器人进行调整,直至其所有功能达到预期效果。在系统各个功能模块调试完成后,进行整体实验测试。
对负压爬壁机器人的最大运行速度和最小转弯半径进行测试,结果如表1所示。
表1 负压爬壁机器人速度测试结果
由表1可知:负压爬壁机器人直线运动时,最大运行速度为0.11 m/s;原地转弯运动时,最小转弯半径为0.17 m,最大运行速度为0.09 m/s。
利用卷尺和量角器对负压爬壁机器人进行转向测量,在相同转动角度下,测试不同差速单位脉宽时机器人的转弯状况,结果如表2所示。
表2 负压爬壁机器人转向测试结果
由表2可知:负压爬壁机器人在最小差速单位时运行速度为0.04 m/s、在最大差速单位时运行速度为0.08 m/s,爬壁机器人转向速度可调,转弯灵活。
为测试所设计的负压爬壁机器人在壁面的运动状况,在生活中3种常见的壁面上进行测试,分别为玻璃壁面、粉刷墙面、瓷砖壁面。
经过实验测试,负压爬壁机器人在玻璃壁面、白色粉刷墙面、瓷砖壁面(宽度约4 mm,深度约3 mm)三种壁面均可以稳定吸附,并且运动灵活。负压爬壁机器人整体具有稳定的吸附性,在测试过程中控制系统一切正常,可以完成无线远距离侦察监控工作。壁面测试如图10—图12所示。
图10 玻璃壁面 图11 粉刷墙面 图12 瓷砖壁面
利用STM32核心控制器设计了一套负压爬壁机器人控制系统,详细介绍了该控制系统的硬件与软件设计过程,最后对负压爬壁机器人整体进行了系统测试,验证了所设计的爬壁机器人控制系统的可行性。该控制系统可以驱动负压爬壁机器人在不同壁面灵活移动,具有良好的稳定性。通过各种功能模块共同作用,实现了负压爬壁机器人的连续运动、无线通信、视频实时监控等功能,为开发多功能负压爬壁机器人提供了参考。