CN115003460A - 多机器人操作环境中的机器人配置 - Google Patents
多机器人操作环境中的机器人配置 Download PDFInfo
- Publication number
- CN115003460A CN115003460A CN202180010425.9A CN202180010425A CN115003460A CN 115003460 A CN115003460 A CN 115003460A CN 202180010425 A CN202180010425 A CN 202180010425A CN 115003460 A CN115003460 A CN 115003460A
- Authority
- CN
- China
- Prior art keywords
- processor
- robot
- robots
- population
- candidate
- 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
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/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
- B25J9/1666—Avoiding collision or forbidden zones
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1669—Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
-
- 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
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/12—Computing arrangements based on biological models using genetic models
- G06N3/126—Evolutionary algorithms, e.g. genetic algorithms or genetic programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
-
- 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/40—Robotics, robotics mapping to robotics vision
- G05B2219/40417—For cooperating manipulators
-
- 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/40—Robotics, robotics mapping to robotics vision
- G05B2219/40476—Collision, planning for collision free path
-
- 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/40—Robotics, robotics mapping to robotics vision
- G05B2219/40515—Integration of simulation and planning
-
- 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/40—Robotics, robotics mapping to robotics vision
- G05B2219/40629—Manipulation planning, consider manipulation task, path, grasping
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Theoretical Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Computing Systems (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Evolutionary Computation (AREA)
- General Physics & Mathematics (AREA)
- Physiology (AREA)
- Genetics & Genomics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Manipulator (AREA)
Abstract
在多机器人操作环境中,多机器人配置的解决方案至少在一定程度上基于待由机器人执行的给定组任务来跨一组非同质参数进行协同优化。非同质参数可以包括以下中的两个或更多个:机器人的相应基座位置和取向、向相应机器人的任务分配、机器人的相应目标序列和/或轨迹。这可以在运行前执行。对于每个机器人,输出可以包括:工作单元布局、目标的有序列表或向量、可选的在相应目标处的停留持续时间以及每对连续目标之间的路径或轨迹。输出可以为问题提供一个完整的、可执行的解决方案,在没有时序可变性的情况下,其能够用于控制机器人而无需任何修改。遗传算法(例如差分进化)可以可选地用于生成候选解决方案的群体。
Description
技术领域
本公开总体涉及多机器人操作环境或共享工作空间中的机器人配置,并且涉及这种环境或共享工作空间中的机器人配置的优化。
背景技术
相关技术
各种应用采用或可能希望采用在两个或多个机器人公共或以其他方式共享的多机器人操作环境中的两个或多个机器人。多机器人操作环境可以采用共享工作空间的形式。例如,两个或更多机器人可用于在公共操作环境中对一个或更多个对象或工件执行任务,例如将螺栓拧到底盘,其中机器人的运动范围可能重叠。
运动规划是机器人控制和机器人技术中的一个基本问题。运动规划指定了机器人从起始状态到目的状态能够遵循的路径,通常是为了完成任务而不会与操作环境中的任何障碍物发生碰撞,或者与操作环境中的任何障碍物发生碰撞的可能性降低。运动规划的挑战涉及快速执行运动规划的能力,同时可能考虑环境的变化(例如,改变环境中障碍物的位置或取向)。挑战还包括使用成本相对较低的设备、以相对低的能耗和有限的存储量(例如,存储器电路(例如在处理器芯片电路上的存储器电路))执行运动规划。
两个或多个机器人在多机器人操作环境或共享工作空间(工作空间通常被称为工作单元)中的操作会出现一类特定的问题。例如,运动规划应考虑并避免机器人或机器人的机器人附件(appendage)在执行任务期间可能相互干扰的情况。
在公共工作空间中操作多个机器人的一种方法可以被称为任务级方法。通过定义工作空间的机器人可能相互碰撞的部分,在此被称为干扰区域,并对各个机器人进行编程,使得在任何给定的时间点上只有一个机器人位于工作空间的干扰区域中,工程师可以手动确保机器人不会发生碰撞。例如,当第一个机器人开始移动到工作空间的干扰区域时,第一个机器人设置一个标志。控制器(例如,可编程逻辑控制器(PLC))读取标志并防止其他机器人移动到工作空间的干扰区域中,直到第一个机器人在退出干扰区域时取消标志。这种方法直观、易于理解,但实现起来通常困难且耗时,并且可能不会产生优化的结果。这种方法必然具有较低的工作吞吐量,因为使用任务级消除冲突通常会导致至少一个机器人在相当长的时间内处于空闲状态,即使空闲机器人在共享工作空间中执行有用的工作在技术上是可能的。
在传统方法中,工程师团队通常将问题分解,并相互独立地优化较小的子问题(例如,为机器人分配任务、对分配给每个机器人的任务进行排序、为每个机器人进行运动规划)。这可以采用迭代模拟运动来确保机器人/机器人附件不会相互碰撞,这可能需要数小时的计算时间,并且可能不会产生优化的解决方案。另外,如果对工作空间的修改导致机器人/机器人附件中的一个的轨迹发生变化,则必须重新验证整个工作流程。这样的方法当然不是最优的,并且通常需要专家通过缓慢的过程反复尝试找到解决方案的组合,这些解决方案组合在一起才会产生良好的结果。
发明内容
在此描述了各种方法和设备,它们产生多机器人配置的解决方案,所述解决方案基于多机器人操作环境中的机器人执行的给定组任务跨一组非同质(non-homogeneous)参数进行协同优化,例如工作单元布局和任务规划的协同优化的组合。这可以在离线或运行前的环境中执行,为这些类型的问题提供全局优化器。发明人不知道任何现有的针对此类问题的全局优化器解决方案。
输入可以包括多机器人操作环境的模型、机器人的模型、对能够采用的机器人总数的限制、机器人要完成的一组任务以及对能够分配给每个机器人的任务总数的限制(即机器人的目标量)。输入还可以可选地包括机器人或其一部分停留在目标处以例如完成任务(例如拧螺栓或螺母)或避免碰撞的一个或更多个停留持续时间。输入还可以可选地包括以下中的一个或更多个:对一个或更多个参数或变量的一组边界或约束或者对为建模或模拟碰撞提供的时间进行限制的时间限制。
输出可包括问题的完整解决方案,该解决方案可能已被有利地优化。尤其是,解决方案可能已经通过跨成组的两个或更多个非同质参数进行协同优化的优化引擎对所述C个候选解决方案的群体执行优化。非同质参数例如可以包括以下中的两个或更多个:机器人的相应基座位置和取向、向机器人中相应一个的任务分配和机器人的相应目标序列。在没有任何时序可变性的情况下,输出能够用于控制多机器人环境中的机器人而无需任何修改。可替代地,能够在运行期间采用一个或更多个运动规划器,例如,避免由于时序上的小变化(例如,有时拧紧螺钉所需的时间可能比其他时间多一点或少一点)而可能导致的碰撞。
输出例如可以包括:工作单元布局,并且对于每个机器人:目标的有序列表或向量(例如,机器人1:{目标7,目标2,暂停,目标9})、可选地在相应目标处的停留持续时间以及每对连续目标之间的路径或轨迹(例如,无碰撞路径或轨迹)。
工作单元布局可以为每个机器人提供(例如在笛卡尔坐标中的)基座位置和取向。每个机器人基座的基座位置和取向用相应的6元组{X,Y,Z,r,p,y}指定,其中X、Y和Z分别表示沿正交坐标系的相应轴线的位置,r(即滚动)表示围绕轴线中的第一个轴线的旋转量,p(例如俯仰)表示围绕轴线中的第二个轴线的旋转量,y(例如偏航)表示围绕轴线中的第三个轴线的旋转量。
全局优化器例如可以基于多变量混合整数优化算法,例如称为差分进化(DE)的算法。除非在权利要求中明确记载了DE算法,否则权利要求不限于该算法。
全局优化器优化(在笛卡尔坐标中的)机器人基座布局、(即,在C空间中的)机器人功能姿势和每个机器人的任务规划(相应机器人的暂停和有序目标列表)。主要优化目标可能是延迟(例如,完成目标的时间),但其他目标可能包括地面空间的有效使用、能源消耗或支出、完成目标的移动次数、并行操作机器人的能力、机器人等待时间的最小化、机器人的可用性、状态条件和/或适合执行特定类型任务的机器人的可用性(例如具有某种类型的臂端工具或末端执行器的机器人的可用性)等。因此,在此描述的结构和算法便于在共享工作空间或工作单元中操作的两个或更多个机器人的操作,至少在一定程度上优化这种布局和操作,并潜在地防止或至少降低机器人或机器人的机器人附件在共享工作空间中执行相应任务时相互碰撞的风险。通过执行已经优化到至少某种程度的自主规划,在此描述的结构和算法可以有利地减少多机器人工作空间的编程工作量。输入可能限于操作环境、待执行的任务和机器人的几何模型的描述。在此描述的结构和算法可以有利地动态分配待由机器人执行的任务。
附图说明
在附图中,相同的附图标记表示相似的元件或动作。附图中元件的大小和相对位置不一定按比例绘制。例如,各个元件的形状和角度未按比例绘制,其中一些元件可能被任意放大和定位以提高附图的易读性。另外,所绘制的元件的特定形状并不旨在传递关于该特定元件的真实形状的任何信息,选择该特定形状可能仅仅是为了便于在附图中识别。
图1是根据一个图示实施方式的共享工作空间或多机器人操作环境的示意图,多个机器人在其中操作以执行任务,并且配置系统执行优化以配置机器人。
图2是根据一个图示实施方式的图1的配置系统的功能框图,其包括一个或更多个处理器和存储处理器可执行指令的一个或更多个非暂时性处理器可读介质,并且还示出了多个机器人。
图3示出了根据一个图示实施方式的基于处理器的系统操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的高级机器人配置方法。
图4示出了根据一个图示实施方式的基于处理器的系统操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的高级多机器人环境模拟方法。
图5示出了根据一个图示实施方式的基于处理器的系统操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的低级多机器人环境模拟方法。
图6示出了根据一个图示实施方式的基于处理器的系统操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的低级多机器人优化DE方法。
图7示出了根据一个图示实施方式的参数化成本函数,该参数化成本函数能够与使用差分进化(DE)算法的实施方式一起使用。
图8是根据一个图示实施方式的进一步示出图7的成本函数的曲线图。
图9示出了根据一个图示实施方式的的数据结构,该数据结构可以由基于处理器的系统在以允许扰动的格式表示候选解决方案时(例如在执行图6的低级多机器人优化DE方法时)采用。
图10示出了根据一个图示实施方式的基于处理器的系统操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的低级多机器人DE候选解决方案的方法,其详细说明了群体生成器的操作。
具体实施方式
在以下描述中,阐述了一些具体细节以提供对各个公开的实施例的充分理解。但是,相关领域的技术人员会认识到,可以在没有这些具体细节中的一个或更多个细节的情况下实践实施例,或者利用其他方法、部件、材料等实践实施例。在其他实例中,没有详细示出或描述与计算机系统、致动器系统和/或通信网络有关的公知结构,以避免不必要地模糊实施例的描述。在其他情况下,没有详细描述用于生成一个或更多个对象等的感知数据和体积表示的众所周知的计算机视觉方法和技术,以避免不必要地模糊实施例的描述。
除非上下文另有要求,否则在随后的说明书和权利要求中,词语“包括”及其变型应被解释为开放的包括含义,即“包括,但是不限于”。
在本说明书全文中,提到“一个实施方式”或“实施方式”或者“一个实施例”或“实施例”时,指的是结合该实施例描述的特定特征、结构或者特性包含在至少一个实施方式中或至少一个实施例中。因此,在本说明书全文中多个地方出现的短语“在一个实施方式中”或“在实施方式中”或者“在一个实施例中”或“在实施例中”不一定都是指同一实施方式或同一实施例。此外,特定特征、结构或者特性可以以任何合适的方式结合在一个或更多个实施方式或实施例中。
除非内容另有明确指示,否则在本说明书和附图中使用的单数形式“一个”、“一种”、“该”包括多个所表示的对象。还应注意,除非内容另有明确指示,否则术语“或者”通常用来包括“和/或”的意义。
如在本说明书和所附权利要求中使用的,术语优化是指正在准备、生成或产生改进的结果,或者已经准备、生成或产生改进的结果。这些术语是在其相对意义上使用的,并不意味着已经准备、生成或产生绝对最佳的值。
如在本说明书和所附权利要求中使用的,术语“工作空间”或“共享工作空间”用于指当前操作环境,两个或更多个机器人在该当前操作环境中操作,共享工作空间的一个或更多个部分是机器人可能相互碰撞的体积,因此可以被称为干扰区域。操作环境可以包括障碍物和/或工件(即,机器人将与其交互或作用其上或与其作用的物品)。
如在本说明书和所附权利要求中使用的,术语“任务”用于指机器人任务,其中机器人从姿势A转变到姿势B而不与其环境中的障碍物发生碰撞。任务可以涉及抓取或松开物品、移动或放下物品、旋转物品或取回或放置物品。从姿势A到姿势B的转变可以可选地包括一个或更多个中间姿势之间的转变。
本文中提供的公开内容的标题和摘要仅是为了方便,不用于解释实施例的范围或意义。
图1示出了根据一种图示实施方式的机器人系统100,该机器人系统100包括在共享工作空间104中操作以执行任务的多个机器人102a、102b、102c(统称为102)。
机器人102可以采用多种形式中的任何一种。通常,机器人102将采用一个或更多个机器人附件103(仅标出一个)和基座105(仅标出一个)的形式或具有一个或更多个机器人附件和基座。机器人102可以包括具有一个或更多个关节的一个或更多个连杆装置以及响应于控制或驱动信号移动连杆装置的耦接的且可操作的致动器(例如,电动马达、步进马达、螺线管、气动致动器或液压致动器)。例如,气动致动器可以包括一个或更多个活塞、气缸、阀、贮气器和/或压力源(例如,压缩机、鼓风机)。例如,液压致动器可以包括一个或更多个活塞、气缸、阀、贮液器(例如,低压缩性液压流体)和/或压力源(例如,压缩机、鼓风机)。机器人系统100可以采用其他形式的机器人102(例如自动车辆)。
共享工作空间104通常表示机器人102可以在其中操作和移动的三维空间,尽管在某些有限的实施方式中,共享工作空间104可以表示二维空间。共享工作空间104是其中机器人102的至少部分可以在空间和时间上重叠或者如果不控制运动以避免碰撞就会发生碰撞的体积或区域。应当注意,工作空间104是物理空间或体积,该物理空间或体积的位置和取向可以经由例如关于某个参考系(例如由图1所示的正交轴线X、Y、Z表示的参考系)的笛卡尔坐标方便地表示。还应当注意,工作空间104的参考系不同于任何机器人102的相应“配置空间”或“C空间”,C空间通常由任何机器人102的相应参考系中的一组关节位置、取向或配置表示。
如本文所述,当从另一机器人102b的视角考虑时(即,当为另一机器人102b进行运动规划时),机器人102a或其部分可能构成障碍物。另外,共享工作空间104可以包括其他障碍物,例如机械部件(例如,输送机106)、桩、柱、墙壁、天花板、地面、桌子、人和/或动物。另外,共享工作空间104可以包括机器人102作为执行任务的一部分而操纵的一个或更多个工作物品或工件(例如一个或更多个包裹、包装、紧固件、工具、物品或其他对象)。
机器人系统100包括一个或更多个基于处理器的多机器人配置优化系统108(图1中示出了一个)。多机器人配置优化系统108接收一组输入109并生成一个或更多个解决方案作为输出111,该解决方案指定至少在一定程度上可以被优化的机器人102的配置,包括相应基座位置和取向、相应组的至少一个定义姿势以及每个机器人102的相应目标序列。
多机器人配置优化系统108可以包括群体生成器110、多机器人环境模拟器112和多机器人优化引擎114。
群体生成器110基于提供的输入109生成一组候选解决方案116。候选解决方案116表示针对配置问题的可能解决方案,即如何配置工作空间104中的机器人102以完成一组任务。任何给定的候选解决方案116实际上有可能是可行的,也有可能是不可行的。也就是说,初始候选方案可能是无效的(例如,机器人在不可能的地方具有一个不可行的任务规划,其中存在无法到达的目标,或者会导致碰撞)。在一些实施方式中,群体生成器可以尝试找到更好的候选解决方案。
多机器人环境模拟器112基于每个候选解决方案对多机器人环境进行建模,以确定某些属性(例如完成任务所需的时间量、完成任务的概率或碰撞率、候选解决方案指定的特定配置的可行性或不可行性)。多机器人环境模拟器112可以用成本来反映,该成本经由一个或更多个成本函数生成。
多机器人优化引擎114至少部分地基于相关联的成本118来评估候选解决方案,并且有利地跨成组的两个或更多个非同质参数进行协同优化,例如跨以下参数中的两个或更多个进行协同优化:机器人的相应基座位置和取向、向机器人中相应一个的任务分配、机器人的相应目标序列和/或连续目标之间的相应轨迹或路径(例如,无碰撞路径)。使用连续目标之间的直线轨迹来简化解释,但轨迹不需要是直线轨迹。
输入109可以包括一个或更多个静态环境模型,该静态环境模型表示或表征操作环境或工作空间104(例如表示地面、墙壁、天花板、柱、其他障碍物等)。操作环境或工作空间104可以由一个或更多个模型(例如表示操作环境中的地面、墙壁、天花板、障碍物和其他对象的几何模型(例如,点云))表示。例如,这可以以笛卡尔坐标表示。
输入109可以包括一个或更多个机器人模型,该机器人模型表示或表征每个机器人102,例如指定几何形状和运动学(例如大小或长度、连杆的数量、关节的数量、关节类型、运动范围、速度限制,加速度或加加速度的限制)。机器人102可以由定义给定机器人102a-102c的几何形状的一个或更多个机器人几何模型来表示,例如在关节、自由度、尺寸(例如,连杆装置的长度)方面和/或在机器人102a-102c的相应C空间方面。
输入109可以包括(例如表示为目标目的(例如,位置或配置))的待执行的一组或更多组任务。例如,任务可以根据相应机器人102a-102c的结束姿势、结束配置或结束状态和/或中间姿势、中间配置或中间状态来表示。姿势、配置或状态例如可以根据相应机器人102a-102c的关节位置和关节角度/旋度(例如,关节姿势、关节坐标)来定义。输入109可以可选地包括一个或更多个停留持续时间,其指定机器人或其部分应该停留在给定目标处以完成任务(例如,拧紧螺钉或螺母、拾取和放置物体、通过在公共工作空间中操作的两个或更多个机器人将一堆对象分类成两个或更多个不同对象类型的对象堆的目的)。
输入109可以可选地包括对能够在工作空间104中配置的机器人数量的限制。输入109可以可选地包括对能够分配给给定机器人102a-102c的任务或目标的数量(在此被称为任务量)的限制,该给定机器人能够在工作空间104中配置,例如限制配置问题的复杂性以确保配置问题是可解决的或是在某个可接受的时间段内使用可用的计算资源能够解决的,或者预先排除推定给定机器人102a-102c被明显过度分配任务或目标的被认为太慢的某些解决方案。输入109可以可选地包括对变量或其他参数的一个或更多个边界或约束。输入109可以可选地包括迭代周期的总数或对迭代的时间限制,其可以用于细化候选解决方案,例如,以确保配置问题是可解决的或使用可用计算资源在某个可接受的时间段内能够解决的。
机器人系统100可以可选地包括一个或更多个机器人控制系统118(图1中仅示出一个),该机器人控制系统通信地耦接以控制机器人102。机器人控制系统118可以例如向各种致动器提供控制信号(例如驱动信号)以使机器人102在各种配置之间移动到各种指定目标以便执行指定任务。
机器人系统100可以可选地包括一个或更多个运动规划器120(图1中仅示出一个),该运动规划器通信地耦接以控制机器人102。如本文别处所述,运动规划器120为机器人102产生或细化运动规划,例如以考虑相对于由多机器人优化引擎114提供的运动规划的时间上的小偏差,或考虑障碍物的意外出现(例如,人进入操作环境或工作空间104)。可选的运动规划器120可操作以动态地产生运动规划以使机器人102在操作环境中执行任务。运动规划器120以及其他结构和/或操作可以采用在2019年6月24日提交的美国专利申请No.62/865,431中描述的那些。
在包括的情况下,运动规划器120可选地通信地耦接以接收(例如由感知子系统(未示出)提供的)感知数据作为输入。感知数据表示工作空间104中先验未知的静态和/或动态对象。感知数据可以是经由一个或更多个传感器(例如,相机、立体相机、飞行时间相机、LIDAR)感测的原始数据和/或由感知子系统转换为障碍物的数字表示,这可以生成环境的相应离散化表示,在机器人102将在该环境中操作以执行各种不同场景的任务。
各种通信路径在图1中示出为各种结构之间的线,在某些情况下,箭头指示输入109和输出111的方向。通信路径可以例如采用一个或更多个有线通信路径(例如,电导体、信号总线或光纤)和/或一个或更多个无线通信路径(例如,经由RF或微波无线电和天线、红外线收发器)的形式。通信信道可以包括例如一个或更多个发射器、接收器、收发器、无线电装置、路由器、有线端口(例如以太网端口)等。
图2示出了根据至少一个图示实施方式的图1的机器人系统100的功能框表示。
机器人系统100可以包括机器人配置优化系统108和机器人102。优化系统108可以通信地耦接以直接或经由中间的机器人控制系统118(图1)间接地控制机器人102。
每个机器人102a-102c可以包括一组杆、关节、臂端工具或可操作以使杆围绕关节移动的末端执行器和/或致动器201a、201b、201c(示出三个,统称为201)。每个机器人102a-102c可以包括一个或更多个运动控制器(例如,马达控制器)202(仅示出一个),该运动控制器接收(例如来自机器人配置优化系统108的)控制信号,并且提供驱动信号以驱动致动器201。运动控制器202可以专用于控制致动器201中的特定一个。
出于说明目的,将详细描述机器人配置优化系统108。本领域技术人员将认识到,该描述是示例性的,并且可以对所描述和所示出的机器人配置优化系统108进行变化。
机器人配置优化系统108可以包括一个或更多个处理器222以及相关联的一个或更多个非暂时性计算机或处理器可读存储介质(例如系统存储器224a、盘驱动器224b和/或处理器222的存储器或寄存器(未示出))。非暂时性计算机或处理器可读存储介质224a、224b经由一个或更多个通信信道(例如系统总线229)通信地耦接到处理器222a。系统总线229可以采用任何已知的总线结构或架构,包括具有存储器控制器的存储器总线、外围总线和/或本地总线。一个或更多个这样的组件也可以或替代地经由一个或更多个其他通信信道(例如,能够高速通信的一个或更多个并行电缆、串行电缆或无线网络信道,例如,通用串行总线(“USB”)3.0、外围组件互连高速(PCIe)或经由)彼此通信。
机器人配置优化系统108还可以可通信地耦接到一个或更多个远程计算机系统212(例如服务器计算机、台式计算机、膝上型计算机、超便携计算机、平板计算机、智能手机、可穿戴计算机和/或传感器(图2中未示出)),该远程计算机系统(例如经由网络接口(未示出))直接可通信地耦接或间接地可通信地耦接到机器人配置优化系统108的各种组件。远程计算系统(例如,服务器计算机(例如,输入源212))可用于编程输入数据、配置输入数据、控制输入数据或以其他方式与输入数据交互或向机器人配置优化系统108和机器人系统100内的各种组件提供输入数据(例如,环境模型、机器人模型、任务、目标、对机器人的总数的限制、对每个机器人的任务的限制、对变量或其他参数的边界或约束、对迭代的限制)。这种连接可以通过使用互联网协议的一个或更多个通信信道(例如一个或更多个广域网(WAN)(例如以太网或互联网))。在一些实施方式中,运行前计算(例如,输出的生成)可以由与机器人102分离的系统执行,而运行时计算可以由可选的一个或更多个中间的运动规划器120(图1)执行,在一些实施方式中,该运动规划器可以板载在机器人102a-102c上。
如应当注意的,机器人配置优化系统108可以包括一个或更多个处理器222(即电路)、非暂时性存储介质224a、224b和耦接各种系统组件的系统总线229。处理器222可以是任何逻辑处理单元,例如一个或更多个中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、可编程逻辑控制器(PLC)等。可商购的计算机系统的非限制性示例包括但不限于美国公司提供的Celeron、Core、Core 2、Itanium和Xeon系列微处理器;美国Advanced Micro Devices提供的K8、K10、Bulldozer和Bobcat系列微处理器;美国苹果电脑公司提供的A5、A6和A7系列微处理器;美国高通公司提供的Snapdragon系列微处理器;以及美国甲骨文公司提供的SPARC系列微处理器。图2所示的各种结构的构造和操作可以实施或采用2017年6月9日提交的标题为“MOTION PLANNING FOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNINGPROCESSORS”的国际专利申请No.PCT/US2017/036880;2016年1月5日提交的标题为“SPECIALIZED ROBOT MOTION PLANNING HARDWARE AND METHODS OF MAKING AND USINGSAME”的国际专利申请公开No.WO 2016/122840;2018年1月12日提交的标题为“APPARATUS,METHOD AND ARTICLE TO FACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE INAN ENVIRONMENT HAVING DYNAMIC OBJECTS”的美国专利申请No.62/616,783;和/或2019年6月24日提交的标题为“MOTION PLANNING FOR MULTIPLE ROBOTS IN SHARED WORKSPACE”的美国专利申请No.62/865,431中描述的或类似的结构、技术和算法。
系统存储器224a可以包括只读存储器(“ROM”)226、随机存取存储器(“RAM”)228、闪存(FLASH)230、EEPROM(未示出)。能够构成ROM 226的一部分的基本输入/输出系统(“BIOS”)232包含帮助在机器人系统100内的元件之间(例如在启动期间)传递信息的基本例程。
驱动器224b可以是例如用于读写磁盘的硬盘驱动器、用于读写固态存储器的固态(例如闪存)驱动器和/或用于读写可移动光盘的光盘驱动器。机器人配置优化系统108还可以包括在各种不同实施例中的这种驱动器的任何组合。驱动器224b可以经由系统总线229与处理器222通信。如相关领域技术人员了解的,驱动器224b可以包括耦接在这些驱动器与系统总线229之间的接口或控制器(未示出)。驱动器224b及其相关联的计算机可读介质为机器人系统100提供计算机或处理器可读和/或可执行指令、数据结构、程序模块和其他数据的非易失性存储。相关领域的技术人员将理解,可以使用能够存储计算机可访问的数据的其他类型的计算机可读介质(例如WORM驱动器、RAID驱动器、磁带盒、数字视频光盘(“DVD”)、伯努利盒式磁带、RAM、ROM、智能卡等)。
可执行指令和数据能够存储在系统存储器224a(例如操作系统236、一个或更多个应用程序238、其他程序或模块240和程序数据242)中。应用程序238可以包括使处理器222执行以下一项或更多项的处理器可执行指令:生成候选解决方案的群体,对候选解决方案进行建模,至少部分基于建模产生或确定与相应候选解决方案相关联的成本,通过优化引擎对C个候选解决方案的群体执行优化,该优化引擎在成组的两个或更多个非同质参数上对以下中两个或更多个进行协同优化:机器人的相应基座位置和取向、向机器人中的相应一个的任务分配和机器人的相应目标序列;和/或提供能够用于在多机器人操作环境中定位和定向机器人并使机器人执行任务的输出。这种操作可以如本文所述(例如,参照图3和图10)和通过引用并入本文的参考文献中所述来执行。在至少一些实施方式中,处理器可执行指令使处理器222构建运动规划(例如,碰撞检测或评估、基于碰撞检测或评估更新运动规划图中的边的成本以及执行路径搜索或评估)。另外,应用程序238可以包括一个或更多个机器可读和机器可执行指令,这些指令使处理器222执行其他操作,例如可选地处理(经由传感器捕获的)感知数据。另外,应用程序238可以包括一个或更多个机器可执行指令,这些指令使处理器222执行本文和通过引用并入本文的参考文献中描述的各种其他方法。
虽然在图2中示出为存储在系统存储器224a中,但操作系统236、应用程序238、其他应用程序、程序/模块240和程序数据242能够存储在其他非暂时性计算机或处理器可读介质(例如驱动器224b)上。
尽管不是必需的,但许多实施方式将在计算机可执行指令(例如存储在计算机或处理器可读介质上并由一个或更多个计算机或处理器执行的程序应用模块、对象或宏)的一般背景中进行描述,该计算机或处理器能够执行候选解决方案的生成、例如经由正向运动学对候选解决方案的建模、模型中碰撞的检测、执行时间和其他成本的确定、经由成本计算函数的成本生成,跨一组非同质参数的协同优化,轨迹或路径(例如,无碰撞路径)的生成和/或其他运动规划操作。
在各种实施方式中,操作可以完全在硬件电路中执行或作为存储在内存存储器(例如系统存储器224a)中的软件执行,并且由一个或更多个硬件处理器222a(例如一个或更多个微处理器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、图形处理单元(GPU)处理器、可编程逻辑控制器(PLC)、电可编程只读存储器(EEPROM),或作为存储在内存存储器中的硬件电路和软件的组合)执行。
机器人配置优化系统108可以可选地包括一个或更多个输入/输出组件(例如监视器或触摸屏显示器244、小键盘或键盘246和/或诸如计算机鼠标248的定点设备)。
相关领域的技术人员将理解,所示实施方式以及其他实施方式能够用其他系统结构和布置和/或其他计算系统结构和布置来实践,包括机器人、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、个人计算机(“PC”)、联网PC、小型计算机、大型计算机等的结构和布置。实施方式或实施例或其部分(例如,在配置时间和运行时)能够在分布式计算环境中实践,其中任务或模块由远程处理设备执行,这些远程处理设备通过通信网络链接。在分布式计算环境中,程序模块可以位于本地和远程内存存储设备或介质中。然而,某些类型信息的存储位置和方式对于帮助改进机器人配置非常重要。
图3示出了根据一个图示实施方式的基于处理器的系统操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的高级机器人配置方法300。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一个的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行机器人配置方法300的各种操作或动作。
多个机器人可以被配置为执行一组任务。任务可以被指定为任务规划。任务规划可以指定需要由数量R个机器人执行的数量T个任务。任务规划能够建模为每个机器人的向量,其中向量是待由相应机器人执行的任务(例如{任务7,任务2,任务9})的有序列表。任务向量还能够可选地包括指定机器人或其部分应停留在给定配置或目标处的持续时间的停留持续时间。任务向量还可以指定与解决任务不直接相关的原位姿势和/或其他“功能姿势”(例如,“让路”或存储姿势)。姿势可以在机器人的C空间中进行指定。
机器人配置方法300可以在302开始,例如响应于系统或其组件的启动或供电、信息或数据的接收、或由调用例程或程序的调用或启用。机器人配置方法300可以在配置时间或运行前执行,这能够在运行时间之前发生。当响应性不是一个特别问题时,这有利地允许在运行时间之前执行一些计算最密集的工作。
在304,基于处理器的系统的至少一个组件接收表征多机器人环境、待执行的一组任务并为问题提供各种约束或边界的输入。
例如,基于处理器的系统可以接收多机器人操作环境的一个或更多个模型。模型可以表示多个机器人将在其中操作的物理环境(例如表示环境中的地面、墙壁和各种对象)。
又例如,基于处理器的系统可以接收将在多机器人操作环境中操作的多个机器人中的每一个的相应模型。机器人模型可以表示机器人的物理属性(例如物理尺寸、运动范围、关节数量、杆数量、杆长度、末端执行器类型、速度限制、加速度限制等)。
又例如,基于处理器的系统可以接收一组任务或目标。目标可以表示每个机器人或其部分为了完成一组任务而必须按顺序或在特定时间移动到的各种位置。例如,目标可以在相应机器人的配置空间(C空间)中表示。又例如,基于处理器的系统可以可选地接收在机器人中的至少一个执行至少一个任务时停留在一个或更多个目标处的一个或更多个停留持续时间。停留持续时间可以有利地反映机器人的末端执行器需要保持在给定目标处以完成相应任务(例如,将紧固件拧入到螺纹开口中,将部件插入到容纳部中)的预期时间量。
又例如,基于处理器的系统可以可选地接收关于变量的一组边界或约束。各种边界和约束可以适用于多机器人环境中的优化。例如,基于处理器的系统可以可选地接收一组时间间隔,该时间间隔指定了对建模运动或模拟碰撞的时间限制。例如,基于处理器的系统可以可选地接收对允许在多机器人操作环境中操作的机器人总数的限制。例如,基于处理器的系统可以可选地接收每个机器人所允许的任务或目标的最大数量,这又可以防止提交在考虑到可用的计算资源或时间的情况下解决起来过于复杂的问题。
在306,群体生成器生成C个候选解决方案的群体。群体能够包括一个或更多个候选解决方案。C个候选解决方案的群体中的每个候选解决方案都为每个机器人指定:相应基座位置和取向、相应组的至少一个定义姿势和相应目标序列。相应基座位置和取向指定在多机器人操作环境中相应机器人的基座的相应位置和取向。相应组的至少一个定义姿势至少指定多机器人操作环境中的相应机器人的相应原位姿势和/或其他功能姿势(例如,让路或存储姿势)。相应目标序列包括供相应机器人移动通过以完成相应任务序列的目标的相应有序列表。群体生成器可以被实现为执行处理器可执行指令的一个或更多个处理器。
群体生成器可以采用伪随机群体生成器的形式,该伪随机群体生成器可以基于一个或更多个输入参数伪随机地生成C个候选解决方案的群体。伪随机群体生成器生成候选解决方案,这些解决方案实际上有可能是可行的解决方案也有可能是不可行的解决方案。群体生成器交替地生成与纯伪随机生成的C个候选解决方案的群体相比成为不可行候选解决方案的概率更低的C个候选解决方案的群体。这可能会产生在不损失配置空间覆盖的情况下实现更快优化的候选解决方案群体。例如,群体生成器可能会考虑操作环境,以避免以下候选解决方案:将机器人的基座定位在不可能的位置(例如,由墙或其他对象占据的位置),将导致具有机器人无法到达的一个或更多个目标的不可行的任务规划,或者将导致碰撞。在使用伪随机群体生成器的情况下,可以采用多种技术来改进候选解决方案,例如下面参考图6描述的技术。
在308,优化引擎对C个候选解决方案的群体执行优化。尤其是,优化引擎跨成组的两个或更多个非同质参数对以下中的两个或更多个进行协同优化:机器人的相应基座位置和取向、向机器人中的相应机器人的任务分配和机器人的相应目标序列。优化引擎例如可以选择具有以下协同优化组合的优化候选解决方案:每个机器人的相应基座的相应优化的基座位置和取向、优化的任务分配和优化的运动规划。优化引擎可以被实现为执行处理器可执行指令的一个或更多个处理器。如下文参照图4所述,优化引擎可以在执行优化时与多机器人环境模拟器交互,例如提供待模拟的候选解决方案和接收由多机器人环境模拟器生成或确定的成本,这些成本表征效率(例如,完成时间)和相应候选解决方案的概率或碰撞率。优化引擎可以至少部分基于与候选解决方案相关联的相应成本来选择候选解决方案之一,相应成本至少部分基于完成任务序列的时间和为相应候选解决方案确定的碰撞值。
在310,优化引擎提供优化的输出。尤其是,优化引擎可以提供以下中的一个或更多个作为输出:在有或没有机器人C空间中相应目标处的停留持续时间的情况下,每个机器人的相应基座位置和取向、每个机器人的相应任务分配、每个机器人的相应运动规划和/或每个机器人的一组无碰撞路径。输出可以包括优化的任务分配,该任务分配为每个机器人指定呈相应机器人的C空间中的目标和在所述目标中的一个或更多个处的一个或更多个停留持续时间的优化有序列表的形式的相应待执行任务序列。输出可以附加地或替代地包括指定一组无碰撞路径的优化运动规划,该组无碰撞路径指定目标有序列表中的每对连续目标之间的相应无碰撞路径。在至少一些实施方式中,输出足以驱动机器人执行一组任务。在至少一些实施方式中,可以采用运动规划器来细化运动规划。
高级机器人配置方法300可以在312终止,例如直到被再次调用。虽然以有序流程描述了高级机器人配置方法300,但是在许多实施方式中各种动作或操作将同时或并行执行。
图4示出了根据一个图示实施方式的基于处理器的系统操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的高级多机器人环境模拟方法400。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一个的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行多机器人环境模拟方法400的各种操作或动作。多机器人环境模拟方法400可以由多机器人环境模拟器执行,该多机器人环境模拟器可以由一个或多个不同的处理器实现,该处理器专用于模拟多机器人环境中的移动。另外,多机器人环境模拟器可以由执行其他操作(例如执行优化)的一个或更多个处理器来实现。
多机器人环境模拟方法400可以在402开始,例如响应于系统的启动或供电、信息或数据的接收、或由调用例程或程序的调用或启用(例如,由高级机器人配置方法300启用)。
在404,多机器人环境模拟器(例如从优化引擎或群体生成器)接收候选解决方案。
在406,多机器人环境模拟器基于特定候选解决方案对多机器人环境中的机器人进行建模。候选解决方案例如可以由优化引擎提交或提供给多机器人环境模拟器。能够采用传统的建模包,例如采用正向运动学的建模包,以基于候选解决方案对机器人的移动进行建模。
在408,多机器人环境模拟器经由多机器人环境模拟器执行的建模来确定完成任务序列的相应时间。该确定可以包括确定所有机器人完成任务序列的总时间,这些机器人可能必须彼此等待。例如,这可以包括为每个机器人确定完成相应任务的相应时间。
在410,多机器人环境模拟器经由多机器人环境模拟器执行的建模来确定表示在完成任务序列中发生碰撞的比率或概率的碰撞值。该确定可以包括确定所有机器人完成任务序列的总碰撞值。例如,这可以包括为每个机器人确定相应碰撞值。
在412,多机器人环境模拟器向例如优化引擎提供所确定的完成任务序列的时间和确定的碰撞值。如本文别处所述的,在一些实施方式中,多机器人环境模拟器提供所确定的时间和碰撞值作为不同的值,以用于优化引擎处理以形成能够跨两个或更多个非同质参数进行协同优化的值。
多机器人环境模拟方法400可以在414终止,例如直到被再次调用。虽然以有序流程描述了多机器人环境模拟方法400,但是在许多实施方式中,各种动作或操作将同时或并行执行。
图5示出了根据一个图示实施方式的基于处理器的系统操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的低级多机器人环境模拟方法500。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一个的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行多机器人环境模拟方法500的各种操作或动作。多机器人环境模拟方法500可以由多机器人环境模拟器执行,该多机器人环境模拟器可以由一个或多个不同的处理器实现,该处理器专用于模拟多机器人环境中的移动。另外,多机器人环境模拟器可以由执行其他操作(例如执行优化)的一个或更多个处理器来实现。
多机器人环境模拟方法500可以在502开始,例如响应于系统的启动或供电、信息或数据的接收、或由调用例程或程序的调用或启用(例如,由高级机器人配置方法300启用)。
在504,多机器人环境模拟器虚拟执行每个机器人的任务序列中的每个任务,这些任务是由作为评估或考虑的主题的候选解决方案指定的。任务序列可以被指定为相应任务有序列表。任务的有序列表均等同于机器人的C空间中轨迹的有序列表。任务的有序列表可以包括连续姿势或配置(例如,关节配置)之间的多个轨迹以及在一个或更多个姿势、原位姿势和机器人的C空间中的一个或更多个其他定义功能姿势(例如收起或“让路”姿势)处的一个或更多个停留持续时间。为了虚拟执行每个任务,处理器可执行指令在由至少一个处理器执行时使处理器虚拟模拟多个轨迹以及以下中一个或更多个:在一个或更多个姿势、原位姿势或一个或更多个其他定义功能姿势处的一个或更多个停留持续时间。
在506,对于多个时期的每个时期(例如,0.1s或一些选定的输入值),多机器人环境模拟器对机器人中至少一个的一部分的C空间位置进行采样。多机器人环境模拟器使用正向运动学来识别机器人中相应一个的一个或更多个部分与机器人中相应一个的另一部分之间的可能碰撞、机器人中的相应一个与环境中的另一机器人之间的可能碰撞以及机器人中的相应一个与多机器人操作环境中不是另一机器人的另一对象之间的可能碰撞。
多机器人环境模拟方法500可以在508终止,例如直到被再次调用。虽然以有序流程描述了低级多机器人环境模拟方法500,但是在许多实施方式中,各种动作或操作将同时或并行执行。
所描述的系统和方法可以采用各种方法来细化或改进候选解决方案。例如,一些方法可能从基础解决方案开始,并在基础解决方案上进行改进。又例如,一些方法可以采用遗传算法或方法,例如差分进化(DE)算法或类似技术。下面参照图6描述DE算法的一种型式。
图6示出了根据一个图示实施方式的基于处理器的系统操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的低级多机器人优化DE方法600。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一个的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行多机器人优化方法600的各种操作或动作。多机器人环境模拟方法600可以由优化引擎执行,该优化引擎可以由一个或多个不同的处理器实现,该处理器专用于多机器人环境的优化引擎。另外,多机器人环境模拟器可以由执行其他操作的一个或更多个处理器来实现。
多机器人环境模拟方法600可以在602开始,例如响应于系统的启动或供电、信息或数据的接收、或由调用例程或程序的调用或启用(例如,由高级机器人配置方法300启用)。
在604,群体生成器生成候选解决方案的群体。
在606,外循环计数器I初始化,例如为零。在608,外循环计数器I递增,例如为I+1。
在610,以允许扰动的格式表示候选解决方案。例如,候选解决方案可以表示为候选解决方案向量。候选解决方案向量例如可以包括多个实数向量元素,例如针对每个任务包括一个实数向量元素。实数向量元素可以表示任务中的相应一个、任务中的相应一个的优先级以及被识别为执行任务中的相应一个的机器人之一的相应组合。
在612,优化引擎扰动候选解决方案I或使候选解决方案I被扰动,以产生经扰动的候选解决方案I'。例如,优化引擎可以修改候选解决方案向量的实数向量元素(即,实数值)。
在614,多机器人环境模拟器对经扰动的候选解决方案I'进行建模,例如确定完成经扰动的候选解决方案I'的任务序列的时间和表示在完成经扰动的候选解决方案I'的任务序列时发生碰撞的比率或概率的碰撞值。
在616,优化引擎或多机器人环境模拟器确定经扰动的候选解决方案I'的成本值。确定的成本值可以是完成经扰动的候选解决方案I'的任务序列的所确定的时间和经扰动的候选解决方案I'的所确定的碰撞值的函数。在DE中,成本函数是分段对数函数,但能够被参数化,例如由图7中的参数化700和图8中的曲线800表示。在图7中,参数“task_reachability”等于(可到达的目标目的数)/(目标目的总数)。因此,如果所有目标都是可到达的,则参数“task_reachability”的值等于1。
在618,优化引擎或多机器人环境模拟器确定经扰动的候选解决方案I'是否具有比候选解决方案I更低的关联成本。
在620,响应于确定经扰动的候选解决方案I'具有比候选解决方案I更低的关联成本,优化引擎用经扰动的候选解决方案I'替换C个候选解决方案的群体中的相应候选解决方案I。响应于确定经扰动的候选解决方案I'不具有比候选解决方案I更低的关联成本,优化引擎不修改C个候选解决方案的群体,直接将控制传递到622。
在622,优化引擎确定内循环迭代退出条件是否已经发生。例如,优化引擎确定何时发生收敛、是否已达到迭代次数限制和/或是否已达到迭代时间限制。例如,在候选解决方案的当前群体的成本标准偏差小于ε值的情况下,可以认为已经发生收敛。
如果退出条件已经发生,则控制传递到626,其中多机器人环境模拟方法600可以终止,例如直到被再次调用。如果没有发生退出条件,则控制传递到624,其中优化引擎或多机器人环境模拟器确定在待扰动的候选解决方案的群体中是否存在更多候选解决方案。如果在待扰动的候选解决方案的群体中存在更多的候选解决方案,则控制返回到608,其中内循环计数器递增并且对下一个候选解决方案进行扰动和分析。如果在待扰动的候选解决方案的群体中没有更多的候选解决方案,则控制返回到606,其中重新初始化内循环计数器,并且可以执行另一次通过可能更新的候选解决方案的群体。
多机器人环境模拟方法600的各种动作可以重复多次迭代,细化候选解决方案的群体,直到满足退出条件(例如,收敛)。
虽然以有序流程描述了低级多机器人优化DE方法600,但是在许多实施方式中,各种动作或操作将同时或并行执行。
图9示出了根据至少一个图示实施方式的数据结构900,该数据结构可由基于处理器的系统在以允许扰动的格式表示候选解决方案时(例如在执行低级多机器人优化DE方法600(图6)时)采用。
候选解决方案I可以有利地用数字向量表示,使得系统可以对数字执行一个或更多个函数以“扰乱”数字,进而“扰乱”候选解决方案以生成经扰动的候选解决方案I'。存在各种方法来表示候选解决方案。在此参照图9所示的数据结构900描述了一种方法。系统可以采用这种方法或其他方法来表示候选解决方案。
候选解决方案最初可以表示为二维(2D)矩阵,该矩阵将被展平为一维(1D)向量。在2D矩阵中,行对应于任务。对于具有T个任务的问题,因此有T个行。在2D矩阵中,列对应于机器人和优先级。如果有P个优先级和R个机器人,那么就存在P*R个列。图9所示的示例有3个机器人、3个优先级和4个任务。在使用中,一个特定的问题可能具有与图9所示不同的机器人数量、不同的优先级数量和不同的任务数量。为了便于理解,简化了示出的示例。
每个任务被分配给单个机器人,如图9所示,每一行都正好有一个被标记(即,用星号*标记)的条目,表示哪个机器人以哪个优先级执行该任务。给定的机器人最多能够执行输入中指定的最大任务数量,作为每个机器人的任务量。应当注意,给定的机器人,每个优先级只能执行一个任务。也就是说,每列只有一个星号(*)。
系统能够将2D矩阵展平为长度为T的1D向量,其中每个任务有一个向量元素。向量元素对应于2D矩阵的从1开始的“条目数量”。因此,对于图9所示的示例,任务1的值为2,任务2的值为13(第一行有9个条目,然后任务2的分配(参见星号*)是在第2行的第4个条目中),任务3的值为21,任务4的值为36。应当注意,向量元素都是整数。
系统可以对得到的整数向量<2,13,21,36>进行归一化,使得所有值都为0到1。例如,系统可以将每个值除以矩阵中的条目总数,例如,P*R*T=36。得到的归一化实值向量为<2/36,13/36,21/36,36/36>,其中各个向量元素的总和为1。
为了扰动候选实值向量V,系统可能首先取多个(例如三个)其他随机选择的候选(例如A、B和C),并用以与上述相同的方式进行归一化的相应归一化1D向量表示那些随机选择的候选(例如A、B和C)。系统此时可以计算经扰动的实值向量V'。例如,系统可以将经扰动的向量V'计算为等于A+mut*(C-B)。
然后系统可以计算经扰动的候选Vp,例如通过随机混合向量V和经扰动的向量V'的向量元素。也就是说,对于经扰动的候选Vp的每个元素,比如Vp[i],系统随机选择V[i]或V'[i]。该选择能够通过参数进行加权,例如,该参数能够使选择偏斜,使得该选择不是50/50。系统可以将经扰动的候选Vp乘以P*R*T以按比例放大到表示经扰动的候选的1D向量。为了从1D实值向量返回2D矩阵,系统首先将实值四舍五入为整数。从那里,系统能够使用这些整数值来标记一个空白的2D矩阵。
图10示出了根据一个图示实施方式的基于处理器的系统操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的低级多机器人DE候选解决方案的方法1000,其详细说明了群体生成器的操作。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一个的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行多机器人DE候选解决方案的方法1000的各种操作或动作。多机器人DE候选解决方案的方法1000可以由优化引擎执行,该优化引擎可以由一个或多个不同的处理器实现,该处理器专用于多机器人环境的优化引擎。另外,多机器人环境模拟器可以由执行其他操作的一个或更多个处理器来实现。
全局优化器可以基于多变量混合整数优化算法,例如称为差分进化(DE)的算法。除非在权利要求中明确记载了该算法,否则权利要求不限于这种算法。
全局优化器优化(例如,在笛卡尔坐标中的)机器人基座布局、(例如,在C空间中的)机器人功能姿势和每个机器人的任务规划(目标的有序列表或向量和停留持续时间)。主要优化目标可以是总延迟,但其他目标能够包括可用地面空间的优化使用、最小能源使用等。
优化器系统可以包括三个组件:即优化引擎、多机器人环境模拟器和候选解决方案生成器(例如,种子生成器)。
如下文进一步详细描述的,候选解决方案生成器生成C个候选解决方案的群体,其中任何给定的候选解决方案有可能是可行的,也有可能是不可行的。
如下文进一步详细描述的,优化引擎试图找到更好的候选解决方案,例如,通过扰动候选解决方案的群体中的一个,比如候选P,并查看得到的经扰动的候选P'是否具有更低的成本。如果是,则经扰动的候选P'替代群体中的候选P。候选的总数C不变。
为了找出候选解决方案的成本,多机器人环境模拟器模拟候选解决方案。给定的候选解决方案包括每个机器人的任务的有序列表,该有序列表等同于C空间中轨迹的有序列表。多机器人环境模拟器在每个时期(例如,0.1s或一些选定的输入值)对每个机器人在C空间的位置进行采样,并采用正向运动学检查机器人的虚拟表示是否与自身,与另一机器人,或操作环境中的某些障碍物或对象发生碰撞。多机器人环境模拟器确定候选解决方案需要多长时间才能完全执行。多机器人环境模拟器确定碰撞概率或碰撞率(例如,在此期间机器人与其自身、与另一机器人或与操作环境中的障碍物或对象发生至少一次碰撞的时期所占的分数)。应当注意,候选解决方案的群体的生成不需要产生无碰撞运动规划,而是简单地跟踪碰撞率。不需要无碰撞路径,大大加快了处理速度;然而,一些实施方式反而可以在这个阶段产生无碰撞路径。候选成本至少是这两个数字的函数(例如,运行时间和碰撞率)。在DE中,该成本函数是能够进行参数化的分段对数值。
总工作流程涉及一个周期,其中优化器生成候选并且模拟器评估其成本。该过程一直重复,直到某个收敛标准,例如成本的标准偏差小于某个ε值。
候选解决方案生成器1002通过执行各种操作或动作来生成候选解决方案。
在1004,候选解决方案生成器1002接收各种可变边界、固定参数、任务或目标目的和群体大小。在1006,候选解决方案生成器1002为每个机器人的基座生成基座位置和取向。在1008,候选解决方案生成器1002虚拟放置或定位虚拟多机器人操作环境中的机器人基座,将其提供给多机器人模拟器1009,该多机器人模拟器对候选解决方案进行建模,向候选解决方案生成器1002提供反馈。
在1010,候选解决方案生成器1002为每个机器人生成均匀随机的原位姿势和/或其他功能姿势。
在1012,对于每个任务或目标目的,候选解决方案生成器1002在1012a找到能够完成任务或达到目标目的的一组机器人,在1012b随机选择这些机器人中的一个,在1012c确定该组是否为空(指示不可行的任务规划),如果该组为空则返回1006,否则在1012d将任务或目标目的分配给选定的机器人。
在1014,对于每个目标机器人,候选解决方案生成器1002在1014a确定分配给机器人的任务或目标目的的总数是否超过为机器人指定的限制或任务或目标量,如果过度分配则返回1006(指示不可行的任务规划),否则在1014b生成经分配的任务或目标目的的随机序列。
在1016,候选解决方案生成器1002生成或定义候选解决方案,其可以是向量或其他表示,该向量或其他表示表示每个机器人的基座布局和取向、每个机器人的原位姿势和/或其他功能姿势以及每个机器人的目标序列。
在1018,候选解决方案生成器1002确定在候选解决方案的群体中是否存在足够的候选解决方案。如果候选解决方案的群体中的候选解决方案的数量小于指定数量,则控制可以返回到1006以生成另外的候选解决方案。否则,控制可以传递到1022,其中候选解决方案生成器1002将候选解决方案的群体返回到多机器人优化引擎1024以进行进一步优化。
一旦生成了候选解决方案的初始群体,就可以通过例如扰动候选解决方案来细化候选解决方案的群体。
虽然以有序流程描述了低级多机器人DE候选解决方案的方法1000,但是在许多实施方式中,各种动作或操作将同时或并行执行。
在至少一些实施方式中,在此描述的结构和算法可以在没有相机或其他感知传感器的情况下操作。在至少一些实施方式中,机器人之间的协调依赖于机器人的几何模型、机器人传达其各自的运动规划的能力以及共享工作空间的几何模型。在其他实施方式中,可以可选地采用视觉或其他感知,例如以避免可能进入或占据共享工作空间的部分的人或其他动态障碍物。
各种各样的算法被用来解决运动规划问题。这些算法中的每一个通常都需要能够确定机器人的给定姿势或从一个姿势到另一个姿势的运动是否会导致与机器人本身或环境中的障碍物发生碰撞。虚拟碰撞评估或检查能够使用处理器“在软件中”执行,这些处理器从存储的一组处理器可执行指令中执行处理器可执行指令,以执行算法。虚拟碰撞评估或检查能够使用一组专用硬件电路(例如,在现场可编程门阵列(FPGA)、专用集成电路(ASIC)中实现的碰撞检查电路)“在硬件中”执行。这样的电路例如可以表示在两个状态之间的相应运动或转变期间由机器人/机器人附件或其一部分扫过的体积(即,扫过的体积)。电路例如可以产生指示运动是否会与任何障碍物碰撞的布尔评估,其中至少一些障碍物表示在共享工作空间中操作的其他机器人执行运动或转变时扫过的体积。
示例
示例1、一种在基于处理器的系统中操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的方法,所述方法包括:
经由群体生成器生成C个候选解决方案的群体,所述C个候选解决方案的群体中的候选解决方案中的每个为机器人中的每个指定:相应基座位置和取向、相应组的至少一个定义姿势和相应任务或目标序列,其中所述相应基座位置和取向指定所述多机器人操作环境中的相应机器人的基座的相应位置和取向,所述相应组的至少一个定义姿势至少指定所述多机器人操作环境中的相应机器人的相应原位姿势,并且所述相应任务或目标序列包括供相应机器人移动通过以完成相应任务序列的目标的相应有序列表;
通过优化引擎对所述C个候选解决方案的群体执行优化,所述优化引擎跨成组的两个或更多个非同质参数对以下中的两个或更多个进行协同优化:机器人的相应基座位置和取向、向机器人中的相应机器人的任务分配和机器人的相应任务或目标序列;以及
作为输出提供:机器人中的每个的相应基座位置和取向,机器人中的每个的相应任务分配,以及机器人中的每个的相应运动规划。
示例2、根据示例1所述的方法,其中作为输出提供:机器人中的每个的相应基座位置和取向、机器人中的每个的相应任务分配以及机器人中的每个的相应运动规划包括提供优化的任务分配,所述优化的任务分配为每个机器人指定呈相应机器人的C空间中的目标和在所述目标中的一个或更多个处的一个或更多个停留持续时间的优化有序列表的形式的相应待执行任务序列,并提供指定一组无碰撞路径的优化的运动规划,该组无碰撞路径指定目标的有序列表中的每对连续目标之间的相应无碰撞路径。
示例3、根据示例1或2中任一项所述的方法,还包括:
经由机器人环境模拟器执行的建模,为所述C个候选解决方案的群体的候选解决方案中的每个,确定完成任务序列的相应时间和表示在完成任务序列中发生碰撞的比率或概率的相应碰撞值。
示例4、根据示例3所述的方法,其中通过跨成组的两个或更多个非同质参数进行协同优化的优化引擎对所述C个候选解决方案的群体执行优化包括:
经由所述优化引擎至少部分基于与候选解决方案相关联的相应成本来选择候选解决方案中的一个,所述相应成本至少部分基于完成任务序列的时间和为相应候选解决方案确定的碰撞值。
示例5、根据示例3所述的方法,其中经由所述优化引擎的建模,确定完成任务序列的相应时间和表示发生碰撞的比率或概率的相应碰撞值包括:
经由多机器人环境模拟器虚拟执行任务序列中的每个任务;
对于多个时期中的每个时期,经由所述多机器人环境模拟器对机器人中的至少一个的一部分的C空间位置进行采样;以及
使用正向运动学检查碰撞以识别机器人中的相应一个的一个或更多个部分与机器人中相应一个的另一部分之间的可能碰撞、机器人中的相应一个与环境中的机器人中的另一个之间的可能碰撞以及机器人中的相应一个与多机器人操作环境中不是另一机器人的另一对象之间的可能碰撞。
示例6、根据示例5所述的方法,其中任务的有序列表等同于机器人的C空间中的轨迹的有序列表,并且包括多个轨迹、在一个或更多个姿势、原位姿势和机器人的C空间中的一个或更多个其他定义功能姿势处的一个或更多个停留持续时间,并且虚拟执行包括虚拟执行:多个轨迹和以下中一个或更多个:在所述一个或更多个姿势、原位姿势或所述一个或更多个其他定义功能姿势处的一个或更多个停留持续时间。
示例7、根据示例1或2所述的方法,还包括:
为所述C个候选解决方案的群体中的多个候选解决方案中的每一个,针对至少一次迭代:
扰动相应候选解决方案以产生经扰动的候选解决方案;
对经扰动的候选解决方案建模;
确定经扰动的候选解决方案是否具有比相应候选解决方案更低的关联成本;以及
响应于确定经扰动的候选解决方案具有比相应候选解决方案更低的关联成本,用经扰动的候选解决方案替换所述C个候选解决方案的群体中的相应候选解决方案。
示例8、根据示例7所述的方法,以多次迭代重复进行所述扰动、建模、确定和替换,直到出现收敛、到达迭代次数限制或到达迭代时间限制。
示例9、根据示例7所述的方法,其中扰动相应候选解决方案以产生经扰动的候选解决方案包括扰动候选解决方案向量,所述候选解决方案向量包括多个实数向量元素,针对每个任务包括一个实数向量元素,所述实数向量元素表示任务中的相应一个、任务中的相应一个的优先级以及被识别为执行任务中的相应一个的机器人之一的相应组合。
示例10、根据示例1或2所述的方法,还包括:
接收输入,所述输入包括多机器人操作环境的至少一个模型、将在多机器人操作环境中操作的机器人中的至少两个中的每个的相应模型以及一组任务或目标。
示例11、根据示例1或2所述的方法,还包括:
接收输入,所述输入包括多机器人操作环境的至少一个模型、将在多机器人操作环境中操作的机器人中的至少两个中的每个的相应模型、一组任务或目标以及以下中的至少一个:在机器人中的至少一个执行至少一个任务时停留在一个或更多个目标处的一个或更多个停留持续时间、变量的一组边界或约束或指定模拟碰撞时间限制的一组时间间隔。
示例12、根据示例11所述的方法,其中接收输入包括接收进一步包括以下中的至少一个的输入:对每个机器人允许的最大任务数量或最大目标数量以及允许在多机器人操作环境中操作的机器人的总数的限制。
示例13、根据示例1或2所述的方法,其中所述群体生成器是伪随机群体生成器,并且其中经由群体种子生成器生成C个候选解决方案的群体包括经由所述伪随机群体生成器伪随机生成C个候选解决方案的群体。
示例14、根据示例1或2所述的方法,其中经由群体生成器生成C个候选解决方案的群体包括生成与纯伪随机生成的C个候选解决方案的群体相比成为无效候选解决方案的概率更低的C个候选解决方案的群体。
示例15、根据示例1或2所述的方法,其中通过跨成组的两个或更多个非同质参数进行协同优化的优化引擎对所述C个候选解决方案的群体执行优化包括选择具有以下的协同优化组合的优化候选解决方案:机器人中的每个的相应基座的相应优化的基座位置和取向、优化的任务分配和优化的运动规划。
示例16、一种为多个机器人将在其中操作的多机器人操作环境配置多个机器人的基于处理器的系统,所述基于处理器的系统包括:
至少一个处理器;以及
至少一个非暂时性处理器可读介质,所述至少一个非暂时性处理器可读介质存储数据和处理器可执行指令中的至少一个,所述处理器可执行指令在由所述至少一个处理器执行时使处理器执行根据示例1至15所述的方法中的任一方法。
示例17、一种为多个机器人将在其中操作的多机器人操作环境配置多个机器人的基于处理器的系统,所述基于处理器的系统包括:
至少一个处理器;以及
至少一个非暂时性处理器可读介质,所述至少一个非暂时性处理器可读介质存储数据和处理器可执行指令中的至少一个,所述处理器可执行指令在由所述至少一个处理器执行时使处理器:
经由群体生成器生成C个候选解决方案的群体,所述C个候选解决方案的群体中的候选解决方案中的每个为机器人中的每个指定:相应基座位置和取向、相应组的至少一个定义姿势和相应任务或目标序列,其中所述相应基座位置和取向指定所述多机器人操作环境中的相应机器人的基座的相应位置和取向,所述相应组的至少一个定义姿势至少指定所述多机器人操作环境中的相应机器人的相应原位姿势,并且所述相应任务或目标序列包括供相应机器人移动通过以完成相应任务序列的目标的相应有序列表;
通过优化引擎对所述C个候选解决方案的群体执行优化,所述优化引擎跨成组的两个或更多个非同质参数对以下中的两个或更多个进行协同优化:机器人的相应基座位置和取向、向机器人中的相应机器人的任务分配和机器人的相应任务或目标序列;以及
作为输出提供:机器人中的每个的相应基座位置和取向,机器人中的每个的相应任务分配,以及机器人中的每个的相应运动规划。
示例18、根据示例17所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时使处理器作为输出提供:优化的任务分配,所述优化的任务分配为每个机器人指定呈相应机器人的C空间中的目标和在所述目标中的一个或更多个处的一个或更多个停留持续时间的优化有序列表的形式的相应待执行任务序列,并提供指定一组无碰撞路径的优化的运动规划,该组无碰撞路径指定目标的有序列表中的每对连续目标之间的相应无碰撞路径。
示例19、根据示例17或18中任一项所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器:
经由机器人环境模拟器执行的建模,为所述C个候选解决方案的群体的候选解决方案中的每个,确定完成任务序列的相应时间和表示在完成任务序列中发生碰撞的比率或概率的相应碰撞值。
示例20、根据示例19所述的基于处理器的系统,其中为了通过跨成组的两个或更多个非同质参数进行协同优化的优化引擎对所述C个候选解决方案的群体执行优化,所述处理器可执行指令在由所述至少一个处理器执行时使处理器:
经由所述优化引擎至少部分基于与候选解决方案相关联的相应成本来选择候选解决方案中的一个,所述相应成本至少部分基于完成任务序列的时间和为相应候选解决方案确定的碰撞值。
示例21、根据示例19所述的基于处理器的系统,其中为了经由所述优化引擎的建模,确定完成任务序列的相应时间和表示发生碰撞的比率或概率的相应碰撞值,所述处理器可执行指令在由所述至少一个处理器执行时使处理器:
经由多机器人环境模拟器虚拟执行任务序列中的每个任务;
对于多个时期中的每个时期,经由所述多机器人环境模拟器对机器人中的至少一个的一部分的C空间位置进行采样;以及
使用正向运动学检查碰撞以识别机器人中的相应一个的一个或更多个部分与机器人中相应一个的另一部分之间的可能碰撞、机器人中的相应一个与环境中的机器人中的另一个之间的可能碰撞以及机器人中的相应一个与多机器人操作环境中不是另一机器人的另一对象之间的可能碰撞。
示例22、根据示例21所述的基于处理器的系统,其中任务的有序列表等同于机器人的C空间中的轨迹的有序列表,并且包括多个轨迹、在一个或更多个姿势、原位姿势和机器人的C空间中的一个或更多个其他定义功能姿势处的一个或更多个停留持续时间,并且为了虚拟执行每个任务,所述处理器可执行指令在由所述至少一个处理器执行时使处理器虚拟执行:多个轨迹和以下中一个或更多个:在所述一个或更多个姿势、原位姿势或所述一个或更多个其他定义功能姿势处的一个或更多个停留持续时间。
示例23、根据示例17或18所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器:
为所述C个候选解决方案的群体中的多个候选解决方案中的每一个,针对至少一次迭代:
扰动相应候选解决方案以产生经扰动的候选解决方案;
对经扰动的候选解决方案建模;
确定经扰动的候选解决方案是否具有比相应候选解决方案更低的关联成本;以及
响应于确定经扰动的候选解决方案具有比相应候选解决方案更低的关联成本,用经扰动的候选解决方案替换所述C个候选解决方案的群体中的相应候选解决方案。
示例24、根据示例23所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器以多次迭代重复进行所述扰动、建模、确定和替换,直到出现收敛、到达迭代次数限制或到达迭代时间限制。
示例25、根据示例23所述的基于处理器的系统,其中为了扰动相应候选解决方案以产生经扰动的候选解决方案,所述处理器可执行指令在由所述至少一个处理器执行时使处理器扰动候选解决方案向量,所述候选解决方案向量包括多个实数向量元素,针对每个任务包括一个实数向量元素,所述实数向量元素表示任务中的相应一个、任务中的相应一个的优先级以及被识别为执行任务中的相应一个的机器人之一的相应组合。
示例26、根据示例17或18所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器:
接收输入,所述输入包括多机器人操作环境的至少一个模型、将在多机器人操作环境中操作的机器人中的至少两个中的每个的相应模型以及一组任务或目标。
示例27、根据示例17或18所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器:
接收输入,所述输入包括多机器人操作环境的至少一个模型、将在多机器人操作环境中操作的机器人中的至少两个中的每个的相应模型、一组任务或目标以及以下中的至少一个:在机器人中的至少一个执行至少一个任务时停留在一个或更多个目标处的一个或更多个停留持续时间、变量的一组边界或约束或指定模拟碰撞时间限制的一组时间间隔。
示例28、根据示例27所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器作为输入接收以下中的至少一个:对每个机器人允许的最大任务数量或最大目标数量以及允许在多机器人操作环境中操作的机器人的总数的限制。
示例29、根据示例17或18所述的基于处理器的系统,其中所述群体生成器是伪随机群体生成器,并且其中经由群体种子生成器生成C个候选解决方案的群体包括经由所述伪随机群体生成器伪随机生成C个候选解决方案的群体。
示例30、根据示例17或18所述的基于处理器的系统,其中经由群体生成器生成C个候选解决方案的群体包括生成与纯伪随机生成的C个候选解决方案的群体相比成为无效候选解决方案的概率更低的C个候选解决方案的群体。
示例31、根据示例17或18所述的基于处理器的系统,其中为了通过跨成组的两个或更多个非同质参数进行协同优化的优化引擎对所述C个候选解决方案的群体执行优化,所述处理器可执行指令在由所述至少一个处理器执行时使处理器选择具有以下的协同优化组合的优化候选解决方案:机器人中的每个的相应基座的相应优化的基座位置和取向、优化的任务分配和优化的运动规划。
前面的详细描述已经通过使用框图、示意图和示例阐述了设备和/或过程的各种实施例。只要这些框图、示意图和示例包含一个或更多个功能和/或操作,本技术领域技术人员就会理解,这些框图、流程图或示例中的每个功能和/或操作能够通过广泛的硬件、软件、固件或其实际上的任何组合来单独地和/或共同地实现。在一个实施方式中,本主题可以经由布尔电路、专用集成电路(ASIC)和/或FPGA来实现。但是,本领域技术人员将认识到,在此公开的全部或部分实施例能够例如作为一台或更多台计算机上运行的一个或更多个计算机程序(例如,作为一个或多个计算机系统上运行的一个或更多个程序)、作为在一个或更多个控制器(例如,微控制器)上运行的一个或更多个程序、作为在一个或更多个处理器(例如,微处理器)上运行的一个或更多个程序、作为固件或其几乎任何组合在标准集成电路中的各种不同实施方式中实现,并且本领域技术人员将认识到,根据本公开,设计电路和/或编写用于软件和/或固件的代码将完全在本领域普通技术人员的技能范围内。
本领域技术人员将认识到,本文阐述的许多方法或算法可以采用附加动作,可以省略某些动作和/或可以以与指定顺序不同的顺序执行动作。
此外,本领域技术人员将理解,在此所教导的机制能够在硬件中实现,例如在一个或更多个FPGA或ASIC中实现。
能够组合上述各种实施例能够以提供进一步的实施例。本说明书中提及和/或在申请数据表中列出的所有共同转让的美国专利申请公开、美国专利申请、外国专利和外国专利申请,包括但不限于2017年6月9日提交的标题为“MOTION PLANNING FOR AUTONOMOUSVEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS”的国际专利申请No.PCT/US2017/036880;2016年1月5日提交的标题为“SPECIALIZED ROBOT MOTION PLANNINGHARDWARE AND METHODS OF MAKING AND USING SAME”的国际专利申请公开No.WO2016/122840;2018年1月12日提交的题为“APPARATUS,METHOD AND ARTICLE TO FACILITATEMOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVING DYNAMICOBJECTS”的美国专利申请No.62/616,783;2018年2月6日提交的标题为“MOTION PLANNINGOF A ROBOT STORING A DISCRETIZED ENVIRONMENT ON ONE OR MORE PROCESSORS ANDIMPROVED OPERATION OF SAME”的美国专利申请号62/626,939;2019年6月3日提交的标题为“APPARATUS,METHODS AND ARTICLES TO FACILITATE MOTION PLANNING INENVIRONMENTS HAVING DYNAMIC OBSTACLES”的美国专利申请No.62/856,548;2019年6月24日提交的标题为“MOTION PLANNING FOR MULTIPLE ROBOTS IN SHARED WORKSPACE”的美国专利申请No.62/865,431;2020年1月22日提交的标题为“CONFIGURATION OF ROBOTS INMULTI-ROBOT OPERATIONAL ENVIRONMENT”的美国专利申请No.62/964,405的全部内容通过引用并入本文。能够对根据上面详细描述的说明书的实施例做出这些和其他改变。通常,在所附权利要求中,所使用的术语不应解释为将权利要求限定为在本说明书和权利要求书中公开的具体实施例,而应该理解为包括所附权利要求所保护的所有可行实施例以及等同物。因此,权利要求不受公开内容限制。
Claims (31)
1.一种在基于处理器的系统中操作以便为多个机器人将在其中操作的多机器人操作环境配置多个机器人的方法,所述方法包括:
经由群体生成器生成C个候选解决方案的群体,所述C个候选解决方案的群体中的候选解决方案中的每个为机器人中的每个指定:相应基座位置和取向、相应组的至少一个定义姿势和相应目标序列,其中所述相应基座位置和取向指定所述多机器人操作环境中的相应机器人的基座的相应位置和取向,所述相应组的至少一个定义姿势至少指定所述多机器人操作环境中的相应机器人的相应原位姿势,并且所述相应目标序列包括供相应机器人移动通过以完成相应任务序列的目标的相应有序列表;
通过优化引擎对所述C个候选解决方案的群体执行优化,所述优化引擎跨成组的两个或更多个非同质参数对以下中的两个或更多个进行协同优化:机器人的相应基座位置和取向、向机器人中的相应机器人的任务分配和机器人的相应目标序列;以及
作为输出提供:机器人中的每个的相应基座位置和取向,机器人中的每个的相应任务分配,以及机器人中的每个的相应运动规划。
2.根据权利要求1所述的方法,其中作为输出提供:机器人中的每个的相应基座位置和取向、机器人中的每个的相应任务分配以及机器人中的每个的相应运动规划包括提供优化的任务分配,所述优化的任务分配为每个机器人指定呈相应机器人的C空间中的目标和在所述目标中的一个或更多个处的一个或更多个停留持续时间的优化有序列表的形式的相应待执行任务序列,并提供指定一组无碰撞路径的优化的运动规划,该组无碰撞路径指定目标的有序列表中的每对连续目标之间的相应无碰撞路径。
3.根据权利要求1或2中任一项所述的方法,还包括:
经由机器人环境模拟器执行的建模,为所述C个候选解决方案的群体的候选解决方案中的每个,确定完成任务序列的相应时间和表示在完成任务序列中发生碰撞的比率或概率的相应碰撞值。
4.根据权利要求3所述的方法,其中通过跨成组的两个或更多个非同质参数进行协同优化的优化引擎对所述C个候选解决方案的群体执行优化包括:
经由所述优化引擎至少部分基于与候选解决方案相关联的相应成本来选择候选解决方案中的一个,所述相应成本至少部分基于完成任务序列的时间和为相应候选解决方案确定的碰撞值。
5.根据权利要求3所述的方法,其中经由所述优化引擎的建模,确定完成任务序列的相应时间和表示发生碰撞的比率或概率的相应碰撞值包括:
经由多机器人环境模拟器虚拟执行任务序列中的每个任务;
对于多个时期中的每个时期,经由所述多机器人环境模拟器对机器人中的至少一个的一部分的C空间位置进行采样;以及
使用正向运动学检查碰撞以识别机器人中的相应一个的一个或更多个部分与机器人中相应一个的另一部分之间的可能碰撞、机器人中的相应一个与环境中的机器人中的另一个之间的可能碰撞以及机器人中的相应一个与多机器人操作环境中不是另一机器人的另一对象之间的可能碰撞。
6.根据权利要求5所述的方法,其中任务的有序列表等同于机器人的C空间中的轨迹的有序列表,并且包括多个轨迹、在一个或更多个姿势、原位姿势和机器人的C空间中的一个或更多个其他定义功能姿势处的一个或更多个停留持续时间,并且虚拟执行包括虚拟执行:多个轨迹和以下中一个或更多个:在所述一个或更多个姿势、原位姿势或所述一个或更多个其他定义功能姿势处的一个或更多个停留持续时间。
7.根据权利要求1或2所述的方法,还包括:
为所述C个候选解决方案的群体中的多个候选解决方案中的每一个,针对至少一次迭代:
扰动相应候选解决方案以产生经扰动的候选解决方案;
对经扰动的候选解决方案建模;
确定经扰动的候选解决方案是否具有比相应候选解决方案更低的关联成本;以及
响应于确定经扰动的候选解决方案具有比相应候选解决方案更低的关联成本,用经扰动的候选解决方案替换所述C个候选解决方案的群体中的相应候选解决方案。
8.根据权利要求7所述的方法,以多次迭代重复进行所述扰动、建模、确定和替换,直到出现收敛、到达迭代次数限制或到达迭代时间限制。
9.根据权利要求7所述的方法,其中扰动相应候选解决方案以产生经扰动的候选解决方案包括扰动候选解决方案向量,所述候选解决方案向量包括多个实数向量元素,针对每个任务包括一个实数向量元素,所述实数向量元素表示任务中的相应一个、任务中的相应一个的优先级以及被识别为执行任务中的相应一个的机器人之一的相应组合。
10.根据权利要求1或2所述的方法,还包括:
接收输入,所述输入包括多机器人操作环境的至少一个模型、将在多机器人操作环境中操作的机器人中的至少两个中的每个的相应模型以及一组任务。
11.根据权利要求1或2所述的方法,还包括:
接收输入,所述输入包括多机器人操作环境的至少一个模型、将在多机器人操作环境中操作的机器人中的至少两个中的每个的相应模型、一组任务以及以下中的至少一个:在机器人中的至少一个执行至少一个任务时停留在一个或更多个目标处的一个或更多个停留持续时间、变量的一组边界或约束或指定模拟碰撞时间限制的一组时间间隔。
12.根据权利要求11所述的方法,其中接收输入包括接收进一步包括以下中的至少一个的输入:对每个机器人允许的最大任务数量以及允许在多机器人操作环境中操作的机器人的总数的限制。
13.根据权利要求1或2所述的方法,其中所述群体生成器是伪随机群体生成器,并且其中经由群体种子生成器生成C个候选解决方案的群体包括经由所述伪随机群体生成器伪随机生成C个候选解决方案的群体。
14.根据权利要求1或2所述的方法,其中经由群体生成器生成C个候选解决方案的群体包括生成与纯伪随机生成的C个候选解决方案的群体相比成为无效候选解决方案的概率更低的C个候选解决方案的群体。
15.根据权利要求1或2所述的方法,其中通过跨成组的两个或更多个非同质参数进行协同优化的优化引擎对所述C个候选解决方案的群体执行优化包括选择具有以下的协同优化组合的优化候选解决方案:机器人中的每个的相应基座的相应优化的基座位置和取向、优化的任务分配和优化的运动规划。
16.一种为多个机器人将在其中操作的多机器人操作环境配置多个机器人的基于处理器的系统,所述基于处理器的系统包括:
至少一个处理器;以及
至少一个非暂时性处理器可读介质,所述至少一个非暂时性处理器可读介质存储数据和处理器可执行指令中的至少一个,所述处理器可执行指令在由所述至少一个处理器执行时使处理器执行根据权利要求1至15所述的方法中的任一方法。
17.一种为多个机器人将在其中操作的多机器人操作环境配置多个机器人的基于处理器的系统,所述基于处理器的系统包括:
至少一个处理器;以及
至少一个非暂时性处理器可读介质,所述至少一个非暂时性处理器可读介质存储数据和处理器可执行指令中的至少一个,所述处理器可执行指令在由所述至少一个处理器执行时使处理器:
经由群体生成器生成C个候选解决方案的群体,所述C个候选解决方案的群体中的候选解决方案中的每个为机器人中的每个指定:相应基座位置和取向、相应组的至少一个定义姿势和相应目标序列,其中所述相应基座位置和取向指定所述多机器人操作环境中的相应机器人的基座的相应位置和取向,所述相应组的至少一个定义姿势至少指定所述多机器人操作环境中的相应机器人的相应原位姿势,并且所述相应目标序列包括供相应机器人移动通过以完成相应任务序列的目标的相应有序列表;
通过优化引擎对所述C个候选解决方案的群体执行优化,所述优化引擎跨成组的两个或更多个非同质参数对以下中的两个或更多个进行协同优化:机器人的相应基座位置和取向、向机器人中的相应机器人的任务分配和机器人的相应目标序列;以及
作为输出提供:机器人中的每个的相应基座位置和取向,机器人中的每个的相应任务分配,以及机器人中的每个的相应运动规划。
18.根据权利要求17所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时使处理器作为输出提供优化的任务分配,所述优化的任务分配为每个机器人指定呈相应机器人的C空间中的目标和在所述目标中的一个或更多个处的一个或更多个停留持续时间的优化有序列表的形式的相应待执行任务序列,并提供指定一组无碰撞路径的优化的运动规划,该组无碰撞路径指定目标的有序列表中的每对连续目标之间的相应无碰撞路径。
19.根据权利要求17或18中任一项所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器:
经由机器人环境模拟器执行的建模,为所述C个候选解决方案的群体的候选解决方案中的每个,确定完成任务序列的相应时间和表示在完成任务序列中发生碰撞的比率或概率的相应碰撞值。
20.根据权利要求19所述的基于处理器的系统,其中为了通过跨成组的两个或更多个非同质参数进行协同优化的优化引擎对所述C个候选解决方案的群体执行优化,所述处理器可执行指令在由所述至少一个处理器执行时使处理器:
经由所述优化引擎至少部分基于与候选解决方案相关联的相应成本来选择候选解决方案中的一个,所述相应成本至少部分基于完成任务序列的时间和为相应候选解决方案确定的碰撞值。
21.根据权利要求19所述的基于处理器的系统,其中为了经由所述优化引擎的建模,确定完成任务序列的相应时间和表示发生碰撞的比率或概率的相应碰撞值,所述处理器可执行指令在由所述至少一个处理器执行时使处理器:
经由多机器人环境模拟器虚拟执行任务序列中的每个任务;
对于多个时期中的每个时期,经由所述多机器人环境模拟器对机器人中的至少一个的一部分的C空间位置进行采样;以及
使用正向运动学检查碰撞以识别机器人中的相应一个的一个或更多个部分与机器人中相应一个的另一部分之间的可能碰撞、机器人中的相应一个与环境中的机器人中的另一个之间的可能碰撞以及机器人中的相应一个与多机器人操作环境中不是另一机器人的另一对象之间的可能碰撞。
22.根据权利要求21所述的基于处理器的系统,其中任务的有序列表等同于机器人的C空间中的轨迹的有序列表,并且包括多个轨迹、在一个或更多个姿势、原位姿势和机器人的C空间中的一个或更多个其他定义功能姿势处的一个或更多个停留持续时间,并且为了虚拟执行每个任务,所述处理器可执行指令在由所述至少一个处理器执行时使处理器虚拟执行:多个轨迹和以下中一个或更多个:在所述一个或更多个姿势、原位姿势或所述一个或更多个其他定义功能姿势处的一个或更多个停留持续时间。
23.根据权利要求17或18所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器:
为所述C个候选解决方案的群体中的多个候选解决方案中的每一个,针对至少一次迭代:
扰动相应候选解决方案以产生经扰动的候选解决方案;
对经扰动的候选解决方案建模;
确定经扰动的候选解决方案是否具有比相应候选解决方案更低的关联成本;以及
响应于确定经扰动的候选解决方案具有比相应候选解决方案更低的关联成本,用经扰动的候选解决方案替换所述C个候选解决方案的群体中的相应候选解决方案。
24.根据权利要求23所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器以多次迭代重复进行所述扰动、建模、确定和替换,直到出现收敛、到达迭代次数限制或到达迭代时间限制。
25.根据权利要求23所述的基于处理器的系统,其中为了扰动相应候选解决方案以产生经扰动的候选解决方案,所述处理器可执行指令在由所述至少一个处理器执行时使处理器扰动候选解决方案向量,所述候选解决方案向量包括多个实数向量元素,针对每个任务包括一个实数向量元素,所述实数向量元素表示任务中的相应一个、任务中的相应一个的优先级以及被识别为执行任务中的相应一个的机器人之一的相应组合。
26.根据权利要求17或18所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器:
接收输入,所述输入包括多机器人操作环境的至少一个模型、将在多机器人操作环境中操作的机器人中的至少两个中的每个的相应模型以及一组任务。
27.根据权利要求17或18所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器:
接收输入,所述输入包括多机器人操作环境的至少一个模型、将在多机器人操作环境中操作的机器人中的至少两个中的每个的相应模型、一组任务以及以下中的至少一个:在机器人中的至少一个执行至少一个任务时停留在一个或更多个目标处的一个或更多个停留持续时间、变量的一组边界或约束或指定模拟碰撞时间限制的一组时间间隔。
28.根据权利要求27所述的基于处理器的系统,其中所述处理器可执行指令在由所述至少一个处理器执行时进一步使处理器作为输入接收以下中的至少一个:对每个机器人允许的最大任务数量以及允许在多机器人操作环境中操作的机器人的总数的限制。
29.根据权利要求17或18所述的基于处理器的系统,其中所述群体生成器是伪随机群体生成器,并且其中经由群体种子生成器生成C个候选解决方案的群体包括经由所述伪随机群体生成器伪随机生成C个候选解决方案的群体。
30.根据权利要求17或18所述的基于处理器的系统,其中经由群体生成器生成C个候选解决方案的群体包括生成与纯伪随机生成的C个候选解决方案的群体相比成为无效候选解决方案的概率更低的C个候选解决方案的群体。
31.根据权利要求17或18所述的基于处理器的系统,其中为了通过跨成组的两个或更多个非同质参数进行协同优化的优化引擎对所述C个候选解决方案的群体执行优化,所述处理器可执行指令在由所述至少一个处理器执行时使处理器选择具有以下的协同优化组合的优化候选解决方案:机器人中的每个的相应基座的相应优化的基座位置和取向、优化的任务分配和优化的运动规划。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062964405P | 2020-01-22 | 2020-01-22 | |
US62/964,405 | 2020-01-22 | ||
PCT/US2021/013610 WO2021150439A1 (en) | 2020-01-22 | 2021-01-15 | Configuration of robots in multi-robot operational environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115003460A true CN115003460A (zh) | 2022-09-02 |
Family
ID=76856677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180010425.9A Pending CN115003460A (zh) | 2020-01-22 | 2021-01-15 | 多机器人操作环境中的机器人配置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11623346B2 (zh) |
EP (1) | EP4045240A4 (zh) |
JP (1) | JP7489727B2 (zh) |
CN (1) | CN115003460A (zh) |
TW (1) | TW202146189A (zh) |
WO (1) | WO2021150439A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115847394A (zh) * | 2022-10-21 | 2023-03-28 | 圣名科技(广州)有限责任公司 | 控制机械臂抓取对象的方法和装置、电子设备和存储介质 |
WO2024169435A1 (zh) * | 2023-02-17 | 2024-08-22 | 广州明珞装备股份有限公司 | 基于机器人等待时长的轨迹分析方法、系统、介质及设备 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE102014118001A1 (de) * | 2014-12-05 | 2016-06-09 | Broetje-Automation Gmbh | Verfahren zur Bewegungssimulation eines Manipulators |
JP7178900B2 (ja) * | 2018-12-28 | 2022-11-28 | 川崎重工業株式会社 | ロボットの作業計画作成方法および作業計画作成装置 |
WO2021149757A1 (ja) * | 2020-01-24 | 2021-07-29 | 哲也 小野 | 情報処理装置、情報処理方法およびプログラム |
WO2021162681A1 (en) * | 2020-02-11 | 2021-08-19 | Siemens Aktiengesellschaft | Method and system for imposing constraints in a skill-based autonomous system |
WO2022241550A1 (en) | 2021-05-17 | 2022-11-24 | Cobionix Corporation | Proximity sensing autonomous robotic systems and apparatus |
CN114089755B (zh) * | 2021-11-16 | 2024-02-02 | 大连理工大学 | 一种基于一致性包算法的多机器人任务分配方法 |
US20230182302A1 (en) * | 2021-12-10 | 2023-06-15 | Autodesk, Inc. | Techniques for robotic workcell design |
CN114167808B (zh) * | 2021-12-10 | 2022-07-01 | 南京航空航天大学 | 一种面向整体增材制造的多机器人柔性生产线的运行方法 |
TW202415506A (zh) * | 2022-07-05 | 2024-04-16 | 美商即時機器人股份有限公司 | 穩健運動規劃及/或用於多機器人環境之控制 |
DE102022124067A1 (de) * | 2022-09-20 | 2024-03-21 | Bayerische Motoren Werke Aktiengesellschaft | Verfahren zum Ermitteln eines von einem Roboter auszuführenden Arbeitsvorgangs, Verfahren zum Ermitteln und Prüfen eines von einer Anlage auszuführenden Arbeitsvorgangs, Vorrichtung zur Datenverarbeitung, Computerprogramm und computerlesbares Medium |
TW202428406A (zh) * | 2022-09-27 | 2024-07-16 | 美商即時機器人股份有限公司 | 多機器人操作環境中為優化磨損和其他參數所為之機器人的自動規劃設定 |
CN117381805B (zh) * | 2023-12-13 | 2024-02-27 | 成都航空职业技术学院 | 一种面向冲突应对的机械臂运行控制方法和系统 |
CN118024262B (zh) * | 2024-04-11 | 2024-07-26 | 深圳市普渡科技有限公司 | 运行状态检测方法、装置、设备和存储介质 |
Family Cites Families (136)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4862373A (en) | 1987-05-13 | 1989-08-29 | Texas Instruments Incorporated | Method for providing a collision free path in a three-dimensional space |
US4949277A (en) | 1988-03-09 | 1990-08-14 | North American Philips Corporation | Differential budding: method and apparatus for path planning with moving obstacles and goals |
US6089742A (en) | 1989-11-01 | 2000-07-18 | Warmerdam; Thomas P. H. | Method and apparatus for controlling robots and the like using a bubble data hierarchy placed along a medial axis |
US5544282A (en) | 1991-04-05 | 1996-08-06 | Chen; Pang C. | Method and apparatus for planning motions of robot manipulators |
US5347459A (en) | 1993-03-17 | 1994-09-13 | National Research Council Of Canada | Real time collision detection |
US5835684A (en) | 1994-11-09 | 1998-11-10 | Amada Company, Ltd. | Method for planning/controlling robot motion |
US6004016A (en) * | 1996-08-06 | 1999-12-21 | Trw Inc. | Motion planning and control for systems with multiple mobile objects |
US5795297A (en) | 1996-09-12 | 1998-08-18 | Atlantis Diagnostics International, L.L.C. | Ultrasonic diagnostic imaging system with personal computer architecture |
US6049756A (en) | 1997-11-12 | 2000-04-11 | Lockheed Martin Corporation | System and method for avoiding collision between vector and solid objects |
JPH11296229A (ja) | 1998-02-13 | 1999-10-29 | Komatsu Ltd | 車両の誘導装置 |
DE19831216A1 (de) | 1998-07-03 | 2000-01-05 | Amecon Gmbh | Verfahren und Vorrichtung zur Bestimmung der Abhängigkeit einer ersten Meßgröße von einer zweiten Meßgröße |
US6259988B1 (en) | 1998-07-20 | 2001-07-10 | Lockheed Martin Corporation | Real-time mission adaptable route planner |
US6526373B1 (en) | 1999-10-08 | 2003-02-25 | Dassault Systemes | Optimization tool for robot placement |
JP2002073130A (ja) | 2000-06-13 | 2002-03-12 | Yaskawa Electric Corp | ロボットの大域動作経路計画方法とその制御装置 |
DE10063722C2 (de) | 2000-12-20 | 2003-07-03 | Siemens Ag | Ruckbegrenzung mit Adaption der Bahndynamik |
JP2003127077A (ja) | 2001-10-19 | 2003-05-08 | Komatsu Ltd | 作業ロボットのロボットプログラム修正装置。 |
DE10200680B4 (de) | 2002-01-10 | 2004-03-25 | Siemens Ag | Minimale Schwingungsanregung beim Verfahren mit Ruckbegrenzung durch Adaption von Ruckprofilen |
US10065317B2 (en) | 2016-06-30 | 2018-09-04 | General Electric Company | Control system for coordinating robotic machines to collaborate on tasks |
WO2004095520A2 (en) | 2003-04-22 | 2004-11-04 | Berkeley Process Control, Inc. | System of path planning for robotic manipulators based on maximum acceleration and finite jerk constraints |
JP3797986B2 (ja) | 2003-07-03 | 2006-07-19 | ファナック株式会社 | ロボットオフラインシミュレーション装置 |
JP3834307B2 (ja) | 2003-09-29 | 2006-10-18 | ファナック株式会社 | ロボットシステム |
US7447593B2 (en) | 2004-03-26 | 2008-11-04 | Raytheon Company | System and method for adaptive path planning |
CA2563909A1 (en) | 2004-04-22 | 2005-11-03 | Albert Den Haan | Open control system architecture for mobile autonomous systems |
US9104197B2 (en) | 2004-06-15 | 2015-08-11 | Abb Ab | Method and system for off-line programming of multiple interacting robots |
DE102004059966B3 (de) | 2004-12-13 | 2006-06-22 | Siemens Ag | Verfahren und Einrichtung zur Bewegungsführung eines bewegbaren Maschinenelements einer numerisch gesteurten Maschine |
JP2006224740A (ja) | 2005-02-16 | 2006-08-31 | Advics:Kk | 車両用走行支援装置 |
US20060235610A1 (en) | 2005-04-14 | 2006-10-19 | Honeywell International Inc. | Map-based trajectory generation |
US20060247852A1 (en) | 2005-04-29 | 2006-11-02 | Kortge James M | System and method for providing safety-optimized navigation route planning |
JP5112666B2 (ja) | 2006-09-11 | 2013-01-09 | 株式会社日立製作所 | 移動装置 |
ES2316012T3 (es) | 2006-09-14 | 2009-04-01 | Abb Research Ltd. | Un metodo y dispositivo para evitar colisiones entre un robot industrial y un objeto. |
US7974737B2 (en) | 2006-10-31 | 2011-07-05 | GM Global Technology Operations LLC | Apparatus and method of automated manufacturing |
EP1972415B1 (en) | 2007-03-23 | 2019-01-02 | Honda Research Institute Europe GmbH | Robots with collision avoidance functionality |
US7865277B1 (en) | 2007-05-07 | 2011-01-04 | The United States Of America As Represented By The Secretary Of The Navy | Obstacle avoidance system and method |
US8380424B2 (en) | 2007-09-28 | 2013-02-19 | The Boeing Company | Vehicle-based automatic traffic conflict and collision avoidance |
EP2085279B1 (en) | 2008-01-29 | 2011-05-25 | Ford Global Technologies, LLC | A system for collision course prediction |
EP2244866B1 (en) | 2008-02-20 | 2015-09-16 | ABB Research Ltd. | Method and system for optimizing the layout of a robot work cell |
US8571745B2 (en) | 2008-04-10 | 2013-10-29 | Robert Todd Pack | Advanced behavior engine |
US9144904B2 (en) | 2008-05-21 | 2015-09-29 | Fanuc Robotics America Corporation | Method and system for automatically preventing deadlock in multi-robot systems |
US8315738B2 (en) * | 2008-05-21 | 2012-11-20 | Fanuc Robotics America, Inc. | Multi-arm robot system interference check via three dimensional automatic zones |
US8706452B2 (en) | 2008-06-26 | 2014-04-22 | Siemens Product Lifecycle Management Software Inc. | System and method for collision-free CAD design of pipe and tube paths |
JP5086942B2 (ja) | 2008-09-02 | 2012-11-28 | トヨタ自動車株式会社 | 経路探索装置、経路探索方法、及び経路探索プログラム |
KR101554515B1 (ko) | 2009-01-07 | 2015-09-21 | 삼성전자 주식회사 | 로봇의 경로계획장치 및 그 방법 |
KR101105325B1 (ko) | 2009-09-08 | 2012-01-16 | 부산대학교 산학협력단 | 실제 로봇의 다중 경로계획 방법 |
US8386080B2 (en) | 2009-09-15 | 2013-02-26 | Harris Corporation | Robotic apparatus implementing collision avoidance scheme and associated methods |
JP4975075B2 (ja) | 2009-09-30 | 2012-07-11 | クラリオン株式会社 | ナビゲーション装置および経路演算方法 |
EP2493664B1 (en) | 2009-10-27 | 2019-02-20 | Battelle Memorial Institute | Semi-autonomous multi-use robot system and method of operation |
US20110153080A1 (en) | 2009-12-22 | 2011-06-23 | Siemens Product Lifecycle Management Software Inc. | Method and apparatus for industrial robotic pathscycle time optimization using fly by |
US20120061155A1 (en) | 2010-04-09 | 2012-03-15 | Willow Garage, Inc. | Humanoid robotics system and methods |
JP2011249711A (ja) | 2010-05-31 | 2011-12-08 | Kyocera Corp | 配線基板およびその実装構造体 |
US8855812B2 (en) | 2010-07-23 | 2014-10-07 | Chetan Kapoor | System and method for robot safety and collision avoidance |
JP2012056023A (ja) | 2010-09-09 | 2012-03-22 | Toyota Motor Corp | ロボットの動作生成システム及び動作生成方法 |
JP5745067B2 (ja) | 2010-09-24 | 2015-07-08 | アイロボット・コーポレーション | Vslam最適化のためのシステムおよび方法 |
US8509982B2 (en) | 2010-10-05 | 2013-08-13 | Google Inc. | Zone driving |
JP2012190405A (ja) | 2011-03-14 | 2012-10-04 | Toyota Motor Corp | 経路情報修正装置、軌道計画装置、及びロボット |
JP5774361B2 (ja) | 2011-04-28 | 2015-09-09 | 本田技研工業株式会社 | 軌道計画方法、軌道計画システム及び軌道計画・制御システム |
JP2012243029A (ja) | 2011-05-18 | 2012-12-10 | Toyota Central R&D Labs Inc | 経路探索機能付き移動体 |
US9469035B2 (en) | 2011-06-29 | 2016-10-18 | Mitsubishi Electric Corporation | Component supply apparatus |
TW201318793A (zh) | 2011-11-08 | 2013-05-16 | Univ Minghsin Sci & Tech | 機器人光學定位系統及其定位方法 |
JP5724919B2 (ja) | 2012-03-22 | 2015-05-27 | トヨタ自動車株式会社 | 軌道生成装置、移動体、軌道生成方法及びプログラム |
JP6415427B2 (ja) | 2012-03-22 | 2018-10-31 | イスラエル エアロスペース インダストリーズ リミテッド | 自律ミッションの計画および監視 |
KR20130112507A (ko) | 2012-04-04 | 2013-10-14 | 인하대학교 산학협력단 | S* 알고리즘을 이용한 이동로봇의 안전경로계획 수립방법 |
JP6128767B2 (ja) | 2012-07-05 | 2017-05-17 | キヤノン株式会社 | ロボット制御装置、及びロボット制御方法 |
KR101441187B1 (ko) | 2012-07-19 | 2014-09-18 | 고려대학교 산학협력단 | 자율 보행 로봇 경로 계획 방법 |
JP6069923B2 (ja) | 2012-07-20 | 2017-02-01 | セイコーエプソン株式会社 | ロボットシステム、ロボット、ロボット制御装置 |
WO2014036549A2 (en) | 2012-08-31 | 2014-03-06 | Rethink Robotics, Inc. | Systems and methods for safe robot operation |
EP2906396A1 (en) | 2012-10-11 | 2015-08-19 | ABB Technology Ltd. | A method and an apparatus for automatically generating a collision free return program for returning a robot from a stop position to a predefined restart position |
KR102009482B1 (ko) | 2012-10-30 | 2019-08-14 | 한화디펜스 주식회사 | 로봇의 경로계획 장치와 방법 및 상기 방법을 구현하는 프로그램이 기록된 기록 매체 |
US9405296B2 (en) | 2012-12-19 | 2016-08-02 | Elwah LLC | Collision targeting for hazard handling |
US8972057B1 (en) | 2013-01-09 | 2015-03-03 | The Boeing Company | Systems and methods for generating a robotic path plan in a confined configuration space |
US9102055B1 (en) | 2013-03-15 | 2015-08-11 | Industrial Perception, Inc. | Detection and reconstruction of an environment to facilitate robotic interaction with the environment |
JP5962560B2 (ja) | 2013-03-22 | 2016-08-03 | トヨタ自動車株式会社 | 経路探索装置、移動体、経路探索方法及びプログラム |
US9280899B2 (en) | 2013-08-06 | 2016-03-08 | GM Global Technology Operations LLC | Dynamic safety shields for situation assessment and decision making in collision avoidance tasks |
JP6057862B2 (ja) | 2013-08-29 | 2017-01-11 | 三菱電機株式会社 | 部品供給装置および部品供給装置のプログラム生成方法 |
US9352465B2 (en) | 2013-11-12 | 2016-05-31 | Canon Kabushiki Kaisha | Control method for robot apparatus and robot apparatus |
WO2015113203A1 (en) | 2014-01-28 | 2015-08-06 | Abb Technology Ltd | Method and apparatus for optimizing performance of robotic cell |
JP5897624B2 (ja) | 2014-03-12 | 2016-03-30 | ファナック株式会社 | ワークの取出工程をシミュレーションするロボットシミュレーション装置 |
JP5877867B2 (ja) | 2014-04-25 | 2016-03-08 | ファナック株式会社 | 複数台のロボットのシミュレーション装置 |
DE102014212898A1 (de) | 2014-07-03 | 2016-01-07 | Robert Bosch Gmbh | Verfahren zum Ermitteln einer Notfall-Trajektorie und Verfahren zum teilautomatisierten oder automatisierten Führen eines Ego-Fahrzeugs |
US11576543B2 (en) | 2014-07-18 | 2023-02-14 | Ali Ebrahimi Afrouzi | Robotic vacuum with rotating cleaning apparatus |
JP5980873B2 (ja) | 2014-10-17 | 2016-08-31 | ファナック株式会社 | ロボットの干渉領域設定装置 |
US9403275B2 (en) | 2014-10-17 | 2016-08-02 | GM Global Technology Operations LLC | Dynamic obstacle avoidance in a robotic system |
US20160121487A1 (en) | 2014-11-03 | 2016-05-05 | Qualcomm Incorporated | Communicating Configurable Instruction Sets to Robots for Controlling Robot Behavior |
WO2016122840A1 (en) | 2015-01-26 | 2016-08-04 | Duke University | Specialized robot motion planning hardware and methods of making and using same |
WO2016128066A1 (en) | 2015-02-13 | 2016-08-18 | Abb Technology Ltd | A method for avoiding collisions between two robots |
US10019006B2 (en) | 2015-04-08 | 2018-07-10 | University Of Maryland, College Park | Surface vehicle trajectory planning systems, devices, and methods |
US9687982B1 (en) | 2015-05-27 | 2017-06-27 | X Development Llc | Adapting programming of a robot and/or control of the robot based on one or more parameters of an end effector of the robot |
US20160357187A1 (en) | 2015-06-05 | 2016-12-08 | Arafat M.A. ANSARI | Smart vehicle |
US20170004406A1 (en) | 2015-06-30 | 2017-01-05 | Qualcomm Incorporated | Parallel belief space motion planner |
US9707681B2 (en) | 2015-07-27 | 2017-07-18 | Siemens Industry Software Ltd. | Anti-collision management of overlapping robotic movements |
KR101724887B1 (ko) | 2015-08-10 | 2017-04-07 | 현대자동차주식회사 | 전방 도로 형상과 연결을 분석해 차선 변경과 타이밍을 결정하는 자율주행 제어 장치 및 방법 |
JP6760297B2 (ja) | 2015-09-29 | 2020-09-23 | ソニー株式会社 | 信号処理装置、信号処理方法およびプログラム |
KR20170044987A (ko) | 2015-10-16 | 2017-04-26 | 한국전기연구원 | 저크가 제한된 궤적 생성 방법 |
KR101748632B1 (ko) | 2015-10-29 | 2017-06-20 | 한국과학기술연구원 | 로봇의 구동 경로를 계획하기 위한 로봇 제어 시스템 및 로봇 구동 경로 계획방법 |
US10496766B2 (en) | 2015-11-05 | 2019-12-03 | Zoox, Inc. | Simulation system and methods for autonomous vehicles |
US9632502B1 (en) | 2015-11-04 | 2017-04-25 | Zoox, Inc. | Machine-learning systems and techniques to optimize teleoperation and/or planner decisions |
EP3171133B1 (en) | 2015-11-19 | 2020-03-11 | Sikorsky Aircraft Corporation | Kinematic motion planning with regional planning constraints |
US10093021B2 (en) | 2015-12-02 | 2018-10-09 | Qualcomm Incorporated | Simultaneous mapping and planning by a robot |
US10012984B2 (en) | 2015-12-14 | 2018-07-03 | Mitsubishi Electric Research Laboratories, Inc. | System and method for controlling autonomous vehicles |
US10705528B2 (en) | 2015-12-15 | 2020-07-07 | Qualcomm Incorporated | Autonomous visual navigation |
US10665115B2 (en) | 2016-01-05 | 2020-05-26 | California Institute Of Technology | Controlling unmanned aerial vehicles to avoid obstacle collision |
US10035266B1 (en) | 2016-01-18 | 2018-07-31 | X Development Llc | Generating robot trajectories using a real time trajectory generator and a path optimizer |
JP6576255B2 (ja) | 2016-01-25 | 2019-09-18 | キヤノン株式会社 | ロボット軌道生成方法、ロボット軌道生成装置、および製造方法 |
US9645577B1 (en) | 2016-03-23 | 2017-05-09 | nuTonomy Inc. | Facilitating vehicle driving and self-driving |
WO2017168187A1 (en) * | 2016-03-31 | 2017-10-05 | Siemens Industry Software Ltd. | Method and system for determining optimal positioning of a plurality of robots in a simulated production environment |
EP3452340B1 (en) | 2016-05-05 | 2020-09-30 | Harman International Industries, Incorporated | Systems and methods for driver assistance |
US9687983B1 (en) | 2016-05-11 | 2017-06-27 | X Development Llc | Generating a grasp pose for grasping of an object by a grasping end effector of a robot |
US9880561B2 (en) | 2016-06-09 | 2018-01-30 | X Development Llc | Sensor trajectory planning for a vehicle |
US11429105B2 (en) | 2016-06-10 | 2022-08-30 | Duke University | Motion planning for autonomous vehicles and reconfigurable motion planning processors |
US9981383B1 (en) | 2016-08-02 | 2018-05-29 | X Development Llc | Real-time trajectory generation for actuators of a robot to reduce chance of collision with obstacle(s) |
US10131053B1 (en) | 2016-09-14 | 2018-11-20 | X Development Llc | Real time robot collision avoidance |
US10345815B2 (en) | 2016-09-14 | 2019-07-09 | Qualcomm Incorporated | Motion planning and intention prediction for autonomous driving in highway scenarios via graphical model-based factorization |
DE102016120763B4 (de) | 2016-10-31 | 2019-03-14 | Pilz Gmbh & Co. Kg | Verfahren zur kollisionsfreien Bewegungsplanung |
WO2018087550A2 (en) | 2016-11-09 | 2018-05-17 | Inventive Cogs (Campbell) Limited | Vehicle route guidance |
KR102518532B1 (ko) | 2016-11-11 | 2023-04-07 | 현대자동차주식회사 | 자율주행차량의 경로 결정장치 및 그 방법 |
US10012988B2 (en) | 2016-11-29 | 2018-07-03 | Mitsubishi Electric Research Laboratories, Inc. | Methods and systems for path planning using a network of safe-sets |
US10480947B2 (en) | 2016-12-21 | 2019-11-19 | X Development Llc | Boolean satisfiability (SAT) reduction for geometry and kinematics agnostic multi-agent planning |
US10296012B2 (en) | 2016-12-21 | 2019-05-21 | X Development Llc | Pre-computation of kinematically feasible roadmaps |
CN110494900A (zh) | 2017-02-07 | 2019-11-22 | 韦奥机器人股份有限公司 | 工作空间安全监控和设备控制 |
US11541543B2 (en) | 2017-02-07 | 2023-01-03 | Veo Robotics, Inc. | Dynamic, interactive signaling of safety-related conditions in a monitored environment |
DE102017102749A1 (de) | 2017-02-13 | 2018-08-16 | Festo Ag | Automatische Trajektorienerzeugung zur Ansteuerung eines Antriebssystems |
US10430641B2 (en) | 2017-03-08 | 2019-10-01 | GM Global Technology Operations LLC | Methods and systems for object tracking using bounding boxes |
KR101937269B1 (ko) | 2017-05-15 | 2019-01-14 | 한국생산기술연구원 | 로봇 모션 경로 계획방법 |
US11014240B2 (en) | 2017-09-05 | 2021-05-25 | Abb Schweiz Ag | Robot having dynamic safety zones |
US10782694B2 (en) | 2017-09-07 | 2020-09-22 | Tusimple, Inc. | Prediction-based system and method for trajectory planning of autonomous vehicles |
EP3486612B1 (en) | 2017-11-20 | 2020-07-01 | Robert Bosch GmbH | Method for generating a trajectory |
US10466707B2 (en) | 2017-12-22 | 2019-11-05 | X Development Llc | Planning robot stopping points to avoid collisions |
US11738457B2 (en) | 2018-03-21 | 2023-08-29 | Realtime Robotics, Inc. | Motion planning of a robot for various environments and tasks and improved operation of same |
WO2020005993A1 (en) | 2018-06-25 | 2020-01-02 | X Development Llc | Robot coordination in a shared workspace |
WO2020040979A1 (en) | 2018-08-23 | 2020-02-27 | Realtime Robotics, Inc. | Collision detection useful in motion planning for robotics |
US10809732B2 (en) | 2018-09-25 | 2020-10-20 | Mitsubishi Electric Research Laboratories, Inc. | Deterministic path planning for controlling vehicle movement |
EP3891570A4 (en) | 2018-12-04 | 2022-01-26 | Duke University | DEVICE, METHOD AND ARTICLES TO FACILITATE MOVEMENT PLANNING IN A DYNAMIC OBJECT ENVIRONMENT |
EP3725472A1 (de) | 2019-04-16 | 2020-10-21 | Siemens Aktiengesellschaft | Verfahren zum ermitteln einer trajektorie eines roboters |
US11179850B2 (en) | 2019-04-24 | 2021-11-23 | Intrinsic Innovation Llc | Robot motion planning |
JP7222803B2 (ja) | 2019-04-25 | 2023-02-15 | 株式会社日立製作所 | 軌道計画装置、軌道計画方法及びプログラム |
US11772638B2 (en) | 2019-05-07 | 2023-10-03 | Motional Ad Llc | Systems and methods for planning and updating a vehicle's trajectory |
TWI699636B (zh) | 2019-05-21 | 2020-07-21 | 華邦電子股份有限公司 | 協同型機器人控制系統和方法 |
-
2021
- 2021-01-11 TW TW110100958A patent/TW202146189A/zh unknown
- 2021-01-15 CN CN202180010425.9A patent/CN115003460A/zh active Pending
- 2021-01-15 JP JP2022544106A patent/JP7489727B2/ja active Active
- 2021-01-15 EP EP21744840.6A patent/EP4045240A4/en active Pending
- 2021-01-15 WO PCT/US2021/013610 patent/WO2021150439A1/en unknown
- 2021-01-20 US US17/153,662 patent/US11623346B2/en active Active
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115847394A (zh) * | 2022-10-21 | 2023-03-28 | 圣名科技(广州)有限责任公司 | 控制机械臂抓取对象的方法和装置、电子设备和存储介质 |
CN115847394B (zh) * | 2022-10-21 | 2023-10-10 | 圣名科技(广州)有限责任公司 | 控制机械臂抓取对象的方法和装置、电子设备和存储介质 |
WO2024169435A1 (zh) * | 2023-02-17 | 2024-08-22 | 广州明珞装备股份有限公司 | 基于机器人等待时长的轨迹分析方法、系统、介质及设备 |
Also Published As
Publication number | Publication date |
---|---|
JP2023512954A (ja) | 2023-03-30 |
EP4045240A4 (en) | 2022-12-07 |
WO2021150439A1 (en) | 2021-07-29 |
JP7489727B2 (ja) | 2024-05-24 |
US20210220994A1 (en) | 2021-07-22 |
TW202146189A (zh) | 2021-12-16 |
US11623346B2 (en) | 2023-04-11 |
EP4045240A1 (en) | 2022-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7489727B2 (ja) | マルチロボット運用環境におけるロボットの構成 | |
US20200398428A1 (en) | Motion planning for multiple robots in shared workspace | |
US11577393B2 (en) | Method for collision-free motion planning | |
US20220080594A1 (en) | Motion planning of a robot storing a discretized environment on one or more processors and improved operation of same | |
Nevlyudov et al. | Intelligent means in the system of managing a manufacturing agent | |
Schillinger et al. | Adaptive heterogeneous multi-robot collaboration from formal task specifications | |
Andreevich et al. | Designing algorithms for service robots on the basis of mivar approach | |
WO2022119934A1 (en) | Systems, methods, and user interfaces employing clearance determinations in robot motion planning and control | |
WO2024011062A1 (en) | Robust motion planning and/or control for multi-robot environments | |
US20230342967A1 (en) | Configuration of robot operational environment including layout of sensors | |
WO2024073245A1 (en) | Automated configuration of robots in multi-robot operational environment optimizing for wear and other parameters | |
Zhu et al. | Multi-level Reasoning for Robotic Assembly: From Sequence Inference to Contact Selection | |
US20230286156A1 (en) | Motion planning and control for robots in shared workspace employing staging poses | |
Posada et al. | Machine learning approaches for offline-programming optimization in robotic painting | |
Cao | GPU-Enabled Genetic Algorithm Optimization and Path Planning of Robotic Arm for Minimizing Energy Consumption | |
US20240198530A1 (en) | High-level sensor fusion and multi-criteria decision making for autonomous bin picking | |
Szabó et al. | GPU Accelerated Collision Detection for Robotic Manipulators | |
Hou et al. | A data-driven approach for motion planning of industrial robots controlled by high-level motion commands | |
Cavelli et al. | Motion Planning and Safe Object Handling for a Low-Resource Mobile Manipulator as Human Assistant | |
Kwon et al. | Conformalized Reachable Sets for Obstacle Avoidance With Spheres | |
Sayour et al. | Research Article Autonomous Robotic Manipulation: Real-Time, Deep-Learning Approach for Grasping of Unknown Objects | |
Cotrim et al. | Reinforcement learning control of robot manipulator | |
Kazimierczak et al. | Intelligent adaptive control of a mobile robot: The automaton with an internal and external parameter approach | |
Yasuda | Design and implementation of Petrinet based distributed control architecture for robotic manufacturing 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 | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40071862 Country of ref document: HK |