CN114326753B - 一种调控区域内多机器人的死锁检测方法 - Google Patents

一种调控区域内多机器人的死锁检测方法 Download PDF

Info

Publication number
CN114326753B
CN114326753B CN202210217189.4A CN202210217189A CN114326753B CN 114326753 B CN114326753 B CN 114326753B CN 202210217189 A CN202210217189 A CN 202210217189A CN 114326753 B CN114326753 B CN 114326753B
Authority
CN
China
Prior art keywords
robot
control area
path
regulation
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210217189.4A
Other languages
English (en)
Other versions
CN114326753A (zh
Inventor
周玄昊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Lanxin Technology Co ltd
Original Assignee
Hangzhou Lanxin Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Lanxin Technology Co ltd filed Critical Hangzhou Lanxin Technology Co ltd
Priority to CN202210217189.4A priority Critical patent/CN114326753B/zh
Publication of CN114326753A publication Critical patent/CN114326753A/zh
Application granted granted Critical
Publication of CN114326753B publication Critical patent/CN114326753B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Abstract

本发明涉及一种调控区域内多机器人的死锁检测方法,包括:控制装置接收到任一移动机器人发出的路径节点申请请求,则判断路径节点申请请求中的路径节点是否处于预设的调控区域;控制装置在确定路径节点处于调控区域时,则获取相关联的参数集;控制装置基于该参数集,采用死锁检测策略对所述调控区域进行死锁检测,判断所述机器人集中每一移动机器人是否能够离开所述调控区域;控制装置确定所述机器人集中每一移动机器人都能够移出所述调控区域时,根据所述路径节点申请请求反馈是否同意路径节点申请请求的响应。本发明的方法可实现***资源调度的最大化,提升了***的运行效率。

Description

一种调控区域内多机器人的死锁检测方法
技术领域
本发明涉及机器人技术领域,尤其涉及一种调控区域内多机器人的死锁检测方法。
背景技术
目前,在仓库等移动机器人应用场景,往往是多台或几十台机器人共同工作,由于运行区域在空间上的局限性,与交通运输网络相似,多移动机器人运行网络也会存在局部区域堵塞、交通死锁的情况,其中,交通死锁是多移动机器人调度***面临的最为严重的一类交管问题,一旦发生,往往需要人工干预才能解决,将会严重影响运输的效率。从原理上分析,死锁问题是两台或两台以上机器人申请占用其他机器人已占用的资源(路径或点位),而互相等待对方资源释放,因此都不能继续运行而导致所有移动机器人停止在当前位置。
目前业内人士常使用下面两类方法避免死锁:
第一类方法:基于规则的方法,预防死锁的发生,这类规则是业内工程师根据死锁发生场景的特点,总结出对应的规则,在死锁即将发生前拒绝一台或多台机器人申请路径/节点,从而规避死锁情况的发生。
这类方法虽然能够规避掉一些常见的死锁情况的发生,但由于实际的多台移动机器人***调度网络拓扑结构复杂,机器人数量各异,并且还有特殊的移动任务逻辑,因此,仅仅靠人为总结与归纳,是无法考虑所有死锁的可能情况并做出正常的决策的。
另外,规则运用的越多越复杂,其存在互相冲突、互相打架的可能性越大,比如针对某种情况,A规则与B规则同时生效,此时两条规则可能都生效,互相影响,甚至可能出现A认为可以申请,B认为不能申请的情况,调度逻辑将会混乱。
第二类方法:基于时间窗口的优化方法,统筹考虑每台机器人对于每个资源访问的时间窗口,如果存在多台机器人同时间段占有同一资源的情况,则优化的代价函数设为极大,由此,优化方法将生成无死锁的所有机器人调度计划。
然而,基于时间窗口的优化方法本身的计算复杂度很大,而且,该方法属于静态的方法,其有效性需要所有机器人按照计划运行才能保证,但由于多台移动机器人***本身存在很大的随机性,一些随机事件的发生将导致原有调度计划完全失效。
发明内容
(一)要解决的技术问题
鉴于现有技术的上述缺点、不足,本发明提供一种调控区域内多机器人的死锁检测方法。
(二)技术方案
为了达到上述目的,本发明采用的主要技术方案包括:
第一方面,本发明实施例提供一种调控区域内多机器人的死锁检测方法,包括:
S10、控制装置接收到任一移动机器人发出的路径节点申请请求,则判断所述路径节点申请请求中的路径节点是否处于预设的调控区域;
S20、控制装置在确定所述路径节点处于所述调控区域时,则获取所述调控区域的所有路径节点的节点集合、获取所述调控区域当前时间段内所有移动机器人的机器人集合、所述机器人集合中每一机器人的当前位置的路径节点集合、所述机器人集合中每一机器人的剩余路径集合;
S30、所述控制装置基于所述节点集合、机器人集合、路径节点集合和剩余路径集合,采用死锁检测策略对所述调控区域内每一移动机器人进行死锁检测,判断所述机器人集合中每一移动机器人是否能够移出所述调控区域;
S40、所述控制装置确定所述机器人集合中每一移动机器人都能够移出所述调控区域时,根据所述路径节点申请请求反馈同意路径节点申请请求的信息;
其中,死锁检测策略是采用深度优先搜索方式遍历所述调控区域内每一移动机器人基于各自的剩余路径是否能够全部移出所述调控区域。
可选地,所述S30之后,还包括:
若所述控制装置确定所述机器人集合中有两台或两台以上移动机器人未能够移出所述调控区域,则确认所述调控区域处于死锁状态;
以及,根据所述路径节点申请请求反馈拒绝占用所述路径节点的响应。
可选地,所述S30中的采用死锁检测策略对所述调控区域内每一移动机器人进行死锁检测,包括:
在仿真运行程序环境中采用深度优先搜索方式遍历调控区域内的每一移动机器人,尝试各机器人移动的先后顺序组合进行仿真移动,最终判断机器人集合中各机器人是否都能够全部移出调控区域。
可选地,所述S10包括:移动机器人ra,所述申请请求中的路径节点为n a
所述S20包括:
所述控制装置基于所有移动机器人行驶的拓扑网络,获取所述节点集合
Figure 742966DEST_PATH_IMAGE001
k等于调控区域内所有节点的数量,取正整数;
所述控制装置根据当前时间段内所述调控区域内的所有移动机器人组成机器人 集合
Figure 366846DEST_PATH_IMAGE002
;m为所述调控区域内的所有移动机器人的数量,取正整数,机 器人集合R包括移动机器人ra
获取所述机器人集合中每一移动机器人当前所在的路径节点的路径节点集合
Figure 26366DEST_PATH_IMAGE003
获取所述剩余路径集合
Figure 811920DEST_PATH_IMAGE004
;其中,对应任一机器人 r1
Figure 157057DEST_PATH_IMAGE005
t为移动机器人r1的剩余路径的路径节点数量,取 正整数,
Figure 319048DEST_PATH_IMAGE006
表示移动机器人r1的剩余路径的路径节点顺序为
Figure 833075DEST_PATH_IMAGE007
,用 于表示移动机器人r1将按顺序依次通过剩余路径节点,直到移出调控区域,元素
Figure 586267DEST_PATH_IMAGE008
表示 移动机器人r1当前所在的节点是
Figure 202056DEST_PATH_IMAGE008
n a为移动机器人ra发出的申请请求中的路径节点;
判断调控区域当前时刻的状态是否和死锁状态集D中的任一状态一致,若是,则确定调控区域处于死锁状态,直接反馈所述调控区域处于死锁状态的结果信息;否则,进入S30。
可选地,所述S30包括:
S301、遍历机器人集合R,如果存在移动机器人
Figure 184050DEST_PATH_IMAGE009
Figure 834474DEST_PATH_IMAGE010
属于1到m中的任一值, 移动机器人
Figure 227409DEST_PATH_IMAGE011
的剩余路径集合
Figure 845341DEST_PATH_IMAGE012
中的第二个元素
Figure 614714DEST_PATH_IMAGE013
不属于所有机器人当前所在的路 径节点集合C,则确定所述移动机器人
Figure 336289DEST_PATH_IMAGE011
能够移动至其剩余路径上的下一个节点,执行 S302;
S302、在仿真运行程序环境中执行移动机器人
Figure 368967DEST_PATH_IMAGE014
的移动,且将移动机器人
Figure 411878DEST_PATH_IMAGE014
的 当前节点更新为
Figure 984942DEST_PATH_IMAGE013
节点,将移动机器人
Figure 829533DEST_PATH_IMAGE014
的剩余路径集合
Figure 33112DEST_PATH_IMAGE015
中的第一个元素
Figure 94478DEST_PATH_IMAGE016
删 除;
S303、如果剩余路径集合
Figure 422297DEST_PATH_IMAGE015
中剩最后一个元素,则将移动机器人
Figure 636241DEST_PATH_IMAGE014
移出集合R, 将路径节点集合C中移动机器人
Figure 73039DEST_PATH_IMAGE011
对应的当前节点删除,将剩余路径集合L中的剩余路径 集合
Figure 621701DEST_PATH_IMAGE017
序列删除,执行S304,如果剩余路径集合
Figure 536567DEST_PATH_IMAGE012
中剩余元素个数大于1,则重新执行 S301;
S304、当遍历到机器人集合R变成空集,则确定所述机器人集合中每一移动机器人都能够移出所述调控区域;否则重新进入S301。
可选地,还包括:
所述S301中所有移动机器人均不能移动至其剩余路径上的下一个节点,则执行S305;
S305、获取仿真运行程序环境中调控区域当前时刻的状态,判断当前时刻的状态与接收路径节点申请请求时的状态是否一致,如果一致,反馈所述调控区域处于死锁状态的结果信息,同时向死锁状态集D中添加本次检测到的死锁状态;
所述当前时刻的状态是指调控区域内所有机器人所处的当前节点位置;
其中,向死锁状态集D中添加本次检测到的死锁状态是指移动机器人的标识、移动机器人当前时刻占用的路径节点标识、移动机器人的所有剩余路径标识。
可选地,若S305中当前时刻的状态与接收路径节点申请请求时的状态不一致,则还包括:
S306、查看是否存在未遍历的移动机器人,若存在,则执行S301;否则,将最后遍历的移动机器人在仿真运行程序环境中执行回退上一步的移动,并执行S301。
可选地,还包括:
所述剩余路径集合中每一机器人的剩余路径包括:每一机器人从当前节点到其最终目标节点的这条路径上那些在调控区域内节点的集合;其中,每一机器人从当前节点到其最终目标节点的这条路径是预先给定的。
所述调控区域为所述控制装置基于所有移动机器人行驶的拓扑网络和/或历史时间段内存在的死锁区域确定的。
第二方面,本发明实施例还提供一种控制装置,其包括:存储器和处理器,所述存储器用于存储计算机程序,所述处理器用于执行所述存储器中存储的计算机程序并执行上述第一方面任一所述的调控区域内多机器人的死锁检测方法的步骤。所述控制装置中集成有调度***。
(三)有益效果
本发明实施例的方法自动遍历调控区域是否处于死锁状态,相较于规则方法避免死锁,对于状态是否死锁的判定是精准的,基于精准的是否死锁的判断,移动机器人对于节点资源的申请调度***能够做到最大化允许通行,因此可以最大化***运行效率。
本发明实施例的方法采用程序自动遍历检测区域是否死锁,其对于网络拓扑结构变化,移动机器人数量的变化完全是通用的,现有技术中的规则方法,往往需要针对场景与各种情况定制开发,其复杂度较大,且通用性较差。
本发明实施例采用程序自动遍历检测区域是否死锁,属于动态调度的方法,即本发明的方法只需针对当前***所处的状态与想要申请移动的机器人进行分析处理,机器人运行***中随机的因素,比如机器人在路径上运行时间的变化,停障等,并不会影响本发明对于死锁结果的判断,而传统的基于时间窗口的方法,如果遇到情况,就会导致整个调度失效。
附图说明
图1为本发明一实施例提供的调控区域内多机器人的死锁检测方法的流程示意图;
图2为本发明另一实施例提供的调控区域内多机器人的死锁检测方法的流程示意图;
图3为本发明一实施例提供的调控区域的示意图。
具体实施方式
为了更好的解释本发明,以便于理解,下面结合附图,通过具体实施方式,对本发明作详细描述。
本发明实施例中的机器人/移动机器人均可为现有的AGV,所有机器人连接的调度***为集成在控制装置/调度服务器中的计算机程序,其用于实现对机器人物理运行***中的所有机器人进行调度。
实施例一
如图1所示,本发明实施例提供一种调控区域内多机器人的死锁检测方法,本实施例的方法的执行主体可为调控区域内所有移动机器人的控制装置,以下步骤均为对应实施例二中的死锁检测的步骤;其具体实现方法包括下述步骤:
S10、控制装置接收到任一移动机器人发出的路径节点申请请求,则判断所述路径节点申请请求中的路径节点是否处于预设的调控区域;若是,执行步骤S20,否则,按照现有方法执行。
S20、控制装置在确定所述路径节点处于所述调控区域时,则获取所述调控区域的所有路径节点的节点集合、获取所述调控区域当前时间段内所有移动机器人的机器人集合、所述机器人集合中每一机器人的当前位置的路径节点集合、所述机器人集合中每一机器人的剩余路径集合。
S30、所述控制装置基于所述节点集合、机器人集合、路径节点集合和剩余路径集合,采用死锁检测策略对所述调控区域内每一移动机器人进行死锁检测,判断所述机器人集合中每一移动机器人是否能够移出所述调控区域。
举例来说,在仿真运行程序环境中采用深度优先搜索方式遍历调控区域内的每一移动机器人,尝试各机器人移动的先后顺序组合进行仿真移动,最终判断机器人集合中各机器人是否都能够全部移出调控区域。
当然,在步骤S30之前,若所述控制装置确定所述机器人集合中有两台或两台以上移动机器人未能够移出所述调控区域,则确认所述调控区域处于死锁状态;
此时,则根据所述路径节点申请请求反馈拒绝占用所述路径节点的响应。
S40、所述控制装置确定所述机器人集合中每一移动机器人都能够移出所述调控区域时,根据所述路径节点申请请求反馈允许占用所述路径节点的响应即反馈同意路径节点申请请求的信息。
其中,死锁检测策略是采用深度优先搜索方式遍历所述调控区域内每一移动机器人基于各自的剩余路径是否能够全部移出所述调控区域。
本实施例的方法自动遍历调控区域是否处于死锁状态,相较于现有技术中的规则方法可有效避免死锁状态,对于调控区域的状态是否死锁的判定更精准,调度***能够实现移动机器人的节点资源的最大化利用和通行,因此可以最大化实现运行***的运行效率。
需要说明的是,本实施例中若检测到调控区域处于死锁状态,则之后时间段内同一机器人对于同一节点的申请将均被拒绝,除非调控区域内其他机器人申请节点通过后发生了移动(即调控区域的状态发生改变)。本实施例中的控制装置可集成有调度***,调度***为自动化执行的一种程序,该程序在调控区域处于死锁状态时可发出提示信息或报警。
通常,调控区域可为拓扑网络的局部,其具有少于10个路径节点的区域,控制装置中调度***的遍历过程大概只有十几毫秒,其可最大化调度***运行效率。
实施例二
本实施例的方法是在任一移动机器人申请移动到指定调控区域内某个路径节点时触发调度***实现对该指定调控区域的死锁检测。即,调度***接收到任一移动机器人发出的对于调控区域内的路径节点申请请求时,则对该调控区域内所有移动机器人可能的移动状态进行遍历,举例来说,遍历过程可采用深度优先搜索方式,遍历到调控区域内所有移动机器人均能够顺利离开调控区域,则判定该调控区域未死锁,调度***允许移动机器人占用申请的路径节点以进行移动;反之,如果直到遍历结束,仍有移动机器人无法离开调控区域,则判定该调控区域处于死锁状态,调度***拒绝调控区域内的路径节点被占用的申请请求,即禁止调控区域外的移动机器人移动至上述调控区域,或是禁止调控区域内的移动机器人向调控区域某个节点移动。
需要说明的是,调控区域也可定义为潜在死锁区域,其属于拓扑网络中预先定义的包括多个路径节点的区域,拓扑网络由多个行驶路径组成,每一行驶路径上分布有多个路径节点,每一路径节点均具有自己的标识如唯一编号。运行在拓扑结构中的各移动机器人的行驶路径均是预先定义的。本实施例方法的执行主体可为控制装置,具体即控制装置内的调度***,该调度***在触发之后可获取调控区域内各移动机器人的相关信息,进而对调控区域的死锁状态进行检测。
通常,每一移动机器人可周期性的向调度***上报当前的位置(如当前的路径节点),基于此,调度***能够实时的获取拓扑结构内移动机器人的信息,如移动机器人的数量,当前位置,剩余路径信息等。
为了较好的说明,将调控区域内所有的节点编号并组成节点集
Figure 870596DEST_PATH_IMAGE018
k等于调控区域内所有节点的数量,取正整数;
不失一般性,假设某一时刻,某移动机器人ra申请移动到某个路径节点n a,则调度***可以使用本实施例的方法,用以判断如果允许移动机器人ra移动到路径节点n a是否会引起调控区域死锁,此时,n a为移动机器人ra发出的申请请求中的路径节点,其具体执行的步骤如下:
S1、调度***接收任一移动机器人(如编号为ra)的路径节点申请请求,所述路径节点申请请求包括待申请的路径节点的标识(如n a);
调度***基于所述路径节点申请请求判断该移动机器人申请的路径节点是否位于调控区域即潜在死锁区域内,即路径节点n a是否属于集合N,如果是,则进入S2;
否则,结束计算,说明路径节点n a不属于潜在死锁区域,无需考虑潜在死锁区域的死锁风险。
S2、调度***根据死锁检测策略对调控区域执行死锁遍历搜索的初始化,例如获取下面的一系列集合,如死锁状态集D、机器人集合R、路径节点集合C、剩余路径集合L
为更好的理解上述步骤S2,以下结合子步骤S201至步骤S203进行详细说明。
S201、调度***获取当前时间段内在该调控区域内所有移动机器人的机器人集合
Figure 697869DEST_PATH_IMAGE019
,其中R包括机器人ra,即
Figure 953401DEST_PATH_IMAGE020
,且m为所述调控区域内的所 有移动机器人的数量,取正整数;
以及,调度***获取机器人集合中每一移动机器人当前所在的路径节点的路径节 点集合
Figure 390068DEST_PATH_IMAGE021
,其中
Figure 313024DEST_PATH_IMAGE022
表示机器人r1当前所在的节 点,其他以此类推,需要注意的是,路径节点集合C中机器人ra所在的节点为
Figure 308269DEST_PATH_IMAGE023
,也就 是其申请移动到的那个节点。
本实施例中机器人集合R中所有的机器人是当前位于调控区域内的移动机器人或当前申请的路径节点位于调控区域内的移动机器人(即机器人ra),若位于调控区域外的移动机器人申请的路径节点不属于调控区域内,则该移动机器人不属于机器人集合R
S202、调度***获取任意机器人
Figure 51097DEST_PATH_IMAGE024
的即将要执行的路径中与节点集N相交的部 分,定义为剩余路径集合
Figure 291454DEST_PATH_IMAGE025
,称为剩余路径集合;
这里L
Figure 68917DEST_PATH_IMAGE026
是一系列节点的集合,即
Figure 972413DEST_PATH_IMAGE027
t为机器人r1 的剩余路径的路径节点数量,取正整数,
Figure 468117DEST_PATH_IMAGE028
表示移动机器人r1的剩余路径的路径节点顺序 为
Figure 512165DEST_PATH_IMAGE029
,用于表示移动机器人r1将按顺序依次通过剩余路径节点,直到移 出调控区域,元素
Figure 409714DEST_PATH_IMAGE030
表示移动机器人r1当前所在的节点是
Figure 239040DEST_PATH_IMAGE031
S203、调度***判断调控区域当前时刻的状态是否和死锁状态集D中的任一状态一致,若是,则确定调控区域处于死锁状态,直接反馈所述调控区域处于死锁状态的结果信息;否则,进入下一步骤S3。
可理解的是,在实际应用中,死锁状态集D中存储有之前时间段内产生的至少一个死锁状态;初始化时死锁状态集为空集。所述当前时刻的状态是指调控区域内所有机器人所处的当前节点位置。
S3、控制装置基于所述节点集合、机器人集合、路径节点集合和剩余路径集合,采用死锁检测策略对所述调控区域内每一移动机器人进行死锁检测,判断所述机器人集合中每一移动机器人是否能够移出所述调控区域。
即调度***查看调控区域内每一移动机器人根据各自的剩余路径行驶中是否能够移出所述调控区域。例如,在仿真运行程序环境中采用深度优先搜索方式遍历调控区域内的每一移动机器人,尝试各机器人移动的先后顺序组合进行仿真移动,最终判断机器人集合中各机器人是否都能够全部移出调控区域;若确定当前时刻调控区域内所有移动机器人均能够顺利离开该调控区域,则判定该调控区域未死锁;反之,如果直到全部遍历结束,仍有至少一个移动机器人无法离开调控区域,则判定该调控区域死锁。
举例来说,本实施例可采用递归方式实现深度优先搜索方式的遍历,需要说明的是,该遍历方式可在预设程序或仿真运行程序环境中实现,并不实际移动调控区域内的各移动机器人,其子步骤如下:
S301、遍历机器人集合R,如果存在机器人
Figure 205728DEST_PATH_IMAGE032
Figure 538620DEST_PATH_IMAGE033
属于1到m中的任一值,移动机 器人
Figure 41408DEST_PATH_IMAGE034
的剩余路径集合
Figure 67133DEST_PATH_IMAGE035
中的第二个元素
Figure 255538DEST_PATH_IMAGE036
不属于所有机器人当前所在的节点集合C, 说明机器人
Figure 860962DEST_PATH_IMAGE037
移动到
Figure 215327DEST_PATH_IMAGE038
节点未被其他机器人占用则确定所述移动机器人
Figure 943112DEST_PATH_IMAGE039
能够移动至 其剩余路径上的下一个节点,执行子步骤S302,否则执行子步骤S305。
S302、在仿真运行程序环境中执行移动机器人
Figure 900703DEST_PATH_IMAGE040
的移动(每次移动一步,即从某个 节点移动至其相邻的节点),且将移动机器人
Figure 90245DEST_PATH_IMAGE041
的当前节点更新为
Figure 82472DEST_PATH_IMAGE042
节点,将移动机器人
Figure 935152DEST_PATH_IMAGE041
的剩余路径集合
Figure 583303DEST_PATH_IMAGE043
中的第一个元素
Figure 310956DEST_PATH_IMAGE044
删除。
S303、如果剩余路径集合
Figure 892110DEST_PATH_IMAGE045
中剩最后一个元素(说明该机器人已经走到调控区域 的出口),则将移动机器人
Figure 443921DEST_PATH_IMAGE046
移出集合R,将路径节点集C中移动机器人
Figure 110525DEST_PATH_IMAGE047
对应的当前节点 删除,将剩余路径集L中的剩余路径集
Figure 392602DEST_PATH_IMAGE048
序列删除,执行S304,如果剩余路径集
Figure 77530DEST_PATH_IMAGE049
中剩余 元素个数大于1,则重新执行S301;
S304、当遍历到机器人集合R变成空集,则确定所述机器人集中每一移动机器人都能够移出所述调控区域,即说明所有机器人均到达调控区域出口,说明未死锁,调度***退出死锁检测,返回结果未死锁;否则重新进入子步骤S301;
S305、在上述子步骤S301中所有移动机器人均不能移动至其剩余路径上的下一个节点,获取仿真运行程序环境中调控区域当前时刻的状态,判断当前时刻的状态与接收路径节点申请请求时的状态是否一致,如果一致,反馈所述调控区域处于死锁状态的结果信息,同时向死锁状态集D中添加本次检测到的死锁状态;
所述当前时刻的状态是指调控区域内所有机器人所处的当前节点位置;其中,向死锁状态集D中添加本次检测到的死锁状态是指移动机器人的标识、移动机器人当前时刻占用的路径节点标识、移动机器人的所有路径标识。
或者,可以理解为:判断当前时刻调控区域的状态是否属于接收路径节点申请请求时调控区域的初始状态,如果是说明所有的可能性均已遍历,未找到能让所有机器人安全到达调控区域出口的方法,退出计算,返回调控区域处于死锁状态的结果信息;否则进入子步骤S306;
S306、查看是否存在未遍历的移动机器人,若存在,则执行S301;否则,将最后遍历的移动机器人在仿真运行程序环境中执行回退上一步的移动,并执行S301。
也就是说,当前遍历到的状态已找不到可以移动的任何机器人,需要回退一步,即回退到当前状态之前的一个状态,取消最后一步移动的机器人,重新调用子步骤S301,尝试移动其他的机器人。
通常,运行***中移动机器人将要执行的路径是机器人在执行某个移动任务时根据任务开始节点与结束节点生成的包含一系列节点的序列,该序列在生成之后通常是不需要调整的。
上述的调控区域是属于区域网络的拓扑结构,其属于预先指定,或者根据经验或图论等方式筛选的。
实施例三
本实施例结合图3所示的一个调控区域的调控方法进行详细说明,图3示出了一个三台移动机器人在调控区域内的死锁检测方法的示意图。
如图3所示,该三台移动机器人所属的调度***共有9个节点,初始时刻机器人
Figure 786860DEST_PATH_IMAGE050
位于节点1,其通过路径节点1,3,4,7,9,去目标节点9,
Figure 222652DEST_PATH_IMAGE051
位于节点8,其通过路径节点8,7, 3,4,6,去目标节点6,
Figure 573999DEST_PATH_IMAGE052
位于节点5,其通过路径节点5,4,7,3,2,去目标节点2,而该网络中 节点3,4,7构成了一个环,是一个典型的潜在死锁区域。本实施例中通过一个调度***运行 演化过程说明本实施例的方法:
第一次申请路径节点,机器人
Figure 129745DEST_PATH_IMAGE050
申请路径节点3,步骤S1判断3属于潜在死锁区 域,若是,则进入步骤S2,死锁遍历搜索初始化,
Figure 541135DEST_PATH_IMAGE053
Figure 431599DEST_PATH_IMAGE054
,进入步骤S3,因为此时潜在死锁区域中只有一个机 器人
Figure 55479DEST_PATH_IMAGE050
,因此,直接遍历就可以将
Figure 996890DEST_PATH_IMAGE050
移动到节点7,即
Figure 61405DEST_PATH_IMAGE050
能安全抵达潜在死锁区域出口, 调度***不会死锁,因此,调度***允许
Figure 189898DEST_PATH_IMAGE050
申请占用路径节点3。
第二次申请路径节点,机器人
Figure 883047DEST_PATH_IMAGE055
申请路径节点7,步骤S1判断7属于潜在死锁区 域,进入步骤S2,死锁遍历搜索初始化,
Figure 662653DEST_PATH_IMAGE056
Figure 150266DEST_PATH_IMAGE057
Figure 31635DEST_PATH_IMAGE058
,进入步骤S3,其遍历过程如 下:
a:首先选择
Figure 13628DEST_PATH_IMAGE050
,其下一个路径节点是4,不属于集合C,因此执行一步S302,此时,
Figure 398473DEST_PATH_IMAGE059
Figure 322567DEST_PATH_IMAGE060
Figure 691231DEST_PATH_IMAGE061
,进入步骤S303而后返回步骤S301;
b:按顺序再次选择
Figure 709872DEST_PATH_IMAGE050
,其下一个路径节点是7,属于集合C,因此不能选择移动
Figure 214802DEST_PATH_IMAGE050
,选择
Figure 309797DEST_PATH_IMAGE055
,其下一个节点是3,不属于集合C,因此执行一步S302,此时,
Figure 647981DEST_PATH_IMAGE062
Figure 221045DEST_PATH_IMAGE063
Figure 580482DEST_PATH_IMAGE064
,进入 步骤S303而后返回步骤S301;
c:选择
Figure 95646DEST_PATH_IMAGE050
,其下一个路径节点是7,不属于集合C,因此执行一步S302,此时,
Figure 173324DEST_PATH_IMAGE065
Figure 550078DEST_PATH_IMAGE066
Figure 514754DEST_PATH_IMAGE067
,进 入步骤S303,由于
Figure 951552DEST_PATH_IMAGE068
中只剩一个元素,因此在R中移除
Figure 250946DEST_PATH_IMAGE050
Figure 165813DEST_PATH_IMAGE069
Figure 14689DEST_PATH_IMAGE070
,而后返回步骤S301;
d:选择
Figure 356809DEST_PATH_IMAGE055
,其下一个路径节点是4,不属于集合C,可以移动,因此执行一步S302, 此时,
Figure 409078DEST_PATH_IMAGE071
,进入步骤S303,由于
Figure 875438DEST_PATH_IMAGE072
中只剩一个元素,因此
Figure 63974DEST_PATH_IMAGE073
可以从R中移除,进入步骤S304,此时R为空集,判断未死锁。
因此,机器人
Figure 842574DEST_PATH_IMAGE073
申请路径节点7操作被调度***允许。
第三次申请路径节点,机器人
Figure 365828DEST_PATH_IMAGE074
申请路径节点4,步骤S1判断4属于潜在死锁区 域,进入步骤S2,死锁遍历搜索初始化,
Figure 888077DEST_PATH_IMAGE075
Figure 665540DEST_PATH_IMAGE076
,进入步骤S3,在S301,发 现如果选择
Figure 100194DEST_PATH_IMAGE050
,其下一个申请的节点4属于集合C,如果选择
Figure 861477DEST_PATH_IMAGE073
,其下一个申请的节点3也 属于集合C,如果选择
Figure 921837DEST_PATH_IMAGE074
,其下一个申请的节点7也属于集合C,因此进入S305,由于当前时 刻调控区域的状态是死锁检测开始时的初始状态,退出计算,返回结果调控区域是死锁状 态。也就是说在此时机器人
Figure 68653DEST_PATH_IMAGE074
申请路径节点4是被调度***拒绝的,否则该潜在死锁区域 将发生死锁。也就是说,机器人
Figure 189056DEST_PATH_IMAGE074
必须在死锁区域外等待
Figure 172056DEST_PATH_IMAGE050
Figure 783909DEST_PATH_IMAGE073
先移动,才有可能避免该 区域死锁。
实施例四
本实施例还提供一种多移动机器人的控制装置,包括:存储器和处理器;所述处理器用于执行所述存储器中存储的计算机程序,以实现执行上述实施例一和实施例二任意所述的调控区域内多机器人的死锁检测方法的步骤。
另一方面,本发明实施例还提供一种计算机可读存储介质,其用于存储有计算机程序,所述计算机程序被处理器执行时实现上述任意实施例的调控区域内多机器人的死锁检测方法的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何附图标记理解成对权利要求的限制。词语“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的词语“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的权利要求中,这些装置中的若干个可以是通过同一个硬件来具体体现。词语第一、第二、第三等的使用,仅是为了表述方便,而不表示任何顺序。可将这些词语理解为部件名称的一部分。
此外,需要说明的是,在本说明书的描述中,术语“一个实施例”、“一些实施例”、“实施例”、“示例”、“具体示例”或“一些示例”等的描述,是指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
尽管已描述了本发明的优选实施例,但本领域的技术人员在得知了基本创造性概念后,则可对这些实施例作出另外的变更和修改。所以,权利要求应该解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种修改和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也应该包含这些修改和变型在内。

Claims (7)

1.一种调控区域内多机器人的死锁检测方法,其特征在于,包括:
S10、控制装置接收到任一移动机器人发出的路径节点申请请求,则判断所述路径节点申请请求中的路径节点是否处于预设的调控区域;
S20、控制装置在确定所述路径节点处于所述调控区域时,则获取所述调控区域的所有路径节点的节点集合、获取所述调控区域当前时间段内所有移动机器人的机器人集合、所述机器人集合中每一机器人的当前位置的路径节点集合、所述机器人集合中每一机器人的剩余路径集合;
S30、所述控制装置基于所述节点集合、机器人集合、路径节点集合和剩余路径集合,在仿真运行程序环境中采用死锁检测策略对所述调控区域内每一移动机器人进行死锁检测,判断所述机器人集合中每一移动机器人是否能够移出所述调控区域;
S40、所述控制装置确定所述机器人集合中每一移动机器人都能够移出所述调控区域时,根据所述路径节点申请请求反馈同意路径节点申请请求的信息;
其中,死锁检测策略是采用深度优先搜索方式遍历所述调控区域内每一移动机器人基于各自的剩余路径是否能够全部移出所述调控区域;
所述S10包括:移动机器人
Figure DEST_PATH_IMAGE002
,所述申请请求中的路径节点为n a
所述S20包括:
所述控制装置基于所有移动机器人行驶的拓扑网络,获取所述节点集合
Figure DEST_PATH_IMAGE004
k等于调控区域内所有节点的数量,取正整数;
所述控制装置根据当前时间段内所述调控区域内的所有移动机器人组成机器人集合
Figure DEST_PATH_IMAGE006
;m为所述调控区域内的所有移动机器人的数量,取正整数,机器人 集合R包括移动机器人
Figure DEST_PATH_IMAGE008
获取所述机器人集合中每一移动机器人当前所在的路径节点的路径节点集合
Figure DEST_PATH_IMAGE010
获取所述剩余路径集合
Figure DEST_PATH_IMAGE012
;其中,对应任一移动机器人
Figure DEST_PATH_IMAGE014
Figure DEST_PATH_IMAGE016
t为移动机器人
Figure DEST_PATH_IMAGE018
的剩余路径的路径节点数量,取正整 数,
Figure DEST_PATH_IMAGE020
表示移动机器人
Figure DEST_PATH_IMAGE022
的剩余路径的路径节点顺序为
Figure DEST_PATH_IMAGE024
,用于表示 移动机器人
Figure DEST_PATH_IMAGE022A
将按顺序依次通过剩余路径节点,直到移出调控区域,元素
Figure DEST_PATH_IMAGE026
表示移动机 器人
Figure DEST_PATH_IMAGE022AA
当前所在的节点是
Figure DEST_PATH_IMAGE028
n a为移动机器人
Figure DEST_PATH_IMAGE030
发出的申请请求中的路径节点;
判断调控区域当前时刻的状态是否和死锁状态集D中的任一状态一致,若是,则确定调控区域处于死锁状态,直接反馈所述调控区域处于死锁状态的结果信息;否则,进入S30;
所述S30包括:
S301、遍历机器人集合R,如果存在移动机器人
Figure DEST_PATH_IMAGE032
Figure DEST_PATH_IMAGE034
属于1到m中的任一值,移动 机器人
Figure DEST_PATH_IMAGE036
的剩余路径集合
Figure DEST_PATH_IMAGE038
中的第二个元素
Figure DEST_PATH_IMAGE040
不属于所有机器人当前所在的路径节 点集合C,则确定所述移动机器人
Figure DEST_PATH_IMAGE041
能够移动至其剩余路径上的下一个节点,执行S302;
S302、在仿真运行程序环境中执行移动机器人
Figure DEST_PATH_IMAGE041A
的移动,且将移动机器人
Figure DEST_PATH_IMAGE036A
的当前 节点更新为
Figure DEST_PATH_IMAGE040A
节点,将移动机器人
Figure DEST_PATH_IMAGE041AA
的剩余路径集合
Figure DEST_PATH_IMAGE042
中的第一个元素
Figure DEST_PATH_IMAGE044
删除;
S303、如果剩余路径集合
Figure DEST_PATH_IMAGE045
中剩最后一个元素,则将移动机器人
Figure DEST_PATH_IMAGE041AAA
移出集合R,将路 径节点集合C中移动机器人
Figure DEST_PATH_IMAGE041AAAA
对应的当前节点删除,将剩余路径集合L中的剩余路径集合
Figure DEST_PATH_IMAGE038A
序列删除,执行S304,如果剩余路径集合
Figure DEST_PATH_IMAGE038AA
中剩余元素个数大于1,则重新执行S301;
S304、当遍历到机器人集合R变成空集,则确定所述机器人集合中每一移动机器人都能够移出所述调控区域;否则重新进入S301。
2.根据权利要求1所述的死锁检测方法,其特征在于,所述S30之后,还包括:
若所述控制装置确定所述机器人集合中有两台或两台以上移动机器人未能够移出所述调控区域,则确认所述调控区域处于死锁状态;
以及,根据所述路径节点申请请求反馈拒绝占用所述路径节点的响应。
3.根据权利要求1或2所述的死锁检测方法,其特征在于,所述S30中的采用死锁检测策略对所述调控区域内每一移动机器人进行死锁检测,包括:
在仿真运行程序环境中采用深度优先搜索方式遍历调控区域内的每一移动机器人,尝试各机器人移动的先后顺序组合进行仿真移动,最终判断机器人集合中各机器人是否都能够全部移出调控区域。
4.根据权利要求1所述的死锁检测方法,其特征在于,还包括:
所述S301中所有移动机器人均不能移动至其剩余路径上的下一个节点,则执行S305;
获取仿真运行程序环境中调控区域当前时刻的状态,判断当前时刻的状态与接收路径节点申请请求时的状态是否一致,如果一致,反馈所述调控区域处于死锁状态的结果信息,同时向死锁状态集D中添加本次检测到的死锁状态;
所述当前时刻的状态是指调控区域内所有机器人所处的当前节点位置;
其中,向死锁状态集D中添加本次检测到的死锁状态是指移动机器人的标识、移动机器人当前时刻占用的路径节点标识、移动机器人的所有剩余路径标识。
5.根据权利要求4所述的死锁检测方法,其特征在于,若S305中当前时刻的状态与接收路径节点申请请求时的状态不一致,则还包括:
S306、查看是否存在未遍历的移动机器人,若存在,则执行S301;否则,将最后遍历的移动机器人在仿真运行程序环境中执行回退上一步的移动,并执行S301。
6.根据权利要求1所述的方法,其特征在于,还包括:
所述剩余路径集合中每一机器人的剩余路径包括:每一机器人从当前节点到其最终目标节点的这条路径上那些在调控区域内节点的集合;其中,每一机器人从当前节点到其最终目标节点的这条路径是预先给定的;
所述调控区域为所述控制装置基于所有移动机器人行驶的拓扑网络和/或历史时间段内存在的死锁区域确定的。
7.一种控制装置,其特征在于,包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述存储器中存储的计算机程序,实现上述权利要求1至6任一所述的调控区域内多机器人的死锁检测方法。
CN202210217189.4A 2022-03-07 2022-03-07 一种调控区域内多机器人的死锁检测方法 Active CN114326753B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210217189.4A CN114326753B (zh) 2022-03-07 2022-03-07 一种调控区域内多机器人的死锁检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210217189.4A CN114326753B (zh) 2022-03-07 2022-03-07 一种调控区域内多机器人的死锁检测方法

Publications (2)

Publication Number Publication Date
CN114326753A CN114326753A (zh) 2022-04-12
CN114326753B true CN114326753B (zh) 2022-06-24

Family

ID=81030781

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210217189.4A Active CN114326753B (zh) 2022-03-07 2022-03-07 一种调控区域内多机器人的死锁检测方法

Country Status (1)

Country Link
CN (1) CN114326753B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115658333A (zh) * 2022-09-28 2023-01-31 劢微机器人科技(深圳)有限公司 Agv死锁问题的处理方法、装置、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10177415A (ja) * 1996-12-18 1998-06-30 Hitachi Ltd 無人搬送システムのデッドロック回避方法
CN102865877A (zh) * 2012-10-08 2013-01-09 无锡普智联科高新技术有限公司 基于密集存储区域的多移动机器人路径冲突解决方法
CN106979785A (zh) * 2017-03-24 2017-07-25 北京大学深圳研究生院 一种面向多机器人***的完全遍历路径规划方法
CN108268038A (zh) * 2018-01-19 2018-07-10 广东美的智能机器人有限公司 多移动机器人的调度方法及***
CN111487983A (zh) * 2020-06-11 2020-08-04 上海振华重工(集团)股份有限公司 一种封闭式自动化物流园区的多台agv调度方法
CN112650226A (zh) * 2020-12-11 2021-04-13 京信智能科技(广州)有限公司 一种机器人的调度方法、装置、设备及介质
CN113899383A (zh) * 2021-11-22 2022-01-07 上海西井信息科技有限公司 基于短路径的多车防死锁方法、***、设备及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180210459A1 (en) * 2016-10-08 2018-07-26 Zhejiang Guozi Robot Technology Co., Ltd. Traffic management method for mobile robotics system
CN108279675A (zh) * 2018-01-19 2018-07-13 广东美的智能机器人有限公司 多移动机器人的冲突管理方法及***
CN109213155B (zh) * 2018-08-21 2021-09-14 北京云迹科技有限公司 用于多机器人相互避让的调度方法、装置及服务器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10177415A (ja) * 1996-12-18 1998-06-30 Hitachi Ltd 無人搬送システムのデッドロック回避方法
CN102865877A (zh) * 2012-10-08 2013-01-09 无锡普智联科高新技术有限公司 基于密集存储区域的多移动机器人路径冲突解决方法
CN106979785A (zh) * 2017-03-24 2017-07-25 北京大学深圳研究生院 一种面向多机器人***的完全遍历路径规划方法
CN108268038A (zh) * 2018-01-19 2018-07-10 广东美的智能机器人有限公司 多移动机器人的调度方法及***
CN111487983A (zh) * 2020-06-11 2020-08-04 上海振华重工(集团)股份有限公司 一种封闭式自动化物流园区的多台agv调度方法
CN112650226A (zh) * 2020-12-11 2021-04-13 京信智能科技(广州)有限公司 一种机器人的调度方法、装置、设备及介质
CN113899383A (zh) * 2021-11-22 2022-01-07 上海西井信息科技有限公司 基于短路径的多车防死锁方法、***、设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
密集仓储环境下多AGV/RGV调度方法研究;周亚勤等;《机械工程学报》;20210531;第57卷(第10期);第245-256页 *

Also Published As

Publication number Publication date
CN114326753A (zh) 2022-04-12

Similar Documents

Publication Publication Date Title
Reveliotis Conflict resolution in AGV systems
Lawley Deadlock avoidance for production systems with flexible routing
Wu et al. Modeling and deadlock control of automated guided vehicle systems
Standley Finding optimal solutions to cooperative pathfinding problems
Wu et al. Shortest routing of bidirectional automated guided vehicles avoiding deadlock and blocking
Bonakdarpour et al. A framework for automated distributed implementation of component-based models
Bonakdarpour et al. From high-level component-based models to distributed implementations
Kshemkalyani et al. Efficient dispersion of mobile robots on graphs
Roszkowska et al. A distributed protocol for motion coordination in free-range vehicular systems
CN107167154A (zh) 一种基于时间代价函数的时间窗路径规划冲突解决方法
CN114326753B (zh) 一种调控区域内多机器人的死锁检测方法
Kalinovcic et al. Modified Banker's algorithm for scheduling in multi-AGV systems
Shousha et al. A uml/marte model analysis method for uncovering scenarios leading to starvation and deadlocks in concurrent systems
Chao Fewer monitors and more efficient controllability for deadlock control in S3 PGR 2 (systems of simple sequential processes with general resource requirements)
Komma et al. An approach for agent modeling in manufacturing on JADE™ reactive architecture
CN111258580A (zh) 任务流程处理方法及装置、电子设备、存储介质
Gerostathopoulos et al. Tuning self-adaptation in cyber-physical systems through architectural homeostasis
Zhu et al. A hybrid navigation strategy for multiple mobile robots
US11694014B2 (en) Logical node layout method and apparatus, computer device, and storage medium
Zhou et al. An impending deadlock-free scheduling method in the case of unified automated material handling systems in 300 mm wafer fabrications
Karpas et al. Automated verification of social law robustness in STRIPS
Anders et al. Decentralized reconfiguration for self-organizing resource-flow systems based on local knowledge
He et al. Deadlock Avoidance in Closed Guide-Path Based MultiAGV Systems
CN116719312A (zh) 一种单行道场景下基于折返避让的多agv解锁方法
Chen et al. Deadlock-solving traffic control methods for automated guided vehicle systems

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant