执行器#
一个关节系统由驱动关节组成,也称为自由度(DOF)。在物理系统中,驱动通常通过主动组件进行,例如电动或液压马达,或通过被动组件,例如弹簧。这些组件可能会引入某些非线性特性,包括延迟或最大可产生的速度或扭矩。
在仿真中,关节可以是位置控制、速度控制或扭矩控制。对于位置和速度控制,物理引擎内部实现了一个弹簧-阻尼(PD)控制器,用于计算作用在执行关节上的扭矩。在扭矩控制中,命令直接设置为关节力。虽然这模拟了关节机制的理想行为,但并不能真实地模拟驱动器在现实世界中的工作方式。因此,我们提供了一个机制来注入外部模型,以计算关节命令,以代表物理机器人的行为。
执行器模型#
我们命名两种不同类型的执行器模型:
隐式: 对应于理想的仿真机制(由物理引擎提供)。
明确: 对应于外部驱动器模型(由用户实现)。
显式执行器模型执行两个步骤: 1)计算用于跟踪输入命令的期望关节力矩,2)根据电机能力对期望力矩进行修剪。修剪后的力矩是设置到模拟中的期望执行力。
作为理想显式执行器模型的示例,我们提供 omni.isaac.lab.actuators.IdealPDActuator
类,它实现了具有前馈力的 PD 控制器,并根据配置的最大力进行简单剪裁。
在这里, \(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 子包中找到。