Profile - CN410


CN410

具有自动巡逻和自主识别 功能的火灾预防机器人

清华大学
自动化系


Finals


[print]


Project

Name of Project:具有自动巡逻和自主识别 功能的火灾预防机器人

Contact Information

Name:杨文韬
E-Mail:ywt72797995@sina.com
Telephone:010-51532122
Mobile Phone:13810372862
Mailing Address:清华大学紫荆学生公寓2号楼122A

Contest Advisor

Name:秦俭,陈莉平
E-Mail:lysh@tsinghua.edu.cn
Telephone:13810068093

Members

No.NameE-MailEnglish Name
1杨文韬ywt72797995@sina.comYang Wentao
2余博诚charliehw2002@hotmail.comYu Bocheng
3葛正琪gzq89.student@sina.comGe Zhengqi

Project Paper - view as Preliminary(2009/06/15), Final(2009/09/14), Draft, Latest

1. 设计概述 (Preliminary Paper)

第一部分 设计概述

 

l  设计意图

提起火灾,人们会联想起一起起悲剧。通过公安部公布的数据分析发现,全国每年发生火灾的次数波动不定,但损失逐年增加;家庭火灾次数减少,工厂企业及公共场所,火灾次数增加。因此,工厂企业及公共场所的火灾防范工作成为防火工作的重中之重。

传统灭火防火设备有其局限性室内火灾监控系统采用点阵式布局,造价高、灵敏度差、范围有限;传统灭火机器人只能人工操纵,不能够自主识别,不具有预防功能

为了减小火灾的发生,我们要防患于未然,即当有发生火灾的可能(如烟头等小火源)时,在第一时间将其发现并且扑灭。为此我们设计了一个灭火机器人,可以在第一时间感知到潜在的火灾隐患并将其扑灭,并通过无线网络向总控室发送警报或处理报告。它可实现大范围的火灾预防,适合工厂企业及公共场所;监控与灭火相结合;具有远程控制能力

 

l  适用范围及针对用户群

具有自动巡逻和自主识别功能的火灾预防机器人主要用于大型仓库或其他大面积、开阔场地的火灾预防工作,特别适用于大型化工厂、林场、木材加工基地、码头、货场等防火级别较高、不适合安装固定火灾监视系统的地方。同时,由于该作品基于FPGA的设计,使得机器人的软件修改及模块重构变得简单易行,具有很强的可扩展性。在无需修改或经过简单的硬件改动后,就可以实现诸如图书馆书目整理、超市货物上架、展览馆内导游等丰富的功能。

 

l  采用NIOS II 的优势

    1 NIOS II软核的性能可以根据用户的需求来进行选择与裁减,我们可以根据项目的最终需求来定制系统。而且Altera提供了丰富的IP核库供我们在设计时进行选择,在提高了系统性能同时也减短了设计周期,让我们可以专注于项目具体内容的实现。

    2 QuartusSOPC Builder, NIOS EDS这一系列集成开发环境可以让我们更方便快捷地将设计实现出来,包括硬件的配置和软件的正确运行。

     3NIOS II软核可以集成256条用户自定义指令,在硬件层面上加速系统运行速度,相对于其它硬件已固定的处理器可以带来运行速度上的极大提高。

   4 NIOS II提供的C2H编译器使得我们不必再担心C语言程序在FPGA上的运行效率,在实现软件时可以更贴近正常的C语言编程思路,利用C2H编译器建立的硬件加速器即可解决有些C代码在FPGA上执行时效率低下的问题。

 

(Revision: 3 / 2009-09-13 22:15:10)

2. 功能描述 (Final Project Paper)

 

第二部分功能描述
【基本功能】
可以沿预先设定的轨道巡逻。巡逻时不断转动头部,以探测四周的可疑物体。设定轨道的方法如下:
1、 在地上用油漆(颜色任意,只要与地面颜色有区分度即可)画出轨迹,机器人通过微分算法获取轨道边沿,并沿此轨道巡逻。这种方法适用于中等范围的场所。
2、 通过GPS卫星定位系统按预先设好的路线行走。这种方法适用于大范围的场所。
机器人前面装有红外探测和超声波测距装置,在巡逻的过程中如果遇到障碍,机器人可以躲避。
如果发现有可疑物体,机器人不断向可疑物体移动,通过多种传感器共同判断是否为火源。发现可疑物体的处理方案如下:
1、 如果确认为火源则开启水枪将其喷灭,并向总控发出处理报告;
2、 如果此火源过大,机器人无法将其扑灭,则向总控发出红色警报,可以进行人工扑灭;
3、 如果机器人的传感器无法判断是否为火源,则向总控发出普通警报,总控的安全人员可以进行人工判断,并可以手动控制(也可以语音控制)机器人将火源扑灭。
 
核心功能的实现】
1、火源方位确定
机器人在行进过程中要不断摇头,探测周围是否有可疑物体。机器人判断是否有可疑物体的主要方法是通过红外线探测,因为火源属于高温物体,会向外辐射大量的红外线,在摄像头前面增加一个红外滤光片(红外线通过、可见光截止),这样,就可以滤掉外界可见光的干扰,准确获得火源的方位。
       
2、防止误判
如果只通过红外线判断火源可能会引起误判,所以要增加其他的辅助手段以增强判断这准确度。有三种传感器作为辅助:1、通过火的特征光谱线判断——红外紫外火焰传感器;2、通过温度判断——红外温度仪;3、通过烟雾判断——烟雾传感器。
 
 
3、巡逻方案及道路识别
Ø 在地上用油漆(颜色任意,只要与地面颜色有区分度即可)画出轨迹,机器人通过微分算法获取轨道边沿,并沿此轨道巡逻。这种方法适用于中等范围的场所。
由机器人前面的摄像头获得信息,先进行图像预处理,分别提取R、G、B通道,然后进行加强与滤波,再采用微分边缘检测,最后进行连续性滤波,这样可以在不同的光照环境下都能够准确识别轨道。(具体的识别算法见后面“软件设计——信息的处理和传输”部分)
Ø 通过GPS卫星定位系统按预先设好的路线行走。这种方法适用于大范围的场所。
软件设计——信息的处理和传输】
1、巡线算法
巡线使用位于机器人自载摄像头。对读入的三通道彩色RGB图像的处理流程。
图像处理流程如下图所示:
 

    进行加权均值滤波,是为了消除噪声。图像平滑主要有空域法和频域法两种。空域法中,均值滤波和中值滤波是常用的方法。对于均值滤波,是用一个奇数点的滑动窗口在图像上滑动,将窗口中心点对应图像像素点的灰度值用窗口内各个点的平均值代替。如果滑动窗口规定了在取均值的过程中窗口各个点的权重,即为加权均值滤波。

2、火焰识别算法
火焰识别使用机器人头部的两个摄像头中的一个,在摄像头前装有红外滤光片,使得仅有火焰发出的450nm波段的红外线才能进入摄像头。
图像处理流程如下图所示:
在二值化处理时,根据设定阈值,将较亮的部分认为是火焰,而将较暗的部分认为是背景。二值化处理之后,就只有0和255两种值。接下去是floodfill算法。其基本思想是对图像中的一个点进行扩张,只要是在它相邻位置的值一样的点都被吸收,这样如果是火焰的话,只要火焰中的一点经过floodfill算法处理,则就能通过这一点搜索到整个火焰区域,通过判断这个被搜索区域的大小,太小的区域被认为是噪声,只有大于一定阈值才被认为是火焰。这样便可以检测出火焰。
floodfill的过程中,为了避免冗余计算同一片区域,将搜索过的点的像素值设置成1到254之间的值,这样以后搜索时,由于只有像素值一致的点才被扩充,而未被搜索过的点的像素值只有0或255两种。因此已搜索过的的不会被扩充,从而避免了冗余计算。
 

 

(Revision: 3 / 2009-09-14 20:26:45)

3. 性能参数 (Final Project Paper)

第三部分性能参数

灭火机器人的FPGA硬件资源利用情况如下:
使用到的外部硬件资源:
CCD摄像头
H桥电机驱动板
云台
无线通讯模块(制作中)

 

(Draft / 2009-09-14 21:18:30)

4. 设计结构 (Preliminary Paper)

第四部分 设计结构

 

(Draft / 2009-06-11 00:55:01)

5. 设计方法 (Final Project Paper)

第五部分 设计方法  

系统设计:
       本系统设计包括以下功能模块:
       图像采集处理模块,电机驱动模块,云台控制模块。
       它们以及内部使用到的硬件接口和资源,通过SOPC Builder集成到一个系统下。
       SOPC提供了许多硬件接口的底层驱动,使用时可以直接将它们添到系统中,开始进行上层算法的设计和实现。设计过程中,我们将所需的硬件以及自己设计的模块添至系统,通过Avalon总线集成,利用了SOPC Builder强大的系统集成特性,使系统结构更为清晰。
        除此之外,我们还设计了无线通讯模块、远程PC控制模块,与DE1配合使用。
 
功能模块实现:
 
云台控制模块
        与云台的通信由串口完成。对云台的控制使用PELCO-P协议,每8个字节为一条命令。接收云台的当前状态也以每8个字节为一条状态消息。
要求串口发送的数据格式为:
1位起始位、8位数据、1位停止位,无效验位。波特率:9600B/S。
每条命令的格式为:

字节1
字节2
字节3
字节4
字节5
字节6
字节7
字节8
STX
地址码
指令码1
指令码2
数据码1
数据码2
ETX
校验码

每条状态消息的格式为:

字节1
字节2
字节3
字节4
字节5
字节6
字节7
字节8
STX
动作指令
纵坐标
横坐标
正/误
ETX
ETX
ETX

另外全FF表示正在初始化中。
 
        利用SOPC Builder提供的IP Core,我们可以直接跳过底层串口通信协议的实现,只要进行一些参数设置即可。发送命令的接口内部用8字符的字符串的形式封装好了一些常用命令,根据要发送的命令决定发出的字符,再通过底层协议转换成串口信号。接受状态消息后根据接收到的字符串判断并记录云台当前状态。
 
图像采集处理模块:
 
        实际上本设计中有两个不同的图像采集处理模块:一个利用可见光摄像头实现机器人沿标记路线前行,另一个利用可见光摄像头在增加了红外滤光片后实现机器人发现、识别高温热源。
 
        两个图像采集处理模块的大致流程基本相同。先将CCD摄像头读入的信号进行预处理,得到设定的VGA格式信号后,依次进行二值化处理、边缘检测处理,然后根据处理好的图像判断要进行的操作。
对图像的二值化处理中,由于增加了红外滤光片后摄像头接收到图像亮度改变,因此二值化时热源识别摄像头要的阈值要低于循线摄像头。边缘检测算法利用VGA信号是逐行逐列顺序扫描的特点,通过两行像素点的缓存,检测并标记边缘点。接下来,完成巡线任务的图像采集处理模块通过对一帧经过边缘检测处理的图像进行分析,计算出当前运动的方向和角度,供电机驱动模块使用。而完成热源识别任务的图像采集处理模块则需分析得到的图像的形状、大小是否与一般的热源相符,如果相符则报警并给出信号,供其它模块判断是否应进行灭火操作。
 
电机驱动模块:
        电机驱动模块输入调度灭火机器人运动的方向、速度,输出给到电机驱动板的控制信号。其中关于运动方向的信号由前级命令直接转换得到。由于输出全部使用数字信号,因此速度调节使用PWM波形调制,根据前级要求的速度,通过对高频时钟的不同分频、计数得到相应的PWM波形,给到电机驱动板用以调节速度。
(Draft / 2009-09-14 20:25:33)

6. 设计特点 (Preliminary Paper)

第六部分 设计特点

 

    1)本项目将机器人自主巡逻,获取传感器信息及相应处理,GPS定位,摄像头视觉处理,电机控制,与控制终端的无线通信等许多不同功能的模块集成在一起。对所有模块统一进行调度利用了NIOS CPUAvalon总线,方便地提高了系统性能,简化了系统设计。

    2)由于火灾预防的持续性,机器人必须要时刻不停地采集传感器和摄像头信息并进行处理,控制自己的行动,并与控制终端通信。因此,机器人一直会有大量、持续的与外部的信息交换以及内部信息处理任务,且各个模块需要并行处理,这一点十分适合FPGA的特点,也让我们决定在FPGA上实现该项目。

    3)通过无线通信模块,机器人可以与远程控制终端进行数据交换,向PC控制终端发送环境信息和视频数据,并接受来自终端的控制指令,可以让工作人员在远程进行监控,处理机器人不一定能处理好的复杂情况。进一步扩展还可以实现一定范围内多机器人通过无线网络传输协同工作。

     4)只使用一块FPGA芯片,就完成了大量各种数据输入输出及处理的任务,将硬件构成的复杂程度转化到软件上,大大方便了功能实现和改进。这得益于FPGA的大量I/O口数据并行处理的能力,以及NIOS II软核方便改动,设计周期短的优点。

 

(Draft / 2009-06-11 00:05:31)

7. 总结 (Final Project Paper)

 

第七部分   总结:
 
        本次大赛的设计作品“具有自动巡逻和自主识别 功能的火灾预防机器人”目前已实现了基本的运动与图像处理功能,其他部分的功能仍在机一部的开发中。大赛过程中我们学到了很多新的有关nios的支持,领悟了了niosII处理器强大处理功能和可靠的运行特性。调试过程中,SOPC Builder的高度集成性以及Nios IDE软件集成开发环境的稳定性,使我们的工作非常顺利。
 
         NiosⅡ软核系统的性能是可以根据应用来进行裁减的,定制用户自己的系统,与固定的处理器相比,具有很强的优势。NiosII的用户逻辑功能和用户指令突现Nios处理器的技术亮点,提供了系统实现的多样化特点。同时SOPC简洁的设计理念与高度集成的基本模块,减少了项目对于开发者在技术上的束缚,能够更好的激发我们的创新能力。
 
         ALTERA公司为我们提供了非常好的理论与实现相结合的时间机会,通过大赛,锻炼了我们的科技创新能力,同时也形成了一个团结的科技活动团队。我们对于ALTERA开发的DE系列学习板有课一个全面的了解,在使用过程中对于它合理的设计与良好的性能感触颇深。唯一略有遗憾的是板上没有集成的无线通讯模块,建议在之后的DE系列中可以考虑添加这一部分。

 

(Draft / 2009-09-13 10:46:11)