Skip to content

Looper Insight 9

LooperRobotics Insight 9, front view
Photo: LooperRobotics, Insight 9 product page

Two global-shutter cameras, one rolling-shutter camera and a MEMS IMU, from Looper Robotics.

2 global-shutter + 1 rolling-shutter cameraMEMS IMU, 400 HzAprilGrid 6×6, 55 mm CC BY-NC 4.0

Batch 2026-11-08a · results commit e893730 · Leaderboard · Methodology

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.

Looper Insight-9: which tool repeats more tightly, per family and group of parameters
Family Focal + pp pxDistortionDistance mmReadout msTime offset msCam–IMU distance mmGyroAccel
T4 · camera n = 10 matched Camera stereo Kalibr ×1.4 Tie a Tie —————
T11 · cam+IMU n = 10 matched 3-cam + IMU MVIS ×1.8 Tie a Tie MVIS only Not separated b Tie Tie c Tie c
T4 · camera · Camera stereo More repeatable or tie: Focal + pp Kalibr · Distortion tie · Distance tie n = 10 matched · MVIS 10 of 10 · Kalibr 10 of 10 · Basalt 10 of 10
T11 · cam+IMU · 3-cam + IMU More repeatable or tie: Focal + pp MVIS · Distortion tie · Distance tie · Time offset not separated · Cam–IMU distance tie · Gyro tie · Accel tie n = 10 matched · MVIS 10 of 10 · Kalibr 10 of 10 · Basalt 10 of 10

MVIS Kalibr Basalt tool ×k more repeatable: the other tools' typical scatter is k times larger Tie gap within chance or under 20 % too few under 6 shared recordings input no comparison, reason in the cell

k = the looser tool's typical scatter divided by the tighter tool's (median over the group's parameters, on the recordings every compared tool ran). Click a cell for its numbers.

  1. a Coefficients trade off against each other, so their scatter can overstate differences in the lens mapping.
  2. b MVIS also fits a gyro–accel delay (t_ga) that Kalibr and Basalt do not, so its td is not quite the same quantity.
  3. c MVIS here uses Kalibr's IMU model, so the gyro and accel terms mean the same thing in both tools.

Each cell is a separate comparison on the recordings every compared tool ran. Cells are not added up and nothing is ordered across datasets.

Not part of this comparison
  • T11 reprojection error (2 rows): fit quality, not repeatability and not accuracy
  • T11 focal length + principal point of Looper RS cam2 (4 rows): no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • T11 distortion coefficients of Looper RS cam2 (4 rows): no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • T11 rolling-shutter readout of Looper RS cam2 (1 row): no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • T11 camera–camera distance of Looper RS cam2 (1 row): no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • T11 camera–imu time offset of Looper RS cam2 (1 row): no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • T11 camera–imu distance of Looper RS cam2 (1 row): no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • T11 reproj median of Looper RS cam2 (1 row): no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • T11 IMU g-sensitivity Tg (9 rows): Kalibr absorbs it in its IMU model
  • T11 gyro–accel delay t_ga (1 row): MVIS only
Focal length + principal point · T4 · 10 matched recordings (MVIS 10 of 10 · Kalibr 10 of 10 · Basalt 10 of 10) · Camera stereo, camera

Across the same 10 recordings, MVIS's estimates scatter about 1.7× more than Kalibr's (median over 8 parameters); Basalt's about 1.4×. A gap this large appeared in 0.59 % (MVIS) and 1.6 % (Basalt) of recording-by-recording swaps. Holds with any one recording left out.

MVIS here: its camera-only run.

PairR95 % intervalp (Holm)DecisionLeave one out
MVIS ÷ Kalibr · 8 param. 1.681.24 – 2.3 0.018 (raw 0.0059) Kalibr tighter holds with any one recording left out
MVIS ÷ Basalt · 8 param. 1.040.85 – 1.22 0.56 tie: gap within chance
Kalibr ÷ Basalt · 8 param. 0.710.58 – 0.92 0.031 (raw 0.016) Kalibr tighter holds with any one recording left out

The 95 % interval of MVIS ÷ Kalibr reaches into the tie band (0.80–1.25): the ratio shown is a point value.

The 95 % interval of Kalibr ÷ Basalt reaches into the tie band (0.80–1.25): the ratio shown is a point value.

0.10.250.512410← first tool scatters lesssecond tool scatters less →MVIS ÷ Kalibr: R = 1.68, 95 % interval 1.24–2.3 · Kalibr tighterMVIS ÷ KalibrMVIS ÷ Basalt: R = 1.04, 95 % interval 0.85–1.22 · tieMVIS ÷ BasaltKalibr ÷ Basalt: R = 0.71, 95 % interval 0.58–0.92 · Kalibr tighterKalibr ÷ Basalt
Ratio R of the two tools' typical scatter, first ÷ second. Shaded: 0.80–1.25, the gap treated as a tie even when it is clear. Bars: 95 % interval (not adjusted for multiple tests); a missing end is not bounded. Filled dots in a tool's colour mark a decided pair.
Parameter MVIS sd Kalibr sd Basalt sd
Looper GS cam0 · fx px 0.379 0.187 0.383
Looper GS cam0 · fy px 0.374 0.186 0.38
Looper GS cam0 · cx px 0.106 0.169 0.109
Looper GS cam0 · cy px 0.0451 0.0548 0.0321
Looper GS cam1 · fx px 0.398 0.202 0.382
Looper GS cam1 · fy px 0.399 0.197 0.381
Looper GS cam1 · cx px 0.117 0.162 0.0915
Looper GS cam1 · cy px 0.0701 0.0489 0.0516

Repeatability only — a tool can repeat well and still be biased.

Distortion coefficients · T4 · 10 matched recordings (MVIS 10 of 10 · Kalibr 10 of 10 · Basalt 10 of 10) · Camera stereo, camera

The spreads of MVIS and Kalibr differ by 1.6×, but a gap this size appears often by chance with 10 recordings (p = 0.21). Treated as a tie. The spreads of MVIS and Basalt differ by 1.2×, but a gap this size appears often by chance with 10 recordings (p = 0.21). Treated as a tie. The spreads of Kalibr and Basalt differ by 1.8×, but a gap this size appears often by chance with 10 recordings (p = 0.21). Treated as a tie.

MVIS here: its camera-only run.

PairR95 % intervalp (Holm)DecisionLeave one out
MVIS ÷ Kalibr · 8 param. 0.620.39 – 1.13 0.21 (raw 0.068) tie: gap within chance
MVIS ÷ Basalt · 8 param. 1.220.94 – 1.52 0.21 (raw 0.11) tie: gap within chance
Kalibr ÷ Basalt · 8 param. 1.770.96 – 2.62 0.21 (raw 0.08) tie: gap within chance
0.10.250.512410← first tool scatters lesssecond tool scatters less →MVIS ÷ Kalibr: R = 0.62, 95 % interval 0.39–1.13 · tieMVIS ÷ KalibrMVIS ÷ Basalt: R = 1.22, 95 % interval 0.94–1.52 · tieMVIS ÷ BasaltKalibr ÷ Basalt: R = 1.77, 95 % interval 0.96–2.62 · tieKalibr ÷ Basalt
Ratio R of the two tools' typical scatter, first ÷ second. Shaded: 0.80–1.25, the gap treated as a tie even when it is clear. Bars: 95 % interval (not adjusted for multiple tests); a missing end is not bounded. Filled dots in a tool's colour mark a decided pair.
Parameter MVIS sd Kalibr sd Basalt sd
Looper GS cam0 · dist k1 0.00109 0.00139 0.000789
Looper GS cam0 · dist k2 0.00284 0.00481 0.00156
Looper GS cam0 · dist k3 0.00381 0.00588 0.00177
Looper GS cam0 · dist k4 0.0017 0.00244 0.000639
Looper GS cam1 · dist k1 0.0011 0.00095 0.00103
Looper GS cam1 · dist k2 0.00224 0.00393 0.00226
Looper GS cam1 · dist k3 0.00259 0.00515 0.00288
Looper GS cam1 · dist k4 0.00103 0.00219 0.00126
  • a Coefficients trade off against each other, so their scatter can overstate differences in the lens mapping.

Repeatability only — a tool can repeat well and still be biased.

Camera–camera distance · T4 · 10 matched recordings (MVIS 10 of 10 · Kalibr 10 of 10 · Basalt 10 of 10) · Camera stereo, camera

The spreads of MVIS and Kalibr differ by 1.4×, but a gap this size appears often by chance with 10 recordings (p = 0.72). Treated as a tie. The spreads of MVIS and Basalt differ by 1.04×, but a gap this size appears often by chance with 10 recordings (p = 0.79). Treated as a tie. The spreads of Kalibr and Basalt differ by 1.3×, but a gap this size appears often by chance with 10 recordings (p = 0.72). Treated as a tie.

MVIS here: its camera-only run.

PairR95 % intervalp (Holm)DecisionLeave one out
MVIS ÷ Kalibr · 1 param. 0.740.56 – 1.31 0.72 (raw 0.24) tie: gap within chance
MVIS ÷ Basalt · 1 param. 0.960.72 – 1.57 0.79 tie: gap within chance
Kalibr ÷ Basalt · 1 param. 1.30.8 – 1.72 0.72 (raw 0.32) tie: gap within chance
0.10.250.512410← first tool scatters lesssecond tool scatters less →MVIS ÷ Kalibr: R = 0.74, 95 % interval 0.56–1.31 · tieMVIS ÷ KalibrMVIS ÷ Basalt: R = 0.96, 95 % interval 0.72–1.57 · tieMVIS ÷ BasaltKalibr ÷ Basalt: R = 1.3, 95 % interval 0.8–1.72 · tieKalibr ÷ Basalt
Ratio R of the two tools' typical scatter, first ÷ second. Shaded: 0.80–1.25, the gap treated as a tie even when it is clear. Bars: 95 % interval (not adjusted for multiple tests); a missing end is not bounded. Filled dots in a tool's colour mark a decided pair.
Parameter MVIS sd Kalibr sd Basalt sd
Looper GS cam1 · baseline to Looper GS cam0 mm 0.176 0.238 0.183

Repeatability only — a tool can repeat well and still be biased.

Focal length + principal point · T11 · 10 matched recordings (MVIS 10 of 10 · Kalibr input · Basalt 10 of 10) · 3-cam + IMU, cam+IMU

Across the same 10 recordings, Basalt's estimates scatter about 1.8× more than MVIS's (median over 8 parameters). A gap this large appeared in 4.9 % of recording-by-recording swaps. Holds with any one recording left out.

MVIS here: its default IMU model.

PairR95 % intervalp (Holm)DecisionLeave one out
MVIS ÷ Basalt · 8 param. 0.570.34 – 0.98 0.049 MVIS tighter holds with any one recording left out

The 95 % interval of MVIS ÷ Basalt reaches into the tie band (0.80–1.25): the ratio shown is a point value.

0.10.250.512410← first tool scatters lesssecond tool scatters less →MVIS ÷ Basalt: R = 0.57, 95 % interval 0.34–0.98 · MVIS tighterMVIS ÷ Basalt
Ratio R of the two tools' typical scatter, first ÷ second. Shaded: 0.80–1.25, the gap treated as a tie even when it is clear. Bars: 95 % interval (not adjusted for multiple tests); a missing end is not bounded. Filled dots in a tool's colour mark a decided pair.
Parameter MVIS sd Basalt sdRatio
Looper GS cam0 · fx px 0.155 0.44 0.35
Looper GS cam0 · fy px 0.164 0.435 0.38
Looper GS cam0 · cx px 0.132 0.154 0.86
Looper GS cam0 · cy px 0.065 0.0408 1.59
Looper GS cam1 · fx px 0.121 0.449 0.27
Looper GS cam1 · fy px 0.13 0.443 0.29
Looper GS cam1 · cx px 0.119 0.0931 1.28
Looper GS cam1 · cy px 0.0818 0.0562 1.46
Not in this comparison
  • Kalibr · input, not compared · 8 rows: Kalibr's camera+IMU run starts from these values, exported from MVIS for each recording, and keeps them fixed. Their spread copies the input, so it is not Kalibr's repeatability.
  • MVIS · only this tool · 4 rows: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Kalibr · missing · 4 rows: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Basalt · missing · 4 rows: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model

Repeatability only — a tool can repeat well and still be biased.

Distortion coefficients · T11 · 10 matched recordings (MVIS 10 of 10 · Kalibr input · Basalt 10 of 10) · 3-cam + IMU, cam+IMU

The spreads of MVIS and Basalt differ by 1.3×, but a gap this size appears often by chance with 10 recordings (p = 0.17). Treated as a tie.

MVIS here: its default IMU model.

PairR95 % intervalp (Holm)DecisionLeave one out
MVIS ÷ Basalt · 8 param. 1.30.86 – 1.75 0.17 tie: gap within chance
0.10.250.512410← first tool scatters lesssecond tool scatters less →MVIS ÷ Basalt: R = 1.3, 95 % interval 0.86–1.75 · tieMVIS ÷ Basalt
Ratio R of the two tools' typical scatter, first ÷ second. Shaded: 0.80–1.25, the gap treated as a tie even when it is clear. Bars: 95 % interval (not adjusted for multiple tests); a missing end is not bounded. Filled dots in a tool's colour mark a decided pair.
Parameter MVIS sd Basalt sdRatio
Looper GS cam0 · dist k1 0.00123 0.0012 1.03
Looper GS cam0 · dist k2 0.00408 0.00243 1.68
Looper GS cam0 · dist k3 0.00483 0.00284 1.70
Looper GS cam0 · dist k4 0.00187 0.00111 1.68
Looper GS cam1 · dist k1 0.000887 0.00137 0.65
Looper GS cam1 · dist k2 0.00328 0.00265 1.24
Looper GS cam1 · dist k3 0.00426 0.00328 1.30
Looper GS cam1 · dist k4 0.00174 0.00133 1.31
Not in this comparison
  • Kalibr · input, not compared · 8 rows: Kalibr's camera+IMU run starts from these values, exported from MVIS for each recording, and keeps them fixed. Their spread copies the input, so it is not Kalibr's repeatability.
  • MVIS · only this tool · 4 rows: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Kalibr · missing · 4 rows: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Basalt · missing · 4 rows: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • a Coefficients trade off against each other, so their scatter can overstate differences in the lens mapping.

Repeatability only — a tool can repeat well and still be biased.

Camera–camera distance · T11 · 10 matched recordings (MVIS 10 of 10 · Kalibr input · Basalt 10 of 10) · 3-cam + IMU, cam+IMU

The spreads of MVIS and Basalt differ by 1.1×, but a gap this size appears often by chance with 10 recordings (p = 0.38). Treated as a tie.

MVIS here: its default IMU model.

PairR95 % intervalp (Holm)DecisionLeave one out
MVIS ÷ Basalt · 1 param. 1.110.9 – 1.39 0.38 tie: gap within chance
0.10.250.512410← first tool scatters lesssecond tool scatters less →MVIS ÷ Basalt: R = 1.11, 95 % interval 0.9–1.39 · tieMVIS ÷ Basalt
Ratio R of the two tools' typical scatter, first ÷ second. Shaded: 0.80–1.25, the gap treated as a tie even when it is clear. Bars: 95 % interval (not adjusted for multiple tests); a missing end is not bounded. Filled dots in a tool's colour mark a decided pair.
Parameter MVIS sd Basalt sdRatio
Looper GS cam1 · baseline to Looper GS cam0 mm 0.211 0.191 1.10
Not in this comparison
  • Kalibr · input, not compared · 1 row: Kalibr's camera+IMU run starts from these values, exported from MVIS for each recording, and keeps them fixed. Their spread copies the input, so it is not Kalibr's repeatability.
  • MVIS · only this tool · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Kalibr · missing · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Basalt · missing · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model

Repeatability only — a tool can repeat well and still be biased.

Rolling-shutter readout · T11 · MVIS only (MVIS only · Kalibr no value · Basalt no value) · 3-cam + IMU, cam+IMU

MVIS only: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model

Not in this comparison
  • MVIS · only this tool · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Kalibr · missing · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Basalt · missing · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model

Repeatability only — a tool can repeat well and still be biased.

Camera–IMU time offset · T11 · 10 matched recordings (MVIS 10 of 10 · Kalibr 10 of 10 · Basalt 10 of 10) · 3-cam + IMU, cam+IMU

MVIS is tighter than Basalt; the other pairs are not separated. No single tool is marked.

MVIS here: its default IMU model.

PairR95 % intervalp (Holm)DecisionLeave one out
MVIS ÷ Kalibr · 2 param. 0.590.36 – 1.19 0.22 (raw 0.11) tie: gap within chance
MVIS ÷ Basalt · 2 param. 0.50.34 – 0.65 0.012 (raw 0.0039) MVIS tighter holds with any one recording left out
Kalibr ÷ Basalt · 2 param. 0.850.43 – 1.28 0.43 tie: gap within chance
0.10.250.512410← first tool scatters lesssecond tool scatters less →MVIS ÷ Kalibr: R = 0.59, 95 % interval 0.36–1.19 · tieMVIS ÷ KalibrMVIS ÷ Basalt: R = 0.5, 95 % interval 0.34–0.65 · MVIS tighterMVIS ÷ BasaltKalibr ÷ Basalt: R = 0.85, 95 % interval 0.43–1.28 · tieKalibr ÷ Basalt
Ratio R of the two tools' typical scatter, first ÷ second. Shaded: 0.80–1.25, the gap treated as a tie even when it is clear. Bars: 95 % interval (not adjusted for multiple tests); a missing end is not bounded. Filled dots in a tool's colour mark a decided pair.
Parameter MVIS sd Kalibr sd Basalt sd
Looper GS cam0 · time offset td to base IMU ms 0.0767 0.131 0.156
Looper GS cam1 · time offset td to base IMU ms 0.0801 0.135 0.156
Not in this comparison
  • MVIS · only this tool · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Kalibr · missing · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Basalt · missing · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • b MVIS also fits a gyro–accel delay (t_ga) that Kalibr and Basalt do not, so its td is not quite the same quantity.

Repeatability only — a tool can repeat well and still be biased.

Camera–IMU distance · T11 · 10 matched recordings (MVIS 10 of 10 · Kalibr 10 of 10 · Basalt 10 of 10) · 3-cam + IMU, cam+IMU

The spreads of MVIS and Kalibr differ by 1.1×, but a gap this size appears often by chance with 10 recordings (p = 1). Treated as a tie. The spreads of MVIS and Basalt differ by 1.2×, but a gap this size appears often by chance with 10 recordings (p = 1). Treated as a tie. The spreads of Kalibr and Basalt differ by 1.03×, but a gap this size appears often by chance with 10 recordings (p = 1). Treated as a tie.

MVIS here: its default IMU model.

PairR95 % intervalp (Holm)DecisionLeave one out
MVIS ÷ Kalibr · 2 param. 0.90.67 – 1.24 1 (raw 0.39) tie: gap within chance
MVIS ÷ Basalt · 2 param. 0.870.56 – 1.28 1 (raw 0.47) tie: gap within chance
Kalibr ÷ Basalt · 2 param. 0.970.59 – 1.57 1 (raw 0.87) tie: gap within chance
0.10.250.512410← first tool scatters lesssecond tool scatters less →MVIS ÷ Kalibr: R = 0.9, 95 % interval 0.67–1.24 · tieMVIS ÷ KalibrMVIS ÷ Basalt: R = 0.87, 95 % interval 0.56–1.28 · tieMVIS ÷ BasaltKalibr ÷ Basalt: R = 0.97, 95 % interval 0.59–1.57 · tieKalibr ÷ Basalt
Ratio R of the two tools' typical scatter, first ÷ second. Shaded: 0.80–1.25, the gap treated as a tie even when it is clear. Bars: 95 % interval (not adjusted for multiple tests); a missing end is not bounded. Filled dots in a tool's colour mark a decided pair.
Parameter MVIS sd Kalibr sd Basalt sd
Looper GS cam0 · distance to base IMU ‖p‖ mm 0.375 0.512 0.564
Looper GS cam1 · distance to base IMU ‖p‖ mm 0.375 0.341 0.329
Not in this comparison
  • MVIS · only this tool · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Kalibr · missing · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model
  • Basalt · missing · 1 row: no Kalibr rolling-shutter run; Basalt has no rolling-shutter model

Repeatability only — a tool can repeat well and still be biased.

Gyro scale + cross-axis · T11 · 10 matched recordings (MVIS 10 of 10 · Kalibr 10 of 10 · Basalt 10 of 10) · 3-cam + IMU, cam+IMU

The spreads of MVIS and Kalibr differ by 1.2×, but a gap this size appears often by chance with 10 recordings (p = 0.28). Treated as a tie. The spreads of MVIS and Basalt differ by 1.4×, but a gap this size appears often by chance with 10 recordings (p = 0.14). Treated as a tie. The spreads of Kalibr and Basalt differ by 1.4×, but a gap this size appears often by chance with 10 recordings (p = 0.28). Treated as a tie.

MVIS here: its run with Kalibr's IMU model (K-IMU).

PairR95 % intervalp (Holm)DecisionLeave one out
MVIS ÷ Kalibr · 6 param. 1.150.94 – 1.64 0.28 (raw 0.17) tie: gap within chance
MVIS ÷ Basalt · 6 param. 0.730.5 – 1 0.14 (raw 0.047) tie: gap within chance
Kalibr ÷ Basalt · 6 param. 0.730.41 – 1.17 0.28 (raw 0.14) tie: gap within chance
0.10.250.512410← first tool scatters lesssecond tool scatters less →MVIS ÷ Kalibr: R = 1.15, 95 % interval 0.94–1.64 · tieMVIS ÷ KalibrMVIS ÷ Basalt: R = 0.73, 95 % interval 0.5–1 · tieMVIS ÷ BasaltKalibr ÷ Basalt: R = 0.73, 95 % interval 0.41–1.17 · tieKalibr ÷ Basalt
Ratio R of the two tools' typical scatter, first ÷ second. Shaded: 0.80–1.25, the gap treated as a tie even when it is clear. Bars: 95 % interval (not adjusted for multiple tests); a missing end is not bounded. Filled dots in a tool's colour mark a decided pair.
Parameter MVIS sd Kalibr sd Basalt sd
Looper MEMS imu0 · gyro Dw[0,0] scale x 0.000875 0.00131 0.00144
Looper MEMS imu0 · gyro Dw[1,1] scale y 0.000964 0.000679 0.00131
Looper MEMS imu0 · gyro Dw[2,2] scale z 0.000329 0.000342 0.000454
Looper MEMS imu0 · gyro Dw[1,0] cross 0.00122 0.00103 0.000703
Looper MEMS imu0 · gyro Dw[2,0] cross 0.000459 0.000337 0.00048
Looper MEMS imu0 · gyro Dw[2,1] cross 0.000619 0.000549 0.00111
  • c MVIS here uses Kalibr's IMU model, so the gyro and accel terms mean the same thing in both tools.

Repeatability only — a tool can repeat well and still be biased.

Accel scale · T11 · 10 matched recordings (MVIS 10 of 10 · Kalibr 10 of 10 · Basalt 10 of 10) · 3-cam + IMU, cam+IMU

The gap between MVIS and Kalibr is clear but under 20 % (1.2×), so it is treated as a tie. The spreads of MVIS and Basalt differ by 1.2×, but a gap this size appears often by chance with 10 recordings (p = 0.7). Treated as a tie. The spreads of Kalibr and Basalt differ by 1.01×, but a gap this size appears often by chance with 10 recordings (p = 0.92). Treated as a tie.

MVIS here: its run with Kalibr's IMU model (K-IMU).

PairR95 % intervalp (Holm)DecisionLeave one out
MVIS ÷ Kalibr · 3 param. 0.820.62 – 0.95 0.029 (raw 0.0098) tie: gap under 20 %
MVIS ÷ Basalt · 3 param. 0.810.6 – 1.4 0.7 (raw 0.35) tie: gap within chance
Kalibr ÷ Basalt · 3 param. 1.010.78 – 1.93 0.92 tie: gap within chance
0.10.250.512410← first tool scatters lesssecond tool scatters less →MVIS ÷ Kalibr: R = 0.82, 95 % interval 0.62–0.95 · tieMVIS ÷ KalibrMVIS ÷ Basalt: R = 0.81, 95 % interval 0.6–1.4 · tieMVIS ÷ BasaltKalibr ÷ Basalt: R = 1.01, 95 % interval 0.78–1.93 · tieKalibr ÷ Basalt
Ratio R of the two tools' typical scatter, first ÷ second. Shaded: 0.80–1.25, the gap treated as a tie even when it is clear. Bars: 95 % interval (not adjusted for multiple tests); a missing end is not bounded. Filled dots in a tool's colour mark a decided pair.
Parameter MVIS sd Kalibr sd Basalt sd
Looper MEMS imu0 · accel Da[0,0] scale x 0.000395 0.000286 0.000485
Looper MEMS imu0 · accel Da[1,1] scale y 0.000281 0.000502 0.000495
Looper MEMS imu0 · accel Da[2,2] scale z 0.00159 0.00195 0.00179
  • c MVIS here uses Kalibr's IMU model, so the gyro and accel terms mean the same thing in both tools.

Repeatability only — a tool can repeat well and still be biased.

Camera stereo · 10 recordings

Repeatability Focal + ppDistortionDistanceReadoutTime offsetCam–IMU distanceGyroAccel

  • MVIS 10 of 10
  • Kalibr 10 of 10
  • Basalt 10 of 10

Records behind these numbers: MVIS T4.json · Kalibr T4.json · Basalt T4.json

MVIS − Kalibr ◆ 6 of 17 compared rows
  • Looper GS cam0 · fx +0.60 px ◆
  • Looper GS cam0 · fy +0.63 px ◆
  • Looper GS cam0 · cx +0.06 px
  • Looper GS cam0 · cy +0.02 px
  • Looper GS cam0 · dist k1 −0.00189 ◆
  • Looper GS cam0 · dist k2 −0.00026
  • Looper GS cam0 · dist k3 +0.00344
  • Looper GS cam0 · dist k4 −0.00200
  • Looper GS cam1 · fx +0.53 px ◆
  • Looper GS cam1 · fy +0.54 px ◆
  • Looper GS cam1 · cx −0.13 px
  • Looper GS cam1 · cy +0.01 px
  • Looper GS cam1 · dist k1 −0.00243 ◆
  • Looper GS cam1 · dist k2 +0.00213
  • Looper GS cam1 · dist k3 +0.00022
  • Looper GS cam1 · dist k4 −0.00097
  • Looper GS cam1 · baseline to Looper GS cam0 −0.059 mm
Basalt − Kalibr ◆ 3 of 17 compared rows
  • Looper GS cam0 · fx +0.33 px
  • Looper GS cam0 · fy +0.35 px
  • Looper GS cam0 · cx +0.09 px
  • Looper GS cam0 · cy −0.01 px
  • Looper GS cam0 · dist k1 −0.00156 ◆
  • Looper GS cam0 · dist k2 +0.00205
  • Looper GS cam0 · dist k3 +0.00010
  • Looper GS cam0 · dist k4 −0.00088
  • Looper GS cam1 · fx +0.32 px
  • Looper GS cam1 · fy +0.31 px
  • Looper GS cam1 · cx −0.10 px
  • Looper GS cam1 · cy −0.03 px
  • Looper GS cam1 · dist k1 −0.00212 ◆
  • Looper GS cam1 · dist k2 +0.00399 ◆
  • Looper GS cam1 · dist k3 −0.00420
  • Looper GS cam1 · dist k4 +0.00154
  • Looper GS cam1 · baseline to Looper GS cam0 −0.062 mm
Basalt − MVIS ◆ 2 of 17 compared rows
  • Looper GS cam0 · fx −0.27 px
  • Looper GS cam0 · fy −0.28 px
  • Looper GS cam0 · cx +0.03 px
  • Looper GS cam0 · cy −0.03 px
  • Looper GS cam0 · dist k1 +0.00033
  • Looper GS cam0 · dist k2 +0.00230
  • Looper GS cam0 · dist k3 −0.00334
  • Looper GS cam0 · dist k4 +0.00113
  • Looper GS cam1 · fx −0.22 px
  • Looper GS cam1 · fy −0.23 px
  • Looper GS cam1 · cx +0.02 px
  • Looper GS cam1 · cy −0.04 px
  • Looper GS cam1 · dist k1 +0.00030
  • Looper GS cam1 · dist k2 +0.00186
  • Looper GS cam1 · dist k3 −0.00442 ◆
  • Looper GS cam1 · dist k4 +0.00251 ◆
  • Looper GS cam1 · baseline to Looper GS cam0 −0.004 mm

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, 17 parameter charts (open to see each tool's spread)

fx px axis 335 ± 1

MVIS 335.60 ± 0.38 (10)
Kalibr 335.00 ± 0.19 (10)
Basalt 335.33 ± 0.38 (10)

fy px axis 335 ± 0.98

MVIS 335.60 ± 0.37 (10)
Kalibr 334.97 ± 0.19 (10)
Basalt 335.31 ± 0.38 (10)

cx px axis 272 ± 0.314

MVIS 271.99 ± 0.11 (10)
Kalibr 271.93 ± 0.17 (10)
Basalt 272.01 ± 0.11 (10)

cy px axis 318 ± 0.108

MVIS 318.49 ± 0.045 (10)
Kalibr 318.48 ± 0.055 (10)
Basalt 318.46 ± 0.032 (10)

dist k1 axis −0.0232 ± 0.00386

MVIS −0.02356 ± 0.0011 (10)
Kalibr −0.02167 ± 0.0014 (10)
Basalt −0.02323 ± 0.00079 (10)

dist k2 axis 0.0116 ± 0.0088

MVIS 0.01131 ± 0.0028 (10)
Kalibr 0.01157 ± 0.0048 (10)
Basalt 0.01362 ± 0.0016 (10)

dist k3 axis −0.0136 ± 0.0121

MVIS −0.01022 ± 0.0038 (10)
Kalibr −0.01366 ± 0.0059 (10)
Basalt −0.01356 ± 0.0018 (10)

dist k4 axis 0.00236 ± 0.00614

MVIS 0.00123 ± 0.0017 (10)
Kalibr 0.00324 ± 0.0024 (10)
Basalt 0.00236 ± 0.00064 (10)

fx px axis 335 ± 1

MVIS 335.62 ± 0.4 (10)
Kalibr 335.09 ± 0.2 (10)
Basalt 335.41 ± 0.38 (10)

fy px axis 335 ± 1.01

MVIS 335.61 ± 0.4 (10)
Kalibr 335.07 ± 0.2 (10)
Basalt 335.38 ± 0.38 (10)

cx px axis 269 ± 0.304

MVIS 269.29 ± 0.12 (10)
Kalibr 269.42 ± 0.16 (10)
Basalt 269.31 ± 0.092 (10)

cy px axis 318 ± 0.134

MVIS 318.27 ± 0.07 (10)
Kalibr 318.25 ± 0.049 (10)
Basalt 318.22 ± 0.052 (10)

dist k1 axis −0.0234 ± 0.00376

MVIS −0.02366 ± 0.0011 (10)
Kalibr −0.02123 ± 0.00095 (10)
Basalt −0.02336 ± 0.001 (10)

dist k2 axis 0.0113 ± 0.00781

MVIS 0.01135 ± 0.0022 (10)
Kalibr 0.00922 ± 0.0039 (10)
Basalt 0.01321 ± 0.0023 (10)

dist k3 axis −0.00998 ± 0.0135

MVIS −0.00975 ± 0.0026 (10)
Kalibr −0.00998 ± 0.0052 (10)
Basalt −0.01417 ± 0.0029 (10)

dist k4 axis 0.0015 ± 0.00559

MVIS 0.00053 ± 0.001 (10)
Kalibr 0.00150 ± 0.0022 (10)
Basalt 0.00304 ± 0.0013 (10)

baseline to Looper GS cam0 mm axis 99.1 ± 0.498

MVIS 99.129 ± 0.18 (10)
Kalibr 99.188 ± 0.24 (10)
Basalt 99.126 ± 0.18 (10)

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.

1 note on models, inputs and run settings
  • No charted value is an input or comes from another model.

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

3-cam + IMU · 10 recordings

Read first: Kalibr's intrinsics and baselines are inputs from its own camera-only calibration; its td and lever are solved given them.

Repeatability Focal + ppDistortionDistanceReadoutTime offsetCam–IMU distanceGyroAccel

  • MVIS 10 of 10
  • Kalibr 10 of 10
  • Basalt 10 of 10

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.

Records behind these numbers: MVIS T11.json · Kalibr T11.json · Basalt T11.json

Fit: reprojection median, px (fit of each tool's own model, not accuracy)
Camera MVIS MVIS (K-IMU) Kalibr Basalt
Looper GS cam00.1540.1530.195–
Looper GS cam10.1620.1610.209–
Looper RS cam20.4340.434––
MVIS (K-IMU) − Kalibr ◆ 7 of 13 compared rows
  • Looper GS cam0 · time offset td to base IMU +1.598 ms ◆
  • Looper GS cam0 · distance to base IMU ‖p‖ −0.83 mm ◆
  • Looper GS cam1 · time offset td to base IMU +1.616 ms ◆
  • Looper GS cam1 · distance to base IMU ‖p‖ +0.63 mm ◆
  • Looper MEMS imu0 · gyro Dw[0,0] scale x +0.00236 ◆
  • Looper MEMS imu0 · gyro Dw[1,1] scale y +0.00002
  • Looper MEMS imu0 · gyro Dw[2,2] scale z −0.00003
  • Looper MEMS imu0 · gyro Dw[1,0] cross +0.00001
  • Looper MEMS imu0 · gyro Dw[2,0] cross −0.00205 ◆
  • Looper MEMS imu0 · gyro Dw[2,1] cross +0.00014
  • Looper MEMS imu0 · accel Da[0,0] scale x +0.00043 ◆
  • Looper MEMS imu0 · accel Da[1,1] scale y +0.00045
  • Looper MEMS imu0 · accel Da[2,2] scale z −0.00084
Basalt − Kalibr ◆ 3 of 13 compared rows
  • Looper GS cam0 · time offset td to base IMU +0.852 ms ◆
  • Looper GS cam0 · distance to base IMU ‖p‖ +0.49 mm
  • Looper GS cam1 · time offset td to base IMU +0.836 ms ◆
  • Looper GS cam1 · distance to base IMU ‖p‖ −0.12 mm
  • Looper MEMS imu0 · gyro Dw[0,0] scale x +0.00036
  • Looper MEMS imu0 · gyro Dw[1,1] scale y −0.00003
  • Looper MEMS imu0 · gyro Dw[2,2] scale z −0.00004
  • Looper MEMS imu0 · gyro Dw[1,0] cross +0.00031
  • Looper MEMS imu0 · gyro Dw[2,0] cross −0.00119 ◆
  • Looper MEMS imu0 · gyro Dw[2,1] cross +0.00004
  • Looper MEMS imu0 · accel Da[0,0] scale x −0.00011
  • Looper MEMS imu0 · accel Da[1,1] scale y −0.00011
  • Looper MEMS imu0 · accel Da[2,2] scale z −0.00064
Basalt − MVIS (K-IMU) ◆ 15 of 30 compared rows
  • Looper GS cam0 · fx +0.31 px
  • Looper GS cam0 · fy +0.26 px
  • Looper GS cam0 · cx −0.23 px ◆
  • Looper GS cam0 · cy −0.07 px
  • Looper GS cam0 · dist k1 +0.00037
  • Looper GS cam0 · dist k2 −0.00115
  • Looper GS cam0 · dist k3 +0.00266
  • Looper GS cam0 · dist k4 −0.00153
  • Looper GS cam0 · time offset td to base IMU −0.746 ms ◆
  • Looper GS cam0 · distance to base IMU ‖p‖ +1.33 mm ◆
  • Looper GS cam1 · fx +0.27 px
  • Looper GS cam1 · fy +0.32 px
  • Looper GS cam1 · cx −0.29 px ◆
  • Looper GS cam1 · cy −0.15 px ◆
  • Looper GS cam1 · dist k1 +0.00144 ◆
  • Looper GS cam1 · dist k2 −0.00668 ◆
  • Looper GS cam1 · dist k3 +0.00642 ◆
  • Looper GS cam1 · dist k4 −0.00186 ◆
  • Looper GS cam1 · baseline to Looper GS cam0 −0.023 mm
  • Looper GS cam1 · time offset td to base IMU −0.780 ms ◆
  • Looper GS cam1 · distance to base IMU ‖p‖ −0.74 mm ◆
  • Looper MEMS imu0 · gyro Dw[0,0] scale x −0.00200 ◆
  • Looper MEMS imu0 · gyro Dw[1,1] scale y −0.00005
  • Looper MEMS imu0 · gyro Dw[2,2] scale z −0.00001
  • Looper MEMS imu0 · gyro Dw[1,0] cross +0.00030
  • Looper MEMS imu0 · gyro Dw[2,0] cross +0.00086 ◆
  • Looper MEMS imu0 · gyro Dw[2,1] cross −0.00010
  • Looper MEMS imu0 · accel Da[0,0] scale x −0.00055 ◆
  • Looper MEMS imu0 · accel Da[1,1] scale y −0.00055 ◆
  • Looper MEMS imu0 · accel Da[2,2] scale z +0.00020

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.

4 sensors, 43 parameter charts (open to see each tool's spread)

fx px axis 334 ± 1.34

MVIS 333.92 ± 0.16 (10)
MVIS (K-IMU) 333.93 ± 0.15 (10)
Kalibr 335.00 ± 0.19 (10) input
Basalt 334.24 ± 0.44 (10)

fy px axis 334 ± 1.35

MVIS 333.91 ± 0.16 (10)
MVIS (K-IMU) 333.93 ± 0.16 (10)
Kalibr 334.97 ± 0.19 (10) input
Basalt 334.19 ± 0.43 (10)

cx px axis 272 ± 0.366

MVIS 272.18 ± 0.13 (10)
MVIS (K-IMU) 272.18 ± 0.14 (10)
Kalibr 271.93 ± 0.17 (10) input
Basalt 271.96 ± 0.15 (10)

cy px axis 319 ± 0.146

MVIS 318.58 ± 0.065 (10)
MVIS (K-IMU) 318.58 ± 0.068 (10)
Kalibr 318.48 ± 0.055 (10) input
Basalt 318.51 ± 0.041 (10)

dist k1 axis −0.0218 ± 0.00351

MVIS −0.02197 ± 0.0012 (10)
MVIS (K-IMU) −0.02193 ± 0.0012 (10)
Kalibr −0.02167 ± 0.0014 (10) input
Basalt −0.02156 ± 0.0012 (10)

dist k2 axis 0.0118 ± 0.00863

MVIS 0.01205 ± 0.0041 (10)
MVIS (K-IMU) 0.01207 ± 0.0041 (10)
Kalibr 0.01157 ± 0.0048 (10) input
Basalt 0.01092 ± 0.0024 (10)

dist k3 axis −0.0135 ± 0.0121

MVIS −0.01349 ± 0.0048 (10)
MVIS (K-IMU) −0.01359 ± 0.0048 (10)
Kalibr −0.01366 ± 0.0059 (10) input
Basalt −0.01093 ± 0.0028 (10)

dist k4 axis 0.00285 ± 0.0056

MVIS 0.00283 ± 0.0019 (10)
MVIS (K-IMU) 0.00288 ± 0.0019 (10)
Kalibr 0.00324 ± 0.0024 (10) input
Basalt 0.00135 ± 0.0011 (10)

time offset td to base IMU ms axis 0.948 ± 1.69 · line at 0

MVIS 1.315 ± 0.077 (10)
MVIS (K-IMU) 1.326 ± 0.087 (10)
Kalibr −0.272 ± 0.13 (10)
Basalt 0.580 ± 0.16 (10)

distance to base IMU ‖p‖ mm axis 44.1 ± 1.62

MVIS 43.70 ± 0.37 (10)
MVIS (K-IMU) 43.73 ± 0.37 (10)
Kalibr 44.56 ± 0.51 (10)
Basalt 45.05 ± 0.56 (10)

fx px axis 334 ± 1.45

MVIS 333.99 ± 0.12 (10)
MVIS (K-IMU) 333.99 ± 0.12 (10)
Kalibr 335.09 ± 0.2 (10) input
Basalt 334.26 ± 0.45 (10)

fy px axis 334 ± 1.43

MVIS 333.91 ± 0.13 (10)
MVIS (K-IMU) 333.91 ± 0.13 (10)
Kalibr 335.07 ± 0.2 (10) input
Basalt 334.22 ± 0.44 (10)

cx px axis 269 ± 0.487

MVIS 269.53 ± 0.12 (10)
MVIS (K-IMU) 269.53 ± 0.12 (10)
Kalibr 269.42 ± 0.16 (10) input
Basalt 269.25 ± 0.093 (10)

cy px axis 318 ± 0.259

MVIS 318.46 ± 0.082 (10)
MVIS (K-IMU) 318.46 ± 0.086 (10)
Kalibr 318.25 ± 0.049 (10) input
Basalt 318.31 ± 0.056 (10)

dist k1 axis −0.0222 ± 0.00308

MVIS −0.02297 ± 0.00089 (10)
MVIS (K-IMU) −0.02296 ± 0.0009 (10)
Kalibr −0.02123 ± 0.00095 (10) input
Basalt −0.02152 ± 0.0014 (10)

dist k2 axis 0.0145 ± 0.0122

MVIS 0.01779 ± 0.0033 (10)
MVIS (K-IMU) 0.01788 ± 0.0033 (10)
Kalibr 0.00922 ± 0.0039 (10) input
Basalt 0.01120 ± 0.0026 (10)

dist k3 axis −0.0151 ± 0.0145

MVIS −0.01823 ± 0.0043 (10)
MVIS (K-IMU) −0.01837 ± 0.0043 (10)
Kalibr −0.00998 ± 0.0052 (10) input
Basalt −0.01195 ± 0.0033 (10)

dist k4 axis 0.00301 ± 0.00548

MVIS 0.00393 ± 0.0017 (10)
MVIS (K-IMU) 0.00396 ± 0.0018 (10)
Kalibr 0.00150 ± 0.0022 (10) input
Basalt 0.00210 ± 0.0013 (10)

baseline to Looper GS cam0 mm axis 99 ± 0.508

MVIS 99.001 ± 0.21 (10)
MVIS (K-IMU) 99.003 ± 0.21 (10)
Kalibr 99.188 ± 0.24 (10) input
Basalt 98.980 ± 0.19 (10)

time offset td to base IMU ms axis 0.965 ± 1.69 · line at 0

MVIS 1.349 ± 0.08 (10)
MVIS (K-IMU) 1.360 ± 0.092 (10)
Kalibr −0.256 ± 0.14 (10)
Basalt 0.580 ± 0.16 (10)

distance to base IMU ‖p‖ mm axis 63.6 ± 1.02

MVIS 63.96 ± 0.37 (10)
MVIS (K-IMU) 63.96 ± 0.38 (10)
Kalibr 63.33 ± 0.34 (10)
Basalt 63.21 ± 0.33 (10)

fx px axis 775 ± 1.37

MVIS 775.21 ± 0.51 (10)
MVIS (K-IMU) 775.21 ± 0.53 (10)
Kalibr not run
Basalt not run

fy px axis 775 ± 1.22

MVIS 775.33 ± 0.48 (10)
MVIS (K-IMU) 775.31 ± 0.49 (10)
Kalibr not run
Basalt not run

cx px axis 960 ± 0.408

MVIS 960.12 ± 0.22 (10)
MVIS (K-IMU) 960.13 ± 0.22 (10)
Kalibr not run
Basalt not run

cy px axis 536 ± 0.6

MVIS 535.69 ± 0.27 (10)
MVIS (K-IMU) 535.71 ± 0.27 (10)
Kalibr not run
Basalt not run

dist k1 axis −0.0327 ± 0.00253

MVIS −0.03266 ± 0.0013 (10)
MVIS (K-IMU) −0.03264 ± 0.0013 (10)
Kalibr not run
Basalt not run

dist k2 axis 0.000669 ± 0.00873

MVIS 0.00066 ± 0.0044 (10)
MVIS (K-IMU) 0.00067 ± 0.0044 (10)
Kalibr not run
Basalt not run

dist k3 axis −0.0022 ± 0.0127

MVIS −0.00217 ± 0.0057 (10)
MVIS (K-IMU) −0.00223 ± 0.0057 (10)
Kalibr not run
Basalt not run

dist k4 axis 0.000702 ± 0.00565

MVIS 0.00069 ± 0.0024 (10)
MVIS (K-IMU) 0.00072 ± 0.0024 (10)
Kalibr not run
Basalt not run

readout tr ms axis 32.1 ± 0.43

MVIS 32.136 ± 0.22 (10)
MVIS (K-IMU) 32.148 ± 0.23 (10)
Kalibr not run
Basalt not run

baseline to Looper GS cam0 mm axis 49.5 ± 0.222

MVIS 49.527 ± 0.12 (10)
MVIS (K-IMU) 49.527 ± 0.12 (10)
Kalibr not run
Basalt not run

time offset td to base IMU ms axis −5.68 ± 0.277

MVIS −5.687 ± 0.14 (10)
MVIS (K-IMU) −5.673 ± 0.15 (10)
Kalibr not run
Basalt not run

distance to base IMU ‖p‖ mm axis 22.9 ± 0.992

MVIS 22.90 ± 0.38 (10)
MVIS (K-IMU) 22.94 ± 0.43 (10)
Kalibr not run
Basalt not run

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

MVIS no value
MVIS (K-IMU) 1.00082 ± 0.00087 (10)
Kalibr 0.99846 ± 0.0013 (10)
Basalt 0.99882 ± 0.0014 (10)

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

MVIS no value
MVIS (K-IMU) 1.00000 ± 0.00096 (10)
Kalibr 0.99998 ± 0.00068 (10)
Basalt 0.99995 ± 0.0013 (10)

gyro Dw[2,2] scale z axis 0.996 ± 0.000873

MVIS no value
MVIS (K-IMU) 0.99572 ± 0.00033 (10)
Kalibr 0.99575 ± 0.00034 (10)
Basalt 0.99571 ± 0.00045 (10)

gyro Dw[1,0] cross axis 0.00176 ± 0.00205

MVIS no value
MVIS (K-IMU) 0.00176 ± 0.0012 (10)
Kalibr 0.00175 ± 0.001 (10)
Basalt 0.00206 ± 0.0007 (10)

gyro Dw[2,0] cross axis 0.0000818 ± 0.00194

MVIS no value
MVIS (K-IMU) −0.00078 ± 0.00046 (10)
Kalibr 0.00127 ± 0.00034 (10)
Basalt 0.00008 ± 0.00048 (10)

gyro Dw[2,1] cross axis −0.00176 ± 0.00239

MVIS no value
MVIS (K-IMU) −0.00166 ± 0.00062 (10)
Kalibr −0.00180 ± 0.00055 (10)
Basalt −0.00176 ± 0.0011 (10)

accel Da[0,0] scale x axis 0.996 ± 0.00125

MVIS no value
MVIS (K-IMU) 0.99618 ± 0.0004 (10)
Kalibr 0.99574 ± 0.00029 (10)
Basalt 0.99563 ± 0.00049 (10)

accel Da[1,1] scale y axis 0.996 ± 0.00137

MVIS no value
MVIS (K-IMU) 0.99681 ± 0.00028 (10)
Kalibr 0.99636 ± 0.0005 (10)
Basalt 0.99625 ± 0.00049 (10)

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

MVIS no value
MVIS (K-IMU) 1.00457 ± 0.0016 (10)
Kalibr 1.00541 ± 0.0019 (10)
Basalt 1.00477 ± 0.0018 (10)

t_ga gyro−accel ms axis −5.3 ± 0.202

MVIS not in this tool's model
MVIS (K-IMU) −5.297 ± 0.11 (10)
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.

6 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) · Looper MEMS imu0
−0.0770.029−0.073−0.1310.0060.0510.139−0.0480.001
Kalibr · Looper MEMS imu0
−0.234−0.2460.0630.8040.021−2.2070.0001.381−0.018
  • Like for like: Every tool uses the same IMU noise, measured at rest on this unit. Kalibr's td and lever are solved given its inputs. RS cam2 is MVIS only.
  • Note: Kalibr's camera + IMU solver is global-shutter only, so the RS cam2 is not in its runs. Every tool uses the same IMU noise, measured at rest on this unit.
  • Basalt: cam0 + cam1 (no rolling-shutter model, so no cam2).

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

Every parameter table, tool difference and run config (Looper Insight 9)
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, from an MVIS export or, on T6 and T11, from its own camera-only calibration; T7 ELP-L readout is held at 0. 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.

T4 · Camera stereo

MVIS 10 of 10 · Kalibr 10 of 10 · Basalt 10 of 10

Camera · stereo01–stereo10 · Kalibr pinhole-equi

cam0 – Looper GS cam0 · 8 rows · ◆ 3
ParameterMVISKalibrBasaltMVIS− KalibrBasalt− KalibrBasalt− MVIS
fx px335.60 ± 0.38 (10)335.00 ± 0.19 (10)335.33 ± 0.38 (10)◆ +0.60+0.33−0.27
fy px335.60 ± 0.37 (10)334.97 ± 0.19 (10)335.31 ± 0.38 (10)◆ +0.63+0.35−0.28
cx px271.99 ± 0.11 (10)271.93 ± 0.17 (10)272.01 ± 0.11 (10)+0.06+0.09+0.03
cy px318.49 ± 0.05 (10)318.48 ± 0.05 (10)318.46 ± 0.03 (10)+0.02−0.01−0.03
dist k1−0.02356 ± 0.00109 (10)−0.02167 ± 0.00139 (10)−0.02323 ± 0.00079 (10)◆ −0.00189◆ −0.00156+0.00033
dist k20.01131 ± 0.00284 (10)0.01157 ± 0.00481 (10)0.01362 ± 0.00156 (10)−0.00026+0.00205+0.00230
dist k3−0.01022 ± 0.00381 (10)−0.01366 ± 0.00588 (10)−0.01356 ± 0.00177 (10)+0.00344+0.00010−0.00334
dist k40.00123 ± 0.00170 (10)0.00324 ± 0.00244 (10)0.00236 ± 0.00064 (10)−0.00200−0.00088+0.00113
cam1 – Looper GS cam1 · 9 rows · ◆ 6
ParameterMVISKalibrBasaltMVIS− KalibrBasalt− KalibrBasalt− MVIS
fx px335.62 ± 0.40 (10)335.09 ± 0.20 (10)335.41 ± 0.38 (10)◆ +0.53+0.32−0.22
fy px335.61 ± 0.40 (10)335.07 ± 0.20 (10)335.38 ± 0.38 (10)◆ +0.54+0.31−0.23
cx px269.29 ± 0.12 (10)269.42 ± 0.16 (10)269.31 ± 0.09 (10)−0.13−0.10+0.02
cy px318.27 ± 0.07 (10)318.25 ± 0.05 (10)318.22 ± 0.05 (10)+0.01−0.03−0.04
dist k1−0.02366 ± 0.00110 (10)−0.02123 ± 0.00095 (10)−0.02336 ± 0.00103 (10)◆ −0.00243◆ −0.00212+0.00030
dist k20.01135 ± 0.00224 (10)0.00922 ± 0.00393 (10)0.01321 ± 0.00226 (10)+0.00213◆ +0.00399+0.00186
dist k3−0.00975 ± 0.00259 (10)−0.00998 ± 0.00515 (10)−0.01417 ± 0.00288 (10)+0.00022−0.00420◆ −0.00442
dist k40.00053 ± 0.00103 (10)0.00150 ± 0.00219 (10)0.00304 ± 0.00126 (10)−0.00097+0.00154◆ +0.00251
baseline to Looper GS cam0 mm99.129 ± 0.176 (10)99.188 ± 0.238 (10)99.126 ± 0.183 (10)−0.059−0.062−0.004

T11 · 3-cam + IMU

MVIS 10 of 10 · Kalibr 10 of 10, no values on Looper RS cam2 · Basalt 10 of 10, no values on Looper RS cam2

Camera + IMU · bags 1–10 · Kalibr from its own camera calibration

Read first: Kalibr's intrinsics and baselines are inputs from its own camera-only calibration; its td and lever are solved given them.

Notes

Like for like: Every tool uses the same IMU noise, measured at rest on this unit. Kalibr's td and lever are solved given its inputs. RS cam2 is MVIS only.

Note: Kalibr's camera + IMU solver is global-shutter only, so the RS cam2 is not in its runs. Every tool uses the same IMU noise, measured at rest on this unit.

Basalt: cam0 + cam1 (no rolling-shutter model, so no cam2).

cam0 – Looper GS cam0 · 11 rows · ◆ 3
ParameterMVISKalibr IMU modelKalibrBasaltMVIS− KalibrBasalt− KalibrBasalt− MVIS
fx px333.93 ± 0.15 (10)fixed 335.00 ± 0.19 (10)334.24 ± 0.44 (10)+0.31
fy px333.93 ± 0.16 (10)fixed 334.97 ± 0.19 (10)334.19 ± 0.43 (10)+0.26
cx px272.18 ± 0.14 (10)fixed 271.93 ± 0.17 (10)271.96 ± 0.15 (10)◆ −0.23
cy px318.58 ± 0.07 (10)fixed 318.48 ± 0.05 (10)318.51 ± 0.04 (10)−0.07
dist k1−0.02193 ± 0.00122 (10)fixed −0.02167 ± 0.00139 (10)−0.02156 ± 0.00120 (10)+0.00037
dist k20.01207 ± 0.00406 (10)fixed 0.01157 ± 0.00481 (10)0.01092 ± 0.00243 (10)−0.00115
dist k3−0.01359 ± 0.00479 (10)fixed −0.01366 ± 0.00588 (10)−0.01093 ± 0.00284 (10)+0.00266
dist k40.00288 ± 0.00186 (10)fixed 0.00324 ± 0.00244 (10)0.00135 ± 0.00111 (10)−0.00153
time offset td to base IMU‡ ms1.326 ± 0.087 (10)−0.272 ± 0.131 (10)0.580 ± 0.156 (10)◆ +1.598◆ +0.852◆ −0.746
distance to base IMU ‖p‖ mm43.73 ± 0.37 (10)44.56 ± 0.51 (10)45.05 ± 0.56 (10)◆ −0.83+0.49◆ +1.33
reproj median px0.153 ± 0.006 (10)0.195 ± 0.008 (10)not reportedfit
cam1 – Looper GS cam1 · 12 rows · ◆ 8
ParameterMVISKalibr IMU modelKalibrBasaltMVIS− KalibrBasalt− KalibrBasalt− MVIS
fx px333.99 ± 0.12 (10)fixed 335.09 ± 0.20 (10)334.26 ± 0.45 (10)+0.27
fy px333.91 ± 0.13 (10)fixed 335.07 ± 0.20 (10)334.22 ± 0.44 (10)+0.32
cx px269.53 ± 0.12 (10)fixed 269.42 ± 0.16 (10)269.25 ± 0.09 (10)◆ −0.29
cy px318.46 ± 0.09 (10)fixed 318.25 ± 0.05 (10)318.31 ± 0.06 (10)◆ −0.15
dist k1−0.02296 ± 0.00090 (10)fixed −0.02123 ± 0.00095 (10)−0.02152 ± 0.00137 (10)◆ +0.00144
dist k20.01788 ± 0.00329 (10)fixed 0.00922 ± 0.00393 (10)0.01120 ± 0.00265 (10)◆ −0.00668
dist k3−0.01837 ± 0.00428 (10)fixed −0.00998 ± 0.00515 (10)−0.01195 ± 0.00328 (10)◆ +0.00642
dist k40.00396 ± 0.00176 (10)fixed 0.00150 ± 0.00219 (10)0.00210 ± 0.00133 (10)◆ −0.00186
baseline to Looper GS cam0 mm99.003 ± 0.211 (10)fixed 99.188 ± 0.238 (10)98.980 ± 0.191 (10)−0.023
time offset td to base IMU‡ ms1.360 ± 0.092 (10)−0.256 ± 0.135 (10)0.580 ± 0.156 (10)◆ +1.616◆ +0.836◆ −0.780
distance to base IMU ‖p‖ mm63.96 ± 0.38 (10)63.33 ± 0.34 (10)63.21 ± 0.33 (10)◆ +0.63−0.12◆ −0.74
reproj median px0.161 ± 0.006 (10)0.209 ± 0.009 (10)not reportedfit
cam2 – Looper RS cam2 · 13 rows

Kalibr: not in its runs, which are global-shutter only.

Basalt: no rolling-shutter model.

ParameterMVISKalibr IMU modelKalibrBasalt
fx px775.21 ± 0.53 (10)no runno run
fy px775.31 ± 0.49 (10)no runno run
cx px960.13 ± 0.22 (10)no runno run
cy px535.71 ± 0.27 (10)no runno run
dist k1−0.03264 ± 0.00129 (10)no runno run
dist k20.00067 ± 0.00441 (10)no runno run
dist k3−0.00223 ± 0.00569 (10)no runno run
dist k40.00072 ± 0.00238 (10)no runno run
readout tr ms32.148 ± 0.231 (10)no runno run
baseline to Looper GS cam0 mm49.527 ± 0.116 (10)no runno run
time offset td to base IMU‡ ms−5.673 ± 0.150 (10)no runno run
distance to base IMU ‖p‖ mm22.94 ± 0.43 (10)no runno run
reproj median px0.434 ± 0.016 (10)no runno run
base IMU – Looper MEMS imu0 · 19 rows · ◆ 4
ParameterMVISKalibr IMU modelKalibrBasaltMVIS− KalibrBasalt− KalibrBasalt− MVIS
gyro Dw[0,0] scale x1.00082 ± 0.00087 (10)0.99846 ± 0.00131 (10)0.99882 ± 0.00144 (10)◆ +0.00236+0.00036◆ −0.00200
gyro Dw[1,1] scale y1.00000 ± 0.00096 (10)0.99998 ± 0.00068 (10)0.99995 ± 0.00131 (10)+0.00002−0.00003−0.00005
gyro Dw[2,2] scale z0.99572 ± 0.00033 (10)0.99575 ± 0.00034 (10)0.99571 ± 0.00045 (10)−0.00003−0.00004−0.00001
gyro Dw[1,0] cross0.00176 ± 0.00122 (10)0.00175 ± 0.00103 (10)0.00206 ± 0.00070 (10)+0.00001+0.00031+0.00030
gyro Dw[2,0] cross−0.00078 ± 0.00046 (10)0.00127 ± 0.00034 (10)0.00008 ± 0.00048 (10)◆ −0.00205◆ −0.00119◆ +0.00086
gyro Dw[2,1] cross−0.00166 ± 0.00062 (10)−0.00180 ± 0.00055 (10)−0.00176 ± 0.00111 (10)+0.00014+0.00004−0.00010
accel Da[0,0] scale x0.99618 ± 0.00040 (10)0.99574 ± 0.00029 (10)0.99563 ± 0.00049 (10)◆ +0.00043−0.00011◆ −0.00055
accel Da[1,1] scale y0.99681 ± 0.00028 (10)0.99636 ± 0.00050 (10)0.99625 ± 0.00049 (10)+0.00045−0.00011◆ −0.00055
accel Da[2,2] scale z1.00457 ± 0.00159 (10)1.00541 ± 0.00195 (10)1.00477 ± 0.00179 (10)−0.00084−0.00064+0.00020
Tg[0,0] g-sensitivity mrad·s/m−0.077 ± 0.075 (10)−0.234 ± 0.108 (10)not in model≠ model
Tg[0,1] g-sensitivity mrad·s/m0.029 ± 0.039 (10)−0.246 ± 0.118 (10)not in model≠ model
Tg[0,2] g-sensitivity mrad·s/m−0.073 ± 0.130 (10)0.063 ± 0.184 (10)not in model≠ model
Tg[1,0] g-sensitivity mrad·s/m−0.131 ± 0.099 (10)0.804 ± 0.164 (10)not in model≠ model
Tg[1,1] g-sensitivity mrad·s/m0.006 ± 0.078 (10)0.021 ± 0.055 (10)not in model≠ model
Tg[1,2] g-sensitivity mrad·s/m0.051 ± 0.162 (10)−2.207 ± 0.370 (10)not in model≠ model
Tg[2,0] g-sensitivity mrad·s/m0.139 ± 0.189 (10)0.000 ± 0.258 (10)not in model≠ model
Tg[2,1] g-sensitivity mrad·s/m−0.048 ± 0.041 (10)1.381 ± 0.082 (10)not in model≠ model
Tg[2,2] g-sensitivity mrad·s/m0.001 ± 0.068 (10)−0.018 ± 0.190 (10)not in model≠ model
t_ga gyro−accel ms−5.297 ± 0.107 (10)not in modelnot in model
MVIS default IMU model (calyx) · 36 of 55 rows, model-independent only · ◆ 4
ParameterMVISKalibr IMU modelMVIS defaultKalibrdefault− Kalibrdefault− Kalibr IMU model
cam0 – Looper GS cam0
fx px333.93 ± 0.15 (10)333.92 ± 0.16 (10)fixed 335.00 ± 0.19 (10)−0.01
fy px333.93 ± 0.16 (10)333.91 ± 0.16 (10)fixed 334.97 ± 0.19 (10)−0.01
cx px272.18 ± 0.14 (10)272.18 ± 0.13 (10)fixed 271.93 ± 0.17 (10)0.00
cy px318.58 ± 0.07 (10)318.58 ± 0.07 (10)fixed 318.48 ± 0.05 (10)0.00
dist k1−0.02193 ± 0.00122 (10)−0.02197 ± 0.00123 (10)fixed −0.02167 ± 0.00139 (10)−0.00004
dist k20.01207 ± 0.00406 (10)0.01205 ± 0.00408 (10)fixed 0.01157 ± 0.00481 (10)−0.00002
dist k3−0.01359 ± 0.00479 (10)−0.01349 ± 0.00483 (10)fixed −0.01366 ± 0.00588 (10)+0.00009
dist k40.00288 ± 0.00186 (10)0.00283 ± 0.00187 (10)fixed 0.00324 ± 0.00244 (10)−0.00005
time offset td to base IMU‡ ms1.326 ± 0.087 (10)1.315 ± 0.077 (10)−0.272 ± 0.131 (10)◆ +1.587−0.011
distance to base IMU ‖p‖ mm43.73 ± 0.37 (10)43.70 ± 0.37 (10)44.56 ± 0.51 (10)◆ −0.86−0.03
reproj median px0.153 ± 0.006 (10)0.154 ± 0.006 (10)0.195 ± 0.008 (10)fitfit
cam1 – Looper GS cam1
fx px333.99 ± 0.12 (10)333.99 ± 0.12 (10)fixed 335.09 ± 0.20 (10)0.00
fy px333.91 ± 0.13 (10)333.91 ± 0.13 (10)fixed 335.07 ± 0.20 (10)0.00
cx px269.53 ± 0.12 (10)269.53 ± 0.12 (10)fixed 269.42 ± 0.16 (10)0.00
cy px318.46 ± 0.09 (10)318.46 ± 0.08 (10)fixed 318.25 ± 0.05 (10)0.00
dist k1−0.02296 ± 0.00090 (10)−0.02297 ± 0.00089 (10)fixed −0.02123 ± 0.00095 (10)0.00000
dist k20.01788 ± 0.00329 (10)0.01779 ± 0.00328 (10)fixed 0.00922 ± 0.00393 (10)−0.00009
dist k3−0.01837 ± 0.00428 (10)−0.01823 ± 0.00426 (10)fixed −0.00998 ± 0.00515 (10)+0.00014
dist k40.00396 ± 0.00176 (10)0.00393 ± 0.00174 (10)fixed 0.00150 ± 0.00219 (10)−0.00003
baseline to Looper GS cam0 mm99.003 ± 0.211 (10)99.001 ± 0.211 (10)fixed 99.188 ± 0.238 (10)−0.002
time offset td to base IMU‡ ms1.360 ± 0.092 (10)1.349 ± 0.080 (10)−0.256 ± 0.135 (10)◆ +1.606−0.010
distance to base IMU ‖p‖ mm63.96 ± 0.38 (10)63.96 ± 0.37 (10)63.33 ± 0.34 (10)◆ +0.630.00
reproj median px0.161 ± 0.006 (10)0.162 ± 0.006 (10)0.209 ± 0.009 (10)fitfit
cam2 – Looper RS cam2
fx px775.21 ± 0.53 (10)775.21 ± 0.51 (10)no run0.00
fy px775.31 ± 0.49 (10)775.33 ± 0.48 (10)no run+0.02
cx px960.13 ± 0.22 (10)960.12 ± 0.22 (10)no run−0.01
cy px535.71 ± 0.27 (10)535.69 ± 0.27 (10)no run−0.02
dist k1−0.03264 ± 0.00129 (10)−0.03266 ± 0.00131 (10)no run−0.00002
dist k20.00067 ± 0.00441 (10)0.00066 ± 0.00441 (10)no run−0.00001
dist k3−0.00223 ± 0.00569 (10)−0.00217 ± 0.00568 (10)no run+0.00006
dist k40.00072 ± 0.00238 (10)0.00069 ± 0.00237 (10)no run−0.00003
readout tr ms32.148 ± 0.231 (10)32.136 ± 0.224 (10)no run−0.012
baseline to Looper GS cam0 mm49.527 ± 0.116 (10)49.527 ± 0.117 (10)no run0.000
time offset td to base IMU‡ ms−5.673 ± 0.150 (10)−5.687 ± 0.141 (10)no run−0.014
distance to base IMU ‖p‖ mm22.94 ± 0.43 (10)22.90 ± 0.38 (10)no run−0.04
reproj median px0.434 ± 0.016 (10)0.434 ± 0.016 (10)no runfit