Skip to content

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。

  5. 可选:在启动新工作负载前清除现有日志文件。

    bash
    > nohup.out

运行 Isaac Lab 工作负载

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

在启动新演示或任务前,停止任何现有工作负载。

& 结尾的命令在后台运行。类似 [1] 580 的消息表示工作负载已启动。终端中的数字可能有所不同。

运行演示

运行强化学习任务

有关更多脚本、任务和环境配置,请参阅:

运行 Isaac Sim

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

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

终端命令参考

使用 nohup ... & 启动的 Isaac Lab 和 Isaac Sim 命令在后台运行。关闭 WebRTC Streaming Client 不会停止正在运行的工作负载。

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

任务命令
获取 WebRTC 端点地址echo $PUBLIC_IP
检查 GPU 进程nvidia-smi
停止后台进程kill -9 <PID>
清除旧日志> nohup.out
跟踪实时日志tail -f nohup.out

故障排除

WebRTC Client 无法连接

检查以下内容:

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

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

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

  4. 检查日志中的致命错误:

    bash
    tail -f nohup.out

查找以下错误:

text
Error
Traceback
CUDA out of memory
Segmentation fault
Killed

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

流式传输视图变为灰色

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

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

重新加载 WebRTC 流

启动时日志显示警告

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

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

了解更多