AprilGrid Calibration Targets: Coded AprilTag Grids for Kalibr Camera-IMU and Multi-Camera Calibration

kalibr/aprilgrid calibration targets for multi camera and imu calibration

An AprilGrid is a calibration target made of individually coded AprilTags arranged in a regular grid. It is the pattern the Kalibr toolbox is built around, used mainly for multi-camera and camera-IMU calibration in robotics. Because every tag decodes to a unique ID, calibration succeeds even when the board is only partly visible, and the coding removes the pose-flip ambiguity that affects symmetric patterns like checkerboards and circle grids.

This guide covers what an AprilGrid is, why Kalibr recommends it over a checkerboard, the tag parameters that define one, how it differs from a ChArUco board, and how the substrate sets your accuracy ceiling.

What is an AprilGrid?

An AprilGrid is a grid of AprilTags — square fiducial markers from the AprilTag family (Kalibr uses the 36h11 code family). Each tag contributes four corners, so a grid of tagRows × tagCols tags yields a dense field of coded points. Unlike a plain checkerboard, where every corner looks identical, each AprilGrid corner can be identified on its own, so the detector never needs the whole board in view to know which point is which.

Why does Kalibr recommend an AprilGrid over a checkerboard?

Kalibr explicitly recommends the AprilGrid, for three reasons that matter on a moving rig:

  • Partial visibility. Tags at the edges and corners of the image still contribute, so you capture the lens periphery — where distortion is largest and calibration data is most valuable.
  • No pose-flip ambiguity. Symmetric checkerboards and circle grids can flip 180° in pose estimation; the unique tag IDs remove that failure mode entirely, which Kalibr’s own documentation flags as a reason to prefer AprilGrid for camera-IMU work.
  • Robust multi-camera correspondence. Cameras seeing different parts of the same grid still agree on which physical point is which — essential for stereo and multi-camera extrinsics.

How does an AprilGrid differ from a ChArUco board?

Both are coded and both tolerate partial views, so they are easy to confuse — but they are not interchangeable. The difference is the marker family and the toolchain:

  • AprilGrid uses AprilTag markers and is the native pattern for Kalibr / ROS — the standard for camera-IMU and multi-sensor calibration.
  • ChArUco uses ArUco markers embedded in a checkerboard and is OpenCV-native (also read by MATLAB and HALCON).

So the choice is usually made for you by your software: if you are running Kalibr, use an AprilGrid; if you are in OpenCV and need coded partial-view calibration, use a ChArUco board. Ordering one when your pipeline expects the other is the most common mistake here.

Which AprilGrid parameters matter?

An AprilGrid is defined by four values in a Kalibr target YAML. Get these right and detection stays robust:

target_type: 'aprilgrid'
tagCols: 6        # number of tags in the x-direction
tagRows: 6        # number of tags in the y-direction
tagSize: 0.088    # tag edge length, in metres
tagSpacing: 0.3   # ratio of the gap between tags to tagSize
  • tagCols / tagRows. The grid size. More tags means more coded points and better constraints, at the cost of a larger board or smaller tags. 6×6 is a common default.
  • tagSize. The tag edge length in metres. Pick it so tags are large enough to decode reliably at your working distance; scale it up for long range, down for close range.
  • tagSpacing. The gap between tags as a fraction of tag size — 0.3 is typical. The gap is what lets the detector separate adjacent tags.

You can generate a matching PDF with Kalibr’s own tool, then order the physical target at the exact tagSize and tagSpacing you specified:

kalibr_create_target_pdf --type apriltag --nx 6 --ny 6 --tsize 0.088 --tspace 0.3

Verify the printed tag size against the YAML before you calibrate — a scale mismatch between the digital definition and the physical target looks exactly like a calibration error when it isn’t one.

Checkerboard vs ChArUco vs AprilGrid

CheckerboardChArUcoAprilGrid
FeatureSaddle cornersCorners + ArUcoAprilTag corners
Coded IDsNoYes (ArUco)Yes (AprilTag 36h11)
Partial viewNoYesYes
Pose-flip ambiguityPossibleNoNo
Native softwareOpenCV, MATLABOpenCV, MATLAB, HALCONKalibr / ROS
Best forSingle, controlledWide-angle, multi-cam (OpenCV)Camera-IMU, multi-cam (ROS)

Which applications use AprilGrid?

AprilGrid is the pattern of choice wherever a moving rig combines cameras with other sensors: autonomous-vehicle camera arrays and camera-IMU fusion, drone navigation cameras, mobile robots and cobots, and VR/AR spatial mapping. In all of these, the rig moves through its full range during capture, so partial-view robustness and freedom from pose flips matter more than raw corner density.

Why the target — not the toolbox — sets your accuracy ceiling

Kalibr can only be as accurate as the grid it observes. A laser-printed paper AprilGrid carries ±50–200 µm of positional error and warps, both of which propagate into the extrinsics. For field and large-format use, a dimensionally stable film target is a large step up from paper; for precision lab work, a photolithographic chrome-on-glass grid removes the error source entirely:

SubstrateFeature accuracyBest for
Quartz glass (blue chrome)±0.5 µmPrecision lab, metrology
Soda-lime glass (brown chrome)±1 µmBacklit precision machine vision
Matte ceramic (blue chrome)±2 µmRugged production floors
Film±15 µmLarge-format, portable field rigs

Every target ships with a serial-numbered inspection report; NIST/NIM-traceable, CNAS-accredited (ILAC-MRA-recognised) third-party calibration is available on request. For what a trustworthy report must contain, see how we measure and report target accuracy.

How do I order the right AprilGrid?

Send your Kalibr target YAML — tagColstagRowstagSize and tagSpacing — plus substrate and overall size, or just describe your rig and working distance and our engineers will specify it. Browse standard AprilGrid targets, generate a pattern with our calibration pattern generator, or request a custom quote.

Frequently Asked Questions

What is an AprilGrid?
A grid of individually coded AprilTags (Kalibr uses the 36h11 family). Each tag contributes four corners and decodes to a unique ID, so calibration works even when the board is only partly visible. It is the native pattern of the Kalibr toolbox.
Why does Kalibr use an AprilGrid instead of a checkerboard?
Three reasons: partial tags at the image edges still contribute, the unique IDs remove the 180° pose-flip ambiguity that affects symmetric checkerboards and circle grids, and multiple cameras seeing different parts of the grid still agree on point identity. Kalibr’s documentation recommends it for these reasons.
Is an AprilGrid the same as a ChArUco board?
No. An AprilGrid uses AprilTag markers and is native to Kalibr/ROS; a ChArUco board uses ArUco markers in a checkerboard and is OpenCV-native. Different marker family, different toolchain — order the one your software expects.
What tagSize and tagSpacing should I use?
A common default is tagSize 0.088 m with tagSpacing 0.3 (the gap is 30% of the tag edge). Scale tagSize to your working distance — larger for long range, smaller for close range — and keep the printed size matched to your YAML.
Can I use an AprilGrid with OpenCV?
AprilGrid detection is native to Kalibr, not to OpenCV’s calibration pipeline. If you are in OpenCV and need coded, partial-view calibration, a ChArUco board is the direct equivalent.
What accuracy can I get, and which substrate?
Chrome-on-glass reaches ±0.5 µm on quartz and ±1 µm on soda-lime for precision work; film (±15 µm) suits large, portable field rigs and still beats printed paper, which carries ±50–200 µm and caps the calibration.

Related Reading

Picture of Ben Tsang

Popular Calibration Targets

Need a custom calibration target?

In This Article

0
    0
    Your Cart
    Your cart is emptyReturn to Shop

    Get Your Quote Now

    Please fill out the form below or email us directly to sales@calibvision.com, our sales engineers will review your request and get back to you within 3 working days(typically faster).