Lundii/table_smoke
V10.10 table-camera validation set Ten pick-and-place demonstrations from the pact_place_corridor_v10_10_four_object environment, re-run with one extra fixed exterior table camera (exo_camera_1) so the camera schema can be validated end to end before it is used at scale. This is a schema validation set, not a training corpus. The 144-row V10.10 training corpus is unchanged and is not part of this repo. What each row guarantees Every published row was checked… See the full description on the dataset page: https://huggingface.co/datasets/Lundii/table_smoke.
V10.10 table-camera validation set
Ten pick-and-place demonstrations from the pact_place_corridor_v10_10_four_object environment, re-run with one extra fixed exterior table camera (exo_camera_1) so the camera schema can be validated end to end before it is used at scale.
This is a schema validation set, not a training corpus. The 144-row V10.10 training corpus is unchanged and is not part of this repo.
What each row guarantees
Every published row was checked before upload and carries:
episode_00000000_exo_camera_1.mp4— decodable exterior RGB, frame count equal to the trajectory's frame count;traj_0/obs/sensor_param/exo_camera_1intrajectory.h5, holdingextrinsic_cv(T,3,4),cam2world_gl(T,4,4)andintrinsic_cv(T,3,3), all finitefloat64;- a genuinely fixed pose — the within-episode max delta of all three calibration arrays is exactly
0.0, so the camera does not drift across the episode.
Read this before you reuse an extrinsic
The camera is fixed within an episode but re-drawn between episodes. All ten sit at the same height on a near-constant ground radius, at a different azimuth each time, and they share one intrinsic matrix. Concretely:
- height: 1.650 m (identical on all ten)
- ground radius: 1.022–1.079 m (spread 56 mm)
- azimuth: -163.1° to -136.8°
- intrinsics shared across episodes: yes
So load the extrinsic from the episode you are projecting. Reading one episode's extrinsic_cv and reusing it across the set will silently misproject the other nine — the intrinsics match, so nothing will look obviously wrong.
manifest.json records those checks per row, along with a SHA-256 for every uploaded file. Each row is also a clean success under the collection's own predicate: the task succeeded and no contact was made with clutter, the hazard bar, mounted fixtures or the rest of the environment.
Layout
pact_place_corridor_v10_10_tablecam_validation10/
manifest.json per-row metadata, camera validation and file hashes
ledger.jsonl the full run ledger, including rejected attempts
contract.json the frozen run contract
rows/NNN_<row>/ one directory per accepted episodePer-row files: trajectory.h5, result.json, and MP4s for the exterior camera (RGB + depth), the wrist camera (RGB + depth) and the proximity-sensor heatmap.
Coverage
Ten cells spanning four layout families, both intrusion sides and all three pendant poses. Cells and seeds are listed in manifest.json.
One inconsistency worth naming
result.json in row 008 (F0targetside_stagger|left|pos5) is far larger than the others (~73 MB vs ~11 KB): that row was collected before per-frame contact-audit summarisation was enabled. The trajectories, videos and calibration are unaffected.
