版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精品 料推荐丹城中学灭火机器人共享方案(三)浙江省象山县丹城中学顾熙杰摘要:机器人灭火是中小学机器人比赛的常规项目,怎样提高机器人灭火的速度和稳定性是我们需要重点解决的问题。丹城中学机器人实验室自05 年 9 月份建立以来,经过 9 个多月的实验,灭火机器人的研究取得了初步的成果,使用4、3、2、1 的搜索顺序,灭火最好成绩分别为 2.50 秒、 5.44 秒、9.19 秒和 10.75 秒,稳定成绩一般每个房间要延时半秒左右。 虽然这个成绩和国内的超一流水平还有一定差距,但灭火回家的成功率超过 %99,其中不乏有一些成功的算法, 现作些介绍,和兄弟学校的师生共享研究成果,具体描述基于纳英特机
2、器人平台。关键词:机器人灭火一)火焰检测传感器布局设计灭火机器人最少需要 1 个火焰检测传感器来完成灭火任务, 当然使用烟雾传感器等也是可以的。1) 1 个火焰传感器的安装根据规则,蜡烛高度为15-20 厘米,火焰高度是2-3 厘米,所以如果安装一个火焰检测传感器的话,他的高度大概应该在18 厘米左右。如果安装一组传感器来检测同一目标,重心应该在18 厘米高度位置。2) 2 个火焰传感器的安装如果 2 个火焰传感器是主传感器, 不但要用来检测有没有火焰, 而且还要利用他们进行对光操作,那么一般如下安装。2 个火焰传感器的高度都在18 厘米左右。1精品 料推荐一般安装在机器人前面中心位置,2 个
3、传感器对称安装,一般向外偏转一定角度, 2 个传感器之间有一定的距离,使机器人发现火焰的可能性尽量大,同时对称的位置有利于对准火焰。如果 2 个火焰检测传感器作一组,不是主传感器, 用来检测同一个目标,那么可以如下配置,例如在路过2 号房间时要检测1 号房间有没有火焰,先从火焰位置引出两条线,连接门口两边,作角平分线,火焰传感器的主角度就按照角平分线在机器人上的位置安装,如果用2个传感器来完成这个任务,如下安装。2精品 料推荐2 个传感器之间既要有水平距离,也要有垂直距离,角度也要和主角度有一定的偏转。重心落在主角度上,高度18 厘米左右。由于机器人在行走时不能保证一定平行于墙壁,上面这样安装
4、,发现火焰的可能性最大。3) 3 个火焰传感器的安装方法主要有上面 2 种,计算方法参考上面文章。 有的同学把 3 个传感器安装在同一水平线上,这样稳定性不太好。3精品 料推荐二)黄金分割法在灭火机器人回家算法中的应用以 1 号房间回家为例1 种常见的错误是机器人把灭火圈或者门口当成家,在那里停止不动。为此我们 可以这样处理:先测量从灭火成功走到门口的时间 10 次,求出平均值,如 4 秒钟,根据黄金分割法,我们设置 2.5 秒时间为分界点,先走 2.5 秒右手法则,然后走右手法则到白色地面,这时候就到了门口,这样做的目的是防止机器人误把灭火圈当成门口。门口和家之间也同样处理, 这是一种提高回
5、家稳定性的方法, 这一方法在迷宫搜索阶段同样有效。4精品 料推荐三)队列在灭火机器人白线检测中的应用队列是一种特殊的数据结构,他只能在队头出队,在队尾入队如下图 , 我们引入一种特殊的队。队头指针总是指向 0,所以不需要队头变量队尾指针总是指向最后一个队员的际位置 . 队尾指针指向 0 表示队列是空的它具有下列基本操作:long queue100;/队列数组int queue_rear/队尾指针)清空队queue_rear=0;)入队queue_rear+;queuequeue_rear=mseconds();)求队长return(queue_rear);下面介绍一下他在白线检测中的应用。5精
6、品 料推荐如上图,当机器人路过白线时,他会连续检测到白色,我们把它入队,当队列只有个队员时, 他可能是一个受到污染的白点,当队列长度比较短时, 他可能是门口或灭火圈,当队列长度比较长时,他可能是起点(终点)当机器人路过黑色地面时,我们把队列清空我们使用个地面检测传感器来实现白线检测,假设接模拟口用 1 个火焰检测传感器来区分门口线和灭火圈 , 假设接模拟 4 口 . 这里使用的是纳英特机器人,参考算法如下:int bs=50;/表示白色的灰度值int hs=160;/表示黑色的灰度值int i;void main()queue_rear=0;while(1)migong_left();/走左手
7、法则i=test_white()/ 然后你要根据 i 的值做不同的选择int test_white()6精品 料推荐if (queue_rear=98)/防止队满 .queue_rear=97;if (analog(3)10l)/ 每 10 毫秒作为个时间片 , 参数请根据你的机器人速度修改 .queue_rear+;/入队queuequeue_rear=mseconds();/记下检测到白色的时间.if (queue_rear=10)/10这个参数请根据你的机器人速度修改.return(4);/表示路过家else if (queue_rear=3)/3这个参数请根据你的机器人速度修改./ 表示路过门口或灭火圈 , 要用火焰值来进一步区分 . if (analog(4)=1)return(1);/ 表示正在白色地面上行走,但暂时不知道是在家还是门口.if (analog(3)hs)/位于黑色地面时清空队 .if (queue_rear=10)/10这个参数请根据你的机器人速度修改.queue_rear=0;/清空队列以便下一次检测.return(4);/表示路过家 .else if (queue_rear=3)/3这个参数请根据你的机器人速度修改. /路过门口或灭火圈 , 要
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论