API NetworkTables
Limelight OS intègre un client NetworkTables 4. Il se connecte automatiquement au serveur NetworkTables 4 fonctionnant sur les robots FRC en fonction du numéro d'équipe / ID configuré dans l'interface utilisateur des paramètres.
Toutes les données sont publiées dans une table correspondant au nom de l'appareil (par exemple "limelight"). Si un nom d'hôte / surnom est attribué à votre caméra, le nom de la table correspondra au nom complet de la limelight (par exemple "limelight-top").
LimelightLib WPIJava et LimelightLib WPICPP interagissent avec les appareils Limelight via NetworkTables.
Données de ciblage de base
Utilisez le code suivant :
- Java
- LabView
- C++
- Python
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<variablename>").getDouble(0);
nt::NetworkTableInstance::GetDefault().GetTable("limelight")->GetNumber("<variablename>",0.0);
NetworkTables.getTable("limelight").getNumber('<variablename>');
pour récupérer ces données :
clé | type | description |
---|---|---|
tv | int | 1 si une cible valide existe. 0 si aucune cible valide n'existe |
tx | double | Décalage horizontal du réticule à la cible (LL1 : -27 degrés à 27 degrés / LL2 : -29,8 à 29,8 degrés) |
ty | double | Décalage vertical du réticule à la cible (LL1 : -20,5 degrés à 20,5 degrés / LL2 : -24,85 à 24,85 degrés) |
txnc | double | Décalage horizontal du pixel principal à la cible (degrés) |
tync | double | Décalage vertical du pixel principal à la cible (degrés) |
ta | double | Zone de la cible (0% de l'image à 100% de l'image) |
tl | double | Contribution de latence du pipeline (ms). Ajoutez à "cl" pour obtenir la latence totale. |
cl | double | Latence de capture du pipeline (ms). Temps entre la fin de l'exposition de la rangée centrale du capteur et le début du pipeline de suivi. |
t2d | double | Tableau contenant plusieurs valeurs pour les statistiques horodatées : [cibleValide, nombreCibles, latenceCible, latenceCapture, tx, ty, txnc, tync, ta, tid, indexClasseCibleDetecteur, indexClasseCibleClassificateur, pixelsLongCoteCible, pixelsCourtCoteCible, pixelsEtenduHorizontaleCible, pixelsEtenduVerticaleCible, degreesInclinaisonCible] |
getpipe | int | Vrai index du pipeline actif de la caméra (0 .. 9) |
getpipetype | string | Type de pipeline, par exemple "pipe_color" |
json | string | Dump JSON complet des résultats de ciblage. Doit être activé par pipeline dans l'onglet 'output' |
tclass | string | Nom de classe du résultat principal du détecteur neuronal ou du résultat du classificateur neuronal |
tc | doubleArray | Obtenir la couleur HSV moyenne sous la région du réticule (région de 3x3 pixels) sous forme de NumberArray |
hb | double | Valeur de battement de cœur. Augmente une fois par image, se réinitialise à 2 milliards |
hw | doubleArray | Métriques matérielles [fps, temp CPU, utilisation RAM, temp] |
crosshairs | doubleArray | Réticules 2D [cx0, cy0, cx1, cy1] |
tcclass | string | Nom de la classe calculée par le pipeline de classification |
tdclass | string | Nom de la détection principale du pipeline de détection |
AprilTag et données 3D
Utilisez le code suivant :
- Java
- C++
NetworkTableInstance.getDefault().getTable("limelight").getEntry("<variablename>").getDoubleArray(new double[6]);
nt::NetworkTableInstance::GetDefault().GetTable("limelight")->GetNumberArray("<variablename>",std::vector<double>(6));
pour récupérer ces données :
clé | type | description |
---|---|---|
botpose | doubleArray | Transformation du robot dans l'espace du terrain. Translation (X,Y,Z) en mètres, Rotation (Roulis, Tangage, Lacet) en degrés, latence totale (cl+tl), nombre de tags, portée des tags, distance moyenne des tags par rapport à la caméra, surface moyenne des tags (pourcentage de l'image) |
botpose_wpiblue | doubleArray | Transformation du robot dans l'espace du terrain (origine WPILIB côté bleu). Translation (X,Y,Z) en mètres, Rotation (Roulis, Tangage, Lacet) en degrés, latence totale (cl+tl), nombre de tags, portée des tags, distance moyenne des tags par rapport à la caméra, surface moyenne des tags (pourcentage de l'image) |
botpose_wpired | doubleArray | Transformation du robot dans l'espace du terrain (origine WPILIB côté rouge). Translation (X,Y,Z) en mètres, Rotation (Roulis, Tangage, Lacet) en degrés, latence totale (cl+tl), nombre de tags, portée des tags, distance moyenne des tags par rapport à la caméra, surface moyenne des tags (pourcentage de l'image) |
botpose_orb | doubleArray | Transformation du robot dans l'espace du terrain (Megatag2). Translation (X,Y,Z) en mètres, Rotation (Roulis, Tangage, Lacet) en degrés, latence totale (cl+tl), nombre de tags, portée des tags, distance moyenne des tags par rapport à la caméra, surface moyenne des tags (pourcentage de l'image) |
botpose_orb_wpiblue | doubleArray | Transformation du robot dans l'espace du terrain (Megatag2) (origine WPILIB côté bleu). Translation (X,Y,Z) en mètres, Rotation (Roulis, Tangage, Lacet) en degrés, latence totale (cl+tl), nombre de tags, portée des tags, distance moyenne des tags par rapport à la caméra, surface moyenne des tags (pourcentage de l'image) |
botpose_orb_wpired | doubleArray | Transformation du robot dans l'espace du terrain (Megatag2) (origine WPILIB côté rouge). Translation (X,Y,Z) en mètres, Rotation (Roulis, Tangage, Lacet) en degrés, latence totale (cl+tl), nombre de tags, portée des tags, distance moyenne des tags par rapport à la caméra, surface moyenne des tags (pourcentage de l'image) |
camerapose_targetspace | doubleArray | Transformation 3D de la caméra dans le système de coordonnées de l'AprilTag principal en vue (tableau (6)) [tx, ty, tz, tangage, lacet, roulis] (mètres, degrés) |
targetpose_cameraspace | doubleArray | Transformation 3D de l'AprilTag principal en vue dans le système de coordonnées de la caméra (tableau (6)) [tx, ty, tz, tangage, lacet, roulis] (mètres, degrés) |
targetpose_robotspace | doubleArray | Transformation 3D de l'AprilTag principal en vue dans le système de coordonnées du robot (tableau (6)) [tx, ty, tz, tangage, lacet, roulis] (mètres, degrés) |
botpose_targetspace | doubleArray | Transformation 3D du robot dans le système de coordonnées de l'AprilTag principal en vue (tableau (6)) [tx, ty, tz, tangage, lacet, roulis] (mètres, degrés) |
camerapose_robotspace | doubleArray | Transformation 3D de la caméra dans le système de coordonnées du robot (tableau (6)) |
tid | int | ID de l'AprilTag principal en vue |
camerapose_robotspace_set | doubleArray | DÉFINIR la pose de la caméra dans le système de coordonnées du robot. |
priorityid | int | DÉFINIR l'ID requis pour le ciblage tx/ty. Ignorer les autres cibles. N'affecte pas la localisation |
robot_orientation_set | doubleArray | DÉFINIR l'orientation du robot et les vitesses angulaires en degrés et degrés par seconde [lacet, vitesse de lacet, tangage, vitesse de tangage, roulis, vitesse de roulis] |
fiducial_id_filters_set | doubleArray | Remplacer les ID fiduciaires valides pour la localisation (tableau) |
fiducial_offset_set | doubleArray | DÉFINIR le décalage du point d'intérêt 3D [x,y,z] |