关于 isaac-sim-remote
通过本地代码编辑器 TCP 服务控制已运行的 Isaac Sim,适用于迭代仿真场景的开发者和 Agent。脚本可操作 stage、prim、仿真、相机并采集截图,无需重启应用。
主要功能
- 01通过本地 TCP 控制 Isaac Sim
- 02Stage 与 prim 操作
- 03仿真和相机控制
- 04截图、视频与日志采集
- 05支持 dry-run 的命令分发
适用场景
- 01检查或编辑运行中的 stage
- 02迭代时调整 prim
- 03采集截图或视口视频
- 04检查应用健康状态和控制台日志
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ isaac-sim/ isaacsim --skill isaac-sim-remote安装后在 Claude Code 中输入/isaac-sim-remote确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/api-reference.mdpitfalls.mdworkflows.mdscripts/app_screenshot.pycamera_control.pycapture_annotator.pyconsole_log.pyexecute_command.pyhealth_check.pyisaacsim_send.pyopen_stage.pyprim_properties.pyprim_transform.pyselect_prim.pyset_asset_root.pyshutdown_app.pysimulation_control.pystage_info.pyverify_asset.pyviewport_screenshot.pyviewport_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.py | prim 属性 | 参见脚本的 --help |
scripts/prim_transform.py | prim 变换 | 参见脚本的 --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 回退。