Skip to content

Latest commit

 

History

History
42 lines (31 loc) · 1.94 KB

File metadata and controls

42 lines (31 loc) · 1.94 KB

在强化学习训练中,Franka Panda夹爪的左右对称开合是通过PDJointPosMimicController(模仿控制器)保证的。这个特殊控制器的工作原理如下:

  1. 单一控制参数: 虽然Panda有两个夹爪关节(panda_finger_joint1panda_finger_joint2),但模仿控制器让两个关节共享同一个控制信号,只需一个值就能控制整个夹爪的开合。

  2. 代码实现

    class PDJointPosMimicController(PDJointPosController):
        def _get_joint_limits(self):
            joint_limits = super()._get_joint_limits()
            diff = joint_limits[0:-1] - joint_limits[1:]
            assert np.allclose(diff, 0), "Mimic joints should have the same limit"
            return joint_limits[0:1]

    这段代码表明模仿控制器只需要知道第一个关节的限制,然后同样的控制信号会应用到所有关节。

  3. 控制器配置

    gripper_pd_joint_pos = PDJointPosMimicControllerConfig(
        self.gripper_joint_names,  # 包含两个夹爪关节
        lower=-0.01,  # 最小位置(稍微闭合)
        upper=0.04,   # 最大位置(完全打开)
        ...
    )
  4. 动作空间简化

    • 虽然物理上控制两个关节,但动作空间中只需一个维度
    • 例如,输入0.04时,两个关节都会移动到0.04位置(完全打开)
    • 输入0.0时,两个关节都会移动到0.0位置(完全闭合)

这种设计的优势:

  • 简化学习:强化学习算法只需学习控制一个参数,而不是分别控制两个手指
  • 确保对称性:无论输入什么值,夹爪总是左右对称开合
  • 符合物理实际:真实的Franka Panda夹爪在物理结构上就是设计为同步对称移动的

在GEN72-EG2机器人中,也使用了相同的控制方法,尽管有4个夹爪关节,但通过PDJointPosMimicController,它们也能保持同步对称运动。