欢迎来到三一文库! | 帮助中心 三一文库31doc.com 一个上传文档投稿赚钱的网站
三一文库
全部分类
  • 研究报告>
  • 工作总结>
  • 合同范本>
  • 心得体会>
  • 工作报告>
  • 党团相关>
  • 幼儿/小学教育>
  • 高等教育>
  • 经济/贸易/财会>
  • 建筑/环境>
  • 金融/证券>
  • 医学/心理学>
  • ImageVerifierCode 换一换
    首页 三一文库 > 资源分类 > DOC文档下载
     

    迷宫探路智能化机器人的研究与应用-论文.doc

    • 资源ID:3973764       资源大小:29.65KB        全文页数:11页
    • 资源格式: DOC        下载积分:4
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录   微博登录  
    二维码
    微信扫一扫登录
    下载资源需要4
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    迷宫探路智能化机器人的研究与应用-论文.doc

    迷宫探路智能化机器人的研究与应用-论文迷宫探路智能化机器人的研究与应用摘  要:机器人在随机的复杂的多级迷宫里自行找到出路,需要始终坚持一个“靠右原则”,利用智能机器人AS-UII型号,加上扩展配件:红外接收扩展卡,数字指南针,红外测距卡,地面灰度检测卡 这些扩展的性能完成机器人对周围环境信息的获得,通过其微处理系统对信息数据进行处理,执行相应的任务,能够准确分析迷宫出路,快速自行走出人类智力的效率无法快速分析的多极复杂迷宫。关键词:迷宫节点,靠右法则,校正,记录节点,最短路径前  言:迷宫本是一种智力游戏,但当其运用于现实生活中时,又会带来许多军事,科技,以及经济等方面的价值。军事方面诸葛亮的“八阵图”以及数学方面的“中国邮递员问题”,其基本结构均归于迷宫,因此,深入认识迷宫问题,对选择最优化路径,提高工作效率节省消耗等方面都具有重大的价值。在计算机未发明之前,人类无法同时处理大量数据,尤其在记忆功能方面,因此,在当前计算机技术高度发达的情况下,充分利用机器人的数据处理能力,用其来代替人类去探索迷宫,将有很可行的实用价值。众所周知,迷宫,其实是现实中错综复杂地域环境的一种在实验室中的虚拟。此类机器人的扩展可用在军事(比如敌方领地的探测等),室内火灾现场的救人和逃离,复杂管道中的各种工作,古文明遗迹的机器人探索(比如金字塔中迷宫的探索和考察,以及危险环境中的机器人探路等),野外考察的预先探路和路径开辟,空间机器人探索等多方面领域。亦可附加其他各种功能以用于不同领域。是一切现代高级机器人所应该具备的最基本的新型功能和素质。一、研 究 过 程(一)实现目标通过对机器人的扩展组装、命令程序的构思和编写,以及各参数的调试后,将机器人自 任何 迷宫的入口放入,机器人可根据对环境的探测,分析获得数据,执行相应的命令,最终能够自行找到通向出口的路径走出迷宫;并在此基础上,构思总结出对这类机器人的功能的拓展方案,以及这些方案的算法理论。(二)研究材料与仪器性能介绍1.能力风暴智能机器人AS-UII 型号性能指标外形尺寸: 直径=220 mm  高H=150 mm   质量: 1.1 Kg单片机工作频率:2MHz电池供电范围: 5.512 V串口速度:9600 bps            IR振荡频率:37.9KHZ红外检测距离:>30cm编码器分辨率:33脉冲/转轮胎直径:65mm电池:6V,1200mAh镍氢电池2.扩展配件红外接收扩展卡,数字指南针,红外测距卡,地面灰度检测卡3.迷宫(1)迷宫类型:直角弯;跑道宽度处处相同(本实验中均为30cm);为随机建成;一入口和一出口;存在出路。(2)本实验设置:实验地面为瓷砖,出口外地面贴一张黑纸。(三)理论思路1.数学模型:树的遍历本项目的基本数学模型,就是数学图论中的树的遍历。    从理论和实践两个方面来说,都可以把一个迷宫,抽象为图论中的一棵树其结点的度为2或者3。其中迷宫中的每一条路径,都是相应的树的一个分支。而对迷宫的探测,就是对树的一个遍历的过程。在我们这个项目里,所采用的靠右走的方法,对应于树的先序遍历。从上面的对应关系,可以看出,迷宫的最短路径就是    INACDEGHOUT2.实验方向:此工程的难点首先在于直径为22的机器人要在宽度仅为30狭窄的迷宫跑道中执行任务,也就是机器人左右两侧距墙都只有4的距离,实验要保证机器人不擦墙在其中行走自如,我们用三种传感器相互巧妙配合,精心调试,解决此问题。迷宫走法:始终坚持靠着右墙走的原则(当然,始终靠左也可以),即可走出迷宫。(四)实验步骤1.实验部分总述我们解决迷宫探路整个问题的算法如下:流程图:                             2.原理与细节分步(1)设定磁极参数在用指南针进行磁极校正时,四个方向的返回值并不是严格地成相差90°的关系,而是具有相应大小的波动偏差。在机器人停在某一方向上的时候,其返回的数值也不是唯一而是跳动变化的。原因:指南针装置内部的质量问题与误差波动;周围磁场并不均匀。由此,我们做出如下的设计:设定一个参数i :iOrient=GetOrient();if (iOrient>=358 |  iOrient<=2)    i=1   指北if(iOrient>=84 && iOrient<=88)   i=2  指东     if (iOrient>=176 && iOrient<=180)  i=3  指南if (iOrient>=264 && iOrient<=268)  i=4  指西通过改变参数 i ,使各个方向的iOrient 值与其正确匹配。(2)红外测距卡(A)原理:通过发射与接收之间的的时间差,来计算与障碍物的距离。(B)出现的问题:a, 机器人处理命令的速度较低,不能及时地处理返回的数据。b, 红外测距卡的有效测距范围有下限,当超过下限时,其返回值与距离的关系将反转,以至于无法做出正确的判断。c, 在运行过程中,由于机器人前进的速度太快,以至于红外测距卡不能及时、连续地返回变化着的距离所对应的数值。     (C)处理方法:       将其运行过程分成两阶段处理:减速停止       在距离落入规定范围值时,先使机器人减速,以较慢的速度接近障碍物(墙)。从而有利于测距卡适时地返回距离的变化,然后在执行“停”的命令。            if(iIr<60)  driveb(23,21);            if(iIr>60)  driveb(13,11);            if(iIr>80)  stop();(3)意外擦枪擦墙问题及原因:    即使红外测距装置稳定工作,在其过程中由于惯性,机器人仍然会向前冲出一小段距离,以至于使得机身过分地靠近前墙。这样机器人在转弯后,机身更加靠近这一侧的墙,而不是处于跑道中央,容易出现擦墙问题,使机器人的运行出现严重阻碍。解决方案:    利用红外测距卡,使机器人先后退一段,再以很慢的速度接近,从而得到一个很好的距离感。(之所以先后退,是由于测距卡的有效距离有下限。后退之后能够排除机器人进入下限后而造成的错误命令)。void Ijz()/*保持与前墙的距离*/1047迷宫探路智能化机器人的研究与应用if(iIr>50 && iIr<120)      driveb(-23,-21);wait(0.250000);stop();/*防止有些时候靠得太近*/    iIr=analogport(5);    while(iIr<=125)      iIr=analogport(5);driveb(13,11);    stop();   (4)行进过程中的方向校正三重校正问题及原因:机器人的两个主轮运行相应的参数不一致,运行过程中的功率也不是很稳定,使得运行过程中出现偏离跑道中央,导致撞墙。(A)磁极校正a)原理:当机器人朝不同的方向时,通过对应的i 值,确定相应正方向变量iOrient值的范围,从而使机器人在这个范围内运行运行,使机器人始终走在跑道正中。以正北方向为例,实现的程序片段如下 while(i= =1)     while(!(iOrient>=358 | iOrient<=2)     iOrient=GetOrient();     if(iOrient>2 && iOrient<180)                                   adjust(0, -10, 0.05);                                  if(iOrient>180 && iOrient<358)                                   adjust(0, 10, 0.05);                         break;     b)单独使用出现的问题:迷宫中的磁场不均匀,使得有些地方的指南针的返回值与理论值出现严重的偏差,导致出现错误校正。    c) 解决方案:配合前红外校正。(B)前红外校正         a)原理:         利用机器人前红外传感器的返回值,确定机身是否有偏转。                     左偏testf= =1向右校正                     右偏testf= =2向左校正                      testf=ir_detector();                      if(testf= =1)                        adjust(0,15,0.05);                       else if(testf= =2)                        adjust(0,-15,0.05);          b)单独使用的缺陷:     在路口处,前面无侧墙时,由于两面不对称,当其向某一方向偏差时,该方向上的红外信号将无法被反射,或者反射很弱,导致前红外校正testf 不能有正确的返回值。     c)解决方案:侧红外校正。(C)侧红外校正     a)原理:        当机器人偏离角度过大时,可以使用两侧的红外传感器来做出快速的大角度校正!             rr=read1(2);    lr=read2(1);             if(rr= =0)            adjust(0,15,0.05);              if(lr= =0)            adjust(0,-15,0.05); b)缺陷:和前红外校正一样,当它处于路口处时,无法反射红外信号。    如果仅仅是对于校正来说,这是一个缺陷,但是从整体上来说,却是一个很好的互补! 因为,它可以在“路口中断”处得到很好的利用。(5) 引入时间参数首先,测出了机器人在正常区域内行进时,每3秒钟内程序可能执行的校正次数的最大值:18次。然后将程序运行的系统时间以3秒为一份分割,在每一份内记录程序执行校正命令的次数。当它大于20次时,说明此时机器人正处于上述的矛盾校正中,这时可以命令机器人先向前推进一步再执行校正程序,如此反复,直到走出使机器人左右摆动的“磁场混乱”区域,跳出矛盾。times=0;      while(times<20)        tim_1=seconds();         while(tim_2-tim_1)<3.0 && times<20)                   turnjz();times+;;          tim_2=seconds();               if(times>=20)break;else times=0;                             driveb(13,13);wait(0.7);stop();(6)红外测距卡与红外传感器之间的矛盾解决由于前红外的感应范围大于红外测距卡,因此,在正前方有墙的时候,又会出现两者相互抵制的矛盾现象设定前红外校正的范围              if(iIr<60)/*红外校准及其执行范围*/        testf=ir_detector();        if(testf=1)        adjust(0,15,0.05);bumpcheck( );times+;        else if(testf=2)        adjust(0,-15,0.05);bumpcheck( );times+;(7)路口中断在路口处需要进一步探测,并做出相应的行为(比如转弯),必须使机器人及时停在节点路口的正中间以便准确执行下一步命令。  (A)路口种类及相应的返回值        6                          iIr >=100      testr= =3       testl=3       7                          iIr <100      testr= =3       testl=3  iIr <100      testr= =0     迷宫探路智能化机器人的研究与应用(B)路口中断准备:      a)原因:   由于迷宫跑道比较狭窄,机器人的运行速度相对较快,为了防止机器人在路口处由于惯性而冲过路口,或者没有及时停在路口中间,给以后的行进造成不利影响。我们尽量使机器人能够提前感知路口的存在,及早做好准备。使机器人能够在路口正中间停住。 b)解决方案:侧红外校正、红外测距卡减速      侧红外校正:即是,在机身快要进入路口时,由于侧红外接收不到信号,可以先执行校正(以排除是由于走偏造成的侧红外接收不到信号),而后,若确定是由于路口而造成的无信号,则可判定为快要进入节点,这时使之向前推进一小步,从而走到路口中间                        rr=read1(2);               lr=read2(1); if(rr= =0 | lr= =0)stop();wait(0.1);turnjz();rr=read1(2);lr=read2(1);if(rr= =0 | lr= =0)   driveb(13,11);wait(0.1);                                  红外测距卡减速:参见第2点:红外测距卡。(C)路口中断操作:          根据程序的主要算法:靠右走,我们在执行中断操作时,主要从以下两方面考虑:              右边为空,前面有墙,都执行中断操作。                  即  if(iIr>95 | testr= =0 )                         break;(8)转角操作               当已经确定机器人在路口中间停下时,接下来执行相应的转角操作。这里,将涉及到方向值i 的变化,以使得与指南针的校正相匹配。               void turn()/*各方向的转角*/                 if(testr= =0)         drive(0,19);wait(0.5);stop();  /*右转后i自加1,正对下一个方向,之后按着i指示的方向校准*/           i+;           if(i>4)i=1;if(i<1)i=4;     )i=1;if(i<1)i=4;                     else           if(iIr>100 && testl= =3)             wait(0.2);              drive(0,-19);wait(0.6);stop();wait(0.5);               i-;              if(i>4)i=1;if(i<1)i=4;               drive(0,-19);wait(0.6);stop();               i-;               if(i>4)i=1;if(i<1)i=4;                                   当机器人根据对i值的控制,执行完方向“转交”命令后,在新的方向上,必须要机身先走出路口,然后再继续执行探测和前进。否则,机器人将会探测到由还未走出路口而造成的错误的信息,从而陷在路口处。相应程序片段为   j=0;k=0;  iIr=analogport(5);   whi(j-k)>12)     break;     ma_1 =analogport(7);     if(ma_1>200)/*规定走出迷宫条件*/        break;          当机器人根据对i值的控制,执行完方向“转交”命令后,在新的方向上,必须要机身先走出路口,然后再继续执行探测和前进。否则,机器人将会探测到由还未走出路口而造成的错误的信息,从而陷在路口处。相应程序片段为   j=0;k=0;  iIr=analogport(5);   while(iIr<=80 && iIr_1<=80) | testr!=0)/*转后分段前推*/          if(j-k)>12)     break;     ma_1 =analogport(7);     if(ma_1>200)/*规定走出迷宫条件*/        break;       (9)碰撞检测       作用:这主要用来辅助前几项校正,增加机器人正确无误地行走的保险性。当由于意外前面的几种校正办法都没有解决问题,机器人仍然撞到了墙上时,则碰撞传感器可以进行应急处理,以调整机器人在跑道中的位置。   (10)走出迷宫地面灰度检测  机器人在迷宫中探索,程序判断它是否走出迷宫的根据就是地面灰度传感器的返回值。我们在迷宫的出口处铺一张黑纸,从而与迷宫内部的地面形成对比,区分他们之间的返回值。      ma_1 =analogport(7);     if(ma_1>200)/*规定走出迷宫条件*/        break;3.程序综合以上提到的一些细节问题,仅仅是各自的独立表现形式,要真正地得到一个完整的程序,需要把上面的各个独立的分程序有机地融合在一起,使之相互之间融会贯通和谐连接,共同完成我们的工程目标。由此得到成功的总程序(五)成果机器人拓展功能的理论研究(理论拓展部分)机器人探索迷宫最短路径的理论算法:1.记录路口   在机器人能够自行走出迷宫的基础上,我们开始探索让机器人再次进入这个迷宫后,可以直接沿最短路径走出。(1) 理论基础:        设定两个数组a30,b4=0,1,2,3。对于a i ,变量 i 用来记录机器人遇到的路口数目, a i 的取值用来记录机器人在该路口所走的方向。b4用来标定路口的方向。     (A)路口方向标定:如下图,刚进入时为0,向右为1,迷宫探路智能化机器人的研究与应用向前为2,向左为3.  (相对机器人而言)    (B)路口分类:                              3             3                3               3           0     2        0     2         0      2            0      2          1              1               1               1             箭头方向为第一次遇到到该路口时的进入方向。(C)方向的探测返回值:              在三个方向,当探测到前面有墙时,标定为0,无墙时为1,这样用0、1只标明探测结果。R、 L、F三个变量分别用来存放右、左、前三个方向的探测结果(0还是1)。(D)判断路口:、进入路口:R+L+F>=2、死路口:正常死路:R+L+F= =0;             非正常死路:a i >=4;    对于死路口,用一个参数k来表示,其取值为0,1。遇到一个死路口之后,k=1;从一个路口出来时,k=0。、新路口与原路口:机器人先从一个路口出来,若在遇到下一个路口之前,没有遇到任何形式的死路口,即k=1,则可以判定为遇到了新路口,此时变量i 执行i +。若在期间遇到了死路口,即k=1,则可以判定机器人回到了原路口,进行a i 的值的改变。               、非正常死路:当a i 的值大于4的时候,可以判定机器人已经在第i个路口处完成了所有可能的探测,而且该路口所有可能的方向选择都是行不通的,即这个路口判定为非正常死路口,应该关闭,处理方法是,先执行a i =0,然后再使i,这样就在记录中删除了这一路口,并撤回到第i1个路口继续进行探测。    (E)路口处a i 取值的处理:                   每当机器人进入一个新路口时,变量i 执行i +,a i 的初值设为0。不论是进入新路口,还是回到了原路口,当确定机身处于路口中央时,执行一次a i +。这时,再判断如果a i >=4,则判为非正常死路,按照非正常死路的处理方法处理(删除)。若a i 值<4,则按照如下方法处理:R=0,右面有墙,再执行一次a i +;R=1,右面无墙,a i 不变,进入右转命令。              (2) 初步程序          int i=0 ,k=0 ;          int a30=0,b4=0,1,2,3;          while(1)  te   a i +;            if(a i =4)                      a i =0;  i-;  k=1;             turn();             go( );      其中的turn() 函数用来处理路口处转角的方向:           void turn()             if(R+L+F)=0)    turnback();              else    if(R=0)    turnrigth();   else        driveahead();      函数go() 表示在跑道中的执行函数,其中包括校正、转角、前进等命令。2.最短路径(1)原理:当机器人经过前面的几步后,在第一遍探测迷宫之后,将会等到一个被赋值的数组a30 。这时,数组中的每一个元素a i 的取值范围是0、1、2、3。这一连串的数组元素及其取值,就是迷宫最短路径的节点及其相应节点处通向出口的方向。比如:a30 =2,1,3,3,2,1,其意思就是,从机器人在入口处放入开始,当其遇到第一个路口时,a1=2,说明应该向前直行,指向第二个路口;当其遇到第二个路口时,a2=1,说明应该向右转弯,指向第三个路口;当其遇到第三个路口时,a3=3,说明应该向左转弯,指向第四个路口;当其遇到第四个路口时,a4=3,说明应该向左转弯,指向第五个路口;当其遇到第五个路口时,a5=2,说明应该向前直行,指向第六个路口;当其遇到第六个路口时,a6=1,说明应该向右转弯,指向第七个路口;(2)相应的程序:         int  i =0;         while(1)                           while(1)                     test();                     go(); if(R+L+F)>=2)     break;                 if(a i =1)    turnright();                if(a i =2)    driveahead();                if(a i =3)    turnleft();               i+; 二、成果机器人的特点(一)机器人的应用与优点1.此机器人的研究成功,是为今后的进一步应用和拓展奠定基础。2.机器人可在任意迷宫中找到出口,若迷宫有多个出口,则机器人将按照靠右原则,自其中的唯一一个出口走出;若迷宫只有入口而无出口,则机器人将自入口进入后不久会又返回,从入口出来。这也正好适合探索类机器人在实际中应用所应达到的要求。3.此类机器人可应用在无光,高烟,高辐射,空间狭窄,高度危险,路径错综复杂的环境中代替人类高效率地进行工作,比如火灾现场的救人和逃离,复杂管道内部的操作性工作,亦可应用在军事中和空间探索中。4.数字指南针、红外测距卡、红外接收扩展卡三套装置相互协调,三重校正,任务的执行准确性高。编制的命令程序能够应对一定的磁场干扰,高概率成功脱离磁场紊乱区。5.体积小,操纵灵活。(二)存在的问题与机器人的不足之处1.每换到一个新的地域环境,都需要从新调节和设置机器人的各项参数,才能让机器人适应环境而走出迷宫。比如,如果将此项目的迷宫地面由瓷砖换成水泥地面,则程序中所有的速度参数和时间参数需要调节重置。2.机器人虽然能够对抗一定程度磁场干扰,但是如果工作区域干扰磁场的强度比较大,磁场紊乱区域又比较多,则机器人走出迷宫的概率会减至极小。源于本机械装置的数字指南针对强的磁场干扰很敏感。3.机器人行走中途不能受到干扰和中断,否则机器人亦会陷入混乱状态。比如,地面如果不平坦,将行走中的机器人颠翻,或者迷宫墙上有颗钉子,将机器人刮到而突然使机器人方位大变,都会使机器人执行错误的操作而陷入在迷宫中乱转。4.机器人零件脆弱,不能禁受重创,不能有物体袭击机器人。问题总结:机器人的上述问题出现,并不会表明此类机器人无法应用于现实。原因在于我们这次实验所用的硬件性能和品质有限,传感器种类也有限。在今后的应用和拓展中,所用的机器人硬件的性能优劣和传感器的种类直接关系到试验的成功与否。资金和设备适宜,可以做出功能强大的此类“探路机器人”。三、综 述以“靠右走”的简约原则应对迷宫的复杂路径,完成迷宫探路,并做出最短路径以及其他拓展功能的理论算法。此项目的研究,将目前此领域的机器人的智能化程度提升到新一高度。参考文献:1谭浩强 著,C语言程序设计(第二版),清华大学出版社,19992能力风暴智能机器人大学版AS-UII使用手册 ,上海广茂达伙伴机器人有限公司,20073能力风暴智能机器人配件使用手册,上海广茂达伙伴机器人有限公司,20074张洪润  张亚凡  编著,单片机原理与应用,清华大学出版社,2005

    注意事项

    本文(迷宫探路智能化机器人的研究与应用-论文.doc)为本站会员(小小飞)主动上传,三一文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    经营许可证编号:宁ICP备18001539号-1

    三一文库
    收起
    展开