In-field IMU Rectification Without Gyroscope

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:

  1. Requires no gyroscope — only accelerometer + GPS,
  2. Requires no calibration protocol — works on normal driving data,
  3. Estimates all three rotation angles (roll, pitch, yaw),
  4. 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 estimatedCorrelationError
(10°, 20°, 0°)-3.5°0.9993.5°
(10°, 20°, 30°)29.5°0.9990.5°
(5°, 5°, 15°)15.0°0.9990.0°
(15°, 8°, 20°)20.0°0.9990.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°):

MetricValue
Yaw estimated28.0° (error: 2.0°)
Correlation0.969
Valid acceleration segments7,400+ points
Total processing time< 2 seconds
Residual bias (ax, ay, az)< 0.001 m/s²

Limitations

  1. Yaw accuracy depends on the availability of acceleration/braking segments. Constant-speed-only traces yield lower correlation.
  2. 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.
  3. 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 + Rodrigues
  • estimate_yaw_from_gps() — Level 2: correlation sweep
  • apply_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.
Réseau 5 sortants 4 entrants

Sources · Liens sortants

  • AR022 — AccelRectification – redressement des accélérations IMU
  • P001 — Dynamic Reprojection of Vehicle Trajectories: from Theoretical Modelling to Open Simulation (RS3)
  • P008 — Road Curvature Estimation and its Role in Risk-Aware Simulation
  • P011 — Rectification inertielle 10 Hz pour la donnée mobilité
  • RFC-0001 — RFC-0001: Telemachus Core v0.2 – Schema Evolution

Cité par · Liens entrants

  • L039 — Quand le simulateur teste l'analyseur : boucle fermée RS3 × Telemachus
  • P012 — A Modular Framework for Inertial Vehicle Trajectory Simulation and Dynamic Event Detection
  • P014 — Closed-Loop Validation of Telematics Pipelines via Synthetic Ground Truth
  • RFC-0013 — RFC-0013: D0 Device Layer — Raw Telemetry Schema