跳到主要内容
AI教程

使用 SuperMimic 训练和回放人形机器人运动跟踪器

本教程介绍如何将 SuperMimic 与 mjlab_research 一起安装,选择坐标表示形式,在指定 GPU 上训练世界模型和策略,并使用其 Weights & Biases 路径回放训练结果。

使用 SuperMimic 训练和回放人形机器人运动跟踪器

什么是 SuperMimic?

SuperMimic 是一个研究项目,旨在使用单个可微分世界模型训练人形机器人全身运动跟踪器。它基于 mjlab 构建,并为两种不同的坐标表示形式提供训练任务。

你可以在 SuperMimic 项目页面和研究论文中获取更多项目信息。

主要特性

  • 人形机器人全身跟踪:该项目训练用于人形机器人运动跟踪的策略。
  • 可微分世界模型:训练同时使用一个可微分世界模型和该策略。
  • 两种任务表示形式:SuperMimic 支持 G1 的广义坐标和最大坐标任务。
  • 训练与回放脚本:项目分别提供用于启动训练和回放训练模型的命令。
  • GPU 选择:可以通过 CUDA_VISIBLE_DEVICES 将训练分配到指定 GPU。

安装 SuperMimic

1. 安装 uv

SuperMimic 使用 uv 运行脚本。请使用项目 README 中提供的命令安装:

curl -LsSf https://astral.sh/uv/install.sh | sh

2. 创建工作区

SuperMimic 和 mjlab_research 仓库必须克隆到同级目录。创建共享工作区并进入其中,然后克隆两个仓库:

mkdir supermimic_ws && cd supermimic_ws
git clone git@github.com:HybridRobotics/supermimic.git
git clone git@github.com:HybridRobotics/mjlab_research.git
cd supermimic

完成后,supermimic 和 mjlab_research 将位于同一目录层级。其余命令请在 supermimic 目录中运行。

选择训练任务

SuperMimic 提供两个任务 ID:

  • SuperMimic-GenCoord-G1 使用广义坐标表示。
  • SuperMimic-MaxCoord-G1 使用最大坐标表示。

在训练和回放命令中都使用准确的任务 ID。请选择与实验目标匹配的表示形式。

训练世界模型和策略

训练脚本接受任务 ID 和描述性运行名称。可以使用以下模板在指定 GPU 上启动训练:

CUDA_VISIBLE_DEVICES=<GPU_ID> uv run src/supermimic/scripts/train.py \
  <TASK_ID> --runner.run_name <description>

将 <GPU_ID> 替换为 GPU 索引,将 <TASK_ID> 替换为支持的任务 ID 之一,并将 <description> 替换为有意义的运行名称。

例如,以下命令选择 GPU 0 并启动广义坐标任务:

CUDA_VISIBLE_DEVICES=0 uv run src/supermimic/scripts/train.py \
  SuperMimic-GenCoord-G1 --runner.run_name g1_generalized_coordinates

若要改用最大坐标表示进行训练,请更改任务 ID:

CUDA_VISIBLE_DEVICES=0 uv run src/supermimic/scripts/train.py \
  SuperMimic-MaxCoord-G1 --runner.run_name g1_maximal_coordinates

回放训练模型

使用原始任务 ID 和训练模型的 Weights & Biases 运行路径调用回放脚本:

uv run src/supermimic/scripts/play.py \
  <TASK_ID> --wandb-path <RUN_PATH>

对于广义坐标运行,命令格式如下:

uv run src/supermimic/scripts/play.py \
  SuperMimic-GenCoord-G1 --wandb-path <RUN_PATH>

将 <RUN_PATH> 替换为适用的运行路径。回放任务 ID 必须与训练时使用的表示形式保持一致。

高级工作流提示

保持仓库同级

请保持设置说明中所示的工作区结构。不要将 mjlab_research 放在 supermimic 仓库内,反之亦然。

使用描述性运行名称

--runner.run_name 的值应清晰标识实验。在名称中加入坐标表示形式,有助于区分广义坐标和最大坐标运行。

明确选择 GPU

在多 GPU 计算机上,请在训练命令前设置 CUDA_VISIBLE_DEVICES,以选择所需 GPU。例如,使用 CUDA_VISIBLE_DEVICES=1 可将 GPU 1 提供给进程。

在回放时匹配任务 ID

回放模型时,请使用训练该模型时采用的相同坐标表示任务 ID。这样可以确保回放命令与原始实验保持一致。

项目致谢与许可证

SuperMimic 包含受 ControlVAE、robotic_world_model 和 DreamerV3 启发的代码。这些项目分别采用 BSD-3-Clause、Apache-2.0 和 MIT 许可证。

SuperMimic 采用 Apache License 2.0 发布。版权所有 2026 The SuperMimic Authors。

结论

SuperMimic 提供了一套专注于使用可微分世界模型训练和回放人形机器人全身运动跟踪器的工作流。安装 uv 并克隆所需的两个同级仓库后,选择坐标表示形式,在合适的 GPU 上启动训练,并使用生成的 Weights & Biases 运行路径进行回放。