一种分布式多机器人的调度方法与设备与流程

文档序号:31131548发布日期:2022-08-13 06:04阅读:186来源:国知局
一种分布式多机器人的调度方法与设备与流程

1.本技术涉及计算机技术领域,尤其涉及一种分布式多机器人的调度技术。


背景技术:

2.多机器人在同一个场景中工作时,由于算法的同质性,传感器互相干扰以及观测死角等问题,机器人之间往往难以灵活、准确的避让,容易碰撞,或相互等待(即死锁)。此时就需要多机调度系统的参与,来协调各机器人的运动行为。
3.现有的多机器人的调度技术大致分为两类:
4.1.集中式调度:部署一台中央服务器,所有机器人与服务器连接,由服务器来规划每台机器人的运动路径,集中式调度的优点是可以避免死锁并达到最佳效率,但也存在以下缺点:
5.不适用于存在大量动态障碍物的开放场所:目前的集中式调度系统大多应用在工厂、码头等封闭场所,采用的多机协同路径规划算法往往依赖基于速度的估算,而对于餐厅等开放场景来说,大量行人的存在使得机器人随时会产生避障和绕路等行为,这就导致预先完成的集中式路径规划在实际运行中会产生冲突;
6.高度依赖无线网络质量:集中式调度系统对于机器人和服务器之间的通信延时、数据丢包率都有非常高的要求,一旦机器人进入某个通信不稳定的区域,很容易导致调度失效,进而发生碰撞或死锁。
7.部署复杂:需要改造客户现场的无线网络,将机器人和服务器都接入该网络,除了额外的部署工作,还会涉及到网络安全问题。
8.2.分布式调度:分布式调度最大优点是不依赖服务器,因此不受运行环境的限制,常见的一个应用场景是集群控制,如无人机编队飞行,这种场景下所有单位形成一个整体,完成一个预期的动作,但这并不适用于服务机器人的应用场景。以餐厅送餐为例,每个机器人都有独立的任务需要执行,他们各自的目的地、移动方向、避障行为都是相互独立的。
9.因此需要一种结合上述两者调度方式各自优点的调度系统,来满足智能移动服务机器人的应用场景。


技术实现要素:

10.本技术的目的是提供一种分布式多机器人的调度方法与设备。
11.根据本技术的一个方面,提供了一种分布式多机器人的调度方法,其中,各个机器人加载有包含一个或多个限行区域的同一地图,所述方法配置于每个机器人中,所述方法包括:
12.当接收到前往目标点的运行指令,生成运动路径并基于当前位置信息判断是否处于限行区域;
13.当未处于限行区域,基于所述运动路径及接收到的其他机器人发送的状态数据包判断将要进入的限行区域是否还允许机器人进入以及判断进入后是否会在后续的运动中
发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动;或者当处于限行区域,基于所述运动路径以及接收到的其他机器人发送的状态数据包判断是否由于到达当前限行区域引发了死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动。
14.进一步地,其中,接收其他机器人发送的状态数据包之前还包括:
15.通过广播接收通讯范围内所有机器人的身份数据包,其中,所述身份数据包包括机器人标识及地图标识;
16.根据所述机器人标识及地图标识确定位于同一地图的其他机器人;
17.所述接收其他机器人发送的状态数据包包括:
18.接收所述位于同一地图的其他机器人的状态数据包。
19.优选地,其中,所述身份数据包还包括:存活时间及数据包序号,以避免重复接收。
20.进一步地,在机器人中预设lora模块,其中,所述广播包括:通过lora模块进行的广播通讯。
21.进一步地,其中,所述状态数据包包括其所属机器人正处于或决定进入的锁定区域,其中,所述基于所述运动路径及接收其他机器人发送的状态数据包判断将要进入的限行区域是否还允许机器人进入以及判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动包括:
22.根据所述运动路径确定路径向量,其中,所述路径向量包括运动路径中还未进入的所有限行区域;
23.根据接收到的若干个所述状态数据包中的锁定区域更新容量向量,其中,所述容量向量包含各个限行区域的剩余容量;
24.判断所述容量向量中该将要进入的限行区域对应的剩余容量是否大于等于1,若否,则根据预设的优先级信息转换调度状态;或者,
25.若是,则根据所述容量向量、将要进入的限行区域、接收到的若干个所述状态数据包判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动。
26.进一步地,所述状态数据包包括对应机器人的路径向量,其中,所述根据容量向量、将要进入的限行区域、接收到的若干个所述状态数据包判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动包括:
27.根据所述将要进入的限行区域更新所述容量向量,并将该将要进入的限行区域标记为锁定区域;
28.遍历各个状态数据包,若该状态数据包中的对应机器人的路径向量小于等于更新后的所述容量向量,则将该机器人对应的锁定区域释放并再次更新容量向量;
29.若全部机器人对应的锁定区域均可释放,则系统为安全状态,继续运动;或者,
30.系统为非安全状态,则根据所述优先级信息转换调度状态。
31.优选地,其中,所述根据所述优先级信息转换调度状态包括:
32.当优先级信息为最低优先级时,转换为避让状态,以在所述将要进入的限行区域对应的避让点进行避让等待,其中,所述避让等待包括按照预设时间间隔判断该将要进入的限行区域是否解除锁定,并在解除锁定后继续运动;
33.当所述优先级信息为最高优先级时,转换为运动等待状态并标记该将要进入的限
行区域,以按照预设的时间间隔进行死锁检测并在死锁解除后继续运动;
34.当所述优先级信息为中等优先级时,转换为避让排队状态,以在最低优先级的机器人完成避让后,进入避让状态。
35.进一步地,所述状态数据包包括对应机器人的当前限行区域,其中,所述基于所述运动路径以及接收其他机器人发送的状态数据包判断是否由于到达当前限行区域引发了死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动包括:
36.根据所述当前限行区域更新所述容量向量,并将该当前限行区域标记为锁定区域;
37.遍历各个状态数据包,若在更新后的所述容量向量中,该状态数据包对应机器人的当前限行区域对应的容量向量元素值大于等于1,则将该机器人对应的锁定区域释放并再次更新容量向量;
38.若全部机器人对应的锁定区域均可释放,则不存在死锁;或者,
39.若存在某个机器人对应的锁定区域不可释放,则存在死锁,根据预设的优先级信息转换调度状态。
40.进一步地,所述状态数据包还包括对应机器人的将要进入的限行区域,其中,所述基于所述运动路径以及接收其他机器人发送的状态数据包判断是否由于到达当前限行区域引发了死锁之后,还包括:
41.若所述将要进入的限行区域与所述当前限行区域的距离小于预设距离阈值,则根据所述将要进入的限行区域更新所述容量向量,并将该将要进入的限行区域标记为锁定区域;
42.遍历各个状态数据包,若在更新后的所述容量向量中,该状态数据包对应机器人的将要进入的限行区域对应的容量向量元素值大于等于1,则将该机器人对应的锁定区域释放并再次更新容量向量;
43.若全部机器人对应的锁定区域均可释放,则不存在死锁;或者,
44.若存在某个机器人对应的锁定区域不可释放,则存在死锁,根据预设的优先级信息转换调度状态。
45.根据本技术的另一方面,还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如前述方法的操作。
46.根据本技术的再一方面,还提供了一种分布式多机器人的调度设备,其中,该设备包括:
47.一个或多个处理器;以及
48.存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行上述方法的操作。
49.与现有技术相比,本技术通过当接收到前往目标点的运行指令,生成运动路径并基于当前位置信息判断是否处于限行区域;当未处于限行区域,基于所述运动路径及接收到的其他机器人发送的状态数据包判断将要进入的限行区域是否还允许机器人进入以及判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动;或者当处于限行区域,基于所述运动路径以及接收到的其他机器人发送的状态数据包判断是否会由于到达将要进入的限行区域而引发死锁,从而确定根据预设的
优先级信息转换调度状态或者继续运动。通过此方式,可应用于多个机器人任务相对独立的场景,进而弥补了传统分布式调度仅能应用于任务一致的集群控制的缺陷,实现了应用场景的高覆盖。同时,本技术的调度方法不受机器人的具体任务类型或运动规划算法等内容的影响,只在运动中动态判断是否死锁,因此,不同类型及不同尺寸的机器人都能很方便的部署在同一个场景中进行各自的工作而互不干扰。
附图说明
50.通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
51.图1示出根据本技术一个方面的一种分布式多机器人的调度方法流程图;
52.图2示出根据本技术一个优选实施例的一种分布式多机器人的调度方法流程图。
53.附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
54.下面结合附图对本发明作进一步详细描述。
55.在本技术一个典型的配置中,终端、服务网络的设备和可信方均包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
56.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
57.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
58.在多机器人的应用场景中,可根据任务类型、任务所需的活动区域及需要进行冲突预防的区域对整个应用环境进行划分,将整个应用环境划分为若干个地图,将各个地图划分为若干个限行区域,并根据限行区域设置若干个避让点。例如,工作在生产流水线上的机器人与负责运输成品的机器人任务类型不同,活动区域也明显不同,两种任务互不干扰,因此,可根据机器人所需的活动范围绘制两个地图,并将地图的编号保存在该对应任务的机器人中。通过该方式,在调度任务中可通过获取机器人地图编号的方式排除并不对该调度任务产生干扰的其他机器人,大大减少对调度任务的干扰。
59.在此应明确,即使位于同一地图,各个机器人的任务也相对独立。以餐厅机器人为例,所有的送餐机器人均共享一个地图,但各自的目标点、移动方向及避障行为都是相对独立的。本技术可处理的调度任务与传统分布式调度方法相比,具有明显进步性,传统的分布式调度方法常用于例如编队机器人飞行控制等所有单位形成一个整体,完成一个预期动作
的统一集群控制,而无法应用于任务相对独立的多个单元。
60.在一个地图中,根据该地图中机器人可能的运动轨迹划分限行区域并设置该限行区域的容量上限。例如,对于走廊、电梯、车厢及各类出入口等运动轨迹频繁交汇的场景处,需要划分限行区域。在实际应用中,一般可绘制矩形区域以定义限行区域,定义限行区域的数据结构包括但不限于oriented rectangle(用于定义可倾斜的矩形),限行区域的容量上限以实际需要为准,例如,如果某限行区域只满足一台机器人通行,则可设置为单行区域,即上限为1;如果某限行区域满足一台避让,另一台通行,则可将容量上限设置为2;如果某限行区域的覆盖范围较大,则容量上限也可相应地增大。
61.同时,对各个限行区域应设置避让点,在该限行区域到达容量上限后,避让点则充当作为后续进入的机器人的暂时停留处,一个限行区域的避让点可设置一个或多个,具体的设置数量同样根据实际应用需求人工确定。
62.为更进一步阐述本技术所采取的技术手段及取得的效果,下面结合附图及较佳实施例,对本技术的技术方案,进行清楚和完整的描述。
63.图1示出本技术一个方面提供的一种分布式多机器人的调度方法,其中,各个机器人加载有包含一个或多个限行区域的同一地图,所述方法配置于每个机器人中,该方法包括:
64.s11当接收到前往目标点的运行指令,生成运动路径并基于当前位置信息判断是否处于限行区域;
65.s12当未处于限行区域,基于所述运动路径及接收到的其他机器人发送的状态数据包判断将要进入的限行区域是否还允许机器人进入以及判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动;或者
66.当处于限行区域,基于所述运动路径以及接收到的其他机器人发送的状态数据包判断是否由于到达当前限行区域引发了死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动。
67.在该实施例中,在所述步骤s11中,当接收到前往目标点的运行指令,生成运动路径并基于当前位置信息判断是否处于限行区域。
68.在该步骤中,可由上位机对机器人发布任务,当机器人收到任务后,根据该任务中包含的目标点及运行指令生成运动路径并准备前往目标点。应明确,该上位机在本技术所涉及的内容中,仅负责业务相关逻辑,例如根据业务设置各个机器人的任务,并进行任务发放,该上位机与调度任务无关,因此,明显不同于集中式调度中需要进行路径规划及集中调度的中央服务器。同时,由于采用分布式调度,应用场景中的机器人只需接收任务,进而采用本技术所述的调度方式进行自主调度,不需集中式调度中的复杂部署,对无线网络质量的依赖性较低,同时,分布式调度的调度速度较快,因此,对于存在大量动态障碍物的开放场所具有较大的应用优势。
69.在该实施例中,在所述步骤s12中,当未处于限行区域,基于所述运动路径及接收到的其他机器人发送的状态数据包判断将要进入的限行区域是否还允许机器人进入以及判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动;或者
70.当处于限行区域,基于所述运动路径以及接收到的其他机器人发送的状态数据包
判断是否由于到达当前限行区域引发了死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动。
71.在此,若当前未处于限行区域,则说明该机器人正在前往下一个限行区域的途中,在此情况下,首先要判断该将要进入的限行区域是否已经到达容量上限,显然地,当将要进入的限行区域不允许机器人进入时,该机器人无法继续运动,则需要根据预设的优先级信息进行调度状态的改变;而当将要进入的限行区域允许机器人进入时,则需要进一步判断该机器人在进入后是否会在后续的运动中引发系统的死锁,例如,两个机器人所要经过的限行区域完全相同但运动方向相反,在此情况下,两个机器人将要进入的限行区域即使允许进入,在后续的运动中仍会相遇并在某个限行区域中发生死锁,因此,对于此种情况同样需要进行判断。通过上述方法的双重判断,能够更全面的实现预防死锁方式的目的。
72.在此,应明确,所述优先级信息为根据机器人的任务特性确定,例如,执行任务的机器人的优先级应高于回桩的机器人的优先级,在实际应用中,所有机器人应遵循统一的规则进行设置,保证整个系统的统一性。
73.当机器人当前已经处于某限行区域中时,则需要判断是否在当前的系统中出现了死锁。
74.本技术通过此种多层次多步骤的调度策略,可应用于多个机器人任务相对独立的场景,进而弥补了传统分布式调度仅能应用于任务一致的集群控制的缺陷,实现了应用场景的高覆盖。同时,本技术的调度方法不关注于机器人的具体任务类型或运动规划算法等内容,只在运动中动态判断是否死锁,因此,不同类型及不同尺寸的机器人都能很方便的部署在同一个场景中进行各自的工作而互不干扰。
75.在另一种优选的实施例中,参见图2所示,其中,图2中的步骤s21、与图1实施例中的步骤s11相同或基本相同,故在此不再赘述,仅以引用的方式包含于此。其中,所述步骤s22包括:通过广播接收通讯范围内所有机器人的身份数据包,其中,所述身份数据包包括机器人标识及地图标识;所述步骤s23包括:根据所述机器人标识及地图标识确定位于同一地图的其他机器人。
76.进一步地,在机器人中预设lora模块,其中,所述广播包括:通过lora模块进行的广播通讯。
77.在此,在机器人中插入lora通信模块,使得可通过广播中继的方式,利用各个机器人进行路由,从而实现零成本的扩展通信覆盖范围,同时,无需其他设备部署,操作简单。
78.具体地,应用本技术调度方法的各个机器人可通过广播将带有机器人标识和地图标识的身份数据包广播出去,同样地,接收到该身份数据包的机器人根据地图标识确定是否与该身份数据包对应的机器人位于同一地图中,若在同一地图中,则相应地,将自身的机器人标识加入并广播出去。例如,在机器人发出的身份数据包中还可包含2个字段:存活时间和数据包序号,存活时间大于0,表示收到该数据包的机器人应当将存活时间减1然后继续广播出去,这样就达到了扩大通讯覆盖范围的目的。由于存在数据包被转发的情况,因此一台机器可能会多次收到同一个数据包,此时需要靠序号进行区分,以免重复处理。此外,接收和发送身份数据包的命令可自行设计,在一种可行的方案中,可参考网络测试的ping命令进行设计。
79.通过此方式,使得机器人能够持续的获取其他机器人的基本信息,以判断是否与
自身位于同一个地图中,从而判断是否需要结合该机器人的数据进行调度。
80.所述步骤s24包括:当未处于限行区域,基于所述运动路径及接收到的位于同一地图的其他机器人发送的状态数据包判断将要进入的限行区域是否还允许机器人进入以及判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动;或者,当处于限行区域,基于所述运动路径以及接收到的位于同一地图的其他机器人发送的状态数据包判断是否会由于到达将要进入的限行区域而引发死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动。
81.进一步地,所述状态数据包包括其所属机器人正处于或决定进入的锁定区域,其中,所述基于所述运动路径及接收其他机器人发送的状态数据包判断将要进入的限行区域是否还允许机器人进入以及判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动包括:
82.根据所述运动路径确定路径向量,其中,所述路径向量包括运动路径中还未进入的所有限行区域;
83.根据接收到的若干个所述状态数据包中的锁定区域更新容量向量,其中,所述容量向量包含各个限行区域的剩余容量;
84.判断所述容量向量中该将要进入的限行区域对应的剩余容量是否大于等于1,若否,则根据预设的优先级信息转换调度状态;或者,
85.若是,则根据所述容量向量、将要进入的限行区域、接收到的若干个所述状态数据包判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动。
86.在此,通过接收同一地图中其他机器人的数据,确定将要进入的限行区域是否还有余量,若无余量,则无需进行下一步的死锁判定,应进行调度状态的转换;若有余量,则需要再判断下一步的运动是否会在全局的角度上导致系统死锁。通过这种分层分步骤的判断方式,提高调度速度,同时,在此进行的死锁判断是对整个系统的安全评估,而不只是对某一个机器人的某一步运动的可行性判断,因此,是对整个系统(即该地图中全部机器人的运动)的综合性全局性的死锁预防。
87.进一步地,所述状态数据包包括对应机器人的路径向量,其中,所述根据容量向量、将要进入的限行区域、接收到的若干个所述状态数据包判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动包括:
88.根据所述将要进入的限行区域更新所述容量向量,并将该将要进入的限行区域标记为锁定区域;
89.遍历各个状态数据包,若该状态数据包中的对应机器人的路径向量小于等于更新后的所述容量向量,则将该机器人对应的锁定区域释放并再次更新容量向量;
90.若全部机器人对应的锁定区域均可释放,则系统为安全状态,继续运动;或者,
91.系统为非安全状态,则根据所述优先级信息转换调度状态。
92.在此,通过该方式,假设允许该机器人行进至将要进入的限行区域,即将该将要进入的限行区域对应的容量向量元素值减一(即根据所述将要进入的限行区域更新所述容量向量),然后循环判断该地图中的其他机器人的运动路径中所有还未到达的限行区域(即路径向量)是否也能允许进入(对应释放锁定区域并更新容量向量的操作),若所有机器人的
所有未到达的限行区域都可进入,则说明该机器人行进至将要进入的限行区域的动作不会导致在后续的运动中发生死锁,也即该机器人行进至将要进入的限行区域的动作对于系统而言是安全的,因此,该机器人可以继续运动。
93.通过该方式实现了对整个系统的安全评估,也是对整个系统的综合性全局性的死锁预防。
94.进一步地,所述状态数据包包括对应机器人的当前限行区域,其中,所述基于所述运动路径以及接收其他机器人发送的状态数据包判断是否由于到达当前限行区域引发了死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动包括:根据所述当前限行区域更新所述容量向量,并将该当前限行区域标记为锁定区域;遍历各个状态数据包,若在更新后的所述容量向量中,该状态数据包对应机器人的当前限行区域对应的容量向量元素值大于等于1,则将该机器人对应的锁定区域释放并再次更新容量向量;若全部机器人对应的锁定区域均可释放,则不存在死锁;或者,若存在某个机器人对应的锁定区域不可释放,则存在死锁,根据预设的优先级信息转换调度状态。
95.在此,当机器人已经处于限行区域中,则需要判断当前系统是否已经发生死锁。在实际场景中,机器人的初始放置位置有可能就处于规划的限行区域中,或者该机器人经死锁预防后运动到的限行区域被临时放置了其他机器人,因此,只在前往限行区域的途中进行死锁预防无法彻底的防范死锁冲撞的现象发生,需要在进入限行区域后,再对当前系统进行整体性的死锁检测。
96.进一步地,所述状态数据包还包括对应机器人的将要进入的限行区域,其中,所述基于所述运动路径以及接收其他机器人发送的状态数据包判断是否由于到达当前限行区域引发了死锁之后,还包括:若所述将要进入的限行区域与所述当前限行区域的距离小于预设距离阈值,则根据所述将要进入的限行区域更新所述容量向量,并将该将要进入的限行区域标记为锁定区域;遍历各个状态数据包,若在更新后的所述容量向量中,该状态数据包对应机器人的将要进入的限行区域对应的容量向量元素值大于等于1,则将该机器人对应的锁定区域释放并再次更新容量向量;若全部机器人对应的锁定区域均可释放,则不存在死锁;或者,若存在某个机器人对应的锁定区域不可释放,则存在死锁,根据预设的优先级信息转换调度状态。
97.在此,当机器人将要进入的限行区域与当前限行区域距离较近或相邻时,该机器人由当前限行区域行进至将要进入的限行区域所需的路径较短,因此,在此情况下,可将将当前限行区域与位置相近的将要进入的限行区域作为一个区域块,对该区域块进行死锁检测。
98.为实现上述目标,可预设一距离阈值,当将要进入的限行区域临近当前所在的限行区域时,可假设允许该机器人行进至将要进入的限行区域,即将该将要进入的限行区域对应的容量向量元素值减一(即根据所述将要进入的限行区域更新所述容量向量),然后循环判断该地图中的其他机器人的将要进入的限行区域是否也能允许进入(对应释放锁定区域并更新容量向量的操作),若所有机器人的将要进入的限行区域都可进入,则说明该机器人由当前限行区域行进至距离较近的将要进入的限行区域的动作不会导致同一地图中的其他机器人在下一步的运动中发生死锁。该方式实现了对当前限行区域与距离较近的将要进入的限行区域的合并检测。
99.进一步地,所述根据所述优先级信息转换调度状态包括:
100.当优先级信息为最低优先级时,转换为避让状态,以在所述将要进入的限行区域对应的避让点进行避让等待,其中,所述避让等待包括按照预设时间间隔判断该将要进入的限行区域是否解除锁定,并在解除锁定后继续运动;
101.当所述优先级信息为最高优先级时,转换为运动等待状态并标记该将要进入的限行区域,以按照预设的时间间隔进行死锁检测并在死锁解除后继续运动;
102.当所述优先级信息为中等优先级时,转换为避让排队状态,以在最低优先级的机器人完成避让后,进入避让状态。
103.在此,本技术设计一种调度状态的转换模式,该转换模式所涉及的机器人运动状态包括:继续运动:机器人正按照运动路径前往目标点;避让:机器人正在前往某无法进入的限行区域对应的避让点;避让等待:机器人成功到达避让点,正在等待;避让排队:机器人决定避让,但同一区域中有优先级更低的机器在避让,因此原地等待;运动等待:机器人决定继续运动,但需要先停止等其他机器人完成避让。
104.机器人根据如前所述的调度方法在这些调度状态之间进行切换,从而实现对多机器人的调度。
105.与现有技术相比,本技术通过当接收到前往目标点的运行指令,生成运动路径并基于当前位置信息判断是否处于限行区域;当未处于限行区域,基于所述运动路径及接收到的其他机器人发送的状态数据包判断将要进入的限行区域是否还允许机器人进入以及判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动;或者当处于限行区域,基于所述运动路径以及接收到的其他机器人发送的状态数据包判断是否由于到达当前限行区域引发了死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动。通过此方式,可应用于多个机器人任务相对独立的场景,进而弥补了传统分布式调度仅能应用于任务一致的集群控制的缺陷,实现了应用场景的高覆盖。同时,本技术的调度方法不关注于机器人的具体任务类型或路径规划算法等内容,只在运动中动态判断是否死锁,因此,不同类型及不同尺寸的机器人都能很方便的部署在同一个场景中进行各自的工作而互不干扰。
106.此外,本技术实施例还提供了一种计算机可读介质,其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现前述方法。
107.本技术实施例还提供了一种分布式多机器人的调度设备,其中,该设备包括:
108.一个或多个处理器;以及
109.存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行前述方法的操作。
110.例如,计算机可读指令在被执行时使所述一个或多个处理器:当接收到前往目标点的运行指令,生成运动路径并基于当前位置信息判断是否处于限行区域;
111.当未处于限行区域,基于所述运动路径及接收到的其他机器人发送的状态数据包判断将要进入的限行区域是否还允许机器人进入以及判断进入后是否会在后续的运动中发生死锁,从而确定根据预设的优先级信息转换调度状态或者继续运动;或者
112.当处于限行区域,基于所述运动路径以及接收到的其他机器人发送的状态数据包判断是否由于到达当前限行区域引发了死锁,从而确定根据预设的优先级信息转换调度状
态或者继续运动。
113.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1