Skip to main content

Client

The main types are servo.Servo, servo.Robot, servo.Model, servo.HostedDeployment, servo.Fleet, and servo.ConnectedRobot. The lower-level session API uses servo.Policy, servo.Session, servo.Observation, and servo.ActionPrediction.

Namespaces

Robots and models

Use the CLI for file-based robot setup. In Python, resolve the saved robot and its compatible models:
sv.models.for_robot() returns models whose camera, joint-state, and action requirements match the robot. sv.robots.attach() accepts a registered robot name string, a Robot record instance, or a custom robot manifest path (manifest=..., configuration=...). Use sv.robots.list() for the saved inventory and sv.robots.catalog() for supported robot types. Robots defines the runtime and custom-integration interfaces. Use servo robot setup for registration. It sends an ordered fingerprint of the local configuration files and leaves their contents on the robot computer.

Deploy and run

model.deploy() creates a deployment. Reuse it on later runs:
Review active deployments with servo deployment list, and stop unused capacity with servo deployment stop <deployment-id>. Use robot.run() for normal operation. The lower-level API exposes one observation and action for debugging an integration:
robot.observe() captures camera frames and joint states adhering to the sensor contract. session.act(observation) queries the hosted model and returns an ActionPrediction chunk. robot.execute(prediction) applies action-jump limits and streams joint targets to the local controller.

Fleets

robots accepts stable names or rob_* IDs. A selector such as {"site": "sf-lab", "labels": {"line": "assembly"}} selects a fixed inventory snapshot.