千寻机器人数采Lerobot数据格式理解

7k1k 队员 2026-01-05 20:32:05
  1. 数据文件格式如下

    Datasets
    ├── event_log.jsonl
    ├── data/chunk-000
    │   ├── episode_000000.parquet
    │   ├── episode_000001.parquet
    │   └── episode_0000**.parquet
    ├── meta
    │   ├── episodes_stats.jsonl
    │   ├── episodes.jsonl
    │   ├── info.json
    │   └── tasks.jsonl
    └── videos/chunk-000
        ├── cam_high
        ├── cam_left_wrist
        └── cam_right_wrist
            ├── episode_000000.mp4
            ├── episode_000001.mp4
            └── episode_0000**.mp4
  2.  数据结构分析

    1. event_log.jsonl

      1. 事件日志,记录整个采集的过程

      2. 每个episode在event_log.jsonl中由3行组成

      3. 可以用于判断每个episode是否是成功的轨迹 如果第2行是mark_mistake,则第三行参数is_mistake=True——对应失败的轨迹 如果是end_recording,则is_mistake=False——对应成功的轨迹

    2. meta

      1. 元数据信息,指数据的描述信息

      2. info.json - 数据集全局元信息

        1. 包含数据集的基本信息和数据格式定义

          • 基本信息:

            • codebase_version: 数据格式版本 (v2.1)

            • robot_type: 机器人类型 (moz1)

            • total_episodes: 总episode数量

            • total_frames: 总帧数 

            • total_tasks: 任务数量 

            • total_videos: 视频文件数量

            • fps: 帧率 (30)

            • splits: 数据划分 (train: "0:*")

          • 路径模板:

            • data_path: 数据文件路径模板

            • video_path: 视频文件路径模板

          • 数据字段定义 (features):

            • 包括机器人状态(左右臂、躯干、底盘)

            • 视频字段(cam_high, cam_left_wrist, cam_right_wrist)

            • 索引字段(timestamp, frame_index, episode_index等)

      3. episodes.jsonl - Episode索引和长度

        1. 每行一个JSON对象,对应着记录episode的基本信息

          {"episode_index": 0, "tasks": [""], "length": 395}

          • 作用:快速查询每个episode的长度,用于数据加载和索引

        2. episodes_stats.jsonl - Episode详细统计信息

          1. 每行对应一个episode的详细统计信息,包含:

            • episode_index: episode索引

            • stats: 该episode中所有数据字段的统计信息

              • 对于如“leftarm_cmd_cart_pos”的一条episode中的基本统计数据

                • min: 最小值

                • max: 最大值

                • mean: 平均值

                • std: 标准差

                • count: 数据点数量

              • 对于视频字段:图像像素值的统计信息,且依旧包含如上5条基本信息

          2. 作用:用于数据质量检查、归一化参数计算、数据可视化等

        3. tasks.jsonl - 任务定义

          1. 每行定义一个任务:

            {"task_index": 0, "task": ""}

            • task_index: 任务索引

            • task: 任务描述(当前为空字符串,可能需要在后续步骤中填写任务描述)

          2. Lerobot数据作用:定义数据集中包含的任务类型,用于任务分类和标注(可选是否加入任务描述的语义指令)

      4. data/chunk-000

        1. 存储机器人状态动作数据(parquet格式)

        2. 每个 episode 的 parquet 文件是一个时序数据表每一行对应一帧,每一行包含27列,包含:

          • 机器人状态数据(每帧记录)

            1. 左臂数据:

              • leftarm_cmd_cart_pos: 手臂命令目标笛卡尔位置 [x, y, z, rx, ry, rz]

              • leftarm_cmd_joint_pos: 命令目标关节角度 [joint0-6]

              • leftarm_state_cart_pos: 手臂实际笛卡尔位置

              • leftarm_state_joint_pos: 手臂实际关节角度

              • leftarm_cmd_psi: 命令psi角度

              • leftarm_state_psi: 实际psi角度

              • leftarm_gripper_cmd_pos: 命令夹爪位置——表示夹爪的开合状态

              • leftarm_gripper_state_pos: 实际夹爪位置

            2. 右臂数据:结构同上(rightarm_*)

            3. 躯干数据(躯干保持不变)

              • torso_cmd_cart_pos: 命令位置

              • torso_cmd_joint_pos: 命令关节角度 [joint0-5]

              • torso_state_cart_pos: 实际位置

              • torso_state_joint_pos: 实际关节角度

            4. Lerobot数据底盘数据(底盘不移动)

              • base_cmd_speed: 命令速度 [speed_x, speed_y, speed_theta]

              • base_state_speed: 实际速度

            5. 索引和元数据

              • timestamp: 时间戳,每一帧每一行对应的时间

              • frame_index: 帧索引(episode内)

              • episode_index: episode索引

              • index: 全局索引

              • task_index: 任务索引

      5. videos/chunk-000

        1. 包含头部镜头和双手腕部镜头的视频数据,格式为mp4

      ...全文
      43 2 打赏 收藏 转发到动态 举报
      写回复
      2 条回复
      切换为时间正序
      请发表友善的回复…
      发表回复
      2301_80744354 01-06 15:01
      • 打赏
      • 举报
      回复
      感谢分享!👍🏻
      7k1k 队员 01-07 13:37
      • 举报
      回复
      @2301_80744354

      91

      社区成员

      发帖
      与我相关
      我的任务
      社区描述
      「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地
      机器人人工智能 高校
      社区管理员
      • CSDN产品汪
      • Zachary_86
      • NO.2社区助手
      加入社区
      • 近7日
      • 近30日
      • 至今
      社区公告

      「智能机器人开发者大赛」官方平台,致力于为开发者和参赛选手提供赛事技术指导、行业标准解读及团队实战案例解析;聚焦智能机器人开发全栈技术闭环,助力开发者攻克技术瓶颈,促进软硬件集成、场景应用及商业化落地