#motor #serial-communication

bin+lib rustypot

Package to communicate with Dynamixel motors

7 unstable releases (3 breaking)

0.4.2 Aug 22, 2023
0.4.1 Jul 7, 2023
0.4.0 Jun 19, 2023
0.3.1 Mar 20, 2023
0.1.0 Jan 17, 2023

#46 in Robotics

46 downloads per month

Apache-2.0

72KB
1.5K SLoC

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.

Dependencies

~2.9–4MB
~75K SLoC