杨延涛,李飞龙,王虎
(安徽理工大学 电气与信息工程学院,安徽 淮南 232001)
随着我国经济社会的迅猛发展和现代化程度的不断提高,各种各样的机器人逐步进入并且改变着人们的生活。近年来,消防机器人也被应用到人们的生产和生活中,越来越多地出现在各种火灾救援现场。消防机器人在灭火过程中发挥着十分重要的作用,可以作为消防人员的重要辅助手段,甚至可以完全代替消防人员进入有毒、缺氧、易爆等恶劣环境中进行灭火和救援,在一定程度上保障了消防人员在火灾救援过程中的生命安全[1],因此,对于自主消防机器人的研究具有十分重要的意义。
目前的室内消防,主要是以固定的消防喷头配合在室内安装的各种传感器为主,这种方法成本较低、便于实现,但也存在消防喷头喷水面积较大且难以控制,火场火源的定位准确度不高,无法对火场烟气进行探测等一系列问题[2]。其他的室内消防设备,如灭火器、室内消火栓等设备自主化和智能化程度较低,完全依靠人工进行操作,存在安全隐患,并且无法进行火灾实时监测,缺点较多。
本文针对目前室内消防存在的问题,设计开发了一款以MiniPC和STM32F103作为控制系统,结合光照传感器、气敏式烟雾传感器、温度传感器和红外热成像模组等模块的室内自主消防机器人。基于WIFI信道状态信息(CSI),通过建立的指纹库和KNN算法,实时监测室内是否发生火灾,并且CSI数据处理计算机与消防机器人的上位机联网,将火灾发生的位置信息发送给消防机器人;消防机器人通过UWB定位技术和全局(RRT)、局部(A*)路径规划算法实现了自身定位导航和自主移动;根据红外热成像模组拍摄的图像,采用YOLO算法,实现了火焰的快速识别和准确定位;多种传感器可对消防机器人所在的火场环境(如:温度、烟气等)进行探测,并及时反馈给远程客户中心。
该自主消防机器人由火灾位置感知系统、机器人定位系统、消防机器人本体和远程客户中心四部分组成,整个系统结构如图1所示。
图1 机器人系统结构图
火灾位置感知系统由两台配置Intel 5300NIC无线网卡的计算机和路由天线组成,用于收集处理WIFI的信道状态信息(CSI),火灾位置感知系统采用监控模式,对收集到的CSI信号进行处理分析,可得到火灾发生的位置信息。
消防机器人定位系统由室内的无线基站(Anchor)和安装于机器人本体的定位标签(Tag)组成,通过UWB技术的TDOA定位分析可对机器人进行定位。
远程客户中心用于接收机器人发送的火场环境信息(如温度、光照强度、烟气浓度等)。
消防机器人本体包括红外热成像模组、多种传感器、消防水枪、电气开关、电源、水泵驱动模块、UWB模块、DC电机和DC电机驱动模块。控制模块由上位机MiniPC与下位机STM32F103两部分组成,控制模块将该消防机器人协调成一个完整的系统,通过相关算法对模块及功能进行控制实现,机器人本体设计如图2所示。
图2 系统总体设计框图
如上图所示:消防机器人依靠UWB模块对自身进行定位,结合室内地图信息并通过RRT算法规划出合理行驶路径,下位机STM32F103通过L298N模块驱动电机运转,闭环自动控制技术 PID 算法控制消防机器人的运动方向和行驶速度;消防机器人上位机接收到火灾位置感知系统发送的位置信号后,立刻从待机休眠状态中被唤醒,并启动报警装置,发出蜂鸣声;机器人在行驶途中通过超声波传感器不断检测周围障碍物信息,通过A*避障算法实现局部避障,最后到达着火点;消防机器人到达着火点后便停止行进,利用红外热成像模组拍摄的火焰图像,通过YOLO算法的卷积神经网络对火焰图像进行特征提取,从而实现对目标火焰的精准快速定位[3]。锁定火焰之后主控芯片发出指令,通过PID算法控制水枪对火焰准确地喷水。
该自主消防机器人的控制系统由上位机和下位机两部分组成,上位机采用MiniPC,装载Ubuntu16.04系统,配置ROS Kinetic运行环境,主要用于图像处理、路径规划、自主导航等功能。下位机采用嵌入式芯片STM32F103,主要用于传感器数据的接收处理以及对电机、水泵等模块的驱动控制。上位机与下位机之间通过串口数据线相连,实现了数据的传输。
STM32F103芯片作为各功能部件的直接控制核心,具备较高的实时处理速度和处理能力。该芯片以ARM构架的cortex-M3为核心,CPU的频率可达72MHz,供电电压2.0V~3.6V,内部集成了2I C总线、SPI总线、USART接口、USB接口,拥有多个I/O口及大容量的片内FLASH存储器[4],I/O口作为输入可用于读取检测端口和各传感器的数据,作为输出可用于驱动电机和水泵。只需通过编译器对程序进行烧写,就可以实现对整个系统的控制功能,具有接口简单、成本低、功耗低等多重优点,STM32F103芯片的引脚如图3所示。
图3 ST M32F103引脚图
本设计借助于广泛应用的Wi-Fi技术,基于信道状态信息(CSI)对室内火灾位置进行感知,其无源定位算法不需要目标携带相关设备即可实现定位,成本较低且容易实现。该技术的原理是,在离线阶段需要对目标区域内已知位置的样本数据进行采集和预处理,将其位置信息和特征情况作为指纹信息,这些指纹信息构成一个指纹地图,在线定位阶段只需将采集待测点特征值与指纹中的信号特征值进行比对,然后通过数据处理和相关算法即可获得位置信息。
在室内布置两台计算机作为信号的接收端和发送端,该计算机必须配置Intel 5300NIC无线网卡,操作系统为Ubuntu11.04,两台计算机均需安装CSI-tools工具,用于收集WiFi信号。并且配置三个路由天线用于接收信号,一个路由天线用于发送信号,系统工作采用监控模式,发送端工作在2.4GHz频段,以每秒100个数据包的发包频率向接收端发送数据,接收端通过接收天线采集信号,并且由接收端的计算机处理数据。首先通过卡尔曼滤波去噪,然后基于信号的幅度对特征矩阵进行提取,最后将特征矩阵输入至KNN分类器[5],实现火灾位置的感知,系统工作方式如图4所示。感知到火灾位置后,计算机将位置信息发送给消防机器人上位机MiniPC,用于机器人自主规划行驶路径。
图4 CSI 定位系统工作图
本设计选用HC-SR04超声波传感器,可对距离2cm~400cm的障碍物进行非接触式感知和测距,测距精度可达毫米级别。HC-SR04的电路原理如图5所示,该模块共有4个引脚,分别是:供电电源引脚VCC、控制端Trig、接收端Echo和公共接地端GND。该模块采用I/O口触发测距模式,通过Trig引脚发送一个脉冲宽度大于10sμ的高电平,在Echo接收口等待高电平输出,有高电平输出后即可启动主控芯片内的定时器,待该端口电平变低时结束计时,根据所得时间差即可计算机器人与障碍物之间的距离。
图5 超声波传感器电原理图
STM32F103与超声波传感器直接相连,获取到机器人障碍物信息后,STM32通过串口将信息上传给上位机,上位机通过A*避障算法对机器人行驶路径做出调整,并将指令发送给下位机;同时,下位机STM32通过调整电机的转向、转速等实现消防机器人的转向和调速。为提高避障能力,可在消防机器人车体适当位置安装多个超声波传感器。
目前国内外的研究主流是通过视觉传感器对火灾进行检测,红外热像仪被广泛应用于各种火灾检测和火焰识别过程中。红外热像仪拍摄的是物体的红外热辐射分布,对高温物体成像效果较好,具有较好的云雾穿透性能[6],不受光照条件影响,适合在光照较弱,烟气较重的环境下对火灾进行检测。
该消防机器人配置1个红外热成像模组,安装在机器人顶部靠前位置,选用美国FLIR公司生产的Lepton红外热成像模组,实物如图6所示。该红外热成像模组水平视场角为57°,可输出分辨率160 ×120热成像图,对于温度的分辨率可达0.05℃,灵敏度较高。该模块可以将拍摄到的红外图像上传至上位机,上位机采用深度学习的目标识别框架YOLOv3可实现火焰的快速识别定位[7]。
图6 Lept on红外热成像模组实物图
烟雾传感器。本设计采用MQ-2型烟雾传感器,该传感器是一种多气体探测器,可用于烟雾、液化气、丙烷、氢气等气体的检测。MQ-2型烟雾传感器可以将烟雾浓度这种非电信号转换为电信号,当环境中的烟雾浓度增大时,传感器中半导体材料的电导率下降,对应的输出电阻减小、输出电压增大。但是需要将这种模拟信号通过A/D转换电路转化为能被STM32F103识别的数字信号,才可以输出精确的烟雾浓度值。本设计选用ADC0832作为A/D转换电路,MQ-2和ADC0832的电路连接如图7所示,MQ-2的4号引脚和6号引脚输出电压值给ADC0832,经过A/D转换后在输出端DO将数据传送给主控芯片STM32。
图7 烟雾检测模块电原理图
温度传感器。本设计采用DS18B20数字式温度传感器,测温范围可达–55℃~+125℃,满足室内火灾的测温要求。该传感器使用集成芯片,采用单总线技术,降低了其他因素的干扰,因此测量精度高,并且可以直接将温度这种非电信号直接转换为数字信号供主控芯片STM32F103处理,结构简单。DS18B20的电路连接如图8所示,该模块共有3个引脚,分别是:供电电源引脚VCC、公共接地端GND、数字信号输入/输出引脚DQ。输出端2号引脚与下位机STM32F103直接相连,用于传送温度信息。
图8 温度检测模块电原理图
光照传感器。本设计采用GY-30数字光照传感器,GY-30内置ROHM公司原装BH1750FVI芯片,内部集成了光电转换、A/D转换和2I C信号转换等电路的芯片,工作电压3~5V,能检测0~65535Lx的光照强度,有较高的灵敏度。由于GY-30传感器其内部自带16位A/D转换器,所以可以直接连接STM32芯片,并上传检测到的光照数据。GY-30的电路连接如图9所示,该模块共有5个引脚,分别是:供电电源引脚VCC、公共接地端GND、I2C总线时钟引脚SCL、I2C总线数据引脚SDA、I2C地址线引脚ADDR[8],SCL、SDA引脚和STM32F103芯片直接相连,用于传送光照强度信息。
图9 光照检测模块电原理图
烟雾传感器、温度传感器和光照传感器构成消防机器人的多传感器模块,该模块安装在机器人车体正前方,便于对着火点的烟雾浓度、温度和光照情况进行探测。当消防机器人到达着火地点后,即可启动该模块,收集到相关的信息后直接传送给STM32F103,STM32芯片再通过连接的WIFI模块将信息发送给远程客户中心,便于消防人员或室内居民及时了解火灾情况,可避免因有毒有害气体对人体造成的不必要的伤害。
UWB技术又称超宽带技术,是一种新兴的室内定位技术。相较于超声波定位、红外线定位和射频定位等其他定位技术,UWB技术具有更高的精确性,其定位精度可达到厘米级别,非常适合室内静止或移动物体的定位及追踪。
本设计采用Decawave公司的DW1000芯片,该芯片是全球首款完全集成UWB芯片,定位精度可小于10cm,性能优越。消防机器人需要安装DW1000组成的定位标签(Tag),并且在室内机器人活动区域安装若干个DW1000组成的无线定位基站(Anchor),用于检测“Tag”信号并从远处发送,如图10所示。STM32F103与DW1000芯片之间通过SPI接口连接,可以对该定位模块进行配置并通讯[9],从而完成数据的记录、收集和发送。STM32F103把收到的实时位置数据通过以太网发送到上位机进行TDOA定位分析计算,实现了消防机器人的自主定位。
图10 UWB 定位系统图
电机是消防机器人移动的动力来源,由于STM32F103的I/O输出电流不足以驱动电机转动,所以需要电机驱动这种功率放大模块。本设计采用L289N双H桥集成电路作为DC电机的驱动模块,通过7V直流电源供电,能够同时对两个DC电机进行驱动,该驱动芯片输出电流大、驱动能力强、性能优越[10-11],其电路原理图如图11所示。其中,IN1-IN4均连接主控芯片,通过控制输入端口IN1-IN4的信号高低来控制两电机正转、反转和停止,输出端口OUT1和OUT2连接电机1,OUT3和OUT4连接电机2,电机的正转、反转和停止实现了小车的前进、后退、转向和制动。ENA、ENB分别是OUT1、OUT2和OUT3、OUT4的使能端,高电平有效,在ENA和ENB输入PWM(脉冲宽度调制)信号即可实现对电机的调速,从而实现小车行驶速度的改变。
图11 L 298N驱动电路图
该机器人下位机系统程序设计采用Keil μVision5集成开发环境与STC-ISP程序下载工具,对消防机器人的各功能进行编程与调试。
消防机器人系统的工作流程如图12所示。由图可知,消防机器人上位机接收到火灾位置感知系统的计算机发送的位置信号之后,立即启动电机和报警系统,发出蜂鸣声。首先,上位机控制消防机器人根据火灾位置调整大致的运动方向,上位机根据火灾位置信息和室内地图合理规划出行驶路径,电机驱动模块驱动电机转动,消防机器人开始运动。与此同时,下位机STM32开始监控超声波传感器,若超声波传感器检测到消防机器人前方存在障碍物,则消防机器人进入避障子程序,用以躲避障碍物,避障子程序流程如图13所示,PID算法对机器人运动方向和行驶速度进行控制。到达火灾发生位置后,停在安全距离,启动红外热成像模块,通过YOLO算法锁定火焰位置,之后启动水泵,PID算法控制水枪对准火焰进行喷水,直到火焰完全熄灭。机器人在启动水泵灭火的同时,位于消防机器人车体前方的多传感器模块开始收集火灾区域的各种环境信息,如温度、光照强度、烟雾浓度等,并通过WIFI模块发送到远程客户中心,当确认室内着火点全部被扑灭之后,机器人返回原地待命。
图13 避障子程序设计流程图
该消防机器人系统采用YOLO(You Only Look Once)算法实现对火焰的识别,YOLO算法是一种直接采用回归(Regression)思想进行深度学习对目标的检测方法,用一个单独的卷积神经网络(CNN)模型实现端到端(end-to-end)的目标检测[12],YOLO算法目标识别过程如图14所示。
图14 YOL O算法目标识别过程图
利用YOLO算法定位的基本思想是,将红外热像模组采集到的图像先进行归一化尺寸,然后卷积神经网络(CNN)将其分割成S×S个相等的网格,当被检测目标的中心恰好落入到某个网格中时,这个网格就用来负责预测该检测目标。在检测过程中,检测目标落入的网格需要预测B个回归边框置信度Confidence最终值,Confidence的定义为[13]
其中,Pr(Object)用来衡量该网格中是否存在检测目标,如果包含,则Pr(Object) = 1,反之Pr(Object) = 0,IOU用来衡量该网格回归边框和待检测物体真实区域的重叠程度,重叠部分的面积数据用输入图像区域的像素面积归一化至[0,1]区间。同时,检测目标落入的网格还需要预测出C 个物体属于某种类别的概率Pr(Classi|Object),Pr(Classi|Object)表示落入该网格中的物体属于的类别及其概率。将回归边框置信度Confidence与概率值Pr(Classi|Object)相乘可以得出类别置信度(class-specific confidence scores)为
该消防机器人采用YOLO算法进行火焰定位的具体过程如图15所示。
图15 YOL O算法火焰定位流程图
该消防机器人系统采用UWB的TDOA定位算法实现自主定位,TDOA定位算法是利用多个基站到标签之间的距离差形成的双曲线方程组来算出标签的位置坐标,这种定位方法可以在基站和标签时间不同步的情况下完成定位,因此TDOA定位算法相较于其他算法有更强的实用性。
UWB的TDOA定位算法原理如图16所示(以三个定位基站为例),在某区域中有Q个基站,其中的某个基站(假设为基站1)作为参考基站,并且已知基站i(i=1,2,3,…,Q)的位置为(xi,yi),假设移动标签(Tag)的位置为(x,y),基站i与移动标签的距离为di。根据信号到达参考基站1和其他基站的时间差值Δt及信号在空气中传播的速度vUWB算出求出移动标签与各个基站之间的距离差,以这个距离差为长轴,两个基站为焦点,可以建立双曲线方程来求解移动标签的位置,实现消防机器人的自主定位。
图16 T DOA定位原理图
在学校实验室对该消防机器人进行了实验测试,在实验室配备了本文所述的相关设备,采用蜡烛模拟着火点,并且随机在室内设计一些障碍物,对机器人自主定位导航、自主避障、火灾位置感知、火焰锁定及远程客户端协同工作进行了多次测试,测试内容及结果如表1所示。
表1 测试例及结果
测试结果表明,该机器人各模块正常协调工作,可实现自动定位导航移动、自主避障规划路径、自主感知火源位置、自主锁定火焰并进行喷水灭火,能更加智能、快速地完成室内消防灭火。
本文设计了一种新型室内自主消防机器人系统,该机器人以MiniPC 和STM32F103 为控制核心,采用HC-SR04超声波传感器、Lepton红外热成像模组、L298N电机驱动芯片和DW1000芯片作为实现各功能的主要元器件。该机器人创新性地应用了计算机视觉、UWB室内定位技术和WIFI的CSI算法等技术,可实现对室内火灾的及时监测、自主导航移动、及时探测火场信息、准确定位火焰位置、自动喷水灭火等功能,在一定程度上弥补了当前室内消防存在的缺点和问题,提高了室内消防灭火的实时性、准确性、高效性和智能化程度,能够在消防过程中起到重要的辅助作用,极大地保障了消防人员及室内居民的生命安全,具有一定的实用价值和推广价值。