发明内容
有鉴于此,本发明实施例提供一种防止机器人碰撞的方法和装置,通过根据目标区域中基准点的分布情况划分干涉区域,后续将从开始点到目标点的基准点集合拆分成子路由,并为子路由设置干涉区域标识,以在机器人按照子路由进行移动前,根据子路由的干涉区域标识,锁定对应干涉区域,保证干涉区域内只能进入一辆机器人,避免了干涉区域内的机器人发生碰撞。
为实现上述目的,根据本发明实施例的一个方面,提供了一种防止机器人碰撞的方法。
本发明实施例的一种防止机器人碰撞的方法,包括:通过路径规划生成从开始点到目标点的基准点集合,获取所述基准点集合的基准点对应的干涉区域标识;根据所述基准点对应的干涉区域标识,将所述基准点集合进行拆分,为拆分得到的多条子路由分别设置干涉区域标识;根据所述子路由的干涉区域标识锁定对应的干涉区域,在锁定成功后下发路由指令,以使机器人进入所述干涉区域;其中,所述干涉区域是根据目标区域中基准点的分布情况,对所述基准点进行划分得到的。
可选地,根据目标区域中基准点的分布情况,对所述基准点进行划分得到干涉区域,包括:将目标区域中属于下述任意一种情况的基准点划分到一个干涉区域中:相邻的所述基准点之间的距离小于等于所述机器人的尺寸,所述基准点位于交叉路口,所述基准点位于直线和弧线交叉处,以及所述基准点位于巷道内和巷道出入口;所述方法还包括:为所述干涉区域中的基准点设置干涉区域标识。
可选地,所述将所述基准点集合进行拆分,为拆分得到的多条子路由分别设置干涉区域标识,包括:遍历所述基准点集合,若当前基准点为所述基准点集合的第一个点,则根据所述当前基准点和下一基准点的干涉区域标识,将所述当前基准点添加到当前子路由的点集合中,将所述下一基准点添加到所述当前子路由或者新子路由的点集合中,为所述当前子路由和所述新子路由分别设置干涉区域标识,将所述新子路由更新为所述当前子路由,根据所述下一基准点的干涉区域标识设置锁区域标志;若所述当前基准点为所述基准点集合的其他点,则根据所述锁区域标志和所述下一基准点的干涉区域标识,将所述下一基准点添加到所述当前子路由或者下一新子路由的点集合中,为所述当前子路由和所述下一新子路由分别设置干涉区域标识,将所述下一新子路由更新为所述当前子路由;其中,所述其他点为所述基准点集合中除所述第一个点之外的基准点。
可选地,所述根据所述下一基准点的干涉区域标识设置锁区域标志,包括:判断所述下一基准点的干涉区标识是否为空,若所述下一基准点的干涉区域标识为空,则将所述锁区域标志设置为假;若所述下一基准点的干涉区域标识不为空,则将所述锁区域标志设置为真。
可选地,所述将所述当前基准点添加到当前子路由的点集合中,将所述下一基准点添加到所述当前子路由或者新子路由的点集合中,为所述当前子路由和所述新子路由分别设置干涉区域标识,包括:若所述当前基准点和所述下一基准点的干涉区域标识均不为空,且相同,则将所述当前基准点和所述下一基准点添加到当前子路由的点集合中,将所述当前子路由的干涉区域标识设置为所述当前基准点的干涉区域标识;若所述当前基准点和所述下一基准点的干涉区域标识均不为空,且相异,则将所述当前基准点添加到所述当前子路由的点集合中,将所述当前子路由的干涉区域标识设置为所述当前基准点的干涉区域标识,将所述当前子路由添加到路由集合中,生成新子路由,将所述下一基准点添加到所述新子路由的点集合中,将所述新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识;若所述当前基准点的干涉区域标识不为空,所述下一基准点的干涉区域标识为空,则将所述当前基准点添加到所述当前子路由的点集合中,将所述当前子路由的干涉区域标识设置为所述当前基准点的干涉区域标识,将所述当前子路由添加到所述路由集合中,生成所述新子路由,将所述下一基准点添加到所述新子路由的点集合中;若所述当前基准点的干涉区域标识为空,所述下一基准点的干涉区域标识不为空,则将所述当前基准点添加到所述当前子路由的点集合中,将所述当前子路由添加到所述路由集合中,生成所述新子路由,将所述下一基准点添加到所述新子路由的点集合中,将所述新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识;若所述当前基准点和所述下一基准点的干涉区域标识均为空,则将所述当前基准点和所述下一基准点添加到所述当前子路由的点集合中。
可选地,所述将所述下一基准点添加到所述当前子路由或者下一新子路由的点集合中,为所述当前子路由和所述下一新子路由分别设置干涉区域标识,包括:若所述锁区域标志为真,所述下一基准点的干涉区域标识不为空且与所述当前子路由的干涉区域标识相同,则将所述下一基准点添加到所述当前子路由的点集合中;若所述锁区域标志为真,所述下一基准点的干涉区域标识不为空且与所述当前子路由的干涉区域标识相异,则将所述当前子路由添加到路由集合中,生成下一新子路由,将所述当前基准点和所述下一基准点添加到所述下一新子路由的点集合中,将所述下一新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识;若所述锁区域标志为真,且所述下一基准点的干涉区域标识为空,则将所述锁区域标志更新为假,将所述当前子路由添加到所述路由集合中,生成所述下一新子路由,将所述当前基准点和所述下一基准点添加到所述下一新子路由的点集合中,将所述下一新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识;若所述锁区域标志为假,且所述下一基准点的干涉区域标识为不空,则将所述锁区域标志更新为真,将所述当前子路由添加到所述路由集合中,生成所述下一新子路由,将所述当前基准点和所述下一基准点添加到所述下一新子路由的点集合中,将所述下一新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识;若所述锁区域标志为假,且所述下一基准点的干涉区域标识为空,则将所述下一基准点添加到所述当前子路由的点集合中。
可选地,所述方法还包括:判断所述下一基准点是否为所述基准点集合的最后一个点,若所述下一基准点是所述基准点集合的最后一个点,则将所述当前子路由添加到所述路由集合中;若所述下一基准点不是所述基准点集合的最后一个点,则从所述基准点集合中取出新当前基准点和新下一基准点,将所述新当前基准点作为所述当前基准点,将所述新下一基准点作为所述下一基准点。
可选地,所述方法还包括:根据所述机器人当前执行的路由指令中所述子路由的起始点和终止点的干涉区域标识,以及所述机器人的位置信息,判断所述机器人是否离开所述干涉区域;若所述机器人离开所述干涉区域,则释放所述起始点归属的干涉区域。
可选地,所述判断所述机器人是否离开所述干涉区域,包括:若所述子路由的起始点的干涉区域标识不为空,所述终止点的干涉区域标识为空,且所述机器人离开所述终止点时,说明所述机器人离开所述干涉区域;若所述子路由的起始点和终止点的干涉区域标识均不为空且相异,并且所述机器人离开所述终止点时,说明所述机器人离开所述干涉区域。
为实现上述目的,根据本发明实施例的另一方面,提供了一种防止机器人碰撞的装置。
本发明实施例的一种防止机器人碰撞的装置,包括:生成获取模块,用于通过路径规划生成从开始点到目标点的基准点集合,获取所述基准点集合的基准点对应的干涉区域标识;拆分设置模块,用于根据所述基准点对应的干涉区域标识,将所述基准点集合进行拆分,为拆分得到的多条子路由分别设置干涉区域标识;锁定下发模块,用于根据所述子路由的干涉区域标识锁定对应的干涉区域,在锁定成功后下发路由指令,以使机器人进入所述干涉区域;其中,所述干涉区域是根据目标区域中基准点的分布情况,对所述基准点进行划分得到的。
可选地,所述装置还包括:干涉区域划分模块,用于将目标区域中属于下述任意一种情况的基准点划分到一个干涉区域中:相邻的所述基准点之间的距离小于等于所述机器人的尺寸,所述基准点位于交叉路口,所述基准点位于直线和弧线交叉处,以及所述基准点位于巷道内和巷道出入口;以及为所述干涉区域中的基准点设置干涉区域标识。
可选地,所述拆分设置模块,还用于:遍历所述基准点集合,若当前基准点为所述基准点集合的第一个点,则根据所述当前基准点和下一基准点的干涉区域标识,将所述当前基准点添加到当前子路由的点集合中,将所述下一基准点添加到所述当前子路由或者新子路由的点集合中,为所述当前子路由和所述新子路由分别设置干涉区域标识,将所述新子路由更新为所述当前子路由,根据所述下一基准点的干涉区域标识设置锁区域标志;以及若所述当前基准点为所述基准点集合的其他点,则根据所述锁区域标志和所述下一基准点的干涉区域标识,将所述下一基准点添加到所述当前子路由或者下一新子路由的点集合中,为所述当前子路由和所述下一新子路由分别设置干涉区域标识,将所述下一新子路由更新为所述当前子路由;其中,所述其他点为所述基准点集合中除所述第一个点之外的基准点。
可选地,所述拆分设置模块,还用于:判断所述下一基准点的干涉区域标识是否为空,若所述下一基准点的干涉区域标识为空,则将所述锁区域标志设置为假;以及若所述下一基准点的干涉区域标识不为空,则将所述锁区域标志设置为真。
可选地,所述拆分设置模块,还用于:若所述当前基准点和所述下一基准点的干涉区域标识均不为空,且相同,则将所述当前基准点和所述下一基准点添加到当前子路由的点集合中,将所述当前子路由的干涉区域标识设置为所述当前基准点的干涉区域标识;若所述当前基准点和所述下一基准点的干涉区域标识均不为空,且相异,则将所述当前基准点添加到所述当前子路由的点集合中,将所述当前子路由的干涉区域标识设置为所述当前基准点的干涉区域标识,将所述当前子路由添加到路由集合中,生成新子路由,将所述下一基准点添加到所述新子路由的点集合中,将所述新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识;若所述当前基准点的干涉区域标识不为空,所述下一基准点的干涉区域标识为空,则将所述当前基准点添加到所述当前子路由的点集合中,将所述当前子路由的干涉区域标识设置为所述当前基准点的干涉区域标识,将所述当前子路由添加到所述路由集合中,生成所述新子路由,将所述下一基准点添加到所述新子路由的点集合中;若所述当前基准点的干涉区域标识为空,所述下一基准点的干涉区域标识不为空,则将所述当前基准点添加到所述当前子路由的点集合中,将所述当前子路由添加到所述路由集合中,生成所述新子路由,将所述下一基准点添加到所述新子路由的点集合中,将所述新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识;以及若所述当前基准点和所述下一基准点的干涉区域标识均为空,则将所述当前基准点和所述下一基准点添加到所述当前子路由的点集合中。
可选地,所述拆分设置模块,还用于:若所述锁区域标志为真,所述下一基准点的干涉区域标识不为空且与所述当前子路由的干涉区域标识相同,则将所述下一基准点添加到所述当前子路由的点集合中;若所述锁区域标志为真,所述下一基准点的干涉区域标识不为空且与所述当前子路由的干涉区域标识相异,则将所述当前子路由添加到路由集合中,生成下一新子路由,将所述当前基准点和所述下一基准点添加到所述下一新子路由的点集合中,将所述下一新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识;若所述锁区域标志为真,且所述下一基准点的干涉区域标识为空,则将所述锁区域标志更新为假,将所述当前子路由添加到所述路由集合中,生成所述下一新子路由,将所述当前基准点和所述下一基准点添加到所述下一新子路由的点集合中,将所述下一新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识;若所述锁区域标志为假,且所述下一基准点的干涉区域标识为不空,则将所述锁区域标志更新为真,将所述当前子路由添加到所述路由集合中,生成所述下一新子路由,将所述当前基准点和所述下一基准点添加到所述下一新子路由的点集合中,将所述下一新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识;以及若所述锁区域标志为假,且所述下一基准点的干涉区域标识为空,则将所述下一基准点添加到所述当前子路由的点集合中。
可选地,所述装置还包括:判断更新模块,用于判断所述下一基准点是否为所述基准点集合的最后一个点,若所述下一基准点是所述基准点集合的最后一个点,则将所述当前子路由添加到所述路由集合中;若所述下一基准点不是所述基准点集合的最后一个点,则从所述基准点集合中取出新当前基准点和新下一基准点,将所述新当前基准点作为所述当前基准点,将所述新下一基准点作为所述下一基准点。
可选地,所述装置还包括:判断释放模块,用于根据所述机器人当前执行的路由指令中所述子路由的起始点和终止点的干涉区域标识,以及所述机器人的位置信息,判断所述机器人是否离开所述干涉区域;以及若所述机器人离开所述干涉区域,则释放所述起始点归属的干涉区域。
可选地,所述判断释放模块,还用于:若所述子路由的起始点的干涉区域标识不为空,所述终止点的干涉区域标识为空,且所述机器人离开所述终止点时,说明所述机器人离开所述干涉区域;以及若所述子路由的起始点和终止点的干涉区域标识均不为空且相异,并且所述机器人离开所述终止点时,说明所述机器人离开所述干涉区域。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种防止机器人碰撞的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种防止机器人碰撞的方法。
上述发明中的一个实施例具有如下优点或有益效果:预先根据目标区域中基准点的分布情况划分干涉区域,后续将从开始点到目标点的基准点集合拆分成子路由,并为子路由设置干涉区域标识,以在机器人按照子路由进行移动前,根据子路由的干涉区域标识,锁定对应干涉区域,保证干涉区域内只能进入一辆机器人,避免了干涉区域内的机器人发生碰撞;根据目标区域中基准点的分布情况,划分干涉区域,能够将硬件层面防碰撞机制不能防止碰撞的区域划分到干涉区域中,且不锁定硬件层面防碰撞机制能够防止碰撞的区域的基准点,既与硬件层面防碰撞机制互补,又提高了机器人执行任务的效率;通过根据干涉区域标识和锁区域标志对基准点集合进行拆分,使各子路由的基准点不会在多个干涉区域内,有效避免机器人碰撞;根据机器人进入或者离开干涉区域,对干涉区域进行锁定或者释放,合理利用资源,避免干涉区域内出现多辆机器人造成碰撞。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面对本发明实施例中涉及到的技术术语进行解释说明。
基准点:目标区域中用于定位机器人的固定点,所述固定点为人为设置的。
干涉区域:机器人可能发生碰撞的区域。
子路由:包括至少一个基准点和干涉区域标识。
路由集合:包括多个子路由的集合。
路由指令:下发给机器人的指令,包括行走指令、充电指令、抬起货叉指令、放下货叉指令等。
路段:由基准点组成的线段,是机器人移动轨迹的一部分。
图1是根据本发明实施例的防止机器人碰撞的方法的主要步骤的示意图。如图1所示,本发明实施例的防止机器人碰撞的方法,主要包括如下步骤:
步骤S101:通过路径规划生成从开始点到目标点的基准点集合,获取所述基准点集合的基准点对应的干涉区域标识。根据目标区域中基准点的分布情况,预先对所述基准点进行划分得到至少一个干涉区域,并为所述干涉区域中的基准点设置干涉区域标识。当机器人控制***接收到上游***发送来的任务后,会进行路径规划,生成从开始点到目标点途经的基准点集合,之后获取所述基准点集合中所有基准点的干涉区域标识。其中,所述基准点集合的第一个点为所述开始点,所述基准点集合的最后一个点为所述目标点。
步骤S102:根据所述基准点对应的干涉区域标识,将所述基准点集合进行拆分,为拆分得到的多条子路由分别设置干涉区域标识。得到基准点集合后并不会一次性下发至机器人,而是将基准点集合中的基准点进行拆分得到包括多个子路由的路由集合。具体实现时需要遍历基准点集合,若当前基准点为所述基准点集合的第一个点,则根据所述当前基准点和下一基准点的干涉区域标识,将所述当前基准点添加到当前子路由的点集合中,将所述下一基准点添加到所述当前子路由或者新子路由的点集合中,为所述当前子路由和所述新子路由分别设置干涉区域标识,将所述新子路由更新为所述当前子路由,根据所述下一基准点的干涉区域标识设置锁区域标志。若所述当前基准点为所述基准点集合的其他点,则根据所述锁区域标志和所述下一基准点的干涉区域标识,将所述下一基准点添加到所述当前子路由或者下一新子路由的点集合中,为所述当前子路由和所述下一新子路由分别设置干涉区域标识,将所述下一新子路由更新为所述当前子路由。
步骤S103:根据所述子路由的干涉区域标识锁定对应的干涉区域,在锁定成功后下发路由指令,以使机器人进入所述干涉区域;其中,所述干涉区域是根据目标区域中基准点的分布情况,对所述基准点进行划分得到的。数据库中存储有所述干涉区域与机器人标识的锁定关系,如果所述干涉区域对应的机器人标识为空,说明所述干涉区域未被任何机器人锁定,此时可在所述锁定关系中增加所述机器人标识,以锁定所述干涉区域。锁定成功后,通过路由指令将所述子路由下发至机器人,以使所述机器人按照所述子路由进入所述干涉区域。
图2是根据本发明实施例的防止机器人碰撞的方法的主要流程示意图。如图2所示,本发明实施例的防止机器人碰撞的方法,主要包括如下步骤:
步骤S201:根据目标区域中基准点的分布情况,将所述基准点进行划分得到至少一个干涉区域,为所述基准点设置相应的干涉区域标识。实施例中,将通过硬件层面防碰撞机制,不好避免机器人发生碰撞的区域划分到干涉区域中,后续针对这些基准点进行锁定与释放,弥补硬件层面防碰撞机制的短板,并提高机器人执行任务的效率。具体划分原则可以为诸如下述任意一种或者多种:(1)将目标区域中分布密集的基准点,划分到一个干涉区域中;(2)将位于交叉路口的基准点,划分到一个干涉区域中;(3)将位于直线和弧线交叉处的基准点,划分到一个干涉区域中;(4)将位于巷道内和巷道出入口的基准点,划分到一个干涉区域中。所述干涉区域标识为干涉区域编号。为基准点设置干涉区域标识的目的是标识基准点归属于哪个干涉区域。如果基准点对应的干涉区域标识为空,说明该基准点不归属于任何一个干涉区域。
上述第1种原则中,分布是否密集的判断依据,可以是相邻基准点之间的距离小于等于机器人的尺寸,此时两个基准点之间无法容纳一辆机器人,故需要将这些基准点划分到一个干涉区域中,从而保证两辆机器人不会发生碰撞。第2种原则用于防止由于对向突然驶来机器人,导致检测器无法检测到的情况。第3种原则能够防止交叉处的基准点之间的间距无法容纳一辆机器人,而发生碰撞的情况。第4种原则能够保证一个巷道内只能进入一辆机器人,此时该机器人可以自由的进入与退出。
图3为本发明实施例的针对交叉路由的干涉区域划分结果示意图。如图3所示,交叉路口有路段1和路段2,路段1中包括基准点2,路段2中包括基准点2、基准点9和基准点10,且路段1和路段2在基准点2相交。假设机器人1在路段1从左到右(按箭头方向)移动,机器人2在路段2按箭头方向移动,如果基准点9和基准点10之间的距离大于机器人2的尺寸,则将基准点2和基准点9划分为一个干涉区域;如果基准点9和基准点10之间的距离小于等于机器人2的尺寸,则将基准点2、基准点9和基准点10划分为一个干涉区域。
步骤S202:通过路径规划生成从开始点到目标点的基准点集合,获取所述基准点集合的基准点对应的干涉区域标识。机器人控制***在接收到上游***发送来的任务后,会进行路径规划生成从开始点到目标点途经的基准点集合。之后,为基准点集合中的所有基准点,获取步骤S201中设置的干涉区域标识。
步骤S203:根据所述基准点对应的干涉区域标识,将所述基准点集合进行拆分,为拆分得到的多条子路由分别设置干涉区域标识,并添加到路由集合中。将基准点集合中的基准点进行拆分得到包括多个子路由的路由集合,之后将路由集合中的子路由通过路由指令依次下发至机器人。当机器人执行完包括当前子路由的路由指令后,才会将包括下一子路由的路由指令下发至机器人。每条子路由中均设置有干涉区域标识。该步骤需要根据的当前基准点和下一基准点的干涉区域标识,分情况进行处理,具体实现过程见后续关于图5的描述。
步骤S204:判断当前子路由的干涉区域标识是否为空,如果为空,则执行步骤S205;如果不为空,则执行步骤S206。步骤S203将基准点集合拆分成了多个子路由,之后即可分段下发至机器人。但是下发之前,需要检查当前子路由的干涉区域标识是否为空,如果为空,说明,机器人按照该当前子路由移动时,不需要进入干涉区域;如果不为空,说明机器人按照该当前子路由移动时,需要进入干涉区域,此时需要首先锁定干涉区域。
在另一实施例中,可以不预先锁定干涉区域,而是通过机器人实时上传的心跳信息来计算所述机器人的位置信息,根据位置信息判断所述机器人是否进入了干涉区域。该方式能够在机器人进入干涉区域后,发现该干涉区域内有其人机器人而停止移动,避免碰撞。
步骤S205:将所述当前子路由通过路由指令下发至机器人,执行步骤S211。由于机器人无需进入干涉区域,故可以直接将包括当前子路由的路由指令下发至机器人,以使所述机器人按照所述当前子路由的基准点进行移动。
步骤S206:将所述子路由的干涉区域标识对应的干涉区域进行锁定,执行步骤S207。数据库中存储有干涉区域与机器人标识的锁定关系,如果干涉区域对应的机器人标识为空,说明该干涉区域未被任何机器人锁定,此时可在所述锁定关系中增加所述机器人标识,以锁定该干涉区域。如果干涉区域对应的机器人标识不为空,且与待进行锁定的机器人标识不同,说明该干涉区域已被其他机器人锁定。
步骤S207:判断干涉区域的锁定是否成功,如果锁定成功,则执行步骤S208;如果锁定失败,则执行步骤S206。如果所述干涉区域未被任何机器人锁定,则锁定成功;如果所述干涉区域已被其他机器人锁定,则锁定失败。锁定失败,就不会将包括当前子路由的路由指令下发至机器人,机器人则会停在干涉区域外。
步骤S208:将所述当前子路由通过所述路由指令下发至所述机器人,以使所述机器人进入所述干涉区域,执行步骤S209。锁定成功后,将包括当前子路由的路由指令下发至机器人,以使所述机器人进入所述干涉区域。
图4为本发明实施例的锁定干涉区域的原理示意图。如图4所示,目标区域中有编号分别为1至14的基准点,基准点12、基准点11和基准点3归属于干涉区域1,基准点10、基准点9和基准点2归属于干涉区域2,其他基准点不归属于任何一个干涉区域。假设机器人需要从基准点8移动到基准点1,经路径规划生成的基准点集合为{8,4,3,2,1}。经步骤S203处理后会将基准点集合拆分为四个子路由,其中,第1个子路由的点集合为{8,4},第2个子路由的点集合为{4,3},第3个子路由的点集合为{3,2},第4个子路由的点集合为{2,1},第1和第4个子路由的干涉区域标识为空,第2个子路由的干涉区域标识为1,第3个子路由的干涉区域标识为2。因此,下发第2个子路由和第3个子路由之前会锁定对应干涉区域。如果干涉区域内有其他机器人,锁定失败,机器人会停留在干涉区域外,且距离干涉区域最近的基准点,比如干涉区域1之前的基准点4和干涉区域2之前的基站点3。
步骤S209:根据所述机器人当前执行的路由指令中所述子路由的起始点和终止点的干涉区域标识,以及所述机器人的位置信息,判断所述机器人是否离开所述干涉区域,如果已离开,则执行步骤S210;如果未离开,则不进行任何处理。机器人会上报自身位置信息和其正在执行的路由指令的起始点和终止点。其中,所述起始点为所述子路由的第一个基准点,所述终止点为所述子路由的最后一个基准点。仍旧参考图4,假设机器人正按照第3个子路由移动,则其上报的起始点为基准点3,终止点为基准点2,由于起始点在干涉区域1,终止点在干涉区域2,则在离开干涉区域1时需释放干涉区域1。假设机器人正按照第4个子路由移动,则其上报的起始点为基准点2,终止点为基准点1,由于起始点在干涉区域2,终止点不在干涉区域内,则在离开干涉区域2时需释放干涉区域2。
判断所述机器人是否离开所述干涉区域的判断依据为:若机器人当前执行的路由指令中,所述子路由的起始点的干涉区域标识不为空,所述终止点的干涉区域标识为空,且所述机器人离开所述终止点时,说明所述机器人离开所述干涉区域;若所述子路由的起始点和终止点的干涉区域标识均不为空且相异,并且所述机器人离开所述终止点时,说明所述机器人离开所述干涉区域。即当起始点在干涉区域内,且终止点不在干涉区域内或者与起始点在不同的干涉区域内时,需要释放干涉区域。
步骤S210:释放所述起始点归属的干涉区域,执行步骤S211。即将锁定关系中该干涉区域对应的机器人标识更新为空。
步骤S211:判断所述当前子路由是否为所述路由集合中的最后一个子路由,如果是,则结束本流程;如果不是,则执行步骤S212。该步骤用于判断路由集合中的所有子路由是否均已经通过路由指令下发至机器人,以使机器人从开始点移动到目标点。
步骤S212:将所述路由集合的下一子路由作为所述当前子路由,执行步骤S204。当路由集合中仍旧有子路由未被下发至机器人时,按照路由集合中子路由的顺序,通过路由执行下发至机器人。
图5为本发明实施例中拆分基准点集合的主要流程示意图。如图5所示,本发明实施例的步骤S203的实现过程,主要包括如下步骤:
步骤S501:遍历所述基准点集合,从所述基准点集合取出当前基准点和下一基准点。其中,所述当前基准点的初始值为所述基准点集合中的第一个点。假设经路径规划得到的基准点集合A={S,P1,P2,…,Pn,D},其中,S为起始点,D为目标点,P1,P2,…,Pn均为中间点。从基准点集合A中第一次取出的当前基准点为S,下一基准点为P1;第二次取出的当前基准点为P1,下一基准点为P2;以此类推,第n+1次取出的当前基准点为Pn,下一基准点为D。实施例中,当前基准点用from点表示,下一基准点用to点表示。
步骤S502:判断所述当前基准点是否为所述基准点集合的第一个点,如果是,则执行步骤S503;否则,执行步骤S519。
步骤S503:生成当前子路由和锁区域标志,执行步骤S504。此时当前子路由为空,锁区域标志用于表示上一个基准点是否在干涉区域内,后续步骤区分了不同情况进行了说明。实施例中,用L代表锁区域标志,L有两种取值,具体取值由用户自定义。实施例中将L设置为了真或者假。
步骤S504:判断所述当前基准点的干涉区域标识是否为空,如果为不空,则执行步骤S505;如果为空,则执行步骤S512。
步骤S505:判断所述下一基准点的干涉区域标识是否为空,如果不为空,则执行步骤S506;如果为空,则执行步骤S510。如果所述下一基准点的干涉区域标识不为空,说明此点在干涉区域内;如果所述下一基准点的干涉区域标识为空,说明此点不在干涉区域内。
步骤S506:判断所述当前基准点的干涉区域标识与所述下一基准点的干涉区域标识是否相同,如果相同,则执行步骤S507;如果不同,则执行步骤S508。如果所述当前基准点的干涉区域标识与所述下一基准点的干涉区域标识相同,说明所述当前基准点与所述下一基准点在同一个干涉区域内;如果所述当前基准点的干涉区域标识与所述下一基准点的干涉区域标识不同,说明所述当前基准点与所述下一基准点不在同一个干涉区域内。
步骤S507:将所述当前基准点和所述下一基准点添加到当前子路由的点集合中,将所述当前子路由的干涉区域标识设置为所述当前基准点的干涉区域标识,将所述锁区域标志设置为真,执行步骤S516。实施例中,子路由的干涉区域标识用lockAreaId表示。
步骤S508:将所述当前基准点添加到所述当前子路由的点集合中,将所述当前子路由的干涉区域标识设置为所述当前基准点的干涉区域标识,将所述当前子路由添加到路由集合中,执行步骤S509。
步骤S509:生成新子路由,将所述下一基准点添加到所述新子路由的点集合中,将所述新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识,将所述锁区域标志设置为真,将所述新子路由更新为所述当前子路由,执行步骤S516。
步骤S510:将所述当前基准点添加到所述当前子路由的点集合中,将所述当前子路由的干涉区域标识设置为所述当前基准点的干涉区域标识,将所述当前子路由添加到所述路由集合中,执行步骤S511。
步骤S511:生成所述新子路由,将所述下一基准点添加到所述新子路由的点集合中,将所述锁区域标志设置为假,将所述新子路由更新为所述当前子路由,执行步骤S516。
步骤S512:判断所述下一基准点的干涉区域标识是否为空,如果不为空,则执行步骤S513;如果为空,则执行步骤S515。
步骤S513:将所述当前基准点添加到所述当前子路由的点集合中,将所述当前子路由添加到所述路由集合中,执行步骤S514。
步骤S514:生成所述新子路由,将所述下一基准点添加到所述新子路由的点集合中,将所述新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识,将所述锁区域标志设置为真,将所述新子路由更新为所述当前子路由,执行步骤S516。
步骤S515:将所述当前基准点和所述下一基准点添加到所述当前子路由的点集合中,将所述锁区域标志设置为假,执行步骤S516。
步骤S516:判断所述下一基准点是否为所述基准点集合的最后一个点,如果是,则执行步骤S517;如果不是,则执行步骤S518。如果所述下一基准点为所述基准点集合的最后一个点,说明基准点集合的拆分完成。
步骤S517:将所述当前子路由添加到所述路由集合中,结束本流程。
步骤S518:从所述基准点集合中取出新当前基准点和新下一基准点,将所述新当前基准点作为所述当前基准点,将所述新下一基准点作为所述下一基准点,执行步骤S502。其中,所述新当前基准点即为上一次取出的下一基准点。
步骤S519:判断所述锁区域标志是否为真,如果是真,则执行步骤S520;如果是假,则执行步骤S527。如果当前基准点不是基准点集合的第一个点,则需要判断当前的锁区域标志是否为真,如果为真,说明所述当前基准点在干涉区域;如果为假,说明所述当前基准点不在干涉区域。
步骤S520:判断所述下一基准点的干涉区域标识是否为空,如果不为空,则执行步骤S521;如果为空,则执行步骤S525。
步骤S521:判断所述当前基准点的干涉区域标识与所述下一基准点的干涉区域标识是否相同,如果相同,则执行步骤S522;如果不同,则执行步骤S523。
步骤S522:将所述下一基准点添加到所述当前子路由的点集合中,执行步骤S516。如果所述当前基准点与所述下一基准点在同一个干涉区域内,则将所述下一基准点添加到所述当前子路由的点集合中。
步骤S523:将所述当前子路由添加到路由集合中,执行步骤S524。
步骤S524:生成下一新子路由,将所述当前基准点和所述下一基准点添加到所述下一新子路由的点集合中,将所述下一新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识,将所述下一新子路由更新为所述当前子路由,执行步骤S516。
步骤S525:将所述锁区域标志更新为假,将所述当前子路由添加到所述路由集合中,执行步骤S526。
步骤S526:生成所述下一新子路由,将所述当前基准点和所述下一基准点添加到所述下一新子路由的点集合中,将所述下一新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识,将所述下一新子路由更新为所述当前子路由,执行步骤S516。
步骤S527:判断所述下一基准点的干涉区域标识是否为空,如果不为空,则执行步骤S528;如果为空,则执行步骤S530。
步骤S528:将所述锁区域标志更新为真,将所述当前子路由添加到所述路由集合中,执行步骤S529。
步骤S529:生成所述下一新子路由,将所述当前基准点和所述下一基准点添加到所述下一新子路由的点集合中,将所述下一新子路由的干涉区域标识设置为所述下一基准点的干涉区域标识,将所述下一新子路由更新为所述当前子路由,执行步骤S516。
步骤S530:将所述下一基准点添加到所述当前子路由的点集合中,执行步骤S516。
下面结合具体实施例对本发明的拆分基准点集合的过程进行说明。该实施例中,设定经路径规划得到的基准点集合A={S,P1,D}。按照上述处理过程,则可得到如下结果:
(1)第一次从基准点集合A中取点时,取出的基准点为S点和P1点,且S点为from点,P1点为to点。
此时由于S点为基准点集合A的第一个点,则判断S点的lockAreaId是否为空;
11)如果不是空,判断P1点的lockAreaId是否为空;
111)如果不是空,则判断S点与P1点的lockAreaId是否相同;
1111)如果S点与P1点的lockAreaId相同,则当前子路由的点集合为{S,P1},设置当前子路由的lockAreaId为S点或者P1点的lockAreaId,并将L设置为真。
1112)如果S点与P1点的lockAreaId不同,则当前子路由的点集合为{S},设置当前子路由的lockAreaId为S点的lockAreaId,将当前子路由的点集合{S}作为子路由1添加到路由集合B中;新建子路由2且子路由2的点集合为{P1},设置子路由2的lockAreaId为P1点的lockAreaId,并将L设置为真。
112)如果是空,则当前子路由的点集合为{S},设置当前子路由的lockAreaId为S点的lockAreaId,将当前子路由的点集合{S}作为子路由1添加到路由集合B中;新建子路由2且子路由2的点集合为{P1},设置子路由2的lockAreaId为空,并将L设置为假。
12)如果是空,判断P1点的lockAreaId是否为空;
121)如果不是空,则当前子路由的点集合为{S},设置当前子路由的lockAreaId为空,将当前子路由的点集合{S}作为子路由1添加到路由集合B中;新建子路由2且子路由2的点集合为{P1},设置子路由2的lockAreaId为P1点的lockAreaId,并将L设置为真。
122)如果是空,当前子路由的点集合为{S,P1},设置当前子路由的lockAreaId为空,并将L设置为假。
(2)由于P1点不是基准点集合A的最后一个点,需进行下述循环处理:
第二次从基准点集合A中取点时,取出的基准点为P1和D点,且P1点为from点,D点为to点。
此时由于P1点不是第一个点,则判断lockAreaId是真还是假;
21)如果是真,判断D点的lockAreaId是否为空;
211)如果不是空,则判断P1点与D点的lockAreaId是否相同;
2111)如果P1点与D点的lockAreaId相同,则当前子路由的点集合为{S,P1,D}(即对应1111)的情况)或者{P1,D}(即对应1112)和121)的情况)。
2112)如果P1点与D点的lockAreaId不同,则当前子路由的点集合为{S,P1}(即对应1111)的情况)或者{P1}(即对应1112)和121)的情况),将当前子路由的点集合作为子路由2添加到路由集合B中;新建子路由3且子路由3的点集合为{P1,D},设置子路由3的lockAreaId为D点的lockAreaId。
212)如果是空,则将L更新为假,当前子路由的点集合为{S,P1}(即对应1111)的情况)或者{P1}(即对应1112)和121)的情况),将当前子路由的点集合作为子路由2添加到路由集合B中;新建子路由3且子路由3的点集合为{P1,D},设置子路由3的lockAreaId为空。
22)如果是假,则判断D点的lockAreaId是否为空;
221)如果不是空,则将L更新为真,当前子路由的点集合为{P1}(即对应112)的情况)或者{S,P1}(即对应122)的情况),将当前子路由的点集合作为子路由2添加到路由集合B中;新建子路由3且子路由3的点集合为{P1,D},设置子路由3的lockAreaId为D点的lockAreaId。
222)如果是空,则当前子路由的点集合为{P1,D}(即对应112)的情况)或者{S,P1,D}(即对应122)的情况)。
(3)由于D点是基准点集合A的最后一个点,将当前子路由添加到路由集合B中。下面对应上述几种情况分别说明:
对于2111)和222)的情况,将当前子路由的点集合为{S,P1,D}作为子路由1添加到路由集合B中;或者将{P1,D}作为子路由2添加到路由集合B中,此时,子路由1的点集合为{S},路由集合B中由子路由1和子路由2构成。
对于2112)、212)和221)的情况,将子路由3的点集合{P1,D}添加到路由集合B中,此时,路由集合B由包括{S,P1}的子路由1和子路由3构成,或者由包括{S}的子路由1、由包括{P1}的子路由2和子路由3构成。
通过本发明实施例的防止机器人碰撞的方法可以看出,预先根据目标区域中基准点的分布情况划分干涉区域,后续将从开始点到目标点的基准点集合拆分成子路由,并为子路由设置干涉区域标识,以在机器人按照子路由进行移动前,根据子路由的干涉区域标识,锁定对应干涉区域,保证干涉区域内只能进入一辆机器人,避免了干涉区域内的机器人发生碰撞;根据目标区域中基准点的分布情况,划分干涉区域,能够将硬件层面防碰撞机制不能防止碰撞的区域划分到干涉区域中,且不锁定硬件层面防碰撞机制能够防止碰撞的区域的基准点,既与硬件层面防碰撞机制互补,又提高了机器人执行任务的效率;通过根据干涉区域标识和锁区域标志对基准点集合进行拆分,使各子路由的基准点不会在多个干涉区域内,有效避免机器人碰撞;根据机器人进入或者离开干涉区域,对干涉区域进行锁定或者释放,合理利用资源,避免干涉区域内出现多辆机器人造成碰撞。
图6是根据本发明实施例的防止机器人碰撞的装置的主要模块的示意图。如图6所示,本发明实施例的防止机器人碰撞的装置600,主要包括:
生成获取模块601,用于通过路径规划生成从开始点到目标点的基准点集合,获取所述基准点集合的基准点对应的干涉区域标识。根据目标区域中基准点的分布情况,预先对所述基准点进行划分得到至少一个干涉区域,并为所述干涉区域中的基准点设置干涉区域标识。当机器人控制***接收到上游***发送来的任务后,会进行路径规划,生成从开始点到目标点途经的基准点集合,之后获取所述基准点集合中所有基准点的干涉区域标识。其中,所述基准点集合的第一个点为所述开始点,所述基准点集合的最后一个点为所述目标点。
拆分设置模块602,用于根据所述基准点对应的干涉区域标识,将所述基准点集合进行拆分,为拆分得到的多条子路由分别设置干涉区域标识。得到基准点集合后并不会一次性下发至机器人,而是将基准点集合中的基准点进行拆分得到包括多个子路由的路由集合。具体实现时需要遍历基准点集合,若当前基准点为所述基准点集合的第一个点,则根据所述当前基准点和下一基准点的干涉区域标识,将所述当前基准点添加到当前子路由的点集合中,将所述下一基准点添加到所述当前子路由或者新子路由的点集合中,为所述当前子路由和所述新子路由分别设置干涉区域标识,将所述新子路由更新为所述当前子路由,根据所述下一基准点的干涉区域标识设置锁区域标志。若所述当前基准点为所述基准点集合的其他点,则根据所述锁区域标志和所述下一基准点的干涉区域标识,将所述下一基准点添加到所述当前子路由或者下一新子路由的点集合中,为所述当前子路由和所述下一新子路由分别设置干涉区域标识,将所述下一新子路由更新为所述当前子路由。
锁定下发模块603,用于根据所述子路由的干涉区域标识锁定对应的干涉区域,在锁定成功后下发路由指令,以使机器人进入所述干涉区域;其中,所述干涉区域是根据目标区域中基准点的分布情况,对所述基准点进行划分得到的。数据库中存储有所述干涉区域与机器人标识的锁定关系,如果所述干涉区域对应的机器人标识为空,说明所述干涉区域未被任何机器人锁定,此时可在所述锁定关系中增加所述机器人标识,以锁定所述干涉区域。锁定成功后,通过路由指令将所述子路由下发至机器人,以使所述机器人按照所述子路由进入所述干涉区域。
另外,本发明实施例的防止机器人碰撞的装置600还可以包括:干涉区域划分模块、判断更新模块和判断释放模块(图6中未示出)。其中,所述干涉区域划分模块,用于将目标区域中属于下述任意一种情况的基准点划分到一个干涉区域中:相邻的所述基准点之间的距离小于等于所述机器人的尺寸,所述基准点位于交叉路口,所述基准点位于直线和弧线交叉处,以及所述基准点位于巷道内和巷道出入口;以及为所述干涉区域中的基准点设置干涉区域标识。所述判断更新模块,用于判断所述下一基准点是否为所述基准点集合的最后一个点,若所述下一基准点是所述基准点集合的最后一个点,则将所述当前子路由添加到所述路由集合中;以及若所述下一基准点不是所述基准点集合的最后一个点,则从所述基准点集合中取出新当前基准点和新下一基准点,将所述新当前基准点作为所述当前基准点,将所述新下一基准点作为所述下一基准点。所述判断释放模块,用于根据所述机器人当前执行的路由指令中所述子路由的起始点和终止点的干涉区域标识,以及所述机器人的位置信息,判断所述机器人是否离开所述干涉区域;以及若所述机器人离开所述干涉区域,则释放所述起始点归属的干涉区域。
从以上描述可以看出,预先根据目标区域中基准点的分布情况划分干涉区域,后续将从开始点到目标点的基准点集合拆分成子路由,并为子路由设置干涉区域标识,以在机器人按照子路由进行移动前,根据子路由的干涉区域标识,锁定对应干涉区域,保证干涉区域内只能进入一辆机器人,避免了干涉区域内的机器人发生碰撞;根据目标区域中基准点的分布情况,划分干涉区域,能够将硬件层面防碰撞机制不能防止碰撞的区域划分到干涉区域中,且不锁定硬件层面防碰撞机制能够防止碰撞的区域的基准点,既与硬件层面防碰撞机制互补,又提高了机器人执行任务的效率。
图7示出了可以应用本发明实施例的防止机器人碰撞的方法或防止机器人碰撞的装置的示例性***架构700。
如图7所示,***架构700可以包括终端设备701、702、703,网络704和服务器705。网络704用以在终端设备701、702、703和服务器705之间提供通信链路的介质。网络704可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备701、702、703通过网络704与服务器705交互,以接收或发送消息等。终端设备701、702、703上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备701、702、703可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器705可以是提供各种服务的服务器,例如对管理员利用终端设备701、702、703提供的包括开始点和目标点的任务进行处理的后台管理服务器。后台管理服务器可以进行路径规划、基准点集合拆分、干涉区域锁定等处理,并将处理结果(例如锁定成功)反馈给终端设备。
需要说明的是,本申请实施例所提供的防止机器人碰撞的方法一般由服务器705执行,相应地,防止机器人碰撞的装置一般设置于服务器705中。
应该理解,图7中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种防止机器人碰撞的方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种防止机器人碰撞的方法。
下面参考图8,其示出了适用于来实现本发明实施例的电子设备的计算机***800的结构示意图。图8示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图8所示,计算机***800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的程序或者从存储部分808加载到随机访问存储器(RAM)803中的程序而执行各种适当的动作和处理。在RAM 803中,还存储有计算机***800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
以下部件连接至I/O接口805:包括键盘、鼠标等的输入部分806;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分807;包括硬盘等的存储部分808;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分809。通信部分809经由诸如因特网的网络执行通信处理。驱动器810也根据需要连接至I/O接口805。可拆卸介质811,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器810上,以便于从其上读出的计算机程序根据需要被安装入存储部分808。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分809从网络上被下载和安装,和/或从可拆卸介质811被安装。在该计算机程序被中央处理单元(CPU)801执行时,执行本发明的***中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的***、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行***、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行***、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的***、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括生成获取模块、拆分设置模块和锁定下发模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,生成获取模块还可以被描述为“通过路径规划生成从开始点到目标点的基准点集合,获取所述基准点集合的基准点对应的干涉区域标识的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:通过路径规划生成从开始点到目标点的基准点集合,获取所述基准点集合的基准点对应的干涉区域标识;根据所述基准点对应的干涉区域标识,将所述基准点集合进行拆分,为拆分得到的多条子路由分别设置干涉区域标识;根据所述子路由的干涉区域标识锁定对应的干涉区域,在锁定成功后下发路由指令,以使机器人进入所述干涉区域;其中,所述干涉区域是根据目标区域中基准点的分布情况,对所述基准点进行划分得到的。
从以上描述可以看出,预先根据目标区域中基准点的分布情况划分干涉区域,后续将从开始点到目标点的基准点集合拆分成子路由,并为子路由设置干涉区域标识,以在机器人按照子路由进行移动前,根据子路由的干涉区域标识,锁定对应干涉区域,保证干涉区域内只能进入一辆机器人,避免了干涉区域内的机器人发生碰撞。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。