文献标识码:A
DOI:10.16157/j.issn.0258-7998.170108
中文引用格式:张建中,郝允梁,刘海洋,等. 基于STM32单片机的智能消防机器人的设计与应用[J].电子技术应用,2017,
43(11):120-123.
英文引用格式:Zhang Jianzhong,Hao Yunliang,Liu Haiyang,et al. Design and application of intelligent fire-fighting robot based on STM32[J].Application of Electronic Technique,2017,43(11):120-123.
0 引言
随着工业4.0的时代到来,各国工业又将迎来飞速发展的时代,消防机器人被《机器人产业发展规划(2016-2020)》列为十大标志性产品。由于机器人本身的智能性和灵活性,越来越多地被用到实际生活当中[1]。特别是在面对无情的火灾时,消防官兵无法预测火灾事故现场情况,面对易燃易爆、易塌陷、化学腐蚀、有毒气体等不明情况时,贸然进入火灾现场,会很容易给消防官兵的人身安全带来无谓的伤亡[2]。目前,国际上尤其以美国和日本为主,先后研制出具有侦察功能的消防机器人Pandor移动机器人和Guardrobo D1等5种消防机器人[3],国内智能消防机器人的研制更是刚刚起步。然而,现有的消防机器人虽然在硬件和软件上的开发日趋完善,但还是存在一些缺点,如功能化单一、自主智能化差。
迫于实际应用的需求,本文设计了一种集灭火、冷却、行走、侦察监测、爬坡跨障、数据采集、图像传输等多功能于一体的智能消防机器人[4]。
1 系统概述
本文根据实际应用的要求,设计出一种车体灵巧、操作便捷、人机互动性优越的智能消防机器人。机器人采用STM32F407芯片作为主芯片以满足多功能任务处理。机器人外接温度、气体、水压和超声波等传感器以及陀螺仪,用来采集火场周围及车体姿态的相关数据,控制传输采用最新的433 MHz数字通信模块[5]。在车体内部安装前、后、高清、热成像4路摄像机进行视频显示切换和传输,采用7寸分辨率1080×1024高清高亮HDMI接口显示,无线图传使用了高清(HDMI)图传模块,使4路摄像在后台遥控器上清晰显示并能实时录制。车体设计自喷淋系统,可以在工作时自行降温,保护车体内部零件不受损坏。
消防机器人由车体、人机互动界面、感知系统、运动系统、传感器检测系统和上、下位通信系统组成[6],其工作原理如图1所示。操作人员通过人机互动界面来根据火灾现场情况做出相应的操作。
2 机械结构设计
根据实际应用的需求,消防机器人的车体结构设计考虑既应该满足在平地上行驶,又可以在积水、斜坡、楼梯等复杂环境下安全行驶, 消防机器人还应结合一些特殊的功能:能够在积水、洼区中正常行驶,能够爬坡跨障,可以进行原地360°旋转等。综合以上所有技术要求,本设计车体结构优选履带式结构。结构如图2所示。
履带式结构与地面接触面大,附着力强,牵引力大,可以在泥泞、积水中行走,具有良好的通过性。整个车体主要构架是采用铝合金铸造而成,车体轮系部分由导向轮、驱动轮、托链轮、支重轮四个部分构成。精密行星减速无刷电机内搭载驱动轮上,设计简单紧凑,方便灵活,载动力强;通过运用导向轮可以根据地面摩擦系数不同来调节履带的松紧度,以适应不同的环境使用;运用支重轮可以支撑整个车体及水带、水炮的重量,减振装置的设计减小了车体的颠簸,使车体运行更加平稳,支重轮跟着履带转动而转动,从而减少了两者之间的摩擦。根据车体结构设计了专门的消防水炮,即在车体底部中间安装水管,在车体后下部接入水管,通过车前头安装的水炮喷射灭火剂,其最大特点是在工作时重心低,喷水时车身稳定。
3控制系统硬件设计
本产品的控制系统硬件主要由上位机和下位机两部分组成,而上位机与下位机都使用以STM32F407芯片为核心的控制板来实现功能。
上位机读取霍尔手柄的控制信号及操作台各功能控制信号,经A/D转换后通过数传模块传送到下位机的主控制器中,其中操作手柄的读取数据为坐标系中操作手柄位置的实时坐标。
为在下位机中实现车体控制功能,首先要分析运动逻辑:当左右电机以同转速正转时,车向前运动;当左右电机以不同转速正转时,车向左转或右转;当左右电机以同转速反转时,车向后运动;当左右电机以不同转速反转时,向左后或向右后倒车。如图3所示,现设定操作柄右上方为第一象限,手柄推到最远位置在第一象限运动轨迹为一段圆弧,设其半径为a(映射为电机电压最大值),手柄实际位移为b(映射为实际电机电压),单片机读取数值为推杆顶端坐标(x,y)的数值。根据式(1)~式(3)先后算出b、m、α的值。
式中,m表示左右电机最大电压值,α表示操作柄在参考系中操作方向向量的角度。
根据以上计算所得参数,电机控制量计算公式如表1所示。
除上述动作之外,还可以令两电机转速相同,转向相反以实现原地旋转功能。
控制台操作面板除控制车体移动功能外还包括水炮上仰、下俯、左右摆动、切换水流的喷射方式(直流或喷雾)、观察云台上仰、下俯、蜂鸣器开关、刹车开关、照明开关等。
下位机主要由控制板、传感器、图传模块、电机驱动、电源电压检测模块等组成。其主要任务是:读取上位机操作信号,计算出控制量并输出PWM信号到电机驱动器,同时控制水炮、云台等设备正常工作;读取各个传感器数值并将其传送回上位机。传感器能够测得水炮水压、车体倾角、前后障碍距离、车体温度等信息,电压模块能实时检测电池电量,上述数据经串口读入下位机控制板中,再由数传模块发送至上位机通过显示屏显示。车体具有紧急刹车能力,同时为了防止操作水炮和云台时对机械系统造成损坏,为云台加入机械限位,水炮则加入了左右限位,同时设定了自摆功能,开启时水炮将在限定范围内自动左右摆动。
4 控制系统软件设计
4.1 整机设计流程
对控制板的编程在Keil环境下,使用C语言编写控制程序,由于STM32芯片集成了单周期DSP指令和浮点单元(Floating Point Unit,FPU),提升了计算能力,因此在实际计算时能够大大节约时间,同时它还支持程序执行和数据传输并行处理,数据传输速率非常快,完全符合设计要求。
上位机控制程序流程如图4所示。上电后,首先对系统初始化,通信模块初始化,然后开始主循环,当使用者在操作台进行操纵时,控制信号将经过A/D转换后入单片机缓存,然后发送到数传模块并传输至下位机;同时单片机从数传模块中读取由下位机检测得到的传感器数据并发送给数字显示屏。
下位机控制系统程序流程如图5所示,同样先进行初始化,然后依次读取传感器内的数据并将其放置在寄存器中,每隔一段时间将寄存器内数据通过无线数传发送至上位机以供显示。当接收到上位机控制信号后,首先计算出左右电机的实际控制量,并转换成对应的PWM控制信号,然后通过串口将各个部分传送出去。
4.2 图像处理的白化算法
机器人图像处理方法有很多种,本文采用“白化算法”来处理机器人图像成像所带来的问题。
消防机器人在火灾救险时,会遇到环境照明强度、物体反射、拍摄相机等不确定因素的影响,给系统采集图像清晰度上带来极大的干扰。为了消除外界不确定因素干扰,本文对图像进行白化处理,将图像的像素值转化成零均值和单位方差。首先计算原始灰度图像P的像素平均值μ和方差值δ2:
本文需要的是彩色图像,需要分别在3个通道计算μ和δ,然后再根据式(6)分别进行像素转化。在搭建的硬件平台上实现该白化算法,利用STM32进行快速计算与滤波,通过图像存储器截取画面,最终运用MATLAB观察图像效果。
5 实际试用与仿真结果
智能消防机器人已经研制成功,其实物图如图6所示。对机器人进行功能实际试用与分析:
(1)速度检测:机器人在直行道路上行走,速度达到3 km/h;最大爬坡角为35°,速度能达到0.9 km/h;机器人在直线行走大约200 m会有一些小的方向误差偏移,但是满足实际应用的要求。
(2)图像仿真、气体检测:图7根据MATLAB仿真火灾现场画面,屏幕显示图像明显波纹、雪花减少,达到设计要求;进入火灾现场,能够检测CO、H2S、CH4、NH3、Cl25种常见危险气体的浓度及变化趋势,并无线传回控到制台上的显示屏,如图8所示。
(3)水炮检测:给机器人安装上水带,把水压调到0.8 MPa,水能喷射到70 m的位置,同时自喷淋系统也将打开,达到了降温效果。
6 结论
本文基于STM32F407芯片设计了一种第二代智能消防机器人,经试验测试完全达到设计要求,实用性较强,成本较低,便于以后升级系统。该机器人的成功研制能够有效代替消防官兵冲在第一线进行灭火工作。目前,机器人运行高效,稳定性高,可以大面积在我国进行推广使用。
参考文献
[1] ENGIN M.Embedded and real time system design:A case study fire fighting robot[C].Mediterranean Conference on Embedded Computing,2016.
[2] 胡传平.消防机器人的开发与应用[J].机器人技术与应用,2003(5):37-41.
[3] 张晋.消防机器人结构设计及其控制系统研究[D].天津:河北工业大学,2015.
[4] 徐正飞,许春权,顿向明.ZXPJ01型消防机器人的研制[J].机器人,2002,24(2):159-164.
[5] 宫晨.多传感器智能机器人设计[D].杭州:浙江大学,2008.
[6] 张晓平,阮晓钢,肖尧,等.两轮机器人具有内发动机机制的感知运动系统的建立[J].Acta Automatica Sinica,2016,42(8):1175-1184.
作者信息:
张建中1,郝允梁1,刘海洋1,李小俊2,徐运祥2
(1.山东科技大学 电气与自动化工程学院,山东 青岛266590;2.山东科技大学 机械电子工程学院,山东 青岛266590)