peak_active).
Each robot runs servo daemon locally and connects its sensors and motor controllers directly to the shared fleet.
Preview. Theservo.connectAPI is currently in developer preview and not yet shipped in general availability. Early feedback and testing are welcome. Code samples on this page importconnect/cameraexplicitly fromservo.universal— they don’t yet resolve asservo.connectetc.
1. Assign stable robot identities
To connect a robot to a fleet, assign it a stable name (and optional site/labels) inservo.connect():
observe/act sources, so there’s no CLI equivalent to pre-register a name before hardware and a driver exist — connect(robot=...) is the only registration path today.
List registered robots in your organization with:
2. Deploy shared fleet capacity
From your central management script or developer machine, provision shared GPU capacity for your fleet:peak_active defines the maximum number of robots that run concurrently. Servo automatically manages GPU provisioning to guarantee 30 Hz control loop latency for all active sessions.
For larger deployments, you can dynamically select robots using site and label selectors:
Readiness modes
3. Run each robot locally
On each robot computer, install the Servo daemon as a supervised system service (which provides automatic restarts on reboot or failure):rig.py, point servo.connect to your fleet name instead of a single standalone model:
4. Roll out model updates without downtime
When a newly trained or fine-tuned checkpoint (ckpt_...) is ready, update the fleet without disrupting active robot operations:
- Zero-Downtime Cutover: Active episodes finish uninterrupted on the current release. Once the new model checkpoint is warm and verified, subsequent rollouts automatically route to it.
- Instant Rollback: If an issue occurs with a new checkpoint, call
fleet.rollback()at any time to immediately revert to the prior healthy version: