sybot_lib
A simple library to control groups of components and robots.
Extension library for the stepper_lib.
-- UNFINISHED DOCS --
Fully documentation will be added soon
Goal
- Create an all-in-one library for controlling robots, expose them to networks and do basic calculations
In action
The following example creates a new SyArm robot, runs all setup functions and executes a GCode-script.
# ...
[]
# Include the library configured for the raspberry pi
= { = "0.7.8", = [ "rasp" ] }
# ...
use ;
use Interpreter;
use init_intpr;
(Source: "examples/in_action.rs")
Overview
Features
For more features, see stepper_lib#features
- Robots
- Basic 3D-Printer like robot ("Syomat")
- Basic robotic arm ("SyArm")
- Custom robots
- Tools
- JSON configuration files
- Parsing
- Generating
- Calculation
- Forces
- Basic
- Advanced
- Inertias
- Basic
- Advanced
- Paths
- Forces
- Controls
- GCode
- Connections
- HTTP
- MQTT
- Serial
- Logging
Robots
Custom robots
Tools
Configuration
The library includes methods for parsing JSON configuration files (file extension ".conf.json"). Out of these files, all the constants for a previously defined robot can be parsed.
Example configuration file:
Calculation
The library includes functions for inertia and load calculations.
Command systems
With the intpr
module the user can create own command systems or use the already implemented GCode one.
Networking
Remotes
HTTP
# ...
[]
# Include the library configured for the raspberry pi and with http enabled
= { = "0.7.8", = [ "rasp", "http" ] }
# ...
extern crate alloc;
use RefCell;
use Rc;
use ;
use ;
use init_intpr;
use create_robot_webserver;
async
MQTT
Custom connections
With the creation of custom remotes, the user can create their own connections to the internet or other forms of networks.
Platforms and simulation
The final goal of the library is to work on as many platforms as possible. To configure the library for a specific platform, the right features have to be enabled.
The current platforms and features enabled are
- "rasp": Raspberry Pi and similar controllers
# platform features
= [ "stepper_lib/rasp" ]
If no platform is selected the library automatically goes into simulation mode. In simulation mode, no movements will be executed, but all calculations will be done. Which means that for example GCode scripts can be "debugged" in advance.
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.