robomimic基础教程(四)——开源数据集

news2024/9/28 10:23:50

robomimic开源了大量数据集及仿真环境,数据集标准格式为HDF5

目录

一、基础要求

二、使用步骤

1. 下载数据集

2. 后处理

3. 训练

4. 查看训练结果

三、HDF5数据集结构与可视化

1. 数据集结构

(1)根级别(data 组 group)

(2)轨迹(组 group )

(2.1)属性

(2.2)数据集

(2.3)观测(组 group)

(3)掩码(组 group)

2. 可视化

(1)查看HDF5数据结构

(2)查看数据集轨迹


一、基础要求

编译器:使用pycharm或者Colab notebook均可

pycharm安装在UMI复现基础环境安装配置全流程(二)——实用软件安装及卸载写过

二、使用步骤

robomimic数据集通过记录的环境数据,并用作给定离线RL或IL算法的输入。之后,可以通过以下方式使用robomimic数据集:

1. 下载所需的数据集

2. 对数据集进行后处理,保证与robomimic兼容

3. 用数据集训练机器人

1. 下载数据集

robomimic目前支持以下开箱即用的数据集。点击相应的(1)下载链接下载数据集,点击相应的(2)后处理链接对数据集进行后处理。

Dataset

Task Types

DownloadingPostprocessing
robomimic v0.1Sim + Real Robot ManipulationLinkLink
D4RLSim LocomotionLinkLink
MOMARTSim Mobile ManipulationLinkLink
RoboTurk PilotSim Robot ManipulationLinkLink

也可以在robomimic原程序文件夹中使用download_datasets.py函数下载,例如:

python robomimic/scripts/download_datasets.py --tasks lift --dataset_types ph

数据集存储为datasets/lift/ph/low_dim_v141.hdf5

2. 后处理

如果下载了low_dim或image数据集,那么数据集可以开箱即用!不需要后处理

如果下载了原始数据集,则必须对数据集进行后处理,因为没有存储观测值。必须运行dataset_states_to_obs.py

3. 训练

在下载和后处理之后,使用train.py对数据集进行训练

python train.py --dataset <PATH_TO_POSTPROCESSED_DATASET> --config <PATH_TO_CONFIG>

比如针对1中下载的low_dim_v141.hdf5,可以选择运行behavior cloning (BC)算法训练

python robomimic/scripts/train.py --config robomimic/exps/templates/bc.json --dataset datasets/lift/ph/low_dim_v141.hdf5 --debug

4. 查看训练结果

在tests文件夹中的tmp_model_dir文件夹中包括这几个文件夹,

更多详细内容查看robomimic应用教程(一)——模型训练

三、HDF5数据集结构与可视化

1. 数据集结构

所有后处理的 robomic 兼容数据集被存储为具有高度组织和层次结构的 HDF5 文件

单个数据集是具有以下结构的单个HDF5文件(链接)

HDF5 结构详细说明:


(1)根级别(datagroup

  • total(属性 attribute):表示数据集中状态-动作样本的总数,提供整体大小信息

  • env_args(属性 attribute):一个包含环境元数据的 JSON 字符串,记录了数据收集时的环境信息,该元数据包括:

    • env_name:环境或任务的名称。
    • env_type:环境的类型(例如 robosuite)
    • env_kwargs:传递给环境的其他关键字参数,用于配置

(2)轨迹(组 group )

每个轨迹都被存储为一个组(如 demo_0、demo_1 等),在每个轨迹组内,包含以下内容:

(2.1)属性
  • num_samples(属性 attribute):该轨迹中的状态-动作样本数量

  • model_file(属性 attribute):MJCF MuJoCo 模型的 XML 字符串,对于 robosuite 数据集是特定的,对于非 robosuite 数据集则省略

(2.2)数据集
  • states(数据集 dataset):包含按时间顺序排列的 MuJoCo 状态,形状为 (N, D),其中:

    • N:轨迹中的样本数量。
    • D:状态向量的维度。对于非 robosuite 数据集,可能为空或填充虚拟值
  • actions(数据集 dataset):包含环境中执行的动作,按时间顺序排列。其形状为(N, A),其中:

    • N:轨迹中的样本数量
    • A:动作空间的维度
  • rewards(数据集 dataset):存储轨迹中从环境获得的奖励,形状为 (N, ),表示每个时间步的奖励

  • dones(数据集 dataset):指示在每个动作后,情节是否结束(1表示结束,0表示未结束),形状为 (N, )


(2.3)观测(组 group)
  • obs(组 group):包含观测键的多个数据集

    • <obs_key_1>(数据集 dataset):第一个观测键,数据集的名称和形状可能不同(例如agentview_image,形状为(N,84,84,3))
    • <obs_key_2>(数据集 dataset):第二个观测键,依此类推
  • next_obs(组 group):包含下一时间步的观测键,结构与 obs 组类似

    • <obs_key_1>(数据集):对应的下一步观测
    • <obs_key_2>(数据集):依此类推

(3)掩码(组 group)

  • mask(组 group):如果数据集包含过滤键(filter keys),则存在此组,用于选择数据集的子集(例如,验证轨迹)
    • <filter_key_1>(数据集):包含轨迹标识符的列表,例如 [“demo_0”, “demo_19”, “demo_35”],表示用于验证的过滤轨迹
    • <filter_key_2>(数据集):其他过滤键,依此类推

该结构在不同的轨迹(如 demo_0、demo_1 等)中是一致的,每个轨迹都包含类似的属性和数据集格式

这种设置方式可以访问特定轨迹的数据、元数据、观测和环境中的动作,使其适合使用 robomimic 框架进行策略的训练和测试

2. 可视化

(1)查看HDF5数据结构

存储库提供了一个简单的实用程序脚本(get_dataset_info.py)来查看 hdf5 数据集结构和 hdf5 数据集的一些统计信息,脚本显示如下信息:

  • 关于轨迹的统计信息(数量、平均长度等)
  • 数据集中的筛选键(filter keys)
  • 数据集中的环境元数据(environment metadata),用于构建收集数据的相同模拟器环境
  • 第一个演示的数据集结构

可以通过 --verbose 参数打印每个过滤键下的演示键列表,以及所有用于演示的数据集结构

例如,使用 tests/assets/test_v141.hdf5 中的存储库打包得到的小型 hdf5 数据集

python get_dataset_info.py --dataset ../../tests/assets/test_v141.hdf5

对于如何编写自定义代码以处理 robomimic 数据集,可查看 jupyter 代码

相关分析在 robomimic应用教程(三)——深入理解robomimic数据集

(2)查看数据集轨迹

对于上面打包的小型 hdf5 数据集(基于 robosuite v1.4.1),使用 playback_dataset.py 脚本查看数据集轨迹

# For the first 5 trajectories, load environment simulator states one-by-one, and render "agentview" and "robot0_eye_in_hand" cameras to video at /tmp/playback_dataset.mp4
$ python playback_dataset.py --dataset ../../tests/assets/test_v141.hdf5 --render_image_names agentview robot0_eye_in_hand --video_path /tmp/playback_dataset.mp4 --n 5

# Directly visualize the image observations in the dataset. This is especially useful for real robot datasets where there is no simulator to use for rendering.
$ python playback_dataset.py --dataset ../../tests/assets/test_v141.hdf5 --use-obs --render_image_names agentview_image --video_path /tmp/obs_trajectory.mp4

# Visualize depth observations as well.
$ python playback_dataset.py --dataset /path/to/dataset.hdf5 --use-obs --render_image_names agentview_image --render_depth_names agentview_depth --video_path /tmp/obs_trajectory.mp4

# Play the dataset actions in the environment to verify that the recorded actions are reasonable.
$ python playback_dataset.py --dataset ../../tests/assets/test_v141.hdf5 --use-actions --render_image_names agentview --video_path /tmp/playback_dataset_with_actions.mp4

# Visualize only the initial demonstration frames.
$ python playback_dataset.py --dataset ../../tests/assets/test_v141.hdf5 --first --render_image_names agentview --video_path /tmp/dataset_task_inits.mp4

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2173180.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

overlayscrollbars使用

官网 https://github.com/KingSora/OverlayScrollbars 使用 <link href"https://cdn.bootcdn.net/ajax/libs/overlayscrollbars/2.10.0/styles/overlayscrollbars.css" rel"stylesheet"> <script src"https://cdn.bootcdn.net/ajax/libs/…

AP配置(leaderAP组网模式)

1.前言 由于业务需求&#xff0c;临时组建一个网络环境使用 网络设备&#xff1a;华为 AirEngine 5762-10、5762S-12 2.网络结构 参考文档&#xff0c;使用leader ap组网模式 使用一台5862S-12作为leaderAP&#xff0c;AP通电后默认是fit模式&#xff0c;需要进入修改 如果…

HA Peer-mode非对称路由配置

目录 前言 一、组网拓扑 二、配置步骤 1.Hillstone-A 2.Hillstone-B 总结 前言 网络环境有非对称流量且需要双活部署时&#xff0c;防火墙可配置HA的peer-mode非对称路由模式进行实现。 一、组网拓扑 数据流量的路径是非对称的&#xff08;即 Flow0和Flow1是两条不同流量…

线性代数~行列式计算

来自b站博主&#xff0c;我爱一高数

【系统交付资料】软件文档交付清单整理套用原件(Word,PPT,Excel)

软件文档交付清单是指在软件开发项目完成后&#xff0c;开发团队需要准备的一份详细清单&#xff0c;用于确保交付的软件产品符合客户需求并达到预期的质量标准。以下是软件文档交付清单中可能包含的一些关键要素 软件资料清单列表部分文档清单&#xff1a;工作安排任务书&…

音视频入门基础:FLV专题(7)——Tag header简介

一、引言 从《音视频入门基础&#xff1a;FLV专题&#xff08;3&#xff09;——FLV header简介》中可以知道&#xff0c; 在FLV header之后&#xff0c;FLV文件剩下的部分应由PreviousTagSize和Tag组成。FLV文件 FLV header PreviousTagSize0 Tag1 PreviousTagSize1 Ta…

顺序表算法题 —— 移除元素、删除有序数组中的重复项、合并两个有序数组

目录 一、顺序表算法题 1、移除元素 2、删除有序数组中的重复项 3、 合并两个有序数组 二、顺序表问题与思考 一、顺序表算法题 1、移除元素 移除元素 - 力扣&#xff08;LeetCode&#xff09; 思路分析&#xff1a; 思路一&#xff1a;创建一个新数组&#xff0c;开辟…

828华为云征文|在Flexus X实例上安装JDK和Tomcat保姆教学

目录 一、Flexus云服务器X实例 1.1 Flexus X实例概述 1.2 Flexus X实例场景优势 1.3 其他型号与Flexus X实例比较 二、Flexus X实例上安装JDK 2.1 确定安装版本 2.2 yum命令直接安装 2.3 查看版本 三、Flexus X实例上安装tomcat 3.1 上传安装包到Flexus X实例服务器 …

拯救Air780EP模块紧急项目:异常断链的吐血经历。。。

小编最近被老板驱使&#xff0c;要用Air780EP模块做几个紧急项目 并且由于时间紧任务重&#xff0c;遇到了一些棘手问题&#xff0c;简直呕心沥血…… 左思右想&#xff0c;还是在这里把遇到的问题&#xff0c;排查记录下来 也许可以帮到因遇到类似的问题&#xff0c;并且一…

你要的Air201录音和播放录音功能?直接拿去!

最近拼拼收到同学们的疑问&#xff1a;Air201是否支持录音、播放录音功能&#xff1f; 必须支持&#xff01;Air201可是高集成化设计&#xff0c;并且Air201自带了ES8311音频解码芯片&#xff08;Audio Codec&#xff09;及MIC麦克&#xff0c;可支持本地的录音功能&#xff1…

掌握编码最佳实践

你准备好把你的编程技能提升到一个新的水平了吗&#xff1f;在本文中&#xff0c;我们将探讨秘密破坏您的生产力的常见编码错误&#xff0c;并分享您需要了解的优化工作流程的最佳实践。 通过实施这些技巧&#xff0c;您将更快&#xff0c;更智能地编码&#xff0c;并在创纪录…

预训练词向量的使用

目录 1.代码实现 2.知识点&#xff1a; 两个网站可以下载预训练词向量 GloVe网站&#xff1a;GloVe: Global Vectors for Word RepresentationfastText网站&#xff1a;https://fasttext.cc 1.代码实现 import os import torch from torch import nn import dltools class …

文章解读与仿真程序复现思路——中国电机工程学报EI\CSCD\北大核心《考虑异步区域调频资源互济的电能、惯性与一次调频联合优化出清模型》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

Web后端开发原理!!!什么是自动配置???什么是起动依赖???

引言&#xff1a; 当然&#xff0c;在我们学习的过程中&#xff0c;得知其然&#xff0c;还得知其所以然。So理解了其原理&#xff0c;更能让我们对其开发的理解&#xff0c;遇到问题&#xff0c;也更能快速找到解决办法&#xff01;&#xff01;&#xff01; 1. SprngBoot-配…

网站建设中,营销型网站与普通网站有什么区别

营销型网站与普通网站在建站目的、交互设计以及结构优化等方面存在区别。以下是具体分析&#xff1a; 建站目的 营销型网站&#xff1a;以销售和转化为主要目标&#xff0c;通过专业的市场分析和策划来吸引潜在客户&#xff0c;并促使其采取购买行动。普通网站&#xff1a;通常…

Golang | Leetcode Golang题解之第441题排列硬币

题目&#xff1a; 题解&#xff1a; func arrangeCoins(n int) int {return sort.Search(n, func(k int) bool { k; return k*(k1) > 2*n }) }

Python in Excel作图分析实战!

Excel 中的 Python 现已正式发布&#xff0c;适用于 Microsoft 365 商业版和企业版的 Windows 用户。去年 8 月&#xff0c;微软与 Anaconda 合作&#xff0c;通过集成 Python 为 Excel 引入了一个令人兴奋的新增功能&#xff0c;从而可以将 Python 和 Excel 分析无缝结合到同一…

OLMo - 训练和使用AI2 模型

文章目录 一、关于 OLMo安装 二、模型概览Checkpoints 三、推理关于微调检查点的推理量化 四、Reproducibility训练检查训练数据 五、微调六、评估 一、关于 OLMo OLMo: Open Language Model OLMo是一个用于训练和使用AI2最先进的开放语言模型的存储库。它由科学家为科学家构建…

java初识

目录 1.命名规范 2.数据类型 3.数据类型转换&#xff08;就是见识一下&#xff09; 4.java里面的输入输出 4.1判断是不是偶数 4.2判断是不是闰年 4.3其他的输入输出 4.4顺序的问题 5.分支语句补充 5.IDEA里面的调试 6.continue的一个案例 1.命名规范 这个命名规范就…

【Mysql】Mysql数据库基本操作-------DDL(中)

1、对表结构的常用操作----创建表 创建表格式&#xff1a; creat table (if not exists ) (可以省略&#xff09; 表名( 字段一 类型[&#xff08;宽度&#xff09;] [约束条件] [comment 字段说明], 字段二 类型[&#xff08;宽度&#xff09;] [约束条件] […