通用自主机器人相对区域地图信息导航系统.docVIP

通用自主机器人相对区域地图信息导航系统.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
通用自主机器人相对区域地图信息导航系统

通用自主机器人相对区域地图信息导航系统 上海卢湾高级中学 董忍仁 张倬 指导老师:张晓骏 关键字(Key Words): 智能机器人 相对区域地图信息 自主推测导航 摘要 本文通过对自主机器人导航算法的分析探索,提出了相对区域地图信息的概念。并以此结合多种信息进行自主推测导航。在此基础上实现自主环境定位和路程的自主规划。 这套算法是模拟了人的思维模式和行为特征,具有较强的智能性、通用性和灵活性,并有较大的发展潜力。 前言 机器人自主导航一直是颇受关注的课题,特别是智能化的自主导航也并没有达到成熟的程度。 在对几个智能机器人成功先例的研究过程中我们发现,在大多数需要移动的智能机器人任务中,大多都可以事先得到十分精确地图,或相关的信息。如何合理利用这些信息,在机器人执行任务之前,事先进行周密规划,或在执行动态任务中进行动态的实时的规划。成为了智能化自主导航的关键。 相对区域地图信息的表示   对地图信息的识别是自主机器人行为的前提,而其中又有精确识别和模糊识别之分,为了使机器人能更接近地模拟人的思维模式,我们提出了相对区域地图的概念。 相对区域的概念 相对区域地图中,首先要涉及到的是区域的划分。对于地图的识别,机器人多以坐标定位为主,像GPS导航就是一个很好的例子,我们统称为精确识别。而人面对一张复杂的地图,则原理与此截然不同。人所认知的不是精确的坐标值,而是一个相对的抽象信息:比如说,从A地向正南方向沿B马路将与C马路十字相交、然后在下一个丁字路口左拐至D马路……最后抵达E地。这个,我们称之为相对识别。在这其中ABCDE这些个地域是有其固定特征的抽象概念,而且它们在地图中的位置是连续相对的。 所以,我们把“在一个固定地理环境中,具有与其他地域相对的、连续的位置不同特征的抽象地域概念”称为相对区域,在本文中简称区域。 相对区域地图的编码 单独的相对区域是没有任何意义的,只有把它们有机的组织起来,表述区域之间的相对联系,才能够具有完整的意义。这便形成了相对区域地图。 我们以智能机器人灭火比赛的场地为例,表述一下相对区域地图编码的规则。 为了便于研究,我们对日常的地理信息做出了简化处理:(事实上无论用何种方式表示,只要可以表示区域间的差异即可)1、我们把方向简化为4个直角方向;2、我们把地域特征仅表示为每一方向的有无障碍,即墙体的有无。 图一:灭火场地的区域划分 区域的划分可见图2, 地图中所有的区域它们的位置特征不仅是相对的,而且是连续的,这些区域就是智能导航的基础。 我们把0作为一个空区域即初始值来处理。每一个区域的编号必须是唯一、不重复的,且数序与相对位置等地域特征无关。图中的区域号可以随机指定。为了讨论方便,我们暂把图2的区域作如上编号,实际应用中序号完全可以由机器人随机产生。 相对区域模型的建立 建立合理、正确的区域信息模型是实现自主推测导航的关键。 我们利用面向对象的程序设计(OOP)思想来建立这一模型。因为,这样可以大大简化区域间的操作,特别在在路程生成时尤为突出。在C++中建立一个“相对区域”的类,Class Carea。简略定义如下: Class Carea { public: Int get_ir(); //获取四周障碍信息, Int* coordinates();//获取区域坐标,用一维四列数组表示 Carea* get_next(int n);//获取指定方向的相连区域号 Carea* get_before();//自主路径搜索时经过的前一区域 private: int coordinates[4];//区域坐标 int ir;//障碍信息 int num;//区域号 Carea* next[4];//四周相连区域 } 其中,核心是四周相连区域的表示和障碍信息,而其他则主要在自主路程生成时用到。 首先要确定一个始方向 即0方向,然后依顺时针为1方向、2方向、3方向(见图3)。这个方向对应next[i]中的索引值。以图2中的11号区域为例,设正上方为的始方向(即0方向),相连区域信息为:next[0]=0(墙)、next[1]=10号区域的指针、next[2]=0(墙)、next[3]=12号区域的指针。障碍信息实际是相连区域信息的简化表现形式,直接表示接受到的传感器信息。如遇到有效的相连区域就以0表示,即此方向上无障碍;如遇墙壁就用1表示,即有障碍。用一个整形变量表示,int ir。高位到低位对应顺时针方向。11号区域的障碍信息表示为:0b1010。 图三:相连区域信息 int num记录区域号。另外,还用int coordinates[4]来表示区域的矩形坐标定位。使其的适用范围更广。 我们用Class C

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档