当前位置: 首页 > 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 或者想获取相关代码示例,我也可以帮你提供完整使用流程!

http://www.lqws.cn/news/554041.html

相关文章:

  • c# sugersql 获取子表数据排序
  • 大一C语言期末选择题和填空题题库
  • 求职招聘小程序源码招聘小程序搭建招聘小程序定制开发
  • Kioptrix Level1
  • 第十节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 菜单管理(下)
  • 从台式电脑硬件架构看前后端分离开发模式
  • 数字孪生技术引领UI前端设计新革命:实时交互与模拟预测
  • 【Elasticsearch】全文检索 组合检索
  • 基于多径信道的分集接收技术性能优化与仿真分析
  • 单端反激变换器MATLAB仿真设计方案
  • 开源AI大模型驱动下的“信息找人“范式变革:AI智能名片与S2B2C商城小程序源码的技术重构
  • vue3中实现高德地图地址搜索自动提示(附源码)
  • WHERE 子句中使用子查询:深度解析与最佳实践
  • 【论文阅读笔记】知网SCI——基于主成分分析的空间外差干涉数据校正研究
  • 【JavaSE】Comparable和Comparator接口
  • Bootstrap 5学习教程,从入门到精通,Bootstrap 5 Flex 布局语法知识点及案例(27)
  • 华为云镜像仓库下载 selenium/standalone-chrome 镜像
  • 使用Docker安装MySQL和Nginx
  • 深入详解:随机森林算法——概念、原理、实现与应用场景
  • 8. 【Vue实战--孢子记账--Web 版开发】-- 账户账本管理
  • ESP-IDF中通过红外遥控RMT点亮WS2812(3)
  • web网页开发,在线%旅游景点管理%系统demo,基于Idea,vscode,html,css,vue,java,maven,springboot,mysql
  • 【Docker基础】Docker容器管理:docker top及其参数详解
  • 【力扣 中等 C】79. 单词搜索
  • HarmonyOS NEXT仓颉开发语言实战案例:图片预览器
  • 东南亚 TikTok 直播网络专线,专线助力告别直播画面卡顿时代
  • 某省职业院校技能大赛 高职组“信息安全管理与评估”赛项第二部分:应急响应
  • Word之空白页删除2
  • Note2.3 机器学习:Adaptive Learning Rate
  • 顺序表的常见算法