IMU Odometry Challenge · IROS 2026

Single-Head IMU Velocity Estimation Across Platforms via a Multi-Scale, Embodiment-Aware Encoder

2nd place (out of 131 teams)
IROS 2026 Workshop “Beyond Exteroception: Interoceptive Perception for Resilient Robotics”
Spatial AI and Robotics (SPARO) Lab, Inha University, South Korea
2ndout of 131 teams
0.184TartanIMU Score, 89 test sequences
1 headcar · quadruped · drone · handheld
5.4 Mparameters, one set of weights
Abstract

One IMU network. Any robot.

Inertial measurement units (IMUs) are mounted on almost every robot, which makes them a natural basis for one inertial model shared across platforms. However, the same IMU signal describes different motion on a car, a quadruped, a drone and a handheld device, and the platform is not given at test time. We propose a single network with one velocity head for all four platforms, built on two principles. Multi-Scale: the encoder reads the IMU from tens of milliseconds to the whole trajectory, using a residual stem, S4D state-space layers and a bidirectional GRU. Embodiment: a head infers the platform from the IMU alone, and its posterior conditions the encoder, the head and the output scale.

We further adapt the network to unseen recording sessions by self-distillation on the unlabelled test inputs, towards a teacher refined by strapdown IMU integration. Our experiments showed that embodiment conditioning is necessary, since a model trained without one platform failed on it with 3.8–27× its in-distribution error. Our submission achieved a TartanIMU Score of 0.18405 over the 89 test sequences (ATE20 0.498 m, AVE 0.147 m/s, RTE 0.680 m) and 0.23110 on the public leaderboard.

Architecture

The whole pipeline

Overall pipeline, with the data flow animated
One set of weights, 5.4 M parameters. (a) The window encoder (L1, L2) turns every one-second window into four ordered tokens. (b) After FiLM conditioning, a BiGRU (L3) integrates the tokens over the whole trajectory, and the four states of each window are folded back into one feature. (c) The platform feature is concatenated beside every window feature, and one binned velocity head, scaled by the platform posterior, outputs the body-frame velocity of every second. (d) The embodiment branch (pink) infers the platform from the IMU alone; the platform label is only its training target.
Multi-Scale Encoder

Three time scales, one encoder

An IMU window mixes events whose durations differ by two orders of magnitude. The encoder reads them at three time scales, each with the operator that suits it, and each level takes the output of the one before.

The three time scales of the encoder
L1

Tens of milliseconds

Residual conv stem

Footfalls, impacts, and rotor or road vibration last tens of milliseconds. A stride-2 convolution with two residual blocks maps the 200×6 window to 100 steps of 320 channels.

L1: residual conv stem
L1 feature map
L2

One second

S4D ×6 → four ordered tokens

Six S4D layers take the L1 features; each channel learns one damped-oscillation kernel that spans the whole second. The output is split into four quarters and pooled into four tokens, so the order of events inside the second is kept. A motion-statistics summary is added to every token.

L2: S4D and ordered tokens
4 tokens per second
L3

Whole trajectory

BiGRU over every window

An IMU does not measure velocity, so its level has to be carried across windows. The tokens of all windows are laid out in time order, and a two-layer bidirectional GRU runs over the whole trajectory in one pass.

L3: BiGRU across windows
Embodiment

The platform is inferred, never given

The same IMU pattern means different motion on a car and on a quadruped. An embodiment head scores every token over the four platforms, and its trajectory-mean posterior gives a 64-dimensional platform feature e. The feature is used twice.

① FiLM

Scale and shift every token

Before the BiGRU, the platform feature modulates every token, so one shared recurrence can integrate each embodiment differently.

FiLM conditioning
② Concat

Beside every window feature

After the BiGRU, the platform feature sits beside every window feature, [hk ; e], so a single velocity head serves every platform.

Concatenation into the head
Results

Official evaluation

2ndfinal ranking, out of 131 teams
0.18405TartanIMU Score, 89 test sequences
0.23110public leaderboard

Per platform

PlatformATE20 (m)AVE (m/s)
Car 0.3410.067
Quadruped 0.3460.078
Drone 0.7590.377
Handheld 0.5450.067
Average0.4980.147

Drones fly an order of magnitude faster than the other platforms, which is where most of the error sits; normalised by speed, the four platforms are within a few points of one another.

Leave one platform out

Held outAVEvs. seen
Quadruped0.328 3.8×
Car0.515 5.4×
Drone1.469 5.2×
Handheld2.307 27×

Trained on three platforms and tested on the fourth, every held-out platform collapsed. A shared model works because it has seen every embodiment, which is why the network has to know the embodiment.

Velocity in, trajectory out

Trajectories on four platforms
Held-out validation trajectories, top view, integrated from one velocity per second.
ground truth ours, from the IMU only

The encoder separates the platforms

t-SNE of window-encoder features. On the test set, the platform inferred without any label matches the official per-platform counts exactly: 18 car, 16 quadruped, 45 drone and 10 handheld trajectories. The drones whose IMU reports in the world frame and in the body frame form separate clusters.

Car Quadruped Handheld Drone (world frame) Drone (body frame)
t-SNE, validation
Validation · true platform
t-SNE, test
Test · inferred platform
Team SPARO

The people behind it

Spatial AI and Robotics (SPARO) Lab, Inha University