CN110730931A - 无死锁多智能体导航的路线图注释 - Google Patents
无死锁多智能体导航的路线图注释 Download PDFInfo
- Publication number
- CN110730931A CN110730931A CN201880033105.3A CN201880033105A CN110730931A CN 110730931 A CN110730931 A CN 110730931A CN 201880033105 A CN201880033105 A CN 201880033105A CN 110730931 A CN110730931 A CN 110730931A
- Authority
- CN
- China
- Prior art keywords
- robot
- lane
- route
- priority
- roadmap
- 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 claims abstract description 74
- 230000000903 blocking effect Effects 0.000 claims abstract description 45
- 239000003795 chemical substances by application Substances 0.000 description 439
- 238000013439 planning Methods 0.000 description 56
- 238000004891 communication Methods 0.000 description 35
- 238000007726 management method Methods 0.000 description 28
- 230000006870 function Effects 0.000 description 22
- 230000009471 action Effects 0.000 description 19
- 238000003491 array Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 10
- 230000033001 locomotion Effects 0.000 description 7
- BDEDPKFUFGCVCJ-UHFFFAOYSA-N 3,6-dihydroxy-8,8-dimethyl-1-oxo-3,4,7,9-tetrahydrocyclopenta[h]isochromene-5-carbaldehyde Chemical compound O=C1OC(O)CC(C(C=O)=C2O)=C1C1=C2CC(C)(C)C1 BDEDPKFUFGCVCJ-UHFFFAOYSA-N 0.000 description 6
- 101000915578 Homo sapiens Zinc finger HIT domain-containing protein 3 Proteins 0.000 description 6
- 102100028598 Zinc finger HIT domain-containing protein 3 Human genes 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 101100485276 Arabidopsis thaliana XPO1 gene Proteins 0.000 description 5
- 101100407739 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) PET18 gene Proteins 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 101100187124 Arabidopsis thaliana CPA gene Proteins 0.000 description 4
- 101150098960 NLP1 gene Proteins 0.000 description 4
- 230000002457 bidirectional effect Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 210000002414 leg Anatomy 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 210000003414 extremity Anatomy 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 241000566146 Asio Species 0.000 description 1
- 239000008186 active pharmaceutical agent Substances 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 210000000544 articulatio talocruralis Anatomy 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000013474 audit trail Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 239000002981 blocking agent Substances 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 239000012636 effector Substances 0.000 description 1
- 210000002310 elbow joint Anatomy 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 210000002683 foot Anatomy 0.000 description 1
- 210000000245 forearm Anatomy 0.000 description 1
- 210000004247 hand Anatomy 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 210000004394 hip joint Anatomy 0.000 description 1
- 210000000629 knee joint Anatomy 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000005022 packaging material Substances 0.000 description 1
- -1 parts or assemblies Substances 0.000 description 1
- 230000037361 pathway Effects 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 238000012913 prioritisation Methods 0.000 description 1
- 239000002994 raw material Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 231100000735 select agent Toxicity 0.000 description 1
- 210000000323 shoulder joint Anatomy 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000000779 smoke Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 210000003857 wrist joint Anatomy 0.000 description 1
Images
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/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- 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/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
- G05D1/0289—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling with means for avoiding collisions between vehicles
-
- 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
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
-
- 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
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/4189—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the transport system
- G05B19/41895—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by the transport system using automatic guided vehicles [AGV]
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- 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/31—From computer integrated manufacturing till monitoring
- G05B2219/31003—Supervise route, reserve route and allocate route to vehicle, avoid collision
-
- 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/32328—Dynamic scheduling, resource allocation, multi agent negotiation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/60—Electric or hybrid propulsion means for production processes
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/80—Management or planning
Landscapes
- Engineering & Computer Science (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Aviation & Aerospace Engineering (AREA)
- Quality & Reliability (AREA)
- Manufacturing & Machinery (AREA)
- General Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
- Manipulator (AREA)
- Traffic Control Systems (AREA)
Abstract
提供了与路由机器人有关的装置和方法。可以接收包括第一和第二机器人的环境的路线图。可以用连接冲突区域的单向车道对路线图进行注释,其中每个车道结束以避免阻挡冲突区域。可以确定分别由第一和第二机器人使用的第一路线和第二路线,其中第一路线和第二路线均包括连接到第一冲突区域的第一车道。可以分别向第一和第二机器人分配第一较高优先级和第二较低优先级。可以确定遵循第二路线的第二机器人将阻挡在第一车道上的第一机器人。基于第一优先级高于第二优先级,计算设备可以更改第二路线以防止第二机器人阻挡第一机器人。
Description
相关申请的交叉引用
本申请要求于2017年4月12日提交的题为“Roadmap Annotation for Deadlock-Free Multi-Agent Navigation”的第15/486,219号的美国专利申请的优先权,其内容出于所有目的通过引用全文合并于此。
背景技术
一个或多个机器人和/或其他行动者,诸如人类行动者,可以遍布诸如一个或多个室外区域和/或一个或多个建筑物的内部的一个或多个空间移动,以执行任务和/或以其他方式一起利用空间。建筑物的一个示例是仓库,仓库可以由各种不同类型的商业实体(包括制造商、批发商和运输企业)用来存储货物。示例存储的货物可包括原材料、部件或组件、包装材料和成品。在一些情况下,仓库可能配备有装卸码头,以允许将货物装到送货卡车或其他类型的载具上或从中卸下。仓库还可以使用成排的托盘架来允许存放托盘、包含成堆的箱子或其他对象的扁平运输结构。另外,仓库可以使用机器或载具来举升和移动货物或货物托盘,诸如起重机和叉车。仓库中可雇用人工操作人员来操作机器、载具和其他设备。在一些情况下,一个或多个机器或载具可以是由计算机控制系统指导的机器人。
移动机器人可以在许多不同的环境中使用以完成各种任务。例如,移动机器人可以在诸如仓库、医院和/或数据中心的室内环境内递送诸如部件或成品的物品。当部署移动机器人时,它们可以使用一个或多个可能的路径来回传递和/或来往其他位置。可以使用一个或多个路线规划算法来确定这些路径。
发明内容
在一个方面,提供了一种方法。计算设备接收包括第一机器人和第二机器人的现有环境的路线图。计算设备用连接多个冲突区域的多个车道(lane)注释路线图,其中每个车道是单向的,并且在距冲突区域充分远处结束以避免阻挡冲突区域。计算设备确定用于由第一机器人使用的沿着路线图通过环境的第一路线、以及用于由第二机器人使用的沿着路线图通过环境的第二路线,其中第一路线和第二路线均包括第一车道,并且其中第一车道连接到第一冲突区域。向第一机器人分配第一优先级,并且向第二机器人分配第二优先级,其中,第一优先级高于第二优先级。确定遵循第二路线的第二机器人将导致第二机器人在第一机器人到达第一冲突区域之前阻挡在第一车道上的第一机器人。基于第一优先级高于第二优先级,更改第二路线以防止第二机器人阻挡在第一车道上的第一机器人。
在另一方面,提供了一种计算设备。所述计算设备包括:一个或多个处理器;以及数据存储,至少包括存储在其上的计算机可执行指令。所述计算机可执行指令在由一个或多个处理器执行时使计算设备:接收包括第一机器人和第二机器人的现有环境的路线图;用连接多个冲突区域的多个车道注释路线图,其中每个车道是单向的,并且在距冲突区域充分远处结束以避免阻挡冲突区域;确定用于由第一机器人使用的沿着路线图通过环境的第一路线、以及用于由第二机器人使用的沿着路线图通过环境的第二路线,其中第一路线和第二路线均包括第一车道,并且其中第一车道连接到第一冲突区域;向第一机器人分配第一优先级,并且向第二机器人分配第二优先级,其中,第一优先级高于第二优先级;确定遵循第二路线的第二机器人将导致第二机器人在第一机器人到达第一冲突区域之前阻挡在第一车道上的第一机器人;以及基于第一优先级高于第二优先级,更改第二路线以防止第二机器人阻挡在第一车道上的第一机器人。
在另一方面,提供了一种系统。该系统包括计算设备和多个机器人,所述多个机器人包括第一机器人和第二机器人。所述计算设备包括:一个或多个处理器;以及数据存储,至少包括存储在其上的计算机可执行指令。所述计算机可执行指令在由一个或多个处理器执行时使计算设备:接收包括第一机器人和第二机器人的现有环境的路线图;用连接多个冲突区域的多个车道注释路线图,其中每个车道是单向的,并且在距冲突区域充分远处结束以避免阻挡冲突区域;确定用于由第一机器人使用的沿着路线图通过环境的第一路线、以及用于由第二机器人使用的沿着路线图通过环境的第二路线,其中第一路线和第二路线均包括第一车道,并且其中第一车道连接到第一冲突区域;向第一机器人分配第一优先级,并且向第二机器人分配第二优先级,其中,第一优先级高于第二优先级;确定遵循第二路线的第二机器人将导致第二机器人在第一机器人到达第一冲突区域之前阻挡在第一车道上的第一机器人;以及基于第一优先级高于第二优先级,更改第二路线以防止第二机器人阻挡在第一车道上的第一机器人。
前述发明内容仅是说明性的,而无意于以任何方式进行限制。除了上述说明性方面、实施例和特征之外,通过参考图和以下详细描述以及附图,其他方面、实施例和特征将变得显而易见。
附图说明
图1示出了按照示例实施例的涉及在双向边缘的交叉路口处的四个机器人的场景。
图2示出了按照示例实施例的涉及在单向车道的交叉路口处的四个机器人的场景。
图3示出了按照示例实施例的涉及在车道的循环处的两个机器人的场景。
图4A-4E示出了按照示例实施例的涉及在交叉路口处转弯的机器人的场景。
图5A-5F示出了按照示例实施例的涉及在具有多个车道的环境中导航的机器人的场景。
图6A-6F示出了按照示例实施例的涉及通过交叉路口的两个机器人的场景。
图7A-7D示出了按照示例实施例的计算设备的用户界面用于用车道注释路线图的场景。
图8是按照示例实施例的用于阻挡和解除阻挡位置的方法的流程图。
图9描绘了按照示例实施例的用于智能体的优先级循环。
图10是按照示例实施例的系统的框图。
图11描绘了按照示例实施例的用于操作一个或多个仓库的系统。
图12示出了按照示例实施例的系统。
图13示出了按照示例实施例的用于一个或多个机器人设备的机器人设备架构。
图14A是按照示例实施例的示例计算设备的功能框图。
图14B描绘了按照示例实施例的被布置为基于云的服务器系统的计算集群的网络。
图15是按照示例实施例的方法的流程图。
具体实施方式
概述
当执行多智能体(agent)规划时,诸如在环境中规划机器人的路线时,机器人可以到达它们处于死锁状态或机器人无法前进的状态的位置。图1示出了场景100,涉及在交叉路口(intersection)150处的四个机器人110、120、130、140的死锁。边缘(edge)112、122、132和142在交叉路口150处汇合。在场景100中,边缘112、122、132和142的每一个是无向的,表示途径的整个宽度,并允许沿边缘的双向行进。
在示例中,机器人110、120、130和140中的每一个都在交叉路口150附近的相应双向边缘112、122、132或142上,并被指示进行相应的左转114、124、134和144。例如,机器人110在边缘112上,并被指示转弯114到边缘142上。但是,边缘142被机器人140占据,后者又被指示左转144到边缘132上。但是,边缘132被机器人130占据,它被指示左转到边缘122上。然而,边缘122被机器人120占据,它被指示左转到边缘112上。然而,边缘112被机器人110占据,它被指示左转到边缘142(已如上所述)。因此,机器人110、120、130和140无法前进,因此到达死锁状态160。
在相关场景中,机器人110、120、130、140的全部四个可以尝试同时进入交叉路口150。然后,如果机器人110、120、130、140中的一些或全部在交叉路口150中时试图转弯或试图直行穿过交叉路口150,则机器人110、120、130、140中的两个或更多个可能冲突。
本文描述了用于避免诸如死锁状态160的死锁的多智能体规划器。多智能体规划器可以首先接收包括N个智能体(N≥1)的现有环境的路线图(请注意,N=1的情况可以是平凡示例)。对于非平凡示例,环境可以具有至少两个机器人R1和R2。路线图可以具有通过单向“车道”L1、L2…Ln连接的交叉路口,使得第一车道L1是车道的循环的一部分;也就是说,一组在图形理论意义上连接的车道;也就是说,对于每对车道La和Lb,有一条从La到Lb的路径。在下面更详细地描述车道。多智能体规划器可以将优先级P1分配给机器人R1,并将优先级P2分配给机器人R2,其中优先级P1表示高于优先级P2的优先级;因此,在此示例中,机器人R1是比机器人R2优先级更高的机器人。由于优先级P1高于优先级P2,因此多智能体规划器可以预留通过环境的路线RT1,以专用于机器人R1。作为为专用于机器人R1的预留路线RT1进行预留的一部分,机器人R1可以拥有车道和RT1上的车道之间的冲突区域(诸如交叉路口)的专用。因此,机器人R1不会与RT1的冲突区域中的另一机器人冲突,因为该冲突区域的专用是为机器人R1预留的。
例如,让路线RT1包括车道L1,并且机器人R2阻挡车道L1上的较高优先级机器人R1,使得机器人R1无法沿着路线RT1继续行进。然后,多智能体规划器可以指示机器人R2沿着包括车道L1的车道的循环行进,这样,机器人R2将最终离开车道L1,然后机器人R1可以沿着路线RT1沿着车道L1前进。一旦机器人R1穿过了车道L1,多智能体规划器就可以释放对机器人R1的车道L1的预留,以根据需要允许机器人R2返回车道L1。
可以使用可由一个或多个计算设备执行的软件多智能体规划器来实现多智能体规划器。多智能体规划器软件可以包括多智能体规划算法,其避免在表示包括N个智能体(N≥1)的环境的路线图上运行时的死锁。这些智能体的示例包括但不限于载具和机器人(诸如移动机器人设备)。该路线图可以包括连接图(connected graph),其已用一个或多个车道注释,以确定N个智能体的路线。车道是路线图的预期行进路径,使得车道上的智能体不与任何其他车道上的智能体冲突。路线图中可能未分类为车道的部分的示例包括转弯边缘、包括智能体的路线的起始位置和/或目的地位置的边缘、以及十字交叉路口。在一些示例中,假定车道仅对于一个智能体足够宽;也就是说,不允许在车道中超车(passing)。特别是在这些示例中,可以通过使用全部朝相同方向的多个相邻的不同车道来实现超车。但是,如果只有一条从点A指向点B的车道L_ONLY,并且机器人R1在车道L_ONLY上位于机器人R2的后面,则R1可以超过R2的唯一途径是R1离开L_ONLY。这样做时,R1可能会穿过非车道空间,可能包括反其方向穿过车道L_ANOTHER,在这种情况下,R1不被视为在L_ANOTHER上。
在任何给定时间,智能体可以在车道上,或可以不在车道上,但是阻挡要到达车道的足够的区域。换句话说,智能体在车道上或在通往车道的途中。当智能体出于任何原因离开车道时,多智能体规划器可以计算并预留任务执行区域,以用于智能体执行远离该车道的任务,并允许智能体返回车道(相同车道或不同车道)上。例如,在“拾取并放置”操作或机器人得到(拾取)货物并将货物放置在目的地位置的操作的情况下,任务执行区域可以包括前拾取边缘、执行拾取操作所需的区域、后拾取边缘以及从后拾取边缘到车道边缘(包括车道边缘)的至少一条路径。在十字交叉路口的情况下,只要智能体离开车道,被阻挡的任务执行区域就可以包括形成交叉路口的所有边缘/车道。任务执行区域可以保持被阻挡,直到智能体到达另一侧的车道为止。在一些情况下,随着智能体前进通过任务执行区域,任务执行区域可能会缩小。请注意,至少在一些情况下,转弯边缘、前拾取边缘、后拾取边缘和十字交叉路口不是车道。
如果路线图标注了车道和非车道区域,则车道在距离交叉路口足够远处结束,车道图被连接,并且智能体预留包括到车道边缘的路径(如前几段所述),则以这种方式限制的多智能体规划问题可以在计算上可解决。此外,对于许多实际规划问题而言,对车道的限制可以是合理的。然后,对多智能体规划问题的解决方案可以涉及找到可以指定为从起始位置到目的地位置的一个或多个边缘和/或车道的集合的路线,该路线可以穿过一个或多个非车道区域。
多智能体规划器可以向智能体分配优先级。优先级可用于对智能体排序以解决死锁。例如,智能体优先级可用于指定跨越冲突区域的智能体的顺序。然后,较高优先级智能体可以在较低优先级智能体之前预留路径和跨越冲突区域,并且可以指示较低优先级智能体清除(clear)用于较高优先级智能体的路径和/或等待较高优先级智能体超过。在一些示例中,智能体优先级可以取单调增加的值;例如,智能体的优先级可以保持不变或增加,但不减小,直到它完成其任务和/或路线。单调增加的值的示例是智能体沿着其路线行进的时间量;例如,在路线上最长的智能体拥有通行权。机器人R的单调增加的值的另一示例是自机器人R在其路线上启动以来已在其路线上启动的多个机器人的路线启动值;例如,机器人R的路线启动值最初为零,并且随着其他机器人在它们的路线上启动,路线启动值随时间增加而不会减小;因此,路线启动值单调增加。其他单调增加的值和/或生成适合用作优先级的单调增加的值的函数也是可能的。
当智能体在目的地位置完成操作并再次开始移动时,多智能体规划器可以将当智能体在目的地位置时被阻挡的目的地位置周围的区域改变为解除阻挡,从而使更多且可能更短的路径可用于其他智能体。这样,对智能体将在目的地位置停留多久的估计可以限制目的地位置周围的区域保持阻挡多久。然后,多智能体规划器可以确定智能体将在目的地位置停留多久的一个或多个估计。在一个极端情况下,第一估计可以假定智能体将永远停留在目的地位置。在另一极端情况下,第二估计可以假定智能体将在目的地位置停留最小的时间量,例如,一个时间单位或更少。历史值可用于确定智能体在目的地的估计时间;例如,如果多个先前的智能体平均花费X个时间单位来完成操作O1,并且智能体A1正试图完成操作O1,则可以估计A1花费X个时间单位来完成操作O1。在又一示例中,多智能体规划器可以经由用户界面提供智能体将在目的地位置停留多久的估计;例如,经由图形用户界面(GUI),通过web浏览器等作为命令行的参数。下面在图8的上下文中描述了阻挡智能体的位置的示例方法。智能体位置的其他估计也是可以的。
当智能体完成其路线时,可以将其优先级重置为例如零或其他最低优先级值。在一些示例中,当智能体到达目的地位置时,可以认为该智能体已经完成了路线。在其他示例中,当智能体在目的地位置完成部分或全部操作(诸如拾取和放置操作)时,可以认为该智能体已完成路线。然后,在智能体完成其当前操作之后,多智能体规划器可以重置智能体的优先级。由于智能体预留了足够的区域以返回到车道,因此智能体已经有足够的空间操纵以允许其他智能体通过。在重置优先级时,刚完成操作的智能体R1变为低优先级智能体。然后,多智能体规划器可以指示R1避开道路和/或在一个或多个较高优先级智能体R2...Rn的道路外等待。在智能体R1的优先级重置之前,指示智能体R2…Rn清除智能体R1的路径。在智能体R1的优先级重置之后,可能通过更改智能体R1的路线以避免阻挡一个或多个智能体R2...Rn的路线,智能体R2…Rn中的至少一个可以到达其目的地位置。随着智能体R1沿着路线前进,R1的优先级增加,使得R1成为相对高优先级智能体,并且可以指示一个或多个较低优先级智能体R3...Rm避开道路和/或在R1的路线的道路外等待。一旦R1到达其目的地,可以重置R1的优先级。下面在图9的上下文中讨论其优先级沿着路线增加直到到达目的地的智能体的示例优先级循环。
冲突区域是车道之间的位置,诸如尚未用车道注释的路线图的部分或交叉路口。如果两个车道A和B被冲突区域分隔开,则通过冲突区域的非车道路径(或边缘)可以连接车道A和B,其中未分类为车道的任何路径都可以称为非车道路径。例如,双向路径是非车道路径,或者可能导致智能体与另一智能体冲突的路径是非车道路径。在一些示例中,路线图可以具有车道和冲突区域。在这些示例中的一些中,对于具有例如车道A和车道B的至少两个车道的路线图R,可能存在条件C;例如,让车道A和车道B通过非车道路径NLP1连接,该非车道路径NLP1穿过车道A和车道B之间的冲突区域CR1。然后,对于以下情况,路线图R中可以存在条件C:对于NLP1穿过的冲突区域CR1中的每个车道L1,有到达路径NLP1的开始或离开冲突区域的仅车道路径(lane-only path)。下面在图2的下部中的冲突区域250的上下文中讨论如CR1的冲突区域的示例。
对于满足条件C的路线图,可以获得避免多智能体路线规划中的死锁的可解决方案。通过将NP难的多智能体规划问题限制为使用基于车道的路线图的规划问题,可以在计算上解决所产生的受限问题。此外,对于许多实际规划问题,对车道的限制可能是合理的。然后,对多智能体规划问题的解决方案可以涉及找到可以被指定为从起始位置到目的地位置的一个或多个边缘和/或车道的集合的路线,该路线可以穿过一个或多个冲突区域。
多智能体规划器可以接收和使用现有环境的路线图R来进行多智能体规划,其中R可以是被数量N(N>0)个智能体使用的M(M>0)个车道的有向连接图,其中N可以足够小,使得在开始配置中,在每个车道上有足够的空间容纳至少多一个智能体,或者在一些相关情况下,选择N使得在路线图中的每个车道的循环上有足够的空间容纳至少多一个智能体。可以选择M和N,使得在路线图中至少有一个区域,大到足够智能体执行操作,诸如拾取和放置操作。
使用路线图R,多智能体规划器可以将智能体A1从其在车道上的当前位置CL路由(route)到同一车道或另一车道上的另一位置AL。由于路线图R是连接图,因此CL和AL之间存在车道的循环CY。如前一段所述,CY上至少有一个空白点。通过在CL和AL之间围绕CY移动智能体,多智能体规划器可以随智能体移动空白点(empty spot),直到智能体A1到达位置AL。下文将详细讨论围绕车道的循环移动智能体;例如,在图3所示的场景300的机器人330和图5A-5F所示的场景500的机器人530的上下文中。即使所有N个智能体恰好都位于CY上,智能体A1也可以在多项式时间内移至AL。在此环形移位结束时,每个循环仍至少有一个空白点。在位置AL处智能体A1完成之后,多智能体规划器可以重置智能体A的优先级,并可以例如基于另一智能体A2的相对高优先级而选择智能体A2,并且可以以与智能体A1类似的方式路由智能体A2。该环形移位算法表明,基于车道的图的限制和智能体优先级排序的组合足以将通用多智能体规划问题简化到多智能体规划器可以在多项式时间内解决而没有死锁的问题。
通常,路线图R1可以是具有车道和非车道边缘两者的连接图。每当智能体需要离开车道时,出于冲突确定的目的,智能体可以预留超边缘或作为整体对待的车道上结束的边缘序列。通过将非车道边缘视为车道之间的超边缘的一部分,可以将通用车道启用图R1视为仅车道图,因此路线图R1上的通用多智能体规划问题也可以在多项式时间内解决而没有死锁。
给定所有智能体的初始位置和所需的目的地,多智能体规划器如上所述将优先级分配给所有智能体。然后,多智能体规划器为所有N个智能体构造解决方案。该解决方案为每个智能体指定了具有对应结束时间的超边缘序列。该解决方案被构造使得所有智能体都可以在多项式约束的时间量内无死锁地到达它们的目的地。在一些情况下,可以指示较低优先级智能体绕行以允许较高优先级智能体通过。然后,指示较低优先级智能体继续至它们的目标位置。在一些情况下,指示较高优先级智能体等待较低优先级智能体离开较高优先级智能体的道路。
在一些示例中,多智能体规划器可以按优先级顺序为N个智能体中的每一个进行规划。对于每个智能体,多智能体规划器可以确定从其起始位置或当前位置到其目的地位置的路线,同时遵守所有先前(较高优先级)智能体的规划,但可以越过(go over)后续(较低优先级)智能体的位置。可以提交智能体路线的起点,从局部规划的边缘开始。一旦智能体的路线越过后续智能体的最后位置,该路线就可以变为实验性的。这样,由于优先级顺序A_HIGHEST_PRI被路由在所有其他智能体之前,因此多智能体规划器可以确保A_HIGHEST_PRI的第一智能体可被路由到其目的地。可以将A_HIGHEST_PRI的路线视为3D(2D平面+1D时间)中的有限路径,在其结束处重置智能体的优先级A_HIGHEST_PRI。
多智能体规划器在“先前”智能体的3D路径“下方”规划每个后续智能体的路线。智能体的路线可以完全适合先前智能体的路径,包括在目的地位置的等待和优先级重置。在一些情况下,用于智能体的路线可以包括用于逃避的路线,或用于避开较高优先级智能体的道路、随后等待先前路由的智能体的优先级重置、然后循环回以撤销逃避的超边缘。在极端情况下,智能体可以逃避约束的次数(即,较高优先级智能体的数量)。在执行完这些逃避后,所有较高优先级智能体将重置其相应的优先级,从而使该智能体具有相对高的优先级,以使其能够沿着其路线前进到其目的地位置。
作为相对高优先级的智能体,智能体可以在目的地位置停留一段时间以完成在目的地位置所需的任何操作,然后可以重置该智能体的优先级。例如,相对高优先级的智能体可以从规划中消失,并且新的最低优先级智能体可以出现在同一位置。在一些示例中,新的最低优先级智能体最初并未被分配任务,因此直到智能体已被分配任务才进行路线规划。因此,仅针对冲突检查规划新的最低优先级智能体;也就是说,确保新的最低优先级智能体不会阻挡较高优先级智能体的路线。在这种情况下,假定新的最低优先级智能体逃避较高优先级智能体。在一些示例中,可以假定所有智能体都以相同的速度操作,这意味着没有智能体可以超过彼此,——因此,逃避可能是绕过阻挡智能体的唯一方法。在其他示例中,可以放宽该相同速度的假定,这可以允许智能体超过。
在操作中,路线图可以使一个或多个车道被例如障碍物、需要维护的智能体等阻挡。车道堵塞可能导致路线图的划分;例如,如果路线图的两个部分P1和P2通过一个车道L1连接,并且车道L1被阻挡,则该路线图将被划分为部分(现分区)P1和P2。如果此类堵塞(或其他原因)导致路线图被划分,并将智能体A_BLOCK的起始位置与其目的地位置隔离开,那么即使不考虑其他智能体,多智能体规划器也可以确定没有路线用于智能体A_BLOCK。在这种情况下,多智能体规划器可以引发异常以指示路由智能体A_BLOCK中存在问题。作为对该异常的反应,可以给智能体A_BLOCK分配位于路线图的连接部分内的新任务(例如,如果在划分路线图时A_BLOCK位于部分P2中,则可以给A_BLOCK分配其路线在P2内的新任务)和/或路线图的一些区域(诸如,阻挡的车道L1附近的区域)可以声明为阻挡或受阻。除非另有说明,否则假定连接多智能体规划器使用的路线图。
如果指示智能体避开一个或多个较高优先级智能体的道路,则该智能体可能在一条路线上多次重访同一位置。为了将这种行为与浪费的循环路线区分开,如果在将来的某个时候将较高优先级智能体A_HIPRI分配给在车道L1(边缘E1)上行进,则允许智能体A_LOPRI重新访问车道L1(或边缘E1)。在一些情况下,可以允许智能体A_LOPRI访问车道L1(边缘E1)多达较高优先级智能体的数量加一次;例如,如果A_LOPRI是第10最高优先级智能体,则A_LOPRI可以访问车道L1(边缘E1)九次以用于逃避,加一次用于其自身目的,因此A_LOPRI可以总共访问车道L1(边缘E1)10次。
多智能体规划器可以提供用于智能体穿过路线图的超边缘的规划。在多智能体规划器按优先级顺序确定每个智能体的路线之后,如上所讨论的,生成N个按时间排序的超边缘序列的集合(每个智能体一个)。可以按其完成时间的顺序考虑超边缘。然后,可以从第一个完成的超边缘开始构建规划,使得每个添加的边缘不会与已经在其他智能体的规划中的任何边缘冲突。
通常,由于需要对交叉冲突的智能体周围的智能体进行排序,因此多智能体规划是NP难题,因此在多项式时间内不太可能获得避免死锁的最佳解决方案。但是,路由智能体的多智能体规划算法可以避免智能体之间的冲突和/或死锁。此外,如上所讨论,利用涉及车道的连接图和智能体的单调增加优先级(诸如基于智能体沿其路线已经行进的时间量的智能体优先级)的这种多智能体规划算法可以在计算上可解决。因此,本文描述的技术可以使用具有与车道相关的限制的路线图来实现对多智能体规划问题的计算上可解决的解决方案,该限制在许多示例中都是可行的,所述示例诸如在诸如仓库环境的环境中对机器人进行路由。
使用注释了车道的路线图用于无死锁的多智能体规划
图2示出了按照示例实施例的场景200,其涉及在单向车道(L)210、212、220、222、230、232、240、242的交叉路口246处的四个机器人214、224、234、244。图2的上部示出了在从北向南指向的车道210上的机器人214、在从东向西指向的车道220上的机器人224、在从南向北指向的车道232上的机器人234以及在从西到东指向的车道242上的机器人244。车道210与从南向北指向的车道212平行,车道220与从西向东指向的车道222平行,车道232与从北向南指向的车道230平行,并且车道242与从东向西指向的车道220平行。
如在图2的下部所示,场景200继续,机器人224继续进入交叉路口246,其现在包括冲突区域(CR)250。冲突区域可以是例如车道A和车道B的车道之间的区域,其中存在一条仅车道路径,至(i)车道A和车道B之间的路径的开始,或者(ii)离开冲突区域。对于这两个条件中的第一条件,图2的下部示出了从车道232到车道222的路径包括车道232,该车道232是冲突区域250中的车道232和222之间的路径的开始。对于这两个条件中的第二条件,图2的下部示出了从车道220延伸到车道240的仅车道路径经过并离开冲突区域250,以及从车道242延伸到车道222的仅车道路径经过并离开冲突区域250。注意,交叉路口246可以同时包括多个冲突区域;例如,交叉路口246可以包括冲突区域250以及在车道210和230之间的平行冲突区域。也就是说,交叉路口可以是一个或多个冲突区域的示例,但是冲突区域可以不同于交叉路口。作为冲突地区不同于交叉路口的另一示例,冲突区域可以包括路线图的未被车道注释的一部分并且包括多个交叉路口,诸如图7A-7D中所示的示例路线图720。冲突区域的其他示例也是可能的。
图3示出了按照示例实施例的场景300,该场景300涉及使用车道的循环的两个机器人330、332。图3的最上部示出了具有车道循环324的路线图310,该车道循环324包括经由交叉路口(I)312和314连接的车道320和322。路线图310可以是包括机器人330、332的现有环境的路线图。车道320和324中的每一个在其到达相应间隙326和328之前停止,其中间隙326和328允许停在相应车道320和322末端的机器人不干扰移动通过相应交叉路口312和314的机器人。
图3的从最上部起的第二个示出了路线图310的车道循环324,其被两个机器人330、332部分地占据,两个机器人330、332均由多智能体规划器指导以在车道320上从东向西行进。在场景300中,多智能体规划器基于机器人已经沿其路线行进的时间量,确定机器人的优先级。在场景300的该阶段,如通过“Pri=2”在图3中所指示的,机器人330具有当前优先级二,并且如通过“Pri=3”在图3中所指示的机器人332具有当前优先级三。因此,机器人332具有比机器人330高的优先级,这指示与机器人330相比,机器人332已经沿其路线行进更长。
由于场景300的环境中只有两个机器人,因此机器人332的优先级是该环境中所有机器人的最高优先级。然后,在确定机器人332的优先级是最高优先级之后,多智能体规划器可以预留包括车道320、交叉路口312和车道322的路线以用于机器人332使用,使得机器人332可以到达其在车道322上的目的地。
图3的从最上部起的第二个还示出了机器人330的目的地在车道320的西端附近,而机器人332的目的地在车道322的中心附近。即,较低优先级机器人330相对靠近其目的地,而较高优先级机器人332离其目的地相对较远。但是,如果较低优先级机器人330停在其目的地(或在机器人332到达其目的地之前在路线图310的车道循环324上的其他位置),它将阻挡车道320(或可能车道322),使得较高优先级机器人332不能到达其目的地。为了使较高优先级机器人332能够前进到其目的地,多智能体规划器指示较低优先级机器人330在停在其目的地之前行进通过车道循环324,使得机器人330不阻挡机器人332。
图3的从最上部起的第二个还示出了路线图310的车道循环324包括足以用于机器人330和332中的每一个的空间加上足以用于至少一个附加机器人(图3中未示出)的空间。此外,车道循环324包括足以维持机器人之间的最小跟随距离的空间——该最小跟随距离由机器人330周围的气泡334表示,其中气泡334是为机器人330预留的空间区域,以避免机器人330与其他智能体/机器人之间发生冲突。在其他场景下,可以为机器人332提供类似的空间气泡。
场景300继续,较低优先级机器人330路过其目的地,使得它不阻挡车道320,而较高优先级机器人332前进到车道322上的其目的地,如图3的从最低部分起的第二个所示。由于机器人330和332在路线上都花费了更多时间,因此多智能体规划器将两个机器人的优先级分别增加到了三和四。
图3的最下部图3示出了机器人332已经按照多智能体规划器的指示停止在其目的地,并且在到达其目的地之后多智能体规划器将机器人332的优先级重置为0。而且,多智能体规划器已经指示机器人330经由交叉路口314沿着车道循环324的车道322和320前进以接近其目的地。在沿着车道循环324的车道322和320并通过交叉路口314行进时,多智能体规划器已将机器人330的优先级增加到五。一旦机器人330到达其目的地,多智能体规划器可以指示机器人330在其目的地停止,并且场景300可以完成。
当沿路线发现障碍物,诸如货物、未经授权的智能体、未经授权的人和/或无法运行的机械时,可以重新路由机器人。在这种场景下,当多智能体规划器确定障碍物在阻挡机器人的路线上时,诸如在阻挡机器人330和/或332的车道320上的障碍物时,多智能体规划器可以生成警告消息,指示障碍物的存在;并为路线被障碍物阻挡的机器人确定新的路线。例如,如果在场景300期间机器人332在交叉路口314时,多智能体规划器确定障碍物阻挡了车道320,则机器人330的路线可能受到障碍物的影响,但是机器人332的路线不会受到影响(因为机器人332只需要清除交叉路口314并沿着车道332行进以到达其目的地)。如果机器人330的路线受到障碍物的影响,那么多智能体规划器可以重新路由机器人332,生成在车道320上已检测到障碍物的警告消息和/或其他指示,发送对人或其他智能体针对障碍物检查车道320的请求,和/或执行其他动作以尝试绕开和/或清除障碍物。
图4A-4E示出了按照示例实施例的涉及在交叉路口450处转弯的机器人的场景400。场景400具有两个阶段,两个阶段都涉及穿过交叉路口450。在图4A中所示的场景400的第一阶段中,多智能体规划器指导机器人414、424、436和446各自右转通过交叉路口450。在图4B、4C、4D和4E所示的场景400的第二阶段中,多智能体规划器指导机器人470、472、474和476各自左转通过交叉路口450。
图4A示出了具有八个车道的交叉路口450的路线图402——车道410从北进入交叉路口450,车道412向北离开交叉路口450,车道420从东进入交叉路口450,车道422向东离开交叉路口450,车道432从南进入交叉路口450,车道430向南离开交叉路口450,车道442从西进入交叉路口450,并且车道440向西离开交叉路口450。场景400的第一阶段的由图4A中的路线图402表示的环境包括八个机器人——车道410上的机器人414、车道412上的机器人416、车道420上的机器人424、车道422上的机器人426、车道430上的机器人434、车道432上的机器人436、车道440上的机器人444、以及车道442上的机器人446。
在这八个机器人中,在场景400的第一阶段期间,多智能体规划器指导四个机器人(机器人414、424、436和446)转弯通过交叉路口450。在场景400的第一阶段中,交叉路口450可以分为四个冲突区域:连接车道410和440的冲突区域452a、连接车道420和412的冲突区域452b、连接车道442和430的冲突区域452c、以及连接车道432和422的冲突区域452d。
场景400继续,多智能体规划器指导机器人414从车道410右转418至车道440。为执行此右转,多智能体规划器为机器人414预留冲突区域452a,并指导机器人414前进通过交叉路口450的包括冲突区域452a的部分以右转418到车道440上。由于交叉路口450不包括任何车道,因此,必须预留交叉路口450的至少一部分(例如,冲突区域452a),以阻止其他机器人进入交叉路口450的车道410和440之间的部分。
类似地,机器人424、436和446中的每个按照多智能体规划器的指导,从相应车道420、432、442到相应车道412、422、430执行相应右转428、438、448。为了执行这些右转,多智能体规划器为机器人424预留冲突区域452b,为机器人436预留冲突区域452d,并为机器人446预留冲突区域452c。如上所述,由于交叉路口450不包括任何车道,因此必须预留交叉路口450的至少一部分(例如,冲突区域452b、452c、452d),以阻止其他机器人进入交叉路口450的部分,以进行相应车道420和412、车道432和422以及车道442和430之间的转弯428、438和448。然后,机器人424、436、446前进通过交叉路口450的包括相应冲突区域452b、452d、452c的相应部分,以相应右转428、438、448到相应车道412、422、430上。由于452a、452b、452c、452d都不重叠,所以可以并行执行转弯418、428、438、448的一些或全部。
在其他场景下,冲突区域452a、452b、452c、452d的一些或全部的形状可以不同于图4A所示。例如,可以减小冲突区域452a-452d的一些或全部的大小,使得冲突区域452a-452d中的每个允许车道之间的右转,但不覆盖交叉路口450的中心。
在场景400的第二阶段中,机器人470、472、474和476由多智能体规划器指导,以左转通过交叉路口450,如图4B、4C、4D和4E所示。场景400的第二阶段的环境由图4B-4E中的路线图402表示,并且包括四个机器人:机器人470、机器人472、机器人474和机器人476。图4B示出了在场景400的这个阶段,四个机器人刚好在交叉路口450的外部:车道410中的机器人470、车道420中的机器人472、车道432中的机器人474以及车道442中的机器人476。在场景400的至少第二阶段期间,多智能体规划器基于机器人沿其路线已经行进的时间量确定该机器人的优先级。具体地,多智能体规划器已按如下所示为机器人470-476分配了优先级:机器人470具有优先级三,机器人472具有优先级四,机器人474具有优先级二,并且机器人476具有优先级一。这样,机器人472具有这四个机器人的最高优先级。
场景400继续,多智能体规划器指导机器人470、472和474停在冲突区域454之外,如图4B-4E中使用粗黑线所描绘,其中冲突区域454包括交叉路口450。多智能体规划器将机器人470、474和476停止在冲突区域454之外,因为它们相应的优先级中的每个均低于机器人472的优先级,使得机器人470、474和476至少等到机器人472穿过冲突区域454为止。由于机器人472具有在冲突区域454处的机器人的最高优先级,因此多智能体规划器将冲突区域454预留给机器人472专用,然后指示机器人472从车道420左转460通过冲突区域454到车道430。由于冲突区域454没有任何车道,因此必须预留冲突区域454,以在机器人472在车道420和430之间行进的同时阻挡机器人470、474和476进入。
如图4C所示,场景400继续,机器人472已经完成左转460并且在车道430中继续向南。多智能体规划器将机器人470、472、474和476的优先级更新为四、五、三和二的相应值。由于机器人470具有等待使用冲突区域454的三个机器人(机器人470、474和476)的最高优先级,因此多智能体规划器预留冲突区域454以用于机器人470专用,然后指示机器人470从车道410左转462通过冲突区域454到车道422。由于冲突区域454没有任何车道,因此必须预留冲突区域454,以在机器人470在车道410和422之间行进的同时阻挡机器人474和476进入。
转向图4D,场景400继续,机器人470已经完成左转462并且在车道422上继续向东。多智能体规划器将至少机器人470、474和476的优先级更新为五、四和三的相应值。由于机器人474具有等待使用冲突区域454的两个机器人(机器人474和476)的最高优先级,因此多智能体规划器预留冲突区域454以由机器人474专用,然后指示机器人474从车道432左转464通过冲突区域454到车道440。由于冲突区域454没有任何车道,因此必须预留冲突区域454,以在机器人474在车道432和440之间行进的同时阻挡机器人476进入。
如图4E所示,场景400继续,机器人474已经完成左转464并且在车道440上继续向西。多智能体规划器将至少机器人474和476的优先级更新为五和四的相应值。由于机器人476是等待使用冲突区域454的最高优先级机器人,因此多智能体规划器预留冲突区域454以用于机器人476专用,然后指示机器人476从车道442左转466通过冲突区域454到车道412。由于冲突区域454没有任何车道,因此必须预留冲突区域454,以在机器人476在车道442和412之间行进的同时阻挡任何其他机器人进入。在完成左转466时,多智能体规划器机器人476可以移除对机器人476的冲突区域454的预留,机器人476可以在车道412上继续向北,并且场景400可以完成。
场景400的第二阶段镜像了场景100,其中四个边缘的交叉路口处的四个机器人试图进行相应左转,但最终陷入死锁状态。相反,场景400的第二阶段中的所有四个机器人都进行了成功左转而没有死锁,如上所讨论。因此,场景400的第二阶段说明,基于单向边缘的路线图指导优先化的机器人的多级规划器可以避免至少一些先前无法避免的死锁。
在一些其他场景下,当智能体穿过被阻挡的区域时,该智能体后面的被阻挡的区域可以被至少部分地释放。例如,一旦机器人476在转弯466时向车道422和442的北侧行进,则在车道440和442之间的分界线(和/或车道420和422之间的分界线)以南的冲突区域454的部分可以被释放,而冲突区域454在该分界线以北的部分可以仍被阻挡/预留给机器人476。在释放冲突区域454在分界线以南的部分时,在机器人476完成左转466的同时,可以发生交叉路口450的一些右转和穿过,因此当一个或多个机器人在车道之间行进时,在维持安全性的同时允许附加的交通流量。
图5A-5F示出了按照示例实施例的场景500,该场景500涉及在具有多个车道的环境中导航的机器人。在场景500中,由路线图502表示的环境具有均由多智能体规划器路由到其相应目的地的机器人510、520和530,并且具有相应优先级三、一和二。因为机器人510具有这三个机器人的最高优先级,所以多智能体规划器在冲突区域540和542之间预留车道504,以用于机器人510专用,如图5A所示。即使机器人520具有比机器人510较低的优先级,它也可以在机器人510到达机器人520的位置之前利用车道504的一部分以到达其目的地。因此,多智能体规划器允许机器人520前进到其目的地,而不管其相对较低的优先级,如图5B和5C所示。具体地,多智能体规划器释放用于机器人510专用的冲突区域542的预留,预留冲突区域542以用于机器人520专用,指示机器人520通过冲突区域542到车道508上,并释放冲突区域542的预留。
如在图5B和图5C同样所见,多智能体规划器指导机器人530路过其在车道504上的目的地,因为当机器人510朝着车道506上的其目的地前进时,机器人530将然后阻挡为机器人510预留的车道504。具体地,多智能体规划器预留冲突区域542以用于机器人530专用,指示机器人530通过冲突区域542到车道506上,释放冲突区域542的预留,并预留冲突区域542以用于机器人510专用。因此,多智能体规划器可以释放用于诸如机器人510的较高优先级机器人的诸如冲突区域542的冲突区域的预留,以使诸如机器人520和530的较低优先级机器人能够离开诸如车道504的车道,以避免阻挡较高优先级机器人的车道。
在这种场景下,路线包括在起始和结束目的地之间的车道序列和车道上的等待时间。多智能体规划器通过改变机器人520在车道504上的等待时间(即,减少等待时间),通过允许机器人520在较高优先级机器人510之前前进通过冲突区域542,已更改机器人520的路线,以避免阻挡机器人510的车道504。此外,多智能体规划器通过向机器人530的路线添加车道循环和对应的等待时间,已更改机器人530的路线,以避免阻挡机器人510的车道504,使得机器人530可以穿过车道504和506,以允许较高优先级机器人510到达其在车道506上的目的地。图5D、5E和5F示出了机器人530在到达其在车道504上的目的地之前绕车道循环前进。一旦机器人530到达其目的地,场景500可以结束。
如图5A所示,场景500开始,机器人510向东前往冲突区域540,并且机器人520和530在车道504上从冲突区域540向东前往冲突区域542,其中机器人520比机器人530更靠近冲突区域542。机器人510的目的地是在从冲突区域542向南指向的车道506上,机器人520的目的地在冲突区域542以北的车道508上,并且机器人530的目的地在冲突区域542的正西的车道504上。
在场景500期间,多智能体规划器基于机器人沿其路线已经行进的时间量确定机器人的优先级。在场景500开始时,多智能体规划器已经基于每个相应机器人在其相应路线上行进时花费的时间量,向机器人510分配了优先级三,向机器人520分配了优先级一,向机器人530分配了优先级二。由于机器人510具有三个机器人的最高优先级,因此多智能体规划器预留包括冲突区域540、车道504、冲突区域542和车道506的路线,以用于机器人510使用。多智能体规划器还指示机器人530前进路过其在车道504上的目的地,并在到达其在车道504上的目的地之前进行(依次)通过冲突区域542、546、544和540的顺时针车道循环。多智能体规划器还认识到机器人520和530都必须前进通过冲突区域542,以允许机器人510前进通过冲突区域542(因为在车道504上超车是不可行的),因此暂时为机器人520预留冲突区域542。多智能体规划器进一步认识到车道508没有被任何机器人或其他智能体利用,因此指导机器人520前进通过冲突区域542到车道508上以到达其目的地。因此,即使机器人520具有机器人510、520和530的最低优先级,机器人520位于机器人510和530的前面的位置,使得机器人520可以在任一机器人510或机器人530可以到达冲突区域542之前前进通过冲突区域542(并到车道508上)。因此,低优先级机器人520可以在较高优先级机器人510和530到达其目的地之前“潜行通过”车道504和冲突区域542。
图5B示出了机器人520从车道504左转通过冲突区域542至车道508,机器人530在车道504上向东朝着冲突区域542前进,并且机器人510向前(向东)通过冲突区域540朝着车道504直行。
图5C示出了机器人520已经到达其在车道508上的目的地并且已经将其优先级重置为0。机器人520在场景500的剩余持续时间内停留在其目的地。图5C还示出了机器人530已经从车道504右转通过冲突区域542到车道506上,并且在车道506上向南朝向冲突区域546前进。为了允许机器人530在顺时针车道循环上前进,多智能体规划器已经预留了冲突区域546、544和540、以及相应的连接车道以用于由机器人530使用。在机器人520和530清除了冲突区域542之后,多智能体规划器还为机器人510预留冲突区域542。
转向图5D,场景500继续,机器人530前进到车道506的末端,右转通过冲突区域546,并向西前进朝向冲突区域544。一旦机器人530清除车道506和冲突区域546,多智能体规划器就清除在车道506和冲突区域546上为机器人530进行的任何相关的预留,并确保机器人530在向冲突区域544的西行车道上具有预留。
此外,机器人510前进以从车道504经由冲突区域542右转到车道506。一旦机器人510清除车道504,多智能体规划器就清除车道504上用于机器人510的预留,并确保机器人510具有冲突区域542的预留和车道506上朝向其目的地的预留。
图5E示出了机器人510已经到达其在车道506上的目的地并且已经将其优先级重置为0。机器人510在场景500的剩余持续时间内停留在其目的地。图5C还示出了机器人530已右转通过冲突区域544,并向北前往冲突区域540。在机器人530已经清除冲突区域544之后,多智能体规划器可以清除用于机器人530的冲突区域544的预留,可以确保机器人530在从冲突区域544到冲突区域540的北行车道上具有预留,并且可以为机器人530预留冲突区域540。在场景500的此阶段,机器人550进入路线图502表示的环境并向东朝向冲突区域540前进。由于机器人550具有优先级一,低于机器人530的当前优先级六,并且由于机器人530相对靠近冲突区域540(已预留用于其使用),因此多智能体规划器指示机器人550在到达冲突区域540之前停止。也就是说,由于机器人530和550相对于冲突区域540的相对位置,多智能体规划器不允许机器人550潜行通过冲突区域540。
图5F示出了机器人530已经右转通过冲突区域540到车道504上并且已经前进到其目的地。在机器人530开始其右转通过冲突区域540之前,多智能体规划器确保机器人530在车道504上具有预留,使机器人530能够前进到其目的地。然后,一旦机器人530完成其右转通过冲突区域540,多智能体规划器就清除用于机器人530的冲突区域540的预留,并为机器人550预留冲突区域540。然后,指导机器人550左转通过冲突区域540,并向南朝向冲突区域544前进,如图5F所示。一旦机器人530到达其目的地,场景500就可以完成。
图6A-6F示出了按照示例实施例的场景600,该场景600涉及两个机器人610、620经过表示为冲突区域630的交叉路口。在场景600期间,多智能体规划器基于机器人已经沿其路线行进的时间量确定机器人的优先级。图6A示出了在场景600开始时,在由路线图602表示的环境中,与分配给机器人620的优先级一相比,多智能体规划器向机器人610分配了较高优先级三。
路线图602包括向东指向冲突区域630的车道632、向西指向远离冲突区域630的车道642、向东指向远离冲突区域630的车道634、向西指向冲突区域630的车道644、向南指向冲突区域630的车道636、以及向北指向远离冲突区域630的车道646。
由于机器人610具有环境中任何智能体的最高优先级,因此多智能体规划器为机器人610预留车道632、冲突区域630和车道646,以允许机器人610到达其在车道646上的目的地。多智能体规划器还指示机器人620停止在车道644上的其位置处。在场景600中,机器人610和620两者具有在车道646上的公共目的地。
图6B示出场景600继续,其中机器人610前进至车道646上的公共目的地。此时,机器人620在车道644上保持等待,因为冲突区域630仍预留用于机器人610。场景600继续,在机器人610已经在公共目的地四个时间单位之后,多智能体规划器为机器人620预留冲突区域630。在场景600中,由于多智能体规划器估计机器人610将花费至少四个单位来完成在公共目的地的任务,因此多智能体规划器在机器人610已在公共目的地之后等待四个时间单位。由于机器人610和620两者具有在车道646上的公共目的地,因此多智能体规划器分配一些时间(例如四个时间单位)给机器人610以完成机器人610在公共目的地可能具有的(一个或多个)任务,因为机器人610将阻挡机器人620到达机器人620的目的地,直到机器人610离开公共目的地为止。在其他场景下,多智能体规划器可以在机器人(或其他智能体)到达其目的地之后的更多或更少时间单位后改变冲突区域的预留。图6C示出了在为机器人620预留冲突区域630之前,在机器人610已经在其目的地之后,多智能体规划器已经等待了四个时间单位之后,由路线图602表示的环境。
图6D示出了在多智能体规划器已经指示机器人620沿着车道644朝向关键区域630前进之后场景600继续,因为机器人610已经在车道646上的公共目的地处完成了其任务并且机器人610已经开始在车道646上向北移动。多智能体规划器还在公共目的地处完成机器人610的任务时,将机器人610的优先级重置为零(即最低可能的优先级)。
如图6E所示,场景600继续,机器人620到达车道646上的公共目的地。在到达公共目的地时,机器人620开始在公共目的地处执行一个或多个任务,诸如(一个或多个)拾取和放置操作。
如图6F所示,场景600继续,机器人620在车道646上的公共目的地处执行(一个或多个)任务。在公共目的地处完成机器人620的(一个或多个)任务时,多智能体规划器将机器人620的优先级重置为零。在多智能体规划器将机器人620的优先级重置为零之后,场景600可以结束。
如上所述,路线图可以包括车道。在一些情况下,路线图可以不包括任何车道。然后,可以对路线图进行“注释”或标记,以便包括车道。也就是说,可以对现有路线图进行注释,使得可以将路线图的一些或全部边缘标记为车道。为了将路线图的一部分注释为车道,被注释的部分/车道可以满足一个或多个面向车道的要求(lane-oriented requirement)。示例面向车道的要求包括但不限于:
·要求车道是图的单向边缘,并与其他车道充分分开,使得车道上的智能体与任何其他车道上的任何其他智能体不冲突;例如,如果潜在车道L_HIT1上的机器人R_HIT1可能与一个潜在车道L_HIT2上的机器人R_HIT2冲突;即,如果潜在车道L_HIT1和L_HIT2的几何形状使得L_HIT1和L_HIT2过于靠近在一起而不能避免可能的冲突,则机器人R_HIT1与机器人R_HIT2发生冲突,因此潜在车道L_HIT1和L_HIT2不符合该面向车道的要求,
·要求车道在距离冲突区域充分远处结束以避免阻挡冲突区域;也就是说,车道在距离交叉路口足够远处结束,以允许穿过交叉路口,
·要求路线图中的车道至少形成一个车道循环;相关的面向车道的要求是,路线图中的每个车道是车道的循环的一部分,并且
·要求路线图中所有车道的总长度可以足够大,以适合该路线图所表示的环境中的所有智能体,加上至少一个其他智能体的附加空间;相关的面向车道的要求是,路线图中所有车道的总长度可以足够大,以适合该路线图所表示的环境中的所有智能体,加上至少一个其他智能体的附加空间,以及加上用于“气泡”、或智能体之间的空间的更多附加空间以避免冲突。
其他面向车道的要求也是可能的。
在一些实施例中,在计算设备上执行的用户界面和/或其他软件可以使得能够用车道注释路线图。具体地,当注释路线图时,用户界面和/或其他软件可以实施上述面向车道的要求的一些或全部。
对于一些路线图和智能体的集合,车道注释可以是灵活的。在一个极端情况下,路线图中只有极少数的边缘可以标记为车道,以满足上述总长度要求。但是,只有很少的车道可能导致智能体预留相对大的冲突区域。在一些示例中,车道可以伴随有非车道,这些非车道与车道重叠并且可能沿与车道相反的方向行进。只要智能体将整个冲突区域预留到另一车道,非车道就可以允许智能体采用较短的非车道路线到达目的地智能体。例如,如果车道在路线图上形成逆时针环路,则如果智能体可以预留足够大以恢复车道的安全性的区域,则智能体可以使用非车道顺时针进行循环的一部分。即,智能体可以沿着车道进行递增前进,但是对于非车道/冲突区域穿行,可以将智能体路由以穿过整个非车道/冲突区域,或者可以将智能体路由以避免整个非车道/冲突区域。
可以用一个或多个等待车道来注释路线图,所述等待车道允许智能体在返回特定位置(诸如停车位、深的车道等)的环境的其余部分之前等待。例如,在仓库中,装卸码头可能是受欢迎的目的地位置。在装卸码头处有等待车道允许智能体在完成任务后被重新分配的过程中在等待车道上等待。没有等待的车道,智能体将不得不预留另一边缘,并可能预留边缘之间的冲突区域,这将可能导致阻挡至少一部分装卸码头与其他智能体。只要等待车道可以容纳至少一个智能体,等待车道就可以具有任何长度。在一些示例中,等待车道可以经由一个或多个非车道边缘连接到路线图的其余部分。
图7A-7D示出了按照示例实施例的场景700,其中在图中示出作为用于用车道注释路线图720的路线图编辑器710的计算设备的用户界面。在场景700期间,用户界面用于用车道逐步注释现有路线图,并提供有关注释的路线图的面向车道的要求的信息。
图7A示出了由作为路线图编辑器710的计算设备702提供的场景700的用户界面。路线图编辑器710包括菜单730、编辑区域732、在图7A中标记为734a的对话框、以及系统栏736。菜单730列出与路线图相关的多个选择,所述路线图诸如显示在编辑区域732中的路线图720,其中菜单730的选择在被选择时可以使路线图编辑器710执行与所选选择相关的一个或多个操作。
图7A示出菜单730包括获取地图选择712、保存地图选择714、注释边缘模式选择716和退出选择718。在除了图7A、7B、7C和7D所示以外的其他实施例中,菜单730可以提供更多、更少和/或不同的菜单选择。在其他实施例中,诸如下拉菜单、图标和/或对话框的其他图形元素可以与菜单730的一个或多个选择一起使用和/或替换菜单730的一个或多个选。
获取地图选择712可用于从数据存储中检索路线图,并将检索的路线图加载到路线图编辑器710中。保存地图选择714可用于将当前加载到路线图编辑器710中的路线图存储到数据存储。例如,路线图可以作为一个或多个文件存储在非易失性数据存储中,其中非易失性数据存储在下面在图14A的数据存储1404的上下文中讨论。
如果编辑区域732正被用于将边缘注释为车道,则可以启用注释边缘模式716,或者如果编辑区域732未被用于将边缘注释为车道,则可以禁用注释边缘模式716。在图7A中,用于注释边缘模式716的菜单项以粗体示出以指示启用注释边缘模式716;例如,可以将在编辑区域732中显示的路线图的边缘注释为车道。例如,可以经由路线图编辑器710来选择路线图的边缘E,并且如果启用了注释边缘模式716,则可以将边缘E的部分或全部注释为车道。退出选择718可以用于终止路线图编辑器710的执行;例如,退出路线图编辑器710的应用。在其他场景下,可以禁用注释边缘模式716——在这些场景下,可以使用常规(即非粗体)字体显示注释边缘模式716。在其他场景下,可以使用其他图形技术(诸如颜色、字体大小和/或除黑体字以外的其他字体质量)来区分启用的注释字体模式和禁用的注释字体模式。
编辑区域732可以用于创建、核查和更新路线图。例如,可以通过注释车道和/或创建、核查、更新和/或删除显示在编辑区域624中的路线图的边缘、车道和/或交叉路口来更新路线图。在创建、核查和/或更新路线图之后,可以例如通过选择保存地图选择714,将路线图保存到数据存储以用于以后使用。在场景700中,最近选择了保存地图选择714,因此路线图720最近已保存到数据存储。在其他场景下,可以使用其他图形技术(诸如颜色、字体大小和/或除黑体字以外的其他字体质量)来区分最近保存的路线图和非最近保存的路线图。
对话框734a可以提供关于正在编辑的路线图的信息,诸如但不限于关于注释的路线图的面向车道的要求的信息。例如,如图7A中显示的路线图720包括双向非车道边缘(NLE)738,并且已经用两个车道进行了注释——路线图720顶部的车道722和路线图720底部的车道724。响应于这些注释,路线图编辑器710可以确定路线图720是否满足如上所讨论的一个或多个面向车道的要求和/或关于面向车道的要求的其他信息,并且经由诸如对话框734a的对话框或经由例如弹出窗口、单独的信息窗格或屏幕等的其他用户界面技术来提供该信息。例如,当试图向路线图720添加车道时,路线图编辑器710可以检查新车道满足上述面向车道的要求;例如,新车道是否为单向的,并且在距离冲突区域足够远处结束,以避免阻挡冲突区域。在图7A所示的具体示例中,对话框734a指示“未检测到车道循环”;也就是说,车道722和724不形成循环;并且车道722和724“只能容纳大约4个智能体”。在场景700中,预期大约有12个智能体要在路线图720表示的环境中操作,因此,仅容纳四个智能体的车道可被认为违反了面向车道的要求,所述要求为路线图720的车道将有用于至少12个(预期的)智能体/机器人的足够的空间。
在一些示例中,路线图编辑器710可以确定路线图720上适合于新车道的一个或多个位置,然后尝试使用计算设备用(一个或多个)新车道来注释路线图上的(一个或多个)位置。例如,路线图编辑器710可以寻找看起来宽到足够至少一个机器人行进的走廊或其他区域的位置,然后尝试用一个或多个新车道注释该位置。用于寻找(潜在的)新车道的位置的其他技术也是可能的。
系统栏736示出了三角形、圆形和正方形,该三角形、圆形和正方形可用于通过选择三角形返回到在路线图编辑器710之前执行的先前应用,通过选择圆形返回到主屏幕,并通过选择正方形提供所有执行的应用的列表。可以使用计算设备702的用户输入设备来选择图形元素,诸如显示在编辑区域732中的菜单732、车道、边缘、交叉路口和对话框、以及系统栏736的三角形、圆形和正方形的选择。示例用户输入设备在下面在图14A中所示的用户接口模块1401的上下文中描述。
用车道722和724对路线图720的注释将路线图720划分为三个区域:包括车道722的注释的区域、包括车道724的另一注释的区域以及在车道722和车道724之间的未注释的区域(UR)726。如果多智能体规划器将使用如图7A所示的路线图720来指导机器人,则多智能体规划器可以将所有未注释的区域726视为一个(大)冲突区域。然后,为了将机器人R_UN路由通过未注释的区域726,多智能体规划器可以预留所有未注释的区域726,用于由机器人R_UN专用。
场景700继续,用附加的车道注释路线图720,然后保存路线图720。图7B示出了之前仅用车道722和724进行注释的路线图720已经用车道740、742和744进行了注释。
响应于这些注释,路线图编辑器710可以确定路线图720是否满足一个或多个如上所讨论的面向车道的要求和/或关于面向车道的要求的其他信息,并且经由诸如对话框734b的对话框或经由如在图7A的上下文中提到的其他用户界面技术来提供该信息。在图7B所示的具体示例中,对话框734b指示“未检测到车道循环”;也就是说,车道722、724、740、742和744不形成循环;并且车道722、724、740、742和744共同“只能容纳大约10个智能体”。在场景700中,预期大约有12个智能体要在路线图720表示的环境中操作,因此仅容纳四个智能体的车道可以被认为违反面向车道的要求,所述要求为路线图720的车道将有用于至少12个(预期)智能体/机器人的足够的空间。
用车道740、742和744对路线图720的注释可被认为将路线图720划分为六个区域:(1)车道722的注释的区域,(2)车道724的注释的区域,(3)车道744的注释的区域,(4)包括车道740、车道742和非车道边缘738的部分注释的区域,(5)车道722和车道724之间的未注释的区域746,以及(6)车道740和742的右侧的未注释的区域748。如果多智能体规划器要使用如图7B所示的路线图720来指导机器人,则多智能体规划器可以将所有未注释的区域746视为一个(大)冲突区域,并将所有未注释的区域748视为另一(大)冲突区域,其通过包括车道740和742的部分注释的区域与未注释的区域分开。在一些示例中,多智能体规划器可以通过使用车道740和742将机器人路由通过部分注释的区域来从未注释的区域746走到未注释的区域748,并以单向方式使用非车道边缘738以从未注释的区域748路由到未注释的区域746(即使非车道边缘738是双向边缘)。
场景700继续,用附加的车道注释路线图720,然后保存路线图720。图7C示出了路线图720,其之前用车道722、724、740、742和744进行注释,现在用附加车道750a、752a、754a、756a、758a和760a进行注释。车道750a、752a、754a、756a、758a和760a连同可以被视为冲突区域的中间非车道区域可以形成车道循环754。此外,车道750a、752a、754a、756a、758a和760a的添加将未注释的区域746(图7B所示)的大小减小到较小的未注释的区域760,其位于边缘754a、756a、740、742和724之间。此外,与对话框734a和734b相比,对话框734c不再包括未检测到车道循环的警告或路线图720的车道可容纳少于12个智能体的警告;相反,对话框734c声明路线图720的车道现在“可以容纳大约16个智能体”。在场景700中,注释的路线图的面向车道的要求是每个边缘是车道循环的一部分,因此对话框734c声明“警告”“并非所有车道都在车道循环中”;例如,至少车道740、742和744不是车道循环的一部分。
如果多智能体规划器将使用如图7C所示的路线图720来指导机器人,则多智能体规划器可以将所有未注释的区域760视为一个(大)冲突区域,并将所有未注释区域748视为通过包括车道740和742的部分注释的区域与未注释的区域分开的另一(大)冲突区域。多智能体规划器还可以围绕车道循环754路由机器人/智能体,包括阻挡和解除阻挡中间冲突区域/非车道边缘,以允许机器人/智能体在包括车道循环754的路线图720的上部没有死锁的前进。
场景700继续,用附加的车道注释路线图720,然后保存路线图720。图7D示出了路线图720已经用附加的车道注释,使得车道循环754可以被认为是一个双向车道循环或一对车道循环,其中车道的第一循环包括车道754a和756a、以及中间非车道区域(如上所述可以视为冲突区域),允许在顺时针方向行进,车道的第二循环包括车道754b和756b和中间非车道区域(如上所述可以视为冲突区域),允许在逆时针方向行进。对话框734d声明路线图720的车道现在“可以容纳大约24个智能体”,并重新发出“警告”“并非所有车道都在车道循环中”;例如,车道740、742和744仍然不是车道循环的一部分。
多智能体规划器可以使用如图7D所示的路线图720,以类似于如图7C所示的路线图720的方式指导机器人。然而,如图7D中所示的路线图720为车道上的智能体提供了附加的空间,并为路由包括车道循环754的路线图720的上部中的机器人提供了附加的灵活性。在已经保存了如图7D所示的路线图720之后,场景700可以完成。
车道、冲突区域、注释的区域、未注释的区域、部分注释的区域、边缘和路线图的其他模型也是可能的。在一些实施例中,机器人的模型(诸如运动学模型)可以用于确定机器人设备应该停止而不是在到达车道的末端之前停止的一个或多个位置。
当智能体在目的地位置处开始操作时,多智能体规划器可以估计智能体将在目的地位置停留多久,以确定目的地位置周围的区域保持阻挡多久。当目的地位置被阻挡时,多智能体规划器可以重新路由其他智能体,以避免阻挡的目的地位置,可能导致它们走更长的路线。然后,一旦目的地位置再次变得可用,诸如当智能体完成利用目的地位置的一个或多个操作时,多智能体规划器可以释放目的地位置周围的区域上的阻挡,使得目的地位置周围的区域可以变得解除阻挡。当目的地位置变得解除阻挡时,多智能体规划器可以重新路由其他智能体以使用被解除阻挡的目的地位置区域,这可能导致它们在目的地位置区域采取较短的路线。
图8是按照示例实施例的用于阻挡和解除阻挡位置的方法800的流程图。方法800可以由诸如至少在下面的图14A的上下文中所述的计算设备1400的计算设备执行。具体地,计算设备1400可以执行体现本文所述的多智能体规划器的软件来执行方法800。方法800是根据涉及机器人的操作来描述的,但是方法800的技术通常适用于智能体。
在框810,多智能体规划器可以确定机器人R正在接近具有包括机器人R的多个智能体的环境的位置L。
在框820,多智能体规划器可以预留位置L以用于由机器人R使用,并且可以指示机器人R使用位置L。例如,机器人R可以是相对高优先级智能体。通过为机器人R预留位置L,多智能体规划器可以确保在位置L时其他较低优先级的机器人不会阻挡或以其他方式干扰机器人R。
在框830,多智能体规划器可以确定当机器人R在位置L时是否有任何其他机器人正规划使用位置L。多智能体规划器可以基于机器人R将停留在位置L多久的估计来进行该确定,并且基于该估计,多智能体规划器可以确定位置L将被阻挡多久的估计。例如,如果估计机器人R在位置L处60秒,并且估计机器人R花费五秒以停在位置L、重新启动并从位置L离开,那么多智能体规划器可以估计该位置L将被阻挡(大约)65秒。估计位置可以被阻挡多久的其他技术也是可能的。
如果多智能体规划器确定在机器人R在位置L时,机器人R以外的一个或多个机器人正规划使用位置L,则多智能体规划器可以前进到框840。否则,多智能体规划器可以确定在机器人R在位置L时只有机器人R正在规划使用位置L,并且可以前进到框850。
在框840,多智能体规划器可以重新路由机器人R1、R2…Rn远离位置L,所述机器人R1、R2…Rn是在框830中讨论的在机器人R在位置L时除机器人R之外规划使用位置L的一个或多个机器人。
在框850,多智能体规划器可以指导机器人R使用位置L。在到达位置L时,机器人R可以在位置L执行操作OP。操作OP的示例包括但不限于,以下中的一个或多个:穿过位置L、在位置L处时等待对冲突区域和/或车道的预留,以及在位置L处的拾取和放置操作。在一些示例中,可以涉及更多、更少和/或不同的操作作为位置L处的操作OP。然后,多智能体规划器可以确定机器人R已在位置L完成操作OP;例如,机器人R可以通知多智能体规划器操作OP已经完成和/或多智能体规划器可以估计机器人R在位置L完成操作OP的时间量,并且估计的时间量可能已经到期。
在框860,多智能体规划器可以在确定机器人R在位置L处已经完成操作OP之后,指示机器人R离开位置L。在确定机器人R已经离开位置L时,多智能体规划器可以清除位置L上用于机器人R的使用的预留。
在框870,在清除位置L的预留之后,多智能体规划器可以确定是否可以通过重新路由通过位置L来改进任何机器人的任何路线。多智能体规划器可以基于确定使用位置L的路线R_WITH_L的估计时间T_WITH_L、并将该估计时间T_WITHOUT_L与不使用位置L的对应路线R_WITHOUT_L的估计时间进行比较,进行该确定。如果T_WITH_L小于T_WITHOUT_L,则多智能体规划器可以确定将机器人重新路由到使用路线R_WITH_L相对于对应路线R_WITHOUT_L将改进。确定机器人的路线是否可以改进的其他技术也是可能的;例如,基于时间以外的其他和/或附加的标准确定改进的技术。
如果多智能体规划器确定在机器人R在位置L的同时、机器人R以外的一个或多个机器人正规划使用位置L,则多智能体规划器可以前进到框880。否则,多智能体规划器可以确定不重新路由任何机器人以使用位置L,并且方法800可以完成。
在框880,由于在框870确定这些更新的路线被改进,因此多智能体规划器可以为对应机器人R3、R4、...、Rm更新一个或多个路线以使用位置L。多智能体规划器可以确定路由到使用位置L的机器人R3、R4…、Rm的最高优先级机器人R_HIPRI,并预留位置L以用于由机器人R_HIPRI使用。在框880的过程完成时,方法800可以完成。
图9描绘了按照示例实施例的用于智能体的优先级循环900。优先级循环900可以由在图9中指示为机器人R1的智能体、以及指示机器人R1在具有包括R1的多个智能体的环境中操作的多智能体规划器执行。根据涉及机器人的操作来描述优先级循环900,但是优先级循环900的技术通常可适用于智能体。在一些示例中,环境中的多智能体规划器和一些或所有智能体可以执行优先级循环,诸如优先级循环900。
当多智能体规划器指示R1以新路线开始时,优先级循环900可以开始。这时,R1被分配了最小优先级,例如,优先级值0,其中使用非负数指示优先级,并且其中较大优先级值指示较高优先级,诸如优先级值12表示高于10的较高优先级值,诸如上面在图3至6F的上下文中讨论的优先级。可以为机器人分配最小优先级,例如,当机器人R1被调度用于其第一路线时,作为初始优先级,或者可以为机器人分配优先级,作为在智能体完成其路线时发生的优先级重置的一部分。
当机器人R1沿着其路线前进时,机器人R1的优先级值可以单调增加,诸如R1的优先级值基于机器人在其路线上已经花费的时间量,如上至少在图3和4B-6F的上下文中讨论的。当在途中时,多智能体规划器可以指示机器人R1避开道路和/或在一个或多个较高优先级机器人R2...Rn的道路之外等待,以允许(一个或多个)较高优先级机器人沿着它们的路线前进,如至少在图3-6F的上下文中所讨论的。随着机器人R1沿着其路线前进,R1的优先级增加,使得R1成为相对高优先级机器人,并且可以指示一个或多个较低优先级机器人R3...Rm避开道路和/或在R1的路线的道路之外等待。一旦R1到达其目的地,就可以重置R1的优先级,并且优先级循环900的迭代可以完成。
图9示出了优先级循环900的迭代可以在框910开始,其中多智能体规划器可以向机器人R1分配新路线。可以为机器人R1分配新路线作为初始事项。例如,当机器人R1首次投入使用时,或在完成先前路线时。当R1开始其路线时,可以将其优先级P1设置为最小优先级值,例如,如图9所示,为0。当R1沿着其路线行进时,P1可以增加;当R1最初开始其路线时,P1可以增加到LowPri1的优先级值,其大于最小优先级值0。
在框920,多智能体规划器可以指示具有优先级P1=LowPri1的R1在较高优先级机器人R2的道路之外等待和/或从其移出,较高优先级机器人R2的优先级P2大于LowPri1。当机器人R1在机器人R2的道路之外等待和/或从其移出时,优先级P1增大到LowPri2的值,该值大于LowPri1。
在框930,机器人R1在其路线上继续。随着机器人R1在途中,优先级P1增大到优先级值MediumPri,该优先级值大于LowPri2。
在框940,多智能体规划器可以指示具有优先级P1=MediumPri的R1沿着其路线前进,而其优先级P3小于MediumPri的较低优先级机器人R3在机器人R1的道路之外等待和/或从其移出。随着R1沿着其路线前进,优先级P1增大到HiPri1的值,该值大于MediumPri。
在框950,机器人R1在其路线上继续。随着机器人R1在途中,优先级P1增大到优先级值HiPri2,该优先级值大于HiPri1。在一些示例中,机器人R1可以是环境中最高优先级机器人,然后,该环境中的所有其他机器人可以由多智能体规划器指示在机器人R1的道路之外等待和/或从其移出。
在框960,机器人R1通过到达路线的目的地位置来完成其路线。在一些示例中,机器人R1可以在途中和/或在目的地位置执行一个或多个操作的一部分或全部,诸如一个或多个拾取和放置操作。在具体示例中,当智能体到达路线的目的地位置时,可以认为智能体(诸如机器人R1)的路线完成。在其他示例中,当智能体在目的地位置处完成所有操作时,可以认为智能体的路线完成;也就是说,当智能体为新路线做好准备时,路线完成。在其他示例中,当智能体到达目的地位置并且准备离开目的地位置或已经在目的地位置至少一时间量时,可以认为该智能体的路线完成。该时间量可以是预定时间量(例如5秒、60秒、3分钟),其基于智能体完成目的地位置处所有操作需要多久的估计,和/或以其他方式确定;例如,要等到另一路线可用为止的时间量。在路线完成时,可以将机器人R1的优先级P1重置为最小优先级值。
在框970,多智能体规划器可以确定新路线对于机器人R1是否可用。如果新路线对于R1可用,则多智能体规划器和R1可以前进到框910,并开始优先级循环900的另一次迭代。如果没有新路线对于R1可用,则多智能体规划器可以指示R1执行与在路线上前进无关的一个或更多操作;例如,关闭、执行诊断/维护、去往等待区域并由此退出优先级循环900。在其他示例中,多智能体规划器和/或R1可以出于除如框970所指示的没有新路线可用外的其他原因退出优先级循环900;例如,R1被调度用于维护,环境中的障碍物的存在减少了由多智能体规划器指导的智能体的数量、物料不可用于拾取和放置操作等。
机器人设备的系统设计
图10是按照示例实施例的系统1000的框图。系统1000包括规划系统1010和机器人设备1020。规划系统1010可以包括非机载(offboard)规划器1012,其可以协调在环境中操作的一个或多个机器人设备的运动。非机载规划器1012可以包括路线图规划器1014。非机载规划器1012和/或路线图规划器1014可以生成一个或多个异步路径1016,以用于机器人设备(诸如机器人设备1020)在环境中操作时遵循。
表示环境的路线图、原型图或其他路线图,诸如下面在图12的上下文中讨论的原型图1200可以被接收、确定或以其他方式提供给规划系统1010、非机载规划器1012和/或路线图规划器1014。异步路径1016可以是基于路线图、原型图或其他路线图的一个或多个路径。例如,如果路线图、原型图或其他路线图具有连接多个交叉路口的多个边缘,则可以根据多个边缘和/或多个交叉路口来指定异步路径1016。
在一些示例中,非机载规划器1012和/或路线图规划器1014可以包括多智能体规划器的本文描述的功能中的一些或全部。在这些示例中,路线图、原型图或其他路线图可以具有多个边缘和/或连接多个交叉路口的多个车道;例如,非机载规划器1012和/或路线图规划器1014可以用作利用路线图310、402、502、602和720中的一个或多个的多智能体规划器。特别是在这些示例中,异步路径1016中的一个或多个可以包括一个或多个车道、非车道边缘和/或超边缘,其中超边缘至少在上面图1的上下文中进行了讨论。在这些示例中,更具体地,异步路径1016中的一个或多个可以包括对一个智能体的按时间排序的超边缘序列,其中可以按照其完成时间的顺序来考虑按时间排序的超边缘序列中的超边缘。在其他示例中,一个或多个机器人设备1020可以执行机器人110、120、130、140、214、224、234、244、330、332、414、416、424、426、434、436、444、446、470、472、474、476、510、520、530、550、610、620中的一个或多个的本文所述功能;即,机器人110-620中的一个或多个可以体现为机器人设备1020。
(一个或多个)机器人设备1020可以包括机载软件1030和/或硬件1050。机载软件1030可以包括以下中的一个或多个:定位子系统1032、障碍物检测子系统1034、测距子系统1036、路径跟随子系统1038和轨迹跟随子系统1042。定位子系统1032可用于定位机器人设备,即,确定机器人设备在环境内的位置。定位子系统1032可以生成机器人设备和/或可用于定位机器人设备的其他对象的位置估计,协助机器人设备遵循诸如异步路径1016的路径和/或协助机器人设备遵循诸如轨迹1040的轨迹。一旦生成位置估计,定位子系统1032可以将位置估计提供给路径跟随子系统1038。
异步路径或简称为路径可以是时不变的规划或指示机器人设备1020可以如何从起点SP到达终点EP的其他信息;即,(异步)路径不考虑时间。相反,轨迹可包括机器人设备1020可在规划时间间隔遵循的转向角和牵引电动机速度的值。
规划时间间隔可以是机器人设备被引导或规划遵循路径、路线和/或行进所用的持续时间。在一些实施例中,规划时间间隔可以是预定的时间量;例如,5秒、1秒、0.2秒、0.1秒。具体地,可以基于为规划时间间隔指定值的用户输入来确定预定规划时间间隔。在其他实施例中,可以基于一个或多个其他值,例如,缝合时间、与均匀边缘(或路径)成本相关联的时间、沿着轨迹行进的估计时间来确定规划时间间隔。用于确定规划时间间隔和规划时间间隔的值的其他技术也是可能的。
然后,一个或多个轨迹可用于描述机器人设备1020可以如何以时变方式从起点SP到达终点EP。在一些实施例中,轨迹还可以提供关于在规划时间间隔上除转向角和牵引电动机速度以外的其他变量的值的信息,所述变量诸如但不限于机器人设备1020的其他运动学变量(例如,速度和加速度)、以及机器人设备1020的致动器位置。
作为示例,将汽车从位置“家”驱动到位置“单位”的路径可以包括自动驾驶车辆的诸如人或控制设备的控制实体可以用于将汽车从家驾驶到单位的街道的有序列表。在该示例中,从家到单位的轨迹可以涉及一个或多个指令,该指令指定控制实体可以用来驱动汽车从家到单位的速度和/或加速度。在一些示例中,轨迹可以考虑交通、障碍物、天气和其他时间敏感条件;例如,从家到单位的轨迹可以指示:控制实体“以20MPH或以下的速度向右转10秒”、“加速至55MPH并直行3分钟”、“在30秒内减速至20MPH”、“以20MPH或以下的速度向左转10秒”等。在一些实施例中,轨迹可以沿道路更改;例如,考虑障碍物、路径的改变等。
障碍物检测子系统1034可以确定一个或多个障碍物是否正在阻挡机器人设备1020的路径和/或轨迹。这些障碍物的示例可以包括但不限于托盘、可能掉落托盘的对象、机器人设备和在环境中工作的人工操作者。如果检测到障碍物,则障碍物检测子系统1034可以向路径跟随子系统1038提供指示障碍物检测的一个或多个通信。指示障碍物检测的一个或多个通信可以包括关于由障碍物检测子系统1034检测的一个或多个障碍物的一个或多个位置的位置信息和/或关于由障碍物检测子系统1034检测的一个或多个障碍物的标识信息。测距子系统1036可以使用数据(诸如来自伺服驱动器1052的数据)来估计机器人设备1020的位置随时间的一个或多个改变。
路径跟随子系统1038和/或轨迹跟随子系统1042可以充当机器人设备1020上的规划器。该机载规划器可以基于定位子系统1032提供的位置估计,遵循一个或多个路径,诸如异步路径1016。
路径跟随子系统1038可以接收异步路径1016、来自定位子系统1032的位置估计输入、来自障碍物检测子系统1034的关于一个或多个障碍物的一个或多个位置的位置信息、和/或来自测距子系统1036的关于一个或多个位置的改变的信息,并生成一个或多个轨迹1040作为输出。
硬件1050可以包括伺服驱动器1052和/或电动机1054。伺服驱动器1052可以包括一个或多个伺服驱动器。伺服驱动器1052可以包括用于向一个或多个伺服机构供电和/或可以监视来自(一个或多个)伺服机构的反馈信号的电子放大器。伺服驱动器1052可以从机载软件1030接收控制信号,诸如轨迹1044,并且可以向(一个或多个)伺服机构提供电流以产生与控制信号成比例的运动。在一些实施例中,伺服驱动器1052可以将从(一个或多个)伺服机构接收的状态信息与轨迹1044所命令的预期状态进行比较。然后,伺服驱动器1052可以调整所提供的电流的电压频率或脉冲宽度以校正接收的状态信息和预期状态之间偏差。在其他实施例中,伺服驱动器1052可以将诸如反馈信号和/或位置相关信息的信息提供给机载软件1030。
一个或多个电动机1054可以是由伺服驱动器1052供电的部分或全部(一个或多个)伺服机构。例如,电动机1054可以使用由伺服驱动器1052提供的电流来生成机械力来驱动部分或全部机器人设备1020;例如,电动机1054可以提供力来推动机器人设备1020和/或驱动机器人设备1020的一个或多个效应器。
可以关于路线图执行环境内的机器人设备的路径规划,所述环境诸如包括室内设置(诸如仓库、办公楼或家)和/或室外设置(诸如公园、停车场或庭院)的环境,所述路线图是诸如机器人设备(机器人)的智能体可以遵循的路径和/或车道的连接图。使用路线图来规划环境内的智能体路由而不是采用自由空间方法可以减少总的规划状态空间,从而使大规模多智能体协调变得容易处理。此外,路线图的使用可使操作者直观地控制允许机器人设备在其中导航的区域。这样的路径规划可以至少部分地由本文描述的多智能体规划器来执行。
路线图生成可以首先涉及原型图的生成,该原型图指示车道的粗略位置和行进方向。在一些示例中,原型图可以是指示机器人设备的车道和行进方向的有向图。在其他示例中,可以基于环境的地图或绘图手动生成原型图。在其他示例中,原型图可以是已经用一个以上的车道注释的路线图,诸如以上在图7A-7D的上下文中所讨论的。
图11描绘了按照示例实施例的用于操作一个或多个仓库的系统1100。系统1100包括仓库管理系统1110、规划系统1010和机器人设备1020。仓库管理系统1110可以接收与仓库相关联的一个或多个物流请求1112;例如,在仓库中存储一个或多个物品的请求和/或从仓库中运输一个或多个物品的请求。仓库管理系统1110可以将物流请求1112转换为一个或多个动作1114,其中动作1114可以包括但不限于将一个或多个指定智能体移动到一个或多个指定位置的“移至”动作、以及将一个或多个物品运送到一个或多个指定位置的“运输”动作。在一些示例中,动作1114可以是{智能体ID,目的地}形式的去往命令,但是其他动作也是可能的,诸如“移动托盘”。但是,这些通常可以分解为“移至”命令(移至拾取位置、移至放置位置)。
规划系统1010包括非机载规划器1012和执行器1120。非机载规划器1012可以接收动作1114作为输入,并为在仓库中操作的一个或多个智能体(例如,多个机器人设备)生成一个或多个协调路径1116,以执行动作1114。协调路径1116可以是仓库中所有智能体满足物流请求1112的协调动作规划的一部分。协调动作规划可以考虑智能体的优先性;例如,如果预期机器人设备RD1和RD2两者大致同时到达某个点,则其中一个机器人设备可以比另一机器人设备具有优先性或优先级,诸如机器人设备RD1等待机器人设备RD2通过该点(或相反亦然)。执行器1120可以接收协调路径1116并生成无冲突的子路径1122,以指导机器人设备1020完成执行行动1114以满足物流请求1112的协调动作规划的其一部分。
在一些示例中,非机载规划器1012可以充当多智能体规划器,并且为在仓库中操作的一个或多个智能体生成协调动作规划。在这些示例中,非机载规划器1012可以确定协调动作规划,其至少包括用于一个或多个智能体中的每个的路线,并且可以为每个智能体分配单调增加的优先级值,例如,智能体已在其路线上花费的时间量,如以上至少在图3、4B-6F和9的上下文中所讨论的。而且,非机载规划器1012可以基于包括一个或多个车道的路线图来确定协调动作规划,如以上至少在图3-7D的上下文中所讨论的。然后,通过使用包括一个或多个车道的路线图并通过确定具有单调增加的优先级值的智能体的路线,非机载规划器1012可以使用上面在图2-9的上下文中描述的技术,确定避免一个或多个智能体之中的死锁的协调动作规划。
如上在图11中所示,包括非机载规划器1012和执行器1120的规划系统1010可以与机器人设备1020通信。在一些实施例中,机器人设备可以是叉车,诸如例如任何职业安全与健康管理局(OSHA)1级或3级动力工业卡车。在其他实施例中,规划系统1010可以包括使用一个或多个联网计算设备执行的软件,所述一个或多个联网计算设备位于“云”中(例如,一个或多个联网计算设备)和/或位于与机器人设备1020共置的场所中某处。
图12示出了按照示例实施例的系统1200,其包括使用网络1218连接的物流接口1210、仓库管理系统1110以及一个或多个机器人设备1020。物流接口1210可以经由网络1218向仓库管理系统1110提供关于诸如托盘的对象和/或机器人设备至仓库管理系统1110的运动的库存任务指令。示例库存任务可以是将包含类型B的物品的托盘A带到位置C。
仓库管理系统1110可以从物流接口1210接收库存任务指令并生成一个或多个任务/使命指令(例如,对机器人设备A的将托盘B从位置C移动到位置D的指令)和/或用于控制(一个或多个)机器人设备1020执行库存任务指令的规划。任务/使命指令和/或规划可以包括关于一个或多个路径和/或一个或多个轨迹的信息,其中使用在图10和图11的上下文中讨论的技术,通过仓库管理系统1110的规划系统1010生成(一个或多个)任务/使命指令、(一个或多个)规划、(一个或多个)路径、轨迹/多个轨迹。
例如,仓库管理系统1110可以是在一个或多个计算设备(例如服务器计算设备)上运行并使用一个或多个计算设备存储数据的集中控制服务。为了执行这些任务,仓库管理系统1110可以包括WMS中间件,并且可以提供用户接口以提供对用于监视和管理系统1200的工具的访问。仓库管理系统1110的WMS中间件和/或其他组件可以使用一个或多个应用编程接口(API),诸如协议转换API,用于在任务/使命指令(例如,给机器人设备A的将托盘B从位置C移到位置D的指令)至机器人设备路径、姿势和/或轨迹之间的转换;在库存任务和任务/使命指令之间的转换;以及API之间的转换。
仓库管理系统1110提供的用户接口可以为系统1200提供一个或多个用户接口功能,包括但不限于:监视(一个或多个)机器人设备1020,例如,呈现与一个或多个机器人设备的位置、电池状态、充电状态等有关的数据;使得能够生成(一个或多个)库存任务指令、(一个或多个)任务/使命指令、(一个或多个)规划、(一个或多个)路径和/或轨迹/多个轨迹并将其发送到(一个或多个)机器人设备1020中的一个或多个;以及核查、更新、删除和/或插入与一个或多个仓库图、托盘、网络和/或规划系统(例如,规划系统1010、仓库管理系统1110和/或物流接口1210)有关的数据。
在一些实施例中,仓库管理系统1110可以在物流接口1210与(一个或多个)机器人设备1020之间以及(一个或多个)机器人设备1020中的两个或更多个之间路由通信,并且管理一个或多个机载系统,诸如(一个或多个)机器人设备1020中的一个或多个上的机载系统1220。在其他实施例中,仓库管理系统1110可以存储、生成、读取、写入、更新和/或删除与系统1200有关的数据,诸如但不限于:关于(一个或多个)机器人设备1020中的一个或多个完成任务/使命指令的数据;关于(一个或多个)机器人设备1020中的一些或全部的位置和/或姿势的数据,包括指示机器人设备被初始化/启动的位置的数据;与用于人为动作、事件分析和/或调试的一个或多个审核跟踪有关的数据;以及用于状态跟踪的数据。在其他实施例中,仓库管理系统1110可以包括中央消息路由器/持久性管理器,其与(一个或多个)机器人设备1020和一个或多个适配器进行通信。一个或多个适配器中的每一个可提供对仓库管理系统1110可用的系统1200的数据和/或通信的访问,并且可包括但不限于:用于上述用户接口的用户接口服务适配器、使万维网(WWW)/互联网能够访问关于系统1200的信息的web内容服务适配器、消息代理适配器和/或充当API和/或WMS之间的通信之间的中介的WMS适配器。
在其他实施例中,规划系统1010和/或仓库管理系统1110可以包括诸如以上在图7A-7D的上下文中所讨论的路线图编辑器710的路线图编辑器的功能中的一些或全部。
图12示出了一个或多个机器人设备1020中的每一个可包括以下各项中的一个或多个:机载系统1220、网络交换机1230、载具控制器1232、可编程逻辑控制器(PLC)1234、载具主设备1236、一个或多个设备传感器1238、和一个或多个驱动器1240。
机载系统1220可以是被配置为安装到机器人设备1020中并与机器人设备1020一起使用的,用于机器人规划的计算和传感器包,其中,机载系统1220可以包括机载传感器1222和一个或多个规划/执行处理器1224。图12还示出了被配置为使用网络交换机1230至少与规划系统1010(经由网络1218)、与设备传感器1238、和/或与机器人设备1020的一个或多个致动器通信的机载系统1220。
机载系统1220可以负责以下各项中的一个或多个:机器人设备1020的定位、局部轨迹的生成以执行规划和/或沿着仓库管理系统1110提供的路径和/或轨迹行进、生成驱动器1240遵循一个或多个(局部)轨迹的命令、生成控制机器人设备1020的(一个或多个)致动器的命令,并将姿态、状态和/或其他信息报告给仓库管理系统1110。
机载传感器1222可以包括一个或多个导航激光器、激光扫描仪、相机和/或用于导航和/或控制机载系统1220的其他传感器。例如,(一个或多个)机器人设备1020中的机器人设备可以包括一个或多个激光扫描仪,诸如由德国Waldkirch的SICK AG、日本大阪的HOKUYO AUTOMATIC有限公司和/或日本大阪的KEYENCE公司提供的一个或多个激光扫描仪。激光扫描仪可用于障碍物检测和/或沿着机器人设备的行进方向以及沿着机器人设备的侧面、拐角和/或背面进行规避。激光扫描仪还可用于使用基于反射器的定位来定位机器人设备。在一些实施例中,代替激光扫描仪或与激光扫描仪一起使用相机和/或其他传感器来用于障碍物检测、避障和/或定位。
(一个或多个)规划/执行处理器1224可以包括至少连接到机载传感器1222的一个或多个计算机处理器。(一个或多个)规划/执行处理器1224可以从机载传感器1222读取数据,生成局部轨迹和/或对(一个或多个)驱动器1240的命令以移动机器人设备1020,并与仓库管理系统1110通信。局部轨迹可以是机器人设备1020从起始姿势开始并在某个时间到达结束姿势的轨迹。在一些示例中,起始姿势可以隐式指定;例如,起始姿势可以是机器人设备1020的当前姿势,因此局部轨迹基于其起始姿势是机器人设备1020的当前姿势的假定。
(一个或多个)规划/执行处理器1224可以利用组件框架。组件框架可以是建立在用于输入/输出(I/O)和信令的软件库上的多线程作业调度和消息传递系统,被配置为提供机器人设备1020的一致异步模型,诸如“boost::asio”和“boost::signals2”软件库,由弗吉尼亚州Onancock的boost.org提供。组件框架可以启用软件组件(或模块)之间的通信,使得可以以线程安全的方式并行执行软件组件。
组件框架可以包括以下各项中的一个或多个:状态机组件、定位组件、规划组件和轨迹跟随组件。状态机组件可以管理机器人设备1020的状态以用于载具初始化、载具命令和故障处理。状态机组件可以使用确定性有限自动机或其他状态机来管理机器人设备的状态。
定位组件可以从载具传感器读取数据并且集成机器人设备1020的先前状态信息以确定机器人设备1020的姿势。载具传感器数据可以指示由载具传感器检测的一个或多个地标/兴趣点。替代地,来自载具传感器的数据可能需要进行处理,使得定位组件基于载具传感器数据检测一个或多个地标/兴趣点。可以相对于一个或多个检测的地标/兴趣点(诸如,托盘或其他对象)来确定姿势。规划组件可以从仓库管理系统1110接收一个或多个目标,并确定机器人设备1020实现这些目标的局部轨迹。在一些实施例中,局部轨迹可以是机器人设备1020要在预定的时间量(例如100毫秒、200毫秒、500毫秒、1秒、5秒)内遵循的短期轨迹。轨迹跟随组件可以接收由规划组件生成的局部轨迹,并生成驱动控制指令以沿着该局部轨迹行进。然后将驱动控制指令中继到驱动器1240,驱动器1240控制机器人设备1020的牵引电动机和其他致动器。
网络交换机1230可以启用用于(一个或多个)机器人设备1020的通信。这些通信可以包括但不限于机载系统1220与机器人设备1020的其余部分(例如,设备传感器1238和驱动器1240)之间的通信,以及经由网络1218与仓库管理系统1110的通信。例如,网络交换机1230可以通过以太网和/或至有线网络的其他(一个或多个)有线通信接口和/或通过Wi-FiTM和/或至无线网络的其他(一个或多个)无线通信接口(诸如台湾新北市的PLANET技术公司的PLANET以太网交换机),启用基于传输控制协议/互联网协议(TCP/IP)的通信。
在一些实施例中,(一个或多个)机器人设备1020与规划系统1010之间的通信可以包括远程过程调用(RPC)。远程过程调用可以允许通过规划系统1010的软件调用驻留在(一个或多个)机器人设备1020中的一个或多个上的软件过程、方法和/或功能,反之亦然。远程过程调用可以基于通信协议,诸如TCP/IP、诸如HTTP 1.0和/或HTTP 2.0的超文本传输协议(HTTP)、和/或其他通信协议。一些或所有远程过程调用可以包含加密数据;可以使用安全套接字层(SSL)、传输层安全性(TLS)和/或一个或多个其他加密算法和/或协议对此类数据进行加密。在使用加密的数据的实施例中,诸如私人证书颁发机构的一个或多个证书颁发机构可以认证用于加密和/或解密加密的数据的一个或多个证书。证书颁发机构可以使用访问控制列表(ACL)来控制对一个或多个证书的访问。远程过程调用可以使用请求/响应协议和/或双向流传输协议来进行与RPC相关的通信。在双向流传输协议被用于与RPC相关的通信的实施例中,单个长期存在的RPC可以被用来实现双向流传输协议。
载具控制器1232和/或可编程逻辑控制器1234可以为(一个或多个)机器人设备1020提供电气和传感器管理功能。电气和传感器管理功能可以包括但不限于电气负载控制、照明控制、传感器控制、传感器和/或开关信号处理以及电力管理的功能。载具主设备1236可提供用于控制(一个或多个)机器人设备1020的一个或多个致动器(诸如提升设备)的功能。
(一个或多个)设备传感器1238可以包括一个或多个传感器,这些传感器可以提供与控制和/或操作(一个或多个)机器人设备1020有关的数据。该数据可以提供关于(一个或多个)机器人设备1020的环境的信息,诸如但不限于定位信息、位置估计和地图数据。例如,(一个或多个)设备传感器1238可以包括一个或多个激光器(例如,二维(2D)激光器、安全激光器、激光扫描仪)、相机(例如、飞行时间(ToF)相机、红绿蓝(RGB)相机、热像仪)、电传感器、接近传感器、导航设备和位置传感器。
(一个或多个)驱动器1240可以包括一个或多个驱动控制器和/或致动器,其提供用于移动(一个或多个)机器人设备1020的功能。驱动控制器可以指导驱动致动器来控制(一个或多个)机器人设备1020的运动。驱动致动器可以包括一个或多个牵引电动机、电驱动器、液压驱动器和气动驱动器。
图13示出了按照示例实施例的(一个或多个)机器人设备1020的机器人设备架构1300。(一个或多个)机器人设备1020的机器人设备架构1300可以包括软件。该软件可以包括用于定位的软件1310、用于托盘姿势估计器1312的软件、与状态机1314相关的软件、用于规划器跟随器1316的软件、用于组件框架1320的软件以及用于操作系统1330的软件。该软件可以由一个或多个硬件规划/执行处理器1224执行。(一个或多个)机器人设备1020和其他设备之间的通信可以使用网络网关1340和/或网络交换机1230来执行。例如,网络网关1340可以用于与(一个或多个)机器人设备1020中的机器人设备以及在(一个或多个)机器人设备1020中的机器人设备内的无线通信,并且网络交换机1230可用于与(一个或多个)机器人设备1020中的机器人设备以及在(一个或多个)机器人设备1020中的机器人设备内的有线通信。机器人设备架构1300还包括上面在图12的上下文中讨论的诸如(一个或多个)设备传感器1238和(一个或多个)驱动器1240的附加硬件。在一些实施例中,机器人设备架构1300可以包括一个或多个相机,包括但不限于ToF相机1350和RGB相机1352,其中一个或多个相机可以包括一个或多个静止相机和/或一个或多个摄像机。
计算设备架构
图14A是按照示例实施例的示例计算设备1400的功能框图。具体地,图14A中所示的计算设备1400可以配置为执行本文所述的多智能体规划器、用于多智能体规划器的软件、机器人110、120、130、140、214、224、234、244、330、332、414、416、424、426、434、436、444、446、470、472、474、476、510、520、530、550、610、620、计算设备702、路线图编辑器710、系统1000、规划系统1010、非机载规划器1012、路线图规划器1014、机器人设备1020、系统1100、仓库管理系统1110、执行器1120、系统1200、物流接口1210、网络1218、1414、机载系统1220、网络交换机1230、载具控制器1232、可编程逻辑控制器1234、载具主设备1236、(一个或多个)设备传感器1238、(一个或多个)驱动器1240、机器人设备架构1300的至少一个功能和/或与路线图310、402、502、602、720、场景100、200、300、400、500、600、700、方法800、1500和优先级循环900相关的至少一个功能。计算设备1400可以包括用户接口模块1401、网络通信接口模块1402、一个或多个处理器1403、数据存储1404、一个或多个传感器1420和一个或多个致动器1430,所有这些都可以经由系统总线、网络或其他连接机制1405链接在一起。在一些实施例中,计算设备1400可以被配置为充当多智能体规划器的一部分或全部。
用户接口模块1401可操作用于向外部用户输入/输出设备发送数据和/或从其接收数据。例如,用户接口模块1401可以被配置为向诸如键盘、小键盘、触摸屏、计算机鼠标、跟踪球、操纵杆、相机、语音识别模块和/或其他类似设备的用户输入设备发送数据和/或从其接收数据。用户接口模块1401还可以配置为向用户显示设备提供输出,所述用户显示设备诸如一个或多个阴极射线管(CRT)、液晶显示器、发光二极管(LED)、使用数字光处理(DLP)技术的显示器、打印机、灯泡和/或其他类似的设备(现在已知或以后开发)。用户接口模块1401还可被配置为生成(一个或多个)可听输出,诸如扬声器、扬声器插孔、音频输出端口、音频输出设备、耳机和/或其他类似设备。
网络通信接口模块1402可以包括一个或多个无线接口1407和/或一个或多个有线接口1408,其可配置为经由网络进行通信。无线接口1407可以包括一个或多个无线发送器、接收器和/或收发器,诸如蓝牙收发器、Zigbee收发器、Wi-Fi收发器、WiMAX收发器和/或可配置为经由无线网络通信的其他类似类型的无线收发器。有线接口1408可包括一个或多个有线发送器、接收器和/或收发器,诸如以太网收发器、通用串行总线(USB)收发器或可配置为经由双绞线、同轴电缆、光纤链路或与有线网络的类似物理连接通信。
在一些实施例中,网络通信接口模块1402可以被配置为提供可靠、安全和/或认证的通信。对于本文所述的每个通信,可以提供用于确保可靠通信(即,保证的消息传递)的信息,可能作为消息标头和/或页脚的一部分(例如,分组/消息排序信息、(一个或多个)封装标头和/或(一个或多个)页脚、大小/时间信息和传输验证信息(诸如CRC和/或奇偶校验值))。可以使用一种或多种加密协议和/或算法(诸如但不限于DES、AES、RSA、Diffie-Hellman和/或DSA)使通信安全(例如,编码或加密)和/或解密/解码。也可以使用其他加密协议和/或算法,或者除了本文列出的加密协议和/或算法之外还可以使用其他加密协议和/或算法来使通信安全(然后解密/解码)。
处理器1403可以包括一个或多个通用处理器和/或一个或多个专用处理器(例如,数字信号处理器、图形处理单元、专用集成电路等)。处理器1403可以被配置为执行包含在数据存储1404中的计算机可读程序指令1406和/或如本文所述的其他指令。在一些实施例中,计算机可读程序指令1406可以包括用于多智能体规划器1406a的指令,其可以执行本文描述的多智能体规划器的一些或全部功能。
数据存储1404可以包括可以由处理器1403中的至少一个读取和/或访问的一个或多个计算机可读存储介质。一个或多个计算机可读存储介质可以包括易失性和/或非易失性存储组件,诸如光、磁、有机或其他存储器或磁盘存储,其可以与处理器1403中的至少一个全部或部分集成。在一些实施例中,数据存储1404可以使用单个物理设备(例如,一个光、磁、有机或其他存储器或磁盘存储单元)实现,而在其他实施例中,可以使用两个或更多个物理设备来实现数据存储1404。
数据存储1404可以包括计算机可读程序指令1406以及可能的附加数据。在一些实施例中,数据存储1404可以额外包括执行本文中描述的方法和技术的至少一部分和/或设备和网络的功能的至少一部分所需的存储。
在一些实施例中,计算设备1400可以包括一个或多个传感器1420。(一个或多个)传感器1420可以被配置为测量计算设备1400的环境中的条件并提供关于该环境的数据;所述环境例如由本文描述的路线图表示的环境。例如,(一个或多个)传感器1420可以包括以下中的一个或多个:(i)识别其他对象和/或设备的标识传感器,诸如但不限于RFID读取器、接近传感器、一维条形码读取器、二维条形码(例如,快速响应(QR)码)读取器和激光跟踪仪,其中,(一个或多个)标识传感器可以配置为读取标识符,诸如RFID标签、条形码、QR码和/或被配置为被读取并至少提供标识信息的其他设备和/或对象;(ii)用于测量计算设备1400的位置和/或运动的位置传感器,诸如但不限于陀螺仪、加速度计、多普勒传感器、全球定位系统(GPS)设备、声纳传感器、雷达设备、激光位移传感器和指南针;(iii)环境传感器,用于获得指示计算设备1400的环境的数据,诸如但不限于红外传感器、光学传感器、光传感器、相机、生物传感器、电容传感器、触摸传感器、温度传感器、无线传感器、无线电传感器、运动传感器、麦克风、声音传感器、超声传感器和/或烟雾传感器;(iv)力传感器,用于测量作用于计算设备1400的一个或多个力(例如,惯性力和/或G力),诸如但不限于测量一个或多个维度中的力、扭矩、地面力、摩擦的一个或多个传感器和/或识别零力矩点(ZMP)和/或ZMP的位置的ZMP传感器。(一个或多个)传感器1420的许多其他示例也是可能的。
计算设备1400可以包括使计算设备1400能够发起运动的一个或多个致动器1430。例如,(一个或多个)致动器1430可包括将机器人肢体四肢连接至机器人身体的机器人关节或与机器人关节结合。例如,(一个或多个)致动器1430可以包括将相应的机器人腿和手臂连接到机器人身体的相应的机器人髋关节和机器人肩关节。此外,(一个或多个)致动器1430可以包括连接机器人腿的相应部分(例如,机器人大腿和机器人小腿)的相应机器人膝关节、以及连接机器人手臂的部分(例如机器人前臂和上臂)的肘关节。另外,(一个或多个)致动器1430可包括将机器人腿连接到机器人脚的相应的机器人踝关节、以及将机器人手臂连接到机器人手的相应的机器人腕部关节。另外,(一个或多个)致动器1430可包括用于移动机器人四肢的电动机。这样,(一个或多个)致动器1430可以使得计算设备1400能够移动。(一个或多个)致动器1430的许多其他示例也是可能的。
基于云的服务器
图14B描绘了按照示例实施例的被布置为基于云的服务器系统的计算集群1409a、1409b、1409c的网络1414。计算集群1409a、1409b、1409c可以是基于云的设备,其存储基于云的应用和/或服务的程序逻辑和/或数据;例如,执行本文所述的多智能体规划器、用于多智能体规划器的软件、机器人110、120、130、140、214、224、234、244、330、332、414、416、424、426、434、436、444、446、470、472、474、476、510、520、530、550、610、620、计算设备702、路线图编辑器710、系统1000、规划系统1010、非机载规划器1012、路线图规划器1014、机器人设备1020、系统1100、仓库管理系统1110、执行器1120、系统1200、物流接口1210、网络1218、1414、机载系统1220、网络交换机1230、载具控制器1232、可编程逻辑控制器1234、载具主设备1236、(一个或多个)设备传感器1238、(一个或多个)驱动器1240、机器人设备架构1300的至少一个功能,和/或与路线图310、402、502、602、720,场景100、200、300、400、500、600、700,方法800、1500和优先级循环900相关的至少一个功能。
在一些实施例中,计算集群1409a、1409b、1409c可以是驻留在单个计算中心中的单个计算设备。在其他实施例中,计算集群1409a、1409b、1409c可以包括单个计算中心中的多个计算设备,或者甚至位于在不同地理位置的多个计算中心中的多个计算设备。例如,图14B描绘了驻留在不同物理位置的计算集群1409a、1409b、1409c中的每个。
在一些实施例中,计算集群1409a、1409b、1409c处的数据和服务可以被编码为存储在非暂时性有形计算机可读介质(或计算机可读存储介质)中并且可由其他计算设备访问的计算机可读信息。在一些实施例中,计算集群1409a、1409b、1409c可以存储在单个磁盘驱动器或其他有形存储介质上,或者可以在位于一个或多个不同地理位置的多个磁盘驱动器或其他有形存储介质上实现。
图14B描绘了按照示例实施例的基于云的服务器系统。在图14B中,可以在三个计算集群1409a、1409b和1409c之中分布安全系统的功能。计算集群1409a可以包括通过局部集群网络1412a连接的一个或多个计算设备1400a、集群存储阵列1410a以及集群路由器1411a。类似地,计算集群1409b可以包括通过局部集群网络1412b连接的一个或多个计算设备1400b、集群存储阵列1410b以及集群路由器1411b。同样地,计算集群1409c可以包括通过局部集群网络1412c连接的一个或多个计算设备1400c、集群存储阵列1410c以及集群路由器1411c。
在一些实施例中,计算集群1409a、1409b和1409c中的每个可以具有相等数量的计算设备、相等数量的集群存储阵列和相等数量的集群路由器。然而,在其他实施例中,每个计算集群可以具有不同数量的计算设备、不同数量的集群存储阵列以及不同数量的集群路由器。每个计算集群中的计算设备、集群存储阵列和集群路由器的数量可以取决于分配给每个计算集群的一个或多个计算任务。
例如,在计算集群1409a中,计算设备1400a可以被配置为执行多智能体规划器、机器人、路线图编辑器和/或计算设备的各种计算任务。在一个实施例中,多智能体规划器、机器人、路线图编辑器和/或计算设备的各种功能可以分布在一个或多个计算设备1400a、1400b和1400c之中。相应计算集群1409b和1409c中的计算设备1400b和1400c可以类似于计算集群1409a中的计算设备1400a来配置。另一方面,在一些实施例中,计算设备1400a、1400b和1400c可以被配置为执行不同的功能。
在一些实施例中,与多智能体规划器、机器人、路线图编辑器和/或计算设备相关联的计算任务和存储的数据可以至少部分地基于多智能体规划器、机器人、路线图编辑器和/或计算设备的处理要求、计算设备1400a、1400b和1400c的处理能力、每个计算集群中的计算设备之间以及在计算集群本身之间的网络链接的延迟、和/或可能对整个系统架构的成本、速度、容错性、弹性、效率和/或其他设计目标有所贡献的其他因素,跨计算设备1400a、1400b和1400c分布。
计算集群1409a、1409b和1409c的集群存储阵列1410a、1410b和1410c可以是数据存储阵列,其包括被配置为管理对硬盘驱动器组的读取和写入访问的盘阵列控制器。盘阵列控制器可以单独或与它们相应的计算设备结合,被配置为管理存储在集群存储阵列中的数据的备份或冗余副本,以防止盘驱动器或其他集群存储阵列故障和/或阻止一个或多个计算设备访问一个或多个集群存储阵列的网络故障。
类似于可以跨计算集群1409a、1409b和1409c的计算设备1400a、1400b和1400c分布多智能体规划器、机器人、路线图编辑器和/或计算设备的功能的方式,这些组件的各种活动部分和/或备用部分可以跨集群存储阵列1410a、1410b和1410c分布。例如、一些集群存储阵列可以配置为存储多智能体规划器、机器人、路线图编辑器和/或计算设备的数据的一部分,而其他集群存储阵列可以存储多智能体规划器、机器人、路线图编辑器和/或计算设备的数据的(一个或多个)其他部分。此外,可以将一些集群存储阵列配置为存储其他集群存储阵列中存储的数据的备份版本。
计算集群1409a、1409b和1409c中的集群路由器1411a、1411b和1411c可以包括被配置为为计算集群提供内部和外部通信的联网设备。例如,计算集群1409a中的集群路由器1411a可以包括一个或多个互联网交换和路由设备,其被配置为提供:(i)经由局部集群网络1412a在计算设备1400a和集群存储阵列1410a之间的局域网通信,以及(ii)经由到网络1414的广域网连接1413a在计算集群1409a与计算集群1409b和1409c之间的广域网通信。集群路由器1411b和1411c可以包括类似于集群路由器1411a的网络设备,并且集群路由器1411b和1411c可以对于计算集群1409b和1409c执行与集群路由器1411a对于计算集群1409a执行的类似的联网功能。
在一些实施例中,集群路由器1411a、1411b和1411c的配置可以至少部分地基于计算设备和集群存储阵列的数据通信要求、集群路由器1411a、1411b和1411c中的网络设备的数据通信能力、局部网络1412a、1412b、1412c的延迟和吞吐量、广域网链路1413a、1413b和1413c的延迟、吞吐量和成本、和/或有助于审核系统架构的成本、速度、容错性、弹性、效率和/或其他设计标准的其他因素。
示例操作方法
图15是按照示例实施例的方法1500的流程图。方法1500可以由诸如计算设备1400的计算设备执行。具体地,计算设备1400可以执行体现本文描述的多智能体规划器的软件以执行方法1500。
方法1500可以在框1510开始,其中计算设备可以接收包括第一机器人和第二机器人的现有环境的路线图,诸如以上至少在图3和7A-7D的上下文中所讨论的。
在框1520,计算设备可以用连接多个冲突区域的多个车道来注释路线图,其中每个车道是单向的并且在距冲突区域充分远处结束以避免阻挡冲突区域,诸如以上在至少图7A-7D的上下文中所讨论的。在一些实施例中,用多个车道注释路线图可以包括:尝试使用计算设备用新车道注释路线图;使用计算设备确定新车道是否是单向的并且在距冲突区域充分远处结束以避免阻挡冲突区域;以及在确定新车道是单向的并且在距冲突区域充分远处结束以避免阻挡冲突区域之后,用新车道注释路线图,诸如以上在至少图7A-7D的上下文中所讨论的。具体地,在这些实施例中,尝试用新车道注释路线图可以包括:使用计算设备确定新车道在路线图上的位置;以及尝试使用计算设备用新车道注释路线图上的位置,诸如以上在至少图7A-7D的上下文中所讨论的。在其他实施例中,用多个车道注释路线图可以包括:从一个或多个车道中选择第一对车道和第二对车道;确定第一对车道上的机器人是否与第二对车道上的机器人冲突;以及在确定第一对车道上的机器人确实与第二对车道上的机器人冲突之后,确定第一对车道和/或第二对车道不是车道,诸如以上在至少图7A-7D的上下文中所讨论的。
在框1530,可以确定用于由第一机器人使用的沿着路线图通过环境的第一路线和用于由第二机器人使用的沿着路线图通过环境的第二路线,其中第一路线和第二路线均包括第一车道,并且其中第一车道连接到第一冲突区域,诸如以上在至少图3-6F的上下文中所讨论的。在一些实施例中,第一路线可以包括引导第一机器人从起始位置到目的地位置的车道序列和对应的等待时间,诸如以上在至少图5A-5F的上下文中所讨论的。在其他实施例中,确定通过环境的第一路线可以包括:预留沿第一路线的第二冲突区域以用于由第一机器人专用,其中第二冲突区域位于两个或更多个车道之间,诸如以上在至少图4A-5F和图8的上下文中所讨论的。具体地,在这些实施例中,第二冲突区域可以包括两个车道之间的交叉路口,诸如以上在至少图4A-5F的上下文中所讨论的。此外,具体地,在这些实施例中,路线图的未注释的部分没有由一个或多个车道注释,并且其中第二冲突区域包括路线图的未注释的部分,诸如以上在至少图7A-7F的上下文中所讨论的。
在框1540,可以向第一机器人分配第一优先级,和向第二机器人分配第二优先级,其中第一优先级高于第二优先级,诸如以上在至少图3-6F、图8和图9的上下文中所讨论的。在一些实施例中,第一优先级和第二优先级都可以基于单调增加的函数,诸如以上在至少图3、图4B-6F、图9和图10的上下文中所讨论的。具体地,在这些实施例中,单调增加的函数可以确定以下各项中的一个或多个:机器人在其路线上行进时所花费的时间量以及指示自机器人在路线上启动以来已经在其路线上启动的机器人的数量的路线启动值,诸如以上在至少图3、图4B-6F、图9和图10的上下文中所讨论的。
在框1550,可以确定遵循第二路线的第二机器人将导致第二机器人在第一机器人到达第一冲突区域之前阻挡第一车道上的第一机器人,诸如以上在至少图3和5A-6F的上下文中所讨论的。
在框1560,可以基于第一优先级高于第二优先级来更改第二路线以防止第二机器人阻挡第一车道上的第一机器人,诸如以上在至少图3和图5A-6F的上下文中所讨论的。
在一些实施例中,第一冲突区域可以被预留以用于由第一机器人专用;然后,更改第二路线以防止第二机器人阻挡第一车道上的第一机器人可以包括:释放用于由第一机器人专用的第一冲突区域的第一预留;在释放第一冲突区域的第一预留后,获得第二冲突区域的第二预留以用于由第二机器人专用;在获得第二预留后,指示第二机器人离开第一边缘并进入第一冲突区域;并且在第二机器人已经穿过第一冲突区域之后:释放第二预留;以及获得第一冲突区域的第三预留以用于由第一机器人专用,诸如以上在至少图5A-5F的上下文中所讨论的。在具体实施例中,方法1500可以进一步包括:在第二机器人已经穿过第一冲突区域之后,指示第二机器人经由第二路线继续到目的地位置,诸如以上在至少图5A-5F的上下文中所讨论的。在其他实施例中,可以用车道的循环来注释路线图;然后,更改第二路线以避免阻挡在第一车道上的第一机器人可以包括:更改第二路线以行进通过车道的循环,诸如以上在至少图5A-5F的上下文中所讨论的。在其他实施例中,更改第二机器人的第二路线以避免阻挡第一车道可以包括:指示第二机器人在一个或多个车道中的特定车道上等待,诸如以上在至少图4A-4E的上下文中所讨论的。
在一些实施例中,方法1500可以进一步包括:在第一机器人完成第一路线之后重置第一优先级,诸如以上在至少图3和图5A-6F的上下文中所讨论的。
在其他实施例中,方法1500可以进一步包括:确定在第一路线上阻挡第一机器人的障碍物的存在;在确定第一路线上阻挡第一机器人的障碍物的存在之后:生成指示障碍物的存在的警告消息;以及确定第一机器人避开该障碍物的新路线,诸如以上在至少图3的上下文中所讨论的。
在其他实施例中,第三机器人的第三路线可以与已经为第一机器人预留的路线的重叠部分重叠;然后方法1500可以进一步包括:确定第三机器人的第三优先级是否小于第一优先级;在确定第三优先级小于第一优先级之后,确定在第一机器人到达重叠部分之前第三机器人是否处于穿过重叠部分的位置;以及在确定在第一机器人到达重叠部分之前第三机器人处于穿过重叠部分的位置之后,指示第三机器人在第一机器人到达重叠部分之前穿过重叠部分,诸如以上在至少图5A-5F的上下文中所讨论的。
本公开不受本申请中描述的具体实施例的限制,这些具体实施例旨在作为各个方面的说明。根据涉及机器人的操作描述了本文公开的一些技术,但是除非另有明确说明,否则本文公开的那些技术通常适用于智能体。如本领域技术人员将显而易见的,可以在不脱离其精神和范围的情况下进行许多修改和变型。除了本文所列举的方法和装置之外,根据前述描述,本公开范围内的功能等效的方法和装置对于本领域技术人员将是明显的。这样的修改和变型旨在落入所附权利要求的范围内。
上面的详细描述参照附图描述了所公开的系统、设备和方法的各种特征和功能。在附图中,除非上下文另外指出,否则相似的符号通常标识相似的组件。在详细描述、附图和权利要求中描述的说明性实施例并不意味着是限制性的。在不脱离本文提出的主题的精神或范围的情况下、可以利用其他实施例,并且可以进行其他改变。将容易理解的是,可以以各种不同的配置来布置、替换、组合、分离和设计如本文一般地描述的以及在附图中示出的本公开的各方面,所有这些都被明确地构想在这里。
关于附图中以及如本文所讨论的任何或所有梯形图、场景和流程图,按照示例实施例,每个框和/或通信可以表示信息处理和/或信息传输。替代实施例包括在这些示例实施例的范围内。在这些替代实施例中,例如,取决于所涉及的功能,被描述为框、传输、通信、请求、响应和/或消息的功能可以与所示出或所讨论的顺序不同的顺序执行,包括基本上并发或相反的顺序。此外,更多或更少的框和/或功能可以与本文讨论的任何梯形图、场景和流程图一起使用,并且这些梯形图、场景和流程图可以彼此部分或全部组合。
表示信息处理的框可以对应于可以被配置为执行本文描述的方法或技术的特定逻辑功能的电路。替代地或附加地,表示信息处理的框可以对应于程序代码(包括相关数据)的模块、段或一部分。该程序代码可以包括可由处理器执行的一个或多个指令,用于在该方法或技术中实现特定的逻辑功能或动作。程序代码和/或相关数据可以存储在任何类型的计算机可读介质,诸如包括盘或硬盘驱动器的存储设备或其他存储介质上。
计算机可读介质还可包括非暂时性计算机可读介质,诸如像寄存器存储器、处理器高速缓存和随机存取存储器(RAM)的短时间段内存储数据的非暂时性计算机可读介质。所述计算机可读介质还可以包括将程序代码和/或数据存储更长的时间段的非暂时性计算机可读介质,例如诸如二级或永久性长期存储,如只读存储器(ROM)、光盘或磁盘、紧凑型只读存储器(CD-ROM)。计算机可读介质也可以是任何其他易失性或非易失性存储系统。例如,计算机可读介质可以被认为是计算机可读存储介质或有形存储设备。
此外,表示一个或多个信息传输的框可以对应于同一物理设备中的软件和/或硬件模块之间的信息传输。然而,其他信息传输可以在不同物理设备中的软件模块和/或硬件模块之间。
尽管本文已经公开了各个方面和实施例,但是其他方面和实施例对于本领域技术人员将是显而易见的。本文公开的各个方面和实施例是出于说明性目的而提供的,并且不意图是限制性的,其真实范围由所附权利要求指示。
Claims (20)
1.一种方法,包括:
在计算设备处接收包括第一机器人和第二机器人的现有环境的路线图;
使用计算设备,用连接多个冲突区域的多个车道注释路线图,其中每个车道是单向的,并且在距冲突区域充分远处结束以避免阻挡冲突区域;
确定用于由第一机器人使用的沿着路线图通过环境的第一路线、以及用于由第二机器人使用的沿着路线图通过环境的第二路线,其中第一路线和第二路线均包括第一车道,并且其中第一车道连接到第一冲突区域;
向第一机器人分配第一优先级,并且向第二机器人分配第二优先级,其中,第一优先级高于第二优先级;
确定遵循第二路线的第二机器人将导致第二机器人在第一机器人到达第一冲突区域之前阻挡在第一车道上的第一机器人;以及
基于第一优先级高于第二优先级,更改第二路线以防止第二机器人阻挡在第一车道上的第一机器人。
2.根据权利要求1所述的方法,其中,用所述多个车道注释路线图包括:
使用计算设备尝试用新车道注释路线图;
使用计算设备确定新车道是否是单向的并且在距冲突区域充分远处结束以避免阻挡冲突区域;以及
在确定新车道是单向的并且在距冲突区域充分远处结束以避免阻挡冲突区域之后,使用新车道注释路线图。
3.根据权利要求2所述的方法,其中,尝试用新车道注释路线图包括:
使用计算设备确定路线上用于新车道的位置;以及
使用计算设备尝试用新车道注释路线图上的该位置。
4.根据权利要求1所述的方法,其中,用多个车道注释路线图包括:
从一个或多个车道中选择第一对车道和第二对车道;
确定第一对车道上的机器人是否与第二对车道上的机器人发生冲突;以及
在确定第一对车道上的机器人确实与第二对车道上的机器人发生冲突之后,确定第一对车道和/或第二对车道不是车道。
5.根据权利要求1所述的方法,其中,所述第一优先级和所述第二优先级均基于单调增加的函数。
6.根据权利要求5所述的方法,其中,所述单调增加的函数确定以下各项中的一个或多个:机器人在其路线上行进时所花费的时间量以及指示从机器人在路线上启动起已经在其路线上启动的机器人的数量的路线启动值。
7.根据权利要求1所述的方法,还包括:
在第一机器人完成第一路线之后重置第一优先级。
8.根据权利要求1所述的方法,其中,所述第一路线包括引导所述第一机器人从起始位置到目的地位置的车道序列和对应的等待时间。
9.根据权利要求1所述的方法,还包括:
确定在第一路线上阻挡第一机器人的障碍物的存在;以及
在确定在第一条路线上阻挡第一机器人的障碍物的存在之后:
生成指示障碍物的存在的警告消息,以及
为第一机器人确定避开障碍物的新路线。
10.根据权利要求1所述的方法,其中,第三机器人的第三路线与已经为所述第一机器人预留的路线的重叠部分重叠,并且其中,所述方法还包括:
确定第三机器人的第三优先级是否小于第一优先级;
在确定第三优先级小于第一优先级之后,确定在第一机器人到达重叠部分之前第三机器人是否处于穿过重叠部分的位置;以及
在确定在第一机器人到达重叠部分之前第三机器人处于穿过重叠部分的位置之后,指示第三机器人在第一机器人到达重叠部分之前穿过重叠部分。
11.根据权利要求1所述的方法,其中,所述第一冲突区域被预留以用于由所述第一机器人专用,并且其中,更改所述第二路线以防止所述第二机器人阻挡在第一车道上的第一机器人包括:
释放用于由第一机器人专用的第一冲突区域的第一预留;
在释放第一冲突区域的第一预留之后,获得用于由第二机器人专用的第一冲突区域的第二预留;
在获得第二预留之后,指示第二机器人离开第一边缘并进入第一冲突区域;以及
在第二机器人已经穿过第一冲突区域之后:
释放第二预留;以及
获得用于由第一机器人专用的第一冲突区域的第三预留。
12.根据权利要求11所述的方法,还包括:
在第二机器人已经穿过第一冲突区域之后,指示第二机器人继续经由第二路线到目的地位置。
13.根据权利要求1所述的方法,其中,用车道的循环注释所述路线图,并且其中,更改所述第二路线以避免阻挡在所述第一车道上的所述第一机器人包括:更改所述第二路线以行进通过所述车道的循环。
14.根据权利要求1所述的方法,其中,更改所述第二机器人的第二路线以避免阻挡第一车道包括:指示所述第二机器人在所述一个或多个车道中的特定车道上等待。
15.根据权利要求1所述的方法,其中,确定通过环境的第一路线包括预留用于由所述第一机器人专用的沿所述第一路线的第二冲突区域,并且其中,所述第二冲突区域位于两个或更多个车道之间。
16.根据权利要求15所述的方法,其中,所述第二冲突区域包括两个车道之间的交叉路口。
17.根据权利要求15所述的方法,其中,所述路线图的未注释的部分未由所述一个或多个车道注释,并且其中,所述第二冲突区域包括所述路线图的未注释的部分。
18.一种计算设备,包括:
一个或多个处理器;以及
数据存储,至少包括存储在其上的计算机可执行指令,当所述指令由所述一个或多个处理器执行时使计算设备:
接收包括第一机器人和第二机器人的现有环境的路线图;
用连接多个冲突区域的多个车道注释路线图,其中,每个车道是单向的,并且在距冲突区域充分远处结束以避免阻挡冲突区域;
确定用于由第一机器人使用的沿着路线图通过环境的第一路线、以及用于由第二机器人使用的沿着路线图通过环境的第二路线,其中,第一路线和第二路线均包括第一车道,并且其中,第一车道连接到第一冲突区域;
向第一机器人分配第一优先级,并且向第二机器人分配第二优先级,其中,第一优先级高于第二优先级;
确定遵循第二路线的第二机器人将导致第二机器人在第一机器人到达第一冲突区域之前阻挡在第一车道上的第一机器人;以及
基于第一优先级高于第二优先级,更改第二路线以防止第二机器人阻挡在第一车道上的第一机器人。
19.根据权利要求18所述的计算设备,其中,所述第一冲突区域被预留以用于由所述第一机器人专用,并且其中,更改所述第二路线以防止第二机器人阻挡在第一车道上的第一机器人包括:
释放用于由第一机器人专用的第一冲突区域的第一预留;
在释放第一冲突区域的第一预留之后,获得用于由第二机器人专用的第一冲突区域的第二预留;
在获得第二预留之后,指示第二机器人离开第一边缘并进入第一冲突区域;以及
在第二机器人已经穿过第一冲突区域之后:
释放第二预留;以及
获得用于由第一机器人专用的第一冲突区域的第三预留。
20.一种非暂时性计算机可读介质,其上存储有指令,当指令由计算设备的一个或多个处理器执行时,使计算设备:
接收包括第一机器人和第二机器人的现有环境的路线图;
用连接多个冲突区域的多个车道注释路线图,其中,每个车道是单向的,并且在距冲突区域充分远处结束以避免阻挡冲突区域;
确定用于由第一机器人使用的沿着路线图通过环境的第一路线、以及用于由第二机器人使用的沿着路线图通过环境的第二路线,其中,第一路线和第二路线均包括第一车道,并且其中,第一车道连接到第一冲突区域;
向第一机器人分配第一优先级,并且向第二机器人分配第二优先级,其中,第一优先级高于第二优先级;
确定遵循第二路线的第二机器人将导致第二机器人在第一机器人到达第一冲突区域之前阻挡在第一车道上的第一机器人;以及
基于第一优先级高于第二优先级,更改第二路线以防止第二机器人阻挡在第一车道上的第一机器人。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/486,219 | 2017-04-12 | ||
US15/486,219 US10642282B2 (en) | 2017-04-12 | 2017-04-12 | Roadmap annotation for deadlock-free multi-agent navigation |
PCT/US2018/019780 WO2018190960A1 (en) | 2017-04-12 | 2018-02-26 | Roadmap annotation for deadlock-free multi-agent navigation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110730931A true CN110730931A (zh) | 2020-01-24 |
Family
ID=61692066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880033105.3A Pending CN110730931A (zh) | 2017-04-12 | 2018-02-26 | 无死锁多智能体导航的路线图注释 |
Country Status (6)
Country | Link |
---|---|
US (2) | US10642282B2 (zh) |
EP (1) | EP3610340B1 (zh) |
JP (2) | JP2020518890A (zh) |
KR (2) | KR102415096B1 (zh) |
CN (1) | CN110730931A (zh) |
WO (1) | WO2018190960A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114347019A (zh) * | 2021-12-22 | 2022-04-15 | 深圳优地科技有限公司 | 机器人控制方法、机器人及控制系统 |
CN115279678A (zh) * | 2020-03-13 | 2022-11-01 | 因温特奥股份公司 | 具有用于机器人交通的排队功能的电梯系统 |
Families Citing this family (47)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9842815B2 (en) * | 2016-02-26 | 2017-12-12 | Taiwan Semiconductor Manufacturing Company, Ltd. | Semiconductor device and method of manufacture |
US11300963B1 (en) | 2017-08-18 | 2022-04-12 | Amazon Technologies, Inc. | Robot movement constraint system |
US11422565B1 (en) * | 2017-08-18 | 2022-08-23 | Amazon Technologies, Inc. | System for robot movement that is informed by cultural conventions |
US10773381B2 (en) * | 2017-11-30 | 2020-09-15 | Skygrid, Llc | Secure distributed system using blockchain for self-policing of autonomous agents |
CN110262471B (zh) * | 2018-05-10 | 2022-09-06 | 北京京东乾石科技有限公司 | 机器人调度方法和装置、机器人及机器人调度系统 |
US11990033B2 (en) * | 2018-06-08 | 2024-05-21 | Cpac Systems Ab | Method for controlling vehicles |
EP3591487B1 (en) * | 2018-07-02 | 2021-05-26 | Kollmorgen Automation AB | An agv system and a method of controlling an agv system |
CN110945450B (zh) * | 2018-10-10 | 2022-04-05 | 灵动科技(北京)有限公司 | 人机交互自动导引车辆 |
USD950574S1 (en) * | 2018-10-23 | 2022-05-03 | Capital One Services, Llc | Scanning device or portion thereof with a scanning user interface |
JP7064429B2 (ja) * | 2018-11-06 | 2022-05-10 | 株式会社東芝 | 情報処理装置、情報処理方法及びコンピュータプログラム |
EP3740833A4 (en) * | 2018-12-04 | 2021-01-06 | SZ DJI Technology Co., Ltd. | METHOD AND SYSTEM FOR CONTROLLING THE MOVEMENT OF MOVING DEVICES |
CN111830952B (zh) * | 2019-03-29 | 2024-06-28 | 阿里巴巴集团控股有限公司 | 实体店铺内的运输车调度方法及装置 |
TWI699636B (zh) * | 2019-05-21 | 2020-07-21 | 華邦電子股份有限公司 | 協同型機器人控制系統和方法 |
JP7303027B2 (ja) * | 2019-06-03 | 2023-07-04 | 株式会社小松製作所 | 作業機械を制御するためのシステムおよび方法 |
CN110209485B (zh) * | 2019-06-05 | 2020-06-02 | 青岛海通胜行智能科技有限公司 | 一种协同作业时多机器人的动态避让方法 |
CN112060072B (zh) * | 2019-06-11 | 2023-06-20 | 华邦电子股份有限公司 | 一种协同型机器人控制系统和方法 |
US11762393B2 (en) * | 2019-08-01 | 2023-09-19 | Dvw Holdings, Llc | Shipping system and control system for secure package delivery |
CN112388624B (zh) * | 2019-08-15 | 2022-07-12 | 纳恩博(北京)科技有限公司 | 机器人的控制方法和装置、存储介质及电子装置 |
CN116795097A (zh) * | 2019-09-12 | 2023-09-22 | 北京极智嘉科技股份有限公司 | 机器人路径调度方法、装置、服务器及存储介质 |
US11958183B2 (en) | 2019-09-19 | 2024-04-16 | The Research Foundation For The State University Of New York | Negotiation-based human-robot collaboration via augmented reality |
CN112631209A (zh) * | 2019-10-08 | 2021-04-09 | 北京京东乾石科技有限公司 | 用于控制无人搬运车的方法和装置 |
DE102019128617B3 (de) * | 2019-10-23 | 2020-12-10 | Audi Ag | Verfahren zum Betreiben eines fahrerlosen Transportsystems und fahrerloses Transportsystem |
JP7204631B2 (ja) * | 2019-10-29 | 2023-01-16 | 株式会社東芝 | 走行制御装置、方法及びコンピュータプログラム |
JP7237799B2 (ja) * | 2019-10-29 | 2023-03-13 | 株式会社東芝 | 走行制御装置及び運行システム |
US11960281B1 (en) * | 2019-12-12 | 2024-04-16 | Tp Lab, Inc. | Resource sharing among autonomous devices |
JP2022018855A (ja) * | 2020-07-16 | 2022-01-27 | 株式会社東芝 | 走行制御装置、走行制御方法及びコンピュータプログラム |
CN113589822A (zh) | 2020-08-20 | 2021-11-02 | 深圳市海柔创新科技有限公司 | 仓库机器人导航路线预约 |
NO20200927A1 (en) | 2020-08-26 | 2022-02-28 | Autostore Tech As | Routing of container handling vehicles operating an automated storage system |
KR20220057895A (ko) | 2020-10-30 | 2022-05-09 | 삼성에스디에스 주식회사 | 무인 운반 장치 제어 방법 및 그 장치 |
CN112525196B (zh) * | 2020-11-23 | 2023-04-28 | 山东亚历山大智能科技有限公司 | 一种基于多维数据的agv路线规划调度方法及系统 |
WO2022124004A1 (ja) * | 2020-12-09 | 2022-06-16 | ソニーグループ株式会社 | 経路計画装置 |
CN112650226B (zh) * | 2020-12-11 | 2024-09-06 | 京信智能科技(广州)有限公司 | 一种机器人的调度方法、装置、设备及介质 |
CN112985414A (zh) * | 2021-04-09 | 2021-06-18 | 北京猎户星空科技有限公司 | 一种多智能体导航方法、装置、设备和介质 |
JP7375791B2 (ja) * | 2021-05-19 | 2023-11-08 | 村田機械株式会社 | 走行車システム |
CN113671965B (zh) * | 2021-08-24 | 2024-03-12 | 同济大学 | 路径规划方法及装置 |
EP4198670A1 (en) * | 2021-10-29 | 2023-06-21 | Volvo Autonomous Solutions AB | Method and device for coordinating vehicle routes in confined areas |
CN114115292B (zh) * | 2021-12-21 | 2024-06-21 | 上海智蕙林医疗科技有限公司 | 行驶控制方法、系统、存储介质和计算机设备 |
US20230195119A1 (en) * | 2021-12-22 | 2023-06-22 | Ford Global Technologies, Llc | Systems and methods for controlling autonomous mobile robots in a manufacturing environment |
CN114454162B (zh) * | 2022-01-10 | 2023-05-26 | 广东技术师范大学 | 一种移动机器人复杂路口防碰撞方法及系统 |
CN114067569B (zh) * | 2022-01-14 | 2022-06-10 | 华砺智行(武汉)科技有限公司 | V2x车联网环境下车辆左转辅助预警方法 |
JP7527322B2 (ja) * | 2022-03-24 | 2024-08-02 | 三菱重工業株式会社 | 情報処理方法、情報処理装置及びプログラム |
CN115115301A (zh) * | 2022-05-27 | 2022-09-27 | 北京旷视机器人技术有限公司 | 搬运设备的调度方法、设备、介质及程序产品 |
CN115167410B (zh) * | 2022-07-01 | 2024-05-28 | 安徽机电职业技术学院 | 一种多机器人运动的冲突路径纠正方法及其系统 |
KR20240039826A (ko) * | 2022-09-20 | 2024-03-27 | 현대자동차주식회사 | 이기종 물류로봇 통합 운용 시스템 및 그 방법 |
US20240111585A1 (en) * | 2022-09-27 | 2024-04-04 | Seegrid Corporation | Shared resource management system and method |
KR20240068268A (ko) * | 2022-11-10 | 2024-05-17 | 엘지전자 주식회사 | 로봇 이동 제어 방법 및 이를 구현하는 관제 서버 |
CN116070872B (zh) * | 2023-02-23 | 2023-09-15 | 机科发展科技股份有限公司 | 基于窄通道的agv调度方法、电子设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0618523A1 (en) * | 1993-04-02 | 1994-10-05 | Shinko Electric Co. Ltd. | Transport management control apparatus and method for unmanned vehicle system |
CN105652838A (zh) * | 2016-01-29 | 2016-06-08 | 哈尔滨工大服务机器人有限公司 | 一种基于时间窗的多机器人路径规划方法 |
JP2016170580A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社シンテックホズミ | 搬送車システム |
CN106041931A (zh) * | 2016-06-30 | 2016-10-26 | 广东工业大学 | 一种多障碍空间多agv机器人协作防碰撞路径优化方法 |
CN106251016A (zh) * | 2016-08-01 | 2016-12-21 | 南通大学 | 一种基于动态时间窗的泊车系统路径规划方法 |
Family Cites Families (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3364021B2 (ja) | 1993-12-10 | 2003-01-08 | 神鋼電機株式会社 | 運行管理制御装置およびその方法 |
JP2881683B2 (ja) * | 1995-07-07 | 1999-04-12 | 東急車輛製造株式会社 | 自動走行車の障害物検知方法及び装置 |
JPH11143533A (ja) * | 1997-11-10 | 1999-05-28 | Meidensha Corp | 搬送車制御システム |
JP3715420B2 (ja) * | 1997-11-12 | 2005-11-09 | マツダエース株式会社 | 無人搬送車の走行プログラム作成装置 |
JP3857402B2 (ja) * | 1997-12-05 | 2006-12-13 | 富士通株式会社 | 交差点衝突防止方法及びシステム及び交差点衝突防止プログラムを格納した記憶媒体及び交差点装置 |
JPH11202938A (ja) * | 1998-01-12 | 1999-07-30 | Omron Corp | 車両走行制御システムおよびこのシステムに用いられる車両 |
JP2003182809A (ja) * | 2001-12-14 | 2003-07-03 | Daifuku Co Ltd | 物品搬送設備 |
JP4348276B2 (ja) * | 2004-11-02 | 2009-10-21 | 本田技研工業株式会社 | ロボット制御装置 |
JP2006293588A (ja) | 2005-04-08 | 2006-10-26 | Toyota Industries Corp | 無人車両の走行制御方法及び無人車両の走行制御システム |
JP4306723B2 (ja) * | 2006-12-15 | 2009-08-05 | 村田機械株式会社 | 搬送台車システム |
CA2790713C (en) | 2009-11-09 | 2014-09-30 | Komatsu Ltd. | Apparatus and method for controlling travel of vehicles |
JP2011135570A (ja) * | 2009-11-27 | 2011-07-07 | Sanyo Electric Co Ltd | 端末装置 |
JPWO2011070869A1 (ja) | 2009-12-07 | 2013-04-22 | 国立大学法人 東京大学 | 移動体システム |
US8554456B2 (en) * | 2011-07-05 | 2013-10-08 | International Business Machines Corporation | Intelligent traffic control mesh |
WO2013005466A1 (ja) | 2011-07-07 | 2013-01-10 | 村田機械株式会社 | 搬送車システムと搬送車の制御方法 |
KR20130007754A (ko) * | 2011-07-11 | 2013-01-21 | 한국전자통신연구원 | 자율주행 교차로에서 차량 제어 장치 및 그 방법 |
KR101286815B1 (ko) * | 2012-01-31 | 2013-07-17 | 부산대학교 산학협력단 | 무인운반 하역차의 교통제어 시스템 및 이의 운영방법 |
US20150019731A1 (en) * | 2012-04-23 | 2015-01-15 | Google Inc. | Fair Hierarchical Arbitration Of a Shared Resource With Varying Traffic Intensity |
KR102074811B1 (ko) * | 2012-07-17 | 2020-02-10 | 한국전자통신연구원 | 교차로 운행 정보 제공 장치 및 방법 |
US8983647B1 (en) * | 2012-12-13 | 2015-03-17 | Amazon Technologies, Inc. | Inventory system with climate-controlled inventory |
US8965561B2 (en) * | 2013-03-15 | 2015-02-24 | Cybernet Systems Corporation | Automated warehousing using robotic forklifts |
DE102013207899A1 (de) | 2013-04-30 | 2014-10-30 | Kuka Laboratories Gmbh | Fahrerloses Transportfahrzeug, System mit einem Rechner und einem fahrerlosen Transportfahrzeug, Verfahren zum Planen einer virtuellen Spur und Verfahren zum Betreiben eines fahrerlosen Transportfahrzeugs |
KR20150137166A (ko) | 2014-05-28 | 2015-12-09 | 고려대학교 산학협력단 | 복수의 이동 로봇 간의 충돌 회피를 위한 경로 생성 방법 |
JP6247622B2 (ja) * | 2014-09-29 | 2017-12-13 | 日立建機株式会社 | 管制制御装置 |
US10539084B2 (en) * | 2014-11-18 | 2020-01-21 | Carl M. Clark | Vehicle rollover safety device utilizing a circular arc level |
KR102366402B1 (ko) * | 2015-05-21 | 2022-02-22 | 엘지전자 주식회사 | 운전자 보조 장치 및 그 제어방법 |
KR101695557B1 (ko) * | 2015-07-17 | 2017-01-24 | 고려대학교 산학협력단 | 자율 주행 기반 무인 운반차 시스템 및 이의 제어 방법 |
KR101708657B1 (ko) * | 2015-09-01 | 2017-02-21 | 엘지전자 주식회사 | 차량 및 그 제어방법 |
JP6304220B2 (ja) * | 2015-12-08 | 2018-04-04 | トヨタ自動車株式会社 | 運転支援装置 |
US9740207B2 (en) * | 2015-12-23 | 2017-08-22 | Intel Corporation | Navigating semi-autonomous mobile robots |
US9858819B2 (en) * | 2016-02-03 | 2018-01-02 | Caterpillar Inc. | Traffic control system having deadlock avoidance functionality |
JP6347262B2 (ja) * | 2016-02-12 | 2018-06-27 | マツダ株式会社 | 車両の制御装置 |
US10725462B2 (en) * | 2016-04-25 | 2020-07-28 | Invia Robotics, Inc. | Optimizing robotic movements based on an autonomous coordination of resources amongst robots |
US9513627B1 (en) * | 2016-04-25 | 2016-12-06 | inVia Robotics, LLC | Autonomous coordination of resources amongst robots |
KR101824998B1 (ko) * | 2016-07-13 | 2018-02-02 | 엘지전자 주식회사 | 이동 단말기 |
US10037029B1 (en) * | 2016-08-08 | 2018-07-31 | X Development Llc | Roadmap segmentation for robotic device coordination |
CN111133275B (zh) * | 2017-07-28 | 2022-04-01 | 克朗设备公司 | 一种物料搬运车辆以及导航物料搬运车辆的系统和方法 |
CN108806115A (zh) * | 2018-08-21 | 2018-11-13 | 北京极智嘉科技有限公司 | 无人的自助式操作系统、方法和操作门 |
-
2017
- 2017-04-12 US US15/486,219 patent/US10642282B2/en active Active
-
2018
- 2018-02-26 JP JP2019555156A patent/JP2020518890A/ja not_active Withdrawn
- 2018-02-26 KR KR1020217025623A patent/KR102415096B1/ko active IP Right Grant
- 2018-02-26 EP EP18712306.2A patent/EP3610340B1/en active Active
- 2018-02-26 CN CN201880033105.3A patent/CN110730931A/zh active Pending
- 2018-02-26 WO PCT/US2018/019780 patent/WO2018190960A1/en unknown
- 2018-02-26 KR KR1020197032896A patent/KR102291434B1/ko active IP Right Grant
-
2020
- 2020-04-02 US US16/838,707 patent/US11709502B2/en active Active
-
2021
- 2021-12-23 JP JP2021209370A patent/JP2022037191A/ja active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0618523A1 (en) * | 1993-04-02 | 1994-10-05 | Shinko Electric Co. Ltd. | Transport management control apparatus and method for unmanned vehicle system |
JP2016170580A (ja) * | 2015-03-12 | 2016-09-23 | 株式会社シンテックホズミ | 搬送車システム |
CN105652838A (zh) * | 2016-01-29 | 2016-06-08 | 哈尔滨工大服务机器人有限公司 | 一种基于时间窗的多机器人路径规划方法 |
CN106041931A (zh) * | 2016-06-30 | 2016-10-26 | 广东工业大学 | 一种多障碍空间多agv机器人协作防碰撞路径优化方法 |
CN106251016A (zh) * | 2016-08-01 | 2016-12-21 | 南通大学 | 一种基于动态时间窗的泊车系统路径规划方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115279678A (zh) * | 2020-03-13 | 2022-11-01 | 因温特奥股份公司 | 具有用于机器人交通的排队功能的电梯系统 |
CN115279678B (zh) * | 2020-03-13 | 2024-08-27 | 因温特奥股份公司 | 具有用于机器人交通的排队功能的电梯系统 |
CN114347019A (zh) * | 2021-12-22 | 2022-04-15 | 深圳优地科技有限公司 | 机器人控制方法、机器人及控制系统 |
CN114347019B (zh) * | 2021-12-22 | 2023-09-08 | 深圳优地科技有限公司 | 机器人控制方法、机器人及控制系统 |
Also Published As
Publication number | Publication date |
---|---|
KR102415096B1 (ko) | 2022-06-29 |
KR20210104925A (ko) | 2021-08-25 |
WO2018190960A1 (en) | 2018-10-18 |
EP3610340A1 (en) | 2020-02-19 |
EP3610340B1 (en) | 2023-12-27 |
JP2022037191A (ja) | 2022-03-08 |
US20200233435A1 (en) | 2020-07-23 |
US20180299882A1 (en) | 2018-10-18 |
KR20190134750A (ko) | 2019-12-04 |
US10642282B2 (en) | 2020-05-05 |
US11709502B2 (en) | 2023-07-25 |
KR102291434B1 (ko) | 2021-08-20 |
JP2020518890A (ja) | 2020-06-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102415096B1 (ko) | 교착 없는 다중 동작자 내비게이션을 위한 로드맵 주석부기 | |
US10926410B2 (en) | Layered multi-agent coordination | |
US10994418B2 (en) | Dynamically adjusting roadmaps for robots based on sensed environmental data | |
US11262200B2 (en) | Boolean satisfiability (SAT) reduction for geometry and kinematics agnostic multi-agent planning | |
US10296012B2 (en) | Pre-computation of kinematically feasible roadmaps | |
US10260890B2 (en) | Aisle-based roadmap generation | |
US11161238B2 (en) | Multi-agent coordination under sparse networking | |
EP4141599B1 (en) | Multi-robot route planning | |
JP2016170580A (ja) | 搬送車システム | |
JP2021071891A (ja) | 走行制御装置、走行制御方法、及びコンピュータプログラム | |
JP7204631B2 (ja) | 走行制御装置、方法及びコンピュータプログラム | |
Bhargava et al. | A review of recent advances, techniques, and control algorithms 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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20200708 Address after: Massachusetts, USA Applicant after: Boston Dynamics, Inc. Address before: California, USA Applicant before: X Development Co.,Ltd. |
|
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40022753 Country of ref document: HK |