Skip to main content
These pages describe the proposed Servo experience for a robotics researcher. They are a design review, not a reference for the released SDK: the names, signatures, and commands here need the matching implementation before the examples run. The site banner is the only place that says so, on purpose, so every page reads as it will once shipped.

What to read

Start with the Quickstart, then First motion. Read the other pages when their question is yours.

Decisions these pages make concrete

  • Three roles on a robot: read, write, admin. The line a lab cares about is whether a person may make the arm move, write covers starting sessions and running episodes, and deploying a model needs only membership. Setup moves nothing and runs on the robot computer as the robot, so it needs no role.
  • Models are paths, and there is one deployment per model revision and region; deploy is safe to call again, and a session binds a deployment to one robot and one instruction.
  • predict and send_action are the two verbs of the loop.
  • check never moves the arm; run applies the guard, returns to the rest pose on every ending, and records every episode.
  • run bounds an episode by seconds, by chunks, or both, so a step count for comparing episodes doesn’t have to drift with round-trip latency.
  • Two safety layers, not one: max_jump is a boundary-only guard on the first row of a new chunk; max_relative_target is a continuous per-step clamp applied to every row sent.
  • run paces sends at the model’s own cadence (1/dt_s) by default and adapts down when latency can’t sustain it, rather than sending as fast as the loop can go; report.recommended_fps is what it settled on.
  • A chunk switch blends over a short window instead of cutting over on the row.
  • Instruction is bound to the session, not passed per predict call, so a new instruction is a new session.
  • Serving runs in Servo’s cloud near the robot. Serving on a lab’s own GPU is documented for engineers in the repository at docs/guides/serve-a-model-on-your-own-gpu.md and is not part of this proposal.

Deviations from specs 045 and 046

Proposed names and what ships today

Useful feedback

While reading, note the first place you had to guess, look up source code, or read a page you did not need. Name any step you would remove. Examples use one lab’s robot and checkpoint; nothing on this site is a measured result, and rendering checks do not establish model quality or physical behavior.