Caps dxl OperatingMode
This commit is contained in:
parent
25388d0947
commit
7582a0a2b0
|
@ -37,27 +37,27 @@ class OperatingMode(Enum):
|
||||||
# DYNAMIXEL only controls current(torque) regardless of speed and position. This mode is ideal for a
|
# 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
|
# gripper or a system that only uses current(torque) control or a system that has additional
|
||||||
# velocity/position controllers.
|
# 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 controls velocity. This mode is identical to the Wheel Mode(endless) from existing DYNAMIXEL.
|
||||||
# This mode is ideal for wheel-type robots.
|
# 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
|
# 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
|
# 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.
|
# 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
|
# 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
|
# 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
|
# 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.
|
# 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] ~
|
# 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
|
# 256[rev]). This mode is ideal for a system that requires both position and current control such as
|
||||||
# articulated robots or grippers.
|
# articulated robots or grippers.
|
||||||
Current_Position = 5
|
CURRENT_POSITION = 5
|
||||||
|
|
||||||
# This mode directly controls PWM output. (Voltage Control Mode)
|
# This mode directly controls PWM output. (Voltage Control Mode)
|
||||||
PWM = 16
|
PWM = 16
|
||||||
|
|
|
@ -99,14 +99,14 @@ class KochRobot(Robot):
|
||||||
# can't rotate more than 360 degrees (from 0 to 4095) And some mistake can happen while
|
# 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
|
# assembling the arm, you could end up with a servo with a position 0 or 4095 at a crucial
|
||||||
# point
|
# 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.
|
# 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,
|
# 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).
|
# 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
|
# 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.
|
# 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
|
# 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
|
# TODO(rcadene): Implement an automatic procedure to set optimal PID values for each motor
|
||||||
|
|
|
@ -84,14 +84,14 @@ class KochTeleop(Teleoperator):
|
||||||
# can't rotate more than 360 degrees (from 0 to 4095) And some mistake can happen while
|
# 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
|
# assembling the arm, you could end up with a servo with a position 0 or 4095 at a crucial
|
||||||
# point
|
# 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.
|
# 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,
|
# 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).
|
# 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
|
# 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.
|
# 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:
|
for name in self.arm.names:
|
||||||
self.arm.write("Torque_Enable", name, TorqueMode.ENABLED.value)
|
self.arm.write("Torque_Enable", name, TorqueMode.ENABLED.value)
|
||||||
|
|
Loading…
Reference in New Issue