From 1990f9c9bce60332e159e20a03df8a5413ae1429 Mon Sep 17 00:00:00 2001 From: Remi Cadene Date: Wed, 16 Oct 2024 20:37:46 +0200 Subject: [PATCH] make it work --- lerobot/common/robot_devices/motors/feetech.py | 3 +-- lerobot/common/robot_devices/robots/manipulator.py | 11 ++++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lerobot/common/robot_devices/motors/feetech.py b/lerobot/common/robot_devices/motors/feetech.py index 55e88f42d..c27d3c235 100644 --- a/lerobot/common/robot_devices/motors/feetech.py +++ b/lerobot/common/robot_devices/motors/feetech.py @@ -392,8 +392,7 @@ class FeetechMotorsBus: return [idx for idx, _ in self.motors.values()] def set_calibration(self, calibration: dict[str, list]): - pass - # self.calibration = calibration + self.calibration = calibration def apply_calibration_autocorrect(self, values: np.ndarray | list, motor_names: list[str] | None): """This function apply the calibration, automatically detects out of range errors for motors values and attempt to correct. diff --git a/lerobot/common/robot_devices/robots/manipulator.py b/lerobot/common/robot_devices/robots/manipulator.py index 40964c01c..a20b237e1 100644 --- a/lerobot/common/robot_devices/robots/manipulator.py +++ b/lerobot/common/robot_devices/robots/manipulator.py @@ -128,7 +128,7 @@ def run_arm_calibration(arm: MotorsBus, robot_type: str, arm_name: str, arm_type calib_mode = [CalibrationMode.DEGREE.name] * len(arm.motor_names) # TODO(rcadene): make type of joints (DEGREE or LINEAR) configurable from yaml? - if robot_type == "aloha" and "gripper" in arm.motor_names: + if robot_type in ["aloha", "so_100"] and "gripper" in arm.motor_names: # Joints with linear motions (like gripper of Aloha) are experessed in nominal range of [0, 100] calib_idx = arm.motor_names.index("gripper") calib_mode[calib_idx] = CalibrationMode.LINEAR.name @@ -555,13 +555,14 @@ class ManipulatorRobot: for name in self.follower_arms: self.follower_arms[name].write("Mode", 0) # self.follower_arms[name].write("P_Coefficient", 255, "shoulder_pan") - self.follower_arms[name].write("P_Coefficient", 32, "shoulder_pan") + self.follower_arms[name].write("P_Coefficient", 16, "shoulder_pan") # self.follower_arms[name].write("D_Coefficient", 230, "shoulder_pan") self.follower_arms[name].write("D_Coefficient", 32, "shoulder_pan") - # self.follower_arms[name].write("Acceleration", 254) - # self.follower_arms[name].write("Minimum_Startup_Force", 16) + # self.follower_arms[name].write("Acceleration", 0) + # self.follower_arms[name].write("Minimum_Startup_Force", 0) self.follower_arms[name].write("Lock", 0) - self.follower_arms[name].write("Maximum_Acceleration", 250) + # self.follower_arms[name].write("Maximum_Acceleration", 250) + self.follower_arms[name].write("Maximum_Acceleration", 150) # for name in self.leader_arms: # self.leader_arms[name].write("Max_Torque_Limit", 50, "gripper")