用于机器人控制的方法和装置与流程

文档序号:20085211发布日期:2020-03-13 06:10阅读:168来源:国知局
用于机器人控制的方法和装置与流程

本公开大体涉及机器人,并且更具体地涉及用于机器人控制的方法和装置。



背景技术:

对象识别系统正被部署在一系列应用程序和相应的设备中。诸如协作机器人之类的设备可以使用对象识别系统来执行与装配或制造相关的任务。对象识别系统可以将机器人臂和末端执行器导引到指定位置以执行装配任务。但是,对象识别系统会增加装配任务的成本、复杂性和延迟。



技术实现要素:

公开了用于机器人控制的系统、方法、装置和制品。

本文公开的示例装置包括命令生成器,用于:指示/指令机器人将末端执行器从临时(staging)位置移动到估计的任务前(pre-task)位置,以基于所述机器人的第一姿势执行第一任务,所述第一姿势基于模型;当所述机器人要移动到第二实际的任务前位置时,将所述机器人调整到第一实际的任务前位置以执行所述第一任务,所述第一实际的任务前位置接近所述估计的任务前位置;以及基于校正因子引导所述机器人执行第二任务,所述校正因子通过以下方式确定:确定所述机器人的第二姿势,所述第二姿势对应于在任务后(post-task)位置处与所述机器人相关联的位置信息,所述任务后位置对应于在执行所述第一任务后与所述机器人相关联的位置信息并且基于所述第一姿势和所述第二姿势计算所述校正因子。

一种包含指令的非暂时性计算机可读存储介质,当所述指令被执行时使得机器至少用于:指示机器人将末端执行器从临时位置移动到估计的任务前位置,以基于所述机器人的第一姿势执行第一任务,所述第一姿势基于模型;当所述机器人要移动到第二实际的任务前位置时,将所述机器人调整到第一实际的任务前位置以执行所述第一任务,所述第一实际的任务前位置接近所述估计的任务前位置;在执行所述第一任务后,确定所述机器人的第二姿势,所述第二姿势对应于在任务后位置处与所述机器人相关联的位置信息,所述任务后位置对应于在执行所述第一任务后所述机器人的位置;基于所述第一姿势和所述第二姿势计算校正因子;并且基于所述校正因子引导所述机器人执行第二任务。

本文公开的示例方法包括:指示机器人将末端执行器从第一位置移动到第二位置,以基于所述机器人的第一姿势执行第一任务,所述第一姿势基于模型;响应于所述机器人移动到第三位置,将所述机器人调整到第四位置以执行所述第一任务,所述第四位置接近所述第二位置;响应于执行所述第一任务,确定所述机器人的第二姿势,所述第二姿势对应于在第五位置处与所述机器人相关联的位置信息,所述第五位置对应于在执行所述第一任务后所述机器人的位置;基于所述第一姿势和所述第二姿势计算校正因子;以及基于所述校正因子引导所述机器人执行第二任务。

附图说明

图1a和图1b描绘了控制示例机器人以在示例组件上执行装配任务的示例机器人管理器。

图2是图1a和图1b的示例机器人管理器的示例实施方式的框图。

图3是表示可以被执行以实施图1a-图2的示例机器人管理器以通过使用图1a-图1b的示例机器人执行装配任务的示例机器可读指令的流程图。

图4是表示可以由图1a-图2的示例机器人管理器使用以基于校正因子更新模型的示例机器可读指令的流程图。

图5是表示可以被执行以实施图1a-图2的示例机器人管理器以通过使用图1a-图1b的示例机器人执行装配任务的示例机器可读指令的另一流程图。

图6是被构造为执行图3-图5的示例机器可读指令以实施图1a-图2的示例机器人管理器的示例处理平台的框图。

这些附图不是成比例的。通常,在整个附图和随附的书面描述中将使用相同的附图标记来表示相同或相似的部分。

具体实施方式

用于工业装配或制造操作的典型机器人,例如协作机器人,利用和/或依赖外部传感器或附加传感器到与机器人的末端执行器相关联的主传感器以进行定位。协作机器人(也称为协同机器人)是用于在共享工作空间中与人类进行物理交互的机器。在一些情况下,协同机器人被编程和/或以其他方式配置成自主地或在有限的引导下操作。这些机器人可用于执行包括一个或多个装配位置处的一个或多个装配操作或任务的工作流程。例如,机器人可用于执行在物体表面的位置或方位处在物体表面上联接和/或以其他方式安装紧固件的装配任务。

定位是指机器人确定机器人在基于计算机的模型环境中的位置,该模型环境对应于机器人的物理环境。例如,机器人可以使用来自诸如编码器的主传感器的反馈来通过参考基于计算机的模型来确定机器人在物理环境中的位置、位置的变化等。在一些情况下,机器人包括一个或多个辅助传感器系统以辅助定位确定工作。例如,机器人可以使用另一个编码器(例如,光学编码器)、相机(例如,基于相机的传感器系统)、激光器等,与主传感器协调以确定机器人的位置。

一些已知的机器人使用预先生成的轨迹执行顺序装配任务,其中每个轨迹包括起始位置和结束位置。在一些情况下,由于机器人定位的不确定性满足不确定性阈值,已知机器人可能无法成功完成装配任务。已知机器人可以确定装配任务不能成功完成,因为实际机器人姿势(例如,实际机器人位置)与预期机器人姿势(例如,预期机器人位置)之间的差异大于不确定性阈值。例如,由于已知的机器人不能可靠地确定机器人相对于物理环境的位置信息,因此已知的机器人可能导致机器人的末端执行器与组件的碰撞。

如本文所使用的,术语“姿势”指的是包括相对于(定义的)坐标系的对象(例如,末端执行器、机器人的一个或多个接头等)的取向或位置中的至少一个的方位信息。在一些情况下,借助于旋转变换和/或平移变换来描述姿势,该旋转变换和/或平移变换可以将对象从参考姿势或估计的姿势带到实际姿势或观察到的姿势。在一些情况下,旋转和/或平移变换信息可以由一个或多个旋转矩阵、平移矩阵等表示。在一些情况下,旋转和/或平移变换信息可以由一个或多个旋转四元数、平移四元数等表示。在一些情况下,机器人可以通过遵循链接和/或以其他方式将第一姿势连接到第二姿势的轨迹、沿着轨迹移动到一个或多个航路点等从第一姿势移动到第二姿势。例如,轨迹可以指机器人的末端执行器的运动路径,以包括各种机器人臂部分的运动、角度、速度等,和/或其组合。

在一些情况下,已知的机器人可以使用辅助传感器系统来将实际机器人姿势调整到预期的机器人姿势,以便于完成装配任务。例如,已知的机器人可能打算移动到物理环境中的第一位置,其中第一位置基于模型,但是由于机器人在物理环境中相比于机器人在模型环境中的尺寸差异、公差叠加等而移动到物理环境中的第二位置。在这样的示例中,第一位置处的第一姿势是估计的机器人姿势,而第二位置处的第二姿势是实际的机器人姿势。已知的机器人可以使用辅助传感器系统将机器人从第二位置移动到第一位置,以通过计算校正因子或定位偏移来执行装配任务。已知的机器人可以在执行每个装配任务之后计算校正因子并执行这样的调整,其中计算的校正因子在一个装配任务到下一个装配任务是不同的。

然而,辅助传感器系统增加了这些已知机器人的额外材料成本和维护成本。辅助传感器系统还增加了计算成本和开发成本,因为在编程这些已知机器人以结合与传感器相关联的系统时增加了复杂性。由于获得传感器数据、处理传感器数据以及基于处理的传感器数据生成定位信息所需的执行时间增加,所以使用和/或依赖于辅助传感器系统来执行操作,已知机器人受到不利影响。

本文公开的示例包括用于机器人控制的示例机器人管理器,其通过在机器人执行任务时确定并将定位偏移应用于机器人轨迹。在一些公开的示例中,机器人管理器生成基于计算机的模型,该模型包括与机器人相关联的估计姿势、轨迹等,其顺序地执行包括多个装配任务(例如,10个装配任务、100个装配任务、1000个装配任务等)的工作流程,无需用户或第三方干预。在一些公开的示例中,在机器人启动和/或以其他方式执行工作流程之前,用户将机器人导引到与包括在工作流程中的第一装配任务相关联的第一装配位置(例如,第一任务前位置、第一预操纵位置等)。在将机器人导引到第一装配位置之后,用户验证机器人处于准确位置以执行第一装配任务。在一些公开的示例中,机器人管理器在第一任务前位置计算机器人的第一实际的任务前姿势。第一实际的任务前姿势可以指的是在执行诸如将轴环扭转到螺栓上的装配任务之前机器人的位置。

当用户验证位置时,机器人管理器指示机器人执行第一装配任务。当机器人执行第一装配任务时,机器人移动到任务后位置(例如,操纵后位置),并且机器人管理器计算机器人的第一实际的任务后姿势。第一实际的任务后姿势可以指在执行例如将轴环扭转到螺栓上的装配任务之后机器人的位置。机器人管理器通过从监视机器人的末端执行器的传感器获得测量值来计算机器人的第一实际的任务前姿势和第一实际的任务后姿势。机器人管理器通过将(1)第一实际的任务前姿势与第一估计的任务前姿势或(2)第一实际的任务后姿势与第一估计的任务后姿势进行比较中的至少一个来计算定位偏移,其中第一估计的任务前姿势和第一估计的任务后姿势由基于计算机的模型确定。例如,可以通过由一个或多个旋转四元数、平移四元数等表示的旋转和/或平移变换信息来定义定位偏移。在一些示例中,定位偏移对应于定位偏移姿势,其中机器人管理器100确定从当前估计姿势到定位偏移姿势的轨迹。

在一些公开的示例中,机器人管理器基于定位偏移执行多个装配任务,而无需进一步的用户干预。例如,机器人管理器可以基于定位偏移指示机器人执行第二装配任务、第三装配任务等。机器人管理器可以指示机器人移动到与执行第二装配任务相关联的第二估计的任务前姿势。响应于移动到第二估计的任务前姿势的指令,机器人可以沿着第一轨迹移动以从原姿势移动到第二实际的任务前姿势,其中第一轨迹由基于计算机的模型来确定。当机器人完成第一轨迹时,机器人管理器将定位偏移应用于第一轨迹以调整机器人的位置。例如,机器人管理器可以指示机器人沿第二轨迹移动以从第二实际的任务前姿势移动到第三实际的任务前姿势,其中通过将定位偏移应用于第一轨迹来确定第二轨迹。并且第三实际的任务前姿势接近第二估计的任务前姿势。在这样的示例中,机器人管理器通过使用定位偏移而无需用户干预或辅助传感器系统来计算附加的定位偏移,从而促进第二装配任务和后续装配任务的执行。

图1a描绘了示例机器人管理器100,其控制示例机器人102以在示例环境106中的示例组件104上执行装配任务。在图1a中,机器人管理器100在机器人102的外部。附加地或替代地,机器人管理器100可以包括在机器人102中。在图1a中,机器人102是包括示例性末端执行器108的阻抗控制机器人(例如,阻抗控制协作机器人)。图1a的机器人102包括一个或多个致动器110(例如,电动机、液压泵、气动活塞、螺线管、阀等),其可以使用一个或多个处理器致动和/或以其他方式控制。一个或多个处理器可以包括在机器人102中和/或(通信地)耦合到机器人102。替代地,机器人102可以是能够在有或没有辅助或来自操作员(例如,维护人员、技术人员、用户等)的输入的情况下执行装配任务的任何其他类型的机器。在图1a中,环境106是包括机器人102、组件104等的物理环境。例如,环境106可以对应于装配厂、制造设施等。

在图1a中,末端执行器108是拧紧扳手工具(例如,电动拧紧扳手、气动扳手等)或扭矩扳手。例如,拧紧扳手工具可用于将部件、装配物品等彼此安装和/或以其他方式联接部件、装配物品等。替代地,末端执行器108可以是任何其他类型的物品操纵器,例如夹具(例如,冲击式夹具、入侵式夹具、收缩夹具、连续夹具等)、涂料喷枪、焊头等。图1a的机器人102包括与末端执行器108相关联的一个或多个示例性传感器112。在图1a中,传感器112是力-扭矩传感器。例如,传感器112可以沿着末端执行器108的一个或多个轴线(例如,x轴线、y轴线、z轴线等)测量力和/或扭矩,并且/或者更一般地,与装配物品相关联。附加地或替代地,传感器112可以是编码器。替代地,机器人102可以包括诸如相机、编码器等的传感器。例如,图1a的机器人102可以包括通信地耦合到机器人管理器100的基于相机的系统(例如,包括一个或多个相机、视频相机等的系统),以在执行任务时帮助机器人102移动、定向等。例如,机器人102可以包括一个或多个传感器112,诸如相机、编码器、力-扭矩传感器等,和/或其组合。

在图1a中,机器人102被编程(例如,一个或多个处理器执行机器可读指令)和/或以其他方式被配置为执行与组件104相关联的一个或多个装配任务。图1a的组件104是涡轮发动机的空气进气装置。例如,组件104可以是飞行器发动机入口。替代地,组件104可以是任何其他类型的部件、装置、结构等。

图1a的机器人102被配置为执行与组件104相关联的一个或多个装配任务。在图1a中,机器人102被配置为将包括示例性轴环114的第一装配项目安装和/或以其他方式连接到包括示例性螺栓116的第二装配项目。替代地,机器人102可以将任何其他类型的紧固件联接到组件104或者在组件104上执行任何其他操纵任务。在图1a中,机器人102处于第一位置(例如,原位置、起始位置等)。

在图1a中,机器人102可以执行装配任务,包括行进到第一位置、移动到第二位置(例如,装配物品收集位置、临时位置/阶段位置等)以获得待处理的轴环114中的一个、行进到接近待处理的螺栓116中的一个的第三位置(例如,预操纵位置、任务前位置等)并且在将轴环114联接到螺栓116之后移动到第四位置(例如,操纵后位置、任务后位置等)。例如,任务前位置可以对应于机器人102靠近待处理螺栓116但在将螺栓116联接到待处理的轴环114之前的位置。任务后位置可以对应于机器人102在将螺栓116联接到轴环114后的位置。响应于将轴环114联接到螺栓116,机器人102可以移动和/或以其他方式返回到第一位置以执行另一装配任务。

图1b描绘了图1a的机器人管理器100,其控制图1a的机器人102以执行如上结合图1a所述的装配任务。例如,机器人管理器100可以引导和/或以其他方式指示机器人102从第一位置(如图1a所示)移动到第二位置,同时移动以获得轴环114。在图1b中,机器人102处于第三位置。例如,机器人102处于靠近待处理的螺栓116的任务前位置。任务前位置可以对应于预操纵或预扭矩位置,或机器人102在将轴环/螺母114扭转到螺栓116之前移动到的位置。

在操作中,机器人管理器100获得包括将由机器人102执行的一个或多个装配任务的工作流程。例如,工作流程可包括一系列装配任务(例如,10个装配任务、100个装配任务、1000个装配任务等),其与一个或多个示例性基于计算机的模型118相关联。基于计算机的模型118可以包括机器人102、组件104、轴环/螺母114、螺栓等的计算机辅助设计(cad)模型。cad模型可以是二维(2-d)模型、三维(3-d)模型等。例如,模型118可以包括机器人102、组件104等在对应于机器人102的物理环境106的模型环境中的位置信息(例如,姿势)。

在一些示例中,机器人管理器100确定工作流程包括机器人102在与靠近螺栓116的位置相对应的装配位置处将轴环114联接到螺栓116。另外或替代地,工作流程可包括不同的装配任务。机器人管理器100可以确定工作流程包括装配任务序列,包括与在第一装配位置处将轴环114中的第一个联接到螺栓116中的第一个相关联的第一装配任务、与在第二装配位置处等将轴环114中的第二个联接到螺栓116中的第二个相关联的第二装配任务,其中第一装配位置紧邻第二装配位置和/或以其他方式接近第二装配位置,第一装配位置不同于第二装配位置。替代地,第一装配位置可以不在第二装配位置附近和/或以其他方式接近第二装配位置。

在操作中,机器人管理器100确定包括在一个或多个模型118中的装配位置,该模型与螺栓116相关联,和/或更一般地与组件104相关联。例如,机器人管理器100可以确定估计的任务前位置、估计的任务后位置等。机器人管理器100基于装配位置确定包括一个或多个接头状态、航路点等的轨迹(例如,机器人轨迹)。在一些示例中,接头状态可以包括与末端执行器108的位置、接头(例如,机器人102的两个或更多个结构部件的联接点)和/或更一般地机器人102相关联的一个或多个角度、一个或多个坐标等中的至少一个。例如,当机器人102处于原位置时机器人102的接头状态可以对应于末端执行器108相对于机器人102的基部的角度(以度、弧度等为单位)。

在一些示例中,机器人管理器100确定对应于将机器人102从原位置移动到临时位置,从临时位置到估计的任务前位置等的轨迹。在这样的示例中,机器人管理器100可以确定与原位置相关联的第一接头状态,与临时位置相关联的第二接头状态等。机器人管理器100可以基于机器人102的估计的任务前姿势生成命令并将其发送到机器人102以将机器人从原位置移动到估计的任务前位置。例如,估计的任务前姿势可以对应于在沿着轨迹从原位置移动到由模型118定义和/或以其他方式包括在模型118中的估计的任务前位置之后由模型118定义和/或以其他方式表示的机器人102的姿势。

在操作中,在机器人管理器100启动和/或以其他方式执行工作流程之前,用户可以沿着第一轨迹从第一临时位置引导机器人102到第一任务前位置以执行第一装配任务。第一临时位置可以对应于机器人102在获得轴环114中的第一个时的位置。第一任务前位置可以对应于机器人102的第一实际的任务前位置。当用户移动机器人102到第一任务前位置时,用户对准并验证机器人102的第一任务前位置以执行第一装配任务。当用户验证机器人102的第一任务前位置时,机器人管理器100计算第一实际的任务前姿势。在计算第一实际的任务前姿势之后,机器人管理器100指示机器人102执行第一装配任务。当机器人102在执行第一装配任务之后到达实际的任务后位置时,机器人管理器100计算第一实际的任务后姿势。机器人管理器100通过将(1)第一实际的任务前姿势与第一估计的任务前姿势或(2)第一实际的任务后姿势与第一估计的任务后姿势进行比较中的至少一个来计算定位偏移,其中第一估计的任务前姿势和第一估计的任务后姿势基于模型118。

在操作中,机器人102使用由机器人管理器100确定的定位偏移来执行工作流程的其余部分,而无需用户或其他第三方协助或干预。例如,机器人102可以通过使用定位偏移来执行第二装配任务、第三装配任务等。例如,机器人管理器100可以指示机器人102沿着第二轨迹从原位置移动到第二临时位置到第二估计的任务前位置,这进而使机器人102移动到与第二估计的任务前位置不同的第二实际的任务前位置。在这样的示例中,机器人管理器100基于定位偏移计算要附加到第二轨迹的第三轨迹。例如,在机器人102完成第二轨迹之后,机器人管理器100可以指示机器人102沿着第三轨迹从第二实际的任务前位置移动到第三估计的任务前位置,这进而导致机器人102移动到第三实际的任务前位置,其中第二和第三实际的任务前位置之间的差异对应于定位偏移。当机器人102移动到第三实际的任务前位置时,机器人102执行第二装配任务。机器人102以类似的方式在工作流程中执行附加的装配任务。在一些示例中,机器人管理器100基于定位偏移更新模型118。例如,机器人管理器100可以更新模型118以调整与未处理或尚待处理的装配任务(例如第三装配任务、第四装配任务等)相关联的姿势。

在一些示例中,机器人102行进和/或以其他方式导航到装配位置并且执行装配任务。在其他示例中,机器人102不能基于满足阈值的定位的不确定性(例如,定位不确定性阈值)来执行装配任务。定位不确定性可以对应于一个或多个概率函数的输出,该概率函数基于沿着机器人轨迹的一个或多个航路点处的位置不确定性来确定机器人102是否不能执行装配任务。位置不确定性可以指通过传感器112的测量,机器人102的经验证的接头状态等部分或全部确定的估计姿势和实际姿势的概率相关性。例如,机器人102可以确定在装配位置执行装配任务将基于确定定位不确定性而产生可能损坏机器人102、轴环114、螺栓116等的碰撞。在其他示例中,机器人102由于使末端执行器108与螺栓116、组件104等碰撞而不能执行装配任务。在一些示例中,响应于定位不确定性满足阈值,机器人管理器100计算和/或以其他方式确定定位偏移(例如,定位调整、校正因子等)。

图2是图1a和图1b的机器人管理器100的示例性实施方式的框图。机器人管理器100便于在执行装配任务时图1a-图1b的机器人102的操作。机器人管理器100生成命令并将命令发送到机器人102以基于包括从模型118确定的接头状态、航路点等的轨迹将机器人102引导到一个或多个位置。在一些示例中,当用户将机器人102引导到验证的实际任务前位置时,机器人管理器100确定校正因子。在其他示例中,当与装配任务相关联的定位不确定性满足阈值时,机器人管理器100确定校正因子。机器人管理器100基于校正因子更新模型118(如下结合模型处理器220所述),以便于后续装配任务的操作。在图2图示的示例中,机器人管理器100包括示例工作流程导向器210、示例模型处理器220、示例姿势引擎230、示例命令生成器240和示例数据库250。

在图2图示的示例中,机器人管理器100包括工作流程导向器210以获得包括将由机器人102执行的一个或多个装配任务的工作流程。在一些示例中,工作流程导向器210从示例网络260获得工作流程。图2图示的示例的网络260是互联网。然而,网络260可以使用任何合适的有线和/或无线网络来实现,包括例如一个或多个数据总线、一个或多个局域网(lan)、一个或多个无线lan、一个或多个过程控制网络、一个或多个蜂窝网络、一个或多个私人网络、一个或多个公共网络等。在一些示例中,网络260使机器人管理器100能够与耦合到网络260的外部计算设备(例如,数据库、服务器等)通信。

在一些示例中,工作流程导向器210包括用于导入与工作流程相关联的模型118的器件。例如,工作流程导向器210可以获得与机器人102相关联的第一cad模型,与组件104相关联的第二cad模型,与机器人102和/或组件104的环境相关联的第三cad模型等。工作流程导向器210可以将模型118中的两个或更多个合成和/或以其他方式组合成单个模型。

在一些示例中,工作流程导向器210包括用于确定与工作流程相关联的操作的顺序或序列的器件。例如,工作流程导向器210可以确定包括与将轴环114中的第一个联接到图1a-图1b的螺栓116中的第一个相关联的第一装配任务,接下来是与将轴环114中的第二个联接到螺栓116中的第二个相关联的第二装配任务的序列。在其他示例中,工作流程导向器210可以确定不存在要由其机器人102执行的附加装配任务。

在图2图示的示例中,机器人管理器100包括模型处理器220,以基于模型118协调和/或以其他方式促进机器人102的移动。在一些示例中,模型处理器220基于模型118确定装配位置,诸如估计的任务前位置、估计的任务后位置等。例如,模型处理器220可以确定与建模环境(例如,模型空间、cad环境等)中的估计的任务前位置相关联的坐标。在其他示例中,模型处理器220可以确定与机器人102的原位置、一个或多个临时位置、轴环114中的一个或多个、螺栓116中的一个或多个等,或者与图1a-图1b的机器人102和/或组件104相关联的任何其他部件或对象的位置相关联的坐标。

在一些示例中,模型处理器220包括用于确定与装配任务相关联的轨迹(例如,机器人轨迹)的器件。例如,模型处理器220可以识别包括在轨迹中的一个或多个接头状态、航路点等,该轨迹可以用于将机器人102从原位置、临时位置等移动到任务前位置。在一些示例中,机器人102可以通过一个以上的轨迹满足对装配物品(例如,轴环114)的适当操纵。例如,模型处理器220可以选择要处理的第一装配任务,其包括操纵第一装配物品(例如,轴环114中的第一个)。响应于选择第一装配任务,模型处理器220可以生成轨迹集合,其包括与第一装配任务相关联的一个或多个轨迹。

在一些示例中,模型处理器220包括用于通过确定所识别的轨迹具有接近先前处理的装配物品的任务后状态的目标状态来从生成的轨迹集合识别一个轨迹以执行第一装配任务的器件。例如,模型处理器220可以通过确定紧接先前的装配任务的任务后位置处的机器人102的姿势可以产生比使用来自若干先任务前之前的机器人102的姿势更可靠的轨迹来识别轨迹。在一些示例中,目标状态指的是具有期望属性的装配物品的状态,诸如期望位置、安装时的期望扭矩值等。例如,轴环114中的一个的目标状态可以对应于是在期望位置和/或期望扭矩处联接到螺栓116中的一个。例如,期望位置可以基于模型118中的螺栓116的位置。响应于识别轨迹,模型处理器220生成与轨迹相关联的接头状态。例如,每个接头状态可以对应于航路点,机器人102在航路点处的属性等。

在一些示例中,模型处理器220包括基于基础事实(groundtruth)确定估计的机器人姿势的器件,其中基础事实对应于机器人102可用的最准确的测量。模型处理器220可以使用模型118作为基础事实用于确定估计的机器人姿势(例如,估计的任务前姿势、估计的任务后姿势等)。模型处理器220可以通过使用轨迹移动机器人102的模拟计算模型118中的坐标来确定估计的机器人姿势。例如,模型处理器220可以使用轨迹模拟机器人102从原位置移动到与螺栓116中的第一个相关联的估计的任务前位置。当机器人102在模拟中沿着轨迹移动时,模型处理器220可以通过确定机器人102的坐标来识别原位置、估计的任务前位置等的坐标。结果,模型处理器220可以通过在使用模型118作为基础事实模拟轨迹时识别末端执行器108和/或机器人102的坐标来确定末端执行器108和/或机器人102的估计姿势。

在一些示例中,模型处理器220包括基于校正因子更新模型118的器件。例如,模型处理器220可以通过使用校正因子生成轨迹集合来更新模型118,该校正因子可以附加到与在工作流程中执行装配任务相关联的轨迹。例如,模型处理器220可以生成第一轨迹集合(第一组轨迹),包括在第一装配任务期间机器人102将用于从原位置移动到第一临时位置、到第一估计的任务前位置等,这进而可以使机器人102移动到第一实际的任务前位置的第一轨迹。模型处理器220可以生成第二轨迹集合(第二组轨迹),包括机器人102将用于从第一实际的任务前位置移动到第二实际的任务前位置的第二轨迹,其中从第一到第二实际的任务前位置的运动的差异基于校正因子。例如,机器人102可以在执行工作流程中的装配任务时使用第二轨迹集合附加到第一轨迹集合。在其他示例中,模型处理器220生成第三轨迹集合(第三组轨迹),其组合或合成第一轨迹集合和第二轨迹集合,其中第三轨迹集合替换第一轨迹集合和第二轨迹集合。

在一些示例中,模型处理器220包括用于在机器人102移动到估计的任务前位置时确定机器人102的实际姿势的器件。例如,模型处理器220可以通过将来自传感器112的测量应用到原位置或临时位置确定末端执行器108从原位置或临时位置的旋转、平移等的变化来确定机器人102的实际任务前姿势。模型处理器220可以通过将测量应用于原姿势、临时姿势等来计算一个或多个旋转四元数、一个或多个平移四元数等,和/或其组合来确定实际的任务前姿势。

在一些示例中,机器人管理器100在(成功)完成装配任务(例如,机器人102处于任务后位置)时确定机器人102的实际姿势。例如,当机器人102已经开始在任务前位置处将轴环114中的第一个联接到螺栓116中的第一个并且在完成联接后移动到任务后位置时,机器人管理器100可以确定机器人102的实际任务后姿势。在这样的示例中,当与联接相关联的扭矩测量满足扭矩阈值(例如,轴环114中的第一个已经触底到螺栓116中的第一个上)时,机器人管理器100在实际的任务后位置确定机器人102的实际的任务后姿势。机器人管理器100可以通过将来自传感器112的测量应用于原姿势、临时姿势等以生成一个或多个旋转四元数、一个或多个平移四元数等,和/或其组合来确定实际的任务后姿势。

在图2图示的示例中,机器人管理器100包括姿势引擎230以确定校正因子或定位偏移以便于机器人102执行装配任务。在一些示例中,姿势引擎230在用户移动机器人到验证的实际任务前位置、验证的实际任务后位置等之后确定校正因子。在一些示例中,姿势引擎230基于装配任务是否已经完成来确定校正因子102。例如,姿势引擎230可以确定与末端执行器108相关联的定位的不确定性满足定位不确定性阈值。在其他示例中,姿势引擎230可以确定与末端执行器108相关联的定位的不确定性不满足定位不确定性阈值。在这样的示例中,姿势引擎230可以在与末端执行器108和轴环114相关联的扭矩值满足操纵阈值(例如,扭矩阈值)时,确定已成功执行装配任务。例如,当扭矩值大于扭矩阈值并且因此扭矩值满足扭矩阈值时,姿势引擎230可以确定轴环114已经在螺栓116上达到最低点。

在一些示例中,姿势引擎230包括用于确定定位不确定性是否满足定位不确定性阈值的器件。例如,姿势引擎230可以确定对应于第一临时位置的机器人102的第一接头状态,并且确定机器人102在任务前位置的第二接头状态。在一些示例中,姿势引擎230确定第一接头状态的不确定性与第二接头状态之间的相关性满足定位不确定性阈值。例如,两个接头状态的不确定性之间的相关性可以根据欧几里德空间(euclideanspace)中两个接头状态之间的距离而增加。在这样的示例中,姿势引擎230可以确定与(后续)接头状态相关联的位置信息的可靠性随着与机器人102的当前或给定接头状态相关联的位置信息的相似性而增加。

在一些示例中,姿势引擎230包括用于确定在尚未成功执行装配任务时是否已确定校正因子的器件。例如,姿势引擎230可以向数据库250查询校正因子。在一些示例中,姿势引擎230可以基于从数据库250接收和/或以其他方式获得校正因子来确定已经确定了校正因子。在其他示例中,姿势引擎230可以基于响应于查询从数据库250接收和/或以其他方式获得空值、空索引等来确定校正因子尚未被确定。

在一些示例中,姿势引擎230包括用于确定校正因子的器件。例如,姿势引擎230可以计算与定位调整相对应的校正因子,如下面的等式(1)中所述:

correction_factor=robot_base_to_actual_pose*robot_base_to_expected_pose.inverse()

等式(1)

在上面的等式(1)的示例中,项“robot_base_to_actual_pose”对应于当机器人102完成装配任务时机器人102的姿势。例如,姿势引擎230可以在与操纵图1a-图1b的轴环114中的一个相关联的扭矩值满足扭矩阈值(例如,扭矩值大于扭矩阈值)时确定robot_base_to_actual_pose。在上面的等式(1)的示例中,项“robot_base_to_expected_pose”对应于基于模型118确定的机器人102的姿势。例如,项“robot_base_to_expected_pose”可以对应于当机器人102已经基于模型118完成装配任务时机器人102的预期姿势。

在上面的等式(1)的示例中,项“correction_factor”、项“robot_base_to_actual_pose”和项“robot_base_to_expected_pose”是矩阵。在一些示例中,矩阵包括一个或多个复数或一个或多个实数中的至少一者。例如,上面的等式(1)的示例中包括的一个或多个项可以对应于表示四元数的矩阵,该四元数包括一个或多个复数或一个或多个实数中的至少一者。在一些示例中,项中的一个或多个是齐次矩阵(例如,齐次变换矩阵、4×4齐次变换矩阵等)。例如,等式(1)的示例中包括的一个或多个项可以对应于包括与机器人102的位置信息相关联的一个或多个坐标的矩阵。例如,姿势引擎230可以通过乘以对应于项“robot_base_to_actual_pose”的与机器人102的第一姿势相关联的第一齐次矩阵和对应于“robot_base_to_expected_pose”的与机器人102的第二姿势相关联的第二齐次矩阵的逆矩阵(inverse)来确定校正因子。替代地,项可以是不同大小和/或类型的矩阵。

在图2图示的示例中,机器人管理器100包括命令生成器240以生成和/或以其他方式确定命令、指令等,并将命令、指令等发送到机器人102以控制机器人102。例如,命令生成器240生成执行装配任务的命令。例如,命令生成器240可以生成一个或多个命令以指示机器人102将轴环114中的一个与螺栓116中的一个联接。命令生成器240可以生成将机器人102从原位置移动到临时位置的第一命令,在临时位置获得轴环114中的一个的第二命令,从临时位置移动到任务前位置的第三命令等。在一些示例中,命令生成器240基于使用模型118的基础事实生成的估计的任务前位置生成命令。

在一些示例中,命令生成器240包括用于使用校正因子控制机器人102执行装配任务的器件。例如,命令生成器240可以将第一命令发送到控制机器人102的一个或多个处理器,以将机器人102移动到第一估计的任务前位置,进而将机器人102移动到第一实际的任务前位置。在一些示例中,命令生成器240可以向控制机器人102的一个或多个处理器发送第二命令以将机器人102移动到第二实际的任务前位置,其中第一实际的任务前位置与第二实际的任务前位置之间的差异由校正因子确定。在其他示例中,姿势引擎230基于确定与装配位置相关联的定位的不确定性满足定位不确定性阈值来使用校正因子。响应于定位不确定性满足定位不确定性阈值,命令生成器240可以生成第二命令以执行装配任务。

在一些示例中,命令生成器240包括当与装配位置相关联的定位的不确定性满足定位不确定性阈值时使用基于辅助的系统来控制机器人102的器件。例如,命令生成器240可以引导机器人102进入和/或以其他方式转换到辅助模式。例如,当机器人102基于轨迹移动到接近装配位置的位置时机器人102可以进入辅助模式,但是邻近位置和装配位置之间的差异产生满足定位不确定性阈值的定位不确定性。

在一些示例中,当处于辅助模式时,用户可以将机器人102的姿势从邻近位置调整到装配位置。在其他示例中,当处于辅助模式时,命令生成器240可以基于来自诸如基于相机的系统、编码器等的传感器或者任何其他类型的传感器的输出,指示机器人102从邻近位置移动到装配位置。例如,基于相机的系统可以识别邻近位置和装配位置之间的差异(例如,位置差异)。命令生成器240可以基于该差异生成将机器人102移动到装配位置的命令。

在一些示例中,命令生成器240包括用于在装配位置处操纵装配项目的器件。例如,命令生成器240可以生成命令以引导机器人102使用末端执行器108将轴环114在装配位置处联接到螺栓116。当传感器测量满足阈值时,命令生成器240可以在装配位置处停止操纵装配项目。例如,命令生成器240可以从传感器112获得扭矩测量值,将扭矩测量值与扭矩阈值进行比较,并且当扭矩测量值大于扭矩阈值时,产生命令以阻止末端执行器108将轴环114联接到螺栓116。当传感器测量值大于阈值(例如,传感器测量值满足阈值)时,命令生成器240可以引导姿势引擎230确定机器人102的与实际机器人姿势相对应的姿势。

在图2图示的示例中,机器人管理器100包括数据库250以记录和/或以其他方式存储数据。图2的数据库250包括图1a-图1b的(一个或多个)模型118。在一些示例中,数据库250记录和/或以其他方式存储与机器人102相关联的模型118中的一个或多个、一个或多个装配任务的序列、一个或多个轨迹、来自传感器112的测量值、一个或多个阈值、一个或多个校正因子、一个或多个姿势等。数据库250可以由易失性存储器(例如,同步动态随机存取存储器(sdram)、动态随机存取存储器(dram)、rambus动态随机访问存储器(rdram)等)和/或非易失性存储器(例如,闪存)实现。数据库250可以附加地或替代地由一个或多个双倍数据速率(ddr)存储器实现,例如ddr、ddr2、ddr3、移动ddr(mddr)等。数据库250可以附加地或替代地由一个或多个大容量存储设备诸如(一个或多个)硬盘驱动器、(一个或多个)光盘驱动器、(一个或多个)数字通用磁盘驱动器等来实现。

而在图2所示的示例中,数据库250被示为单个数据库,数据库250可以由任何数量和/或(一种或多种)类型的数据库实现。此外,存储在数据库250中的数据可以是任何数据格式,例如二进制数据、逗号分隔数据、模型数据(例如,cad数据)、制表符分隔数据、结构化查询语言(sql)结构等。在一些示例中,数据库250可以是基于云的,以使得能够通过经由网络260通信地耦合到机器人管理器100的一个或多个计算设备进行同步检索和更新。

而实现图1a-图1b的机器人管理器100的示例方式在图2中示出,图2中示出的元件、过程和/或设备中的一个或多个可以以任何其他方式组合、划分、重新布置、省略、消除和/或实现。此外,示例工作流程导向器210、示例模型处理器220、示例姿势引擎230、示例命令生成器240、示例数据库250和/或更一般地,图1a-图1b的示例性机器人管理器100可以通过硬件、软件、固件,和/或硬件、软件和/或固件的任何组合来实现。因此,例如,示例工作流程导向器210、示例模型处理器220、示例姿势引擎230、示例命令生成器240、示例数据库250和/或更一般地,示例机器人管理器100中的任何一个可以是由一个或多个模拟或数字电路、逻辑电路、可编程处理器、可编程控制器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、可编程逻辑器件(pld)和/或现场可编程逻辑器件(fpld)来实现。当阅读本专利的任何装置或系统权利要求以涵盖纯粹的软件和/或固件实现时,示例工作流程导向器210、示例模型处理器220、示例姿势引擎230、示例命令生成器240和/或示例数据库250中的至少一个在此明确定义为包括非暂时性计算机可读存储设备或存储盘,例如存储器、数字通用盘(dvd)、光盘(cd)、蓝光光盘等,包括软件和/或固件。此外,图1a-图1b的示例机器人管理器100可以包括一个或多个元件、过程和/或设备,作为图2中所示的那些元件、过程和/或设备的补充或替代,和/或可以包括图示的元件、过程和设备中的任何一个或全部。如本文所使用的,短语“通信”,包括其变体,包括通过一个或多个中间部件的直接通信和/或间接通信,并且不需要直接物理(例如,有线)通信和/或持续通信,而是另外,还包括以周期性间隔、调度间隔、非周期性间隔和/或一次性事件的选择性通信。

表示用于实现图1a-图2的机器人管理器100的示例硬件逻辑、机器可读指令、硬件实现的状态机和/或其任何组合的流程图在图3-图5中示出。机器可读指令可以是可执行程序或可执行程序的一部分,用于由计算机处理器执行,例如下面结合图6讨论的示例处理器平台600中示出的处理器612。该程序可以体现在存储在非暂时性计算机可读存储介质上的软件中,例如cd-rom、软盘、硬盘驱动器、dvd、蓝光光盘或与处理器612相关联的存储器,但是整个程序和/或其部分可以替代地由除处理器612之外的设备执行和/或体现在固件或专用硬件中。此外,尽管参考图3-图5中所示的流程图描述了示例程序,但是可以替代地使用实现示例机器人管理器100的许多其他方法。例如,可以改变框的执行顺序,和/或可以改变、消除或组合所描述的框中的一些框。附加地或替代地,任何框或所有框可以由一个或多个硬件电路(例如,离散和/或集成的模拟和/或数字电路、fpga、asic、比较器、运算放大器(op-amp)、逻辑电路等)来实现,这些硬件电路被构造成在不执行软件或固件的情况下执行相应的操作。

如上所述,图3-图5的示例过程可以使用存储在非暂时性计算机和/或机器可读介质(例如硬盘驱动器、闪存、只读存储器、压缩盘、数字通用盘、高速缓存、随机存取存储器和/或任何其他存储设备或存储盘,其中信息被存储任何持续时间(例如,延长的时间段、永久地、短时间、临时缓冲和/或缓存信息))上的可执行指令(例如,计算机和/或机器可读指令)来实现。如本文所使用的,术语非暂时性计算机可读介质明确地定义为包括任何类型的计算机可读存储设备和/或存储盘并且排除传播信号并排除传输介质。

“包括”和“包含”(及其所有形式和时态)在本文中用作开放式术语。因此,每当权利要求采用任何形式的“包括”或“包含”(例如,包括、包含、具有等)作为前言或在任何种类的权利要求书中时,应理解为可以存在附加元素、项等,而不落在相应的权利要求或引用的范围之外。如本文所使用的,当短语“至少”被用作例如权利要求的前序中的过渡术语时,它以与术语“包括”和“包括”是开放式的相同的方式是开放式的。术语“和/或”当例如以诸如a、b和/或c的形式使用时是指a、b、c的任何组合或子集,例如(1)单独a、(2)单独b、(3)单独c、(4)a与b、(5)a与c、(6)b与c、和(7)a与b和c。如本文在描述结构、部件、项目、对象和/或事物的上下文中所使用的,短语“a和b中的至少一个”旨在表示包括(1)至少一个a、(2)至少一个b和(3)至少一个a和至少一个b中的任何一者的实施方式。类似地,如本文在描述结构、部件、项目、对象和/或事物的上下文中所使用的,短语“a或b中的至少一个”旨在表示包括(1)至少一个a、(2)至少一个b以及(3)至少一个a和至少一个b中的任何一者的实施方式。如本文在描述过程、指令、动作、活动和/或步骤的执行或实施的上下文中所使用的,短语“a和b中的至少一个”旨在表示包括(1)至少一个a、(2)至少一个b以及(3)至少一个a和至少一个b中的任何一者的实施方式。类似地,如本文在描述过程、指令、动作、活动和/或步骤的执行或实施的上下文中所使用的,短语“a或b中的至少一个”旨在表示包括(1)至少一个a、(2)至少一个b和(3)至少一个a和至少一个b中的任何一者的实施方式。

图3是表示示例性机器可读指令300的流程图,该指令可被执行以实现图1a-图2的机器人管理器100以执行装配任务。机器可读指令300开始于框302,在框302处,机器人管理器100获得包括要由机器人执行的装配任务的工作流程。例如,工作流程导向器210(图2)可以获得包括在图1a-图1b的组件104上执行一个或多个装配任务的工作流程。

在框304处,机器人管理器100导入与工作流程相关联的模型。例如,工作流程导向器210可以导入与图1a-图1b的机器人102、图1a-图1b的组件104等相关联的图1a-图2的模型118中的一个或多个。

在框306处,机器人管理器100确定模型中包括的装配位置。例如,模型处理器220(图2)可以基于模型118确定与螺栓116中的第一个相关联的第一估计的任务前位置、与螺栓116中的第二个相关联的第二估计的任务前位置等,该螺栓被联接到组件104。

在框308处,机器人管理器100基于装配位置确定机器人轨迹。例如,模型处理器220可以确定与第一估计的任务前位置相关联的轨迹。模型处理器220可以确定在第一临时位置与机器人102相关联的第一接头状态以获得轴环114中的一个,在第一估计的任务前位置与机器人102相关联的第二接头状态等,以及/或与轨迹中包括的一个或多个其他位置或航路点相关联的任何其他接头状态。

在框310处,机器人管理器100命令机器人执行装配任务。例如,命令生成器240(图2)可以指示机器人102从第一临时位置移动到第一估计的任务前位置以将图1a-图1b的轴环114中的一个联接到图1a-图1b的螺栓116中的一个。响应于该指令,机器人102移动到第一实际的任务前位置,该第一实际的任务前位置与第一估计的任务前位置不同。

在框312处,机器人管理器100确定是否已确定校正因子。例如,姿势引擎230(图2)可以查询数据库250(图2)以确定是否已经计算出校正因子。在这样的示例中,姿势引擎230可以响应于该查询从数据库250检索和/或以其他方式获得校正因子。在其他示例中,姿势引擎230可以基于响应于查询从数据库250检索和/或以其他方式获得空值来确定尚未确定校正因子。

如果在框312处机器人管理器100确定已经确定了校正因子,则控制前进到框316以命令机器人使用校正因子来执行装配任务。如果在框312处机器人管理器100确定尚未确定校正因子,则在框314处,机器人管理器100确定校正因子。例如,姿势引擎230可以引导机器人102进入辅助模式。用户可以将机器人102移动到正确或验证的任务前位置。当用户验证机器人102移动到正确位置以执行第一装配任务时,姿势引擎230可以确定机器人102的第一实际的任务前姿势。姿势引擎230可以基于机器人102的第一实际的任务前姿势与机器人102的第一估计的任务前姿势的比较来确定校正因子。在其他示例中,姿势引擎230可以调用命令生成器240以基于来自相机系统或任何其他类型的基于辅助传感器的系统的输出将机器人102移动到正确或验证的位置。

响应于在框314处确定校正因子,机器人管理器100在框316处命令机器人基于校正因子执行装配任务。例如,命令生成器240可以生成并发送命令以指引导机器人102基于由模型处理器220使用校正因子确定的第一轨迹的附加轨迹将轴环114在第一任务前位置处联接到螺栓116。

在框318处,机器人管理器100基于校正因子更新模型。例如,模型处理器220可以通过基于校正因子生成要附加到在框308处生成的轨迹的一组轨迹来更新模型118中的一个或多个。在其他示例中,模型处理器220可以通过生成一组轨迹来更新模型118中的一个或多个,该组轨迹合成和/或以其他方式组合在框308处生成的轨迹与附加的轨迹。下面结合图4描述可用于实现框318的示例过程。

在框320处,机器人管理器100确定是否执行另一个装配任务。例如,工作流程导向器210可以确定存在另一个要处理的装配任务。在其他示例中,工作流程导向器210可以确定工作流程已经完成并且没有要处理的附加装配任务。如果在框320处,机器人管理器100确定执行另一任务,则控制返回到框310以命令机器人执行另一个装配任务。如果在框320处,机器人管理器100确定不执行另一任务,则图3的机器可读指令300结束。

图4是表示示例机器可读指令400的流程图,该指令可以由图1a-图2的示例机器人管理器100使用以基于校正因子更新模型。图4的示例过程可以用于实现图4的框318的操作。

机器可读指令318开始于框402,在框402处,机器人管理器100基于校正因子更新与装配任务相关联的轨迹。例如,模型处理器220(图2)可以基于校正因子更新与第一装配任务相关联的轨迹。在这样的示例中,模型处理器220可以生成新的轨迹以附加到当前轨迹以将机器人102从第一实际的任务前位置移动到第二实际的任务前位置。

在框404处,机器人管理器100生成与下一个装配任务相关联的一组轨迹。例如,模型处理器220可以生成与联接图1a-图1b的轴环114中的第二个到图1a-图1b中的螺栓116中的第二个相关联的一组一个或多个轨迹。该组一个或多个轨迹可以对应于命令生成器240(图2)用于校正要用于执行第二装配任务的轨迹的潜在附加轨迹,其中校正使机器人102能够执行第二装配任务,无需用户干预或从辅助传感器系统输入。

在框406处,机器人管理器100确定目标状态(位置)最接近实际机器人姿势的轨迹。例如,当执行第一装配任务时,模型处理器220可以基于与所选轨迹相关联的目标状态选择集合中的轨迹之一,该所选轨迹最接近机器人102的实际任务前姿势、实际任务后姿势等。

在框408处,机器人管理器100通过将校正因子应用于目标状态来生成新的接头状态。例如,模型处理器220可以生成与机器人102从第二实际的任务前位置移动到第三实际的任务前位置相关联的第三接头状态、与机器人102从第三实际的任务前位置移动到第二实际的任务后位置相关联的第四接头状态等。

在框410处,机器人管理器100确定是否为另一装配任务生成一组轨迹。例如,模型处理器220可以确定为第三装配任务生成一组轨迹。在其他示例中,模型处理器220可以确定为工作流程中包括的每个装配任务生成一组轨迹,以基于校正因子确定新的接头状态。在其他示例中,模型处理器220可以确定不为另一装配任务生成一组轨迹。

如果在框410处,机器人管理器100确定为另一装配任务生成一组轨迹,则控制返回到框404以生成与下一个或后续装配任务相关联的一组轨迹。如果在框410处,机器人管理器100确定不为另一装配任务生成一组轨迹,则图4的机器可读指令318返回到图4的示例的框320以确定是否执行另一装配任务。

图5是表示示例性机器可读指令500的另一流程图,该指令可被执行以实施图1a-图2的机器人管理器100执行装配任务。机器可读指令开始于框502,在框502处,机器人管理器100选择要处理的感兴趣的装配任务。例如,工作流程导向器210(图2)可以选择装配任务,包括将轴环114中的第一个联接到图1a-图1b的螺栓116中的第一个以进行处理。

在框504处,机器人管理器100使用模型作为基础事实来确定对应于装配项目的装配位置处的(一个或多个)估计的机器人姿势。例如,模型处理器220(图2)可以基于模型118确定轴环114中的第一个的坐标、图1a-图1b的组件104上的螺栓116的第一个的坐标等。模型处理器220可以确定一个轨迹,包括机器人102在第一位置(例如,原位置、第一临时位置等)的第一接头状态、在第二位置(例如,与螺栓116中的第一个相关联的任务前位置)等与机器人102相关联的第二接头状态和/或沿轨迹与一个或多个其他位置或航路点相关联的任何其他接头状态。模型处理器220可以基于轨迹确定与第二位置处的机器人102的姿势相关联的坐标,并将姿势识别为第一估计的任务前姿势。

在框506处,机器人管理器100基于(一个或多个)估计的机器人姿势将机器人导航到装配位置。例如,命令生成器240(图2)可以生成命令并将命令发送到机器人102以将机器人102从第一位置移动到第二位置以到达第一估计的任务前姿势,进而将机器人102移动到第一实际的任务前位置。

在框508处,机器人管理器100确定定位不确定性是否满足阈值。例如,姿势引擎230(图2)可以确定与机器人102的第一接头状态和第二接头状态的相关性相关联的定位不确定性满足定位不确定性阈值。

如果在框508处,机器人管理器100确定定位不确定性不满足阈值,则控制前进到框516以在装配位置处操纵装配项目。如果在框508处,机器人管理器100确定定位不确定性满足阈值,则在框510处,机器人管理器100确定是否已经确定了校正因子。例如,姿势引擎230可以查询数据库250(图2)以确定是否已经计算出校正因子。在这样的示例中,姿势引擎230可以响应于该查询从数据库250检索和/或以其他方式获得校正因子。在其他示例中,姿势引擎230可以基于响应于查询从数据库250检索和/或以其他方式获得空值来确定尚未确定校正因子。

如果在框510处,机器人管理器100确定已经确定了校正因子,则控制前进到框514,以使用校正因子将机器人姿势调整到装配位置。如果在框510处,机器人管理器100确定尚未确定校正因子,则在框512处,机器人管理器100使用基于辅助的系统将机器人姿势调整到装配位置。例如,姿势引擎230可以指示机器人102进入辅助模式。用户可以将机器人102移动到正确的位置以执行第一装配任务。在其他示例中,当这样的系统可用于机器人102时,姿势引擎230可以调用命令生成器240以使用基于相机的系统或任何其他基于传感器的系统将机器人102移动到正确位置。

响应于在框512处使用基于辅助的系统将机器人姿势调整到装配位置或者在框512处使用校正因子将机器人姿势调整到装配位置,在516处机器人管理器100在装配位置处操纵装配项目。例如,命令发生器240可以生成命令并将命令发送到机器人102,以引导机器人102在第二位置处将轴环114联接到螺栓116。

在框518处,机器人管理器100确定传感器测量是否满足操纵阈值。例如,命令生成器240可以从图1a-图1b的传感器112获得扭矩测量值、将扭矩测量值与扭矩阈值进行比较,并且当扭矩测量值大于扭矩阈值时,产生停止将轴环114和螺栓116联接的命令。

如果在框518处,机器人管理器100确定传感器测量值不满足操纵阈值,则控制在框518处等待机器人102完成联接。如果在框518处,机器人管理器100确定传感器测量值满足操纵阈值,则在框520处,机器人管理器100确定实际的机器人姿势。例如,当扭矩测量值满足扭矩阈值时,命令生成器240可以调用姿势引擎230以确定机器人102的与机器人102的第一实际的任务后姿势相对应的姿势。

在框522处,机器人管理器100基于实际的机器人姿势和估计的机器人姿势确定校正因子。例如,姿势引擎230可以基于第一实际的任务前姿势、第一实际的任务后姿势、第一估计的任务前姿势、第一估计的任务后姿势等,通过使用上面的等式(1)的示例来确定和/或以其他方式计算定位调整。

在框524处,机器人管理器100基于校正因子更新模型。例如,模型处理器220可以通过使用图4的过程基于校正因子来更新模型118。在一些示例中,模型处理器220通过更新与一个或多个后续装配任务相关联的信息来更新模型118。例如,模型处理器220可以更新模型118以生成要附加和/或以其他方式应用于用于执行装配任务的轨迹的一组轨迹。

在框526处,机器人管理器100确定是否选择要处理的另一个感兴趣的装配任务。例如,工作流程导向器210可以确定执行另一装配任务,包括在第二装配位置将第二轴环114联接到第二螺栓116。在其他示例中,工作流程导向器210可以确定不存在要处理的另一个感兴趣的装配任务。如果在框526处,机器人管理器100确定选择要处理的另一个感兴趣的装配任务,则控制返回到框502以选择要处理的另一个感兴趣的装配任务,否则图5的机器可读指令500结束。

图6是被构造为执行图3-图5的指令以实施图1a-图2的机器人管理器100的示例处理器平台600的框图。处理器平台600可以是例如服务器、个人计算机、工作站、自学习机(例如,神经网络)、移动设备(例如,手机、智能手机、平板电脑诸如ipadtm)、机器人计算平台或任何其他类型的计算设备。

所示示例的处理器平台600包括处理器612。所示示例的处理器612是硬件。例如,处理器612可以由来自任何期望的系列或制造商的一个或多个集成电路、逻辑电路、微处理器、gpu、dsp或控制器实现。硬件处理器可以是基于半导体的(例如,基于硅的)设备。在该示例中,处理器612实施示例工作流程导向器210、示例模型处理器220、示例姿势引擎230、示例命令生成器240,和/或更一般地,图1a-图2的示例机器人管理器100。

所示示例的处理器612包括本地存储器613(例如,高速缓存)。所示示例的处理器612经由总线618与包括易失性存储器614和非易失性存储器616的主存储器通信。易失性存储器614可以由同步动态随机存取存储器(sdram)、动态随机、存取存储器(dram)、动态随机存取存储器和/或任何其他类型的随机存取存储器设备来实现。非易失性存储器616可以由闪存和/或任何其他期望类型的存储器设备实现。对主存储器614、616的访问由存储器控制器控制。

所示示例的处理器平台600还包括接口电路620。接口电路620可以由任何类型的接口标准实现,所述接口标准例如以太网接口、通用串行总线(usb)、蓝牙接口、近场通信(nfc)接口和/或pciexpress接口。

在所示示例中,一个或多个输入设备622连接到接口电路620。输入设备622允许用户将数据和/或命令输入到处理器612中。输入设备622可以通过例如音频传感器、麦克风、相机(静止或视频)、键盘、按钮、鼠标、触摸屏、跟踪板、轨迹球、等距设备和/或语音识别系统来实现。

一个或多个输出设备624还连接到所示示例的接口电路620。输出装置624可以例如通过显示设备(例如,发光二极管(led)、有机发光二极管(oled)、液晶显示器(lcd)、阴极射线管显示器(crt)、就地切换(ips)显示器、触摸屏等)、触觉输出设备、打印机和/或扬声器)来实现。因此,所示示例的接口电路620通常包括图形驱动器卡、图形驱动器芯片和/或图形驱动器处理器。

所示示例的接口电路620还包括通信设备,诸如发射器、接收器、收发器、调制解调器、住宅网关、无线接入点和/或网络接口,以促进经由网络626与外部机器(例如,任何类型的计算设备)的数据交换。在该示例中,网络626实现图2的示例网络260。通信可以通过例如以太网连接、数字用户线(dsl)连接、电话线连接、同轴电缆系统、卫星系统、现场无线系统、蜂窝电话系统等。

所示示例的处理器平台600还包括用于存储软件和/或数据的一个或多个大容量存储设备628。这种大容量存储设备628的示例包括软盘驱动器、硬盘驱动器、压缩盘驱动器、蓝光盘驱动器、独立磁盘冗余阵列(raid)系统和数字通用盘(dvd)驱动器。在该示例中,一个或多个大容量存储设备628实现图2的示例数据库250。

图3-图5的机器可执行指令632可以被存储在大容量存储设备628中、易失性存储器614中、非易失性存储器616中和/或存储在可移动的非暂时性计算机可读存储介质(例如cd或dvd)上。

从前述内容可以理解,已经公开了改进机器人控制的示例方法、装置和制品。所公开的方法、装置和制品减少了一定量的传感器和基于传感器的系统,以通过使用与机器人的末端执行器相关联的信息确定要应用于由机器人执行的装配任务的校正因子来促进机器人的操作。诸如基于相机的系统之类的基于传感器的系统需要增加数量的计算和存储资源来起作用,并且所公开的方法、装置和制品减少和/或以其他方式消除对这种系统的需要。与现有机器人相比,所公开的方法、装置和制品可以减少促进机器人操作所需的计算和/或存储资源的数量。例如,所公开的方法、装置和制品可以分配未使用的资源以执行附加的处理任务,并且因此改进和/或以其他方式增加与机器人相关联的一个或多个处理器的能力或功能。因此,所公开的方法、装置和制品涉及计算机功能的一个或多个改进。

以下涉及本文公开的其他示例。

示例1包括一种装置,其包括命令生成器,用于:指示机器人将末端执行器从临时位置移动到估计的任务前位置,以基于所述机器人的第一姿势执行第一任务,所述第一姿势基于模型;当所述机器人要移动到第二实际的任务前位置时,将所述机器人调整到第一实际的任务前位置以执行所述第一任务,所述第一实际的任务前位置接近所述估计的任务前位置;以及基于校正因子引导所述机器人执行第二任务,所述校正因子通过以下方式确定:确定所述机器人的第二姿势,所述第二姿势对应于在任务后位置处与所述机器人相关联的位置信息,所述任务后位置对应于在执行所述第一任务后与所述机器人相关联的位置信息并且基于所述第一姿势和所述第二姿势计算所述校正因子。

示例2包括示例1所述的装置,其中所述第一任务包括所述机器人联接第一装配项目到第二装配项目。

示例3包括示例1或2所述的装置,其中所述第一姿势是第一齐次矩阵和所述第二姿势是第二齐次矩阵,并且通过将所述第二齐次矩阵与所述第一齐次矩阵的逆相乘来计算所述校正因子。

示例4包括示例3所述的装置,其中所述第一齐次矩阵和所述第二齐次矩阵是4×4齐次矩阵。

示例5包括示例1-4中任一示例所述的装置,还包括模型处理器,用于通过生成与第二任务相关联的一组轨迹,确定目标状态最接近第二姿势的在该组中的轨迹之一,并且通过将校正因子应用于目标状态来产生与轨迹之一相关联的一个或多个接头状态,来基于校正因子更新模型。

示例6包括示例1-5中任一示例所述的装置,其还包括模型处理器,用于通过使用所述模型作为基础事实来确定所述估计的任务前位置以确定所述估计的任务前位置的坐标。

示例7包括示例1-6中任一示例所述的装置,其中所述命令生成器用于通过从相机系统获得输出或从编码器获得传感器测量中的至少一者,将所述机器人调整到所述第一实际的任务前位置。

示例8包括一种包含指令的非暂时性计算机可读存储介质,当所述指令被执行时使得机器至少用于:指示机器人将末端执行器从临时位置移动到估计的任务前位置,以基于所述机器人的第一姿势执行第一任务,所述第一姿势基于模型;当所述机器人要移动到第二实际的任务前位置时,将所述机器人调整到第一实际的任务前位置以执行所述第一任务,所述第一实际的任务前位置接近所述估计的任务前位置;在执行所述第一任务后,确定所述机器人的第二姿势,所述第二姿势对应于在任务后位置处与所述机器人相关联的位置信息,所述任务后位置对应于在执行所述第一任务后所述机器人的位置;基于所述第一姿势和所述第二姿势计算校正因子;并且基于所述校正因子引导所述机器人执行第二任务。

示例9包括示例8所述的非暂时性计算机可读存储介质,其中所述第一任务包括所述机器人联接第一装配项目到第二装配项目。

示例10包括示例8或9所述的非暂时性计算机可读存储介质,其中所述第一姿势是第一齐次矩阵和所述第二姿势是第二齐次矩阵,并且所述非暂时性计算机可读存储介质还包括指令,当该指令被执行时使得所述机器至少用于通过将所述第二齐次矩阵与所述第一齐次矩阵的逆相乘来计算所述校正因子。

示例11包括示例10所述的非暂时性计算机可读存储介质,其中所述第一齐次矩阵和所述第二齐次矩阵是4×4齐次矩阵。

示例12包括示例8-11中任一示例所述的非暂时性计算机可读存储介质,其还包括指令,当该指令被执行时使得所述机器至少用于通过生成与第二任务相关联的一组轨迹,确定目标状态最接近第二姿势的在该组中的轨迹之一,并且通过将校正因子应用于目标状态来产生与轨迹之一相关联的一个或多个接头状态,来基于校正因子更新模型。

示例13包括示例8-12中任一示例所述的非暂时性计算机可读存储介质,其还包括指令,当该指令被执行时使得所述机器至少用于通过使用所述模型作为基础事实来确定所述估计的任务前位置以确定所述估计的任务前位置的坐标。

示例14包括示例8-13中任一示例所述的非暂时性计算机可读存储介质,其还包括指令,当该指令被执行时使得所述机器至少用于通过从相机系统获得输出或从编码器获得传感器测量中的至少一者,将所述机器人调整到所述第一实际的任务前位置。

示例15包括一种方法,其包括:指示机器人将末端执行器从第一位置移动到第二位置,以基于所述机器人的第一姿势执行第一任务,所述第一姿势基于模型;响应于所述机器人移动到第三位置,将所述机器人调整到第四位置以执行所述第一任务,所述第四位置接近所述第二位置;响应于执行所述第一任务,确定所述机器人的第二姿势,所述第二姿势对应于在第五位置处与所述机器人相关联的位置信息,所述第五位置对应于在执行所述第一任务后所述机器人的位置;基于所述第一姿势和所述第二姿势计算校正因子;以及基于所述校正因子引导所述机器人执行第二任务。

示例16包括示例15所述的方法,其中所述第一任务包括所述机器人联接第一装配项目到第二装配项目。

示例17包括示例15或16所述的方法,其中所述第一姿势是第一齐次矩阵和所述第二姿势是第二齐次矩阵,并且计算所述校正因子包括将所述第二齐次矩阵与所述第一齐次矩阵的逆相乘。

示例18包括示例15-17中任一示例所述的方法,其还包括基于校正因子更新模型,所述更新包括生成与第二任务相关联的一组轨迹,确定目标状态最接近第二姿势的在该组中的轨迹之一,并且通过将校正因子应用于目标状态来产生与轨迹之一相关联的一个或多个接头状态。

示例19包括示例15-18中任一示例所述的方法,其中通过使用模型作为基础事实确定第二位置以确定第二位置的坐标。

示例20包括示例15-19中任一示例所述的方法,其中将机器人调整到第四位置包括从相机系统获得输出或从编码器获得传感器测量值中的至少一者。

尽管本文已经公开了某些示例性方法、装置和制品,但是本专利的覆盖范围不限于此。相反,该专利涵盖了完全属于本专利权利要求范围内的所有方法、装置和制品。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1