CoolFace
Datasetpublic

lewislf/G1_Dex3_pick_white_cup_v2

G1 Dex3 — Pick up the white cup (v2) Dataset de teleoperação no Unitree G1 com mãos Dex3, tarefa única "Pick up the white cup". Gravado com LeRobot (codebase v3.0). Merge de duas sessões de gravação. Episódios: 97 · Frames: 21106 · FPS: 30 Robô: unitree_g1_dex3 · Task: Pick up the white cup Modalidades Feature dtype Como é armazenado Shape observation.images.head_camera video .mp4 H.264 (480, 848, 3) RGB observation.images.head_camera_depth… See the full description on the dataset page: https://huggingface.co/datasets/lewislf/G1_Dex3_pick_white_cup_v2.

sourceHugging Faceapache-2.0updated 4mo agoView on Hugging Face
0likes38downloads
Dataset Card

G1 Dex3 — Pick up the white cup (v2)

Dataset de teleoperação no Unitree G1 com mãos Dex3, tarefa única "Pick up the white cup". Gravado com LeRobot (codebase v3.0). Merge de duas sessões de gravação.

  • —Episódios: 97 · Frames: 21106 · FPS: 30
  • —Robô: unitree_g1_dex3 · Task: Pick up the white cup

Modalidades

FeaturedtypeComo é armazenadoShape
observation.images.head_cameravideo.mp4 H.264(480, 848, 3) RGB
observation.images.head_camera_depthimagePNG uint16 embutido nos parquets(480, 848, 1)
observation.left_hand_pressurefloat32parquet(108,)
observation.right_hand_pressurefloat32parquet(108,)
observation.statefloat32parquet(28,)
actionfloat32parquet(28,)

⚠️ A profundidade NÃO é vídeo — é PNG 16-bit nos parquets

Você vai ver só um `.mp4` no repo (o RGB). Isso é esperado. A profundidade não é salva como vídeo: ela vai como imagem PNG `uint16` de 1 canal, em milímetros, embutida nas linhas dos arquivos parquet (dtype: image, não video).

Por quê: vídeo H.264 é 8-bit e lossy. Numa cena de mesa, comprimir a profundidade em 8-bit colapsa tudo em ~8–12 níveis e destrói a precisão métrica. O formato PNG uint16 preserva a distância real em milímetros, lossless. Portanto:

  • —O .mp4 único = câmera RGB (head_camera).
  • —A profundidade viaja dentro dos parquets (head_camera_depth), 1 canal, mm.
  • —Escala: a D435i publica z16 já em mm (depth_scale ≈ 0.001 m/unidade); no treino, z = depth_mm / 1000 para voltar a metros.

Estado e ação (28 dims)

Ordem: braço esquerdo (7) → braço direito (7) → mão esquerda Dex3 (7) → mão direita Dex3 (7). As juntas das mãos seguem a convenção Dex3 (polegar 3 + indicador 2 + médio 2 por mão).

Tátil

left/right_hand_pressure (108 por mão) vêm dos sensores táteis da Dex3. Em gravações no robô real carregam leitura de pressão; no simulador saem zeradas.

Como carregar

python
from lerobot.datasets.lerobot_dataset import LeRobotDataset
ds = LeRobotDataset("lewislf/G1_Dex3_pick_white_cup_v2")
sample = ds[0]
# sample["observation.images.head_camera_depth"] -> tensor uint16 (1, H, W), em mm