| Crates.io | dynamixel_ct |
| lib.rs | dynamixel_ct |
| version | 0.5.0 |
| created_at | 2024-11-20 02:02:43.459484+00 |
| updated_at | 2025-04-14 21:38:47.143435+00 |
| description | A crate for working with the control tables of Dynamixel servos |
| homepage | |
| repository | https://github.com/omelia-iliffe/dynamixel_ct |
| max_upload_size | |
| id | 1454185 |
| size | 33,444 |
The goal of this library is to provide the information for each register in the control table of a Dynamixel servo.
This library is intended to be used with an additional library that provides the communication protocol to the Dynamixels.
The data for register is currently limited to address and size (length), however expanding this to include the data type and access level is planned.
Only available with std feature
The library can be used to return a control table when the model number is not known at compile time,
allowing for a more dynamic approach to working with servos.
If the Dynamixel model doesn't implement a register, the control table will return None.
This crate focuses on Dynamixels that use Protocol2.0.
Currently supported servos include:
MX will not be supported.
use dynamixel_ct::{models::XM430, Register::*};
fn main() {
println!("{:?}", XM430::get(goal_position););
println!("{:?}", XM430::goal_position(););
/// Output: Some(RegisterData { address: 116, length: 4 })
}
use dynamixel_ct::{models, ControlTable, Register::*};
fn main() {
// ping the motor to get the correct model number
let model_num: u16 = 1030;
let model = Model::try_from(model_num).unwrap();
let control_table = ControlTable::from(model);
println!("{:?}", control_table.get(goal_position));
/// Output: Some(RegisterData { address: 116, length: 4 })
}
A few different libraries exist for communicating with Dynamixel servos in Rust: