跳转到正文

WARNING

本文档由 AI 自动翻译,仅供参考。涉及关键操作或信息时,请以英文原文为准。

使用 Isaac Lab 运行机器人仿真 ​

Isaac Lab 是 NVIDIA 开源的机器人学习框架。在 Olares 上,它以终端应用的形式运行,你可以从命令行启动演示、训练任务或捆绑的 Isaac Sim 仿真器。

使用本指南安装 Isaac Lab、运行 Isaac Lab 工作负载、启动 Isaac Sim、连接 WebRTC 流式传输,以及管理后台进程。

学习目标 ​

在本指南中,你将学习如何:

  • 在 Olares 上安装 Isaac Lab。
  • 准备 Isaac Lab 终端并获取 WebRTC 端点地址。
  • 运行 Isaac Lab 演示和强化学习任务。
  • 启动捆绑的 Isaac Sim 仿真器。
  • 使用 NVIDIA WebRTC Streaming Client 连接仿真。
  • 管理后台工作负载、GPU 进程和运行时日志。

前提条件 ​

在开始之前,请确保:

  • Olares 运行在配备 NVIDIA GPU 的机器上。
  • 如果要使用 WebRTC 流式传输,Olares 主机使用 AMD64 架构。ARM64 主机(如 DGX Spark)仅支持非流式传输工作负载。
  • 本地计算机上已安装 NVIDIA WebRTC Streaming Client。

主机与本地计算机架构

AMD64 要求适用于运行 Isaac Lab 的 Olares 主机,而非用于流式传输的本地计算机。

例如,如果 Isaac Lab 运行在配备 Intel CPU 和 NVIDIA GPU 的 Olares One 上,则 Olares 主机为 AMD64。你的本地计算机可以使用不同的架构,但必须能够运行 NVIDIA 的 WebRTC Streaming Client。

推荐的 GPU 模式

Isaac Lab 和 Isaac Sim 使用大量 GPU 资源。为了获得更好的稳定性,请将 GPU 模式设置为 应用独占,并在运行工作负载前将 GPU 关联到 Isaac Lab。这有助于减少与其他 GPU 应用的资源争用。

了解 Isaac Lab 和 Isaac Sim ​

Isaac Lab 和 Isaac Sim 服务于不同的目的:

组件描述使用场景
Isaac Lab基于 Isaac Sim 构建的机器人学习框架。运行预定义演示、强化学习任务或训练脚本。
Isaac Sim与 Isaac Lab 捆绑的底层仿真器。直接启动仿真器进行场景探索、仿真测试或交互式使用。

安装 Isaac Lab ​

  1. 打开 Market 并搜索 "IsaacLab"。

    Isaac Lab

  2. 点击 获取,然后点击 安装,等待安装完成。

准备 Isaac Lab 终端 ​

每当你打开 Isaac Lab 或想要切换到新任务时,请先准备终端环境。

  1. 从 Launchpad 打开 Isaac Lab,访问其终端界面以运行命令行脚本。

    Isaac Lab 终端

  2. 获取用于 WebRTC 流式传输的公共端点地址。

    bash
    echo $PUBLIC_IP

    示例输出:

    plain
    192.168.50.169

    保存输出值。稍后连接 WebRTC Streaming Client 时需要用到它。

  3. 检查 GPU 状态并查找现有工作负载。

    bash
    nvidia-smi
    • 如果没有工作负载在运行,Processes 部分将显示 No running processes found。

    无运行进程

    • 如果 Processes 部分列出了 Isaac Lab 或 Isaac Sim 进程,请在启动新工作负载前记下其 PID。在此示例中,活动进程使用 PID 2314。

    活动进程

  4. 如果现有工作负载正在运行,请在启动新工作负载前停止它:

    bash
    kill -9 <PID>

    将 <PID> 替换为终端中显示的实际进程 ID。

运行 Isaac Lab 工作负载 ​

Isaac Lab 工作负载从终端启动。使用的命令取决于安装 Isaac Lab 的 Olares 主机的架构。

在启动新演示或任务前,停止任何现有工作负载。一次只运行一条命令,并在前台执行。官方 Isaac Lab 文档推荐 uv run isaaclab。./isaaclab.sh 仍可使用相同参数。

运行演示 ​

运行强化学习任务 ​

本页使用的训练命令见:

运行 Isaac Sim ​

Isaac Lab 包含 Isaac Sim 仿真器。当你想要使用仿真器本身而不是运行特定的 Isaac Lab 演示或训练脚本时,直接启动 Isaac Sim。

在启动 Isaac Sim 前,停止任何现有工作负载。

终端命令参考 ​

命令在前台运行。关闭 WebRTC Streaming Client 不会停止工作负载。在终端按 Ctrl + C 即可停止。

使用以下命令进行快速终端管理和故障排除:

任务命令
获取 WebRTC 端点地址echo $PUBLIC_IP
检查 GPU 进程nvidia-smi
停止残留进程kill -9 <PID>

故障排除 ​

WebRTC Client 无法连接 ​

检查以下内容:

  1. 确保工作负载仍在运行:

    bash
    nvidia-smi
  2. 确认你输入了正确的 PUBLIC_IP 值:

    bash
    echo $PUBLIC_IP
  3. 确保只有一个 WebRTC Streaming Client 已连接。

  4. 阅读运行工作负载的那个终端,查找以下错误:

text
Error
Traceback
CUDA out of memory
Segmentation fault
Killed

如果没有出现这些错误且进程仍在运行,请等待日志稳定,然后重新连接或点击 WebRTC Streaming Client 中的 重新加载。

流式传输视图变为灰色 ​

加载复杂场景时,流式传输视图可能会暂时变为灰色或停止响应。等待终端日志稳定。根据场景复杂度,这可能需要一到几分钟。

日志稳定后,在 WebRTC Streaming Client 中点击 视图 > 重新加载 以重新连接到流。

重新加载 WebRTC 流

启动时日志显示警告 ​

工作负载启动期间可能会出现来自 Isaac Sim、Omniverse 或 PyTorch 的警告。这些警告并不总是意味着工作负载已失败。

如果进程在 nvidia-smi 中保持运行且日志中没有出现致命错误,请继续执行 WebRTC 连接步骤。

了解更多 ​