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). Present in train/val only — test windows are anonymized with no platform label, so a single model must handle all four without being told which one it's looking at.
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). The Kaggle Data tab additionally provides index/test_windows.csv and sample_submission.csv for the held-out test set.

At competition scale, the dataset totals 136,289 one-second windows across all platforms — 81,931 train / 23,714 val / 30,644 held-out test — for about 37.9 hours of recorded motion in total, ranging from about 5.2 hours (drone) to 13.4 hours (human) of motion per platform across all three splits.

Metric — TartanIMU Score 0.6 × (AVE / 0.7356384388) + 0.4 × (ATE20 / 3.1160277267), lower is better: you submit one body-frame velocity per test window. AVE (60% of the score) is the mean per-window Euclidean error ‖v_pred − v_gt‖ between your predicted and ground-truth body-frame velocity, in m/s — no alignment or trajectory accumulation involved. ATE20 (40% of the score) is a trajectory-level metric: the organizers rotate each prediction into the world frame using the ground-truth orientation (used only for scoring, never as model input), accumulate the per-window displacements into a path, cut the ground-truth path into ~20 m segments of travelled distance, align each segment independently to ground truth with an SE(3) Umeyama alignment (rotation + translation, no scale), and take the RMS position error within each segment; a trajectory’s ATE20 is the mean over its segments. The score is macro-averaged over the four platforms, each contributing 25%.

Splits are deduplicated at the trajectory level (SHA-256 of raw IMU content); train / val / public-test / private-test share no recording. The public leaderboard is scored on the Public test trajectories; final standings use the held-out Private trajectories. The Public/Private split is at the whole-trajectory level, never per window.

Sensors Used

Recordings across the four platforms come from two IMU models: the Xsens MTi-100 and the Epson M-G365. Expand for full specs.

Show IMU sensor specs
Xsens MTi-100 Movella / Xsens
Gyro range±450 °/s
Gyro bias instability10 °/h
Accel range±20 g
Accel bias instability15 µg
Output rateup to 2 kHz
InterfaceUSB, RS232, RS422, UART
Dimensions57 × 41.9 × 23.6 mm
Weight55 g
Operating temp.−40 to 85°C
Source: Movella MTi-100 datasheet (now EOL, replaced by Xsens Sirius)
Epson M-G365 Seiko Epson
Gyro range±450 °/s
Gyro bias instability1.2 °/h
Accel range±4 g (PDC1) / ±10 g (PDF1)
Accel bias instability14–16 µg
Output rateup to 2k Sps
InterfaceSPI, UART
Dimensions24 × 24 × 10 mm
Weight10 g
Operating temp.−40 to 85°C
Source: Epson M-G365PDC1/PDF1 datasheet

Split Counts

Platform Train Val
Car 44 12
Quadruped 36 13
Drone 289 48
Handheld 26 7
Total 395 80

Data Explorer

Browse every trajectory in the dataset — filter by platform or split, sort any column, and open a live model preview.

Open the Data Explorer →