DE | EN
roboto is a modular robotics framework featuring multi-axis motion control, multi-node vision system, sensor integration, AI-powered tools, dataset export, replay system, and a modern web UI.
A live preview of the application is available at roboto.maazi.de. However, please note that without connected hardware (Arduino, sensors, etc.), certain features like motion control and sensor readings will not function or will show placeholder data. The vision system and UI will operate normally, but full functionality requires the appropriate hardware attachments.
If you have compatible hardware, you can connect it and the system should automatically detect and utilize it.
roboto is designed as an extensible platform for robotics experimentation and development. It integrates hardware control (Arduino, Duet3D), computer vision (YOLO, segmentation, pose estimation), sensor fusion (IMU, Lidar, optical, current), and a responsive web interface built with Svelte.
The framework emphasizes modularity, allowing users to mix and match components based on their hardware setup and experimentation goals.
server/api_vision.py)server/video_stream.py)server/websocket_server.py)server/mobile_ws.py)roboto/
├── ARCHIVE/ # Historical development documents
├── build/ # Frontend build output
├── cli/ # Command-line interface (Typer-based)
├── config/ # Configuration files (vision)
├── core/ # Core functionality
│ ├── combined/ # Combined modules (motion+vision+AI)
│ ├── config/ # Core configuration
│ ├── control/ # Motion control
│ ├── hardware/ # Hardware interfaces (Arduino, Duet3D)
│ ├── motors/ # Motor controllers
│ ├── sensors/ # Sensor drivers
│ └── vision/ # Vision processing pipeline
├── launcher/ # Tkinter-based desktop launcher
├── mobile/ # Mobile client files
├── recordings/ #<write_to_file>
roboto is a modular robotics framework featuring multi-axis motion control, multi-node vision system, sensor integration, AI-powered tools, dataset export, replay system, and a modern web UI.
roboto is designed as an extensible platform for robotics experimentation and development. It integrates hardware control (Arduino, Duet3D), computer vision (YOLO, segmentation, pose estimation), sensor fusion (IMU, Lidar, optical, current), and a responsive web interface built with Svelte.
The framework emphasizes modularity, allowing users to mix and match components based on their hardware setup and experimentation goals.
server/api_vision.py)server/video_stream.py)server/websocket_server.py)server/mobile_ws.py)
roboto/
├── ARCHIVE/ # Historical development documents
├── build/ # Frontend build output
├── cli/ # Command-line interface (Typer-based)
├── config/ # Configuration files (vision)
├── core/ # Core functionality
│ ├── combined/ # Combined modules (motion+vision+AI)
│ ├── config/ # Core configuration
│ ├── control/ # Motion control
│ ├── hardware/ # Hardware interfaces (Arduino, Duet3D)
│ ├── motors/ # Motor controllers
│ ├── sensors/ # Sensor drivers
│ └── vision/ # Vision processing pipeline
├── launcher/ # Tkinter-based desktop launcher
├── mobile/ # Mobile client files
├── recordings/ # Session recordings
├── roboto-release/ # Release bundle (execution/deployment)
├── server/ # Server components (API, streaming, websockets)
├── src/ # Svelte frontend source
│ ├── App.svelte
│ ├── main.js
│ ├── components/ # UI components
│ ├── pages/ # Page components
│ └── store/ # State management
├── templates/ # Movement templates
├── .vscode/ # VS Code settings
├── index.html # Frontend entry point
├── jsconfig.json ├── package.json
├── package-lock.json
├── setup.py
├── svelte.config.js └── vite.config.js
git clone <repository-url>
cd roboto
python -m venv .venv
# Windows
.\.venv\Scripts\Activate.ps1
# Linux/macOS
source .venv/bin/activate
pip install --upgrade pip
pip install fastapi "uvicorn[standard]" opencv-python requests typer pyserial numpy
pip install -e .
npm install
No installation required—simply open mobile/index.html in a browser and configure the WebSocket connection to your backend.
To start the backend server:
# Using virtual environment (if activated)
python -m uvicorn server.video_stream:app --host 0.0.0.0 --port 8022 --reload
Or using the CLI:
roboto start-backend
The backend will be available at http://localhost:8022.
To start the frontend development server:
npm run dev -- --host 0.0.0.0 --port 8033```
Then open `http://localhost:8033` in your browser.
### Full Stack (Development)
1. Start the backend in one terminal:
```bash
.\.venv\Scripts\Activate.ps1 # Windows
# or
source .venv/bin/activate # Linux/macOS
python -m uvicorn server.video_stream:app --reload --port 8022
npm run dev -- --port 8033
http://localhost:8033 and the backend API at http://localhost:8022.To create a production build of the frontend:
npm run build
This generates optimized static files in the build/ directory.
To serve the production build:
# Simple static server (for testing)
npx serve build
# Or copy to roboto-release/ui/build/ for Docker/deployment
xcopy /E /I /Y build\* roboto-release\ui\build\ # Windows
# or
cp -r build/* roboto-release/ui/build/ # Linux/macOS
The roboto-release/ directory contains Docker files for easy deployment:
cd roboto-release
docker compose up --build
This will start:
80228033Note: The UI container expects the frontend build to be present in roboto-release/ui/build/. Run npm run build and copy the output before building Docker images if you've made frontend changes.
A live preview of the application is available at roboto.maazi.de. However, please note that without connected hardware (Arduino, sensors, etc.), certain features like motion control and sensor readings will not function or will show placeholder data. The vision system and UI will operate normally, but full functionality requires the appropriate hardware attachments.
If you have compatible hardware, you can connect it and the system should automatically detect and utilize it.
roboto/ – Development directory containing full source code (src/, templates/, etc.)roboto-release/ – Release bundle containing only what's needed to run the application:ui/build/)This separation ensures that the release is clean and focused on execution, while the development directory retains all tools for extension and modification.
Contributions, feedback, and ideas are welcome!
This project is licensed under the MIT License - see the LICENSE file for details.
Thanks to the open-source community for the various libraries and tools that make this project possible.