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

OpenVLA (2) 机器人环境和环境数据

文章目录

    • @[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 环境更适合仿真
    • 3.3 4090 运行问题

前言

按照笔者之前的行业经验, 数据集的整理是非常重要的, 因此笔者这里增加原文中出现的几个数据集和环境的学习


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 场景与结构

可以看到数据集合总共有两种
在这里插入图片描述

类型说明
Human demonstrations人类通过遥操作(如鼠标/VR 手柄)控制机器人执行任务,系统记录图像、指令和动作
Scripted policies开发者用 Python/控制代码编写一套“规则程序”,在给定场景中自动执行任务,比如:“如果检测到杯子在桌面中心,则移动 gripper 到目标点并下降”

数据结构如下图, 其中每个traj_group 都是相同场景,固定部分摆件,然后制造数据
在这里插入图片描述
再升一级目录,我们可以看到 相同的场景,不同的拍摄时间对应不同的 摆件,而不是控制部分不同的摆件
在这里插入图片描述

我们, 再进入raw 数据,可以看到bridge_data的场景结构
在这里插入图片描述
其中这里作者还为数据的正确性做了验证放了一张diagnostics.png 图片以显示当前 通过脚本给定数据的正确性.
在这里插入图片描述

名称意义数据来源
xpos实际执行到的位置通过机器人反馈采集,每一帧记录
despos计划中的目标位置来自控制策略(如 scripted policy)或人类操作输入

2.2 数据结构

每一组数据里都包含三个文件:

在这里插入图片描述

2.2.1 images0

images0 是用于ViT的一组图片, obj_dict 是场景信息
在这里插入图片描述
可以看出就是完成一个 trajetory的过程.

2.2.2 obs_dict.pkl

在这里插入图片描述

键名含义
joint_effort每个关节的施加力矩(关节力)
qpos关节位置(Joint Position)
qvel关节速度(Joint Velocity)
full_state完整状态向量(包含位姿、关节等)
state简化状态(可能是观测空间状态)
desired_state控制器期望状态(即 despos 源)
time_stamp每帧时间戳
eef_transform End-Effector的变换矩阵(即 gripper 位姿)
high_bound / low_bound状态空间上下界
env_done当前帧是否终止(布尔)
t_get_obs获取观测时耗(调试用)

其中
eef_transform代表的是 gripper 的六自由度位姿变换矩阵(通常是 4x4),可以从中提取出:
(1) 平移向量(x, y, z) 即我们要的 xpos
(2) 旋转矩阵 , 可进一步转为欧拉角(roll, pitch, yaw)

2.2.3 policy_out.pkl

索引含义示例值说明
[0:3]Δx, Δy, Δz-0.012, 0.037, 0.004空间位置变化向量(平移动作)
[3:6]Δroll, Δpitch, Δyaw0.0043, -0.0037, -0.8251欧拉角空间的姿态微调(旋转动作)
[6]gripper_open1 or 0夹爪开闭指令(1 表示张开,0 表示闭合)

在这里插入图片描述
我这条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
在这里插入图片描述

3.3 4090 运行问题

Unable to Reproduce 6 Actions/s Inference on RTX4090 #66

http://www.lryc.cn/news/2378938.html

相关文章:

  • 代码复现5——VLMaps
  • Ocean: Object-aware Anchor-free Tracking
  • 计算机网络(1)——概述
  • 刘家祎双剧收官见证蜕变,诠释多面人生
  • Axure制作可视化大屏动态滚动列表教程
  • MATLAB实现振幅调制(AM调制信号)
  • LLM-Based Agent综述及其框架学习(五)
  • 6.1.1图的基本概念
  • Linux面试题集合(6)
  • 时间筛掉了不够坚定的东西
  • Python集合运算:从基础到进阶全解析
  • jvm安全点(二)openjdk17 c++源码垃圾回收安全点信号函数处理线程阻塞
  • YOLOv7训练时4个类别只出2个类别
  • 【论文阅读】针对BEV感知的攻击
  • 18.中介者模式:思考与解读
  • flutter 配置 安卓、Ios启动图
  • 基于朴素贝叶斯与 LSTM 的假新闻检测模型对比分析
  • 【LeetCode 热题 100】搜索插入位置 / 搜索旋转排序数组 / 寻找旋转排序数组中的最小值
  • 副业小程序YUERGS,从开发到变现
  • 计算机视觉与深度学习 | Python实现EMD-VMD-LSTM时间序列预测(完整源码和数据)
  • 基于LLM合成高质量情感数据,提升情感分类能力!!
  • 网络检测工具InternetTest v8.9.1.2504 单文件版,支持一键查询IP/DNS、WIFI密码信息
  • SpringBoot中使用Flux实现流式返回的技术总结
  • 【网络编程】十、详解 UDP 协议
  • 从零开始理解Jetty:轻量级Java服务器的入门指南
  • python05——循环结构
  • windows触摸板快捷指南
  • STM32 ADC 模数转换器详解:原理、配置与应用
  • [目标检测] YOLO系列算法讲解
  • React 中,闭包陷阱