axol migrate-dataset updates Cartesian LeRobot datasets recorded with axol
v0.1.31 or earlier so they replay correctly with v0.1.32 and later.
In v0.1.32, the URDF root gained a +90° yaw so its world frame is FLU (+x
forward, +y left, +z up). Older Cartesian datasets store poses in the previous
frame. The migration applies that root transform to the position and
orientation of both end effectors in action and observation.state. It does
not alter videos, gripper values, timestamps, or joint-space datasets.
meta/axol.json to prevent accidental double migration.
Before making changes it backs up every file it will replace under
meta/migrations/axol-urdf-root-yaw-v0.1.32/. If migration fails, those files
are restored automatically; a later run also recovers an interrupted migration
before retrying.
Only run this on Cartesian data recorded with axol v0.1.31 or earlier. A
joint-space dataset does not need migration and is rejected. Legacy datasets do
not record their axol version, so recording provenance is the reliable way to
decide whether an unmarked dataset needs it. Fresh Cartesian datasets now write
their pose-frame provenance to meta/axol.json automatically.
--from-version is required because datasets made before pose-frame metadata
was added cannot distinguish pre-v0.1.32 data that needs migration from later
data that is already correct. The command rejects v0.1.32 and newer values.
