"""Large ~A4 ArUco calibration / localization board (feetech_calib, 2026-07-13).

Bigger than the 80mm arm-base board -> better camera-intrinsics coverage and more accurate
localization. DICT_6X6_250, ids 109-132 (free block between the arm board 100-108 and UMI
150-161; DICT_6X6_250 only has ids 0-249). 4x6 grid of 35mm markers, 10mm separation, on a
190x280mm sheet (fits an A4 page). Generated at an exact 8 px/mm (canvas aspect == board
aspect) so markers print at a true 35.0mm — no letterboxing.
"""
import numpy as np

from aruco_boards import DICT  # noqa: F401  (single dictionary across the whole system)

CALIB_BOARD = dict(name="calib", shape=(4, 6), marker_m=0.035, sep_m=0.010,
                   margin_m=0.010, ids=np.arange(109, 133))

MARKER_MM, SEP_MM, MARGIN_MM = 35.0, 10.0, 10.0
CONTENT_MM = (4 * MARKER_MM + 3 * SEP_MM, 6 * MARKER_MM + 5 * SEP_MM)          # (170, 260)
CANVAS_MM = (CONTENT_MM[0] + 2 * MARGIN_MM, CONTENT_MM[1] + 2 * MARGIN_MM)     # (190, 280)
PX_PER_MM = 8

# Where the printed board sits in the ARM's world frame (flat on the table), used by the
# composite arm_calib_board model so the arm renders in the right place. MEASURE your
# physical placement and set this. Default: 30cm in +Y (front) of the arm base, lying flat.
BOARD_POSE_XYZ = (0.0, 0.30, 0.001)
