Commit Graph

13 Commits

Author SHA1 Message Date
CarolinePascal 52659bb331 migration: detect mislabeled SO arms and relabel to 'unknown'
A robot_type of so100/so101 is treated as wrong when the joint dim isn't a
multiple of 6, or (when names are present) the first 6 joints don't match the
canonical SO set. Such datasets are migrated structurally to v3.0 with joints
left untouched and robot_type relabeled 'unknown', instead of being skipped or
degrees-converted on a false assumption.
2026-07-17 16:41:27 +02:00
CarolinePascal d53557dec4 migration: skip non-standard SO arms instead of relabeling them
Only migrate datasets usable right away as a clean 6-DOF joint stack. SO datasets
whose action/observation.state dim isn't a multiple of 6 (extra bbox/EE columns
appended) are now skipped as out-of-scope, matching the end-effector skip, rather
than being relabeled '_nonstandard' and migrated structurally.
2026-07-17 16:31:22 +02:00
CarolinePascal 17f0d8f9dc migration: suffix non-standard SO arms with _nonstandard instead of 'unknown'
Preserve the original robot_type lineage (e.g. so100 -> so100_nonstandard) for
arms whose joint dim isn't a multiple of 6, rather than erasing it to 'unknown'.
Idempotent: won't re-append the suffix.
2026-07-17 16:14:32 +02:00
CarolinePascal e1da15d243 migration: ditch end-effector (task-space) datasets
Some datasets store task-space end-effector pose (names like ee_x/ee_roll or
x/y/z) instead of joint angles; the degrees mapping is meaningless there. Detect
via feature names and skip them entirely (no conversion, no upload) rather than
migrating a mislabeled arm.
2026-07-17 15:45:48 +02:00
CarolinePascal 3ea347a3d9 migration: add extract_dataset.py to pull a sub-dataset into a standalone repo
download_subfolder gains a repo= arg so it can source from any monorepo; the new
extract_dataset.py scoped-downloads one sub-dataset and re-uploads it at the root
of a new standalone dataset repo.
2026-07-17 15:45:29 +02:00
CarolinePascal a02a0befd9 migration: match bi_so100_follower via bi_so prefix
The manifest robot_type distribution has 'bi_so100_follower', which the trailing
underscore in 'bi_so_' missed. Drop it to 'bi_so' to catch all bimanual SO
variants (bi_so_follower, bi_so100_follower, ...) with no false positives.
2026-07-17 15:34:32 +02:00
CarolinePascal 2ebc2dc1b4 migration: detect the full SO family incl. bimanual bi_so_follower
Broaden SO_PREFIXES to (so100, so101, so_, bi_so_) so bimanual two-arm datasets
(robot_type 'bi_so_follower', 12-dim) are recognized as SO and get the degrees
conversion, instead of being skipped as non_so. so_ boundary avoids matching
stray names like 'sofa'.
2026-07-17 15:33:05 +02:00
CarolinePascal 425470759d migration: extract is_so_robot_type and encoding_from_bounds helpers
Split classify() into reusable pieces: is_so_robot_type() for the robot_type
name test, and encoding_from_bounds() as the single source of truth for the
degrees_old/degrees_new/normalized/radians decision from per-joint min/max
(layout-agnostic, so v2.1 episodes_stats and v3.0 stats.json both feed it).
2026-07-17 15:32:52 +02:00
CarolinePascal 0ec7c912e7 migration: relabel robot_type to 'unknown' when SO name doesn't match structure
is_so is decided purely from the robot_type string, so datasets labeled
so100/so101 whose joint dim isn't a multiple of 6 carry a provably wrong label.
Rewrite meta/info.json robot_type to 'unknown' in that case so the v3.0 output
isn't misidentified as an SO arm.
2026-07-17 15:23:21 +02:00
CarolinePascal 9e3dc7c43c migration: fall back to structural-only when joint dim isn't a multiple of 6
Datasets whose action/state dim is not a multiple of 6 (e.g. 7-dim with an
appended EE pose, or 10-dim) are not a plain stack of SO arms, so the degrees
mapping doesn't apply. Migrate them structurally instead of aborting the whole
dataset with a ValueError.
2026-07-17 14:05:28 +02:00
CarolinePascal f82713cdb2 migration: scope subfolder download, keep normalized joints as-is
- download_subfolder: fetch only the target sub-dataset subtree instead of
  enumerating the whole community_dataset_v3 monorepo tree (fixes apparent hang)
- normalized SO gripper (RANGE_0_100) left in native 0..100 frame, matching
  degrees_new datasets, instead of remapping to +/-45deg
- uncalibrated normalized datasets: skip identity value rewrite, keep normalized
  units and flag them APPROXIMATE on the dataset card
- remove --allow-uncalibrated flag and its CANON_IS_CALIBRATED side effect
2026-07-16 17:30:10 +02:00
CarolinePascal f9dd1cf25f feat(slurm): adding support for slurm computing 2026-07-16 15:33:41 +02:00
CarolinePascal 323febcede Add community_dataset_v3 -> v3.0 SO-arm migration scripts 2026-07-16 14:44:05 +02:00