Expand description
This crate provides basic functionnality to communicate with Herkulex DRS (both 0101 and
0201, other model are not supported even if they might partially work) servomotors.
It is heavily based on the documentation published by Dongbu Robot which is available
here
.
Examples
To set a servo to a position, you can use this message :
use drs_0x01::*;
let servo = Servo::new(0x40);
let message = servo.set_speed(512);
To reboot all the servomotors you can use this message :
use drs_0x01::builder::MessageBuilder;
// 0xFE is the broadcast ID
let message = MessageBuilder::new().id(0xFE).reboot().build();
Here is how to enable torque for the servomotor labelled 35 :
use drs_0x01::builder::MessageBuilder;
use drs_0x01::WritableRamAddr::TorqueControl;
let message = MessageBuilder::new_with_id(35).write_ram(TorqueControl(1)).build();
Re-exports
pub use addr::ReadableEEPAddr;
pub use addr::ReadableRamAddr;
pub use addr::WritableEEPAddr;
pub use addr::WritableRamAddr;
Modules
All the servomotor addresses mapped to some enums.
A module which implement the builder pattern to create advanced messages
A module which contains a Finite State Machine to transform bytes read form the servomotor
into
[ACKPacket]s
Structs
This struct allows you to build messages for a servomotor.