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](https://github.com/SamuelNoesslboeck/sybot).

## In Action


```rust
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]https://github.com/SamuelNoesslboeck/syunit: Flexible unit system and basis for many traits in this library, furthermore embedded into it in the `units` module
  - [sykin]https://github.com/SamuelNoesslboeck/sykin: Basic kinematic equations
- **Advanced libraries**
  - [sybot]https://github.com/SamuelNoesslboeck/sybot: Follow up library that defines robots out of traits in this library
- **Device-specific libraries**
  - [systep]https://github.com/SamuelNoesslboeck/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](https://github.com/SamuelNoesslboeck/syact).