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.
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.
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.
- 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