physicalai-runtime-adding-a-robot-integration について
physicalai-runtimeにロボット連携を追加するための開発スキルです。Robotプロトコル、接続ライフサイクル、観測とアクション、テスト、検証の手順を示します。
主な機能
- 01構造的なRobotプロトコル
- 02接続ライフサイクルの指針
- 03観測とアクションの要件
- 04ハードウェアのモックテスト
- 05検証とセキュリティの確認
活用シーン
- 01新しいロボットへの対応追加
- 02接続と切断の動作確認
- 03ハードウェアなしで連携をテスト
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ openvinotoolkit/ physicalai --skill physicalai-runtime-adding-a-robot-integrationインストール後、Claude Code で/physicalai-runtime-adding-a-robot-integrationを入力して読み込まれたか確認します。
同梱ファイルreferences/robot-protocol.md
詳細
ロボット連携の追加
ロボットは、src/physicalai/robot/interface.py の構造的な Robot プロトコルを満たす必要があります。基底クラスの継承は不要です。参考例:src/physicalai/robot/so101/、src/physicalai/robot/trossen/(WidowX)。接続ヘルパー:src/physicalai/robot/connect.py。検証:src/physicalai/robot/verify.py。
ワークフロー
references/robot-protocol.mdと既存の連携(シリアルサーボには SO-101、アームには WidowX)を読みます。- 完了条件:必須メソッドとオブザベーションの形式が列挙されていること。
- 接続のライフサイクルを実装します:べき等な
connect()、disconnect()、is_connected()。 - オブザベーション:
joint_positions、timestamp(time.monotonic())、任意のsensor_data/imagesを公開する型を返します。推論で位置情報以外も必要な場合は、stateプロパティを実装します。 - アクション:学習データの規約に合った形状の
actionを受け取るsend_action(action, *, goal_time=...)を実装します。joint_namesを使って関節の順序を説明します。 pyproject.tomlに任意の追加項目(physicalai[so101]、physicalai[trossen])を追加し、ベンダー SDK を遅延インポートします。- ユーザー向けの場合は、公開クラスを
physicalai.robotからエクスポートします。 - モックハードウェアを使ったテストを
tests/unit/robot/に追加します。- 完了条件:
uv run pytest tests/unit/robot -k <name>が成功すること。
- 完了条件:
- 検証 CLI/ドキュメント — ロボットが自動チェックに対応している場合は、
verify.pyのパターンを組み込みます。
必須チェック
- 実行時に
isinstance(robot, Robot)が成立すること(@runtime_checkableプロトコル)。 - 未接続時にアクションを送信しないこと。
- 関節数と
joint_namesが、接続/切断を通じて一定であること。 - セキュリティ:ユーザー指定のポート/パス文字列を検証し、サニタイズされていないデバイスパスでシェルを呼び出さないこと。
参考資料
references/robot-protocol.mddocs/explanation/robots.md
コメント
Markdown 対応