果没有则继续执行以下步骤。
[0077]步骤8对阻塞标记和待规划状态进行判断,从而找出还需要规划的机器人,通过到步骤6-8的循环,让所有待规划机器人都完成路径规划。
[0078]9)判断是否还有打上循环标记的机器人,如果有则返回步骤4,如果没有则继续执行以下步骤。
[0079]步骤9通过判断循环标记,再次进行步骤4-9的循环,由于循环标记和阻塞标记是在步骤7中一起打上的,这意味着如果步骤7发现了新的阻塞机器人,就再重新循环计算一遍,在每次循环时,都是在排除了所有已发现的阻塞机器人所占用的短路径或节点的情况下重新计算的,直到不再发现新的阻塞机器人,就终止循环。
[0080]10)检测目前系统中是否存在机器人死锁,如果有,则报警。
[0081]动态规划方法的最后一步需要判断系统中是否存在死锁。实际上,在系统运行过程中,如果所有机器人都按照规划正常执行任务,就不可能出现死锁,但是实际应用中,机器人可能由于各种原因进入非正常执行任务状态,例如在路上被阻挡,或者故障,都有可能会造成死锁情况。所以必须及时的给出预警,以免机器人大面积瘫痪罢工,影响正常工作。
[0082]根据本发明的一个实施例,可以每隔预设时间重复执行上述步骤2-10,优选的,该预设时间是100ms。
[0083]死锁判断方法:
[0084]针对动态规划方法的最后一步,本发明还提出一种检测系统中是否存在机器人死锁的方法,可以用于动态规划方法中,也可以在系统运行时随时判断。该死锁判断的方法的具体步骤如下:
[0085]10.1)统计所有具有阻塞标记的机器人的关键路径和/或关键点;所述关键路径是指机器人所有可选路径中都经过的路径,所述关键点是指机器人所有可选路径中都经过的节点。
[0086]如果机器人具有阻塞标记,说明该机器人的所有可选路径上都具有冲突的机器人,如果所有可选路径中有共同的路径或节点,那么这些无法回避的路径或节点就是导致冲突乃至死锁的关键之处。
[0087]10.2)对于每一个具有关键路径和/或关键点的机器人,判断在其关键路径和/或关键点上是否有其他具有阻塞标记的机器人,如果有,则建立一有向边,该有向边从该具有关键路径和/或关键点的机器人指向该其他具有阻塞标记的机器人。
[0088]如果在机器人的关键路径或关键点上还具有阻塞机器人,说明该机器人的阻塞状态是否能够解除就依赖于该阻塞机器人的阻塞状态十分解除,因此通过上述建立的有向边来表不这一依赖关系。
[0089]10.3)判断所有有向边是否有形成环,如果有,则为死锁;如果没有,则没有死锁。
[0090]通过有向边表示的阻塞状态依赖关系如果形成了一个环,说明依赖关系链最终指向了机器人自身,这种情况下显然是无解的,这就构成了机器人死锁。
[0091]如果发生死锁,就应发出报警。另外,对于死锁中无解的机器人,记录其每条可行路径上的冲突短路径和冲突节点,并记录冲突依赖关系。对被依赖最多的机器人,也应给出预警。
[0092]以上所述仅是本发明的较佳实施方式,故凡依本发明专利申请范围所述的构造、特征及原理所做的等效变化或修饰,均包括于本发明专利申请范围内。
【主权项】
1.一种基于时间窗的多机器人路径规划方法,其特征在于,包括如下步骤: 1)在多机器人的系统地图中设定节点和短路径,并保存; 2)初始化,清除节点和路径的时间窗,清除所有机器人的已规划标记、阻塞标记和循环标记; 3)获取各个机器人的速度、位置和状态信息,所述状态包括待规划状态和无需规划状态;使用预定路径搜索算法在预设条件下为各个机器人搜索若干路径,搜索到的路径作为相应机器人的可选路径; 4)清除所有机器人的时间窗、已规划标记和循环标记; 5)根据所有具有无需规划状态的机器人和具有阻塞标记的机器人的位置和状态更新时间窗; 6)选择一个无阻塞标记且无已规划标记的待规划状态的机器人,计算该机器人的每一条可选路径的空闲时间窗,包括该可选路径上各个节点、短路径的空闲时间窗; 7)判断步骤6所选择的机器人是否具有可选路径能在对应的空闲时间窗内完成任务。如果有,则选择其中耗时最短的可选路径作为该机器人的行进路径,并对该机器人打上已规划标记,同时更新所有的点时间窗和边时间窗,如果没有,则放宽预设条件,使用所述预定路径搜索算法为该机器人搜索其他路径,如果没能搜索到新的可选路径,则对该机器人打上阻塞标记和循环标记,如果搜索到新的可选路径,则将新路径加入该机器人的可选路径并返回步骤6; 8)判断所有无阻塞标记的待规划状态的机器人中,是否还有未被打上已规划标记的机器人,如果有则返回步骤6,如果没有则继续执行以下步骤; 9)判断是否还有打上循环标记的机器人,如果有则返回步骤4,如果没有则继续执行以下步骤; 10)检测目前系统中是否存在机器人死锁,如果有,则报警。2.如权利要求1所述的基于时间窗的多机器人路径规划方法,其特征在于,每隔预设时间重复执行步骤2至步骤10。3.如权利要求2所述的基于时间窗的多机器人路径规划方法,其特征在于,所述预设时间为100ms。4.如权利要求1-3任意一项所述的基于时间窗的多机器人路径规划方法,其特征在于,所述待规划状态包括任务待分配状态、任务运行状态和任务阻塞状态;所述无需规划状态包括机器人故障状态和任务结束状态。5.如权利要求1-4任意一项所述的基于时间窗的多机器人路径规划方法,其特征在于,步骤5更新时间窗的方法为对无需规划状态机器人和具有阻塞标记机器人所在的短路径或节点进行封锁,以表明该短路径或节点被占用。6.如权利要求1所述的基于时间窗的多机器人路径规划方法,其特征在于,步骤6中按照机器人优先级从高到低选择。7.如权利要求1所述的基于时间窗的多机器人路径规划方法,其特征在于,步骤3和7中所述的预定路径搜索算法为Dijkstra算法、A*算法或者BFS算法。8.如权利要求1所述的基于时间窗的多机器人路径规划方法,其特征在于,步骤3中所述的预设条件为预先设定的路径搜索的上限时间或者搜索到的路径的上限数量,若路径搜索的时间达到上限时间或者搜索到的路径数量达到上限数量,则结束本次搜索。9.如权利要求1所述的基于时间窗的多机器人路径规划方法,其特征在于,步骤7中所述的放宽预设条件是指增加路径搜索的上限时间,或者增加搜索到的路径的上限数量。10.如权利要求1所述的基于时间窗的多机器人路径规划方法,其特征在于,所述步骤10中检测机器人死锁的具体步骤如下: 10.1)统计所有具有阻塞标记的机器人的关键路径和/或关键点;所述关键路径是指机器人所有可选路径中都经过的路径,所述关键点是指机器人所有可选路径中都经过的节占.V, 10.2)对于每一个具有关键路径和/或关键点的机器人,判断在其关键路径和/或关键点上是否有其他具有阻塞标记的机器人,如果有,则建立一有向边,该有向边从该具有关键路径和/或关键点的机器人指向该其他具有阻塞标记的机器人; 10.3)判断所有有向边是否有形成环,如果有,则为死锁;如果没有,则没有死锁。11.如权利要求10所述的基于时间窗的多机器人路径规划方法,其特征在于,对于死锁中无解的机器人,记录其每条可行路径上的冲突短路径和冲突节点,并记录冲突依赖关系,对被依赖最多的机器人给出预警。
【专利摘要】本发明涉及一种基于时间窗的多机器人路径规划方法,该方法通过已有机器人占用节点的点时间窗和边时间窗,规划新机器人的可行路径,并且在机器人时间窗被打乱时,重新动态规划各个机器人的路径,从而可以避免系统内多机器人的冲突。本发明的多机器人路径规划方法不需要多次迭代,只是在有限的路径集上计算可能性,相对计算量比较小,更适合真实的调度场景应用。
【IPC分类】G05B19/418
【公开号】CN105652838
【申请号】
【发明人】乔徽, 高恩颖, 许江帆
【申请人】哈尔滨工大服务机器人有限公司
【公开日】2016年6月8日
【申请日】2016年1月29日