1. Register every robot
Runservo robot setup on each robot computer with a distinct stable name:
--config accepts the hardware configuration files on each robot computer. Servo hashes these files
to establish an immutable hardware revision fingerprint; it does not parse or upload either file.
Run servo robot list from any signed-in computer to review the names and rob_* IDs.
For a large fleet, install servo-client and set SERVO_BASE_URL and SERVO_API_KEY through your
normal machine-provisioning system. servo robot setup accepts the API key, so robot computers do
not need an interactive login.
2. Create the fleet
Run this once from any signed-in computer:peak_active is the maximum number of robots that run concurrently. Servo derives request rate
from the robot and model contracts and manages hosted capacity.
For a larger inventory, select a snapshot by site and labels:
3. Run each robot locally
Provide the fleet ID to each robot process. You can pass it via an environment variable or look it up withsv.fleets.list(). Run this code on the computer wired to each robot:
fleet.policy() checks the local sensors, requests on-demand capacity,
waits for the fleet, and routes the robot to the active model. The customer starts the local process
on each robot computer.
Readiness modes
fleet.policy() handles each mode. Its timeout_s parameter defaults to 30 minutes.
Roll out a new pi0.5 checkpoint
Pass the new checkpoint identifier (starting withckpt_...) produced by your fine-tuning or evaluation
pipeline:
fleet.update_status reports the current migration phase (pending, preparing, ready, or
failed). Servo prepares and warms the new checkpoint on hosted compute while the active release
continues to serve. Active sessions finish on their current release, and new sessions cut over once
the checkpoint is ready. Calling fleet.rollback() safely restores the previous healthy release
through the same non-disruptive process.