E6 样例数据包说明
设备 UID 2934393122。记录时间 2026-07-08 15:53,时长约 32.0 秒。上面的时间轴和 解决方案 用的是同一套人工场景句。网站上的演示视频从该记录的 22.0 秒截到结束,左右 RGB 上投影了 OpenXR 26 关节。原始 RGB 为 60 Hz,演示片是 10 Hz 预览,用来核对关节是否落在手上。训练应读原始 mp4、csv 和标定,而不是读这支预览片。手上的点是设备输出,不是后加的视觉模型。
这一包里有什么
| 模态 | 文件 | 本段实测 |
| RGB | rgb.mp4、rgb_metainfo.csv、camera_params_rgb.json | HEVC,3840×1200 左右并排,单目 1920×1200,1920 帧,60.0 Hz。曝光 6.67 ms。 |
| 灰度 SLAM | tracking.mp4、tracking_metainfo.csv、camera_params_tracking.json | 1280×480 左右并排,各 640×480,1912 帧,约 59.8 Hz。 |
| 灰度手部 | ctrl.mp4、ctrl_metainfo.csv、camera_params_ctrl.json | 同样 1280×480 并排,1914 帧,约 59.9 Hz。外参 Y 约 +4.3 cm,相对 tracking 更朝下。 |
| 头部位姿 | head_pose.csv | 1920 行,60 Hz。位置 xyz 加四元数 xyzw。起止时间与 RGB 曝光中点相同。 |
| 手 26 关节 | hand_tracking.csv | 607 行,约 19.0 Hz。左有效 477,右有效 485。关节名与 OpenXR XR_EXT_hand_tracking 一致。 |
| IMU | gyro.csv、accel.csv、imu_calibration.json | 约 1015 Hz。陀螺 rad/s,加计 m/s²。含 bias、scale、非正交和相机时间对齐。 |
| 音频 | audio.m4a、audio_metainfo.csv | 44.1 kHz,单声道 AAC,约 96 kbps,31.6 秒。文件起点比 RGB 第 0 帧晚约 288 ms,不能从两个文件的 0 秒硬叠。 |
| 手柄 | controller_poses.csv | 1 行全 0,左右 inactive。本段不能当手柄 6DoF。 |
时间
统一时间是 UTC 纳秒。RGB 对齐用 mid_exposure_utc_ns,不是播放器从 0 起的 PTS。本段头部位姿和这个曝光中点逐帧重合。手部时间戳是头部位姿时间戳的子集,最近邻误差 0 ms,所以它是约 19 Hz 抽在 60 Hz 上,不是另一套时钟。
标定里 RGB 相对头姿约 −10 ms,灰度约 +5 ms,IMU 相对头姿约 +5.4 ms。这些数在 time_sync.json。本段 RGB 采用 0。23.4–24.6 秒的扫描里,−9.9 ms 把投影腕部挪了 4.7 像素(p50)。肤色距离在 ±40 ms 内是 3.1–4.5 像素,选不出毫秒。边缘 p90 仍约 46 像素。
投影
外参是 Camera→Body。机身坐标 +X 向右、+Y 向上、镜头朝 −Z。成片是正放的,投影时在相机坐标系绕光轴加了 +90°。镜头用等距鱼眼 r = f·θ,不用那组很小的针孔畸变系数去盖住画面边缘的手。左右手都投到左右目上。active 不为 1 的手不画。
和规格表的差别
产品页 RGB 有两档:卷帘 2328×1748,或全局快门 1600×1200。本段记录是 1920×1200。批量训练要按 camera_params_rgb.json 分桶,不要和另外两档混在同一个内参里。SLAM 5 mm 仍是资料标称。这一段没有地面真值,不能写成已验证精度。
训练合同
这是人的第一人称观测,不是机器人末端动作。OpenXR 26 关节不是夹爪 7 维。训练读 60 Hz 的 rgb.mp4,不要读网站上的 10 Hz 预览。手部留在约 19 Hz:hands_flags.jsonl 有逐关节可见性和 dt_ns,置信度是空的,因为设备 CSV 里没有这一列,没有填一个假分数。
rgb_index.jsonl 有 1920 行,每行把该帧 RGB 接到头部位姿、手部、tracking 和朝下的 ctrl 灰度,并写下 dt_ns。ctrl 在观测里,不在空的 controller_poses 里。音频第 0 包比 RGB 第 0 帧晚 288.06 ms,写在 time_sync.json。
23.4–24.6 秒、25 帧的偏移扫描:肤色到投影腕和食指尖的距离,p50 在 ±40 ms 里是 3.1–4.5 像素,所以这个代理选不出毫秒。标定 −9.9 ms 在同一窗口把腕部挪了 4.7 像素(p50)。这段采用的 RGB 偏移是 0。p90 仍约 46 像素,边缘没有闭合,也不是棋盘格标定。数字在 time_offset_sweep.json。
四句场景是人工叙述,不是模型输出:narration.jsonl。物体只有时间段,没有框、没有 mask、没有 6DoF:object_spans.jsonl。腕和食指尖的像素轨迹在 hand_uv_rgb.jsonl,那是关节投影,不是物体检测。
训练时怎么读
一条 episode 至少包括:rgb、tracking、ctrl 六个单目;60 Hz 头部位姿;约 19 Hz 的双手 26 关节,带 active;约 1 kHz 的陀螺和加计;44.1 kHz 音频;三套相机参数和 IMU 标定。手部不要重采样成 60 Hz 而不保留 dt。本段没有任务语言、物体 6DoF 和接触力,不够单独训练操作策略。
公开格式里,字段上接近的是 OpenXR 手骨架、LeRobot / RLDS 的 episode,以及 Ego-Exo4D、HOT3D、Project Aria 的多相机同步写法。它们是对照,不是本机测量结果。
E6 sample episode note
Device UID 2934393122. Recorded 2026-07-08 15:53, about 32.0 seconds. The timeline above uses the same human scene sentences as the solutions page. The site demo runs from 22.0 s to the end, with OpenXR 26-joint skeletons on the left and right RGB views. Those points are device output, not a vision model added later. Source RGB is 60 Hz. The player file is a 10 Hz preview for checking that joints land on the hands. Training should read the source mp4, csv, and calibration files, not this preview.
What is in the pack
| Stream | Files | Measured on this take |
| RGB | rgb.mp4, rgb_metainfo.csv, camera_params_rgb.json | HEVC, 3840×1200 side-by-side, 1920×1200 per eye, 1920 frames, 60.0 Hz. Exposure 6.67 ms. |
| SLAM gray | tracking.mp4 and its meta / calibration | 1280×480 side-by-side, 640×480 per eye, 1912 frames, about 59.8 Hz. |
| Hand gray | ctrl.mp4 and its meta / calibration | Same 1280×480 layout, 1914 frames, about 59.9 Hz. Extrinsic Y is about +4.3 cm, aimed further down than tracking. |
| Head pose | head_pose.csv | 1920 rows, 60 Hz. xyz plus quaternion xyzw. Endpoints match RGB mid-exposure. |
| 26 joints | hand_tracking.csv | 607 rows, about 19.0 Hz. Left active 477, right active 485. Names match OpenXR XR_EXT_hand_tracking. |
| IMU | gyro.csv, accel.csv, imu_calibration.json | About 1015 Hz. Gyro in rad/s, accel in m/s². Bias, scale, non-orthogonality, and camera time alignment are included. |
| Audio | audio.m4a, audio_metainfo.csv | 44.1 kHz mono AAC, about 96 kbps, 31.6 s. File start is about 288 ms after RGB frame 0. Do not hard-align both files at t = 0. |
| Controller | controller_poses.csv | One all-zero row, both hands inactive. Not a 6DoF controller episode. |
Time
The shared clock is UTC nanoseconds. Align RGB on mid_exposure_utc_ns, not on a player PTS that starts at zero. On this take, head pose matches that mid-exposure timestamp exactly. Hand timestamps are a subset of the head-pose timestamps, with zero nearest-neighbor error. The hand stream is about 19 Hz sampled on the 60 Hz clock, not a second clock.
Calibration stores about −10 ms for RGB versus head pose, about +5 ms for grayscale, and about +5.4 ms for IMU versus pose. Those values are in time_sync.json. This take applies 0 for RGB. On a 23.4–24.6 s sweep the factory −9.9 ms shift moves the projected wrist 4.7 px (p50). A skin-color proxy stays at 3.1–4.5 px across ±40 ms, so it cannot pick a millisecond. Edge p90 is still about 46 px.
Projection
Extrinsics are Camera-to-Body. Body axes are +X right, +Y up, cameras looking toward −Z. The delivered frames are upright, so projection adds +90° about the camera optical axis. The lens model is equidistant fisheye, r = f·θ. The small pinhole radial coefficients do not cover hands at the edge of the frame. Both hands are drawn on both eyes. A hand with active not equal to 1 is not drawn.
How this differs from the brochure
The product page lists two RGB modes: rolling shutter 2328×1748, or global shutter 1600×1200. This recording is 1920×1200. Bucket training data by camera_params_rgb.json. Do not share one intrinsic matrix across those resolutions. The 5 mm SLAM figure remains a nominal specification. This clip has no ground truth and is not a verified accuracy result.
Training contract
This is a human egocentric observation, not a robot end-effector action. OpenXR 26 joints are not a 7-DoF gripper. Train on the 60 Hz rgb.mp4, not the 10 Hz preview. Hands stay near 19 Hz. hands_flags.jsonl has per-joint visibility and dt_ns. Confidence is null because the device CSV has no such column. No score was invented.
rgb_index.jsonl has 1920 rows. Each row joins that RGB frame to head pose, the hand sample, tracking, and the downward ctrl pair, with dt_ns. Audio packet 0 is 288.06 ms after RGB frame 0. See time_sync.json and time_offset_sweep.json.
Four scene sentences are a human review, not a model: narration.jsonl. Objects are time spans only, with no boxes, masks, or 6DoF: object_spans.jsonl. hand_uv_rgb.jsonl is the projected wrist and index tip, not an object detector.
How to read it for training
One episode should carry six monocular views from rgb, tracking, and ctrl; 60 Hz head pose; both 26-joint hands at about 19 Hz with an active flag; gyro and accel near 1 kHz; 44.1 kHz audio; and the three camera files plus IMU calibration. Do not resample the hands to 60 Hz without keeping dt. This take has no language, object 6DoF, or contact force, so it is not enough by itself to train a manipulation policy.
Nearby public formats are the OpenXR hand skeleton, LeRobot / RLDS episodes, and the multi-camera sync used by Ego-Exo4D, HOT3D, and Project Aria. Those are references, not measurements from this device.