ArUco 4x4_50 marker ID 0

arucogrid.com

ArUco & ChArUco marker generator — printable boards, exact to the millimetre

Board

Geometry

Markers

Page

Sheet extras

Preview

OpenCV code that detects this board

                

About

Printable ArUco, ChArUco and AprilTag boards

This generator draws calibration targets at the exact size you type, as vector shapes in a PDF, and hands you the OpenCV code that reads them back. Everything runs in your browser.

The marker patterns are taken from OpenCV itself, and the output is checked against OpenCV: a rendered ChArUco board matches CharucoBoard.generateImage() pixel for pixel, and a printed grid rasterised at 300 DPI fits the object points of cv2.aruco.GridBoard to within a tenth of a millimetre.

Which board do you need?

  • A ChArUco board to calibrate a camera. A chessboard corner can be found to a fraction of a pixel, so it beats a plain marker grid for accuracy.
  • An ArUco grid to find the pose of a known target, or when part of the board may be hidden.

The difference in full.

Sizes are exact, and that matters

Every pose a detector reports is scaled by the marker size you gave it. cv2.aruco.GridBoard takes one marker length and one separation, and assumes the gap is the same across and down. A generator that spreads markers to fill the page breaks that assumption, and the error shows up in every measurement without ever being reported.

This tool uses the numbers you type and never scales them. A grid too large for one sheet is split across pages rather than quietly shrunk. Each sheet carries a ruler so you can check the print, because a print dialogue set to "fit to page" will scale it.

Choosing a dictionary

Fewer bits read from further away. More bits hold more markers and repair more misread cells. Within a family, take the smallest marker count that covers the IDs you need, because a smaller dictionary repairs more bits. One to avoid: DICT_4X4_1000, which OpenCV reports as repairing zero.

Compare all 21 dictionaries, or read how to pick one.

Common questions

Why does detectMarkers find nothing?

Usually the border. A detector expects an ArUco marker to have a border one cell wide. Print a wider one without setting markerBorderBits to match and the detector finds nothing at all, with no error. More on that.

How big should the marker be?

Large enough to cover roughly four pixels per cell in the image, and about three times that in practice. For a 1920 pixel camera with a 60 degree field of view, a 6x6 marker wants around 100 mm at 3 m. The formula and a table.

Is anything uploaded?

No. The marker data ships with the page and the PDF is built in your browser. No board is sent anywhere or stored.

Can I use AprilTag?

Yes. AprilTag 16h5, 25h9, 36h10, 36h11 and ArUco MIP 36h12 are all available, and OpenCV reads them through cv2.aruco.

Guides