Smart glasses can track where you are with only their built-in
motion sensor, an inertial measurement unit (IMU); estimating position this
way is called inertial odometry. It is low-power and privacy-friendly, but
tiny errors accumulate: after minutes of walking, the estimate has drifted
metres away.
MARIO starts from one observation: the IMU is attached to a person. A model
infers from head motion how the body below is moving, keeping estimates
consistent with human walking, and three sensors glasses already carry
(a second IMU, a barometer, a magnetometer) steady them further.
The pose prior. A human-pose-grounded framework that injects a learnt
IMU-inferred kinematics prior into the odometry model, improving stability and reducing
drift.
The sensor fusion. A framework integrating barometer, magnetometer, and
dual-IMU signals, substantially improving vertical and heading cues.
The evidence. Both modules drop into four existing architectures (TLIO,
AirIO, RoNIN, EqNIO) with consistent gains across three datasets.
Why odometry drifts. A schematic, not measured data: each step adds a
tiny heading error, and the errors compound along the walk. MARIO keeps the estimate tied
to how a body actually moves, so the path stays close to the truth.
up to 44%less position error over long walks
up to 42%less drift as the walk gets longer
315 FPSinference speed, well beyond real time
Implementation
MARIO is not a new tracker built from scratch. It is two add-on modules that plug into
existing inertial odometry systems; the same two modules improved all four systems we tried
them on.
The pose model. A neural network reads the head’s acceleration and
rotation and predicts how the pelvis and legs are moving. Its prediction
anchors the tracker physically: position estimates must stay consistent with how a walking
body actually moves. Arms and hands are left out; head motion says too little about them.
Sensor fusion. Each additional sensor stream is aligned in time with the
main IMU and compressed into a compact summary of what it is currently reporting. The
summaries are then fed into the host tracker together with the pose model’s prediction,
so any of the four trackers can use them without changing its own design.
The pose model. A neural network reads the head’s acceleration and
rotation and predicts how the pelvis and legs are moving. Its prediction
anchors the tracker physically: position estimates must stay consistent with how a walking
body actually moves. Arms and hands are left out; head motion says too little about them.
Head motion in, pelvis and legs out.Inside the pose model: a shared GRU feeds a position branch, a rotation branch and a velocity decoder.
Sensor fusion. Each additional sensor stream is aligned in time with the
main IMU and compressed into a compact summary of what it is currently reporting. The
summaries are then fed into the host tracker together with the pose model’s prediction,
so any of the four trackers can use them without changing its own design.
Every stream is encoded, concatenated, fused, then handed to the existing tracker.
Each fused sensor fixes a different kind of error:
Barometer: senses air pressure, which falls as you climb. This anchors altitude on stairs and slopes.
Magnetometer: senses the Earth’s magnetic field, giving a compass heading that stops the estimated path from slowly rotating away from the real one.
Second IMU: sits a few centimetres from the first, so any head rotation reads slightly differently on each. Comparing the two pins rotation down more firmly.
Barometer. Air pressure falls as you climb, which anchors altitude on stairs and slopes.Magnetometer. The Earth’s field gives a compass heading, so the path stops rotating away.Second IMU. A few centimetres from the first, it reads head rotation slightly differently.
How we tested it
We trained and evaluated on Nymeria: 264 people wore sensor-equipped glasses
for about 300 hours and 400 kilometres across 50 environments, with motion capture recording
their true position.
264people wearing sensor-equipped glasses
~300 hof recorded motion
400 kmwalked in total
50different environments
Evaluation walks are held out from training, and we also ran the model,
without any retraining, on a second dataset of home activities. We report
how far the estimate ends up from the truth and
how fast that error grows.
Results
The pose model alone already reduces error. Adding the fused sensors helps most on
long walks, exactly where inertial odometry drifts the worst.
10.19 m → 5.73 maverage position error of TLIO on Nymeria, before and with MARIO
4 / 4trackers improved by the same two add-on modules
up to 53%less drift on home recordings it never trained on
All four trackers improved:
TLIO
AirIO
RoNIN
EqNIO
Average position error on Nymeria. The same two add-on modules, on TLIO and AirIO, two of the four trackers.
AirIO’s error fell from 6.85 metres to 4.64, and the remaining
two, RoNIN and EqNIO, improved similarly, so the idea is not tied to any one design. On unseen home recordings,
error still dropped by roughly a third, and inference runs comfortably in real time.
Removing one sensor at a time shows they are not redundant: the barometer contributes most to
vertical accuracy, while the magnetometer and second IMU remove much of the remaining drift.
Team
This is research from the
SPICE Lab
at Northwestern University by:
Where am I, if all I have is the motion sensor in my glasses?
Ground truth, baseline and MARIO on one long indoor walk
The problem
Walk long enough with only an IMU, and the estimate drifts metres away.
smart glasses already carry an IMUlow-power and privacy-friendlybut tiny errors accumulate step after step
The idea
The IMU is attached to a person, so use what a body can do.
MARIO inputs: two IMUs, a barometer, a magnetometer, and PoseNet.
Module 1 · Pose prior
Infer the body from the head
A model reads head motion and predicts how the pelvis and legs are moving, which keeps estimates consistent with human walking.
Module 2 · Sensor fusion
Add what glasses already carry
A second IMU, a barometer, and a magnetometer steady the estimate, especially altitude and heading.
plugs into TLIOAirIORoNINEqNIO
Method · Pose prior
Head motion goes in, the motion of pelvis and legs comes out.
Head motion in, pelvis and legs out.
Inside: a shared GRU feeds a position branch, a rotation branch and a velocity decoder.
It anchors the tracker physically. Position estimates must stay consistent with how a walking body actually moves. Arms and hands are left out, because head motion says too little about them.
Method · Sensor fusion
Every sensor stream is encoded, then fused with the pose prediction.
Nothing about the host tracker changes. Each stream is aligned in time with the main IMU and compressed into a compact summary. The summaries and the pose prediction are fed to the existing tracker.
Method · Why each sensor
Each fused sensor fixes a different kind of error.
Barometer. Air pressure falls as you climb, which anchors altitude on stairs and slopes.
Magnetometer. The Earth’s field gives a compass heading, so the path stops rotating away.
Second IMU. A few centimetres from the first, it reads head rotation slightly differently.
Evaluation
Trained and tested on Nymeria, then run on home recordings with no retraining.
264people wearing sensor-equipped glasses
~300 hhours of recorded motion
400 kmkilometres walked in total
50different environments
Results
Up to 44% less position error, and drift grows more slowly.
One long indoor walk. Black: ground truth. Blue: MARIO. Pink: the TLIO baseline.
up to44%less position error over long walks
up to42%less drift as the walk gets longer
315 FPSframes per second on a GPU, well beyond real time
Results · Generality
The same two modules improved all four trackers.
Average position error on Nymeria, before and with MARIO, for two of the four trackers.
4 / 4trackers improved: TLIO, AirIO, RoNIN, EqNIO
up to53%less drift on home recordings the model never trained on
Removing one sensor at a time shows they are not redundant.
Barometer
Vertical accuracy
Contributes most to vertical accuracy: altitude stays anchored on stairs and slopes.
Magnetometer
Heading
Together with the second IMU, removes much of the remaining drift: the estimated path stops rotating away.
Second IMU
Rotation
Comparing two readings of the same head rotation pins rotation down more firmly.
The pose model alone already reduces error. Adding the fused sensors helps most on long walks, exactly where inertial odometry drifts the worst.
Backup · Numbers
The numbers behind the headline, from the paper.
10.19 → 5.73 maverage position error, TLIO on Nymeria
6.85 → 4.64 maverage position error, AirIO on Nymeria
315 FPSframes per second on an NVIDIA A40 GPU
133.6 MFLOPs per inference
Nymeria: about 300 hours from 264 people. The paper also tests on Aria Everyday Activities (7.3 hours, home activities, with no retraining) and on the TLIO dataset (60 hours).