一种自动导引运输车路径冲突的避让方法及装置
技术领域
本申请涉及自动化技术领域,特别是涉及一种自动导引运输车路径冲突的避让方法及装置。
背景技术
自动导引运输车(Automated Guided Vehicle,AGV)是智能物流仓储系统中的关键设备,其可以作为搬运机器人,极大地节约人工成本和提升工作效率。AGV在工作时能够沿规定的导引路径运动,但是,在同一工作区域内可能存在多个AGV,它们之间的运动路径可能会发生冲突,形成死锁,导致无法继续移动。此时,需要某些AGV进行避让以解除冲突。请参阅图1,图1是现有技术中自动导引运输车路径冲突避让方法的流程示意图。该方法中,先判断AGV是否处于死锁状态,若是,则进入解死锁的流程。选定一辆AGV作为避让车,将给定的避让点按离避让车的远近进行排序,优先选择距离较近的避让点来规划避让路径。先规划出避让车去避让点的路径,再规划出从避让点到任务点的路径,两段路径拼接后发送给避让车,使避让车按照避让路径运动,而死锁环中其他AGV按正常路径进行运动。若规划失败,则舍弃该避让点,选择下一个避让点进行规划,直到所有避让点都规划失败,则换另一辆AGV作为避让车进行规划。
本申请的发明人在长期的研发过程中,发现上述方案中避让点是直接给定的,没有考虑到地图及环境中的其他信息,这样容易导致解锁不彻底,形成二次死锁,或者是避让过程中,绕路较多,降低AGV的工作效率。
发明内容
本申请主要解决的技术问题是提供一种自动导引运输车路径冲突的避让方法及装置,能够提高解除死锁的效率。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种自动导引运输车路径冲突的避让方法,所述方法包括:在死锁环中选取一辆运输车作为避让车,并在地图中获取避让点;从避让点中筛选出有效避让点;计算避让车到有效避让点的距离;根据地图的道路连通性和/或其他运输车的路径信息对距离进行修正;选择距离最小的有效避让点作为目标避让点,规划避让路径。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种自动导引运输车路径冲突的避让装置,所述装置包括处理器和存储器,处理器耦接存储器,存储器存储有程序,处理器用于执行程序实现上述的自动导引运输车路径冲突的避让方法。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种具有存储功能的装置,所述装置存储有程序,所述程序被执行时实现上述的自动导引运输车路径冲突的避让方法。
本申请的有益效果是:区别于现有技术的情况,本申请所提供的避让方法,在筛选避让点时,考虑了AGV的实际位置和其他AGV的路径,尽量避免选择路径上的点作为避让点,使避让点的选择更优,避让所需移动的路程更短,同时避免了二次解锁,解死锁的效率大幅提高。再有,还考虑了AGV所处位置的地图的道路连通性,有效排除了一些干扰点。
附图说明
图1是现有技术中自动导引运输车路径冲突避让方法的流程示意图;
图2是本申请自动导引运输车的调度流程示意图;
图3是本申请自动导引运输车路径冲突避让方法的流程示意图;
图4是本申请拓扑地图的局部示意图;
图5是本申请拓扑地图的局部示意图;
图6是本申请拓扑地图的局部示意图;
图7是本申请拓扑地图的局部示意图;
图8是本申请自动导引运输车路径冲突的避让装置第一实施方式的结构示意图;
图9是本申请具有存储功能的装置第一实施方式的结构示意图。
具体实施方式
为使本申请的目的、技术方案及效果更加清楚、明确,以下参照附图并举实施例对本申请进一步详细说明。
本申请提供一种自动导引运输车路径冲突的避让方法,用于在多台AGV路径互相冲突,无法移动而形成死锁后,根据地图特性自主选择临时避让点,规划出一条从当前点到避让点再到任务点的路径,使其他死锁AGV能够移动起来,以此来解除死锁的方法。
请参阅图2,图2是本申请自动导引运输车调度流程示意图。在该方法中,首先初始化AGV调度系统,并获取系统中所有AGV的当前状态信息。之后根据分配的任务选择合适的AGV来执行任务,根据AGV的当前状态信息、任务目标信息以及环境中的障碍物信息,给AGV规划出一条从起始状态到目标状态的无碰撞路径。规划出路径后,按照一定条件逐段下发路径。若后续段路径与其他车的段路径冲突,则说明下段路径不安全,在走完当前段路径后,停车等待,同时不断尝试下发后续段路径,若冲突消失,则后续段路径能下发成功。当尝试下发次数达到一定阈值后仍未成功,则重新规划路径。当重新规划路径不成功或路径规划成功但第一段路径一直下发不成功时,将该AGV加入不安全队列。若所有不安全AGV中有路径互相冲突的AGV,则判断它们处于一个死锁环中,进入解死锁的流程。若解锁成功,则将同一死锁环中的AGV从不安全队列中删除。
其中,利用深度搜索算法,通过判断AGV与哪些其他AGV路径有冲突,找到死锁环。
请参阅图3,图3是本申请自动导引运输车路径冲突避让方法的流程示意图。在该实施方式中,路径冲突的解死锁过程包括如下步骤:
S301:在死锁环中选取一辆运输车作为避让车,并在地图中获取避让点。
其中,AGV的运动地图是拓扑地图,是一种保持点与线相对位置关系正确而不一定保持图形状与面积、距离、方向正确的抽象地图。在地图中可以设置多个标识点,例如使用二维码等识别码来标识,或者利用射频芯片来标识,以使AGV能够获取位置点信息,以参考确认AGV的位置信息。在初始化地图时,可以根据地图的数据,如依据地图中节点的可旋转性、道路连通性、节点属性、地图属性等,按照预设规则初步选取符合预定条件的点作为避让点。请参阅图4,图4是本申请拓扑地图的局部示意图。选取道路连通性大于二以及与该点直接连通的可旋转的点作为避让点。其中,道路连通性大于二是指该点连接有两个以上的其他点,如该点连接有三个点,或者说以该点为起点具有三条通往不同点的道路。同时,为了避免在避让时尽量的不对其他AGV的运转产生过大的影响,选择时还须排除地图中的特殊点,如充电点,工作台,货架区,排队区等。符合上述原则的点都可以作为避让点来规划避让路径。避让点选定后,如果地图不发生变化,在后续调度过程中,可以直接在这些避让点中进行筛选;如果地图发生更新,则可以在更新后自动的按照上述原则增加或删除避让点。
在解死锁时,一辆AGV可能同时处于多个死锁环中,在选择避让车时,可以选取死锁环中被冲突次数最多的AGV作为避让车,这样在该车避让后,可能可以同时解除多个死锁环,提高效率。在其他实施方式中,也可以按照AGV的优先级选择避让车,优先选择解除任务紧急的AGV所在的死锁环,以使其及时恢复运动,完成任务。
S302:从避让点中筛选出有效避让点。
其中,初始化地图时预先选取的避让点没有考虑到环境中的多方因素,如果全部拿来作为备选避让点来规划避让路径会增大计算量,降低效率。因此,可以根据避让车所在环境,对避让点进行进一步的筛选,排除一些在此次解锁过程中明显不能使用的避让点。如需排除那些被空闲车、充电车和故障车占据的点,因为这些AGV在短时间内很可能不会移动,即使规划出路径,避让车也不能顺利到达避让点实施避让。还应排除掉避让车与避让点之间的距离小于车长的避让点,这些避让点距离避让车过近,可能不能顺利到达,或即使到达这些避让点,仍可能造成阻塞,无法达到避让的目的。将这些点排除后,剩余的避让点可以作为有效避让点,用以规划避让路径。
S303:计算避让车到有效避让点的距离。
其中,有效避让点可能有多个,要在这些避让点中选择一个比较优化的避让方案,以减少避让时的绕路,因此,可以根据避让车到有效避让点的距离来对避让点进行再一次的筛选,以确认目标避让点规划避让路径。在一实施方式中,可以选择曼哈顿距离作为避让车到有效避让点的距离评估标准。因为直接计算避让车到避让点的实际运动距离需要考虑多方因素进行路径规划,计算量过大,而曼哈顿距离(Manhattan Distance)是两个点在标准坐标系上的绝对轴距总和,相对欧式距离(直线距离)能更接近的体现实际运动距离,减小误判率。
S304:根据地图的道路连通性和/或其他运输车的路径信息对距离进行修正。
其中,曼哈顿距离是一个理论距离,与避让车的实际运动路径距离还是有一定的差异,特别是受地图的道路连通性限制,有时曼哈顿距离很小,但是实际运动距离可能会很大,那么这个避让点就不是一个优选避让点,因此,在根据距离确认目标避让点前,应根据地图的道路连通性,对避让车到有效避让点的距离进行修正。其中,道路联通性是指两点之间具有能够连通这两个点供AGV行走的道路。
另外,避让点有可能会在死锁环中其他AGV的运动路径上,如果选择在路径上的避让点去避让,当其他AGV经过该点时容易造成二次死锁,解锁不彻底。因此,这些点也不是优化点,若这些点距离避让车的曼哈顿距离较小,就有可能被选为目标避让点,因此,也需要对这些点的距离进行修正。
具体地,在对这些距离进行修正时,可以将这些避让点与避让车之间的距离调大,如人为参与手动设置调大,或者按照预设规则,自动加大至某个数量级的数值。通过修正,能够在根据距离确认目标避让点时,尽量不选到这些实际上并不优化的避让点。
在另一实施方式中,如果备选的有效避让点大于阈值,如大于十个、二十个等,为了减少计算量,在进行修正时,可以直接将这些点在有效避让点的列表中删除,不再将其作为有效避让点使用。
S305:选择距离最小的有效避让点作为目标避让点,规划避让路径。
其中,按照修正后的距离,选择距离避让车最近的避让点作为目标避让点规划避让路径。规划出避让车从当前位置到目标避让点的路径,及避让车从目标避让点到任务点的路径,两段路径拼接后,得到避让车的完整路径,再逐段下发路径给避让车。
其中,若不能成功规划出避让路径,或者规划出路径后,第一段路径一直下发不成功,则说明规划失败。舍弃当前避让点,选择下一个避让点重试。若规划失败次数超过预设值,则换死锁环中另一个AGV作为避让车重新规划。若死锁环中的所有AGV都规划失败,则结束这轮的规划。重新开启新一轮规划,在新一轮规划中重复上述步骤,直到所有AGV的避让点队列为空。或者换另一死锁环开启新一轮规划,直到不安全队列中的AGV为空。
其中,若规划成功,且第一段路径下发成功,避让车出发向避让点移动。死锁环中其他AGV等待避让车开始移动后,按原来规划的路径尝试下发路径,按照原来规划的路径移动。避让车到达避让点后,判断跟其形成死锁的AGV是否已经移动,若还未移动,则在避让点等待预定时间,之后再继续运动。以确认已避开死锁AGV,以防形成二次死锁。
另外,一辆AGV可能同时处于多个死锁环中,一旦其中一个死锁环解锁规划成功,则其所处的其他死锁环在这轮规划中先不进行解锁,因为,这次解锁移动后,可能不再对其他死锁环中的AGV形成冲突,即同时解锁了其他死锁环。
在一实施方式中,可以按照与避让车之间的距离对有效避让点进行排序,将距离避让车最近的避让点排在序列前端,若第一个避让点规划失败时,按照序列顺序,依次选择下一个避让点重试,直至规划成功或者规划失败次数超过阈值。
请参阅图5,图5是本申请拓扑地图的局部示意图。在一实施方式中,获取死锁环中其他运输车的路径信息,确定路径区域,路径区域为其他运输车的路径所经过的区域,将避让车到路径上的有效避让点的距离调大。其中,直接计算避让车到避让点A、B、C的曼哈顿距离时,因为避让点A、B、C离避让车较近,得到的距离值较小。在以距离大小为标准确认目标避让点时,这几个点将会排在序列的前端,比较容易被选到。但是避让点A、B、C在死锁环中其他AGV的运动路径上,如果选择这些点作为避让点,容易产生二死锁,导致解锁不彻底。因此这些点不是一个优化的避让点。在对距离进行修正时,可以将避让车到这些避让点的距离调大,如把距离手动置为最大(INT_MAX),这样,在以距离为标准进行排序时,可保证这些点排在序列末端,不易被选为目标避让点。通过这种方式,能够有效避免二次解锁。
请参阅图6,图6是本申请拓扑地图的局部示意图。在一实施方式中,获取避让车当前位置预定范围内的地图信息;获取避让车所在直通路上离避让车最近的道路连通性大于二的拐点信息,确定直通路区域,直通路区域为以避让车当前位置和拐点为端点的直通路区域,将避让车到直通路区域中的有效避让点的距离调大。其中,直通路是指该道路上只有连通性为二的点,AGV只能在当前线路上前进或后退,而没法转到另一条道路上,或者说,直通路不代表是直线方向上的路,在方向上可以转弯;而是没有岔路,或不能转到其他路上去。
其中,虽然避让点A、B、C、D离避让车较近,距离较小,但是避让点A、B、C、D与避让车在同一条直通路径上,若选择这些点作为避让点时,因为避让车没有转换道路,很容易造成解锁不彻底,形成二次死锁。就好像避让车和避让点都在一座“独木桥”上,即使避让车走到了避让点,但是它依然在独木桥上,仍无法允许其他AGV经过,解锁不彻底。因此,这些点也是一些干扰点,并不是优化点。在对距离进行修正时,可以将避让车到这些避让点的距离调大,这样,在以距离为标准进行排序时,可保证这些点排在序列末端,不易被选为目标避让点。
请参阅图7,图7是本申请拓扑地图的局部示意图。在一实施方式中,获取避让车当前位置预定范围内的地图信息;获取避让车所在直通路上离避让车最近的道路连通性大于二的拐点信息,并计算避让车到拐点的距离;判断避让车到有效避让点的距离中是否有小于避让车到拐点距离的;若是,则将避让车到有效避让点的距离调大。
其中,所计算得到的避让车到避让点的曼哈顿距离是一理论值,没有考虑到地图的道路连通性,使其与避让车的实际运动路径距离有较大的差异。如避让点A和B,在计算曼哈顿距离时,避让车到两者的距离都较小,但是,因为道路不连通,避让车不能直接到达避让点A和B,而是需要绕很长的路线才能到达。导致避让路径过长,并不是一个优化的避让点。在对距离进行修正时,可以将避让车到这些避让点的距离调大,这样,在以距离为标准进行排序时,可保证这些点排在序列末端,不易被选为目标避让点。如果这样的点有多个,则都将他们的距离调大。
在另一实施方式中,也可以获取避让车当前位置及任意有效避让点预定范围内的地图信息,确定避让区域,避让区域为以避让车当前位置和有效避让点为对角端点形成的矩形区域;判断避让区域内是否有完整连通避让车与有效避让点的道路;若否,则将避让车到有效避让点的距离调大。具体地,曼哈顿距离是两个点在标准坐标系上的绝对轴距总和,是限定了一个矩形区域的,那么,如果在这个矩形区域内没有完整连通这两个点的道路,说明若想从避让车走到避让点需要绕到矩形以外的区域,那么避让车所走的实际道路就有可能远远大于曼哈顿距离。通过这种方式,能够排除一些需要绕路的避让点。
其中,在根据地图的道路连通性和/或其他运输车的路径信息对距离进行修正时,修正步骤不分先后顺序,可以先考虑地图的道路连通性进行修正,也可以先考虑其他AGV的路径进行。同样可以选择性只修正部分距离,如只根据地图的道路连通性对距离进行修正,而不考虑其他AGV的路径;或者只根据其他AGV的路径对距离进行修正,而不考虑地图的道路连通性。即上述修正方案可以选择性执行其中的一种或多种。在修正调大距离时,可以根据需求将道路连通性不好的避让点排在其他路径上的避让点前面,或者将其他路径上的避让点排在道路连通性不好的避让点前面,在此不做限定。
上述方案,在解锁过程中,避让点不需要根据不同的地图手动人工配置,完全由预设算法根据输入的地图数据自动配置完成,具有良好的普适性。项目进行中若对地图中标识点的位置、数量以及地图结构进行调整,不需要对算法端进行修改和调整,仍能自动配置避让点,智能化程度更高。同时,在筛选避让点时,考虑了AGV的实际位置和其他AGV的路径,尽量避免选择路径上的点,使避让点的选择更优,避让所需移动的路程更短,同时避免了二次解锁,解死锁的效率大幅提高。再有,还考虑了AGV所处位置的地图的道路连通性,有效排除了一些干扰点。
在此基础上,本申请还提供一种自动导引运输车路径冲突的避让装置,请参阅图8,图8是本申请自动导引运输车路径冲突的避让装置第一实施方式的结构示意图。在该实施方式中,避让装置80包括处理器801和存储器802,处理器801耦接存储器802,存储器802存储有程序,处理器801用于执行程序实现上述的自动导引运输车路径冲突的避让方法,且具有相应的有益效果,具体请参阅上述实施方式的描述,在此不再赘述。该装置可以是总控调度平台,或者内置于AGV上的芯片等。
本申请还提供一种具有存储功能的装置,请参阅图9,图9是本申请具有存储功能的装置第一实施方式的结构示意图。在该实施方式中,存储装置90存储有程序901,程序901被执行时实现上述自动导引运输车路径冲突的避让方法。具体工作过程与上述方法实施例中一致,故在此不再赘述,详细请参阅以上对应方法步骤的说明。其中具有存储功能的装置可以是便携式存储介质如U盘、光盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟等各种可以存储程序代码的介质,也可以是终端、服务器等。
在本申请所提供的几个实施方式中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施方式所述方法的全部或部分步骤。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。