A Unified Inertial Encoder for Human and Humanoid Motion

1 Amazon FAR2 UC Berkeley3 Stanford University4 Carnegie Mellon University

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.

Human and humanoid motion share an inertial representation for odometry and motion-description retrieval.
Human motion knowledge transfers to a physical humanoid through a shared inertial interface.

Motivation

Method

Results

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.

Motion
IMU site
Side
Loading G1…
Drag to rotate
Computing signals…
Kinematic IMU synthesis on G1. The measured pelvis IMU (gold) and the joint angles along each chain (dashed) determine every synthesized IMU (blue). Pick a motion, or click an IMU on the robot.

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.

Rate
Timing
Same motion, 240 samples120 Hz · uniform
Discrete25 samples per token: span changes with the rate Continuous125 ms per token, placed by timestamp
Discrete CNNfixed sample count
10 tokens · 124% off reference
Continuous encoderfixed time span
16 tokens · 5.5% off reference
Token output by indexreference · 240 Hz uniformtap the signal or a token to link input and output
The same motion re-sampled and tokenized by a discrete CNN (25 samples per token) and by the continuous encoder (125 ms per token, two levels of 4-tap triangular pooling). Illustrative fixed weights; the binning and pooling follow the tokenizer implementation.

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).

Climbing stairs

G1 climbing stairs (recording)Recording
Our estimated trajectory while climbingOurs

Zero-shot estimate while the G1 climbs: the robot is posed from its measured joints along the predicted pelvis path (gold), with no real-robot training.

Runtime and Language Retrieval

Inference runtime on an NVIDIA L40S and a physical G1 descending stairs, with retrieved descriptions changing from Walking to Standing.

1.78 ms per 4-s, 12-IMU window (TensorRT, NVIDIA L40S), under the 5-ms sampling interval. On the real G1, retrieval switches from “Walking” to “Standing” as it stops.

Descending stairs

G1 descending stairs (recording)Recording
Our estimated trajectory while descendingOurs

The same checkpoint on the way down, where foot impacts and pitch changes stress inertial odometry most.

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.

MethodHumanHumanoid (G1)
NymeriaNatural MotionBONES-Seed (Human)BONES-Seed (G1)Real-Trajectory (G1)
AVEATEGTATEPredAVEATEGTATEPredAVEATEGTATEPredAVEATEGTATEPredAVEATEGTATEPred
Pelvis IMU only
TLIO†0.1228.14917.760.18940.7281.310.2450.7170.7190.1730.7610.7620.37117.8617.86
AirIMU†12.62––109.3––0.2129.472505.50.28111.83306.66.231731.1–
AirIO†0.0697.481113.90.280158.1157.90.1400.5301.9180.1180.7201.6900.35016.8220.48
TartanIMU0.30137.7435.530.332155.8156.30.328*2.970*2.964*0.219*2.176*2.176*0.39118.9418.96
Pelvis IMU + joint positions and velocities
AirIO w/ joints†0.0606.91239.640.08014.11209.20.2050.9071.6520.1230.6201.5650.1905.97622.25
Shared 12-site multi-IMU input
Ours0.0262.46818.200.0497.45650.540.0310.1130.1480.0240.1010.1270.0993.15311.50
1 / 6Recordings shown in the paper
One held-out recording per dataset: ours (gold) and AirIO (blue) against ground truth (gray). Use the arrows for five more sets.

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.

MethodHumanHumanoid (G1)
Nymeria
R@1 / mAP (%)
BONES-Seed
R@1 / mAP (%)
G1 · seen categories
R@1 / mAP (%)
G1 · unseen categories
R@1 / mAP (%)
Collapse4.4/0.119.7/0.221.9/0.89.8/0.1
ImageBind8.9/0.17.1/0.411.4/1.64.6/0.1
IMU2CLIP†16.2/0.451.8/5.236.1/11.217.3/0.5
Ours14.9/0.660.7/15.963.4/32.953.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.

Sampled G1 poses with annotated motion categories and descriptions retrieved by our model and ImageBind.
Retrieval on a retargeted G1 sequence (ours: 2-s windows, ImageBind: 10-s). Hatching marks incomplete windows.

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.

VariantNymeria (Human)BONES-Seed (G1)Real-Trajectory (G1)
ATEGTATEPredATEGTATEPredATEGTATEPred
Training embodiment
Humanoid-only8.04117.500.1620.1805.90113.15
Input representation
Single pelvis IMU3.59216.660.3300.3358.11412.81
Pelvis IMU + joints2.28316.120.1360.1643.51318.36
Model design
Without alternating attention2.46614.310.1100.1283.53011.71
Without continuous-time encoding31.4231.511.1891.18917.3717.67
Data diversity
1/64 of data4.88218.400.1540.1664.36912.44
1/16 of data3.50016.930.1110.1313.79211.95
1/4 of data2.84714.640.0990.1213.71611.98
Full model
Ours2.46818.200.1010.1273.15311.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.

Loading embedding…

Compute-Optimal Scaling

Seven model sizes (2.8–274 M parameters), 235 EMA checkpoints. A Chinchilla-style fit L(N,D)=E+A/Nα+B/DβL(N,D)=E+A/N^{\alpha}+B/D^{\beta} gives Nopt∝C0.52N_{\mathrm{opt}}\propto C^{0.52} and Dopt∝C0.48D_{\mathrm{opt}}\propto C^{0.48}. Here, NN counts parameters, DD counts processed tokens including repeated windows, and C=6NDC=6ND 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.

(a) Measured scaling
Loading scaling data…

Solid: measured · dotted: fitted law · dashed: optimal frontier. Hover a dot.

(b) Fitted loss surface
Loading scaling data…

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/}
}