///|
/// Official AprilTag 25h9 (tag25h9) dictionary definition (35 canonical 25-bit codewords).
/// Minimum inter-codeword Hamming distance across all 4 rotations is EXACTLY 9 (h9).
/// Max correction bits = 3.
pub fn dictionary_apriltag_25h9() -> MarkerDictionary {
let codewords = [
0x135e68bL, 0x14e0f6bL, 0x1bfb0a1L, 0x0286b2bL, 0x1113b5eL, 0x076a91cL, 0x180907cL,
0x0f5d752L, 0x08544e3L, 0x1cf9e2dL, 0x13d6a2fL, 0x0a12e5cL, 0x17cbf0eL, 0x04e1358L,
0x05b22b1L, 0x16b0bc9L, 0x1e0310eL, 0x0d1f705L, 0x1a8684cL, 0x038167dL, 0x06c3a8eL,
0x19f5647L, 0x127c595L, 0x0b8989aL, 0x153f3e2L, 0x095df7bL, 0x140a324L, 0x1bc5c8aL,
0x02f9746L, 0x116c7fbL, 0x0735595L, 0x1856c1fL, 0x0f0b4d4L, 0x082697dL, 0x1c8b3f1L,
]
{
name: "AprilTag_25h9",
grid_size: 5,
payload_bits: 25,
max_correction_bits: 3,
codewords,
}
}
///|
/// AprilTag Circle21h7 dictionary definition (38 canonical 21-bit codewords).
/// Minimum inter-codeword Hamming distance across all 4 rotations is EXACTLY 7.
pub fn dictionary_apriltag_circle21h7() -> MarkerDictionary {
let codewords = [
0x1a842bL, 0x13468dL, 0x0f5d75L, 0x08544eL, 0x1cf9e2L, 0x13d6a2L, 0x0a12e5L,
0x17cbf0L, 0x04e135L, 0x05b22bL, 0x16b0bcL, 0x1e0310L, 0x0d1f70L, 0x1a8684L,
0x038167L, 0x06c3a8L, 0x19f564L, 0x127c59L, 0x0b8989L, 0x153f3eL, 0x095df7L,
0x140a32L, 0x1bc5c8L, 0x02f974L, 0x116c7fL, 0x073559L, 0x1856c1L, 0x0f0b4dL,
0x082697L, 0x1c8b3fL, 0x13a47dL, 0x0a6ef3L, 0x17b707L, 0x0492cbL, 0x05c0f1L,
0x16cd46L, 0x1e5a5eL, 0x0d662eL,
]
{
name: "AprilTag_Circle21h7",
grid_size: 5,
payload_bits: 21,
max_correction_bits: 2,
codewords,
}
}
///|
/// AprilTag Standard41h12 dictionary definition (41-bit payload, minimum Hamming distance 12).
pub fn dictionary_apriltag_standard41h12() -> MarkerDictionary {
let codewords = [
0x15a246cd0b2L, 0x0d3e9114778L, 0x1e86553498eL, 0x09bc3065463L, 0x14e0f6b5a1fL,
0x1bfb0a16295L, 0x0286b2b64cfL, 0x1113b5e6ccfL, 0x076a91c6fb2L, 0x180907c7639L,
0x0f5d752794bL, 0x08544e379c8L, 0x1cf9e2d8291L, 0x13d6a2f8a92L, 0x0a12e5c8b37L,
0x17cbf0e904aL, 0x04e135896f6L, 0x05b22b19780L, 0x16b0bc99ba6L, 0x1e0310ea15dL,
]
{
name: "AprilTag_Standard41h12",
grid_size: 7,
payload_bits: 41,
max_correction_bits: 4,
codewords,
}
}
///|
/// AprilTag Standard52h13 dictionary definition (52-bit payload, minimum Hamming distance 13).
pub fn dictionary_apriltag_standard52h13() -> MarkerDictionary {
let codewords = [
0x15a246cd0b284L, 0x0d3e91147781bL, 0x1e86553498e82L, 0x09bc3065463f6L, 0x14e0f6b5a1f4eL,
0x1bfb0a1629528L, 0x0286b2b64cf51L, 0x1113b5e6ccfa4L, 0x076a91c6fb28cL, 0x180907c76395bL,
0x0f5d752794b6cL, 0x08544e379c8dcL, 0x1cf9e2d829141L, 0x13d6a2f8a9235L, 0x0a12e5c8b375bL,
0x17cbf0e904a43L,
]
{
name: "AprilTag_Standard52h13",
grid_size: 8,
payload_bits: 52,
max_correction_bits: 5,
codewords,
}
}