syact 0.15.0

A library that defines actuators and their interaction with each other
Documentation

syact

A library that defines actuators and their interaction with each other.

This library is intended to define bindings that can then be implemented by device-specific library, making their components available for use by general libraries like sybot.

In Action

use syact::prelude::*;

// Position of components
const POS : PositionMM = PositionMM(10.0);

// Create a new linear_axis (implements SyncActuator as their sub-component does)
let mut linear_axis = LinearAxis::new_belt_axis(
    // Some Demo-Actuator implementing (also implements SyncActuator)
    DemoActuator::new(), 
    Millimeters(0.5)    // The radius is set to 0.5, which means for each radian the motor moves, the linear_axis moves for 0.5 mm
);    

linear_axis.overwrite_abs_pos(POS);

assert!((linear_axis.pos() - POS).abs() < Millimeters(0.001));      // Check with small tolerance requred for stepper motors

Further libraries

  • Basic libraries
    • syunit: Flexible unit system and basis for many traits in this library, furthermore embedded into it in the units module
    • sykin: Basic kinematic equations
  • Advanced libraries
    • sybot: Follow up library that defines robots out of traits in this library
  • Device-specific libraries
    • systep: Stepper motors and drivers library, implementing embedded-hal

Issues and requests

If you encounter any issues or if you have any request for new features, feel free to create an issue at the GitHub repo.