Crate dynamixel2
source ·Expand description
An implementation of the Dynamixel Protocol 2.0.
This library aims to provide a easy to use but low level implementation of the Dynamixel Protocol 2.0. That means it allows you to execute arbitrary commands with arbitrary parameters.
The library does not aim to provide an easy interface to the higher level functions of a servo motor, such as moving it to a specific angle or at a specific speed. Instead, you will have to write the appropriate values to the correct registers yourself.
The main interface is the Bus
struct, which represents the serial communication bus.
The Bus
struct exposes functions for all supported instructions such as Bus::ping
, Bus::read
, Bus::write
and much more.
Additionally, you can also transmit raw commands using Bus::write_instruction
and Bus::read_status_response
, or Bus::transfer_single
.
The library currently implements all instructions except for the Control Table Backup, Fast Sync Read and Fast Sync Write instructions.
§Optional features
You can enable the log
feature to have the library use log::trace!()
to log all sent instructions and received replies.
Re-exports§
pub use serial2;
Modules§
- Checksum calculation.
- Types and functions for specific instructions.
Structs§
- The buffer is too small to hold the entire message.
- Dynamixel Protocol 2 communication bus.
- The received message has an invalid checksum value.
- The received message has an invalid header prefix.
- The received message has an invalid or unexpected instruction value.
- The received message has an invalid or unexpected packet ID.
- The received message has an invalid or unexpected parameter count.
- An error reported by the motor.
- A response from a motor.
- A status response that is currently in the read buffer of a bus.
Enums§
- The expected number of parameters.
- An error that can occur while initializing a bus.
- The received message is not valid.
- An error that can occur during a read transfer.
- An error that can occur during a read/write transfer.
- An error that can occur during a write transfer.