{
  "schema": "roboRSI real-robot evidence summary v1",
  "date": "2026-10-20",
  "timezone": "Asia/Shanghai",
  "robot": "RealBot-01 (Realman dual RX75 arms, CTAG2F90D grippers, chest RGB-D camera, two wrist cameras)",
  "model": "gpt-6-astra via H0 (vendored PhysicalRSI policy) with the RealBot skills option",
  "task_instruction": "Hold the pen holder with one hand, place all pens into it with the other hand, then put it back down.",
  "scene": "one hexagonal pen holder (about 70 mm across flats, 124 mm tall) and five pens of different widths lying on the table",
  "control": {
    "mode": "autonomous model control, every primitive auto-approved (--auto-approve); no teleoperation, no object moved by hand during a run",
    "safety": "every executed tick checked by the RealBot safety guard (joint limits, per-tick step, table clearance incl. wrist camera point, arm-arm surface distance incl. held objects, two-hand elbow posture)",
    "operator_interventions_run4": [
      {
        "time": "15:47",
        "kind": "text note to the model",
        "summary": "keep the skill flow used for pen 1 for every remaining pen; do not pick pens with manual primitives"
      },
      {
        "time": "15:55",
        "kind": "text note to the model",
        "summary": "move the empty left hand away from the holder (hands > 35 cm apart) before each pick, because opening the jaws next to the holder trips the two-hand rule"
      },
      {
        "time": "16:07",
        "kind": "text note to the model",
        "summary": "the holder is crowded; the right hand may turn or tilt the holder so that the free part of the opening faces the incoming pen"
      },
      {
        "time": "16:13",
        "kind": "stop",
        "summary": "operator stop file after the fifth pen landed outside the holder"
      }
    ]
  },
  "runs": [
    {
      "id": "20261020_144619",
      "start": "14:46",
      "effort": "high",
      "speed": 5,
      "ticks": 108,
      "wall_s": 586,
      "model_calls": 15,
      "cost_usd": 1.71,
      "guard_rejections": 2,
      "pens_in": 0,
      "end": "operator emergency stop while the left fingertips approached the table during a pick; the holder had been grasped (after one missed skill grasp) and lifted"
    },
    {
      "id": "20261020_151924",
      "start": "15:19",
      "effort": "medium",
      "speed": 10,
      "ticks": 48,
      "wall_s": 165,
      "model_calls": 6,
      "cost_usd": 0.64,
      "guard_rejections": 2,
      "pens_in": 0,
      "end": "operator stop: holder-grasp steps repeatedly refused by the two-hand elbow rule (skills did not yet keep the elbow out)"
    },
    {
      "id": "20261020_152415",
      "start": "15:24",
      "effort": "medium",
      "speed": 10,
      "ticks": 79,
      "wall_s": 228,
      "model_calls": 6,
      "cost_usd": 0.66,
      "guard_rejections": 0,
      "pens_in": 0,
      "end": "operator stop: after the earlier emergency stop the gripper reported 0 mm, so a holder actually held was judged an empty grasp"
    },
    {
      "id": "20261020_153210",
      "start": "15:32:10",
      "end_time": "16:13:43",
      "effort": "medium",
      "speed": 10,
      "ticks": 752,
      "ticks_executed": 748,
      "wall_s": 2339,
      "model_calls": 47,
      "cost_usd": 5.8,
      "guard_rejections": 4,
      "pens_in": 4,
      "pens_total": 5,
      "decisions": {
        "skill": 16,
        "geometry_query": 10,
        "nudge": 12,
        "move": 5,
        "elbow": 2,
        "grasp": 1,
        "approach": 1
      },
      "skills": {
        "grasp_holder": 1,
        "present_holder": 1,
        "pick_and_insert": 13,
        "insert_into_holder": 1
      },
      "end": "operator stop while the model was re-aiming the holder for the fifth pen"
    }
  ],
  "run4_timeline_video_s": [
    {
      "from": 72,
      "to": 456,
      "what": "detect_objects, grasp_holder (right), present_holder, pick_and_insert pen 1; model confirms one pen standing in the holder"
    },
    {
      "from": 456,
      "to": 1086,
      "what": "pen 2: skill refused twice (no grasp within the posture constraints); manual grasp/move, left fingers touch the holder rim, retreat; 15:47 note"
    },
    {
      "from": 1086,
      "to": 1273,
      "what": "pick_and_insert pen 2; model confirms two pens in the holder"
    },
    {
      "from": 1303,
      "to": 1490,
      "what": "pen 3: jaw opening next to the holder refused twice by the two-hand rule; 15:55 note; left hand moved 35.7 cm away"
    },
    {
      "from": 1490,
      "to": 1711,
      "what": "pick_and_insert pen 3 (a wide pen); model confirms it standing in the holder"
    },
    {
      "from": 1765,
      "to": 2033,
      "what": "pen 4: insertion refused (arm-arm distance incl. held objects); retreat; insert_into_holder replanned from the higher pose; pen 4 in"
    },
    {
      "from": 2086,
      "to": 2287,
      "what": "pen 5: inserted at the opening centre of the crowded holder, lands outside on the right"
    },
    {
      "from": 2287,
      "to": 2411,
      "what": "16:07 note; right hand tilts the holder toward the free slot; pick refused; operator stop"
    }
  ],
  "result_check": "pens in the holder judged from the right wrist and chest images by the model and the operator; no independent native score",
  "data": {
    "location": "robot ~/ssd/claude_episodes/gpt_runs/h0/20261020_153210 ; copy on the storage server under realbot-astra-20261020/run",
    "bytes": 45214299071,
    "recording": "recording/bag/bag_0.mcap (43849457985 bytes): head stereo and both wrist cameras H264, chest colour JPEG 30 Hz with camera info, both arms and torso about 190 Hz, robot state 2 Hz; recording/chest.mp4 15 fps",
    "per_tick": "ticks.jsonl: command targets, guard result, arrival error, wall time",
    "model_io": "api/: every request and response incl. images; decisions.jsonl; geometry-tools.jsonl",
    "observations": "observations/: one packed observation per tick incl. chest depth",
    "detections": "detections/: numbered detect_objects images",
    "code_snapshot": {
      "file": "code_snapshot_run4.tgz",
      "sha256": "4aa584f26ac6825024e0b60803419ec9e0517d796f920a718395a852ede3645e",
      "excludes": "API keys and upload keys"
    }
  },
  "video": {
    "file": "assets/real-robot-run4-8x.mp4",
    "sha256": "d7d74829a8794cef260b642eeb7730a3b124f7114eb6a5e0e7ac002c9779bbb0",
    "source": "original chest JPEG frames from the MCAP, segments 72-476, 1086-1293, 1490-1731, 1765-2053 s, 8x, 30 fps",
    "edit": "left strip of the frame cropped (wall sign), 1010x568 -> 1920x1080 Lanczos, light denoise and sharpen; no text overlay",
    "streaming_copy": {
      "file": "assets/real-robot-run4-8x-720p.mp4",
      "sha256": "81a23cbf31ca46091c611b3d6d45fe669d58c501bfe86f3cce11d89b54513b66",
      "edit": "re-encoded from the 1080p file to 1280x720, x264 CRF 24, maxrate 1.3 Mbps, for playback on a low-bandwidth server; the 1080p file remains the download"
    }
  },
  "not_shown": "independent per-pen labels, a success rate over several runs, a no-hint control, real-robot TaskGraph labels, a skill-layer ablation",
  "wrist_clips": [
    {
      "file": "assets/real-robot/wrist-pen1-2x.mp4",
      "sha256": "c53ebe8947ee31e34eeb9ffb40724fdeacaa400161038be5de72ddc04844f609",
      "camera": "right_arm_wide_cam (H264 in MCAP)",
      "video_s": [
        380,
        445
      ],
      "speed": 2,
      "what": "pen 1 enters the holder and stands (success)"
    },
    {
      "file": "assets/real-robot/wrist-pen4-8x.mp4",
      "sha256": "088ff2d0a15ed6981889c13ad4c78df662a1ba860614b92962601fbfd3dbbbc8",
      "camera": "right_arm_wide_cam (H264 in MCAP)",
      "video_s": [
        1765,
        2040
      ],
      "speed": 8,
      "what": "pen 4 after the guard refusal: retreat, re-plan from higher, insert (recovery)"
    },
    {
      "file": "assets/real-robot/wrist-pen5-8x.mp4",
      "sha256": "8fa6d5fb572c272507198e644f27b9951d95c11a08022e5fdd309a380f2ad561",
      "camera": "right_arm_wide_cam (H264 in MCAP)",
      "video_s": [
        2086,
        2290
      ],
      "speed": 8,
      "what": "pen 5 hits pens already in the holder and falls to the right (failure)"
    }
  ],
  "figures": {
    "detect": "assets/real-robot/detect-objects.jpg (detections/step0000.png, wall sign cropped)",
    "keyframes": "assets/real-robot/step*.jpg at chest video seconds 120, 330, 440, 2030, 2280; run4-steps.jpg adds a right-wrist frame of pen 1"
  },
  "wrist_clips_note": "decoded from the MCAP H264 packets with ffmpeg on the robot; frame selection every Nth frame, 960 px wide, light denoise, no text overlay; same clock as the chest video"
}
