Especificación de Mapa AprilTag
La función de localización en espacio de campo de Limelight utiliza archivos .fmap para calcular la pose del robot para uso con los estimadores de pose de WPILIB. Nuestros archivos fmap soportan mapas compuestos por diferentes tamaños de objetivos y diferentes familias.
Puedes usar fmaps para definir "entornos" como campos de FRC, u "objetos" como objetos que tienen varios AprilTags adjuntos. Para usar un fmap, todo lo que necesitas hacer es subirlo a tu Limelight usando la interfaz o la API REST de carga.
El archivo .fmap es un archivo JSON que contiene un único array "fiducial". Cada entrada en el array fiducial tiene la siguiente estructura:
| family | Familia AprilTag/Fiducial |
| id | ID del Tag |
| size | Tamaño del tag en mm |
| transform | Transformación de matriz 4x4 del objetivo. Row-Major, unidades SI. |
| unique | Especifica si el objetivo es único en este mapa o aparece múltiples veces |
Además, el objeto de nivel superior tiene una cadena "type" que especifica el tipo de mapa.
| type | Tipo de campo ej. frc, ftc, ftcd (ftc diamante) |
Mapa AprilTag para FRC 2024 Crescendo - Crédito a Kevin Hjelstrom
{
"type": "frc",
"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
}
]
}