CN110082781B - 基于slam技术与图像识别的火源定位方法及系统 - Google Patents

基于slam技术与图像识别的火源定位方法及系统 Download PDF

Info

Publication number
CN110082781B
CN110082781B CN201910418881.1A CN201910418881A CN110082781B CN 110082781 B CN110082781 B CN 110082781B CN 201910418881 A CN201910418881 A CN 201910418881A CN 110082781 B CN110082781 B CN 110082781B
Authority
CN
China
Prior art keywords
fire source
image
robot
map
hsv
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910418881.1A
Other languages
English (en)
Other versions
CN110082781A (zh
Inventor
程龙
黎家通
孙浩
李一帆
万骏辉
辛志强
范晓静
杨志雄
余牧舟
杨俊峰
杨明杰
高泽颖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Northeastern University Qinhuangdao Branch
Original Assignee
Northeastern University Qinhuangdao Branch
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Northeastern University Qinhuangdao Branch filed Critical Northeastern University Qinhuangdao Branch
Priority to CN201910418881.1A priority Critical patent/CN110082781B/zh
Publication of CN110082781A publication Critical patent/CN110082781A/zh
Application granted granted Critical
Publication of CN110082781B publication Critical patent/CN110082781B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G01MEASURING; TESTING
    • G01DMEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
    • G01D21/00Measuring or testing not otherwise provided for
    • G01D21/02Measuring two or more variables by means not covered by a single other subclass
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
    • G05D1/12Target-seeking control

Abstract

本发明公开了一种基于SLAM技术与图像识别的火源定位方法及系统,包括:S1,自主移动机器人通过激光雷达返回的数据结合SLAM算法构建实时地图并保存;S2,基于建立的实时地图进行自主行进,通过摄像头捕捉图像进行火源识别与定位;进行火源识别与定位时,首先,对图像进行HSV转换,并分别对RGB与HSV两种空间上的图像进行处理,设定阈值对颜色分析,得出类似火源物体的确切区域;其次,通过测定是否有烟雾产生、是否达到火源的温度,以区分颜色特征与火源相似的物体,识别出火源;最后,将火源中心标记于图像上,对图像进行逆透视处理,将图像坐标转化为现实世界坐标,确定出火源的位置及距离。本发明提高了火源识别的精准度并确定了火源位置。

Description

基于SLAM技术与图像识别的火源定位方法及系统
技术领域
本发明涉及一种基于SLAM技术与图像识别的火源定位方法及系统,属于火源识别与定位技术领域。
背景技术
现有的火源识别与定位系统,其探测部分大多采用烟感、温感等传感器探测,它们一般只较适用于小空间内的火源定位,而在大空间里的火源识别与定位方面存在诸多不足。
针对消防场景下大空间里的火源识别与定位,有采用视频图像加红外图像同时采集的方式,视频图像采用人工监控,红外图像用于寻找火源,但无法实现火源的精准识别及定位,且后期拓展性较差。申请号为201710239808.9的发明专利申请公开了“一种基于激光SLAM技术的消防巡逻智能车”,其公开了可以采用SLAM技术构建地图,然后机器人根据当前位置和设定的目标位置行进进行灭火。但是该技术同样无法实现火源的精准识别及定位,而且其也并没有公开如何在slam体系中将火源识别结合起来,达到机器人自主定位后根据图像识别进行灭火的效果,而现有技术中相关的图像识别算法很多,直接将图像与slam体系坐标进行转换的算法均比较复杂。因此,针对以上问题,需要进一步进行改进。
发明内容
本发明的目的在于,提供一种基于SLAM技术与图像识别的火源定位方法及系统,它可以有效解决现有技术中存在的问题,尤其是无法实现火源的精准识别及定位的问题。
为解决上述技术问题,本发明采用如下的技术方案:一种基于SLAM技术与图像识别的火源定位方法,包括以下步骤:
S1,自主移动机器人通过激光雷达返回的数据结合SLAM算法构建实时地图并保存;
S2,机器人基于建立的实时地图进行自主行进,并通过摄像头捕捉图像进行火源识别与定位;具体的,进行火源识别与定位时,首先,对图像进行HSV转换,并分别对RGB与HSV两种空间上的图像进行处理,设定阈值对颜色分析,再综合二者的处理结果,得出类似火源物体的确切区域;其次,通过烟雾传感器与温度传感器,测定是否有烟雾产生、是否达到火源的温度,以区分颜色特征与火源相似的物体,识别出火源;最后,将火源中心标记于图像上,并对图像进行逆透视处理,将图像坐标转化为现实世界坐标,从而确定出火源的位置及距离。
本发明通过构建地图,在复杂的灭火环境下可以更准确地找到火源位置,能够让机器人对于周围环境有更加全面的把握,此外可以消除火源识别的误差并为定点灭火和自主导航做准备。
优选的,步骤S1具体包括:自主移动机器人利用ROS平台订阅的激光雷达发布的数据话题、机器人底盘返回的里程数据以及机器人控制系统里配置好的坐标关系,通过SLAM-GMAPPING算法得知车体当前的姿态和周围的环境信息;上位机发送移动指令控制所述机器人进行相应的移动,从而建立出一张完整的地图。通过以上方法从而能够在完全未知的环境中构建地图,同时利用地图进行自身定位和导航,其精度较高且能直接用于定位导航。
优选的,步骤S2中所述的机器人基于建立的实时地图进行自主行进,具体包括:
S21,机器人利用RVIZ工具复现已构建好的地图;
S22,复现所述地图后,机器人根据激光雷达返回的雷达数据初步判断机器人当前的位置,然后根据RFID读写模块获取的RFID模块的已知位置信息校准机器人自身当前的实际位置;
S23,上位机通过RVIZ工具选定目标点并发送自主行进指令;所述机器人接收到相关指令后根据激光雷达返回的数据并结合所述地图完成点对点的自主导航。
通过利用以上方法,尤其是通过使用RVIZ复现地图,从而可以方便的对ros的程序进行图形化操作,其使用简单,可以将数据进行可视化表达,支持三维图像显示;激光雷达具有快速、高精度、抗干扰等特点,再配合机器人可以在行进过程中读取到安装在行进区域路面上的RFID标签信息,从而对自身位置进行校正,显著提高了移动机器人的定位精度,并且不会对地面造成明显的外观影响,同时降低了移动机器人的传感器成本。
前述的基于SLAM技术与图像识别的火源定位方法中,步骤S2中,所述的对图像进行HSV转换,并分别对RGB与HSV两种空间上的图像进行处理,设定阈值对颜色分析,再综合二者的处理结果,得出类似火源物体的确切区域具体包括:首先对图像RBG通道(按照阈值)进行拆分;其次,使用高斯滤波对图像平滑化处理,对图像各通道设定相关阈值(可通过反复测试修改后得到相关阈值,优选为105,从而使得类似火源物体的区域识别更准确),将降噪后的图像加以二值化,并对RBG三通道的图像进行膨胀、腐蚀、开闭运算的多次形态学操作,而后将图像转换为HSV颜色空间中,与原RGB三通道处理后的图像叠加得到联合运算出的类似火源位置图像;再次,利用canny轮廓检测技术处理三通道联合运算出的图像,将类似火源物体的轮廓提取出来,再通过轮廓重心提取算法,提取轮廓重心,同时利用openCV的最小边界矩形,框出类似火源物体的确切区域。本发明中通过三通道(RGB)叠加处理从而可以找出颜色突变的区域,再进行HSV分析探寻火源位置,二者共同处理从而可以缩小火源范围,提高火源识别效率;另外,通过采用canny轮廓检测技术、轮廓重心提取算法、openCV的最小边界矩形等,从而可以更准确快速的得出类似火源物体的确切区域,具有很高的实时性,可以实时监控火灾的发生和发展情况,反应速度较快,能够及时调度灭火系统进行灭火,并且数据保存功能强大,可以为后续的事故分析及现场画面重现提供较好的依据。
优选为,所述的轮廓重心提取算法,即在提取完所需的轮廓之后,将轮廓所有点先进行越界修正,将修正后点的轮廓整体的所有点的横纵坐标累加后求平均值,即得火源的重心坐标。
优选的,利用canny轮廓检测技术提取火焰的轮廓时,采用关键点检测法进行轮廓检测;其中,通过一个移动核去遍历矩阵,标记图像对应的相邻像素点颜色变化超过像素差异最小均值处为一个关键点;当图像用几个像素点即可唯一表示时,所述的几个像素点即为关键点。检测的方式有很多种,本发明选择关键点检测法可以降低程序占用的内存,提高程序运行效率。
优选的,采用直边界矩形来求取最小边界矩形,简捷,快速,准确。
本发明的基于SLAM技术与图像识别的火源定位方法,还包括:
S3,当识别到火源后,机器人将火源位置作为目标位置,通过Simple trajectorygenerator算法计算获得车体的当前位置对应的在地图中到达目标位置的最短路径;所述机器人根据该最短路径进行行进。此路径规划算法简单,可以生成很多轨迹发生器,每调用一次nextTrajectory()就会返回一个新的轨迹。利用trajectory rollout or the DWA的方法,SimpleTrajectoryGenerator类可以生成许多轨迹,从而能够知道车身的之前时刻的位置信息,并且可以方便记录路程信息并以免重复行进不必要的路程。
优选的,所述的通过Simple trajectory generator算法计算获得车体的当前位置对应的在地图中到达目标位置的最短路径,具体包括以下步骤:
S31,生成样本路径:
(1)获取当前的x轴速度vx、y轴速度vy和z轴转向角速度th;
(2)获取下发控制命令的频率H,算出每个控制命令的周期1/H=sim_period_;
(3)根据命令周期、加速度、减速度、最大速度、最小速度,算出下个周期时,x轴速度的最大值和最小值及y轴速度的最大值和最小值;
(4)获取每个速度的采样率及相应的采样标本;
(5)利用穷举法,针对vx、vy、th的所有标本进行全组合;
(6)针对每个样本速度,在sim_period_时间内,生成一条路径;
S32,最优路径选择:
由公式cost=pdist_scale_*path_dist+goal_dist*gdist_scale_+occdist_scale_*occ_cost得出最优路径cost;其中occ_cost为一个变量,路径上的每个采样点在数组costmap上对应的值中的最大值保存在变量occ_cost中;path_dist:路径终点到全局路径的偏离距离;goal_dist:路径终点到局部路径目标点的偏离距离;pdis_scale_、gdist_scale_和occdist_scale_:可变因子。
通过以上方法计算获得车体的当前位置对应的在地图中到达目标位置的最短路径,反应速度较快,计算简单,通过速度组合(线速度与角速度)可以快速得出下一时刻规划轨迹的最优解;而且可以将优化由横向与纵向两个维度向一个维度优化。
实现前述方法的一种基于SLAM技术与图像识别的火源定位系统,包括:上位机和自主移动机器人,所述上位机用于接收自主移动机器人返回的实时运行数据,并向其发送相关指令;所述的自主移动机器人包括陀螺仪、激光雷达、摄像头、温度传感器、烟雾传感器、处理器;处理器通过陀螺仪、激光雷达返回的数据结合SLAM算法构建实时地图,并使得自主移动机器人基于建立的地图进行自主行进;处理器利用摄像头捕捉的图像进行火源识别;具体的,进行火源识别与定位时,首先,处理器对图像进行HSV转换,并分别对RGB与HSV两种空间上的图像进行处理,设定阈值对颜色分析,再综合二者的处理结果,得出类似火源物体的确切区域;其次,通过烟雾传感器与温度传感器,测定是否有烟雾产生、是否达到火源的温度,以区分颜色特征与火源相似的物体,识别出火源;最后,将火源中心标记于图像上,并对图像进行逆透视处理,将图像坐标转化为现实世界坐标,从而确定出火源的位置及距离。
其中,温度传感器、烟雾传感器的作用在于区分火源与类火源物体,通过火源与非火源的一般区别(是否有烟雾,是否高温)对二者进行区分。
优选的,所述的自主移动机器人还包括RFID读写模块,所述的RFID读写模块与处理器连接,用于自主移动机器人根据RFID读写模块获取的RFID模块的已知位置信息校准机器人自身当前的实际位置;从而可以提高定位的准确性,便于机器人准确的行进至火源位置。
优选为,RFID读写模块采用LMRF3060模块,该型号的模块像素水平符合要求,处理准确,采集速度快;而其他型号,低像素速度快但不准确,高像素准确但速度慢,该型号介于两者之间,且开销可以接受。
优选为,激光雷达采用RPLIDAR A1激光雷达模块,从而可以实现在二维平面的6米半径范围内进行360度全方位激光测距扫描,并产生所在空间的平面点云地图信息,可通过UART将测距信息返回给主控板;而且此模块一秒钟最少可以完成2000次测距,最多甚至可以完成4000次测距,因此不必担心在机器人高速行驶的过程中会出现测距不及时的状况。在每次测距过程中,模块上的测距模块由扫描电机带动,电机转速由单片机输出的PWM波占空比决定,测距模块发射经过调制的红外激光信号,该激光信号在照射到目标物体后产生的反光将被RPLIDAR A1的视觉采集系统接收,经过嵌入在RPLIDAR A1内部的DSP处理器实时解算,被照射到的目标物体与RPLIDAR A1的距离值和当前夹角值将通过UART口返回给主控板卡。
优选为,所述的自主移动机器人以两个直流无刷电机作为驱动电机,其摩擦更小,控制更为精准。
与现有技术相比,本发明具有以下优点:
1、本发明通过激光雷达构建实时地图并基于建立的地图进行自主行进,可以实现火源的智能识别与定位,实现消防安全智能化管理,尤其是通过将图像识别与传感器相结合,首先,对图像进行HSV转换,并分别对RGB与HSV两种空间上的图像进行处理,设定阈值对颜色分析,再综合二者的处理结果,得出类似火源物体的确切区域;其次,通过烟雾传感器与温度传感器,测定是否有烟雾产生、是否达到火源的温度,以区分颜色特征与火源相似的物体,识别出火源;最后,将火源中心标记于图像上,并对图像进行逆透视处理,将图像坐标转化为现实世界坐标,从而确定出火源的位置及距离,从而提高了火源识别的精准度并确定了火焰位置,为消防机器人灭火奠定了良好的基础;
2、本发明通过对图像RBG通道进行拆分;其次,使用高斯滤波对图像平滑化处理,对图像各通道设定相关阈值,将降噪后的图像加以二值化,并对三通道的图像进行膨胀、腐蚀、开闭运算的多次形态学操作;再次,利用canny轮廓检测技术处理三通道联合运算出的图像,将火焰的轮廓提取出来,再通过轮廓重心提取算法,提取轮廓重心,同时利用openCV的最小边界矩形,框出火焰的主要区域;最后,进行逆透视处理,计算出得到的火焰重心在真实世界的大致位置,从而避免了直接将图像与SLAM体系坐标进行转换,方便了火源识别后的灭火行进控制,提高了机器人行进控制的准确性和效率;
3、本发明实现的SLAM方法是应用在ROS平台的基础上,ROS的一大特色是采用分布式,也就是说ROS可以将一个复杂的任务分成多个简单的任务并分配到不同的机器人上运行,这可以大大降低机器人任务量同时提高效率降低成本;
4、不需要任何人员进入存在火源的未知危险环境中,机器人完全替代人员进入危险的未知环境获取该环境下所需的消防数据,保障人员安全,减少人员伤亡;
5、本发明可以实现非接触性探测,可以远离监控所监控的环境情况,反映的信息较直观,并且具有一定的主动性;
6、该系统具备一定的扩展能力(本发明使用的处理器本身就可以支持更多的扩展,比如连接烟雾传感器模块和温度传感器模块),并且跟随软件及硬件单元的升级而改进,使系统在可扩展方面变得方便;
7、该系统具有很高的实时性,实时监控火灾的发生和发展情况,反应速度较快,能够及时调度灭火系统进行灭火,并且数据保存功能强大,可以为后续的事故分析及现场画面重现提供较好的依据;
8、本发明将面向大型易燃易爆场所,承担巡逻消防任务。该机器人如基于履带车的设计可克服诸如阶梯、斜坡等较复杂地形,并通过SLAM地图建模可实现室内的自主行进,遇到明火,第一时间进行判断识别并精准定位火源位置,自主导航前往火源附近处,抛射灭火。
9、本发明的自主移动机器人,不用实时交互定位导航信息,仅需一次传递目标点,即能实现导航,这样,在较为复杂的环境中,如果丢失连接,自主移动机器人还能利用存储的当前机器人位置信息向目标点继续运动,避免了机器人停机,脱离控制的情况发生。另外,生成样本路径和选择最佳路径时,综合考虑了激光雷达的定位精度和里程信息精度,再结合实际运行中机器人可以到达的位置进行样本路径的生成和最佳路径的选择,更加符合实际情况。此外,基于RFID定位技术与火源识别的方法结合,系统可根据Simpletrajectory generator算法生成的最佳路径,使得机器人能够更好的执行灭火任务。
附图说明
通过参考附图会更加清楚的理解本发明的特征和优点,附图是示意性的而不应理解为对本发明进行任何限制,在附图中:
图1为本发明某一实施例中火源定位系统的方框示意图;
图2为本发明某一实施例中自主移动机器人中的电机驱动模块示意图;
图3为本发明某一实施例中自主移动机器人自主行进的流程图;
图4为本发明某一实施例中自主移动机器人中的摄像头外设电路图;
图5为本发明某一实施例中自主移动机器人中摄像头与FIFO连接电路图;
图6为本发明某一实施例中的火源识别算法流程图;
图7为本发明某一实施例中自主移动机器人的火源定位算法流程图;
图8为本发明某一实施例中自主移动机器人中的RFID读写模块的连接电路图;
图9为二维高斯分布示意图。
附图标记:1-上位机,2-自主移动机器人,3-陀螺仪,4-激光雷达,5-摄像头,6-温度传感器,7-烟雾传感器,8-处理器,9-RFID读写模块。
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。
具体实施方式
本发明的实施例1:一种基于SLAM技术与图像识别的火源定位方法(可在ROS平台下实施),如图3所示,包括以下步骤:
S1,自主移动机器人通过激光雷达返回的数据结合SLAM算法构建实时地图并保存;具体可包括:自主移动机器人利用ROS平台订阅的激光雷达发布的数据话题、机器人底盘返回的里程数据以及机器人控制系统里配置好的坐标关系,通过SLAM-GMAPPING算法得知车体当前的姿态和周围的环境信息;上位机发送移动指令控制所述机器人进行相应的移动,从而建立出一张完整的地图;
S2,机器人基于建立的实时地图进行自主行进,并通过摄像头捕捉图像进行火源识别与定位;具体的,如图6所示,进行火源识别与定位时,首先,对图像进行HSV转换,并分别对RGB与HSV两种空间上的图像进行处理,设定阈值对颜色分析,再综合二者的处理结果,得出类似火源物体的确切区域(具体可包括以下步骤:首先对图像RBG通道(按照阈值)进行拆分;其次,使用高斯滤波对图像平滑化处理,对图像各通道设定相关阈值(可通过反复测试修改后得到相关阈值,优选为105),将降噪后的图像加以二值化(即在设定阈值的前提下,将图像由三维降至一维,对高于阈值的赋值1,低于阈值的赋值0),并对RBG三通道的图像进行膨胀、腐蚀、开闭运算的多次形态学操作,而后将图像转换为HSV颜色空间中,与原RGB三通道处理后的图像叠加得到联合运算出的类似火源位置图像;再次,利用canny轮廓检测技术处理三通道联合运算出的图像,将类似火源物体的轮廓提取出来,再通过轮廓重心提取算法,提取轮廓重心,同时利用openCV的最小边界矩形,框出类似火源物体的确切区域);其次,通过烟雾传感器与温度传感器,测定是否有烟雾产生、是否达到火源的温度,以区分颜色特征与火源相似的物体,识别出火源;最后,将火源中心标记于图像上,并对图像进行逆透视处理,将图像坐标转化为现实世界坐标,从而确定出火源的位置及距离(具体的火源定位算法流程图如图7所示)。所述的机器人基于建立的实时地图进行自主行进,具体可包括:
S21,机器人利用RVIZ工具复现已构建好的地图;
S22,复现所述地图后,机器人根据激光雷达返回的雷达数据初步判断机器人当前的位置,然后根据RFID读写模块获取的RFID模块的已知位置信息校准机器人自身当前的实际位置(具体的说,先通过RFID读写模块读取RFID卡片或者标签的数值,通过数值找到对应标记点的位置(根据不同环境提前记录好的对应关系),并把该位置信息转换成小车的坐标信息来对车身当前的位置信息进行校正,该方法可在ROS平台下完成);
S23,上位机通过RVIZ工具选定目标点(比如所要执行巡逻任务的房间,这个位置包含机器人在世界坐标中的位置和角度)并发送自主行进指令;所述机器人接收到相关指令后根据激光雷达返回的数据并结合所述地图完成点对点的自主导航。
S3,当识别到火源后,机器人将火源位置作为目标位置,通过Simple trajectorygenerator算法计算获得车体的当前位置对应的在地图中到达目标位置的最短路径;所述机器人根据该最短路径进行行进;所述的通过Simple trajectory generator算法计算获得车体的当前位置对应的在地图中到达目标位置的最短路径,具体可包括以下步骤:
S31,生成样本路径:
(1)获取当前的x轴速度vx、y轴速度vy和z轴转向角速度th(这部分数据一般从odom获取,并且在2d地图上,y轴速度一般是0);
(2)获取下发控制命令的频率H,算出每个控制命令的周期1/H=sim_period_;
(3)根据命令周期、加速度、减速度、最大速度、最小速度,算出下个周期时,x轴速度的最大值和最小值及y轴速度的最大值和最小值;
(以x轴速度vx为例:
max_vx=min(最大速度,vx+加速度×命令周期);
min_vx=max(最小速度,vx-减速度×命令周期))
(4)获取每个速度的采样率及相应的采样标本;(例如vx的最大速度为1,最小速度为0,采样率为6,那么针对vx的采样标本是0,0.2,0.4,0.6,0.8,1)
(5)利用穷举法,针对vx、vy、th的所有标本进行全组合;(一共就有(vx采样率×vy采样率×th采样率)个样本速度(vx,vy,th))
(6)针对每个样本速度,在sim_period_时间内,生成一条路径(由一系列的点组成);
S32,最优路径选择:
由公式cost=pdist_scale_*path_dist+goal_dist*gdist_scale_+occdist_scale_*occ_cost得出最优路径cost;其中occ_cost为一个变量,路径上的每个采样点在数组costmap上对应的值中的最大值保存在变量occ_cost中;path_dist:路径终点到全局路径的偏离距离;goal_dist:路径终点到局部路径目标点的偏离距离;pdis_scale_、gdist_scale_和occdist_scale_:可变因子(可以在配置文件中调整)。
具体的,利用canny轮廓检测技术提取火焰的轮廓时,采用关键点检测法进行轮廓检测;其中,通过一个移动核去遍历矩阵,标记图像对应的相邻像素点颜色变化超过像素差异最小均值处为一个关键点;当图像用几个像素点即可唯一表示时,所述的几个像素点即为关键点;将火焰的轮廓提取出来后,将轮廓整体的所有点的横纵坐标累加后求平均值,即得火源的重心坐标。可采用直边界矩形来求取最小边界矩形;
本发明中,通过上位机1接收和发送数据的过程如下:
上位机1程序通过通讯外设获取下位机(即自主移动机器人2)信息后,先将其转存到一个数组之中,并开始查询数组中有无符合所定义的格式的字符串,如果有则与所储存的字符串对照表进行对照,看看对应到哪一项命令数据,并在对应的显示窗口中显示。同时设置了一个发送端口,如果出现了一些意外情况,用户可以在这个端口输入想要发送的指令然后发送给自主移动机器人2。
实现上述方法的一种基于SLAM技术与图像识别的火源定位系统,如图1所示,包括:上位机1和自主移动机器人2,上位机1和自主移动机器人2之间通过无线数传模块进行信息传输;所述上位机1用于接收自主移动机器人2返回的实时运行数据,并向其发送相关指令;所述的自主移动机器人2包括陀螺仪3、激光雷达4、摄像头5、温度传感器6、烟雾传感器7、处理器8;处理器8通过陀螺仪3、激光雷达4返回的数据结合SLAM算法构建实时地图,并使得自主移动机器人2基于建立的地图进行自主行进;处理器8利用摄像头5捕捉的图像进行火源识别;具体的,进行火源识别与定位时,首先,处理器8对图像进行HSV转换,并分别对RGB与HSV两种空间上的图像进行处理,设定阈值对颜色分析,再综合二者的处理结果,得出类似火源物体的确切区域;其次,通过烟雾传感器7与温度传感器6,测定是否有烟雾产生、是否达到火源的温度,以区分颜色特征与火源相似的物体,识别出火源;最后,将火源中心标记于图像上,并对图像进行逆透视处理,将图像坐标转化为现实世界坐标,从而确定出火源的位置及距离。
可选的,所述的自主移动机器人2还包括RFID读写模块9,所述的RFID读写模块9与处理器8连接,用于自主移动机器人2根据RFID读写模块9获取的RFID模块的已知位置信息校准机器人自身当前的实际位置;可选为,RFID读写模块9采用LMRF3060模块;激光雷达4采用RPLIDAR A1激光雷达模块;所述的自主移动机器人2以两个直流无刷电机作为驱动电机。
实施例2:
本火源定位系统由自主移动机器人2、上位机1平台及其通讯外设三个部分构成。具体实施时,为了适应不同的地面环境,所述自主移动机器人2可为履带式机器人(也可叫做履带车)。机器人本体左右两侧各安装有多个震轮组,采用了震轮组保证了机器人本体上的元器件的连接安全。所述履带车包含温度传感器6、烟雾传感器7、处理器8,能独立完成灭火任务,采集火源信息进行处理再传送给上位机1,并接受来自后者的控制指令。上位机1平台及其通讯外设实现与履带车机器人的通信,完成远端PC控制机器人及处理移动平台传来的数据等工作。
具体的,所述处理器8可以采用主控板卡树莓派,上位机1可采用远端PC。用户需分别在位于履带车机器人上的主控板卡树莓派和远端PC中启动ROS的SLAM建图相关功能包,并通过键盘控制履带车机器人在需要进行灭火任务的路线上移动,激光雷达4将对所述机器人的周围环境进行扫描并把扫描数据传给主控板卡树莓派,所述主控板卡树莓派会将激光雷达4数据发送给PC端,在PC端建立所述履带车机器人周围环境的地图。通过保存地图指令保存地图,之后在PC端中执行预置的自主导航相关launch文件以实现下一步的自主导航功能。履带车开始工作后,将自动地结合激光雷达4采集到的激光数据及RFID读写模块9采集到的RFID模块的位置确定自身的姿态和具体位置。同时,所述履带车机器人通过摄像头5拍摄图像,对图像进行通道分离,通过对阈值的划分找到火源的大致位置,进而对图像进行去噪处理后,对图像进行轮廓检测,求得轮廓重心、并得到火焰主要存在的区域,将火源位置信息作为目标点结合ROS提供的相关导航功能包(提前将所述目标点和自身位置放入到预置的导航功能包计算并进行自主导航)发送相关命令给底盘,选择最优行进方案进行目标路径的灭火任务。此过程中,履带车上的传感设备采集到的数据可选择地上传至PC端,包括摄像头图像、电机速度、雷达数据、温度传感器6、烟雾传感器7的数据,从而实现履带式机器人替代人类执行高强度灭火任务的目标。
具体实施时:
(1)SLAM建图的实现:
首先,需要将履带车上的树莓派启动并使所述树莓派与上位机通过无线网络建立连接,并且要求保持网络稳定,信号传输速度不低于50Mbps。(注意在进行之后的操作前要在终端中用命令roscore启动ROS MASTER)。在此基础之上,在上位机系统中启动预置的键盘控制和SLAM建图launch文件,并在SLAM节点中订阅激光雷达发布的数据,同时SLAM还将订阅来自底盘STM32F103的里程数据,在ROS系统中发布地图信息;在配置好相关节点后在上位机系统中启动RVIZ工具添加SLAM-GAMMAPING发布的地图信息将地图显示在RVIZ工具界面中,用户通过键盘控制履带车行进,在SLAM构建地图中里程数据显示履带车当前行进方向。地图可由黑灰两种颜色组成,所述地图颜色分别代表障碍区域(黑色)、无障碍区域(灰色),键盘控制按键命令分为六种,分别是w(前),s(后),a(左),d(右),q(变档加速),z(变档减速)。当履带车在用户控制下完成SLAM地图的构建后,用户需在上位机里输入保存地图命令:
$rosrunmap_servermap_saver–f~/map
保存地图,完成以上操作后构建SLAM地图既认为完成。
(2)自主移动机器人2自主导航的实现:
首先,用户需在上位机终端里输入命令
$export TURTLEBOT3_MODEL=burger
$roslaunch turtlebot3_navigation turtlebot3_navigation.launch
map_file:=$HOME/map.yaml
启动RVIZ工具和预置的自主导航launch文件。启动后效果如图3,位于车体上的激光雷达4会通过激光扫描返回激光数据,通过将返回的激光数据与地图数据对比,得到车体当前的大致位置信息,位于车盘底部的RFID读写模块读出出卡片的ID码,通过数据库查找算法,得到卡片的编号,再通过卡片编号对应的位置信息得知车体当前的具体位置信息,在RVIZ中订阅RFID的相关位置信息对车体当前位置进行校正,校正后操作人员通过上位机输入目标点位置或者输入巡逻命令
$patrol
树莓派接收到相关指令后根据预置的move_base功能包中的Simple trajectorygenerator算法(对现有算法进行了改进,通过修改源代码参数使之前每1°遍历一次到现在每3°遍历一次,但是效果却和之前一样,具体的说,之前是相对与车头顺时针每1度遍历一次,现在是每3度遍历一次,通过代码中的修改遍历间隔完成,并经过测试和MATLAB拟合拟合会找到允许速度和遍历次数的最优的点,以此保证在减少运算时间的情况下不会对精度有太大影响,这里不需要重新写算法,只需要在原来的代码中改参数即可),算出车体当前位置与目标点在地图上的最短行进路径,并发布相关消息,在底盘控制节点base_contorller中订阅相关消息,并向驱动板卡STM32F103发送指令驱动履带车进行行进。
车体在行进过程中,位于车体上的摄像头通过不停地捕捉图像进行识别周围存在的火源,从而确定车体是否进入投射灭火半径(通过摄像头的逆透视算法结合SLAM地图上的机器人本身位置和火源位置以及机器人抛射装置投射距离来判断)。若车体前方有火源且进入灭火抛射半径,则关闭move_base节点消息,车体将不再继续行进,若车体前方有有火源且未进入灭火抛射半径车体将继续按之前的指令行进,若车体前方没有火源且未进入抛射半径,车体将继续按原指令行进。在到达火源灭火抛射半径内的基础上,车体只需停止前后行进,改为左右转向调整抛射方向即可,再结合摄像头返回的图像数据,结合火源识别算法及逆透视算法算出算出火源位置,将位置信息转换成抛射电机的力度信息控制抛射电机对火源进行抛射(通过实地测试拟合一个位置转换抛射力度的函数,并经过不断校正和测试使得函数拟合效果达到最优从而实现位置信息转换抛射力度的功能)。本发明在结合火源识别算法外还引用了红外温度传感器作为辅助模糊定位,以确保车体能转到大致位置让摄像头能够捕捉到包含火源的图像。
本发明为了用户在使用上位机1时直观观察所述自主移动机器人2的位置,所述上位机1中显示有SLAM地图,所述自主移动机器人2还用于回传激光雷达4及RFID读写模块9的信息给所述上位机1,所述上位机1根据所述激光雷达4及RFID读写模块9的信息实时更新SLAM地图并且显示当前机器人所在的实时位置;另外,自主移动机器人2还将摄像头5拍摄的图像、电机转速信息、摄像头捕捉到的火源位置信息、当前里程数据回传给所述上位机1,所述上位机1进行存储或者实时显示。
所述自主移动机器人2火源定位的过程如下:
摄像头5将采集到的数据传递给处理器8,如树莓派,树莓派接收到图像数据后,将图像进行三通道拆分,对拆分后的图像利用高斯模糊处理以消除噪声;然后设置一定的阈值将降噪后的图像加以二值化,并对三通道的图像进行相关运算操作,如膨胀、腐蚀、开闭运算的多次形态学操作,再利用canny轮廓检测技术处理三通道联合运算出的图像,将火焰的轮廓提取出来;再通过轮廓重心提取算法,提取轮廓重心,同时利用openCV的最小边界矩形,框出火焰的主要区域,在此基础之上,进行逆透视处理,计算出得到的火焰重心在真实世界的大致位置,利用功能包1传递给上位机1,以便于进行得到火源位置后的下一步处理。
以下进行详述:
(1)通道拆分:三通道拆分(RGB)找出颜色差异大于minVal的区域,HSV找出图像中火焰颜色(如橙红)的区域,将这两个区域与运算。
为了保证图像处理的稳定性与可靠性,对于彩色图像的处理,应进行图像通道的拆分,通过对不同通道的并行处理,可以得到对某一颜色的精准提取。
B=frame[:,:,0]
G=frame[:,:,1]
R=frame[:,:,2]#将图像的R、G、B三通道拆分
minValue=np.array(np.where(R<=G,np.where(G<=B,R,np.where(R<=B,R,B)),np.where(G<=B,G,B)))
S=1-3.0*minValue/(R+G+B+1)#设定阈值
fireImg=np.array(np.where(R>redThre,np.where(R>=G,np.where(G>=B,np.where(S>=0.2,np.where(S>=(255-R)*saturationTh/redThre,255,0),0),0),0),0))#对火焰基于颜色进行阈值分割
(2)高斯滤波
大部分情况下,图像是具有部分噪声的,为了去除这部分的噪声,高斯平滑滤波器对于抑制服从正态分布的噪声非常有效,本发明需要使用高斯滤波对图像进行去噪处理,以使得对于图像识别的操作更加精准。
二维高斯分布的值符合如下分布:方框中心的值最大,其余元素根据距离中心元素的距离递减,构成一个高斯小山包,如图9所示。
理论上,高斯分布在所有定义域上都有非负值,这就需要一个无限大的卷积核。实际上,仅需要取均值周围3倍标准差内的值,以外部份直接去掉即可。如下图为一个标准差为1.0的整数值高斯核。
Figure BDA0002065331130000131
高斯核
gray_fireImg=np.zeros([fireImg.shape[0],fireImg.shape[1],1],np.uint8)#做一个与原图等大的全0矩阵
gray_fireImg[:,:,0]=fireImg#取B色道赋值给gray_fireImg
gray_fireImg=cv.GaussianBlur(gray_fireImg,(7,7),0)#高斯模糊减小后续误差。
(3)形态学运算
·腐蚀:移动结构B,如果结构B与结构A的交集完全属于结构A的区域内,则保存该位置点,所有满足条件的点构成结构A被结构B腐蚀的结果。
·膨胀:将结构B在结构A上进行卷积操作,如果移动结构B的过程中,与结构A存在重叠区域,则记录该位置,所有移动结构B与结构A存在交集的位置的集合为结构A在结构B作用下的膨胀结果。
·开运算:先腐蚀后膨胀的操作称之为开操作。它具有消除细小物体,在纤细处分离物体和平滑较大物体边界的作用。
·闭运算:先膨胀后腐蚀的操作称之为闭操作。它具有填充物体内细小空洞,连接邻近物体和平滑边界的作用。
具体实施时:
gray_fireImg=contrast_brightness_demo(gray_fireImg,5.0,25)#增强对比度
kernel=cv.getStructuringElement(cv.MORPH_ELLIPSE,(5,5))#初始化运算所需的核
gray_fireImg=cv.morphologyEx(gray_fireImg,cv.MORPH_CLOSE,kernel)#对图像采用闭运算
(4)轮廓识别与求重心算法
轮廓可以简单认为成将连续的点连在一起的曲线,具有相同的颜色或者灰度。轮廓在火焰形状分析与其检测和识别中很有用。首先对图像进行二值化处理,而后进行轮廓检测,检测的方式有很多种,在这里可以选择canny轮廓检测技术(通过一个移动核去遍历矩阵,标记像素明显变化处为一个关键点,当图像可以用几个像素点就可以唯一表示时,这几个像素点就是关键点,例如矩形的四个角点。当图像比较复杂时,可以通过调整牺牲少量精准度以减少关键点的数量)以降低程序占用的内存,提高程序运行效率。在提取完所需的轮廓之后,将轮廓所有点先进行越界修正,将修正后点的轮廓整体的所有点的横纵坐标累加后求平均值,即得火源的重心坐标,为后续进一步处理做好铺垫。
具体实施时,
_,contours,hierarchy=cv.findContours(gray_fireImg,cv.RETR_EXTERNAL,cv.CHAIN_APPROX_SIMPLE);
#检测图像轮廓
len_contours=np.array(contours).shape;
find_countours_center(frame,contours)#得到图像中心点
cv.drawContours(frame,contours,-1,(0,255,0),3);#标注图像轮廓
deffind_countours_center(frame,countours):#编写算法:得到图像中心点
C=[]
fori in range(np.array(contours).shape[0]):
#print(countours[i])
x_list=[]
y_list=[]
for j in range(np.array(countours[i]).shape[0])#遍历提取轮廓横纵坐标
x_list.append(countours[i][j][0][0])
y_list.append(countours[i][j][0][1])
if(max(x_list)-min(x_list))>w_thre or(max(y_list)-min(y_list))>h_thre:
x=min(x_list);y=min(y_list);h=max(y_list)-min(y_list);w=-min(x_list)+max(x_list);#越界修正
cv.rectangle(frame,(x,y),(x+w,y+h),(0,100,255),2);#框出火源位置
C.append([(min(x_list)+max(x_list))/2,(max(y_list)+min(y_list))/2]);#提取重心坐标。
(5)求最小外接矩形
求最小外接矩形分为两种方式:直边界矩形与旋转边界矩形。本发明可采用openCV的最小边界矩形(具体的,如采用直边界矩形)以提高程序的实时性。直矩形不会考虑对象是否旋转,精准性相对稳定,因此在一定程度上可以起到提高程序效率的作用。
(6)逆透视
因为标志物贴在地面上,与摄像头的方向并不垂直,所以看到的图像会有梯形失真,导致看到的标志物的图像与实际不同,所以本发明选择对其进行逆透视变换,消除其梯形失真。
记像点为X,Y,物点为x,y(即真实世界的坐标),那么根据逆透视的理论,他们符合下面的公式(2):
Figure BDA0002065331130000161
如此可以推导出公式(3):
Figure BDA0002065331130000162
进一步可得下图中的矩阵方程
Figure BDA0002065331130000163
其中,Hij在j等于1和2表示旋转因子系数,完成图像坐标与现实世界坐标之间的旋转,由于摄像头不含测距模块,无法获得深度图,故Z=0,因而j等于3时表示平移向量;公式(2)中的分母表示尺度因子,用作尺度变换。x、y表示现实世界像素点坐标,X、Y表示图像中像素点坐标。
因为上式要有唯一解,需要保证增广矩阵为满秩,即rank(A|B)=8。那么就需要四组不相关的图像坐标系的点。由于世界坐标系的点在标定的时候,是知道的,那么可以选择一个矩形的四个顶点,将之代入上式即可得到所需要的参数。之后即可利用这些参数进行逆透视变换。
本发明还提供了一种基于SLAM技术与图像识别的火源定位系统,包括:上位机1和自主移动机器人2,所述上位机1用于接收自主移动机器人2返回的实时运行数据,并向其发送相关指令;所述的自主移动机器人2包括陀螺仪3、激光雷达4、摄像头5、温度传感器6、烟雾传感器7、处理器8;处理器8通过陀螺仪3、激光雷达4返回的数据结合SLAM算法构建实时地图,并使得自主移动机器人2基于建立的地图进行自主行进;处理器8利用摄像头5捕捉的图像进行火源识别;具体的,进行火源识别与定位时,首先,处理器8对图像进行HSV转换,并分别对RGB与HSV两种空间上的图像进行处理,设定阈值对颜色分析,再综合二者的处理结果,得出类似火源物体的确切区域;其次,通过烟雾传感器7与温度传感器6,测定是否有烟雾产生、是否达到火源的温度,以区分颜色特征与火源相似的物体,识别出火源;最后,将火源中心标记于图像上,并对图像进行逆透视处理,将图像坐标转化为现实世界坐标,从而确定出火源的位置及距离。
其中,处理器8可采用STM32F103和Broadcom BCM2835,其丰富的片内外设,可以方便机器人进行各种功能的扩展。机器人可采用履带车车体,处理器8与其它部件采用星形拓扑连接,其它部件如无刷直流电机智能控制器KYDBL2430-2E,RFID读写模块9-LMRF3060模块,图像处理部件、激光雷达模块RPLIDAR A1,陀螺仪GY953,摄像头采集与传输部件,等等。独立电源分别为电机驱动部件及其它部件供电。
(1)电机驱动硬件实现
该机器人需要对两路电机进行控制,并需要随时调整PWM波的占空比,还要能够及时处理外界返回的RFID卡片ID号信息、方向角信息,综合考虑选择了树莓派作为主控板卡并选择了STM32F103作为驱动板卡。
如图2所示,电机驱动模块无刷直流电机智能控制器KYDBL2430-2E,输入电压范围为10~55V(DC),最大输出电流30A(AC),在混合模式下,可实现两台无刷电机的同步控制,控制量输入端IN1控制两台电机的前后转动,控制量输入端IN2控制两台电机的左右旋转。使用PWM信号输入时,频率不超过1KHz,推荐使用250Hz,占空比输入范围为20%--80%。本系统采用片内定时器通过输出占空比可调的250Hz的PWM控制信号,实现对电机的调速控制。
(2)履带车其它模块硬件实现
除去最基本的电机驱动部分,自主移动机器人平台仍有以下五个基本部件均通过串口与主控芯片(即树莓派)结合:
Figure BDA0002065331130000171
以上设定波特率,便于通信,非特定值,可更改,设定需保持,避免产生波特率不对应导致无法通信的情况。
其中,433Mhz无线串口透传模块和PS2无线手柄控制控制部件组合使用可用于遥控履带车移动,非必须组件。
本组所采用STM32F103型号共有片内串口通讯位5个,做如下硬件层面的分配使用:
主控芯片串口位分配表
Figure BDA0002065331130000181
本组所采用树莓派3B型号共有片内串口通讯位4个,做如下硬件层面的分配使用:
主控芯片串口位分配表
Figure BDA0002065331130000182
其中,摄像头可采用OV7725摄像头,OV7725摄像头是一款高速COMS彩色摄像头,具有150HZ的帧率,且采用了BGA封装,拥有良好的电气特性。且为了应对处理器主频不高的问题,如图5所示,本发明可采用一个型号为AL422B的FIFO模块,对摄像头数据进行缓存。OV7725摄像头的外设电路如图4所示,采用了OV7725摄像头的标准外设电路,保证了其的稳定性与可靠性。采用一根排线与树莓派的Display插排口进行连接,树莓派的BCM2837B0芯片能够实现对图像的实时高速化处理,其与摄像头和树莓派的连接如图8所示。
在履带式机器人向目标点行进的过程中,未免会遇到障碍物,此时则由激光雷达判断是否遇到障碍物。在机器人上装备的是RPLIDAR A1激光雷达模块,5V供电,此模块可以实现在二维平面的6米半径范围内进行360度全方位激光测距扫描,并产生所在空间的平面点云地图信息,并通过UART将测距信息返回给主控板卡树莓派。对本发明系统尤为有利的是,此模块一秒钟最少可以完成2000次测距,最多甚至可以完成4000次测距。因此不必担心在机器人高速行驶的过程中会出现测距不及时的状况。在每次测距过程中,激光发射器由扫描电机带动,电机转速由单片机输出的PWM波占空比决定,测距模块发射经过调制的红外激光信号,该激光信号在照射到目标物体后产生的反光将被RPLIDAR A1的视觉采集系统接收,经过嵌入在RPLIDAR A1内部的DSP处理器实时解算,被照射到的目标物体与RPLIDAR A1的距离值和当前夹角值将通过UART口返回给主控板卡。
由于机器人只需完成避障工作,因此并不需要将0~360度的测距信息全部返回处理器(如K60单片机)。假如以面前为0度,则只需要返回面前的-45度到+45度的测距信息。程序部分如下所示:其中主要用了三个引脚,一个引脚用来输出PWM波,另外两个引脚用于UART通讯。
通过发送扫描指令A5 20来进行测距,并通过接收中断对数据进行存取,当存取数组装满之后,再对数据进行处理,在发送完距离和角度的相关信息后,再开启下次数据的存取与处理。当不需要使用激光雷达时,可以发送停止指令A5 25让激光雷达停止测距,以减少电能消耗,增加机器人的续航能力,如果发现返回的数据有问题,可以发送获取设备健康信息的指令A5 52来查看设备的健康状况。
履带车移动平台是上述多项部件的有机组成,应用于实际场景的消防灭火任务时,机器人将充分利用上述部件的作用结合,使得已经实现自主行进控制不仅仅是基于Base_Move自动导航包的行进控制,而是考虑实际场景与障碍等不定因素下的综合实现。机器人将检测并自动绕开前方障碍,并定位火源位置进行靠近。
(3)履带车移动控制软件设计实现
对电机的控制,采用STM32F103片内定时器PWM输出模式,硬件产生频率为250Hz、占空比可调的PWM波信号。通过控制两路PWM信号的占空比实现两路电机的差速,从而实现机器人的前进、后退、加减速、左右转、在行进中调整方向等效果使其灵活运动。
对电机的控制程序分为三个层次,分别为基础控制函数、高级控制函数和接口控制函数(全局函数)这三个层次。基础控制函数根据调用时所给予的数值来改变PWM波的占空比,实现马达的转速调节;高级控制函数则将一系列不同的参数值PWM基础控制函数以时间顺序组合封装在一起,实现了基础的履带车的行动功能;接口函数则将所有的高级PWM控制函数封装在一起,其他程序在调用接口函数时赋予参数不同的数值,接口函数根据不同的数值调用不同的高级PWM控制函数。实现机制如下:外部程序调用接口函数,接口函数根据参数的不同值调用不同功能的高级PWM控制函数,高级PWM控制函数则继续调用基础PWM控制函数来改变PWM的占空比,控制电机转速,从而实现不同的行进功能。具体实施方案如下:
通过voidMotorPWM(intLeftspeed,intRightspeed)函数,每当需要改变电机转速时,就传输两个PWM波的占空比给该函数,主控芯片利用定时器自动产生对应占空比的PWM波,这样机器人便会产生不同的速度。通过引擎急停、引擎减速、引擎向前加速、引擎向后加速、左右电机相对反向旋转、左电机减速、右电机减速对应的函数便可以方便的实现机器人的控制。例如:当想实现左转动作时,只需要调用左电机减速的函数,小车减速只需要同时改变两侧电机的PWM波占空比,最后调用电机总控制函数,向其传入模式对应的数值,就可以完成电机速度的改变。
该系统中,LMRF3060与主控单片机的电路连接图如图8所示,LMRF3060(RFID)模块返回履带车所处地点RFID卡片ID号,并由树莓派计算出与目标点之间的方向角。同时,陀螺仪模块返回履带车所处的方向角,并转动履带车直到陀螺仪返回正确的方向角。当小车摄像头检测目标点并距离目标点适当距离时,则不再前进。此过程中,激光雷达模块用于检测路沿突出及前方避障处理。
ROS功能包设计与实现(即借助ros平台实现本发明的具体过程):
(1)设计要求
·该ROS功能包生成的节点之间能通过ROS建立相互之间的连接,并通过相互订阅所需的消息话题完成相互之间的数据传输计算图如图【计算图编号】所示。
·该ROS功能包生成的节点能够分别单独运行和处理摄像头数据,激光雷达数据,STM32F104回传的数据,RFID数据,并转化成相关指令相互调节节点与节点之间的运行。
·该ROS功能包生成的节点不仅应可以存在于主控板卡树莓派上还应该可以存在于上位机系统中方便分布式的处理以便减轻机器人的运算任务。
·该ROS功能包生成的节点应该可以被ROS的QT工具查看运行状况,并可以随时关闭,此外当一个节点在运行中因出现某种问题而关闭时,其他节点不会受到影响。
(2)ROS功能包设计思路
使用C++编程语言和Python,编写部分ROS功能包另外部分使用并修改ROS提供的相关功能包,在ROS功能包编写中都有基本的订阅和发布框架,笔者这里主要采用了消息编程,此外,对每个功能包都编写有在ROSmaster上注册的代码以便功能包之间消息的发布和订阅,最后,将部分计算复杂度高的功能包放到PC端上编译和处理,PC端可以随时通过相关命令查看功能包生成的节点运行状态。
在ubantu系统下找到ROS的工作空间/catkin_ws路径下的/src文件,先通过命令$catkin_create_pkgpakeage_nameroscpprospystd_msgs命令建立相关的功能包,并在新建的功能包的/src目录下建立cpp文件在/include路径下建立需要的cpp头文件,对每个cpp都需写好初始化代码且对于订阅者写好回调函数以便进行相关数据的回传和再处理,对于图像识别的功能包中对摄像头的数据消息进行订阅,如果没有接受到消息则在打印摄像头未连接消息并循环等待,若接受到数据消息则对数据先后进行三通道拆分,高斯模糊,二值化,轮廓检测,计算轮廓中心,作框处理并用逆透视算法得出火源位置发布位置消息,并在对应的显示窗口中显示,同时如果在上位机中选中中心切换或者当前小车位置显示,对于SLAM_GMAPPING功能包无需修改部分订阅消息的代码,对于自主导航功能包对火源位置消息进行订阅,若没有消息发布则循环等待,若有消息发布则处理消息并转化成地图中的目标位置消息,同时订阅激光雷达数据和里程数据通过路径规划得出最佳的行进路线,转化成移动消息发布给底盘驱动节点,若在行进过程中收集环境发生了改变或着出现障碍物则进行相应的避障,若在行进过程中其他节点关闭则以最后一次消息数据为基础继续发布行进指令直到PC端关闭该节点,这样以保证能在与上位机断开状态下继续进行相关灭火任务。如果出现了其他意外情况,用户可以通过PC端发送指令或者关闭相关节点或者查看节点的运行状况对履带车进行相关控制。
(3)ROS功能包及节点关系和特性说明
为建图时各节点之间消息的发布和订阅关系,由于ROS采用的是分布式的所以各节点之间的运行互不影响,当一个节点被关闭时其他节点仍然可以正常运行,这样不仅能让消防机器人能在突发的脱机状况保持正常运行还可以减轻消防机器人的处理任务提高机器人时时处理的性能,此外节点运行状态和发布的消息都可以在ROS上查看以便用户能够更加清楚的了解消防机器人的运行状态和相关错误的快速排查。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1. 一种基于 SLAM 技术与图像识别的火源定位方法,其特征在于,包括以下步骤:
S1,自主移动机器人通过激光雷达返回的数据结合 SLAM 算法构建实时地图并保存;具体包括:自主移动机器人利用ROS平台订阅的激光雷达发布的数据话题、机器人底盘返回的里程数据以及机器人控制系统里配置好的坐标关系,通过SLAM-GMAPPING算法得知车体当前的姿态和周围的环境信息;上位机发送移动指令控制所述机器人进行相应的移动,从而建立出一张完整的地图;
S2,机器人基于建立的实时地图进行自主行进,并通过摄像头捕捉图像进行火源识别与定位;具体的,进行火源识别与定位时,首先,对图像进行HSV转换,并分别对RGB与HSV两种空间上的图像进行处理,设定阈值对颜色分析,再综合二者的处理结果,得出类似火源物体的确切区域;其次,通过烟雾传感器与温度传感器,测定是否有烟雾产生、是否达到火源的温度,以区分颜色特征与火源相似的物体,识别出火源;最后,将火源中心标记于图像上,并对图像进行逆透视处理,将图像坐标转化为现实世界坐标,从而确定出火源的位置及距离;其中,所述的对图像进行HSV转换,并分别对RGB与HSV两种空间上的图像进行处理,设定阈值对颜色分析,再综合二者的处理结果,得出类似火源物体的确切区域具体包括:首先对图像RGB通道进行拆分;其次,使用高斯滤波对图像平滑化处理,对图像各通道设定相关阈值,将降噪后的图像加以二值化,并对RGB三通道的图像进行膨胀、腐蚀、开闭运算的多次形态学操作,而后将图像转换为HSV颜色空间中,与原RGB三通道处理后的图像叠加得到联合运算出的类似火源物体的位置图像;再次,利用canny轮廓检测技术处理三通道联合运算出的图像,将类似火源物体的轮廓提取出来,再通过轮廓重心提取算法,提取轮廓重心,同时利用openCV的最小边界矩形,框出类似火源物体的确切区域;利用canny 轮廓检测技术提取火焰的轮廓时,采用关键点检测法进行轮廓检测;其中,通过一个移动核去遍历矩阵,标记图像对应的相邻像素点颜色变化超过像素差异最小均值处为一个关键点;当图像用几个像素点即可唯一表示时,所述的几个像素点即为关键点。
2. 根据权利要求 1 所述的基于 SLAM 技术与图像识别的火源定位方法,其特征在于,步骤S2 中所述的机器人基于建立的实时地图进行自主行进,具体包括:
S21,机器人利用 RVIZ 工具复现已构建好的地图;
S22,复现所述地图后,机器人根据激光雷达返回的雷达数据初步判断机器人当前的位置, 然后根据 RFID 读写模块获取的 RFID 模块的已知位置信息校准机器人自身当前的实际位置;
S23,上位机通过 RVIZ 工具选定目标点并发送自主行进指令;所述机器人接收到相关指令后根据激光雷达返回的数据并结合所述地图完成点对点的自主导航。
3.根据权利要求 1 所述的基于SLAM技术与图像识别的火源定位方法,其特征在于,步骤S2 中,所述的轮廓重心提取算法,即在提取完所需的轮廓之后,将轮廓所有点先进行越界修正,将修正后点的轮廓整体的所有点的横纵坐标累加后求平均值,即得火源的重心坐标。
4.根据权利要求1所述的基于SLAM技术与图像识别的火源定位方法,其特征在于,采用直边界矩形来求取最小边界矩形。
5.根据权利要求1所述的基于SLAM技术与图像识别的火源定位方法,其特征在于,还包括:
S3,当识别到火源后,机器人将火源位置作为目标位置,通过Simple trajectorygenerator算法计算获得车体的当前位置对应的在地图中到达目标位置的最短路径;所述机器人根据该最短路径进行行进。
6.根据权利要求5所述的基于SLAM技术与图像识别的火源定位方法,其特征在于,所述的通过Simple trajectory generator算法计算获得车体的当前位置对应的在地图中到达目标位置的最短路径,具体包括以下步骤:
S31,生成样本路径:
(1)获取当前的x轴速度vx、y轴速度vy和z轴转向角速度th;
(2)获取下发控制命令的频率H,算出每个控制命令的周期1/H = sim_period_;
(3)根据命令周期、加速度、减速度、最大速度、最小速度,算出下个周期时,x轴速度的最大值和最小值及y轴速度的最大值和最小值;
(4)获取每个速度的采样率及相应的采样标本;
(5)利用穷举法,针对vx、vy、th的所有标本进行全组合;
(6)针对每个样本速度,在sim_period_时间内,生成一条路径;
S32,最优路径选择:
由公式cost=pdist_scale_*path_dist+goal_dist*gdist_scale_+occdist_scale_*occ_cost得出最优路径cost;其中occ_cost为一个变量,路径上的每个采样点在数组costmap上对应的值中的最大值保存在变量occ_cost中;path_dist:路径终点到全局路径的偏离距离;goal_dist:路径终点到局部路径目标点的偏离距离;pdis_scale_、gdist_scale_和occdist_scale_:可变因子。
7.实现权利要求 1-6 任一项所述方法的基于 SLAM 技术与图像识别的火源定位系统,其特征在于,包括:上位机(1)和自主移动机器人(2),所述上位机(1)用于接收自主移动机器人(2)返回的实时运行数据,并向其发送相关指令;所述的自主移动机器人(2)包括陀螺仪(3)、激光雷达(4)、摄像头(5)、温度传感器(6)、烟雾传感器(7)、处理器(8);处理器(8)通过陀螺仪(3)、激光雷达(4)返回的数据结合 SLAM 算法构建实时地图,并使得自主移动机器人(2)基于建立的地图进行自主行进;所述的构建实时地图具体包括:自主移动机器人(2)利用ROS平台订阅的激光雷达发布的数据话题、机器人底盘返回的里程数据以及机器人控制系统里配置好的坐标关系,通过SLAM-GMAPPING算法得知车体当前的姿态和周围的环境信息;上位机(1)发送移动指令控制所述机器人进行相应的移动,从而建立出一张完整的地图;处理器(8)利用摄像头(5) 捕捉的图像进行火源识别;具体的,进行火源识别与定位时,首先,处理器(8)对图像进行HSV 转换,并分别对 RGB 与 HSV 两种空间上的图像进行处理,设定阈值对颜色分析, 再综合二者的处理结果,得出类似火源物体的确切区域;其次,通过烟雾传感器(7)与温度传感器(6),测定是否有烟雾产生、是否达到火源的温度,以区分颜色特征与火源相似的物体,识别出火源;最后,将火源中心标记于图像上,并对图像进行逆透视处理,将图像坐标转化为现实世界坐标,从而确定出火源的位置及距离;其中,所述的对图像进行HSV 转换,并分别对 RGB 与 HSV 两种空间上的图像进行处理,设定阈值对颜色分析,再综合二者的处理结果,得出类似火源物体的确切区域具体包括:首先对图像 RGB 通道进行拆分;其次,使用高斯滤波对图像平滑化处理,对图像各通道设定相关阈值,将降噪后的图像加以二值化,并对 RGB 三通道的图像进行膨胀、腐蚀、开闭运算的多次形态学操作, 而后将图像转换为 HSV 颜色空间中,与原 RGB 三通道处理后的图像叠加得到联合运算出的类似火源物体的位置图像;再次,利用 canny 轮廓检测技术处理三通道联合运算出的图像,将类似火源物体的轮廓提取出来,再通过轮廓重心提取算法,提取轮廓重心,同时利用 openCV 的最小边界矩形,框出类似火源物体的确切区域;利用canny 轮廓检测技术提取火焰的轮廓时,采用关键点检测法进行轮廓检测;其中,通过一个移动核去遍历矩阵,标记图像对应的相邻像素点颜色变化超过像素差异最小均值处为一个关键点;当图像用几个像素点即可唯一表示时,所述的几个像素点即为关键点。
8.根据权利要求7所述的基于 SLAM 技术与图像识别的火源定位系统,其特征在于,所述的自主移动机器人(2)还包括 RFID 读写模块(9),所述的 RFID 读写模块(9)与处理器(8)连接,用于自主移动机器人(2)根据 RFID 读写模块(9)获取的 RFID 模块的已知位置信息校准机器人自身当前的实际位置;RFID 读写模块( 9 )采用LMRF3060 模块;激光雷达(4)采用 RPLIDAR A1 激光雷达模块;所述的自主移动机器人(2)以两个直流无刷电机作为驱动电机;所述温度传感器(6)为红外温度传感器,其辅助进行模糊定位,以确保车体转到大致位置使得摄像头能够捕捉到包含火源的图像。
CN201910418881.1A 2019-05-20 2019-05-20 基于slam技术与图像识别的火源定位方法及系统 Active CN110082781B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910418881.1A CN110082781B (zh) 2019-05-20 2019-05-20 基于slam技术与图像识别的火源定位方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910418881.1A CN110082781B (zh) 2019-05-20 2019-05-20 基于slam技术与图像识别的火源定位方法及系统

Publications (2)

Publication Number Publication Date
CN110082781A CN110082781A (zh) 2019-08-02
CN110082781B true CN110082781B (zh) 2021-12-17

Family

ID=67420993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910418881.1A Active CN110082781B (zh) 2019-05-20 2019-05-20 基于slam技术与图像识别的火源定位方法及系统

Country Status (1)

Country Link
CN (1) CN110082781B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110631586A (zh) * 2019-09-26 2019-12-31 珠海市一微半导体有限公司 基于视觉slam的地图构建的方法、导航系统及装置
CN110673603B (zh) * 2019-10-31 2023-10-24 郑州轻工业大学 一种火场自主导航侦察机器人
CN110837822B (zh) * 2019-12-09 2022-09-09 国网智能科技股份有限公司 基于多目视觉的消防机器人喷射曲线调整方法及装置
CN110909719A (zh) * 2019-12-12 2020-03-24 齐鲁工业大学 特定环境中基于运动摄像头的闪烁目标检测系统及方法
CN111111074B (zh) * 2019-12-16 2021-11-16 康威通信技术股份有限公司 一种电力隧道消防机器人灭火调度方法及系统
CN110955263A (zh) * 2019-12-31 2020-04-03 中国电子科技集团公司信息科学研究院 移动机器人的主动感知与自主趋近方法及移动机器人系统
CN111258309A (zh) * 2020-01-15 2020-06-09 上海锵玫人工智能科技有限公司 一种用于城市消防机器人的灭火方法
CN111559259B (zh) * 2020-04-16 2022-07-22 江苏大学 基于ros的具有激光导航功能的高效率无线充电智能小车及控制方法
CN113822094B (zh) * 2020-06-02 2024-01-16 苏州科瓴精密机械科技有限公司 基于图像识别工作位置的方法、系统,机器人及存储介质
CN111973919A (zh) * 2020-06-24 2020-11-24 江苏深渡消防装备科技有限公司 一种基于图像识别的火源精准定位方法
EP4154946A4 (en) * 2020-06-30 2024-02-28 Siemens Ag FIRE EXTINGUISHING SYSTEM, SERVER, FIRE EXTINGUISHING ROBOTS AND FIRE EXTINGUISHING PROCEDURES
CN113298027B (zh) * 2021-06-15 2023-01-13 济南博观智能科技有限公司 一种火焰检测方法、装置、电子设备和存储介质
CN115294717B (zh) * 2022-08-03 2023-12-22 中国民用航空飞行学院 一种无人机火灾探测方法、装置、介质

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5762292A (en) * 1988-09-08 1998-06-09 Daimler-Benz Aerospace Ag Apparatus for identification and tracking of objects
WO2008060257A2 (en) * 2005-05-25 2008-05-22 Lau Daniel L Projectile tracking system
EP2418509A1 (en) * 2010-08-09 2012-02-15 Selex Sistemi Integrati S.p.A. Three-dimensional target tracking
CN103096120A (zh) * 2011-10-28 2013-05-08 浙江大华技术股份有限公司 视频图像异常状态检测方法及装置
CN104299351A (zh) * 2014-10-22 2015-01-21 常州大学 智能预警灭火机器人
CN106114095A (zh) * 2016-06-27 2016-11-16 中国石油大学(华东) 一种水陆两栖探测机器人
CN107679508A (zh) * 2017-10-17 2018-02-09 广州汽车集团股份有限公司 交通标志检测识别方法、装置及系统
CN107992044A (zh) * 2017-12-12 2018-05-04 东北大学秦皇岛分校 一种机器人的自主行进控制方法及自主行进机器人系统
CN108230343A (zh) * 2018-01-05 2018-06-29 厦门华联电子股份有限公司 一种图像处理方法及装置
CN108733062A (zh) * 2018-06-25 2018-11-02 山东大学 家庭陪护机器人自主充电系统及方法
CN109341694A (zh) * 2018-11-12 2019-02-15 哈尔滨理工大学 一种移动探测机器人的自主定位导航方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8751151B2 (en) * 2012-06-12 2014-06-10 Trx Systems, Inc. System and method for localizing a trackee at a location and mapping the location using inertial sensor information
CN101625789A (zh) * 2008-07-07 2010-01-13 北京东方泰坦科技有限公司 基于烟火智能识别的森林火灾实时监测方法
US8537376B2 (en) * 2011-04-15 2013-09-17 Faro Technologies, Inc. Enhanced position detector in laser tracker
US10037627B2 (en) * 2015-08-14 2018-07-31 Argis Technologies Llc Augmented visualization system for hidden structures
CN106097335B (zh) * 2016-06-08 2019-01-25 安翰光电技术(武汉)有限公司 消化道病灶图像识别系统及识别方法
EP3800618B1 (en) * 2016-08-30 2022-12-07 Snap Inc. Systems and methods for simultaneous localization and mapping
CN107065874A (zh) * 2017-04-13 2017-08-18 常州大学怀德学院 一种基于激光slam技术的消防巡逻智能车
JP7058471B2 (ja) * 2017-04-17 2022-04-22 キヤノン株式会社 画像処理装置、画像処理方法
CN108932736B (zh) * 2018-05-30 2022-10-11 南昌大学 二维激光雷达点云数据处理方法以及动态机器人位姿校准方法
CN108876856B (zh) * 2018-06-29 2020-10-09 北京航空航天大学 一种大型建筑火灾火源识别定位方法及系统
CN109048846A (zh) * 2018-09-25 2018-12-21 五邑大学 一种烟雾巡检机器人及其控制方法

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5762292A (en) * 1988-09-08 1998-06-09 Daimler-Benz Aerospace Ag Apparatus for identification and tracking of objects
WO2008060257A2 (en) * 2005-05-25 2008-05-22 Lau Daniel L Projectile tracking system
EP2418509A1 (en) * 2010-08-09 2012-02-15 Selex Sistemi Integrati S.p.A. Three-dimensional target tracking
CN103096120A (zh) * 2011-10-28 2013-05-08 浙江大华技术股份有限公司 视频图像异常状态检测方法及装置
CN104299351A (zh) * 2014-10-22 2015-01-21 常州大学 智能预警灭火机器人
CN106114095A (zh) * 2016-06-27 2016-11-16 中国石油大学(华东) 一种水陆两栖探测机器人
CN107679508A (zh) * 2017-10-17 2018-02-09 广州汽车集团股份有限公司 交通标志检测识别方法、装置及系统
CN107992044A (zh) * 2017-12-12 2018-05-04 东北大学秦皇岛分校 一种机器人的自主行进控制方法及自主行进机器人系统
CN108230343A (zh) * 2018-01-05 2018-06-29 厦门华联电子股份有限公司 一种图像处理方法及装置
CN108733062A (zh) * 2018-06-25 2018-11-02 山东大学 家庭陪护机器人自主充电系统及方法
CN109341694A (zh) * 2018-11-12 2019-02-15 哈尔滨理工大学 一种移动探测机器人的自主定位导航方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
A Fuzzy C-Means and Hierarchical Voting Based RSSI Quantify Localization Method for Wireless Sensor Network;Long Cheng 等;《IEEE Access》;20190409;第47411-47422页 *
ROS导航路径规划算法;sunyoop;《https://blog.csdn.net/sunyoop/article/details/79298023?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~all~first_rank_v2~rank_v25-2-79298023.nonecase》;20180607;第1-2页 *
基于HSV空间的彩色图像分割;包全磊;《软件导刊》;20100731;第9卷(第7期);第171-172页 *
基于双目立体匹配的实时火源检测与定位算法;王腾飞;《2018 3rd International Conference on Industrial Electronics and Applications》;20180727;第117-123页 *
基于机器视觉的非结构化道路识别与障碍物检测研究;钟鹏飞;《中国优秀硕士学位论文全文数据库-农业科技辑》;20170315;第9-25页 *

Also Published As

Publication number Publication date
CN110082781A (zh) 2019-08-02

Similar Documents

Publication Publication Date Title
CN110082781B (zh) 基于slam技术与图像识别的火源定位方法及系统
CN110253570B (zh) 基于视觉的工业机械臂人机安全系统
CN111897332B (zh) 一种语义智能变电站机器人仿人巡视作业方法及系统
CN105665970B (zh) 用于焊接机器人的路径点自动生成系统和方法
CN111308490B (zh) 基于单线激光雷达的平衡车室内定位与导航系统
US10278333B2 (en) Pruning robot system
US7211980B1 (en) Robotic follow system and method
US8271132B2 (en) System and method for seamless task-directed autonomy for robots
US7620477B2 (en) Robotic intelligence kernel
CN101966617B (zh) 用于焊接机器人连续运动的激光视觉焊件特征检测方法
CN110163930A (zh) 车道线生成方法、装置、设备、系统及可读存储介质
CN108673501A (zh) 一种机器人的目标跟随方法及装置
CN101973032A (zh) 一种焊接机器人线结构光视觉传感器离线编程系统和方法
CN111982114A (zh) 一种采用imu数据融合估计三维位姿的救援机器人
CN113311821A (zh) 一种多悬垂管道探伤移动机器人的建图与定位系统及方法
CN113085896A (zh) 一种现代有轨清洁车辅助自动驾驶系统及方法
CN115932882A (zh) 通过自主机器人载具提供环境的3d探测的系统
CN114460939A (zh) 复杂环境下智能行走机器人自主导航改进方法
Lim et al. Evolution of a reliable and extensible high-level control system for an autonomous car
de la Puente et al. 3D feature based mapping towards mobile robots' enhanced performance in rescue missions
CN110656975B (zh) 一种基于虚拟现实与acp平行智能的隧道救援系统及方法
CN115648221A (zh) 基于ros系统的教育机器人
CN115902977A (zh) 基于视觉和gps的变电站机器人双重定位方法及系统
Klaser et al. Simulation of an autonomous vehicle with a vision-based navigation system in unstructured terrains using OctoMap
CN115752474A (zh) 非平坦地面环境下的机器人导航规划方法、装置及机器人

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant