用途:通过代码编辑器 TCP 套接字驱动一个已在运行的 Isaac Sim,让智能体在不重启应用的情况下迭代 stage、prim、物理与截图。
主要能力:提供一组脚本,均通过 scripts/isaacsim_send.py 调用,包括 app_screenshot.py(应用截图)、camera_control.py(相机控制)、capture_annotator.py、console_log.py、execute_command.py(派发 omni.kit.commands 中已注册命令)、health_check.py、open_stage.py、prim_properties.py、prim_transform.py、select_prim.py、set_asset_root.py、simulation_control.py、stage_info.py、verify_asset.py、viewport_screenshot.py、viewport_video.py。
使用方式:先构建 Isaac Sim($ISAAC_SIM_DIR 或 _build/linux-x86_64/release),需 NVIDIA GPU 与较新驱动,并具备 isaac-sim-orchestrator 的 shell 环境变量 $ISAAC_SIM_DIR、$ISAAC_LAB_DIR、$WORKSPACE_DIR。启动示例:cd _build/linux-x86_64/release 后执行 bash isaac-sim.sh --no-window --no-ros-env --enable isaacsim.code_editor.python_server,等待应用就绪,TCP 服务位于 127.0.0.1:8226。在构建树中可用 ./python.sh(Linux)或 python.bat(Windows)运行脚本;也可通过 run_script("scripts/app_screenshot.py", args=["--help"]) 调用。
安全与限制:这是本地开发者控制面,不是远程执行服务。客户端默认绑定 127.0.0.1:8226,不要将该端口发布到主机外;信任边界等同于启动 Isaac Sim 的 OS 用户。isaacsim_send.py 向本地代码编辑器服务器投递 Python 源码,execute_command.py 在标识符检查与审计日志后派发注册表中任意命令,这是有意设计而非漏洞。缓解措施包括仅回环默认、--dry-run 只打印不发送、CLI --arg 使用 ast.literal_eval 仅接受字面量。需以启用 Python 代码编辑器服务器的方式启动 Isaac Sim;远程脚本无法导入任意仓库模块,除非注入路径。常见问题:8226 连接被拒说明 Python 服务器未启用;NameError 说明模块不在 sys.path;stage 状态陈旧需重置 prim 或重开 stage。无头模式需加 DomeLight(强度 1000–5000),新 stage 后调用 await app_utils.update_app_async(steps=120) 预热渲染器;服务器卡死可重启 Isaac Sim 并用 health_check.py 验证;资源缺失可用 set_asset_root.py 配置 S3 回退。