Skip to content

UZH-FPV

MVIS solving a UZH-FPV Davis bag: board, camera path and one camera frame
MVIS solve view, from the homepage

The camera–IMU calibration bags of the UZH-FPV Drone Racing dataset: an mDAVIS346 and a Snapdragon Flight, each recorded indoors and outdoors, at 45° and facing forward. A one-off study, not part of the leaderboard batch or the regression suite.

2 devices, 4 bags eachAprilGrid 5×4, 75 mm CC BY-NC-SA 3.0

Separate study · batch 2026-11-04 · not part of the leaderboard batch

Repeatability, not accuracy. There is no ground truth: a small spread shows that a tool repeats, not that it is right, and a difference shows that two tools disagree, not which one is wrong. The MVIS authors made every run, including Kalibr and Basalt.

This study has no repeatability cells: it was made before the current schema, and 4 bags per device are too few for the test (it needs 6).

mDAVIS346 + IMU · 4 recordings

Read first: All three tools use each bag's IMU weights from the residuals in UZH's own Kalibr results. Kalibr's intrinsics and baseline are inputs from the calibration UZH ships.

  • MVIS 4 of 4
  • Kalibr 4 of 4
  • Basalt 3 of 4

MVIS made two runs per recording: its default IMU model ("MVIS") and Kalibr's IMU model ("MVIS (K-IMU)"), so the IMU terms of the second mean the same thing as Kalibr's.

Fit: reprojection median, px (fit of each tool's own model, not accuracy)
Camera MVIS MVIS (K-IMU) Kalibr Basalt
mDAVIS3460.3430.3440.137–
MVIS (K-IMU) − Kalibr ◆ 3 of 11 compared rows
  • mDAVIS346 · time offset td to base IMU +0.024 ms
  • mDAVIS346 · distance to base IMU ‖p‖ −2.29 mm ◆
  • DAVIS IMU · gyro Dw[0,0] scale x +0.00198 ◆
  • DAVIS IMU · gyro Dw[1,1] scale y +0.00159
  • DAVIS IMU · gyro Dw[2,2] scale z +0.00071
  • DAVIS IMU · gyro Dw[1,0] cross −0.00003
  • DAVIS IMU · gyro Dw[2,0] cross +0.00046
  • DAVIS IMU · gyro Dw[2,1] cross −0.00037
  • DAVIS IMU · accel Da[0,0] scale x +0.00120
  • DAVIS IMU · accel Da[1,1] scale y +0.00067
  • DAVIS IMU · accel Da[2,2] scale z +0.00482 ◆
Basalt − Kalibr ◆ 4 of 11 compared rows
  • mDAVIS346 · time offset td to base IMU +0.010 ms ≠n
  • mDAVIS346 · distance to base IMU ‖p‖ +10.17 mm ◆ ≠n
  • DAVIS IMU · gyro Dw[0,0] scale x −0.01284 ◆ ≠n
  • DAVIS IMU · gyro Dw[1,1] scale y −0.00655 ≠n
  • DAVIS IMU · gyro Dw[2,2] scale z −0.00030 ≠n
  • DAVIS IMU · gyro Dw[1,0] cross −0.00100 ≠n
  • DAVIS IMU · gyro Dw[2,0] cross +0.00172 ≠n
  • DAVIS IMU · gyro Dw[2,1] cross −0.00179 ≠n
  • DAVIS IMU · accel Da[0,0] scale x −0.00454 ≠n
  • DAVIS IMU · accel Da[1,1] scale y −0.00642 ◆ ≠n
  • DAVIS IMU · accel Da[2,2] scale z −0.01989 ◆ ≠n
Basalt − MVIS (K-IMU) ◆ 8 of 19 compared rows
  • mDAVIS346 · fx −1.68 px ≠n
  • mDAVIS346 · fy −1.56 px ≠n
  • mDAVIS346 · cx −0.24 px ◆ ≠n
  • mDAVIS346 · cy −0.52 px ≠n
  • mDAVIS346 · dist k1 +0.00629 ≠n
  • mDAVIS346 · dist k2 −0.01806 ≠n
  • mDAVIS346 · dist k3 +0.04632 ◆ ≠n
  • mDAVIS346 · dist k4 −0.02500 ◆ ≠n
  • mDAVIS346 · time offset td to base IMU −0.014 ms ≠n
  • mDAVIS346 · distance to base IMU ‖p‖ +12.46 mm ◆ ≠n
  • DAVIS IMU · gyro Dw[0,0] scale x −0.01482 ◆ ≠n
  • DAVIS IMU · gyro Dw[1,1] scale y −0.00814 ≠n
  • DAVIS IMU · gyro Dw[2,2] scale z −0.00101 ≠n
  • DAVIS IMU · gyro Dw[1,0] cross −0.00097 ≠n
  • DAVIS IMU · gyro Dw[2,0] cross +0.00125 ≠n
  • DAVIS IMU · gyro Dw[2,1] cross −0.00142 ≠n
  • DAVIS IMU · accel Da[0,0] scale x −0.00573 ◆ ≠n
  • DAVIS IMU · accel Da[1,1] scale y −0.00709 ◆ ≠n
  • DAVIS IMU · accel Da[2,2] scale z −0.02471 ◆ ≠n

Dot = median difference Δ on an axis in units of the larger of the two tools' sd; shaded = ±1 sd; filled dot and ◆ = outside it; an arrow = beyond ±5 sd. No tool is the reference. "≠n" = the tools solved different recordings.

2 sensors, 20 parameter charts (open to see each tool's spread)

fx px axis 173 ± 3.35

MVIS 173.16 ± 1.8 (4)
MVIS (K-IMU) 173.30 ± 1.8 (4)
Kalibr 173.03 ± 1.2 (4) input
Basalt 171.62 ± 1.1 (3)

fy px axis 173 ± 3.41

MVIS 173.01 ± 1.7 (4)
MVIS (K-IMU) 173.15 ± 1.7 (4)
Kalibr 173.03 ± 1.2 (4) input
Basalt 171.59 ± 1.1 (3)

cx px axis 164 ± 0.586

MVIS 163.66 ± 0.19 (4)
MVIS (K-IMU) 163.65 ± 0.17 (4)
Kalibr 163.32 ± 0.33 (4) input
Basalt 163.41 ± 0.17 (3)

cy px axis 135 ± 6.36

MVIS 135.38 ± 2.8 (4)
MVIS (K-IMU) 135.39 ± 2.8 (4)
Kalibr 135.00 ± 3.1 (4) input
Basalt 134.87 ± 3.5 (3)

dist k1 axis −0.0272 ± 0.0148

MVIS −0.02695 ± 0.009 (4)
MVIS (K-IMU) −0.02739 ± 0.0089 (4)
Kalibr −0.03125 ± 0.0034 (4) input
Basalt −0.02110 ± 0.0048 (3)

dist k2 axis 0.000876 ± 0.0482

MVIS 0.00093 ± 0.028 (4)
MVIS (K-IMU) 0.00107 ± 0.028 (4)
Kalibr 0.00082 ± 0.0039 (4) input
Basalt −0.01699 ± 0.0095 (3)

dist k3 axis −0.0128 ± 0.0551

MVIS −0.02199 ± 0.031 (4)
MVIS (K-IMU) −0.02174 ± 0.031 (4)
Kalibr −0.00386 ± 0.0026 (4) input
Basalt 0.02458 ± 0.013 (3)

dist k4 axis 0.00651 ± 0.0285

MVIS 0.01262 ± 0.011 (4)
MVIS (K-IMU) 0.01230 ± 0.011 (4)
Kalibr 0.00071 ± 0.00082 (4) input
Basalt −0.01269 ± 0.0067 (3)

time offset td to base IMU ms axis 5.83 ± 0.672

MVIS 5.872 ± 0.38 (4)
MVIS (K-IMU) 5.836 ± 0.37 (4)
Kalibr 5.813 ± 0.19 (4)
Basalt 5.823 ± 0.076 (3)

distance to base IMU ‖p‖ mm axis 22.5 ± 14.6

MVIS 21.52 ± 2 (4)
MVIS (K-IMU) 21.11 ± 2.1 (4)
Kalibr 23.40 ± 1.7 (4)
Basalt 33.57 ± 2.1 (3)

gyro Dw[0,0] scale x axis 0.997 ± 0.0187 · line at 1

MVIS no value
MVIS (K-IMU) 0.99921 ± 0.0012 (4)
Kalibr 0.99723 ± 0.0016 (4)
Basalt 0.98439 ± 0.0042 (3)

gyro Dw[1,1] scale y axis 1 ± 0.033 · line at 1

MVIS no value
MVIS (K-IMU) 1.00373 ± 0.007 (4)
Kalibr 1.00214 ± 0.0081 (4)
Basalt 0.99559 ± 0.014 (3)

gyro Dw[2,2] scale z axis 1.01 ± 0.00385

MVIS no value
MVIS (K-IMU) 1.00683 ± 0.0012 (4)
Kalibr 1.00612 ± 0.0018 (4)
Basalt 1.00582 ± 0.00071 (3)

gyro Dw[1,0] cross axis −0.000614 ± 0.00394

MVIS no value
MVIS (K-IMU) −0.00061 ± 0.0014 (4)
Kalibr −0.00059 ± 0.002 (4)
Basalt −0.00158 ± 0.0007 (3)

gyro Dw[2,0] cross axis −0.00356 ± 0.0194

MVIS no value
MVIS (K-IMU) −0.00356 ± 0.0093 (4)
Kalibr −0.00403 ± 0.0078 (4)
Basalt −0.00231 ± 0.0099 (3)

gyro Dw[2,1] cross axis −0.0177 ± 0.0101

MVIS no value
MVIS (K-IMU) −0.01766 ± 0.0045 (4)
Kalibr −0.01729 ± 0.0046 (4)
Basalt −0.01908 ± 0.0042 (3)

accel Da[0,0] scale x axis 0.998 ± 0.0104 · line at 1

MVIS no value
MVIS (K-IMU) 0.99955 ± 0.0027 (4)
Kalibr 0.99835 ± 0.0033 (4)
Basalt 0.99381 ± 0.0049 (3)

accel Da[1,1] scale y axis 1 ± 0.0122 · line at 1

MVIS no value
MVIS (K-IMU) 1.00067 ± 0.0026 (4)
Kalibr 1.00000 ± 0.0018 (4)
Basalt 0.99358 ± 0.0036 (3)

accel Da[2,2] scale z axis 0.98 ± 0.0288 · line at 1

MVIS no value
MVIS (K-IMU) 0.98507 ± 0.0032 (4)
Kalibr 0.98025 ± 0.0011 (4)
Basalt 0.96037 ± 0.0045 (3)

t_ga gyro−accel ms axis −0.514 ± 0.303

MVIS not in this tool's model
MVIS (K-IMU) −0.514 ± 0.22 (4)
Kalibr not in this tool's model
Basalt not in this tool's model

Whisker = lowest to highest value over the tool's solved recordings; box = median ± sd; tick = median. Min and max come from the per-recording values behind each record's median; only these two numbers are published, not the values. Rotations are not shown: the records do not hold them yet.

5 notes on models, inputs and run settings
  • Kalibr: 8 values are input, not estimated (hollow boxes). Their spread copies the input, so it is not that tool's repeatability.
  • t_ga, the gyro–accel delay, is estimated by MVIS only; Kalibr and Basalt have no such term, so MVIS's td is not quite the same quantity.
  • Tg, the IMU g-sensitivity, is a term of Kalibr's IMU model, here from MVIS (K-IMU) and Kalibr; the MVIS default model has no counterpart, so it is not compared.
Kalibr IMU-model terms Tg (median; sd on hover)
MVIS (K-IMU) · DAVIS IMU
−0.0610.0130.0810.035−0.0520.1730.067−0.074−0.131
Kalibr · DAVIS IMU
−0.054−0.2480.1460.2060.0720.158−0.0980.0130.045
  • Like for like: Every tool starts from the camera chain UZH ships and uses the same IMU sigmas on the same bags. Kalibr keeps the camera values fixed; MVIS and Basalt refine them.
  • Note: Basalt has 3 of 4 recordings: its davis_indoor_forward solve failed (lever 120 mm, accel scale 0.84) and is left out.

Run configs, commands and the full parameter tables are in Full tables at the end of this page.

Snapdragon stereo + IMU · 4 recordings

Read first: All three tools use each bag's IMU weights from the residuals in UZH's own Kalibr results. Kalibr's intrinsics and baseline are inputs from the calibration UZH ships.

  • MVIS 4 of 4
  • Kalibr 4 of 4
  • Basalt 4 of 4

MVIS made two runs per recording: its default IMU model ("MVIS") and Kalibr's IMU model ("MVIS (K-IMU)"), so the IMU terms of the second mean the same thing as Kalibr's.

Fit: reprojection median, px (fit of each tool's own model, not accuracy)
Camera MVIS MVIS (K-IMU) Kalibr Basalt
Snapdragon left0.2030.2030.483–
Snapdragon right0.2020.2010.405–
MVIS (K-IMU) − Kalibr ◆ 1 of 13 compared rows
  • Snapdragon left · time offset td to base IMU +0.253 ms
  • Snapdragon left · distance to base IMU ‖p‖ +1.19 mm
  • Snapdragon right · time offset td to base IMU +0.272 ms
  • Snapdragon right · distance to base IMU ‖p‖ −0.80 mm
  • Snapdragon IMU · gyro Dw[0,0] scale x +0.00010
  • Snapdragon IMU · gyro Dw[1,1] scale y −0.00161
  • Snapdragon IMU · gyro Dw[2,2] scale z −0.00019
  • Snapdragon IMU · gyro Dw[1,0] cross +0.00104 ◆
  • Snapdragon IMU · gyro Dw[2,0] cross −0.00098
  • Snapdragon IMU · gyro Dw[2,1] cross +0.00042
  • Snapdragon IMU · accel Da[0,0] scale x −0.00193
  • Snapdragon IMU · accel Da[1,1] scale y +0.00021
  • Snapdragon IMU · accel Da[2,2] scale z −0.00160
Basalt − Kalibr ◆ 4 of 13 compared rows
  • Snapdragon left · time offset td to base IMU +0.042 ms
  • Snapdragon left · distance to base IMU ‖p‖ +3.10 mm
  • Snapdragon right · time offset td to base IMU +0.077 ms
  • Snapdragon right · distance to base IMU ‖p‖ +0.71 mm
  • Snapdragon IMU · gyro Dw[0,0] scale x −0.00044
  • Snapdragon IMU · gyro Dw[1,1] scale y −0.00559
  • Snapdragon IMU · gyro Dw[2,2] scale z −0.00409 ◆
  • Snapdragon IMU · gyro Dw[1,0] cross +0.00052
  • Snapdragon IMU · gyro Dw[2,0] cross −0.00290
  • Snapdragon IMU · gyro Dw[2,1] cross +0.00026
  • Snapdragon IMU · accel Da[0,0] scale x −0.01035 ◆
  • Snapdragon IMU · accel Da[1,1] scale y −0.00613 ◆
  • Snapdragon IMU · accel Da[2,2] scale z −0.01265 ◆
Basalt − MVIS (K-IMU) ◆ 10 of 30 compared rows
  • Snapdragon left · fx −2.14 px ◆
  • Snapdragon left · fy −2.15 px ◆
  • Snapdragon left · cx +0.23 px
  • Snapdragon left · cy −0.07 px
  • Snapdragon left · dist k1 +0.00353
  • Snapdragon left · dist k2 −0.00204
  • Snapdragon left · dist k3 +0.00502
  • Snapdragon left · dist k4 −0.00267
  • Snapdragon left · time offset td to base IMU −0.211 ms
  • Snapdragon left · distance to base IMU ‖p‖ +1.91 mm ◆
  • Snapdragon right · fx −1.66 px ◆
  • Snapdragon right · fy −1.64 px
  • Snapdragon right · cx +0.36 px ◆
  • Snapdragon right · cy +0.06 px
  • Snapdragon right · dist k1 +0.00518
  • Snapdragon right · dist k2 −0.00561
  • Snapdragon right · dist k3 +0.00559
  • Snapdragon right · dist k4 −0.00189
  • Snapdragon right · baseline to Snapdragon left +0.119 mm
  • Snapdragon right · time offset td to base IMU −0.195 ms
  • Snapdragon right · distance to base IMU ‖p‖ +1.51 mm
  • Snapdragon IMU · gyro Dw[0,0] scale x −0.00054
  • Snapdragon IMU · gyro Dw[1,1] scale y −0.00399 ◆
  • Snapdragon IMU · gyro Dw[2,2] scale z −0.00390
  • Snapdragon IMU · gyro Dw[1,0] cross −0.00052
  • Snapdragon IMU · gyro Dw[2,0] cross −0.00192 ◆
  • Snapdragon IMU · gyro Dw[2,1] cross −0.00016
  • Snapdragon IMU · accel Da[0,0] scale x −0.00842 ◆
  • Snapdragon IMU · accel Da[1,1] scale y −0.00634 ◆
  • Snapdragon IMU · accel Da[2,2] scale z −0.01105 ◆

Dot = median difference Δ on an axis in units of the larger of the two tools' sd; shaded = ±1 sd; filled dot and ◆ = outside it; an arrow = beyond ±5 sd. No tool is the reference. "≠n" = the tools solved different recordings.

3 sensors, 31 parameter charts (open to see each tool's spread)

fx px axis 277 ± 2.78

MVIS 277.77 ± 1.1 (4)
MVIS (K-IMU) 277.79 ± 1.1 (4)
Kalibr 276.47 ± 1.6 (4) input
Basalt 275.65 ± 1.1 (4)

fy px axis 277 ± 2.89

MVIS 277.72 ± 1.3 (4)
MVIS (K-IMU) 277.74 ± 1.4 (4)
Kalibr 276.25 ± 1.7 (4) input
Basalt 275.58 ± 1.2 (4)

cx px axis 318 ± 3.78

MVIS 317.89 ± 2.6 (4)
MVIS (K-IMU) 317.90 ± 2.7 (4)
Kalibr 317.86 ± 2.4 (4) input
Basalt 318.14 ± 2.7 (4)

cy px axis 242 ± 9.8

MVIS 241.59 ± 4.6 (4)
MVIS (K-IMU) 241.59 ± 4.6 (4)
Kalibr 242.03 ± 4.3 (4) input
Basalt 241.52 ± 4.5 (4)

dist k1 axis −0.0104 ± 0.0115

MVIS −0.01117 ± 0.0037 (4)
MVIS (K-IMU) −0.01116 ± 0.0037 (4)
Kalibr −0.00972 ± 0.008 (4) input
Basalt −0.00763 ± 0.0042 (4)

dist k2 axis 0.019 ± 0.0348

MVIS 0.02002 ± 0.0079 (4)
MVIS (K-IMU) 0.02005 ± 0.0079 (4)
Kalibr 0.01273 ± 0.025 (4) input
Basalt 0.01801 ± 0.0067 (4)

dist k3 axis −0.016 ± 0.0377

MVIS −0.01849 ± 0.0097 (4)
MVIS (K-IMU) −0.01854 ± 0.0097 (4)
Kalibr −0.00579 ± 0.024 (4) input
Basalt −0.01352 ± 0.0059 (4)

dist k4 axis 0.00492 ± 0.0129

MVIS 0.00625 ± 0.0038 (4)
MVIS (K-IMU) 0.00625 ± 0.0038 (4)
Kalibr 0.00047 ± 0.0073 (4) input
Basalt 0.00358 ± 0.002 (4)

time offset td to base IMU ms axis −10.9 ± 6.12

MVIS −10.794 ± 4.7 (4)
MVIS (K-IMU) −10.764 ± 4.7 (4)
Kalibr −11.017 ± 4.6 (4)
Basalt −10.975 ± 4.7 (4)

distance to base IMU ‖p‖ mm axis 25.6 ± 8.48

MVIS 25.62 ± 1.7 (4)
MVIS (K-IMU) 25.61 ± 1.7 (4)
Kalibr 24.41 ± 4.7 (4)
Basalt 27.51 ± 1.7 (4)

fx px axis 276 ± 3.98

MVIS 276.73 ± 1.5 (4)
MVIS (K-IMU) 276.74 ± 1.5 (4)
Kalibr 275.62 ± 2 (4) input
Basalt 275.07 ± 1.6 (4)

fy px axis 276 ± 3.59

MVIS 276.54 ± 1.6 (4)
MVIS (K-IMU) 276.56 ± 1.6 (4)
Kalibr 275.36 ± 2.1 (4) input
Basalt 274.91 ± 1.6 (4)

cx px axis 315 ± 1.47

MVIS 314.44 ± 0.25 (4)
MVIS (K-IMU) 314.45 ± 0.23 (4)
Kalibr 314.75 ± 0.72 (4) input
Basalt 314.81 ± 0.21 (4)

cy px axis 236 ± 16.9

MVIS 235.65 ± 7.3 (4)
MVIS (K-IMU) 235.65 ± 7.3 (4)
Kalibr 236.28 ± 7.5 (4) input
Basalt 235.71 ± 7.1 (4)

dist k1 axis −0.00903 ± 0.0406

MVIS −0.00931 ± 0.016 (4)
MVIS (K-IMU) −0.00933 ± 0.016 (4)
Kalibr −0.00874 ± 0.019 (4) input
Basalt −0.00415 ± 0.015 (4)

dist k2 axis 0.0116 ± 0.0432

MVIS 0.01253 ± 0.024 (4)
MVIS (K-IMU) 0.01249 ± 0.024 (4)
Kalibr 0.01069 ± 0.022 (4) input
Basalt 0.00688 ± 0.015 (4)

dist k3 axis −0.00627 ± 0.0493

MVIS −0.00761 ± 0.03 (4)
MVIS (K-IMU) −0.00760 ± 0.03 (4)
Kalibr −0.00495 ± 0.023 (4) input
Basalt −0.00200 ± 0.02 (4)

dist k4 axis 0.00113 ± 0.0238

MVIS 0.00167 ± 0.013 (4)
MVIS (K-IMU) 0.00167 ± 0.013 (4)
Kalibr 0.00059 ± 0.0098 (4) input
Basalt −0.00022 ± 0.0099 (4)

baseline to Snapdragon left mm axis 79.5 ± 1.04

MVIS 79.435 ± 0.48 (4)
MVIS (K-IMU) 79.436 ± 0.49 (4)
Kalibr 79.501 ± 0.32 (4) input
Basalt 79.555 ± 0.76 (4)

time offset td to base IMU ms axis −10.9 ± 6.12

MVIS −10.810 ± 4.7 (4)
MVIS (K-IMU) −10.780 ± 4.7 (4)
Kalibr −11.052 ± 4.6 (4)
Basalt −10.975 ± 4.7 (4)

distance to base IMU ‖p‖ mm axis 58.4 ± 6.64

MVIS 58.00 ± 1.5 (4)
MVIS (K-IMU) 57.96 ± 1.6 (4)
Kalibr 58.76 ± 3 (4)
Basalt 59.47 ± 2.4 (4)

gyro Dw[0,0] scale x axis 1 ± 0.00846 · line at 1

MVIS no value
MVIS (K-IMU) 1.00405 ± 0.0019 (4)
Kalibr 1.00395 ± 0.0043 (4)
Basalt 1.00351 ± 0.001 (4)

gyro Dw[1,1] scale y axis 0.998 ± 0.00915 · line at 1

MVIS no value
MVIS (K-IMU) 0.99791 ± 0.0021 (4)
Kalibr 0.99951 ± 0.0067 (4)
Basalt 0.99392 ± 0.0034 (4)

gyro Dw[2,2] scale z axis 0.998 ± 0.00879 · line at 1

MVIS no value
MVIS (K-IMU) 0.99792 ± 0.0018 (4)
Kalibr 0.99811 ± 0.004 (4)
Basalt 0.99402 ± 0.0041 (4)

gyro Dw[1,0] cross axis 0.000182 ± 0.00308

MVIS no value
MVIS (K-IMU) 0.00070 ± 0.0003 (4)
Kalibr −0.00034 ± 0.00046 (4)
Basalt 0.00018 ± 0.0015 (4)

gyro Dw[2,0] cross axis 0.00606 ± 0.00937

MVIS no value
MVIS (K-IMU) 0.00606 ± 0.00085 (4)
Kalibr 0.00704 ± 0.0054 (4)
Basalt 0.00413 ± 0.0013 (4)

gyro Dw[2,1] cross axis −0.0000173 ± 0.00169

MVIS no value
MVIS (K-IMU) 0.00014 ± 0.00075 (4)
Kalibr −0.00028 ± 0.001 (4)
Basalt −0.00002 ± 0.0013 (4)

accel Da[0,0] scale x axis 0.998 ± 0.0149 · line at 1

MVIS no value
MVIS (K-IMU) 0.99841 ± 0.0017 (4)
Kalibr 1.00034 ± 0.0038 (4)
Basalt 0.98999 ± 0.0052 (4)

accel Da[1,1] scale y axis 0.999 ± 0.0136 · line at 1

MVIS no value
MVIS (K-IMU) 0.99930 ± 0.0013 (4)
Kalibr 0.99910 ± 0.0029 (4)
Basalt 0.99296 ± 0.0041 (4)

accel Da[2,2] scale z axis 0.989 ± 0.0197 · line at 1

MVIS no value
MVIS (K-IMU) 0.98925 ± 0.0022 (4)
Kalibr 0.99085 ± 0.0058 (4)
Basalt 0.97820 ± 0.0036 (4)

t_ga gyro−accel ms axis −0.832 ± 0.227

MVIS not in this tool's model
MVIS (K-IMU) −0.832 ± 0.12 (4)
Kalibr not in this tool's model
Basalt not in this tool's model

Whisker = lowest to highest value over the tool's solved recordings; box = median ± sd; tick = median. Min and max come from the per-recording values behind each record's median; only these two numbers are published, not the values. Rotations are not shown: the records do not hold them yet.

4 notes on models, inputs and run settings
  • Kalibr: 17 values are input, not estimated (hollow boxes). Their spread copies the input, so it is not that tool's repeatability.
  • t_ga, the gyro–accel delay, is estimated by MVIS only; Kalibr and Basalt have no such term, so MVIS's td is not quite the same quantity.
  • Tg, the IMU g-sensitivity, is a term of Kalibr's IMU model, here from MVIS (K-IMU) and Kalibr; the MVIS default model has no counterpart, so it is not compared.
Kalibr IMU-model terms Tg (median; sd on hover)
MVIS (K-IMU) · Snapdragon IMU
0.008−0.0890.0460.1630.044−0.0740.0290.0220.057
Kalibr · Snapdragon IMU
0.0450.2670.1650.0340.038−0.341−0.0530.022−0.159
  • Like for like: Every tool starts from the camera chain UZH ships and uses the same IMU sigmas on the same bags. Kalibr keeps the camera values fixed; MVIS and Basalt refine them.

Run configs, commands and the full parameter tables are in Full tables at the end of this page.

  • IMU weights. All three tools use IMU sigmas taken from the residuals in UZH's own Kalibr results, not the MVIS defaults. The example page explains how they are derived.
  • One Basalt solve is left out. On davis_indoor_forward with these weights, Basalt gives a 120 mm lever and an accel scale (accelerometer scale factor) of 0.84. So its Davis column has 3 of 4 bags. At Basalt's default noise that bag is plausible, but snapdragon_indoor_45 then fails with a broken spline.
  • Basalt's Davis distance stands out. Its camera-to-IMU distance is 33.6 mm. Kalibr gives 23.2 mm and MVIS 22.8 mm on the same 3 bags. We haven't established why. At default noise Basalt's lever z is 14–25 mm.
  • Each device's 4 bags form one family, because the camera and IMU are on the same device. That assumes the camera–IMU geometry stayed the same across recordings, which we can't confirm.
  • Snapdragon's time offset really does differ between bags, with an sd (standard deviation) near 4.7 ms in every tool. So a small difference between tools on that row says little about each bag.
Every parameter table, tool difference and run config (UZH-FPV)
How to read this
  • Spread shows repeatability across recordings, not accuracy. A tool can repeat well and still be biased.
  • 448.50 ± 0.48 (10): median ± sd across the 10 recordings that tool solved. With 3 or 4 recordings the sd itself is rough.
  • (3/15): this tool has 3 of the family's 15 recordings.
  • fixed: Kalibr doesn't estimate this value. Its camera + IMU runs take intrinsics and baselines as input, here from the calibration UZH ships. The spread here isn't repeatability.
  • shown: the tool uses a different model here, so the value has no difference next to it.
  • other model: Kalibr's coefficients here belong to a different lens model.
  • not in model, not reported, no run, no data, no RS model, not in one run: the tool has no value for this row, and the words say why. no run means the tool never ran with this sensor; not in one run means it ran with each sensor, but no single run holds both ends of the baseline. not run, in the recordings line: the tool has no run for the family.
  • Differences: the column header gives the subtraction, using stored medians. No tool is the reference.
  • ◆: the difference is larger than the larger of the two sds. It marks disagreement, not an error in either tool.
  • ≠n: the two medians come from different numbers of recordings.
  • ≠ model: the tools' models differ, so no difference is shown. fit: reprojection error measures fit and isn't comparable across models.
  • ‡ td: MVIS splits the IMU into gyro (td) and accel (td + t_ga); Kalibr and Basalt have one timeline. Basalt − Kalibr is the like-for-like check.
  • Each family folds; the first is open. Click a family's title to open or close it.

No ground truth: ◆ marks disagreement, not who is right.

median ± sd (recordings) · (3/15) partial · fixed Kalibr input · shown / other model, no Δ · ≠ model, fit: no Δ · ◆ |Δ| above the larger sd · ≠n different recording counts · ‡ see How to read this

On camera + IMU families the MVIS column uses Kalibr's IMU model, not the MVIS default. The default fills fewer rows and is in a closed fold under each family.

Key and MVIS column

Swipe a table sideways for the other tools and differences.

median ± sd (recordings) · (3/15) partial · fixed Kalibr input · shown / other model, no Δ · ≠ model, fit: no Δ · ◆ |Δ| above the larger sd · ≠n different recording counts · ‡ see How to read this

On camera + IMU families the MVIS column uses Kalibr's IMU model, not the MVIS default. The default fills fewer rows and is in a closed fold under each family.

DAVIS · mDAVIS346 + IMU

MVIS 4 of 4 · Kalibr 4 of 4 · Basalt 3 of 4

Camera + IMU · 4 bags: indoor and outdoor, 45° and forward · Kalibr scale-misalignment vs MVIS (kalibr model)

Read first: All three tools use each bag's IMU weights from the residuals in UZH's own Kalibr results. Kalibr's intrinsics and baseline are inputs from the calibration UZH ships.

Notes

Like for like: Every tool starts from the camera chain UZH ships and uses the same IMU sigmas on the same bags. Kalibr keeps the camera values fixed; MVIS and Basalt refine them.

Note: Basalt has 3 of 4 recordings: its davis_indoor_forward solve failed (lever 120 mm, accel scale 0.84) and is left out.

Run config · MVIS · mvis cam-imu
mvis cam-imu -c configs/cam_imu_<bag>_kalibr_model.yaml

davis_indoor_45, commit f5cdce0

input:
  format: ros1
  path: <uzh-fpv>/davis/indoor_45_calib_davis_imu.bag
  imu_topics:
  - /davis/imu
  cache_dir: detcache
board:
  board_type: apriltag
  rows: 4
  cols: 5
  tag_size: 0.075
  tag_spacing: 0.2
  tag_family: t36h11
camera_input:
  path: <uzh-fpv>/indoor_45_calib_davis/indoor_45_calib_davis/camchain-..indoor_45_calib_davis_cam.yaml
  estimate_readout: false
solve:
  estimate_t_ga: true
  sigma_g: 0.0003396953287453848
  sigma_a: 0.001055920434500799
  sigma_bg: 3.396953287453848e-05
  sigma_ba: 0.00010559204345007991
output:
  path: ./davis_indoor_45/real/kalibrmodel/cam_imu.json
estimate:
  imu:
    intrinsics: full
    model: kalibr

Runs (4, gyro and accel noise density; bias sigmas are 0.1 of these):

  • davis_indoor_45 · gyro 3.40e-04 · accel 1.06e-03
  • davis_indoor_forward · gyro 3.08e-04 · accel 1.82e-03
  • davis_outdoor_45 · gyro 5.74e-04 · accel 1.16e-03
  • davis_outdoor_forward · gyro 4.87e-04 · accel 1.22e-03
Run config · Kalibr · kalibr_calibrate_imu_camera
kalibr_calibrate_imu_camera --bag input.bag --cams camchain.yaml --imu imu.yaml \
    --imu-models scale-misalignment --target target.yaml --timeoffset-padding 0.1 --dont-show-report

imu.yaml for davis_indoor_45

rostopic: /davis/imu
update_rate: 1000.0
accelerometer_noise_density: 0.001055920434500799
accelerometer_random_walk: 0.00010559204345007991
gyroscope_noise_density: 0.0003396953287453848
gyroscope_random_walk: 3.396953287453848e-05

Runs (4, gyro and accel noise density; bias sigmas are 0.1 of these):

  • davis_indoor_45 · gyro 3.40e-04 · accel 1.06e-03
  • davis_indoor_forward · gyro 3.08e-04 · accel 1.82e-03
  • davis_outdoor_45 · gyro 5.74e-04 · accel 1.16e-03
  • davis_outdoor_forward · gyro 4.87e-04 · accel 1.22e-03
Run config · Basalt · basalt_calibrate_imu
basalt/build/release/basalt_calibrate_imu \
    --dataset-path \
    <uzh-fpv>/davis/indoor_45_calib_davis_imu.bag \
    --dataset-type \
    bag \
    --aprilgrid \
    basalt_seeds/aprilgrid_4x5_75mm.json \
    --result-path \
    ./basalt/davis_indoor_45/ \
    --no-gui \
    --max-iter \
    200 \
    --stall-iter \
    5 \
    --ftol \
    1e-06 \
    --skip-images \
    2 \
    --cam-topics \
    /davis/image_raw \
    --imu-topic \
    /davis/imu \
    --init-knots \
    poses \
    --init-gyro-gap \
    0.1 \
    --init-min-inliers \
    15 \
    --imu-margin \
    1.0 \
    --gyro-noise-std \
    0.0003396953287453848 \
    --accel-noise-std \
    0.001055920434500799 \
    --gyro-bias-std \
    3.396953287453848e-05 \
    --accel-bias-std \
    0.00010559204345007991 \
    --spline-dt-ms \
    10 \
    --g-norm \
    9.81 \
    --no-mocap \
    --opt-intrinsics

davis_indoor_45, build 77daf1c

Runs (4, gyro and accel noise density; bias sigmas are 0.1 of these):

  • davis_indoor_45 · gyro 3.40e-04 · accel 1.06e-03
  • davis_indoor_forward · gyro 3.08e-04 · accel 1.82e-03
  • davis_outdoor_45 · gyro 5.74e-04 · accel 1.16e-03
  • davis_outdoor_forward · gyro 4.87e-04 · accel 1.22e-03
cam0 – mDAVIS346 · 11 rows · ◆ 4
ParameterMVISKalibr IMU modelKalibrBasaltMVIS− KalibrBasalt− KalibrBasalt− MVIS
fx px173.30 ± 1.78 (4)fixed 173.03 ± 1.20 (4)171.62 ± 1.10 (3/4)−1.68 ≠n
fy px173.15 ± 1.68 (4)fixed 173.03 ± 1.22 (4)171.59 ± 1.13 (3/4)−1.56 ≠n
cx px163.65 ± 0.17 (4)fixed 163.32 ± 0.33 (4)163.41 ± 0.17 (3/4)◆ −0.24 ≠n
cy px135.39 ± 2.84 (4)fixed 135.00 ± 3.07 (4)134.87 ± 3.52 (3/4)−0.52 ≠n
dist k1−0.02739 ± 0.00892 (4)fixed −0.03125 ± 0.00344 (4)−0.02110 ± 0.00480 (3/4)+0.00629 ≠n
dist k20.00107 ± 0.02757 (4)fixed 0.00082 ± 0.00394 (4)−0.01699 ± 0.00945 (3/4)−0.01806 ≠n
dist k3−0.02174 ± 0.03113 (4)fixed −0.00386 ± 0.00263 (4)0.02458 ± 0.01275 (3/4)◆ +0.04632 ≠n
dist k40.01230 ± 0.01119 (4)fixed 0.00071 ± 0.00082 (4)−0.01269 ± 0.00674 (3/4)◆ −0.02500 ≠n
time offset td to base IMU‡ ms5.836 ± 0.369 (4)5.813 ± 0.192 (4)5.823 ± 0.076 (3/4)+0.024+0.010 ≠n−0.014 ≠n
distance to base IMU ‖p‖ mm21.11 ± 2.13 (4)23.40 ± 1.66 (4)33.57 ± 2.13 (3/4)◆ −2.29◆ +10.17 ≠n◆ +12.46 ≠n
reproj median px0.344 ± 0.044 (4)0.137 ± 0.026 (4)not reportedfit
base IMU – DAVIS IMU · 19 rows · ◆ 4
ParameterMVISKalibr IMU modelKalibrBasaltMVIS− KalibrBasalt− KalibrBasalt− MVIS
gyro Dw[0,0] scale x0.99921 ± 0.00124 (4)0.99723 ± 0.00158 (4)0.98439 ± 0.00415 (3/4)◆ +0.00198◆ −0.01284 ≠n◆ −0.01482 ≠n
gyro Dw[1,1] scale y1.00373 ± 0.00703 (4)1.00214 ± 0.00812 (4)0.99559 ± 0.01401 (3/4)+0.00159−0.00655 ≠n−0.00814 ≠n
gyro Dw[2,2] scale z1.00683 ± 0.00117 (4)1.00612 ± 0.00184 (4)1.00582 ± 0.00071 (3/4)+0.00071−0.00030 ≠n−0.00101 ≠n
gyro Dw[1,0] cross−0.00061 ± 0.00138 (4)−0.00059 ± 0.00195 (4)−0.00158 ± 0.00070 (3/4)−0.00003−0.00100 ≠n−0.00097 ≠n
gyro Dw[2,0] cross−0.00356 ± 0.00925 (4)−0.00403 ± 0.00781 (4)−0.00231 ± 0.00987 (3/4)+0.00046+0.00172 ≠n+0.00125 ≠n
gyro Dw[2,1] cross−0.01766 ± 0.00448 (4)−0.01729 ± 0.00457 (4)−0.01908 ± 0.00419 (3/4)−0.00037−0.00179 ≠n−0.00142 ≠n
accel Da[0,0] scale x0.99955 ± 0.00268 (4)0.99835 ± 0.00330 (4)0.99381 ± 0.00492 (3/4)+0.00120−0.00454 ≠n◆ −0.00573 ≠n
accel Da[1,1] scale y1.00067 ± 0.00257 (4)1.00000 ± 0.00176 (4)0.99358 ± 0.00362 (3/4)+0.00067◆ −0.00642 ≠n◆ −0.00709 ≠n
accel Da[2,2] scale z0.98507 ± 0.00318 (4)0.98025 ± 0.00111 (4)0.96037 ± 0.00453 (3/4)◆ +0.00482◆ −0.01989 ≠n◆ −0.02471 ≠n
Tg[0,0] g-sensitivity mrad·s/m−0.061 ± 0.097 (4)−0.054 ± 0.054 (4)not in model≠ model
Tg[0,1] g-sensitivity mrad·s/m0.013 ± 0.262 (4)−0.248 ± 0.191 (4)not in model≠ model
Tg[0,2] g-sensitivity mrad·s/m0.081 ± 0.121 (4)0.146 ± 0.175 (4)not in model≠ model
Tg[1,0] g-sensitivity mrad·s/m0.035 ± 0.078 (4)0.206 ± 0.134 (4)not in model≠ model
Tg[1,1] g-sensitivity mrad·s/m−0.052 ± 0.108 (4)0.072 ± 0.050 (4)not in model≠ model
Tg[1,2] g-sensitivity mrad·s/m0.173 ± 0.173 (4)0.158 ± 0.174 (4)not in model≠ model
Tg[2,0] g-sensitivity mrad·s/m0.067 ± 0.126 (4)−0.098 ± 0.075 (4)not in model≠ model
Tg[2,1] g-sensitivity mrad·s/m−0.074 ± 0.167 (4)0.013 ± 0.099 (4)not in model≠ model
Tg[2,2] g-sensitivity mrad·s/m−0.131 ± 0.214 (4)0.045 ± 0.012 (4)not in model≠ model
t_ga gyro−accel ms−0.514 ± 0.217 (4)not in modelnot in model
MVIS default IMU model (calyx) · 11 of 30 rows, model-independent only
ParameterMVISKalibr IMU modelMVIS defaultKalibrdefault− Kalibrdefault− Kalibr IMU model
cam0 – mDAVIS346
fx px173.30 ± 1.78 (4)173.16 ± 1.76 (4)fixed 173.03 ± 1.20 (4)−0.14
fy px173.15 ± 1.68 (4)173.01 ± 1.67 (4)fixed 173.03 ± 1.22 (4)−0.14
cx px163.65 ± 0.17 (4)163.66 ± 0.19 (4)fixed 163.32 ± 0.33 (4)+0.02
cy px135.39 ± 2.84 (4)135.38 ± 2.83 (4)fixed 135.00 ± 3.07 (4)−0.01
dist k1−0.02739 ± 0.00892 (4)−0.02695 ± 0.00896 (4)fixed −0.03125 ± 0.00344 (4)+0.00044
dist k20.00107 ± 0.02757 (4)0.00093 ± 0.02778 (4)fixed 0.00082 ± 0.00394 (4)−0.00014
dist k3−0.02174 ± 0.03113 (4)−0.02199 ± 0.03132 (4)fixed −0.00386 ± 0.00263 (4)−0.00025
dist k40.01230 ± 0.01119 (4)0.01262 ± 0.01123 (4)fixed 0.00071 ± 0.00082 (4)+0.00032
time offset td to base IMU‡ ms5.836 ± 0.369 (4)5.872 ± 0.376 (4)5.813 ± 0.192 (4)+0.059+0.035
distance to base IMU ‖p‖ mm21.11 ± 2.13 (4)21.52 ± 1.95 (4)23.40 ± 1.66 (4)−1.88+0.41
reproj median px0.344 ± 0.044 (4)0.343 ± 0.043 (4)0.137 ± 0.026 (4)fitfit

SNAP · Snapdragon stereo + IMU

MVIS 4 of 4 · Kalibr 4 of 4 · Basalt 4 of 4

Camera + IMU · 4 bags: indoor and outdoor, 45° and forward · Kalibr scale-misalignment vs MVIS (kalibr model)

Read first: All three tools use each bag's IMU weights from the residuals in UZH's own Kalibr results. Kalibr's intrinsics and baseline are inputs from the calibration UZH ships.

Notes

Like for like: Every tool starts from the camera chain UZH ships and uses the same IMU sigmas on the same bags. Kalibr keeps the camera values fixed; MVIS and Basalt refine them.

Run config · MVIS · mvis cam-imu
mvis cam-imu -c configs/cam_imu_<bag>_kalibr_model.yaml

snapdragon_indoor_45, commit f5cdce0

input:
  format: ros1
  path: <uzh-fpv>/snapdragon/indoor_45_calib_snapdragon_imu.bag
  imu_topics:
  - /snappy_imu
  cache_dir: detcache
board:
  board_type: apriltag
  rows: 4
  cols: 5
  tag_size: 0.075
  tag_spacing: 0.2
  tag_family: t36h11
camera_input:
  path: <uzh-fpv>/indoor_45_calib_snapdragon/indoor_45_calib_snapdragon/camchain-..indoor_45_calib_snapdragon_cam.yaml
  estimate_readout: false
solve:
  estimate_t_ga: true
  sigma_g: 0.0007110208680826167
  sigma_a: 0.0032732613574351305
  sigma_bg: 7.110208680826167e-05
  sigma_ba: 0.00032732613574351307
output:
  path: ./snapdragon_indoor_45/real/kalibrmodel/cam_imu.json
estimate:
  imu:
    intrinsics: full
    model: kalibr

Runs (4, gyro and accel noise density; bias sigmas are 0.1 of these):

  • snapdragon_indoor_45 · gyro 7.11e-04 · accel 3.27e-03
  • snapdragon_indoor_forward · gyro 8.49e-04 · accel 5.15e-03
  • snapdragon_outdoor_45 · gyro 6.61e-04 · accel 3.62e-03
  • snapdragon_outdoor_forward · gyro 3.00e-04 · accel 2.53e-03
Run config · Kalibr · kalibr_calibrate_imu_camera
kalibr_calibrate_imu_camera --bag input.bag --cams camchain.yaml --imu imu.yaml \
    --imu-models scale-misalignment --target target.yaml --timeoffset-padding 0.1 --dont-show-report

imu.yaml for snapdragon_indoor_45

rostopic: /snappy_imu
update_rate: 500.0
accelerometer_noise_density: 0.0032732613574351305
accelerometer_random_walk: 0.00032732613574351307
gyroscope_noise_density: 0.0007110208680826167
gyroscope_random_walk: 7.110208680826167e-05

Runs (4, gyro and accel noise density; bias sigmas are 0.1 of these):

  • snapdragon_indoor_45 · gyro 7.11e-04 · accel 3.27e-03
  • snapdragon_indoor_forward · gyro 8.49e-04 · accel 5.15e-03
  • snapdragon_outdoor_45 · gyro 6.61e-04 · accel 3.62e-03
  • snapdragon_outdoor_forward · gyro 3.00e-04 · accel 2.53e-03
Run config · Basalt · basalt_calibrate_imu
basalt/build/release/basalt_calibrate_imu \
    --dataset-path \
    <uzh-fpv>/snapdragon/indoor_45_calib_snapdragon_imu.bag \
    --dataset-type \
    bag \
    --aprilgrid \
    basalt_seeds/aprilgrid_4x5_75mm.json \
    --result-path \
    ./basalt/snapdragon_indoor_45/ \
    --no-gui \
    --max-iter \
    200 \
    --stall-iter \
    5 \
    --ftol \
    1e-06 \
    --skip-images \
    2 \
    --cam-topics \
    /snappy_cam/stereo_l \
    /snappy_cam/stereo_r \
    --imu-topic \
    /snappy_imu \
    --init-knots \
    poses \
    --init-gyro-gap \
    0.1 \
    --init-min-inliers \
    15 \
    --imu-margin \
    1.0 \
    --gyro-noise-std \
    0.0007110208680826167 \
    --accel-noise-std \
    0.0032732613574351305 \
    --gyro-bias-std \
    7.110208680826167e-05 \
    --accel-bias-std \
    0.00032732613574351307 \
    --spline-dt-ms \
    10 \
    --g-norm \
    9.81 \
    --no-mocap \
    --opt-intrinsics

snapdragon_indoor_45, build 77daf1c

Runs (4, gyro and accel noise density; bias sigmas are 0.1 of these):

  • snapdragon_indoor_45 · gyro 7.11e-04 · accel 3.27e-03
  • snapdragon_indoor_forward · gyro 8.49e-04 · accel 5.15e-03
  • snapdragon_outdoor_45 · gyro 6.61e-04 · accel 3.62e-03
  • snapdragon_outdoor_forward · gyro 3.00e-04 · accel 2.53e-03
cam0 – Snapdragon left · 11 rows · ◆ 3
ParameterMVISKalibr IMU modelKalibrBasaltMVIS− KalibrBasalt− KalibrBasalt− MVIS
fx px277.79 ± 1.13 (4)fixed 276.47 ± 1.62 (4)275.65 ± 1.05 (4)◆ −2.14
fy px277.74 ± 1.36 (4)fixed 276.25 ± 1.74 (4)275.58 ± 1.23 (4)◆ −2.15
cx px317.90 ± 2.65 (4)fixed 317.86 ± 2.35 (4)318.14 ± 2.74 (4)+0.23
cy px241.59 ± 4.55 (4)fixed 242.03 ± 4.28 (4)241.52 ± 4.52 (4)−0.07
dist k1−0.01116 ± 0.00372 (4)fixed −0.00972 ± 0.00798 (4)−0.00763 ± 0.00416 (4)+0.00353
dist k20.02005 ± 0.00786 (4)fixed 0.01273 ± 0.02538 (4)0.01801 ± 0.00673 (4)−0.00204
dist k3−0.01854 ± 0.00973 (4)fixed −0.00579 ± 0.02407 (4)−0.01352 ± 0.00592 (4)+0.00502
dist k40.00625 ± 0.00383 (4)fixed 0.00047 ± 0.00731 (4)0.00358 ± 0.00205 (4)−0.00267
time offset td to base IMU‡ ms−10.764 ± 4.687 (4)−11.017 ± 4.624 (4)−10.975 ± 4.661 (4)+0.253+0.042−0.211
distance to base IMU ‖p‖ mm25.61 ± 1.67 (4)24.41 ± 4.71 (4)27.51 ± 1.67 (4)+1.19+3.10◆ +1.91
reproj median px0.203 ± 0.022 (4)0.483 ± 0.362 (4)not reportedfit
cam1 – Snapdragon right · 12 rows · ◆ 2
ParameterMVISKalibr IMU modelKalibrBasaltMVIS− KalibrBasalt− KalibrBasalt− MVIS
fx px276.74 ± 1.55 (4)fixed 275.62 ± 2.01 (4)275.07 ± 1.65 (4)◆ −1.66
fy px276.56 ± 1.61 (4)fixed 275.36 ± 2.10 (4)274.91 ± 1.65 (4)−1.64
cx px314.45 ± 0.23 (4)fixed 314.75 ± 0.72 (4)314.81 ± 0.21 (4)◆ +0.36
cy px235.65 ± 7.26 (4)fixed 236.28 ± 7.47 (4)235.71 ± 7.09 (4)+0.06
dist k1−0.00933 ± 0.01584 (4)fixed −0.00874 ± 0.01894 (4)−0.00415 ± 0.01466 (4)+0.00518
dist k20.01249 ± 0.02393 (4)fixed 0.01069 ± 0.02189 (4)0.00688 ± 0.01525 (4)−0.00561
dist k3−0.00760 ± 0.02973 (4)fixed −0.00495 ± 0.02314 (4)−0.00200 ± 0.01965 (4)+0.00559
dist k40.00167 ± 0.01338 (4)fixed 0.00059 ± 0.00981 (4)−0.00022 ± 0.00992 (4)−0.00189
baseline to Snapdragon left mm79.436 ± 0.486 (4)fixed 79.501 ± 0.319 (4)79.555 ± 0.762 (4)+0.119
time offset td to base IMU‡ ms−10.780 ± 4.699 (4)−11.052 ± 4.638 (4)−10.975 ± 4.661 (4)+0.272+0.077−0.195
distance to base IMU ‖p‖ mm57.96 ± 1.57 (4)58.76 ± 2.97 (4)59.47 ± 2.38 (4)−0.80+0.71+1.51
reproj median px0.201 ± 0.043 (4)0.405 ± 0.497 (4)not reportedfit
base IMU – Snapdragon IMU · 19 rows · ◆ 7
ParameterMVISKalibr IMU modelKalibrBasaltMVIS− KalibrBasalt− KalibrBasalt− MVIS
gyro Dw[0,0] scale x1.00405 ± 0.00194 (4)1.00395 ± 0.00431 (4)1.00351 ± 0.00102 (4)+0.00010−0.00044−0.00054
gyro Dw[1,1] scale y0.99791 ± 0.00213 (4)0.99951 ± 0.00671 (4)0.99392 ± 0.00339 (4)−0.00161−0.00559◆ −0.00399
gyro Dw[2,2] scale z0.99792 ± 0.00185 (4)0.99811 ± 0.00398 (4)0.99402 ± 0.00409 (4)−0.00019◆ −0.00409−0.00390
gyro Dw[1,0] cross0.00070 ± 0.00030 (4)−0.00034 ± 0.00046 (4)0.00018 ± 0.00151 (4)◆ +0.00104+0.00052−0.00052
gyro Dw[2,0] cross0.00606 ± 0.00085 (4)0.00704 ± 0.00538 (4)0.00413 ± 0.00131 (4)−0.00098−0.00290◆ −0.00192
gyro Dw[2,1] cross0.00014 ± 0.00075 (4)−0.00028 ± 0.00103 (4)−0.00002 ± 0.00127 (4)+0.00042+0.00026−0.00016
accel Da[0,0] scale x0.99841 ± 0.00172 (4)1.00034 ± 0.00383 (4)0.98999 ± 0.00517 (4)−0.00193◆ −0.01035◆ −0.00842
accel Da[1,1] scale y0.99930 ± 0.00134 (4)0.99910 ± 0.00291 (4)0.99296 ± 0.00411 (4)+0.00021◆ −0.00613◆ −0.00634
accel Da[2,2] scale z0.98925 ± 0.00221 (4)0.99085 ± 0.00575 (4)0.97820 ± 0.00363 (4)−0.00160◆ −0.01265◆ −0.01105
Tg[0,0] g-sensitivity mrad·s/m0.008 ± 0.082 (4)0.045 ± 0.201 (4)not in model≠ model
Tg[0,1] g-sensitivity mrad·s/m−0.089 ± 0.066 (4)0.267 ± 0.073 (4)not in model≠ model
Tg[0,2] g-sensitivity mrad·s/m0.046 ± 0.146 (4)0.165 ± 0.104 (4)not in model≠ model
Tg[1,0] g-sensitivity mrad·s/m0.163 ± 0.138 (4)0.034 ± 0.234 (4)not in model≠ model
Tg[1,1] g-sensitivity mrad·s/m0.044 ± 0.107 (4)0.038 ± 0.183 (4)not in model≠ model
Tg[1,2] g-sensitivity mrad·s/m−0.074 ± 0.401 (4)−0.341 ± 0.443 (4)not in model≠ model
Tg[2,0] g-sensitivity mrad·s/m0.029 ± 0.128 (4)−0.053 ± 0.125 (4)not in model≠ model
Tg[2,1] g-sensitivity mrad·s/m0.022 ± 0.094 (4)0.022 ± 0.219 (4)not in model≠ model
Tg[2,2] g-sensitivity mrad·s/m0.057 ± 0.207 (4)−0.159 ± 0.229 (4)not in model≠ model
t_ga gyro−accel ms−0.832 ± 0.124 (4)not in modelnot in model
MVIS default IMU model (calyx) · 23 of 42 rows, model-independent only
ParameterMVISKalibr IMU modelMVIS defaultKalibrdefault− Kalibrdefault− Kalibr IMU model
cam0 – Snapdragon left
fx px277.79 ± 1.13 (4)277.77 ± 1.11 (4)fixed 276.47 ± 1.62 (4)−0.01
fy px277.74 ± 1.36 (4)277.72 ± 1.33 (4)fixed 276.25 ± 1.74 (4)−0.02
cx px317.90 ± 2.65 (4)317.89 ± 2.64 (4)fixed 317.86 ± 2.35 (4)−0.01
cy px241.59 ± 4.55 (4)241.59 ± 4.56 (4)fixed 242.03 ± 4.28 (4)0.00
dist k1−0.01116 ± 0.00372 (4)−0.01117 ± 0.00369 (4)fixed −0.00972 ± 0.00798 (4)−0.00001
dist k20.02005 ± 0.00786 (4)0.02002 ± 0.00785 (4)fixed 0.01273 ± 0.02538 (4)−0.00003
dist k3−0.01854 ± 0.00973 (4)−0.01849 ± 0.00969 (4)fixed −0.00579 ± 0.02407 (4)+0.00005
dist k40.00625 ± 0.00383 (4)0.00625 ± 0.00381 (4)fixed 0.00047 ± 0.00731 (4)−0.00001
time offset td to base IMU‡ ms−10.764 ± 4.687 (4)−10.794 ± 4.704 (4)−11.017 ± 4.624 (4)+0.223−0.030
distance to base IMU ‖p‖ mm25.61 ± 1.67 (4)25.62 ± 1.70 (4)24.41 ± 4.71 (4)+1.20+0.01
reproj median px0.203 ± 0.022 (4)0.203 ± 0.022 (4)0.483 ± 0.362 (4)fitfit
cam1 – Snapdragon right
fx px276.74 ± 1.55 (4)276.73 ± 1.52 (4)fixed 275.62 ± 2.01 (4)−0.01
fy px276.56 ± 1.61 (4)276.54 ± 1.59 (4)fixed 275.36 ± 2.10 (4)−0.02
cx px314.45 ± 0.23 (4)314.44 ± 0.25 (4)fixed 314.75 ± 0.72 (4)0.00
cy px235.65 ± 7.26 (4)235.65 ± 7.25 (4)fixed 236.28 ± 7.47 (4)0.00
dist k1−0.00933 ± 0.01584 (4)−0.00931 ± 0.01585 (4)fixed −0.00874 ± 0.01894 (4)+0.00002
dist k20.01249 ± 0.02393 (4)0.01253 ± 0.02397 (4)fixed 0.01069 ± 0.02189 (4)+0.00004
dist k3−0.00760 ± 0.02973 (4)−0.00761 ± 0.02978 (4)fixed −0.00495 ± 0.02314 (4)−0.00002
dist k40.00167 ± 0.01338 (4)0.00167 ± 0.01340 (4)fixed 0.00059 ± 0.00981 (4)0.00000
baseline to Snapdragon left mm79.436 ± 0.486 (4)79.435 ± 0.484 (4)fixed 79.501 ± 0.319 (4)−0.002
time offset td to base IMU‡ ms−10.780 ± 4.699 (4)−10.810 ± 4.716 (4)−11.052 ± 4.638 (4)+0.242−0.030
distance to base IMU ‖p‖ mm57.96 ± 1.57 (4)58.00 ± 1.55 (4)58.76 ± 2.97 (4)−0.77+0.03
reproj median px0.201 ± 0.043 (4)0.202 ± 0.044 (4)0.405 ± 0.497 (4)fitfit