mcpField
I
isaac-sim-remote

isaac-sim-remote

github.com/isaac-sim开发4.4k46 次安装5 天前更新
代码仓库

关于 isaac-sim-remote

通过本地代码编辑器 TCP 服务控制已运行的 Isaac Sim,适用于迭代仿真场景的开发者和 Agent。脚本可操作 stage、prim、仿真、相机并采集截图,无需重启应用。

主要功能

  1. 01通过本地 TCP 控制 Isaac Sim
  2. 02Stage 与 prim 操作
  3. 03仿真和相机控制
  4. 04截图、视频与日志采集
  5. 05支持 dry-run 的命令分发

适用场景

  1. 01检查或编辑运行中的 stage
  2. 02迭代时调整 prim
  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 远程控制

用途

通过代码编辑器 TCP 套接字驱动已运行的 Isaac Sim,让 Agent 无需重启应用即可迭代场景、prim、物理效果和截图。

安全性

此技能是本地开发者控制平面,而非远程执行服务。

  • 绑定地址:客户端默认使用 127.0.0.1:8226。不要将此端口暴露到本机之外。
  • 信任边界:等同于在此计算机上启动 Isaac Sim 的操作系统用户。
  • 设计(有意如此):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 的 Shell 环境变量约定:$ISAAC_SIM_DIR、$ISAAC_LAB_DIR、$WORKSPACE_DIR。

限制

  • 必须在启用 Python 代码编辑器服务的情况下启动 Isaac Sim。
  • 除非注入路径,否则远程脚本无法导入任意仓库模块。

故障排除

错误 / 现象原因解决方案
连接 8226 时被拒绝Python 服务已禁用在启用代码编辑器服务的情况下启动 Isaac Sim
远程单元格中出现 NameError模块不在 sys.path 中将辅助代码内联,或在导入前注入仓库路径
场景状态过期之前的远程编辑重置 prim,或在重现步骤前重新打开场景

相关内容:debug-with-local-kit(行为取决于从源码构建的 Kit 时使用)、profile-isaac-sim(将 Tracy 附加到运行中的进程)、isaac-sim-validator(对任何渲染输出执行最终 QA 检查)。

上游的 isaac-sim-ui(菜单 / 小组件 OmniUIQuery 自动化)和 isaac-sim-recording(光标跟踪、教程视频录制)不会被导入。此处的内联 UI 模式(通过 OmniUIQuery 点击 Play 按钮、截取完整应用或视口截图)涵盖常见情况。

/ 中的每个辅助脚本都通过 scripts/isaacsim_send.py 调用。对于提供技能执行辅助工具的 Agent 运行时,可调用例如 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.py本地主机 python_server IPC 客户端(支持 --dry-run)CLI 标志通过 argparse 指定(参见脚本的 --help)
scripts/open_stage.py打开场景参见脚本的 --help
scripts/prim_properties.pyprim 属性参见脚本的 --help
scripts/prim_transform.pyprim 变换参见脚本的 --help
scripts/select_prim.py选择 prim参见脚本的 --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 回退。

评论

支持 Markdown