CN115297999A - 在机器人的运动规划中有用的机器人操作环境的数字表示 - Google Patents
在机器人的运动规划中有用的机器人操作环境的数字表示 Download PDFInfo
- Publication number
- CN115297999A CN115297999A CN202180022111.0A CN202180022111A CN115297999A CN 115297999 A CN115297999 A CN 115297999A CN 202180022111 A CN202180022111 A CN 202180022111A CN 115297999 A CN115297999 A CN 115297999A
- Authority
- CN
- China
- Prior art keywords
- robot
- dimensional
- representation
- volume
- hyper
- 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
-
- 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/1694—Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
- B25J9/1697—Vision controlled systems
-
- 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/40442—Voxel map, 3-D grid map
-
- 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/40492—Model manipulator by spheres for collision avoidance
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
从操作环境的表示中过滤机器人的至少一部分的超大表示(例如,对于完全位于超大表示内的任何对象,体素被设置为未被占据),这提供了例如可以用于机器人的运动规划的操作环境的数字模型。超大表示超过了机器人的至少一部分(例如附件)的物理尺寸,以有利地考虑所附接的并且延伸超出机器人的外部尺寸的线缆和其他特征。超大表示的具体尺寸可以基于多种因素,例如可以进行建模的线缆的几何形状、机器人附件的取向或位置、线缆相对于机器人附件的取向或位置、附件的速度、线缆的松弛等。
Description
技术领域
本公开内容总体上涉及一个或更多个机器人在其中操作的操作环境的数字表示,并且涉及采用操作环境的数字表示的机器人运动规划,例如使用根据传感器收集的感知数据而生成的数字表示执行碰撞检测以产生驱动机器人等的运动计划的系统和方法。
背景技术
相关技术的描述
运动规划是机器人控制和机器人技术中的基本问题。运动计划完全指定了机器人通常在与操作环境中的任何障碍物不发生碰撞或发生碰撞的概率降低的情况下从起始状态到目标状态可以遵循的路径,该操作环境通常是三维操作环境。运动规划面临的挑战包括快速执行运动规划的能力,即使3D操作环境的特征发生变化时也快速执行运动规划的能力。例如,三维操作环境中的一个或更多个障碍物的诸如位置或形状的特征可能会随时间而改变。
通常,一个或更多个传感器捕获关于一个或更多个机器人可以在其中操作的三维操作环境的信息。例如,三维操作环境可以采取一个或更多个机器人在其中操作的工作单元的形式。例如,机器人可以各自具有带有末端执行器或臂末端工具的相应可移动机器人附件,并且可以与一个或更多个工件交互。捕获的传感器信息用于生成三维操作环境的数字表示或模型,其中三维环境的各个部分被表示为未被占据或被可能位于三维操作环境中的一个或更多个对象占据。对象可以采取要避开的障碍物的形式,或者机器人要与之交互的目标的形式。数字表示可以用于执行运动规划以生成用于驱动机器人的运动计划,同时避免与三维操作环境中的各种障碍物发生碰撞。
发明内容
机器人可以采取多种形式,通常包括基座、附件和位于附件远端的末端执行器或臂末端工具。基座可以是固定的或可移动的。附件可相对于基座移动,并且可以包括经由一个或更多个关节(joint)耦合的一个或更多个连杆,其中各种致动器(例如,电动马达、步进马达、螺线管、电磁体、活塞和带有相关阀和加压流体储存器的气缸)被耦合并进行操作以驱动连杆围绕关节旋转。末端执行器可以采取多种形式中的任何一种,例如夹持器、一对可对置手指、旋转钻头、螺丝刀或螺栓驱动器、焊头、传感器等。
很多时候,一些结构可能从机器人的一部分向外延伸。例如,机器人可以物理地耦合到一个或更多个线缆,或者可以使一个或更多个线缆附接到机器人的各个部分。例如,一个或更多个线缆可以在机器人的基座和附件之间延伸。附加地或替选地,一个或更多个线缆可以在附件的各个连杆之间或在附件和末端执行器之间延伸。线缆可以采取多种形式。例如,一个或更多个线缆可以用于向一个或更多个致动器供应电力或提供加压流体(例如,液压、气动)。又例如,一个或更多个线缆可以用于路由通信信号,例如路由来自一个或更多个安装在机器人上的传感器(例如,相机、位置或旋转编码器、接近传感器)的通信信号。线缆可以在沿着机器人的各个点或位置处附接至机器人,例如在沿着附件或沿着附件的连杆的几个点处附接,通常相对于附件、连杆或机器人的其他部分的边缘向外延伸。在一些情况下,线缆的一个或更多个部分可能至少在机器人的一些位置和取向上从机器人的一部分下垂、下沉或悬挂。在一些情况下,线缆的一个或更多个部分可以在机器人的一部分移动时例如在惯性力作用在线缆或其一部分上时,改变相对于机器人的该部分的相对位置或取向。其他结构(例如,传感器、三轴加速度计)也可以附接到机器人的一个或更多个部分,相对于机器人的附件、连杆或其他部分的边缘向外延伸。
在基于传感器或感知数据生成三维操作环境的数字表示时,将机器人本身从数字表示中“过滤”掉以防止给定的机器人在执行运动规划时阻止其自己可能是有利的。因此,将被机器人占据的三维操作环境的一部分显示为在三维操作环境的数字表示中未被占据可能是有利的。
例如,可以通过机器人的数字表示或模型来指定由机器人占据的体积,这可以考虑在任何给定时间机器人的一个或更多个关节位置。该数字表示或模型可以非常准确地表示机器人的外部尺寸,包括附件和末端执行器。然而,该数字表示或模型未能考虑可能附接到机器人各部分的各种结构,例如未能考虑附接到机器人的一个或更多个部分并随机器人的一个或更多个部分移动的一个或更多个线缆。
如本文所描述的,从三维操作环境的表示中过滤机器人的至少一部分的超大(oversized)或“扩张”表示。所得“经过滤”表示提供了三维操作环境的数字模型,其例如可以用于给定机器人的运动规划。超大表示超过机器人的至少一部分(例如附件)的一个或更多个物理尺寸,以有利地考虑附接到机器人并可能延伸超出机器人的外部尺寸的线缆和其他特征。超大表示的具体尺寸可以基于多种因素,例如线缆的几何形状、机器人附件的取向或位置、线缆相对于机器人附件的取向或位置、附件的速度、线缆的松弛、下垂或张力。例如,从表示中过滤机器人可以包括对于完全位于机器人或其部分的超大表示内的任何对象,将一个或更多个体素的占据值设置为未被占据。以这种方式,从三维操作环境的数字表示中滤除三维操作环境中的每个机器人及附接至其的结构(例如,线缆),该数字表示可以用于同一机器人的运动规划。三维操作环境中的其他机器人(如果有的话)在给定机器人的运动规划时构成障碍物,因此不会从用于给定机器人的运动规划的数字表示中滤除。
因此,可以确定机器人的至少一部分的超大或“扩张”表示,其被选择或生成为足够大以包含机器人和从机器人或其部分延伸的相关结构(例如,线缆)。例如,过大的量可以基于一组试探法,其可以在预运行建模期间确定。
在实践中,完全位于对应于超大或“扩张”表示的区域内的任何对象表示可以被指示为未被占据,例如通过将相关体素的占据值从被占据改变为未被占据。完全位于该区域之外或跨越该区域的任何对象表示可以被指示为被占据,例如通过将相关体素的占据值保留为被占据。
附图说明
在附图中,相同的附图标记标识相似的元件或动作。附图中元件的大小和相对位置不一定按比例绘制。例如,各种元件的形状和角度不是按比例绘制的,并且这些元件中的一些元件被任意放大和定位,以提高绘图的易读性。此外,所描绘的元件的特定形状并不旨在传达关于特定元件的实际形状的任何信息,并且仅是为了便于在附图中识别而选择的。
图1是根据一个图示实现方式的一个或更多个机器人在其中操作的操作环境、包括各种传感器和环境建模计算机系统的环境建模系统、以及可选的运动规划器和可选的机器人控制系统的示意图。
图2是根据一个图示实现方式的图1的环境建模系统的功能框图。
图3是示出根据一个图示实现方式的图1的环境建模系统的高级操作方法的流程图。
图4是示出根据一个图示实现方式的图1的环境建模系统的低级操作方法的流程图。
图5是示出根据一个图示实现方式的图1的环境建模系统的低级操作方法的流程图。
图6是示出根据一个图示实现方式的图1的环境建模系统的低级操作方法的流程图。
图7是示出根据一个图示实现方式的基于处理器的系统的低级操作方法的流程图。
图8是示出根据一种图示实现方式的基于处理器的系统的低级操作方法的流程图。
具体实施方式
在以下描述中,阐述了某些特定细节以便提供对各种公开的实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有这些具体细节中的一个或更多个的情况下或者使用其他方法、部件、材料等来实践实施例。在其他情况下,与计算机系统、致动器系统和/或通信网络相关联的众所周知的结构没有被详细示出或描述以避免不必要地模糊实施例的描述。在其他情况下,没有详细描述用于生成一个或更多个对象等的感知数据和体积表示的众所周知的计算机视觉方法和技术,以避免不必要地模糊实施例的描述。
除非上下文另有要求,否则在整个说明书和所附权利要求书中,词语“包括(comprise)”及其变型例如“包括(comprises)”和“包括(comprising)”应以开放、包含性的意义解释,即解释为“包括但不限于。”
在整个说明书中对“一个实现方式”或“实现方式”或“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实现方式中或至少一个实施例中。因此,在整个本说明书的各个地方出现的短语“一个实现方式”或“实现方式”或“在一个实施例中”或“在实施例中”不一定全部都指相同的实现方式或实施例。此外,可以在一个或更多个实现方式或实施例中以任何合适的方式组合特定特征、结构或特性。
如在本说明书和所附权利要求中使用的,除非内容另有明确规定,否则单数形式“一”、“一个”和“该”包括复数指示物。还应注意,除非内容另有明确规定,否则术语“或”通常以其包括“和/或”的含义使用。
如在本说明书和所附权利要求中使用的,术语确定、进行确定和被确定当在碰撞是否会发生或产生的上下文中使用时,意指对给定姿态或两个姿态之间经由多个中间姿态的移动是否将导致机器人的一部分与某个对象(例如,机器人的另一部分、永久障碍物、临时障碍物或除当前目标对象之外的某些对象)之间发生碰撞进行评估或预测。
本文提供的公开内容的标题和摘要仅为方便起见,并且并不解释实施例的范围或含义。
作为概述,从操作环境的表示中过滤掉机器人的至少一部分的超大表示(例如,对于完全位于超大表示内的任何对象,将体素设置为未被占据),这提供了例如可以用于机器人运动规划的操作环境的数字模型。超大的表示超过了机器人的至少一部分(例如附件)的物理尺寸,以有利地考虑附接到机器人的外部尺寸以及延伸超出机器人的外部尺寸的结构(例如线缆、线缆扎带、传感器、其他特征)。超大表示的具体尺寸可以基于多种因素,例如附加结构的几何形状、机器人附件的取向或位置、附加结构相对于机器人附件的取向或位置、附件的速度、附加结构的松弛度等,这些都可以被建模。
图1示出了根据一个图示实施例的一个或更多个机器人102a、102b、102c(示出了三个,统称为102)可以在其中进行操作的三维操作环境100。为了简洁起见,三维操作环境100在本文中被称为环境100。环境100表示机器人102可以在其中进行操作和移动的三维空间。注意,环境100不同于任何给定机器人102的“配置空间”或“C空间”。
环境100可以包括表示可能碰撞区域的障碍物106a至106e(统称为106)。术语一个障碍物和多个障碍物106用于指示表示对于给定机器人102有碰撞风险的对象(例如,包括其他机器人的无生命对象、包括人和其他动物的有生命对象)。
这些障碍物106a、106b、106c中的一些可以采取静态障碍物或对象的形式(即,在相关时段或运行时间期间不移动(即,平移、旋转)或改变形状的障碍物或对象(例如,建筑物、树木、岩石、家具、底座、支柱、架子)。这些障碍物中的一些可以采取环境100中的动态障碍物或对象106d、106e(即,在相关时段或运行时间的至少一部分期间移动(即平移、旋转)或改变形状的障碍物或对象,例如其他机器人、容器、交通工具或交通工具形式的机器人、人、动物、滚动或移动的物品)的形式)。例如,一组底座、墙壁和支撑柱可能是固定的或者可能在相关时间段(例如,运行时间)内不会移动或改变形状,并且因此被认为是静态障碍物。还例如,一组容器、工件和另一个机器人102可能在相关时间段(例如,运行时间)期间移动或改变形状(例如倾斜),并且因此被认为是动态障碍物。
一些障碍物106a至106c占据不随时间改变的区域或体积,例如在机器人的操作或移动期间保持固定或不变。这样的障碍物因此可以被称为静态或持久障碍物。由静态或持久障碍物(例如,障碍物106a至106c)占据的区域或体积可以在确定模型或配置计算电路的时间(称为配置时间或预运行时间的时间)已知。
对于其他障碍物106d、106e,障碍物占据的相应区域或体积随着时间改变或预期改变,例如在机器人的操作或移动期间改变。这样的障碍物因此可以被称为动态或临时障碍物。由动态或临时障碍物(例如障碍物106d、106e)占据的区域或体积通常在配置时间期间是未知的,而是在机器人操作期间或运行时间期间来确定。
环境100可以可选地包括一个或更多个目标对象108a、108b(示出了两个,统称为108),机器人102旨在例如通过抓握目标对象108、移动目标对象108或以其他方式接合目标对象108来与一个或更多个目标对象108a、108b交互,以执行一些限定任务或操作。目标对象108通常不被认为是障碍物,但在一些实现方式中可以构成障碍物,例如在存在一个机器人102a将顺序地接合的多个目标对象108的情况下或者当相对于不以特定目标对象108为目标的另一机器人102b、102c考虑时,可以构成障碍物。一些实现方式可以不包括任何目标对象,机器人102在各种姿态之间移动而不与任何对象交互或接合任何对象。
图1图示了具有有限数量的障碍物106和目标对象108的代表性环境100。典型环境可以包括许多额外的障碍物106和目标对象108,包括作为其他机器人和各种其他自然或人工静态和动态障碍物106或目标对象108的对象。一些环境100可以完全省略目标对象108,或者甚至省略动态障碍物106d、106e。本文教导的概念可以以类似的方式用于比所示出的更密集的环境。
机器人102可以是任何类型的机器人,包括但不限于:笛卡尔机器人、机器人装配用选择顺应性臂(selectively compliant arm for robotic assembly,SCARA)机器人、圆柱形机器人、delta机器人、极性和垂直铰接机器人(polar and vertically articulatedrobot)。机器人102也可以是移动的,例如具有汽车、飞机、无人机或任何其他可以自主或半自主地(即至少部分自主地)操作并在由环境100表示的空间中移动的交通工具的形式。
在图示的实现方式中,机器人102包括基座110和由一组连杆112a、112b(仅标出两个,统称为112)和一组关节114(仅标出一个)形成的附件111(仅标出一个),每个关节114物理耦合相应的连杆对112。机器人102还可以包括一个或更多个致动器116(仅标出一个),一个或更多个致动器116驱动一个连杆112a相对于另一连杆112b或相对于基座110移动。致动器116可以采取多种形式中的任何一种,例如,电动马达、步进马达、螺线管、电磁体、液压活塞和气缸、气动活塞和气缸、液压阀、气动阀、用于真空系统的泵或压缩机、液压系统、包括液压和/或气动储存器的气动系统。机器人102还可以包括末端执行器或臂末端工具118,例如具有可对置手指、钩子或真空端口的抓握器,以物理地接合环境100中的目标对象108。
值得注意的是,机器人102可以使一个或更多个结构附接至其,并且这些一个或更多个结构从机器人102向外延伸。在所示示例中,机器人102包括第一线缆119a和第二线缆119b(仅示出了两条线缆,统称为119)。例如,一个或更多个线缆119可以附接到机器人102的各个部分。例如,一个或更多个线缆119可以在机器人102的基座110和附件111(例如,由连杆112和关节114形成的附件)之间延伸。附加地或替选地,一个或更多个线缆119可以在附件111的各个连杆112之间或在附件111和末端执行器118之间延伸。
线缆119可以采取多种形式。例如,一个或更多个线缆119可以用于向一个或更多个致动器116供应电力或提供加压流体(例如,液压、气动)。例如,一个或更多个线缆119可以用于例如从一个或更多个安装在机器人上的传感器(例如,相机、位置或旋转编码器、接近传感器、惯性传感器)或向一个或更多个致动器116路由通信信号。
线缆119可以在沿着机器人102的各个点或位置处附接至机器人102,例如在沿着附件111的几个点处附接,其通常相对于附件111或机器人102的其他部分的边缘向外延伸。在一些情况下,线缆119的一个或更多个部分可以至少在机器人102的一些位置和取向上从机器人102的一部分下垂、下坠或悬挂。在一些情况下,线缆119的一个或更多个部分可以在机器人102的一部分移动时例如在惯性力作用在线缆119或其一部分上时,改变相对于机器人102的一部分的相对位置或取向。其他结构(例如,传感器、惯性传感器,例如三轴加速度计)也可以附接到机器人102的一个或更多个部分,通常从机器人102向外延伸。
环境建模系统120可以包括一个或更多个环境传感器122a、122b、122c、122d(示出了四个,统称为122)和环境建模计算机系统124。
环境传感器122可以采取多种形式或类型中的任何一种,例如一个或更多个数码相机122a、122b(例如,飞行时间数码相机、3D相机)、一个或更多个运动传感器(例如,被动-红外运动传感器)或雷达122c、一个或更多个LIDAR传感器122d、一个或更多个麦克风(未示出)、一个或更多个重量传感器或称重传感器(未示出)、一个或更多个电眼(例如,被动红外(IR)传感器,包括IR光源和IR传感器)(未示出)、一个或更多个编码器(例如位置编码器、旋转编码器、簧片开关)(未示出)、一个或更多个温度传感器(未示出)、湿度传感器(未示出)和/或一个或更多个压力传感器(未示出)等。传感器122检测环境100的特性,包括环境100中的障碍物、目标对象、机器人和/或其他对象的特性(例如,位置、取向、形状、占据、移动、速度)。传感器122可以直接或者间接地经由基于处理器的系统向环境建模计算机系统124有线地、光学地、无线地提供信号,基于处理器的系统收集和可选地预处理所收集的传感器信息。这些信号中的至少一些可以可选地编码或以其他方式表示感知数据。
环境建模计算机系统124可以包括电路,例如一个或更多个处理器和/或一个或更多个非暂时性处理器可读介质(例如,非易失性存储器、易失性存储器、旋转存储介质),并且可以执行例如由非暂时性处理器可读介质存储的一个或更多个处理器可执行指令的集合。环境建模计算机系统124可以通信地耦合(例如,有线地、光学地、无线地)到一个或更多个传感器122,以直接或间接地接收感测信息,例如感知数据。环境建模计算机系统124可以可选地通信地耦合(例如,有线地、光学地、无线地)以接收机器人102的一个或更多个模型,例如机器人102的一个或更多个运动学模型130。运动学模型130可以例如采取分层数据结构的形式。例如,分层数据结构可以采取一种或更多种类型的树的形式。例如,合适的分层数据结构可以包括八叉树、轴对齐边界框(axis-aligned bounding boxes,AABB)树、定向(非轴对齐)边界框树、球体树和/或其他树型数据结构。运动学模型130例如可以采取非分层数据结构的形式(例如,欧几里得距离场)。
在一些实现方式中,一个或更多个处理器执行处理器可执行指令可以使环境建模计算机系统124处理或预处理一些或所有接收到的传感器信息。如本文所描述的,环境建模计算机系统124可以生成三维操作环境100的一个或更多个数字表示或模型132,其包括在运行时期间的给定时间段存在于环境100中的任何障碍物。操作环境100的数字表示或模型132可以有利地采取“经过滤”的数字表示或模型132的形式。操作环境100的数字表示或模型132可以有利地用于给定机器人的运动规划,并且其中由给定机器人的超大表示131a、131b、131c(示出了三个,统称为131)占据的区域已被指示为未被占据,而其他机器人(如果有)保持未从被生成以用于给定机器人的运动规划的操作环境100的数字表示或模型132被过滤。数字表示或模型132可以采取多种形式中的任何一种,例如占据网格。
一个或更多个运动规划器或运动规划系统126(仅示出一个)可以通信地耦合(例如,有线地、光学地、无线地)到环境建模计算机系统124以从其接收信息并至少部分地基于所接收的信息生成运动计划。信息可以包括操作环境100的数字表示或模型132(例如,“经过滤”的数字表示或模型132),其包括操作环境100中存在的任何障碍物(包括其他机器人102)。运动规划器或运动规划系统126的输入还可以包括将由每个机器人102执行的一组任务、目标或目的133。执行任务通常采用运动规划,而运动规划又采用碰撞检测。
运动规划器或运动规划系统126可以是机器人102的组成部分,与机器人102分离和不同,或者一个或更多个部分可以在机器人102上,而一个或更多个其他部分可以与机器人102分离(即,在机器人102外)。运动规划器或运动规划系统126可以包括电路,例如一个或更多个处理器和/或一个或更多个非暂时性处理器可读介质(例如,非易失性存储器、易失性存储器、旋转存储介质),并且可以执行例如由非暂时性处理器可读介质存储的一个或更多个处理器可执行指令集合。运动规划器或运动规划系统126可以生成运动计划127,用于使机器人102执行特定任务,例如在一系列连续姿态之间移动,优选地不与障碍物106碰撞或碰撞概率降低。运动规划器或运动规划系统126可以通信地耦合(例如,有线地、光学地、无线地)到一个或更多个机器人控制系统138,以向其提供指令,所述指令使特定机器人102遵循或执行运动计划。
运动规划器或运动规划系统126可以包括或访问碰撞检测系统140。碰撞检测系统140可以包括电路,例如一个或更多个处理器和/或一个或更多个非暂时性处理器可读介质(例如,非易失性存储器、易失性存储器、旋转存储介质),并且可以执行例如由非暂时性处理器可读介质存储的一个或更多个处理器可执行指令集合。碰撞检测系统140有利地采用“经过滤”的数字表示或模型132以及可选地采用机器人的运动学模型130(例如,运动学模型130的数据结构表示)来确定或检测或评估机器人在各种姿态下或在姿态之间移动时与环境100中的障碍物106碰撞的概率。那些障碍物106可以包括环境100中的其他机器人。运动规划器或运动规划系统126和/或碰撞检测系统140可以例如采取在2019年8月6日提交的国际(PCT)专利申请PCT/US2019/045270中描述的运动规划系统和碰撞检测系统的形式。
机器人控制系统138可以包括若干部件,这些部件通常是不同的,但是在一些实现方式中可以组合在共同的电路板、处理器或其他电路中。例如,一组驱动器可以包括通信地耦合到致动器116以驱动致动器116以使机器人102采用或移动到定义的姿态的电路。例如,驱动器可以包括马达控制器和类似电路,所述马达控制器或类似电路驱动电动马达、步进马达、螺线管、电磁体、液压活塞、气动活塞、液压阀、气动阀、真空系统、液压系统和/或气动系统的泵或压缩机中的任何一个或更多个。
图2示出了根据至少一个图示实现方式的系统200。系统200可以包括或实现在图1中示出和关于图1描述的各种部件或结构。
系统200可以包括一个或更多个传感器202、一个或更多个环境建模计算机系统204、一个或更多个运动规划器206和一个或更多个机器人208。一个或更多个环境建模计算机系统204可以通信地耦合到一个或更多个传感器202以从其接收感知信息或数据。一个或更多个环境建模计算机系统204可以通信地耦合以提供三维操作环境的数字表示或模型。三维操作环境的数字表示或模型可以有利地通过给定机器人的超大表示131使给定机器人从该数字表示或模型被过滤以包含从机器人向外延伸的结构(例如,线缆)。一个或更多个运动规划器206可以通信地耦合以通过一个或更多个运动控制器210向一个或更多个机器人208提供运动计划127(图1)。
如先前描述的,每个机器人208可以包括由连杆和关节的集合形成的附件,其中在附件的末端处具有臂末端工具或末端执行器,和/或每个机器人208可以包括能够操作以围绕关节移动连杆的一个或更多个致动器211a、211b、211c(图2中示出了三个,统称为211)。每个机器人208可以包括一个或更多个运动控制器(例如,马达控制器)210(仅示出一个),一个或更多个运动控制器210接收例如来自运动规划器或运动规划系统206的控制信号并且提供驱动信号以驱动致动器211。运动控制器210可以专用于控制致动器211中的特定致动器。
为了说明的目的,将详细描述示例性环境建模计算机系统204。本领域技术人员将认识到,该描述是示例性的,并且可以对所描述和图示的环境建模计算机系统204进行改变。
环境建模计算机系统204可以包括一个或更多个处理器222以及一个或更多个相关联的非暂时性计算机或处理器可读存储介质,例如系统存储器224a、磁盘驱动器224b和/或处理器222的存储器或寄存器(未示出)。非暂时性计算机或处理器可读存储介质224a、224b经由诸如系统总线229的一个或更多个通信通道通信地耦合到处理器222a。系统总线229可以采用任何已知的总线结构或架构,包括具有存储器控制器的存储器总线、外围总线和/或本地总线。这样的部件中的一个或更多个也可以或替选地经由一个或更多个其他通信通道(例如一个或更多个并行线缆、串行线缆或能够高速通信的无线网络通道,例如通用串行总线(“USB”)3.0、外围组件互连标准(Peripheral Component InterconnectExpress,PCIe))或经由彼此通信。
环境建模计算机系统204还可以通信地耦合到一个或更多个远程计算机系统212,例如服务器计算机、台式计算机、膝上型计算机、超便携计算机、平板计算机、智能电话、可穿戴计算机和/或传感器(图2中未示出),一个或更多个远程计算机系统212例如经由网络接口(未示出)直接通信地耦合或间接地通信地耦合到环境建模计算机系统204的各种部件。远程计算系统(例如,服务器计算机)可以用于编程、配置、控制环境建模计算机系统204或以其他方式与环境建模计算机系统204利用接口通信或向环境建模计算机系统204提供输入数据(例如,机器人模型)。这样的连接可以通过一个或更多个通信通道214,例如一个或更多个广域网(WAN)例如以太网或使用互联网协议的互联网。在一些实现方式中,预运行时计算或配置时间计算(例如,线缆的建模)可以由与环境建模计算机系统204分离的系统(例如,计算机系统212)执行。运行时计算可以由一个或更多个环境建模计算机系统204和/或运动规划器206执行。
如所述,环境建模计算机系统204可以包括一个或更多个处理器222(即电路)、非暂时性存储介质224a、224b和耦合各种系统部件的系统总线229。处理器222可以是任何逻辑处理单元,例如一个或更多个中央处理单元(CPU)、数字信号处理器(DSP)、图形处理单元(GPU)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、可编程逻辑控制器(PLC)等。商用计算机系统的非限制性示例包括但不限于美国公司提供的Celeron、Core、Core 2、Itanium和Xeon系列微处理器;美国Advanced Micro Devices提供的K8、K10、Bulldozer和Bobcat系列微处理器;美国Apple Computer提供的A5、A6和A7系列微处理器;美国Qualcomm公司提供的骁龙系列微处理器;以及美国Oracle公司提供的SPARC系列微处理器。图2中所示的各种结构的构造和操作可以实现或采用以下专利申请中描述的或与下列专利申请中描述的那些类似的结构、技术和算法:于2017年6月9日提交的题为“MOTION PLANNING FORAUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS”的国际专利申请第PCT/US2017/036880号;于2016年1月5日提交的题为“SPECIALIZED ROBOT MOTIONPLANNING HARDWARE AND METHODS OF MAKING AND USING SAME”的国际专利申请公布第WO2016/122840号;于2018年1月12日提交的题为“APPARATUS,METHOD AND ARTICLE TOFACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVINGDYNAMIC OBJECTS”的美国专利申请第62/616,783号;于2019年6月24日提交的题为“MOTIONPLANNING FOR MULTIPLE ROBOTS IN SHARED WORKSPACE”的美国专利申请序列号62/865,431;和/或于2019年8月6日提交的国际(PCT)专利申请PCT/US2019/045270。
系统存储器224a可以包括只读存储器(“ROM”)226、随机存取存储器(“RAM”)228、闪存230、EEPROM(未示出)。可以形成ROM 226的一部分的基本输入/输出系统(“BIOS”)232包含帮助例如在启动期间在环境建模计算机系统204内的元件之间传送信息的基本例程。
驱动器224b可以是例如用于从磁盘读取和写入磁盘的硬盘驱动器、用于从固态存储器读取和写入固态存储器的固态(例如闪存)驱动器和/或用于从可移除光盘读取和写入可移动光盘的光盘驱动器。环境建模计算机系统204还可以包括各种不同实施例中的这样的驱动器的任何组合。驱动器224b可以经由系统总线229与处理器222通信。驱动器224b可以包括耦合在这样的驱动器和系统总线229之间的接口或控制器(未示出),如由相关领域的技术人员所知道的。驱动器224b和相关联的计算机可读介质为环境建模计算机系统204提供计算机或处理器可读和/或可执行指令、数据结构、程序模块和其他数据的非易失性存储。相关领域的技术人员将理解,可以采用可以存储可由计算机访问的数据的其他类型的计算机可读介质,例如WORM驱动器、RAID驱动器、磁带、数字视频磁盘(“DVD”)、Bernoulli盒式磁带、RAM、ROM、智能卡等。
可执行指令和数据可以存储在系统存储器224a中,例如操作系统236、一个或更多个应用238、其他程序或模块240和程序数据242。应用程序238可以包括使处理器222执行以下中的一个或更多个的处理器可执行指令:收集或接收传感器或感知数据,接收或生成三维环境的表示或模型;接收或生成机器人的超大表示131(图1);识别三维环境的表示中完全位于与机器人的超大表示131对应的区域内的对象,将被完全位于与机器人的超大表示131对应的区域内的对象占据的区域的占据值设置为未被占据,并且提供所得“经过滤”的表示或模型以用于进一步的操作,例如用于运动规划。这种操作可以如本文所描述的(例如,参考图3和图8)和通过引用并入本文的参考文献中所描述的来执行。应用程序238可以包括一个或更多个机器可读和机器可执行指令,这些指令使处理器222执行其他操作,例如可选地处理感知数据(经由传感器捕获的)。处理器可执行指令使处理器222根据感知数据构造“经过滤”的表示或模型,其中,不止包含被给定机器人占据的区域的体积被指示为未被占据。应用程序238可以另外包括使处理器222执行本文和通过引用并入本文的参考文献中描述的各种其他方法的一个或更多个机器可执行指令。
虽然在图2中被示为被存储在系统存储器224a中,但操作系统236、应用程序238、其他应用、程序/模块240和程序数据242可以被存储在其他非暂时性计算机或处理器可读介质例如驱动器224b上。
尽管不是必需的,但许多实现方式将在计算机可执行指令例如存储在计算机或处理器可读介质上并由一个或更多个计算机或处理器执行的程序应用模块、对象或宏的一般上下文中进行描述。在各种实现方式中,操作可以完全在硬件电路中执行或作为存储在诸如系统存储器224a的存储装置中并且由一个或更多个硬件处理器222执行的软件来执行,所述一个或更多个硬件处理器222例如一个或更多个微处理器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)、图形处理单元(GPU)处理器、可编程逻辑控制器(PLC)、电可编程只读存储器(EEPROM)或作为硬件电路和存储在存储装置中的软件的组合。
环境建模计算机系统204可以可选地包括一个或更多个输入/输出部件,例如监视器或触摸屏显示器244、小键盘或键盘246、和/或诸如计算机鼠标248的定点设备。
相关领域的技术人员将理解,所示实现方式以及其他实现方式可以用其他系统结构和布置和/或其他计算系统结构和布置来实践,包括机器人、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、个人计算机(“PC”)、联网PC、小型计算机、大型计算机等的那些系统结构和布置。实现方式或实施例或其部分(例如,在配置时间和运行时)可以在分布式计算环境中实践,在分布式计算环境中任务或模块由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程存储设备或媒体二者中。然而,某些类型信息的存储位置和方式对于帮助改进机器人配置可能很重要。
运动规划器或运动规划系统206可以包括一个或更多个处理器250,以及一个或更多个相关联的非暂时性计算机或处理器可读存储介质,例如系统存储器252、磁盘驱动器(未示出)和/或处理器250的寄存器(未示出)。非暂时性计算机或处理器可读存储介质(例如,系统存储器252)经由一个或更多个通信通道例如系统总线254通信地耦合到处理器250。系统总线254可以采用任何已知的总线结构或架构,包括具有存储器控制器的存储器总线、外围总线和/或本地总线。一个或更多个这样的部件也可以或替选地经由一个或更多个其他通信通道(例如,一个或更多个并行线缆、串行线缆或能够高速通信的无线网络通道例如通用串行总线(“USB”)3.0、外围组件互连标准(PCIe))或经由彼此通信。一个或更多个通信端口(未示出)可以提供运动规划器或运动规划系统206与环境建模计算机系统204和/或运动控制器210之间的通信。运动规划器或运动规划系统206可以可选地以通信地耦合(例如,有线地、光学地、无线地耦合)到计算机或终端(未示出)以允许用户输入(例如,运动细分粒度值或规范的指示)并提供用户输出。
运动规划器或运动规划系统206可以接收环境的经过滤的表示或模型,其中给定机器人的超大表示131(图1)已经被指示为未被占据。运动规划器或运动规划系统206还可以接收机器人模型、任务、目标目的、对机器人总数的限制、对每个机器人的任务的限制、对变量或其他参数的界限或约束、和/或对迭代的限制。
运动规划器或运动规划系统206执行使运动规划器或运动规划系统206执行运动规划的处理器可执行指令(应用256),通常依靠碰撞评估来产生用于机器人执行任务的运动计划。运动规划器或运动规划系统206可以例如通过执行碰撞检测或评估来构建运动计划,基于碰撞检测或评估来更新运动规划图中的边的成本,并且执行路径搜索或评估。运动规划器或运动规划系统206可以例如生成候选解决方案群体、对候选解决方案建模,至少部分地基于建模产生或确定与相应候选解决方案相关联的成本,通过优化引擎对候选解决方案群体执行优化,该引擎针对以下两个或更多个跨两个或更多个非同质参数集合进行协同优化:机器人的相应基座位置和取向、向机器人中的相应机器人的任务分配、以及机器人的相应目标序列;和/或提供可以用于在多机器人操作环境中定位和定向机器人并使机器人执行任务的输出。
图3示出了根据一个图示实现方式的图1的环境建模系统的高级操作方法300。方法300可以由一个或更多个基于处理器的系统执行,例如通过执行存储在一个或更多个非暂时性处理器可读介质上的指令来执行。
关于两个或更多个机器人102a至102c(图1)、208(图2)在其中操作的操作环境100(图1)来描述方法300。因此,方法300被示为采用迭代循环,该迭代循环生成三维环境的表示或模型,所述表示或模型允许针对总数由整数值N指定的机器人中的每一个顺序地执行运动规划。虽然被示为按连续顺序针对机器人102a至102c执行,但是特定顺序可以改变,并且各种实现方式可以以任何期望的顺序对机器人102操作,包括在针对机器人102b、102c中的不同机器人执行之前针对单个机器人102a重复多次。在一些实现方式中,方法300的一个或更多个线程或实例可以并行操作,例如在操作环境100中针对机器人102a至102c中的每一个同时操作的单独线程或实例。
方法300开始于302,例如响应于经由调用例程或模块的调用,或响应于接收到信号或检测到对计算机系统例如环境建模计算机系统124(图1)、204(图2)施加电力。
在304处,一个或更多个传感器122、202捕获表征一个或更多个机器人102、208在其中操作的三维操作环境100(图1)的传感器数据或感知数据。传感器122、202可以采取多种形式,例如以下中的一种或更多种形式:数码相机、LIDAR传感器、麦克风、重量传感器或称重传感器、电眼(例如,IR光源和IR传感器)、编码器(例如,位置编码器、旋转编码器、簧片开关)、温度传感器、湿度传感器和/或压力传感器等等。传感器或感知数据可以以任何的多种形式捕获,也可以以任何的多种形式表示,例如表示为点云或占据网格。
例如,传感器122、202可以向一个或更多个处理器提供传感器或感知数据和/或其他感测信息。传感器或感知数据可以作为流来提供,该流表示在当前时间(例如,预配置时间、配置时间、运行时间)在环境中哪些体素或子体积(例如,框)被占据。该传感器或感知数据可以以占据网格的形式被提供给一个或更多个处理器。特别地,环境100中的对象(例如,机器人102、障碍物106、目标对象108)可以通过将环境100中的对象(例如,机器人102、障碍物106、目标对象108)的相应表面表示为体素(3D像素)或多边形(通常是三角形)的格网(mesh)来表示。每个离散的空间区域称为“体素”,相当于3D(体积)像素。
在306处,基于处理器的系统例如环境建模计算机系统124(图1)、204(图2)访问和/或生成机器人102(图1)在其中进行操作的三维环境100(图1)的数字表示或模型。例如,环境建模计算机系统124、204可以访问由基于处理器的专用系统收集或组装的数字表示或模型,该基于处理器的系统通信地位于传感器122(图1)和环境建模计算机系统124、204中间或之间。替选地,环境建模计算机系统124可以直接从传感器122接收传感器或感知信息或数据,并生成操作环境的三维表示或模型132(图1)。
因此,至少一个传感器122、202可以在操作中捕获三维操作环境100的一个或更多个物理特性。至少一个基于处理器的设备根据所捕获的由至少一个传感器122、202感测到的三维操作环境的一个或更多个物理特性生成三维操作环境100的数字表示。例如,基于处理器的设备(例如,计算机系统)可以生成点云、体素网格、表面图、格网、占据网格或其他类型的数据结构中的一个或更多个。
例如,三维操作环境100可以被表示为多个体素,其中每个体素包括至少一个相应的占据值,该占据值将三维操作环境的占据状况或状态表示为被占据或未被占据中的至少一个。在一些实现方式中,占据值是布尔(Boolean)值,它仅指示两种状态,即被占据或未被占据。在其他实现方式中,占据值可以表示三个或更多个状况,例如,被占据、未被占据和未知。在其他实现方式中,占据值可以是例如表示相应位置(例如,体素)的占据概率的整数值或实数值。
另外或替选地,在至少一些实现方式中,环境建模计算机系统124、204可以对传感器122、202的输出进行变换。例如,环境建模计算机系统124、204可以对传感器122、202的输出进行变换,可以组合多个传感器122的输出,和/或可以使用较粗的体素来表示环境100。在某些情况下,将对象表示为框(矩形棱镜)可能是有利的。由于对象的形状不是随机成形的事实,因此体素的组织方式可能存在大量结构。因此,将对象表示为框可能需要比基于体素的表示少得多的位(即,可能只需要框的两个对角的x、y、z笛卡尔坐标)。此外,对框执行交叉测试在复杂度上与对体素执行交叉测试相当。
在308处,基于处理器的系统例如环境建模计算机系统124、204选择机器人I,针对机器人I将生成操作环境100的“经过滤”的表示或模型,例如用于机器人I的运动规划。在一些实现方式中,可能存在单个机器人。在其他实现方式中,可以包括至少部分地共享或在操作环境100中操作的两个或更多个机器人。在选择机器人I时可以采用各种启发式方法。例如,环境建模计算机系统124、204可以基于被分配给相应机器人要执行的特定任务的相应优先级来选择机器人。替选地,环境建模计算机系统124、204可以顺序地对机器人(例如,机器人102a至102c)进行迭代。如本文所解释的,该方法可以以任何期望的顺序针对各种机器人102a至102c重复。
在310处,基于处理器的系统例如环境建模计算机系统124、204识别如由根据传感器或感知信息或数据的操作环境100的表示或模型所表示的三维环境100中的一个或更多个对象。对象可以表示机器人(例如,机器人102a),对于机器人,三维表示或模型将用于运动规划,对象可以表示操作环境中的一个或更多个障碍物,包括其他机器人(例如,102b、102c)和/或可以表示操作环境100中的一个或更多个目标108。例如,环境建模计算机系统124、204在三维操作环境100的数字表示中识别表示位于三维操作环境100中的一个或更多个物理对象的一个或更多个元素。
在312处,基于处理器的系统例如环境建模计算机系统124、204访问和/或生成当前机器人I的三维超大表示或“扩张”模型131(图1)。
在314处,基于处理器的系统例如环境建模计算机系统124、204确定哪些对象(如果有的话)完全位于与机器人I的扩张模型或超大表示131对应的三维区域内。例如,环境建模计算机系统124、204确定在三维操作环境100的数字表示中表示的物理对象中的哪些物理对象(如果有的话)完全位于超大体积131的三维表示内,超大体积131包含至少第一机器人(例如102a)的附件111(图1),其中超大体积131的至少一部分延伸超出至少第一机器人(例如,102a)的附件111的对应外围尺寸以包含物理耦合到第一机器人的附件111的一个或更多个线缆119(图1)。例如,环境建模计算机系统124、204可以识别三维操作环境100的数字表示中的一组或更多组体素,所述一组或更多组体素是连续的并且各自具有表示被占据的占据状况的相应占据值。例如,可以执行称为连通分支(Connected Component)的算法来将连接的体素组合在一起。又例如,环境建模计算机系统124、204然后可以针对已经被识别为表示物理对象的三维操作环境的数字表示中的一组或更多组体素中的每一组体素判断该组体素是否跨越超大体积的三维表示的边界。
在316处,对于完全位于与当前机器人I的扩张模型或超大表示131对应的三维区域内的任何对象,基于处理器的系统例如环境建模计算机系统124、204设置占据值以将区域表示为未被占据,以便提供操作环境100的经过滤的离散表示132(图1),在该离散表示中当前机器人I已经作为对象被移除。例如,对于被确定为完全位于超大体积131的三维表示内的任何物理对象,环境建模计算机系统124、204在三维操作环境100的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供三维操作环境100的经过滤的表示132,其中包含至少机器人附件111和至少一个线缆119的超大体积131未被指示或表示为障碍物。例如,对于三维操作环境100的数字表示中的、与三维操作环境100的数字表示中所表示的完全位于超大体积131的三维表示中的任何对象对应的每个体素,环境建模计算机系统124可以将相应体素的相应占据值设置为表示未被占据。
在318处,基于处理器的系统例如运动规划器126使用三维操作环境100的经过滤的离散表示132对当前机器人I执行运动规划。
可以使用多种算法来执行运动规划。这些算法中的每一个通常需要能够确定机器人的给定姿态或从一个姿态到另一个姿态的运动是否会导致与机器人本身或环境中的障碍物发生碰撞。
通过引用描述或并入本文的碰撞检测硬件、软件和/或固件可以确定或计算单个机器人姿态或从一个姿态(例如,开始姿态)到另一姿态(例如,结束姿态)的机器人运动是否导致机器人与自身或与机器人在其中操作的当前环境中的任何障碍物发生碰撞。环境可以包括障碍物,即存在碰撞风险的对象(例如,无生命的对象、包括人和其他动物的有生命的对象)。环境可以包括或不包括一个或更多个目标对象,即机器人要与之接合的对象。对于一些障碍物,被障碍物占据的相应体积在配置运动规划器的模型或计算电路的时间(称为配置时间的时间)是已知的,并且预期在机器人操作期间(称为运行时间的时间)保持固定或不变。这些障碍物被称为永久障碍物,因为障碍占据的体积在配置期间是已知的,并且预期在运行时间期间保持固定或不变。对于其他障碍物,障碍物占据的相应体积在配置时间是未知的,并且仅在运行时间确定。这些障碍物被称为临时障碍物,因为在配置时间期间障碍物占据的体积是未知的。由这些临时障碍物中的一个或更多个占据的相应体积可以是固定的或不随时间移动或不随时间变化并且被称为静态障碍物。由这些临时障碍物中的一个或更多个所占据的相应体积可能随着时间移动或改变并且被称为动态障碍物。
本文描述的碰撞检测硬件、软件和/或固件可以被实现为可以由各种不同的运动规划算法例如概率路线图(PRM)、快速探索随机树(RRT)、RRT*、双向RRT等算法调用或启用的子例程或函数。本文所描述的碰撞检测硬件、软件和/或固件也可以用于通过快速评估许多候选抓取姿态来加速抓取规划。
本文描述的各种实现方式通常采用两个或三个配置时间输入:i)机器人的运动学模型;ii)环境中永久障碍物的表示,在配置时间永久障碍物在环境中占据的体积是已知的;以及可选地iii)运动细分粒度值或规范。机器人的运动学模型包括对机器人的多个关节中的任何一个关节的约束(例如,肘关节的最小角度和最大角度)、从机器人的每个连杆到机器人的相应父连杆的转换、机器人的每个关节的轴以及机器人的每个连杆的几何规格。
本文描述的各种实现方式通常采用两个或三个运行时间输入:a)开始姿态;b)如果正在评估运动,则可选择结束姿态;c)环境中临时障碍物的表示,所述临时障碍物在运行时间在环境中占据的体积是已知的,而在配置时间在环境中占据的体积是未知的。临时障碍物可以是静态的(即,在相关或运行时间段期间固定或不移动或不改变形状)或动态的(即,在相关或运行时间段的至少一部分期间移动或改变形状)。对于具有D个自由度的机器人,可以将姿态指定为D元组,其中元组的每个元素指定该自由度(关节)的位置或旋转。
通过仔细注意选择数据结构来表示对象、姿态和/或运动,可以实现高效的碰撞检测硬件。选择好的数据结构可以有利地减少存储所需的内存量、碰撞检测所需的硬件量、执行碰撞检测的延迟和功耗。
在320处,基于处理器的系统例如环境建模计算机系统124、204确定机器人的运动规划是否完成。如果机器人的运动规划未完成,则控制传递到308,在308处,环境建模计算机系统124、204再次选择机器人。在一些情况下,环境建模计算机系统124、204可以选择与在最近的前一迭代中选择的相同的机器人。在其他情况下,环境建模计算机系统124、204可以选择与在最近的前一迭代中选择的机器人不同的机器人。
如果机器人的运动规划完成,则控制传递到322,在322处,方法300终止,例如直到再次被调用或启用。替选地,方法300可以连续地执行,或者例如作为多线程处理器上或处理器的相应核上或相应处理器上的多个线程来执行。
图4示出了根据一个图示实现方式的图1的环境建模系统的低级操作方法400。方法400可以作为方法300的执行的一部分来执行。虽然就体素和体素空间进行了描述,但是可以使用三维环境的其他表示和/或三维环境中的对象的其他表示来执行类似的方法。这样的其他表示可以用于识别对象表示,并确定这些对象表示是否完全位于定义的三维区域内,或者这些对象表示是否位于定义的三维区域之外或跨越定义的三维区域。
在402处,基于处理器的系统例如环境建模计算机系统124(图1)、204(图2)识别三维操作环境100的离散表示中的体素中的连续体素的一个或更多个集合,其中连续体素都包括相应的占据值,这些占据值将三维操作环境100中的对应位置表示为被占据为一个或更多个对象中的相应对象。例如,称为连通分支的算法可以由处理器执行以将连接的占据体素组合在一起。许多其他算法和/或处理器可执行指令集可以用于识别近端相邻体素集。
在404处,基于处理器的系统例如环境建模计算机系统124、204确定体素中的连续体素的一个或更多个集合中的哪些(如果有的话)完全位于与机器人的扩张模型或超大表示131(图1)对应的三维操作环境100的离散表示中的体素的三维区域内。
在406处,对于三维操作环境100的离散表示中的每个体素——其与完全位于操作环境的离散表示(该离散表示与当前机器人I(例如,第一机器人102a)的扩张模型或超大表示131对应)中的体素的三维区域内的体素中的连续体素的一个或更多个集合中的任何一个对应,基于处理器的系统例如环境建模计算机系统124、204将相应体素的占据值设置为表示未被占据。在实践中,完全位于与机器人(例如,第一机器人102)的超大或“扩张”表示131对应的区域内的任何对象表示可以被指示为未被占据,例如通过将相关像素的占据值或状态从被占据改变为未被占据。完全位于该区域之外或跨越该区域的任何对象表示可以被指示为被占据,例如通过将相关体素的占据值或状态保持为被占据。
图5示出了根据一个图示实现方式的图1的环境建模系统的低级操作方法500。方法500可以用于确定机器人102的超大或“扩张”表示131。方法500可以作为方法300的执行的一部分来执行。
方法500可以进入迭代循环502,依次处理当前机器人I的每个部分J,其中J=1到M,并且M是表示将被建模或评估的当前机器人I的部分(例如,连杆、关节)的总数的整数。
在504处,基于处理器的系统例如环境建模计算机系统124(图1)、204(图2)确定当前机器人I的对应部分J的相应超大表示。当前机器人I的对应部分J的相应超大表示包含大于当前机器人I的对应物理部分的三维体积的三维体积。例如,基于处理器的系统可以修改第一机器人(例如,102a)的附件111(图1)的三维表示,以至少在其上或沿着其的一个位置处增加其至少一个尺寸。又例如,基于处理器的系统可以修改第一机器人(例如,102a)的附件111的三维表示,以沿着附件111的至少一个部分(例如,至少一个线缆119(图1)沿着其延伸的附件111的一部分)增加其至少一个尺寸。对于至少一个线缆119未沿着其延伸的第一机器人(例如,102a)的附件111的任何部分,基于处理器的系统可以肯定地或有意地不增加附件111的三维表示中的任何尺寸。
图6示出了根据一个图示实现方式的图1的环境建模系统的低级操作方法600。方法600可以用于确定机器人102(图1)的超大或“扩张”表示131(图1)。方法600可以作为方法300和/或方法500的执行的一部分来执行。
方法600可以在602处进入迭代循环,依次处理当前机器人I的每个部分J,其中J=1到M,并且M是表示将被建模或评估的当前机器人I的部分的总数的整数。
在604处,基于处理器的系统例如环境建模计算机系统124(图1)、204(图2)确定当前机器人I(例如,第一机器人102a)的给定部分J是否具有沿其延伸的线缆。
如果当前机器人I的给定部分J不具有沿其延伸的线缆,则环境建模计算机系统124、204在606处将当前机器人I的部分J的实际物理尺寸用于表示。
如果当前机器人I的给定部分J确实具有沿其延伸的线缆,则环境建模计算机系统124、204在608处确定当前机器人I的部分J的超大表示以用于超大表示。当前机器人I的部分J的超大表示具有包含部分J的实际物理尺寸并且至少在沿当前机器人I的部分J的一个位置处延伸超出部分J的实际物理尺寸的尺寸。超大表示的尺寸应该足够大,以便包含从当前机器人I的部分J向外延伸的任何附接结构(例如,线缆)。
图7示出了根据一种图示实现方式的基于处理器的系统的低级操作方法700。方法700可以用于确定机器人102(图1)的超大或“扩张”表示131(图1)。方法700可以在配置或预运行过程期间执行,或者替选地在运行时间期间作为方法300和/或500的执行的一部分来执行。
基于处理器的系统基于以下中的一个或更多个来对由一个或更多个线缆119(图1)占据的相应体积进行建模:线缆119的几何形状、当前机器人I(例如,第一机器人102)的当前关节位置集合、线缆119相对于当前机器人I的一部分的位置和取向、重力对线缆119的影响、线缆119的松弛量、下垂量、下沉量或张力量和/或当前机器人I或线缆119的部分的至少一部分的当前速度(例如考虑线缆119上的惯性效应)。
例如,基于处理器的系统可以至少部分地基于在考虑到重力的情况下——特别是在线缆119可能下垂、下沉、悬挂或摆动的情况下——至少一个线缆119相对于当前机器人I的附件111的至少一部分的位置来生成超大体积的三维表示。例如,基于处理器的系统可以至少部分地基于在考虑到重力的情况下当前机器人I的附件111的至少一部分的取向来生成超大体积的三维表示。例如,基于处理器的系统可以至少部分基于当前机器人I的当前关节位置集合来生成超大体积的三维表示。例如,基于处理器的系统可以生成包含当前机器人I的基座110(图1)、当前机器人I的附件111的至少两个连杆112a、112b(图1)、当前机器人I的末端执行器以及被耦合以随一个或更多个附件移动的至少两个线缆119的超大体积的三维表示。例如,基于处理器的系统可以至少部分地基于至少一个线缆119的几何形状来生成超大体积的三维表示。例如,基于处理器的系统可以至少部分地基于第一机器人102的附件111的至少一部分或附接至机器人102的线缆119的速度来生成超大体积的三维表示。
在一些实现方式中,基于处理器的系统可以基于第一机器人的附件的尺寸集合以及基于定义与机器人的外周的偏移的边界缓冲规范(boarder buffer specification)集合来生成具有边界框表示形式的超大体积的三维表示。
图8示出了根据一个图示实现方式的图1的环境建模系统的低级操作方法800。在一些实现方式中,基于处理器的系统可以对线缆建模以促进确定机器人或其部分的超大表示。方法800可以在配置或预运行过程期间执行,或者替选地在运行时间期间作为方法300和/或500的执行的一部分来执行。
在802处,在预运行时间段期间,基于处理器的系统执行多个操作。
例如,在804处,基于处理器的系统重复地使至少机器人的具有至少一个线缆的一部分移动。
又例如,在806处,基于处理器的系统从一个或更多个传感器捕获表示在机器人的所述一部分的每次移动期间由至少一个线缆占据的体积的数据。
又例如,基于处理器的系统在808处生成至少所述至少一个线缆的数字模型。
通过对线缆119(图1)建模,系统可以确定或生成指定机器人102(图1)的附件111(图1)的每个分段周围的精确区域的表示。非常精确的机械模型可以几乎精确地指定线缆119在哪里,根据线缆119的几何形状、线缆119的刚度、线缆119附接到机器人102的附接点、机器人102的当前关节位置集合、线缆119的下垂量和/或张力量和/或线缆119和/或附件111的速度或加速度。可以使用任何种类的计算机辅助技术或表示(例如,非有理均匀b样条(NRUBS))来对线缆119进行建模。可以在模拟机器人操作的设计时训练时段期间学习(例如,通过神经网络或其他机器学习过程)该模型,并且开发表示线缆119如何表现的模型。
示例
示例1、一种系统,包括:
至少一个处理器;
至少一个非暂时性处理器可读介质,其通信地耦合到所述至少一个处理器并且存储处理器可执行指令,所述处理器可执行指令在由所述至少一个处理器执行时使所述至少一个处理器:
在三维操作环境的数字表示中识别表示位于所述三维操作环境中的一个或更多个物理对象的一个或更多个元素;
确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述超大体积包含至少第一机器人的附件,所述超大体积的至少一部分延伸超出至少所述第一机器人的附件的对应外围尺寸以包含物理耦合到所述第一机器人的附件的一个或更多个线缆;以及
对于被确定为完全位于所述超大体积的三维表示内的任何物理对象,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供所述三维操作环境的经过滤的表示,在所述经过滤的表示中,包含至少所述第一机器人的机器人附件和至少一个线缆的超大体积未被指示为障碍物。
示例2、根据示例1所述的系统,其中,所述指令在由所述至少一个处理器执行时使所述至少一个处理器还:
使用所述三维操作环境的经过滤的表示来执行所述第一机器人的运动规划。
示例3、根据示例1所述的系统,其中,所述指令在由所述至少一个处理器执行时使所述至少一个处理器还:
生成所述超大体积的三维表示,所述超大体积包含至少所述第一机器人的附件,所述超大体积的至少一部分延伸超出所述第一机器人的附件的对应外围尺寸以包含物理地耦合到所述第一机器人的附件的一个或更多个线缆。
示例4、根据示例3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
修改所述第一机器人的附件的三维表示,以至少在所述附件上的一个位置处增加所述附件的至少一个尺寸。
示例5、根据示例3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
修改所述第一机器人的附件的三维表示以沿着所述附件的一部分增加所述附件的至少一个尺寸,至少一个线缆沿着所述附件的所述一部分延伸。
示例6、根据示例5所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
不增加至少一个线缆未沿着其延伸的所述附件的任何部分在所述第一机器人的附件的三维表示中的任何尺寸。
示例7、根据示例3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
至少部分地基于在考虑到重力的情况下所述至少一个线缆相对于所述第一机器人的附件的至少一部分的位置来生成超大体积的三维表示。
示例8、根据示例3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
至少部分地基于在考虑到重力的情况下所述第一机器人的附件的至少一部分的取向和至少一个线缆的松弛量来生成超大体积的三维表示。
示例9、根据示例3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
基于所述第一机器人的附件的尺寸集合以及基于边界缓冲规范集合来生成边界框表示。
示例10、根据示例3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
至少部分地基于所述第一机器人的当前关节位置集合来生成超大体积的三维表示。
示例11、根据示例3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
生成包含所述第一机器人的基座、所述第一机器人的至少两个附件、所述第一机器人的末端执行器以及被耦合以随附件中的一个或更多个移动的至少两个线缆的超大体积的三维表示。
示例12、根据示例3至11中任一项所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
至少部分地基于至少一个线缆的几何形状来生成超大体积的三维表示。
示例13、根据示例12所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
至少部分地基于所述第一机器人的附件的至少一部分的速度来生成超大体积的三维表示。
示例14、根据示例1所述的系统,还包括:
至少一个传感器,其在操作中捕获所述三维操作环境的一个或更多个物理特性。
示例15、根据示例14所述的系统,其中,所述指令在由所述至少一个处理器执行时使所述至少一个处理器还:
根据所捕获的由所述至少一个传感器感测的所述三维操作环境的一个或更多个物理特性来生成所述三维操作环境的数字表示。
示例16、根据示例14所述的系统,其中,为了生成所述三维操作环境的数字表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
生成点云、体素网格、表面图、格网、占据网格、k叉树、欧几里得距离场表示、分层数据结构或非分层数据结构中的至少一个。
示例17、根据示例14所述的系统,其中,为了生成所述三维操作环境的数字表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
将所述三维操作环境表示为多个体素,其中,每个体素包括至少一个相应的占据值,所述至少一个相应的占据值将所述三维操作环境的占据状况表示为被占据或未被占据中的至少一个。
示例18、根据示例1所述的系统,其中,为了在所述三维操作环境的数字表示中识别表示位于所述三维操作环境中的一个或更多个物理对象的一个或更多个元素,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
在所述三维操作环境的数字表示中识别一组或更多组体素,所述一组或更多组体素是连续的并且各自具有表示被占据的占据状况的相应占据值。
示例19、根据示例18所述的系统,其中,为了确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
对于已经被识别为表示物理对象的所述三维操作环境的数字表示中的所述一组或更多组体素中的每一组体素,判断该一组体素是否跨越所述超大体积的三维表示的边界。
示例20、根据示例18所述的系统,其中,为了在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
对于所述三维操作环境的数字表示中的、与所述三维操作环境的数字表示中所表示的完全位于所述超大体积的三维表示内的任何对象对应的每个体素,将相应体素的相应占据值设置为表示未被占据。
示例21、根据示例1所述的系统,其中,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
在预运行时间段期间,
重复地移动至少所述第一机器人的具有至少一个线缆的一部分;
捕获表示在所述第一机器人的所述一部分的每次移动期间由所述至少一个线缆占据的体积的数据;以及
生成至少所述至少一个线缆的数字模型。
示例22、根据示例1所述的系统,其中,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述超大体积包含至少第二机器人的附件,所述超大体积的至少一部分延伸超出至少所述第二机器人的附件的对应外围尺寸以包含物理耦合到所述第二机器人的附件的一个或更多个线缆;以及
对于被确定为完全位于所述超大体积的三维表示内的任何物理对象,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供所述三维操作环境的经过滤的表示,在所述经过滤的表示中,包含至少所述第二机器人的机器人附件和至少一个线缆的超大体积未被指示为障碍物。
示例23、一种操作系统的方法,所述系统包括至少一个处理器和至少一个非暂时性处理器可读介质,所述至少一个非暂时性处理器可读介质通信地耦合到所述至少一个处理器并且存储处理器可执行指令,所述方法包括:
在三维操作环境的数字表示中识别表示位于所述三维操作环境中的一个或更多个物理对象的一个或更多个元素;
确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述超大体积包含至少第一机器人的附件,所述超大体积的至少一部分延伸超出至少所述第一机器人的附件的对应外围尺寸以包含物理耦合到所述第一机器人的附件的一个或更多个线缆;以及
对于被确定为完全位于所述超大体积的三维表示内的任何物理对象,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供所述三维操作环境的经过滤的表示,在所述经过滤的表示中,包含至少所述第一机器人的机器人附件和至少一个线缆的超大体积未被指示为障碍物。
示例24、根据示例23所述的方法,还包括:
使用所述三维操作环境的经过滤的表示来执行所述第一机器人的运动规划。
示例25、根据示例23所述的方法,还包括:
生成所述超大体积的三维表示,所述超大体积包含至少所述第一机器人的附件,所述超大体积的至少一部分延伸超出所述第一机器人的附件的对应外围尺寸以包含物理地耦合到所述第一机器人的附件的一个或更多个线缆。
示例26、根据示例25所述的方法,其中,生成超大体积的三维表示包括:
修改所述第一机器人的附件的三维表示,以至少在所述附件上的一个位置处增加所述附件的至少一个尺寸。
示例27、根据示例25所述的方法,其中,生成超大体积的三维表示包括:
修改所述第一机器人的附件的三维表示以沿着所述附件的一部分增加所述附件的至少一个尺寸,至少一个线缆沿着所述附件的所述一部分延伸。
示例28、根据示例27所述的方法,其中,生成超大体积的三维表示包括:
不增加至少一个线缆未沿着其延伸的所述附件的任何部分在所述第一机器人的附件的三维表示中的任何尺寸。
示例29、根据示例25所述的方法,其中,生成超大体积的三维表示包括:
至少部分地基于在考虑到重力的情况下所述至少一个线缆相对于所述第一机器人的附件的至少一部分的位置来生成超大体积的三维表示。
示例30、根据示例25所述的方法,其中,生成超大体积的三维表示包括:
至少部分地基于在考虑到重力的情况下所述第一机器人的附件的至少一部分的取向和至少一个线缆的松弛量来生成超大体积的三维表示。
示例31、根据示例25所述的方法,其中,生成超大体积的三维表示包括:
基于所述第一机器人的附件的尺寸集合以及基于边界缓冲规范集合来生成边界框表示。
示例32、根据示例25所述的方法,其中,生成超大体积的三维表示包括:
至少部分地基于所述第一机器人的当前关节位置集合来生成超大体积的三维表示。
示例33、根据示例25所述的方法,其中,生成超大体积的三维表示包括:
生成包含所述第一机器人的基座、所述第一机器人的至少两个附件、所述第一机器人的末端执行器以及被耦合以随附件中的一个或更多个移动的至少两个线缆的超大体积的三维表示。
示例34、根据示例25至33中任一项所述的方法,其中,生成超大体积的三维表示包括:
至少部分地基于至少一个线缆的几何形状来生成超大体积的三维表示。
示例35、根据示例34所述的方法,其中,生成超大体积的三维表示包括:
至少部分地基于所述第一机器人的附件的至少一部分的速度来生成超大体积的三维表示。
示例36、根据示例23所述的方法,还包括:
经由至少一个传感器捕获所述三维操作环境的一个或更多个物理特性。
示例37、根据示例36所述的方法,还包括:
根据所捕获的由所述至少一个传感器感测的所述三维操作环境的一个或更多个物理特性来生成所述三维操作环境的数字表示。
示例38、根据示例36所述的方法,其中,生成所述三维操作环境的数字表示包括:
生成点云、体素网格、表面图、格网、占据网格、k叉树、欧几里得距离场表示、分层数据结构或非分层数据结构中的至少一个。
示例39、根据示例36所述的方法,其中,生成所述三维操作环境的数字表示包括:
将所述三维操作环境表示为多个体素,其中,每个体素包括至少一个相应的占据值,所述至少一个相应的占据值将所述三维操作环境的占据状况表示为被占据或未被占据中的至少一个。
示例40、根据示例23所述的方法,其中,在所述三维操作环境的数字表示中识别表示位于所述三维操作环境中的一个或更多个物理对象的一个或更多个元素包括:
在所述三维操作环境的数字表示中识别一组或更多组体素,所述一组或更多组体素是连续的并且各自具有表示被占据的占据状况的相应占据值。
示例41、根据示例40所述的方法,其中,确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内包括:
对于已经被识别为表示物理对象的所述三维操作环境的数字表示中的所述一组或更多组体素中的每一组体素,判断该组体素是否跨越所述超大体积的三维表示的边界。
示例42、根据示例40所述的方法,其中,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据包括:
对于所述三维操作环境的数字表示中的与所述三维操作环境的数字表示中所表示的完全位于所述超大体积的三维表示内的任何对象对应的每个体素,将相应体素的相应占据值设置为表示未被占据。
示例43、根据示例23所述的方法,还包括:
在预运行时间段期间,
重复地使至少所述第一机器人的具有至少一个线缆的一部分移动;
捕获表示在所述第一机器人的所述一部分的每次移动期间由所述至少一个线缆占据的体积的数据;以及
生成至少所述至少一个线缆的数字模型。
示例44、根据示例23所述的方法,还包括:
确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述超大体积包含至少第二机器人的附件,所述超大体积的至少一部分延伸超出至少所述第二机器人的附件的对应外围尺寸以包含物理耦合到所述第二机器人的附件的一个或更多个线缆;以及
对于被确定为完全位于所述超大体积的三维表示内的任何物理对象,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供所述三维操作环境的经过滤的表示,在所述经过滤的表示中,包含至少所述第二机器人的机器人附件和至少一个线缆的超大体积未被指示为障碍物。
示例45、一种系统,包括:
至少一个处理器;
至少一个非暂时性处理器可读介质,其通信地耦合到所述至少一个处理器并且存储处理器可执行指令,所述处理器可执行指令在由所述至少一个处理器执行时使所述至少一个处理器:
在三维操作环境的数字表示中识别表示位于所述三维操作环境中的一个或更多个物理对象的一个或更多个元素;
确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述超大体积包含至少第一机器人的附件,所述超大体积的至少一部分延伸超出至少所述第一机器人的附件的对应外围尺寸以包含物理耦合到所述第一机器人的附件的一个或更多个结构;以及
对于被确定为完全位于所述超大体积的三维表示内的任何物理对象,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供所述三维操作环境的经过滤的表示,在所述经过滤的表示中,包含至少所述第一机器人的机器人附件和至少一个结构的超大体积未被指示为障碍物。
示例46、根据示例45所述的系统,其中,所述一个或更多个结构是线缆。
示例47、根据示例45所述的系统,其中,所述一个或更多个结构是传感器或线缆附接物。
结论
前述详细描述已经通过使用框图、示意图和示例阐述了设备和/或过程的各种实施例。只要这样的框图、示意图和示例包含一个或更多个功能和/或操作,本领域技术人员将理解,可以通过各种硬件、软件、固件或几乎任何它们的组合单独地和/或集体地实现这样的框图、流程图或示例中的每个功能和/或操作。在一个实施例中,本主题可以通过布尔电路、专用集成电路(ASIC)和/或FPGA来实现。然而,本领域技术人员将认识到,本文公开的实施例全部或部分地可以在标准集成电路中以各种不同的实现方式被实现为在一个或更多个计算机上运行的一个或更多个计算机程序(例如,作为在一个或更多个计算机系统上运行的一个或更多个程序)、被实现为在一个或更多个控制器(例如,微控制器)上运行的一个或更多个程序、被实现为在一个或更多个处理器(例如,微处理器)上运行的一个或更多个程序、被实现为固件或被实现为实际上它们的任何组合,并且根据本公开内容,设计电路和/或编写软件和/或固件的代码将在本领域普通技术人员的技能范围内。
本领域技术人员将认识到,本文阐述的许多方法或算法可以采用附加动作,可以省略一些动作,和/或可以以与指定不同的顺序执行动作。
此外,本领域的技术人员将理解,本文所教导的机制能够以硬件实现,例如以一个或更多个FPGA或ASIC实现。
虽然通常就体素空间和体素进行描述,但可以采用各种其他形式来表示机器人、障碍物和目标对象。例如,可以使用八叉树、框集或欧几里得距离场(EDF)中的任何一个来有效地表示各种几何形状。
八叉树是一种用于存储体素占据数据的分层数据结构。树结构允许碰撞检测仅根据需要下降到树结构的固有分层结构中,从而提高碰撞检测过程的计算效率。八叉树的一个好处是固有的分层结构。当然还存在其他分层的并且可能合适的数据结构。
框集可以采取多种形式,例如:轴对齐边界框(AABB)树、定向(非轴对齐)边界框树或球体树。值得注意的是,这些树型数据结构中的任何一个的叶子可以是与数据结构的其他节点不同的形状,例如,所有节点都是AABB,除了可以采取三角形网格形式的根节点。边界体积表示的选择伴随着构建对应数据结构所需的延迟和计算冲突的延迟之间的权衡,例如包括在完成碰撞检测之前需要遍历树的多少。例如,使用球体作为边界体积促进快速比较(即,确定球体是否相互交叠在计算上很容易)。例如,如本文其他地方所讨论的,使用k叉(k-ary)球体树来表示机器人的每个连杆可能是优选的。在一些实现方式中,表示环境中的体素可以一起分组为AABB集合。这可以充分简化体素数据,使其在某些情况下比使用八叉树在计算上更快且内存效率更高。
EDF将工作空间离散为体素的3D网格,并且每个体素的值对到该工作空间中的最近障碍物的距离进行编码。工作空间包含机器人在机器人的任何姿态下可能到达的所有空间。
机器人可以建模为由关节连接的链接树。对于单个机器人附件或臂,此“树”通常是一元的,但可以更通用,例如,具有拥有两个或更多个子链接的链接。
对于在整个运行时间内将在环境中占据一致或不变体积的障碍物,并且在配置时间该被占据的体积是已知的情况下,更优选的是用欧几里德距离场来表示那些永久障碍物。
可以组合上述各种实施例以提供其他实施例。本说明书中提及和/或在申请数据表中列出的所有共同转让的美国专利申请公布、美国专利申请、外国专利和外国专利申请通过引用全部并入本文,其包括但不限于于2017年6月9日提交的题为“MOTION PLANNINGFOR AUTONOMOUS VEHICLES AND RECONFIGURABLE MOTION PLANNING PROCESSORS”的国际专利申请号PCT/US2017/036880;于2016年1月5日提交的题为“SPECIALIZED ROBOT MOTIONPLANNING HARDWARE AND METHODS OF MAKING AND USING SAME”的国际专利申请公布号WO2016/122840;于2018年1月12日提交的题为“APPARATUS,METHOD AND ARTICLE TOFACILITATE MOTION PLANNING OF AN AUTONOMOUS VEHICLE IN AN ENVIRONMENT HAVINGDYNAMIC OBJECTS”的美国专利申请第62/616,783号;于2018年2月6日提交的题为“MOTIONPLANNING OF A ROBOT STORING A DISCRETIZED ENVIRONMENT ON ONE OR MOREPROCESSORS AND IMPROVED OPERATION OF SAME”的美国专利申请第62/626,939号;于2018年8月23日提交的题为“COLLISION DETECTION USEFUL IN MOTION PLANNING FORROBOTICS”的美国专利申请第62/722,067号;于2019年8月6日提交的题为“COLLISIONDETECTION USEFUL IN MOTION PLANNING FOR ROBOTICS”的国际专利申请号PCT/US2019/045270;于2020年1月22日提交的题为“CONFIGURATION OF ROBOTS IN MULTI-ROBOTOPERATIONAL ENVIRONMENT”的美国专利申请第62/964,405号;以及于2020年3月18日提交的题为“DIGITAL REPRESENTATIONS OF ROBOT OPERATIONAL ENVIRONMENT,USEFUL INMOTION PLANNING FOR ROBOTS”的美国专利申请第62/991,487号。可以根据以上详细描述对实施例进行这些和其他改变。
一般而言,在所附权利要求书中,所使用的术语不应被解释为将权利要求限制为在说明书和权利要求中公开的具体实施例,而应被解释为包括所有可能的实施例以及这样的权利要求所赋予的等效物的全部范围。因此,权利要求不受本公开内容的限制。
Claims (47)
1.一种系统,包括:
至少一个处理器;
至少一个非暂时性处理器可读介质,其通信地耦合到所述至少一个处理器并且存储处理器可执行指令,所述处理器可执行指令在由所述至少一个处理器执行时使所述至少一个处理器:
在三维操作环境的数字表示中识别表示位于所述三维操作环境中的一个或更多个物理对象的一个或更多个元素;
确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述超大体积包含至少第一机器人的附件,所述超大体积的至少一部分延伸超出至少所述第一机器人的附件的对应外围尺寸以包含物理耦合到所述第一机器人的附件的一个或更多个线缆;以及
对于被确定为完全位于所述超大体积的三维表示内的任何物理对象,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供所述三维操作环境的经过滤的表示,在所述经过滤的表示中,包含至少所述第一机器人的机器人附件和至少一个线缆的超大体积未被指示为障碍物。
2.根据权利要求1所述的系统,其中,所述指令在由所述至少一个处理器执行时使所述至少一个处理器还:
使用所述三维操作环境的经过滤的表示来执行所述第一机器人的运动规划。
3.根据权利要求1所述的系统,其中,所述指令在由所述至少一个处理器执行时使所述至少一个处理器还:
生成所述超大体积的三维表示,所述超大体积包含至少所述第一机器人的附件,所述超大体积的至少一部分延伸超出所述第一机器人的附件的对应外围尺寸以包含物理耦合到所述第一机器人的附件的一个或更多个线缆。
4.根据权利要求3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
修改所述第一机器人的附件的三维表示,以至少在所述附件上的一个位置处增加所述附件的至少一个尺寸。
5.根据权利要求3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
修改所述第一机器人的附件的三维表示以沿着所述附件的一部分增加所述附件的至少一个尺寸,所述至少一个线缆沿着所述附件的所述一部分延伸。
6.根据权利要求5所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
不增加所述至少一个线缆未沿着其延伸的所述附件的任何部分在所述第一机器人的附件的三维表示中的任何尺寸。
7.根据权利要求3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
至少部分地基于在考虑到重力的情况下所述至少一个线缆相对于所述第一机器人的附件的至少一部分的位置来生成超大体积的三维表示。
8.根据权利要求3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
至少部分地基于在考虑到重力的情况下所述第一机器人的附件的至少一部分的取向和至少一个线缆的松弛量来生成超大体积的三维表示。
9.根据权利要求3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
基于所述第一机器人的附件的尺寸集合以及基于边界缓冲规范集合来生成边界框表示。
10.根据权利要求3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
至少部分地基于所述第一机器人的当前关节位置集合来生成超大体积的三维表示。
11.根据权利要求3所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
生成包含所述第一机器人的基座、所述第一机器人的至少两个附件、所述第一机器人的末端执行器以及被耦合以随附件中的一个或更多个移动的至少两个线缆的超大体积的三维表示。
12.根据权利要求3至11中任一项所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
至少部分地基于所述至少一个线缆的几何形状来生成超大体积的三维表示。
13.根据权利要求12所述的系统,其中,为了生成超大体积的三维表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
至少部分地基于所述第一机器人的附件的至少一部分的速度来生成超大体积的三维表示。
14.根据权利要求1所述的系统,还包括:
至少一个传感器,其在操作中捕获所述三维操作环境的一个或更多个物理特性。
15.根据权利要求14所述的系统,其中,所述指令在由所述至少一个处理器执行时使所述至少一个处理器还:
根据所捕获的由所述至少一个传感器感测的所述三维操作环境的一个或更多个物理特性来生成所述三维操作环境的数字表示。
16.根据权利要求14所述的系统,其中,为了生成所述三维操作环境的数字表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
生成点云、体素网格、表面图、格网、占据网格、k叉树、欧几里得距离场表示、分层数据结构或非分层数据结构中的至少一个。
17.根据权利要求14所述的系统,其中,为了生成所述三维操作环境的数字表示,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
将所述三维操作环境表示为多个体素,其中,每个体素包括至少一个相应的占据值,所述至少一个相应的占据值将所述三维操作环境的占据状况表示为被占据或未被占据中的至少一个。
18.根据权利要求1所述的系统,其中,为了在所述三维操作环境的数字表示中识别表示位于所述三维操作环境中的一个或更多个物理对象的一个或更多个元素,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
在所述三维操作环境的数字表示中识别一组或更多组体素,所述一组或更多组体素是连续的并且各自具有表示被占据的占据状况的相应占据值。
19.根据权利要求18所述的系统,其中,为了确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
对于已经被识别为表示物理对象的所述三维操作环境的数字表示中的所述一组或更多组体素中的每一组体素,判断该组体素是否跨越所述超大体积的三维表示的边界。
20.根据权利要求18所述的系统,其中,为了在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
对于所述三维操作环境的数字表示中的、与所述三维操作环境的数字表示中所表示的完全位于所述超大体积的三维表示内的对象中的任一对象对应的每个体素,将相应体素的相应占据值设置为表示未被占据。
21.根据权利要求1所述的系统,其中,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
在预运行时间段期间,
重复地移动至少所述第一机器人的具有至少一个线缆的一部分;
捕获表示在所述第一机器人的所述一部分的每次移动期间由所述至少一个线缆占据的体积的数据;以及
生成至少所述至少一个线缆的数字模型。
22.根据权利要求1所述的系统,其中,所述指令在由所述至少一个处理器执行时使所述至少一个处理器:
确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述超大体积包含至少第二机器人的附件,所述超大体积的至少一部分延伸超出至少所述第二机器人的附件的对应外围尺寸以包含物理耦合到所述第二机器人的附件的一个或更多个线缆;以及
对于被确定为完全位于所述超大体积的三维表示内的物理对象中的任一个,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供所述三维操作环境的经过滤的表示,在所述经过滤的表示中,包含至少所述第二机器人的机器人附件和所述至少一个线缆的超大体积未被指示为障碍物。
23.一种操作系统的方法,所述系统包括至少一个处理器和至少一个非暂时性处理器可读介质,所述至少一个非暂时性处理器可读介质通信地耦合到所述至少一个处理器并且存储处理器可执行指令,所述方法包括:
在三维操作环境的数字表示中识别表示位于所述三维操作环境中的一个或更多个物理对象的一个或更多个元素;
确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述超大体积包含至少第一机器人的附件,所述超大体积的至少一部分延伸超出至少所述第一机器人的附件的对应外围尺寸以包含物理耦合到所述第一机器人的附件的一个或更多个线缆;以及
对于被确定为完全位于所述超大体积的三维表示内的任何物理对象,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供所述三维操作环境的经过滤的表示,在所述经过滤的表示中,包含至少所述第一机器人的机器人附件和至少一个线缆的超大体积未被指示为障碍物。
24.根据权利要求23所述的方法,还包括:
使用所述三维操作环境的经过滤的表示来执行所述第一机器人的运动规划。
25.根据权利要求23所述的方法,还包括:
生成所述超大体积的三维表示,所述超大体积包含至少所述第一机器人的附件,所述超大体积的至少一部分延伸超出所述第一机器人的附件的对应外围尺寸以包含物理地耦合到所述第一机器人的附件的一个或更多个线缆。
26.根据权利要求25所述的方法,其中,生成超大体积的三维表示包括:
修改所述第一机器人的附件的三维表示,以至少在所述附件上的一个位置处增加所述附件的至少一个尺寸。
27.根据权利要求25所述的方法,其中,生成超大体积的三维表示包括:
修改所述第一机器人的附件的三维表示以沿着所述附件的一部分增加所述附件的至少一个尺寸,所述至少一个线缆沿着所述附件的所述一部分延伸。
28.根据权利要求27所述的方法,其中,生成超大体积的三维表示包括:
不增加所述至少一个线缆未沿着其延伸的所述附件的任何部分在所述第一机器人的附件的三维表示中的任何尺寸。
29.根据权利要求25所述的方法,其中,生成超大体积的三维表示包括:
至少部分地基于在考虑到重力的情况下所述至少一个线缆相对于所述第一机器人的附件的至少一部分的位置来生成超大体积的三维表示。
30.根据权利要求25所述的方法,其中,生成超大体积的三维表示包括:
至少部分地基于在考虑到重力的情况下所述第一机器人的附件的至少一部分的取向和至少一个线缆的松弛量来生成超大体积的三维表示。
31.根据权利要求25所述的方法,其中,生成超大体积的三维表示包括:
基于所述第一机器人的附件的尺寸集合以及基于边界缓冲规范集合来生成边界框表示。
32.根据权利要求25所述的方法,其中,生成超大体积的三维表示包括:
至少部分地基于所述第一机器人的当前关节位置集合来生成超大体积的三维表示。
33.根据权利要求25所述的方法,其中,生成超大体积的三维表示包括:
生成包含所述第一机器人的基座、所述第一机器人的至少两个附件、所述第一机器人的末端执行器以及被耦合以随附件中的一个或更多个移动的至少两个线缆的超大体积的三维表示。
34.根据权利要求25至33中任一项所述的方法,其中,生成超大体积的三维表示包括:
至少部分地基于所述至少一个线缆的几何形状来生成超大体积的三维表示。
35.根据权利要求34所述的方法,其中,生成超大体积的三维表示包括:
至少部分地基于所述第一机器人的附件的至少一部分的速度来生成超大体积的三维表示。
36.根据权利要求23所述的方法,还包括:
经由至少一个传感器捕获所述三维操作环境的一个或更多个物理特性。
37.根据权利要求36所述的方法,还包括:
根据所捕获的由所述至少一个传感器感测的所述三维操作环境的一个或更多个物理特性来生成所述三维操作环境的数字表示。
38.根据权利要求36所述的方法,其中,生成所述三维操作环境的数字表示包括:
生成点云、体素网格、表面图、格网、占据网格、k叉树、欧几里得距离场表示、分层数据结构或非分层数据结构中的至少一个。
39.根据权利要求36所述的方法,其中,生成所述三维操作环境的数字表示包括:
将所述三维操作环境表示为多个体素,其中,每个体素包括至少一个相应的占据值,所述至少一个相应的占据值将所述三维操作环境的占据状况表示为被占据或未被占据中的至少一个。
40.根据权利要求23所述的方法,其中,在所述三维操作环境的数字表示中识别表示位于所述三维操作环境中的一个或更多个物理对象的一个或更多个元素包括:
在所述三维操作环境的数字表示中识别一组或更多组体素,所述一组或更多组体素是连续的并且各自具有表示被占据的占据状况的相应占据值。
41.根据权利要求40所述的方法,其中,确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内包括:
对于已经被识别为表示物理对象的所述三维操作环境的数字表示中的所述一组或更多组体素中的每一组体素,判断该组体素是否跨越所述超大体积的三维表示的边界。
42.根据权利要求40所述的方法,其中,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据包括:
对于所述三维操作环境的数字表示中的、与所述三维操作环境的数字表示中所表示的完全位于所述超大体积的三维表示内的任何对象对应的每个体素,将相应体素的相应占据值设置为表示未被占据。
43.根据权利要求23所述的方法,还包括:
在预运行时间段期间,
重复地使至少所述第一机器人的具有至少一个线缆的一部分移动;
捕获表示在所述第一机器人的所述一部分的每次移动期间由所述至少一个线缆占据的体积的数据;以及
生成至少所述至少一个线缆的数字模型。
44.权利要求23所述的方法,还包括:
确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述超大体积包含至少第二机器人的附件,所述超大体积的至少一部分延伸超出至少所述第二机器人的附件的对应外围尺寸以包含物理耦合到所述第二机器人的附件的一个或更多个线缆;以及
对于被确定为完全位于所述超大体积的三维表示内的任何物理对象,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供所述三维操作环境的经过滤的表示,在所述经过滤的表示中,包含至少所述第二机器人的机器人附件和至少一个线缆的超大体积未被指示为障碍物。
45.一种系统,包括:
至少一个处理器;
至少一个非暂时性处理器可读介质,其通信地耦合到所述至少一个处理器并且存储处理器可执行指令,所述处理器可执行指令在由所述至少一个处理器执行时使所述至少一个处理器:
在三维操作环境的数字表示中识别表示位于所述三维操作环境中的一个或更多个物理对象的一个或更多个元素;
确定所述三维操作环境的数字表示中表示的物理对象中的哪些物理对象——如果有的话——完全位于超大体积的三维表示内,所述超大体积包含至少第一机器人的附件,所述超大体积的至少一部分延伸超出至少所述第一机器人的附件的对应外围尺寸以包含物理耦合到所述第一机器人的附件的一个或更多个结构;以及
对于被确定为完全位于所述超大体积的三维表示内的任何物理对象,在所述三维操作环境的数字表示中设置一个或更多个占据值以将与相应物理对象对应的体积表示为未被占据,从而提供所述三维操作环境的经过滤的表示,在所述经过滤的表示中,包含至少所述第一机器人的机器人附件和至少一个结构的超大体积未被指示为障碍物。
46.根据权利要求45所述的系统,其中,所述一个或更多个结构是线缆。
47.根据权利要求45所述的系统,其中,所述一个或更多个结构是传感器或线缆附接物。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202062991487P | 2020-03-18 | 2020-03-18 | |
US62/991,487 | 2020-03-18 | ||
PCT/US2021/022600 WO2021188566A1 (en) | 2020-03-18 | 2021-03-16 | Digital representations of robot operational environment, useful in motion planning for robots |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115297999A true CN115297999A (zh) | 2022-11-04 |
Family
ID=77768403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180022111.0A Pending CN115297999A (zh) | 2020-03-18 | 2021-03-16 | 在机器人的运动规划中有用的机器人操作环境的数字表示 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4096875A4 (zh) |
JP (1) | JP2023518071A (zh) |
CN (1) | CN115297999A (zh) |
WO (1) | WO2021188566A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116533254A (zh) * | 2023-07-04 | 2023-08-04 | 山西艾特嘉科技有限公司 | 一种车间机械手协同控制系统 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114061584B (zh) * | 2021-11-02 | 2024-05-24 | 江苏科技大学 | 一种基于多机器人的势均衡多伯努利滤波slam方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5347459A (en) * | 1993-03-17 | 1994-09-13 | National Research Council Of Canada | Real time collision detection |
KR19980024584U (ko) * | 1996-10-31 | 1998-07-25 | 양재신 | 산업용 측정 로봇의 센서 케이블 꼬임 방지 장치 |
JP2003127077A (ja) * | 2001-10-19 | 2003-05-08 | Komatsu Ltd | 作業ロボットのロボットプログラム修正装置。 |
US20060241813A1 (en) | 2005-04-22 | 2006-10-26 | Applied Materials, Inc. | Optimized cluster tool transfer process and collision avoidance design |
US8315738B2 (en) | 2008-05-21 | 2012-11-20 | Fanuc Robotics America, Inc. | Multi-arm robot system interference check via three dimensional automatic zones |
JP5980873B2 (ja) * | 2014-10-17 | 2016-08-31 | ファナック株式会社 | ロボットの干渉領域設定装置 |
US10882185B2 (en) * | 2017-02-07 | 2021-01-05 | Veo Robotics, Inc. | Dynamically determining workspace safe zones with speed and separation monitoring |
JP6877192B2 (ja) * | 2017-03-03 | 2021-05-26 | 株式会社キーエンス | 画像処理装置、画像処理方法、画像処理プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器 |
PL3769174T3 (pl) * | 2018-03-21 | 2022-10-24 | Realtime Robotics, Inc. | Planowanie przemieszczania robota do różnych środowisk i zadań oraz jego ulepszone działanie |
CN112601641B (zh) * | 2018-08-23 | 2024-03-08 | 实时机器人有限公司 | 用于机器人运动规划的碰撞检测 |
-
2021
- 2021-03-16 CN CN202180022111.0A patent/CN115297999A/zh active Pending
- 2021-03-16 WO PCT/US2021/022600 patent/WO2021188566A1/en active Application Filing
- 2021-03-16 JP JP2022556467A patent/JP2023518071A/ja active Pending
- 2021-03-16 EP EP21772200.8A patent/EP4096875A4/en active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116533254A (zh) * | 2023-07-04 | 2023-08-04 | 山西艾特嘉科技有限公司 | 一种车间机械手协同控制系统 |
CN116533254B (zh) * | 2023-07-04 | 2023-09-01 | 山西艾特嘉科技有限公司 | 一种车间机械手协同控制系统 |
Also Published As
Publication number | Publication date |
---|---|
EP4096875A4 (en) | 2024-02-28 |
WO2021188566A1 (en) | 2021-09-23 |
JP2023518071A (ja) | 2023-04-27 |
EP4096875A1 (en) | 2022-12-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7141665B2 (ja) | ロボットの動作計画に役立つ衝突検出 | |
JP7332199B2 (ja) | 共用ワークスペースにおける複数のロボットの動作計画 | |
JP7394853B2 (ja) | 動的物体を有する環境における運動計画を促進する装置、方法及び物品 | |
CN111989195B (zh) | 在一个或更多个处理器上存储离散化环境的机器人的运动规划及其改进的操作 | |
JP7489727B2 (ja) | マルチロボット運用環境におけるロボットの構成 | |
WO2019139815A1 (en) | Apparatus, method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects | |
Bohigas et al. | Planning singularity-free paths on closed-chain manipulators | |
CN115297999A (zh) | 在机器人的运动规划中有用的机器人操作环境的数字表示 | |
US20240009845A1 (en) | Systems, methods, and user interfaces employing clearance determinations in robot motion planning and control | |
US20230342967A1 (en) | Configuration of robot operational environment including layout of sensors | |
US20240208060A1 (en) | Digital representations of robot operational environment, useful in motion planning for robots | |
Wan et al. | Real-time path planning for navigation in unknown environment | |
CN114986501A (zh) | 一种机械臂路径规划方法、系统及机械臂 | |
Mousa et al. | Path planning for a 6 DoF robotic arm based on whale optimization algorithm and genetic algorithm | |
Frank et al. | Real-world robot navigation amongst deformable obstacles | |
TW202348377A (zh) | 用於在共享工作空間中之機器人之使用階段姿態之動作規劃及控制 | |
Afaghani et al. | On-line collision avoidance of two command-based industrial robotic arms using advanced collision map | |
Szabó et al. | GPU Accelerated Collision Detection for Robotic Manipulators | |
WO2023196240A1 (en) | Motion planning and control for robots in shared workspace employing look ahead planning | |
JP2024501885A (ja) | 現実ロボットのシミュレーション駆動型ロボット制御 |
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: 40082112 Country of ref document: HK |