/rustypot

Communication with Dynamixel like devices.

Primary LanguageRustApache License 2.0Apache-2.0

Rustypot: a Rust package to communicate with Dynamixel motors

Build Status Latest Version

Getting started

Rustypot is yet another communication library for robotis Dynamixel motors. It is currently used in the Reachy project.

Feature Overview

  • Relies on serialport for serial communication
  • Support for dynamixel protocol v1 and v2 (can also use both on the same bus)
  • Support for sync read and sync write operations
  • Easy support for new type of motors (register definition through macros)
  • Pure Rust

Examples

use rustypot::{device::mx, DynamixelSerialIO};
use std::time::Duration;

fn main() {
    let mut serial_port = serialport::new("/dev/ttyACM0", 1_000_000)
        .timeout(Duration::from_millis(10))
        .open()
        .expect("Failed to open port");

    let io = DynamixelSerialIO::v1();

    loop {
        let pos =
            mx::read_present_position(&io, serial_port.as_mut(), 11).expect("Communication error");
        println!("Motor 11 present position: {:?}", pos);
    }
}

Documentation

See https://docs.rs/rustypot for more information on APIs and examples.

License

This library is licensed under the Apache License 2.0.

Support

Rustypot is developed and maintained by Pollen-Robotics. They developped open-source tools for robotics manipulation. Visit https://pollen-robotics.com to learn more or join the Dicord community if you have any questions or want to share your projects.