Apache 2.0 · pre-release · CNCF Sandbox candidate
The fleet orchestration layer has no neutral standard yet.
Swarmada is a vendor-neutral, Kubernetes-native control plane for coordinating fleets of heterogeneous robots — the way Kubernetes coordinates containers. Declare the fleet's desired state as custom resources; Swarmada reconciles robots from any manufacturer toward it, under one standardized API.
# three commands, one control plane
kind create cluster --name swarmada-dev
make install # generate and apply the CRDs
make run # run the control plane against your kubecontext
Where Swarmada sits in the stack
The robotics software stack already has neutral, open reference points at most layers. One tier does not.
A facility running automation today typically operates robots from three to five manufacturers at once, each with its own dashboard, fleet API, and update toolchain — with no single source of truth for fleet state. Open RMF is the closest existing project to this layer, but it is now controlled by a single vendor. Swarmada is built as an independent, Apache-2.0 project aimed at CNCF Sandbox, not a vendor's roadmap.
How it works
Operators declare intent as Kubernetes custom resources; controllers reconcile the fleet toward it. A per-manufacturer Fleet Adapter translates one standardized gRPC contract into each vendor's native API, so adding a robot family is additive rather than a change to the core.
| Kubernetes | Swarmada |
|---|---|
| Node | Robot / RobotClass |
| Pod / Deployment | FleetTask |
| Namespace | FleetZone |
| Rolling update | FirmwareRollout / ModelRollout |
kubectl | swarmctl |
Declare the fleet, not the choreography
A zone, a robot, and a task — the same three primitives that run in the project's simulation scenarios.
apiVersion: swarmada.io/v1
kind: FleetZone
metadata:
name: warehouse-a
spec:
description: "Receiving and staging area — east wing"
waypoints:
- name: charging-bay
x: 1.1
yPos: 1.1
---
apiVersion: swarmada.io/v1
kind: Robot
metadata:
name: sim-robot-001
namespace: warehouse-a
spec:
manufacturer: Simulated
model: SimBot-v1
fleetAdapterEndpoint: "sim-robot-001.warehouse-a.svc:9090"
zone: warehouse-a
---
apiVersion: swarmada.io/v1
kind: FleetTask
metadata:
name: deliver-pallet-001
namespace: warehouse-a
spec:
type: Navigate
zone: warehouse-a
destination: staging-shelf-a
priority: 70
requiredCapabilities:
- navigation
kubectl apply -f creates the zone, admits the robots, and the
task controller assigns work to whichever robot meets the required
capabilities. The full sample runs end-to-end in
config/samples.
Status
Pre-release. Public claims track the code, not the roadmap.
API
All thirteen CRDs are defined and generate under swarmada.io/v1.
Controllers
Reconciliation is implemented for Robot and FleetTask; the remaining CRDs are specified with controllers in progress.
Adapters
A ROS 2 Fleet Adapter is validated in simulation. The Fleet Adapter conformance suite is follow-on work.
The architecture is documented as designed; this list is the authoritative statement of what runs today. See the full Status section in the repo README.
Get involved
Swarmada is developed in the open under Apache 2.0. Contributions, Fleet Adapter implementations, and design-partner conversations are welcome.