open-edge-platform/skills

physicalai-runtime-running-policy-on-robot

Runs exported policies on hardware with PolicyRuntime, execution modes, and physicalai run. Use when wiring PolicyRuntime, SyncExecution or RTC execution, runtime YAML configs, action queues, runtime callbacks, or docs/how-to/runtime run-policy-on-robot and execution modes.

First seen Aug 19, 2026

Installation

$ npx skills add open-edge-platform/skills --skill physicalai-runtime-running-policy-on-robot

Also in this package

Other skills from open-edge-platform/skills · top by installs.

npx skills add open-edge-platform/skills

Browse all from open-edge-platform/skills

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Repository health

Stars 2
License LICENSE
Default branch main
Open issues 0
Status Active

Skill metadata

Parsed from SKILL.md frontmatter.

LicenseApache-2.0

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 2,672 B
  • docs SUMMARY.md 324 B

History

  1. First seen on skills.sh
  2. First recorded snapshot · 14 installs

SKILL.md

Running a Policy on a Robot

PolicyRuntime (src/physicalai/runtime/runtime.py) owns the control loop; InferenceModel owns policy math. Execution strategy lives under src/physicalai/runtime/execution.py and src/physicalai/runtime/rtc_execution.py. CLI: physicalai run in src/physicalai/cli/run.py instantiates from YAML via jsonargparse.

Workflow

  1. Choose API vs config: Python for notebooks/tests; YAML + physicalai run for reproducible deployment.

- Done when: entry point matches the user's task.

  1. Python minimal loop (see docs/how-to/runtime/run-policy-on-robot.md):

```python from physicalai.runtime import PolicyRuntime, SyncExecution from physicalai.inference import InferenceModel from physicalai.robot import SO101 from physicalai.capture import UVCCamera

runtime = PolicyRuntime( fps=30, robot=SO101(port="/dev/ttyACM0"), model=InferenceModel("./exports/actpolicy"), cameras={"wrist": UVCCamera(device="/dev/video0", width=640, height=480)}, execution=SyncExecution(), ) with runtime: runtime.run(durations=60) ```

- Done when: components connect and the loop runs in a test or dry-run with fakes.

  1. YAML config — nest classpath / initargs for robot, model, cameras, execution; run:

``bash physicalai run --config runtime.yaml --run.duration_s=60 ``

  1. Execution mode — pick sync vs RTC per docs/how-to/runtime/use-execution-modes.md; do not build ad-hoc timing around InferenceModel.select_action when PolicyRuntime should own the queue.
  2. Callbacks — register via runtime callback APIs (docs/how-to/runtime/add-runtime-callbacks.md) for telemetry/latency, not inside inference adapters.

Validation loop

uv run pytest tests/unit/runtime/ -q

Use fake robots/cameras from runtime tests when hardware is unavailable.

Required checks

  • fps and camera read rates are consistent.
  • Action dimensions match robot send_action expectations.
  • Config class_path targets are importable without training packages.
  • Document breaking changes to runtime config schema in docs/reference/config-schema.md.

References

  • docs/how-to/runtime/run-policy-on-robot.md
  • docs/how-to/config/write-runtime-config.md