2022年迷宫搜索 .pdf





《2022年迷宫搜索 .pdf》由会员分享,可在线阅读,更多相关《2022年迷宫搜索 .pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第六章迷宫搜索为了找到火焰,我们要让机器人做迷宫搜索,不管使用什么策略,左手法则和右手法则都是迷宫搜索的基础,我们至少要实现其中一种行走方法。在这里作者向大家推荐的方案是机器人左右手法则都会走,这样机器人灭火和回家的效率就比较高,在这里中间朝前的红外传感器是左右手法则共用的传感器。本章我们只是简单介绍一下迷宫算法,关于迷宫法则的深入讨论,作者把它放在第九章再作论述。61 左手法则所谓左手法则就是机器人把左边的障碍物看成是参照物,机器人贴迷宫左侧的墙壁实现行走。要实现左手法则需要用到红外避障传感器,最常见的是用两个或三个传感器的实现方法,两个传感器来实现左手法则调试最简单。三个传感器的实现方法调
2、试比较难,三个以上传感器的用法行走速度不一定就快,传感器之间相互干扰很难解决,在这里我们不作介绍。一个传感器的实现方法稳定性低,实战中很少有人使用。611 三个传感器实现左手法则的算法三个传感器实现左手法则可以使用两个传感器类似的方法,就是“看到墙壁,往外走,看不到墙壁往里走。”在这里我们给出比较典型的算法,下面的算法调试比较难,调试得不好,机器人容易做出自向矛盾的微动作,表现为停步不前,或者在某处发抖。在这里提供的算法原理是:前面看到右转,左45度看到右转,左边看到前进,什么也没有看到转左弧。图 6-1 图 6-1 是三个传感器走左手常见的安装方法,根据调试经验,左传感器也向前偏转一定角度,
3、这样设计,机器人走迷宫的速度会快一些。前红外传感器观察范围20cm 左右,左传感器观察范围 20cm 左右,左 45 度传感器观察范围10cm 左右,红外的观察范围、角度和下面面的马达参数一样,都需要调节以适应自己的机器人。假设纳英特机器人前面传感器接13 口,左 45 度接 12 口,左红外接 11口。具体参考代码如下:Void migong_left()If(digital(13)=1)/前面看到,原地右转 名师资料总结-精品资料欢迎下载-名师精心整理-第 1 页,共 10 页 -motor(0,40);Motor(1,-70);elseIf(digital(12)=1)/左上角 45 度
4、看到,原地右转 motor(0,40);Motor(1,-70);elseIf(digital(11)=1)/左边看到,前进 motor(0,60);Motor(1,60);)Else/什么也没有看到,转左弧 motor(0,-80);Motor(1,80);motor(0,80);Motor(1,80);612 两个传感器实现左手法则的算法不管你使用那个公司的产品,左手法则都可以用两个传感器实现,如图6-2 是两个传感器走左手的常见安装方法。一个传感器在机器人前面中间位置,另一个装在机器人中间位置,朝左前45 度偏转,观察距离10-15 厘米。左手法则的基本原理是看到墙壁,往外走,看不到墙壁
5、往里走。假设纳英特机器人前面传感器接13 口,左 45 度接 11口。则具体参考代码如下:图 6-2 Void migong_left()名师资料总结-精品资料欢迎下载-名师精心整理-第 2 页,共 10 页 -If(digital(13)=1)/前面有墙原地右转。Motor(0,40);/右转时间长,前面有墙壁不前进,否则要撞墙。Motor(1,-100);Sleep(0.05);Else If(digital(11)=1)/左边有墙原地右转并前进。Motor(0,40);/右转时间长。Motor(1,-100);Sleep(0.05);Motor(0,70);/前进无延时,否则要撞墙。Mo
6、tor(1,70);Else/什么也看不见,划左弧。Motor(0,-80);Motor(1,80);Motor(0,80);Motor(1,80);上面我们给出了两个传感器实现左手法则的一种算法,给出这种算法是为了说明两个传感器走左手的原理,在第二章我们论述了把迷宫行走和地面检测结合起来的算法,为无火不进房间的实现提供了基础。613 一个传感器实现左手法则的算法一个传感器走左手法则的算法本身意义不大,我们在这里提供算法只想说明一个问题,就算是到了很困难的程度,我们也要有解决问题的信心。实现的原理和 2 个传感器一样,这里的算法我们把一个传感器当做两个来用,传感器安装在机器人前左45 度角,接
7、 12 号口,红外的观察距离是10-15 厘米左右。图 6-3 名师资料总结-精品资料欢迎下载-名师精心整理-第 3 页,共 10 页 -int m=0;void main()/主程序 while(1)migong_left();void migong_left()/左手法则 if(digital(12)=1)/如果传感器看到墙壁 m+;if(m30000)m=0;if(m%3)30000)m=0;if(m%3)2)/3 个时间片内 2 个时间片左转 motor(0,-70);motor(1,40);sleep(0.03);else/3个时间片内 1 个时间片左转并前进 motor(0,-70
8、);motor(1,40);sleep(0.03);motor(0,50);motor(1,50);名师资料总结-精品资料欢迎下载-名师精心整理-第 7 页,共 10 页 -else/如果传感器没有看到墙壁 motor(0,40);/向右转弧线motor(1,-40);motor(0,80);motor(1,80);63 常用搜索策略介绍搜索策略一般可以分为两大类,一类是常规的搜索法,使用左手法则和右手法则为基础,一般搜索的顺序是1-2-3-4 房间或按照 4-3-2-1 的房间顺序搜索。另一类非常规的搜索法,主要有一技必杀和固定路线两种。以下所讲的方法不存在哪种最好的问题,如果世界上有最好的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年迷宫搜索 2022 迷宫 搜索

限制150内