tpt-swarm

Go
0 stars0 forks0 watchers

Languages

Go35.3%TypeScript34.0%Rust25.6%Python3.0%JavaScript0.9%CSS0.5%Dockerfile0.4%HTML0.3%
README

TPT SwarmOS

The open-source "Linux of physical robotics" — a hardware-agnostic middleware and AI control layer for orchestrating fleets of humanoid robots and drones.

What it does

  • Universal robot adapter — one platform for Boston Dynamics, Tesla Optimus, agricultural drones, and any ROS2-compatible hardware
  • Simulation-to-deployment — train skills in Gazebo, deploy to any robot in the fleet instantly
  • Federated learning — a robot in Tokyo learns a better way to fold laundry; every robot in the network gets the update
  • Decentralized — open hardware collectives and municipalities run their own autonomous workforce without depending on tech monopolies

Architecture

tpt-swarm/
├── swarm-core/          ← Rust: lightweight on-robot agent (ROS2, ONNX, P2P)
├── swarm-orchestrator/  ← Go: fleet API, skill registry, FedAvg coordinator
├── swarm-dashboard/     ← TypeScript/React: fleet + skills + simulation + federated UI
├── sim/                 ← Gazebo worlds, URDF robot templates, launch files
└── proto/               ← Protobuf contracts shared between core and orchestrator

Stack

| Component | Technology | |---|---| | Robot agent | Rust + r2r (ROS2) + ort (ONNX) | | Fleet orchestrator | Go + Echo + gRPC + PostgreSQL | | P2P gossip | libp2p (Rust + Go) | | Federated learning | FedAvg aggregation + P2P fallback | | Skill format | ONNX + manifest.yaml | | Simulation | Gazebo + ROS2 | | Dashboard | Vite + React + TypeScript + shadcn/ui |

Quick Start

# Start orchestrator + database + dashboard
docker-compose up

# Launch a simulated fleet (requires ROS2 + Gazebo installed)
ros2 launch sim/launch/sim_launch.py world:=warehouse robot_count:=3

# Open dashboard
open http://localhost:5173

Skill Format

A SwarmOS skill is an ONNX model paired with a manifest:

# manifest.yaml
name: "warehouse-navigation"
version: "1.0.0"
input_schema:
  - name: joint_states
    shape: [1, 12]
    dtype: float32
  - name: lidar_scan
    shape: [1, 360]
    dtype: float32
output_schema:
  - name: cmd_vel
    shape: [1, 2]
    dtype: float32
hardware_requirements:
  min_dof: 6
  sensors: [lidar, imu]

License

Apache 2.0