一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

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

2023-01-15 08:57:20 来源:中国专利 TAG:

用于控制机器人的方法和机器人控制器
1.本公开涉及用于控制机器人的方法和机器人控制器。
2.机器人技能可以通过从演示中学习的方法来编程,其中机器人从演示中学习技能的名义计划。然而,对实行某项任务要应用的技能可能取决于初始系统状态而变化。例如,当任务包括拾起对象时,要应用的技能可以是“从侧面拾起对象”或“从顶部拾起对象”,这取决于如何定向对象。此外,如果从侧面拾起对象,则可能必要的是重新定向该对象以在任务中进一步前进。因此,允许机器人对几个技能排序并在不断改变的情形下交替应用它们的方法是合期望的。
3.在2019年的机器人学习会议上,l. schwenkel、m. guo和m. b
ü
rger的“optimizing sequences of probabilistic manipulation skills learned from demonstration”(其在下文中被称为参考文献[1])中,描述了一种以技能为中心的方法,其中每个技能都是在各种场景下独立学习的,但不附属于任何特定任务。
[0004]
根据各种实施例,提供了一种用于控制机器人的方法,包括:提供用于执行多个技能中的每一个的演示,从演示中训练用于每个技能的机器人轨迹模型,其中每个轨迹模型是具有一个或多个初始状态和一个或多个最终状态的隐半马尔可夫模型,从所述演示中训练用于每个技能的前提条件模型以及用于每个技能的最终条件模型,所述前提条件模型针对技能的机器人轨迹模型的每个初始状态包括执行技能之前的机器人配置的概率分布,所述最终条件模型针对技能的机器人轨迹模型的每个最终状态包括执行技能之后的机器人配置的概率分布,接收任务的描述,其中任务包括按顺序和/或在分支中执行多个技能中的技能,通过以下各项生成合成机器人轨迹模型
‑ꢀ
当要在任务中按顺序执行两个技能时,通过以下各项级联技能的机器人轨迹模型
○ꢀ
在合成机器人轨迹模型中包括两个技能的轨迹模型的状态,和
○ꢀ
依据用于第一技能的最终状态的第一技能的最终条件模型的概率分布和用于第二技能的初始状态的第二技能的初始模型的概率分布之间的相似性,计算两个技能中的第一技能的轨迹模型的每个最终状态和两个技能中的第二技能的轨迹模型的每个初始状态之间的转移概率
‑ꢀ
当在任务中的分支中执行两个技能时,通过以下各项组合技能的机器人轨迹模型
○ꢀ
在合成机器人轨迹模型中包括两个技能的轨迹模型的状态,和
○ꢀ
将第一技能的状态和第二技能的状态之间的转移概率设置为零;以及根据合成机器人轨迹模型控制机器人执行任务。
[0005]
根据另外的实施例,提供了被配置为执行上述方法的机器人控制器。
[0006]
上述这种用于控制机器人的方法和机器人控制器允许自动合成操控技能以执行指定的操控任务。因此,用户或操作者不需要手动定义分支条件来在不同技能当中进行选择以执行任务。换句话说,在指定任务图之后,操作者可以直接运行它,即使任务图包括分支中的技能——即需要取决于当前系统状态(例如,机器人和/或对象配置)在不同技能之
间进行选择——亦如此。
[0007]
这在执行操控任务中节省了大量努力,因为评估分支条件需要直接访问各种传感器,诸如机器人关节状态、被操控对象的姿态。读取和记录正确的数据可能相当耗时。此外,这样的数据需要直接写入源代码,这将需要直接访问源代码。此外,所提供的控制方法和机器人控制器增加了任务执行的鲁棒性,因为通常的情况是分支条件的组合未能覆盖整个状态空间,并且因此存在没有条件被满足的情形,从而导致失败。
[0008]
在下文中,给出了各种示例。
[0009]
示例1是如上所述的一种用于控制机器人的方法。
[0010]
示例2是示例1的方法,其中每个技能包括机器人对一个或多个对象的操控,并且每个技能的隐半马尔可夫模型是任务参数化的隐半马尔可夫模型,其包括对应于其中应用该技能的机器人和对象配置的任务参数。
[0011]
特别地,各种实施例允许对用于处置一个或多个对象的机器人进行高效的训练和控制。
[0012]
示例3是示例2的方法,进一步包括针对每个技能训练效果模型,该效果模型针对该技能的机器人轨迹模型的每个最终状态包括机器人和/或对象配置在执行该技能之后相对于应用该技能的初始机器人和/或对象配置如何改变的概率分布,其中,当要在任务中按顺序执行两个技能时,级联技能的机器人轨迹模型包括变换第二技能的任务参数化隐半马尔可夫模型,使得其任务参数是对应于由第一技能的效果模型给出的机器人和/或对象配置的任务参数。
[0013]
因此,可以确保的是在技能序列之上正确计算控制轨迹。例如,模型的变换确保了可以基于第一技能的初始状态直接计算第二技能的关联全局高斯。然后,全局高斯可以用于计算观测概率,例如用于维特比算法的应用。
[0014]
示例4是示例3的方法,进一步包括仿射变换第二技能的效果模型,使得其任务参数是对应于由第一技能的效果模型给出的机器人和/或对象配置的任务参数。
[0015]
这允许在具有例如由机器人操控的一个或多个对象的场景中,在技能序列之上对控制轨迹的正确计算。
[0016]
示例5是示例1至4中任一个的方法,进一步包括,当要在任务中按顺序执行两个技能时,使用第一技能的前提条件模型作为用于两个技能的技能的级联机器人轨迹模型的前提条件模型,并使用第二技能的最终条件模型作为用于技能的级联机器人轨迹模型的最终条件模型。
[0017]
通过计算用于技能级联的前提条件模型,可以添加另外的技能,例如,可以确定按顺序或分支中多于两个技能的合成模型。这允许对复杂任务进行训练和控制。
[0018]
示例6是示例1至5中任一个的方法,进一步包括,当要在任务中的分支中执行两个技能时,在技能的组合机器人轨迹模型的前提条件模型中包括用于第一技能的前提条件模型和用于第二技能的前提条件模型二者,并且在技能的组合机器人轨迹模型的前提条件模型中包括用于第一技能的最终条件模型和用于第二技能的最终条件模型二者。
[0019]
通过计算用于技能分支的前提条件模型,可以添加另外的技能,例如,可以确定分支序列中多于两个技能的合成模型。这允许对复杂任务进行训练和控制。
[0020]
示例7是示例1至6中任一个的方法,其中用于第一技能的最终状态的第一技能的
最终条件模型的概率分布和用于第二技能的初始状态的第二技能的初始模型的概率分布之间的相似性是用于第一技能的最终状态的第一技能的最终条件模型的概率分布和用于第二技能的初始状态的第二技能的初始模型的概率分布的kl-散度。
[0021]
kl-散度的使用允许技能序列的轨迹模型的高效级联。
[0022]
示例8是示例1至7中任一个的方法,其中前提条件模型和最终条件模型是任务参数化的高斯混合模型。
[0023]
例如,为每个任务参数值确定高斯。任务参数化允许在不同场景中(即,变化的初始系统状态(配置))对训练模型的应用。
[0024]
示例9是示例1至8中任一个的方法,其中生成合成机器人轨迹模型包括根据任务重复地级联机器人轨迹模型、级联机器人轨迹模型和组合机器人轨迹模型,并组合机器人轨迹模型、级联机器人轨迹模型和组合机器人轨迹,使得机器人轨迹模型是用于整个任务的轨迹模型。
[0025]
因此,可以迭代地确定用于复杂任务的合成模型,从而确保针对复杂任务的鲁棒性,并使操作者无需定义分支条件的复杂层级。
[0026]
示例10是被配置为执行示例1至9中任一个的方法的机器人控制器。
[0027]
示例11是一种包括指令的计算机程序,该指令当由处理器执行时,使处理器执行根据示例1至9中任一个的方法。
[0028]
示例12是一种存储指令的计算机可读介质,该指令当由处理器执行时,使处理器执行根据示例1至9中任一个的方法。
[0029]
在附图中,遍及不同的视图,相似的参考符号一般指代相同的部分。附图不一定是按比例的,而是一般将重点放在说明本发明的原理上。在以下描述中,参考以下附图描述了各个方面,其中:图1示出了机器人。
[0030]
图2示出了流程图,该流程图图示了包括按顺序和分支中的技能的操控任务。
[0031]
图3示出了图示根据实施例的用于控制机器人的方法的流程图。
[0032]
图4图示了用于将要按顺序执行的技能的机器人轨迹模型级联成合成机器人轨迹模型的级联操作。
[0033]
图5图示了用于将要在分支中(即,交替)执行的技能的机器人轨迹模型组合成合成机器人轨迹模型的组合操作。
[0034]
图6示出了在将级联操作应用于图2的任务图之后所得的任务图。
[0035]
图7示出了在将组合操作应用于图6的任务图之后所得的任务图。
[0036]
图8示出了在将级联操作应用于图7的任务图之后所得的任务图。
[0037]
图9示出了在将组合操作应用于图8的任务图之后所得的任务图。
[0038]
图10示出了图示根据实施例的用于控制机器人的方法的流程图。
[0039]
以下详细描述参考了附图,附图通过图示的方式示出了其中本发明可以实践的本公开的具体细节和方面。在不脱离本发明的范围的情况下,可以利用其他方面,并且可以进行结构、逻辑和电气改变。本公开的各个方面不一定是互斥的,因为本公开的一些方面可以与本公开的一个或多个其他方面相组合以形成新的方面。
[0040]
在下文中,将更详细地描述各种示例。
[0041]
图1示出了机器人100。
[0042]
机器人100包括机器人臂101,例如用于处置或组装工件(或一个或多个其他对象)的工业机器人臂。机器人臂101包括操控器102、103、104和通过其支撑操控器102、103、104的基座(或支撑件)105。术语“操控器”指代机器人臂101的可移动构件,其致动使得能够与环境进行物理交互,例如实行任务。为了控制,机器人100包括(机器人)控制器106,其被配置为根据控制程序实现与环境的交互。操控器102、103、104中的最后一个构件104(离支撑件105最远)也被称为末端执行器104,并且可以包括一个或多个工具,诸如焊接炬、抓取仪器、喷涂装备等。
[0043]
其他操控器102、103(更靠近支撑件105)可以形成定位设备,使得与末端执行器104一起,提供了在其末端具有末端执行器104的机器人臂101。机器人臂101是能够提供与人类臂类似功能的机械臂(可能在其末端具有工具)。
[0044]
机器人臂101可以包括将操控器102、103、104彼此互连并与支撑件105互连的关节元件107、108、109。关节元件107、108、109可以具有一个或多个关节,每个关节可以向相关联的操控器提供相对于彼此的可旋转运动(即旋转运动)和/或平移运动(即位移)。操控器102、103、104的移动可以借助于由控制器106控制的致动器来发起。
[0045]
术语“致动器”可以理解为适于响应于被驱动而影响机制或过程的部件。致动器可以将控制器106发出的指令(所谓的激活)实现为机械移动。致动器(例如机电转换器)可以被配置为响应于驱动将电能转换成机械能。
[0046]
术语“控制器”可以理解为任何类型的逻辑实现实体,该逻辑实现实体可以包括例如能够执行存储在存储介质中的软件的电路和/或处理器、固件或其组合,并且可以发出指令,例如在本示例中向致动器发出指令。控制器可以例如通过程序代码(例如,软件)配置为控制系统(在本示例中是机器人)的操作。
[0047]
在本示例中,控制器106包括一个或多个处理器110和存储代码和数据的存储器111,处理器110基于所述代码和数据来控制机器人臂101。根据各种实施例,控制器106在存储在存储器111中的统计模型112的基础上来控制机器人臂101。
[0048]
机器人100可以利用从演示中学习(lfd)的方法来学习执行任务或与人类伙伴合作。人类演示可以由概率模型(也称为统计模型)编码,该概率模型表示用于机器人的任务的名义计划。控制器106随后可以使用统计模型(其也称为机器人轨迹模型)来生成期望的机器人移动,其可能依据人类伙伴和环境二者的状态。
[0049]
lfd的基本思想是将规定的技能模型(诸如gmm)与少量的演示相配合。令存在m个演示,每个演示包含用于个总观测的数据集的个数据点,其中。此外,假设从p个不同坐标系(由任务参数给出,诸如局部坐标系或感兴趣对象的框架)的角度记录相同的演示。获得这样的数据的一种常见方式是通过将演示从静态全局框架变换为框架p。这里,是(局部)框架相对于世界(即全局)框架的平移和旋转。然后,tp-gmm由模型参数描述,其中k表示混合模型中高斯分量的数量,是每个分量的先验概率,并且是框架p内第k个高斯分量的参数。
[0050]
与标准gmm不同,上述混合模型不能针对每个框架独立学习。实际上,混合系数由所有框架共享,并且框架p中的第k个分量必须映射到全局框架中对应的第k个分量。期望最大化(em)是学习这样的模型的良好确立的方法。
[0051]
tp-gmm一旦被学习,就可以在执行期间被使用,以再现用于所学习技能的轨迹。即,给定观测到的框架,通过跨不同框架将仿射变换的高斯分量相乘,学习到的tp-gmm被转换成具有参数的一个单个gmm,如下其中每个框架p处的更新高斯参数计算为以及。虽然任务参数可能随时间而变化,但为了便于标示,时间索引被丢弃。
[0052]
隐半马尔可夫模型(hsmm)通过嵌入潜在随机过程的时间信息来扩展标准隐马尔可夫模型(hmm)。也就是说,在hmm中时,潜在的隐藏过程被假设为马尔可夫,即,转移到下一个状态的概率仅取决于当前状态,在hsmm中,状态过程被假设为半马尔可夫。这意味着到下一个状态的转移取决于当前状态以及取决于自进入该状态以来经过的时间。它们可以与tp-gmm相组合应用于机器人技能编码,以学习演示的时空特征。更具体地,任务参数化hsmm(tp-hsmm)模型被定义为:,其中是从状态h到k的转移概率;()描述状态k的持续时间的高斯分布,即在一定数量的连续步骤内停留在状态k中的概率;等于较早前引入的tp-gmm,表示与状态k相对应的观测概率。注意,本文中状态的数量对应于“附接的”tp-gmm中高斯分量的数量。
[0053]
给定观测数据点的某个(部分)序列,假设中的相关联状态序列由给出。数据点属于状态k(即s
t
=k)的概率由前向变量给出:其中是发射概率,并且在给定的任务参数的情况下从(1)中导出。此外,相同的前向变量也可以在再现期间用于预测未来的步骤,直到。
[0054]
然而,在这种情况下,由于未来的观测不可用,所以仅使用转移和持续时间信息,即,通过在(2)中为所有k和设置。最后,通过选择(),确定最可能状态的序列。
[0055]
现在令机器人状态的期望最终观测被给出为,其中t是技能时间范围(例如,在演示之上的平均长度)。此外,初始机器人状态被观测为。对于在给定学习模型的情况下技能的执行(即技能再现),构造了在仅给定和的情况下最可能状态序列。
[0056]
在这种情况下,不能直接使用前向变量进行再现,因为等式(2)中的前向变量计算边缘最可能状态序列,而所期望的是在给定和的情况下的联合最可能状态序列。结果,当使用(2)时,不保证返回的序列匹配演示的时空模式和最终观测二者。就拾取对象的示例而言,即使期望的最终配置是末端执行器在对象的顶部,它也可能返回对应于“从侧面拾取”的最可能的序列。
[0057]
为了克服该问题,根据一个实施例,使用维特比算法的修改。经典维特比算法可以用于在hmm中找到最可能的状态序列(也称为维特比路径),其产生给定的观测事件流。根据一个实施例,使用了在两个主要方面不同于此的方法:(a)它在hsmm而不是hmm上工作;并且更重要的是(b)除了第一个和最后一个之外,大多数观测丢失了。具体地,在没有观测的情况下,维特比算法变成其中是状态j的持续时间概率,是系统在时间t处于状态j并且在t 1不处于状态j的似然性;并且其中是在给定的情况下来自(1)的中的全局高斯分量j。也就是说,在每个时间t和对于每个状态j,记录最大化等式的两个自变量,并使用简单的回溯过程来寻找最可能的状态序列。换句话说,上面的算法导出从开始产生最终观测的技能a的最可能的序列。
[0058]
由于机器人任务空间由末端执行器的时变姿态(具有位置和定向)表示,因此经典的基于欧几里得的方法不足以处理这样的数据。因此,根据各种实施例,机器人任务空间被赋予黎曼流形。简而言之,对于流形中的每个点,都存在切空间。这允许我们局部地实行欧几里得运算,同时在几何上与流形约束一致。
[0059]
指数图和对数图可以用于在和之间映射点。指数图将点的切空间中的点映射到流形上的点,同时维持测地线距离。逆运算称为对数图。另一个有用的运算是平移,它在切空间之间移动元素而不引入失真。上述运算的精确形式取决于与流形相关联的黎曼度量。根据各种实施例,黎曼流形被用于通过使用黎曼正态分布适当计算之上的统计,该黎曼正态分布对观测到的运动模式进行编码,并使用黎曼最优控制器来检索对应于任务计划的控制动作(即序列技
能)。
[0060]
对于以下解释,多dof机器人臂101被认为是示例,其末端执行器104具有在静态和已知工作空间内操作的状态(描述笛卡尔位置、定向四元数和夹持器状态)。此外,在臂101的可达范围内,存在由标示的感兴趣对象,每个对象具有状态。为简单性,总体系统状态由标示。
[0061]
在该设置内,人类用户在臂上执行几个动觉演示,以针对某些操控技能操控一个或几个对象。令演示的技能集合由标示。此外,对于技能,涉及的对象集合由给出,并且可用的演示集合由标示。应当注意,所有演示都遵循上面引入的以对象为中心的结构,即它们是从多个框架记录的,通常与中的对象相关联,所述对象通常表示工作空间中的对象姿态。例如,技能“将木桩插入圆柱体”涉及对象“木桩”和“圆柱体”,并且从机器人、“木桩”和“圆柱体”框架两者记录相关联的演示。
[0062]
下文中考虑的(操控)任务由从演示的技能a中选择的技能序列组成。例如,插入任务涉及“拾取盖子,重新定向盖子,再次拾取盖子并插入盖子”。在任务结束时,目标配置g作为系统的期望最终状态(包括机器人和对象)而达到。
[0063]
在工厂中组织操控任务的常见方式是经由图或流程图。它们通常经由gui(图形用户接口)中的拖和放(drag-and-drop)来定义。如果两个条件成立,则这样的方法是足够的:(1)任务是简单的,并被指定为线性的技能序列;(2)每个技能简单而无分支。这样,每个技能可以如指定的按顺序触发和执行。
[0064]
然而,在许多情况下,上述条件中的任何一个都不成立。例如,期望的任务在各种工作空间情形下具有多个执行选择,或者内部的一些技能在各种情形下具有多个执行选择。
[0065]
图2示出了流程图(或任务图)200,其图示包括按顺序和分支中的技能的操控任务。
[0066]
例如,作为第一作业201,操控任务包括拾取对象。这可能意味着机器人必须取决于对象的初始配置(即状态)在202中执行技能“从顶部拾取对象”、在203中执行技能“从左侧拾取对象”或者在204中执行技能“从右侧拾取对象”。因此,任务包括分支中这些技能的执行,即它们将被交替执行,即它们中仅一个将被执行。第一操作201(即对202中、203中或204中的技能之一的执行)继之以按顺序的一个或多个技能。例如,如果在202中执行了技能“从顶部拾取对象”,则这继之以(按顺序)在205中的技能“附接对象”。
[0067]
如果执行了203中或204中的相应技能,则这必须继之以重新定向作业206,即,对于每个情况,对207中或208中的重新定向技能的执行。重新定向技能可能在重新定向方向上不同。然后,重新定向操作206继之以对技能209中的“从顶部拾取对象
”ꢀ
的执行、以及最终对210中的技能
ꢀ“
附接对象
”ꢀ
的执行。
[0068]
可以通过手动指定分支条件211、212、213——通常作为“如果”条件,例如“如果对象正站立”211,“如果对象正向左躺”212和“如果对象正向右躺”213——来处理分支。为了设计这样的条件,可以手动测量系统状态的区域,作为对于该条件成立的有效性区域。
[0069]
这意味着机器人可能具有预先安装的操控技能集合(从工厂预编程或经由演示教
授的),并且对于特定的组装任务,操作者手动构造指定该任务的图(例如,如图2中),其中构建块是所学习技能的集合。由于分支(可能既在任务级别又在技能级别),因此操作者需要手动定义用于每个分支的分支条件。
[0070]
根据各种实施例,提供了特别地允许避免手动定义分支条件的必要性的方法。
[0071]
图3示出了图示根据实施例的用于控制机器人的方法的流程图。
[0072]
在301中,执行技能的演示。
[0073]
技能至少包括执行由任务图303给出的任务所需的那些技能。
[0074]
如上所述,对于一个演示的技能,可用演示的集合由在p个框架中记录的给出。应当注意的是,这样的框架直接附接到中的对象。
[0075]
在302中,为每个技能学习机器人轨迹模型(也标示为“机器人行为模型”)。
[0076]
例如,如上所述,给定适当选择数量的分量k,可以使用类似em(期望最大化)的算法来学习抽象化与技能a相关的轨迹的时空特征的tp-hsmm模型。
[0077]
在304中,从在302中学习的机器人轨迹模型生成合成机器人轨迹模型。
[0078]
为此,技能模式的学习进一步包括用于每个技能的前提条件模型、最终条件和效果模型的学习。在304中,使用这些模型,构造指定任务的合成模型,并且然后可以取决于工作空间情形自动做出任务级别和技能级别上的选择。简单来说,前提条件模型封装了技能执行之前系统应当是如何的,而效果模型和最终条件模型封装了技能执行之后系统应当如何改变。这些模型是用于计算合成模型的重要部分,因为它们测量技能之间的兼容性,并跟踪系统状态的演变。应当注意,术语“技能模型”可以理解为包括用于技能的机器人轨迹模型、前提条件模型、最终条件模型和效果模型的全部。
[0079]
如参考图2所描述的,任务可以包括分支(即作为替代)中和按顺序的技能的执行。
[0080]
因此,合成模型的生成包括递归地应用用于按顺序组合技能的组合操作和用于并行组合技能的操作。
[0081]
图4图示了用于将要按顺序执行的技能401、402、403的机器人轨迹模型级联成合成机器人轨迹模型404的级联操作。
[0082]
图5图示了用于将要在分支中(即,交替)执行的技能501、502、503、504的机器人轨迹模型组合成合成机器人轨迹模型505的组合操作。
[0083]
如图4中图示的级联技能序列的组合操作包括级联将被按顺序执行的两个技能的操作的一次或多次应用。类似地,如图5中图示的组合技能序列的组合操作包括组合将被在分支中执行的两个技能的操作的一次或多次应用。
[0084]
对于将被按顺序执行的两个技能的组合,这两个技能的轨迹模型被级联成一个如下的合成轨迹模型。
[0085]
考虑按顺序的两个技能的两个tp-hsmm 和,将它们级联成的操作在算法1中总结。
[0086]
应当注意,算法1的第3行和第4行的计算和更新可以分别根据下面给出的等式(4)和(5)来执行。
[0087]
可以看出关键的见解是,相同的模型取决于级联到的的最终分量(即hsmm状态)而被不同地更新。这是因为每个最终分量在执行之后对的任务参数的不同变换进行编码,这进而导致以不同的方式更新中的分量。因此,合成模型具有大小,其中和分别是和的分量数量,而是中的最终分量的数量。更具体地,算法2由两个主要操作组成:(a)计算从中的每个最终分量到中的每个初始分量的转移概率;(b)为级联到的中的每个最终分量修改的所有分量。
[0088]
根据一个实施例,使用参考文献[1]中所描述的前提条件模型和效果模型。特别地,由标示的学习的前提条件模型包含用于初始机器人状态(即,机器人的初始配置(例如,位置和/或姿态))的tp-gmm,即,,其中是从初始系统状态(即,机器人和/或对象的初始配置(例如,位置和/或姿态))导出的所选任务参数集合。此外,这里引入了由标示的最终条件模型,其以与类似的方式学习,但针对的是最终机器人状态,即,,其中是从最终系统状态中导出的所选框架集合。简单地说,在执行技能a之前对初始配置建模,而在之后对最终配置建模。此外,由标示的学习效果模型包含用于预测的最终系统状态的tp-gmm,即,,其中在中定义。值得注意的是这三个模型之间的差异:的任务参数是从最终系统状态(执行a之后)计算的,而和的任务参数是从初始系统状态(执行a之前)提取的。为了便于记号。
[0089]
于是,从的一个最终分量到的一个初始分量的转移概率是:
其中是kl(kullback-leibler)-散度,是与用于框架p的分量相关联的gmm,是与用于框架p的分量相关联的gmm;是由这两个模型共享的公共框架集合,可以通过总是添加全局框架来强制使其非空。对中的最终分量和中的初始分量的所有对重复该过程。应当注意的是,中的任何最终分量的出射概率应当被归一化。
[0090]
第二,给定的一个最终分量,的每个分量k都应当如下进行仿射变换,其中运算被定义为与(1)相同的运算;是根据的平均值计算的任务参数,其中o是与中的旧框架p相关联的对象,并且是中的新框架。应当注意,在给定的初始系统状态的情况下,框架的改变对于直接计算的所有分量是重要的。相同的过程通过基于改变其框架也应用于的每个分量。
[0091]
最后,如算法1中所陈述,诸如持续时间概率、初始和最终分布之类的的其他模型参数与和具有细微改变地寻常设置。例如,的持续时间概率被复制到多个副本;初始分布被设置为零,因为的初始状态对应于第一模型的初始状态;的最终分量被移除,因为的最终状态现在是更新到其多个实例的最终分量。
[0092]
对于要并行执行的两个技能的组合,这两个技能的轨迹模型被组合成一个如下的合成轨迹模型。
[0093]
考虑并行的两个技能的两个tp-hsmm 和,在算法2中总结了将它们组合成的操作。
[0094]
算法2由两个部分组成:一个部分用于计算合成的tp-hsmm模型,并且另一部分用于计算合成的tpgmm模型。第一并且最重要的步骤是以中的分量总数量更新的分
量索引。这是为了避免多个分量形成具有相同索引的不同技能。此后,所有相关联的tpgmm模型、持续时间模型、前提条件和效果模型都相应地更新。最后但同样重要的是,当计算合成转移矩阵时,我们需要将的和的在对角线上附加到中,同时用零填充剩余的条目。这意味着从到没有添加附加的转移,因为它们是并行合成的(即,不是按顺序)。
[0095]
总之,在304中生成合成模型包括两个技能的以下操作的重复应用:1)操作1(级联按顺序的技能):如果“技能#1”和“技能#2”按顺序连接(如图4中图示),则根据算法1计算合成技能模型2)操作2(组合分支中的技能):如果“技能#1”和“技能#2”并联连接(如图5中图示),则根据算法2计算合成技能模型。
[0096]
具体地,这两个操作如下重复执行:a)对于任务图303内的每个分支或子分支,递归地应用操作1来导出每个分支的合成技能。
[0097]
b)对于所有并行的分支,递归地应用操作2来导出所有分支的合成技能。注意,在a之后,每个分支应当仅具有一个合成技能。
[0098]
c)递归地,将a应用于所有技能序列,并且将b应用于所有技能的并行。
[0099]
例如,对于图4中图示的任务,用于生成合成模型的过程包括a、然后b、然后再次a、并且然后再次b的应用,如图6至图9中图示的。
[0100]
图6示出了在将a第一次应用于如图2的任务图所给出的任务之后的结果。
[0101]
技能模型201和205已经被组合成601,技能模型203、207已经被组合成602,并且技能模型204、208已经被组合成技能模型603。
[0102]
图7示出了b的第一次应用之后的结果。技能模型602和603已经被组合成技能模型701。
[0103]
图8示出了a的第二次应用之后的结果。技能模型701、209和210已经被组合成技能模型801。
[0104]
图9示出了b的第二次应用之后的结果。技能模型601和801已经被组合成技能模型901。
[0105]
如可以看出的,在图9中,整个任务由单个合成技能模型901表示。不需要“如果”条件。
[0106]
当在304中已经生成合成机器人轨迹模型时,可以在给定的情形下执行任务。
[0107]
为此,在305中观测给定情形下的初始系统状态(配置),并且例如通过将等式(3)应用于合成机器人轨迹模型,确定合成机器人轨迹模型内最可能的分量序列,其以最高概率将系统(包括机器人和对象)驱动到目标状态。
[0108]
分量序列的确定也输出了在给定情形下需要被执行的技能的实际序列。这具有重要性,因为当算法选择不同的分支时,技能序列是不同的。
[0109]
在306中,在执行期间,通过遵循分量的最佳序列来执行包含在该输出中的最佳技能序列。给定状态序列,线性二次跟踪(lqt)可以例如用于检索最佳轨迹。
[0110]
总之,根据各种实施例,提供了如图10中图示的方法。
[0111]
图10示出了流程图1000,其图示了根据实施例的用于控制机器人的方法。
[0112]
在1001中,提供用于执行多个技能中的每一个的演示。
[0113]
在1002中,针对来自演示的每个技能训练机器人轨迹模型,其中每个轨迹模型是具有一个或多个初始状态和一个或多个最终状态的隐半马尔可夫模型。
[0114]
在1003中,从每个技能的演示中训练前提条件模型和最终条件模型,前提条件模型针对技能的机器人轨迹模型的每个初始状态包括执行技能之前的机器人配置的概率分布,最终条件模型针对技能的机器人轨迹模型的每个最终状态包括执行技能之后的机器人配置的概率分布。
[0115]
在1004中,接收任务的描述,其中该任务包括按顺序和/或在分支中执行多个技能中的技能。
[0116]
在1005中,通过以下各项生成合成机器人轨迹模型
‑ꢀ
当要在任务中按顺序执行两个技能时,通过以下各项级联技能的机器人轨迹模型
○ꢀ
在合成机器人轨迹模型中包括两个技能的轨迹模型的状态,和
○ꢀ
依据用于第一技能的最终状态的第一技能的最终条件模型的概率分布和用于第二技能的初始状态的第二技能的初始模型的概率分布之间的相似性,计算两个技能中的第一技能的轨迹模型的每个最终状态和两个技能中的第二技能的轨迹模型的每个初始状态之间的转移概率
‑ꢀ
当在任务中的分支中执行两个技能时,通过以下各项组合技能的机器人轨迹模型
○ꢀ
在合成机器人轨迹模型中包括两个技能的轨迹模型的状态,和
○ꢀ
将第一技能的状态和第二技能的状态之间的转移概率设置为零。
[0117]
在1006中,根据合成机器人轨迹模型来控制机器人以执行任务。
[0118]
根据各种实施例,换句话说,针对多个技能训练用于机器人的模型,并且当要实行涉及在分支中或按顺序多次执行那些技能的任务时,模型被级联和/或组合成合成模型。合成模型然后可以用于控制机器人,就好像它是用于单个技能的模型一样,即例如通过确定任务的最佳状态序列(以及其中要执行任务的机器人和对象的初始配置)并相应地控制机器人。
[0119]
图10的方法可以由包括一个或多个数据处理单元的一个或多个计算机来执行。术语“数据处理单元”可以理解为允许处理数据或信号的任何类型的实体。例如,可以根据由数据处理单元执行的至少一个(即,一个或多于一个)特定功能来处理数据或信号。数据处理单元可以包括模拟电路、数字电路、复合信号电路、逻辑电路、微处理器、微控制器、中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器(dsp)、可编程门阵列(fpga)集成电路或其任何组合,或者由其形成。实现相应功能的任何其他方式(其将在下面更详细地描述)也可以被理解为数据处理单元或逻辑电路。将理解,本文详细描述的一个或多个方法步骤可以由数据处理单元通过由数据处理单元执行的一个或多个特定功能来执行(例如,实现)。
[0120]
术语“机器人”可以理解为指代任何物理系统(具有其移动受控制的机械部分),诸如计算机控制的机器、车辆、家用电器、电动工具、制造机器、个人助理或访问控制系统。
[0121]
各种实施例可以接收和使用来自诸如视频、雷达、lidar、超声、运动、热成像等各种传感器的传感器信号,例如获得关于演示或系统(机器人和对象)状态以及配置和场景的传感器数据。可以处理传感器数据。这可以包括传感器数据的分类或对传感器数据执行语义分割,例如以检测对象的存在(在其中获得传感器数据的环境中)。实施例可以用于训练机器学习系统和自主地控制机器人(例如机器人操控器)以实现不同场景下的各种操控任务。特别地,实施例适用于例如在组装线中操控任务的执行的控制和监视。例如,它们可以与用于控制过程的传统gui无缝集成。
[0122]
尽管在本文已经图示和描述了具体实施例,但是本领域普通技术人员将领会,在不脱离本发明的范围的情况下,可以用多种替代和/或等同的实现来替换所示出和描述的具体实施例。本技术旨在涵盖本文讨论的具体实施例的任何改编或变型。因此,本发明旨在仅受权利要求及其等同物所限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献