Skip to content
LooperRobotics

Looper Insight 9

2 mono + 1 rolling-shutter colour camera + IMU @ 400 Hz

LooperRobotics Insight 9, front view
Photo: LooperRobotics, Insight 9 product page ↗︎
Cameras
2 × 544×640 mono global shutter + 1920×1088 colour rolling shutter
IMU
400 Hz
Board
AprilGrid 6×6, tag 55 mm
Format
EuRoC mav0
Licence
CC BY-NC 4.0

One MVIS camera + IMU run on hand-held recording 1: the two mono cameras, the rolling-shutter colour camera and its readout time, solved together.

The scene MVIS recovered from this dataset, as on the homepage. The values beside it come from this page's run.
Reprojection median0.17 px
cam0–cam1 baseline99.2 mm
cam0 td+1.24 ms
cam0 lever arm43.9 mm

Reprojection is how far, in pixels, the detected corners lie from where the solve puts them. td is the camera–IMU time offset, and the lever arm is the camera–IMU position offset.

MVIS's own player, from this run: the detected board corners, then the rig's path as the solve refines it. Press Play or drag the bar; pick a camera card to look through that camera. We publish no camera images.

The solved positions and orientations, to scale in the IMU frame. Drag sideways to orbit. Tap a sensor to see its values.

Sensorfx, fy, cx, cy pxLever mmlog(R) radtd msReadout mst_ga msReprojection px
cam0334.1, 334.1, 272.0, 318.5[−12.5, +38.4, +17.3][+0.0109, +0.0025, −1.5656]+1.24global0.161
cam1334.0, 333.9, 269.6, 318.4[−12.2, −60.8, +16.7][+0.0080, +0.0023, −1.5642]+1.25global0.167
cam2775.1, 775.2, 960.1, 535.7[−12.5, −11.2, +16.1][+0.0066, +0.0108, −3.1361]−5.8432.360.449
IMU (base)000−5.08 ± 0.04

Lever arms and rotations are each sensor in the base IMU frame; rotation is log(R) in rad. td is the time offset to the base IMU, t_imu = t_sensor + td. Reprojection is the median per camera (all cameras: median 0.175 px): how well the model fits the corners, not how accurate it is.

No published reference. No published calibration exists for this device, so this page has nothing to compare against. What we can show is how much each value moves over the 10 hand-held recordings. All 10 recordings and tools: Dataset eval →

looper_insight9_bag1_cam_imu.yaml
input:
format: euroc
path: 1/mav0
cam_topics:
- /cam0
- /cam1
- /cam2
imu_topics:
- /imu0
window_mode: manual
t0: 0.0
window: 0.0
board:
board_type: apriltag
rows: 6
cols: 6
tag_size: 0.055
tag_spacing: 0.3
tag_family: t36h11
camera_input:
path: insight9_seed_calib.yaml
free_intrinsics: true
estimate_readout: false
cameras:
- {}
- {}
- estimate_readout: true
rolling_mode: 0
solve:
state_hz: 30.0
max_iterations: 40
imu_intrinsics: dw_da
imu_intrinsics_model: calyx
corner_subsample: top_left
estimate_t_ga: true
sigma_t_ga: 0.01
init_kwargs:
keyframe_hz: 2.0
scale_rel_tol: 0.3
sigma_g: 0.00021
sigma_a: 0.0032
sigma_bg: 0.001
sigma_ba: 0.002
output:
path: cam_imu.json
shell
mvis cam-imu -c looper_insight9_bag1_cam_imu.yaml

The marked lines are the choices that matter for this rig:

  • camera_input.free_intrinsics: Camera intrinsics stay free in the camera + IMU solve.
  • camera_input.cameras: The colour camera (cam2) has a rolling shutter, so its readout time is estimated.
  • solve.estimate_t_ga: Estimates t_ga, the time offset between the gyroscope and the accelerometer.
  • solve.sigma_g: IMU noise from a still recording of this unit, measured density × 2.5. The other three sigmas are set the same way.

This is the config of the run on this page, with every path cut to its file name. Point the paths at your copy.

The solve took about 6 min on one desktop. It writes cam_imu.json, a calibration YAML and a report beside the config.

MVIS
MVIS main, measured-noise batch of 2026-11-08
Run date
2026-11-08
Data
Calibench, looper-insight9/ →
Config
looper_insight9_bag1_cam_imu.yaml, above
Command
mvis cam-imu -c looper_insight9_bag1_cam_imu.yaml
  • Hand-held recording 1 of 10, about 66 s. The run uses the whole recording.
  • Cameras: two 544 × 640 global-shutter mono cameras at 20 Hz and a 1920 × 1088 rolling-shutter colour camera at about 4.3 Hz, all fitted with the equidistant lens model. IMU at 400 Hz.
  • Board: AprilGrid 6×6, tag 55 mm, spacing 0.3, t36h11.
  • Access is by automatic approval on the Hub; the data is CC BY-NC 4.0, commercial use by request.
  • Solve window: 66.4 s.

Download: Calibench, looper-insight9/ → The recordings are listed there, not copied here.

AprilGrid 6 × 6, 412 × 412 mm. Standard pattern, to scale
Chessboard and robot-arm recordings Device wiki

The sensor page also shows our own unit on a chessboard and two robot-arm recordings, each solved on its own. Looper Insight 9 →