当前位置: 首页 > news >正文

Push-T, AloHa, Rlbench三个仿真环境信息

1.Push-T

很好兄弟,你问得很关键:你给我的三段代码其实是一套完整的推理+录像 pipeline,它们之间既有独立功能,又有顺序依赖关系。我来帮你分段解释,每段是什么功能、三段之间怎么配合,让你彻底搞明白。


🧩 三段代码作用总览

段落功能定位是否录像是否推理输出
第一段(构建 env)构造 Push-T 环境 + 包装视频录制器 + 多步 wrapper设置好环境、准备录像
第二段(① 单次推理)使用种子 10 进行一次推理并录像1 个 demo 视频(路径自动生成)
第三段(② 批量推理)遍历种子 1~100,每次都推理并保存视频100 个 demo 视频(输出为 1.mp4~100.mp4)

🔍 一段一段解释 & 联系:


✅ 第一段:构造环境 + 视频录制配置

env = MultiStepWrapper(VideoRecordingWrapper(PushTImageEnv(render_size=256),video_recoder=VideoRecorder.create_h264(...),file_path=None,steps_per_render=1
),
n_obs_steps=cfg.policy.n_obs_steps,
n_action_steps=cfg.policy.n_action_steps,
max_episode_steps=200)env.env.video_recoder.stop()
✅ 做了什么?
  • 构建 PushTImageEnv,也就是你要跑的模拟环境;

  • 包了一层 VideoRecordingWrapper,让它可以自动录视频;

  • 包了 MultiStepWrapper,允许做多步观测 → 多步动作(比如 Transformer 用 sliding window);

  • 暂时不指定输出文件(file_path=None),等你后面代码指定;

  • 调用 stop(),清空之前录像器状态,防止写入冲突。

✅ 输出结果?

准备好了一个可以推理、可以录像的强化学习环境 env


✅ 第二段(①):用种子 10 推理一次并录像

env.seed(10)
obs = env.reset()arp_policy.eval()
done = False
while not done:action_dict = arp_policy.predict_action(prepare_obs(obs))obs, reward, done, info = env.step(...)obs = env.reset()
"demonstration is saved to ", env.env.file_path
✅ 做了什么?
  • 设置种子 10 → 保证可复现;

  • 开始推理一个 episode → 每步都执行推理、环境 step;

  • 环境会自动调用 VideoRecorder.render(),每步录视频;

  • 推理结束后,保存为 file_path 指定路径的 .mp4 文件。

✅ 和第一段的联系?
  • 用的是第一段构建好的环境;

  • 使用未指定路径的录像器 → 所以你需要后续给它 env.env.file_path = filename,否则视频不会保存;

  • 实际上这一段视频路径会在别处(如默认临时路径)或失效。


✅ 第三段(②):推理 100 次并每次保存视频

for s in trange(1, 101):env.seed(s)env.env.file_path = f'./outputs/demo/media/{s}.mp4'obs = env.reset()while not done:action = arp_policy.predict_action(...)obs, reward, done, info = env.step(...)
✅ 做了什么?
  • 使用种子 1 到 100;

  • 每轮推理并录像,并将结果保存为 1.mp4, 2.mp4, ..., 100.mp4

  • 每次都手动设置 env.env.file_path → 录像器就知道要保存在哪个文件;

  • 这就是一个 批量生成高质量 demo 的过程

✅ 和前两段的联系?
  • 用第一段构建好的环境;

  • 和第二段代码基本一致,只不过是循环版本;

  • 手动设置每次录像输出路径;

  • 一次性生成一堆轨迹数据,后续可以用于 imitation learning、diffusion 训练、评估等。


✅ 最终总结图示(结构思维图)

第一段:构造环境
│
├── env = MultiStepWrapper(...)
│
└── VideoRecorder 包住环境(尚未指定 file_path)第二段(①):单条推理
│
├── env.seed(10)
├── env.reset()
├── 推理 + step + 渲染录像
└── 生成一个 demo(自动路径 或 file_path 外部设置)第三段(②):循环推理
│
├── for seed in 1~100:
│   ├── env.seed(seed)
│   ├── 设置 file_path = ./outputs/demo/media/{seed}.mp4
│   ├── 推理 + step + 渲染录像
│   └── 保存为对应视频
└── 最终输出 100 个视频

如果你想要下一步比如:

  • 用这些 .mp4.npz 训练 diffusion policy、BC、CoL;

  • 评估这些 policy 表现(如 success rate);

  • 把推理结果上传 HuggingFace Hub 展示;

我可以帮你接着写下去。

2.AloHa

这里有两个主流的 ALOHA 环境链接,你可以根据需求选择使用:


1. gym-aloha(由 Hugging Face 提供,可与 Gymnasium 接口直接交互)

✅ 支持两个任务:

  • AlohaInsertion-v0(插入任务)

  • AlohaTransferCube-v0(搬运方块任务)

快速示例:

import gymnasium as gym
import gym_alohaenv = gym.make("gym_aloha/AlohaInsertion-v0", obs_type="pixels", render_mode="rgb_array")
obs, info = env.reset()
for _ in range(1000):action = env.action_space.sample()obs, reward, terminated, truncated, info = env.step(action)img = env.render()

(github.com)

📦 安装方式:

pip install gym-aloha

2. aloha_sim(由 Google DeepMind 开发,基于 MuJoCo,可以做桌面任务)

提供多种任务(如 Banana handover、Marker lid removal 等),支持交互和评估脚本,适合 MuJoCo 用户。

安装和使用示例如下:

pip install aloha_sim
export MUJOCO_GL='egl'
python aloha_sim/viewer.py --task_name=HandOverBanana
python aloha_sim/run_eval.py  # 批量生成视频 / 测试指标

(github.com)


🎯 总结与建议

环境接口类型支持任务推荐理由
gym-alohaGymnasium 接口插入、搬运方块任务简洁易用,适合快速上手和训练管道
aloha_simMuJoCo + Python多桌面操控任务适合需要复杂交互、真实感更强的模拟

🧭 探索 & 推荐

  • 想用 LeRobot Pipeline 吗?:安装 pip install -e ".[aloha]" 后,就可以直接使用 --env.type=aloha 运行 lerobot/scripts/train.py,一键训练 ALOHA 任务 (github.com)。

  • **想看代码、任务定义、讨论搭建?**gym-aloha 的 GitHub 上有具体说明 (github.com)。

  • **想用 MuJoCo 更加真实的行为配置?**可试试 aloha_sim,它的评估与交互脚本对研究更友好 (github.com)。


如果你想用 LeRobot 框架跑 ALOHA 的训练 demo 或者想获取相关代码示例,我也可以帮你提供完整使用流程!

相关文章:

  • 为何需要防爆平板?它究竟有何能耐?
  • 给定一个整型矩阵map,求最大的矩形区域为1的数量
  • Redis 高可用分片集群:主从模式与哨兵机制详解
  • 【AI智能体】Dify 核心组件从使用到实战操作详解
  • 33.表复制和去重
  • SpringMVC系列(五)(响应实验以及Restful架构风格(上))
  • maven多模块、多层级项目 如何只构建指定的项目
  • Web基础关键_004_CSS(二)
  • 在 CentOS Stream 10 上搭建 Kubernetes 集群并支持开发调试与日志查看
  • ZooKeeper深度面试指南一
  • React环境搭建及语法简介
  • PIC单片机MPLAB编译报错的一些问题及解决方法
  • python多线程详细讲解
  • Java-Matcher类
  • Grab×亚矩阵云手机:以“云端超级节点”重塑东南亚出行与数字生活生态
  • 【21】C9800配置PSK认证的WLAN
  • 【git教程】git add 命令讲解
  • 如何让ChatGPT模仿人类写作,降低AIGC率?
  • zookeeper Curator(2):Curator的节点操作
  • var let setTimeOut 经典面试题