首页 / 专利库 / 人工智能 / 人工智能 / 机器人技术 / 机器人 / 关节型机器人 / 用于指示机器人的系统和方法

用于指示机器人的系统和方法

阅读:1027发布:2020-07-29

专利汇可以提供用于指示机器人的系统和方法专利检索,专利查询,专利分析的服务。并且本公开涉及一种用于指示 机器人 的系统(1)和方法。该系统(1)包括沉浸式触觉界面,使得操作者与主 机器人手 臂 (2)的交互作用由布置成与 工件 (4)交互作用的从机器人手臂(3)来反映。从机器人手臂(3)的交互作用被反映回主机器人手臂(2)作为对操作者的 触觉反馈 。动 力 学系统不断地提前模拟,并且新命令被计算以用于主机器人手臂和从机器人手臂。,下面是用于指示机器人的系统和方法专利的具体信息内容。

1.一种用于指示机器人的系统(1),其中,所述系统(1)包括:主机器人手臂(2),其布置成受操作者交互的影响;从机器人手臂(3),其布置成与工件(4)交互;以及控制单元(5),所述控制单元(5)配置成:
-确定表示操作者(6)和所述主机器人手臂(2)之间的相互作用的主外力数据;以及-确定表示所述从机器人手臂(3)和所述工件(4)之间的力相互作用的从外力数据;
其中所述控制单元(5)还包括触觉界面模(7),所述触觉界面模块(7)包括:
·约束子模块(8),其定义所述主机器人手臂(2)的指定主耦合框架和所述从机器人手臂(3)的指定从耦合框架之间的运动学耦合,使得所述主耦合框架的速度和所述从耦合框架的速度相互关联;和
·计算子模块(9),其配置成基于所述主外力数据、所述从外力数据、所述主机器人手臂的动力学模型、所述从机器人手臂的动力学模型以及包括用于完成所述运动学耦合的力/扭矩的所述动力学模型之间的关系,来计算用于所述主机器人手臂(2)的关节移动命令和用于所述从机器人手臂(3)的关节移动命令,同时遵守由所述动力学模型施加的约束;
其中所述系统(1)配置成:
-根据所述关节移动命令来控制所述主机器人手臂(2)和所述从机器人手臂(3),由此操作者从反映所述系统(1)的动力学的力相互作用接收触觉反馈;和
-记录与所述从机器人手臂相关的框架的产生的移动,并记录在同一框架中的所述工件(4)上产生的/施加的力。
2.根据权利要求1所述的系统(1),其中,所述约束子模块(8)包括多个运动约束,并且其中所述计算子模块(9)配置成在遵守由所述动力学模型施加的约束的同时,基于所述多个运动约束来计算所述主机器人手臂(2)的关节移动命令和所述从机器人手臂(3)的关节移动命令,使得实现对应的受约束的运动。
3.根据权利要求1或2所述的系统(1),其中,所述计算子模块(9)配置成确定微分代数方程组的解,所述微分代数方程组定义所述系统(1)的动力学和在遵守由所述动力学模型施加的约束的同时实现所述运动学耦合所需要的力和/或扭矩之间的关系,并且使用所述解来计算用于所述主机器人手臂(2)的关节移动命令和用于所述从机器人手臂(3)的关节移动命令。
4.根据权利要求3所述的系统(1),其中,所述计算子模块(9)配置成在遵守由所述动力学模型施加的约束的同时,计算所述解,以包括实现所述运动学耦合所需要的力和/或扭矩。
5.根据前述权利要求中任一项所述的系统(1),其中,所述主耦合框架和所述从耦合框架之间的运动学耦合在任务空间中被定义。
6.根据前述权利要求中任一项所述的系统(1),其中,所述主机器人手臂(2)和所述从机器人手臂(3)具有不同的运动学特性和/或具有不同的自由度
7.根据前述权利要求中任一项所述的系统(1),其中,所述控制单元(5)配置成计算用于另一主机器人手臂的关节移动命令和/或用于另一从机器人手臂的关节移动命令,而无需对所述控制单元(5)进行重新编程。
8.根据前述权利要求中任一项所述的系统(1),被配置成基于在与所述从机器人手臂相关的框架中表示的记录的产生的移动,以及基于所记录的对同一框架中的所述工件(4)产生的/施加的力,来确定机器人程序或机器人指令。
9.根据前述权利要求中任一项所述的系统(1),其中,所述主外力数据基于所述主机器人手臂(2)的至少一个关节的关节运动数据和/或关节位置数据和/或电机信号数据来确定,并且其中所述从外力数据基于所述从机器人手臂(3)的至少一个关节的关节运动数据和/或关节位置数据和/或电机信号数据来确定。
10.根据前述权利要求中任一项所述的系统(1),其中,所述外力数据分别从所述主机器人手臂(2)或所述从机器人手臂(3)的至少一个关节的一个或数个扭矩传感器(20、30)和/或关节力数据和/或电机信号数据获得。
11.根据前述权利要求中任一项所述的系统(1),其中,所述主机器人手臂(2)与所述从机器人手臂(3)机械地分离。
12.根据前述权利要求中任一项所述的系统(1),其中,所述从机器人手臂(3)是虚拟的从机器人手臂。
13.根据前述权利要求中任一项所述的系统(1),其中,所述触觉界面模块(7)配置成将所述从机器人手臂(3)上的至少一个限制映射成至少一个直观的力反作用,所述控制单元(5)配置成再现所述至少一个直观的力反作用作为所述主机器人手臂(2)的触觉反馈。
14.根据权利要求13所述的系统(1),其中,所述直观的力反作用对应于所述主机器人手臂(2)和所述从机器人手臂(3)共有的共同工件上的直接运动学耦合。
15.一种指示机器人的方法,所述方法包括:
-确定(S1)表示操作者(6)和主机器人手臂(2)之间的力相互作用的主外力数据;
-确定(S2)表示从机器人手臂(3)和工件(4)之间的力相互作用的从外力数据;
-基于所述主外力数据、所述从外力数据、所述主机器人手臂的动力学模型、所述从机器人手臂的动力学模型、所述主机器人手臂(2)的指定主耦合框架和所述从机器人手臂(3)的指定从耦合框架之间的所定义的运动学耦合,以及在遵守由所述动力学模型施加的约束的同时,通过加强包括用于实现所述运动学耦合的力/扭矩的所述动力学模型之间的关系,导致所述主耦合框架的速度和所述从耦合框架的速度相互关联,来计算(S3)用于所述主机器人手臂(2)的关节移动命令和用于所述从机器人手臂(3)的关节移动命令;和-根据所述关节移动命令来控制(S4)所述主机器人手臂(2)和所述从机器人手臂(3),由此操作者从反映所述主机器人手臂(2)和/或所述从机器人手臂(3)的动力学的力相互作用接收触觉反馈;
-记录(S5)与所述从机器人手臂相关的框架的产生的移动,以及记录对同一框架中的所述工件(4)产生的/施加的力。
16.根据权利要求15所述的方法,其中,所述计算(S3)包括在遵守由所述动力学模型施加的约束的同时,基于多个运动约束来计算用于所述主机器人手臂(2)的关节移动命令和用于所述从机器人手臂(3)的关节移动命令,使得实现对应的受约束的运动。
17.根据权利要求15或16所述的方法,其中,所述计算(S3)包括确定微分代数方程组的解,所述微分代数方程组定义所述系统(1)的动力学和在遵守由所述动力学模型施加的约束的同时实现所述运动学耦合所需要的力和/或扭矩之间的关系,并且使用所述解来计算用于所述主机器人手臂(2)的关节移动命令和用于所述从机器人手臂(3)的关节移动命令。
18.根据权利要求17所述的方法,其中,所述计算(S3)包括在遵守由所述动力学模型施加的约束的同时,计算包括完成所述运动学耦合所需要的力和/或扭矩的解。
19.根据权利要求15至18中任一项所述的方法,其中,所述方法包括在所述主机器人手臂(2)和所述从机器人手臂(3)之间实现力和扭矩的双向传递,使得根据所述主机器人手臂(2)和/或所述从机器人手臂(3)的任何受限的和/或奇异位形来遵从或调节触觉反馈。
20.根据权利要求15至19中任一项所述的方法,其中,所述计算(S3)包括将对所述从机器人手臂(3)的至少一个限制映射成至少一个直观的力反作用,并且再现所述直观的力反作用作为所述主机器人手臂(2)的触觉反馈。
21.一种计算机程序,其包括指令,当所述程序由控制单元或连接到所述控制单元的计算机执行时,所述指令导致所述控制单元执行根据权利要求15至20中任一项所述的方法。
22.一种计算机可读介质,其包括指令,当由控制单元或连接到所述控制单元的计算机执行时,所述指令导致所述控制单元执行根据权利要求15至20中任一项所述的方法。

说明书全文

用于指示机器人的系统和方法

技术领域

[0001] 本公开涉及机器人技术,并且尤其涉及用于通过交互作用(force interaction)以直观的方式指示机器人的方法和系统。操作者可以以沉浸方式(immersive manner)基于多个手臂的触觉和控制使用直观的命令来定义机器人的任务,例如机器人移动末端执行器工件接触
[0002] 背景
[0003] 最常见的情况是,机器人运动是使用明确定义的交互作用力,在与环境物理接触的情况下进行的。在特定配置中,如何指定和控制这种运动是众所周知的。然而,对灵活性和生产率的需求也要求运动定义在物理布置和设备选择方面是可移植的(portable),并且需要直观的命令,从而允许非专家的操作者,而不需要对每个特定应用进行合资质的(qualified)工程设计。
[0004] 机器人在这里被定义为具有一个或数个手臂的可编程操纵器,每个手臂任选地装备有一个或数个末端执行器,并且一个或更多个手臂的关节由控制器控制。机器人已经在许多工业领域中得到了广泛的应用。一些工业领域涉及对人类健康有害的劳动或在人类不可能承受的条件下进行的劳动。其它工业领域涉及重复的任务,这些重复的任务可以由机器人更有效、更精确地完成。
[0005] 机器人供应商可以使用一些计算机编程语言在系统级(system level)对机器人进行编程。通常,系统或控制器的一部分是用户程序的解释器,这些程序是以由解释器定义的一些机器人编程语言编写的。这些最终用户程序被称为机器人程序。机器人程序由可以被解释的指令组成。和以下内容是等效的:可以编译机器人程序,以及可以利用系统级程序和用户级程序的不同组合。
[0006] 机器人程序可以用纯文本手工编写,它们可以在图形3D环境中被定义,它们可以由CAD/CAM(计算机辅助设计/计算机辅助制造)系统来生成,它们可以使用操纵器的人工指南(manual guidance)被指示,或者通过这些技术和任何其它可能技术的某种组合被指示。组合是合适的,因为某些类型的指令可能更容易用特定的技术来定义。对于机器人的有效使用而言,执行结果是物理效果(例如末端执行器运动)的指令尤其重要。
[0007] 对于力交互作用,例如在装配应用中,所需要的运动通常取决于操作机器人的生产工程师最好地观察/体验到的未建模的物理行为。一段时间以来,如何将基于操作者经验的意图转移到相应的机器人指令集中一直受到广泛的研究。理想地,机器人程序定义机器人待执行的预期任务。实际上现今,机器人执行编程指令导致调用控制器的控制机器人关节的功能,使得末端执行器执行实际运动作为任务的部分,但是程序需要特别(ad-hoc)修改,因为控制器的可用指令集主要提供次级效果(secondary effects)的手段。
[0008] 这种次级效果可以是隐式编程的位置偏差,该位置偏差产生需要的末端执行器力而不是用表达操作者意图的指令参数直接执行力控制的运动。这种令人遗憾的状况的一个原因是,机器人编程和控制功能传统上基于位置控制的运动,这些运动在自由空间中或在末端执行器与工件接触的情况下操作。也就是说,即使在机器人与其环境之间所需要的接触力的情况下,运动定义也是基于编程的位置,由此产生的力是来自使物体相互接触的位置的次级效果。运动是基于控制的用户级或系统级的位置的优点在于,控制功能更容易作为封装的控制特征来提供和支持,这些控制特征可以在没有环境细节(例如力接触的刚度)的情况下被验证。缺点可能是作为次级效果的力可能更难指定和用合理的带宽来控制。
[0009] 为了实现对接触力的适当控制,已经开发了多种控制方案。力传感器和力估计技术正成为有助于这种控制的常见技术。已经特别注意到了接触状况和非接触状况之间的过渡。对机器人操纵器的运动结构的依赖也是工业应用的障碍,但是在过去十年中,市场上出现了能够达到6D力/扭矩控制的末端执行器运动的数种产品。
[0010] 机器人任务定义的一种常见方法是对与物理机器人相同类型的虚拟机器人编程。这通常在一些具有3D图形的编程工具中完成。然而,交互作用力在这样的编程环境中未被处理,所以涉及到与环境的物理交互作用的机器人的编程是耗时的,并且需要数小时的工程设计,包括对物理系统的重复测试。
[0011] 另一种方法是为单手臂机器人装备另一个力传感设备,该力传感设备用于命令运动,既用于位置控制,也用于力控制。然而,存在许多情况,其中通常的单手臂引导式编程(lead-through programming)是不切实际或不可取的:
[0012] -由于安全限制(研磨工具、压力机等),可能不可以保持接近机器人。
[0013] -工作空间可能杂乱,使得人无法进入。
[0014] -操作者和操纵器之间的耦合可能改变任务的性质。
[0015] 在Gianni Borghesan等人的“A constraint-based programming approach to physical human-robot interaction”(2012 IEEE机器人与自动化国际会议(ICRA),2012年5月14日至18日)中,考虑了基于约束的遥控操作系统设计方法。这篇文章代表了现有技术平,这种方法是纯粹运动学的,而在大多数应用中力相互作用(force interplay)更与动力学有关。因此,仍然需要改进以也反映系统的动力学。
[0016] 概述
[0017] 本公开的一个目的是减轻现有技术的至少一些限制。本公开的另一个目的是实现将呈现与工件的明确定义的力交互作用的机器人运动的实用和有效的示教。对于这种有效的示教,机器人指示者/程序员不应被不属于手头任务一部分的系统限制或从所使用设备/机器人的外观难以理解的系统限制分散注意力。为了使这样一个系统保持广泛的工业应用,实现方式应当是基于模型的,并且允许在没有重新编程的情况下引入新的机制。
[0018] 这些目的和其它目的通过根据独立权利要求的系统和方法以及通过根据从属权利要求的实施方案而至少部分地实现。
[0019] 根据一个方面,本公开提出了一种用于指示机器人的系统。该系统包括布置成受操作者交互影响的主机器人手臂和布置成与工件交互的从机器人手臂。该系统还包括控制单元,该控制单元配置成确定表示操作者和主机器人手臂之间的力相互作用的主外力数据,并确定表示从机器人手臂和工件之间的力相互作用的从外力数据。控制单元还包括触觉界面模(haptic interface module),该触觉界面模块包括约束子模块,其定义主机器人手臂的指定主耦合框架(designated master coupling frame)和从机器人手臂的指定从耦合框架之间的耦合,即运动学耦合,使得主耦合框架的速度和从耦合框架的速度相互关联。触觉界面模块还包括计算子模块,例如求解器子模块,其配置成在遵守由动力学模型施加的约束的同时,基于主外力数据、从外力数据、主机器人手臂的模型(即,动力学模型)、从机器人手臂的模型(即,动力学模型),以及动力学模型之间的关系(包括用于完成运动学耦合的力/力矩)来计算主机器人手臂的关节移动命令和从机器人手臂的关节移动命令。该系统还配置成根据关节移动命令来控制主机器人手臂和从机器人手臂。然后,操作者将从反映系统动力学的力相互作用接收触觉反馈。命令可以与指令相关,但是它也可以是根据轨迹生成器或任何其它计算提供的作为伺服控制参考的时间序列设定点(a time-series of set-points)。该系统还配置成记录与从机器人手臂相关的框架的产生的移动,并记录对同一框架中的工件产生的/施加的力。该框架可以是从机器人手臂的工具中心点(TCP,Tool Centre Point)框架、端部凸缘框架或肘部的框架。
[0020] 该系统支持操作者经由主机器人手臂直观地命令从机器人手臂;然后,操作者可以使用来自当前应用的触觉反馈和视觉反馈的组合来感知和观察主机器人手臂如何反应。作为机器人任务的部分,可以以沉浸方式定义运动指令,并从而有助于操作者专注于实际任务。沉浸式在这里意味着需要的末端执行器操作(例如,对于任务而言,具有作用在工件上的合适的力)是自然操作者/物理操作者交互作用的结果,操作者完全专注于预期的运动,同时在任何周围的人工/动力学约束上花费最少的认知努力,例如接近物理上不明显的奇异位形(singular configurations)的动力学效应。因此,一个目标是保持运动学耦合,尽管有这样的动力学效应。
[0021] 该系统在指示机器人时赋予灵活性,因为机器人(以及可能是人类)的工作场所的物理布置可以在指示机器人和机器人执行任务之间变化。通过物理地和虚拟地保持末端执行器和工件之间的关系,利用由操作者-机器人的交互确定的力,结合以灵活的方式应对任何人为限制的映射,诸如机器人类型和手臂放置的改变是允许的,而无需像当今应用中那样进行复杂的调节。
[0022] 该系统使操作者可以以直观的方式示教机器人,这在工业上是有价值的,因为知道制造过程的操作者(但几乎没有编程经验和当今的复杂调节间接作用的机器人指令的经验)可以更接近当前物理过程来工作。尽管如此,操作者必须应对实际的限制,例如机器人工作空间边界和有限的抓爪灵活性,但是由于这些限制对操作者来说是明显的,并且由于命令由控制器处理,该控制器可以配置成监控所涉及的物理量并将所涉及的物理量映射到需要的任何内部表示,所以控制的复杂性被封装,使得指示机器人被感知为是直观的。
[0023] 如上面提到的,力交互作用任务尤其难以编程。现有技术的主要问题是操作者不能够感觉到与在机器人的交互作用点和工件之间作用的运动和力相同的运动和力。所公开的系统解决了该问题。以前,机器人运动的运动学效果和动力学效果干扰了演示,但在本创新系统中,考虑了这些效果。因此,该系统对于加速涉及力交互作用的编程任务的过程是有用的。由于力和位置均被考虑,所以工件位置的合理变化可以容易地处理。
[0024] 明确定义的力交互作用与系统限制通常与动力学限制(例如,有限的扭矩和惯性力)相关的事实相结合,基于模型的方法意味着动力学模型对允许的运动施加约束,在示例d中,工业实现将容易地通过某种类型的求解器而不是高级的/不灵活的重新编程而结合。
[0025] 为了有助于机器人任务的有效定义,该系统提供了一种解决方案,在该解决方案中主机器人手臂以适合现有工业机器人控制系统的有效且直观的方式向从机器人传送指令。主机器人手臂是例如物理机器人手臂,其可以是标准触觉界面或具有力感测和力控制能力的操纵器。从机器人手臂可以是在应用中被使用的真实机器人,或者是具有充分的环境模型的从机器人手臂的虚拟表示。多个主手臂和多个从手臂是明显的延伸。例如,一个双手臂机器人可以充当用于使用双手进行单独的运动的操作者的主设备,影响作为从双手设备执行指令的另一个双手臂机器人。现代工业控制器允许通过实时通信网络进行这种连接。为简洁起见,在后面描述了单个主机和单个从机。
[0026] 尽管手臂的主色和从角色在操作期间可能动态地变化,并且主机和从机之间的需要耦合超出了现有机器人产品的功能,但是市场上可获得的机器人仍然可以通过所包括的虚拟条件下的预期操作和现有界面的物理命令/控制信号之间的映射来用作模块。因此,用于触觉反馈的所需要的力可以根据工业实践和性能需求来定义。
[0027] 根据一些实施方案,约束子模块包括多个运动约束,并且其中计算子模块配置成在遵守由动力学模型施加的约束的同时,基于多个运动约束来计算主机器人手臂的关节移动命令和从机器人手臂的关节移动命令,使得实现对应的受约束的运动。换句话说,计算子模块配置成计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令,使得另外的运动约束被遵守。另外的运动约束,即多个运动约束中的一个,可以包括关节极限(joint limit)、一对框架之间的距离、一对关节的耦合或用于任务的运动约束,该用于任务的运动约束包括以一定的力沿表面的运动。在一个实现中,计算子模块的配置是基于约束模块中包括的说明性的符号动力学模型和说明性的符号约束自动完成的,从而避免了为新的应用/装备对系统重新编程的需要。因此,根据一个实施方案,所提出的多个约束的结合是本发明的特征。这里应当提到的是,所提到的由约束子模块定义的运动学耦合也是运动约束。运动约束由用户根据应用程序设置来定义,并在约束子模块中表示。
[0028] 根据一些实施方案,计算子模块配置成确定微分代数方程组的解,该微分代数方程组定义了系统的动力学和在遵守由动力学模型施加的约束的同时实现运动学耦合所需要的力和/或扭矩之间的关系,并且使用该解来计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令。下面将更详细地解释微分代数方程组。
[0029] 根据一些实施方案,计算子模块配置成在遵守由动力学模型施加的约束的同时,计算解,以包括实现运动学耦合所需要的力和/或扭矩。这些力和/或扭矩可以被称为虚拟的/人工的/动力学上的力和/或扭矩。这是因为它们不是作用在系统上的真实力和/或扭矩,而是通过系统计算以反映系统的运动学约束和动力学约束的力和/或扭矩,并且然后其通过系统被施加,使得操作者经由触觉反馈可以感知系统的约束等。换句话说,计算子模块,例如求解器子模块,配置成确定维持主机器人手臂和/或从机器人手臂上的运动约束所需要的至少一个虚拟力和/或至少一个虚拟扭矩,并且其中计算子模块还配置成还基于至少一个虚拟力来确定用于主机器人手臂的关节移动命令,以及用于从机器人手臂的关节移动命令。因此,概念上的虚拟力在这里被明确地表示出来。
[0030] 根据一些实施方案,诸如求解器子模块的计算子模块配置成确定在任何运动学配置中维持运动约束所需要的至少一个虚拟力和/或至少一个虚拟扭矩。因此,计算子模块在此配置成对于从机器人手臂和/或主机器人手臂的任何运动学配置,计算虚拟力和/或虚拟扭矩,以便实施动力学约束。
[0031] 根据一些实施方案,主机器人手臂和从机器人手臂具有不同的运动学特性和/或具有不同的自由度(DOF,degrees of freedom)。因此,在所提出的系统中,不需要具有主机器人手臂和从机器人手臂的相同的运动学或相同数量的自由度。根据一些实施方案,控制单元配置成计算用于另一主机器人手臂的关节移动命令和/或用于另一从机器人手臂的关节移动命令,而无需对控制单元重新编程。在这里,重新编程意味着改变系统软件或机器人程序,以应对主手臂和从手臂属性的不可预见的组合。这样的改变,对于任何现有技术解决方案是需要的,将是有问题的,因为这将需要用户站点通常不具备的能力。相反,根据本发明,应用约束在约束模块中以说明性方式表达,其经由求解器产生必要的计算。
[0032] 根据一些实施方案,系统配置成记录所确定的关节移动命令和从外力数据。根据一些实施方案,系统配置成基于在与从机器人手臂相关的框架中表示的记录的产生的移动,以及基于所记录的对同一框架中的工件产生的/施加的力,来确定机器人程序或机器人指令。根据一些实施方案,机器人程序包括至少一组指令。
[0033] 根据一些实施方案,主耦合框架和从耦合框架之间的运动学耦合在任务空间中被定义。任务空间(也称为操作空间)是指其中规定与机器人任务相关的笛卡尔框架的运动和力的空间。该框架可以例如附接到末端执行器、由末端执行器保持的物体或者机器人在其上工作的固定的或移动的物体。
[0034] 根据一些实施方案,动力学模型是非线性动力学模型,例如在机械多体效应方面和在用于适当动力学行为的非线性反馈方面。这里应当提到,例如在现有技术中发现的线性模型是非线性模型的特殊情况。因此,本发明处理由系统的物理特性导致的真实世界动力学的更一般的情况,其不同于使用标准闭环控制获得的动力学,标准闭环控制通过致动允许更自由地修改动力学。
[0035] 根据一些实施方案,主外力数据基于主机器人手臂的至少一个关节的关节运动数据和/或关节位置数据和/或电机信号数据来确定,并且其中从外力数据基于从机器人手臂的至少一个关节的关节运动数据和/或关节位置数据和/或电机信号数据来确定。根据一些实施方案,外力数据分别从主机器人手臂或从机器人手臂的至少一个关节的一个或数个扭矩传感器和/或关节力数据和/或电机信号数据获得。
[0036] 根据一些实施方案,控制单元配置成在主机器人手臂和从机器人手臂之间实现力和扭矩的双向传递,使得根据从机器人手臂和/或主机器人手臂的任何受限的和奇异位形来遵从触觉反馈。在这里双向意味着实际上同时传递控制信号,使得力相互作用与可能是非因果的模型(以说明性方式表达的DAE)一致。
[0037] 根据一些实施方案,主机器人手臂与从机器人手臂是机械地分离的。因此,从机器人手臂和主机器人手臂可以是单独的手臂,例如属于不同的机器人或者属于具有两个物理手臂的同一机器人。
[0038] 根据一些实施方案,从机器人手臂是虚拟的从机器人手臂。然后,从机器人手臂作为虚拟环境的部分是虚拟的。根据一些其它实施方案,从机器人手臂和主机器人手臂是相同的手臂,但是布置有另外的力感测装置,以便确定主力和从力,即主外力数据和从外力数据。被操作的从机器人手臂于是是物理的,但是与主机器人手臂是相同的手臂。
[0039] 根据一些实施方案,触觉界面模块配置成将从机器人手臂上的至少一个限制映射成至少一个直观的力反作用,控制单元配置成将该至少一个直观的力反作用再现作为主机器人手臂的触觉反馈。
[0040] 根据一些实施方案,直观的力反作用对应于主机器人手臂和从机器人手臂共有的共同工件上的直接运动学耦合。
[0041] 根据第二方面,本公开提出了一种用于指示机器人的方法。该方法包括:确定表示操作者和主机器人手臂之间的力相互作用的主外力数据,以及确定表示从机器人手臂和工件之间的力相互作用的从外力数据。该方法还包括基于主外力数据、从外力数据、主机器人手臂的模型(即,动力学模型)、从机器人手臂的模型(即,动力学模型)、以及主机器人手臂的指定主耦合框架和从机器人手臂的指定从耦合框架之间的所定义的耦合,即运动学耦合,以及在遵守由动力学模型施加的约束的同时,通过加强动力学模型(包括用于实现运动学耦合的力/扭矩)之间的关系,导致主耦合框架的速度和从耦合框架的速度相互关联,来计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令。该方法还包括根据关节移动命令控制主机器人手臂和从机器人手臂。然后,操作者从反映主机器人手臂和从机器人手臂的动力学的力相互作用中接收触觉反馈。主机器人手臂和从机器人手臂的动力学由它们的物理特性和它们各自(或共同)的控制系统/控制单元产生。来自力相互作用的触觉反馈可以反映系统的进一步的动力学特性,如结合系统所解释的以及将在下面进一步解释的。
[0042] 使用该方法可以实现与使用该系统相同的积极效果,并参考了上面的相应部分。
[0043] 根据一些实施方案,计算包括在遵守由动力学模型施加的约束的同时,基于该多个运动约束来计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令,使得实现对应的受约束的运动。换句话说,根据一些实施方案,计算包括计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令,使得另外的运动约束被遵守。另外的运动约束,即多个运动约束中的一个,包括,例如关节极限、一对框架之间的距离、一对关节的耦合或用于任务(例如,以一定的力沿表面移动)的运动约束。这里应当提到的是,所提到的运动学耦合也是运动约束。运动约束可以由用户预定义。
[0044] 根据一些实施方案,计算包括确定微分代数方程组的解,该微分代数方程组定义了系统的动力学和在遵守由动力学模型施加的约束的同时实现运动学耦合所需要的力和/或扭矩之间的关系,并且使用该解来计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令。下面将更详细地解释微分代数方程组。
[0045] 根据一些实施方案,该计算包括在遵守由动力学模型施加的约束的同时,计算解,该解包括实现运动学耦合所需要的力和/或扭矩。这些力和/或扭矩可以被称为虚拟的力和/或扭矩。这是因为它们不是作用在主机器人手臂和/或从机器人手臂上的真实力和/或扭矩,而是通过该方法来计算以反映动力学模型、主机器人手臂/从机器人手臂等的约束的力和/或扭矩,然后由该方法应用这些力和/或扭矩,使得操作者可以经由触觉反馈感知约束。换句话说,在一些实施方案中,计算包括确定维持主机器人手臂和/或从机器人手臂上的运动约束所需要的至少一个虚拟力,并且还基于该至少一个虚拟力来确定用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令。因此,可以明确地计算概念上的虚拟力。
[0046] 根据一些实施方案,计算包括确定在主机器人手臂和/或从机器人手臂的任何运动学配置中维持运动约束所需要的至少一个虚拟力和/或至少一个虚拟扭矩。因此,主机器人手臂和/或从机器人手臂的任何运动学配置均被遵守并因此被允许。
[0047] 根据一些实施方案,该方法包括记录所确定的关节移动命令和从外力数据。根据一些实施方案,该方法包括基于记录的关节移动命令和从外力数据确定机器人程序或机器人指令。根据一些实施方案,该方法包括基于在与从机器人手臂相关的框架中表示的记录的产生的移动,以及基于所记录的对同一框架中的工件产生的/施加的力,来确定机器人程序或机器人指令。因此,可以监控、确定和/或记录关节移动命令或多个命令和从手臂的外力、与从机器人手臂相关的框架的产生的移动、所记录的对工件产生的/施加的力,以形成指令,例如运动指令。根据一些实施方案,机器人程序包括至少一组指令。因此,可以由至少一组指令形成机器人程序。
[0048] 根据一些实施方案,该方法包括基于主机器人手臂的至少一个关节的关节运动数据和/或关节位置数据和/或电机信号数据来确定主外力数据,以及基于从机器人手臂的至少一个关节的关节运动数据和/或关节位置数据和/或电机信号数据来确定从外力数据。根据一些实施方案,该方法包括从主机器人手臂或从机器人手臂的至少一个关节的一个或数个扭矩传感器和/或关节力数据和/或电机信号数据获得外力数据。因此,清晰的力感测,或从电机扭矩的观察,可以用于确定外力。
[0049] 根据一些实施方案,计算包括在主机器人手臂和从机器人手臂之间实现力和扭矩的双向传递,使得根据从机器人手臂和/或主机器人手臂的任何受限的和/或奇异位形来遵从或调节触觉反馈。
[0050] 根据一些实施方案,主机器人手臂与从机器人手臂是机械地分离的。
[0051] 根据一些实施方案,从机器人手臂是虚拟的从机器人手臂。
[0052] 根据一些实施方案,计算包括将对从机器人手臂的至少一个限制映射成至少一个直观的力反作用,并且将该直观的力反作用再现作为主机器人手臂的触觉反馈。根据一些实施方案,直观的力反作用对应于主机器人手臂和从机器人手臂共有的共同工件上的直接运动学耦合。
[0053] 根据第三方面,本公开涉及包括指令的计算机程序,当该程序由控制单元或连接到计算机的计算机执行时,该指令导致控制单元根据本文公开的方法步骤中的任一个执行该方法。
[0054] 根据第四方面,本公开涉及包括指令的计算机可读介质,当由控制单元或连接到控制单元的计算机执行时,该指令导致控制单元根据本文中所描述的任何实施方案中的任一个执行该方法。
[0055] 附图简述
[0056] 图1图示了根据一些实施方案的两手臂式协作机器人
[0057] 图2图示了根据一些实施方案的控制架构。
[0058] 图3更详细地图示了图2的控制架构的一部分。
[0059] 图4图示了根据一些实施方案的方法的流程图
[0060] 详细描述
[0061] 定义
[0062] 主机器人手臂:机器人手臂或任何运动设备或连杆,其被连续地或临时地布置成经由至少一个交互作用点,例如末端执行器或工具中心点(TCP),受物理操作者交互作用的影响。经由任何这样的交互作用点的影响可以是呈一维至六维的力和扭矩的任意组合。多个交互作用点的同时使用允许超过六个维度,例如,用于影响末端执行器和冗余(从)机器人手臂的运动学配置两者。
[0063] 从机器人手臂:机器人手臂或任何运动设备或连杆,其连续或临时地布置成用于(虚拟或物理)运动,这些运动旨在经由至少一个交互作用点,例如末端执行器或TCP,对(虚拟或物理)环境产生影响。
[0064] 约束模块:控制系统模块,其定义并储存运动约束,例如一对耦合框架之间的耦合。运动约束可以例如根据一对框架的相对位置和/或定向、距离耦合、一对关节的耦合以及诸如关节极限和任务约束的其它运动约束来定义。一对耦合框架之间的耦合可以包括主机器人手臂和从机器人手臂之间的映射。约束模块可以包括多对耦合框架之间的多个耦合。优选的约束模块实施方式对于机器人配置(运动学、末端执行器、位置等)以及对于当前任务是通用的。
[0065] 约束:该系统受到不同类型约束的影响。由系统的物理属性(例如机械系统的构造或环境)产生的约束可以被称为实际的、内在的或自然的约束。由控制系统/控制单元产生的约束可以被称为计算的约束(或强制约束)。计算的约束产生计算的力/扭矩。系统的约束可以分为运动约束和动力学约束。运动约束包括运动学耦合和几何约束。动力学约束由系统的动力学引起。
[0066] 虚拟力(VF)或虚拟扭矩(VT):计算的力,相应计算的扭矩,用于维持主机器人手臂和从机器人手臂之间的耦合,并遵守其它运动约束(关节极限等)。运动约束,例如运动学约束,由虚拟约束施加,其导致虚拟力和/或虚拟扭矩。因此,作为对约束(预先定义的约束,或者系统中固有的约束)的响应,对于每个手臂,计算一个或数个力/扭矩并应用于系统中。系统可能同时受到数个不同约束的影响,并且然后所计算的力/扭矩是对所有数个不同约束的响应。
[0067] 求解器:微分代数方程(DAE)求解器,它使用约束模块中的约束、主机器人手臂的模型和从机器人手臂的模型来计算随时间的虚拟力/虚拟扭矩。任务可以通过结合DAE组的状态转换系统的说明性符号描述来完成,其中DAE组需要求解器来确定实际的控制输出,例如运动命令或伺服设定点。通过也以说明性方式来表示约束,通常根据一些符号数学软件包,新的机器人任务和新的装备/机器人可以被合并,而无需重新编程。
[0068] 沉浸式:当操作者例如通过系统能够完全专注于包括与工件的力相互作用的任务时,使得操作者可以直观地执行该任务,其中在遵守约束的同时,系统通过从操作者向机器人传递运动和力来支持操作者完全专注于该任务,并且反之亦然。这样,操作者不必花费认知上的努力来遵守由系统本身引起的任何约束,因为这些约束以直观的方式传递给操作者。该系统通过将内在的或需要的约束作为触觉反馈反映给操作者来支持操作者,同时将运动和力从操作者传递给机器人,并且反之亦然。操作者因此通过机器人体验真实世界。
[0069] 沉浸式界面:操作者界面,这里用于以沉浸方式使操作者参与的动觉示教。
[0070] 触觉反馈:通过与操作者的物理接触来传播力,从而感知到触感。
[0071] 沉浸式反馈:经由控制系统或控制单元向操作者提供触觉反馈,使得沉浸式界面与直接视觉反馈一起实现。
[0072] 力相互作用:主机器人手臂和操作者之间以及从机器人手臂和工件之间的双向的力交互作用。
[0073] 主机器人手臂上的交互作用点:主手臂上的点,或更一般地说是手柄,被指定用于提供与操作者的力交互作用,通常对于力和扭矩而言,以六个维度提供与操作者的力交互作用。然而,结合的手柄或特定设备可以将影响限于较少的维度。可能存在多个点(例如,每个手指一个),但是在下面假设一个等效点(例如,表示具有与多个手指力相同效果的等效手柄)。
[0074] 从机器人的手臂上的交互作用点:从机器人手臂上的一个点或多个点,例如作为末端执行器附接到从机器人手臂的端点的执行器或安装到从机器人手臂的肘部的执行器。
[0075] 耦合框架:牢固地附接到主机器人手臂上的点的坐标框架,以及从机器人手臂上的对应框架,其中主坐标框架和从坐标框架通过根据本发明的控制来耦合。对于主手臂和从手臂中的每一个,至少有一个耦合框架。一对耦合框架包括主机器人手臂的耦合框架和从机器人手臂的对应耦合框架。因此,一对耦合框架包括主耦合框架和从耦合框架。
[0076] 本公开涉及一种用于任务演示的沉浸式触觉界面,其中操作者可以通过机器人来感知和做动作。这是通过在动力学级上耦合两个机器人手臂或系统来实现的。由手臂或机器人中任一个的奇异位形或触及范围(reach)引起的限制可以自然地作为触觉反馈反映到另一个。
[0077] 首先将描述该主题的介绍。此后是示例性机器人和其中可以使用沉浸式触觉界面的其它示例的描述,以及沉浸式触觉界面本身的描述。然后,将描述使用沉浸式触觉界面来指示机器人的方法。
[0078] 机器人可以被示教以处理多个任务。然而,许多任务仍然是手动执行的,因为对机器人进行编程以实现类似的性能过于困难。通常,这些任务涉及与物体或环境的交互,其中任务的成功很大程度上取决于人类的技能。为了对机器人编程,这些技能需要转移到机器人身上。对于人类而言,最自然的方式是经由演示来实现。对于通过演示的示教,如果机器人不具有与进行演示的操作者相似的运动学结构,则机器人运动和人类运动之间的映射将不是微不足道的。通过使用机器人作为任务演示的一部分,该问题可以被完全避免。因此,这种方法已被广泛用于人类技能的获取。尽管如此,由于机器人的机械特性,诸如惯性和摩擦,人和机器人之间的界面对于精确传递运动来说可能是不方便和困难的。尽管柔性运动控制可以用来减少惯性/摩擦力,但是工业机器人的直接示教仍然是有限的。此外,操作者、机器人和工件之间的机械耦合使得不可能忠实地记录任务的所需要的力值。因此,用于演示任务的界面可以通过允许操作者感知机器人系统的差异和限制来促进。
[0079] 物理机器人,如果装备了力控制能力,可以被用作触觉设备。然而,为了正确定义待使用机器人可用的末端执行器来执行的力交互运动,力控制应当经由机器人用于运动命令,从而以后在实际物理环境中是有用的。在包括机器人及其末端执行器在内的装备以及包括工件和外围设备在内的环境的精确建模的情况下,执行任务的机器人实际上是这样做的,并且仅需要充当触觉设备的一个物理机器人。
[0080] 以前存在的触觉交互的实现在工业上是不适用的。主要原因是,在任何现实的设置中,有也需要被管理的运动约束。以前不存在对这些约束及其对应用的影响的充分的认识和分类,也没有对它们的适当的处理,使得可以创造沉浸式的操作者体验。透明度(transparency)还受到主设备或从设备的结构的限制。允许手臂具有不同的构造,大大增加了演示的灵活性。例如,任务演示可以在工作空间的对操作者更方便的一部分中执行。然而,当两个机器人系统在主-从配置中被采用时,它们的工作空间被限制到两个系统同时可到达的点。这为机器人定义了共同工作空间。在该共同工作空间的边界处,系统中的一个或两个通常处于具有降低的可操作性的奇异位形中。
[0081] 如前面已经提到的,在机器人编程背景下,以前存在的技术不被认为有效地定义交互作用力。双手臂机器人的最近的工业发展为进步之路提供了可能,因为一个手臂很容易地可利用以充当触觉界面。对于这种机器人,动机包括与短周期时间结合的每只手臂的最大功率的安全水平、通过避免固定装置提高灵活性、与人类工作场所的兼容性以及总体的可操作性。此外,大多数现代机器人控制器具有所谓的多移动功能,这意味着两个或更多个机器人可以通过实时通信链路连接,并一起编程为双手臂机器人或具有多个手臂的多手臂机器人。
[0082] 下面将参照附图描述用于指示机器人的发明系统1和方法。机器人通常是普通的机器人,其未被专设计成触觉设备。因此,本公开提出了一种提供沉浸式用户体验的通用方法。利用来自机器人或其模型的视觉和触觉反馈,操作者可以从机器人的角度理想地感觉和感知任务,因此能够进行包括力规范(force specification)在内的精确演示。
[0083] 起初,每个手臂可以使用导入设置自由地移动。系统启动后,手臂相对于末端执行器之间的初始固定偏移同步移动。这构成了沉浸式触觉界面,其中操作者可以在接收触觉反馈的同时影响环境。
[0084] 如前面解释的,机器人在这里被定义为具有一个或数个手臂的可编程操纵器,每个手臂任选地装备有一个或数个末端执行器,并且一个或数个手臂的关节由控制器控制。图1图示了可以包括在系统1中的机器人10。所描绘的机器人10是两手臂或双手臂协作机器人,其布置成根据具有计算机指令的程序对工件4进行操作。机器人10包括第一手臂2和第二手臂3。第一手臂2包括多个连杆和关节,并且第二手臂3包括多个连杆和关节。连杆和关节通常称为轴。每个轴由致动器(即,伺服控制电机)经由传动装置驱动。第一手臂2布置有呈示教手柄形状的末端执行器11。第二手臂3布置有呈抓爪(gripper)形状的末端执行器
17。这里抓爪保持工件4。每个手臂2、3具有七个轴。图中明确提到了对当前应用可能很重要的一些轴。末端执行器11附接到第一手臂2的第七轴2a。第七轴2a包括定义第一端部凸缘框架的第一端部凸缘,末端执行器11附接到第一端部凸缘。末端执行器11定义第一工具中心点,TCP1,该中心点是末端执行器11的中心点。末端执行器11还定义第一TCP框架,其源自TCP1。第一手臂2的第四轴2b,也称为肘部,定义第一手臂2的肘部框架。因此,第一手臂1的肘部框架相对于第一手臂2的肘部被定义。转向第二手臂3,末端执行器17附接到第二手臂3的第七轴3a。第七轴3a包括定义第二端部凸缘框架的第二端部凸缘,末端执行器4附接到第二端部凸缘。末端执行器4定义第二工具中心点TCP2,其是末端执行器4的中心点。末端执行器4定义第二TCP框架,其源自TCP2。第二手臂3的第四轴3b,也称为肘部,定义第二手臂3的肘部框架。因此,第二手臂3的肘部框架相对于第二手臂3的肘部被定义。
[0085] 机器人10布置成由控制器16控制。控制器16包括:处理装置,例如一个或数个处理器16A;以及存储装置,例如一个或数个存储单元16B。具有计算机指令的程序可以被加载到存储单元16B中,并且当由处理器16A执行时,机器人10根据计算机指令做动作。控制器16因此被编程为使系统1根据计算机指令工作。为了产生具有用于机器人10的轨迹的程序,机器人10可以由操作者指示,如将在下文中解释的。
[0086] 系统1的手臂中的至少一个手臂是物理手臂,被称为主机器人手臂,布置成受操作者交互的影响。因此,图1中的第一手臂2可以被称为主机器人手臂。操作者因此可以与主机器人手臂交互,例如经由附接到主机器人手臂的工具凸缘的末端执行器11,这里是示教手柄。系统1还包括第二手臂3,称为从机器人手臂,其布置用于与工件4交互。因此,图1中的第二手臂3可以被称为从机器人手臂。从机器人手臂可以是虚拟的从机器人手臂或物理的从机器人手臂。如果从机器人手臂是虚拟的从机器人手臂,那么从机器人手臂作为虚拟环境的部分是虚拟的。根据一些实施方案,主机器人手臂与从机器人手臂是机械地分离的。主机器人手臂和从机器人手臂于是均是物理的机器人手臂。根据一些其它实施方案,从机器人手臂和主机器人手臂是相同的手臂,但是布置有另外的力感测装置,以便确定主力和从力,即主外力数据和从外力数据。被操作的从机器人手臂于是是物理的,但是与主机器人手臂是相同的手臂。在一些实施方案中,主机器人手臂可以被视为用于控制从机器人手臂的操纵杆。系统1还包括控制单元5,控制单元5包括诸如一个或数个处理器5A的处理装置,以及诸如一个或数个存储单元5B的存储装置。控制单元5可以包括在控制器16中,或者可以与控制器16分离。控制单元5可以例如是独立的计算机。控制单元5可以将触觉界面实现为触觉界面模块,如将在下面解释的。典型地,下面将解释的模块和子模块可以是实现为软件并加载到存储单元5B的存储器中的程序模块。
[0087] 控制单元5还配置成确定表示操作者6和主机器人手臂之间的力相互作用2A(图2)的主外力数据。这里的力相互作用表示主机器人手臂和操作者之间的双向的力交互作用。主外力数据例如基于主机器人手臂的至少一个关节的关节运动数据和/或关节位置数据和/或电机信号数据来确定。可选地,主外力数据从一个或数个力/扭矩传感器20(图2)(附接到主机器人手臂的腕部和/或一个或数个关节)和/或从来自主机器人手臂的关节力数据和/或电机信号数据获得。控制单元5还配置成确定表示从机器人手臂和工件4之间的力相互作用3A(图2)的从外力数据。这里力相互作用表示从机器人手臂和工件之间的双向的力交互作用。从外力数据例如基于从机器人手臂的至少一个关节的关节运动数据和/或关节位置数据和/或电机信号数据来确定。可选地,从外力数据从一个或数个力/扭矩传感器30(图2)(附接到主机器人手臂的腕部和/或一个或数个关节)和/或从来自从机器人手臂的关节力数据和/或电机信号数据获得。最佳地,主外力数据和从外力数据表示手臂2、3的所有关节的估计的或测量的扭矩,并且任选地从两个手臂2、3的末端执行器处的力旋量(wrench)(力和扭矩)获得,从传感器测量值中检索或者如在“Estimating robot end-effector force from noisy actuator torque measurements(由噪声致动器扭矩测量估计机器人末端执行器力)”(M.Van Damme等人,Proc.IEEE机器人与自动化国际会议(ICRA),第1108-1113页,中国上海,2011年5月9日至11日)中解释的那样来估计。例如,主机器人外力数据和从机器人外力数据分别从驱动关节的一个或数个致动器的扭矩/力和位置读数,或者从安装到手臂2、3的力/扭矩传感器检索。力/扭矩传感器可以是腕部安装的力传感器。
如技术人员所已知的,致动器的扭矩可以从由致动器消耗的电流中读出,并然后用于确定其它扭矩和力。
[0088] 触觉界面总体上参照图2来描述。触觉界面被实现为控制单元5中的软件。如附图中所图示,主机器人手臂2布置成与控制单元5通信,用于接收对主机器人手臂2的移动命令(例如,经由控制器16)和用于主机器人手臂2的位置和/或扭矩的反馈。此外,从机器人手臂3布置成与控制单元5通信,用于向从机器人手臂5传送移动命令(例如,经由控制器16),并且用于从机器人手臂3的位置和/或扭矩的反馈。控制单元5还包括用于实现触觉界面的触觉界面模块7。当操作者6在主机器人手臂2的任意点(这里称为交互作用点)上施加力时,控制单元5配置成在两个手臂2、3中产生移动,该移动由所施加的力引起。如上面所表示的,控制单元5接收主外力数据和从外力数据。从机器人手臂3布置成对物体4进行操作,并且从机器人手臂3遇到的限制通过触觉界面作为触觉反馈经由主机器人手臂2传递给操作者6。触觉界面模块7因此配置成计算两个手臂2、3中物理上一致的运动。操作者6获得从机器人手臂3和物体4之间相互作用的视觉反馈13。因此,操作者6经由操作者6和主机器人手臂2之间的力相互作用与从机器人手臂3交互,并且可以视觉上看到结果,例如从机器人手臂3与物体4交互。从机器人手臂3和物体4之间的交互产生它们之间的力相互作用3A,该力相互作用
3A在从外力数据中得到反映。控制单元5还可以包括与触觉界面模块7交互的程序模块12。
程序模块12包括用于以不同模式设置控制单元5或者启用控制单元5的特定功能的程序。例如,控制单元5以及因此触觉界面模块7可以配置成以不同的操作模式设置,例如“激活指令模式”、“停用指令模式”、“记录模式”、“设置交互框架模式”等。系统1可以设置有用户界面,用户界面连接到控制单元5,并且布置成基于从操作者6到用户界面的操作者命令14来改变控制单元5的模式,并从而改变触觉界面模块7的模式。例如,程序模块12可以包括激活和停用机器人10的指令模式的程序,该程序允许移动主机器人手臂和从机器人手臂中的任何一个或同时移动两个。程序模块12还可以包括在“记录模式”下记录产生的轨迹和力的程序。
在“设置耦合框架模式”中,操作者6可以经由用户界面为触觉界面模块7指定主机器人手臂的一个或数个耦合框架,以及从机器人手臂的一个或数个耦合框架。耦合框架被设置,因此指定为成对的。
[0089] 在图3中,更详细地图示了触觉界面模块7。触觉界面模块7包括定义主机器人手臂2的指定主耦合框架和从机器人手臂3的指定从耦合框架之间的运动学耦合的约束子模块
8,使得主耦合框架的速度和从耦合框架的速度相互关联。换句话说,约束子模块8定义了所描述的耦合框架之间的耦合。主机器人手臂2的指定耦合框架可以是主机器人手臂2上的任何已知点。例如,指定耦合框架可以是工具中心点,其定义工具框架或TCP框架,并且其中末端执行器11,这里是示教手柄(图1),附接到主机器人手臂2。指定耦合框架也可以是主机器人手臂2的端部凸缘框架或肘部框架。此外,从机器人手臂3的指定耦合框架可以是从机器人手臂3上的任何已知点。例如,指定耦合框架可以是工具中心点,其定义工具框架或TCP框架,并且其中末端执行器17(图1)附接到从机器人手臂3。指定耦合框架也可以是从机器人手臂3的端部凸缘框架或肘部框架。因此,指定耦合框架由牢固地附接到所讨论的机器人手臂的指定点的局部框架来定义。
[0090] 触觉界面模块7还包括计算子模块9,例如求解器子模块,其配置成在遵守由动力学模型施加的约束的同时,基于主外力数据、从外力数据、主机器人手臂的动力学模型22、从机器人手臂的动力学模型32以及包括用于完成运动学耦合的力/扭矩的动力学模型之间的关系,来计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令。这是为了完成指定耦合框架之间的运动学耦合以及其它运动约束。在一些实施方案中,计算子模块9使用求解器,例如DAE求解器,其使用动力学模型22、32和约束模块8中的运动学耦合来计算虚拟的/计算的力/扭矩15。动力学模型22、23在这里被描绘为框,但是应当理解,动力学模型22、23被实现为程序模块。此外,虚拟的/计算的力/扭矩15被图示为带有虚线的框,以明确地描绘虚拟的/计算的力/扭矩,但是应当理解,虚拟的/计算的力/扭矩是针对确定命令的一个计算步骤。虚拟的/计算的力/扭矩是一个或数个计算的力/扭矩,以在遵守诸如关节极限等的其它运动约束的同时,保持主机器人手臂和从机器人手臂的耦合框架之间的定义的运动学耦合。换句话说,计算子模块可以配置成确定维持主机器人手臂和/或从机器人手臂上的运动约束所需要的至少一个虚拟的/计算的力/扭矩,并且其中计算子模块还配置成也基于该至少一个虚拟力来确定用于主机器人手臂的关节移动命令以及用于从机器人手臂的关节移动命令。根据一些实施方案,计算子模块9被配置成确定在任何运动学配置中维持运动约束所需要的至少一个虚拟的/计算的力/扭矩。
[0091] 约束子模块8可以包括多个运动约束。多个运动约束或另外的运动约束是预定义的运动约束,其因此被预先定义并保存在约束子模块中。它可以包括关节极限、用于限制机器人手臂运动的约束或避免进入机器人手臂的任何限制等。计算子模块然后配置成在遵守由动力学模型施加的约束的同时,基于多个运动约束来计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令,使得完成对应的受约束的运动。
[0092] 运动约束例如是以下所描述的中的任何一个:关节极限、一对框架之间的距离、用于任务的运动约束,例如表面,等。
[0093] 主机器人手臂的动力学模型22和从机器人手臂的动力学模型32是分别表示主机器人手臂和从机器人手臂的动力学系统。它们涉及机器人手臂或多个机器人手臂的运动学以及动力学。动力学特性是用户调节参数。主机器人手臂和从机器人手臂可以配置成分别由一个控制器控制,或者可以配置成由共同控制器16控制。机器人控制器接收来自求解器的命令,如位置q、速度 和/或τm命令。这里,q表示关节的位置,其导数 表示关节的速度。τm表示关节(即关节的电机)的力/扭矩。这些关节量具有由关节伺服控制器使用的相应致动器/电机量,但是对于已知的传动特性,例如传动比,我们可以参考关节而不是致动器来等效地描述。控制器然后根据关节级命令来控制主机器人手臂和从机器人手臂。
[0094] 相应的观测器21、31可以分别使用系统的当前状态q、和来自关节的电机电流或力/扭矩τ来重建每个关节处的外力/扭矩τext。观测器21、31可以是例如扰动观测器。在“Force estimation and control in robot manipulation(机器人操作中的力估计和控制)”,A.Alcocer等人,Proc.7thIFAC,机器人控制研讨会(Symposium on Robot Control)2003(SYROCO’03),第1卷第55页,波兰弗罗茨瓦夫,2004年9月1日至3日;以及在“Estimation of environment forces and rigid-body velocities using observers(使用观测器估计环境力和刚体速度)”,Proc.IEEE机器人与自动化国际会议(ICRA),第
931-936页,加拿大圣迭戈,1994年5月8日至13日)中解释了可应用的观测器的示例。
[0095] 下面,将研究和定义系统1的运动约束。如前面所提到的,系统1中存在被定义为手臂2、3之间的运动学耦合的运动约束。可以存在为当前特定任务定义的或者为系统1的任何其它已知限制定义的更多个运动约束。手臂2、3的动力学模型意指对系统1的力约束。此外,从机器人手臂3与工件和环境之间的交互意指由环境引起的对系统1的运动约束。整个系统1还引起运动约束,例如奇点(singularities)、关节极限等。系统1的运动约束包括主机器人手臂和从机器人手臂之间的几何约束,其为约束模块8提供基础。这些运动约束在约束子模块8中预先定义。
[0096] 我们假设系统1具有总n=n1+n2自由度,其中n1是主机器人手臂的自由度且n2是从机器人手臂的自由度。主机器人手臂和从机器人手臂的广义坐标可以由q∈Rn表示,并根据将其分解成与主机器人手臂和从机器人手臂相关的坐标。主机器人手臂的指定耦合框架和从机器人手臂的指定耦合框架之间的几何约束然而可以表示为:
[0097] p2-p1=Δp,      (1)
[0098]
[0099] 其中下标1的变量涉及主机器人手臂,并且下标2涉及从机器人手臂。主机器人手臂和从机器人手臂的指定耦合框架的位置分别由p∈R3表示,并且R∈SO(3)表示定向,Δp和ΔR分别是位置和定向上的偏移。因此,这里p1是主机器人手臂的耦合框架的指定位置,并且这里p2是从机器人手臂的耦合框架的指定位置。此外,这里R1是主机器人手臂的耦合框架的指定旋转,并且这里R2是从机器人手臂的耦合框架的指定旋转。
[0100] 将方程(2)从左边乘以R1产生R2=R1ΔR。现在,通过相对于时间对两边微分,我们发现:
[0101] S(ω2)R2=S(ω1)R1ΔR+0=S(ω1)R2      (3)
[0102] 因此,
[0103] S(ω2-ω1)R2=0      (4)
[0104] 这里S(ω)是通过角速度ω与矢积对应的反对称矩阵。因此,固定的相对位置和定向意指以下运动学约束:
[0105] v2-v1=0      (5)
[0106] ω2-ω1=0      (6)
[0107] 其中vi=dpi/dt。通过在广义坐标中表达这些方程,我们找到了微分运动学关系:
[0108]
[0109]
[0110] 这里JiP(.)和JiO(.)是相对于末端执行器的平移和旋转几何雅可比行列式。通过相对于时间对几何约束微分,我们发现了运动学约束,使得:
[0111]
[0112] 其中G∈R6xn是:
[0113]
[0114] 和go=0∈Rn×1。在这里,我们已经通过将平移雅可比行列式和旋转雅可比行列式叠加定义了J1和J2。
[0115] 因此,定义约束子模块8的框架的运动学耦合尤其可以由上面的方程(1)和(2)来定义。因此,在主机器人手臂的一个耦合框架和从机器人手臂的一个耦合框架之间实现耦合。换句话说,耦合是主机器人手臂的耦合框架和从机器人手臂的相应耦合框架之间的运动约束形式。因此,耦合可以通过具有如由方程(1)和(2)所定义的框架的恒定偏移来定义。根据需要,可以用数对耦合框架来扩展控制律(control law)。手臂的自由度的数量限制了有用的对的数量。
[0116] 在许多方法中,通过优化机器人操纵器的放置或构造,在一定程度上避免了工作空间限制的问题。这里提出的方法依赖于在动力学级上两个机器人手臂之间的耦合。这种方法导致主机器人手臂和从机器人手臂之间的映射,同时允许在自由运动期间理论上完美的位置跟踪,以及当没有运动学奇点时,在末端执行器的硬接触任务中的力完美跟踪。为了在动力学级上耦合主机器人手臂和从机器人手臂,求解器可以用于连续计算用于主机器人手臂和从机器人手臂的命令。更具体地,触觉界面模块7还包括计算子模块9,例如求解器子模块,其配置成在遵守由动力学模型施加的约束的同时,基于主外力数据、从外力数据、主机器人手臂的动力学模型、从机器人手臂的动力学模型,以及动力学模型之间的关系(包括用于完成运动学耦合的力/扭矩),来计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令。因此,运动学耦合由约束子模块8定义。计算模块9因此输出用于主机器人手臂和从机器人手臂的关节移动命令。具有控制器16的系统1还配置成根据关节移动命令控制主机器人手臂和从机器人手臂。然后,操作者将从反映系统动力学的力相互作用接收触觉反馈。系统的动力学由微分代数方程定义,微分代数方程定义力和运动之间的关系,参见方程(15)-(18)。命令可以与指令相关,但是它也可以是根据轨迹生成器或任何其它计算提供的作为伺服控制参考的时间序列设定点。该系统1还配置成记录与从机器人手臂相关的框架的产生的移动,并记录对同一框架中的工件产生的/施加的力。该同一框架可以是例如从机器人手臂3的TCP框架、端部凸缘框架或肘部的框架。假设关节处的力测量值/估计值是可获得的,则可以在任何框架处估计一个或多个力。
[0117] 如果测量值仅在腕部处可获得,显然给机器人其它部分上的交互作用力的测量带来限制。然而,当操纵器手臂不移动时,主侧上的力或从侧上的力相等。在这种情况下,从主侧测量的力也可以用于从侧。
[0118] 为了解释系统1的控制原理,我们考虑非线性系统:
[0119]
[0120] y=h(x)      (12)
[0121] 其中x,u,y分别表示状态向量、控制信号和输出。我们希望找到导致y恒等于零的u(x),并希望找到系统的零动力学。我们将y定义为从机器人手臂的耦合框架和主机器人手臂的耦合框架之间的相对平移和定向与期望偏移的偏差。不失一般性,我们在这里选择将位于主机器人手臂和从机器人手臂的末端执行器处的这些框架。然而,如前述所解释的,框架可以位于其它位置。通过将输出归零,即施加虚拟的/计算的约束,确保末端执行器保持固定偏移。我们使用由方程(7)和(8)引入的运动约束作为虚拟约束来找到虚拟的/计算的力/扭矩,并从而找到系统1的运动。
[0122] 为了推导系统1的动力学,我们从运动学能量开始:
[0123]
[0124] 其中,mi和Ii分别表示连杆i的质量矩阵和惯性矩阵, 和 表示直到连杆i的部分雅可比行列式,并且Ri是从世界坐标到连杆i的旋转矩阵。因为我们的目的是补偿重力,所以我们不将势能包括在拉格朗日算符L中。因此,我们希望:
[0125] L=T      (14)
[0126] 假设只有粘性摩擦系数μv,根据拉格朗日-达朗贝尔定理,约束系统的运动方程可以推导为:
[0127]
[0128]
[0129] 其中M(q)是质量矩阵, 表示向心力科里奥利力(Coriolis force)的总效应。由运动学约束引起的广义外力和广义力分别由Qe和Qkc表示,并满足以下关系:
[0130] Qe=τ+JThe      (17)
[0131] Qkc=GTλ      (18)
[0132] 其中,τ是施加在关节处的外部扭矩的向量,he是施加在末端执行器上的力和扭矩的向量,以及 拉格朗日乘数。计算子模块9执行方程(15)和(16),并且提前模拟主机器人手臂和从机器人手臂的物理系统。模拟的输出为主机器人手臂和从机器人手臂的控制器的移动命令提供了基础。方程(15)-(18)定义了计算子模块9配置成或被编程来求解的微分代数方程组。因此,计算子模块9配置成确定该微分代数方程组的解,该微分代数方程组定义系统1的动力学和在遵守由动力学模型施加的约束的同时,实现运动学耦合所需要的力和/或扭矩之间的关系。计算子模块9还配置成使用该解来计算用于主机器人手臂
2的关节移动命令和用于从机器人手臂3的关节移动命令。手臂2、3的动力学模型因此对系统1施加约束,这取决于手臂2、3的运动学和惯性特性。计算子模块9还可以配置成在遵守由动力学模型施加的约束的同时,计算解,以包括实现运动学耦合所需要的力和/或扭矩。
[0133] 通过引入用于参数和变量的下标1和下标2,我们发现
[0134] M(q):=blkdiag(B1(q1),B2(q2))      (19)
[0135] J(q):=blkdiag(J1(q1),C2(q2))      (20)
[0136]
[0137]
[0138] 其中blkdiag(·)表示块对角串接算子(block diagonal concatenation operator),并且每个单独手臂的运动方程为
[0139]
[0140] 因此,每个手臂保持约束的控制律等于约束力,并推导为
[0141]
[0142]
[0143] 通过引入 并用u代替入,我们可以把(15)和(16)写成
[0144]
[0145]
[0146] 其中 方程(26)和(27)是标准形式(11)和(12),除了输出方程已被它的导数代替,方程(15)-(18)定义了指数为2的DAE组(a system of index-2 DAEs),它可以进行数值求解。从控制-设计的角度看,解是具有相对二阶的系统(26)和(27)的零动力学。
[0147] 让我们定义Γ-1:=GM-1GT。根据控制文献,例如,在“Non-linear control systems(非线性控制系统)”(A.Isidori,斯普林格出版社,1995)中的已知方法,可以找到最优控制u*,给出:
[0148]
[0149] 我们定义 其中ep=p2-(p1+Δp)和e0=ε作为对应于R2(R1ΔR)T的单位四元数Q={η,ε}的向量部分。状态变量反馈
[0150]
[0151] 导致
[0152]
[0153] 如果我们假设块对角矩阵Kp=blkdiag(Ktp,Kop)和Kd=blkdiag(Ktd,Kod),(30)可以写成
[0154]
[0155]
[0156] 其中
[0157] 旋转部分的稳定性可以使用李亚普诺夫函数来建立
[0158]
[0159] 时间导数沿着系统轨迹
[0160]
[0161] 通过拉萨尔(或者非线性控制理论中已知的克拉索夫斯基)引用该定理,我们得出e0=0,ω=0是全局渐近稳定的结论。因此,对于正定Kd和Kp,(30)的解指数地快速收敛到零。零动力学由下式给出:
[0162]
[0163] 其中R=In×n-P,和P=GTΓ-1GM-1。
[0164] 通过将(29)代入(24)和(25),我们观察到来自两手臂的非线性反馈如何对控制律做出贡献。假设手臂的精确模型,并且在手臂的重力和静摩擦补偿之后,这些控制律是适用的。为了实现机器人的不同于其机械特性的行为,我们可以对(35)进行数值求解并设置每个关节的参考,例如分别获得用于位置和速度设定点的参考qr和 其与使用级联位置和速度伺服控制的工业实践相一致。
[0165] 注意,即使Γ是病态的,也可以计算出运动,其是秩亏的G的结果。我们对约束条件(28)求导,以获得
[0166]
[0167] 方程(36)是欠定的方程组。一般地,它要么没有解,要么有无限多的解。当G失去秩时,通过使用伪逆,我们可以找到以下形式的解:
[0168]
[0169] 其中,K是扩展G的零空间的n×(n-rank(G))矩阵,即GK=0,s是未知的n-rank(G)向量,并且 是(36)的任何正则化最小二乘解。将 的该表达式代入(26)和(27),并将第一个方程的两边预乘以KT以消除λ,产生:
[0170]
[0171] 在(38)中,KTMK是满秩。因此,我们可以对s求解。将s代回到(37)得到 随。通过将约束力(24)和(25)代入相应手臂(23)的运动方程,很明显λ起到与外部力旋量 相同的作用。此外,我们得出结论,λ可以解释为切割力,就像两个手臂附接在末端执行器处一样。这允许基于顿-欧拉公式的虚拟约束的替代实现,其中通过考虑连杆之间的交互作用力来导出产生的闭合链的动力学。
[0172] 如果手臂静止,即所有时间导数等于零,并且手臂中的任一个受到与另一手臂相反的外部力旋量的冲击(he2=-he1),则很容易验证λ=he1是(15)的解。这保证了在稳定状态下,当存在硬接触且没有奇异位形时,末端执行器处的力完美地传递到另一个手臂。当Ji失去秩时,平衡不仅可以通过相等的力和相反的力达到,而且可以通过:
[0173]
[0174]
[0175] 其中,he∈R6是任意的力旋量,并且N(·)表示零空间。
[0176] 该提出的系统的独特之处在于,它在动力学级上耦合主机器人手臂和从机器人手臂,确保耦合框架的速度相同。这产生两个不一定相似的手臂之间的灵活映射,同时允许力和耦合框架位置的透明传递。具体而言,它允许使用安装在任何表面上并具有任何初始位置的任何六自由度手臂或冗余手臂,以充当主机器人手臂或从机器人手臂。手臂中的任一手臂可以通过奇异位形,同时触觉反馈被调节,同时遵从限制的方向。通过在关节级使用估计的力,手臂的任何点可以作为触觉界面。在我们的模型中,在手臂的作用方面没有差别。因此,当分别引用操作者侧或工件侧时,主和从仅是为了命名。
[0177] 对于系统1,应用的实际约束,例如从机器人手臂的工作空间限制,以自然的方式传递到操作者,而人工约束,例如通过主机器人手臂的运动奇点,由系统1管理。在两种情况下,整个系统因此支持操作者6的应用焦点。由此以直观的方式为操作者6提供沉浸式反馈。换句话说,控制单元5以及因此的触觉界面模块7配置成实现主机器人手臂和从机器人手臂之间的力和扭矩的双向传递,使得根据受限的和/或奇异位形遵从或调节触觉反馈。此外,控制单元5以及因此的触觉界面模块7可以配置成实现动力学透明性,包括通过根据工件4的虚拟的/计算的力/扭矩的控制来考虑与质量相关的力,使得实现机器人运动规范的沉浸式示教。
[0178] 在任务定义期间,当前手臂或交互端口中的每一个的主角色和从角色的分配可以变化。例如,如图1中所示,当教导双手臂机器人10时,在指示第二手臂3(于是为从机器人手臂)的装配操作期间,第一手臂2形成触觉设备,该触觉设备是主机器人手臂。在随后的操作中,由于工作空间内的可达性由第一机器人手臂2更好地执行,所以第二机器人手臂3将是主机器人手臂,并且第一机器人手臂2是从机器人手臂。
[0179] 作为特殊但说明性的情况,假设手臂是相似的,并且唯一的区别是安装平面和关节值。 表示手臂的广义坐标,以及R0表示手臂2的安装平面相对于手臂1的旋转。因此,通过在旋转框架中表达雅可比行列式和惯性矩,我们发现
[0180]
[0181]
[0182] 这里省略了诸如重力的保守力,因为它们由机器人控制器处理,并因此这证明了因此 并且我们得出结论,手臂的动力学在q坐标上是相同的。因此,如预期的,主机器人手臂和从机器人手臂的模型表达相同的动力学。
[0183] 为了将这种方法扩展到冗余机器人,可以添加另外的虚拟约束。这允许从任一侧影响所有自由度,而不仅仅是维持末端执行器之间偏移所需要的自由度。接下来,我们将具体展示如何引入关节空间中的约束以及相对距离上的约束。假设Hi是其中每行恰好具有对应冗余关节的一个非零元素的矩阵。因此,我们将关节空间中的约束写成
[0184] H2q2-H1q1=Δq      (41)
[0185] 其中Δq是常数向量。通过关于时间对(41)求导,我们得出:
[0186]
[0187] 现在,将这个约束增加到(40)导致
[0188]
[0189] 并且其余的计算保持和之前一样。因此,这里约束子模块8定义了主机器人手臂的关节和从机器人手臂的对应关节之间的运动学耦合。因此,耦合可以通过具有一对关节(即,主机器人手臂的关节和从机器人手臂的关节)的关节值之间的恒定偏移来定义,如方程(11)所定义的。根据需要,控制律可以用关节之间的数对运动学耦合来扩展。手臂的自由度的数量限制了有用的对的数量。
[0190] 在人形机器人的情况下,另一种方法可以保持肘部之间的距离。假设Δr:=r2-r1,其中ri是手臂i的肘部的向量。因此,约束可以表达为 通过对时间微分,我们发现:
[0191]
[0192] 其中Δv是肘部的相对速度。用广义坐标改写(44),导致
[0193]
[0194] 其中 表示相对于第i个肘部的平移雅可比行列式。因此,矩阵G应根据下式增广:
[0195]
[0196] 因此,这里约束子模块8定义了主机器人手臂的耦合框架和从机器人手臂的相应耦合框架之间的距离耦合。因此,耦合可以通过在一对耦合框架(即主机器人手臂的耦合框架和从机器人手臂的耦合框架)之间具有恒定的距离来定义,如方程(44)所定义的。这里,耦合框架不需要包括定向。根据需要,控制律可以用耦合框架之间的数对距离来扩展,例如允许操作者使用主手臂的手来影响从手臂肘部的推动运动,或者影响由于手臂的自由度在极限内的应用中是有用的任何方面。
[0197] 关节极限可以通过增加接近极限的排斥力来处理。出于这一目的,物理动机模型是亨特和克罗斯利模型:
[0198]
[0199] 其中,δ是压缩的量。然而,这种模型可能导致数值上非常刚性(stiff)的问题。因此,尽管有排斥力,如果关节仍朝向关节极限的方向被推动,可能出现数值问题。因此,只要关节通过排斥力达到零速度,如果δ>0,我们可以给关节加上零速度约束。当约束力在朝向关节极限的方向时,该约束被放宽(relaxed)。对于每个活动约束,在该列中一行具有一个,其中该关节已经达到其极限,并且其它地方零增加到G,即
[0200]
[0201] 其中,i是已达到其极限的关节,并且ci表示与该约束相关联的行号。使用状态的重新初始化,允许立即使关节的参考速度为零。因此,如果状态在一达到关节极限就重新启动,则位置控制机器人可能不需要排斥力。
[0202] 在触觉设备的情况中以及在许多工业设置中,允许主机器人和从机器人是不同类型是有益的(例如,由于成本、可用性和安全性)。这在双手臂机器人的情况中也很重要,因为末端执行器、构造、机械装置的不对称和工作单元布置通常形成一种设置,在该设置中,相同类型的两个手臂实际上表现为略微不同类型的两个手臂。本公开处理了不同类型的手臂的更具挑战性的情况,以及具有相同机器人的特殊情况。
[0203] 手臂是主机器人手臂并不意味着它不可以参与操作;这意味着它由操作人员命令。因此,当指示双手臂组件操作时,主机器人手臂可以保持工件,同时从机器人手臂是主动地力控制的以施加由操作者命令的那些力。然而,在这种特殊情况下,在运动/力控制中需要考虑物理的交互作用力的存在,并且如果在每个手臂上存在力感测(或根据电机扭矩的估计),则可以确定和监控主机器人手臂和从机器人手臂之间的力/扭矩关系(经由作用在工件上的力)。根据简单的力学得出,必须知道操作者物理地作用在哪个手臂上,以便为随后的自动操作唯一地定义所需要的力,在该自动操作中(之前在指令期间)从机器人手臂将被力控制,以便在另一个(之前是主)机器人手臂保持工件的同时执行所需要的操作。可选地,力控制也可以在手臂上分离,例如,考虑到与运动学配置结合的摩擦效应以及关节速度,对于降低的灵敏度而言。
[0204] 另一种特殊情况是使用双力感测/估计,在具有所指示的操作的力/扭矩控制的单个手臂上使用本发明。例如,一个力/扭矩传感器于是布置成感测操作者的力交互作用,并且一个力/扭矩传感器布置成感测末端执行器的力。也就是说,如先前双手臂操作的情况,系统1必须监控和控制施加到末端执行器(例如,施加到手臂的安装末端执行器处的端部凸缘,可能使用来自电机扭矩的估计)的力,该力与末端执行器(或端部凸缘;与从力作用其上的相同的物理主体)之间的已知物理接触分离,在该末端执行器上必须安装力/扭矩传感器(测量主人员命令力)。技术人员可以由目前技术构建这样的专用/有限的解决方案,但是原则上它将然后被绑定到这样的单手臂构造。相反,为了向所提到的更一般的情况提供可移植性,根据本发明的方法、系统和算法扩展到具有很大工业价值的一般情况,同时支持作为特殊情况的单手臂情况。为了简洁起见,在以下沉浸式动觉示教的描述中仅涵盖一般情况。
[0205] 具有触觉反馈的遥操作构架是示教系统的部分。操作者能够感知机器人将感知的,从而使他/她能够准确和直观地对完成任务所需要的程序进行编程,同时保持对机构的限制的认识。可用手臂中的一个(或临时的示教手臂)经由支持用户的集成模块用作触觉设备。它还影响应当整合到机器人指令中的运动特性。交互作用力和运动控制信号两者被记录,使得它们可以被分段和被解释以形成程序或程序设置。
[0206] 根据一些实施方案,系统1配置成记录从机器人手臂的命令关节移动和从外力数据。例如,记录的信号可以储存在控制单元5的存储单元5B中。系统1还可以配置成基于在与从机器人手臂相关的框架中表示的所记录的产生的移动,并且基于所记录的对同一框架中的工件产生的/施加的力,来确定机器人程序或机器人指令。机器人程序例如包括至少一组指令。机器人程序的建立可以包括分段,分段使用记录的信号和任选地来自操作者的输入来建立应用程序的连接,用于确定特定的机器人指令,其可以是工业机器人语言中存在的那种指令。该程序还可以激活混合力/运动控制器,以用于回放生成的轨迹。例如在Siciliano,Bruno,Khatib,Oussama(Eds.):“Springer Handbook of Robotics(斯普林格机器人手册)”,第二版,″Learning from Humans″章,Billard,Aude G.(等人),第1995-2014页,2016年,其解释了如何从记录的数据创建机器人指令的可能方式。
[0207] 在一些实施方案中,触觉界面模块7配置成将从机器人手臂上的至少一个限制映射成至少一个直观的力反作用,控制单元5配置成将该至少一个直观的力反作用再现为主机器人手臂的触觉反馈。例如,可以是这样的情况,直观的力反作用对应于共同工件上的直接的运动学耦合。具体地,主机器人手臂和从机器人手臂然后作用在同一个共同工件上,因此对于主机器人手臂和从机器人手臂是共同的。典型地,每个手臂装备有末端执行器,例如抓爪17,并且抓爪均保持在同一个工件上,例如工件4。对于这样的共用的工件,存在多个可行的力相互作用组合,这些力相互作用组合由对从机器人手臂的一个限制、一个直观的力反作用的交互作用点、由共用工件上的两个手臂形成的运动链冗余度以及工件和环境之间(在它们相互接触的情况中)的力反作用的可能组合产生。因为产生的负载情况遵循牛顿定律和本发明的原理,所以对于技术人员来说,配置控制器5和/或请求操作者输入是简单的,使得
[0208] -所有手臂的运动学特性是已知的;
[0209] -工件属性可以是已知的,或者否则已知是未知的,并然后激活负载识别和/或向用户请求数据;
[0210] -从机器人手臂限制可以通过识别(目前产品中存在的)或经由请求的用户输入来了解或确定;
[0211] -作为对主机器人手臂的触觉反馈再现的一个直观的力反作用是已知的,或者根据相对于已知点或连杆的力估计,或者根据对于如单手臂特殊情况那样的另外力感测。
[0212] 从系统1的上面描述中可以理解,共同工件的多手臂/手操纵是本发明方法的特殊情况,这将在下文中进一步详细描述。
[0213] 在一些实施方案中,直观的力反作用对应于共同的虚拟工件上的直接的运动学耦合。共同的虚拟工件是指共同的工件的模型。在一些实施方案中,运动学耦合通过笛卡尔空间控制来实现,这是将首先解释的信息情况。
[0214] 在笛卡尔空间方法中,两手臂的末端执行器代表相同的实体,尽管它们的位置和定向可能存在任意但固定的偏移量。换句话说,如果移除初始偏移,我们可以假设操纵器在同一点同时与同一对象交互。因此,这个虚拟物体上的力F和扭矩τ是来自每个手臂的交互作用力的总和:
[0215] F=F1+F2      (49)
[0216] τ=τ1+τ2      (50)
[0217] 其中指数涉及手臂。假设虚拟物体是实心的,物体的运动受以下控制:
[0218]
[0219]
[0220] 这里m是质量,D是粘性摩擦,I是惯性张量,Do是旋转阻尼,v是速度,以及ω是角速度。
[0221] 对于每个手臂,产生的关节运动是关节空间,通过以下获得:
[0222]
[0223]
[0224] 其中qi表示手臂i的关节角度,ci是初始关节值, 表示给定关节角度的雅可比行列式的伪逆。关节角度和速度输入到内部机器人控制器。
[0225] 在该笛卡尔空间方法中,没有注意内部动力学。例如,对于冗余机器人来说,仅仅通过与末端执行器交互可能无法实现用于手臂的需要构造。因此,为了得到完整的工业上有用的系统,下一步还需有一满足运动约束的关节空间解决方案。这里运动约束包括几何约束和运动学约束两者,通常分别源于应用和机器人本身。这里,当没有腕部安装的力/扭矩传感器时,可以直接使用每个关节中扭矩的估计。
[0226] 通过 来表示估计的扭矩,用于机器人的导纳控制律如下描述:
[0227]
[0228] 这里qa是导纳定律引起的参考关节角,M是需要的质量矩阵,以及D对应于需要的阻尼。笛卡尔空间中手臂的运动必须相同。根据运动约束,这意味着:
[0229]
[0230] 我们可以假设每个手臂的运动由局部导纳调节器 的贡献和另一个手臂 引起的运动组成。因此,我们可以写出:
[0231]
[0232]
[0233] 将(57)和(58)代入(56),我们发现:
[0234]
[0235] 实现该等号成立的选择是:
[0236]
[0237]
[0238] 另一种选择可以是,例如,寻找 知 使得对于某些范数(norm)最小化由于这些关系在速度级上,所以相对位置和定向可能发生漂移。
假设一个机器人是主机器人,并且另一个机器人是从机器人,这可以通过闭合用于从机器人位置和定向的回路来纠正。
[0239] 另一种可能性是镜像手臂的运动。这意味着v1,y=-v2,y,ω1,y=-ω2,y,ω1,z=-ω2,z,其中指数涉及手臂以及平移速度v和角速度ω的分量。将这些改变应用于(56),我们获得:
[0240]
[0241] 其中矩阵S定义为:
[0242] S:=diag(1,-1,1,1,-1,-1)      (63)
[0243] 在这种情况下,诱导速度的可能解决方案是:
[0244]
[0245]
[0246] 图4示出了根据一些实施方案的用于指示机器人10的方法的流程图。现在将参照该流程图描述该方法。该方法可以被实现为计算机程序,该计算机程序具有指令或计算机程序代码并被加载到控制单元5的存储单元5B中。当处理器5A执行计算机程序时,该方法可以由机器人10和操作者6从而由系统1来实现。换句话说,本公开还涉及计算机程序,其中计算机程序包括使控制单元7或连接到控制单元7的计算机或控制器执行本文中描述的方法的计算机程序代码。计算机程序代码可以存储在计算机可读介质上,以当计算机程序代码由控制单元7或连接到控制单元7的计算机执行时,执行根据本文中描述的步骤中的任一步骤的方法。
[0247] 这里,该方法被一般地解释,但是应当理解,该方法可以用于指示或教导机器人完成某项任务。该任务可以包括与工件(例如图1中所图示的工件4)的力交互作用。初始,操作者或系统1可以定义如前所描述的至少一对指定耦合框架。为此,操作者可以以“设置交互框架模式”来设置系统1。然而,该定义可以预先定义给系统1,例如保存在存储器5B中。系统1然后被设置为“激活指令模式”,其中主机器人手臂布置成受操作者交互的影响,并且从机器人手臂布置成与工件交互。主机器人手臂现在配置成充当操作者和从机器人手臂之间的触觉界面。该方法包括在步骤S1中确定指示操作者和主机器人手臂(例如,操作者6和图1的第一机器人手臂2)之间的力相互作用的主外力数据。该方法包括在进一步的步骤S2中确定指示从机器人手臂和工件(例如图1中的工件4)之间的力相互作用的从外力数据。从机器人手臂可以例如是图1的第二机器人手臂3。所描述的步骤可以同时且连续地执行,而不是以特定的顺序。步骤S1和步骤S2例如包括从观测器21、31(图3)获得新的测量值。该方法包括在进一步的步骤S3中,例如使用求解器并且基于:主外力数据、从外力数据、主机器人手臂的动力学模型、从机器人手臂的动力学模型,以及在主机器人手臂的指定主耦合框架和从机器人手臂的指定从耦合框架之间的定义的运动学耦合,以及在遵守由动力学模型施加的约束的同时,通过加强动力学模型之间的关系,包括用于实现运动学耦合的力/扭矩,来计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令,导致主耦合框架的速度和从耦合框架的速度相互关联。例如,速度被定义为在容限内是相同的;或者被定义为镜像的;或者被定义为缩放等。特别地,步骤S3可以包括监控关节极限和其它单边约束,并且如果遇到,则相应的约束被激活到动力学系统。在以说明性方式象征性表示的约束的一个实现方式中,约束可以通过合适的求解器自动添加到计算中。求解器及时提前模拟所耦合的动力学系统,例如用方程(15)和(16)指定,并且计算维持运动学约束所需要的力/扭矩,例如方程(29),例如用方程(1)和(2)指定,在方程(15)和(16)中实现为G。还可以检查所有约束是否仍然有效,并且如果无效,它们是否放松或停用,或者在所提到的说明性情况下,甚至在系统发生物理变化的情况下被移除。关节移动命令包括新的关节位置q和速度或电机扭矩τ。该方法包括在进一步的步骤S4中,根据关节移动命令来控制主机器人手臂和从机器人手臂。该步骤包括将新的关节位置q和速度q发送到用于控制主机器人手臂和从机器人手臂的低级别的机器人控制器16或多个控制器。然后,操作者从反映主机器人手臂的动力学和/或从机器人手臂的动力学的力相互作用中接收触觉反馈。
[0248] 在步骤S5中,该方法还包括记录与从机器人手臂相关的框架的产生的移动,并且记录在或对同一框架中的工件4产生的/施加的力。这些记录可以被编译成具有从机器人手臂3应当/可以遵循的目标坐标的程序。
[0249] 在应当操纵可变形物体的情况下,变形需要被感测/观察并用于估计所涉及的力,但是这里在假设的(为了清楚简化)刚性物体的情况下,外力被估计并模拟机器人的刚性体模型。然后生成的运动为真实机器人提供参考。为了适应各种耦合和约束,我们利用动力学约束,例如力约束或扭矩约束。特别是在双手臂引入式界面的情况下,我们可以表达约束,该约束确保例如主机器人手臂和从机器人手臂的两个末端执行器具有相同的平移速度和角速度。该约束例如是主机器人手臂的耦合框架和从机器人手臂的耦合框架之间的耦合。耦合可以根据一对框架的相对位置和/或定向、距离耦合或主机器人手臂和从机器人手臂的一对关节的耦合来定义。为了实现约束的物理效果,因此计算一对框架之间的耦合、虚拟力/扭矩。换句话说,在一些实施方案中,步骤S3的计算包括确定维持主机器人手臂上和/或从机器人手臂上的运动约束所需要的至少一个虚拟的/计算的力,并且还基于该至少一个虚拟力来确定用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令。这可以通过确定微分代数方程组的解来完成,该微分代数方程组定义了系统的动力学和在遵守由动力学模型施加的约束的同时实现运动学耦合所需要的力和/或扭矩之间的关系,并且使用该解来计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令。计算S3还可以包括在遵守由动力学模型施加的约束的同时,计算包括完成运动学耦合所需要的力和/或扭矩的解。
[0250] 在一些实施方案中,除了实现一对耦合框架(其可以扩展到数对)之间的耦合之外,计算包括在遵守由动力学模型施加的约束的同时,基于多个,因此另外的运动约束来计算用于主机器人手臂的关节移动命令和用于从机器人手臂的关节移动命令,使得实现对应的约束的运动。这里另外的运动约束是例如关节极限、一对关节的耦合和任务约束中的任何一个。例如,计算包括确定在任何运动学配置中也保持运动约束所需要的至少一个虚拟力。
[0251] 当操作者经由主机器人手臂指示从机器人手臂时,优选地收集数据,使得随后可以确定程序,该程序使得从机器人手臂可以执行它,以便独立地执行任务。为了实现这一点,该方法包括记录所确定的关节移动命令和记录从机器人手臂的从外力数据。另外,在一些实施方案中,该方法包括基于在与从机器人手臂相关的框架中表示的记录的产生的移动,以及基于所记录的对同一框架中的工件产生的/施加的力,来确定机器人程序或机器人指令。机器人程序可以例如包括至少一组指令。
[0252] 在示例性实施方案中,该方法包括基于主机器人手臂的至少一个关节的关节运动数据和/或关节位置数据来确定主外力数据,和/或基于从机器人手臂的至少一个关节的关节运动数据和/或关节位置数据来确定从外力数据,如结合系统1的描述所解释的。该方法可以包括分别从扭矩传感器获得外力数据和/或从主机器人手臂或从机器人手臂获得电机信号数据,如结合系统1的描述所解释的。
[0253] 该方法可以包括在主机器人手臂和从机器人手臂之间实现力和扭矩的双向传递,使得根据主机器人手臂和/或从机器人手臂的任何受限的和/或奇异位形遵从或调节触觉反馈。该方法使操作者能够获得沉浸式体验,操作者可以经由充当操作者触觉操纵杆的主机器人手臂直观地操纵从机器人手臂。
[0254] 根据一些实施方案,该方法包括将从机器人手臂的至少一个限制映射成至少一个直观的力反作用,并将该直观的力反作用再现为主机器人手臂的触觉反馈。直观的力反作用可以对应于共同工件4上的直接的运动学耦合。该方法可以包括利用笛卡尔空间控制实现运动学耦合,如先前所描述的。可选地,该方法可以包括利用关节空间控制实现运动学耦合,如先前所描述的。
[0255] 在下文中,当该方法应用于图1中所图示的机器人10时,将描述使用场景。首先,第一手臂2和第二手臂3的末端执行器11、17分别相对触觉界面模块7被定义为指定耦合框架,在指定耦合框架之间定义运动学耦合,使得它们的速度相互关联。此后,系统1的另外运动约束被调节。这可以由系统1自动完成,或者由操作者经由系统1的用户界面手动完成。另外的运动约束是例如关节极限、运动的方向等。系统1的动力学参数也被调节。这可以由系统1自动完成或由操作者手动完成。动力学参数是例如需要的摩擦、重力载荷、质量和惯性矩等。现在系统1已准备好供使用。示教模式被激活,并且每个手臂单独地移动到其初始配置。操作者通过使力作用于示教手柄11来激活同步运动,并在演示中引导从机器人手臂通过轨迹。操作者可以可选地通过控制单元5或示教手柄11上的按钮激活同步运动。在其它情况下,系统可以实现特定的力特征(force signature),如两次敲击技术手柄11或类似的等以便不与单个手臂的移动混淆。同时,系统1记录演示的轨迹和力。此后,系统1将演示中的参数提取到一组指令中,从机器人手臂的控制器可以解释该组指令。当演示会话结束时,操作者通常经由控制单元5的用户界面关闭系统1的示教模式。
[0256] 特定使用实例:
[0257] I、示教装配任务并重新编码交互作用力:
[0258] 装配任务涉及许多子任务,每个子任务需要达到一定的位置和力标准。操作者使用主机器人手臂来演示运动和所需要的力。从机器人手臂跟随主手臂的运动,并向操作者提供触觉反馈。
[0259] II、演示铣削或去毛刺所需要的力:
[0260] 在诸如铣削和去毛刺的加工任务中,接触力起着重要作用。通过使用实际机器人(如从机器人手臂)作为演示的一部分,并向操作者提供触觉反馈,所需要的力可以在程序中直观但准确地指定。
[0261] III、协调手臂移动的编程:
[0262] 有时,使用不止一个机器人手臂,并且手臂的移动不是独立的。例如,当搬运箱子时,箱子所施加的移动具有固定的关系。作为另一个示例,一个机器人单元可以由镜像彼此的移动的数个机器人组成。在这种情况下,可以使用机器人之一或另外的示教手臂向其它机器人指示任务。
[0263] IV、真实机器人或虚拟机构的触觉界面:
[0264] 在这种情况下,用户感兴趣的是远程操作机器人或者使用设备以控制虚拟现实中的机构。因为在我们的方法中考虑了动力学,所以被控制的机器人的物理特性以触觉反馈的形式由操作者感知。运动的缩放或定义运动约束也使得可以更精确地控制从机器人。虚拟模拟器还可以用于在无法访问真实设置时为机器人编程,以用于需要力交互作用的任务。
[0265] 所有使用实例所共同的是以下顺序。用户定义主框架和从框架。然后是调节运动学约束,如运动学耦合,以及另外约束,如关节极限、运动的方向等。用户可以选择性地调节系统的动力学参数、需要的摩擦、重力负载、质量和惯性矩。在此之后,系统的示教模式被激活。每个机器人手臂可以单独移动到其初始配置。通过激活双手臂引入,手臂同步移动,同时操作者接收触觉反馈。在该模式下,记录轨迹和力,并从演示中提取任务的相关参数。
[0266] 该系统可以区分机器人和工件之间的交互作用力和用于示教的力。因此,任务的所需要的力可以很容易地重建。触觉反馈还可以反映从机器人手臂的动力学特性和限制,从而帮助操作者相应地调节移动。此外,该系统不限于任何机器人运动学。例如,主从机器人可以具有不同数量的关节。
[0267] 本公开不限于以上描述的优选实施方案。可以使用各种替代方案、修改和等同物。因此,上面的实施方案不应被视为限制本公开的范围,本公开的范围由所附权利要求限定。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈