基于 PolaRiS 仿真平台的强化学习训练#

https://raw.githubusercontent.com/RLinf/misc/main/pic/polaris.png

PolaRiS(图片来源:PolaRiS)。#

PolaRiS 是基于 Isaac Sim 的机器人基准, 使用 Gaussian Splatting 渲染桌面操作任务。你将使用 RLinf 在 DROID 风格的 PolaRiS 任务上,通过 PPO 微调 OpenPI π₀ 或 π₀.₅ 策略。

概览#

在 PolaRiS 上使用两个 RGB 视角、本体状态和 chunked 8 维动作微调 OpenPI 策略。

模型

π₀ · π₀.₅

算法

PPO

任务

6 个 DROID 桌面任务

硬件

1 节点 · 1 GPU

你将完成: 安装 → 下载 Isaac Sim + 数据集 + 模型 → 启动 run_embodiment.sh → 观察 env/success_once
前置条件: 安装 · Isaac Sim · PolaRiS-Hub · OpenPI 检查点。

任务#

任务

描述

环境配置

DROID-TapeIntoContainer

将胶带放入容器。

polaris_droid_tapeintocontainer.yaml

DROID-PanClean

用黄色海绵擦洗蓝色手柄煎锅。

polaris_droid_panclean.yaml

DROID-BlockStackKitchen

将积木放到绿色托盘上并堆叠。

polaris_droid_blockstackkitchen.yaml

DROID-FoodBussing

将所有食物放入碗中。

polaris_droid_foodbussing.yaml

DROID-MoveLatteCup

将拉花杯放到砧板上。

polaris_droid_movelattecup.yaml

DROID-OrganizeTools

将剪刀放入大容器。

polaris_droid_organizetools.yaml

观测与动作#

字段

规格

观测

224×224 外部 RGB 相机、腕部 RGB 相机,以及 8 维机器人状态。

动作

8 维连续动作:7 维关节速度和 1 维夹爪位置。

奖励

PolaRiS 环境提供的任务完成奖励。

提示词

init_params.task_description 中的任务描述。

安装#

首先,克隆 RLinf 仓库:

# 为提高国内下载速度,可以使用镜像:
# git clone https://ghfast.top/github.com/RLinf/RLinf.git
git clone https://github.com/RLinf/RLinf.git
cd RLinf

然后,使用下列两种方式之一准备依赖:预构建的 Docker 镜像(推荐)或自定义环境。 通用的安装流程(前置依赖、GPU 驱动、镜像内置的 switch_env 工具、镜像加速、常见问题排查) 在 安装说明 中统一说明;本方案中的命令仅在 Docker 镜像标签和 --env 取值上有所不同。

Docker 镜像

docker run -it --rm --gpus all \
   --shm-size 32g \
   --network host \
   --name rlinf \
   -v .:/workspace/RLinf \
   rlinf/rlinf:agentic-rlinf0.3-polaris

# 国内用户可使用:
# docker.1ms.run/rlinf/rlinf:agentic-rlinf0.3-polaris

在镜像中切换到 OpenPI 虚拟环境:

source switch_env openpi

自定义环境

安装 PolaRiS 与 OpenPI 依赖:

# 国内用户可添加 --use-mirror。
bash requirements/install.sh embodied --model openpi --env polaris
source .venv/bin/activate

下载 Isaac Sim#

下载 Isaac Sim 5.1.0 并初始化其 shell 环境:

mkdir -p isaac_sim
cd isaac_sim
wget https://download.isaacsim.omniverse.nvidia.com/isaac-sim-standalone-5.1.0-linux-x86_64.zip
unzip isaac-sim-standalone-5.1.0-linux-x86_64.zip
rm isaac-sim-standalone-5.1.0-linux-x86_64.zip
source ./setup_conda_env.sh

警告

每次在新终端中启动 PolaRiS 前,都需要运行 source ./setup_conda_env.sh

下载数据集#

下载评估场景和初始条件:

# export HF_ENDPOINT=https://hf-mirror.com
hf download owhan/PolaRiS-Hub --repo-type=dataset --local-dir ./PolaRiS-Hub
export POLARIS_DATA_PATH=/path/to/PolaRiS-Hub

可选下载 co-training 演示数据:

hf download owhan/PolaRiS-datasets --repo-type=dataset --local-dir ./PolaRiS-datasets

下载模型#

下载你要微调的 OpenPI 模型检查点。

OpenPI π₀.₅

cd /path/to/save/model

git lfs install
git clone https://huggingface.co/RLinf/RLinf-Pi05-Polaris-droid_jointpos

# 或使用 huggingface-hub:
# export HF_ENDPOINT=https://hf-mirror.com
pip install huggingface-hub
hf download RLinf/RLinf-Pi05-Polaris-droid_jointpos --local-dir RLinf-Pi05-Polaris-droid_jointpos

OpenPI π₀

cd /path/to/save/model

git lfs install
git clone https://huggingface.co/RLinf/RLinf-Pi0-Polaris-droid_jointpos

# 或使用 huggingface-hub:
# export HF_ENDPOINT=https://hf-mirror.com
pip install huggingface-hub
hf download RLinf/RLinf-Pi0-Polaris-droid_jointpos --local-dir RLinf-Pi0-Polaris-droid_jointpos

下载完成后,在配置 YAML 中指向该检查点——为 rollout 与 actor 两处模型设置相同的路径:

rollout:
   model:
      model_path: /path/to/downloaded-checkpoint
actor:
   model:
      model_path: /path/to/downloaded-checkpoint

运行#

选择一个训练配置,并在已初始化 Isaac Sim 的终端中启动:

配方

配置

命令后缀

π₀.₅ + PPO

examples/embodiment/config/polaris_tapeintocontainer_ppo_openpi_pi05.yaml

polaris_tapeintocontainer_ppo_openpi_pi05

π₀ + PPO

examples/embodiment/config/polaris_tapeintocontainer_ppo_openpi.yaml

polaris_tapeintocontainer_ppo_openpi

source /path/to/isaac_sim/setup_conda_env.sh
export POLARIS_DATA_PATH=/path/to/PolaRiS-Hub

bash examples/embodiment/run_embodiment.sh polaris_tapeintocontainer_ppo_openpi_pi05
bash examples/embodiment/run_embodiment.sh polaris_tapeintocontainer_ppo_openpi

这条命令会:

  1. 使用选定的 Hydra 配置启动 embodied 训练入口。

  2. 为 actor、rollout 和 PolaRiS env 组件创建 Ray worker。

  3. 使用 chunked OpenPI 动作和 Gaussian Splatting 渲染观测运行 PPO。

独立评估请走 PolaRiS 评测指南。 该指南负责 POLARIS_DATA_PATH、可用评测配置 (polaris_tapeintocontainer_openpi_pi05_evalpolaris_movelattecup_openpi_eval) 和结果解读。

备注

训练配置默认使用 polaris_droid_tapeintocontainer。如需切换任务,请将 Hydra env defaults 改为其他 polaris_droid_* 环境配置,并保持 POLARIS_DATA_PATH 指向 PolaRiS-Hub

在调优动作 / 渲染流水线时,以下 PolaRiS 专有字段值得了解:

配置项

含义

open_loop_horizon

高质量 Gaussian Splatting 渲染的频率。在一个动作 chunk 内,每 open_loop_horizon 步执行一次高质量渲染,中间步则使用低质量渲染以加速仿真。

num_action_chunks

模型一次生成的动作步数(如 15)。

num_images_in_input

输入给策略的相机图像数量(如 2:外部相机 + 腕部相机)。

config_name

OpenPI 配置 / 数据格式选择(如 pi05_droid_polaris 对应 DROID 数据格式)。

可视化与结果#

在 RLinf 仓库根目录启动 TensorBoard:

tensorboard --logdir ../results --port 6006

关键指标是 env/success_once。完整指标说明见 训练指标

如需评估视频,请在环境配置中启用 video:

env:
  eval:
    video_cfg:
      save_video: True
      video_base_dir: ${runner.logger.log_path}/video/eval