执行器

执行器#

一个关节系统由驱动关节组成,也称为自由度(DOF)。在物理系统中,驱动通常通过主动组件进行,例如电动或液压马达,或通过被动组件,例如弹簧。这些组件可能会引入某些非线性特性,包括延迟或最大可产生的速度或扭矩。

在仿真中,关节可以是位置控制、速度控制或扭矩控制。对于位置和速度控制,物理引擎内部实现了一个弹簧-阻尼(PD)控制器,用于计算作用在执行关节上的扭矩。在扭矩控制中,命令直接设置为关节力。虽然这模拟了关节机制的理想行为,但并不能真实地模拟驱动器在现实世界中的工作方式。因此,我们提供了一个机制来注入外部模型,以计算关节命令,以代表物理机器人的行为。

执行器模型#

我们命名两种不同类型的执行器模型:

  1. 隐式: 对应于理想的仿真机制(由物理引擎提供)。

  2. 明确: 对应于外部驱动器模型(由用户实现)。

显式执行器模型执行两个步骤: 1)计算用于跟踪输入命令的期望关节力矩,2)根据电机能力对期望力矩进行修剪。修剪后的力矩是设置到模拟中的期望执行力。

作为理想显式执行器模型的示例,我们提供 omni.isaac.lab.actuators.IdealPDActuator 类,它实现了具有前馈力的 PD 控制器,并根据配置的最大力进行简单剪裁。

\[\begin{split}\tau_{j, computed} & = k_p * (q - q_{des}) + k_d * (\dot{q} - \dot{q}_{des}) + \tau_{ff} \\ \tau_{j, applied} & = clip(\tau_{computed}, -\tau_{j, max}, \tau_{j, max})\end{split}\]

在这里, \(k_p\)\(k_d\) 是关节刚度和阻尼增益, \(q\)\(\dot{q}\) 是当前关节位置和速度, \(q_{des}\) , \(\dot{q}_{des}\)\(\tau_{ff}\) 是期望的关节位置、速度和力矩指令。参数 \(\gamma\)\(\tau_{motor, max}\) 是齿轮箱比和最大电机力矩。

执行器组#

执行器模型本身是计算块,其输入为期望的关节命令,并输出应用于模拟器的关节命令。它们不包含任何关于它们自身作用的关节的知识。这些由 omni.isaac.lab.assets.Articulation 类处理,该类包装了物理引擎的关节类。

执行器被收集为一组在关节上被激活的执行器,这些关节使用相同的执行器模型。例如,四足动物机器人ANYmal-C 使用串联弹性执行器ANYdrive 3.0 作为所有关节的执行器。这种分组配置了这些关节的执行器模型,将输入命令转换为关节级命令,并将关节动作返回到模拟器中。如果有一只手臂使用不同的执行器模型,比如直流电机,就需要配置不同的执行器组。

以下图显示了一个腿式移动机械手的执行器组。

腿足移动操控器的驱动器模型 腿足移动操控器的驱动器模型

参见

我们为各种显式执行器模型提供实现。这些详细信息可在 omni.isaac.lab.actuators 子包中找到。