遇见数据集

Public-YAM-runs

收藏
Hugging Face2026-09-10 更新2026-09-11 收录
官方服务:

资源简介:

Public-YAM-runs数据集是由BluPe操作站记录的物理双臂YAM任务片段集合。每个提交添加一个片段,包含失败、中断、停止和超时的运行,并保留标签,因此并非全部是成功的演示。模型声称的完成状态未经独立验证。数据集包含原始图像/Parquet档案(默认配置)和LeRobot v2.1布局(lerobot配置),后者提供单独的相机视频文件。视频以10 FPS的H.264编码,排列为左|顶|右视图,播放遵循片段时间线,标记过期的相机帧,并显示缺失帧的间隔而非静默跳过。原始图像和时间戳保留在Parquet行中。数据字段包括:episode_id(片段标识)、frame_index(帧索引)、timestamp(自Jetson单调时钟记录开始起的时间,秒)、left_image/right_image/top_image(对应相机的JPEG图像,保留覆盖)、measured_joints(12个测量关节位置,弧度,左臂关节0-5后接右臂关节0-5)、measured_grippers(左右夹爪归一化位置,0闭合,1张开)。action_joints和action_grippers是驱动器实际发出的最新目标,单位与测量值相同,action_timestamp标识该目标的发送时间,action_valid=false表示未知命令(零占位符非动作)。各相机的时序戳、序列号和帧年龄单独保留,camera_skew_s记录相机间时间差。training_valid字段指示已知动作且所有三帧在采样时刻不超过150毫秒,用于训练过滤。task字段为任务指令(可能为null),outcome字段为站终止原因。标称采样率为10 Hz。USB相机通过软件时间对齐,而非硬件触发,时间戳为主机捕获返回时间,非传感器曝光时间。不应假设均匀间隔或完美同步。缺失样本和捕获错误在片段清单中计数,不应静默插补。记录在策略权限撤销时结束,超时泊车等后续恢复运动不包括在策略样本中。本地记录若发布失败则保留,上传器独立重试。不发布模拟片段和模型转录。所有记录姿态均为机器人关节空间状态,非标定世界位姿。相机角色映射为左=10,顶=4,右=16,未提供相机标定和图像空间任务成功。LeRobot v2.1表示中,标准文件为data/chunk-000/episode_000000.parquet和videos/chunk-000/observation.images.{left,top,right}/episode_000000.mp4,元数据在meta/目录中。状态和动作为float32向量,顺序为:左关节0-5、左夹爪、右关节0-5、右夹爪;关节单位为弧度,夹爪归一化0-1。标准播放时钟为timestamp = frame_index / 10,此举压缩了丢失的采集时间,原始流逝秒数保留在float64 source_timestamp中。frame_gap=true标记与上一行的间隔超过0.15秒的行。training_valid保留每行动作/相机的有效性,不认证连续时序。训练时需根据frame_gap和training_valid进行过滤,不应简单移除间隔行后视为连续。

The Public-YAM-runs dataset is a collection of physical bi-manual YAM task episodes recorded by the BluPe operator station. Each submission adds an episode (including failed, interrupted, stopped, and timed-out runs) with labels retained, so not all are successful demonstrations. Model-claimed completion states are not independently verified. The dataset includes raw image/Parquet archives (default configuration) and LeRobot v2.1 layout (lerobot configuration) which provides separate camera video files. Videos are H.264 encoded at 10 FPS, arranged as left|top|right views; playback follows episode timeline, marks expired camera frames, and shows gaps for missing frames instead of silent skipping. Raw images and timestamps are preserved in Parquet rows. Data fields include: episode_id (episode identifier), frame_index (frame index), timestamp (time in seconds since start of Jetson monotonic clock recording), left_image/right_image/top_image (JPEG images from corresponding cameras, with overwriting retained), measured_joints (12 measured joint positions in radians, left arm joints 0-5 followed by right arm joints 0-5), measured_grippers (normalized gripper positions for left and right, 0 closed, 1 open). action_joints and action_grippers are the latest targets actually sent by the drive, units same as measurements; action_timestamp indicates send time of that target; action_valid=false indicates unknown command (zero placeholder not an action). Camera timestamps, sequence numbers, and frame ages are stored separately; camera_skew_s records time difference between cameras. The training_valid field indicates known actions and all three frames within 150 ms at sampling time, used for training filtering. task field is task instruction (may be null), outcome field is station termination reason. Nominal sampling rate is 10 Hz. USB cameras are software-time-aligned, not hardware-triggered; timestamps are host capture return time, not sensor exposure time. Uniform spacing or perfect synchronization should not be assumed. Missing samples and capture errors are counted in episode manifest, not silently interpolated. Recording ends when policy authority is revoked; subsequent recovery motions like timeout parking are not included in policy samples. Local recordings are retained if publishing fails; uploader retries independently. Simulated episodes and model transcripts are not published. All recorded poses are robot joint-space states, not calibrated world poses. Camera role mapping: left=10, top=4, right=16; camera calibration and image-space task success are not provided. In LeRobot v2.1 representation, standard files are data/chunk-000/episode_000000.parquet and videos/chunk-000/observation.images.{left,top,right}/episode_000000.mp4, metadata in meta/ directory. State and action are float32 vectors: left joints 0-5, left gripper, right joints 0-5, right gripper; joint units are radians, gripper normalized 0-1. Standard playback clock is timestamp = frame_index / 10, which compresses missing acquisition times; original elapsed seconds are kept in float64 source_timestamp. frame_gap=true marks rows with gap > 0.15 seconds from previous row. training_valid retains per-row action/camera validity, does not certify continuous timing. During training, filtering based on frame_gap and training_valid is required; rows with gaps should not be simply removed and treated as continuous.

创建时间:
2026-09-07
原始信息汇总

Public-YAM-runs 数据集总结

基本信息

  • 数据集地址:https://huggingface.co/datasets/andlyu/Public-YAM-runs
  • 名称:Public YAM runs
  • 语言:en
  • 标签:robotics、bimanual、yam、lerobot
  • 内容概述:由 BluPe 操作站记录的物理双臂 YAM 回合(episodes)。每次运行向仓库添加一个回合。失败、中断、停止和超时的运行均被保留并标记,并非所有都是成功的演示。模型报告“完成”不代表经过独立验证的任务成功。

数据加载

python from datasets import load_dataset runs = load_dataset("andlyu/Public-YAM-runs", split="train") usable = runs.filter(lambda row: row["training_valid"])

  • default 配置:保留原始 Image/Parquet 归档。
  • lerobot 配置meta/ 目录:提供额外的 LeRobot v2.1 布局,包含独立的相机视频。
  • 每次原子提交添加一个回合及其元数据。之前上传的归档文件和回放 URL 均被保留。

视频说明

  • videos/ep_*.mp4 包含一个 10 FPS H.264 视图,排列方式为 left | top | right
  • 视频播放遵循回合时间线,标记陈旧的相机帧,并显示缺失帧的间隔而非静默跳过。
  • 视频仅为查看产物;原始图像和时间戳仍保留在 Parquet 行中。
  • 本地运行器的 Save video 优先使用浏览器录制的回放(若可用),否则使用该回合的 MP4。Save log 下载独立的本地 ZIP,包含确切的模型请求/响应体、模型输入图像、交互事件和错误。模型日志不在此上传。

样本字段

  • episode_idframe_indextimestamp:回合标识、样本索引和相对于 Jetson 单调时钟上录制开始的秒数。
  • left_imageright_imagetop_image:对应相机的 JPEG。采集时间叠加层保留在像素中。
  • measured_joints:12 个测量的关节位置,单位为弧度,顺序为左关节 0–5 后接右关节 0–5。measured_grippers:左/右归一化位置,0 为闭合,1 为张开。
  • action_jointsaction_grippers:驱动器实际派发的最新目标,顺序/单位相同。它们不会被替换为反馈。action_timestamp 标识该派发相对于录制开始的时间。action_valid=false 表示没有已知命令;其零占位符不是动作。
  • 每个视图保留相机时间戳、序列号和帧龄;camera_skew_s 记录相机间时序差异。
  • training_valid:已知动作且三个帧在测量样本时间时最多 150 ms 旧。保留的无效行在训练时应被过滤。
  • task:来自 API 交接的任务指令,若不可用则为 null。
  • outcome:站点终止原因;session_api_stop 不区分成功与运行器/操作员停止。session_timeout 为超时,session_api_disconnect 为通信中断。

标称采样率为 10 Hz。USB 相机为软件时间对齐,非硬件触发;时间戳为主机采集返回时间戳,而非传感器曝光时间戳。不要假设均匀间隔或完美同步。缺失样本和采集错误在回合清单中计数。不要静默将其插值为测量演示。

录制在策略权限被撤销时结束。超时停泊及其他后续恢复运动被排除在策略样本之外。若发布失败,本地录制被保留,上传器独立于机械臂控制进行重试。模拟回合和模型转录不在此发布。

来源与限制

  • 所有记录的位姿均为机器人关节空间状态,非标定的世界位姿。
  • 相机角色映射在此站点为 left=10、right=4、top=16;不提供相机标定和图像空间任务成功。
  • 训练前请审查结果、时序有效性和数据集质量。train 分割名称不暗示仅成功过滤。

LeRobot v2.1 表示

  • 规范文件:data/chunk-000/episode_000000.parquetvideos/chunk-000/observation.images.{left,top,right}/episode_000000.mp4,路径模板、维度、计数、任务和统计信息在 meta/ 中。
  • meta/blupe_source_episodes.jsonl 将稳定的数字索引映射到原始回合 ID、源哈希、结果和记录器质量计数。
  • 状态和动作为 float32 向量,精确顺序:左关节 0–5、左夹爪、右关节 0–5、右夹爪。关节单位为弧度;夹爪归一化为 0–1。状态为测量反馈;动作为最近派发的目标。未知动作保留零占位符并设 action_valid=false。缺失的动作时间戳表示为 0,必须结合该有效性标志解释。

时序与训练有效性

  • 规范播放时钟为 timestamp = frame_index / 10,每个相机视频中每个原始记录行恰好一帧。这压缩了错过的采集时间;它不是物理经过时间时钟。 原始经过秒数保留在 float64 source_timestamp 中。
  • frame_gap=true 标记与前一记录行的间隔超过 0.15 秒的行。不插值或发明任何图像或关节值。使用原始时间戳和原始连接回放进行物理经过时间分析。
  • training_valid 保留记录器逐行的动作/相机有效性;它不证明连续时序。对于时间/动作块训练,应拒绝或分割跨越任何 frame_gap 的窗口,并拒绝无效行。简单过滤掉间隙行然后将剩余行视为相邻仍是错误的。若重采样请使用源时间戳,并保持任何合成值明确无效。
  • 全帧统计描述归档,包括无效动作占位符;选择训练过滤器后重新计算归一化统计。

python from datasets import load_dataset canonical = load_dataset("andlyu/Public-YAM-runs", "lerobot", split="train")

相机特征是由 meta/info.json 声明的外部 MP4,而非 Parquet 图像。

此目标为 v2.1 schema 及兼容查看器,而非更新的 v3 writer。Jetson 发布器不需要 LeRobot 包或 Torch。

搜集汇总
数据集介绍
Public-YAM-runs 数据集图片
构建方式
该数据集依托BluPe操作站,以双臂YAM机器人平台为物理载体,通过逐次运行累积回合数据,每个原子提交新增一个回合及其元数据,并保留失败、中断、停止及超时等全部运行记录,形成非成功筛选的原始档案。默认配置维护原始图像与Parquet归档,同时提供LeRobot v2.1布局及独立相机视频,数据采集基于Jetson单调时钟,以10 Hz标称频率记录,相机为软件时间对齐而非硬件触发,缺失样本与采集错误均被计数于回合清单中,不进行隐蔽插值。
特点
数据集囊括多视角JPEG图像、12维关节测量值与归一化夹爪位置、实际派发的动作目标及时间戳,并附带相机时间戳、序列号、帧龄与相机间时序偏差等元信息。训练有效性标志(training_valid)标识已知动作且三路帧龄不超过150毫秒的样本,无效行与帧间隙标志(frame_gap)被显式保留,以警示时序不连续。任务指令与终止结果字段提供语义上下文,但session_api_stop不区分成功与操作员停止,且所有姿态均为机器人关节空间状态,非标定世界位姿,不隐含成功筛选。
使用方法
用户可通过HuggingFace datasets库加载默认配置以访问原始Image/Parquet存档,或加载lerobot配置以获取LeRobot v2.1布局及外置MP4视频。训练时应依据training_valid过滤无效行,并针对时序或动作分块训练拒绝或切分跨越frame_gap的窗口,避免将间隙行视为相邻。若需重采样,应使用源时间戳(source_timestamp)并显式标记合成值为无效。归一化统计应在选定训练过滤条件后重新计算,且注意规范播放时钟(timestamp = frame_index / 10)压缩了遗漏采集时间,并非物理经过时间。
背景与挑战
背景概述
在具身智能与机器人学习领域,双臂操作数据的稀缺长期制约着策略泛化能力的提升。Public-YAM-runs数据集由BluPe操作站采集,记录了物理双臂YAM机器人的真实运行片段,并于近年公开发布。该数据集直面机器人学习中演示数据质量参差不齐的核心问题,创新性地保留了失败、中断、超时等非成功运行,并逐条标注结果与有效性标志,而非仅呈现经过筛选的成功演示。其核心研究问题在于如何利用包含噪声与失败的真实数据训练鲁棒策略,对推动数据中心的机器人学习与可复现研究具有基础性影响。
当前挑战
该数据集所应对的领域问题在于双臂精细操作策略的学习,其挑战源于真实运行中动作与感知的时空不一致。构建过程中,软件时间对齐的USB相机存在非均匀采样与帧缺失,动作目标与反馈信号在有效性和时序上并非严格同步,且‘模型报告完成’并不等同于任务成功。具体挑战包括:跨相机时序偏差与陈旧帧的标注、无效动作占位符与真实命令的区分、训练窗口跨越帧间隙时的时序连续性保障,以及非成功运行纳入后对标准化统计和归一化流程的干扰。这些因素共同要求使用者在训练前审慎评估数据质量与结果标签。
常用场景
经典使用场景
在双臂机器人操作学习领域,Public-YAM-runs数据集提供了从BluPe操作站采集的真实物理双臂YAM机器人运行记录,其经典使用场景为模仿学习与行为克隆研究。每一条运行记录包含左、右、顶部三个视角的同步图像、12维关节测量值与夹爪状态以及实际下发的动作指令,研究者可据此训练端到端的视觉-动作策略网络,例如基于LeRobot框架构建的扩散策略或ACT模型,使机器人从示教数据中习得精细的双臂协同操作技能。
实际应用
在工业与服务机器人部署中,该数据集可用于训练双臂机器人执行抓取、装配、搬运等复杂操作任务。操作者通过遥操作站采集的包含失败与恢复过程的真实数据,能帮助策略模型学习纠错与容错能力。借助LeRobot v2.1格式与外部MP4视频,工程人员可快速集成至现有训练流水线,并利用training_valid过滤与source_timestamp重采样,确保模型在非理想通信与传感器延迟条件下仍具备稳定表现。
衍生相关工作
Public-YAM-runs的公开推动了多项围绕真实双臂操作的开源工作,包括基于LeRobot生态的策略训练代码、数据集可视化与质量审查工具,以及针对非均匀时间戳的时序窗口切分方法。其metadata与source_episodes映射亦被用于数据溯源与跨数据集迁移研究,衍生出对失败样本的因果分析与鲁棒模仿学习基准,为后续双臂机器人学习社区提供了可扩展的数据基础设施。
以上内容由遇见数据集搜集并总结生成
二维码
社区交流群
二维码
科研交流群
商业服务