Skip to content

Submitting Jobs

Use execute() to submit a job and wait for the result:

from armnet_client import execute

result = execute(
    image="registry.example/my-runtime:tag",
    embodiment="lerobot/so-101",
    task="assemble_block_tower",
    args={"calibrate": False},
    timeout_seconds=1200,
)

Arguments

  • image: image ref, usually returned by Image.build(...).push().
  • embodiment: robot embodiment used for cell routing.
  • task: task used for cell routing.
  • args: JSON-serializable values exposed as ctx.args.
  • secrets: mapping of env var name to armnet secret name.
  • detach: if False, disconnecting the client requests job cancellation.
  • stream_logs: if True, stream stdout/stderr to the terminal.
  • timeout_seconds: max container runtime.

Cell Routing

Jobs are routed to robot cells by (embodiment, task). If no matching cell is online, the job cannot run. Use OrchestratorClient.get_cell_status() to check availability before submitting.

For LeRobot policy evaluation, prefer the higher-level armnet-lerobot-eval command. It wraps Image.build, Image.push, and execute with a LeRobot-like CLI.