Data

Downloads

Dataset Schema

Each trajectory is a .npz file organized as {split}/{platform}/{platform}_{split}_{i}.npz. The task is to predict the mean body-frame velocity (v_x, v_y, v_z) in m/s for each 1.0 s window (200 samples @ 200 Hz) of IMU data.

KeyShapeDescription
imu(N, 6)6-axis IMU in body frame, SI units: columns [acc_x, acc_y, acc_z, gyro_x, gyro_y, gyro_z]. Accelerometer retains gravity (‖accel‖ ≈ 9.8 m/s² at rest). Gyroscope in rad/s.
ts(N,)Timestamps in seconds at 200 Hz.
pos(N, 3)Ground-truth position in metres (world frame).
quat(N, 4)Ground-truth orientation as quaternion [x, y, z, w].
vel_body(N, 3)Body-frame velocity target [v_x, v_y, v_z] in m/s, derived from pos/quat. This is the prediction target.
platform_idscalarPlatform label: 0=car, 1=dog (quadruped), 2=drone, 3=human (handheld).
fsscalarSample rate — always 200 Hz.

Window indices and per-window targets are in index/: train_windows.csv / val_windows.csv (window_id → trajectory + start sample) and train_targets.csv / val_targets.csv (window_id → vx, vy, vz).

Primary metric: macro-averaged velocity RMSE (mean of per-platform RMSEs, so platform size imbalance cannot be gamed).

Secondary metric: ATE — organizer integrates per-window velocity with ground-truth orientation over 5 m drift-corrected segments (position RMSE).

Splits are deduplicated at the trajectory level (SHA-256 of raw IMU content); train/val/test share no recording.

Split Counts

Platform Train Val
Car 44 12
Quadruped 36 13
Drone 61 17
Handheld 26 7
Total 167 49

Data Explorer

🚧 WORK IN PROGRESS

The interactive data explorer is being finalized and will be back shortly.