Skip to main content

AprilTag Map Specification

Limelight's field-space localization feature uses .fmap files to compute a robot pose for use by WPILIB's pose estimators. Our fmap files support maps comprised of different target sizes and different families.

You can use fmaps to define "environments" such as FRC fields, or "objects" such as objects that have several attached AprilTags. To use an fmap, all you need to do is upload it to your Limelight using the interface or one of the upload APIs (coming soon).

The .fmap file is a JSON file containing a single "fiducial" array. Each entry in the fiducial array has the following structure:

familyAprilTag/Fiducial family
idTag ID
sizeTag size in mm
transform4x4 Matrix Transform of the target. Row-Major, SI units.
uniqueSpecifies whether the target is unique in this map or featured multiple times

AprilTag Map for FRC 2024 Crescendo

Credit to Kevin Hjelstrom

{
"fiducials": [
{
"family": "apriltag3_36h11_classic",
"id": 1,
"size": 165.1,
"transform": [
-0.5,
-0.866025,
0,
6.808597,
0.866025,
-0.5,
0,
-3.859403,
0,
0,
1,
1.355852,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 2,
"size": 165.1,
"transform": [
-0.5,
-0.866025,
0,
7.914259,
0.866025,
-0.5,
0,
-3.221609,
0,
0,
1,
1.355852,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 3,
"size": 165.1,
"transform": [
-1.0,
0,
0,
8.308467,
0,
-1.0,
0,
0.877443,
0,
0,
1,
1.451102,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 4,
"size": 165.1,
"transform": [
-1.0,
0,
0,
8.308467,
0,
-1.0,
0,
1.442593,
0,
0,
1,
1.451102,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 5,
"size": 165.1,
"transform": [
0,
1.0,
0,
6.429883,
-1.0,
0,
0,
4.098925,
0,
0,
1,
1.355852,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 6,
"size": 165.1,
"transform": [
0,
1.0,
0,
-6.429375,
-1.0,
0,
0,
4.098925,
0,
0,
1,
1.355852,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 7,
"size": 165.1,
"transform": [
1.0,
-0.0,
0,
-8.308975,
0.0,
1.0,
0,
1.442593,
0,
0,
1,
1.451102,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 8,
"size": 165.1,
"transform": [
1.0,
-0.0,
0,
-8.308975,
0.0,
1.0,
0,
0.877443,
0,
0,
1,
1.451102,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 9,
"size": 165.1,
"transform": [
0.5,
-0.866025,
0,
-7.914767,
0.866025,
0.5,
0,
-3.221609,
0,
0,
1,
1.355852,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 10,
"size": 165.1,
"transform": [
0.5,
-0.866025,
0,
-6.809359,
0.866025,
0.5,
0,
-3.859403,
0,
0,
1,
1.355852,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 11,
"size": 165.1,
"transform": [
0.5,
0.8660254,
0,
3.633851,
-0.8660254,
0.5,
0,
-0.392049,
0,
0,
1,
1.3208,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 12,
"size": 165.1,
"transform": [
0.5,
-0.866025,
0,
3.633851,
0.866025,
0.5,
0,
0.393065,
0,
0,
1,
1.3208,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 13,
"size": 165.1,
"transform": [
-1.0,
0,
0,
2.949321,
0,
-1.0,
0,
-0.000127,
0,
0,
1,
1.3208,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 14,
"size": 165.1,
"transform": [
1.0,
-0.0,
0,
-2.950083,
0.0,
1.0,
0,
-0.000127,
0,
0,
1,
1.3208,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 15,
"size": 165.1,
"transform": [
-0.5,
-0.866025,
0,
-3.629533,
0.866025,
-0.5,
0,
0.393065,
0,
0,
1,
1.3208,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_36h11_classic",
"id": 16,
"size": 165.1,
"transform": [
-0.5,
0.866025,
0,
-3.629533,
-0.866025,
-0.5,
0,
-0.392049,
0,
0,
1,
1.3208,
0,
0,
0,
1
],
"unique": 1
}
]
}

AprilTag Map for FRC 2023 Charged Up


{
"fiducials": [
{
"family": "apriltag3_16h5_classic",
"id": 1,
"size": 152.4,
"transform": [
-1,
0,
0,
7.24310,
0,
-1,
0,
-2.93659,
0,
0,
1,
0.46272,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_16h5_classic",
"id": 2,
"size": 152.4,
"transform": [
-1,
0,
0,
7.24310,
0,
-1,
0,
-1.26019,
0,
0,
1,
0.46272,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_16h5_classic",
"id": 3,
"size": 152.4,
"transform": [
-1,
0,
0,
7.24310,
0,
-1,
0,
0.41621,
0,
0,
1,
0.46272,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_16h5_classic",
"id": 4,
"size": 152.4,
"transform": [
-1,
0,
0,
7.90832,
0,
-1,
0,
2.74161,
0,
0,
1,
0.695452,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_16h5_classic",
"id": 5,
"size": 152.4,
"transform": [
1,
0,
0,
-7.90832,
0,
1,
0,
2.74161,
0,
0,
1,
0.695452,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_16h5_classic",
"id": 6,
"size": 152.4,
"transform": [
1,
0,
0,
-7.24310,
0,
1,
0,
0.41621,
0,
0,
1,
0.46272,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_16h5_classic",
"id": 7,
"size": 152.4,
"transform": [
1,
0,
0,
-7.24310,
0,
1,
0,
-1.26019,
0,
0,
1,
0.46272,
0,
0,
0,
1
],
"unique": 1
},
{
"family": "apriltag3_16h5_classic",
"id": 8,
"size": 152.4,
"transform": [
1,
0,
0,
-7.24310,
0,
1,
0,
-2.93659,
0,
0,
1,
0.46272,
0,
0,
0,
1
],
"unique": 1
}
]
}