Why calibrate t_ga
t_ga is the time offset between the gyroscope and the accelerometer inside one IMU. td is the time offset
between the camera and the IMU. MVIS fits both. Kalibr and Basalt fit only td: they treat the IMU as one clock.
This page asks one question: what happens to a camera–IMU calibration when the IMU has a t_ga?
1. With t_ga = 0, the three tools agree
Section titled “1. With t_ga = 0, the three tools agree”- Two datasets: Looper Insight 9 (looper_1) and Intel T265 (VI-Rig april_01).
- Prepared so
t_gais 0: MVIS calibrated each raw recording. We then resampled the camera and IMU streams with that result. So on the new bag, by MVIS’s estimate,td= 0,t_ga= 0 and the IMU scales are 1. - Settings: each tool’s usual settings. T265: camera intrinsics pinned; Looper: intrinsics free.
- Result: all three tools read
tdwithin 0.3 ms of 0. The IMU scales are within 0.4 % of 1, except Basalt on the T265 (below).
| Tool | Looper Insight 9 | Intel T265 | ||
|---|---|---|---|---|
| td (ms) | scale error (%) | td (ms) | scale error (%) | |
| MVIS | −0.01 | 0.01 | +0.07 | 0.30 |
| Kalibr | −0.04 | 0.13 | −0.19 | 0.34 |
| Basalt | −0.04 | 0.21 | −0.28 | 1.50 |
Corrected bag, no injected delay. Scale error is the largest |scale − 1| over the six IMU axes.
Two scales are further off: Basalt on the T265 reads gyro x and accel z about 1.2 % and 1.5 % from 1. That is
already there with no offset, so it is not caused by t_ga.
2. Add a t_ga: delay the accelerometer
Section titled “2. Add a t_ga: delay the accelerometer”- Sweep: delay only the accel by τ = −50, −20, −10, −5, −2, 0, 2, 5, 10, 20 and 50 ms. Everything else is
unchanged. That is 11 bags per device, and the true
t_gain each is τ. - Run all three tools on every bag, with the same settings as above.
- MVIS reports the delay as
t_ga(slope 1.00 on both devices). Itstdstays flat, and its IMU scales change by under 0.01 %. - Kalibr and Basalt have no
t_ga, so theirtdtakes a steady share of τ. A share of 0.64 meanstdmoves 0.64 ms for every 1 ms oft_ga. The shares are 0.64 (Kalibr) and 0.59 (Basalt) on Looper, and 0.30 and 0.28 on the T265. - Their IMU scales drift too: mostly under 0.2 % within ±10 ms (Basalt on the T265: accel 0.3 % at ±2 ms), and up to about 1.8 % at ±50 ms.
- No warning: every run of every tool converged.
This is not a bug in Kalibr or Basalt. With one IMU clock, the closest fit puts td somewhere between the gyro and
the accel. Where depends on the recording, likely on how much the gyro and the accel each drive the fit; that is not
tested here.
3. Real devices have a t_ga
Section titled “3. Real devices have a t_ga”MVIS measures t_ga on the raw bags: −5.03 ms on Looper and −5.69 ms on the
T265. A tool without t_ga moves td by its share of that.
| Device | t_ga on the raw bag (MVIS) | Kalibr: share → td moved | Basalt: share → td moved |
|---|---|---|---|
| Looper Insight 9 | −5.03 ± 0.02 ms | 0.64 → −3.21 ms | 0.59 → −2.97 ms |
| Intel T265 | −5.69 ± 0.43 ms | 0.30 → −1.72 ms | 0.28 → −1.60 ms |
On the raw bags, Kalibr's td really differs from MVIS's by about this much (−3.16 ms on Looper, −1.91 ms on the T265).
Conclusion: t_ga matters for camera–IMU calibration. On these two devices, a tool without it moves td by
about 1.6–3.2 ms.
MVIS fits t_ga by default (solve.estimate_t_ga: true, with a weak 10 ms prior, sigma_t_ga: 0.010), as in
these runs. See Estimate t_ga. To use a tool without t_ga,
remove the offset first with corrected-dataset export.
Limits
Section titled “Limits”The test favours MVIS. The zero point is MVIS’s own calibration, and the sweep injects exactly the shift
MVIS models (a pure accel delay). Which tool’s td is right on raw data is not tested. A real offset
need not be a pure shift: on the T265 it shrinks with frequency, from −6.8 ms at 2–4 Hz to −3.6 ms at 16–22 Hz (less
certain above 22 Hz), so one t_ga is a compromise. One recording per device,
and the MVIS authors ran all three tools.
The sweep bags are on the Hub, with a README, the MVIS calibration used for the correction and a provenance.json
(sign, τ, crop, sha256 per bag):
calibench-vi/datasets→looper-insight9/tga-sweepcalibench-vi/datasets→virig-4imus-3cams/tga-sweep
Licence CC BY-NC 4.0, gated; commercial use by request. Please cite the VI-Rig dataset and MVIS.