本发明专利技术公开一种自动导引车死锁处理方法,自动导引车所有移动都向调度中心申请锁定,最先锁定的自动导引车先行,并于离开时解锁;若进入死锁状态,将对应自动导引车任务放入冲突报告队列;取出冲突报告队列内的一个冲突报告,处理该冲突报告过程中若产生多个冲突操作,按先后顺序依次加入冲突操作栈;从后往前依次处理冲突操作,将完成的冲突操作标记完成,并移出冲突操作栈;当冲突操作栈为空,则取出冲突报告队列内的下一个冲突报告进行处理,直至解锁。本发明专利技术从死锁处理的角度出发,结合死锁产生时所有自动导引车都在不断的运动以及无法确定死锁的外围车辆的特点,从死锁的中心点切入,通过操作方法间的相互调用,形成操作流程,完成死锁处理。完成死锁处理。完成死锁处理。
【技术实现步骤摘要】
一种自动导引车死锁处理方法
[0001]本专利技术涉及自动导引车系统
,具体涉及一种自动导引车死锁处理方法。
技术介绍
[0002]AGV(Automated Guided Vehicle,自动导引车)是一种利用电磁或光学感应来引导的无人驾控的移动工具小车。最早由美国Barrett电子公司于20世纪50年代初开发成功,经过60多年的发展,随着电子技术及计算机技术的不断发展,AGV也不断朝着小型化、模块化及智能化发展,AGV已成为机器人产业的一个很重要的组成部分。
[0003]近年来人们生活水平逐渐提高,在物流、医药、家电、农业等各个行业中,普遍存在运输任务量大且繁琐的现象,这极大消耗了人力资源,而作为集自动化为一体的移动式机器人设备,AGV产业迎来蓬勃发展。AGV小车的应用使得各个产业的发展更加快速,提高生产效率,减少人力消耗,优化资源,降低成本。路径规划技术是AGV实现自主移动的核心技术,其方法的优劣直接影响AGV的效率智能化水平。
[0004]AGV移动过程中会遇到其他AGV,系统首先考虑是为该AGV尝试重新规划路径。如果多次尝试后,仍然无法产生路径,则判定进入死锁状态。
[0005]死锁状态主要为以下2种情况。如图1,A需要到B的位置,B也要到A的位置。如图2,A需要经过B的位置,B需要到A的位置。
[0006]如不解决这2种情况,就会在局部区域,出现大量AGV拥堵的现象。目前,领域内处理上述死锁现象的方法主要包括以下3种:
[0007]1.死锁预防,在布局设计阶段,通过局部区域的限流或者限制运行方向等方法,避免AGV的相向而行;
[0008]2.死锁防止,在AGV运作中,在路口/通道等区域,在调度系统中限制AGV的进出;
[0009]3.死锁处理,发生死锁后,人工或者系统干预,解决堵车情况。
[0010]目前,针对AGV死锁的处理通常集中在方法1和2上,针对死锁发生后的处理方法尚未有公开报道。
技术实现思路
[0011]本专利技术的目的是为解决AGV系统的死锁问题,从死锁处理角度提出一种自动导引车死锁处理方法,结合死锁产生时,所有AGV都在不断的运动以及无法确定死锁的外围车辆的特点,从死锁的中心点切入,解决死锁问题。
[0012]本专利技术为解决上述技术问题的不足,所采用的技术方案是:一种自动导引车死锁处理方法:
[0013]AGV所有移动都向调度中心申请锁定,最先锁定的AGV先行,并于离开时解锁;
[0014]若进入死锁状态,将对应AGV任务放入冲突报告队列;
[0015]取出冲突报告队列内的一个冲突报告,处理该冲突报告过程中若产生多个冲突操作,按先后顺序依次加入冲突操作栈;
[0016]从后往前依次处理冲突操作,将完成的冲突操作标记完成,并移出冲突操作栈;
[0017]当冲突操作栈为空,则取出冲突报告队列内的下一个冲突报告进行处理,直至解锁。
[0018]作为本专利技术一种自动导引车死锁处理方法的进一步优化,包括:取出冲突操作栈中的最后一个冲突解决操作curCO进行处理,如果curCO有路径且未执行,则生成一个新的移动任务,并发送该任务予AGV执行,否则,为curCO重新规划路径。
[0019]作为本专利技术一种自动导引车死锁处理方法的进一步优化,包括:路线执行主线程会处理重新规划事件,当收到重新规划路径的结果后,主动触发如下操作:取路径的下一步nextPos:
[0020]如果nextPos上有障碍AGV,如果障碍AGV有任务,且该任务并非让路任务,则通知障碍AGV暂停任务,并安排后续生成让路任务,如果障碍AGV没有任务,则为障碍AGV添加让路任务,并将该任务加入冲突操作;
[0021]如果nextPos上没有障碍AGV,发送路径给AGV执行。
[0022]作为本专利技术一种自动导引车死锁处理方法的进一步优化,发现AGV已完成暂停,且需生成让路任务,则添加让路任务,并将该任务加入冲突操作。
[0023]作为本专利技术一种自动导引车死锁处理方法的进一步优化,包括:如果curCO对应的AGV移动到了预定终点,则将curCO标记完成,并移出冲突操作栈;如果curCO对应的AGV移动过程中遇到冲突,则为curCO重新规划路径。
[0024]作为本专利技术一种自动导引车死锁处理方法的进一步优化,当判定发生死锁时,取消该AGV的锁点申请,任务状态设置为暂停并等待重新规划路径,并将AGV任务放入冲突报告队列。
[0025]作为本专利技术一种自动导引车死锁处理方法的进一步优化,取出冲突报告队列的第一个冲突报告,为之生成相应的冲突操作,加入冲突操作栈,处理后若冲突操作栈为空,则标记该冲突报告完成并移出冲突报告队列,并按先后顺序依次处理其它冲突报告。
[0026]一种AGV调度系统,该调度系统用于调度AGV移动,当所述AGV调度系统运行时采用上述AGV死锁处理方法。
[0027]一种电子设备,包括处理器与存储器,所述存储器用于存储代码;所述处理器用于执行所述存储器中的代码用以实现上述的死锁自动处理方法。
[0028]一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的死锁自动处理方法。
[0029]本专利技术具有以下有益效果:
[0030]本专利技术从死锁处理的角度出发,结合死锁产生时所有AGV都在不断的运动以及无法确定死锁的外围车辆的特点,从死锁的中心点切入,将进入死锁状态的对应AGV任务放入冲突报告队列,建立冲突报告队列,并依次取出一个冲突报告进行处理,处理该冲突报告过程中若产生多个冲突操作,按先后顺序依次加入冲突操作栈,建立冲突操作栈,并从后往前依次处理冲突操作,直至冲突操作栈为空,并继续处理余下冲突报告,直到冲突报告队列为空,解开死锁。
[0031]进一步的,本专利技术包括如下操作方法:
[0032](1)当前curCO操作:
[0033]取出冲突操作栈中的最后一个冲突解决操作curCO进行处理,如果curCO有路径且未执行,则生成一个新的移动任务,并发送该任务予AGV执行,否则,为curCO重新规划路径。
[0034](2)重新规划操作:
[0035]路线执行主线程会处理重新规划事件,当收到重新规划路径的结果后,主动触发如下操作:取路径的下一步nextPos:
[0036]如果nextPos上有障碍AGV,如果障碍AGV有任务,且该任务并非让路任务,则通知障碍AGV暂停任务,并安排后续生成让路任务,如果障碍AGV没有任务,则为障碍AGV添加让路任务,并将该任务加入冲突操作;
[0037]如果nextPos上没有障碍AGV,发送路径给AGV执行。
[0038](3)让路操作:
[0039]如果发现AGV已完成暂停,且需生成让路任务,则添加让路任务,并将该任务加入冲突操作。
[0040](4)curCO任务执行操作:
[0041]如果curCO对应的AGV本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种自动导引车死锁处理方法,其特征在于,包括:自动导引车所有移动都向调度中心申请锁定,最先锁定的自动导引车先行,并于离开时解锁;若进入死锁状态,将对应自动导引车任务放入冲突报告队列;取出冲突报告队列内的一个冲突报告,处理该冲突报告过程中若产生多个冲突操作,按先后顺序依次加入冲突操作栈;从后往前依次处理冲突操作,将完成的冲突操作标记完成,并移出冲突操作栈;当冲突操作栈为空,则取出冲突报告队列内的下一个冲突报告进行处理,直至解锁。2.如权利要求1所述一种自动导引车死锁处理方法,其特征在于,包括:取出冲突操作栈中的最后一个冲突解决操作curCO进行处理,如果curCO有路径且未执行,则生成一个新的移动任务,并发送该任务予自动导引车执行,否则,为curCO重新规划路径。3.如权利要求2所述一种自动导引车死锁处理方法,其特征在于,包括:路线执行主线程会处理重新规划事件,当收到重新规划路径的结果后,主动触发如下操作:取路径的下一步nextPos:如果nextPos上有障碍自动导引车,如果障碍自动导引车有任务,且该任务并非让路任务,则通知障碍自动导引车暂停任务,并安排后续生成让路任务,如果障碍自动导引车没有任务,则为障碍自动导引车添加让路任务,并将该任务加入冲突操作;如果nextPos上没有障碍自动导引车,发送路径给自动导引车执行。4.如权利要求3所述一种自动导引车死锁处理方法,其特征在于,如果发现自动导引车已完成暂停,且需生成让路任务,则添加让...
【专利技术属性】
技术研发人员:陈兴华,方阳,
申请(专利权)人:安吉智能物联技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。