OpenVLA (2) 机器人环境和数据_openvla数据集
文章目录
-
- @[TOC](文章目录)
- 前言
- 1 BridgeData V2
-
- 1.1 概述
- 1.2 硬件环境
- 2 数据集
-
- 2.1 场景与结构
- 2.2 数据结构
-
- 2.2.1 images0
- 2.2.2 obs_dict.pkl
- 2.2.3 policy_out.pkl
- 3 close question
-
- 3.1 英伟达环境
- 3.2 LIBERO 环境更适合仿真
- 4 实验
- @[TOC](文章目录)
- 1.1 概述
- 1.2 硬件环境
- 2.1 场景与结构
- 2.2 数据结构
-
- 2.2.1 images0
- 2.2.2 obs_dict.pkl
- 2.2.3 policy_out.pkl
- 3.1 英伟达环境
- 3.2 LIBERO 环境更适合仿真
前言
按照笔者之前的行业经验, 数据集的整理是非常重要的, 因此笔者这里增加原文中出现的几个数据集和环境的学习
1 BridgeData V2
1.1 概述
skill 例如:抓取(pick), 放置(place), 推动(pushing), 清扫(sweeping), 堆叠(stacking), 折叠(folding)
trajectories 就是action集合:
其中数据集合结构图如下:
图像分辨率:640×480
1.2 硬件环境
BridgeData的整体环境如图:
其中所有的硬件(包括支架, 导轨,工件 等等)描述链接如下:
https://docs.google.com/document/d/1si-6cTElTWTgflwcZRPfgHU7-UwfCUkEztkH3ge5CGc/edit?pli=1&tab=t.0
该平台主要的内容:
一个固定视角(over-the-shoulder) 的RGBD(Intel D435),
一个固连在机器人腕部的RGB(custom Raspberry Pi),
两个可变视角RGB(Logitech C920),在数据采集过程中会被更改。
我们关心的机械臂和摄像头参数如下:
但是要注意的是openVLA没有用腕部摄像头(原因是方便 PK 其他工作), 因此只用了第三人视角的摄像头
2 数据集
2.1 场景与结构
可以看到数据集合总共有两种
数据结构如下图, 其中每个traj_group 都是相同场景,固定部分摆件,然后制造数据
再升一级目录,我们可以看到 相同的场景,不同的拍摄时间对应不同的 摆件,而不是控制部分不同的摆件
我们, 再进入raw 数据,可以看到bridge_data的场景结构
其中这里作者还为数据的正确性做了验证放了一张diagnostics.png 图片以显示当前 通过脚本给定数据的正确性.
2.2 数据结构
每一组数据里都包含三个文件:
2.2.1 images0
images0 是用于ViT的一组图片, obj_dict 是场景信息
可以看出就是完成一个 trajetory的过程.
2.2.2 obs_dict.pkl
其中
eef_transform代表的是 gripper 的六自由度位姿变换矩阵(通常是 4x4),可以从中提取出:
(1) 平移向量(x, y, z) 即我们要的 xpos
(2) 旋转矩阵 , 可进一步转为欧拉角(roll, pitch, yaw)
2.2.3 policy_out.pkl
我这条case 共计49组,这张图是记录了 xyz的运动轨迹
这张图分析了 爪子夹取东西的时间分布图.
3 close question
3.1 英伟达环境
Can anyone provide a tutorial on how to use OpenVLA to control a robotic arm?
3.2 LIBERO 环境更适合仿真
In SimplerENV, select google robot or WidowX, unnorm_key=bridge_orig, the effect is not good, can not complete the task.
Status: Closed (completed).
#84 In openvla/openvla;· by zhou-pig was closed on Sep 5, 2024
运行方法见我的仓库:https://github.com/MexWayne/mexwayne_openvla
4 实验
本章节,主要点:
- 和已有工作进行比较
- 是否可以在一个 新的 机器人上, 有效的 fine tune
- parameter-efficient fine-tuning(PEFT)和 量化