From 325f5d72f8860c63930f7f6aeb76c9a1c7ff3752 Mon Sep 17 00:00:00 2001 From: Simon Alibert Date: Fri, 23 May 2025 16:02:03 +0200 Subject: [PATCH] Fix arm joints order --- .../homonculus/homonculus_arm.py | 21 ++++++++++++------- 1 file changed, 13 insertions(+), 8 deletions(-) diff --git a/lerobot/common/teleoperators/homonculus/homonculus_arm.py b/lerobot/common/teleoperators/homonculus/homonculus_arm.py index 3657c0a02..73c85ba45 100644 --- a/lerobot/common/teleoperators/homonculus/homonculus_arm.py +++ b/lerobot/common/teleoperators/homonculus/homonculus_arm.py @@ -45,13 +45,13 @@ class HomonculusArm(Teleoperator): self.serial = serial.Serial(config.port, config.baud_rate, timeout=1) self.joints = { - "wrist_roll": MotorNormMode.RANGE_M100_100, - "wrist_pitch": MotorNormMode.RANGE_M100_100, - "wrist_yaw": MotorNormMode.RANGE_M100_100, - "elbow_flex": MotorNormMode.RANGE_M100_100, - "shoulder_roll": MotorNormMode.RANGE_M100_100, - "shoulder_yaw": MotorNormMode.RANGE_M100_100, "shoulder_pitch": MotorNormMode.RANGE_M100_100, + "shoulder_yaw": MotorNormMode.RANGE_M100_100, + "shoulder_roll": MotorNormMode.RANGE_M100_100, + "elbow_flex": MotorNormMode.RANGE_M100_100, + "wrist_roll": MotorNormMode.RANGE_M100_100, + "wrist_yaw": MotorNormMode.RANGE_M100_100, + "wrist_pitch": MotorNormMode.RANGE_M100_100, } self.thread = threading.Thread(target=self._async_read, daemon=True, name=f"{self} _async_read") self._lock = threading.Lock() @@ -206,8 +206,13 @@ class HomonculusArm(Teleoperator): try: joint_angles = { - joint: int(pos) - for joint, pos in zip(self.joints, raw_values[:2] + raw_values[16:], strict=True) + "shoulder_pitch": int(raw_values[19]), + "shoulder_yaw": int(raw_values[18]), + "shoulder_roll": int(raw_values[20]), + "elbow_flex": int(raw_values[17]), + "wrist_roll": int(raw_values[16]), + "wrist_yaw": int(raw_values[1]), + "wrist_pitch": int(raw_values[0]), } except ValueError: continue