diff --git a/lerobot/common/motors/dynamixel/dynamixel.py b/lerobot/common/motors/dynamixel/dynamixel.py index b2c9efbc..a9e00247 100644 --- a/lerobot/common/motors/dynamixel/dynamixel.py +++ b/lerobot/common/motors/dynamixel/dynamixel.py @@ -37,27 +37,27 @@ class OperatingMode(Enum): # DYNAMIXEL only controls current(torque) regardless of speed and position. This mode is ideal for a # gripper or a system that only uses current(torque) control or a system that has additional # velocity/position controllers. - Current = 0 + CURRENT = 0 # This mode controls velocity. This mode is identical to the Wheel Mode(endless) from existing DYNAMIXEL. # This mode is ideal for wheel-type robots. - Velocity = 1 + VELOCITY = 1 # This mode controls position. This mode is identical to the Joint Mode from existing DYNAMIXEL. Operating # position range is limited by the Max Position Limit(48) and the Min Position Limit(52). This mode is # ideal for articulated robots that each joint rotates less than 360 degrees. - Position = 3 + POSITION = 3 # This mode controls position. This mode is identical to the Multi-turn Position Control from existing # DYNAMIXEL. 512 turns are supported(-256[rev] ~ 256[rev]). This mode is ideal for multi-turn wrists or # conveyer systems or a system that requires an additional reduction gear. Note that Max Position # Limit(48), Min Position Limit(52) are not used on Extended Position Control Mode. - Extended_Position = 4 + EXTENDED_POSITION = 4 # This mode controls both position and current(torque). Up to 512 turns are supported (-256[rev] ~ # 256[rev]). This mode is ideal for a system that requires both position and current control such as # articulated robots or grippers. - Current_Position = 5 + CURRENT_POSITION = 5 # This mode directly controls PWM output. (Voltage Control Mode) PWM = 16 diff --git a/lerobot/common/robots/koch/robot_koch.py b/lerobot/common/robots/koch/robot_koch.py index 35cacdf9..3dd78519 100644 --- a/lerobot/common/robots/koch/robot_koch.py +++ b/lerobot/common/robots/koch/robot_koch.py @@ -99,14 +99,14 @@ class KochRobot(Robot): # can't rotate more than 360 degrees (from 0 to 4095) And some mistake can happen while # assembling the arm, you could end up with a servo with a position 0 or 4095 at a crucial # point - self.arm.write("Operating_Mode", name, OperatingMode.Extended_Position.value) + self.arm.write("Operating_Mode", name, OperatingMode.EXTENDED_POSITION.value) # Use 'position control current based' for gripper to be limited by the limit of the current. # For the follower gripper, it means it can grasp an object without forcing too much even tho, # its goal position is a complete grasp (both gripper fingers are ordered to join and reach a touch). # For the leader gripper, it means we can use it as a physical trigger, since we can force with our finger # to make it move, and it will move back to its original target position when we release the force. - self.arm.write("Operating_Mode", "gripper", OperatingMode.Current_Position.value) + self.arm.write("Operating_Mode", "gripper", OperatingMode.CURRENT_POSITION.value) # Set better PID values to close the gap between recorded states and actions # TODO(rcadene): Implement an automatic procedure to set optimal PID values for each motor diff --git a/lerobot/common/teleoperators/koch/teleop_koch.py b/lerobot/common/teleoperators/koch/teleop_koch.py index 842de99c..25ae14e6 100644 --- a/lerobot/common/teleoperators/koch/teleop_koch.py +++ b/lerobot/common/teleoperators/koch/teleop_koch.py @@ -84,14 +84,14 @@ class KochTeleop(Teleoperator): # can't rotate more than 360 degrees (from 0 to 4095) And some mistake can happen while # assembling the arm, you could end up with a servo with a position 0 or 4095 at a crucial # point - self.arm.write("Operating_Mode", name, OperatingMode.Extended_Position.value) + self.arm.write("Operating_Mode", name, OperatingMode.EXTENDED_POSITION.value) # Use 'position control current based' for gripper to be limited by the limit of the current. # For the follower gripper, it means it can grasp an object without forcing too much even tho, # its goal position is a complete grasp (both gripper fingers are ordered to join and reach a touch). # For the leader gripper, it means we can use it as a physical trigger, since we can force with our finger # to make it move, and it will move back to its original target position when we release the force. - self.arm.write("Operating_Mode", "gripper", OperatingMode.Current_Position.value) + self.arm.write("Operating_Mode", "gripper", OperatingMode.CURRENT_POSITION.value) for name in self.arm.names: self.arm.write("Torque_Enable", name, TorqueMode.ENABLED.value)