LeRobot数据集
LeRobot 是 Hugging Face 开源的机器人学习数据标准化框架,专为机器人学习和强化学习场景设计。它提供了统一的数据格式规范,使研究人员能够更便捷地共享、比较和复现机器人学习实验,显著降低了不同研究项目之间的数据格式转换成本。
导出数据
艾欧数据平台完全支持 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支持
如果您构建了自定义话题,而该话题的命名不符合上述默认规则,您可以通过以下方式处理:
-
重命名话题:在数据录制阶段,将自定义话题重命名为符合默认规则的名称(如
/joint_states或/joint_command) -
联系技术支持:如果无法修改话题名称,可以联系艾欧平台技术支持团队,我们将根据您的具体命名风格进行适配,确保数据能够正确映射到 LeRobot 格式
当前版本暂不支持在导出界面直接指定自定义话题映射。如果您有特殊需求,建议提前与技术支持团队沟通,我们会在导出前完成相应的配置适配。
数据可视化与验证
为了帮助用户快速理解和验证数据内容,LeRobot 提供了两种主要的数据可视化方案。每种方案都有其适用场景和独特优势:
| 使用场景 | 可视化方案 | 主要优势 |
|---|---|---|
| 本地开发调试 | Rerun SDK 本地查看 | 功能完整、高度交互、离线可用 |
| 快速预览分享 | Hugging Face 在线查看 | 免安装、易分享、随时访问 |
1. 使用 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
2. 使用 Hugging Face Spaces 在线可视化
如果不希望安装本地环境,LeRobot 提供了基于 Hugging Face Spaces 的在线可视化工具,无需任何本地依赖即可使用。这种方式特别适合快速预览数据或与团队分享数据集内容。
在线可视化功能要求将数据上传至 Hugging Face 在线仓库。需要注意的是,Hugging Face 免费账户只支持公开仓库的可视化,这意味着您的数据将被公开访问。如果数据涉及敏感信息需要保持私密性,建议使用本地可视化方案。
操作流程
- 访问在线可视化工具:https://huggingface.co/spaces/lerobot/visualize_dataset
- 在 Dataset Repo ID 字段中输入您的数据集标识符(如
io-intelligence/piper_uncap_pen) - 在左侧面板选择要查看的任务编号(如
Episode 0) - 页面顶部提供了多种播放选项,您可以选择最适合的查看方式
模型训练指南
基于 LeRobot 数据集的模型训练是实现机器人学习的核心环节。不同的模型架构对训练参数和数据预处理的要求各有差异,选择合适的模型策略对训练效果至关重要。
模型选择策略
当前主流的 VLA 模型包括:
| 模型类型 | 适用场景 | 主要特点 | 推荐用途 |
|---|---|---|---|
| smolVLA | 单卡环境、快速原型 | 参数量适中、训练高效 | 消费级 GPU、概念验证 |
| Pi0 / Pi0.5 | 复杂任务、多模态融合 | 强大的语言理解能力 | 生产环境、复杂交互 |
| ACT | 单任务优化 | 动作预测精度高 | 特定任务、高频控制 |
| Diffusion | 平滑动作生成 | 基于扩散模型、轨迹质量高 | 需要流畅轨迹的任务 |
| VQ-BeT | 动作离散化 | 向量量化、快速推理 | 实时控制场景 |
| TDMPC | 模型预测控制 | 样本效率高、在线学习 | 数据稀缺场景 |
Pi0 模型属于 Physical Intelligence 的 OpenPI 框架,而非 LeRobot 项目。如果您需要使用 Pi0 模型,请参考:OpenPI 官方文档
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]"
微调训练(推荐方案)
lerobot-train \
--policy.type smolvla \
--policy.pretrained_path lerobot/smolvla_base \
--dataset.repo_id your-name/your-repo \
--dataset.root /data/lerobot_dataset \
--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=64、num_train_steps=20k开始,学习率建议从1e-4开始微调 - 何时从零训练:只有在拥有大规模数据集(数千小时)时才考虑使用
--policy.type=smolvla从头训练
从零开始训练(高级用户)
lerobot-train \
--policy.type smolvla \
--dataset.repo_id your-name/your-repo \
--dataset.root /data/lerobot_dataset \
--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-Conditioned Transformer)专为单任务或短时序策略学习设计。虽然在多任务泛化方面不及 smolVLA,但在任务明确、控制频率高、时序相对短的场景中,ACT 仍然是高性价比的选择。
ACT 模型要求 policy.n_action_steps ≤ policy.chunk_size。推荐将两个参数设为相同值(如 100),以避免配置错误。
数据预处理要求
轨迹处理:
- 确保统一的片段长度和时间对齐(推荐 10-20 步的 action chunk)
- 对动作数据进行归一化处理,统一尺度和单位
- 保持观测数据的一致性,特别是相机内参和视角
训练配置:
lerobot-train \
--policy.type act \
--dataset.repo_id your-name/your-repo \
--dataset.root /data/lerobot_dataset \
--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 huggingface_hub
# 登录账户
huggingface-cli login
# 上传数据集
huggingface-cli upload-dataset your-username/dataset-name /path/to/dataset
模型训练相关
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: 您可以通过以下渠道获得支持:
- 查阅 LeRobot 官方文档:https://huggingface.co/docs/lerobot
- 在 GitHub 提交 Issue:https://github.com/huggingface/lerobot/issues
- 联系艾欧平台技术支持团队
- 参与 LeRobot 社区讨论
Q: 艾欧平台是否支持模型自动部署?
A: 是的,艾欧平台支持 Pi0(OpenPI 框架)、smolVLA、ACT 等主流模型的自动部署服务。详细信息请联系技术支持团队获取部署方案和定价信息。