跳到主要内容

LeRobot数据集

LeRobot 是 Hugging Face 开源的机器人学习数据标准化框架,专为机器人学习和强化学习场景设计。它提供了统一的数据格式规范,使研究人员能够更便捷地共享、比较和复现机器人学习实验,显著降低了不同研究项目之间的数据格式转换成本。

导出数据

下图概括从已标注数据到模型训练的链路:选择导出格式并配置参数,导出后下载解压,即可用于 LeRobot 框架或 OpenPI 等训练 Pi0、SmolVLA、ACT 等模型。

艾欧数据平台完全支持 LeRobot 标准格式的数据导出,可直接用于 VLA(Vision-Language-Action)模型的训练流程。导出的数据包含机器人操作的完整多模态信息:视觉感知数据、自然语言指令以及对应的动作序列,形成完整的感知-理解-执行闭环数据映射。

资源使用说明

LeRobot 格式数据导出需要较高的计算资源支持。艾欧数据开放平台的免费版本对每位用户的导出数量进行了合理限制,而付费版本则提供无限制导出服务,并配备 GPU 加速功能,可显著提升导出处理速度。

1. 选择导出数据

数据导出前需要完成标注工作。标注过程将机器人的动作序列与对应的自然语言指令建立精确映射关系,这是训练 VLA 模型的必要前提。通过这种映射,模型能够学习理解语言命令并将其转化为准确的机器人控制动作。

关于数据标注的详细流程和批量标注技巧,请参阅:数据标注指南

标注完成后,您可以在导出界面查看所有已标注的数据集。系统支持灵活的数据子集选择,您可以根据具体需求选择特定的数据进行导出。

选择导出数据

数据集命名支持自定义设置。如果您计划将数据集发布到 Hugging Face 平台,建议采用标准的仓库命名格式(如 myproject/myrepo1),这将为后续的模型分享和协作提供便利。

导出配置选项

在导出界面右侧的配置面板中,您可以设置以下导出参数:

选择导出数据

数据采样频率:控制数据采样的频率(推荐 10-30 Hz)。频率越低,生成的数据集体积越小,但可能丢失部分细节信息。

图像格式

  • MP4(推荐):压缩图像格式,可节约约 80% 的存储空间,适合大规模数据集导出
  • JPG:原始图像格式,保留完整图像质量,但文件体积较大

严格匹配模型输入输出:启用后系统会自动裁切观测值和指令值,确保一对一对应关系,有助于减少噪声干扰,提升训练数据质量。

自动模糊人脸:启用后系统会自动识别画面中的人脸位置并进行模糊化处理。该功能有助于:

  • 保护个人隐私,符合数据合规要求
  • 适用于包含操作人员画面的数据集
  • 自动处理所有导出图像中的人脸信息
导出效率优化

数据量越大,导出耗时越长。建议根据任务类型进行分类导出,避免一次性处理全部数据。分批导出不仅能提升处理速度,还便于后续的数据管理、版本控制和针对性的模型训练。

2. 下载与解压导出文件

导出过程的耗时取决于数据规模和当前系统负载,通常需要数十分钟。页面会自动更新进度状态,您可以稍后返回查看处理结果。

导出完成后,在页面右侧的 导出记录 区域可以看到 下载数据 按钮。点击后将获得一个 .tar.gz 格式的压缩文件包。

导出结果

建议在本地创建一个专用目录(如 ~/Downloads/mylerobot3)来解压文件,避免与其他数据混淆:

新建目录

解压后的文件严格遵循 LeRobot 数据集的标准格式规范,包含完整的多模态数据:视觉感知数据、机器人状态信息和动作标签等:

解压数据

3. 自定义Topic映射

在导出 LeRobot 数据集时,系统需要将 ROS/ROS2 话题(Topic)映射到 LeRobot 标准格式中的观测值(Observation.state)和动作(action)字段。了解话题映射规则对于正确导出自定义数据集至关重要。

默认Topic映射规则

艾欧数据平台采用基于话题名称后缀的自动识别机制:

观测值(Observation.state)映射规则:

  • 当话题名称以 /joint_state/joint_states 结尾时,系统会自动将其 position 字段值识别为观测值,并映射到 observation.state 字段
  • 例如:io_teleop/joint_states/arm/joint_state 等话题会被识别为观测值

动作(action)映射规则:

  • 当话题名称以 /joint_cmd/joint_command 结尾时,系统会自动将其 position 字段值识别为动作指令,并映射到 action 字段
  • 例如:io_teleop/joint_cmd/arm/joint_command 等话题会被识别为动作值
话题命名建议

为了确保数据能够正确导出,建议在录制数据时遵循上述命名规范。如果您的机器人系统使用了不同的命名风格,可以联系技术支持团队进行适配。

自定义Topic支持

如果您构建了自定义话题,而该话题的命名不符合上述默认规则,您可以通过以下方式处理:

  1. 重命名话题:在数据录制阶段,将自定义话题重命名为符合默认规则的名称(如 /joint_states/joint_command

  2. 联系技术支持:如果无法修改话题名称,可以联系艾欧平台技术支持团队,我们将根据您的具体命名风格进行适配,确保数据能够正确映射到 LeRobot 格式

技术说明

当前版本暂不支持在导出界面直接指定自定义话题映射。如果您有特殊需求,建议提前与技术支持团队沟通,我们会在导出前完成相应的配置适配。

数据可视化与验证

为了帮助用户快速理解和验证数据内容,LeRobot 提供了多种数据可视化方案。每种方案都有其适用场景和独特优势,其中艾欧数据平台推荐优先使用 LeRobot Studio

使用场景可视化方案主要优势
快速隐私预览 (推荐)LeRobot Studio (Web)免安装、免上传、保护隐私、即拖即用
本地开发调试Rerun SDK 本地查看功能完整、高度交互、离线可用
公开分享展示Hugging Face 在线查看社区协作、易分享、随时访问

1. 使用 LeRobot Studio 在线可视化 (推荐)

艾欧数据平台提供了原生集成的 LeRobot 可视化工具 —— LeRobot Studio。这是目前最便捷的数据预览方案,您无需安装任何本地环境,也无需将数据上传到 Hugging Face,直接在浏览器中即可完成本地数据的快速可视化与校验。

在线体验地址https://io-ai.tech/lerobot/

核心优势

  • 零门槛使用:无需配置 Python 环境,无需安装 Rerun SDK
  • 隐私安全:支持本地数据文件直接拖拽预览,数据全程不经过云端服务器,完全保障数据隐私
  • 功能完备:完整支持 LeRobot 标准格式的多模态数据回放(图像、状态、动作)
  • 无缝集成:艾欧数据平台已经集成了LeRobot数据导出和可视化分析能力,随时随地可用

使用方法

  1. 访问 LeRobot Studio
  2. 点击页面上的 "选择文件" 按钮或直接将导出的 .tar.gz 数据包(或解压后的文件夹)拖入窗口
  3. 系统自动解析数据结构,即刻开启交互式回放

2. 使用 Rerun SDK 进行本地可视化

通过本地安装 lerobot 仓库,您可以使用其内置的 lerobot/scripts/visualize_dataset.py 脚本,配合 Rerun SDK 实现时间轴式的交互式多模态数据可视化。这种方式能够同时展示图像、状态、动作等多维度信息,提供最丰富的交互功能和自定义选项。

环境准备与依赖安装

确保您的 Python 版本为 3.10 或更高,然后执行以下安装命令:

# 安装 Rerun SDK
python3 -m pip install rerun-sdk==0.23.1

# 克隆 LeRobot 官方仓库
git clone https://github.com/huggingface/lerobot.git
cd lerobot

# 安装 LeRobot 开发环境
pip install -e .

启动数据可视化

python3 -m lerobot.scripts.visualize_dataset \
--repo-id io-ai-data/lerobot_dataset \
--root ~/Downloads/mylerobot3 \
--episode-index 0

参数说明:

  • --repo-id:Hugging Face 数据集的标识符(如 io-ai-data/lerobot_dataset
  • --root:本地 LeRobot 数据集的存储路径,指向解压后的目录
  • --episode-index:指定要可视化的 episode 索引号(从 0 开始计数)

离线可视化文件生成

您可以将可视化结果保存为 Rerun 格式文件(.rrd),便于离线查看或与团队成员分享:

python3 -m lerobot.scripts.visualize_dataset \
--repo-id io-ai-data/lerobot_dataset \
--root ~/Downloads/mylerobot3 \
--episode-index 0 \
--save 1 \
--output-dir ./rrd_out

# 离线查看保存的可视化文件
rerun ./rrd_out/lerobot_pusht_episode_0.rrd

远程可视化(WebSocket 模式)

当需要在远程服务器上处理数据但在本地查看时,可以使用 WebSocket 连接模式:

# 在服务器端启动可视化服务
python3 -m lerobot.scripts.visualize_dataset \
--repo-id io-ai-data/lerobot_dataset \
--root ~/Downloads/mylerobot3 \
--episode-index 0 \
--mode distant \
--ws-port 9091

# 在本地连接远程可视化服务
rerun ws://服务器IP地址:9091

3. 使用 Hugging Face Spaces 在线可视化

如果不希望安装本地环境,LeRobot 提供了基于 Hugging Face Spaces 的在线可视化工具,无需任何本地依赖即可使用。这种方式特别适合快速预览数据或与团队分享数据集内容。

数据隐私注意事项

在线可视化功能要求将数据上传至 Hugging Face 在线仓库。需要注意的是,Hugging Face 免费账户只支持公开仓库的可视化,这意味着您的数据将被公开访问。如果数据涉及敏感信息需要保持私密性,建议使用本地可视化方案。

操作流程

  1. 访问在线可视化工具:https://huggingface.co/spaces/lerobot/visualize_dataset
  2. 在 Dataset Repo ID 字段中输入您的数据集标识符(如 io-intelligence/piper_uncap_pen
  3. 在左侧面板选择要查看的任务编号(如 Episode 0
  4. 页面顶部提供了多种播放选项,您可以选择最适合的查看方式

模型训练指南

基于 LeRobot 数据集的模型训练是实现机器人学习的核心环节。不同的模型架构对训练参数和数据预处理的要求各有差异,选择合适的模型策略对训练效果至关重要。

模型选择策略

当前主流的 VLA 模型包括:

模型类型适用场景主要特点推荐用途
smolVLA单卡环境、快速原型参数量适中、训练高效消费级 GPU、概念验证
Pi0 / Pi0.5复杂任务、多模态融合领先的 VLA 模型,强大的泛化能力生产环境、复杂机器人交互
ACT单任务优化动作预测精度高特定任务、高频控制
Diffusion平滑动作生成基于扩散模型、轨迹质量高需要流畅轨迹的任务
VQ-BeT动作离散化向量量化、快速推理实时控制场景
TDMPC模型预测控制样本效率高、在线学习数据稀缺场景
重要说明

Pi0/Pi0.5 模型的微调训练需使用 OpenPI 框架。虽然数据采用 LeRobot v2.1 格式导出,但训练流程与 LeRobot CLI 不同。

详细微调指南请参考:Pi0 与 Pi0.5 模型微调指南

smolVLA 训练详解(推荐入门)

smolVLA 是专为消费级/单卡环境优化的 VLA 模型。相比从零开始训练,强烈推荐基于官方预训练权重进行微调,这样可以显著缩短训练时间并提升最终效果。

参数格式说明

LeRobot 训练命令使用以下参数格式:

  • 策略类型--policy.type smolvla (指定使用哪种模型)
  • 参数值:使用空格分隔,如 --batch_size 64(不是 --batch_size=64
  • 布尔值:使用 true/false,如 --save_checkpoint true
  • 列表值:使用空格分隔,如 --policy.down_dims 512 1024 2048
  • 模型上传:默认情况下需添加 --policy.push_to_hub false 禁用自动上传到HuggingFace Hub

环境准备

# 克隆 LeRobot 仓库
git clone https://github.com/huggingface/lerobot.git
cd lerobot

# 安装支持 smolVLA 的完整环境
pip install -e ".[smolvla]"

微调训练(推荐方案)

数据集读取规则(默认本地)
  • 默认推荐使用本地数据集:训练数据通常较大,建议直接用本地解压目录。
    • --dataset.repo_id local/xxx
    • --dataset.root /path/to/dataset(目录下应包含 meta.jsondata/ 等)
  • 如果你已经把数据上传到 Hugging Face Hub:可以只保留 --dataset.repo_id your-name/your-repo,并删除 --dataset.root

本地数据集微调示例(默认推荐)

# 例:你的数据放在本地目录(包含 meta.json, data/ 等)
DATASET_ROOT=~/Downloads/mylerobot3

lerobot-train \
--policy.type smolvla \
--policy.pretrained_path lerobot/smolvla_base \
--dataset.repo_id local/mylerobot3 \
--dataset.root ${DATASET_ROOT} \
--output_dir /data/lerobot_smolvla_finetune \
--batch_size 64 \
--steps 20000 \
--policy.optimizer_lr 1e-4 \
--policy.device cuda \
--policy.push_to_hub false \
--save_checkpoint true \
--save_freq 5000

实践建议:

  • 数据准备:建议录制 50+ 个任务演示片段,确保覆盖不同的物体位置、姿态和环境变化
  • 训练资源:单张 A100 训练 20k 步约需 4 小时;消费级显卡可降低 batch_size 或启用梯度累积
  • 超参调优:从 batch_size=64num_train_steps=20k 开始,学习率建议从 1e-4 开始微调
  • 何时从零训练:只有在拥有大规模数据集(数千小时)时才考虑使用 --policy.type=smolvla 从头训练

从零开始训练(高级用户)

# 从零训练(本地数据集示例)
DATASET_ROOT=~/Downloads/mylerobot3

lerobot-train \
--policy.type smolvla \
--dataset.repo_id local/mylerobot3 \
--dataset.root ${DATASET_ROOT} \
--output_dir /data/lerobot_smolvla_fromscratch \
--batch_size 64 \
--steps 200000 \
--policy.optimizer_lr 1e-4 \
--policy.device cuda \
--policy.push_to_hub false \
--save_checkpoint true \
--save_freq 10000

性能优化技巧

显存优化:

# 添加以下参数来优化显存使用
--policy.use_amp true \
--num_workers 2 \
--batch_size 32 # 减小批次大小

训练监控:

  • 配置 Weights & Biases (W&B) 来监控训练曲线和评估指标
  • 设置合理的验证间隔和早停策略
  • 定期保存检查点以防训练中断

ACT 模型训练指南

ACT(Action Chunking Transformer)专为单任务或短时序策略学习设计。虽然在多任务泛化方面不及 smolVLA,但在任务明确、控制频率高、时序相对短的场景中,ACT 仍然是高性价比的选择。

重要提示

ACT 模型要求 policy.n_action_stepspolicy.chunk_size。推荐将两个参数设为相同值(如 100),以避免配置错误。

数据预处理要求

轨迹处理:

  • 确保统一的片段长度和时间对齐(推荐 10-20 步的 action chunk)
  • 对动作数据进行归一化处理,统一尺度和单位
  • 保持观测数据的一致性,特别是相机内参和视角

训练配置:

本地数据集训练示例(默认推荐)

DATASET_ROOT=~/Downloads/mylerobot3

lerobot-train \
--policy.type act \
--dataset.repo_id local/mylerobot3 \
--dataset.root ${DATASET_ROOT} \
--output_dir /data/lerobot_act_finetune \
--batch_size 8 \
--steps 100000 \
--policy.chunk_size 100 \
--policy.n_action_steps 100 \
--policy.n_obs_steps 1 \
--policy.optimizer_lr 1e-5 \
--policy.device cuda \
--policy.push_to_hub false \
--save_checkpoint true \
--save_freq 10000

超参数调优建议:

  • 批次大小:从 8 开始,根据显存调整(ACT 推荐较小批次)
  • 学习率:建议 1e-5,ACT 对学习率较敏感
  • 训练步数:100k-200k 步,根据任务复杂度调整
  • 动作块大小:chunk_size 和 n_action_steps 建议设为 100
  • 正则化:出现过拟合时增加数据多样性或早停

性能调优策略

处理过拟合:

  • 增加数据收集的多样性
  • 应用适当的正则化技术
  • 实施早停策略

处理欠拟合:

  • 延长训练步数
  • 调整学习率调度
  • 检查数据质量和一致性

常见问题解答 (FAQ)

数据导出相关

Q: LeRobot 数据导出需要多长时间?

A: 导出时间主要取决于数据规模和当前系统负载。通常每 GB 数据需要 3-5 分钟处理时间。为提高效率,建议按任务类型分批导出,避免一次性处理过大的数据集。

Q: 免费版有哪些导出限制?

A: 免费版对每位用户的导出数量和频率有合理限制,具体额度会在导出界面显示。如需大规模数据导出,建议升级到付费版以享受无限制导出和 GPU 加速服务。

Q: 如何验证导出数据的完整性?

A: 使用 LeRobot 内置的验证工具进行检查:

python -m lerobot.scripts.validate_dataset --root /path/to/dataset

Q: 导出的数据集过大如何处理?

A: 可以通过以下方式优化:

  • 降低导出频率设置(默认 30fps 可降至 10-15fps)
  • 按时间段或任务类型分割导出
  • 压缩图像质量(在保证训练效果的前提下)

数据可视化相关

Q: Rerun SDK 安装失败怎么办?

A: 请检查以下条件:

  • 确保 Python 版本 ≥ 3.10
  • 检查网络连接是否稳定
  • 尝试在虚拟环境中安装:python -m venv rerun_env && source rerun_env/bin/activate
  • 使用清华镜像源:pip install -i https://pypi.tuna.tsinghua.edu.cn/simple rerun-sdk==0.23.1

Q: 在线可视化要求数据必须公开吗?

A: 是的。Hugging Face Spaces 的在线可视化工具只能访问公开的数据集。如果您的数据涉及敏感信息或需要保持私密性,请使用本地的 Rerun SDK 方案。

Q: 如何将数据上传到 Hugging Face?

A: 使用官方 CLI 工具:

# 安装 Hugging Face CLI
pip install -U huggingface_hub

# 登录账户
huggingface-cli login

# (可选)创建一个 dataset 仓库
huggingface-cli repo create your-username/dataset-name --type dataset

# 上传数据集(repo_type 指定为 dataset)
huggingface-cli upload your-username/dataset-name /path/to/dataset --repo-type dataset --path-in-repo .

模型训练相关

Q: 支持的模型类型有哪些?

A: LeRobot 格式支持多种主流 VLA 模型:

  • smolVLA:适合单卡环境和快速原型开发
  • Pi0:强大的多模态能力,适合复杂任务(属于 OpenPI 框架)
  • ACT:专注单任务优化,动作预测精度高

具体支持的模型请参考:https://github.com/huggingface/lerobot/tree/main/src/lerobot/policies

Q: 训练时遇到内存不足怎么办?

A: 尝试以下优化策略:

  • 减少批次大小:--batch_size 1 或更小
  • 启用混合精度训练:--policy.use_amp true
  • 减少数据加载线程:--num_workers 1
  • 减少观测步数:--policy.n_obs_steps 1
  • 清理 GPU 缓存:在训练脚本中添加 torch.cuda.empty_cache()

Q: 如何选择合适的模型?

A: 根据您的具体需求选择:

  • 快速原型开发:选择 smolVLA
  • 复杂多模态任务:选择 Pi0(需要使用 OpenPI 框架)
  • 资源受限环境:选择 smolVLA 或 ACT
  • 单一专门任务:选择 ACT

Q: 训练效果如何评估?

A: LeRobot 提供多种评估方法:

  • 定量指标:动作误差(MAE/MSE)、轨迹相似度(DTW)
  • 定性评估:实机测试成功率、行为分析
  • 平台评估:艾欧平台提供可视化的模型质量评估工具

Q: 训练时间大概需要多久?

A: 训练时间取决于多个因素:

  • 数据规模:50 个演示片段通常需要 2-8 小时
  • 硬件配置:A100 比消费级显卡快 3-5 倍
  • 模型选择:smolVLA 比 ACT 训练速度更快
  • 训练策略:微调比从零训练快 5-10 倍

技术支持

Q: 遇到技术问题如何获得帮助?

A: 您可以通过以下渠道获得支持:

  1. 查阅 LeRobot 官方文档:https://huggingface.co/docs/lerobot
  2. 在 GitHub 提交 Issue:https://github.com/huggingface/lerobot/issues
  3. 联系艾欧平台技术支持团队
  4. 参与 LeRobot 社区讨论

Q: 艾欧平台是否支持模型自动部署?

A: 是的,艾欧平台支持 Pi0(OpenPI 框架)、smolVLA、ACT 等主流模型的自动部署服务。详细信息请联系技术支持团队获取部署方案和定价信息。


相关资源

官方资源

工具和框架

学术资源

OpenPI 相关资源

社区资源


本文档将持续更新,以反映 LeRobot 生态系统的最新发展和最佳实践。如有疑问或建议,欢迎通过艾欧平台技术支持渠道与我们联系。