CN116263716A - 在线自动互锁策略 - Google Patents
在线自动互锁策略 Download PDFInfo
- Publication number
- CN116263716A CN116263716A CN202211598412.0A CN202211598412A CN116263716A CN 116263716 A CN116263716 A CN 116263716A CN 202211598412 A CN202211598412 A CN 202211598412A CN 116263716 A CN116263716 A CN 116263716A
- Authority
- CN
- China
- Prior art keywords
- robot
- motion
- robots
- swept
- controller
- 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
- 230000033001 locomotion Effects 0.000 claims abstract description 215
- 238000000034 method Methods 0.000 claims abstract description 117
- 230000003044 adaptive effect Effects 0.000 claims abstract description 19
- 238000010924 continuous production Methods 0.000 claims description 17
- 230000002265 prevention Effects 0.000 claims description 10
- 238000003466 welding Methods 0.000 claims description 10
- 238000004891 communication Methods 0.000 claims description 5
- 239000000463 material Substances 0.000 claims description 5
- 238000005507 spraying Methods 0.000 claims description 4
- 230000009471 action Effects 0.000 claims description 3
- 239000011324 bead Substances 0.000 claims 1
- 238000011112 process operation Methods 0.000 abstract description 14
- 238000004364 calculation method Methods 0.000 abstract description 9
- 235000008694 Humulus lupulus Nutrition 0.000 abstract description 2
- 239000004744 fabric Substances 0.000 abstract 1
- 230000008569 process Effects 0.000 description 28
- 229910003460 diamond Inorganic materials 0.000 description 23
- 239000010432 diamond Substances 0.000 description 23
- 238000010586 diagram Methods 0.000 description 20
- 230000008859 change Effects 0.000 description 6
- 238000007792 addition Methods 0.000 description 5
- 230000009977 dual effect Effects 0.000 description 5
- 238000010422 painting Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 239000011449 brick Substances 0.000 description 2
- 239000012636 effector Substances 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000000449 premovement Effects 0.000 description 1
- 239000007921 spray Substances 0.000 description 1
- 238000006467 substitution reaction Methods 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/524—Deadlock detection or avoidance
-
- 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/0084—Programme-controlled manipulators comprising a plurality of manipulators
-
- 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/0084—Programme-controlled manipulators comprising a plurality of manipulators
- B25J9/0087—Dual arms
-
- 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/1674—Programme controls characterised by safety, monitoring, diagnostic
- B25J9/1676—Avoiding collision or forbidden zones
-
- 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/39—Robotics, robotics to robotics hand
- G05B2219/39135—For multiple manipulators operating at same time, avoid collision
Abstract
一种用于多机器人系统的死锁避免运动规划技术。该技术包括针对即将到来的机器人运动区段在线计算扫掠体,并且使用扫掠体来计算一个或多个重叠区域,所述一个或多个重叠区域被发布给所有机器人控制器。扫掠体计算基于实际即将到来的工具路径,包括诸如跳跃和偏移之类的自适应条件。机器人控制器在每个时间步检查是否将进入重叠区域以及另一机器人是否已经在该区域中。当机器人确定它将要进入被占用的区域时,机器人保持位置,直到该区域被腾空。机器人发布区域进入和退出用于其它机器人知晓。增加附加逻辑以建立优先级,用于自动解决死锁情况,并且用于对执行连续过程操作的机器人的运动区段的完成确定优先级。
Description
技术领域
本公开一般涉及工业机器人运动控制领域,并且更具体地,涉及用于多机器人系统的死锁避免运动规划技术,该多机器人系统使用针对即将到来的机器人运动区段的扫掠体来计算一个或多个重叠区域,监视任何相关机器人对每个重叠区域的占用,并且当任何机器人已经进入重叠区域时,防止任何其他相关机器人进入重叠区域直到其被腾空。
背景技术
使用工业机器人来执行各种各样的制造、组装和材料移动操作是众所周知的。在许多机器人工作空间环境中,两个或更多个机器人同时操作以执行诸如点焊、喷漆或传送带拾取和放置之类的操作。当两个或更多个机器人在工作空间中一起工作时,必须规划和控制它们的运动以防止碰撞。碰撞避免运动规划技术在本领域中是已知的,包括多机器人系统中的机器人到机器人碰撞避免。
除了避免碰撞之外,多机器人系统必须试图防止死锁情况的发生。例如,双机器人系统中的死锁是当每个机器人阻挡另一机器人的路径时,使得两个机器人都不能沿着其规划的运动路径向前移动而不引起碰撞。当发生死锁时,多个机器人中的至少一个必须向后移动或改变路线离开其规划路径,以允许恢复无碰撞运动。只要可能就要避免死锁情况,因为死锁情况会导致机器人生产率降低,并且当诸如喷漆或焊接的操作以不希望的方式中断时还会导致损坏工件。单独的干扰检查不能防止死锁。
用于避免死锁的技术在本领域中是已知的,包括手动和自动方法。手动地识别潜在的死锁状况并向机器人运动程序添加互锁以防止死锁是一种非常乏味且耗时的方法。因此,已经开发了自动死锁避免技术,包括在运动程序的执行之前离线计算扫掠体和重叠区域,并且在执行之前在运动程序中插入重叠区域进入/退出事件的方法。该技术比手动方法耗时少,并且在防止某些机器人运动程序中的死锁方面是有效的。然而,扫掠体和重叠区域的离线计算不能正确地处理具有某些类型的运动事件-例如工具中心点跳跃的运动程序中的死锁防止,以及何时在执行期间经由位置寄存器或其它技术在线获取工具中心点位置。
鉴于上述情况,需要一种改进的死锁防止技术,其易于建立并且防止包括在机器人执行期间在线计算的自适应运动控制区段的多机器人系统中的死锁。
发明内容
根据本公开的教导,公开了一种用于多机器人系统的死锁避免运动规划技术。该技术包括针对即将到来的机器人运动区段在线计算扫掠体,并且使用各个机器人的扫掠体来计算一个或多个重叠区域,所述一个或多个重叠区域被发布给所有机器人控制器。扫掠体计算基于实际即将到来的工具路径,包括诸如跳跃和偏移之类的自适应条件。机器人控制器在每个机器人时间步检查以查看是否将进入重叠区域,并且如果是,则查看另一机器人是否已经在该区域中。当机器人确定它将要进入已经被占用的区域时,机器人保持位置,直到该区域被另一机器人腾出。机器人发布区域进入和退出事件以便其它机器人知晓。增加附加逻辑以建立优先级,用于自动解决初始死锁情况,以及用于为执行诸如喷涂或焊接的过程操作的机器人的运动区段的完成确定优先级。
结合附图,根据以下描述和所附权利要求,当前公开的装置和方法的附加特征将变得显而易见。
附图说明
图1是包括在共同工作空间中工作的两个工业机器人的系统的图示,其中需要干扰检查和死锁防止;
图2是双机器人系统中死锁情况的简化二维图示;
图3是根据本领域已知的技术,通过分析工具路径重叠区域并在机器人运动程序中插入互锁检查点来防止死锁的手动技术的二维图示;
图4是图1的两个机器人的扫掠体的图示,包括扫掠体的重叠区域,其指示需要避免死锁的机器人运动规划;
图5是根据本公开的实施例的包括用于死锁防止的在线互锁定义的多机器人系统的高级框图;
图6是示出根据本公开实施例的图5中所示工作空间管理器模块的特征的框图;
图7是根据本公开的实施例的由如图5中所示的多机器人系统中的每个机器人的高级规划器模块使用的方法的流程图;
图8是根据本公开的实施例的由如图5所示的多机器人系统中的多个机器人中的每个机器人的低级内插器模块使用的方法的流程图;
图9A-9G是根据本公开的实施例的三机器人系统的重叠区域和事件的时间序列的图示;
图10A/10B/10C是双机器人系统的渐进图示,其中即使没有机器人移动到占用的重叠区域中,也会出现死锁情况;
图11是根据本公开实施例的由如图10A-10C所示的多机器人系统中的多个机器人中的每个的低级内插器模块使用的方法的流程图,包括回放以解决死锁;
图12是根据本公开的实施例的由用于在多机器人系统中执行连续过程操作的每个机器人的运动规划器使用的方法的流程图;
图13是根据本公开的实施例的由用于在多机器人系统中执行连续过程操作的每个机器人的高级规划器使用的方法的流程图;以及
图14是根据本公开的实施例的由用于在多机器人系统中执行连续过程操作的每个机器人的低级内插器使用的方法的流程图。
具体实施方式
以下针对机器人运动规划中的死锁避免的本公开的实施例的讨论本质上仅仅是示例性的,并且决不旨在限制所公开的设备和技术或它们的应用或使用。
众所周知,使用工业机器人进行各种制造、装配和材料移动操作。当两个或更多个机器人在工作空间中一起工作时,必须规划和控制它们的运动以防止碰撞并避免死锁。
图1是在车身工件120附近工作的两个工业机器人(100、110)的图示。如本领域所公知的,机器人100和110的运动由机器人控制器控制。机器人100具有控制器102,并且机器人110具有控制器112。因为机器人100和110的运动必须被协调以防止碰撞,所以控制器102和112彼此通信。此外,也可以提供与控制器102和112通信的单独的计算机130,其中计算机130可以是可编程逻辑控制器(PLC)或控制机器人在其中操作的工作单元或工作空间的整体活动的其它类型的计算装置。例如,在材料移动应用中,计算机130能够协调相对于传送带上的入站零件的可用性和位置的机器人运动。
在图1的工作空间中,机器人100和110正在工件120的各个位置上执行点焊任务。点焊包括在车体内部的位置,其需要机器人100和110到达门开口内部。在本申请中,车体工件120本身是机器人100和110的运动的障碍物。另外,机器人100和110可以具有重叠的运动,这意味着机器人100和110可能彼此的阻碍物。机器人100和110的操作需要对所有规划的运动执行干涉检查计算。
碰撞避免运动规划技术在本领域中是已知的,包括多机器人系统中的机器人到机器人碰撞避免。除了避免碰撞之外,多机器人系统必须试图防止死锁情况发生。死锁是当机器人阻挡彼此的路径时,使得不可能在不引起碰撞的情况下沿着规划的运动路径进一步机器人移动。当发生死锁时,至少一个机器人必须向后移动或改变路线以允许恢复无碰撞的运动。只要可能就要避免死锁情况。干涉检查单独不能防止死锁。
图2是双机器人系统中死锁情况的简化二维(2D)图示。机器人200和机器人220在顶部(平面)视图中被示为具有基座、机器人臂和工具或末端执行器的简单机器人。机器人200具有在由箭头214指示的方向上沿着路径212移动的工具210,而机器人220具有在由箭头234指示的方向上沿着路径232移动的工具230。在图2中存在死锁情况,因为机器人200和机器人220都不能在不引起碰撞的情况下沿着其路径进一步移动其工具。实质上,一旦机器人200和机器人220进入重叠区域240,即路径212和路径232之间的区域,死锁就变得不可避免。如本领域技术人员将理解的,一个机器人(例如,机器人220)可以进入重叠区域240并且继续沿着其路径移动其工具,只要另一个机器人(机器人200)保持在重叠区域240之外。
一旦两个机器人进入重叠区域240,则存在死锁情况,并且唯一的解决方案是机器人之一反转路线(“倒退”)或者以其他方式改变其工具路线。这显然不是所希望的情况。用于防止或避免死锁的技术在本领域中是已知的,包括手动和自动方法。
图3是根据本领域已知的用于通过分析工具路径重叠区域并在机器人运动程序中插入互锁检查点来防止死锁的手动技术的二维图示。机器人300和机器人310各自包括多连杆机器人臂和工具,并且以上文关于图2所论述的方式在俯视图中以简化形式说明。机器人300具有追踪工具路径302的工具,且机器人310具有追踪工具路径312的工具。重叠区域320存在于工具路径302和工具路径312之间的相交空间中。用于避免死锁的已知方法是将互锁或检查点添加到机器人300和310的运动程序中。当机器人在其运动程序中到达互锁时,它在继续进行之前检查另一机器人的状态。
图3中示出了一种用于添加检查点的手动技术。点1被识别为沿着工具路径302最靠近机器人310的点。点4被识别为沿着工具路径312最靠近机器人300的点。然后绘制一条线“a”,例如垂直于从点1到机器人310的基座的线。然后,将互锁点2和3添加到机器人310的运动程序。类似地,绘制与从点4到机器人300的基座的线垂直的线“b”。互锁点5和6被添加到机器人300的运动程序。
如果机器人310沿工具路径312在顺时针方向上移动其工具,则当工具到达互锁点2时,机器人310在继续进行之前检查机器人300的状态。只有当知道机器人300离开重叠区域320时,机器人310才沿着其工具路径312前进。当机器人310前进经过互锁点2时,其报告其已经有效地进入重叠区域320,使得机器人300知道保持离开。当机器人310沿着工具路径312移动并到达互锁点3时,其报告其已经退出重叠区域320,使得机器人300可以进入。机器人300在进入重叠区域320之前使用互锁点5来检查,然后报告进入,并且使用互锁点6来报告退出重叠区域320。
即使在图3的简化2D图示中,可以看出,手动地向机器人运动程序添加互锁点需要额外的工作。由于在定义互锁点时使用的保守简化,该技术也产生低效率,因为机器人将被要求保持超过实际保持离开重叠区域320所需的位置。
图2和3以二维方式示出以保持视觉清晰。在实际的机器人操作中,每个机器人所占用的空间和空间的重叠区域是复杂的三维(3D)形状。然而,防止重叠区域的多个机器人占用的概念以与图2和3中所示相同的方式应用于3D空间中,这将在下面讨论。
图4是图1的两个机器人的扫掠体的图示,包括扫掠体的重叠区域,其指示需要死锁避免机器人运动规划。图4从与图1相反的视角示出了机器人100和110。图4中勾勒出机器人100和110在其原始位置的轮廓。扫掠体108和118是使用任何合适的技术计算的。扫掠体108是在机器人100的运动程序中的某一点处被占用的体,而扫掠体118是在机器人110的运动程序中的某一点处被占用的体。通常,机器人扫掠体计算开始于每个机器人的每个部件的3D几何模型(例如CAD模型),并且随着机器人移动通过其运动程序的各个步而递增地添加到累积体包络。用于计算机器人扫掠体的技术在本领域中是公知的,包括使用体素(立方体或砖形体元素)来表示占用体的技术,以及其他技术。
重叠体410是在扫掠体108和扫掠体118两者内(共同)的空间。虽然重叠体410不一定指示碰撞将发生,因为机器人100和110可以在不同时间占用其扫掠体的该部分,但是重叠体410的存在指示碰撞避免干涉检查必须在机器人操作期间执行,并且还指示死锁情况是可能的并且死锁避免也应当被包括在机器人运动编程中。
图4示出了在真实机器人扫掠体和重叠区域中涉及的3D几何形状的复杂性,以及将图3中所示的手动方法应用于这种复杂3D几何形状的难度。因此,已经开发了自动死锁避免技术,包括在运动程序执行之前离线计算扫掠体和重叠区域,并且在执行之前在运动程序中插入重叠区域进入/退出互锁的方法。该技术比图3的手动方法耗时更少,并且在防止某些机器人运动程序中的死锁方面是有效的。然而,扫掠体和重叠区域的(在机器人操作之前)的离线计算不能够适当地处理具有某些类型的运动事件-例如,工具中心点跳跃,以及当在执行期间经由位置寄存器或其它技术在线获取工具中心点位置时的自适应运动程序中的死锁防止。
本公开提供了一种在机器人操作期间完全在线执行的死锁防止技术。该技术精确地计算扫掠体和重叠区域,甚至对于其中工具路径受到诸如被实时解决的跳跃和位置寄存器偏移之类的自适应事件影响的运动程序。
图5是根据本公开的实施例的包括用于死锁防止的在线互锁定义的多机器人系统500的高级框图。系统500包括在共同工作空间中操作的至少两个机器人。图5中所示的示例包括“N”个机器人,包括由附图标记510标识的机器人1、由附图标记520标识的机器人N和由附图标记530标识的机器人“i”。机器人“i”将被称为机器人530,并且代表系统500中的所有机器人。多个机器人510/520/530中的每个机器人以图1中所示的方式包括机器人本身和机器人控制器。单个机器人控制器也可以控制多于一个机器人。
工作空间管理器模块540是与多个机器人510/520/530中的每个机器人的控制器通信的软件模块。工作空间管理模块540可以在所述多个机器人中的一个的控制器上运行,或者它可以在诸如图1所示的计算机130之类的单独计算机上运行。工作空间管理模块540根据当前公开的技术实时跟踪重叠区域和所述区域的机器人占用。
机器人530和工作空间管理器模块540的动作和交互参考图5在高级讨论,并且在下面进一步详细讨论。应当理解,多个机器人510/520/530中的每个机器人以相同的方式与工作空间管理器模块540交互。机器人530的控制器执行框532中所示的运动规划功能,包括高级运动规划器和低级运动内插器功能。如框532中所概述的,高级规划器根据针对机器人530的可用的即将到来的运动区段来生成扫掠体。运动区段是机器人运动程序中的命令,例如“直线运动到点P77”。如本领域技术人员所知,许多不同类型的机器人运动命令可用于运动编程。由于诸如跳转和位置寄存器之类的自适应运动编程特征,通常不可能预先计算整个运动程序。然而,在某一点,位置寄存器被填充,并且诸如跳跃之类的其他自适应特征被解决,并且一些数量的即将到来的运动区段变得明确。例如,如果接下来的两个运区段是明确的,则高级规划器将计算针对那些接下来的两个运动区段的扫掠体。
本公开的技术涉及针对各个机器人运动区段的扫掠体的计算,以及作为两个或更多个扫掠体的相交部分的重叠区域的计算。应当理解,可以使用用于计算扫掠体和重叠区域的任何合适的方法。
高级规划器将计算的扫掠体发送或发布到工作空间管理器模块540。工作空间管理器模块540计算系统中所有机器人510-530的扫掠体之间出现的重叠区域。在一些时间点处,由于机器人各自在工作空间的分开的部分中工作,因此在扫掠体之间可能不存在重叠区域。在其它时间点处,在机器人的扫掠体之间可以存在两个或更多个重叠区域,诸如涉及不同对机器人的区域。工作空间管理器模块540向每个重叠区域中涉及的所有机器人发布活动重叠区域。与发布每个重叠区域的3D几何形状一起,工作空间管理器模块540连续发布每个区域中涉及的机器人的标识以及当前占用每个重叠区域的任何机器人的标识。
返回到机器人530-低级内插器计算当前运动区段中每个即将到来的时间步的实际机器人运动(关节命令)。在移动机器人之前,低级内插器查询工作空间以确定即将发生的运动是否将导致机器人进入由工作空间管理器模块540发布的重叠区域。如果即将发生的运动将使机器人进入重叠区域,则机器人控制器确定另一机器人是否已经占用重叠区域。如果另一机器人已经占用重叠区域,则控制器不移动机器人,即,控制器使机器人保持在其当前位置,以避免来自同时占用重叠区域的两个机器人的死锁情况。如果另一机器人尚未占用重叠区域,则控制器根据由低级内插器计算的时间步关节命令来移动机器人。在进入重叠区域时,内插器模块还向如上所述跟踪占用的工作空间管理器模块540发布该进入。内插器模块还向工作空间管理器模块540发布重叠区域退出事件。
上述过程在机器人执行其任务(例如,焊接、喷漆等)时在机器人的整个操作过程中继续。每个机器人计算针对可用的即将到来的运动区段的扫掠体;工作空间管理器模块540根据机器人的扫掠体计算重叠区域,跟踪重叠区域的占用并且发布区域及其状态;并且每个机器人在运动的每个时间步(或内插点)之前检查重叠区域状态,以确保其不进入被占用的重叠区域。下面讨论所公开的技术的附加特征和能力。
图6是示出根据本公开实施例的图5中所示工作空间管理器模块540的特征的框图。图6示出了工作空间管理器的输入、工作空间管理器的计算和结果数据、以及来自工作空间管理器的输出。
框610描绘了工作空间管理器从系统中的多个机器人(例如,图5的机器人510/520/530)的高级规划器模块接收的输入。如前所述,每个机器人发布针对可用的和明确的每个运动区段的扫掠体。在框610中,如图5中那样,机器人“i”被编号为1到N。例如,从第一运动区段开始,第一机器人发布被标记为“Seg1-1”的扫掠体612,指示其来自机器人1并且其是运动区段编号1。机器人1继续向上发布扫掠体直至被标记为“Seg1-X”的扫掠体614,指示其来自机器人1并且其是运动区段编号“X”。当每个运动区段可用时,N个机器人中的每一个类似地发布针对每个运动区段的扫掠体,其中每个扫掠体标记有机器人编号和运动区段编号。当先前发布的各个扫掠体中的一个(例如“Seg1-1”或612)已经完成时,所述多个机器人中的每个机器人还向工作空间管理器发送消息。图7中示出了由每个机器人的高级规划器使用以发送扫掠体数据的过程。
在一个优选实施例中,每个扫掠体包括一个运动区段的机器人运动。在特别适合于执行诸如喷涂、激光/电弧焊或材料分配之类的连续处理的机器人的另一实施例中,因为所有运动区段需要在没有中断的情况下完成,所以机器人发布了定义用于包含在连续处理中的所有运动区段的机器人运动的单个扫掠体。下面进一步讨论该实施例。
在框620处,将来自所述多个机器人的所有可用扫掠体(框610)提供给工作空间管理器,其中计算各个扫掠体之间的重叠区域。再次强调,机器人控制器对扫掠体的发布在机器人的整个操作过程中实时地继续。当运动区段变得可用(明确)时,每个机器人控制器独立地发布其扫掠体。如图4所示,每个重叠区域由两个或更多个扫掠体的相交部分定义。重叠区域通常是不规则形状的3D体,并且可以由体素(立方体或砖形体元素)或由其他3D立体或表面几何定义技术来定义。
来自框620的重叠区域被提供给重叠区域池630,在那里它们由工作空间管理器管理。重叠区域池630被示出为包括从编号1到M的范围的重叠区域。代表性重叠区域“m”(632)示出了为每个重叠区域管理什么信息,包括重叠体的3D定义、来自重叠区域中涉及的每个机器人的区段编号、相关机器人(具有重叠区域中涉及的区段的机器人)的列表、以及当前在重叠区域中的(如果有的话)机器人的列表。
框640描述了工作空间管理器从系统中的机器人的低级内插器模块接收的输入。除了低级内插器的用于确保机器人不进入已经被占用的重叠区域的责任之外,内插器还发布指示机器人何时进入或退出特定重叠区域的消息。示出了消息642,其说明机器人“i”已经进入(或退出)重叠区域“m”。图8示出了每个机器人的低级内插器发送扫掠体数据所使用的过程。
在框650处,工作空间管理器使用消息642来更新重叠区域池630中的重叠区域数据。如果在框650处工作空间管理器接收到“退出区域”消息,则工作空间管理器从重叠区域“m”的区域中机器人列表移除机器人“i”。类似地,如果在框650处工作空间管理器接收到“进入区域”消息,则工作空间管理器将机器人“i”添加到重叠区域“m”的区域中机器人列表。
在框660处,每当重叠区域池630中的重叠区域被添加、消除或具有状态改变时,将受影响的重叠区域发布(输出)给到受影响的机器人。例如,考虑针对重叠区域“m”的区域发布消息662,其中区域“m”先前与其重叠的体以及它们各自的运动区段编号一起发布给相关机器人(i、j和k)。区域发布消息662将机器人“i”添加到区域中机器人列表,这是所有相关机器人要知道的重要信息,如将在下面讨论的。其他区域发布消息的示例包括指示机器人“i”已经退出区域“m”(因此区域中机器人列表为空)的稍后消息,以及基于从机器人接收的最新的扫掠体指示区域“m”不再存在的更晚消息。
图7是根据本公开的实施例的由用于如图5中所示的多机器人系统中的多个机器人中的每个的高级规划器模块使用的方法的流程图700。从开始块702,该方法进行到判断菱形704,在此确定新的运动区段是否可用。新的运动区段是先前未被包括在由机器人发布的扫掠体中的运动区段,并且新的运动区段现在被完全定义(例如,工具中心点跳跃已经被解决并且位置寄存器数据现在是可用的)。如前所述,在实时的机器人执行期间在自适应运动程序中递增地处理运动区段的能力是当前公开的技术的重要特征。
如果新的运动区段是可用的,则在框706处,执行快速内插以提供运动区段的机器人运动。例如,快速内插可以使用起点和终点以及如果有的话少量的中间内插点来计算整个运动区段,并且也不需要执行所有的关节运动平滑度优化计算。在框708处,针对在框706处计算的运动区段生成扫掠体。在框710处,将来自框708的扫掠体发送到工作空间管理器,在那里它在框610处被接收,如图6所示。
在框710处发送扫掠体之后,或者当在判断菱形704处没有新的运动区段可用时,到达判断菱形712。在判断菱形712处,确定是否已经完成了任何运动区段。如果是,则在框714处,高级规划器向工作空间管理器发送消息,指示应当从重叠区域池中的任何/所有重叠区域中去除针对完成的运动区段的扫掠体。将重新发布受扫掠体的去除而影响(改变或消除)的任何重叠区域。在发送任何扫掠体去除通知之后,高级规划器过程在终点716处结束。
图8是根据本公开的实施例的由用于如图5所示的多机器人系统中的每个机器人的低级内插器模块使用的方法的流程图800。在框802处,计算下一移动内插点。如本领域所公知的,内插点是由机器人的运动系统在沿着运动区段的多个位置处计算的。每个内插点规定机器人的下一移动,该移动由从控制器发送到机器人的关节运动命令来定义。在框804处,机器人控制器中的低级内插器接收由工作空间管理器发布的重叠区域。这些是图6中所示的并且在上面讨论的区域发布消息662。
在判断菱形806处,确定当前运动区段(其正由低级内插器内插)是否被包含在由工作空间管理器发布的重叠区域中。如果不是,那么在框808处,低级内插器指示机器人移动到计算的内插点。如果当前运动区段被包含在重叠区域中,则在判断菱形810处,确定是否有任何其他机器人处于当前重叠区域中。该信息可从来自工作空间管理器的区域发布消息中的区域中机器人列表获得。如果当前没有其它机器人处于重叠区域中,则在框808处,低级内插器指示机器人移动。
如果任何其它机器人处于当前重叠区域中,则在判断菱形812处,确定下一移动(计算的内插点)是否将使机器人进入重叠区域。如果是,则为了防止死锁情况发生,在框814处,低级内插器指示机器人保持位置。如果下一移动(计算的内插点)不会使机器人进入重叠区域,则在框808处,低级内插器指示机器人移动。上述要素806-814都能够实现为机器人运动程序中的互锁,如果需要,使机器人保持位置以避免死锁。
当在框808处执行移动时,该过程然后继续以确定是否已经进入或退出重叠区域。在判断菱形816处,如果刚完成的移动使机器人进入重叠区域,则在框818处,低级内插器向工作空间管理器发布“进入区域”消息。这在图6中示出,其中在框650处,工作空间管理器接收来自低级内插器的进入/退出区域消息642,并且工作空间管理器使用该信息来更新用于相关重叠区域的区域内机器人列表。在判断菱形820处,如果刚完成的移动使机器人退出重叠区域,则在框822处,低级内插器向工作空间管理器发布“退出区域”消息,在那里它也如图6所示地被处理。
概括以上讨论,图5示出了系统中的机器人和工作空间管理器的高级交互。图6示出了工作空间管理器的细节,包括来自机器人控制器的输入和到机器人控制器的输出。图7和8分别示出了机器人控制器的高级规划器和低级内插器模块所使用的方法,包括来自工作空间管理器的输入和到工作空间管理器的输出。
在整个前述和以下讨论中,应当理解,由低级内插器评估的“下一移动”不一定只是单个步骤或内插点,而可以是即将到来的机器人运动的任何增量(诸如关节运动的下三个内插点)。
图9A-9G是根据本公开的实施例的三机器人系统的重叠区域和事件的时间序列的图示。图9A-9G提供了重叠区域如何随时间演变(即,出现、改变形状和消失)并且在多机器人系统中被相应地管理的清楚描述。图9A-9G以二维示出以保持视觉清晰。然而,应当理解,扫掠体和重叠区域实际上是三维的,如图4所示。
在图9A中,机器人R1发布了标记为“Seg1-1”的扫掠体902,机器人R2发布了标记为“Seg2-1”的扫掠体904,机器人R3发布了标记为“Seg3-1”的扫掠体906。在图9A的上/左部分中以简化的几何形式示出了扫掠体Seg1-1、Seg2-1和Seg3-1,并且在图9A的下/右部分中(使用诸如S1-1等之类的简化符号)以框图形式示出了它们,其中,它们被它们各自的机器人发布给工作空间管理器(WSMGR),工作空间管理器使用最新的扫掠体数据来更新重叠区域池920中的重叠区域。如附图标记930几何表示的,重叠区域“区域1”由扫掠体Seg1-1和Seg2-1的相交部分形成。关于区域1的数据-包括相关机器人和所涉及的运动区段-在重叠区域池920中示出。在图9A-9G中未示出区域中机器人列表,但是该段数据由于涉及重叠区域池920中的每个区域而容易理解。
在图9B中,如几何描述和框图中所示,机器人R1发布了标记为“Seg1-2”的新的扫掠体908。来自机器人R1的Seg1-2的添加导致机器人R1和R2的运动之间的更大重叠区域。因此,由工作空间管理器重新计算的重叠区域1(930)如图所示在尺寸上已经增大。注意,因为区域1已经存在并且刚刚被修改,因此不创建新的重叠区域。基于该事件(R1发布新的扫掠体Seg1-2),因为区域的几何定义已经改变,并且所涉及的运动区段列表已经改变,所以工作空间管理器将重新发布重叠区域1,如重叠区域池920中所示。进一步注意,Seg1-1与Seg1-2的重叠不产生重叠区域,因为这两个扫掠体都来自机器人R1。
在图9C中,如几何描述和框图所示,机器人R3发布了标记为“Seg3-2”的扫掠体910。来自机器人R3的Seg3-2的添加导致在机器人R1和R3的运动之间创建新的重叠区域“区域2”。在几何描述(932)中和在重叠区域池920中的框图中示出了区域2。现有区域1不受区域2的创建影响。基于该事件(R3发布扫掠体Seg3-2),工作空间管理器将发布具有其几何定义、相关机器人和所涉及的运动区段的列表的区域2,但是将不重新发布重叠区域1,因为与该区域有关的任何内容都没有改变。
在图9D中,如几何描述和框图中所示,机器人R2发布了标记为“Seg2-2”的扫掠体912。来自机器人R2的Seg2-2的添加导致区域2(932)具有显着不同的几何形状,如图示所示。如几何描述和重叠区域池920中的框图所示,现在区域2还包括相关机器人和所涉及的运动区段的修订列表。现有区域1不受区域2的改变影响,基于该事件(R2发布扫掠体Seg2-2),工作空间管理器将重新发布具有其修订的几何定义、相关机器人以及更新的所涉及的运动区段的修订列表的区域2。再次,区域1将不会被重新发布,因为与该区域有关的任何内容都没有改变。
在图9E中,如几何描述和框图所示,机器人R1发布扫掠体“Seg1-1”(902)的完成。机器人R1完成Seg1-1导致区域1(930)具有显着不同的几何形状,如图示所示。现在,如几何描述和重叠区域池920中的框图所示,区域1还包括所涉及的运动区段的修订列表。现有区域2不受区域1的改变影响。基于该事件(R1发布扫掠体Seg1-1的到期),工作空间管理器将重新发布具有其修订的几何定义和所涉及的运动区段的修订列表的区域1。区域2将不会被重新发布,因为与该区域有关的任何内容都没有改变。
在图9F中,如几何描述和框图所示,机器人R2发布扫掠体Seg2-1的完成(904),并且机器人R3发布扫掠体Seg 3-1的完成(906)。如几何描述和重叠区域池920的框图所示,机器人R2完成Seg2-1导致区域1(930)被消除。现有区域2不受扫掠体Seg2-1的完成或扫掠体Seg 3-1的完成影响。基于该事件(扫掠体Seg2-1和Seg 3-1的到期),工作空间管理器将发布区域1的消除。区域2将不会被重新发布,因为与该区域有关的任何内容都没有改变。
在图9G中,机器人R1/R2/R3中的每个发布来自图9F的其剩余的扫掠体的完成(Seg1-2、Seg2-2和Seg 3-2),并且机器人R1/R2/R3中的每个发布新的扫掠体(Seg1-3、Seg2-3和Seg 3-3)。如几何描述和框图中所示,区域2随着其涉及的所有扫掠体的完成而消失,并且由于在新发布的扫掠体之间不存在重叠,因此没有创建新的重叠区域。因此,工作空间管理器将发布区域2的消除。
图9A-9F中所示的过程将继续由机器人发布新的扫掠体,以及由工作空间管理器处理的重叠区域的出现、消失和修改,直到机器人的运动程序已经完成。工作空间管理器可以以任意组合处理在给定时间步处来自多于一个机器人的新的扫掠体发布、在所述时间步处的来自单个机器人的多个扫掠体的发布等。在所有这些过程中,机器人使用重叠区域信息来避免进入被占用的重叠区域,从而防止死锁状况发生。
以上公开的在线互锁插入技术-包括工作空间管理器及其从机器人控制器的输入和到机器人控制器的输出的在图5-8的流程图和框图中示出,并且在图9A-9F的重叠区域时间序列中示出-已经被证明成功地防止了由于自适应运动事件而不能被预先分析的机器人运动程序中的死锁情况。这些技术是有效的-使机器人在必要时保持位置以避免进入被占用的重叠区域。所述技术也有效地-能够实时计算而不会由于计算而导致机器人操作的减慢。
然而,在某些条件下,当使用上述公开的技术时,由于当一个机器人发布新的运动区段扫掠体并且另一个机器人已经占用更新的重叠区域的空间的一部分时重叠区域改变,死锁情况仍然可能发生。下面讨论这种情况及其解决方案。
图10A/10B/10C是双机器人系统的渐进说明,其中即使没有机器人移动到被占用的重叠区域中,也会出现死锁情况。与前面关于图2所讨论的方式相同,机器人1000和机器人1010在顶部(平面)视图中被示为简单的机器人,其具有基座、机器人臂和工具或末端执行器。机器人1000具有沿着路径1002(从右到左以直线)移动的工具,而机器人1010具有沿着路径1012(从左到右以回飞镖形)移动的工具。机器人1000和1010各自已经发布针对即将到来的运动区段的扫掠体,并且工作空间管理器已经计算了重叠区域1020,如图所示。
在图10A中,机器人1000/1010都没有移动,并且机器人1000和1010两者都保持在重叠区域1020之外。在图10B中,机器人1000和1010两者都已经沿着它们各自的路径移动。现在,机器人1010位于重叠区域1020内。机器人1000保持在重叠区域1020之外,并且不能沿着其路径进一步移动,因为下一移动将使机器人1000进入被占用的重叠区域。
在图10C中,机器人1000/1010都没有从图10B进一步移动。然而,机器人1010已经发布了新的运动区段扫掠体,这已经使得重叠区域1020移动到被示为重叠区域1020A的新位置。即使机器人1000没有移动到被占用的重叠区域中,它现在发现它自己与机器人1010一起在重叠区域1020A内。现在存在死锁情况,因为机器人1000/1010都没有能够沿其路径进一步移动而不引起碰撞。
图11是根据本公开的实施例的由如图10A-10C所示的多机器人系统中的每个机器人的控制器中的低级内插器模块使用的方法的流程图1100。图11的低级内插器方法与先前所论述的图8的低级内插器方法相同,除了已添加在图11中的要素1110-1116(阴影部分)以外。图8的所有要素步骤保留其原始编号,且此处将不进一步论述。
在判断菱形810之后添加新的判断菱形1110。在另一个机器人处于重叠区域中(在判断菱形810处的“是”)的情况下,判断菱形1110确定机器人本身(该低级内插器方法正运行于其上的机器人)是否也处于重叠区域中。如图10C所示,如果由于另一机器人发布新的运动区段扫掠体而使重叠区域几何形状改变,则可能发生这种情况。
如果在判断菱形1110处机器人处于重叠区域中,则在框1112处,检查由先前扫掠体定义的重叠区域。在判断菱形1114处,机器人确定其是否处于来自先前扫掠体的重叠区域中。如果不是,则在框1116处,机器人“回放”或沿着其运动路径向后移动一步。采取该动作是因为如果机器人不处于来自先前扫掠体的重叠区域中,则这意味着更新的重叠区域的发布必须已经导致该区域的双重占用。在图10A-10C的示例中,框1116处的回放将使机器人1000移回到其如图10A所示的位置,这将使机器人1010能够进行其下一移动以至其运动路径的末端,之后机器人1000可以沿着其整个运动路径移动。
如果在判断菱形1114处,机器人确定其处于来自先前扫掠体的重叠区域中,则在框814处,机器人保持其位置而不是回放。在这种情况下,重叠区域中涉及的其他机器人使用相同的逻辑可以发现它能够回放,这将解决如上所述的死锁情况。
出现图10A-10C所示的死锁情况是因为在机器人1000已经移动到易受撞击位置之后,机器人1010发布了新的运动区段扫掠体。这种运动区段的迟到发布可以发生在具有自适应特征(例如,跳跃、位置寄存器)的机器人运动程序中,如先前所讨论的。图11的方法提供了一种用于自动解决由于运动区段的这种迟到发布而发生的死锁情况的技术,其中自动死锁解决仅以一个机器人的较小后退来保持多个机器人操作。自动死锁解决方案避免了过去所需的多机器人系统的完全关闭和操作者干预的需要。
一些多机器人系统包括一个或多个机器人,其执行连续的过程操作,例如喷涂或激光/电弧焊。一旦这些连续的过程操作开始,它们就不能被中断,因为操作的质量将受损。这种情况可以通过向上述死锁防止方法和系统添加另外的逻辑来解决。特别地,将优先级给予已经开始的连续过程操作,使得其他机器人具有在必要时保持位置以避免死锁情况的责任是可能的。这在图12-14中描述。
图12是根据本公开的实施例的由在多机器人系统中执行连续过程操作的每个机器人的控制器中的运动规划器使用的方法的流程图。图12的方法的目的是计算整个过程操作的扫掠体。在框1202处,分析过程运动以找到开始和结束事件。例如,典型的运动程序可以包括开启过程的命令“焊接开启”或“喷涂开启”和关闭过程的类似命令。在识别了运动程序中的开始和结束事件的情况下,在框1204处,针对过程操作的整个运动计算扫掠体,其通常将包括多个运动区段。诸如跳跃之类的自适应运动事件通常不出现在过程操作中,因此所计算的扫掠体应当是精确的。在框1206处,将针对过程操作的所计算的扫掠体存储在机器人控制器的存储器中。
图13是根据本公开的实施例的由在多机器人系统中执行连续过程操作的每个机器人的控制器中的高级规划器使用的方法的流程图。当在机器人的运动程序的执行期间遇到过程开始指令时,在框1302处,由机器人的高级规划器发布(在图12中计算和存储的)过程扫掠体。在判断菱形1304处,确定是否有任何其它机器人处于涉及过程扫掠体的任何重叠区域中。如果是,则机器人继续在判断菱形1304处循环,直到另一机器人已经腾出重叠区域为止。在框1306处,当重叠区域已被腾空时,机器人开始该过程(例如,开始喷漆)。在框1308处,机器人向工作空间管理器发布“进入区域”消息。在过程扫掠体被发布和相关重叠区域现被由机器人进入的情况下,系统中的其它机器人将保持离开重叠区域,并且机器人能够在没有死锁风险的情况下完成过程操作。
当遇到过程结束指令时,在框1310处,机器人通知工作空间管理器过程扫掠体已经完成并且可以被移除。在框1312处,机器人结束该过程(例如,停止喷涂)。在框1314处,机器人向工作空间管理器发布“退出区域”消息。在过程扫掠体被移除并且相关重叠区域现在被机器人退出的情况下,系统中的所有机器人使用先前描述的死锁避免方法(在线扫掠体检查和回放)来恢复。
图14是根据本公开的实施例的由在多机器人系统中执行连续过程操作的每个机器人的控制器中的低级内插器使用的方法的流程图。当为机器人的下一运动计算内插点时,在判断菱形1402处确定在当前运动区段中是否有过程操作。如果是,则在判断菱形1404处,低级内插器与(同一机器人控制器的)高级规划器进行检查,以确定是否已经发布了用于过程的整个运动的扫掠体和允许开始该过程。即,如果已经到达图13的框1306,则在判断菱形1404处,高级规划器告诉低级内插器允许开始该过程,并且在框1406处,低级内插器告诉机器人移动到下一内插点。一旦过程操作开始,机器人将继续给自己移动到每个下一内插点的许可,直到过程结束。
如果在判断菱形1404处,高级规划器告诉低级内插器不允许开始该过程(例如,过程扫掠体还没有被发布,或者所得到的重叠区域被另一个机器人占用),并且在框1406处,低级内插器告诉机器人保持位置。机器人将继续保持位置,直到从高级规划器接收到移动到过程扫掠体中的许可。
如果在判断菱形1402处确定在当前运动区段中不存在连续的过程操作,则在框1410处,使用用于在线扫掠体发布、重叠区域检查和回放(图11,如上所述)的方法。
值得注意的是,在图12-14的方法中描绘的,适应连续过程操作所需的改变是最小的,并且不需要改变重叠区域池的数据模型。不必发布正在进行的过程的通知以用于其它机器人知晓。仅需要以先前描述的方式发布整个过程的扫掠体,并发布区域进入/退出消息。
在上文公开的所有方法和系统中,如所描述的机器人控制器中的高级规划器和低级内插器的功能应当被理解为一个示例实现实施例。不同的机器人控制器设计可能不会以这种方式在高级规划器模块和低级内插器模块之间划分计算、特征和功能。只要机器人控制器执行运动区段扫掠体发布和移动前检查以避免进入占用的重叠区域,所公开的技术将有效地防止和/或解决死锁情况。
在整个前述讨论中,描述并暗示了各种计算机和控制器。应当理解,这些计算机和控制器的软件应用和模块在具有处理器和存储器模块的一个或多个计算设备上执行。具体地,如上文关于图1所讨论的,这包括机器人控制器102和112中的每一个中的处理器,以及可选的工作单元控制器130。具体地,机器人控制器和工作单元控制器中的处理器被配置为以贯穿前述公开内容所描述的方式执行运动区段扫掠体发布、重叠区域计算和发布、以及运动前检查以避免进入占用的重叠区域。此外,应当理解,可以为工作单元中的每个机器人提供单独的控制器,或者一个控制器可以用于控制多于一个机器人的运动,如最适合于应用。在任何情况下,存在为每个单独的机器人计算运动的运动规划器模块,包括上文描述的高级规划器和低级内插器功能。
如上所述,所公开的用于机器人运动规划中的死锁避免的技术提高了死锁防止的鲁棒性和可靠性。所公开的技术避免了用于重叠区域避免的手动定义的互锁的前期努力和固有的不准确性,并且使得即使在包括诸如跳跃和位置寄存器的自适应特征的运动程序中也
能够添加自动重叠区域避免互锁,所述自适应特征仅在实际在线机器5人操作期间计算。
虽然上面已经讨论了机器人运动规划中死锁避免的多个示例性方面和实施例,但是本领域技术人员将认识到其修改、置换、添加和子组合。因此,所附权利要求和此后引入的权利要求旨在被解释
为包括所有在它们的真实精神和范围内的这些修改、置换、添加和子0组合。
Claims (24)
1.一种用于防止多机器人系统中的死锁的在线的方法,所述多机器人系统包括在共同工作空间中操作的两个或更多个机器人,每个机器人由包括处理器和存储器的控制器控制,所述方法包括:
由用于所述两个或更多个机器人中的每个机器人的所述控制器中的运动规划器模块计算针对一个或多个即将到来的运动区段的扫掠体;
向工作空间管理器模块发布所述扫掠体;
由所述工作空间管理器模块将重叠区域计算为来自所述两个或更多个机器人中的任意两个或更多个机器人的各个扫掠体中的任意两个或更多个扫掠体之间的重叠的空间体;
向各个重叠区域中的每个重叠区域中涉及的各个机器人中的每个机器人的控制器,发布所述各个重叠区域中的每个重叠区域和状态数据;
在计算机器人移动的下一增量之后,由用于所述两个或更多个机器人中的每个机器人的所述控制器中的所述运动规划器模块检查所述各个重叠区域和所述状态数据;
当所述下一增量将不会导致机器人进入被占用的重叠区域时,执行机器人移动的下一步骤;
当所述下一增量将导致机器人进入被占用的重叠区域时,将机器人保持在当前位置;以及
当进入或退出重叠区域时,由用于所述两个或更多个机器人中的每个机器人的所述控制器中的所述运动规划器模块通知所述工作空间管理器模块。
2.根据权利要求1所述的方法,其中,所述工作空间管理器模块运行在各个控制器中的一个上,或者在与用于所述两个或更多个机器人中的每个机器人的所述控制器通信的计算机上。
3.根据权利要求1所述的方法,其中,在机器人操作期间连续地执行计算针对一个或多个即将到来的运动区段的扫掠体以及发布所述扫掠体。
4.根据权利要求1所述的方法,其中,仅在确定所述运动区段中的任何自适应命令被解决之后,执行计算针对一个或多个即将到来的运动区段的扫掠体以及发布所述扫掠体,其中,所述自适应命令包括跳跃和位置寄存器偏移中的一个或多个。
5.根据权利要求1所述的方法,还包括:当所述扫掠体的运动区段中的一个已经完成时,由用于所述两个或更多个机器人中的每个机器人的所述控制器中的所述运动规划器模块,通知所述工作空间管理器模块。
6.根据权利要求1所述的方法,其中,所述各个重叠区域中的每个重叠区域的状态数据包括所述重叠的空间体、包括在所述重叠区域中的各个扫掠体中的每个扫掠体的运动区段编号、所述重叠区域中涉及的机器人的列表、以及当前处于所述重叠区域中的任何机器人的标识。
7.根据权利要求1所述的方法,其中,发布所述各个重叠区域中的每个重叠区域和状态数据包括当第一次创建每个重叠区域时发布每个重叠区域,当所述状态数据的任何元素改变时重新发布每个重叠区域,以及当每个重叠区域不再存在时发布每个重叠区域的取消。
8.根据权利要求1所述的方法,其中,使用表示所述扫掠体的体素来计算用于所述各个重叠区域中的每个重叠区域的重叠的空间体。
9.根据权利要求1所述的方法,还包括,当所述下一增量将使机器人进入被占用的重叠区域时,确定所述机器人是否已经处于所述被占用的重叠区域中,并且如果是,则确定所述机器人是否处于针对先前运动区段扫掠体的被占用的重叠区域中。
10.根据权利要求9所述的方法,还包括:当所述机器人处于针对所述先前运动区段扫掠体的被占用的重叠区域中时,将所述机器人保持在当前位置中,并且当所述机器人不处于针对所述先前运动区段扫掠体的被占用的重叠区域中时,移动回到先前增量。
11.根据权利要求1所述的方法,其中,所述控制器配置为将移动优先级给予所述两个或更多个机器人中的正在执行连续过程操作的任一个,所述连续过程操作包括喷涂、激光焊接或电弧焊,或者分配材料的焊珠。
12.根据权利要求11所述的方法,其中,正在执行所述连续过程操作的机器人的控制器上的运动规划器模块计算并发布整个连续过程操作的扫掠体,然后,当涉及针对整个连续过程操作的扫掠体的重叠区域没有被占用时,开始所述连续过程操作。
13.一种用于防止多机器人系统中的死锁的在线的方法,所述多机器人系统包括在共同工作空间中操作的两个或更多个机器人,每个机器人由包括处理器和存储器的控制器控制,所述方法包括:
由用于所述两个或更多个机器人中的每个机器人的所述控制器中的运动规划器模块计算针对一个或多个即将到来的运动区段的扫掠体,其中,仅在确定所述运动区段中的任何自适应命令被解决之后,才在机器人操作期间连续地执行计算所述扫掠体,其中,所述自适应命令包括跳跃和位置寄存器偏移中的一个或多个;
向工作空间管理器模块发布所述扫掠体;
由所述工作空间管理器模块将重叠区域计算为来自所述两个或更多个机器人中的任意两个或更多个机器人的各个扫掠体中的任意两个或更多个扫掠体之间的重叠的空间体;
将各个重叠区域中的每个所述重叠区域和状态数据发布到所述5各个重叠区域中的每个所述重叠区域中涉及的各个机器人中的每个机器人的控制器,其中,所述各个重叠区域中的每个重叠区域的状态数据包括所述重叠的空间体、包括在所述重叠区域中的各个扫掠体中的每个扫掠体的运动区段编号、所述重叠区域中涉及的机器人的列表、以及当前处于所述重叠区域中的任何机器人的标识;
0在计算机器人移动的下一步之后,由用于所述两个或更多个机器人中的每个机器人的所述控制器中的所述运动规划器模块检查所述各个重叠区域和所述状态数据;
当下一步将不会导致机器人进入被占用的重叠区域时,执行机器人移动的下一步;
5当下一步将导致机器人进入被占用的重叠区域时,将机器人保持在当前位置;
当进入或退出重叠区域时,由用于所述两个或更多个机器人的每个机器人的所述控制器中的所述运动规划器模块通知所述工作空间管理器模块;以及
0当所述扫掠体的运动区段中的一个已经完成时,由用于所述两个或更多个机器人中的每个机器人的所述控制器中的所述运动规划器模块通知所述工作空间管理器模块。
14.一种具有在线死锁防止的多机器人系统,所述系统包括:5两个或更多个在共同工作空间中操作的机器人;
一个或多个控制器,其控制所述两个或更多个机器人,每个控制器包括处理器和存储器;
运动规划器软件模块,其运行在用于所述两个或更多个机器人中的每个机器人的控制器上;以及
工作空间管理器软件模块,其与用于所述两个或更多个机器人中的每个机器人的所述控制器上的所述运动规划器软件模块通信,
其中,用于所述两个或更多个机器人中的每个机器人的控制器上的所述运动规划器软件模块被配置为;
计算针对一个或多个即将到来的运动区段的扫掠体,并且向所述工作空间管理器软件模块发布所述扫掠体,
以及其中,所述工作空间管理器软件模块配置成;
将重叠区域计算为来自所述两个或更多个机器人中的任意两个或更多个机器人的各个扫掠体中的任意两个或更多个扫掠体之间的重叠的空间体,
向各个重叠区域中的每个重叠区域中涉及的各个机器人中的每个机器人的所述控制器,发布所述各个重叠区域中的每个重叠区域和状态数据;
并且其中,用于所述两个或更多个机器人中的每个机器人的所述控制器上的所述运动规划器软件模块还配置为;
在计算机器人移动的下一增量之后检查所述各个重叠区域和所述状态数据,
当所述下一增量将不会致使机器人进入被占用的重叠区域时,执行机器人移动的下一增量,
当所述下一增量将导致机器人进入被占用的重叠区域时,将机器人保持在当前位置,以及
当进入或退出重叠区域时,通知所述工作空间管理器软件模块。
15.根据权利要求14的系统,其中所述工作空间管理器软件模块运行在各个控制器中的一个上,或者在与所述各个控制器中的每个控制器通信的计算机上。
16.根据权利要求14所述的系统,其中,所述运动规划器软件模块在机器人操作期间连续地计算并发布针对一个或多个即将到来的运动区段的所述扫掠体。
17.根据权利要求14所述的系统,其中,所述运动规划器软件模块仅在确定所述运动区段中的任何自适应命令被解决之后,计算针对一个或多个即将到来的运动区段的扫掠体,以及发布所述扫掠体,其中,所述自适应命令包括跳跃和位置寄存器偏移中的一个或多个。
18.根据权利要求14所述的系统,其中,所述运动规划器软件模块还配置为当所述扫掠体的运动区段中的一个已经完成时,通知所述工作空间管理器软件模块。
19.根据权利要求14所述的系统,其中,所述各个重叠区域中的每个重叠区域的状态数据包括所述重叠的空间体、包括在重叠区域中的各个扫掠体中的每个扫掠体的运动区段编号、在所述重叠区域中涉及的机器人的列表、以及当前处于所述重叠区域中的任何机器人的标识。
20.根据权利要求14的系统,其中,工作空间管理器软件模块当第一次创建每个重叠区域时发布所述各个重叠区域中的每个重叠区域和所述状态数据,当所述状态数据的任何元素改变时重新发布每个重叠区域和所述状态数据,并且在每个重叠区域不再存在时发布每个重叠区域的取消。
21.根据权利要求14所述的系统,所述运动规划器软件模块还配置为:当所述下一增量将使所述机器人进入被占用的重叠区域时,确定所述机器人是否已经处于所述被占用的重叠区域中,并且如果是,则确定所述机器人是否处于针对先前运动区段扫掠体的被占用的重叠区域中。
22.根据权利要求21所述的系统,所述运动规划器软件模块还配置为:当所述机器人处于针对所述先前运动区段扫掠体的被占用的重叠区域中时,将所述机器人保持在当前位置中,并且当所述机器人不处于针对所述先前运动区段扫掠体的被占用的重叠区域中时,将所述机器人移动回到先前增量。
23.如权利要求14所述的系统,其中,准备开始连续过程操作的机器人的控制器上的所述运动规划器软件模块计算并发布所述连续过程操作中的所有运动区段的扫掠体,然后,当涉及整个连续过程操作的扫掠体的重叠区域没有被占用时,开始所述连续过程操作。
24.根据权利要求14所述的系统,其中,在计算机器人移动的下一增量之后检查所述各个重叠区域和所述状态数据以及在检查所述各个重叠区域之后采取的动作被实现为由用于所述两个或更多个机器人的每个机器人的控制器上的所述运动规划器软件模块执行的运动程序中的互锁。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/644,123 US20230182299A1 (en) | 2021-12-14 | 2021-12-14 | Online auto-interlock strategy |
US17/644,123 | 2021-12-14 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116263716A true CN116263716A (zh) | 2023-06-16 |
Family
ID=86498914
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211598412.0A Pending CN116263716A (zh) | 2021-12-14 | 2022-12-12 | 在线自动互锁策略 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230182299A1 (zh) |
JP (1) | JP2023088293A (zh) |
CN (1) | CN116263716A (zh) |
DE (1) | DE102022131537A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117325185B (zh) * | 2023-11-27 | 2024-04-09 | 成都越凡创新科技有限公司 | 移动机器人解死锁的方法及调度设备 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102004027944B4 (de) * | 2004-06-08 | 2012-02-16 | Kuka Laboratories Gmbh | Verfahren zum Schützen eines Roboters gegen Kollisionen |
JP4159577B2 (ja) * | 2005-12-13 | 2008-10-01 | ファナック株式会社 | 複数のロボット間のインターロック自動設定装置及び自動設定方法 |
US9144904B2 (en) * | 2008-05-21 | 2015-09-29 | Fanuc Robotics America Corporation | Method and system for automatically preventing deadlock in multi-robot systems |
US9707681B2 (en) * | 2015-07-27 | 2017-07-18 | Siemens Industry Software Ltd. | Anti-collision management of overlapping robotic movements |
JP6576255B2 (ja) * | 2016-01-25 | 2019-09-18 | キヤノン株式会社 | ロボット軌道生成方法、ロボット軌道生成装置、および製造方法 |
CN106979785B (zh) * | 2017-03-24 | 2020-10-16 | 北京大学深圳研究生院 | 一种面向多机器人系统的完全遍历路径规划方法 |
US11745345B2 (en) * | 2019-08-30 | 2023-09-05 | Intrinsic Innovation Llc | Planning by work volumes to avoid conflicts |
US11890758B2 (en) * | 2019-08-30 | 2024-02-06 | Intrinsic Innovation Llc | Robot planning from process definition graph |
US20210197378A1 (en) * | 2019-12-27 | 2021-07-01 | X Development Llc | Offline robot planning with online adaptation |
-
2021
- 2021-12-14 US US17/644,123 patent/US20230182299A1/en active Pending
-
2022
- 2022-11-29 DE DE102022131537.1A patent/DE102022131537A1/de active Pending
- 2022-12-09 JP JP2022196775A patent/JP2023088293A/ja active Pending
- 2022-12-12 CN CN202211598412.0A patent/CN116263716A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
US20230182299A1 (en) | 2023-06-15 |
DE102022131537A1 (de) | 2023-06-15 |
JP2023088293A (ja) | 2023-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3794314B1 (en) | Robot coordination in a shared workspace | |
US11279033B2 (en) | Method and apparatus for collision-free motion planning of a manipulator | |
EP1798618B1 (en) | Device and method for automatically setting interlock between robots | |
US9144904B2 (en) | Method and system for automatically preventing deadlock in multi-robot systems | |
JP5981215B2 (ja) | マルチロボットシステムのデッドロックを自動的に防止する方法及びシステム | |
EP1681607B1 (en) | Bending apparatus comprising means for performing setup operations | |
US10919153B2 (en) | Teaching method for teaching operations to a plurality of robots and teaching system used therefor | |
US9207668B2 (en) | Method of and apparatus for automated path learning | |
US11813753B2 (en) | Collision avoidance motion planning method for industrial robot | |
US20100114338A1 (en) | Multi-goal path planning of welding robots with automatic sequencing | |
US20100305753A1 (en) | Method And Device For Controlling A Manipulator | |
US20090228138A1 (en) | Numerical controller controlling five-axis processing machine | |
EP0744046A1 (en) | Intelligent system for generating and executing a sheet metal bending plan | |
CN116263716A (zh) | 在线自动互锁策略 | |
EP0077177B1 (en) | Numerical control method and arrangement | |
Montano et al. | Coordination of several robots based on temporal synchronization | |
Clark et al. | Dynamic networks for motion planning in multi-robot space systems | |
JP2020082285A (ja) | 複数のロボットの干渉確認方法、ロボットシステム | |
Coskun et al. | Online plan repair in multi-robot coordination with disturbances | |
CN113942014B (zh) | 轨迹生成方法及轨迹生成装置、机器人设备、存储介质 | |
US20220193908A1 (en) | Robot planning | |
WO2022139939A1 (en) | Robot planning | |
Jongluxmanee et al. | Improved soil shape on the dump truck for soil loading operation of excavator | |
JP2817580B2 (ja) | ロボット群の制御システム | |
Wang et al. | Collision-free path planning for arc welding robot based on ida-de algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |