一种基于时间窗的多机器人路径规划方法_2

文档序号:9886950阅读:来源:国知局
突。如果有潜在时间窗重叠,则调整原有时间窗,使时间窗相互分离,就可以避免冲突。
[0045]点时间窗:机器人占用路径上某个节点的时间窗。
[0046]边时间窗:机器人占用某条短路径(即相邻节点之间的路径)的时间窗和方向。所述方向是指机器人在该短路径上的行走方向,用于在同一段短路径上多台机器人的冲突判断。
[0047]空闲时间窗:即某个资源空闲的时间段。
[0048]机器人优先级:为了避免路径改变的频次,本发明对同一系统内的多个机器人定义优先级,以保证不会因为新任务的增加导致的其他已运行任务的找不到合理路径的情况。即正在执行任务的机器人优先级比拟执行任务的机器人的优先级高。同一批任务中,按照执行任务的顺序从小到大给机器人编号,从而机器人编号决定了其优先级别,机器人编号较小者优先级高。
[0049]死锁:几个机器人互相占用资源,导致均无法移动的情况。
[0050]预先规划方法:
[0051]在正常情况下,同一系统内的执行各自任务的机器人是按照顺序逐个加入到系统里的,当一个执行新任务的机器人加入时,需要先根据已有的机器人状态,对新任务进行路径规划,以避免新机器人与已有机器人的冲突,本发明将这一路径规划称为预先规划方法,新机器人根据预先规划方法的结果行进。预先规划方法的具体步骤如下:
[0052]I)初始化:将系统地图用节点和短路径来表示并保存,同时保存系统中所有已有机器人的点时间窗和边时间窗。
[0053]2)对于新任务,按照任务的起始时间、起始节点、目标节点,搜索获得空间上所有可行的路径集合作为备选集合。
[0054]3)从备选集合中选择一条可行路径,根据所有已有机器人的点时间窗和边时间窗,计算该可行路径的各个空闲时间窗。
[0055]4)选择第一个空闲时间窗作为当前空闲时间窗,判断新任务能否在当前空闲时间窗内执行完毕,如果能执行完,则合并该可行路径上每段短路径的执行时间,得到该可行路径的执行时间;如果不能执行完,则选择下一个空闲时间窗作为当前空闲时间窗,重复上述判断步骤,直到找到一个可以执行完任务的空闲时间窗。
[0056]5)对于备选集合中的所有可行路径,循环执行步骤3-4,得到每条可行路径的执行时间。将执行时间最短的可行路径作为新机器人的行进路径。
[0057]动态规划方法:
[0058]预先规划方法正确执行的前提是每个机器人均按照规定的时间到达和离开相应节点,但实际应用中可能会有各种因素导致各个机器人的时间窗被打乱。基于此,本发明进一步提出了一种动态规划方法,每隔一段时间根据各个机器人的实时位置,进行动态规划,实时在线进行路径协调。动态规划方法的具体步骤如下:
[0059]I)在多机器人的系统地图中设定节点和短路径,并保存。
[0060]所述系统地图是指机器人在室内或室外运动的实际地图,机器人在此地图上移动以完成相关任务。对机器人而言,所述地图可以人为的加入节点和短路径以限定机器人的运动线路,即本地图中的机器人的运动路径只能是由这些设定的节点和路径组成。其中节点是指机器人运动路径中的某个点位置,短路径是指由两个节点为端点形成的直线路径。
[0061]机器人在执行任务时,通过合理地选择地图中的节点和短路径可以寻找到若干条路径使机器人从起点运动到终点以完成任务。
[0062]路径搜索算法就是通过这种算法能够得到若干可行的路径以使机器人能够完成其任务,并按照一定的排列规则将这些路径进行排序。
[0063]2)初始化,清除节点和路径的时间窗,清除所有机器人的已规划标记、阻塞标记和循环标记。
[0064]上述初始化过程将地图中所有机器人的相关标记进行清除,所有路径的时间窗进行清除,以进行相关路径规划。所述路径包括短路径,也包括由若干条短路径前后依次相连而成的运动路径。所述时间窗是指机器人占用某个资源的时间段,即机器人从该时间段的起始时间到终止时间占用该资源。所述已规划标记用于表示机器人已经完成了路径规划,所述阻塞标记用于表示机器人处于阻塞状态;所述循环标记用于后续算法的循环控制。
[0065]3)获取各个机器人的速度、位置和状态信息,所述状态包括待规划状态和无需规划状态;使用预定路径搜索算法在预设条件下为各个机器人搜索若干路径,搜索到的路径作为相应机器人的可选路径。
[0066]上述预定的算法可以是本领域已知的路径搜索算法,例如Di jks tra算法、A*算法或者BFS算法。所述待规划状态包括任务待分配状态、任务运行状态和任务阻塞状态;所述无需规划状态包括机器人故障状态和任务结束状态。通过当前各个机器人的速度、位置和状态信息,已知的路径搜索算法都可以为该机器人搜索出多条可行的路径,但是为了提高算法运行的效率,控制路径规划时间,本发明在上述步骤3中为该路径搜索算法设置了预设条件,该预设条件可是预先设定的路径搜索的上限时间或者搜索到的路径的上限数量,换言之,一旦该路径搜索算法的路径搜索的时间达到上限时间或者搜索到的路径数量达到上限数量,则立即结束该路径搜索算法,继续执行以下步骤。
[0067]4)清除所有机器人的时间窗、已规划标记和循环标记;
[0068]步骤4是本算法循环步骤中的第一步,只清除时间窗、已规划标记和循环标记,但是保留了后面给机器人打上的阻塞标记。
[0069]5)根据所有具有无需规划状态的机器人和具有阻塞标记的机器人的位置和状态更新时间窗;
[0070]此处的更新时间窗指的是对上述具有无需规划状态的机器人和具有阻塞标记的机器人所在的短路径或节点进行封锁,以表明该短路径或节点已被占用。由于具有阻塞标记的机器人实际上已经处于阻塞状态,其所在的短路径和节点已经无法被其他机器人使用,因此当发现阻塞机器人后,需要在排除其占用短路径和节点的情况下,重新进行计算。
[0071]6)选择一个无阻塞标记且无已规划标记的待规划状态的机器人,计算该机器人的每一条可选路径的空闲时间窗,包括该可选路径上各个节点、短路径的空闲时间窗。
[0072]上述选择可以是随机选择,也可以按照机器人优先级从高到低选择。上述可选路径就是步骤4中搜索得到的可选路径。但是,步骤4中得到的可选路径只是对单个机器人而言可选的路径,并没有考虑其他机器人,因此步骤6中需要考察可选路径上的空闲时间窗,从而判断该机器人是否能在不和其他机器人冲突的情况下,真正走完该可选路径。
[0073]7)判断步骤6所选择的机器人是否具有可选路径能在对应的空闲时间窗内完成任务。如果有,则选择其中耗时最短的可选路径作为该机器人的行进路径,并对该机器人打上已规划标记,同时更新所有的点时间窗和边时间窗,如果没有,则放宽预设条件,使用所述预定路径搜索算法为该机器人搜索其他路径,如果没能搜索到新的可选路径,则对该机器人打上阻塞标记和循环标记,如果搜索到新的可选路径,则将新路径加入该机器人的可选路径并返回步骤6。
[0074]步骤7通过判断可选路径是否能在对应空闲时间窗内完成,从而可以获得机器人不与其他机器人冲突的真正可选路径,但是,这些可选路径中有可能并不存在无冲突的可选路径,在这种情况下,首先是为该机器人重新搜索路径,搜索路径的算法与步骤3所使用的算法相同。步骤3中的算法是在预定条件限制下的完成的算法,为了搜索其他路径,这里放宽了该预定条件,以检查是否还有其他可能的路径,从而能够在后续步骤中从新路径中找到无冲突的路径。所述的放宽预设条件是指增加路径搜索的上限时间,或者增加搜索到的路径的上限数量。但是,如果在完全放宽条件后,仍然不能找到新路径,实际上意味着该机器人在该算法下的所有可选路径都被其他机器人堵塞了,冲突已经不可避免,该机器人就是一个处于阻塞状态的机器人。
[0075]步骤7中的循环标记用于后续步骤判断是否结束本算法的循环;
[0076]8)判断所有无阻塞标记的待规划状态的机器人中,是否还有未被打上已规划标记的机器人,如果有则返回步骤6,如
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1