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

智元精灵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.xdnf.cn/news/18680.html

相关文章:

  • [创业之路-567]:数字技术、数字产品、数字资产、数字货币、数字企业、数字经济、数字世界、数字人生、数字智能、数字生命
  • 大模型知识--Function Calls
  • element-plus穿梭框transfer的调整
  • 【实习总结】快速上手Git:关键命令整理
  • AI版权保护破局内容行业痛点:侵权识别效率升89%+维权周期缩至45天,区块链存证成关键
  • vue中 computed vs methods
  • unity热更新总结
  • Linux的线程概念与控制
  • CTFshow系列——命令执行web49-52
  • 基于深度学习的眼疾识别系统:从血细胞分类到病理性近视检测
  • 计算机网络:聊天室(UDP)
  • 用户和组笔记
  • 大数据毕业设计选题推荐-基于大数据的北京市医保药品数据分析系统-Spark-Hadoop-Bigdata
  • 基于角色的访问控制(RBAC)研究与Go语言实现
  • 商超客流密度统计误差率↓35%!陌讯多模态融合算法在零售智慧运营的实战解析
  • 美股期权历史市场数据波动特性分析
  • power query自定义查询函数(中午休息一小时
  • 基于Spark的热门旅游景点数据分析系统的设计-django+spider
  • 基于springboot的理商管理平台设计与实现、java/vue/mvc
  • pom.xml 标签整理各个标签的用途和含义
  • 复杂场景鲁棒性突破!陌讯自适应融合算法在厂区越界检测的实战优化​
  • 57 C++ 现代C++编程艺术6-类的内部类
  • DBeaver连接SQL Server集成认证问题解决方案
  • 题解:P13822 「Diligent-OI R2 B」白露为霜_奇偶性_数学归纳_算法竞赛C++
  • 将C++资源管理测试框架整合到GitLab CI/CD的完整实践指南
  • ffmpeg 问答系列-> mux 部分
  • C6.1:发射极偏置放大器
  • 阿里 通义千问 Java23种设计模式
  • IDM 下载失败排查指南:全面解析与解决方案
  • 深入解析 std::enable_if:原理、用法与现代 C++ 实践