CN110531773A - 机器人路径调度方法、装置、服务器及存储介质 - Google Patents
机器人路径调度方法、装置、服务器及存储介质 Download PDFInfo
- Publication number
- CN110531773A CN110531773A CN201910865968.3A CN201910865968A CN110531773A CN 110531773 A CN110531773 A CN 110531773A CN 201910865968 A CN201910865968 A CN 201910865968A CN 110531773 A CN110531773 A CN 110531773A
- Authority
- CN
- China
- Prior art keywords
- robot
- cell
- path
- route segment
- reserved
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 64
- 238000003860 storage Methods 0.000 title claims abstract description 23
- 238000001514 detection method Methods 0.000 claims abstract description 29
- 238000012545 processing Methods 0.000 claims description 15
- 230000002093 peripheral effect Effects 0.000 claims description 8
- 238000007689 inspection Methods 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 210000004027 cell Anatomy 0.000 description 293
- 230000000875 corresponding effect Effects 0.000 description 68
- 230000008569 process Effects 0.000 description 24
- 230000033001 locomotion Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 238000012546 transfer Methods 0.000 description 12
- 230000001360 synchronised effect Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000011065 in-situ storage Methods 0.000 description 6
- 238000004064 recycling Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 6
- 206010033799 Paralysis Diseases 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 230000004888 barrier function Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000001276 controlling effect Effects 0.000 description 4
- 230000005291 magnetic effect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 210000003719 b-lymphocyte Anatomy 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000003028 elevating effect Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000005212 lattice dynamic Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000007306 turnover Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding collision or forbidden zones
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1615—Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators
- B25J9/162—Mobile manipulator, movable base with manipulator arm mounted on it
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0214—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with safety or protection criteria, e.g. avoiding hazardous areas
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0217—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory in accordance with energy consumption, time reduction or distance reduction criteria
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0212—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
- G05D1/0223—Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving speed control of the vehicle
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course or altitude of land, water, air, or space vehicles, e.g. automatic pilot
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0268—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
- G05D1/0274—Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means using mapping information stored in a memory device
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32392—Warehouse and loading, unloading station and shop and machining centers and in out buffer
Abstract
本发明实施例公开了一种机器人路径调度方法、装置、服务器及存储介质,其中,机器人的运行区域网格化为逐行逐列排布的多个单元格,该方法包括:为机器人规划从起始点到目的点之间的行走路径,行走路径分为多个路径段;依据多个路径段中的至少一个路径段,为机器人预留路径段对应的单元格,一个路径段对应的单元格为至少一个;在为机器人预留路径段对应的单元格时,对于待预留的任意一个单元格,检测单元格是否存在死锁现象;若存在死锁现象,停止为机器人预留单元格,并在预设时长间隔后重新检测单元格是否还存在死锁现象;若不存在死锁现象,则将单元格预留给机器人。本发明实施例的方案,可以避免机器人之间的死锁现象,提高了系统的整体效率。
Description
技术领域
本发明实施例涉及机器人技术领域,尤其涉及一种机器人路径调度方法、装置、服务器及存储介质。
背景技术
随着自动化技术的快速发展,机器人越来越多的出现在人们的视野中。移动机器人是一种智能控制移动以进行各种任务的设备,例如,清洁机器人、智能叉车、以及智能拣选系统中用于搬运货架等库存容器的机器人等。在多个机器人联合工作的场景中,路径调度算法直接影响整个系统的工作效率。
发明内容
以智能拣选系统中用于搬运货架的机器人为例进行说明。本发明的发明人在研究中发现,服务器在依据拣选任务确定机器人之后,将依据预先设定的路径调度算法为机器人规划行走路径,机器人沿着行走路径搬运货架到工作站后会先在排队区等待拣货,在排队区等待的所有机器人很容易瘫痪在原地,操作人员需要反复重启机器人,最终造成整个系统的工作效率低下。
鉴于上述问题,本发明实施例中提供了一种机器人路径调度方法、装置、服务器及存储介质,能够提高系统的工作效率。
第一方面,本发明实施例提供了一种机器人路径调度方法,所述机器人的运行区域网格化为逐行逐列排布的多个单元格,该方法包括:
为所述机器人规划从起始点到目的点之间的行走路径,所述行走路径分为多个路径段;
依据多个路径段中的至少一个路径段,为所述机器人预留所述路径段对应的单元格,一个路径段对应的单元格为至少一个;
在为所述机器人预留所述路径段对应的单元格时,对于待预留的任意一个单元格,检测所述单元格是否存在死锁现象;
若存在死锁现象,停止为所述机器人预留所述单元格,并在预设时长间隔后重新检测所述单元格是否还存在死锁现象;
若不存在死锁现象,则将所述单元格预留给所述机器人。
可选的,所述检测所述单元格是否存在死锁现象,包括:
若所述机器人的当前位置所在的单元格和其他机器人的当前位置所在的单元格形成环路,且其他机器人正占用所述单元格,则确定所述单元格存在死锁现象。
可选的,该方法还包括:
若确定所述机器人在一个位置的等待时长超过预设时长,则重新为所述机器人规划行走路径。
可选的,为所述机器人预留所述路径段对应的单元格,包括:
依据行走速度,为所述机器人预留所述路径段对应的单元格;所述行走速度与预留所述路径段对应的单元格的数量成正比。
可选的,依据多个路径段中的至少一个路径段,为所述机器人预留所述路径段对应的单元格之前,还包括:
依据所述机器人的物理外围尺寸在所述运行区域上的投影,确定所述机器人的矩形包罗;
依据所述矩形包罗和所述机器人的行走路径,确定所述机器人的单元格总需求。
可选的,为所述机器人预留所述路径段对应的单元格,包括:
以所述机器人的当前位置作为起点,沿所述路径段方向,将所述单元格总需求中预设数量单元格作为所述机器人预留所述路径段对应的单元格。
可选的,所述预设数量单元格包括所述机器人的运动速度从初始值加速到设定最高值所覆盖的单元格,以及从当前值刹车到初始值所覆盖的单元格。
可选的,在将所述单元格预留给所述机器人之前,还包括:
检测所述单元格是否也预留给其它机器人;
若也预留给其它机器人,则确定所述机器人与其它机器人从各自的当前位置行走至所述单元格所在位置的到达时间;
至少部分地根据到达时间确定是否将所述单元格预留给所述机器人。
可选的,该方法还包括:
如果预留的所述单元格为空闲状态,确定预留的所述单元格的目标位置,将所述目标位置同步给所述机器人。
可选的,该方法还包括:
若检测到空闲机器人正在占用为所述机器人预留的单元格,则向所述空闲机器人发送转移指令,以使所述空闲机器人移出为所述机器人预留的单元格。
可选的,所述转移指令中包括转移位置,所述转移位置是依据系统中机器人密度确定,所述机器人密度由系统中机器人活动数量和区域面积确定。
可选的,将所述目标位置同步给所述机器人之后,还包括:
在控制所述机器人在预留的所述单元格中向所述目标位置行走过程中,若接收到预留的单元格中任一单元格的临时占用指令,则回收所述机器人从该单元格位置至目标位置所覆盖的单元格,并将回收的单元格的状态信息更改为空闲状态。
可选的,在将所述单元格预留给所述机器人之后,还包括:
将预留的所述单元格的状态信息更改为已分配状态;
在控制所述机器人在预留的所述单元格中行走过程中,将所述机器人的矩形包罗,与预留的所述单元格中重叠单元格的状态信息更改为已占用状态;
在所述机器人的矩形包罗移出所述重叠单元格之后,将所述重叠单元格的状态信息更改为空闲状态。
第二方面,本发明实施例提供了一种机器人路径调度装置,所述机器人的运行区域网格化为逐行逐列排布的多个单元格,该装置包括:
行走路径规划模块,用于为所述机器人规划从起始点到目的点之间的行走路径,所述行走路径分为多个路径段;
单元格预留模块,用于依据多个路径段中的至少一个路径段,为所述机器人预留所述路径段对应的单元格,一个路径段对应的单元格为至少一个;
死锁现象检测模块,用于在为所述机器人预留所述路径段对应的单元格时,对于待预留的任意一个单元格,检测所述单元格是否存在死锁现象;
死锁现象检测模块,还用于若存在死锁现象,停止为所述机器人预留所述单元格,并在预设时长间隔后重新检测所述单元格是否还存在死锁现象;
单元格预留模块,还用于若不存在死锁现象,则将所述单元格预留给所述机器人。
可选的,所述死锁现象检测模块具体用于:
若所述机器人的当前位置所在的单元格和其他机器人的当前位置所在的单元格形成环路,且其他机器人正占用所述单元格,则确定所述单元格存在死锁现象。
可选的,所述行走路径规划模块还用于:
若确定所述机器人在一个位置的等待时长超过预设时长,则重新为所述机器人规划行走路径。
可选的,所述单元格预留模块具体用于:
依据行走速度,为所述机器人预留所述路径段对应的单元格;所述行走速度与预留所述路径段对应的单元格的数量成正比。
可选的,该装置还包括:
矩形包罗确定模块,用于依据所述机器人的物理外围尺寸在所述运行区域上的投影,确定所述机器人的矩形包罗;
总需求确定模块,用于依据所述矩形包罗和所述机器人的行走路径,确定所述机器人的单元格总需求。
可选的,所述单元格预留模块具体用于:
以所述机器人的当前位置作为起点,沿所述路径段方向,将所述单元格总需求中预设数量单元格作为所述机器人预留所述路径段对应的单元格。
可选的,所述预设数量单元格包括所述机器人的运动速度从初始值加速到设定最高值所覆盖的单元格,以及从当前值刹车到初始值所覆盖的单元格。
可选的,该装置还包括:
预留检测模块,用于在将所述单元格预留给所述机器人之前,检测所述单元格是否也预留给其它机器人;
到达时间确定模块,用于若也预留给其它机器人,则确定所述机器人与其它机器人从各自的当前位置行走至所述单元格所在位置的到达时间;
所述单元格预留模块,还用于至少部分地根据到达时间确定是否将所述单元格预留给所述机器人。
可选的,该装置还包括:
位置同步模块,用于如果预留的所述单元格为空闲状态,确定预留的所述单元格的目标位置,将所述目标位置同步给所述机器人。
可选的,该装置还包括:
转移指令发送模块,用于若检测到空闲机器人正在占用为所述机器人预留的单元格,则向所述空闲机器人发送转移指令,以使所述空闲机器人移出为所述机器人预留的单元格。
可选的,所述转移指令中包括转移位置,所述转移位置是依据系统中机器人密度确定,所述机器人密度由系统中机器人活动数量和区域面积确定。
可选的,该装置还包括:
回收处理模块,用于将所述目标位置同步给所述机器人之后,在控制所述机器人在预留的所述单元格中向所述目标位置行走过程中,若接收到预留的单元格中任一单元格的临时占用指令,则回收所述机器人从该单元格位置至目标位置所覆盖的单元格,并将回收的单元格状态信息更改为空闲状态。
可选的,该装置还包括:
状态改变模块,用于在将所述单元格预留给所述机器人之后,将预留的所述单元格的状态信息更改为已分配状态;
所述状态改变模块,还用于在控制所述机器人在预留的所述单元格中行走过程中,将所述机器人的矩形包罗,与预留的所述单元格中重叠单元格的状态信息更改为已占用状态;
状态改变模块,还用于在所述机器人的矩形包罗移出所述重叠单元格之后,将所述重叠单元格的状态信息更改为空闲状态。
第三方面,本发明实施例中还提供了一种服务器,该服务器包括:
一个或多个处理装置;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现如本发明实施例中任意所述的机器人路径调度方法。
第四方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现如本发明任意实施例所述的机器人路径调度方法。
本发明实施例提供的机器人路径调度方法、装置、服务器及存储介质,在机器人集群应用场景下,通过以单元格为粒度对机器人的行走路径进行调度,并在路径调度过程中依据机器人行走路径的多个路径段中的至少一个路径段,为机器人预留路径段对应的单元格时,检测待预留的任意一个单元格是否存在死锁现象,且在不存在死锁现象的情况下,将单元格预留给机器人。通过检测死锁现象,可以避免机器人进入死锁路径进而瘫痪在原地,造成长时间等待,提高了整个系统的工作效率。
附图说明
为了更加清楚地说明本发明示例性实施例的技术方案,下面对描述实施例中所需要用到的附图做一简单介绍。显然,所介绍的附图只是本发明所要描述的一部分实施例的附图,而不是全部的附图,对于本领域普通技术人员,在不付出创造性劳动的前提下,还可以根据这些附图得到其他的附图。
图1是本发明实施例中提供的一种仓库拣选系统的系统结构示意图;
图2是本发明实施例一中提供的一种机器人路径调度方法的流程图;
图3是本发明实施例一中提供的一种网格化地图的示意图;
图4是本发明实施例一中提供的一种单元格死锁现象示意图;
图5是本发明实施例一中提供的一种分配顺序示意图;
图6是本发明实施例二中提供的一种机器人路径调度方法的流程图;
图7是本发明实施例二中机器人的单元格总需求示意图;
图8是本发明实施例三中提供的一种机器人路径调度方法的流程图;
图9是本发明实施例四中提供的一种机器人路径调度装置的结构示意图;
图10为本发明实施例五中提供的一种服务器的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
在更加详细地讨论示例性实施例之前,应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作(或步骤)可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
为了更好地理解本发明实施例的技术方案,下面提供一种典型的机器人集群化应用的场景,当然本实施例中提供的该场景仅是一种示例。图1是本发明实施例中提供的一种仓库拣选系统的系统结构示意图。参见图1,拣选系统100包括:机器人110、控制系统120、库存容器区130以及工作站140,库存容器区130设置有多个库存容器131,库存容器131上放置有各种物品,如同在超市中见到的放置有各种商品的货架一样,多个库存容器131之间排布成阵列形式。其中,机器人110可以为自驱动机器人。通常,在库存容器区130的一侧设置有多个工作站140。
控制系统120与机器人110进行无线通信,工作人员可以通过操作台160使控制系统120工作,机器人110可以在控制系统120的控制下,执行物品搬运任务。例如,机器人110可以沿库存容器阵列中的空着的空间(机器人110通行通道的一部分)行驶,运动目标库存容器131处,与目标库存容器131对接,并搬运到被分配的工作站140,例如,机器人110运动到目标库存容器131的底部,利用举升机构举起目标库存容器131,并搬运到被分配到的工作站140。
在一个示例中,机器人110具有举升机构,以及具有自主导航功能,机器人110能够行驶至目标库存容器131底部,并利用举升机构将整个库存容器131举起,使得库存容器131能够随着具有升降功能的举升机构上下移动。在一个示例中,机器人110能够根据摄像头拍摄到的铺设在地面的二维码(二维码包含有位置信息)并基于二维码的位置信息向前行驶,并且能够根据控制系统120确定的路线行驶至控制系统120提示的库存容器131下面。机器人110将目标库存容器131搬运到工作站140,在工作站140处拣选人员141或拣选机器人从库存容器131上拣选物品并放入周转箱150中等待打包。
控制系统120为在服务器上运行的、具有数据存储、信息处理能力的软件系统,可通过无线或有线与机器人、硬件输入系统、其它软件系统连接。控制系统120可以包括一个或多个服务器,可以为集中式控制架构或者分布式计算架构。服务器具有处理器1201和存储器1202,在存储器1202中可以具有订单池1203。
以图1中所示的拣选系统中的库容容器区为机器人的工作区域为例,相关技术中,机器人110按照预先规划的行驶路径搬运货架、料箱等库存容器到工作站后,先在排队区等待拣货,而在排队区等待时由于各种因素很容易出现机器人110路径死锁等现象,进而导致在排队区的所有机器人无法工作而瘫痪在原地,最终造成整个系统的工作效率低下,因此需要提供一种新的路径调度方案,在机器人的行驶过程中进行死锁检查,并根据死锁检测结果调度路径,以提高系统的工作效率。
下面针对本发明实施例中提供的机器人路径调度方法、装置、服务器及存储介质,通过各实施例进行详细阐述。
实施例一
图2为本发明实施例一中提供的一种机器人路径调度方法的流程图,本实施例可适用于在机器人集群化应用的场景下,对机器人的路径进行实时调度,以提高系统工作效率的情况;尤其适用于在将机器人的运行区域网格化为逐行逐列排布的多个单元格的场景下,对机器人行驶过程进行死锁检测,并根据死锁检测结果调度路径,以提高系统工作效率的情况。该方法可以由本发明实施例提供的机器人路径调度装置来执行,该装置可以采用软件和/或硬件的方式实现,并可集成于任何具有机器人路径调度功能的服务器设备上。如图2所示,该方法具体可以包括:
S210,为机器人规划从起始点到目的点之间的行走路径,行走路径分为多个路径段。
作为本发明实施例的一种可选方式,将机器人的运行区域(进一步为运行区域所对应的地图)网格化为逐行逐列排布的多个单元格。其中单元格是指运行区域网格化结果中的一个最小单元,对应于实际场景中的一个特定的区域。由于运行区域网格化结果中所有单元格对应于实际场景中机器人所需的道路资源,且每个机器人的行走路径具有方向性,因此本实施例可将整个运行区域网格化结果设置于一个直角坐标系下,如图3所示。运行区域网格化结果中每个单元格相同,且单元格的数量由划分粒度决定。可选的,粒度越细,运行区域网格化结果中单元格的数量越多,每个单元格映射于实际场景中的区域越小。
本实施例中,机器人是指实际场景中所使用的真实机器人,可与服务器进行无线通信,并能够根据服务器下发的行走路径在运行区域内沿路径进行运动,同时还可通过无线通信方式按照固定周期向服务器发送真实位置和行走速度等运动状态信息。其中,行走路径是服务器依据机器人的起始点、目的点以及路径规划原则(如距离最短等)确定的。可选的,行走路径可以由多个路径段组成。需要说明的是,后续涉及的真实机器人等同于所述机器人,
具体的,对于每个机器人,可以依据该机器人的行走路径的起始点、目的点和方向等,将其行走路径映射于运行区域网格化结果中,如图3所示,映射于运行区域网格化结果中的行走路径由一条或多条带有方向的线段构成。也就是说,行走路径中的一个或多个路径段映射于运行区域网格化结果中的一条或多条带有方向的线段。
S220,依据多个路径段中的至少一个路径段,为机器人预留路径段对应的单元格,一个路径段对应的单元格为至少一个。
为了提高系统的工作效率,本实施例可以为每个实际场景中所使用的真实机器人建立唯一的模拟机器人,且依据真实机器人上报的运动状态信息为真实机器人所对应的模拟机器人建立运动模型,以便模拟机器人基于所建立的运动模型提前对真实机器人行走路径上的待行驶区域进行预判。其中,模拟机器人是一种服务器内存中的数学模型。
在本实施例机器人集群化应用场景中,在获取到系统任务如拣选任务之后,服务器可以依据实际场景中各真实机器人的工作状态,确定用于执行任务的至少两个真实机器人,并为真实机器人规划行走路径;同时,可为每个真实机器人建立唯一的模拟机器人,并将每个真实机器人的行走路径映射于运行区域网格化结果中;之后,对于每个真实机器人,可获取该真实机器人在依据行走路径行走过程中,按照固定周期上报的真实位置和行走速度等运动状态信息,并依据该运动状态信息为该真实机器人建立其对应的模拟机器人的运动模型,以便该模拟机器人可基于所建立的运动模型预先对真实机器人行驶路径上的待行走区域进行预判,即通过模拟机器人的预测结果为真实机器人预留路径段对应的单元格,其中一个路径段对应的单元格为一个或多个。固定周期是根据真实机器人的行走速度设定的,且真实机器人在一个固定周期内的行走距离映射在运行区域网格化结果上的投影距离在一个单元格内,以保证真实机器人每经过一个单元格服务器均可接收到该真实机器人的运动状态信息。
具体的,对于每个模拟机器人而言,可根据其对应的真实机器人映射于运行区域网格化结果中的投影、以及映射于运行区域网格化结果中的行走路径确定该模拟机器人的单元格总需求,而后依据该模拟机器人的当前所在位置、行走速度等,将该模拟机器人的单元格总需求中的一个或多个单元格作为该模拟机器人的需求单元格,并可以将该模拟机器人的需求单元格确定为真实机器人预留的路径段对应的单元格。示例性的,为机器人预留路径段对应的单元格可以包括:根据行驶路径,以及行走速度,为机器人预留路径段对应的单元格;其中行走速度与预留路径段对应的单元格的数量成正比,也就是说,行走速度越快,预留的单元格数量越多。
此外,为了避免真实机器人之间的碰撞等,可选的,每个单元格在同一时刻仅能由一个真实机器人占用,即每个单元格对应于实际场景的区域同一时刻仅能由一个真实机器人占用。
S230,在为机器人预留路径段对应的单元格时,对于待预留的任意一个单元格,检测单元格是否存在死锁现象。若存在,则执行S240;若不存在,则执行S250。
本实施例中,死锁现象即为路径死锁,是当前时刻无法继续行驶的一种现象。可选的,若机器人的当前位置所在的单元格和其他机器人的当前位置所在的单元格形成环路,且其他机器人正占用单元格,则可以确定单元格存在死锁现象。
具体的,本实施例可通过真实机器人对应的模拟机器人提前预判待预留的每一单元格是否存在死锁现象。针对每个模拟机器人,在确定其需求单元格之后,可以通过该模拟机器人对需求单元格逐次(每次一个或多个单元格)进行预先申请及分配过程。其中,预先申请过程包括预先依次对需求单元格中的每个单元格是否存在死锁进行判断,且在单元格不存在死锁现象的情况下将其添加至申请单元格中的过程。
如图4所示,假设当前模拟机器为A,系统中还存在有模拟机器人B,模拟机器人B路径前方有模拟机器人C,模拟机器人C的路径前方是模拟机器人D,D路径前方是当前模拟机器人A,则确定模拟机器人A、B、C以及D可以基于单元格形成环路B→C→D→A→B。如果当前模拟机器人A需要添加的单元格正好为被某一个模拟机器人占用,假设为模拟机器人B所占用的单元格,即预测到当前模拟机器人A所需要添加的单元格存在死锁现象,进而确定为该模拟机器人对应的真实机器人待预留的该单元格存在死锁现象。
进一步的,对于待预留的任意一个单元格,若该单元格存在死锁现象,则执行S240;若不存在死锁现象,则执行S250。
S240,停止为机器人预留单元格,并在预设时长间隔后重新检测单元格是否还存在死锁现象。
具体的,服务器在基于模拟机器人确定为真实机器人待预留的任意一个单元格存在死锁现象时,停止为该真实机器人预留单元格,并在预设时长间隔后通过该真实机器人对应的模拟机器人重新检测该单元格是否还存在死锁现象,若不存在,则执行S250;若存在则可以重复执行S240。其中,预设时长是预先设定的最大等待时长,可根据实际情况进行动态调整。
为了避免真实机器人长时间等待,在预设时长间隔后重新检测单元格还存在死锁现象的情况下,则可以重新为真实机器人规划行走路径。示例性的,还可以包括:若确定机器人在一个位置的等待时长超过预设时长,则重新为机器人规划行走路径。进一步的,在重新为机器人规划行走路径之后,可以重新执行S220至S250的操作过程。
S250,将单元格预留给机器人。
需要说明的是,本实施例通过模拟机器人提前对真实机器人行走路径上的路况进行预判,即提前对待预留的任意一个单元格是否存在死锁现象进行判断,可以避免该模拟机器人对应的真实机器人进入死锁路径,造成长时间等待,进而提高了真实机器人的工作效率。
本发明实施例提供的技术方案,在机器人集群应用场景下,通过以单元格为粒度对机器人的行走路径进行调度,并在路径调度过程中依据机器人行走路径的多个路径段中的至少一个路径段,为机器人预留路径段对应的单元格时,检测待预留的任意一个单元格是否存在死锁现象,且在不存在死锁现象的情况下,将单元格预留给机器人。通过检测死锁现象,可以避免机器人进入死锁路径进而瘫痪在原地,造成长时间等待,提高了整个系统的工作效率。此外,以单元格为粒度对行走路径上的路径度进行占用,可以提高路径段的使用效率。
在真实机器人集群化应用场景中,两个或多个真实机器人的行走路径可能存在重叠,映射于运行区域网格化结果中,也就是说,两个或多个模拟机器人的申请单元格中存在相同的单元格。因此,在为模拟机器人分配单元格时,需要充分考虑此情况,以避免两个或多个真实机器人之间相互抢占同一单元格所对应的实际场景区域,造成相互碰撞现象等。
作为本发明实施例的一种优选方式,在将单元格预留给机器人之前,还可以包括:检测单元格是否也预留给其它机器人;若也预留给其它机器人,则确定机器人与其它机器人从各自的当前位置行走至单元格所在位置的到达时间;至少部分地根据到达时间确定是否将单元格预留给机器人。
本实施例中,可以通过真实机器人对应的模拟机器人确定是否将单元格预留给真实机器人。具体的,如图5所示,假设模拟机器人E的地图单元格总需求为沿X轴方向上A1到A2之间的所有白色单元格;模拟机器人F的地图单元格总需求为沿Y轴方向上A3到A4之间的所有白色单元格。若依据S230至S250分别确定模拟机器人E的申请单元格包括单元格a至单元格b之间的单元格,模拟机器人F的申请单元格包括c至单元格d之间的单元格。在为模拟机器人E分配单元格e时,检测到模拟机器人F中存在相同的单元格e,则分别根据模拟机器人E和模拟机器人F的运动模型,计算模拟机器人E从当前位置行驶至该单元格所在位置的到达时间Tx,以及模拟机器人F从当前位置行驶至该单元格所在位置的到达时间Ty;之后,可以将到达时间Tx与到达时间Ty进行比较,若Tx<Ty,则可以优先将该单元格作为目标单元格分配给模拟机器人E,同时使模拟机器人F等待,且在模拟机器人E所对应的真实机器人移出去该单元格时,将该单元格再分配模拟机器人F。
需要说明的是,相比于现有的路径调度方案,真实机器人在依据行走路径行走的过程中对路径段的占用是整段占用,若两个真实机器人存在相同的路径段,则需要等待较长时间。而本实施例以单元格为粒度对真实机器人的行走路径进行调度,可以减少真实机器人之间相互等待的时间。
实施例二
图6是本发明实施例二中提供的一种机器人路径调度方法的流程示意图,本实施例在上述实施例的基础上,具体提供了一种为机器人预留路径段对应的单元格的方式,本实施例可以与上述一个或者多个实施例中各个可选方案结合。如图6所示,该方法具体可以包括:
S610,为机器人规划从起始点到目的点之间的行走路径,行走路径分为多个路径段。
S620,依据机器人的物理外围尺寸在所述运行区域上的投影,确定机器人的矩形包罗。
本实施例中,矩形包罗是一种能够涵盖真实机器人的物理外围尺寸在运行区域(进一步为运行区域网格化结果)上的投影的多边形,即投影的外接多边形。可选的,由于运行区域网格化结果中每个单元格相等且为矩形,为了便于计算,可将投影的外接矩形作为真实机器人的矩形包罗。
S630,依据矩形包罗和机器人的行走路径,确定机器人的单元格总需求。
本实施例中,模拟机器人的单元格总需求即为该模拟机器人在运行区域网格化结果上沿行走路径方向行走所需的总单元格。可选的,由于每个模拟机器人的运动模型是依据其对应的真实机器人上报的真实位置、行走速度等运动状态信息等所建立的,即内存中模拟机器人的位置、速度等即为真实机器人所上报的位置和速度等。因此,真实机器人的单元格总需求即为其对应的模拟机器人的单元格总需求。
本实施例中,对于每个真实机器人而言,可以依据该真实机器人的行走路径的起始点、方向以及其他关键点如转折点等,将该真实机器人的行走路径映射于运行区域网格化结果中;而后依据该真实机器人在运行区域网格化结果中的投影,以及映射于运行区域网格化结果中的行走路径确定该模拟机器人的单元格总需求。
可以理解的是,映射于运行区域网格化结果中的行走路径由一条或多条带有方向的线段构成。具体的,可以依据矩形包罗,以及映射于运行区域网格化结果中的行走路径,确定总需求单元格沿行走路径方向的宽度和长度,依据长度和宽度确定该真实机器人的单元格总需求。其中,沿行走路径运动的方向为长度方向,与行走方向垂直的方向为宽度方向。可选的,所确定的沿行走路径方向的宽度由矩形包罗的宽度决定,若矩形包罗的宽度小于一个单元格的宽度,则可以将一个单元格的宽度作为沿行走路径方向的宽度;若矩形包罗的宽度大于一个单元格的宽度,且小于两个单元格的宽度,则可以将两个单元格的宽度作为沿行走路径方向的宽度等;将能够覆盖行走路径起始点至目的点所需矩形包罗的个数与矩形包罗的长度的乘积作为所确定的沿行走路径方向的长度。
示例性的,真实机器人的矩形包罗可以大于、小于或等于运行区域网格化结果中一个单元格。为了减少计算量,优选的,在对运行区域网格化时,可以将真实机器人的矩形包罗作为最小划分粒度,对真实机器人运行区域所对应的地图进行均匀阵列化,进而真实机器人的矩形包罗即为运行区域网格化结果中的一个单元格。例如,如图7所示,某一真实机器人的行走路径映射于运行区域网格化结果中由两条带方向线段组成,第一条为起点A1(X1,Y1)到转折点A2(X2,Y2),第二条为转折点A2(X2,Y2)到终点A3(X3,Y3),由于该真实机器人的矩形包罗即为运行区域网格化结果中的一个单元格,进而图7中所有白色单元格即为该真实机器人的单元格总需求,也即该真实机器人所对应的模拟机器人的单元格总需求。
S640,依据多个路径段中的至少一个路径段,以机器人的当前位置作为起点,沿路径段方向,将单元格总需求中预设数量单元格作为机器人预留路径段对应的单元格。
本实施例中,为了保证真实机器人在突发事件下的行走安全,本实施例的预设数量单元格可以采用如下方式确定:将机器人的运动速度从初始值加速到设定最高值所覆盖的单元格,以及从当前值刹车到初始值所覆盖的单元格作为预设数量单元。其中,运动速度的初始值可以为0,设定最高值即为真实机器人行走过程中所能达到速度的最大值,当前值即为当前时刻真实机器人的速度。
具体的,在确定每个模拟机器人的单元格总需求之后,对于每个模拟机器人而言,可以将该模拟机器人当前所在位置起点,沿着行走路径方向(即沿着该模拟机器人的单元格总需求方向),获取预设数量的单元格作为该模拟机器人的需求单元格,并将该模拟机器人的需求单元格确定为真实机器人预留的路径段对应的单元格。可选的,对于每个模拟机器人而言,随着其当前位置的变化,其需求单元格动态变化,即为真实机器人预留的路径段对应的单元格也是动态变化的;此外,行走速度与需求单元格的数量呈正相关,也就是说,行走速度越快,需求单元格的数量越多,即预留单元格的数量越多。
S650,在为机器人预留路径段对应的单元格时,对于待预留的任意一个单元格,检测单元格是否存在死锁现象。若存在,则执行S660;若不存在,则执行S670。
S660,停止为机器人预留单元格,并在预设时长间隔后重新检测单元格是否还存在死锁现象。
S670,将单元格预留给机器人。
本实施例中,运行区域网格化结果中单元格的状态信息随着模拟机器人的分配情况、以及真实机器人的占用情况动态变化,其中单元格的状态信息可以包括但不限于空闲状态、已分配状态以及已占用状态等。可选的,已分配给模拟机器人(即预留给真实机器人)的单元格的状态信息为已分配状态;真实机器人运动到其对应的模拟机器人已分配的单元格所对应的实际场景区域时,该真实机器人对该单元格实际形成了占用状态,而且当该真实机器人运动出该单元格(即该单元格所对应的实际场景区域)时,可以将单元格的状态信息设置为空闲状态或释放状态,以便其他模拟机器人进行申请。示例性的,在将单元格预留给机器人之后,还包括:将预留的单元格的状态信息更改为已分配状态;在控制机器人在预留的单元格中行走过程中,将机器人的矩形包罗,与预留的单元格中重叠单元格的状态信息更改为已占用状态;在机器人的矩形包罗移出重叠单元格之后,将重叠单元格的状态信息更改为空闲状态。具体的,对于每个真实机器人,可以依据该真实机器人上报的真实位置以及该真实机器人的矩形包罗,确定该真实机器人的矩形包罗与该真实机器人对应的模拟机器人所分配的单元格是否存在重叠,在存在重叠时,将重叠单元格的状态信息更改为已占用状态;之后,在该真实机器人的矩形包罗移出该重叠单元格之后,将重叠单元格的状态信息更改为空闲状态,以便其他模拟机器人申请。在将重叠单元格的状态信息更改为空闲状态的同时,还可以将该重叠单元格从该真实机器人对应的模拟机器人的单元格总需求以及需求单元格中删除。
本发明实施例提供的技术方案,运行区域网格化结果中的单元格代表实际场景中的道路资源,在机器人集群应用场景下,通过以单元格为粒度对机器人的行走路径进行调度,并在路径调度过程中依据机器人行走路径的多个路径段中的至少一个路径段,为机器人预留路径段对应的单元格时,检测待预留的任意一个单元格是否存在死锁现象,且在不存在死锁现象的情况下,将单元格预留给机器人。通过检测死锁现象,可以避免机器人进入死锁路径进而瘫痪在原地,造成长时间等待,提高了整个系统的工作效率。此外,以单元格为粒度对行走路径上的路径度进行占用,可以提高路径段的使用效率。
实施例三
图8是本发明实施例三中提供的一种机器人路径调度方法的流程示意图,本实施例在上述实施例的基础上,具体可以在将单元格预留给机器人的步骤之后增加优化步骤流程,本实施例可以与上述一个或者多个实施例中各个可选方案结合。如图8所示,该方法具体可以包括:
S810,为机器人规划从起始点到目的点之间的行走路径,行走路径分为多个路径段。
S820,依据多个路径段中的至少一个路径段,为机器人预留路径段对应的单元格,一个路径段对应的单元格为至少一个。
S830,在为机器人预留路径段对应的单元格时,对于待预留的任意一个单元格,检测单元格是否存在死锁现象。若存在,则执行S840;若不存在,则执行S850。
S840,停止为机器人预留单元格,并在预设时长间隔后重新检测单元格是否还存在死锁现象。
S850,将单元格预留给机器人。
S860,如果预留的单元格为空闲状态,确定预留的单元格的目标位置,将目标位置同步给机器人。
具体的,在将单元格预留给真实机器人之后,如果确定预留的单元格处于空闲状态,则可以将预留的单元格的目标位置同步给真实机器人,以便真实机器人在当前位置和目标位置所对应的实际场景的位置内运动。如果确定预留的单元格处于已占用状态等,则可以等到预留的单元格处于空闲状态时,将预留的单元格的目标位置同步给真实机器人,以便真实机器人在当前位置和目标位置所对应的实际场景的位置内运动。其中,若预留单元格为一个,则目标位置为预留单元格所对应的实际场景的位置;若预留的单元格多个,则目标位置可以为预留单元格中沿行走路径方向的最后一个单元格所对应的实际场景的位置。
S870,在控制机器人在预留的单元格中向目标位置行走过程中,若接收到预留的单元格中任一单元格的临时占用指令,则回收机器人从该单元格位置至目标位置所覆盖的单元格,并将回收的单元格的状态信息更改为空闲状态。
为了保证安全行驶,每个真实机器人均可配置障碍物检测设备。可选的,对于每个真实机器人,在该真实机器人在预留单元格中从当前位置行驶至目标位置过程中,若检测到某一单元格所对应的实际场景区域存在障碍物如场景中的其他真实机器人,则该真实机器人可根据预先设定的避障机制停止在该单元格的前一单元格所对应的实际场景区域并等待,直至障碍物移出该单元后继续行驶。
若障碍物为场景中的任一其他真实机器人,该真实机器人在等待的过程中,服务器若接收到该单元格的临时占用指令,则可以回收该真实机器人从该单元格位置至目标位置所覆盖的单元格,并将回收的单元格状态信息更改为空闲状态,以便其他模拟机器人申请,同时可以重新为该真实机器人规划行走路径。其中,临时占用指令可以是该任一其他真实机器人在该单元格位置处启动所触发产生的。
此外,若障碍物为空闲真实机器人,还可以包括:若检测到空闲机器人正在占用为机器人预留的单元格,则向空闲机器人发送转移指令,以使空闲机器人移出为机器人预留的单元格。具体的,对于每个模拟机器人,若检测到空闲真实机器人所在位置映射于运行区域网格化结果中的位置为该模拟机器人所分配的单元格所在位置(进一步为单元格中任一单元格所在位置),则向空闲真实机器人发送转移指令,以使空闲真实机器人依据转移指令移出为真实机器人预留的单元格。其中,转移指令中包括转移位置,转移位置是依据系统中真实机器人密度确定,真实机器人密度由系统中真实机器人活动数量和区域面积确定。进一步的,转移位置是预先设定的场景中真实机器人密度低的位置。
本发明实施例提供的技术方案,在控制机器人在预留单元格中从当前位置行驶至目标位置过程中,可结合实际场景的突发状态,灵活调整机器人的行走路径,增加了方案的灵活度以及使用场景。
实施例四
图9是本发明实施例四中提供的一种机器人路径调度装置的结构示意图,本实施例的技术方案可适用于在在机器人集群化应用的场景下,对机器人的路径进行实时调度,以提高系统工作效率的情况;尤其适用于在将机器人的运行区域网格化为逐行逐列排布的多个单元格的场景下,对机器人行驶过程进行死锁检测,并根据死锁检测结果调度路径,以提高系统工作系统的情况。该装置可以采用软件和/或硬件的方式实现,并集成在任何具有机器人路径调度功能的服务器设备上。如图9所示,本发明实施例的机器人路径调度装置可以包括:
行走路径规划模块910,用于为机器人规划从起始点到目的点之间的行走路径,行走路径分为多个路径段;
单元格预留模块920,用于依据多个路径段中的至少一个路径段,为机器人预留路径段对应的单元格,一个路径段对应的单元格为至少一个;
死锁现象检测模块930,用于在为机器人预留所述路径段对应的单元格时,对于待预留的任意一个单元格,检测单元格是否存在死锁现象;
死锁现象检测模块930,还用于若存在死锁现象,停止为机器人预留单元格,并在预设时长间隔后重新检测单元格是否还存在死锁现象;
单元格预留模块920,还用于若不存在死锁现象,则将单元格预留给所述机器人。
本发明实施例提供的技术方案,在机器人集群应用场景下,通过以单元格为粒度对机器人的行走路径进行调度,并在路径调度过程中依据机器人行走路径的多个路径段中的至少一个路径段,为机器人预留路径段对应的单元格时,检测待预留的任意一个单元格是否存在死锁现象,且在不存在死锁现象的情况下,将单元格预留给机器人。通过检测死锁现象,可以避免机器人进入死锁路径进而瘫痪在原地,造成长时间等待,提高了整个系统的工作效率。此外,以单元格为粒度对行走路径上的路径度进行占用,可以提高路径段的使用效率。
示例性的,死锁现象检测模块930具体用于:
若机器人的当前位置所在的单元格和其他机器人的当前位置所在的单元格形成环路,且其他机器人正占用单元格,则确定单元格存在死锁现象。
示例性的,行走路径规划模块910还用于:
若确定机器人在一个位置的等待时长超过预设时长,则重新为机器人规划行走路径。
示例性的,单元格预留模块920具体用于:
依据行走速度,为机器人预留路径段对应的单元格;行走速度与预留路径段对应的单元格的数量成正比。
示例性的,上述装置还可以包括:
矩形包罗确定模块,用于依据机器人的物理外围尺寸在运行区域上的投影,确定机器人的矩形包罗;
总需求确定模块,用于依据矩形包罗和机器人的行走路径,确定机器人的单元格总需求。
示例性的,单元格预留模块920还具体用于:
以机器人的当前位置作为起点,沿路径段方向,将单元格总需求中预设数量单元格作为机器人预留路径段对应的单元格。
示例性的,预设数量单元格包括机器人的运动速度从初始值加速到设定最高值所覆盖的单元格,以及从当前值刹车到初始值所覆盖的单元格。
示例性的,上述装置还可以包括:
预留检测模块,用于在将单元格预留给机器人之前,检测单元格是否也预留给其它机器人;
到达时间确定模块,用于若也预留给其它机器人,则确定机器人与其它机器人从各自的当前位置行走至所述单元格所在位置的到达时间;
单元格预留模块920,还用于至少部分地根据到达时间确定是否将单元格预留给机器人。
示例性的,上述装置还可以包括:
位置同步模块,用于如果预留的单元格为空闲状态,确定预留的单元格的目标位置,将目标位置同步给机器人。
示例性的,上述装置还可以包括:
转移指令发送模块,用于若检测到空闲机器人正在占用为机器人预留的单元格,则向空闲机器人发送转移指令,以使空闲机器人移出为机器人预留的单元格。
示例性的,转移指令中包括转移位置,转移位置是依据系统中机器人密度确定,机器人密度由系统中机器人活动数量和区域面积确定。
示例性的,上述装置还可以包括:
回收处理模块,用于将目标位置同步给所述机器人之后,在控制机器人在预留的单元格中向目标位置行走过程中,若接收到预留的单元格中任一单元格的临时占用指令,则回收机器人从该单元格位置至目标位置所覆盖的单元格,并将回收的单元格状态信息更改为空闲状态。
示例性的,上述装置还可以包括:
状态改变模块,用于在将单元格预留给机器人之后,将预留的单元格的状态信息更改为已分配状态;
状态改变模块,还用于在控制机器人在预留的单元格中行走过程中,将机器人的矩形包罗,与预留的单元格中重叠单元格的状态信息更改为已占用状态;
状态改变模块,还用于在机器人的矩形包罗移出重叠单元格之后,将重叠单元格的状态信息更改为空闲状态。
实施例五
图10为本发明实施例五中提供的一种服务器的结构示意图。图10示出了适于用来实现本发明实施方式的示例性服务器12的框图。图10显示的服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图10所示,服务器12以通用计算设备的形式表现。服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,存储器28,连接不同系统组件(包括存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图10未显示,通常称为“硬盘驱动器”)。尽管图10中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该服务器12交互的设备通信,和/或与使得该服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与服务器12的其它模块通信。应当明白,尽管图10中未示出,可以结合服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
处理单元16通过运行存储在存储器28中的程序,从而执行各种功能应用以及数据处理,例如实现本发明实施例所提供的机器人路径调度方法。
实施例六
本发明实施例六还提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时可实现上述任意实施例所述的机器人路径调度方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是但不限于:电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
上述实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员应该明白,上述的本发明实施例的各模块或各操作可以用通用的计算装置来实现,它们可以集中在单个计算装置上,或者分布在多个计算装置所组成的网络上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或操作制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间的相同或相似的部分互相参见即可。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种机器人路径调度方法,其特征在于,所述机器人的运行区域网格化为逐行逐列排布的多个单元格,所述方法包括:
为所述机器人规划从起始点到目的点之间的行走路径,所述行走路径分为多个路径段;
依据多个路径段中的至少一个路径段,为所述机器人预留所述路径段对应的单元格,一个路径段对应的单元格为至少一个;
在为所述机器人预留所述路径段对应的单元格时,对于待预留的任意一个单元格,检测所述单元格是否存在死锁现象;
若存在死锁现象,停止为所述机器人预留所述单元格,并在预设时长间隔后重新检测所述单元格是否还存在死锁现象;
若不存在死锁现象,则将所述单元格预留给所述机器人。
2.根据权利要求1所述的方法,其特征在于,所述检测所述单元格是否存在死锁现象,包括:
若所述机器人的当前位置所在的单元格和其他机器人的当前位置所在的单元格形成环路,且其他机器人正占用所述单元格,则确定所述单元格存在死锁现象。
3.根据权利要求1所述的方法,其特征在于,还包括:
若确定所述机器人在一个位置的等待时长超过预设时长,则重新为所述机器人规划行走路径。
4.根据权利要求1所述的方法,其特征在于,为所述机器人预留所述路径段对应的单元格,包括:
依据行走速度,为所述机器人预留所述路径段对应的单元格;所述行走速度与预留所述路径段对应的单元格的数量成正比。
5.根据权利要求1所述的方法,其特征在于,依据多个路径段中的至少一个路径段,为所述机器人预留所述路径段对应的单元格之前,还包括:
依据所述机器人的物理外围尺寸在所述运行区域上的投影,确定所述机器人的矩形包罗;
依据所述矩形包罗和所述机器人的行走路径,确定所述机器人的单元格总需求。
6.根据权利要求5所述的方法,其特征在于,为所述机器人预留所述路径段对应的单元格,包括:
以所述机器人的当前位置作为起点,沿所述路径段方向,将所述单元格总需求中预设数量单元格作为所述机器人预留所述路径段对应的单元格。
7.根据权利要求6所述的方法,其特征在于,所述预设数量单元格包括所述机器人的运动速度从初始值加速到设定最高值所覆盖的单元格,以及从当前值刹车到初始值所覆盖的单元格。
8.一种机器人路径调度装置,其特征在于,所述机器人的运行区域网格化为逐行逐列排布的多个单元格,所述装置包括:
行走路径规划模块,用于为所述机器人规划从起始点到目的点之间的行走路径,所述行走路径分为多个路径段;
单元格预留模块,用于依据多个路径段中的至少一个路径段,为所述机器人预留所述路径段对应的单元格,一个路径段对应的单元格为至少一个;
死锁现象检测模块,用于在为所述机器人预留所述路径段对应的单元格时,对于待预留的任意一个单元格,检测所述单元格是否存在死锁现象;
死锁现象检测模块,还用于若存在死锁现象,停止为所述机器人预留所述单元格,并在预设时长间隔后重新检测所述单元格是否还存在死锁现象;
单元格预留模块,还用于若不存在死锁现象,则将所述单元格预留给所述机器人。
9.一种服务器,其特征在于,所述服务器包括:
一个或多个处理装置;
存储装置,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理装置执行,使得所述一个或多个处理装置实现权利要求1-7中任一所述的机器人路径调度方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-7中任一所述的机器人路径调度方法。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310409028.XA CN116795097A (zh) | 2019-09-12 | 2019-09-12 | 机器人路径调度方法、装置、服务器及存储介质 |
CN201910865968.3A CN110531773A (zh) | 2019-09-12 | 2019-09-12 | 机器人路径调度方法、装置、服务器及存储介质 |
US16/848,574 US11052539B2 (en) | 2019-09-12 | 2020-04-14 | Method, server and storage medium for robot routing |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910865968.3A CN110531773A (zh) | 2019-09-12 | 2019-09-12 | 机器人路径调度方法、装置、服务器及存储介质 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310409028.XA Division CN116795097A (zh) | 2019-09-12 | 2019-09-12 | 机器人路径调度方法、装置、服务器及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110531773A true CN110531773A (zh) | 2019-12-03 |
Family
ID=68668477
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310409028.XA Pending CN116795097A (zh) | 2019-09-12 | 2019-09-12 | 机器人路径调度方法、装置、服务器及存储介质 |
CN201910865968.3A Pending CN110531773A (zh) | 2019-09-12 | 2019-09-12 | 机器人路径调度方法、装置、服务器及存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310409028.XA Pending CN116795097A (zh) | 2019-09-12 | 2019-09-12 | 机器人路径调度方法、装置、服务器及存储介质 |
Country Status (2)
Country | Link |
---|---|
US (1) | US11052539B2 (zh) |
CN (2) | CN116795097A (zh) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111314537A (zh) * | 2020-01-21 | 2020-06-19 | 上海悦易网络信息技术有限公司 | 手机回收装置中手机防撞方法及设备 |
CN111924659A (zh) * | 2020-07-08 | 2020-11-13 | 北自所(北京)科技发展有限公司 | 基于孪生模型的化纤长丝落卷方法、系统及自动落卷设备 |
CN113156950A (zh) * | 2021-04-20 | 2021-07-23 | 杭州壹悟科技有限公司 | 多机器人智能交通控制方法及装置 |
CN114864456A (zh) * | 2022-07-08 | 2022-08-05 | 埃克斯工业(广东)有限公司 | 半导体清洗设备调度方法、系统、装置及存储介质 |
CN114970374A (zh) * | 2022-07-28 | 2022-08-30 | 深圳华数机器人有限公司 | 一种基于增量式动力学的负载辨识方法、系统和介质 |
CN117047784A (zh) * | 2023-10-11 | 2023-11-14 | 大扬智能科技(北京)有限公司 | 确定机器人拣选货物位置的方法及装置、机器人系统 |
CN117325185A (zh) * | 2023-11-27 | 2024-01-02 | 成都越凡创新科技有限公司 | 移动机器人解死锁的方法及调度设备 |
WO2024007731A1 (zh) * | 2022-05-26 | 2024-01-11 | 北京极智嘉科技股份有限公司 | 多机器人的运动调度方法及装置 |
WO2024021758A1 (zh) * | 2022-07-29 | 2024-02-01 | 北京旷视机器人技术有限公司 | 机器人控制方法、电子设备及存储介质 |
WO2024045091A1 (zh) * | 2022-08-31 | 2024-03-07 | 西门子股份公司 | 执行机构的运动规划方法、装置、系统及存储介质 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113934210A (zh) * | 2021-10-11 | 2022-01-14 | 华能新疆吉木萨尔发电有限公司 | 一种轨道机器人多机调度方法、装置及存储介质 |
US20230195119A1 (en) * | 2021-12-22 | 2023-06-22 | Ford Global Technologies, Llc | Systems and methods for controlling autonomous mobile robots in a manufacturing environment |
US20230195123A1 (en) * | 2021-12-22 | 2023-06-22 | Ford Global Technologies, Llc | Systems and methods for controlling autonomous mobile robots in a manufacturing environment |
CN116985142B (zh) * | 2023-09-25 | 2023-12-08 | 北京航空航天大学 | 一种机器人运动规划方法、装置和机器人 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080051985A1 (en) * | 2006-06-19 | 2008-02-28 | D Andrea Raffaello | System and method for coordinating movement of mobile drive units |
CN104364121A (zh) * | 2012-05-14 | 2015-02-18 | 亚马逊科技公司 | 用于操纵移动驱动单元的系统和方法 |
CN106647734A (zh) * | 2016-10-12 | 2017-05-10 | 北京京东尚科信息技术有限公司 | 自动导引车、路径规划方法与装置 |
CN107899957A (zh) * | 2017-09-30 | 2018-04-13 | 北京极智嘉科技有限公司 | 自动物流分拣系统和自动物流分拣方法 |
CN108945920A (zh) * | 2018-06-06 | 2018-12-07 | 北京极智嘉科技有限公司 | 货架的排队和旋转方法、装置及系统 |
CN108960506A (zh) * | 2018-07-02 | 2018-12-07 | 北京极智嘉科技有限公司 | 一种机器人调度方法、装置、服务器和存储介质 |
CN108958241A (zh) * | 2018-06-21 | 2018-12-07 | 北京极智嘉科技有限公司 | 机器人路径的控制方法、装置、服务器和存储介质 |
CN109991977A (zh) * | 2019-03-04 | 2019-07-09 | 斯坦德机器人(深圳)有限公司 | 机器人的路径规划方法及装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8649899B2 (en) * | 2006-06-19 | 2014-02-11 | Amazon Technologies, Inc. | System and method for maneuvering a mobile drive unit |
US10642282B2 (en) * | 2017-04-12 | 2020-05-05 | X Development Llc | Roadmap annotation for deadlock-free multi-agent navigation |
-
2019
- 2019-09-12 CN CN202310409028.XA patent/CN116795097A/zh active Pending
- 2019-09-12 CN CN201910865968.3A patent/CN110531773A/zh active Pending
-
2020
- 2020-04-14 US US16/848,574 patent/US11052539B2/en active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080051985A1 (en) * | 2006-06-19 | 2008-02-28 | D Andrea Raffaello | System and method for coordinating movement of mobile drive units |
CN104364121A (zh) * | 2012-05-14 | 2015-02-18 | 亚马逊科技公司 | 用于操纵移动驱动单元的系统和方法 |
CN106647734A (zh) * | 2016-10-12 | 2017-05-10 | 北京京东尚科信息技术有限公司 | 自动导引车、路径规划方法与装置 |
CN107899957A (zh) * | 2017-09-30 | 2018-04-13 | 北京极智嘉科技有限公司 | 自动物流分拣系统和自动物流分拣方法 |
CN108945920A (zh) * | 2018-06-06 | 2018-12-07 | 北京极智嘉科技有限公司 | 货架的排队和旋转方法、装置及系统 |
CN108958241A (zh) * | 2018-06-21 | 2018-12-07 | 北京极智嘉科技有限公司 | 机器人路径的控制方法、装置、服务器和存储介质 |
CN108960506A (zh) * | 2018-07-02 | 2018-12-07 | 北京极智嘉科技有限公司 | 一种机器人调度方法、装置、服务器和存储介质 |
CN109991977A (zh) * | 2019-03-04 | 2019-07-09 | 斯坦德机器人(深圳)有限公司 | 机器人的路径规划方法及装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111314537A (zh) * | 2020-01-21 | 2020-06-19 | 上海悦易网络信息技术有限公司 | 手机回收装置中手机防撞方法及设备 |
CN111924659A (zh) * | 2020-07-08 | 2020-11-13 | 北自所(北京)科技发展有限公司 | 基于孪生模型的化纤长丝落卷方法、系统及自动落卷设备 |
CN113156950A (zh) * | 2021-04-20 | 2021-07-23 | 杭州壹悟科技有限公司 | 多机器人智能交通控制方法及装置 |
WO2024007731A1 (zh) * | 2022-05-26 | 2024-01-11 | 北京极智嘉科技股份有限公司 | 多机器人的运动调度方法及装置 |
CN114864456A (zh) * | 2022-07-08 | 2022-08-05 | 埃克斯工业(广东)有限公司 | 半导体清洗设备调度方法、系统、装置及存储介质 |
CN114864456B (zh) * | 2022-07-08 | 2022-09-13 | 埃克斯工业(广东)有限公司 | 半导体清洗设备调度方法、系统、装置及存储介质 |
CN114970374A (zh) * | 2022-07-28 | 2022-08-30 | 深圳华数机器人有限公司 | 一种基于增量式动力学的负载辨识方法、系统和介质 |
WO2024021758A1 (zh) * | 2022-07-29 | 2024-02-01 | 北京旷视机器人技术有限公司 | 机器人控制方法、电子设备及存储介质 |
WO2024045091A1 (zh) * | 2022-08-31 | 2024-03-07 | 西门子股份公司 | 执行机构的运动规划方法、装置、系统及存储介质 |
CN117047784A (zh) * | 2023-10-11 | 2023-11-14 | 大扬智能科技(北京)有限公司 | 确定机器人拣选货物位置的方法及装置、机器人系统 |
CN117047784B (zh) * | 2023-10-11 | 2024-01-26 | 大扬智能科技(北京)有限公司 | 确定机器人拣选货物位置的方法及装置、机器人系统 |
CN117325185A (zh) * | 2023-11-27 | 2024-01-02 | 成都越凡创新科技有限公司 | 移动机器人解死锁的方法及调度设备 |
CN117325185B (zh) * | 2023-11-27 | 2024-04-09 | 成都越凡创新科技有限公司 | 移动机器人解死锁的方法及调度设备 |
Also Published As
Publication number | Publication date |
---|---|
US11052539B2 (en) | 2021-07-06 |
CN116795097A (zh) | 2023-09-22 |
US20210078175A1 (en) | 2021-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110531773A (zh) | 机器人路径调度方法、装置、服务器及存储介质 | |
JP6671507B2 (ja) | ロボット現場戻りのための方法及び装置{method and device for returning robots from site} | |
CN111874764B (zh) | 一种机器人的调度方法、服务器和存储介质 | |
US10717599B2 (en) | Control system for storage and retrieval systems | |
Bae et al. | Comparison of operations of AGVs and ALVs in an automated container terminal | |
CN111149071B (zh) | 物品处理协调系统和重新定位运输容器的方法 | |
US9317034B2 (en) | System and method for inventory management using mobile drive units | |
KR102325886B1 (ko) | 반송 디바이스의 움직임을 제어하기 위한 방법, 시스템 및 장치 | |
Vis | Survey of research in the design and control of automated guided vehicle systems | |
US11092973B2 (en) | Coordinated operation of autonomous robots | |
CN114023094B (zh) | 一种码头车辆调度系统、方法、设备和介质 | |
CN110059926A (zh) | 拣选调度方法、装置、仓储系统及可读存储介质 | |
CN108958241A (zh) | 机器人路径的控制方法、装置、服务器和存储介质 | |
CN104346658B (zh) | 基于改进银行家算法的自动小车存取系统动态调度方法 | |
CN110119861A (zh) | 调度无人车的方法、装置及计算机可读存储介质 | |
WO2021140577A1 (ja) | ロボット制御システム | |
CN112537705A (zh) | 机器人乘梯调度方法、装置、终端设备及存储介质 | |
TWI829045B (zh) | 倉儲機器人、其控制方法、其控制裝置、調度伺服器及儲存媒體 | |
US10860978B1 (en) | Nondisruptive workspace representation deployment for inventory systems | |
Hu et al. | Performance analysis on transfer platforms in frame bridge based automated container terminals | |
TWI701622B (zh) | 用於機器人場地回流的方法和裝置 | |
EP3664013B1 (en) | Simulator, control device, and simulation program | |
WO2020003988A1 (ja) | 情報処理装置、移動装置、情報処理システム、および方法、並びにプログラム | |
WO2020003987A1 (ja) | 情報処理装置、移動装置、情報処理システム、および方法、並びにプログラム | |
EP4350661A1 (en) | Vehicle control method and apparatus, and system |
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 | ||
CB02 | Change of applicant information |
Address after: 100085 Room 101, 1st floor, building 1, No.36 courtyard, Chuangyuan Road, Chaoyang District, Beijing Applicant after: Beijing jizhijia Technology Co.,Ltd. Address before: 100085 No. 1 Building, 36 Chuangyuan Road, Chaoyang District, Beijing 101 Applicant before: Beijing Geekplus Technology Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20191203 |
|
RJ01 | Rejection of invention patent application after publication |