Expand description
§sybot
A simple library to control groups of components and robots.
Extension library for the syact.
– UNFINISHED DOCS –
Full documentation will be added soon
§Goal
- Create an all-in-one library for controlling robots, exposing them to networks and doing basic calculations
§In action
The following example creates a new SyArm robot, runs all setup functions and executes a GCode-script.
Click to show Cargo.toml
# ...
[dependencies]
# Include the library configured for the raspberry pi
sybot = { version = "0.8.2, features = [ "rasp" ] }
# ...
ⓘ
use sybot::{Robot, JsonConfig, ActRobot, Setup};
use sybot::robot::SyArm;
use sybot::intpr::Interpreter;
use sybot::intpr::gcode::init_intpr;
fn main() -> std::io::Result<()> {
// Load the standard-partlibs in order to use motor names as data
//
// ```json
// "device": {
// "consts": "MOT_17HE15_1504S", // Motor name, see
// // <https://docs.rs/syact/0.11.1/syact/data/struct.StepperConst.html#associatedconstant.MOT_17HE15_1504S>
// "pin_dir": 17,
// "pin_step": 26
// },
// ```
let libs = sybot::partlib::create_std_libs();
// Create the robot out of the [configuration file]
// (https://github.com/SamuelNoesslboeck/sybot/blob/master/res/SyArm_Mk1.conf.json)
let mut syarm = SyArm::from_conf(
JsonConfig::read_from_file(&libs, "res/SyArm_Mk1.conf.json")
)?;
// Run setup functions
syarm.setup();
// Enables async movements (multiple motors moving at once)
syarm.setup_async();
// DEBUG
// Select "NoTool" at index 2
syarm.set_tool_id(2);
//
// Create a new GCode interpreter
let intpr = init_intpr();
// Run a GCode script
dbg!(intpr.interpret_file(&mut syarm, "res/gcode/basicYZpos.gcode"));
Ok(())
}
(Source: “examples/in_action.rs”)
§Features
For more features, see syact#features
-
Robots
- Basic 3D-Printer like robot (“Syomat”)
- Basic robotic arm (“SyArm”)
- Custom robots
- Tools
-
Configuration files
-
JSON
- Parsing
- Generating
-
JSON
-
Calculation
-
Forces
- Basic
- Advanced
-
Inertias
- Basic
- Advanced
- Paths
-
Forces
-
Controls
- GCode
- Lua scripting
-
Networking
- HTTP
- MQTT
- Serial
- Logging
§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.
Re-exports§
pub use robs::Robot;
pub use desc::Descriptor;
pub use stat::Station;
Modules§
- config
- Configurations for the robot in terms of position, speed and mode
- desc
- Everything related to the
Descriptor
trait - prelude
- Quick and easy import of the library essentials
- rcs
- RCS (Robot-Coordinate-System) module, manages the coordinate system and positions
- robs
- Everything related to the
Robot
trait - stat
- Everything related to the
Station
trait
Enums§
- PushMsg
- Different types of events that can occur
Traits§
- Interpreter
- Interpreters convert a string prompt into actions for the robot
- Push
Remote - A
PushRemote
defines a remote connection that the robot can push values to
Type Aliases§
- Error
- Universal error type used in the crate