DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 2483|回复: 0
打印 上一主题 下一主题

[待整理] 移动机器人路径规划算法研究 及仿真系统平台的设计与实现

[复制链接]
跳转到指定楼层
楼主
发表于 2015-4-27 23:21:54 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
一、课题研究背景
          机器人的出现和发展极大地提高了工农业的劳动效率,深刻地改变了人类的生活面貌。机器人学的进步和应用是20世纪自动控制最有说服力的成就,是当代最高意义上的自动化。上世纪五十年代在美国诞生了世界上第一台机器人,从此机器人真正的走进了人们的生活。随着计算机技术、超大规模集成电路、控制理论、人工智能、传感器等相关技术的发展,对机器人学的研究也步入一个崭新的阶段。从早期的可编程的、示教再现型工业机器人到具有一定传感和适应能力的机器人,再到配备多种先进传感器,具有智能的机器人,机器人学的研究经历了从简单到复杂,功能单一到功能多样,从工业制造领域扩展到军事侦察、核工业、航空航天、服务业、医疗器械、基因工程、社会服务、娱乐等领域的过程。在人类对宇宙的探索领域,美国的“勇气”号登陆火星进行自动探测,中国“嫦娥一号”绕月探测,代表了目前机器人的最高技术水平。在可以预见的将来,机器人技术在各个领域的应用将会更加广泛、深入。
           
          当前,机器人正朝着智能化和多样化等方向发展,应用范围得到了极大的扩展。随着国内外研究机构对机器人研究的不断深入,已经开发出各式各样的具有感知、决策、行动和交互能力的特种机器人和各种智能机器人,并推出了各种样机,如移动机器人、微型机器人、水下机器人、军用机器人、服务娱乐机器人、仿人机器人等。
           
          移动机器人是最具代表性的一种机器人。它集中了传感器技术,机械工程,电子工程,自动化控制工程,图像实时处理,计算机视觉以及人工智能等多学科的研究成果,代表机电一体化的最高成就。因此,多学科交叉而形成的机器人学研究也进入了一个崭新的阶段。移动机器人具有重要的军用和民用价值,而且其在恶劣的环境下也具有极其广泛的应用。例如:自动排雷机器人,用于深海海底勘探的水下机器人,无人驾驶的智能车,矿井中煤炭挖掘机器人以及石油和天然气的勘探机器人等等。
           
          移动机器人要想走向实用必须拥有能胜任的运动系统、可靠的导航系统、精确的感知能力和具有既安全又友好地与人一起工作的能力,此外移动机器人的智能性也是决定其应用前景的关键因素。一般来说,智能机器人应具备感知、思维和灵巧动作三个相互作用的基本功能,评价一个移动机器人智能程度的指标包括自主性、适应性和交互性等条件。自主性是指机器人能根据工作任务和周围环境情况,自己确定工作步骤和工作方式;适应性是指机器人具有适应复杂工作环境的能力(主要通过学习),不但能识别和测量周围的物体,还有理解周围环境和所要执行任务的能力,及做出正确的判断并操作和移动等能力;交互性是智能产生的基础,交互包括机器人与环境、机器人与人及机器人之间三种,主要涉及信息的获取、处理和理解。
           
          二、课题研究概述
          机器人涉及到的技术复杂并不断扩展,如多传感器信息融合、路径规划、机器人视觉、智能人机接口等,为此,产生了一系列研究课题。
           
          路径规划是机器人学研究中非常重要的一个部分,不管在科研、经济、军事上都有着重要意义。因此,国内外的科学家围绕路径规划展开的研究非常多,从算法设计、算法分析、仿真实验等各方面开展研究。
           
          2.1 移动机器人简介
          机器人是现今高科技发展的代表方向之一,就其发展来看大致经历了以下三个阶段:
           
          第一阶段是可编程的示教再现型机器人。它不配备任何外部传感器,一般采用简单的开关控制,示教再现控制和可编程控制,机器人的作业路径或运动参数都需要示教或编程给定,它无法感知环境的改变而改善自身的性能、品质。
           
          第二阶段是具有一定的感知功能和一定适应能力的离线编程机器人。这种机器人配备了简单的内部传感器,能感知自身运动的速度、位置、姿态等物理量,并以这些信息的反馈构成闭环控制;简单的外部传感器如简易视觉、力觉传感器等,因而具有部分适应外界环境的能力。
           
          第三阶段是智能型机器人。目前尚处于研究和发展之中,它具有多种外部传感器组成的传感系统,可通过对外部环境信息的获取、处理,准确地描述外部环境,能自主地完成某一项任务。一般地,它拥有自己的知识库、多信息处理系统,可在结构或半结构化的环境中工作,能根据环境的变化做出对应的决策。
           
          移动机器人属智能型机器人范畴,是集环境感知、动态决策与规划、行为控制与执行等多种功能于一体的综合系统。它可根据预先给定的任务,按照已知地图做出目标规划,在行进过程中不断感知周围环境的信息,实时的进行避障、停车及道路跟踪,沿着正确的路径前进。
           
          20世纪90年代以来,以研制高水平的环境信息传感器和信息处理技术,高适应性的移动机器人控制技术,真实环境下的规划技术为标志,开始了移动机器人更高层次的研究。
           
          2.2 移动机器人路径规划定义
          移动机器人路径规划是指在有障碍物的工作环境中,如何寻找一条从给定起点到终点适当的运动路径,使机器人在运动过程中能安全、无碰撞地绕过所有障碍物。这不同于用动态规划等方法求得的最短路径,而是指移动机器人能对静态及动态环境作出综合性判断,进行智能决策。
           
          2.3 移动机器人路径规划分类
          路径规划是移动机器人导航的基本环节之一,根据机器人对环境信息掌握的程度、障碍物的不同,移动机器人的路径规划又可分为以下几类:
          (l)己知环境下静态环境路径规划;
          (2)未知环境下静态环境路径规划;
          (3)已知环境下动态环境路径规划;
          (4)未知环境下动态环境路径规划。
           
          也可根据机器人拥有环境知识情况的不同,可分为两种类型:一是基于环境先验信息已知的全局路径规划,二是基于传感器信息的局部路径规划,后者情况是环境未知或部分未知的,即障碍物的尺寸、形状和位置等信息必须通过传感器获取。
           
          全局路径规划是指根据先验环境模型找出从起始点到目标点的符合一定性能的可行或最优路径,它能够处理完全已知环境中的移动机器人路径规划,涉及的基本问题是世界模型的表达和搜寻策略。当环境发生变化,如出现未知障碍物时,该方法就无能为力了。它是一种事前规划,因此对机器人系统的实时计算能力要求不高,规划结果是全局的、较优的,但是对环境模型的错误及噪声鲁棒性差。这种方法主要包括可视图法、结构空间法、栅格法和拓扑法等。
           
          局部路径规划,环境信息完全未知或部分未知,通过传感器在线地对机器人的工作环境进行探测,以获取障碍物的位置和几何性质等信息,这种规划需要搜集环境数据,并且对该环境模型的动态更新能够随时进行校正;局部规划方法将对环境的建模与搜索融为一体,要求机器人系统具有高速的信息处理能力和计算能力,对环境误差和噪声有较高的鲁棒性,能对规划结果进行实时反馈和校正,但是由于缺乏全局环境信息,所以规划结果有可能不是最优的,甚至可能找不到正确路径或完整路径。
           
          局部路径规划和全局路径规划并没有本质区别。前者只是把全局路径规划的环境考虑得更复杂一些,即环境是动态的。很多适用于全局路径规划的方法经过改进都可以用于局部路径规划;而适用于局部路径规划的方法都可以适用于全局路径规划。
           
          在已知的静态环境中,一般采用一次性规划即可得到一条可行路径。随着机器人应用领域的拓展,环境复杂性相应增加。机器人难以获取关于环境的全部描述,机器人在运动开始时也可能对环境一无所知,机器人只能通过装配于自身的传感器在运动过程中获取环境信息,根据这些局部信息做出相应的分析、判断与决策,提高机器人对环境的适应性。理想的移动机器人应该具有如下能力:当处于一个未知的、动态变化的环境中时,通过探索掌握环境信息,自主地决定路径,避开障碍物,实现任务目标。因此,和全局规划方法相比较,局部规划方法更具有实时性和实用性,局部路径规划的研究成为主流。
         
          2.4 移动机器人路径规划评价标准
          在路径规划研究成果中,设计者可有多种技术选择,像机器人的其他方面一样,技术的选择取决于机器人的运行环境。评估路径规划的标准包括:
           
          (l)算法复杂度:算法是不是太复杂或者占用太多存储空间,以至于机器人不能执行或存储空间不够。
           
          (2)地形表示的充分性:许多研究工作是基于室内是平地的环境。室外机器人可能工作在粗糙地形亡,有陡峭斜坡或者未估计到的区域,例如滑溜沙地或泥浆。如果路径规划算法所产生的路径只能针对适于航行或不适于航行区域的两种极端情况,那么在复杂多变的环境中运行时,机器入将陷人困境。
           
          (3)机器人平台物理限制表示的充分性:机器人有物理限制,最影响路径规划的限制在于机器人是否是完整的。注意到完整机器人能够原地转弯,故它们能在狭小地方转身,这时路径规划算法不必考虑机器人转动半径。同样机器人也可能不是圆的。为了研究目的而制造的机器人通常是圆的,因此它们原地转弯时不会碰撞任何东西。非圆形机器人会引起更多的复杂性,为在狭窄大厅转身,它必须关注后面以确保它不会碰到任何东西。
           
          (4)与反应层的兼容性:路径规划应为慎思式,然而在混合型结构中,反应层负责实现该路径,因此需要有从路径规划到反应层进行转换的技术。
           
          (5)能支持地图的修正和重新规划:路径规划需要一个先验地图,但这张地图可能被证明是严重错误的。因此机器人可能根据一幅地图出发,然后发现地图的错误,通过更新地图实现重新规划。显然允许修取已有规划结果比废弃己有规划并从头开始计算更易被人接受。
           
          2.5 移动机器人路径规划研究综述
          在移动机器人的各项研究和应用中,路径规划是最基本和最重要的问题,移动机器人在其工作环境中必须具有可靠而灵活的自主移动能力,评价此能力的重要标准就是其在不同环境中的路径规划能力。对机器人运动规划的研究是20世纪60年代出现的。1978年Lozano—Perez和Wesley首次引入构型空间(C—空间)的概念构造规划器,对于现代的运动规划问题是一次划时代的革命。在C—空间中,每一个位姿代表着机器人在物理空间中的位置和方位,机器人被当作一个点,运动规划问题就变成在位姿空间中寻找一条从起始位姿点到目标位姿点的连续路径。1987年,J.P,Laumond将机械系统中的非完整性引入到机器人运动规划中解决自动泊车问题。自此,非完整运动规划成为一个新的研究热点一直延续到今天。
           
          移动机器人路径规划可以当作运动规划的一个简单特例。所谓“路径”是指在位姿空间中机器人位姿的一个特定序列,而不考虑机器人位姿的时间因素;而“轨迹”与何时到达路径中的每个部分有关,强调了时间性。机器人运动规划就是对“轨迹”的规划,按照环境建模方式和搜索策略的异同,可将规划方法大致上分成三类,分别是基于自由空间几何构造的规划,前向图搜索算法和近年兴起的以解决高维姿态空间和复杂环境中运动规划为目的的基于随机采样的运动规划。
           
          基于几何构造的规划方法有可视图、切线图、Voronoi图以及精确(近似)栅格分解等方法。
          路径规划是搜索的过程。不管何种规划算法,最终都将归结到在某个空间中搜索一条满足某准则的连续路径问题。利用几何构造的手段描述环境的自由空间,一般都会构成图(栅格被当作一类特殊的图),最终完成轨迹的规划需要图搜索这个很重要的步骤。前向图搜索算法是从起始点出发向目标点搜索的算法,常用的包括贪心算法、Dijkstra算法、A*算法、D*算法,(Dijkstra算法的变种)以及人工势场法等等。
           
          上述算法的计算复杂度与机器人自由度成指数关系,不适合于解决高自由度机器人在复杂环境中的规划,而且都不适合于解决带有微分约束的规划。
           
          三、课题研究的意义
          机器人所有的工作都是建立在机器人能运动到合适的工作点,并能自如的在各种工作环境中自主行走基础上的。
           
          路径规划技术是机器人导航中最重要的环节,同时也是自主式移动机器人技术的一个重要组成部分,仍然是研究的一个重要方面,随着各种新方法和新技术的不断出现,对路径规划的研究有了更广阔的天地。
           
          美国发射的“勇气号”、 “机遇号”两艘火星探测机器人成功登陆火星并自行探路工作就是机器人路径规划算法在科研当中的真实写照。国内外的各大汽车制造工厂都已经广泛的使用工业机械臂来取代人工操作以获取高效率和高利润,这些机械臂对汽车焊点的焊接顺序和焊接路径都属于路径规划的研究领域。
           
          例如恩格尔伯格于1985年研制的“护士助手”自主式机器人,它主要可以完成以下各项任务:运输医疗器材和设备;为病人送饭;送病例、报表及信件;运送药品;运送试验品及试验结果;在医院内送邮件及包裹等。机器人中装有医院的建筑物地图,在确定目的地后机器人利用路径规划算法自主沿走廊行走,由结构光视觉传感器及超声传感器探测突然出现的静止或运动物体。它的全方位触觉传感器保证机器人不与人和物相碰撞。
           
          由以上可知机器人如何规划自己的行走路线,如何有效躲避障碍物,对整个机器人系统来说都是非常重要的。而对机器人路径规划算法的研究就是从全局环境的角度来考虑如何有效解决这两个问题。我国在智能移动机器人研究方面虽然己经取得了一定的成果,如地面自主导航车、水下自主机器人和飞行机器人等。但由于起步较晚,在研究和应用方面都落后于一些西方国家,而且有些方面还没有达到完全实用。因此,进行移动机器人路径规划算法的研究,仍然具有一定的理论意义和工程应用意义。
         
          四、路径规划研究现状
          路径规划技术是机器人研究领域中的一个重要分支。所谓机器人的最优路径规划问题,就是依据某个或某些优化准则(如工作代价最小、行走路线最短、行走时间最短等),在其工作空间中找到一条从起始状态到目标状态的能避开障碍物的最优路径。根据控制方法的不同,机器人路径规划方法大致可以分为两类:传统方法和智能方法。
           
          4.1 传统路径规划方法
          传统的路径规划方法是根据优化的目标分为四个类型:一种是根据目标点的吸引力,一种是路径最短,一种是考虑通过环形障碍的步骤,另一种是路径中的空间最大化。具此分为以下几种类型:
        4.1.1人工势场法

          人工势场法是路径规划中应用比较普遍的一种方法。其基本原理就是在机器人所处离散环境中的每一点P赋一个势场值 的值是目标点的引力和障碍物的斥力的叠加。
                                
          是距离影响因子, 为与目标的距离, 为与障碍物的距离。因此机器人的路径规划就是从起始点沿着势场最快下降的方向达到目标点。
       

        图4.1.1.1  人工势场受力模型图

         

          该方法的优点是在数学描述上简洁,可以使机器人迅速躲开突发障碍物,实时性好,因而经常被用于局部路径规划的设计。
           
          但是人工势场法的缺点也比较多:
           
          1、存在陷阱区域:就是在路径规划中经常会碰到局部极值点,也就是引力和斥力相等,合力为零的点,从而使机器人运动到一个死区,导致规划失败。
           
          2、当目标点附近有障碍物时,智能机器人将永远也到达不了目的地。在以往的一些研究中,目标点和障碍物都离得很远,当机器人逼近目标点时,障碍物的斥力变的很小,甚至可以忽略,机器人将只受到吸引力的作用而直达目标。但在许多实际环境中,往往至少有一个障碍物与目标点离得很近,在这种情况下,在智能机器人逼近目标的同时,它也将向障碍物靠近,由于引力场函数和斥力场函数的定义,斥力将比引力大得多,这样目标点将不是整个势场的全局最小点,因此智能机器人将可能达不到目标。
           
          3、在障碍物密集的区域会产生震荡,从而无法完成路径规划。
           
          4、在连续狭窄的障碍物通道中摆动,或是无法发现路径。
           
          产生上述问题的原因是由于人工势场法把所有信息压缩为单个合力,这样就造成了把有关局部障碍物分布的有价值的信息抛弃掉的缺陷。
           
          通过对这种基本算法的扩展,这一问题己经得到很好的解决。这一算法产生的路径是以牺牲安全、与最近障碍物的距离和路径的最优长度为代价的。
           
       

        图4.1.1.2  人工势场法机器人路径规划

         

        4.1.2反向梯度法

          反向梯度法是另一类型的路径规划算法,其目的是为了求取最短路径,这种算法将环境划分为一定数量的小格子并且计算出每个小格子到达目标点的最短路径距离。目标点被标注一个为0的值,所有其它的小格子都被初始化一个很大的值,算法从目标点开始并且遍历与其邻接的每一个状态,不断重复。一个邻接状态 的状态 如果处在障碍物中,其值 被设置为无穷大,否则的话, 。这类算法的缺点在于它没有考虑路径的曲率的概念,所以可能导致机器人需要对它的方向和速度进行频繁的调整,而且这类算法的基本实现方法中比较偏爱靠近障碍物的路径。对于这些缺点,可以通过增加人工障碍物或者可以将机器人的导航看作一个马尔可夫决策过程来解决,在这个过程中,机器人的行为结果是非确定性的。而后者可能会增加计算机的计算开销。同时,这类路径规划方法如果应用于大于三维的状态空间时会产生严重的计算问题。如图4.1.2.1所示为反向梯度法机器人路径规划。
           
       

        图4.1.2.1  反向梯度法机器人路径规划

         

          4.1.3环绕障碍法
          环绕障碍法是获得环绕障碍物的一个航行动作序列,这一序列与通向目标点的直线相交。A*算法可以利用给定的环绕障碍物的点计算出最短路径。这一类算法包括Viapoint方法和弹性波段算法(动态障碍)。此类算法在起始点或目标点特别靠近障碍物时容易产生问题。如图4.1.3.1所示为环绕障碍法路径规划。
           
       

        图4.1.3.1  环绕障碍物路径规划

         
          4.1.4自由空间法
          自由空间法采用预先定义的如广义锥形和凸多边形等基本形状构造自由空间,并将自由空间表示为连通图,然后通过搜索连通图来进行路径规划,此方法比较灵活,即使起始点和目标点改变,也不必重构连通图,但是算法的复杂程度与障碍物的多少成正比,且不能保证任何情况下都能获得最短路径。因而该方法仅适用于路径精度要求不高,机器人速度不快的场合。自由空间法用于机器人路径规划可以分为两个步骤。
           
          (1)寻空间问题。在指定的环境中,确定机器人的安全位置,使它不与己有的其他物体相碰撞。将机器人简化为一个点,同时相应地“膨胀”环境中的障碍物体,从而形成另外一个空间障碍区。这样,通过构造一个虚拟数据结构,将运动物体和障碍物的几何约束关系转化到另外一个虚拟数据结构空间,从而简化问题的求解。
           
          (2)寻路径问题。在指定的环境中,确定机器人从初始位置移动到目标位置的安全路径,使其在移动过程中不与任何障碍物发生碰撞。经过前面的空间变化,将问题进一步形式化为“可见”图的搜索问题。搜索从起始位置到目标位置的最短路径就可以得到机器人的最短安全路径,进而确定具体的系统解决方案。
           
          自由空间算法的宗旨是求得距离障碍物最远的路径。其中一个最著名的算法就是Voronoi路径规划算法,这一算法引导机器人朝着与最近障碍物相等距离的路径行驶。另一种该类型的算法是在动态障碍物环境中最大化安全空间方法。Buck在这一算法中通过计算得到与至少两个障碍物具有相同距离的评价点作为通向目标点的中间点。由于与障碍物的平均距离很大,所以这种算法得到的路径比通过其它方法得到的路径具有更小的曲率,但得到的路径会比其它方法得到的路径要长。
           
          Voronoi法对自由空间进行建模的过程为:
          1、用直线划分自由空间为凸多边形区域;
          2、连接各凸多边形的顶点为链接线,设置各链接线的中间点为可能路径点;
          3、相互连接各凸多边形区域内的所有可能路径点;
          4、将机器人移动时的起点和终点分别连接到所在最近的路径点上。
           
          含有障碍物的规划空间,经过上述算法处理后,得到的Voronoi图如图4.1.4.1所示。图中阴影部分为障碍物,S 为起点,G 为终点。图4.1.4.2为去掉障碍物与多余线段的自由空间图。
           
       

        图4.1.4.1  自由空间建模

         

       

        图4.1.4.1  自由空间图

         

          4.2 智能路径规划方法
          近年来,随着遗传算法等智能方法的广泛应用,机器人路径规划方法也有了长足的进展,许多研究者把目光放在了基于智能方法的路径规划研究上。其中,应用较多的算法主要有模糊方法、神经网络、遗传算法、可视图法、粒子群法和强化学习算法等。
           
          4.2.1模糊逻辑法
          模糊控制算法模拟驾驶员的驾驶思想,将模糊控制本身所具有的鲁棒性与基于生理学上的“感知、动作”行为结合起来,适用于时变未知环境下的路径规划,实时性较好。
           
          模糊逻辑算法是基于实时传感信息的一种在线规划方法,包括建模和局部规划。模糊有向图是引入节点发生故障概率的一种符号有向图。节点分别表示系统的各个部件,分支及其方向表示部件因果联系及作用方向。节点可以用正号、零和负号来分别表示相对正常技术状况的正偏移、无偏移和负偏移:分支可以用正号、零和负号来表示作用方向。
           
          Hartmut Surmann等提出一种未知环境下的高级机器人模糊导航方法,由8个不同的超声传感器来提供环境信息,然后利用基于模糊控制的导航器来计算这些信息,规划机器人路径。
           
          该方法在环境未知或发生变化的情况下,能够快速而准确地规划机器人路径,对于要求有较少路径规划时间的机器人是一种很好导航方法。但是,其缺点是当障碍物数目增加时,该方法的计算量会很大,影响规划结果。
         
          4.2.2神经网络法
          人工神经网络是一种仿效生物神经系统的信息处理方法。它是一个高度并行的分布式系统,处理速度高且不依赖于系统精确的数学模型,还具有自适应和自学习的能力。一个神经网络包括以各种方式联接的多层处理单元。神经网络对输入的数据进行非线性变换,从而完成了聚类分析技术所进行的从数据到属性的分类。目前神经网络的类型很多,大多数的神经网络都用于增强移动机器人避障能力与路径规划上,通常采用的是三层感知器模型和算法。文【26】等提出了一种基于神经网络的机器人路径规划算法,研究了障碍物形状和位置己知情况下的机器人路径规划算法,其能量函数的定义利用了神经网络结构,根据路径点位于障碍物内外的不同位置选取不同的动态运动方程,规划出的路径达到了折线形的最短无碰路径,计算简单,收敛速度快。文【27】等提出了一种在不确定环境中移动机器人的路径规划方法,将全局路径规划分解为局部路径规划的组合,为了提高规划的效率,在避障规划中采用了基于案例的学习方法,以神经网络实现案例的匹配学习和扩充,满足了规划的实时性要求。
           
          神经网络的优点主要体现在它可以处理难以用模型或规则描述的过程和系统;对非线性系统具有统一的描述;具有较强的信息融合能力和系统容错能力。基于神经网络的多传感器信息融合正是利用了神经网络这些特性,将传感器的数据信息作为神经网络的输入进行处理,可以获得移动机器人对障碍物影像的比较精确的估计。神经网络系统受学习样本的影响很大,选择代表性强的样本集是十分困难的,而让样本集覆盖整个样本空间是不现实的,因而样本的选择与设计是一大难题。
           
          4.2.3遗传算法
          J.Holland在20世纪60年代初提出了遗传算法,以自然遗传机制和自然选择等生物进化理论为基础,构造了随机化搜索算法。它利用选择、交叉和变异来培养控制机构的计算程序,在某种程度上对生物进化过程做数学方式的模拟。它不要求适应度函数是可导或连续的,而只要求适应度函数为正,不要求可导或连续。同时作为并行算法,它的隐并行性适用于全局搜索,多数优化算法都是单点搜索算法,很容易陷入局部最优,而遗传算法却是一种多点搜索算法,因而更有可能搜索到全局最优解。其基本思想是将路径个体表达为路径中一系列中途点并转换为二进制串,首先初始化路径群体, 然后进行遗传操作,如选择、交叉、复制、变异。经过若干代进化以后停止进化,输出当前最优个体。遗传算法用于路径规划,主要是以修改路径编码方式使其变得简单以及提出不同的适应度函数。由于遗传算法的整体搜索策略和优化计算不依赖于梯度信息,所以解决了一些其他优化算法无法解决的问题,但遗传算法运算速度不快,进化众多的规划要占据较大的存储空间和运算时间。但由于常规遗传算法本身所存在的一些缺陷(如解的早熟现象、局部寻优能力差等),保证不了对路径规划的计算效率和可靠性的要求。为提高路径规划问题的求解质量和求解效率,又有研究者提出了在利用遗传算法进行路径规划的基础上,引入模拟退火算法,抑制了遗传算法的早熟现象,克服了其局部寻优能力较差的缺点,形成一种遗传模拟退火算法来解决机器人路径规划问题。
           
          遗传算法用于复杂环境下路径规划存在以下缺陷:(一)路径个体编码设计若不合理,会导致进化缓慢、进化过程中产生非法个体;(二)若遗传算子选择不合理,进化效果不明显;(三)若规划过程中没有利用背景知识,进化效率不高。
           
          文【28】用遗传算法完成了离散空间下机器人的路径规划,并获得了较好的仿真结果。但是,该路径规划是基于确定环境模型的,即工作空间中的障碍物位置是己知的、确定的。和在采用离散空间进行路径规划的同时,将问题更深入化,栅格序号采用二进制编码,统一确定其个体长度,随机产生障碍物位置及数目,并在搜索到最优路径后再在环境空间中随机插入障碍物,模拟环境变化,.通过仿真结果验证了算法的有效性和可行性。但是,规划空间栅格法建模还存在缺陷,若栅格划分过粗,则规划精度较低若栅格划分太细,则数据量又会太大。
           
          文【29】提出一种连续空间下基于遗传算法的机器人路径规划方法,该方法在规划空间利用Voronoi图建模的基础上,先使用图论中成熟算法粗略搜索出可选路径,然后再使用遗传算法来调整路径点,逐步得到较优的行走路线。该方法的染色体编码不会产生无效路径,且仅使用基本遗传算法就可以完成路径规划。但是该方法对于环境复杂、障碍物数目较多的情况,Voronoi图的建立会有一定的困难。在遗传算法的改进上文【29】提出一种遗传模拟退火算法,利用遗传算法与模拟退火算法相结合来解决机器人路径规划问题,有效地提高了路径规划的计算速度,保证了路径规划的质量。
           
          4.2.4可视图法
          在可视图法中视机器人为一质点,工作环境中障碍物的边界相应地向外扩展,在扩展的情况下,障碍物的边界用凸多边形表示。将机器人初始点、目标点和多边形障碍物的各顶点之间进行连接,并保证这些直线均不与障碍物相交,这就形成了一张图,称为可视图。由于在图中任意两直线的顶点都是可见的,因此从起点沿着这些直线到达目标点的所有路径均是无碰路径。搜索最优路径的问题就转化为从起点到目标点经过这些可视直线的最短距离问题。
           
          如图4.2.4.1所示的工作环境图,Start为初始点,Goal为目标点。经过可视图法建模,形成图4.2.4.2的可视图。
           
       

        图4.2.4.1  工作环境图

         

       

        图4.2.4.2  工作环境的可视图

         

          可视图法将一个路径规划问题转化成为了一个图搜索的问题,在一个可视图中搜索一条从起始点到目标点的最短路径,现已有了一些很成熟的算法,如Dijkstra算法等。除了一些经典的算法,在搜索的过程中还可以结合一些已有的人工智能算法,如蚁群算法、遗传算法等,利用这些新兴的算法同样可以解决路径规划的问题。在可视图中还可以运用优化算法,删除一些不必要的连线以简化可视图,缩短搜索时间。此方法能够求得全局最优路径,其大量的运算集中在将机器人的工作环境建模从而转换为一个可视图中。可视图法的优点是概念直观,实现简单。其缺点是方法缺乏灵活性,即一旦机器人的起始点和目标点发生改变,就要重新构造可视图,而且算法的复杂性和障碍物的数量成正比。
           
          4.2.5粒子群法
              Kennedy和Eberhart等于1995年开发出一种新的演化算法—粒子群优化算法(PSO)。它的基本思路为:在问题的定义空间内将一定数量的等位微粒作随机分布,然后根据各微粒在解空间中所处地位的相关信息作为微粒的优劣赋值记录,同时对各微粒运动的最优历史信息作好记录,在随后的每次计算循环中,当前微粒的运动模式都由其自身的最优历史记录和群体的最优历史记录决定,直到整个粒子群体找到问题的最优解或者满足其他相关停止条件。
           
          相比其它进化算法,PSO保留基于种群的全局搜索策略,避免复杂的个体操作,采用简单的速度调整模型,仅利用特有的记忆使其可以动态地跟踪当前搜索状况,具有较强地鲁棒性和快速地寻优速度,且不需要借助问题的特征信息。因此,PSO作为一种更高效的并行搜索算法,非常适合于对实时性要求较高的复杂优化问题进行求解。粒子群算法虽然具有收敛速度快,算法简单,容易编程实现等特点,但PSO算法也有一些严重的缺陷,其一是容易陷于局部极值点,导致得不到全局最优解,到目前为止,PSO算法还不能从理论上严格证明收敛于任何类型函数的全局极值点。其二是PSO算法本身的参数设置,当参数选择不当时,会导致寻优过程中粒子的多样性迅速消失,造成算法“早熟收敛”。
         
          4.2.6蚁群算法
          Aco算法是Colorni和Dorigo等在20世纪90年代初提出的一种新型分布式智能仿生类算法,它模拟和借鉴了现实世界中蚂蚁种群的觅食行为特征。
           
          蚁群算法在机器人路径规划中的应用早已有所研究,但是在国内还属于比较新的领域。文【35】提出了基于栅格法的机器人路径规划蚁群算法,该算法用栅格法对场景进行建模,模拟蚂蚁的觅食行为,由多只蚂蚁协作完成最优路径的搜索。文【36、37】提出了动态复杂环境下的机器人路径规划蚂蚁预测方法,该方法模拟蚂蚁的觅食行为,由多组蚂蚁采用最近邻居搜索策略和趋近导向函数相互协作完成全局最优路径的搜索。在此基础上用虚拟蚂蚁完成与动态障碍物碰撞的预测,并用蚁群算法进行避障局部规划。文【35】还提出了复杂环境下的机器人路径规划蚂蚁算法,用于复杂的静态环境下的机器人路径规划。可见,动态环境下的机器人路径规划方法也适合于静态环境。
           
          蚁群算法也有其明显的缺陷,如它的计算量较大,搜索时间较长,易于陷于局部最优解。
           
          4.2.7强化学习方法
          强化学习 (reinforcement learning)是一种重要的机器学习方法,在智能控制机器人及分析预测等领域有许多应用。将强化学习方法用于自主机器人的局部路径规划,可以实现在复杂未知环境下的路径规划。所谓强化学习就是智能系统从环境到行为映射的学习,以使奖励信号(强化信号)函数值最大,强化学习不同于连接主义学习中的监督学习,主要表现在教师信号上,强化学习中由环境提供的强化信号是对产生动作的好坏作一种评价(通常为标量信号),而不是告诉强化学习系统(RLS,reinforcement learning system)如何去产生正确的动作。由于外部环境提供的信息很少,RLS必须靠自身的经历进行学习。通过这种方式,RLS在行动—评价的环境中获得知识,改进行动方案以适应环境。
           
          五、目前路径规划发展趋势及存在的问题
          对于前面提到的路径规划方法,其应用大部分集中在对己知静态环境下的机器人进行路径规划。目前,对于环境为动态,特别是动态的未知环境的路径规划研究已经逐渐成为研究热点,如果能解决动态的未知环境的路径规划,那么对于机器人路径规划以及自主移动机器人的发展将会产生重大意义。
           
          静态环境中,如果机器人具备全局环境信息,可用全局路径规划方法,这方面的研究已较为广泛,例如:可视顶点图、人工势场法、遗传算法、神经网络、随机树等方法;如果机器人不具备全局环境信息,可采用强化学习或基于滚动窗口的方法。但机器人的工作环境多数是动态不确定的,机器人对有动态障碍物的环境很难具有先一验知识,这种情况下,机器人只能根据实时探测到的环境信息进行避碰规划,解决此类问题已有诸多方法:滚动路径规划方法有效地解决了动态障碍物环境下机器人运动过程中的安全避碰问题,然而由于缺少全局信息,加上机器人的视野有限,滚动出的路径很难达到全局较优;蚂蚁预测算法可以在障碍物非常复杂的环境中迅速规划出安全路径,但该算法需要先基于静态全局信息规划出全局最优路径;采用基于Voronoi图的遗传算法建立全局优化路径并采用基于行为的方法进行局部路径规划,可以很好地解决全局与局部路径规划的关系,但该方法必须假定静态障碍物的分布是已知的;人工水流法有效解决了多机器人共存环境中的路径规划问题,使得每个机器人无需知道其他机器人的轨迹和各机器人的运动优先权就可以实现避碰,但该方法未将路径最短作为规划目标,常会出现环路,而且该方法需要根据环境信息事先生成虚拟地形图;模糊神经网络、遗传算法和改进的人工势场法也都表现出了良好的动态路径规划能力,但这些方法都必须要求知道障碍物的运动信息(如速度等);通过建立交通规则可以有效解决动态环境中多机器人避碰规划问题,但在很多实际问题中动态障碍物未必会遵守交通规则。
           
          上述动态环境中的路径规划方法均高度依赖于全局环境的静态信息或动态障碍物的运动信息,但在未知动态环境中,这些信息都是很难获得的,因而限制了算法的应用。
           
          六、移动机器人路径规划方法展望
          随着电子技术的飞速发展,机器人用传感器的不断研制、计算机运算速度显著提高和机器人应用领域的进一步扩大,移动机器人技术将逐渐地得到完善和发展。移动机器人智能路径规划技术的研究与发展趋势可以归结为以下几点:
           
          6.1 性能指标上不断提高
          许多路径规划方法在完全已知环境中能得到令人满意的结果,但在未知环境特别是存在各种不规则障碍的复杂环境中,由于环境信息的时刻变化,对移动机器人的实时性要求更高,所以如何快速有效地完成移动机器人在复杂环境中的导航任务仍将是今后研究的主要方向之一。
           
          6.2 多机器人系统的路径规划
          多机器人系统是指若干个机器人通过合作与协调而完成某一任务的系统。它包含两方面的内容,即多机器人合作与多机器人协调。与单个机器人相比,多机器人系统具有许多优点,在动态环境中多移动机器人的合作与单个机器人路径规划要很好地统一,根据机器人之间相对速度进行在线规划或通过采用离线和在线相结合方法提出运动规划的体系结构,并将最优控制与智能决策结合,建立实时专家系统,实现多机器人路径规划已经成为现实。对于多机器人系统体系结构与协作机制、信息交互以及冲突消除等方面将是多机器人系统的进一步研究方向。
           
          6.3 多传感器信息融合技术与路径规划技术的结合
          多传感器信息融合的算法很多。但多数算法都是基于线性正态分布的平稳随机过程前提下, 所以, 解决非线性和非平稳、非正态分布的现实信息还有待深入地研究。
         
          七、仿真系统平台概述
          7.1 机器人自主运动系统
          机器人自主运动系统可简略地分为感知、规划和控制三大部分。这三个部分进一步分解为相互协作的几个子系统:传感器感知系统、数据融合处理系统、路径规划系统和运动控制系统。为了使这些子系统高效率地工作,需在高层设总控调度系统,协调各子系统的运行。系统基本结构见图7.1.1。
           
        http://www.eefocus.com/industrial-electronics/335837/file:///C:UsersADMINI~1AppDataLocalTempmsohtmlclip1\01clip_image040.gif

        图7.1.1  系统基本结构(The basic system structure)

         

          为了自主地从起始点出发到达目的地,首先由全局路径规划子系统利用规划知识和全局地图数据,产生规划路线。机器人的操作建立于各子系统并行执行的连续控制周期,每个控制周期由图7.1.2所示的串行过程组成,子系统间的同步由总控调度系统协调。
           
       

        图7.1.2  一个控制周期的组成(The composition of a control cycle)

         

          在机器人自主运动中,鉴于即时动态特性,机器人需通过多种传感器感知周围的环境状况,经过对多传感器数据的信息融合,构造出所处局部环境的描述,实时提供环境信息,再据此完成路径跟踪、避障规划等任务。由此可见,多传感器数据融合、局部路径规划是机器人自主运动核心技术。
           
          7.2 仿真系统分类

           
  •                                          从仿真系统使用的计算机来划分:


           
  •                                          建立在单独的 PC 机或工作站上的仿真系统;
           
  •                                          以局域网为基础、由多个计算机组成的仿真系统。

           

           
  •                                          从仿真环境的模型来划分:


           
  •                                          基于二维平面环境模型的系统;
           
  •                                          基于三维立体空间环境模型的系统。

           

           
  •                                          从仿真系统的结构来划分:


           
  •                                          集中式的结构;
           
  •                                          集中式与分布式相结合的结构(如图7.2.1示例);
           
  •                                          分布式结构(如图7.2.2示例)。
           
  •                                           

       

        图7.2.1  基于局域网的集中式与分布式相结合的结构

         

       

        图7.2.2  基于局域网的分布式结构

         

         

          7.3 仿真系统功能
          对于一个多移动机器人计算机仿真系统而言,其所具有的基本功能可总结如下:
           

           
  •                                          对模型的构造功能。

          在多移动机器人计算机仿真系统中,如何合理地构造环境模型、机器人的物理模型、各种不同的传感器模型是一个重要问题。采用不同的模型假设对仿真系统的结果将产生不同的影响。所以,在仿真系统中,针对系统需求提供相应的合理的模型,这是多自主移动机器人计算机仿真系统应具备的最基本的功能。
           

           
  •                                          对动态过程的模拟功能。

          多移动机器人系统完成任务的过程是一个动态的过程,其中涉及到环境状态的动态变化、各机器人的实时决策、传感器的实时检测结果、噪声等多种因素。仿真系统应该能够很好地模拟在这个动态过程中各种要素之间的相互关系,相互影响。因而,对动态过程的合理模拟是多移动机器人计算机仿真系统的重要功能。
           

           
  •                                          对系统的分析功能。

          在针对多移动机器人系统不同算法的仿真中,系统中一些重要的环境状态、机器人的内部状态对于改进算法,调整多移动机器人系统结构、负载,发现影响系统效率的“瓶颈”等问题的分析具有重要作用。因而,对系统的分析功能是多移动机器人仿真系统的重要辅助功能。
           

           
  •                                          对重要参数、仿真数据的记录功能。

          对于许多通过离线仿真来获得重要控制参数的算法来说,记录功能对于仿真系统来说是至关重要的。而针对在线动态过程所进行的仿真,所有的重要仿真结果,以及通过仿真获得的重要控制参数都应该被记录下来以备查询、比较、分析。
           

           
  •                                          具有与实际物理系统的良好接口。

          对于一个计算机仿真系统,与实际物理系统的接口不是必须的。但具有与实际物理系统接口的仿真系统可以将通过仿真获得的参数或经过验证的算法方便地转入实际物理系统中进行进一步的验证。而且多移动机器人计算机仿真系统具有一组标准的接口将有助于其应用于不同结构的实际物理系统。
           
          除了上述的几个基本功能之外,方便易用、仿真结果的直观可视化也是仿真系统的一个重要附加功能。鉴于图形界面的广泛应用,通过菜单和图形窗口可以使操作方便、各种仿真数据以多种不同形式的曲线或图形显示出来,仿真系统的易用性、可视化已经能够非常方便地实现。
           
          7.4 仿真系统平台设计原则

           
  •                                          良好的算法扩充性
           
  •                                          具备并行处理能力
           
  •                                          在线修改参数
           
  •                                          可视化显示
           
  •                                          实现人机交互等。
           
  •                                          系统仿真目标

           
          7.5 仿真系统平台设计目标
          (1) 仿真界面须做得友好且人性化;
          (2) 界面可以让测试者随意在机器人达到的范围内设置障碍;
          (3) 可以让测试者随意设置机器人的起始位置以及目标;
          (4) 需要让机器人采用不同的算法,比较不同策略的优劣性;
          (5) 可将测试结果显示出来,并根据需要打印出来。
         
          八、仿真平台设计
          8.1 仿真平台综述
           
       

         

          (1)环境数据库包括所在环境高程图和纹理图。它由机器人传输回来的图片和各种传感器测得的数据生成。这些数据通过二/三维重构、全景图生成和虚拟现实技术生成二/三维环境,真实地再现机器人环境,从而为操作人员进行操作提供依据。
           
          (2)机器人二/三维模型是机器人的二/三维实体模型。它具有与真实机器人相似的外形,同时拥有模拟真实机器人动作的能力。在虚拟环境中由它代替真实机器人进行行走。
           
          (3)机器人运动学模型是一些机器人的运动学约束方程。
           
          (4)机器人路径规划模块里存储的是路径规划算法,通过设计公共接口用以嵌入不同的路径规划算法,以验证算法的可行性。
           
          (5)人机交互接口为操作员操作虚拟环境中的机器人提供了接口。机器人路径规划三维仿真平台中,操作员通过人机接口为虚拟机器人在虚拟环境中指定起始点和目标点,机器人根据指定的站点自主进行路径规划。
           
          (6)二/三维仿真模块主要负责机器人路径规划仿真的三维显示部分。它从机器人环境数据库中读入环境数据,例如可使用Open Inventor 的TerrainViz 扩展模块来显示和管理虚拟环境。同时读入机器人二/三维模型,并调用机器人路径规划算法来完成机器人行走的二/三维仿真。
           
          8.2 体系结构
        该仿真实验平台的主要功能是实现路径规划算法的实时演示,其核心是路径规划算法系统和绘图系统。算法系统如第四部分所介绍的算法和一个算法接口,绘图系统包括路径的实时绘制和障碍物的绘制。因此该平台的体系结构由3层组成。表示层、演示窗口和参数配置窗口、应用逻辑层及绘图系统和路径规划算法系统;存储层是算法运行时的临时存储空间。

         

          8.3 环境建模
          8.3.1环境信息获取
          环境信息的获取即定位,它是移动机器人导航的最基本环节。定位是确定机器人在工作环境中相对于全局坐标的位姿。鉴于环境的复杂性,以及单一传感器的局限性,根据总体设计,机器人上配备了包括彩色摄像机、黑白摄像机、激光雷达、全球定位系统(GPS)、惯性导航系统(INS)等多种传感器。各传感器的信息融合主要在特征级上进行,其中包括传感器建模、多传感器标定、特征匹配、数据融合、障碍物检测等环节。其任务是接收来自周围环境跟踪摄像机、激光雷达、夜视摄像机等传感器信息预处理模块输出的关于移动载体前方各传感器有效观测区域内景物的特征描述,以及定位子系统给出的精确位置、姿态、运动参数等,经过有效融合,向局部路径规划模块输出具有明确语义表示的、适合于进行局部路径规划的关于移动载体前方特定区域内景物的可靠描述,并通过一定的处理方法,解决数据不完整(整体无数据、路边长短不一、缺边等) ,噪声干扰(阴影、水迹) 等问题。
           
          障碍检测是环境理解的最重要环节之一,激光雷达是障碍检测最有效的传感器之一。但对于线阵激光雷达,由于信息量较少及安装的关系,不可避免的产生较高的虚报率和盲区。由于低可信度障碍的存在,融合历史信息更成为必然。为了减少计算量,提高实时性,用圆来描述历史和当前可疑障碍,采用超球自适应共振理论H – ART(Hyperspher Adaptive Resonance Theory)神经网络算法【38】来对障碍进行检测。
           
          定位方法根据机器人工作环境复杂性、配备传感器的种类和数量等不同有多种方法。主要方法有:惯性定位、陆标定位和声音定位等。
           
          8.3.2环境建模概念
          从第二部分可知对于一个机器人路径规划问题而言,其目的就是从约定的起点到终点,绕过障碍物规划出一条可行路径。但是仅抽象地叙述这一过程是没有意义的。要将机器人路径规划问题应用于实际,首先要在一个经过严谨、科学地定义的环境中描述这个问题,使得路径规划终牵涉到的机器人、路径、障碍物等概念在这个约定的环境有具体的表示和定义,这就是环境建模。简而言之,环境建模就是提供一套科学的方法来描述和定义我们所要处理的机器人路径规划问题。
           
          机器人路径规划问题是一个综合性、多方面的学科交叉问题,直接涉及到物理、电子、机械等多个学科。因此能够最大程度协调各学科统一描述该问题的建模方法就是数学建模方法。但是考虑到具体问题,在建模时并非是用纯粹数学的方法,采用数学结合自动化理论和运动学理论进行建模。
           
          8.3.3环境建模意义
          对机器人路径规划问题进行环境建模后,可以使我们所处理的问题有了一个统一的表示方法,使得抽象的问题描述形成具体的数学求解或物理求解。即以一种我们所熟悉的严谨的、科学的方式去表达问题。如一个机器人在某一时刻的状态这个抽象概念就可表达为形如 的三个分量表示形式。如果没有统一的建模方式,则无法保证各人所理解的问题为同一问题,将造成概念上的混乱。
           
          环境建模能以一种统一的方式描述问题,这将直接有利于对问题进行分析。只有对问题进行科学的定义之后,才能更方便地对问题进行科学地分析。在这方面,环境建模起到了一个规范表达的作用。通过环境建模我们可以确定机器人、路径、障碍物等概念的意义,定义概念的边界、内涵和外延。并且经过数学形式定义的路径规划问题,可以用数学的工具进行分析、求解。
           
          只有在坏境建模对问题进行科学、统一的定义之后,才能确保解的正确性和求解算法实现的可能性。路径规划问题的解就是一条可达路径,解方法就是路径规划算法,求解的过程即算法的一次演算过程。将应用计算机进行仿真实验实现路径规划算法和求解,只有在环境建模后的模型中才能有效地分析和设计算法,将各种问题中的概念表述在软件中确定为类和数据结构。路径规划问题中的各种概念如障碍物、路径等都将通过环境建模以对象的形式出现于仿真演示系统中。
           
          8.4 二维环境建模
          8.3.1二维环境建模方法
          其中比较成功和有效的方法主要有势场法和栅格法两种。
           

           
  •                                          势场法

          势场法是用虚拟力场法的基本思想构造目标方位的引力场和障碍物周围的斥力场,将目标和障碍物看成共同作用的虚拟人工力场,用搜索势函数的下降方向来寻找无碰撞路径。即机器人沿虚拟排斥力和虚拟引力的合力方向运动,以保证机器人连续的运动而不会因为障碍物而停止运动。势场法又包括人工势场法和时变势场法。
           

           
  •                                          栅格法

          图像采集后,在处理中,把图像当作二维数据组来处理。通过数字图像处理技术——哈夫(Hough)变换来提取障碍物信息,然后把包含障碍物信息的环境栅格化(即把环境分成大小相同的方格),从而建立起机器人的运行环境模型——栅格地图。
           
          栅格地图的建立是基于以下假设:
           
  •                                          所有的环境信息被映射到了二维平面上;
           
  •                                          地图建立以后到路径规划完成,障碍物的位置和大小不发生变化;
           
  •                                          一旦栅格中有障碍物,即假设障碍物占满该栅格。
           
  •                                           

        地图信息是所有栅格状态信息的集合,即一个状态空间。为了简化状态空间的构造和搜索策略的制定,采用目标的距离信息对自由栅格赋值。状态信息中还包含每个栅格行、列编号来确定每个栅格在状态空间中的位置。建立起状态空间以后,则路径的搜索过程就是对某一状态应用操作符得到一个新的状态的过程。把操作符应用于某个状态并转换到下一个状态过程会一直进行下去直到到达目标状态。给定机器人的初始状态和目标状态,问题就是要求出从给定的初始状态到目标状态的中间所有的过渡状态,如果可能,给出最小的步数。

         

          在路径搜索问题中,主要的工作是要找到正确的搜索策略。一般搜索策略可以通过下面四个准则来评价:
           
          (1)完备性。如果存在一个解答,该策略是否保证能够找到?
          (2)时间复杂性。需要多长时间可以找到解答?
          (3)空间复杂性。执行搜索需要多少存储空间?
          (4)最优性。如果存在不同的几个解答,该策略是否可以发现最高质量的解答?
         
          基于状态空间建立的栅格地图信息,由于采用了基于目标距离信息的赋值方式,搜索策略变得非常简单,只要从起点开始制作路径链表直到目标,搜索过程就可结束,可避免传统搜索算法中存在的搜索组合爆炸问题,也不需要进行复杂的运算。依据上述四个准则进行评价,也可达到满意的效果。
           
          将图像空间中的直线转换为参数空间进行描述,对所有可能落在直线边界上的点进行处理。将摄像机镜头输入的灰度图像实时采集后,进行边缘检测,通过直方图计算,自动设置灰度阈值,获得二值图像,对二值图形进行哈夫变换,求得累积矩阵,通过对累积矩阵设置阈值,自动检测出图像中的直线。试验表明,该算法可以有效地检测出实际存在的边缘线。
        设 是解析曲线簇, 满足 =0。其中, 是关于 的参数集, 是关于二维空间的点集。现在令 是二维空间上的点集, 的一个子集, 属于解析曲线 。设 是一个参数空间,维数为 的Hough变换为     其中

          变换将每一个集 映射到P中的对应点 上。
          如果在曲线的分割中把曲线段看作是边元素 的集合点轨迹 表示子集 ,则Hough变换又具有以下定义:
                                                   
          并且 为曲线 的变换形式。
          由摄像机镜头获得的灰度图像如图1所示,通过Hough变换识别的障碍物边缘图形如图2所示。
           
       

           
        8.3.2状态空间中的障碍物表示

          设环境中包含静态障碍物,一个碰撞检测算法能够有效地检测一个给定的位姿状态是否在障碍物中。甚至可以设,采用一个距离计算算法来判断一个位姿状态的整个邻域内是否会发生碰撞。在位姿空间内和在状态空间内找到一条无碰撞路径是有区别的。
          在位姿空间中定义障碍物集为 很有用,在这个集合中机器人将与障碍物相撞。路径规划问题专注于找到一条映射到 连续路径。
          在状态空间中规划时,可以直接定义 ,通过声明 ,当且仅当 ,且 的。然而,还存在另一种可能性:绝对碰撞区域。令 表示状态集:机器人或者处于碰撞中或者无可逃逸。注意 。因此,定义 以取代 更好。
          绝对碰撞区域, ,提供一些关于完整性运动动力学规划的难点和纯运动学非完整性规划的难点的直觉。图8.3.2.1表明 的一种保守近似,机器人用一个服从无重力约束牛顿定律的质点表示。机器人假定有服从 约束的加速,初速度点沿着x轴正方向。从直觉上就可以预测,如果加速, 区域扩大。最后 的拓扑图会从 的拓扑图中明显的区分开来,这种现象从直觉上解释了运动动力学规划问题所难以解决的部分问题。虽然有可能存在一条动力学上的无碰撞路径,但一条运动动力学的轨迹就不一定存在。
           
       

        图8.3.2.1  机器人在二维环境中初速度增加的连续模型

         

        白色区域表示 ,黑色区域表示 ,灰色区域逼近

        8.3.3栅格路径表示方法

        为简单起见,首先对移动平台与障碍物用最小外接圆法进行处理,其中黑色物体为障碍物,s点 为平台中心初始坐标,g点 为目标坐标,将z轴上 间n等分,则步长为:

                                      
        依次做垂直于z 轴的垂线 为路径上的中间点。因为相邻路径点间的z坐标变化量相同,均为。所以路径长度只受 变化的影响,这样就把路径由二维编码简化为一维编码。如图所示。

       

        图8.3.3.1  路径编码示意图

       

        图8.3.3.2  平台染色体编码格式

        根据上述的路径编码的方法,同时考虑到避障,从初始点s到目标点g的适应度函数可表示为:

                                 
        式中第二部分为惩罚项,用以区分路径的可行与不可行。C为适当常数,λ为碰撞系数,定义如下:

                     
        式中 num 为与第i段路径相碰撞的障碍物数目。该适应度函数对不可行路径进行惩罚,但仍将该路径保存,这样以后的操作可能将其转变为可行路径。事实上一些比较“好”的不可行解往往能够更容易的进化成比较“好”的可行路径。

         
          8.4  三维环境建模
          8.4.1三维环境建模方法
          对机器人路径规划问题进行环境建模主要有两种方法:状态空间法(state space)和位姿空间法(configuration space)。
           

           
  •                                          状态空间法

          状态空间法是现代控制理论中对系统的动态特性和动态过程进行描述的数学模型。该方法于20世纪60年代由卡尔曼引入到系统和控制理论中来[91]。系统所有可能状态的集合,称为系统的状态空间。
           
          以状态变量 为坐标张成的空间,就是状态空间。空间中的每个点,即每一组数 ,代表系统的一个可能状态。独立状态变量的个数 代表状态空间的维数。一维状态空间的几何表示为一直线。二维状态空间的几何表示是一张平面,常称为状态平面。三维状态空间的几何表示为一立体三维空间。n>3时为高维空间,无法作直观描述。决定系统行为特性的还有另一类数量,它们反映环境对系统的制约,往往不直接由系统决定,称为控制参量。控制参量一般不止一个。以m记控制参量的个数,它可以取任意正整数。
           

           
  •                                          位姿空间法

          位姿空间,简称C空间。20世纪80年代初Lozano-Perez引入C空间、C空间障碍物、自由空间(C空间障碍物的补集)等一系列概念[92,93],为运动规划问题的描述及其求解提供了理论框架。此后,运动规划技术得到了迅速的发展,并逐渐成为机器人学中的一个专门分支。
           
          如果用位姿空间描述机器人的运动,此时,机器人的状态与位姿空间形成一一对应的关系。如果将障碍物也用位姿空间来描述,并将所有的障碍物都映射到位姿空间,那么,自由空间内的点代表不与障碍物干涉的机器人构形,而位姿空间障碍内的点代表与障碍干涉的机器人构形。路径规划问题就转化为在位姿空间(自由空间)中寻找一条连接起始点和目标点的路径问题,当机器人沿该路径运动时,能保证不与障碍物发生碰撞。
           
          基于位姿空间的路径规划的一般步骤是:建立位姿空间;确定单元的连通性,建立搜索树;进行路径优化。
           

           
  •                                          微分约束

          我们将运动动力学规划问题阐述为在一个有一阶微分约束的状态空间中的路径规划问题,并且在针对一个完全运动学问题时,希望状态空间像位姿空间一样有效。令C表示来源于一个刚体或关节运动,该运动在二维或三维世界中的位姿空间中。每个位姿 代表一个应用于机器人几何模型的转换。令X表示状态空间,其中一个状态 ,被定义为 。如果需要,状态空间可以包含高维的派生空间,但此类系统本论文不予研究。
           
          当在位姿空间中规划时,微分或非完整性约束经常出现于两个刚体的滚动连接中、或可能出现在一个系统控制集中的应用。当在状态空间中规划时,非完整性约束也会出现在守恒定律当中(如:角动量守恒)。使用拉格朗日结构时,动力学方程可以被表达为一组形如: 的等式。使用状态空间表达式时,这可以被简单的写成m个隐式方程,形如: ,n是位姿空间的维度。在合适的条件下,根据隐函数定理约束可以被表达成形如:
                                  ………………………………( * )
          其中 表示一组合法控制或输入。表达式( * )通过 中的控制有效地产生了一个方便的合法状态转换的参数表示。
          用一个近似数值逼近表达式( * )。给定当前状态, ,输入作用于一段时间间隔, ,要求计算 。这个问题可以应用多种数值积分技术来解答。例如,假定常量输入, ,在时间段 内,一个标准形式的4阶龙格—库塔积分产生
                                          
          对于很多应用,表达式( * )可能不可用。例如,运动可能由一个复杂的动力学仿真包产生,该包考虑了碰撞、柔性部分、移动机器人动力学、有限元分析等方面。对于这些情形,我们的方法可以直接应用而不需要表达式( * )。唯一的需要的就是:对任何当前状态和输入,可以产生一个系统的递增仿真。
           
        8.4.2三维空间障碍物提取

          障碍图是根据机器人的越障能力对环境高程图进行处理得到的描述机器人不能通过的障碍物位置的平面地图。针对未知环境的路径规划算法进行路径规划通常都是建立在障碍图之上的。提取障碍图是仿真平台成败的关键之一,同时也是大多数只进行平面仿真的路径规划算法很少提及的问题。Singh等[4]提到将地形划分成1.25m2的方格,采用最小二乘法将每一个小方格拟合到一个平面上,计算这个平面的俯仰角和横滚角,同时计算方格的粗糙度。粗糙度的计算是通过两步完成的。将每一个方格分成0.25 m2的小方格。小方格的最大平方残差作为地面的粗糙度。然后根据求取的3个参数(俯仰角、横滚角和粗糙度)得到障碍图。
           
          障碍图提取是机器人通行能力的问题,如采用的模型基本越障能力为爬越30?以下的坡。根据这一限制,将高于30?的坡面定义为障碍物。坡面低于30?的区域定义为可通行区域。对于障碍物,在障碍图上将其像素值设为0(即黑色),反之设为255(即白色)。在计算障碍图之前先设定一些参数和比例关系。
           
          在计算障碍图之前先设定一些参数和比例关系。
          (1)设定实际坐标系和机器人坐标系并确定它们之间的关系。
          (2)设定障碍图与机器人尺寸之间的比例关系。设定障碍图两像素之间代表的实际距离为
          ,机器人的长度为 ,则机器人在障碍图中的大小为 。根据障碍图两像素之间距离对原高程图重新进行采样得到新的高程图。
        障碍图提取的具体做法如下:

         

        (1)计算高程图每一个像素点的坡度。这里采用每个像素点的四向平均梯度作为该点的坡度。

         
        (2)计算30?角对应的梯度值

                                                
        根据上式,确定障碍图各点像素值,得到初步的障碍图。

         

        (3)对障碍图进行数字图像处理的膨胀处理和中值滤波,使较近的障碍点连接到一起,从而得到用于路径规划的障碍图。同时这一处理过程也是为对障碍物进行进一步分类服务的。

          8.4.3机器人路径表示
          运动动力学规划问题就是找到一条从一个初始状态 到一个目标状态 或一个目标区域 的轨迹。一条轨迹就是被定义为作为一个时间参数化的连续路径 ,并满足非完整性规划约束条件。回想表达式( * ),状态的改变被表示为一组输入, 。一个更方便的将该问题公式化的方法是找到一个输入函数 ,这个函数将导致产生一条从 为起点、 为终点的无碰撞轨迹。这条轨迹, 是通过对表达式( * )的微分来确定。也可以选择一条根据某种标准进行了优化的路径,如到达 的时间。可以假设优化结果并非必须;然而,我们在这里假设对更好的解决办法存在某种宽松的优先考虑。在对于大多数的完整性规划方法,存在有优化指标。
         
          8.5 仿真系统中的环境表示
          上面“状态空间中的障碍物表示”一部分中所分析的是关于障碍物在建模空间中的表示以及空间中的各种约束。建立这种分析的好处是便于使用数学的方法来设计和分析算法,将算法的单步行为表示为一组方程在求解时的各种状态。但我们的最终目的是要在仿真系统中表示出这些障碍物,演示算法的求解过程。因而在仿真系统中我们选用象素作为环境构建的基本单位,一个象素即代表状态空间中的一个点。每个象素分配有最基本的颜色属性,我们约定黑色象素 ,白色象素 。当然这只是一种简化的做法,也可以使用多种象素颜色表示多种障碍物的坡度以更接近于现实世界。如果是对于非完整性规划问题,每个象素还会增加一些与机器人位姿相关的属性。仿真系统选择象素作为环境的基本单位是出于以下三个原因。
           
  •                                          象素的表示简单,简化了环境表示的数据结构。
           
  •                                          象素表示与栅格环境构成对应关系,可以将一个象素看成一个栅格,这样可以适应大多数路径规划算法。
           
  •                                          以象素颜色作为 的区分,简化了碰撞检测函数的检测过程,提高了检测速度。

           
          8.6 仿真平台类图
          为提高仿真系统代码的利用效率和结构的清晰性,采用模块化程序设计方法。各模块之间简化关系见图。根据各模块之间的耦合程度,将Crobot和Cbarrier编译到同一个MFC扩展动态链接库中,其余的类分别编译到单独的MFC扩展动态链接库中。
       

         

           
  •                                          地图类(Cmap)

          生成地图对象,作为路径规划的环境模型,用一个动态二维数组存储地图信息,可以根据具体地图的大小来决定此数组的大小。这是一个自定义的对象数组,每一个节点信息对象包含有节点坐标和节点类型两个属性。节点类型属性用于记录地图上此坐标的节点信息,包括静态障碍物、动态障碍物、机器人、可行点等,分别由不同的值表示。仿真系统通过可以读取的BMP格式文件作为静态地图,每一个像素就是一个栅格节点,BMP文件可以任意编辑,因此仿真系统的静态地图建立是相当方便的。环境模型的另一个功能是用于显示仿真动画。由于动态数组信息中包括地图信息、机器人、动态障碍物在内的各种信息,通过在不同时刻将数组中的节点信息显示在界面上,就形成了仿真动画。
           
        地图类图如图8.6.1所示。

         

       

        图8.6.1  地图类图

         

           
  •                                          物体类(Cobject)

        包括机器人类和障碍物类。物体类是基类,标记当前坐标等基本信息。

        机器人的大小为一个栅格,即采用点状机器人模型;对于非点状机器人,可以通过扩展障碍物使机器人尺寸收缩为一个栅格大小。

         

        文献【40】提出了一种基于客户端/服务器结构的多机器人计算机仿真系统设计方案,基于二维平面模型来建立机器人模型、传感器模型、环境模型;提供了配置传感器参数功能、实时改变环境模型功能。在本系统中可以将每一个客户端实例化为一个机器人,通过继承父类并新添加自己属性的方法,使不同机器人各自有不同的工作场景,各自按照规划算法完成工作,并提供修改接口;在运行过程中改变参数,完成复杂的仿真,实现多机器人多任务的仿真。

         

        机器人类的基类是一个抽象类,机器人类包括路径规划的起点和终点、视野半径、步长、能否记忆标志等一些基本属性。

         

        大脑记忆模拟。在机器人类中有一个RobotNode的动态二维数组,用于记录机器人获知的地图节点信息,这个数组中的元素对象类似于地图类中的节点信息对象,但多了一些其它属性,用于记录规划路径时的一些附加参数。机器人就是将这个数组作为栅格地图来进行路径规划算法的计算。

         

        环境感知记忆模块。此模块模拟了信息感知的功能,通过读取环境地图类中MapNode 数组信息并记录到RobotNode数组中来实现,读取的范围根据机器人视野半径属性来决定。这个功能由SeeMap()虚函数来实现,在继承类中也可以根据需要重写这个函数,使新的机器人具有不同的感知能力。

         

        动态障碍物类定义了动态障碍物的模型,包括障碍物大小、当前坐标、移动步长、移动规律等属性。动态障碍物模型与机器人模型有一定的相似性,它们都是根据地图信息自主计算出本次移动路径,进行移动之后再将移动过程记录到地图模型中用于显示。它们之间的不同之处在于:首先,动态障碍物计算路径是基于MapNode地图数组,即它总是将所有地图信息作为已知,因此它不需要环境感知模块,而机器人则基于RobotNode机器人范围数组,其中可能只保存了部分地图信息;其次,它计算路径时的算法极为简单,一般进行直线运动,遇到静态障碍物则转换方向,因此不需要独立的算法模块;最后,动态障碍物在计算路径时无须考虑机器人的位置,而机器人在计算路径时必须考虑动态障碍物的位置。程序中的动态障碍物由一个动态障碍物对象链表记录,在程序最初设置阶段,每设置一个新的动态障碍物就在链表中加入一个动态障碍物的对象。在程序运行中也可以随时添加或删除一个动态障碍物。

         

        物体类图如图8.6.2所示。

       

        图8.6.2  物体类图

         

           
  •                                          算法类(Calgorithm)

        Path Planning Strategy是一个抽象类,本身并不实现算法,而由子类实现路径规划算法;一个子类对应一种路径规划算法,每增加一个新的路径规划算法就需要添加一个新的继承类。

         

        文献【45】中设计了一种不确定环境下移动机器人运动路径的在线规划算法,完成了在线规划避障功能,可以将其算法封装成一个算法类,在平台上进行仿真。仿真算法函数基于数组中的栅格地图信息规划一条可行路径,并将规划后的路径记录于规划路径数组,因此数组和规划路径数组是算法的输入/输出接口。算法类的每一个继承类应根据对应的路径规划算法给出这个函数的实现,将算法封装在这个类函数中。基于上述程序结构和特点,用户可以高效地对仿真系统进行新的路径规划算法的扩充。方法是继承算法基类,生成一个新的算法类,然后将路径规划算法封装在函数中,系统的其他部分无须改动。算法类图如图8.6.3所示。

         

       

        图8.6.3  算法类图

         

          移动机器人进行路径规划的中类的程序流程见图8.6.4。
       

        图8.6.4  路径规划的中类的程序流程图

         
          8.7 机器人表示方法
          机器人在二维仿真系统中可被视为一个不占空间的刚体,以一个象素的大小表示,其实际所占空间可以通过对障碍物进行“膨化”处理来消除。根据对象素颜色表示意义的约定,机器人及其所行路径都必须处于白色象素区域中。
           
        在程序中对于机器人模型我们用一个机器人基类类型的指针pRobot 表示,根据用户选择的不同算法,这个指针会指向不同的机器人对象,对象由机器人基类的某个继承类生成。根据C++语言的多态性,程序具有运行时识别的特性,在仿真的过程中会自动调用用户选择的路径规划算法进行计算。

         

        基于上述的程序结构和特点,用户可以高效的对仿真系统进行新的路径规划算法的扩充,方法是继承机器人基类生成一个新的机器人类,然后将路径规划算法封装在Think ()函数中,算法的输入输出接口就是RobotNode数组和规划路径数组两个数组。对系统的其它部分无需改动。

         

          8.8 算法接口
          8.8.1算法接口体系结构
          要构建一个机器人仿真系统,必须包括信号输入和信号输出两个部分。信号输入是指控制信号经由输入到移动机器人运动控制中心,进而来控制机器人运动;信号输出是指由机器人反馈来的信息经由输出接口传输到外部设备,外部设备可以对其进行记录,处理和分类,从而进一步作出处理。
           
          8.8.2Windows位图文件的读取原理与方法
          在C/C ++语言中,文件的打开、关闭以及读、写等操作是通过IO流类库中的各IO流类来实现的。但VC ++的MFC类库中的CFILE类对C++语言的IO流类的操作进行了进一步的封装,使得文件的读写操作变得更加方便。
           
          在VC++的MFC编程方式下,位图文件的读取方法如下:
          (1) 建立一个CFILE类的对象cf;(2) 利cf打开磁盘位图文件获取其大小(字节数)信息;(3) 建立一个位图文件头结构BITMAP FILE HEADER的实例BFH;(4) 定义一个Unsignedchar型的指针*pDib,并利用该指针动态开辟一片内存区域(大小dwDibSize等于文件总大小减去文件头结构的大小):pDib = new unsigned char[ dwDibSize ]。在以上(2) 、(3) 、(4)各步骤中,同时检查是否正确打开位图;(5) 建立一个指向位图信息头结构的BITMAP INFO HEADER的指针*m_pBIH,并将该指针指向实际被打开位图的信息头结构处,利用该结构获取位图的像素宽度col=m_pBIH→biWidth和像素高度row =m_pB IH→biHeight;(6) 根据位图的宽度col决定位图每一行所存储的字节数;(7) 定义一个结构体RGBData{BYTE Blue; BYTE Green; BYTERed; } ,创建一个元素个数等于位图高度row的数组data[ ] ,并为数组的每一个元素data[ i ]动态开辟一片大小为RGBData[ col ]的内存区域。这样,数组data[ ]可以看成是一个二维RGBData结构数组data [ ] [ ] ,这个二维数组的各元素就是位图中各像素点颜色的B、G、R分量值,可以用data [ i ] [ j ]. Blue的方式进行访问;(8) 利用对象cf的Seek函数将数据指针指向位图的数据区,并一行一行地将数据读取到数组data [ ]中。数组data[ ] [ ]就是所提供的算法接口。
           
          在提供了以上算法接口的情形下,算法设计就成了对数组data[ ] [ ]中各元素进行运算的过程。位图的保存可按照与位图读取相对应的方法来实现:首先打开文件,说明文件的保存类型,再保存位图文件头结构,再保存位图信息头结构,最后,一行一行地保存位图数据。位图的显示是通过调用系统的API函数SetDIBitsToDevice来实现的。
           
          8.9 机器人避障
          机器人避障行走的全过程,认为可归并为三个阶段:
          第一阶段,发现障碍物后命令转角控制系统进行转角改变,实施避障程序。这阶段的主要目的是为了躲开障碍物。本阶段由于有距离信息,因此撞上障碍物的几率很小。在这一阶段算法的主要任务是如何避障才能达到最佳的避障路线;第二阶段是刚好避开障碍物后的调整阶段。本阶段的目的是调整好机器人的行走方向。在本阶段机器人既要防止撞上障碍物,又要避免机器人偏离原来的行走路线太远;第三阶段是机器人回到预定行走轨迹上去的阶段。在这个阶段中控制的目的是如何迅速无偏差地回到预定的轨迹上去。对于避障的控制算法,比较了正弦函数控制法、数字PID 算法和模糊控制法,认为模糊控制法较传统的控制方法有其优越性,可以模拟人的直觉或经验规则进行控制,而不需要建立通常意义下的数学模型,且有较好的鲁棒性,对参数变化的适应性强,有较强的抗干扰能力。
           
       

        图8.9.1   机器人避障流程图

         

          8.10机器人运动驱动
        运动驱动是最主要的功能,它使动态障碍物能在地图模型中根据事先规定的移动规律计算得到每一次的移动路径,记录在运动路径数组中,同时移动动态障碍物,并将移动过程记录到地图模型中。

         

        根据规划路径数组中的信息和步长属性来移动机器人,并将移动的过程记录到地图模型中。此功能由Move()虚函数实现,继承类中也可以重写这个函数来模拟不同的运动驱动能力。

         

          8.11平台三步式滚动运行流程
        由于通用路径规划仿真系统需要在动态或未知环境下进行的路径规划,而在这些环境中进行路径规划必然要进行多次的重规划,因此仿真系统采用三步式的滚动运行方式,此方式同样兼容静态已知环境下的一次性路径规划。仿真系统的三步式滚动运行流程图见图8.11.1。

         

       

        图8.11.1  仿真系统的滚动运行流程图

         

        在图中可见,每次运行时,第一步机器人先感知视野半径内的环境信息并记录到“脑”中,第二步根据“脑”中信息进行局部路径规划,第三步根据规划的路径移动机器人,并判断是否已到达终点,如果没到达,则返回第一步再次运行。在第三步中,还需要进行所有动态障碍物的运动驱动。因为程序中此三步一般需要反复进行,因此称为三步式滚动运行方式。

         
          8.12并发检验及多移动机器人仿真
        在这里会遇到一个并发处理的问题。图2 虚线框内的两个运行步骤应该是并行进行的,但是由于计算机的串行运算特点,这两个步骤只能先后进行,这样有可能出现下述情况:机器人同动态障碍物的移动路径中有相互冲突的节点,但是程序中两个运行步骤的先后次序掩盖了这一情况,这样就会使研究者忽略一些算法中可能存在的缺陷。因此需要在程序中再加入一个并发处理检验层,即在第三步执行前先检查机器人规划路径数组和各个动态障碍物的运动路径数组中有无冲突的节点,如果存在冲突则报错,反之才进行第三步运行。

         

        由于机器人模型都是由对象来表示,进行多移动机器人仿真意味着需要在系统中创建多个机器人对象,我们可以在系统中使用机器人基类指针的链表来代替原先单个的指针pRobot。进行了这样的改进后,在程序初始化配置时可以任意选择系统中已有的对应不同算法的机器人对象,充分利用了资源。程序运行时在环境感知和算法计算中都不会出现问题。然而由于具体算法的能力问题使各个机器人在行走时可能会发生碰撞,在执行运动驱动的时候由于程序串行运行方式可能会掩盖这一并行冲突。使用类似上述解决单个机器人和动态障碍物之间的并发冲突处理方法即可检查出这一问题,使研究者能及时发现问题并对算法加以改进。

         

          8.13仿真系统的其它技术特点
        根据上述的系统结构和程序运行方式,设计的仿真系统有这样一些的技术特点,这些特点极大的提高了对路径规划算法的研究能力。

         

        基于滚动运行方式,程序有两种动画显示方法,第一种方法为连续显示,即每当第三步运行结束才进行一次显示刷新,这种方式模拟了真实的视觉效果。第二种方式为分步显示,即每一步运行结束都进行一次显示刷新,可以分别观察每次滚动中机器人感知的地图信息、机器人规划的可行路径以及行走的过程。

         

        另外对于程序运行的驱动方式也有两种选择。第一种是自动运行,即每到一定的时间间隔计时器就驱动程序运行一步。第二种是手动运行,只有在点击鼠标之后程序才运行一步。

         

        上述的动画显示和程序驱动方式可以相互组合,一般来说,采用手动运行、分步显示方式,同时配合其它参数及图形的输出功能,可以在很大程度上提高对一种算法性能的研究能力。

         

        在显示动画时,为了防止大量描点绘制屏幕时引起的画面闪烁问题,可采用每次显示只更新改变过信息的地图节点,使动画输出效果很理想。根据机器人模型的特点,仿真系统提供了设置机器人有无记忆能力的功能,如果机器人没有记忆功能,每一次滚动运行结束就删除RobotNode数组内的地图信息,反之则保留这些信息,这样可以很快的分别研究一个算法在机器人有无记忆时的规划效果,而不需要修改程序的任何部分。

         

        另外仿真系统可提供单独的窗口用于显示程序运行中RobotNode数组内的节点信息,使研究者可以随时观察到当前机器人知道了哪些地图信息。

         

        对于已知静态环境的一次性规划仿真,只需要在初始设置时将MapNode数组中的地图信息全部复制到RobotNode数组中,这样机器人在第一次滚动运行前就已经知道整个地图信息,一次滚动运行即能完成规划到达终点。

         

        系统中可以将 bmp 地图的文件名,机器人起迄点坐标、视野半径、步长、动态障碍物信息等数据随时记录在一个项目文件中,也可以随时导入一个已有的项目文件到系统中,这样方便了比较不同算法在同一环境下的运行结果。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-11-16 16:40 , 耗时 0.197216 秒, 22 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表