mcpField
I
isaac-sim-remote

isaac-sim-remote

github.com/isaac-sim開発4.4k46 回インストール5 日前に更新
リポジトリ

isaac-sim-remote について

ローカルのコードエディターTCPサーバー経由で、起動中のIsaac Simを操作するスキルです。シミュレーションシーンを反復開発する開発者やエージェント向けに、アプリを再起動せずステージやプリムなどを操作できます。

主な機能

  1. 01ローカルTCP経由のIsaac Sim制御
  2. 02ステージとプリムの操作
  3. 03シミュレーションとカメラの制御
  4. 04スクリーンショット、動画、ログ取得
  5. 05dry-run対応のコマンド実行

活用シーン

  1. 01起動中のステージの確認・編集
  2. 02反復作業中のプリム調整
  3. 03スクリーンショットやビューポート動画の取得
  4. 04アプリの状態とコンソールログの確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/isaac-sim/isaacsim --skill isaac-sim-remote

インストール後、Claude Code で/isaac-sim-remoteを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
api-reference.md
pitfalls.md
workflows.md
scripts/
app_screenshot.py
camera_control.py
capture_annotator.py
console_log.py
execute_command.py
health_check.py
isaacsim_send.py
open_stage.py
prim_properties.py
prim_transform.py
select_prim.py
set_asset_root.py
shutdown_app.py
simulation_control.py
stage_info.py
verify_asset.py
viewport_screenshot.py
viewport_video.py

詳細

Isaac Sim リモート

目的

すでに起動している Isaac Sim をコードエディターの TCP ソケット経由で操作し、アプリを再起動せずに、エージェントがステージ、プリム、物理演算、スクリーンショットを反復して扱えるようにします。

セキュリティ

このスキルはローカル開発者向けの制御プレーンであり、リモート実行サービスではありません。

  • バインド先:クライアントのデフォルトは 127.0.0.1:8226 です。このポートをホスト外に公開しないでください。
  • 信頼境界:このマシンで Isaac Sim を起動した OS ユーザーと同等です。
  • 設計(意図的):isaacsim_send.py は Python ソースをローカルのコードエディターサーバーに送信します。execute_command.py は識別子を確認して監査ログに記録した後、omni.kit.commands.get_commands() にすでに存在する任意の名前をディスパッチします。許可リストを設けると、Kit のライブな反復作業が妨げられるため、レジストリー全体へのディスパッチは脆弱性ではなく、製品の仕様として扱ってください。
  • 緩和策:デフォルトではループバックのみを使用します。--dry-run はペイロードを送信せずに表示します。CLI の --arg 値には ast.literal_eval を使用し、リテラルのみを許可します。

前提条件

  • ビルド済みの Isaac Sim($ISAAC_SIM_DIR または _build/linux-x86_64/release)。
  • 最新のドライバーを搭載した NVIDIA GPU(nvidia-smi)。
  • isaac-sim-orchestrator のシェル環境変数の要件:$ISAAC_SIM_DIR、$ISAAC_LAB_DIR、$WORKSPACE_DIR。

制限事項

  • Python コードエディターサーバーを有効にして Isaac Sim を起動する必要があります。
  • リモートスクリプトで任意のリポジトリモジュールをインポートするには、パスを追加する必要があります。

トラブルシューティング

エラー/症状原因解決策
8226 で接続が拒否されるPython サーバーが無効コードエディターサーバーを有効にして Isaac Sim を起動する
リモートセルで NameError が発生するモジュールが sys.path にないヘルパーをインライン化するか、インポート前にリポジトリのパスを追加する
ステージの状態が古い以前のリモート編集再現手順を実行する前にプリムをリセットするか、ステージを開き直す

関連項目:debug-with-local-kit(動作がソースからビルドした Kit に依存する場合)、profile-isaac-sim(実行中のプロセスに Tracy を接続する場合)、isaac-sim-validator(レンダリング出力の最終 QA ゲート)。

上流の isaac-sim-ui(メニュー/ウィジェットの OmniUIQuery 自動化)と isaac-sim-recording(カーソル追跡、チュートリアル動画のキャプチャ)はインポートされません。ここにあるインラインの UI パターン(OmniUIQuery による Play ボタンのクリック、アプリ全体とビューポートのスクリーンショット)で一般的なケースに対応できます。

scripts/ 内のすべてのヘルパーは、scripts/isaacsim_send.py 経由で呼び出します。スキル実行ヘルパーを利用できるエージェントランタイムからは、たとえば run_script("scripts/app_screenshot.py", args=["--help"]) を呼び出します。ビルド済みツリーからは、_build/*/release 内の ./python.sh(Linux)または python.bat(Windows)を使ってファイルを実行します。コマンドの手順は references/workflows.md にあります。

利用可能なスクリプト

スクリプト目的引数
scripts/app_screenshot.pyアプリのスクリーンショットスクリプトの --help を参照
scripts/camera_control.pyカメラ操作スクリプトの --help を参照
scripts/capture_annotator.pyアノテーターのキャプチャスクリプトの --help を参照
scripts/console_log.pyコンソールログスクリプトの --help を参照
scripts/execute_command.py登録済みの omni.kit.commands エントリーをディスパッチ(ループバックの信頼境界。セキュリティを参照)スクリプトの --help を参照
scripts/health_check.pyヘルスチェックスクリプトの --help を参照
scripts/isaacsim_send.pylocalhost の python_server IPC クライアント(--dry-run に対応)argparse 経由の CLI フラグ(スクリプトの --help を参照)
scripts/open_stage.pyステージを開くスクリプトの --help を参照
scripts/prim_properties.pyプリムのプロパティスクリプトの --help を参照
scripts/prim_transform.pyプリムの変換スクリプトの --help を参照
scripts/select_prim.pyプリムを選択スクリプトの --help を参照
scripts/set_asset_root.pyアセットルートを設定スクリプトの --help を参照
scripts/simulation_control.pyシミュレーション操作スクリプトの --help を参照
scripts/stage_info.pyステージ情報スクリプトの --help を参照
scripts/verify_asset.pyアセットを検証スクリプトの --help を参照
scripts/viewport_screenshot.pyビューポートのスクリーンショットスクリプトの --help を参照
scripts/viewport_video.pyビューポートの動画スクリプトの --help を参照

Isaac Sim の起動

cd _build/linux-x86_64/release
bash isaac-sim.sh --no-window --no-ros-env \
    --enable isaacsim.code_editor.python_server

app ready が表示されるまで待ちます。TCP サーバーは 127.0.0.1:8226 です。--enable isaacsim.code_editor.python_server を使用してください(carb の /enabled=true ではありません)。起動方法の全パターン、およびヘルスチェック/アセット/送信/スクリーンショット/制御のワークフローについては、references/workflows.md を参照してください。注意点については、references/pitfalls.md を参照してください。API については、references/api-reference.md を参照してください。

重要な注意事項

  • ヘッドレスモードでの照明:照明がないと画像は黒くなります。強度を 1000~5000 に設定した DomeLight を必ず追加してください。
  • レンダラーのウォームアップ:新しいステージの作成後、レンダリングの前に await app_utils.update_app_async(steps=120) を呼び出してください。
  • 接続エラー:Isaac Sim に app ready が表示されていること、また python_server が --enable で有効になっていることを確認してください。
  • サーバーのハング:クラッシュしたサンプルによってサーバーが応答しなくなることがあります。Isaac Sim を再起動してください。health_check.py を使用して確認してください。
  • アセットが見つからない場合:set_asset_root.py を使用して S3 フォールバックを設定してください。

コメント