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

多主体控制器和机器人的制作方法

2021-11-09 22:10:00 来源:中国专利 TAG:


1.本公开涉及一种用于机器人的多主体控制器。


背景技术:

2.机器人通常被定义为可重新编程的多功能操纵器,其设计成通过可变的编程运动来移动材料、零件、工具或专用设备以执行任务。机器人可以是物理锚定的操纵器(例如工业机器人臂)、在整个环境中移动的移动机器人(例如使用腿、轮或基于牵引的机构)或者操纵器和移动机器人的某种组合。机器人用于各种行业,包括例如制造业、运输、危险环境、勘探和医疗保健。因此,在环境中执行任务时平衡机器人的能力可以增强机器人的功能,并为这些行业提供额外的好处。


技术实现要素:

3.本公开的一方面提供了一种用于多主体控制器的方法。该方法包括在机器人的数据处理硬件处接收转向命令,以在机器人周围的环境内执行给定任务。该机器人包括具有第一端部、第二端部和多个关节的倒立摆主体,以及臂,其在多个关节中的第一关节处联接到倒立摆主体,其中臂包括配置为抓取物体的末端执行器。机器人还包括具有第一和第二端的至少一个腿,第一端在多个关节中的第二关节处联接到倒立摆主体;以及驱动轮,其可旋转地联接到至少一个腿的第二端。该方法还包括:基于接收的转向命令,由数据处理硬件产生机器人的驱动轮的轮扭矩和机器人的驱动轮处的轮轴力。产生轮扭矩和轮轴力以执行给定任务。该方法还包括:在数据处理硬件处接收指示机器人运动限制的运动约束;以及在数据处理硬件处接收用于机器人的臂的操纵输入。该操纵输入配置为操纵机器人的臂以执行给定任务。对于多个关节中的每个关节,该方法还包括:由数据处理硬件产生配置为控制机器人执行给定任务的相应关节扭矩,基于操纵输入、轮扭矩和轮轴力,关节扭矩满足运动约束。该方法还包括:由数据处理硬件控制机器人使用为多个关节产生的关节扭矩来执行给定任务。
4.本公开的实施方式可以包括一个或多个以下可选特征。在一些实施方式中,为多个关节中的每个产生相应关节扭矩包括使用关节扭矩算法来实现平衡机器人的平衡目标和基于给定任务来实现移动机器人的臂的操纵目标,其中关节扭矩算法包括基于接收的运动约束的二次函数。当在使用关节扭矩算法来实现平衡目标和实现操纵目标时平衡目标或操纵目标不确定时,关节扭矩算法可以应用默认扭矩来确定平衡目标和操纵目标。使用关节扭矩算法来实现平衡目标和操纵目标可以包括将第一权重应用于平衡目标,并将第二权重应用于操纵目标,第一权重和第二权重指示给定任务的扭矩重要性。
5.在一些示例中,运动约束包括以下中的至少一个:多个关节中的每个的运动范围限制;多个关节中的每个的扭矩限制;或者碰撞限制,其配置为避免机器人的一部分的碰撞。至少一个腿的第一端可以棱柱形地联接到倒立摆主体的第一端部。
6.在一些配置中,机器人包括设置在倒立摆主体上的平衡主体,并配置为相对于倒
立摆主体移动。平衡主体可以设置在倒立摆主体的第一端部上。另外或可替代地,平衡主体可以设置在倒立摆主体的第二端部上。倒立摆主体的多个关节可以包括:第一关节,其将臂联接到倒立摆主体;第二关节,其将至少一个腿联接到倒立摆主体;第三关节,其将倒立摆主体联接到平衡主体;以及至少一个臂关节,其将臂的两个构件联接在一起。臂可以包括:具有第一端和第二端的第一构件,该第一构件的第一端在第一关节处联接到倒立摆主体的第一端部;具有第一端和第二端的第二构件,该第二构件的第一端在至少一个臂关节中的第一臂关节处联接到第一构件的第二端;以及具有第一端和第二端的第三构件,第三构件的第一端在至少一个臂关节中的第二臂关节处联接到第二构件的第二端。至少一个腿可以包括:具有第一和第二端的右腿以及具有第一和第二端的左腿。这里,右腿的第一端棱柱形地联接到倒立摆主体的第二端部,该右腿具有可旋转地联接到右腿的第二端的右驱动轮;并且左腿的第一端棱柱形地联接到倒立摆主体的第二端部,该左腿具有可旋转地联接到左腿的第二端的左驱动轮。
7.在一些实施方式中,操纵输入对应于用于末端执行器的力或加速度。在一些示例中,控制机器人使用为多个关节产生的关节扭矩来执行给定任务包括:基于为多个关节产生的关节扭矩产生操纵力;以及在机器人的末端执行器处施加操纵力。
8.本公开的另一方面提供了一种机器人。机器人包括具有第一端部、第二端部和多个关节的倒立摆主体。机器人还包括在多个关节的第一关节处联接到倒立摆主体的臂和具有第一和第二端的至少一个腿,第一端在多个关节中的第二关节处联接到倒立摆主体。机器人还包括可旋转地联接到至少一个腿的第二端的驱动轮以及数据处理硬件。机器人还包括与数据处理硬件通信的存储器硬件,存储器硬件存储指令,所述指令在数据处理硬件上被执行时使数据处理硬件执行操作。所述操作包括接收转向命令以在机器人周围的环境内执行给定任务。基于接收的转向命令,操作包括产生机器人的驱动轮的轮扭矩和机器人的驱动轮处的轮轴力。产生轮扭矩和轮轴力以执行给定任务。操作还包括接收指示机器人运动限制的运动约束;以及接收用于机器人的臂的操纵输入,该操纵输入配置为操纵机器人的臂以执行给定任务。对于多个关节中的每个关节,操作包括产生配置为控制机器人执行给定任务的相应关节扭矩,基于操纵输入、轮扭矩和轮轴力,关节扭矩满足运动约束。操作还包括控制机器人使用为多个关节产生的关节扭矩来执行给定任务。
9.该方面可以包括一个或多个以下可选特征。在一些配置中,为多个关节中的每个产生相应关节扭矩包括使用关节扭矩算法来实现平衡机器人的平衡目标和基于给定任务来实现移动机器人的臂的操纵目标,关节扭矩算法包括基于接收的运动约束的二次函数。当在使用关节扭矩算法来实现平衡目标和实现操纵目标时平衡目标或操纵目标不确定时,关节扭矩算法可以应用默认扭矩来确定平衡目标和操纵目标。使用关节扭矩算法来实现平衡目标和操纵目标可以包括将第一权重应用于平衡目标,并将第二权重应用于操纵目标,第一权重和第二权重指示给定任务的扭矩重要性。
10.在一些示例中,运动约束包括以下中的至少一个:多个关节中的每个的运动范围限制;多个关节中的每个的扭矩限制;或者碰撞限制,其配置为避免机器人的一部分的碰撞。至少一个腿的第一端可以棱柱形地联接到倒立摆主体的第一端部。
11.在一些实施方式中,机器人包括设置在倒立摆主体上的平衡主体,并配置为相对于倒立摆主体移动。平衡主体可以设置在倒立摆主体的第一端部或倒立摆主体的第二端部
上。倒立摆主体的多个关节可以包括:第一关节,其将臂联接到倒立摆主体;第二关节,其将至少一个腿联接到倒立摆主体;第三关节,其将倒立摆主体联接到平衡主体;以及至少一个臂关节,其将臂的两个构件联接在一起。臂可以包括:具有第一端和第二端的第一构件,该第一构件的第一端在第一关节处联接到倒立摆主体的第一端部;具有第一端和第二端的第二构件,该第二构件的第一端在至少一个臂关节中的第一臂关节处联接到第一构件的第二端;以及具有第一端和第二端的第三构件,第三构件的第一端在至少一个臂关节中的第二臂关节处联接到第二构件的第二端。至少一个腿可以包括:具有第一和第二端的右腿,右腿的第一端棱柱形地联接到倒立摆主体的第二端部,右腿具有可旋转地联接到右腿的第二端的右驱动轮。至少一个腿还可以包括:具有第一和第二端的左腿,左腿的第一端棱柱形地联接到倒立摆主体的第二端部,左腿具有可旋转地联接到左腿的第二端的左驱动轮。
12.在一些示例中,操纵输入对应于用于末端执行器的力或加速度。在一些配置中,控制机器人使用为多个关节产生的关节扭矩来执行给定任务包括:基于为多个关节产生的关节扭矩产生操纵力;以及在机器人的末端执行器处施加操纵力。
13.在附图和以下描述中阐述了本公开的一个或多个实施方式的细节。从说明书和附图以及权利要求中,其他方面、特征和优点将是显而易见的。
附图说明
14.图1a是机器人在环境中提升箱子的示例的透视图。
15.图1b是机器人的示例的透视图。
16.图1c是图1b的机器人的系统的示例布置的示意图。
17.图2a

2c是用于图1b的机器人的示例多主体控制器的示意图。
18.图3是机器人实现图1b的机器人的多主体控制器的操作的示例布置。
19.图4是可用于实现本文描述的系统和方法的示例计算设备的示意图。
20.不同附图中相同的参考符号表示相同的元件。
具体实施方式
21.移动机器人是可以在环境中移动的机器人。机器人移动性的一些更常见的示例包括行走运动(例如腿处于步态模式)或滚动运动(例如具有一个或多个轮)。当移动机器人根据滚动运动移动时,移动机器人的一个或多个轮(通常称为轮)与表面(例如地面)接合,以产生牵引力,从而在表面上沿期望的方向移动机器人。除了物理地移动机器人之外,移动机器人的轮可以产生运动(即通过牵引)来保持机器人的平衡。当移动机器人在环境中移动时,移动机器人可以执行任务。通常,这些任务包括与物体和/或环境元素进行交互。例如,移动机器人可以在环境内检测物体或操纵物体(例如移动/运输)。当移动机器人执行这些任务时,通常会出现的问题就是这些任务可能会影响移动机器人的平衡。换句话说,当执行任务时,移动机器人的零件比如机器人主体的部件和/或与移动机器人相关的操纵器(例如机器人的附件)可能改变移动机器人的质心((com)),导致移动机器人的不平衡状态。为了在发生com的这种变化时保持平衡,移动机器人可以将一个或多个轮滚动到重新分配com的位置,使得移动机器人处于平衡位置。
22.这种轮平衡方法的问题之一是至少一个轮可能经常来回滚动。当移动机器人必须
执行需要操纵物体的任务(例如拿起或放下物体)时,这种情况越来越多。这里,当移动机器人用操纵器(例如机器人臂)提升物体时,在距离移动机器人的com一定距离处的物体的重量产生力矩(即扭矩)。移动机器人可以通过产生反力矩来抵消由移动机器人与物体接合引起的该力矩。在一些示例中,轮产生牵引力作为反力矩。换句话说,与从物体脱离的机器人相比,接合物体改变了移动机器人的质量分布,导致机器人的com偏移。为了因com的该偏移而保持平衡,轮可能会移动到使轮与偏移的com对齐的位置。
23.不幸的是,移动机器人在操作过程中可能具有约束。例如,移动机器人在空间上受到约束(例如机器人周围存在地面障碍物)。空间约束的一个这样的示例是移动机器人遇到地面障碍物的情况。例如,当移动机器人从货盘上提起箱子时,作为地面障碍物的货盘引入了空间约束,其可能限制移动机器人轮的行进。当移动机器人将箱子从货盘上提起时,使用轮平衡方法的移动机器人冒着将轮驱动到货盘中的风险来平衡移动机器人(例如如图1a中虚线轮所示)。这里,货盘和轮之间的碰撞可能会影响提升箱子的任务。一方面,货盘可以防止轮移动到完全平衡移动机器人的位置,导致移动机器人失去平衡并摔倒(例如有损坏箱子和/或机器人的风险)。另一方面,货盘可以足够轻,使得轮能够将货盘移动到允许轮平衡移动机器人的位置。这里,货盘的移动可能导致货盘上的其他箱子移位和/或掉落(例如也可能损坏箱子)。因此,由于与地面障碍物的碰撞风险,轮平衡方法并不总是平衡移动机器人的有效方法。
24.为了在移动机器人面临与地面障碍物碰撞的风险的情况下更有效的方法,移动机器人可以采用协调的关节扭矩控制。协调关节扭矩控制是指利用一个或多个关节运动产生的角动量来平衡机器人的控制方法。通过依靠机器人的一个或多个关节进行平衡,移动机器人的轮不需要成为平衡机器人的唯一系统。这减少了操纵任务中的轮运动;因此,最小化或消除了移动机器人与地面障碍物碰撞的风险。
25.为了采用协调关节扭矩控制方法来平衡,机器人配置为考虑并控制机器人的多主体结构。这里,术语多主体(即对应于“多主体”控制器)指的是移动机器人的惯性主体。惯性主体不仅仅是移动机器人的主体或躯干,而是机器人的具有对机器人的com有贡献的部件(例如臂、腿、主体(躯干)、头部、尾部等)。这意味着移动机器人可以包括对应于其躯干的单个主体,但仍使用多主体控制器,因为除了单个主体之外,多主体控制器还控制腿和/或臂。协调关节扭矩控制通过控制将机器人的部件(即惯性主体)联接在一起的一个或多个关节处的扭矩来起作用(例如通过关节处或附近的致动器)。
26.图1a描绘了与用于平衡的协调关节扭矩控制方法相比的轮平衡方法的示例。在该示例中,机器人100通常包括主体110、至少一个腿120(例如示出为两个腿120、120a

b)、联接到每个腿120的驱动轮130以及具有末端执行器160的臂150。机器人100在环境10内,环境10包括堆叠在货盘30上的多个箱子20、20a

n。这里,使用末端执行器160,移动机器人100正在从货盘30提升箱子20a,这给机器人100带来碰撞风险。当机器人100使用轮平衡方法时,机器人100的一个或多个驱动轮130(如虚线所示)将不可避免地导致与货盘30的碰撞c。相反,通过采用关节协调方法,机器人100的关节j贡献了角动量效应,这使得机器人100较少依赖于轮平衡。换句话说,利用关节协调方法,驱动轮130可以保持静止,如实心黑色轮廓驱动轮130所示。
27.图1b是在包括至少一个箱子20的环境10内操作的移动机器人100(也称为机器人)
的示例。这里,环境10包括堆叠在位于地面12上的货盘30上的多个箱子20、20a

n。机器人100可以在地面12上移动(例如驱动)以检测和/或操纵环境10内的箱子20。例如,货盘30可以对应于机器人100装载或卸载的运输卡车。这里,机器人100可以是与物流的装运和/或接收阶段相关的物流机器人。作为物流机器人,机器人100可以码垛或检测用于物流履行或库存管理的箱子20。例如,机器人100检测箱子20,处理箱子20的输入或输出存货,并在环境10中移动箱子20。
28.机器人100具有沿着重力方向的竖直重力轴v
g
和质心com,质心com是机器人100具有质量零和分布的点。机器人100还具有基于相对于竖直重力轴v
g
的com的姿态p,以定义机器人100采取的特定姿势或站姿。机器人100的姿势可以由空间中物体的定向或角度位置来定义。
29.机器人100通常包括主体110和一个或多个腿120。取决于要在环境10中执行的任务,机器人100的主体110可以是单一结构或更复杂设计。主体110可以允许机器人100平衡、感知环境10、给机器人100供电、协助环境10内的任务或支撑机器人100的其他部件。在一些示例中,机器人100包括两部分式主体110。例如,机器人100包括倒立摆主体(ipb)110、110a(即称为机器人100的躯干110a)和设置在ipb 110a上的平衡主体(cbb)110、110b(即称为机器人100的尾部110b)。
30.主体110(例如ipb 110a或cbb 110b)具有第一端部112和第二端部114。例如,ipb 110a具有第一端部112a和第二端部114a,而cbb 110b具有第一端部112b和第二端部114b。在一些实施方式中,cbb 110b设置在ipb 110a的第二端部114a上并配置为相对于ipb 110a移动。在一些示例中,cbb 110b包括用于给机器人100供电的电池。后关节j,j
b
可以将cbb 110b可旋转地联接到ipb 110a的第二端部114a,以允许cbb 110b相对于ipb 110a旋转。后关节j
b
可被称为俯仰关节。在所示的示例中,后关节j
b
支撑cbb 110b,以允许cbb 110b围绕垂直于机器人100的重力竖直轴v
g
和前后轴(x轴)延伸的横轴(y轴)移动/俯仰。前后轴(x轴)可以表示机器人100的当前行进方向。cbb 110b相对于ipb 110a的移动通过相对于竖直重力轴v
g
移动机器人100的com来改变机器人100的姿态p。旋转致动器或后关节致动器a,a
b
(例如尾部致动器或平衡主体致动器)可以位于后关节j
b
处或附近,用于控制cbb 110b(例如尾部)围绕横轴(y轴)的运动。旋转致动器a
b
可以包括电动马达、电动液压伺服、压电致动器、螺线管致动器、气动致动器或适于精确实现cbb 110b相对于ipb 110a的运动的其他致动器技术。
31.cbb 110b相对于ipb 110a的旋转运动改变了机器人100的姿态,用于平衡和保持机器人100处于直立位置。例如,类似于常规倒立摆飞轮中的飞轮的旋转,cbb 110b相对于重力竖直轴v
g
的旋转在后关节j
b
处产生/施加力矩,以改变机器人100的姿态p。通过相对于ipb 110a移动cbb 110b以改变机器人100的姿态p,机器人100的com相对于重力竖直轴v
g
移动,以在机器人100移动和/或承载负载的情况下平衡并保持机器人100处于直立位置。然而,与具有定向于力矩点处的质量的常规倒立摆飞轮中的飞轮部分相比,cbb 110b包括与在后关节j
b
处施加的力矩偏移的相应质量。在一些配置中,可以使用设置在后关节j
b
处的陀螺仪来代替cbb 110b旋转并施加力矩(旋转力),以平衡和保持机器人100处于直立位置。
32.cbb 110b可以在顺时针和逆时针方向上围绕后关节j
b
(例如在“俯仰方向”上围绕y轴)旋转(例如俯仰),以产生振荡(例如摇摆)运动。cbb 110b相对于ipb 110a在位置之间
的运动导致机器人100的com移位(例如朝向地面12降低或者远离地面12升高)。cbb 110b可以在运动之间振荡以产生摇摆运动。当相对于ipb 110a移动时,cbb 110b的旋转速度可以是恒定的或变化的(加速或减速),这取决于为了动态平衡机器人100需要多快地改变机器人100的姿态。
33.腿120是基于运动的结构(例如腿和/或轮),其配置成围绕环境10移动机器人100。机器人100可以具有任意数量的腿120(例如具有四个腿的四足动物、具有两个腿的两足动物、具有六个腿的六足动物、具有八个腿的蜘蛛类机器人等)。这里,为了简单起见,机器人100通常显示和描述为具有两个腿120、120a

b。如前所述,机器人100可以包括单个腿120。对于单个腿120,单个腿120可以用作为机器人100提供运动的基座或下主体结构。例如,一个或多个驱动轮130附接到单个腿结构,并朝向接合表面12向下延伸,以便围绕环境10驱动机器人100。在该配置中,单个腿120可以部分地容纳一个或多个驱动轮130和/或与驱动轮130相关的驱动系统。
34.作为两个腿的机器人100,机器人包括第一腿120、120a和第二腿120、120b。在一些示例中,每个腿120包括第一端122和第二端124。第二端124对应于腿120的接触或邻近机器人100的接触表面(例如地面)使得机器人100可以穿越环境10的构件的一端。例如,第二端124对应于根据步态模式移动的机器人100的脚。在一些实施方式中,机器人100根据滚动运动移动,使得机器人100包括驱动轮130。驱动轮130可以是机器人100的脚状构件的补充或替代。例如,机器人100能够根据行走运动和/或滚动运动移动。这里,图1b中描绘的机器人100示出了联接到主体110(例如在ipb 110a)的第一端122,而第二端124联接到驱动轮130。通过将驱动轮130联接到腿120的第二端124,驱动轮130可以围绕联接器的轴线旋转,以使机器人100在环境10中移动。
35.主体110的每一侧的髋关节j,j
h
(例如关于机器人100的矢状面p
s
对称的第一髋关节j
h
,j
ha
和第二髋关节j
h
,j
hb
)可以将腿120的第一端122可旋转地联接到主体110的第二端部114,以允许腿120的至少一部分相对于主体110围绕横轴(y轴)移动/俯仰。例如,腿120(例如第一腿120a或第二腿120b)的第一端122在髋关节j
h
处联接到ipb 110a的第二端部114a,以允许腿120的至少一部分相对于ipb 110a围绕横轴(y轴)移动/俯仰。
36.腿致动器a,a
l
可以与每个髋关节j
h
相关(例如第一腿致动器a
l
,a
la
和第二腿致动器a
l
,a
lb
)。与髋关节j
h
相关的腿致动器a
l
可导致腿120(例如第一腿120a或第二腿120b)的上部126相对于主体110(例如ipb 110a)围绕横轴(y轴)移动/俯仰。在一些配置中,每个腿120包括相应的上部126和相应的下部128。上部126可以从第一端122处的髋关节j
h
延伸到相应的膝关节j,j
k
,而下部128可以从膝关节j
k
延伸到第二端124。与膝关节j
k
相关的膝关节致动器a,a
k
可导致腿120的下部128相对于腿120的上部126围绕横轴(y轴)移动/俯仰。
37.每个腿120可以包括相应的踝关节j,j
a
,其配置成将驱动轮130可旋转地联接到腿120的第二端124。例如,第一腿120a包括第一踝关节j
a
,j
aa
,第二腿120b包括第二踝关节j
a
,j
ab
。这里,踝关节j
a
可以与轮轴相关,轮轴与驱动轮130联接以共同旋转,并且基本平行于横轴(y轴)延伸。驱动轮130可以包括相应的扭矩致动器(驱动马达)a,a
t
,其配置为施加相应的轴扭矩,用于围绕踝关节j
a
旋转驱动轮130,以沿着前后轴(x轴)在地面12上移动驱动轮130。例如,轴扭矩可导致驱动轮130在第一方向上旋转,以沿着前后轴(x轴)在向前方向上移动机器人100,和/或导致驱动轮130在相反的第二方向上旋转,以沿着前后轴(x轴)在向
后方向上移动机器人100。
38.在一些实施方式中,腿120棱柱形地联接到主体110(例如ipb 110a),使得每个腿120的长度可以经由髋关节j
h
附近的相应致动器(例如腿致动器a
l
)、髋关节j
h
和膝关节j
k
附近公开的一对滑轮(未示出)以及同步滑轮旋转的同步带(未示出)而扩展和收缩。每个腿致动器a
l
可以包括线性致动器或旋转致动器。这里,具有控制器142(例如如图1c所示)的控制系统140可以致动与每个腿120相关的致动器,以在顺时针方向或逆时针方向中的一个上相对于主体110(例如ipb 110a)旋转相应的上部126,从而通过使相应的下部128在顺时针方向或逆时针方向中的另一个上相对于上部126围绕相应的膝关节j
k
旋转来棱柱形地延伸/扩展腿120的长度。可选地,代替双连杆腿,至少一个腿120可以包括单个连杆,其棱柱形地线性延伸/缩回,使得腿120的第二端124棱柱形地沿着线性轨道远离/朝向主体110(例如ipb 110a)移动。在其他配置中,膝关节j
k
可以采用相应的旋转致动器作为膝致动器a
k
来代替一对同步滑轮相对于上部126旋转下部128。
39.施加到每个驱动轮130(例如与第一腿120a相关的第一驱动轮130、130a和与第二腿120b相关的第二驱动轮130、130b)的相应轴扭矩可以变化,以操纵机器人100穿过地面12。例如,施加到第一驱动轮130a的大于施加到第二驱动轮130b的轮扭矩τ
w
的轴扭矩(即轮扭矩τ
w
)可以使机器人100向左转动,而施加到第二驱动轮130b比施加到第一驱动轮130更大的轮扭矩τ
w
可以使机器人100向右转动。类似地,向每个驱动轮130施加基本相同大小的轮扭矩τ
w
可以使机器人100在向前或向后方向上基本笔直地穿过地面12。施加到每个驱动轮130的轴扭矩t
a
的大小也控制机器人100沿着前后轴(x轴)的速度。可选地,驱动轮130可以沿相反方向旋转,以允许机器人100通过在地面12上旋转来改变方向。因此,每个轮扭矩τ
w
可以独立于施加到另一驱动轮130的轴扭矩(如果有的话)而施加到相应的驱动轮130。
40.在一些示例中,主体110(例如在cbb 110b处)还包括至少一个非驱动轮(未示出)。非驱动轮通常是被动的(例如被动脚轮),并且不接触地面12,除非主体110移动到主体110(例如cbb 110b)由地面12支撑的姿态p。
41.在一些实施方式中,机器人100还包括一个或多个附件,比如设置在主体110上(例如在ipb 110a上)并配置为相对于主体110移动的铰接臂150(也称为臂或操纵器臂)。铰接臂150可以具有一个或多个自由度(例如范围从相对固定到能够在环境10中执行多种任务)。这里,图1b所示的铰接臂150具有五个自由度。虽然图1b示出了设置在主体110的第一端部112上的铰接臂150(例如在ipb 110a处),但铰接臂150可以其他配置设置在主体110的任何部分上。例如,铰接臂150设置在cbb 110b上或者在ipb 110a的第二端部114a上。
42.铰接臂150在近端第一端152和远端第二端154之间延伸。臂150可以包括在第一端152和第二端154之间的一个或多个臂关节j,j
a
,其中每个臂关节j
a
配置成使得臂150能够在环境10中铰接。这些臂关节j
a
可以将臂150的臂构件156联接到主体110,或者将两个或更多个臂构件156联接在一起。例如,第一端152在第一铰接臂关节j,j
a1
(例如类似肩关节)处连接到主体110(例如ipb 110a)。在一些配置中,第一铰接臂关节j
a1
设置在髋关节j
h
之间(例如在主体110的中心沿着机器人100的矢状面p
s
对齐)。在一些示例中,第一铰接臂关节j
a1
将臂150的近端第一端152可旋转地联接到主体110(例如ipb 110a),以使臂150能够相对于主体110(例如ipb 110a)旋转。例如,臂150可以相对于主体110围绕横轴(y轴)移动/俯仰。
43.在一些实施方式中,比如图1b,臂150包括第二臂关节j,j
a2
(例如类似肘关节)和第
三臂关节j,j
a3
(例如类似腕关节)。第二臂关节j
a2
将第一臂构件156a联接到第二臂构件156b,使得这些构件156a

b可相对于彼此以及主体110(例如ipb 110)旋转。根据臂150的长度,臂150的第二端154与臂构件156的一端重合。例如,尽管臂150可以具有任意数量的臂构件156,但图1b描绘了具有两个臂构件156a

b的臂150,使得第二臂构件156b的该端与臂150的第二端154重合。这里,在臂150的第二端154,臂150包括末端执行器160,其配置为在环境10内执行任务。末端执行器160可以在臂关节j
a
处(例如在第三臂关节j
a3
处)设置在臂150的第二端154上,以允许末端执行器160在操作期间具有多个自由度。末端执行器160可以包括一个或多个末端执行器致动器a,a
ee
,用于夹持/抓取物体。例如,末端执行器160包括一个或多个吸盘作为末端执行器致动器a
ee
,以通过在末端执行器160和目标物体之间提供真空密封来抓取或夹持物体。
44.铰接臂150可以相对于主体110(例如ipb 110a)围绕横轴(y轴)移动/俯仰。例如,铰接臂150可以在重力方向上相对于主体110围绕横轴(y轴)旋转,以在执行转弯动作时降低机器人100的com。cbb 110b也可以同时在重力方向上相对于ipb 110围绕横轴(y轴)旋转,以帮助降低机器人100的com。这里,铰接臂150和cbb 110b可以抵消机器人100的com沿着前后轴(x轴)在向前或向后方向上的任何移位,同时仍实现机器人100的com向下移位更靠近地面12。
45.参考图1c,机器人100包括控制系统140,其配置成监测和控制机器人100的操作。在一些实施方式中,机器人100配置为自主和/或半自主操作。然而,用户也可以通过向机器人100提供命令/指示来操作机器人。在所示的示例中,控制系统140包括控制器142(例如数据处理硬件)和存储器硬件144。控制器142可以包括其自己的存储器硬件或者利用控制系统140的存储器硬件144。在一些示例中,控制系统140(例如与控制器142)配置成与致动器a(例如背致动器a
b
、腿致动器a
l
、膝致动器a
k
、驱动带致动器、旋转致动器、末端执行器致动器a
ee
等)通信(例如命令运动),以使机器人100能够在环境10中移动。控制系统140不限于所示的部件,并且可以包括附加部件(例如电源)或更少部件,而不脱离本公开的范围。这些部件可以通过无线或有线连接进行通信,并且可以分布在机器人100的多个位置上。在一些配置中,控制系统140与远程计算设备和/或用户接口。例如,控制系统140可以包括用于与机器人100通信的各种部件,比如操纵杆、按钮、发射器/接收器、有线通信端口和/或无线通信端口,用于从远程计算设备和/或用户接收输入,并向远程计算设备和/或用户提供反馈。
46.控制器142对应于可以包括一个或多个通用处理器、数字信号处理器和/或专用集成电路(asic)的数据处理硬件。在一些实施方式中,控制器142是专用的嵌入式设备,其配置为与机器人100的一个或多个子系统一起执行特定操作。另外或可替代地,控制器142包括软件应用,其被编程为使用控制器142的数据处理硬件来执行机器人100的系统的功能。存储器硬件144与控制器142通信,并且可以包括一个或多个非暂时性计算机可读存储介质,比如易失性和/或非易失性存储部件。例如,存储器硬件144可以与彼此通信的一个或多个物理设备相关,并且可以包括光、磁、有机或其他类型的存储器或存储装置。存储器硬件144尤其配置为存储指令(例如计算机可读程序指令),指令在由控制器142执行时使控制器142执行许多操作,比如但不限于改变机器人100的姿态p以保持平衡、操纵机器人100、检测物体、运输物体和/或在环境10内执行其他任务。在一些实施方式中,控制器142基于与传感器系统170的直接或间接交互来执行操作。
47.传感器系统170包括一个或多个传感器172、172a

n。传感器172可以包括视觉/图像传感器、惯性传感器(例如惯性测量单元(imu))和/或运动传感器。图像/视觉传感器172的一些示例包括相机比如单目相机或立体相机、飞行时间(tof)深度传感器、扫描光检测和测距(lidar)传感器或扫描激光检测和测距(ladar)传感器。更一般地,传感器172可以包括以下中的一个或多个:力传感器、扭矩传感器、速度传感器、加速度传感器、位置传感器(线性和/或旋转位置传感器)、运动学传感器、定位传感器、负载传感器、温度传感器、压力传感器(例如用于监测末端执行器致动器a
ee
)、触摸传感器、深度传感器、超声波测距传感器、红外传感器和/或物体传感器。在一些示例中,传感器172具有定义对应于传感器172的感测范围或区域的相应视场。每个传感器172可以是可枢转的和/或可旋转的,使得传感器172可以例如围绕一个或多个轴(例如相对于地面12的x轴、y轴或z轴)改变视场。在一些实施方式中,机器人100的主体110包括传感器系统170,其具有围绕主体的多个传感器172,以收集机器人100周围所有方向的传感器数据174。另外或可替代地,传感器系统170的传感器172可以安装在机器人100的臂150上(例如结合安装在主体110上的一个或多个传感器172)。机器人100可以包括任何数量的传感器172作为传感器系统170的一部分,以便为机器人100周围的环境10产生传感器数据174。例如,当机器人100在环境10周围操纵时,传感器系统170收集机器人100的姿态数据,其包括惯性测量数据(例如由imu测量的)。在一些示例中,姿态数据包括关于机器人100的运动学数据和/或定向数据。
48.当用传感器172测量视场时,传感器系统170产生对应于视场的传感器数据174(也称为图像数据174)。与环境10相关的由传感器系统170收集的传感器数据174比如图像数据、姿态数据、惯性数据、运动学数据等可被传送到机器人100的控制系统140(例如控制器142和/或存储器硬件144)。在一些示例中,传感器系统170收集并存储传感器数据174(例如在存储器硬件144或与机器人100通信的远程资源相关的存储器硬件中)。在其他示例中,传感器系统170实时收集传感器数据174并处理传感器数据174,而不存储原始(即未处理的)传感器数据174。在其他示例中,控制器系统140和/或远程资源存储处理的传感器数据174和原始的传感器数据174。来自传感器172的传感器数据174可以允许机器人100的系统检测和/或分析关于机器人100的状况。例如,传感器数据174可以允许控制系统140操纵机器人100,改变机器人100的姿态,和/或致动用于移动/旋转机器人100的机械部件(例如关于机器人100的关节j)的各种致动器a。
49.图2a

2c是多主体控制器200的示例。多主体控制器200通常包括主体伺服机构210(也称为主体伺服)和求解器220。多主体控制器200配置为接收用于任务的输入,并为机器人100的多个关节j产生关节扭矩τ
j
,以执行给定任务。这里,任务可以包括平衡目标和操纵目标。输入可以包括转向命令212、用于操作臂150的操纵输入230或运动约束240中的至少一个。在一些示例中,多主体控制器200识别平衡目标和操纵目标。在其他示例中,多主体控制器200接收指示或对应于平衡目标和操纵目标的输入(例如转向命令212和/或操纵输入230和/或运动约束240)。平衡目标是指产生使机器人100能够在环境10内执行任务的平衡状态。例如,当任务是在机器人100静止(即处于站立姿态)并靠近箱子20时将箱子20(例如如图1a所示)从货盘30上提起时,平衡目标是当臂150接合并提起箱子20时机器人100保持平衡,而不会在驱动轮130处产生太多运动而影响任务(例如在任务平衡期间不会引起与货盘30的地面碰撞)。作为另一示例,当机器人100的任务是在机器人100不邻近货盘30时提升
箱子20时,该任务可以涉及不同平衡目标的多种方式执行。在一方法中,机器人100导航到包括箱子20的货盘30,在货盘30附近停止,并继续提升箱子20。这里,平衡目标包括在机器人100向货盘30移动期间(例如在运动姿态期间)的平衡部件,以及在机器人100停止在货盘附近并提升箱子20时从站立姿态开始的平衡部件。在第二方法中,机器人100可以在机器人100移动的同时提升箱子20,或者提升箱子20同时机器人100在货盘30处停止(例如试图最小化机器人100的静止时间)。例如,当机器人100反向离开货盘30时,机器人100朝向货盘30向前移动并立即提升箱子20。这里,平衡目标包括用于在没有箱子20的情况下机器人100的平衡运动的部件和用于与箱子20接合/期间机器人100的平衡运动的部件。操纵目标指的是为臂150产生力或加速度以执行给定任务(例如利用末端执行器160)。例如,将臂150移动到提升箱子20的位置的加速度和使末端执行器160能够提升箱子20的致动力。
50.在一些示例中,多主体控制器200是控制系统140的一部分。在其他示例中,多主体控制器200独立于控制系统140,但传递关节扭矩τ
j
以允许控制系统140实现机器人100的关节扭矩τ
j
(例如使控制系统140能够致动致动器a以实现关节扭矩τ
j
)。在一些配置中,多主体控制器200与机器人100的其他控制器通信以产生关节扭矩τ
j
。例如,多主体控制器200可以接收关于臂150和/或末端执行器160的操作的操纵输入230。臂150和/或末端执行器160的操作执行需要一些操作手段的任务(例如提升箱子20)。这里,操纵通常是指修改物体的空间关系。操纵的一些示例包括抓取、推动、滑动、倾斜、滚动、投掷或移动物体的其他方式。为了执行操纵,臂150(例如在末端执行器160处)可以根据臂150的运动学在物体上施加末端执行器力f
ee
(图2b和2c)。例如,为了执行需要操纵的任务(即具有操纵目标的任务),臂150的末端执行器160表现出末端执行器加速度a
ee
(图2b和2c),以将末端执行器力f
ee
施加到物体上。在一些示例中,臂控制器158配置成控制臂150,其中末端执行器160与多主体控制器200分离。在这些示例中,臂控制器158将臂控制器158产生以执行操纵的末端执行器力f
ee
和/或末端执行器加速度a
ee
传送给多主体控制器200作为操纵输入230。多主体控制器200然后可以使用这些操纵输入230来产生给定任务的关节扭矩τ
j
。在一些实施方式中,臂控制器158是闭环控制器(例如前馈闭环控制器)。
51.参考图2b,主体伺服210配置成接收转向命令212作为输入,并基于转向命令212控制机器人100的状态。转向命令212可以引导机器人100以特定的方式或方向移动。例如,转向命令212指定机器人100行进的方向和/或速度。在一些示例中,转向命令212是基于任务的,其中转向命令212指示机器人100移动,以便在环境10内执行给定任务。转向命令212可以作为输入从机器人100的操作者接收,比如远程控制机器人100的用户(例如用操纵杆、按钮或远程设备),或者从机器人100的自主或半自主系统接收(例如以编程方式)。尽管主体伺服210接收转向命令212,但主体伺服210通常不知道转向命令212的来源。
52.主体伺服210配置为控制机器人100的动态状态(称为控制状态214)。在一些示例中,控制状态214是机器人100相对于机器人100的矢状面p
s
的动力学。参考图1b和2b,矢状面p
s
跨越参考坐标系的x

z平面。在一些实施方式中,主体伺服210控制的机器人100的控制状态214包括机器人100的轮位置x
w
(即相对于固定世界框架的轮位置x
w
)、相对于轮的com x
c/w
、自然俯仰θ
np
以及对应于这些状态的导数(例如轮速度、轮加速度、com的速度、com的加速度、自然俯仰角速度、自然俯仰角加速度等)。这里,自然俯仰θ
np
是指具有多个惯性主体的机器人结构(即机器人100)的俯仰近似。例如,代替假设机器人100的俯仰仅基于机器人100
的中心主体(例如机器人100的躯干110),自然俯仰θ
np
考虑了机器人100的其他附加惯性主体(例如腿、臂、尾部或其他附件)。为了成为整个机器人100的代表性俯仰近似,自然俯仰θ
np
使用传感器系统170来确定机器人100的关节j的关节角以及机器人100的部件(例如主体110、腿120、臂150等)的定向。机器人100的状态由关节角度和从其他传感器数据174(例如运动学数据或imu数据)导出的定向数据捕获,机器人100的控制系统140估计机器人100的主体伺服210配置为控制的自然俯仰θ
np

53.在一些实施方式中,尽管机器人100的com的高度h
com
是矢状面p
s
的空间关系,但主体伺服210不对机器人100的com的高度h
com
负责。相反,与主体伺服210分离的高度控制器可以确定机器人100的高度h
com
。在一些示例中,高度控制器是具有闭环控制反馈的比例积分微分(pid)控制器。作为pid控制器的高度控制器可以是前馈pid控制器。前馈控制器通常配置有预测反馈,以产生抢先控制,而不仅仅是典型pid控制回路的反应或响应控制。当机器人100的高度h
com
由单独控制器(例如高度控制器)确定时,单独控制器将机器人100的高度h
com
传送给主体伺服210。这里,即使主体伺服210可能不控制机器人100的高度h
com
,主体伺服210也可以基于机器人100的高度h
com
产生任务空间控制动作216,比如轮扭矩τ
w
或轮轴力f
a
。换句话说,机器人100的高度h
com
是主体伺服210的测量状态(例如类似于控制状态214)。
54.利用机器人100的动力学,主体伺服210配置成产生任务空间控制动作216。这里,为了对移动机器人100(例如具有驱动轮130)执行具有平衡目标和操纵目标的任务,控制动作216是围绕驱动轮130的轮扭矩τ
w
和相应驱动轮130处的轴力f
a
。由于机器人100的控制状态214是转向命令212的结果,因此主体伺服210基于转向命令212或转向命令212的影响产生轮扭矩τ
w
和轮轴力f
a
。主体伺服210配置为将驱动轮130的轮扭矩τ
w
和轮轴力f
a
(即控制动作216)传送给求解器220。
55.在一些示例中,主体伺服210通过使用物理线性系统产生轮扭矩τ
w
和轮轴力f
a
的控制动作216。线性系统通常可以由状态空间方程表示如下:
[0056][0057]
其中,x是表示机器人100的控制状态214的向量,是表示控制状态214的导数的向量,u是表示控制动作216的向量。作为机器人100的当前状态和机器人100的未来状态之间的关系,线性系统也可以考虑臂150和/或末端执行器160的影响。由于臂控制器158与主体伺服210分离,主体伺服210不需要确定末端执行器力f
ee
,而是接收末端执行器力f
ee
作为线性系统的已知值。当线性系统表示x

z平面(即矢状面p
s
)的状态空间时,末端执行器力f
ee
可以表示为x方向上的力分量f
ee
,f
ee,x
和z方向上的力分量f
ee
,f
ee,z
。利用状态空间的该表达式,主体伺服210确定控制动作216。利用对应于驱动轮130的轮扭矩τ
w
和轮轴力f
a
的控制动作216,主体伺服210可以分别或共同确定机器人100的每个驱动轮130的轮扭矩τ
w
和轮轴力f
a
。在一些示例中,取决于任务,驱动轮130之间的轮扭矩τ
w
和轮轴力f
a
可以不同。
[0058]
为了产生控制动作216,主体伺服210可以是使用模型预测控制(mpc)的控制器(即后退水平控制器)。mpc通常是有限时域优化模型,其迭代地确定系统的当前状态和预测的状态路径。此外,mpc可以控制多变量,并使用先前系统控制的历史来改善未来状态。这里,mpc可以允许主体伺服210基于当前测量的控制状态214准确预测和产生控制动作216。
[0059]
参考图2c,求解器220配置为从主体伺服210接收控制动作216,并为机器人100的每个关节j产生关节扭矩τ
j
。这里,关节扭矩τ
j
在机器人100上产生角动量效应,以在执行任
务期间控制机器人100。在一些示例中,多主体控制器220使用关节扭矩τ
j
来产生操纵力,并在机器人100的末端执行器160处施加操纵力。这里,操纵力可以使用为多个关节j产生的关节扭矩τ
j
来补充或增强机器人100的控制
[0060]
求解器220可以配置为产生任意数量n个关节j的关节扭矩τ
j
。例如,尽管图1a

2c描绘了具有五个关节j,j
a1
,j
a2
,j
a3
,j
b
,j
h
的机器人,但取决于机器人100的设计,机器人100可以具有更多或更少的关节j。通常,求解器220寻求基于求解器220为给定任务接收的输入来优化关节扭矩τ
j
。由于该优化,求解器220可以确定关节j的关节扭矩τ
j
的范围可以从零(即无扭矩)到主要有助于平衡目标和操纵目标。换句话说,在极端情况下,单个关节j可以抵消机器人100在操纵期间受到的力。然而,对于多个关节j和输入,比如运动约束240,求解器220不可能在任务期间使单个关节j抵消机器人100的力。事实上,当求解器220的优化实现成本函数(例如最小化)时,更有可能的是,单个关节j不是集体关节扭矩τ
j
的主要贡献者。在图2c所示的示例中,求解器220为五个关节j,j
b
,j
h
,j
a1
,j
a2
,j
a3
中的每个产生关节扭矩τ
j

jb

jh

ja1

ja2

ja3

[0061]
求解器220配置为接收来自主体伺服210的控制动作216、末端执行器的冲击(例如末端执行器力f
ee
)和机器人100的运动约束240作为输入。机器人100的运动约束240可以指机器人100的物理限制或机器人100的空间限制(例如环境10内的限制)。机器人100的物理限制的一些示例包括运动范围限制242和扭矩限制244,而机器人100的空间限制的示例包括碰撞限制246。这些运动约束240可以是动态的、静态的或两者的某种组合。这里,动态运动约束240是可以随着时间或者随着机器人100在环境10内的移动而改变的约束。静态运动约束240指的是关于机器人100和/或关于环境10已知的恒定运动约束240。
[0062]
运动范围限制242指的是关于关节j的运动的测量量。关于关节j的运动范围可以被关节本身的能力限制,或者被限制为防止关节j之间的运动范围重叠。为了说明关节本身的运动范围的限制,关节j可以具有定义运动范围的结构。例如,用于诸如旋转关节、正交关节、回转关节、线性关节、扭转关节等关节j的机械联接限制关节j的运动范围(例如静态运动范围限制242)。另外或可替代地,可能存在这样的情况,尽管关节j能够进行更大范围的运动(例如全范围的运动),但机器人100或机器人100的系统的操作者决定特定任务或模式应该进一步限制关节j的运动范围(例如作为动态运动范围限制242)。例如,机器人100可以具有行进模式,其中机器人100执行有限类型的任务,其中当与关节j的全范围运动相比时(例如在其他模式中),至少一个关节j具有减小的运动范围。在一些示例中,运动范围限制242指在特定类型任务期间受限的关节j的全部运动范围的一部分。例如,当末端执行器160提升箱子20时,第二臂关节j
a2
可能没有完全延伸。这里,完全延伸第二臂关节j
a2
可能不利地影响末端执行器150处的扭矩τ,使得求解器220(或机器人100的其他系统)将运动范围的该部分指定为运动范围限制242。
[0063]
作为重叠运动范围的示例,参考图2c,可能存在臂150可围绕第一臂关节j
a1
(即肩关节j)移动并且干扰(例如碰撞)围绕背关节j
b
移动的cbb 110b的风险。由于这些类型的潜在干扰,可以为背关节j
b
或第一臂关节j
a1
或两个关节j指定运动范围限制242。换句话说,运动范围限制242可以防止主体间碰撞(例如作为静态运动范围限制242)。
[0064]
扭矩限制244指的是与可能在特定关节j处产生的扭矩τ量相关的约束。扭矩限制244通常是物理限制,因为与特定关节j相关的致动器a可能只能产生关于关节j的最大扭矩
τ量。在一些示例中,与特定关节j相关的致动器a基于诸如尺寸、几何形状、材料成分、流体动力学等属性被评定为最大扭矩。因此,这些额定值转化为与一个或多个致动器a相关的给定关节j的扭矩限制244。
[0065]
碰撞限制246指的是施加在机器人100上的限制,以避免机器人100的一部分和环境10之间的碰撞。这里,一些碰撞限制246可以是静态的,而其他碰撞限制246是动态的。例如,当机器人100处于具有机器人100必须避免的永久特征(例如墙壁、地板、架子、橱柜、固定机械、支撑结构等)的环境10中时,存在一些静态碰撞限制246。一些其他碰撞限制246是动态的,因为未知物体或机器人100的碰撞风险可能在操作期间被引入机器人100。
[0066]
在一些示例中,求解器220被预编程有运动约束240。例如,求解器220的算法考虑运动约束240。在其他示例中,求解器220被编程有一些运动约束240,比如运动范围限制242和/或扭矩限制244,而其他运动约束240(例如动态运动约束240,比如碰撞限制246)在产生关节扭矩τ
j
之前被求解器220接收。例如,机器人100的系统可以在机器人100围绕环境10移动时产生动态运动约束240(例如碰撞限制246)。这可以允许传感器系统170在机器人100的操作期间检测潜在碰撞。例如,当任务是移动箱子20时,机器人100可能不知道在箱子20之前突出在地面12上的货盘30,直到机器人100在货盘30的感测范围内。这里,机器人100可以基于传感器数据174和机器人100的运动学产生碰撞限制246,并将碰撞限制246传送给求解器220。
[0067]
求解器220配置为通过基于操纵输入230、轮扭矩τ
w
和轮轴力f
a
满足运动约束240来为多个关节j1–
n
中的每个产生关节扭矩τ
j
。在一些示例中,如图2c所示,为了产生关节扭矩τ
j
,求解器220产生运动方程,将运动方程投影到任务空间14上,并根据关节扭矩算法222确定关节j的每个关节扭矩τ
j
。在一些示例中,求解器220是为机器人100产生运动方程的逆动力学求解器。在一些实施方式中,求解器220产生表示为如下的运动方程:
[0068][0069]
其中,q,是表示关节角度、关节角速度和关节角加速度的向量,m是系统的质量矩阵,c是表示科里奥利力和离心力的向量,c
gravity
是表示重力的向量,d是系统的扭矩矩阵,τ是表示关节扭矩的向量,项表示关于驱动轮130的外部效应,项表示臂150的末端执行器160的外部效应。在一些配置中,q项另外考虑了机器人100的俯仰θ(例如自然俯仰θ
p
)。这里,方程(2)表示更一般的运动方程,其包括围绕驱动轮130的运动和围绕末端执行器150的运动。关于方程(2),驱动轮130和末端执行器160的外部效应是已知的,因为求解器220从主体伺服210接收对应于驱动轮130的外部效应的控制动作214,并且从臂控制器158接收对应于末端执行器160的外部效应的操纵输入230。因此,求解器220可以根据所有剩余的已知变量来分离代表所有关节扭矩τ
j
的项dτ。
[0070]
为了确定所有的关节扭矩τ
j
,求解器220配置为考虑机器人100在由运动约束240表示的任务期间的限制。在一些示例中,求解器220使用关节扭矩算法222产生关节扭矩τ
j
。在一些实施方式中,关节扭矩算法222是优化成本函数。求解器220使用优化成本函数来实现任务的平衡目标,同时也实现任务的操纵目标。在一些示例中,求解器220最小化优化成本函数,以最小化平衡目标和最小化操纵目标。在一些配置中,优化成本函数是二次函数,其中求解器220基于作为线性约束的运动约束240使用二次规划来确定关节扭矩τ
j
。换句话
说,求解器220可以是二次规划求解器,其确定关节扭矩τ
j
的最优解,以在机器人100执行任务时控制机器人100。在一些配置中,关节扭矩算法222由以下二次优化函数表示:
[0071]
min
τ
‖a1τ

b1‖2w1 ‖a2τ

b2‖2w2 α‖τ

τ
d
‖w
ꢀꢀꢀ
(3)
[0072]
其中,项‖a1τ

b1‖2表示平衡目标,项‖a2τ

b2‖2表示操纵目标,项α‖τ

τ
d
‖表示零伺服。换句话说,方程(3)将目标表示为扭矩τ的函数。
[0073]
当求解器220求解项dτ的方程(2)时,求解器220将解投影到机器人100的任务空间14中。任务空间14指的是机器人100的环境10的特定部分。这里,对于使用滚动运动并包括具有末端执行器160的臂150的移动机器人100,任务空间14指两个空间14、14a

b。机器人100的驱动轮130周围的第一空间14、14a和臂150的末端执行器160周围的第二空间14、14b。利用围绕驱动轮130的任务空间14a,任务空间14a被定向成使得在滚动地面接触期间,驱动轮130的中心(即轴线)不相对于地面12在z方向上移动,同时驱动轮130的中心根据滚动接触在水平方向(即x方向)上移动。通过将项dτ投影到任务空间14中,求解器220为与平衡目标相关的第一任务14a空间产生项a1τ

b1,并为与操纵目标相关的第二任务14b空间产生项a2τ

b2。在一些示例中,关节扭矩算法222包括平衡目标的第一权重w1和操纵目标的第二权重w2。这里,求解器220可以应用权重w
1,2
来指示任务的客观重要性。换句话说,求解器220可以识别任务何时需要比操纵更多的平衡(反之亦然),并且相应地权衡对应于这些目标的项。
[0074]
在一些示例中,任务空间14包括被称为零空间的子空间。在零空间中,对于关节扭矩算法222的目标(即平衡目标和操纵目标)可能存在解的冗余。零空间配置成限制关节扭矩算法222的变量的输出,这些变量可通过将机器人100限制到零空间来求解。换句话说,求解器220可能遇到目标失去排名导致目标不确定的问题。例如,求解器220确定目标是无限的。当求解器220确定平衡目标或操纵目标不确定时,关节扭矩算法222包括零伺服作为定义默认扭矩τ
d
的项。这里,默认扭矩τ
d
对应于多个关节j的关节扭矩τ
j
,而不损害求解器220保持机器人100的一些期望关节配置或姿态的目标。在一些实施方式中,默认扭矩τ
d
是表示每个关节j的向量。默认扭矩τ
d
因此可以配置为根据机器人100的目标应用于一个或多个关节j的任何组合。在一些示例中,默认扭矩τ
d
由副控制器产生。副控制器可以配置成在主控制器比如多主体控制器200的零空间中操作。在一些示例中,副控制器是比例微分(pd)伺服回路,以在零空间中控制机器人100。
[0075]
图3是使用多主体控制器200的方法300。在操作302,方法300接收转向命令212,以在机器人100周围的环境10内执行给定任务。这里,机器人100包括具有第一端部112、第二端部114、多个关节j,j1–
n
的倒立摆主体110,以及在多个关节j中的第一关节j1处联接到倒立摆主体110的臂150。机器人100还包括具有第一端部122和第二端部124的至少一个腿120,其中第一端122在多个关节j1–
n
中的第二关节j2处联接到倒立摆主体110,以及驱动轮130,其可旋转地联接到至少一个腿120的第二端124。在操作304,基于转向命令212,方法300产生机器人100的驱动轮130的轮扭矩τ
w
和机器人100的驱动轮130处的轮轴力f
a
。这里,产生轮扭矩τ
w
和轮轴力f
a
来执行给定任务。在操作306,方法300接收指示机器人100的运动限制的运动约束240。在操作308,方法300接收机器人100的臂150的操纵输入230。操纵输入230配置成操纵机器人100的臂150来执行给定任务。在操作310,对于多个关节j1–
n
中的每个关节j,方法300产生配置为控制机器人100执行给定任务的相应关节扭矩τ
j
。为了产生相应
关节扭矩τ
j
,基于操纵输入230、轮扭矩τ
w
和轮轴力f
a
,关节扭矩满足运动约束240。在操作312,方法300控制机器人100使用为多个关节j1–
n
产生的关节扭矩τ
j
来执行给定任务。
[0076]
可选地,方法300可以包括以下方面。在一些实施方式中,为多个关节j1–
n
中的每个产生相应关节扭矩τ
j
包括使用关节扭矩算法222来最小化平衡目标、平衡机器人100以及最小化操纵目标,以基于给定任务移动机器人100的臂150,其中关节扭矩算法222包括基于接收的运动约束240的二次函数。在一些示例中,当平衡目标或操纵目标不确定时,同时使用关节扭矩算法222来最小化平衡目标和最小化操纵目标,关节扭矩算法222应用默认扭矩τ
d
来控制机器人100执行给定任务,而不损害平衡目标和操纵目标。在一些配置中,使用关节扭矩算法222来最小化平衡目标和最小化操纵目标包括将第一权重w1应用于平衡目标和将第二权重w2应用于操纵目标,其中第一权重w1和第二权重w2指示给定任务的客观重要性。
[0077]
图4是可用于实现在本文件中描述的系统(例如控制系统140、传感器系统170、臂控制器158、多主体控制器200、零伺服等)的示例计算设备400的示意图和方法(例如方法300)。计算设备400旨在表示各种形式的数字计算机,比如膝上型计算机、台式计算机、工作站、个人数字助理、服务器、刀片服务器、大型机和其他合适的计算机。这里所示的部件、它们的连接和关系以及它们的功能仅是示例性的,并不意味着限制本文件中描述和/或要求保护的发明的实施方式。
[0078]
计算设备400包括处理器410、存储器420、存储设备430、连接到存储器420和高速扩展端口450的高速接口/控制器440以及连接到低速总线470和存储设备430的低速接口/控制器460。每个部件410、420、430、440、450和460使用各种总线互连,并且可以安装在公共主板上或者以其他适当的方式安装。处理器410可以处理用于在计算设备400内执行的指令,包括存储在存储器420中或存储设备430上的指令,以在外部输入/输出设备上显示图形用户界面(gui)的图形信息,比如耦合到高速接口440的显示器480。在其他实施方式中,可以适当使用多个处理器和/或多条总线以及多个存储器和多种类型的存储器。此外,可以连接多个计算设备400,每个设备提供必要操作的部分(例如作为服务器组、一组刀片服务器或多处理器系统)。
[0079]
存储器420在计算设备400内非暂时地存储信息。存储器420可以是计算机可读介质、易失性存储单元或非易失性存储单元。非暂时性存储器420可以是用于临时或永久存储程序(例如指令序列)或数据(例如程序状态信息)以供计算设备400使用的物理设备。非易失性存储器的示例包括但不限于闪存和只读存储器(rom)/可编程只读存储器(prom)/可擦除可编程只读存储器(eprom)/电可擦除可编程只读存储器(eeprom)(例如通常用于固件,比如引导程序)。易失性存储器的示例包括但不限于随机存取存储器(ram)、动态随机存取存储器(dram)、静态随机存取存储器(sram)、相变存储器(pcm)以及磁盘或磁带。
[0080]
存储设备430能够为计算设备400提供大容量存储。在一些实施方式中,存储设备430是计算机可读介质。在各种不同的实施方式中,存储设备430可以是软盘设备、硬盘设备、光盘设备或磁带设备、闪存或其他类似的固态存储设备,或者设备阵列,包括存储区域网络或其他配置中的设备。在另外的实施方式中,计算机程序产品有形地包含在信息载体中。计算机程序产品包含指令,其在被执行时执行一种或多种方法,比如上述方法。信息载体是计算机或机器可读介质,比如存储器420、存储设备430或处理器410上的存储器。
[0081]
高速控制器440管理计算设备400的带宽密集型操作,而低速控制器460管理较低
带宽密集型操作。这种职责分配仅是示例性的。在一些实施方式中,高速控制器440耦合到存储器420、显示器480(例如通过图形处理器或加速器)以及可以接受各种扩展卡(未示出)的高速扩展端口450。在一些实施方式中,低速控制器460耦合到存储设备430和低速扩展端口490。可以包括各种通信端口(例如usb、蓝牙、以太网、无线以太网)的低速扩展端口490可以例如通过网络适配器耦合到一个或多个输入/输出设备,比如键盘、定点设备、扫描仪或网络设备,比如交换机或路由器。
[0082]
如图所示,计算设备400可以多种不同的形式实现。例如,它可以实现为标准服务器400a,或者在一组这样的服务器400a中多次实现为膝上型计算机400b,或者实现为机架服务器系统400c的一部分。
[0083]
本文描述的系统和技术的各种实施方式可以在数字电子和/或光学电路、集成电路、专门设计的asic(专用集成电路)、计算机硬件、固件、软件和/或其组合中实现。这些各种实施方式可以包括在可编程系统上可执行和/或可解释的一个或多个计算机程序中的实施方式,该可编程系统包括至少一个可编程处理器,该可编程处理器可以是专用或通用的,被耦合以从存储系统、至少一个输入设备和至少一个输出设备接收数据和指令并将数据和指令发送至其。
[0084]
这些计算机程序(也称为程序、软件、软件应用或代码)包括用于可编程处理器的机器指令,并且可以用高级过程和/或面向对象的编程语言和/或汇编/机器语言来实现。如本文所用,术语“机器可读介质”和“计算机可读介质”指的是用于向可编程处理器提供机器指令和/或数据的任何计算机程序产品、非暂时性计算机可读介质、装置和/或设备(例如磁盘、光盘、存储器、可编程逻辑设备(pld)),包括接收机器指令作为机器可读信号的机器可读介质。术语“机器可读信号”是指用于向可编程处理器提供机器指令和/或数据的任何信号。
[0085]
本说明书中描述的过程和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器来执行,以通过对输入数据进行操作并产生输出来执行功能。这些过程和逻辑流程也可以由专用逻辑电路来执行,例如fpga(现场可编程门阵列)或asic(专用集成电路)。举例来说,适合于执行计算机程序的处理器包括通用和专用微处理器,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机的基本元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备,例如磁盘、磁光盘或光盘,或者可操作地耦合以从其接收数据或向其传输数据,或两者兼有。然而,计算机不需要有这样的设备。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,包括例如半导体存储设备,例如eprom、eeprom和闪存设备;磁盘,例如内部硬盘或可移动磁盘;磁光盘;以及cd rom和dvd

rom盘。处理器和存储器可以由专用逻辑电路来补充或结合在其中。
[0086]
为了提供与用户的交互,本公开的一个或多个方面可以在计算机上实现,该计算机具有显示设备,例如crt(阴极射线管)、lcd(液晶显示器)监视器或触摸屏,用于向用户显示信息,并且可选地具有键盘和定点设备,例如鼠标或轨迹球,用户可以通过该定点设备向计算机提供输入。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感官反馈,例如视觉反馈、听觉反馈或触觉反馈;并且可以以任何形式
接收来自用户的输入,包括声音、语音或触觉输入。此外,计算机可以通过向用户使用的设备发送文档和从用户使用的设备接收文档来与用户交互;例如,通过响应于从网络浏览器接收的请求,将网页发送到用户客户端设备上的网络浏览器。
[0087]
已经描述了许多实施方式。然而,应当理解,在不脱离本公开的精神和范围的情况下,可以进行各种修改。因此,其他实施方式在以下权利要求的范围内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

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

相关文献