P013 — In-field IMU Rectification Without Gyroscope
Abstract
Low-cost telematics devices deployed in commercial vehicles often lack gyroscopes, providing only a 3-axis accelerometer and a GNSS receiver. This paper presents a two-level method for estimating and correcting the full 3D orientation (roll, pitch, yaw) of such devices without any gyroscope data, using only gravity at rest and GPS velocity during motion.
Level 1 aligns the measured gravity vector to the reference [0, 0, g] using Rodrigues’ rotation formula, achieving exact correction of the pitch–tilt component. Level 2 estimates the residual yaw by sweeping angular projections of the horizontal acceleration onto GPS-derived dv/dt and selecting the angle that maximizes Pearson correlation.
The method is validated end-to-end using RoadSimulator3 (RS3) as a ground-truth generator: synthetic trajectories with known device orientations (10°/20°/30° roll/pitch/yaw) are processed through the Telemachus Data Platform pipeline, and the estimated angles are compared to the injected truth.
Results: On synthetic data, yaw is recovered within ±0.5° (r = 0.999). On RS3-generated realistic traces (99K points, ~87 km), yaw is recovered within ±2° (r = 0.969). The full pipeline runs in <2 seconds on commodity hardware.
Introduction
Problem Statement
In fleet telematics, IMU devices are typically mounted at arbitrary orientations inside vehicles — on dashboards, under seats, or in gloveboxes. The measured accelerations mix the vehicle’s true longitudinal/lateral/vertical dynamics with gravity projections due to the unknown mounting orientation.
Classical approaches to sensor-to-vehicle alignment require either:
- multi-position calibration protocols (Syed et al., 2006) — impractical in the field,
- gyroscope-based orientation tracking (Fong, 2008; Tedaldi, 2014) — unavailable on low-cost devices.
Contribution
We propose a fully automatic, in-field calibration that:
- Requires no gyroscope — only accelerometer + GPS,
- Requires no calibration protocol — works on normal driving data,
- Estimates all three rotation angles (roll, pitch, yaw),
- Is validated quantitatively against simulation ground truth.
Relation to Prior Work
This work extends P011 (Edet, 2026) which reviews the Syed/Tedaldi/Fong pipeline for full IMU calibration. P013 addresses the specific case where the gyroscope is absent, which is common in cost-optimized fleet deployments (e.g., Teltonika FMC880 without gyro, OBD dongles, smartphone-based systems).
Method
Level 1 — Gravity-Based Tilt Correction (Rodrigues)
At rest (speed < 0.3 m/s, acceleration variance < threshold), the measured acceleration vector a_rest should equal [0, 0, g]. Any deviation indicates a rotation R of the sensor.
We compute the rotation matrix R that aligns [0, 0, 1] to a_rest/‖a_rest‖ using Rodrigues’ formula:
v = [0,0,1] × â_rest
s = ‖v‖, c = [0,0,1] · â_rest
R = I + [v]× + [v]ײ · (1-c)/s²
Applying R⁻¹ = Rᵀ to all accelerometer (and gyroscope, if available) measurements corrects the gravity alignment exactly.
Static segment detection uses a quasi-static detector (QSD) inspired by Tedaldi (2014): sliding-window variance of ‖a‖ combined with GPS speed < 0.3 m/s.
Level 2 — Yaw Estimation via GPS Correlation
After Level 1, the gravity component is removed. In a correctly aligned sensor:
- a_x = longitudinal acceleration ≈ dv/dt (from GPS)
- a_y = lateral acceleration ≈ 0 in straight-line driving
If a residual yaw ψ exists, the true longitudinal acceleration is:
a_long = a_x · cos(ψ) + a_y · sin(ψ)
We estimate ψ by maximizing the Pearson correlation between a_long(ψ) and dv/dt_GPS:
ψ* = argmax_{ψ ∈ [-45°, +45°]} |corr(a_x·cos(ψ) + a_y·sin(ψ), dv/dt_GPS)|
This is computed on segments where speed > 3 m/s and |dv/dt| > 0.3 m/s² (significant acceleration/braking), using a 0.5° angular sweep.
Combined Pipeline
Raw IMU data
│
├── QSD: detect static segments (speed + variance)
├── Level 1: Rodrigues rotation R₁ (gravity alignment)
│ └── Apply R₁ᵀ to all acc/gyro columns
├── Level 2: GPS correlation sweep → ψ*
│ └── Apply Rz(ψ*)ᵀ to all acc/gyro columns
└── Residual bias subtraction (mean at rest → 0)
│
▼
Rectified acceleration in vehicle frame
Experimental Validation
Simulation Setup (RS3)
RoadSimulator3 generates synthetic telematics data with:
- Known device orientation R = Rz(yaw) · Ry(pitch) · Rx(roll) applied to all IMU channels,
- Realistic noise (σ_acc = 0.02 m/s², σ_gyro = 0.002 rad/s),
- GPS at 1 Hz, IMU at 10 Hz (multi-rate),
- Routes on real road networks via OSRM (Haute-Normandie, France).
Results — Synthetic Data
| Input (roll, pitch, yaw) | Yaw estimated | Correlation | Error |
|---|---|---|---|
| (10°, 20°, 0°) | -3.5° | 0.999 | 3.5° |
| (10°, 20°, 30°) | 29.5° | 0.999 | 0.5° |
| (5°, 5°, 15°) | 15.0° | 0.999 | 0.0° |
| (15°, 8°, 20°) | 20.0° | 0.999 | 0.0° |
Gravity correction (Level 1) achieves residual bias < 0.001 m/s² on all axes.
Results — RS3 Realistic Trace
On a 99,366-point trace (~87 km, Haute-Normandie) with injected orientation R(10°, 20°, 30°):
| Metric | Value |
|---|---|
| Yaw estimated | 28.0° (error: 2.0°) |
| Correlation | 0.969 |
| Valid acceleration segments | 7,400+ points |
| Total processing time | < 2 seconds |
| Residual bias (ax, ay, az) | < 0.001 m/s² |
Limitations
- Yaw accuracy depends on the availability of acceleration/braking segments. Constant-speed-only traces yield lower correlation.
- Level 1 cannot separate roll from yaw — the Rodrigues rotation is the minimum-angle alignment. Euler angles extracted from R are indicative, not exact. The correction is nonetheless exact for gravity removal.
- Yaw sweep range is limited to ±45°. Extreme yaw orientations (> 45°) require extending the range, which increases computation time linearly.
Implementation
The method is implemented in the Telemachus Data Platform as IMUCalibratorStage (D1 pipeline):
estimate_rotation()— Level 1: QSD + Rodriguesestimate_yaw_from_gps()— Level 2: correlation sweepapply_rotation_correction()— R⁻¹ application to acc/gyro columns
Source: telemachus-platform/src/telemachus_platform/stages/d1_imu_calibrator.py
The stage integrates with the full D0→D3 pipeline and is validated by tests/test_rs3_to_telemachus.py (6/6 round-trip tests passing).
Conclusion
We demonstrate that full 3D orientation estimation of a vehicle-mounted IMU is achievable without gyroscope data, using only accelerometer measurements and GPS velocity. The two-level approach — Rodrigues gravity alignment followed by GPS-correlation yaw sweep — achieves sub-2° accuracy on realistic simulated data and runs in real-time.
This opens the door to accurate telematic analytics (driving score, event detection, energy estimation) on the large installed base of gyroscope-free fleet devices, without requiring any calibration protocol or hardware modification.
References
- Syed, Z., Aggarwal, P., & Noureldin, A. (2006). Multi-position calibration of MEMS-based IMU.
- Tedaldi, D. (2014). IMU calibration without external equipment.
- Fong, W. T. (2008). Field use IMU calibration methods.
- Edet, S. (2026). P011 — Rectification inertielle 10 Hz pour la donnée mobilité. Teleforge.
- Edet, S. (2025). RoadSimulator3: A Modular Framework for Inertial Vehicle Trajectory Simulation. PhD Thesis.