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

智元精灵GO1 agibot数据转换Lerobot通用格式数据脚本

概述

在机器人学习领域,数据格式的统一对于模型训练和算法开发至关重要。本文介绍一个专门用于将zhiyuanData格式转换为LeRobot格式的Python脚本,该脚本支持每秒10帧的数据处理,确保数据一致性。该脚本的详细代码已经开源到GitHub仓库:https://github.com/Pytorchlover/convert_agibot_to_lerobot.git

目录结构

转换前的zhiyuanData目录结构

zhiyuanData/
├── meta_info.json          # 元信息文件,包含任务描述等
├── record/
│   └── raw_joints.h5       # HDF5格式的关节状态数据
└── camera/├── head/color/         # 头部相机图像(*.jpg)├── hand_left/color/    # 左手相机图像(*.jpg)└── hand_right/color/   # 右手相机图像(*.jpg)

转换后的LeRobot目录结构

output/
├── data/
│   └── chunk-000/
│       └── episode_000000.parquet  # Parquet格式的主数据文件
├── images/
│   ├── image/              # 头部相机图像目录
│   ├── wrist_image_left/   # 左手腕部相机图像目录
│   └── wrist_image_right/  # 右手腕部相机图像目录
└── meta/├── episodes_stats.jsonl  # 片段统计信息├── episodes.jsonl        # 片段元数据├── info.json            # 数据集信息└── tasks.jsonl          # 任务描述信息

核心功能

1. 数据加载与解析

脚本能够读取zhiyuanData格式的多种数据源:

  • HDF5格式的关节状态数据(raw_joints.h5)
  • JSON格式的元信息(meta_info.json)
  • 多视角相机图像数据(头部、左手、右手相机)

2. 智能降采样与同步

通过计算原始数据的持续时间和频率,自动确定最佳降采样比例,将数据统一到目标帧率(默认10fps)。使用状态数据计算动作数据,确保状态-动作对的一致性。

3. 时间戳对齐

基于纳秒级时间戳精确同步多模态数据,为每个数据帧找到最接近的图像帧,保证视觉信息与机器人状态的时空一致性。

4. LeRobot数据集创建

自动创建符合LeRobot标准的数据集结构,包含:

  • 多视角图像数据(256x256 RGB)
  • 机器人状态(14维关节位置)
  • 动作数据(14维关节目标)
  • 任务描述文本

技术特点

数据一致性保证

# 使用未来的state作为action: action = state[t+1]
computed_actions = downsampled_states[1:]

容错处理

  • 图像加载失败时返回黑色图像作为fallback
  • 自动处理缺失的相机数据
  • 提供详细的处理进度和统计信息

高性能处理

  • 多线程图像处理(10个线程,5个进程)
  • 批量数据处理优化
  • 内存高效的数据操作

使用方法

基本转换

python convert_zhiyuan_to_lerobot_10fps.py \--data_dir zhiyuanData \--output_name zhiyuan_robot_data_10fps

推送到Hugging Face Hub

python convert_zhiyuan_to_lerobot_10fps.py \--data_dir zhiyuanData \--output_name zhiyuan_robot_data_10fps \--push_to_hub
  • 参数说明
    • --input_dir:输入数据目录,必须包含多个episode子目录。
    • --output_dir:输出目录,脚本自动创建并保存HDF5文件。
    • --push_to_hub:可选,启用后推送到Hugging Face Hub(需配置API密钥)。
注意事项
  • 数据完整性:脚本检查raw_joints.h5meta_info.json文件,缺失时会跳过episode并输出警告。
  • 频率调整:目标为10fps,但实际频率可能因数据长度而略有偏差(如9.8Hz9.8\text{Hz}9.8Hz),通过降采样最小化误差。
  • 时间戳对齐:图像文件假设文件名是整数时间戳(纳秒),需确保数据采集时一致。
  • 资源消耗:处理大尺寸图像时可能占用较多内存,建议分批运行。

输出统计

转换完成后脚本会显示:

  • 总数据帧数
  • 状态和动作的维度信息
  • 实际采样频率
  • 数据数值范围统计

应用价值

该转换脚本为机器人学习研究提供了:

  1. 标准化数据格式:统一不同来源的机器人数据
  2. 高质量数据集:确保时序一致性的多模态数据
  3. 便捷的共享机制:支持一键推送到Hugging Face Hub
  4. 可扩展架构:易于适配新的机器人类型和数据格式

总结

这个数据转换工具解决了机器人学习中常见的数据格式不统一问题,通过智能的降采样和同步算法,为后续的模型训练提供了高质量、一致性的数据集基础。其模块化设计和详细的错误处理机制使其成为机器人数据预处理的重要工具。

http://www.dtcms.com/a/349204.html

相关文章:

  • 3.2 半导体随机存取存储器 (答案见原书 P168)
  • 你在四阶段数据成熟度旅程中处于哪个阶段?
  • 高数 不定积分(4-3):分部积分法
  • APP逆向——某站device-id参数(2)
  • 56 C++ 现代C++编程艺术5-万能引用
  • Linux内核ELF文件签名验证机制的设计与实现(C/C++代码实现)
  • DeepSeek对采用nginx实现透传以解决OpenShift 4.x 私有数据中心和公有云混合部署一套集群的解答
  • 机床智能健康管理系统:工业母机数字化转型的核心引擎​
  • 在mysql中,modify ,change ,rename to的作用是什么
  • AI使用日志(一)--Cursor和Claude code初体验
  • 用 Python 探索二分查找算法:从基本原理到实战最佳实践
  • 自回归(Auto-Regressive, AR),自回归图像生成过程
  • 【Canvas与旗帜】蓝圈汤加旗
  • 基于蓝牙的stm32智能火灾烟雾报警系统设计
  • 一个高度精简但结构完整的微服务示例
  • 敏感电阻简单介绍
  • Java 创建线程的几种方式
  • Python复数运算完全指南:从基础到工程级应用实践
  • Hyperledger Fabric官方中文教程-改进笔记(十六)-策略(policy)
  • 【Luogu】P4127 [AHOI2009] 同类分布 (数位DP)
  • 【知识杂记】卡尔曼滤波相关知识高频问答
  • Java 中 Set 接口(更新版)
  • 深度学习中的“集体智慧”:Dropout技术详解——不仅是防止过拟合,更是模型集成的革命
  • Java静态代理与动态代理实战解析
  • redis集群模式 -批量操作
  • 智慧工业设备巡检误报率↓81%!陌讯多模态融合算法实战优化与边缘部署
  • 【机器学习】6 Frequentist statistics
  • (计算机网络)JWT三部分及 Signature 作用
  • 车企数据资产管理——解读46页大型车企数据资产数据治理体系解决方案【附全文阅读】
  • 计算机系统 C语言运行时对应内存映射 以及 各个段的数据访问下标越界产生的后果