

导航使机器人能够将感知和运动转化为有目的的自主性。与产生稳定运动的运动不同,导航必须用于不断定位机器人、解读不断变化的环境、选择路线,并避开障碍物以安全到达目标。
将此功能迁移到新的机器人或场景可能需要新的数据、仿真资产、机器人接口、训练、诊断和评估。为每个机器人场景对重复这项工作不仅成本高昂,而且难以重现。
智能体驱动的工作流可减轻这种负担。开发者定义机器人、场景源和导航目标。编码智能体使用存储库技能来验证依赖项、准备素材、运行烟雾测试、启动训练、诊断故障和比较检查点。人类审批门控制场景接受度、单一环境烟雾测试和检查点推广。
此博文教程使用 Spot 作为参考机器人,将代理驱动的 COMPASS 工作流应用于内置场景和 SAGE-10K 场景,同时展示了 NVIDIA Omniverse NuRec 如何支持捕获的环境。它通过烟雾测试、残差训练、检查点评估和运行时集成 (包括可选的测距) 来遵循策略工作流。
COMPASS (通过残差 RL 和技能合成实现的跨具身移动性策略) 是一个统一的框架,可通过单个具身的专家演示实现可扩展的跨具身移动性。它重复使用预训练的 NVIDIA X-Mobility 策略中的导航行为。它训练残差专家,这是一种 强化学习 (RL) 策略,用于纠正选定机器人和环境的基本动作,而不是从一开始就重新学习导航。来自多个专家的数据稍后可以蒸到共享的跨具身策略中。
图 1 显示了此智能体驱动工作流训练和评估的 COMPASS 策略架构。

图 1. COMPASS 将 X-Mobility 基础策略调整为具身专家,并将蒸馏调整为跨具身策略
COMPASS 将此开发工作流程打包成资源库技能。本教程在开发期间使用 Codex。经过训练的策略和机器人控制器在运行时执行导航,而无需编码代理。
参考工作流使用 Boston Dynamics Spot 四足模型。内置仓库是可重现的主要路径,SAGE-10K 将其扩展到生成的场景,而 NVIDIA Omniverse NuRec 为重建的目标环境提供了可选路径。NVIDIA cuVSLAM 是一个由 CUDA 加速的视觉测距以及同步定位和地图构建库,可在机器人尚未提供兼容的测距和变换时提供部署测距。
对于其他环境,请使用存储库固定的 COMPASS 软件堆栈和以下硬件指南:
首先,在开始场景工作之前,准备资源库并为编码代理提供清晰的工作流程合同。您将下载门控素材,在 Codex 中发现 COMPASS 技能,运行堆栈检查,并在 one-environment 审批门处停留。所有 $compass 块都是 COMPASS 库根目录下 Codex 聊天的可复制提示,而非 shell 命令。在克劳德代码中,为同一工作流使用 /compass。
对于 Codex,首先在 .agents/skills 下展示存储库技能,然后选择 COMPASS with /skills 或在提示词中提及 $compass。Codex 支持符号链接技能目录,因此当前资源库技能可以保留在其维护的位置。对于克劳德代码,请使用 /compass 调用相同的工作流。
| mkdir -p .agents/skillsln -s ../../.claude/skills/compass .agents/skills/compassln -s ../../.claude/skills/compass-doctor .agents/skills/compass-doctorln -s ../../.claude/skills/compass-newembodiment .agents/skills/compass-newembodiment |
|:----|
编码智能体可以克隆、构建、下载非机密资产,并验证堆栈。开发者必须接受门控存储库条款,并在聊天外部输入 Hugging Face 令牌。智能体不应在日志中请求、显示或存储令牌。
克隆COMPASS 存储库,并按照COMPASS 手册的要求使用存储库固定容器快速入门。在首次运行之前,接受对门控nvidia/ COMPASS和nvidia/ X-Mobility Hugging Face 资源库的访问权限,创建Hugging Face 读取令牌,并确认其可以读取您账户可用的公共门控资源库。仅在当前 shell 中显示令牌。请勿将其粘贴到智能体提示词中,或将其提交至源控制。
| export HF_TOKEN=hf_xxx./docker/run.sh assets./docker/run.sh buildsource ./docker/activate |
|:----|
“Assets” (素材) 步骤会将已注册的模拟素材下载到 ./assets/usd/,并将预训练的 X-Mobility 检查点文件 下载到 ./assets/x_mobility.ckpt。401 或 403 响应通常表示存储库访问或令牌范围不完整。在调试 Isaac Lab 之前解析身份验证。
在下一阶段开始之前,每个阶段都会产生可审查的证据:
审批标准因项目而异,但每个门都应该回答同一个问题:是否存在所需的输入、是否出现预期的输出、是否存在未解决的错误,以及是否有足够的证据可以继续?
容器激活后,打开存储库根的编码代理,并描述机器人、场景、导航结果和审批门。对于基准工作流,请将此提示复制到智能体聊天中:
| $compass Validate the COMPASS environment for Spot. Confirm the pinned repository revision, container, GPU, Isaac Lab and Isaac Sim versions, simulation assets, and pretrained X-Mobility checkpoint. Run a one-environment smoke test, save the validation report, and stop for approval. |
|:----|
$compass 技能会根据资源库检查请求的工作流程,并运行相关验证步骤。如果运行失败,$compass-doctor 将执行只读运行状况检查并报告可能的原因,而不会悄无声息地改变环境。

图 2. 编码智能体调用 COMPASS 技能来验证环境、准备场景、进行烟雾测试,并在人类审批关口停车
本节将介绍如何选择和准备三种场景源之一:内置 SAGE-10K 场景或使用 Omniverse NuRec 渲染的已捕获环境。您将了解每条路径的用途,以及在训练之前必须完成哪些注册、占用地图和审批检查。
从已注册的 combined_multi_rack 仓库开始,获得最快的可复制基准。机器人、场景和占用地图均已注册,因此这是在引入新场景之前验证安装的最佳路径。
将以下提示复制到编码代理以运行基准,并在烟雾测试后暂停:
| $compass Train and evaluate Spot in the built-in combined_multi_rack warehouse. Stop after the one-environment smoke test for approval. |
|:----|

图 3. Spot 四足机器人在已注册的 COMPASS combined_multi_rack 仓库中导航
SAGE-10K 数据集包含 50 种房间类型生成的 10000 个室内场景。它是一个场景数据集,而非策略或模拟器。每个场景都提供几何图形、材质、布局元数据和预览。客厅和仓库场景遵循相同的准备路径,因此请选择一个合适的候选项,而不是下载整个数据集。

图 4. 在为 COMPASS 验证准备的转换 SAGE-10K 室内场景中发现四足动物
SAGE-10K 路径包括两个人工审批门。首先,在 NVIDIA Isaac Sim 中检查转换后的 USD,并在注册前确认几何图形、材质、比例和碰撞网格。完成注册和占用地图生成后,在进行完整训练之前批准单一环境预览。占用地图可识别有效机器人启动和导航目标的可用空间和阻塞空间。
将以下提示复制到编码代理中,以将场景入围,并在两个门处暂停:
| $compass Find suitable SAGE-10K living-room or warehouse scenes for Spot and show the best candidates. After I approve a scene, convert and register it, generate and verify its occupancy map, and stop for inspection. After I approve the scene and map, run a one-environment smoke test and stop again before full training. |
|:----|

图 5. 列出兼容 SAGE-10K 场景的 Codex 候选名单,并等待开发者批准
当目标是在预期部署环境的重建中微调和评估 COMPASS 时,请使用 Omniverse NuRec。NuRec 通过对齐的视觉几何图形、碰撞网格和可选的场景增强,将立体 RGB 截取转换为支持 Isaac Sim 的重建。所记录的 COMPASS 路径可注册渲染的场景,验证其提供的占用地图和起源规范,检查机器人间隙,并在训练前运行单一环境烟雾测试。

图 7. 在推理时,COMPASS 策略使用 RGB 输入、里程计和目标点,以及可选的地图和路线数据,为机器人控制器生成线性和角速度命令
如果部署的机器人需要在 GPS 拒绝或 GPS 间歇环境中进行基于摄像头的状态估计,并且尚未提供兼容、经过验证的测距和变换,则可使用 cuVSLAM 库。其里程计可以支持 COMPASS 导航器,但其地图不是导航策略的输入。
cuVSLAM 不是 COMPASS 策略训练的一部分,不需要智能体技能。将其作为单独的、版本匹配的 ROS 2 组件运行,将其里程计输出连接或重新映射到 /chassis/odom,提供所需的 odom-to-base_link transform,并验证校准、时间、主题名称和帧约定。可选的 $cuvslam-onboard 和 $cuvslam-troubleshoot 技能有助于在开发期间配置和诊断此状态估计组件。
示例提示:
| $cuvslam-onboard Configure cuVSLAM as the odometry source for the COMPASS navigator on <robot and camera rig>. Select a compatible release and tracking mode, validate calibration and timestamps, connect odometry and TF to the expected COMPASS interfaces, and stop for approval before enabling navigation. |
|:----|
对于未注册的机器人,$compass-newembodiment 可指导开发者完成机器人配置、环境注册、动作映射和单环境视觉烟雾测试。引入新的具身是一项单独的工程任务,不同于为现有机器人训练专家,但它使用相同的验证和批准模式。
本教程将在“Checkpoint” (检查点) 评估阶段结束。导出到 ONNX、JIT 或 TensorRT、ROS 2 集成和物理硬件部署需要针对目标机器人和运行时进行单独验证。场景质量、训练时长和检查点性能因实施、环境、奖励设计和可用计算而有所不同,因此该工作流并未定义通用的成功值。
从参考路径开始,然后一次扩展一个组件:
- 设置参考环境。克隆COMPASS 资源库,遵循COMPASS 手册快速入门,接受门控模型术语,并下载COMPASS 模拟资源和X-Mobility 检查点。
- 运行代理式工作流。使用支持的机器人和内置场景在 Codex 中调用 $compass,在烟雾测试后保留批准,并在匹配的条件下训练和评估专家。
- 刻意扩展和打包。对未注册的机器人使用 $compass-newembodiment。保存下一个工程决策所需的配置、检查点、日志、匹配的评估结果和视频。
作者:Yan Chang, Mihir Acharya, Wei Liu, Katie Washabaugh 和 Aishwarya Sing
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。