bam.dynamixel.dynamixel#
Attributes#
Classes#
Controller for the XL-320 servo motor. |
Module Contents#
- bam.dynamixel.dynamixel.ADDR_TORQUE_ENABLE = 24#
- bam.dynamixel.dynamixel.ADDR_P_GAIN = 28#
- bam.dynamixel.dynamixel.ADDR_GOAL_POSITION = 30#
- bam.dynamixel.dynamixel.ADDR_PRESENT_POSITION = 36#
- bam.dynamixel.dynamixel.ADDR_PRESENT_SPEED = 38#
- bam.dynamixel.dynamixel.ADDR_PRESENT_LOAD = 40#
- bam.dynamixel.dynamixel.ADDR_PRESENT_VOLTAGE = 42#
- bam.dynamixel.dynamixel.ADDR_PRESENT_TEMPERATURE = 43#
- bam.dynamixel.dynamixel.XL320_ADDR_CW_ANGLE_LIMIT = 6#
- bam.dynamixel.dynamixel.XL320_ADDR_CCW_ANGLE_LIMIT = 8#
- bam.dynamixel.dynamixel.XL320_ADDR_CONTROL_MODE = 11#
- bam.dynamixel.dynamixel.XL320_ADDR_MAX_TORQUE = 15#
- bam.dynamixel.dynamixel.XL320_ADDR_TORQUE_ENABLE = 24#
- bam.dynamixel.dynamixel.XL320_ADDR_LED = 25#
- bam.dynamixel.dynamixel.XL320_ADDR_D_GAIN = 27#
- bam.dynamixel.dynamixel.XL320_ADDR_I_GAIN = 28#
- bam.dynamixel.dynamixel.XL320_ADDR_P_GAIN = 29#
- bam.dynamixel.dynamixel.XL320_ADDR_GOAL_POSITION = 30#
- bam.dynamixel.dynamixel.XL320_ADDR_MOVING_SPEED = 32#
- bam.dynamixel.dynamixel.XL320_ADDR_TORQUE_LIMIT = 35#
- bam.dynamixel.dynamixel.XL320_ADDR_PRESENT_POSITION = 37#
- bam.dynamixel.dynamixel.XL320_ADDR_PRESENT_SPEED = 39#
- bam.dynamixel.dynamixel.XL320_ADDR_PRESENT_LOAD = 41#
- bam.dynamixel.dynamixel.XL320_ADDR_PRESENT_VOLTAGE = 45#
- bam.dynamixel.dynamixel.XL320_ADDR_PRESENT_TEMPERATURE = 46#
- bam.dynamixel.dynamixel.XL320_ADDR_MOVING = 49#
- bam.dynamixel.dynamixel.XL320_ADDR_HW_ERROR_STATUS = 50#
- bam.dynamixel.dynamixel.XL320_RESOLUTION = 1023#
- bam.dynamixel.dynamixel.XL320_RANGE_DEG = 300.0#
- bam.dynamixel.dynamixel.XL320_CENTER = 512#
- class bam.dynamixel.dynamixel.DynamixelActuatorV1(port: str, id: int = 1)#
- id = 1#
- portHandler#
- packetHandler#
- set_p_gain(gain: int)#
- set_torque(enable: bool)#
- set_goal_position(position: float)#
- read_data()#
- class bam.dynamixel.dynamixel.DynamixelXL320(port: str, id: int = 1)#
Controller for the XL-320 servo motor.
The XL-320 uses Protocol 2.0 only and has a 10-bit position encoder covering a 300° range (0 to 1023 raw, centre = 512 ≡ 0 rad).
- Parameters:
port – Serial port, e.g.
"/dev/ttyUSB0".id – DYNAMIXEL ID (default 1).
- id = 1#
- portHandler#
- packetHandler#
- set_torque(enable: bool)#
Enable or disable motor torque.
- set_p_gain(gain: int)#
Set the proportional (P) gain (0–254).
- set_i_gain(gain: int)#
Set the integral (I) gain (0–254).
- set_d_gain(gain: int)#
Set the derivative (D) gain (0–254).
- set_pid_gains(p: int, i: int, d: int)#
Set P, I and D gains in one call (values 0–254 each).
- set_goal_position(position: float)#
Set goal position.
- Parameters:
position – Target angle in radians. Acceptable range:
[-150°, +150°]→[-2.618, +2.618]rad.
- set_moving_speed(speed_rpm: float)#
Set moving speed in Joint Mode.
- Parameters:
speed_rpm – Speed in RPM (0 = maximum, 114 = approx. max). The sign is ignored; always positive in joint mode.
- set_led(color: int)#
Set the LED colour using a RGB bitmask.
- Parameters:
color – Bitmask – Red=1, Green=2, Blue=4 (combinations allowed, 0=off).
- read_data() dict#
Read present position, speed, load, input voltage and temperature.
Returns a dict with keys:
position(rad),speed(rad/s),load(signed, 0.1 % units),input_volts(V),temp(°C).Note: addresses 37–42 are contiguous; 43–44 are unused; 45–46 are voltage and temperature. Two separate reads are performed.