Skip to main content

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.

Jump to install

Source facts

Repository
openvinotoolkit/physicalai
Last source activity
July 6, 2026 at 17:11
Detected SKILL.md language
English
Stars
27
Forks
22

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
physicalai-runtime-running-policy-on-robot
description
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.
license
Apache-2.0
# 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. 2. **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/act_policy"), cameras={"wrist": UVCCamera(device="/dev/video0", width=640, height=480)}, execution=SyncExecution(), ) with runtime: runtime.run(duration_s=60) ``` - Done when: components connect and the loop runs in a test or dry-run with fakes. 3. **YAML config** — nest `class_path` / `init_args` for robot, model, cameras, execution; run: ```bash physicalai run --config runtime.yaml --run.duration_s=60 ``` 4. **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. 5. **Callbacks** — register via runtime callback APIs (`docs/how-to/runtime/add-runtime-callbacks.md`) for telemetry/latency, not inside inference adapters. ## Validation loop ```bash 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`
View on GitHub