1. 项目背景与需求分析
在机器人学习和计算机视觉领域,Jetson Orin Nano作为边缘计算设备已经广泛应用于各类实时数据处理场景。当我们使用lerobot框架进行模型训练时,经常会遇到一个典型问题:由于硬件限制或数据采集需求,我们需要分批录制多个数据集,最终将这些分散的数据集合并成一个完整的训练集。
实际操作中,很多开发者会直接拷贝合并data/、meta/、videos/等文件夹,但这种简单粗暴的方式会导致meta目录下的关键配置文件(info.json、stats.json、tasks.parquet)无法正确合并。这就像把几本不同章节的书页随机装订在一起——虽然页码连续了,但目录和索引完全错乱,导致训练脚本无法正确识别数据。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 数据集结构深度解析
2.1 标准lerobot数据集目录结构
一个完整的lerobot数据集通常包含以下核心目录:
code复制dataset_root/
├── data/ # 存储原始传感器数据(图像、点云等)
├── meta/ # 存放数据集元信息
│ ├── info.json # 数据集描述信息
│ ├── stats.json # 统计数据(帧数、时长等)
│ ├── tasks.parquet # 任务定义表格
│ └── episodes/ # 每个episode的独立数据文件
└── videos/ # 可视化视频记录
2.2 关键元文件作用解析
- info.json:相当于数据集的"身份证",记录数据采集环境、传感器参数等元信息。其结构通常为:
json复制{
"episode_lengths": [100, 120, ...],
"camera_params": {...},
"creation_date": "2024-03-15"
}
- stats.json:包含数据集的统计摘要,主要用于快速评估数据集规模:
json复制{
"total_episodes": 50,
"total_frames": 5000,
"duration_hours": 2.3
}
- tasks.parquet:使用Apache Parquet格式存储的任务定义表,包含每个帧的任务标注(如机械臂末端目标位姿)。Parquet格式因其列式存储特性,特别适合机器学习中的表格数据。
3. 多数据集合并方案实现
3.1 合并策略设计原则
正确的合并操作需要遵循以下原则:
- 数据完整性:所有原始数据必须无损合并
- 元信息一致性:合并后的元文件要准确反映整体数据集特征
- 路径兼容性:确保合并后文件路径与原始采集时一致
3.2 分步骤合并实现
3.2.1 准备工作
首先创建合并目录结构:
bash复制mkdir -p merged/{data,meta/episodes,videos}
3.2.2 合并data和videos目录
这两个目录可以直接拷贝合并:
bash复制# Linux/Mac
find . -name
