P
physicalai-runtime-adding-a-robot-integration
About physicalai-runtime-adding-a-robot-integration
A development skill for adding robot integrations to physicalai-runtime. It guides implementers through the Robot protocol, lifecycle, observations, actions, tests, and verification.
Key features
- 01Structural Robot protocol
- 02Connection lifecycle guidance
- 03Observation and action requirements
- 04Mocked hardware test guidance
- 05Verification and security checks
Use cases
- 01Adding support for a new robot
- 02Checking connect and disconnect behavior
- 03Testing integrations without hardware
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ openvinotoolkit/ physicalai --skill physicalai-runtime-adding-a-robot-integrationAfter installing, type/physicalai-runtime-adding-a-robot-integrationin Claude Code to confirm it loaded.
Bundled filesreferences/robot-protocol.md
Details
From the project READMEAdding a Robot Integration
Robots satisfy the structural Robot protocol in src/physicalai/robot/interface.py — no base class inheritance required. References: src/physicalai/robot/so101/, src/physicalai/robot/trossen/ (WidowX). Connection helpers: src/physicalai/robot/connect.py; validation: src/physicalai/robot/verify.py.
Workflow
- Read
references/robot-protocol.mdand an existing integration (SO-101 for serial servos, WidowX for arms).- Done when: required methods and observation shape are listed.
- Implement connect lifecycle: idempotent
connect(),disconnect(),is_connected(). - Observations: return a type exposing
joint_positions,timestamp(time.monotonic()), optionalsensor_data/images; implementstateproperty when inference expects more than positions. - Actions:
send_action(action, *, goal_time=...)withactionshape matching training data conventions; document joint order viajoint_names. - Optional extra in
pyproject.toml(physicalai[so101],physicalai[trossen]); lazy-import vendor SDKs. - Export public class from
physicalai.robotwhen user-facing. - Tests under
tests/unit/robot/with mocked hardware.- Done when:
uv run pytest tests/unit/robot -k <name>passes.
- Done when:
- Verification CLI/docs — wire
verify.pypatterns if the robot supports automated checks.
Required checks
isinstance(robot, Robot)at runtime (@runtime_checkableprotocol).- No action sent when disconnected.
- Joint count and
joint_namesstay stable across connect/disconnect. - Security: validate user-supplied port/path strings; no shell invocation with unsanitized device paths.
References
references/robot-protocol.mddocs/explanation/robots.md
Comments
Markdown supported