SuperAPI AI 工具集

serve-gr00t-policy

智能体与模型

查看项目

更新于 10-16 06:18

技能介绍

用途:为 Isaac Lab-Arena 的 Gr00tRemoteClosedloopPolicy 实验启动并维护一个本地、由模型驱动的 GR00T 推理服务器,最终提供一个经验证的端点。不负责实验执行、产物、训练、OSMO 及其他策略提供方。

前置阅读:需先阅读 docs/pages/quickstart/running_a_real_policy/gr00t.rst,以及文档引用的服务器脚本和 isaaclab_arena_gr00t/utils/wait_for_gr00t_server.py 就绪探测脚本。以当前检出为准;文档当前从 submodules/Isaac-GR00T 启动但标注为过渡方案,若重构后指向独立 GR00T 检出,应以文档为准,并报告技能、文档与脚本间的差异。

服务器契约:确认 Arena 仓库根目录与文档指定的 GR00T 检出;从请求或实验策略解析主机与端口。仅对 127.0.0.1、localhost 等回环客户端启动服务器,其他主机视为外部依赖。根据策略类型 isaaclab_arena_gr00t.policy.gr00t_remote_closedloop_policy.Gr00tRemoteClosedloopPolicy(注册名 gr00t_remote_closedloop)识别 GR00T,而非从实验文件名推断。读取客户端策略配置中的 embodiment 标签。当前文档化配对为 OXE_DROID 对应 nvidia/GR00T-N1.6-DROID、端口 5555。其他 embodiment 需显式提供模型或检查点路径与标签,不得从 Run 名、环境、任务或 embodiment 推断检查点。

启动前检查:确认 GR00T 检出已填充、uv 与兼容 NVIDIA GPU 可用、所选端口未被不兼容进程占用。可用 ps -eo pid=,args= 和 ss -ltnp 排查候选进程,但必须同时满足进程命令与文档脚本、模型、embodiment、主机、端口匹配,且能通过 Arena 就绪助手成功 ping。协议不暴露模型身份,若无法证明则报告兼容性未知,不得复用;端口被占用时不要擅自停止或换端口,应询问用户。

首次运行:GR00T 检出会创建独立的 Python 3.10 uv 环境并下载检查点,文档未承诺时间与存储估算;若环境或缓存未就绪,需先说明并确认,同时提示 GR00T 服务器与 Isaac Sim 争用同一 GPU 的风险。本技能不安装或修改系统 Python、CUDA、驱动、uv,不清缓存、不升级检出、不替换模型。

启动与验证:在保留的终端会话中以异步方式从 GR00T 检出启动,保持前台运行并记录会话句柄,显式传入所有解析值。当前文档化 DROID 命令为:uv run python gr00t/eval/run_gr00t_server.py --model-path nvidia/GR00T-N1.6-DROID --embodiment-tag OXE_DROID --device cuda --host 127.0.0.1 --port 5555。相对本地检查点需先解析为绝对路径。就绪行出现后,用 GR00T uv 环境执行:uv run python <arena-root>/isaaclab_arena_gr00t/utils/wait_for_gr00t_server.py --host 127.0.0.1 --port 5555 --timeout-sec 60 --poll-interval-sec 5 --request-timeout-ms 5000。不要用 &、nohup 或脱离 shell。失败时保留输出,不要静默重建环境、更换模型端口或放宽严格性。

交付与停止:返回模型或检查点、embodiment 标签、回环主机、端口、就绪证据、进程身份与会话句柄。更换端口时提供的 Hydra 覆盖为 runs.<run-name>.policy.remote_port=5556,不要为此改实验定义。除非用户要求停止,实验后保持运行;停止时通过会话发送中断并确认进程与监听器已停止,切勿调用未认证的 GR00T kill 端点或仅凭端口信号进程。