Journal des modifications logicielles et commentaires
Soumettez vos problèmes et demandes de fonctionnalités par email ou sur le Dépôt de commentaires Limelight
Limelight OS 2025.1 (VERSION FINALE - 24/02/25 VERSION TEST - 18/02/25)
24/02/25 - Correction du problème de connectivité introduit dans la version test 2025.1.
Mises à jour IMU LL4
- Fusion de capteurs IMU améliorée
- Performances significativement meilleures sous vibration et impacts de niveau FRC. Changements majeurs dans l'approche de fusion.
L'image ci-dessus montre le résultat d'une session d'entraînement assez violente d'environ 5 minutes avec un robot FRC. Dans cette session, nous avons mesuré les orientations de :
- Un Limelight 4 exécutant 2025.0 (llyawOLD)
- Un Limelight 4 exécutant 2025.1 (llyaw)
- Un Pigeon 2.0
Les deux LL4 sont montés dans des orientations identiques. Notez l'amélioration massive de la précision globale du LL4 exécutant 2025.1
-
Mode IMU 3 - IMU_ASSIST_MT1 - L'IMU interne utilisera les estimations de cap MT1 filtrées pour une correction continue de l'orientation
-
Mode IMU 4 - IMU_ASSIST_EXTERNALIMU - L'IMU interne utilisera l'IMU externe pour une correction continue de l'orientation
-
Ajout de la clé NT imuassistalpha_set (par défaut 0.001) - Alpha / force du filtre complémentaire. Des valeurs plus élevées feront converger l'IMU interne vers la source d'assistance plus rapidement
-
La valeur par défaut est fixée à une valeur basse de 0.001 car nous faisons maintenant plus confiance à l'IMU interne qu'auparavant. Les modes d'assistance sont conçus pour "tirer" très doucement l'IMU interne vers la source d'assistance choisie sans nuire à la réactivité de l'IMU interne lors de mouvements rapides.
Mises à jour des performances thermiques LL4
-
Ajout de 'throttle_set'. Traite une image après chaque N images ignorées. Exemples de motifs :
- throttle_set=1 : [ignorer, traiter, ignorer, traiter]
- throttle_set=2 : [ignorer, ignorer, traiter, ignorer, ignorer, traiter]
-
Les sorties ne sont pas remises à zéro/réinitialisées pendant les images ignorées.
-
Réglez ceci sur un nombre élevé lorsque désactivé (50-200) pour gérer la température de votre LL4.
-
Optionnellement, vous pouvez configurer un pipeline comme viseur et basculer vers ce pipeline lorsque désactivé.
Nouvelles options FPS pour LL4 et LL3G
- Ajout de 1280x800 à 60FPS, 55FPS, 45FPS et 30FPS.
- L'utilisation de taux de capture plus bas vous permettra d'augmenter le temps d'exposition pour éviter le blooming/respiration de l'image dû à l'éclairage AC.
Mises à jour de l'API REST
- Ajout de l'API REST Mode IMU - 'update-imumode'
- Ajout de l'API REST Throttle - 'update-throttle'
- Ajout de l'API REST IMU ASSIST ALPHA - 'update-imuassistalpha'
Mises à jour FMap
- Les fichiers Json FMap peuvent maintenant optionnellement intégrer un SVG encodé en base64
- Les fichiers Json FMap peuvent maintenant optionnellement intégrer un PNG encodé en base64
Réseaux neuronaux ReefScape téléchargés
- Le modèle Hailo B2 est notre modèle le plus performant pour FRC2025. Il a été entraîné sur des images monochromes pour mieux s'adapter au LL4.
Mises à jour LL3A
- 3A entièrement pris en charge avec les mises à jour 2025
Corrections de bugs
- Les Limelights sans IMU internes ignorent imumode_set
- Les Limelight 3 qui ont été mis à niveau vers Limelight 3G utiliseront correctement le ventilateur intégré
- Correction du recadrage dans les pipelines de détection neuronale basés sur Hailo
- Correction du recadrage dans les pipelines AprilTag basés sur Hailo
Limelight OS 2025.0 (15/01/24)
Support LL4
- Ajout du support pour la détection d'objets Hailo et les AprilTags accélérés par Hailo
- Ajout du support pour l'IMU interne du LL4.
- Ajout de la clé NT "imumode_set"
- 0 - Utiliser l'IMU externe, ne pas initialiser l'IMU interne
- 1 - Utiliser l'IMU externe, initialiser l'IMU interne
- 2 - Utiliser l'IMU interne
Mises à jour du terrain 2025
- La largeur et la hauteur du terrain font maintenant partie des fichiers .fmap
- Mise à jour du .fmap par défaut pour correspondre au terrain 2025
- Mise à jour de l'image du terrain par défaut
- L'éditeur de carte en ligne vous permet maintenant de configurer la largeur et la hauteur du terrain
- Le lien fmap 2025 sur la page de téléchargements a été mis à jour.
Corrections de bugs
- Correction du bouton "supprimer tous les instantanés"
Limelight OS 2024.10.2 (28/10/24)
Correction Python Snapscript (CRÉDIT - ÉQUIPE FTC 23251 TRIPLE FAULT)
- Les sorties Python ne gèleront plus lors de l'utilisation du Control Hub avec Limelight3A
- Les sorties Python ne gèleront plus lors du basculement entre les pipelines Python
Cas limite MT2
https://github.com/LimelightVision/limelight-feedback/issues/23
- Lors des tests de MT2 sans robot, il est facile de générer une impossibilité géométrique.
- Ce cas limite ne remettait pas à zéro la botpose mt2 - il remettait à zéro la pose de la caméra.
- Le robot est maintenant placé à (0,0,0) chaque fois que ce cas limite est détecté
Adressage IP statique
https://github.com/LimelightVision/limelight-feedback/issues/25
- Ajout d'un avertissement au configurateur d'adresse IP si l'adresse se termine par .1-.10 ou .20-.255 car ces adresses peuvent interférer avec le FMS ou d'autres appareils
- Dans 2024.10.1, l'interface suggérait parfois qu'une IP statique était configurée alors que le schéma d'adressage était réglé sur "automatique"
STDDevs NetworkTables
https://github.com/LimelightVision/limelight-feedback/issues/24
- "stddevs" dans networktables contient tous les stddevs pour mt1 et mt2 (tableau de doubles, 12 éléments)
Cas limite de téléchargement de modèle
- Si un modèle de classificateur est téléchargé vers un pipeline de détecteur, "check model" sera affiché sur l'image
- Si un modèle de détecteur est téléchargé vers un pipeline de classificateur, "check model" sera affiché sur l'image
Limelight OS 2024.10.1 (15/09/24)
Mises à jour Limelight 3A
- Mise à jour des valeurs de balance des couleurs par défaut
- Mise à jour de la configuration de taille AprilTag par défaut à 101.6 mm
- Réduction du framerate du flux vidéo par défaut à 30FPS
- Légère augmentation de la compression du flux vidéo pour réduire le débit du flux
Avertissement de taille AprilTag
- Ajout d'un avertissement au visualiseur d'espace de terrain si la taille AprilTag configurée ne correspond pas aux tailles dans la carte de terrain téléchargée.
Correction de bug CameraPose_RobotSpace
- Le remplacement de la pose de caméra configurée dans l'interface depuis NetworkTables/LimelightLib/REST fonctionne à nouveau correctement.
Limelight OS 2024.10 (04/09/24)
Support Limelight 3A pour FTC
- Limelight3A est entièrement pris en charge
- 3A est utilisable en FTC et en FRC
Mises à jour de la carte AprilTag
- L'éditeur de carte prend maintenant en charge la génération de cartes FTC standard et en diamant
- L'interface web LLOS affichera automatiquement le type de terrain correct en fonction de la carte téléchargée
- Tous les visualiseurs de terrain à travers les outils et interfaces affichent les zones d'alliance et les grilles de tuiles FTC.
- Les performances du visualiseur 3D ont été améliorées.
Support USB Limelight sur ControlHub et RoboRio.
- Les équipes FTC peuvent utiliser un seul Limelight compatible USB sur le Control Hub
- Les équipes FRC peuvent utiliser jusqu'à 16 Limelights compatibles USB sur le RoboRio. Les limelights USB remplissent automatiquement networktables comme les limelights ethernet.
- Pour utiliser plusieurs Limelights USB, donnez à chaque LL un index USB unique et un nom d'hôte unique.
Améliorations de la connectivité USB
- MacOS n'utilise plus l'interface Ethernet USB Limelight pour l'accès internet
- Windows n'essaie plus d'utiliser l'interface Ethernet USB Limelight pour l'accès internet
Mises à jour de l'API REST
- Correction de la requête POST update-robotorientation.
- MT2 est maintenant entièrement accessible sans NetworkTables.
- Une fois la route update-robotorientation utilisée, les mises à jour d'orientation NetworkTables sont désactivées jusqu'au redémarrage.
Limelight OS 2024.9.1 (07/07/24)
- L'outil Map Builder accepte/convertit maintenant les layouts apriltag WPILib .json
- Ajout d'AprilTag3 aux Python Snapscripts (from apriltag import apriltag)
- Voir l'exemple dans le dépôt github d'exemples
- Correction du problème de passerelle de connectivité USB sur Windows.

Limelight OS 2024.9 (05/07/24)
Améliorations MegaTag
-
Limelight OS a fait la transition vers NetworkTables 4.0
-
MegaTag2 utilise maintenant getAtomic() de NT4 pour récupérer les mises à jour IMU horodatées depuis le roboRIO.
-
Nos images horodatées sont associées aux deux échantillons IMU les plus pertinents avant l'interpolation.
-
NT4 flush() a été ajouté à LimelightLib. Ajouter Flush() aux anciennes versions de Limelight OS vous rapprochera des performances de 2024.9, mais NT4 garantit que la précision est toujours élevée.
-
Le robot visualiseur MT2 a maintenant des pare-chocs verts, et le robot visualiseur MT1 utilise des pare-chocs jaunes.
-
Les métriques sont maintenant réductibles, et les robots virtuels peuvent être masqués.
-
La vidéo suivante démontre comment le MegaTag 2 de 2024.9 (robot vert) avec flush() côté robot est plus robuste que le MegaTag2 de 2024.5 sans Flush() (robot rouge)
ID USB et nouvelles adresses IP USB
- Définissez l'"ID USB" dans la page des paramètres pour utiliser plusieurs Limelights USB sur n'importe quel système.
- L'interface USB-Ethernet qui apparaît sur votre système utilisera une adresse IP déterminée par l'ID USB
- Les systèmes Linux/Android/Mac utiliseront maintenant le sous-réseau 172.29.0.0/24 par défaut
- Les systèmes Windows utiliseront maintenant le sous-réseau 172.28.0.0/24 par défaut.
- Si l'USBID est défini, le sous-réseau change en 172.29.(USBID).0/24 pour Linux/Android/Mac et 172.28.(USBID).0/24 pour Windows.
- Vous pouvez maintenant, par exemple, connecter quatre appareils Limelight à un seul hub USB en ajustant leurs noms d'hôte et ID USB
Classificateurs neuronaux CPU
- Téléchargez un classificateur CPU .tflite pour activer la classification neuronale sans Google Coral. Vous pouvez vous attendre à 15-18 FPS sur les variantes LL3.
- 2024.9 est livré avec un classificateur CPU par défaut.
- Réglez le runtime du classificateur sur "CPU" pour activer cette fonctionnalité
Détecteurs neuronaux CPU
- Téléchargez un détecteur CPU .tflite pour activer la détection neuronale sans Google Coral. Vous pouvez vous attendre à 10 FPS sur les variantes LL3.
- 2024.9 est livré avec un détecteur CPU par défaut.
- Réglez le runtime du détecteur sur "CPU" pour activer cette fonctionnalité
Limelight OS 2024.8 (03/07/24)
- Ajout de la sortie python (PythonOut), tx, ty, txnc, tync, ta à l'objet de résultats json
- Amélioration supplémentaire de la compensation de latence MT2
Limelight OS 2024.7 (21/05/24)
- Mise à niveau vers Linux 6.6
Corrections de bugs
- Correction de la conversion de pipeline de vision
- Correction des téléchargements de calibration, téléchargements d'instantanés et téléchargements de réseaux neuronaux
Limelight OS 2024.6 (08/05/24)
LimelightLib Python
- pip install limelightlib-python
- Notre bibliothèque Python vous permet d'interagir avec les Limelights USB et Ethernet sur n'importe quelle plateforme.
- Elle permet une configuration complète du Limelight sans interaction avec l'interface web.
- Téléchargez des pipelines, des réseaux neuronaux, des cartes de terrain, etc.
- Effectuez des modifications en temps réel sur n'importe quel paramètre de pipeline avec une option optionnelle "flush to disk"
- Publiez des données d'entrée python personnalisées, définissez l'orientation du robot, etc.
Améliorations MegaTag2
- La compensation de latence du gyroscope MegaTag2 a été améliorée. Attendez-vous à d'autres améliorations bientôt !
- Ajout du curseur "Gyro latency adjustment" à l'interface. Pour régler manuellement la compensation de latence MegaTag 2, vous pouvez faire tourner votre robot et ajuster le curseur jusqu'à ce que les résultats de localisation soient parfaits pendant la rotation.
Métriques d'écart-type
- Le visualiseur de terrain 3D inclut maintenant les écarts-types MegaTag1 et Megatag2 pour x, y et yaw.
Nouveau type de pipeline "Focus"
- En mode "focus", vous aurez accès à un curseur de qualité de flux et un curseur de zone de recadrage
- Tournez l'objectif pour maximiser le score de "focus".
- Si votre caméra est dans un emplacement fixe, cela prend moins d'une minute. Nous recommandons de faire la mise au point avec un Limelight fixe / monté.
Nouveau type de pipeline "Barcodes"
- Détection et décodage multi QR Code à 50-60FPS en 1280x800
- Détection et décodage multi DataMatrix à 50-60FPS en 1280x800
- Multi UPC, EAN, Code128 et PDF417 à 30FPS en 1280x800
- Les chaînes de données des codes-barres sont publiées dans le tableau nt "rawbarcodes".
- Le pipeline Barcodes remplira toutes les métriques 2D telles que tx, ty, ta, tcornxy, etc.
Toute nouvelle API REST
- https://docs.limelightvision.io/docs/docs-limelight/apis/rest-http-api
- Notre API REST / HTTP a été entièrement reconstruite.
- L'API REST permet une configuration complète du Limelight sans interaction avec l'interface web.
- Téléchargez des pipelines, des réseaux neuronaux, des cartes de terrain, etc.
- Effectuez des modifications en temps réel sur n'importe quel paramètre de pipeline avec une option optionnelle "flush to disk"
- Publiez des données d'entrée python, définissez l'orientation du robot, etc.
Suppression du paramètre d'orientation de la caméra de l'interface (CHANGEMENT MAJEUR)
- Ceci a été remplacé par l'option "stream orientation". La calibration et le ciblage ne sont jamais affectés par cette option.
- La nouvelle option n'affecte que le flux. À l'envers, 90 degrés dans le sens horaire, 90 degrés dans le sens antihoraire, miroir horizontal et miroir vertical
- Les équipes devront maintenant inverser manuellement tx et ty selon les besoins lors de l'utilisation de caméras pivotées.
Suppression du support GRIP (CHANGEMENT MAJEUR)
Suppression du mode "Driver" sans traitement (CHANGEMENT MAJEUR)
- Ceci a été remplacé par le type de pipeline "Viewfinder"
Ajout du type de pipeline "Viewfinder"
- Le pipeline viewfinder désactive tout traitement pour une latence minimale
- Cela permet aux équipes de concevoir leurs propres pipelines "Driver" pour les modes de visualisation uniquement
Les fichiers de pipeline utilisent maintenant le format JSON (CHANGEMENT MAJEUR)
- Les pipelines utilisent toujours l'extension de fichier .vpr
- (Cassé dans certains cas en 2024.6) L'interface convertira automatiquement les pipelines en JSON lorsque vous utilisez le bouton "upload".
- (Entièrement fonctionnel) Vous pouvez également utiliser https://tools.limelightvision.io/pipeline-upgrade pour mettre à niveau vos pipelines
Amélioration UX de la calibration
- Les paramètres de calibration sont maintenant mis en cache. Vous n'avez plus besoin d'entrer vos paramètres de calibration à chaque fois que vous voulez calibrer.
- Le dictionnaire de calibration par défaut a été mis à jour pour fonctionner avec la planche grossière 800x600mm recommandée de Calib.io.
Mosaïque de calibration
- Auparavant, il était difficile de déterminer la qualité des images de calibration
- L'onglet de calibration a maintenant un bouton "Download Calibration Mosaic". La mosaïque vous montrera exactement ce que chaque image contribue à votre calibration.

Région de ciblage "Centroid"
- Le mode de ciblage centroïde a été ajouté à l'onglet "Output" pour améliorer le suivi d'objets avec les pipelines de couleur
Décalage 3D dynamique (NT: fiducial_offset_set)
- Il est maintenant possible d'ajuster le décalage 3D sans changer de pipelines. Ceci est utile pour les situations où votre "point de visée" doit changer en fonction de la distance ou d'autres propriétés.
Ajout du support Modbus
- Limelight OS a maintenant un serveur modbus toujours actif pour l'inspection, la logistique et les applications industrielles
- Voir la spécification des registres modbus ici : https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
- Le port du serveur modbus par défaut peut être changé dans l'onglet des paramètres de l'interface
- Grâce à modbus et aux pipelines python snapscript, des applications de vision entièrement personnalisées avec communication bidirectionnelle sont maintenant prises en charge.
Serveur NT personnalisé
- L'onglet des paramètres contient maintenant une entrée pour un serveur NT personnalisé.
- Cela permet un nouveau flux de travail qui inclut un serveur NT glass fonctionnant sur un PC, et Limelight 3G communiquant via USB.
Changements Rawfiducial
- La valeur "area" des fiducials bruts est maintenant une valeur calibrée et normalisée allant d'environ 0 à 1
Tous les changements NetworkTables et JSON
-
Ajout de NT getpipetype - Obtenir la chaîne du type de pipeline actuel (ex. pipe_color, pipe_fiducial)
-
Ajout de NT tcclass - Nom de classe détectée du pipeline classificateur
-
Ajout de NT tdclass - Nom de classe détectée du pipeline détecteur
-
Ajout de NT t2d pour un ciblage 2D atomique garanti - [valid,targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]
-
Suppression de NT tlong, tshort, thor, tvert et ts
-
Ajout du tableau NT 'crosshairs' [cx0,cy0,cx1,cy1]
-
Suppression de NT cx0, cy0, cx1 et cy1
-
Ajout de NT rawbarcodes - Tableau de chaînes NT de données de codes-barres. Jusqu'à 32 entrées.
-
Tous les tableaux "raw" permettent jusqu'à 32 cibles (contre 8 auparavant)
-
Ajout de fiducial_offset_set pour le décalage 3D dynamique
-
Ajout de "pType" au résultat json de niveau supérieur
-
Ajout de "stdev_mt1" et "stdev_mt2" au résultat json de niveau supérieur (x,y,z,roll,pitch,yaw) (mètres, degrés)
Changements aux autres formats de fichiers et dumps JSON
- Le format de fichier de calibration a été simplifié. Les anciennes calibrations sont automatiquement converties au nouveau format lors du téléchargement
- Un niveau d'imbrication a été supprimé des dumps JSON de résultats et de statut
Corrections de bugs
- Auparavant, si un Google Coral était débranché pendant qu'un pipeline neuronal était actif, le pipeline revenait définitivement en mode "color/retro"
- Maintenant, "CHECK CORAL" ou "CHECK MODEL" sera imprimé sur l'image. Le type de pipeline ne changera jamais
- Auparavant, les tags qui passaient avec succès le filtre d'ID fiducial étaient parfois dessinés avec un contour rouge au lieu d'un contour vert. Ce problème de visualisation a été corrigé.
- Les pipelines Apriltag remplissent le tableau NT tcornxy
- Les pipelines Apriltag respectent maintenant entièrement le curseur min-max area. Auparavant, les pipelines AprilTag filtraient les résultats 2D en fonction de la surface du tag, mais pas les résultats 3D / de localisation.
Limelight OS 2024.5.0 (9/4/24)
- Mise à niveau vers Linux 6.1
Mise à jour de la pile caméra
- L'ensemble de la pile caméra a été mis à jour pour corriger un blocage du périphérique caméra sur Limelight3G.
- Les symptômes incluent
- Assurez-vous de réajuster les paramètres d'exposition et de gain après avoir appliqué cette mise à jour.
Réduction d'échelle dynamique
- Les équipes peuvent maintenant définir "fiducial_downscale_set" pour remplacer le paramètre de réduction d'échelle du pipeline actuel
- 0:Contrôle UI, 1:1x, 2:1.5x, 3:2x, 4:3x, 5:4x
- Utilisez la nouvelle méthode Helpers avec 0.0 (Contrôle UI), 1.0, 1.5, 2.0, 3.0, 4.0
- C'est une opération sans surcharge.
- En combinant la réduction d'échelle dynamique et le recadrage dynamique, les équipes peuvent maximiser les FPS sans gérer plusieurs pipelines
Améliorations de MegaTag2
- MT2 fonctionne maintenant quelle que soit l'orientation du Limelight, y compris les modes "portrait" avec des rotations de 90 degrés et -90 degrés
Tableau nt "rawdetections"
- [classID, txnc, tync, ta, corner0x, corner0y, corner1x, corner2y, corner3x, corner3y, corner4x, corner4y]
- Les coins sont en espace pixel sans calibration appliquée
Mise à jour Érosion/Dilatation
- Les pipelines couleur supportent maintenant jusqu'à 10 étapes de dilatation et 10 étapes d'érosion
- Les pipelines couleur ont maintenant une option "morpho inversée" pour inverser l'ordre des étapes de dilatation et d'érosion
LimelightLib 1.6 (9/4/24)
- Ajout de void SetFiducialDownscalingOverride(float downscale)
Définir à 0 pour le contrôle du pipeline, ou l'une des valeurs suivantes pour remplacer le paramètre de réduction d'échelle de votre pipeline : 1, 1.5, 2, 3, 4
- Ajout de RawFiducial[] GetRawFiducials()
- Ajout de RawDetection[] GetRawDetections()
Limelight OS 2024.4.0 (3/4/24)
Merci à toutes les équipes qui ont contribué des idées pour cette mise à jour.
Megatag 2
Megatag 2 est un localisateur sans ambiguïté. Il a une précision et une exactitude supérieures à Megatag1, et il a été construit avec les exigences suivantes :
- Éliminer le problème d'ambiguïté de pose et augmenter la robustesse contre le bruit d'image/de coins.
- Fournir d'excellentes estimations de pose avec un ou plusieurs tags, quelle que soit la perspective.
- Augmenter la robustesse contre les imprécisions de placement physique des AprilTags
- Réduire la quantité de filtrage côté robot nécessaire pour de bons résultats d'estimation de pose
Remarquez la différence entre MegaTag2 (robot rouge) et Megatag (robot bleu) dans ce cas très ambigu avec un seul tag :
Megatag2 nécessite que vous définissiez l'orientation de votre robot avec un nouvel appel de méthode. Voici un exemple complet :
LimelightHelpers.SetRobotOrientation("limelight", m_poseEstimator.getEstimatedPosition().getRotation().getDegrees(), 0, 0, 0, 0, 0);
LimelightHelpers.PoseEstimate mt2 = LimelightHelpers.getBotPoseEstimate_wpiBlue_MegaTag2("limelight");
if(Math.abs(m_gyro.getRate()) > 720) // si notre vitesse angulaire est supérieure à 720 degrés par seconde, ignorer les mises à jour de vision
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}
if(!doRejectUpdate)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.6,.6,9999999));
m_poseEstimator.addVisionMeasurement(
mt2.pose,
mt2.timestampSeconds);
}
Megatag2 fournit d'excellents résultats sans ambiguïté à n'importe quelle distance avec un seul tag. Cela signifie qu'il est parfaitement viable de se concentrer uniquement sur les tags pertinents et dans votre tolérance de placement souhaitée. Si un tag n'est pas au bon emplacement ou n'est pas pertinent, filtrez-le avec la nouvelle fonctionnalité de filtre dynamique.
Filtrage dynamique des AprilTags
- Parce que MegaTag2 n'a pas besoin d'accumuler autant d'AprilTags que possible, vous pouvez filtrer en toute sécurité les tags bien placés et pertinents :
int[] validIDs = {3,4};
LimelightHelpers.SetFiducialIDFiltersOverride("limelight", validIDs);
Transition vers MegaTag2
Megatag2 nécessite l'orientation de votre robot pour fonctionner correctement. Une orientation de 0 degrés, 360 degrés, 720 degrés, etc. signifie que votre robot fait face au mur de l'alliance rouge. C'est la même convention utilisée dans PathPlanner, Chorero, Botpose et Botpose_wpiblue.
Une fois que vous avez ajouté SetRobotOrientation() à votre code, vérifiez le visualiseur 3D intégré. À courte portée, Megatag2 et Megatag1 devraient correspondre étroitement sinon exactement. À longue portée, Megatag 2 (robot rouge) devrait être plus précis et plus stable que Megatag1 (robot bleu).
Une fois que le visualiseur intégré affiche de bons résultats, vous pouvez utiliser Megatag2 en toute sécurité pour guider votre robot pendant la période autonome.
Le seul filtre que nous recommandons d'ajouter est un filtre de "vitesse angulaire maximale". Vous pourriez constater qu'à des vitesses angulaires élevées, vos estimations de pose deviennent légèrement moins fiables.
Le dépôt d'exemples contient un exemple Megatag2 avec ce filtre.
if(Math.abs(m_gyro.getRate()) > 720) // si notre vitesse angulaire est supérieure à 720 degrés par seconde, ignorer les mises à jour de vision
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}
LimelightLib 1.5 (3/4/24)
Ajout de
getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()
Limelight OS 2024.3.4 (20/3/24)
Merci à toutes les équipes qui ont contribué des idées pour cette mise à jour.
Solveur de tag unique de plus haute précision
Le solveur 3D de tag unique de MegaTag a été amélioré. Il est beaucoup plus stable qu'avant à longue portée.
JSON désactivé par défaut (Changement majeur)
- JSON a été désactivé par défaut pour réduire l'utilisation de la bande passante pour les équipes utilisant des tableaux de bord à abonnement automatique comme Shuffleboard.
- Cela devrait également réduire la charge NT du RoboRIO et l'utilisation du CPU.
- Réactivez json par pipeline dans l'onglet de sortie.
- Cette mise à jour inclut des changements qui devraient permettre à encore plus d'équipes de s'éloigner de JSON pour l'estimation de pose.
Surface non distordue (Changement majeur)
Les coins sont non distordus avant de calculer la surface de toute cible.
Inclure les métriques par fiduciel dans botpose, botpose_wpiblue et botpose_wpired
[tx, ty, tz, roll, pitch, yaw, tagCount, tagSpan (mètres), averageDistance (mètres), averageArea (pourcentage de l'image), (tags) ]
Pour chaque tag utilisé par la localisation megatag, les tableaux ci-dessus incluent maintenant (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)
L'ambiguïté est une nouvelle métrique allant de 0 à 1 qui indique l'ambiguïté de la perspective actuelle du tag. Les mises à jour de tag unique avec des ambiguïtés de tag > .9 devraient probablement être rejetées.
Tableaux nt "rawtargets" et "rawfiducials" (Changement majeur)
- rawtargets - (txnc,tync,ta) par cible
- rawfiducials - (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity) par cible
- Les entrées NT rawtargets précédentes (tx0,ty0, etc) ont été supprimées.
Corrections de bugs
- Mettre à zéro toutes les informations 3D de tag unique si le priorityID n'a pas été trouvé. Auparavant, seuls Tx, Ta, Ty et Tv étaient mis à zéro lorsque le priorityTag n'était pas trouvé
- Mettre à zéro botpose si le seul tag visible a été filtré par la fonctionnalité "Filtres ID" de l'UI. Auparavant, les botposes se réinitialisaient au centre du terrain plutôt qu'à (0,0,0) si le seul tag visible était un tag filtré;
- 2024.2 publiait des NANs dans certaines entrées networktables dans certains cas rares. Cela ne se produira plus.
LimelightLib 1.4 (21/3/24)
- Ajout du support pour les Raw Fiducials 2024.3.4. Les PoseEstimates incluent maintenant un tableau de rawFiducials qui contiennent id, txnc, tync, ta, distanceToCamera, distanceToRobot et ambiguity
Limelight Hardware Manager 1.4 (18/3/24)
Correction de bug
Les Limelights USB découverts sont correctement affichés comme une seule entrée plutôt que deux entrées partielles.
Limelight OS 2024.2.2 (17/3/24)
Correction de bug
TX et TY respectent correctement le réticule dans les entrées NT.
Limelight OS 2024.2 (8/3/24)
Ciblage sans réticule avec Json (tx_nocross, ty_nocross) et NT (txnc, tync)
Si vous utilisez le ciblage tx/ty avec une calibration intrinsèque personnalisée, vous voyez probablement encore des variations de caméra à caméra parce que le réticule Limelight n'est pas aligné avec le pixel principal de la caméra. Les équipes qui nécessitent une plus grande précision tx/ty peuvent soit configurer le réticule pour correspondre au pixel principal, soit utiliser ces nouvelles métriques.
Changement potentiellement majeur dans tx/ty
Un bug a été introduit plus tôt cette saison qui a cassé la calibration personnalisée spécifiquement pour tx, ty et tx + ty dans json. Limelight OS revenait aux calibrations par défaut dans plusieurs cas.
Améliorations de la calibration
La calibration est maintenant presque instantanée, peu importe le nombre d'images capturées. Nous avons également corrigé un crash causé par avoir plus d'environ 30 images dans certaines circonstances.
Nous obtenons constamment une erreur de reprojection d'environ 1 pixel avec 15-20 images de cibles en papier, et une erreur de 0.3 pixel avec nos cibles calib.io de haute qualité.
Correction UI des filtres fiduciels
La zone de texte des filtres fiduciels accepte maintenant n'importe quel nombre de filtres.
Divers
Le générateur d'AprilTag utilise par défaut "sans bordure" pour éviter la mise à l'échelle avec les tags de 165.1 mm.
Limelight OS 2024.1.1 (24/2/24)
- Correction de priorityID
Limelight OS 2024.1 (24/2/24)
Métriques HW (clé hw dans networktables, requête GET /status)
- Les équipes ont maintenant la possibilité d'enregistrer les FPS, la charge CPU, l'utilisation de la RAM et la température du CPU.
- Répond à https://github.com/LimelightVision/limelight-feedback/issues/5
Amélioration de la calibration
- Correction d'un crash qui pouvait se produire si une image de calibration contenait exactement une détection valide. Amélioration du retour de l'interface web.
Amélioration de la localisation du robot (nombre de tags et plus)
-
Tous les tableaux botpose de networktables (botpose, botpose_wpiblue et botpose_wpired) incluent maintenant le nombre de tags, l'étendue des tags (mètres), la distance moyenne (mètres) et la surface moyenne (pourcentage de l'image)
-
Ces métriques sont calculées avec les tags inclus dans la carte de terrain téléchargée. Les AprilTags personnalisés et/ou mobiles n'affecteront pas ces métriques.
-
Avec la calibration de l'appareil et cette mise à niveau du tableau botpose, nous ne pensons pas que JSON soit nécessaire pour la grande majorité des cas d'utilisation cette année.
-
Le dump JSON inclut maintenant botpose_avgarea, botpose_avgdist, botpose_span et botpose_tagcount pour plus de commodité.
[tx,ty,tz,rx,ry,rz,latency,tagcount,tagspan,avgdist,avgarea]
Nouvelle fonctionnalité : ID prioritaire (clé NT priorityid)
-
Si votre robot utilise à la fois des fonctionnalités basées sur l'odométrie et des fonctionnalités basées sur tx/ty, vous avez probablement rencontré le problème UX suivant :
-
Avant cette mise à jour, il n'y avait pas de moyen facile de changer l'ID de tag préféré pour le ciblage tx/ty.
-
Bien qu'il y ait un filtre ID dans l'UI, il
- n'est pas dynamique
- supprime les tags de la localisation megaTag.
-
Cela signifiait que les équipes créaient plusieurs pipelines : un pour la localisation 3D, et un par tag tx/ty (un pipeline pour le tir côté bleu avec le tag 7, un pour l'amplification côté bleu avec le tag 6, etc.).
-
La nouvelle fonctionnalité d'ID prioritaire (clé NT priorityid) vous permet de dire à votre Limelight "Après que toute la détection, le filtrage et le tri des tags soient terminés, concentrez-vous sur le tag qui correspond à l'ID prioritaire."
-
Cela n'affecte en rien la localisation, et cela ne change que légèrement l'ordre des tags dans les résultats JSON.
-
Si votre ID prioritaire n'est pas -1, tx/ty/ta retourneront 0 à moins que le tag choisi ne soit visible.
Divers
- Correction du "x" à travers l'écran lors de l'utilisation du mode double cible dans un pipeline apriltag 3D
- API REST étendue avec les téléchargements d'étiquettes de réseau neuronal (/uploadlabels)
- Inclure le surnom de l'appareil dans le json /status
LimelightLib 1.3
- LimelightLib (Java et CPP) ont été mis à jour pour rendre la localisation plus facile que jamais.
LimelightHelpers.PoseEstimate limelightMeasurement = LimelightHelpers.getBotPoseEstimate_wpiBlue("limelight");
if(limelightMeasurement.tagCount >= 2)
{
m_poseEstimator.setVisionMeasurementStdDevs(VecBuilder.fill(.7,.7,9999999));
m_poseEstimator.addVisionMeasurement(
limelightMeasurement.pose,
limelightMeasurement.timestampSeconds);
}
Nouvelles ressources pour les équipes
Retours et suivi des problèmes Limelight : https://github.com/LimelightVision/limelight-feedback/issues
Dépôt d'exemples : https://github.com/LimelightVision/limelight-examples
Exemple de visée et de télémétrie avec Swerve : https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-aiming-and-ranging
Exemple de localisation MegaTag : https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-pose-estimation
Merci aux contributeurs récents jasondaming, Gold876, JosephTLockwood, Andrew Gasser et virtuald
Mises à jour Limelight 2024 (6/2/24)
Mise à niveau de la documentation Limelight
- La documentation a été réécrite pour simplifier le processus de configuration
Générateur d'AprilTag Limelight
- https://tools.limelightvision.io/ propose maintenant le premier générateur d'AprilTag en ligne.
- Sélectionnez la taille de votre papier, la taille du marqueur et les IDs des tags pour générer un PDF imprimable.
- Safari peut ne pas afficher correctement les tags pour le moment.
Constructeur de carte Limelight
- https://tools.limelightvision.io/map-builder
- Vous pouvez maintenant construire des cartes AprilTag personnalisées avec une interface intuitive.
- La famille par défaut et la taille des tags ont été mises à jour pour correspondre au terrain 2024.
Nouveau Hardware Manager
- L'outil Finder est maintenant le Limelight Hardware Manager
- Il a été réécrit de zéro. Il détecte maintenant de manière fiable les Limelights, fournit des informations de diagnostic plus utiles et ne nécessite pas de redémarrages pour fonctionner correctement.
- Obtenez-le maintenant depuis la page de téléchargements

Entraînez vos propres réseaux neuronaux
- Vous pouvez entraîner vos propres modèles de détection gratuitement avec RoboFlow, le Notebook d'entraînement de détecteur Limelight, et notre nouveau tutoriel

Carte AprilTag 2024 et détecteur de Note
- La carte et le modèle de détecteur ont été ajoutés à la page de téléchargements et à la dernière image Limelight OS.
Limelight OS 2024.0 (6/2/24)
Corrections de calibration ChArUco
- La précision sous-pixel de notre détecteur ChArUco a été augmentée. Une erreur de reprojection de 1-2 pixels est maintenant atteignable avec des cibles sur presse-papiers et 20 images.
- En utilisant la même caméra et la même cible, 2023.6 a atteint une RPE de 20 pixels, et 2024.0 a atteint une RPE de 1.14 pixels.
- Les champs de saisie n'acceptent plus les lettres et les caractères spéciaux. Cela élimine le potentiel de crash.
Amélioration de la précision Megatag prête à l'emploi
- Avant cette mise à jour, le générateur de carte Megatag interne de Limelight référençait le curseur de taille de tag de l'UI au lieu des tailles de tag fournies par le fichier .fmap.
- Megatag respecte maintenant les tailles de tag configurées dans les fichiers fmap et ignore le curseur de taille.
- Si votre curseur de taille n'a pas été réglé sur 165.1 mm, vous remarquerez une amélioration immédiate de la précision de localisation
Améliorations de performance et corrections de bugs
- Pipelines AprilTag à FPS plus élevés
- Les performances du visualiseur d'espace de terrain ont été significativement améliorées.
Corrections de bugs
- Les AprilTags dans les visualiseurs 3D étaient parfois dessinés avec des images de tag incorrectes ou corrompues. Les tags sont maintenant toujours affichés correctement.
- "v" / tv / "valid" ne retournera maintenant "1" que s'il y a des détections valides. Auparavant, tv était toujours "1"