|0.1.3||Oct 16, 2020|
|0.1.2||Jun 18, 2020|
#8 in Robotics
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 currently aim to provide an easy interface to the higher level functions of a servo, 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
which can be used to send an instruction to a servo and read a single reply.
The function can work with any
It is also also to use
write_instruction followed by multiple
to receive replies from multiple motors.
instructions module for available instructions.
The following instructions are currently implemented (PRs welcome!):
- Reg Write
- Factory Reset
- Sync Read
- Sync Write
- Bulk Read
- Bulk Write
- Custom raw instructions
The following planned functionality is currently implemented (PRs welcome!):
- Write instruction messages.
- Read response (status) messages.
- Bit-stuffing and de-stuffing of messages.
- Checksum calculation and verification.
- Optional logging of all instructions and responses.
- Optional integration with
- Utility function to perform unicast instructions.
- Utility function to perform broadcast instructions.
- Utility function to scan a bus for motors.
You can enable the
log feature to have the library use
log::trace!() to log all sent instructions and received replies.