基于 Genesis 的强化学习训练#
Genesis 是面向机器人任务的 GPU 加速多物理场 仿真器。你将使用 RLinf 在 Franka cube-pick 任务上,通过 PPO 训练 MLP 或 CNN policy。
概览#
训练 Franka Panda 策略在 Genesis 中抓取方块。
MLP · CNN
PPO
CubePick
1 节点 · 1 GPU
run_embodiment.sh → 观察 env/success_once。任务#
任务 |
描述 |
|---|---|
|
控制 Franka Panda 机械臂抓取并抬起方块。 |
观测与动作#
字段 |
规格 |
|---|---|
观测 |
MLP 使用 16 维状态;CNN 使用 256×256 RGB 加 16 维状态。 |
动作 |
9 维连续动作:7 个 Franka 机械臂关节位置和 2 个夹爪位置。 |
奖励 |
稠密 approach reward 和 grasp-success bonus。 |
提示词 |
不使用;这是低维/CNN policy 控制配方。 |
安装#
首先,克隆 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-genesis
# 国内用户可使用:
# docker.1ms.run/rlinf/rlinf:agentic-rlinf0.3-genesis
自定义环境
安装 Genesis 依赖:
# 国内用户可添加 --use-mirror。
bash requirements/install.sh embodied --env genesis
source .venv/bin/activate
下载模型#
MLP + PPO 配方可跳过本节。CNN + PPO 配方需要下载 ResNet 检查点:
cd /path/to/save/model
git lfs install
git clone https://huggingface.co/RLinf/RLinf-ResNet10-pretrained
# 或使用 huggingface-hub:
# export HF_ENDPOINT=https://hf-mirror.com
pip install huggingface-hub
hf download RLinf/RLinf-ResNet10-pretrained --local-dir RLinf-ResNet10-pretrained
然后在 examples/embodiment/config/genesis_cubepick_ppo_cnn.yaml 中为 rollout 和 actor
设置相同的检查点路径:
rollout:
model:
model_path: /path/to/RLinf-ResNet10-pretrained
actor:
model:
model_path: /path/to/RLinf-ResNet10-pretrained
运行#
选择一个配方并启动训练:
配方 |
配置 |
命令后缀 |
|---|---|---|
MLP + PPO |
|
|
CNN + PPO |
|
|
bash examples/embodiment/run_embodiment.sh genesis_cubepick_ppo_mlp
bash examples/embodiment/run_embodiment.sh genesis_cubepick_ppo_cnn
这条命令会:
使用选定的 Hydra 配置启动 embodied 训练入口。
为 actor、rollout 和 Genesis env 组件创建 Ray worker。
运行 PPO rollout,计算 cube-pick 奖励,并更新选定策略。
备注
两个配置默认都运行在 GPU 0。请根据硬件调整
cluster.component_placement、env.train.total_num_envs 和 batch size。
可视化与结果#
在 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
配方 |
结果描述 |
|---|---|
MLP + PPO |
使用默认 |