{"id":22418866,"url":"https://github.com/SamuelNoesslboeck/sybot","last_synced_at":"2025-08-01T04:31:23.651Z","repository":{"id":152922110,"uuid":"545063025","full_name":"SamuelNoesslboeck/sybot","owner":"SamuelNoesslboeck","description":"Rust library for coordinating components, defining robotic systems and their communication","archived":false,"fork":false,"pushed_at":"2024-05-22T06:28:03.000Z","size":2334,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-22T22:46:45.360Z","etag":null,"topics":["networking","raspberry-pi","robot","robotics","ros"],"latest_commit_sha":null,"homepage":"https://crates.io/crates/sybot_lib","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SamuelNoesslboeck.png","metadata":{"files":{"readme":"README.md","changelog":"changelog.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-03T18:09:05.000Z","updated_at":"2024-05-22T06:28:06.000Z","dependencies_parsed_at":"2024-11-09T21:07:43.650Z","dependency_job_id":"19b0002f-8494-4667-9f75-5ada01c8d0ad","html_url":"https://github.com/SamuelNoesslboeck/sybot","commit_stats":null,"previous_names":["samuelnoesslboeck/sybot_lib"],"tags_count":11,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamuelNoesslboeck%2Fsybot","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamuelNoesslboeck%2Fsybot/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamuelNoesslboeck%2Fsybot/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SamuelNoesslboeck%2Fsybot/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SamuelNoesslboeck","download_url":"https://codeload.github.com/SamuelNoesslboeck/sybot/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":228330163,"owners_count":17903019,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["networking","raspberry-pi","robot","robotics","ros"],"created_at":"2024-12-05T16:13:02.232Z","updated_at":"2024-12-05T16:13:03.397Z","avatar_url":"https://github.com/SamuelNoesslboeck.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# sybot\n\n[![Crates.io version](https://img.shields.io/crates/v/sybot.svg?style=flat-square) ](https://crates.io/crates/sybot)\n[![sybot: rustc 1.68+]][Rust 1.68]\n\n[sybot: rustc 1.68+]: https://img.shields.io/badge/sybot-rustc_1.68+-lightgray.svg\n[Rust 1.68]: https://blog.rust-lang.org/2023/03/09/Rust-1.68.0.html\n\nA simple library to control groups of components and robots.\n\nExtension library for the [syact](https://crates.io/crates/syact).\n\n-- UNFINISHED DOCS -- \n\nFull documentation will be added soon\n\n### Goal\n\n- Create an all-in-one library for controlling robots, exposing them to networks and doing basic calculations\n\n## In action\n\nThe following example creates a new [SyArm robot](https://github.com/SamuelNoesslboeck/SyArm_Mk1), runs all setup functions and executes a GCode-script. \n\n\u003cdetails\u003e\n\u003csummary\u003e\nClick to show Cargo.toml\n\u003c/summary\u003e\n\n```toml\n# ...\n\n[dependencies]\n# Include the library configured for the raspberry pi\nsybot = { version = \"0.8.2, features = [ \"rasp\" ] }\n\n# ...\n```\n\u003c/details\u003e\n\u003cp\u003e\u003c/p\u003e\n\n```rust ,ignore\nuse sybot::{Robot, JsonConfig, ActRobot, Setup};\nuse sybot::robot::SyArm;\nuse sybot::intpr::Interpreter;\nuse sybot::intpr::gcode::init_intpr;\n\nfn main() -\u003e std::io::Result\u003c()\u003e {\n    // Load the standard-partlibs in order to use motor names as data\n    //\n    // ```json\n    // \"device\": {\n    //     \"consts\": \"MOT_17HE15_1504S\",    // Motor name, see\n    // // \u003chttps://docs.rs/syact/0.11.1/syact/data/struct.StepperConst.html#associatedconstant.MOT_17HE15_1504S\u003e\n    //     \"pin_dir\": 17,\n    //     \"pin_step\": 26\n    // },\n    // ```\n    let libs = sybot::partlib::create_std_libs();\n\n    // Create the robot out of the [configuration file]\n    // (https://github.com/SamuelNoesslboeck/sybot/blob/master/res/SyArm_Mk1.conf.json)\n    let mut syarm = SyArm::from_conf(\n        JsonConfig::read_from_file(\u0026libs, \"res/SyArm_Mk1.conf.json\")\n    )?;\n\n    // Run setup functions\n    syarm.setup();\n    // Enables async movements (multiple motors moving at once)\n    syarm.setup_async();\n\n    // DEBUG\n        // Select \"NoTool\" at index 2\n        syarm.set_tool_id(2);\n    // \n\n    // Create a new GCode interpreter\n    let intpr = init_intpr();\n\n    // Run a GCode script\n    dbg!(intpr.interpret_file(\u0026mut syarm, \"res/gcode/basicYZpos.gcode\"));\n\n    Ok(())\n}\n```\n\n*(Source: \"examples/in_action.rs\")*\n\n## Features\n\nFor more features, see [syact#features](https://crates.io/crates/syact#features)\n\n- [x] [Robots](/docs/robots.md)\n  - [x] Basic 3D-Printer like robot (\"Syomat\")\n  - [x] Basic robotic arm (\"SyArm\")\n  - [x] [Custom robots](/docs/robots/custom_robots.md)\n  - [x] [Tools](/docs/robots/tools.md)\n- [ ] [Configuration files](/docs/configuration.md)\n  - [ ] JSON\n    - [x] Parsing\n    - [ ] Generating\n- [ ] [Calculation](/docs/calculation.md)\n  - [ ] Forces\n    - [x] Basic\n    - [ ] Advanced\n  - [ ] Inertias\n    - [x] Basic\n    - [ ] Advanced\n  - [ ] Paths\n- [x] [Controls](/docs/controls.md)\n  - [x] GCode\n  - [ ] Lua scripting\n- [ ] [Networking](/docs/networking.md)\n  - [x] HTTP\n  - [x] MQTT\n  - [ ] Serial\n- [ ] Logging\n\n## Issues and requests\n\nIf 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/sybot).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSamuelNoesslboeck%2Fsybot","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FSamuelNoesslboeck%2Fsybot","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FSamuelNoesslboeck%2Fsybot/lists"}