roxbot
Documentation: https://roxautomation.gitlab.io/roxbot
Source Code: https://gitlab.com/roxautomation/roxbot
Roxbot - A Pythonic KISS Robotics Framework
Vision
Roxbot
aspires to be a user-friendly toolkit for architecting robotic systems. Inspired by the ROS (Robot Operating System) architecture, it leverages modern and reliable open-source modules to provide a comprehensive solution. Below is an outline of the envisioned capabilities of Roxbot
:
-
Modular Design - Roxbot advocates a simple, modular design where individual components synergize to create a larger system, facilitating a straightforward understanding, construction, and enhancement of robots.
- Central to the system is the node framework which enables structured communication between modules.
-
Easy Configuration - Managing settings across software and hardware is streamlined with Roxbot, ensuring a harmonious operation.
- Configuration definition is simplified through
dataclass
andpydantic
, with an override mechanism usingyaml
data files.
- Configuration definition is simplified through
-
Smooth Communication Between Processes - Roxbot ensures seamless interaction between different system segments, whether within the same process or across multiple processes.
asyncio
is utilized for intra-subsystem node communication.mqtt
facilitates inter-subsystem connectivity.- A websocket bridge is provided for frontend integrations.
-
Friendly Hardware Interaction - Interacting with various hardware components is simplified, bridging software and hardware effectively. Roxbot integrates hardware through a hardware abstraction layer and CAN (Controller Area Network) interface, supporting several commonly used devices like motion controllers.
-
Kinematic Models - Roxbot includes a variety of kinematic robot models for rapid development.
- trike model
- diff-drive model
- bicycle model
-
Simple Diagnostic and Monitoring Tools - Tools for assessing system health and performance are provided, ensuring smooth operation.
- Visualization dashboards
-
Effortless Logging and Debugging - Roxbot simplifies issue identification and resolution through logging and debugging features.
- Leveraging Python’s logging facilities, enhanced by libraries like
coloredlogs
. - Tools for data logging, replay, and
influxdb
integration.
- Leveraging Python’s logging facilities, enhanced by libraries like
-
Built-in Security - Security measures are in place to protect the system and its data from unauthorized access and other threats.
- Containerized sub-systems
- SSH tunnels for secure communication between systems.
-
Community-Driven Growth - Roxbot aims to cultivate a supportive community for collaborative learning, contribution, and development.
-
Compatible and Portable - Roxbot is engineered for compatibility and portability across various systems and hardware setups.
- Smooth integration with existing ROS/ROS2 subsystems via rosbridge
- Extensive use of Docker for system development and deployment. Develop once - deploy anywhere.
-
Testing and Simulation Made Easy - Roxbot provides tools for testing and simulating robotic actions in a safe, controlled environment.
- Adopts the "digital-twin" design principle, allowing remote development without physical hardware, enabled by simulators and mocks for each supported system component.
Harnessing established technologies like Docker, MQTT, and asyncio, and embracing Python for its ease of learning and rapid development, Roxbot
is poised to offer a flexible and scalable framework that makes robotics development accessible and enjoyable.