How david-feldt/botos works
botOS is a modular robotics runtime: a user defines components and typed channels, then runs them through the CLI. Runtime loads project configuration, starts a TCP router, and launches selected Python or C/C++ components; component clients register channels and exchange sensor or command messages through the router. The README also documents project scaffolding and group-based execution. Source excerpts establish Python client, C header, framing, routing, and orchestration; install and shell-integration details are not mapped.
Main entry points: router.py TCP router · runtime.py Runtime · cli.py bot CLI · bot.py Python client
Components 10
Project setup
- bot CLI
src/cli.py - Project config
Runtime orchestration
- Runtime
src/runtime.py - Config loader
src/config.py
Channel messaging
- TCP router
src/router.py - JSON framing
src/protocol.py
Component clients
- Python client
src/bot.py - C client
src/botos_c/botos.h
Other components
- Robot developer
- Robot components
Connections 14
- Robot developer → bot CLI: runs commands
- bot CLI → Project config: scaffolds project
- bot CLI → Runtime: starts run
- Runtime → Config loader: loads config
- Config loader → Project config: reads
- Runtime → TCP router: starts process
- Runtime → Robot components: launches selected
- Robot components → Python client: uses Python API
- Robot components → C client: uses C API
- Python client → TCP router: registers and writes
- C client → TCP router: registers and writes
- TCP router → Python client: delivers messages
- TCP router → C client: delivers messages
- TCP router → JSON framing: frames TCP messages