В обучении с подкреплением симметричное открытие и закрытие захвата Franka Panda обеспечивается контроллером PDJointPosMimicController (имитирующий контроллер). Он работает так.
-
Единый управляющий параметр: Хотя у Panda два сустава захвата (
panda_finger_joint1иpanda_finger_joint2), имитирующий контроллер заставляет оба сустава использовать один управляющий сигнал: достаточно одного значения, чтобы управлять всем захватом. -
Реализация в коде:
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]Этот код показывает, что имитирующему контроллеру нужны только пределы первого сустава, а тот же управляющий сигнал применяется ко всем остальным суставам.
-
Конфигурация контроллера:
gripper_pd_joint_pos = PDJointPosMimicControllerConfig( self.gripper_joint_names, # Содержит два сустава захвата lower=-0.01, # Минимальное положение (слегка закрыт) upper=0.04, # Максимальное положение (полностью открыт) ... ) -
Упрощение пространства действий:
- Физически управляются два сустава, но в пространстве действий нужна только одна размерность.
- Например, при вводе 0,04 оба сустава переходят в положение 0,04 (полностью открыт).
- При вводе 0,0 оба сустава переходят в положение 0,0 (полностью закрыт).
Преимущества такого подхода:
- Упрощение обучения: алгоритму обучения с подкреплением нужно научиться управлять одним параметром, а не двумя пальцами по отдельности.
- Гарантия симметрии: какое бы значение ни было подано, захват всегда открывается и закрывается симметрично.
- Соответствие физике: реальный захват Franka Panda конструктивно устроен так, чтобы синхронно и симметрично двигать пальцы.
У робота GEN72-EG2 используется тот же метод управления: несмотря на четыре сустава захвата, имитирующий контроллер PDJointPosMimicController сохраняет их синхронное симметричное движение.