包括传感器布局的机器人操作环境配置的制作方法

文档序号:32351765发布日期:2022-11-26 14:51阅读:107来源:国知局
包括传感器布局的机器人操作环境配置的制作方法

1.本公开一般涉及机器人技术,例如多机器人操作环境或共享工作空间,并且特别地涉及包括机器人操作环境中传感器的放置和取向的操作环境布局,以及可选地基于操作环境的感测方面的运动规划和机器人操作。


背景技术:

2.相关技术的描述
3.各种应用在机器人操作环境中采用一个或更多个机器人。机器人操作环境可以包含单个机器人,或者可以采取共享工作空间或共同操作环境的形式。例如,两个或更多个机器人可以用于在共同操作环境中对一个或更多个对象或工件执行任务,例如将螺栓拧到底盘,在底盘处,机器人可以在运动范围内交叠。
4.通常,运动规划是机器人控制和机器人技术中的基本问题。运动计划指定了机器人从起始状态到目标状态能够遵循的路径,通常是为了完成任务而不会与操作环境中的任何障碍物发生碰撞或者与操作环境中的任何障碍物发生碰撞的可能性降低。运动规划面临的挑战涉及快速执行运动规划同时可能针对环境变化(例如,改变环境中障碍物的位置或取向)的能力。挑战还包括使用相对低成本的设备、以相对低的能耗和/或利用有限的存储量(例如,存储器电路,例如处理器芯片电路上的存储器电路)来执行运动规划。


技术实现要素:

5.在执行运动规划时,期望生成机器人有效执行的运动计划。可以根据执行或完成一个或更多个任务的时间、完成一个或更多个任务所需的总运动数、完成一个或更多个任务的总能量消耗和/或机器人空闲例如等待另一个机器人清除共享区域或工作空间的总时间数或时间量来衡量效率。在执行运动规划时,期望生成稳健(robust)的运动计划(例如,保证或极有可能被完全执行的运动计划,以便成功完成一个或更多个任务,例如在没有碰撞的情况下完成一个或更多个任务)。在执行运动规划时,期望快速生成运动计划,从而允许系统快速适应操作环境的变化,例如实时适应变化。在执行运动规划时,期望以计算有效的方式生成运动计划,从而减少运动规划中采用的计算资源(例如,硬件、计算周期、能量使用)。
6.许多操作环境将包括一个或更多个机器人和感知系统,以收集关于操作环境的信息,该信息包括表示操作环境的哪些区域或体积被占据的信息。期望以减少用于监测操作环境的感知系统的一个或更多个传感器的遮挡的方式设置操作环境。在进行运动规划时,遮挡通常被视为被占据空间,以防止与可能位于或不位于被遮挡空间中的障碍物发生碰撞。然而,指示为占据的空间越多,就越难为机器人找到有效的运动计划来执行给定的任务。
7.例如,在机器人或其部分位于(例如,介于)传感器与操作环境中的给定位置(例如,体素)之间的情况下,可能会引起遮挡。在这样的情况下,给定体素被传感器遮挡(即,不
可见或不可检测)。在机器人能够采取相当数量的机器人姿态的情况下,遮挡可能会带来严重的问题。每个机器人姿态都存在遮挡风险,机器人姿态之间的转变也是如此。在操作环境中存在多个机器人——每个机器人都能够在相对大量的机器人姿态之间移动——的情况下,随着组合或排列的数量迅速增长,问题会进一步加剧。
8.因此,期望优化传感器的布局以最小化或减少机器人对传感器的遮挡以及操作环境中的其他对象(例如,障碍物)的遮挡。
9.描述了允许优化操作环境的布局的系统和方法,一个或更多个机器人在该操作环境中操作并且在该操作环境中一个或更多个传感器被确定姿态(即,被定位和定向)以至少减少或最小化遮挡,以便改进运动规划本身的计算效率,和/或改进通过运动规划生成的运动计划的效率和/或稳健性。可以确定一个或更多个传感器的相应位置和/或取向,同时考虑机器人的各种机器人姿态和机器人姿态之间的转变,以增强操作环境的传感器覆盖范围,即提供遮挡发生降低的传感器覆盖范围。例如,可以确定表示遮挡的成本值,并且基于成本值或聚合成本评估候选传感器姿态。减少遮挡可以显著增强机器人的运动规划,从而产生更稳健的运动计划(例如,产生没有碰撞的解决方案的概率更高)和/或执行更有效的运动计划(例如,完成任务更快,完成任务的姿态数量更少,完成任务的能量消耗更低),和/或减少执行运动规划以产生可行的运动计划所需的计算资源(例如,硬件、计算周期、能量消耗)。这在本文中被称为优化传感器姿态(即,传感器位置和/或取向),即使任何给定的实施方式可能不会导致最佳或最优(即,客观上最优)的解决方案,而是仅导致优化或改进的解决方案。要放置的传感器的总数量可以在执行之前定义,或者在执行之前可以不定义或以其他方式已知,并且实际上可以仅在若干次迭代之后在达到终止条件时确定。在许多实施方式中,传感器将采取数码相机的形式,每个数码相机具有相应的视场,该视场包含由传感器的位置和取向决定的操作环境的一部分。然而,本文描述的各种实施方式不限于数码相机,而是能够应用于几乎任何类型的传感器,这些传感器可以用于感测一个或更多个机器人在其中进行操作的操作环境中的条件,包括但不限于雷达、lidar、声呐、被动红外(pir)运动检测器等。
10.优化可以采用以下中的一个或更多个:包括由静态对象占据的体积或区域的环境的知识、环境中每个机器人(例如,每个机器人的基座)的位置和取向的知识、运动规划路线图(例如,在机器人的配置(c空间)中表示的可能机器人姿态和姿态之间的转变的图形)的知识和/或将由机器人执行的一组任务。优化还可以采用候选传感器姿态的有限集合,每个候选传感器姿态表示环境中传感器的可能位置和可能取向的元组。
附图说明
11.在附图中,相同的附图标记表示相似的元件或动作。附图中元件的大小和相对位置不一定按比例绘制。例如,各种元件的形状和角度不是按比例绘制的,并且这些元件中的一些元件被任意放大和定位,以改进附图的易读性。此外,所描绘的元件的特定形状并不旨在传达关于特定元件的实际形状的任何信息,并且仅是为了便于在附图中识别而选择的。
12.图1是根据一个所示实施方式的操作环境的示意图,在该操作环境中,多个机器人操作以执行任务,多个传感器被定位和定向以监测操作环境,感知计算机系统从传感器收集信息,布局优化系统执行优化以配置操作环境的布局,并且可选的运动规划器和机器人
控制系统生成运动计划并控制机器人的操作以完成任务。
13.图2是根据一个所示实施方式的图1的机器人、传感器、感知计算机系统、布局优化系统以及可选的运动规划器和机器人运动控制器的功能框图,各种计算机系统均包括一个或更多个处理器和存储处理器可执行指令的一个或更多个非暂时性处理器可读介质。
14.图3是示出根据至少一个所示实施方式的基于处理器的系统的高级操作方法的流程图,其用于执行传感器姿态(即,传感器位置和取向)的优化并且可选地执行操作环境中一个或更多个机器人的运动规划和控制操作。
15.图4是示出根据至少一个所示实施方式的基于处理器的系统的操作方法的流程图,其用于执行遮挡评估和候选传感器姿态的选择,并且可以作为执行图3的方法的一部分来执行。
16.图5a是示出根据至少一个所示实施方式的基于处理器的系统的操作方法的流程图,其用于确定表示遮挡的成本值,并且可以作为执行图3的方法的一部分来执行。
17.图5b是示出根据至少一个所示实施方式的基于处理器的系统的操作方法的流程图,其用于确定表示遮挡的成本值,并且可以作为执行图5a的方法的一部分来执行。
18.图6是示出根据至少一个所示实施方式的基于处理器的系统的操作方法的流程图,其用于确定体素的遮挡值,并且可以作为执行图5a和图5b的方法的一部分来执行。
19.图7是示出根据至少一个所示实施方式的基于处理器的系统的操作方法的流程图,其用于聚合候选传感器姿态的成本,并且可以作为执行图5a和图5b的方法的一部分来执行。
具体实施方式
20.在以下描述中,阐述了某些特定细节以便提供对各种公开的实施例的透彻理解。然而,相关领域的技术人员将认识到,可以在没有这些具体细节中的一个或更多个的情况下或者利用其他方法、部件、材料等来实践实施例。在其他情况下,没有详细示出或描述与计算机系统、致动器系统和/或通信网络相关联的众所周知的结构,以避免不必要地模糊实施例的描述。在其他情况下,没有详细描述用于生成一个或更多个对象等的感知数据和体积表示的众所周知的计算机视觉方法和技术,以避免不必要地模糊实施例的描述。
21.除非上下文另有要求,否则在整个说明书和所附权利要求书中,词语“包括(comprise)”及其变型例如“包括(comprises)”和“包括(comprising)”应以开放、包含性的意义解释,即解释为“包括但不限于。”22.在整个说明书中对“一个实施方式”或“实施方式”或“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实施方式中或至少一个实施例中。因此,在整个本说明书的各个地方出现的短语“一个实施方式”或“实施方式”或“在一个实施例中”或“在实施例中”不一定全部都指相同的实施方式或实施例。此外,可以在一个或更多个实施方式或实施例中以任何合适的方式组合特定特征、结构或特性。
23.如在本说明书和所附权利要求中使用的,除非内容另有明确规定,否则单数形式“一”、“一个”和“该”包括复数指示物。还应注意,除非内容另有明确规定,否则术语“或”通常以其包括“和/或”的含义使用。
24.如在本说明书和所附权利要求中使用的,术语进行优化、优化和被优化意味着正
在准备、生成或产生改进的结果,或者已经准备、生成或产生了改进的结果。这样的术语是以其相对意义使用,但并不意味着已经准备、生成或产生了绝对最佳的值。
25.如在本说明书和所附权利要求中使用的,术语“操作环境”或“环境”或“工作空间”用于指代一个或更多个机器人在其中进行操作的操作环境。操作环境可以包括障碍物和/或工件(即,机器人将与其交互或对其作用或与其作用的物品)。
26.如在本说明书和所附权利要求中使用的,术语“共享操作环境”或“共享环境”或“共享工作空间”用于指代两个或更多个机器人在其中进行操作的操作环境,共享工作空间的一个或更多个部分是在其中机器人可能相互碰撞的体积,因此可以称为干扰区域。
27.如在本说明书和所附权利要求中使用的,术语“任务”用于指机器人任务,在该机器人任务中,机器人从姿态a转变为姿态b,优选地在不与其环境中的障碍物发生碰撞的情况下从姿态a转变为姿态b。该任务可能涉及抓握或松开物品、移动或放下物品、旋转物品或者取回或放置物品。从姿态a到姿态b的转变可以可选地包括一个或更多个中间姿态之间的转变。
28.如在本说明书和所附权利要求中使用的,术语确定、进行确定和被确定当在碰撞是否会发生或产生的上下文中使用时,意指对给定姿态或两个姿态之间经由多个中间姿态的移动是否将导致机器人的一部分与某一对象(例如,机器人的另一部分、持久性障碍物、暂时性障碍物或除当前目标对象之外的某一对象)之间发生碰撞进行评估或预测。
29.本文提供的公开的标题和摘要仅为方便起见,并不解释实施例的范围或含义。
30.图1示出了根据一个所示实施例的一个或更多个机器人102a、102b、102c(示出了三个,统称为102)可以在其中进行操作的三维操作环境100。为了简洁起见,三维操作环境100在本文中被称为环境100。环境100表示机器人102可以在其中进行操作和移动的三维空间。应当注意,环境100不同于任何给定机器人102的“配置空间”或“c空间”。
31.环境100能够包括表示可能碰撞区域的障碍物106a至106e(统称为106)。术语一个障碍物和多个障碍物106用于指示表示给定机器人102的碰撞风险的对象(例如,包括其他机器人的无生命对象、包括人和其他动物的有生命对象)。
32.这些障碍物106a、106b、106c中的一些可以采取静态障碍物或对象(即,在相关时段或运行时间期间不移动(即,不平移、不旋转)或不改变形状的障碍物或对象(例如,建筑物、树木、岩石、家具、底座、支柱、架子)的形式。这些障碍物中的一些可以采取环境100中的动态障碍物或对象106d、106e(即,在相关时段或运行时间的至少一部分期间移动(即,平移、旋转)或改变形状的障碍物或对象(例如其他机器人、容器、交通工具、自主交通工具、人、动物、滚动或移位的物品)的形式。例如,一组底座、墙壁和支柱可以是固定的或者可以在相关时间段(例如,运行时间)内不移动或不改变形状,并且因此被认为是静态障碍物。还例如,一组容器、工件和另一个机器人102可以在相关时间段(例如,运行时间)期间移动或改变形状(例如,倾斜),并且因此被认为是动态障碍物。
33.一些障碍物106a至106c占据不随时间改变的区域或体积,例如在机器人的操作或移动期间保持固定或不变。这样的障碍物因此可以被称为静态或持久性障碍物。由静态或持久性障碍物(例如,障碍物106a至106c)占据的区域或体积可以在确定模型或配置计算电路的时间(称为配置时间或预运行时间的时间)是已知的。
34.对于其他障碍物106d、106e,障碍物占据的相应区域或体积随着时间改变或预期
随着时间改变,例如在机器人的操作或移动期间改变。这样的障碍物因此可以被称为动态或暂时性障碍物。由动态或暂时性障碍物(例如,障碍物106d、106e)占据的区域或体积通常在配置时间期间是未知的,而是在机器人操作期间或运行时间期间来确定。
35.环境100可以可选地包括一个或更多个目标对象108a、108b(示出了两个,统称为108),机器人102旨在例如通过抓握目标对象108、移动目标对象108或以其他方式接合目标对象108来与一个或更多个目标对象108a、108b交互,以执行一些定义的任务或操作。目标对象108通常不被认为是障碍物,但在一些实施方式中可以构成障碍物,例如在存在一个机器人102a将顺序地接合的多个目标对象108的情况下或者当相对于不以特定目标对象108为目标的另一机器人102b、102c考虑时,可以构成障碍物。一些环境可以不包括任何目标对象,机器人102在各种姿态之间移动而不与任何对象交互或接合。
36.图1示出了具有有限数量的障碍物106和目标对象108的代表性环境100。典型环境可以包括许多额外的障碍物106和目标对象108,包括作为其他机器人和各种其他自然或人工静态和动态障碍物106或目标对象108的对象。一些环境100可以完全省略目标对象108,或者甚至省略动态障碍物106d、106e。本文教导的概念可以以类似的方式用于比所示出的更密集的环境。
37.机器人102能够采取多种形式中的任何一种。机器人102可以是任何类型的机器人,包括但不限于:笛卡尔机器人、选择顺应性装配机器手臂(selectively compliant arm for robotic assembly,scara)机器人、圆柱坐标机器人、delta机器人、极性和垂直铰接机器人(polar and vertically articulated robot)。一个或更多个机器人102也可以是移动的,例如呈汽车、飞机、无人机或任何其他能够自主或半自主地(即,至少部分自主地)操作并在由环境100表示的空间中移动的交通工具的形式。
38.在所示实施方式中,机器人102各自分别包括基座110和由一组连杆112a、112b(仅标出两个,统称为112)和一组关节114(仅标出一个)形成的附件111(仅标出一个),关节114中的每个物理地耦接相应的一对连杆112。机器人102还能够包括一个或更多个致动器116(仅标出一个),该致动器驱动一个连杆112a相对于另一个连杆112b或者相对于基座110的移动。致动器116可以采取多种形式中的任何一种,例如,电动马达、步进马达、螺线管、电磁体、气动致动器或液压致动器,被耦接并且能够操作以响应于控制或驱动信号移动连杆机构。例如,气动致动器可以包括一个或更多个活塞、气缸、阀、加压气体的储存器和/或压力源(例如,压缩机、鼓风机)。例如,液压致动器可以包括一个或更多个活塞、气缸、阀、加压流体(例如,低压缩性液压流体)的储存器和/或压力源(例如,压缩机、鼓风机)。机器人102还可以包括末端执行器或臂末端工具118(图1中仅标出一个),例如具有可对置手指、钩子或真空端口的抓握器,以物理接合环境100中的目标对象108。例如,一个或更多个机器人102可以承载一个或更多个安装在机器人上的传感器(例如,相机、位置或旋转编码器、接近传感器、惯性传感器)。在一些实施方式中,机器人102中的一个或更多个例如可以采取自主交通工具的形式。
39.感知系统120可以包括一个或更多个环境传感器122a、122b、122c、122d(示出了四个,统称为122)和可选的感知计算机系统123。如本文所述,环境100中传感器122的位置和取向以及甚至环境100中传感器122的总数量也可以被优化以减少或者甚至消除遮挡,从而改进运动规划和运动计划以驱动机器人完成一个或更多个任务。
40.环境传感器122能够采取多种形式或类型中的任何一种,例如一个或更多个数码相机122a、122b(例如,飞行时间数码相机、3d相机)、一个或更多个运动传感器(例如,被动-红外运动传感器)或雷达122c、一个或更多个lidar传感器122d、一个或更多个麦克风(未示出)、一个或更多个重量传感器或称重传感器(未示出)、一个或更多个电眼(例如,被动红外(ir)传感器,包括ir光源和ir传感器)(未示出)、一个或更多个编码器(例如,位置编码器、旋转编码器、簧片开关)(未示出)、一个或更多个温度传感器(未示出)、湿度传感器(未示出)和/或一个或更多个压力传感器(未示出),仅举几例。传感器122检测环境100的特性,包括环境100中的障碍物、目标对象、机器人和/或其他对象的特性(例如,位置、取向、形状、占据、移动、速度)。传感器122能够向可选的感知计算机系统123有线地、光学地和/或无线地提供信号,该感知计算机系统123收集并可选地预处理所收集的传感器信息或传感器数据。感知信息或数据可以是经由一个或更多个传感器(例如,相机、立体相机、飞行时间相机、lidar)感测的和/或由感知计算机系统123转换成障碍物的数字表示的原始数据,这可以生成机器人102将在其中进行操作以执行针对各种不同场景的任务的环境的表示的相应离散化。在至少一些实施方式中,感知数据可以采取点云的形式。
41.可选的感知计算机系统123可以包括电路,例如一个或更多个处理器和/或一个或更多个非暂时性处理器可读介质(例如,非易失性存储器、易失性存储器、旋转存储介质),并且可以执行例如由非暂时性处理器可读介质存储的一个或更多个处理器可执行指令的集合。感知计算机系统123可以通信地耦合(例如,有线地、光学地、无线地耦合)到一个或更多个传感器122,以直接或间接地接收感测信息,例如感知数据。感知计算机系统123可以至少部分地基于感知数据来生成环境100的数字或虚拟模型(表示为“环境表示”)132。
42.特别地,在至少一些实施方式中,一个或更多个处理器对处理器可执行指令的执行可以使感知计算机系统123处理或预处理所接收的传感器信息中的一些或全部。如本文所描述的,感知计算机系统123可以生成三维操作环境100的一个或更多个数字表示或模型132,三维操作环境100包括在运行时间期间的给定时段存在于环境100中的任何障碍物。如本文所描述的,环境100的数字表示或模型132可以有利地用于针对给定机器人102的布局和/或运动规划的优化。数字表示或模型132可以采取多种形式中的任何一种,例如占位栅格。
43.布局优化器计算机系统124有利地为环境100中的一个或更多个传感器122中的每个确定经优化的传感器姿态(即,传感器位置和取向),并且甚至可以确定环境100中的传感器122的总数量。特别地,布局优化器计算机系统124可以确定至少传感器的优化布局,这有利地减少或者甚至消除遮挡,例如当机器人通过一系列机器人姿态移动以完成任务时由机器人引起的遮挡,从而改进运动规划和运动计划以驱动机器人102完成一个或更多个任务。在一些实施方式中,例如如美国专利申请62/991,487中所描述的,布局优化器计算机系统124可以另外确定环境102中机器人102的优化布局(例如,机器人的基座的位置和取向),从而改进运动规划和运动计划以驱动机器人102完成一个或更多个任务。
44.布局优化器计算机系统124可以包括电路,例如一个或更多个处理器和/或一个或更多个非暂时性处理器可读介质(例如,非易失性存储器、易失性存储器、旋转存储介质),并且可以执行例如由非暂时性处理器可读介质存储的一个或更多个处理器可执行指令的集合。布局优化器计算机系统124可以通信地耦合(例如,有线地、光学地、无线地耦合)到感
知计算机系统123以接收环境100的数字或虚拟模型(表示为“环境表示”)132,或者替代地通信地耦合(例如,有线地、光学地、无线地耦合)到一个或更多个传感器122以直接或间接接收感测信息,例如感知数据。
45.优化可以采用以下中的一个或更多个:包括由静态对象占据的体积或区域的环境的知识,环境中每个机器人(例如,每个机器人的基座)的位置和取向的知识,运动规划路线图(例如,在机器人的c空间中表示的可能的机器人姿态和机器人姿态之间的转变的图形)的知识,和/或将由机器人执行的一组任务。优化还可以采用候选传感器姿态的有限集合。每个候选传感器姿态表示环境中传感器的可能位置和可能取向的元组。例如,候选传感器姿态可以包括跨越与环境中的表面对应的二维表面(例如,跨越适合安装传感器的天花板或墙壁)的多个位置中的每个位置处的多个姿态。
46.在至少一些实施方式中,布局优化器计算机系统124的输入可以包括一个或更多个静态环境模型,一个或更多个静态环境模型表示或表征操作环境或工作空间100,例如表示地板、墙壁、天花板、柱子、其他静态障碍物等。操作环境或工作空间100可以由一个或更多个模型例如表示操作环境中的地板、墙壁、天花板、障碍物和其他对象的几何模型(例如,点云)来表示。例如,这可以以笛卡尔坐标来表示。
47.在至少一些实施方式中,布局优化器计算机系统124的输入可以包括候选传感器姿态集合。替代地,基于处理器的系统可以包括候选传感器姿态群体生成器(未示出)。候选传感器姿态群体生成器基于提供的输入(例如,环境或房间的物理模型)生成候选传感器姿态集合。
48.布局优化器计算机系统124的输入可以包括将在多机器人操作环境中操作的多个机器人中的每个机器人的一个或更多个机器人模型。机器人模型可以表示或表征每个机器人102,例如指定几何形状和运动学,例如大小或长度、连杆的数量、关节的数量、关节类型、连杆的数量、连杆的长度、末端执行器的类型、运动范围、对速度的限制、对加速度或加加速度的限制。机器人102可以由例如在关节、自由度、尺寸(例如,连杆的长度)方面和/或在机器人102a至102c的相应c空间的方面定义给定机器人102a-102c的几何形状的一个或更多个机器人几何模型来表示。
49.布局优化器计算机系统124的输入可以包括要执行的一组或更多组任务,例如被表示为目标目的(例如,机器人位置或配置)。目标可以表示每个机器人或其部分必须按顺序或在特定时间移动到其以便完成一组任务的各种位置或配置。例如,可以在相应机器人的配置空间(c-空间)中表示目标。例如,可以根据相应机器人102a至102c的结束姿态、结束配置或结束状态和/或中间姿态、中间配置或中间状态来表示任务。例如,可以根据相应机器人102a至102c的关节位置和关节角度/旋转(例如,关节姿态、关节坐标)来定义机器人姿态、配置或状态。输入可以可选地包括一个或更多个停留持续时间,其指定机器人或其部分应该停留在给定目标处以完成任务(例如,拧紧螺钉或螺母、拾取和放置对象)的时间量。停留持续时间可以有利地反映机器人的末端执行器需要保持在给定目标处以完成相应任务的预期时间量。
50.例如,基于处理器的系统124可以接收多机器人操作环境的一个或更多个模型132。模型132可以表示多个机器人将在其中进行操作的物理环境,例如表示地板、墙壁和环境中的各种对象。
51.可以将一组任务指定为任务计划。任务计划可以指定需将由多个机器人执行的多个(t)任务。任务计划能够被建模为每个机器人的向量,其中向量是相应机器人要执行的任务的有序列表,例如,{任务7,任务2,任务9}。任务向量还能够可选地包括指定机器人或其部分应该停留在给定配置或目标处的持续时间的停留持续时间。任务向量还可以指定与解决任务不直接相关的原位姿态和/或其他“功能姿态”(例如,“让路”或存储姿态)。可以在机器人的c空间中指定机器人姿态。
52.机器人102执行任务通常采用运动规划,而运动规划又采用碰撞检测或评估。因此,可以提供一个或更多个运动规划器或运动规划系统126(仅示出一个)来执行运动规划,包括碰撞检测或评估。运动规划器或运动规划系统126通信地耦合(例如,有线地、光学地、无线地耦合)到感知计算机系统123或者替代地直接耦合到传感器122,以从其接收信息并且至少部分地基于所接收的信息来生成运动计划。信息可以包括环境100的数字表示或模型132(表示为环境表示或“envmt rep”),包括环境100中存在的任何障碍物(包括其他机器人102)。运动规划器或运动规划系统126的输入还可以包括机器人102的运动学模型130和将由每个机器人102执行的一组任务、目标或目的133。运动学模型130可以例如采取分层数据结构的形式。分层数据结构可以例如采取一种或更多种类型的树的形式。例如,合适的分层数据结构可以包括八叉树、轴对齐边界框(aabb)树、定向(非轴对齐)边界框树、球体树和/或其他树类型的数据结构。例如,运动学模型130可以采取非分层数据结构(例如,欧几里得距离场)的形式。
53.运动规划器或运动规划系统126可以是机器人102的组成部分,或者可以与机器人102分离和不同。在一些实施方式中,运动规划器或运动规划系统126的一个或更多个部分可以在机器人102中的相应机器人上,而一个或更多个其他部分可以与机器人102分离(即,在机器人102之外)。运动规划器或运动规划系统126可以包括电路,例如一个或更多个处理器和/或一个或更多个非暂时性处理器可读介质(例如,非易失性存储器、易失性存储器、旋转存储介质),并且可以执行例如由非暂时性处理器可读介质存储的一个或更多个处理器可执行指令集合。运动规划器或运动规划系统126可以生成运动计划127,以使机器人102执行特定任务,例如在一系列顺序姿态之间移动,优选地在不与障碍物106碰撞或碰撞的概率减小的情况下在一系列顺序姿态之间移动。运动规划器或运动规划系统126可以通信地耦合(例如,有线地、光学地、无线地耦合)到一个或更多个机器人控制系统138以向其提供指令,所述指令使特定机器人102跟随或执行运动计划。
54.运动规划器或运动规划系统126可以包括或访问碰撞检测系统140。碰撞检测系统140可以包括电路,例如一个或更多个处理器和/或一个或更多个非暂时性处理器可读介质(例如,非易失性存储器、易失性存储器、旋转存储介质),并且可以执行例如由非暂时性处理器可读介质存储的一个或更多个处理器可执行指令集合。碰撞检测系统140有利地采用环境132的数字表示或模型以及可选地采用机器人的运动学模型130(例如,运动学模型130的数据结构表示)来确定或检测或评估机器人在各种姿态下或在姿态之间移动时与环境100中的障碍物106碰撞的概率。那些障碍物106可以包括环境100中的其他机器人。运动规划器或运动规划系统126和/或碰撞检测系统140可以例如采取在2019年8月6日提交的国际(pct)专利申请pct/us2019/045270中描述的运动规划系统和碰撞检测系统的形式。
55.基于处理器的系统(例如,运动规划器或运动规划系统126和/或碰撞检测系统
140)可以对包括机器人102在其中的移动的操作环境100进行建模,以确定某些属性,例如完成任务所需的时间量、完成任务时碰撞的概率或碰撞率、完成任务的可行性或不可行性、完成任务所需的移动或转变次数和/或完成任务时的能量消耗。基于处理器的系统(例如,运动规划器或运动规划系统126和/或碰撞检测系统140)可以在成本方面反映这一点,经由一个或更多个成本函数生成成本。
56.机器人控制系统138可以包括若干部件,这些部件通常是不同的,但是在一些实施方式中可以组合在共同的电路板、处理器或其他电路中。例如,一组驱动器可以包括通信地耦合到致动器116以驱动致动器116以使机器人102采用或移动到定义的姿态的电路。例如,驱动器可以包括马达控制器和类似电路,所述马达控制器或类似电路驱动电动马达、步进马达、螺线管、电磁体、液压活塞、气动活塞、液压阀、气动阀、真空系统、液压系统和/或气动系统的泵或压缩机中的任何一个或更多个。
57.图2示出了根据至少一个所示实施方式的系统200。系统200可以包括或实现在图1中示出和关于图1描述的各种部件或结构。
58.系统200可以包括一个或更多个传感器202、可选地包括一个或更多个感知计算机系统203、一个或更多个布局优化器计算机系统204、一个或更多个运动规划器206和一个或更多个机器人208。如本文所描述的,每个传感器202的相应位置和取向以及甚至传感器202的总数可以有利地通过布局优化器计算机系统204的操作来确定。
59.一个或更多个感知计算机系统203可以通信地耦合到一个或更多个传感器202以从其接收感知信息或数据。一个或更多个感知计算机系统203可以包括一个或更多个处理器205和存储器207。存储器207存储处理器可执行指令,所述处理器可执行指令在由至少一个处理器205执行时使至少一个处理器205收集来自传感器的信息或数据并生成三维操作环境的数字表示或模型。一个或更多个感知计算机系统203可以通信地耦合以例如向一个或更多个布局优化器计算机系统204和/或一个或更多个运动规划器206提供三维操作环境的数字表示或模型。一个或更多个运动规划器206可以通信地耦合以经由一个或更多个运动控制器210向一个或更多个机器人208提供运动计划127(图1)。
60.如先前描述的,每个机器人208可以包括由连杆和关节的集合形成的附件,其中在附件的末端处具有臂末端工具或末端执行器,和/或每个机器人208可以包括能够操作以围绕关节移动连杆的一个或更多个致动器211a、211b、211c(图2中示出了三个,统称为211)。每个机器人208可以包括一个或更多个运动控制器(例如,马达控制器)210(仅示出一个),一个或更多个运动控制器210接收例如来自运动规划器或运动规划系统206的控制信号并且提供驱动信号以驱动致动器211。运动控制器210可以专用于控制致动器211中的特定致动器。
61.为了说明的目的,将详细描述示例性环境布局优化器计算机系统204。本领域技术人员将认识到,该描述是示例性的,并且可以对所描述和图示的布局优化器计算机系统204进行改变。
62.布局优化器计算机系统204可以包括一个或更多个处理器222以及一个或更多个相关联的非暂时性计算机或处理器可读存储介质,例如系统存储器224、盘驱动器225和/或处理器222的存储器或寄存器(未示出)。非暂时性计算机或处理器可读存储介质224、225经由诸如系统总线229的一个或更多个通信通道通信地耦合到处理器222。系统总线229可以
采用任何已知的总线结构或架构,包括具有存储器控制器的存储器总线、外围总线和/或本地总线。这样的部件中的一个或更多个也可以或替代地经由一个或更多个其他通信通道(例如,一个或更多个并行线缆、串行线缆或能够高速通信的无线网络通道,例如通用串行总线(“usb”)3.0、高速串行计算机扩展总线标准(peripheral component interconnect express,pcie))或经由彼此通信。
63.布局优化器计算机系统204还可以通信地耦合到一个或更多个远程计算机系统212,例如服务器计算机、台式计算机、膝上型计算机、超便携计算机、平板计算机、智能电话、可穿戴计算机和/或传感器(图2中未示出),一个或更多个远程计算机系统212例如经由网络接口(未示出)直接通信地耦合或间接地通信地耦合到布局优化器计算机系统204的各种部件。远程计算系统(例如,服务器计算机)可以用于编程、配置、控制布局优化器计算机系统204或以其他方式与布局优化器计算机系统204接口或向布局优化器计算机系统204提供输入数据(例如,机器人模型)。这样的连接可以通过一个或更多个通信通道214,例如一个或更多个广域网(wan)例如以太网或使用互联网协议的互联网。在一些实施方式中,预运行时间计算或配置时间计算(例如,机器人的建模)可以由与布局优化器计算机系统204分离的系统(例如,计算机系统212)执行。运行时间计算可以由一个或更多个布局优化器计算机系统204和/或运动规划器206执行。
64.如所述,布局优化器计算机系统204可以包括一个或更多个处理器222(即,电路)、非暂时性存储介质224、225和耦合各种系统部件的系统总线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 for autonomous vehicles and reconfigurable motion planning processors”的国际专利申请第pct/us2017/036880号;于2016年1月5日提交的题为“specialized robot motion planning hardware and methods of making and using same”的国际专利申请公布第wo 2016/122840号;于2018年1月12日提交的题为“apparatus,method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects”的美国专利申请第62/616,783号;于2019年6月24日提交的题为“motion planning for multiple robots in shared workspace”的美国专利申请序列号62/865,431;于2020年3月18日提交的题为“digital representations of robot operational environment,useful in motion planning for robots”的美国专利申请62/991,487;和/或于2019年8月6日提交的国际(pct)专利申请pct/us2019/045270。
65.系统存储器224可以包括只读存储器(“rom”)226、随机存取存储器(“ram”)228、闪存230、eeprom(未示出)。能够形成rom 226的一部分的基本输入/输出系统(“bios”)232包含帮助例如在启动期间在布局优化器计算机系统204内的元件之间传送信息的基本例程。
66.驱动器225可以是例如用于从磁盘读取和向磁盘写入的硬盘驱动器、用于从固态存储器读取和向固态存储器写入的固态(例如,闪存)驱动器和/或用于从可移动光盘读取和向可移动光盘写入的光盘驱动器。布局优化器计算机系统204还可以包括各种不同实施例中的这样的驱动器的任何组合。驱动器225可以经由系统总线229与处理器222通信。驱动器225可以包括耦合在这样的驱动器与系统总线229之间的接口或控制器(未示出),如由相关领域的技术人员所知道的。驱动器225和相关联的计算机可读介质为布局优化器计算机系统204提供计算机或处理器可读和/或可执行指令、数据结构、程序模块和其他数据的非易失性存储。相关领域的技术人员将理解,可以采用能够存储可由计算机访问的数据的其他类型的计算机可读介质,例如worm驱动器、raid驱动器、磁带、数字视频磁盘(“dvd”)、bernoulli盒式磁带、ram、rom、智能卡等。
67.可执行指令和数据可以存储在系统存储器224中,例如操作系统236、一个或更多个应用程序238、其他程序或模块240和程序数据242。应用程序238可以包括处理器可执行指令,其使处理器222执行以下中的一个或更多个:收集或接收传感器或感知数据,接收或生成三维环境132(图1)的表示或模型;接收机器人208的运动学模型130(图1);优化传感器姿态,其减少或消除环境中的对象对传感器的遮挡,包括由机器人在执行任务时的移动导致的遮挡。为了确定环境100中传感器的优化(例如,不一定是最佳)布局,处理器可执行指令可以使处理器222评估多个候选传感器姿态中的每个,分配表示遮挡的成本值,聚合成本值,并且分析成本值以确定经优化的姿态和/或经优化的传感器总数。处理器可执行指令的执行另外可以使处理器222优化环境中机器人的机器人姿态(例如,基座的位置和/或取向)。这样的操作可以如本文所描述(例如,参考图3和图7)和通过引用并入本文的参考文献中所描述的来执行。应用程序238可以包括一个或更多个机器可读和机器可执行指令,这些指令使处理器222执行其他操作,例如可选地处理(经由传感器捕获的)感知数据。处理器可执行指令使处理器222根据感知数据构造表示或模型。在一些实施方式中,处理器可执行指令可以使处理器222构建包括体积的表示或模型,该体积不仅仅包含由给定机器人占据的区域,并且指示该体积未被占据,例如在美国专利申请62/991,487中所描述的。例如,这可以用于说明从机器人延伸的各种结构(例如,线缆)。应用程序238可以另外包括一个或更多个机器可执行指令,这些指令使处理器222模拟例如在执行定义的任务时机器人沿着各种轨迹的移动。应用程序238可以另外包括一个或更多个机器可执行指令,这些指令使处理器222执行本文和通过引用并入本文的参考文献中描述的各种其他方法。
68.虽然在图2中示为被存储在系统存储器224中,但操作系统236、应用程序238、其他应用、程序/模块240和程序数据242能够被存储在其他非暂时性计算机或处理器可读介质例如驱动器225上。
69.尽管不是必需的,但许多实施方式将在计算机可执行指令例如存储在计算机或处理器可读介质上并由一个或更多个计算机或处理器执行的程序应用模块、对象或宏的一般上下文中进行描述。在各种实施方式中,操作可以完全在硬件电路中执行或作为存储在诸如系统存储器224的存储装置中的软件来执行,并且由一个或更多个硬件处理器222执行,一个或更多个硬件处理器222例如一个或更多个微处理器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)、图形处理单元(gpu)处理器、可编程逻辑控制器(plc)、电可编程只读存储器(eeprom)或作为硬件电路和存储在存储装置中的软件的组合。
70.布局优化器计算机系统204可以可选地包括一个或更多个输入/输出部件,例如监视器或触摸屏显示器244、小键盘或键盘246、和/或诸如计算机鼠标248的定点设备。
71.相关领域的技术人员将理解,所示实施方式以及其他实施方式可以用其他系统结构和布置和/或其他计算系统结构和布置来实践,包括机器人、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、个人计算机(“pc”)、联网pc、小型计算机、大型计算机等的那些系统结构和布置。实施方式或实施例或其部分(例如,在配置时间和运行时间)能够在分布式计算环境中实践,在分布式计算环境中任务或模块由通过通信网络链接的远程处理设备执行。在分布式计算环境中,程序模块可以位于本地和远程记忆存储设备或介质二者中。然而,某些类型信息的存储位置和方式对于帮助改进操作可能很重要,该操作包括确定传感器姿态的优化布局。
72.运动规划器或运动规划系统206可以包括一个或更多个处理器250,以及一个或更多个相关联的非暂时性计算机或处理器可读存储介质,例如系统存储器252、磁盘驱动器(未示出)和/或处理器250的寄存器(未示出)。非暂时性计算机或处理器可读存储介质(例如,系统存储器252)经由一个或更多个通信通道例如系统总线254通信地耦合到处理器250。系统总线254可以采用任何已知的总线结构或架构,包括具有存储器控制器的存储器总线、外围总线和/或本地总线。这样的部件中的一个或更多个也可以或替代地经由一个或更多个其他通信通道(例如,一个或更多个并行线缆、串行线缆或能够高速通信的无线网络通道例如通用串行总线(“usb”)3.0、高速串行计算机扩展总线标准(pcie))或经由彼此通信。一个或更多个通信端口(未示出)能够提供运动规划器或运动规划系统206与感知计算机系统203和/或运动控制器210之间的通信。运动规划器或运动规划系统206可以可选地以通信地耦合(例如,有线地、光学地、无线地耦合)到计算机或终端(未示出)以允许用户输入(例如,运动细分粒度值或规范的指示)并提供用户输出。
73.运动规划器或运动规划系统206可以接收表示或以其他方式基于经由传感器202收集的感知信息的环境的表示或模型。运动规划器或运动规划系统206还可以接收机器人模型、任务、目标目的、对机器人总数的限制、对每个机器人的任务的限制、关于变量或其他参数的界限或约束和/或对迭代的限制。
74.运动规划器或运动规划系统206执行使运动规划器或运动规划系统206执行运动规划的处理器可执行指令(应用256),通常依靠碰撞评估来产生用于机器人执行任务的运动计划。运动规划器或运动规划系统206可以例如通过执行碰撞检测或评估来构建运动计划,基于碰撞检测或评估来更新运动规划图中的边的成本,并且执行路径搜索或评估。
75.在一些实施方式中,传感器姿态优化可以是整体工作空间优化的一个方面。工作空间优化还可以包括将在工作空间中操作的每个机器人的相应基座的位置和/或取向的优化,例如如美国专利申请62/964,405中所描述的。例如,这可以包括:生成候选解决方案的群体(例如,机器人基座的候选位置和取向),候选解决方案的建模,至少部分地基于建模产生或确定与相应候选解决方案相关联的成本,通过优化引擎对候选解决方案的群体执行优化,该优化引擎针对以下中的两个或更多个跨两个或更多个非同质参数的集合进行协同优化:机器人的相应基座位置和取向、对机器人中的相应机器人的任务分配以及机器人的相应目标序列;和/或提供能够用于在多机器人操作环境中定位和定向机器人并使机器人执行任务的输出。
76.图3示出了根据至少一个所示实施方式的基于处理器的系统的操作方法300,其用于执行传感器姿态的优化并且可选地执行操作环境中一个或更多个机器人的运动规划和控制操作。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一者的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行方法300的各个操作或动作。
77.可以执行方法300以确定一个或更多个传感器的相应位置和/或取向以增强操作环境的覆盖范围,即提供遮挡发生减少的覆盖范围。如先前在发明内容中描述的,减少遮挡可以显著增强机器人的运动规划,产生更稳健和/或更高效执行的运动计划和/或减少执行运动规划所需的计算资源。这在本文中被称为优化传感器姿态,即使方法300的执行可能不会产生最佳(即,客观上最优)解决方案,而是仅产生经优化或改进的解决方案。在执行该方法之前可以知道或可以不知道要放置的传感器的总数,并且实际上可以仅在该方法的数次迭代之后在达到终止条件(例如,经指定或经优化的任务完成时间)时确定要放置的传感器的总数。在许多实施方式中,传感器将采取数码相机的形式,每个数码相机具有包含由传感器的位置和取向决定的操作环境的一部分的相应视场。然而,本文描述的各种实施方式不限于数码相机,而是能够应用于几乎任何类型的传感器,这些传感器可以用于感测一个或更多个机器人在其中进行操作的操作环境中的条件,包括但不限于雷达、lidar、声呐、被动红外(pir)运动检测器等。
78.如前所述,优化可以采用以下中的一个或更多个:包括被静态对象占据的体积或区域的环境的知识(例如,感知数据或信息)、环境中每个机器人(例如,每个机器人的基座)的位置和取向的知识、每个机器人的运动规划路线图(例如,机器人的c空间中表示的可能的机器人姿态和姿态之间的转变的图形)的知识和/或将由机器人执行的一组任务。
79.优化还可以采用候选传感器姿态的有限集合。每个候选传感器姿态表示在环境中传感器的可能位置和可能取向的元组。例如,候选传感器姿态可以包括跨越与环境中的表面对应的二维表面(例如,跨越适合安装传感器的天花板或墙壁)的多个位置中的每个位置处的多个姿态。可以以多种方式确定或生成或细化候选传感器姿态的集合。例如,候选传感器姿态的集合可以随机生成,或者从环境100中可用的所有位置和取向随机选择。例如,候选传感器姿态的集合可以被选择为在环境100中的所有可用表面上均匀地间隔开。可以应用一个或更多个试探法来确定或生成或细化候选传感器姿态的有限集合。例如,仅可以安装传感器和/或具有电力供应(例如,电源插座或接线盒)的位置可以被包括在候选传感器姿态的集合中。
80.在一些实施方式中,可以经由优化引擎来执行对c个候选传感器姿态的群体的优化。优化引擎可以例如基于遮挡分析(例如针对向一个或更多个机器人的任务分配和/或一个或更多个机器人的运动计划执行的遮挡分析)来选择经优化的候选传感器姿态。优化引擎可以被实现为执行处理器可执行指令的一个或更多个处理器。在至少一些实施方式中,优化引擎可以在执行优化时与机器人环境模拟器交互,例如至少部分地基于在执行任务中通过一系列机器人姿态对机器人移动的模拟来分析遮挡。机器人环境模拟器可以表征相应运动计划的效率(例如,用于完成任务的时间)和相应运动计划的碰撞概率或碰撞率。效率可以用于确定终止条件,例如确定何时对足够数量的传感器确定了姿态。优化引擎可以至少部分地基于与候选传感器姿态相关联的相应成本来选择候选传感器姿态之一。优化引擎
提供优化的输出。特别地,优化引擎可以提供用于在环境中定位和定向传感器的位置和取向作为输出。
81.方法300在302处开始,例如响应于基于处理器的系统或其部件的通电、命令的接收或来自调用例程的调用而开始。
82.可选地,在304处,基于处理器的系统或其部件优化将在操作环境中进行操作的一个或更多个机器人中的每个机器人的相应基座的相应位置和/或取向。可以采用各种方法和技术以优化机器人的基座的位置和/或取向,包括但不限于美国专利申请62/964,405中教导的那些方法和技术。机器人的基座的位置和/或取向是否被优化,机器人的基座的位置和/或取向的知识以及机器人的相应运动规划路线图的知识有助于优化传感器的姿态,其考虑了可用于机器人在执行任务时通过其移动的各种机器人姿态。要执行的任务的知识同样能够促进传感器姿态和传感器总数的优化。
83.在306处,基于处理器的系统或其部件初始化候选传感器姿态计数器i,例如将候选传感器姿态计数器i设置为零。候选传感器姿态计数器i用于允许基于处理器的系统或其部件对多个候选传感器姿态进行迭代,作为评估要在一个或更多个机器人将在其中进行操作的操作环境中确定传感器(例如,数码相机)的姿态中使用的候选传感器姿态的一部分。
84.在308处,基于处理器的系统或其部件使候选传感器姿态计数器i增加。
85.在310处,基于处理器的系统或其部件对由当前候选传感器姿态计数器i指示的候选传感器姿态执行遮挡评估。遮挡评估针对操作环境中的一个或更多个机器人在一个或更多个机器人各自移动或通过相应的多个机器人姿态j进行转变时的遮挡效果(如果有的话)。在操作环境包括两个或更多个机器人的情况下,遮挡评估针对两个或更多个机器人的机器人姿态的组合的遮挡效果。例如,遮挡评估可以评估在第一机器人处于机器人姿态中的相应第一机器人姿态时处于多个相应机器人姿态中的每个机器人姿态的第二机器人的遮挡效果,并且然后评估在第一机器人处于机器人姿态中的相应第二机器人姿态时处于多个相应机器人姿态中的每个机器人姿态的第二机器人的遮挡效果。遮挡评估可以针对一个或更多个机器人评估遮挡效果,例如,从机器人姿态集合中选择机器人姿态,并且逐一分析机器人姿态。该机器人姿态集合可以包括一个、两个或更多个机器人的机器人姿态。遮挡评估可以针对两个或更多个机器人中的每个机器人评估机器人姿态的各种组合的遮挡效果。替代地,可以定义机器人姿态的组合的子集(例如,可以用于执行一个或更多个定义的任务的机器人姿态),或采用探索法来限制评估的总数。在下面阐述的方法300的非限制性示例实施方式中提供了遮挡评估的示例实施方式。
86.在312处,基于处理器的系统或其部件确定候选传感器姿态计数器i是否已达到n。如果候选传感器姿态计数器i尚未达到n,则控制返回308,其中候选传感器姿态计数器i增加。如果候选传感器姿态计数器i已经达到n,则控制传递到314。
87.在314处,基于处理器的系统或其部件基于遮挡评估来选择候选传感器姿态以确定传感器k的姿态。例如,该选择可以基于表示以相应候选传感器姿态定位和定向传感器的遮挡效果的成本值。在下面阐述的方法300的非限制性示例实施方式中提供了确定成本值和基于成本进行选择的示例。可以从候选传感器姿态的集合中移除选择的传感器姿态,从而在后续迭代中不会选择相同的传感器姿态。
88.可选地,在316处,根据所选择的候选姿态定位和定向传感器k。这可以手动完成。
替选地,这甚至可以自动完成,例如经由传感器物理附接到的或拾取和放置传感器的一个或更多个机器人的移动来自动完成。在一些实施方式中,可以对传感器的姿态确定进行建模,直到确定所有传感器的可接受布局。
89.在318处,基于处理器的系统或其部件确定是否已经达到终止条件。如果已经达到终止条件,则控制传递到320。如果尚未达到终止条件,则控制返回到306,在306处分析候选传感器姿态集合中的候选传感器姿态来选择另一个传感器姿态。
90.终止条件可以采取多种形式中的任何一种或更多种。例如,一个终止条件可以是遮挡的量度(例如,遮挡的量或遮挡的总数)在定义的阈值以下。附加地或替代地,一个终止条件可以是对遮挡减少的改进的量度达到限制值(例如,每次迭代都具有逐渐更小的遮挡减少,直到对于给定应用不再需要进一步的改进)。附加地或替代地,一个终止条件可以是确定遮挡进一步减少将不会显著提高速度或减少用于运动规划的计算资源。附加地或替代地,一个终止条件可以是确定遮挡进一步减少将不会显著提高使用由被确定姿态的传感器收集的信息生成的运动计划的稳健性或由机器人执行运动计划的效率。附加地或替代地,一个终止条件可以基于确定的任务完成时间(即,机器人完成一个或更多个任务的时间),例如确定的任务完成时间在指定阈值内,或者在多个周期内确定的任务完成时间的改进(例如,减少)量或改进率收敛或没有以期望的速率改进。例如,在当前候选传感器姿态群体间成本的标准偏差小于epsilon值的情况下,可以认为已经发生收敛。附加地或替代地,一个终止条件可以基于对给定运动计划将可用的无碰撞路径的评估。附加地或替代地,一个终止条件可以是允许的或可用的传感器的最大数量。附加地或替代地,一个终止条件可以是允许的最大迭代次数。附加地或替代地,一个终止条件可以是允许执行的最大时间或迭代时间。
91.在320处,基于处理器的系统(例如,感知计算机系统123)或其部件可选地接收经由处于相应传感器姿态的一个或更多个传感器收集的传感器信息。例如,呈数码相机形式的一个、两个或更多个传感器可以收集操作环境的图像,将图像信息提供给基于处理器的设备以用于运动规划。相机可以在电磁光谱的人类可视的或“白光”部分、电磁光谱的红外部分、电磁波的紫外部分或它们的组合中工作。附加地或替代地,呈雷达、lidar、声呐、pir运动检测器形式的一个、两个或更多个传感器可以从操作环境收集信息,将收集的信息提供给基于处理器的设备以用于运动规划。例如,收集的图像或其他信息可以表示操作环境中一个或更多个对象的存在、位置、形状、移动、轨迹、速度或加速度。例如,对象可以包括工件、障碍物和机器人。注意,在一些实施方式中,第一机器人可以构成相对于第二机器人的障碍物。
92.在324处,基于处理器的系统(例如,运动规划器126)或其部件可选地至少部分地基于收集的传感器信息针对操作环境中的一个或更多个机器人执行运动规划。运动规划能够采取多种形式中的任何一种,各种形式中的至少一些在以下描述:国际(pct)专利申请:pct/us2019/023031,公布为wo 2019/183141;pct/us2016/012204,公布为wo 2016/122840;pct/us2017/036880,公布为wo 2019/0217857;pct/us2019/012209,公布为wo 2019/139815;pct/us2019/016700,公布为wo 2019/156984;pct/us2019/045270,公布为wo 2020/040979;和pct/us2019/064511以及美国专利申请:62/856548;62/865431;62/890830;和62/991487。
93.在326处,基于处理器的系统或其部件(例如,机器人控制系统138、运动控制器210)可选地使一个或更多个机器人的一个或更多个部分在操作环境中根据生成的运动计划移动。这能够包括将运动计划提供给一个或更多个运动控制器,一个或更多个运动控制器存在于机器人处,或者通信地耦合到机器人。运动控制器控制机器人的一个或更多个致动器(例如,电动机、螺线管、电磁体、活塞和气缸、相关联的阀和/或压缩机)以引起运动。例如,运动计划可以使机器人附件在多个机器人姿态之间转变,例如以执行一个或更多个任务。引起机器人的一个或更多个部分的移动可以采取多种形式中的任何一种,多种形式中的至少一些在以下描述:国际(pct)专利申请:pct/us2019/023031,公布为wo 2019/183141;pct/us2016/012204,公布为wo 2016/122840;pct/us2017/036880,公布为wo 2019/0217857;pct/us2019/012209,公布为wo 2019/139815;pct/us2019/016700,公布为wo 2019/156984;pct/us2019/045270,公布为wo 2020/040979;和pct/us2019/064511以及美国专利申请:62/856548;62/865431;62/890830;和62/991487。
94.一旦已经实现了传感器对操作环境的充分覆盖,或者达到了一些其他终止条件,方法300就在328处终止或结束,直到再次被调用。在一些实施方式中,在每次初始设置操作环境时,或者响应于操作环境的实质性变化,例如机器人的添加、机器人的基座的重新定位、或者固定装置或可能干扰一个或更多个传感器收集信息的其他实质性结构的引入,来实施方法300。例如,在环境100中添加桌子可能会干扰一个或更多个相机的视野,从而触发确定新的传感器姿态集合的愿望。
95.方法300或其一部分可以在配置时间或预运行时间执行,这可以在运行时间之前发生。当响应性不是特别关注时,这有利地允许在运行时间之前执行一些计算最密集的工作。方法300的部分,例如机器人的运动规划和移动,可以在运行时间被执行。
96.虽然方法300是根据有序流程来描述的,但是在许多实施方式中各种动作或操作将同时或并行地被执行。
97.下面参考图4至图7描述方法300的非限制性示例实施方式。
98.传感器布局的优化可以采用多种优化算法或技术中的任何一种。一些实施方式可以采用成本函数来将成本应用到候选传感器姿态并且至少部分地基于成本评估来评估各种候选传感器姿态。
99.例如,基于处理器的系统可以从候选传感器姿态的有限集合c中采样候选传感器姿态。对于一个或更多个机器人中的每个机器人,基于处理器的系统可以从机器人姿态集合rp中采样机器人姿态。例如,每个机器人姿态可以是机器人的运动规划路线图中的顶点,或者甚至是沿着连接一对顶点的边的姿态,其中,每条边表示由边连接的顶点表示的两个姿态之间的有效转变。对于多机器人环境,基于处理器的系统可以从机器人的相应运动规划路线图中的每个中采样姿态组合。
100.示例实施方式可以包括初始化每个候选传感器姿态的成本值。
101.然后,示例实施方式可以进入外部迭代循环,针对工作空间中的每个体素执行该外部迭代循环。
102.在外部迭代循环内,工作空间中的每个体素的相应遮挡值被初始化(例如,设置为零)。
103.在外部迭代循环内,然后确定或计算工作空间中的每个体素的相应遮挡值。这可
能包括执行内部迭代循环,以检查相应的每个机器人姿态的遮挡。例如,对于机器人姿态集合中的每个机器人姿态,基于处理器的系统基于已经确定姿态的传感器来确定给定体素(即,在外部迭代循环的当前迭代中被评估的体素)是否被遮挡。值得注意的是,在第一次迭代中每个体素均被遮挡,因为还没有任何传感器被确定姿态。如果确定体素被遮挡(即,传感器不可见或无法检测到),则基于处理器的系统使工作空间中的被处于给定姿态(在该给定姿态下发生评估)的一个或更多个机器人占据的所有体素的遮挡值增加,占据的体积被称为机器人体素。遮挡值是对传感器隐藏给定体素的内容的表示。如果体素没有被遮挡,则基于处理器的系统处理下一个机器人姿态,一旦针对各种机器人姿态已经检查了遮挡,最终退出内部迭代循环。
104.在外部迭代循环内,基于处理器的系统可以聚合各个候选传感器姿态的成本。例如,对于集合中的每个候选传感器姿态,基于处理器的系统可以确定或计算达到给定体素的总成本。这可以通过想象从候选传感器姿态到给定体素的直线来理解。基于处理器的系统将对沿着直线的每个体素的遮挡值求总和。基于处理器的系统可以将该总成本添加到给定候选传感器姿态的成本中。
105.在退出外部迭代循环时,基于处理器的系统然后可以基于成本选择候选传感器姿态,例如选择具有最小相关联的成本的候选传感器姿态。可以采用各种最低成本算法。一旦被选择,传感器可以相应地(例如,物理地、虚拟地)被确定姿态。然后可以重复该方法直到达到终止条件,例如对定义数量的传感器确定了姿态或一些其他标准(例如,任务完成时间的收敛)。值得注意的是,每次后续迭代都应该有更少的被遮挡体素,遮挡这些体素中的每个的机器人姿态更少。还值得注意的是,可以采用多种算法,包括“贪心”算法,其中可能无法保证解决方案,并且优化时的任何解决方案都可能不是绝对最优解决方案。
106.图4至图7表示采用成本函数的优化的至少一个实施方式。其他实施方式可以采用其他算法和/或成本函数。
107.图4示出了根据至少一个所示实施方式的用于执行遮挡评估和候选传感器姿态的选择的基于处理器的系统的操作方法400。方法400可以作为执行方法300(图3)的一部分来执行。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一者的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行方法400的各种操作或动作。
108.在402处,针对每个候选传感器姿态,基于处理器的系统或其部件确定表示传感器在以相应候选传感器姿态被定位和定向时的遮挡的相应成本值。
109.在404处,基于处理器的系统或其部件选择与其他候选传感器姿态相比具有最低相关联的成本的候选传感器姿态。
110.图5a示出了根据至少一个所示实施方式的用于确定表示遮挡的成本值的基于处理器的系统的操作方法500a。方法500a可以作为执行方法300(图3)的一部分来执行。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一者的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行方法500a的各种操作或动作。
111.方法500a开始于502,例如响应于基于处理器的系统或其部件的通电、命令的接收或来自调用例程的调用而开始。
112.在504处,基于处理器的系统或其部件初始化候选传感器姿态集合中的所有候选传感器姿态的相应成本值。成本值可以保存在数据结构中,例如作为字段保存在记录中或成本值向量中。
113.在506处,初始化用于外部迭代循环的体素计数器v。例如,体素计数器v可以设置为零值。执行外部迭代循环以评估每次迭代中给定体素v的遮挡,对工作空间中的所有体素进行迭代。
114.在508处,使用于外部迭代循环的体素计数器v增加。
115.在510处,基于处理器的系统或其部件初始化工作空间中的所有体素的相应遮挡值。遮挡值可以保存在数据结构中,例如作为字段保存在记录中或遮挡值的向量中。
116.在512处,基于处理器的系统或其部件确定工作空间中的所有体素的相应遮挡值。遮挡值可以保存在数据结构中,例如作为字段保存在记录中或遮挡值的向量中。例如,这可以如参考图5b所示的方法500b所描述的并且如以下所描述的那样执行。
117.在514处,基于处理器的系统或其部件聚合候选传感器姿态的成本。聚合成本可以保存在数据结构中,例如作为字段保存在记录中或遮挡值的向量中。
118.在516处,基于处理器的系统或其部件确定是否已经针对遮挡评估了每个体素v,例如将体素计数器v的值与工作空间中的体素总数进行比较。如果存在待评估的额外体素,则控制返回到508。如果不存在待评估的额外体素,则控制传递到518,在518处方法500a终止,直到再次被调用。
119.图5b示出了根据至少一个所示实施方式的用于确定表示遮挡的成本值的基于处理器的系统的操作方法500b。方法500b可以作为执行方法500a(图5a)的一部分来执行,例如以确定工作空间中所有体素的相应遮挡值(图5a的512)。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一者的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行方法500b的各种操作或动作。
120.方法500b开始于520,例如响应于基于处理器的系统或其部件的通电、命令的接收或来自调用例程的调用而开始。
121.在522处,基于处理器的系统或其部件初始化用于内部迭代循环的机器人姿态计数器r。相对于参考图5a描述的外部迭代循环,内部迭代循环可以被认为是内部的。
122.在524处,基于处理器的系统或其部件使用于内部迭代循环的机器人姿态计数器r增加。
123.在526处,基于处理器的系统或部件确定给定体素v是否被遮挡,其中给定体素v是在外部迭代循环的当前迭代中被评估的体素。如果给定体素v被遮挡,则控制传递到528,在此基于处理器的系统或部件使被处于当前相应机器人姿态r的机器人占据的所有体素的遮挡值增加。值得注意的是,其中环境包括数量为n的机器人,每个机器人能够假设p个可能的机器人姿态,在内部迭代循环中要考虑的机器人姿态集合rp中的机器人姿态的总数可以由乘积n*p给出。如果给定体素v未被遮挡,则控制直接传递到530。
124.在530处,基于处理器的系统或其部件确定是否已经针对遮挡评估了每个机器人姿态,例如将机器人姿态计数器r的值与机器人可用的机器人姿态的总数进行比较。如果存在待评估的额外机器人姿态,则控制返回到524。如果不存在待评估的额外机器人姿态,则
控制传递到532,在532处方法500b终止,直到再次被调用。
125.图6示出了根据至少一个所示实施方式的用于确定体素的遮挡值的基于处理器的系统的操作方法600。方法600可以作为执行方法500a、500b(图5a和图5b)的一部分来执行。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一者的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行方法600的各种操作或动作。
126.在602处,基于处理器的系统或其部件基于已经确定姿态的任何传感器并基于机器人姿态集合rp确定给定体素是否被遮挡,机器人姿态集合rp包括将在环境中操作的一个或更多个机器人的被采样机器人姿态。值得注意的是,在环境包括多个机器人的情况下,给定体素可能不会被机器人遮挡、或被一个、两个或更多个机器人遮挡。可以逐一评估每个机器人姿态,例如对机器人姿态集合rp进行迭代,例如从第一个机器人姿态到第n个机器人姿态,其中机器人姿态集合rp中的机器人姿态可以用于一个、两个或更多个机器人。
127.在604处,如果体素被遮挡,则基于处理器的系统或其部件使当相应机器人处于相应机器人或其部分遮挡给定体素的特定机器人姿态时被机器人占据的任何体素的相应遮挡值增加。如上所述,给定像素可能同时被两个或更多个机器人姿态遮挡。
128.图7示出了根据至少一个所示实施方式的用于聚合候选传感器姿态的成本的基于处理器的系统的操作方法700。方法700可以作为执行方法500a、500b(图5a和图5b)的一部分来执行。基于处理器的系统可以包括至少一个处理器以及存储数据和处理器可执行指令中的至少一者的至少一个非暂时性处理器可读介质。当由至少一个处理器执行时,处理器可执行指令使至少一个处理器执行方法700的各种操作或动作。
129.在702处,针对每个候选传感器姿态,基于处理器的系统或其部件对传感器与相应体素之间的每个体素的遮挡值求总和。
130.在704处,基于处理器的系统或其部件将遮挡值的总和添加到相应候选传感器姿态的累积成本总和中。累积成本总和可以保存在数据结构中,例如作为字段保存在记录中或遮挡值的向量中。
131.示例
132.在至少一些实施方式中,本文描述的结构和算法可以在没有相机或其他感知传感器的情况下操作。例如,方法300(图1)的第一次迭代可以在任何传感器已经在环境100(图1)中定位和/或定向之前执行。在至少一些实施方式中,机器人之间的协调依赖于机器人的几何模型、机器人传达它们相应的运动计划的能力以及共享工作空间的几何模型。在其他实施方式中,可以可选地采用视觉或其他感知,例如以避免可能进入或占据共享工作空间的部分的人或其他动态障碍物。
133.各种各样的算法被用来解决运动规划问题。这些算法中的每个通常都需要能够确定机器人的给定姿态或从一个姿态到另一个姿态的运动是否会导致与机器人本身或环境中的障碍物发生碰撞。可以使用处理器“在软件中”执行虚拟碰撞评估或检查,这些处理器执行来自存储的处理器可执行指令集的处理器可执行指令,以执行算法。可以使用一组专用硬件电路(例如,以现场可编程门阵列(fpga)、专用集成电路(asic)实现的碰撞检查电路)“在硬件中”执行虚拟碰撞评估或检查。例如,这样的电路可以表示在两个状态之间的相应运动或转变期间由机器人/机器人附件或其一部分扫过的体积(即,扫掠体积)。例如,电
路可以产生指示运动是否会与任何障碍物碰撞的布尔评估(boolean evaluation),其中至少一些障碍物表示由在共享工作空间中操作的其他机器人执行运动或转变时扫过的体积。
134.示例
135.示例1、一种用于促进机器人操作的基于处理器的系统的操作的方法,方法包括:
136.针对多个候选传感器姿态中的每个候选传感器姿态,执行针对在操作环境中的至少第一机器人通过第一机器人的多个机器人姿态中的每个机器人姿态移动时第一机器人的遮挡效果的遮挡评估;以及
137.至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第一传感器的姿态。
138.示例2、根据示例1所述的方法,其中,传感器是相机,该相机具有针对候选传感器姿态中的每个候选传感器姿态的操作环境的相应视场,并且至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第一传感器的姿态包括:至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第一相机的姿态。
139.示例3、根据示例1所述的方法,其中,执行针对在操作环境中的至少第一机器人通过第一机器人的多个机器人姿态中的每个机器人姿态移动时第一机器人的遮挡效果的遮挡评估包括:针对来自由第一机器人能实现的姿态的c空间路线图的多个机器人姿态中的每个机器人姿态执行遮挡评估。
140.示例4、根据示例1所述的方法,其中,执行针对在操作环境中的至少第一机器人通过第一机器人的多个机器人姿态中的每个机器人姿态移动时第一机器人的遮挡效果的遮挡评估包括:至少部分地基于将由第一机器人执行的任务,针对选自由第一机器人能实现的姿态的c空间路线图的多个机器人姿态中的每个机器人姿态执行遮挡评估。
141.示例5、根据示例1所述的方法,其中,执行针对在操作环境中的至少第一机器人通过第一机器人的多个机器人姿态中的每个机器人姿态移动时第一机器人的遮挡效果的遮挡评估包括:针对从由第一机器人可实现的姿态的路线图采样的多个机器人姿态的每个机器人姿态执行遮挡评估,呈图形形式的路线图包括表示机器人的c空间中的各机器人姿态的节点集合和耦合节点对的多个边,并且该多个边表示由相应边耦合的节点表示的相应机器人姿态之间的转变。
142.示例6、根据示例1所述的方法,其中,执行针对在操作环境中的至少第一机器人通过第一机器人的多个机器人姿态中的每个机器人姿态移动时第一机器人的遮挡效果的遮挡评估包括:执行针对在第一机器人和操作环境中的至少第二机器人通过第一机器人和第二机器人的相应多个机器人姿态中的每个机器人姿态移动时第一机器人和第二机器人的遮挡效果的遮挡评估。
143.示例7、根据示例6所述的方法,其中,执行针对在第一机器人和操作环境中的至少第二机器人通过第一机器人和第二机器人的相应多个机器人姿态中的每个机器人姿态移动时第一机器人和第二机器人的遮挡效果的遮挡评估包括:基于表示第一机器人的多个机器人姿态和第二机器人的多个机器人姿态的机器人姿态集合执行遮挡评估。
144.示例8、根据示例1所述的方法,还包括:
145.针对候选传感器姿态中的每个候选传感器姿态,确定候选传感器姿态的相应成本
值,所述相应成本值表示遮挡。
146.示例9、根据示例1所述的方法,还包括:
147.在针对工作空间中的每个体素执行的外部迭代循环中,
148.确定工作空间中的至少其他体素的相应遮挡值,其中,遮挡值表示外部迭代循环的当前迭代的体素是否被对象相对于一个或更多个传感器遮挡,该对象被定位成至少部分地占据正在被确定遮挡值的相应体素;以及
149.聚合候选传感器姿态的成本。
150.示例10、根据示例9所述的方法,还包括:
151.在确定体素的相应遮挡值之前,
152.针对每个候选传感器姿态,初始化候选传感器姿态的相应成本值;
153.在外部迭代循环中,针对工作空间中的所有体素,初始化体素的相应遮挡值。
154.示例11、根据示例9所述的方法,其中,确定外部迭代循环的当前迭代的体素的相应遮挡值包括:
155.在内部迭代循环中,基于已经被定位的任何传感器确定外部迭代循环的当前迭代的体素是否被遮挡;
156.在内部迭代循环中,如果外部迭代循环的当前迭代的体素被遮挡,则使呈机器人姿态之一的机器人形式的对象占据的任何体素的相应遮挡值增加,其中,该对象在相应机器人姿态下遮挡外部迭代循环的当前迭代的体素。
157.示例12、根据示例9所述的方法,其中,聚合候选传感器姿态的成本包括:
158.针对每个候选传感器姿态,对传感器与体素遮挡正在被评估的外部迭代循环的当前迭代的体素之间的每个体素的遮挡值求总和;以及
159.将总和添加到相应候选传感器姿态的累积成本总和中。
160.示例13、根据示例1至12中任一项所述的方法,其中,至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第一传感器的姿态包括:相对于候选传感器姿态中的其他候选传感器姿态的相关联成本基于该候选传感器姿态的相关联成本来选择该候选传感器姿态。
161.示例14、根据示例1至12中任一项所述的方法,其中,至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第一传感器的姿态包括:选择相对于候选传感器姿态中的其他候选传感器姿态的相关联成本具有候选传感器姿态的最低相关联成本的候选传感器姿态。
162.示例15、根据示例1所述的方法,还包括:
163.在至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第一传感器的姿态之后,
164.针对多个候选传感器姿态中的每个候选传感器姿态,执行针对在操作环境中的至少第一机器人通过第一机器人的多个机器人姿态中的每个机器人姿态移动时至少第一机器人的遮挡效果的遮挡评估;以及
165.至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第二传感器的姿态。
166.示例16、根据示例15所述的方法,其中,执行针对在操作环境中的至少第一机器人
通过第一机器人的多个机器人姿态中的每个机器人姿态移动时第一机器人的遮挡效果的遮挡评估包括:执行还针对第一传感器按照由候选传感器姿态中的针对第一传感器所选择的一个候选传感器姿态所指定的被定位和定向的遮挡评估。
167.示例17、根据示例15所述的方法,其中,传感器是相机,并且所述方法还包括:
168.接收由相机中的处于与针对第一传感器所选择的传感器姿态对应的第一姿态的第一相机以及从相机中的处于与针对第二传感器所选择的传感器姿态对应的第二姿态的第二相机收集的传感器信息;以及
169.基于所接收的传感器信息针对至少第一机器人执行运动规划。
170.示例18、根据示例15所述的方法,还包括:
171.在至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第二传感器的姿态之后,
172.重复以下直到达到终止条件:针对多个候选传感器姿态中的每个候选传感器姿态,执行针对在操作环境中的至少第一机器人通过第一机器人的多个机器人姿态中的每个机器人姿态移动时至少第一机器人的遮挡效果的遮挡评估;以及
173.至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定附加传感器的姿态。
174.示例19、一种用于促进机器人操作的基于处理器的系统的操作的系统,所述系统包括:
175.至少一个处理器;
176.至少一个处理器可读介质,其通信地耦合到至少一个处理器并且存储处理器可执行指令,处理器可执行指令在由至少一个处理器执行时使至少一个处理器:
177.针对多个候选传感器姿态中的每个候选传感器姿态,执行针对在操作环境中的至少第一机器人通过第一机器人的多个机器人姿态中的每个机器人姿态移动时第一机器人的遮挡效果的遮挡评估;以及
178.至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第一传感器的姿态。
179.示例20、根据示例19所述的系统,其中,传感器是相机,所述相机具有针对候选传感器姿态中的每个候选传感器姿态的操作环境的相应视场。
180.示例21、根据示例19所述的系统,其中,为了执行遮挡评估,指令在被执行时使所述至少一个处理器针对来自由第一机器人能实现的姿态的c空间路线图的多个机器人姿态中的每个机器人姿态执行遮挡评估。
181.示例22、根据示例19所述的系统,其中,为了执行遮挡评估,指令在被执行时使所述至少一个处理器至少部分地基于将由第一机器人执行的任务,针对选自由第一机器人能实现的姿态的c空间路线图的多个机器人姿态中的每个机器人姿态执行遮挡评估。
182.示例23、根据示例19所述的系统,其中,为了执行遮挡评估,指令在被执行时使所述至少一个处理器针对从由第一机器人能实现的姿态的路线图采样的多个机器人姿态中的每个机器人姿态执行遮挡评估,呈图形形式的路线图包括表示机器人的c空间中的各机器人姿态的节点集合和耦合节点对的多个边,并且该多个边表示由相应边耦合的节点表示的相应机器人姿态之间的转变。
183.示例24、根据示例19所述的系统,其中,为了执行遮挡评估,指令在被执行时使所述至少一个处理器执行针对在第一机器人和操作环境中的至少第二机器人通过第一机器人和第二机器人的相应多个机器人姿态中的每个机器人姿态移动时第一机器人和第二机器人的遮挡效果的遮挡评估。
184.示例25、根据示例24所述的系统,其中,为了执行遮挡评估,指令在被执行时使所述至少一个处理器基于表示第一机器人的多个机器人姿态和第二机器人的多个机器人姿态的机器人姿态集合执行遮挡评估。
185.示例26、根据示例19所述的系统,其中,处理器可执行指令当被执行时,使所述至少一个处理器还:
186.针对候选传感器姿态中的每个候选传感器姿态,确定候选传感器姿态的相应成本值,所述相应成本值表示遮挡。
187.示例27、根据示例19所述的系统,其特征在于,处理器可执行指令当被执行时,使至少一个处理器还:
188.在针对工作空间中的每个体素执行的外部迭代循环中,
189.确定工作空间中的至少其他体素的相应遮挡值,其中,遮挡值表示外部迭代循环的当前迭代的体素是否被对象相对于一个或更多个传感器遮挡,所述对象被定位成至少部分地占据正在被确定遮挡值的相应体素;以及
190.聚合候选传感器姿态的成本。
191.示例28、根据示例27所述的系统,其中,处理器可执行指令当被执行时,使至少一个处理器还:
192.在确定体素的相应遮挡值之前,
193.针对每个候选传感器姿态,初始化候选传感器姿态的相应成本值;
194.在外部迭代循环中,针对工作空间中的所有体素,初始化体素的相应遮挡值。
195.示例29、根据示例28所述的系统,其中,为了确定外部迭代循环的当前迭代的体素的相应遮挡值,处理器可执行指令当被执行时,使至少一个处理器:
196.在内部迭代循环中,基于已经被定位的任何传感器确定外部迭代循环的当前迭代的体素是否被遮挡;
197.在内部迭代循环中,如果外部迭代循环的当前迭代的体素被遮挡,则使呈机器人姿态之一的机器人形式的对象占据的任何体素的相应遮挡值增加,其中,该对象在相应机器人姿态下遮挡外部迭代循环的当前迭代的体素。
198.示例30、根据示例27所述的系统,其中,为了聚合候选传感器姿态的成本,处理器可执行指令当被执行时,使至少一个处理器:
199.针对每个候选传感器姿态,对传感器与在外部迭代循环的当前迭代中遮挡正在被评估的外部迭代循环的当前迭代的体素之间的每个体素的遮挡值求总和;以及
200.将总和添加到相应候选传感器姿态的累积成本总和中。
201.示例31、根据示例19至30中任一项所述的系统,其中,为了至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第一传感器的姿态,处理器可执行指令当被执行时,使至少一个处理器:相对于候选传感器姿态中的其他候选传感器姿态的相关联成本基于该候选传感器姿态的相关联成本来选择该候选传感器姿态。
202.示例32、根据示例19至30中任一项所述的系统,其中,为了至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第一传感器的姿态,处理器可执行指令当被执行时,使至少一个处理器还:选择相对于候选传感器姿态中的其他候选传感器姿态的相关联成本具有候选传感器姿态的最低相关联成本的候选传感器姿态。
203.示例33、根据示例19所述的系统,其中,处理器可执行指令当被执行时,使至少一个处理器还:
204.在至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态以确定第一传感器的姿态之后,
205.针对多个候选传感器姿态中的每个候选传感器姿态,执行针对在操作环境中的至少第一机器人通过第一机器人的多个机器人姿态中的每个机器人姿态移动时第一机器人的遮挡效果的遮挡评估;以及
206.至少部分地基于对遮挡的评估来选择候选传感器姿态中的一个候选传感器姿态确定第二传感器的姿态。
207.示例34、根据示例33所述的系统,其中,为了执行遮挡评估,处理器可执行指令当被执行时,使至少一个处理器还:执行还针对第一传感器按照由候选传感器姿态中的针对第一传感器所选择的一个候选传感器姿态所指定的被定位和定向的遮挡评估。
208.示例35、根据示例33所述的系统,其中,传感器是相机,并且其中,处理器可执行指令当被执行时,使至少一个处理器还:
209.接收由相机中的处于与针对第一传感器所选择的传感器姿态对应的第一姿态的第一相机以及从相机中的处于与针对第二传感器所选择的传感器姿态对应的第二姿态的第二相机收集的传感器信息;以及
210.基于所接收的传感器信息针对至少第一机器人执行运动规划。
211.结论
212.前述详细描述已经通过使用框图、示意图和示例阐述了设备和/或过程的各种实施例。只要这样的框图、示意图和示例包含一个或更多个功能和/或操作,本领域技术人员将理解,可以通过各种硬件、软件、固件或几乎任何它们的组合单独地和/或共同地实现这样的框图、流程图或示例中的每个功能和/或操作。在一个实施例中,本主题可以通过布尔电路、专用集成电路(asic)和/或fpga来实现。然而,本领域技术人员将认识到,本文公开的实施例全部或部分地可以在标准集成电路中以各种不同的实施方式被实现为在一个或更多个计算机上运行的一个或更多个计算机程序(例如,作为在一个或更多个计算机系统上运行的一个或更多个程序)、被实现为在一个或更多个控制器(例如,微控制器)上运行的一个或更多个程序、被实现为在一个或更多个处理器(例如,微处理器)上运行的一个或更多个程序、被实现为固件或被实现为其几乎任何组合,并且根据本公开,设计电路和/或编写软件和/或固件的代码将在本领域普通技术人员的技能范围内。
213.本领域技术人员将认识到,本文阐述的许多方法或算法可以采用附加动作,可以省略一些动作,和/或可以以与指定不同的顺序执行动作。
214.此外,本领域的技术人员将理解,本文所教导的机制能够以硬件实现,例如以一个或更多个fpga或asic实现。
215.可以组合上述各种实施例以提供其他实施例。本说明书中提及和/或在申请数据
表中列出的所有共同转让的美国专利申请公布、美国专利申请、外国专利和外国专利申请通过引用整体并入本文,包括但不限于于2017年6月9日提交的题为“motion planning for autonomous vehicles and reconfigurable motion planning processors”的国际专利申请号pct/us2017/036880;于2016年1月5日提交的题为“specialized robot motion planning hardware and methods of making and using same”的国际专利申请公布号wo 2016/122840;于2018年1月12日提交的题为“apparatus,method and article to facilitate motion planning of an autonomous vehicle in an environment having dynamic objects”的美国专利申请号62/616,783;于2018年2月6日提交的题为“motion planning of a robot storing adiscretized environment on one or more processors and improved operation of same”的美国专利申请号62/626,939;于2019年6月3日提交的题为“apparatus,methods and articles to facilitate motion planning in environments having dynamic obstacles”的美国专利申请号62/856,548;于2019年6月24日提交的题为“motion planning for multiple robots in shared workspace”的美国专利申请号62/865,431;于2020年1月22日提交的题为“configuration of robots in multi-robot operational environment”的美国专利申请号62/964,405;以及于2020年4月14日提交的题为“configuration of robot operational environment including layout of sensors”的美国专利申请号63/009,583。可以根据以上详细描述对实施例进行这些和其他改变。一般而言,在所附权利要求中,所使用的术语不应被解释为将权利要求限制为在说明书和权利要求中公开的具体实施例,而应被解释为包括所有可能的实施例以及这样的权利要求所赋予的等同物的全部范围。因此,权利要求不受本公开的限制。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1