Skip to content

A definitive Dynamixel motor package compatible with any Dynamixel motor or control table

License

Notifications You must be signed in to change notification settings

UGA-BSAIL/dynamixel-controller

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dynamixel-controller

dynamixel-controller is a Python library designed from the ground up to work with any Dynamixel motor on the market with few to no modifications.

Installation

Use the package manager pip to install dynamixel-controller.

pip install dynamixel-controller

Usage

Import:

from dynio import *

Port handling:

dxl_io = dxl.DynamixelIO('portname') # your port for U2D2 or other serial device

Pre-made motor declarations:

See documentation for full list of motors. See below for sample:

ax_12 = dxl_io.new_ax12(1)       # AX-12 protocol 1 with ID 1
mx_64_1 = dxl_io.new_mx64(2, 1)  # MX-64 protocol 1 with ID 2
mx_64_2 = dxl_io.new_mx64(3, 2)  # MX-64 protocol 2 with ID 3

Motor Control:

See documentation for full list of functions and their usage.

The most prevalent functions are pre-implemented as methods for the motor objects. These include:

motor.torque_enable()
motor.torque_disable()
motor.set_acceleration(acceleration)
motor.set_velocity_mode()
motor.set_velocity(velocity)
motor.set_position_mode()
motor.set_position(position)
motor.set_angle(angle) 
motor.set_extended_position_mode()
motor.set_position(position)
position = motor.get_position()
angle = motor.get_angle()
current = motor.get_current()

All other values can be easily read from or written to using their control table name. Example:

motor.write_control_table("LED", 1) # Turns the LED on
speed = motor.read_control_table("Present_Speed") # Returns present velocity

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Especially encouraged is new control tables to be published as part of the package.

License

Apache 2.0