A Unified Inertial Encoder for Human and Humanoid Motion
Abstract
Learning humanoid state estimation and language-grounded motion understanding from robot recordings ties training coverage to the robot's motion repertoire. Human motion datasets offer broader coverage, yet transferring this knowledge requires overcoming differences in body geometry, sensing, and physical disturbances. To enable this transfer, we propose a unified inertial encoder whose shared inertial interface uses kinematic IMU synthesis to represent human and humanoid motion at corresponding body sites. Within this common input space, joint training on human and kinematically retargeted humanoid motion combines velocity estimation and motion–text alignment with continuous-time encoding and sensor and motion randomization. The resulting model transfers zero-shot to a physical Unitree G1 without physics simulation, real-robot training trajectories, or fine-tuning, achieving the lowest velocity error among evaluated methods across five datasets, including 0.099 m/s on real G1. Its motion-description retrieval also extends to retargeted G1 motion categories observed only in human training, demonstrating how human motion knowledge can support the generalization of humanoid inertial odometry and language-grounded motion understanding.

A Shared Inertial Interface
Twelve corresponding body sites connect human and humanoid motion: pelvis, head, and bilateral upper arms, forearms, upper legs, lower legs, and feet. On G1, kinematic transport combines the pelvis IMU, measured joint positions and velocities, and link kinematics to synthesize these streams. It requires no world pose or root velocity as input.
Continuous-time Tokenization
Timestamp-aware encoding accommodates different sampling rates, irregular timing, and missing samples without resampling to a fixed grid. Each token covers a fixed 125 ms of motion rather than a fixed number of samples, so the same motion yields the same tokens whatever the sensor rate.
Zero-shot on a Real Unitree G1
Without real-robot training or fine-tuning, the model estimates motion on hardware from the pelvis IMU and joint encoders through the shared 12-site representation. Each pair shows the recording and our estimate, with the robot posed from the measured joints along the predicted trajectory (gold).
Inertial Odometry
One checkpoint achieves the lowest AVE and ATEGT on all five datasets, and the lowest ATEPred on four; TLIO leads ATEPred on Nymeria. AVE is in m/s, ATE in m; ATEGT uses ground-truth attitude and ATEPred uses gyro-integrated attitude. Both start from the ground-truth initial pose, with no filter updates or trajectory alignment. Lower is better; bold marks column minima. † trained separately per dataset, * sequences longer than 10 s only.
| Method | Human | Humanoid (G1) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Nymeria | Natural Motion | BONES-Seed (Human) | BONES-Seed (G1) | Real-Trajectory (G1) | |||||||||||
| AVE | ATEGT | ATEPred | AVE | ATEGT | ATEPred | AVE | ATEGT | ATEPred | AVE | ATEGT | ATEPred | AVE | ATEGT | ATEPred | |
| Pelvis IMU only | |||||||||||||||
| TLIO† | 0.122 | 8.149 | 17.76 | 0.189 | 40.72 | 81.31 | 0.245 | 0.717 | 0.719 | 0.173 | 0.761 | 0.762 | 0.371 | 17.86 | 17.86 |
| AirIMU† | 12.62 | – | – | 109.3 | – | – | 0.212 | 9.472 | 505.5 | 0.281 | 11.83 | 306.6 | 6.231 | 731.1 | – |
| AirIO† | 0.069 | 7.481 | 113.9 | 0.280 | 158.1 | 157.9 | 0.140 | 0.530 | 1.918 | 0.118 | 0.720 | 1.690 | 0.350 | 16.82 | 20.48 |
| TartanIMU | 0.301 | 37.74 | 35.53 | 0.332 | 155.8 | 156.3 | 0.328* | 2.970* | 2.964* | 0.219* | 2.176* | 2.176* | 0.391 | 18.94 | 18.96 |
| Pelvis IMU + joint positions and velocities | |||||||||||||||
| AirIO w/ joints† | 0.060 | 6.912 | 39.64 | 0.080 | 14.11 | 209.2 | 0.205 | 0.907 | 1.652 | 0.123 | 0.620 | 1.565 | 0.190 | 5.976 | 22.25 |
| Shared 12-site multi-IMU input | |||||||||||||||
| Ours | 0.026 | 2.468 | 18.20 | 0.049 | 7.456 | 50.54 | 0.031 | 0.113 | 0.148 | 0.024 | 0.101 | 0.127 | 0.099 | 3.153 | 11.50 |
Motion Caption Retrieval
Motion-to-text recall at 1 (R@1) uses 19 random distractors, averaged over eight draws. Text-to-motion mean average precision (mAP) ranks all annotated windows. Both are percentages; higher is better. On retargeted G1 categories observed only in human training, our model reaches 53.8% R@1 and 11.3% mAP, compared with 17.3% and 0.5% for IMU2CLIP.
| Method | Human | Humanoid (G1) | ||
|---|---|---|---|---|
| Nymeria R@1 / mAP (%) | BONES-Seed R@1 / mAP (%) | G1 · seen categories R@1 / mAP (%) | G1 · unseen categories R@1 / mAP (%) | |
| Collapse | 4.4/0.1 | 19.7/0.2 | 21.9/0.8 | 9.8/0.1 |
| ImageBind | 8.9/0.1 | 7.1/0.4 | 11.4/1.6 | 4.6/0.1 |
| IMU2CLIP† | 16.2/0.4 | 51.8/5.2 | 36.1/11.2 | 17.3/0.5 |
| Ours | 14.9/0.6 | 60.7/15.9 | 63.4/32.9 | 53.8/11.3 |
Collapse assigns every motion window the same mean text embedding, measuring retrieval without motion-specific information. IMU2CLIP leads R@1 on Nymeria (16.2% versus 14.9%); our model leads mAP there and both metrics on BONES-Seed human motion and both G1 splits. † Trained separately per dataset.

What Enables Transfer?
Joint human–humanoid training reduces real-G1 ATEGT from 5.901 m to 3.153 m compared with humanoid-only training. The shared multi-IMU input improves both G1 trajectory metrics over direct joint inputs, and continuous-time encoding improves results across all three ablation datasets.
| Variant | Nymeria (Human) | BONES-Seed (G1) | Real-Trajectory (G1) | |||
|---|---|---|---|---|---|---|
| ATEGT | ATEPred | ATEGT | ATEPred | ATEGT | ATEPred | |
| Training embodiment | ||||||
| Humanoid-only | 8.041 | 17.50 | 0.162 | 0.180 | 5.901 | 13.15 |
| Input representation | ||||||
| Single pelvis IMU | 3.592 | 16.66 | 0.330 | 0.335 | 8.114 | 12.81 |
| Pelvis IMU + joints | 2.283 | 16.12 | 0.136 | 0.164 | 3.513 | 18.36 |
| Model design | ||||||
| Without alternating attention | 2.466 | 14.31 | 0.110 | 0.128 | 3.530 | 11.71 |
| Without continuous-time encoding | 31.42 | 31.51 | 1.189 | 1.189 | 17.37 | 17.67 |
| Data diversity | ||||||
| 1/64 of data | 4.882 | 18.40 | 0.154 | 0.166 | 4.369 | 12.44 |
| 1/16 of data | 3.500 | 16.93 | 0.111 | 0.131 | 3.792 | 11.95 |
| 1/4 of data | 2.847 | 14.64 | 0.099 | 0.121 | 3.716 | 11.98 |
| Full model | ||||||
| Ours | 2.468 | 18.20 | 0.101 | 0.127 | 3.153 | 11.50 |
ATE in meters; lower is better. Bold marks column minima. More diverse training data improves Nymeria and real-G1 ATEGT, while quarter-data training performs best on retargeted G1.
Learned Representation
The paper visualizes the trunk [CLS] features of human (blue) and humanoid (gold) motion. Corresponding categories overlap across embodiments. Switch to the language-head output to explore the aligned text space; dashed regions enclose 60% of the windows of each labeled motion category. Rest the pointer on a point for a second (or tap it) to see the 4-s motion it encodes.
Compute-Optimal Scaling
Seven model sizes (2.8–274 M parameters), 235 EMA checkpoints. A Chinchilla-style fit gives and . Here, counts parameters, counts processed tokens including repeated windows, and is training compute in FLOPs. Increasing model capacity and training exposure together uses additional compute effectively. The fit extrapolates and optimizes validation error, which need not give the best hardware transfer.
Solid: measured · dotted: fitted law · dashed: optimal frontier. Hover a dot.
Dashed: constant compute · gold: fitted minima. Hover or drag to rotate.
Citation
@misc{chen2026unifiedinertial,
title={A Unified Inertial Encoder for Human and Humanoid Motion},
author={Chen, Yutian and Zhao, Shibo and Duan, Rocky and Liu, Karen and
Sferrazza, Carmelo and Shi, Guanya and Qiu, Yuheng and Sreenath, Koushil},
year={2026},
url={https://unified-inertial-encoder.github.io/}
}



