Aller au contenu principal

Journal des modifications du logiciel 2021 - 2023

2023.6 (18/04/23)

Calibration ChArUco facile et visualiseurs de calibration

  • La calibration ChArUco est considérée comme meilleure que la calibration en damier car elle gère les occlusions, les mauvaises détections de coins, et ne nécessite pas que la totalité du tableau soit visible. Cela rend beaucoup plus facile la capture des coins du tableau de calibration près des bords et des angles de vos images. C'est crucial pour l'estimation des coefficients de distorsion.
  • Le processus de calibration de Limelight fournit des retours à chaque étape, et s'assurera que vous faites tout ce qui est nécessaire pour obtenir de bons résultats de calibration. Beaucoup d'efforts ont été consacrés pour rendre ce processus le plus fiable possible.
  • Plus important encore, vous pouvez visualiser vos résultats de calibration juste à côté de la calibration par défaut. En un coup d'œil, vous pouvez comprendre si votre résultat de calibration est raisonnable ou non.
  • Vous pouvez également utiliser le tableau de bord de calibration comme outil d'apprentissage. Vous pouvez modifier les fichiers de résultats de calibration téléchargés et les téléverser à nouveau pour comprendre comment la matrice des paramètres intrinsèques et les coefficients de distorsion affectent les résultats de ciblage, le champ de vision, etc.
  • Regardez cette vidéo :

2023.5.1 & 2023.5.2 (22/03/23)

  • Correction de la régression introduite dans la version 2023.5.0 - Bien que la version 2023.5 ait corrigé le megatag pour toutes les dispositions non planaires, elle a réduit les performances des estimations de pose à tag unique. Cela a été corrigé. Les estimations de pose à tag unique utilisent exactement le même solveur que dans la version 2023.4.

  • Interface de capture d'écran plus réactive. La grille de captures charge maintenant des miniatures basse résolution de 128p.

  • Le lacet (Yaw) de Limelight est maintenant correctement présenté dans les visualiseurs 3D. Il est positif dans le sens antihoraire dans le visualiseur et en interne.

  • Indication des cibles actuellement suivies dans le visualiseur d'espace de terrain.


2023.5.0 (21/03/23)

Changements majeurs

  • Correction de la régression - Le "Yaw" en espace robot de Limelight était inversé dans les versions précédentes. Le yaw dans l'interface web est maintenant CCW-Positif en interne.

Mise à jour de la sélection de région

  • La sélection de région fonctionne maintenant comme prévu dans les pipelines de détection neuronale.
  • Ajout de 5 nouvelles options de région pour sélectionner le centre, le haut, la gauche, la droite, le haut ou le bas du rectangle cible non pivoté.

API REST "hwreport"

  • :5807/hwreport renverra une réponse JSON détaillant les paramètres intrinsèques de la caméra et les informations de distorsion

Correction MegaTag

  • Certaines dispositions d'apriltags non coplanaires étaient défectueuses dans MegaTag. Cela a été corrigé, et l'estimation de la pose est maintenant stable avec tous les tags de terrain. Cela permet une estimation stable de la pose à des distances encore plus grandes qu'auparavant.

Plus grande précision tx et ty

  • TX et TY sont plus précis que jamais. Les cibles sont complètement non déformées, et le champ de vision est déterminé entièrement par les paramètres intrinsèques de la caméra.

2023.4.0 (18/02/23)

Filtre de classe du détecteur neuronal

Spécifiez les classes que vous souhaitez suivre pour filtrer facilement les détections indésirables.

Support étendu du détecteur neuronal

Prise en charge de toute résolution d'entrée, prise en charge de formes de sortie supplémentaires pour supporter d'autres architectures de détection d'objets. Les modèles basés sur EfficientDet0 sont désormais pris en charge.


2023.3.1 (14/02/23)

Améliorations de la précision AprilTag

Amélioration de la matrice intrinsèque et, plus important encore, amélioration des coefficients de distorsion pour tous les modèles. Améliorations notables de la localisation AprilTag unique.

Téléchargement du détecteur

Correction du téléchargement du détecteur.


2023.3 (13/02/23)

Latence de Capture (Clé NT : "cl", Résultats JSON : "cl")

La nouvelle entrée de latence de capture représente le temps entre la fin de l'exposition de la ligne médiane du capteur d'image de Limelight et le début du pipeline de traitement.

Nouveau Seuil de Qualité pour les AprilTags

Les AprilTags parasites sont maintenant plus facilement filtrés grâce au nouveau curseur de Seuil de Qualité. La valeur par défaut définie dans la version 2023.3 devrait éliminer la plupart des détections parasites.

Remplacement de la Pose de Caméra dans l'Espace Robot (Clés NT : "camerapose_robotspace_set", "camerapose_robotspace")

La position de votre Limelight dans l'espace robot peut maintenant être ajustée à la volée. Si la clé est définie sur un tableau de zéros, la pose définie dans l'interface web est utilisée.

Voici un exemple d'un Limelight sur un élévateur : Limelight sur Élévateur

Augmentation de l'Exposition Maximale

Le temps d'exposition maximal est maintenant de 33ms (contre 12,5 ms auparavant). Les modes de capture à haute fréquence d'images sont toujours limités à (1/fps) secondes. Les pipelines à 90hz, par exemple, n'auront pas d'images plus lumineuses au-delà de 11ms de temps d'exposition.

Mises à jour de Botpose

Les trois tableaux botpose dans les networktables ont une septième entrée représentant la latence totale (latence de capture + latence de ciblage).

Corrections de Bugs

  • Correction des flux MJPEG LL3 dans shuffleboard
  • Correction du camMode - le mode pilote produit maintenant des images lumineuses et utilisables
  • Correction de l'étiquette d'exposition - chaque "cran" représente 0,01ms et non 0,1 ms
  • Correction du téléchargement du détecteur de réseau neuronal

2023.2 (28/01/23)

Rendre la 3D plus facile que jamais.

Botposes compatibles WPILib

Botpose est maintenant encore plus facile à utiliser dès la première installation.

Ces positions correspondent aux systèmes de coordonnées WPILib. exemple de botpose megatag :

Toutes les botposes sont affichées directement dans le visualiseur d'espace de terrain dans l'interface web, permettant de confirmer d'un coup d'œil que tout fonctionne correctement.

Accès plus facile aux données 3D (Changements majeurs)

La RobotPose dans l'espace cible est sans doute la donnée la plus utile provenant de Limelight concernant les AprilTags. En utilisant uniquement celle-ci, vous pouvez parfaitement aligner un système d'entraînement avec un AprilTag sur le terrain.

  • Clé NetworkTables "campose" est maintenant "camerapose_targetspace"
  • Clé NetworkTables "targetpose" est maintenant "targetpose_cameraspace"
  • Nouvelle clé NetworkTables - "targetpose_robotspace"
  • Nouvelle clé NetworkTables - "botpose_targetspace"

Téléchargement de réseau neuronal

Téléchargez des modèles teachable machine vers le pipeline de classification Limelight. Assurez-vous qu'ils sont des modèles compatibles Tensorflow Lite EdgeTPU. Téléchargez les fichiers .tflite et les fichiers d'étiquettes .txt séparément.


2023.1 (19/01/23)

MegaTag et Améliorations des Performances

Correction d'une Erreur

Le paramètre de taille de marqueur par défaut dans l'interface utilisateur a été corrigé à 152,4 mm (au lieu de 203,2 mm). C'était la source de la plupart des problèmes de précision.

Stabilité de Suivi Améliorée

Il existe plusieurs façons d'ajuster la détection et le décodage des AprilTags. Nous avons amélioré la stabilité globale, particulièrement dans les environnements à faible luminosité / faible exposition.

Conversion en Niveaux de Gris Ultra Rapide

La conversion en niveaux de gris est 3 à 6 fois plus rapide qu'avant. Les équipes verront toujours un flux vidéo en niveaux de gris lors du suivi des AprilTags.

Recadrage pour la Performance

Les pipelines AprilTag disposent maintenant de curseurs de recadrage. Le recadrage de votre image permettra d'améliorer la fréquence d'images à n'importe quelle résolution.

Filtrage Simplifié

Il y a maintenant un seul champ "filtre ID" dans les pipelines AprilTag qui filtre la sortie JSON, les tags avec botpose activé, et les tags avec tx/ty activés. La configuration à double filtre était bogueuse et déroutante.

Changement Majeur

La clé NT "camtran" est maintenant "campose"

Mise à jour JSON

"botpose" fait maintenant partie du dump des résultats json

Mise à jour du Visualiseur d'Espace de Terrain

Le visualiseur d'espace de terrain montre maintenant le terrain FRC 2023. Il devrait maintenant être plus facile de juger la précision du botpose d'un coup d'œil.

Limelight MegaTag (nouveau botpose)

Ma priorité numéro 1 a été de réécrire botpose pour une meilleure précision, un bruit réduit et une résilience à l'ambiguïté. La nouvelle implémentation botpose de Limelight s'appelle MegaTag. Au lieu de calculer botpose avec une simple moyenne de plusieurs poses individuelles dans l'espace du terrain, MegaTag combine essentiellement tous les tags en un seul tag 3D géant avec plusieurs points clés. Cela présente d'énormes avantages.

Le GIF suivant montre une situation conçue pour induire le retournement des tags : Cylindre Vert : Pose bot individuelle par tag Cylindre Bleu : BotPose 2023.0.1 Cylindre Blanc : Nouveau BotPose MegaTag

Remarquez comme le nouveau botpose (cylindre blanc) est extrêmement stable par rapport à l'ancien botpose (cylindre bleu). Vous pouvez également observer les valeurs tx et ty.

Voici l'écran complet, montrant l'ambiguïté des tags :

Voici les avantages :

Botpose est maintenant résistant aux ambiguïtés (retournement de tag) si plus d'un tag est visible (sauf s'ils sont proches et coplanaires. Idéalement, les points clés ne sont pas coplanaires). Botpose est maintenant plus résistant au bruit dans les coins des tags si plus d'un tag est visible. Plus les tags sont éloignés les uns des autres, meilleur c'est. Ce n'est pas limité aux tags planaires. Cela s'adapte à n'importe quel nombre de tags en 3D complète et dans n'importe quelle orientation. Les tags au sol et au plafond fonctionneraient parfaitement.

Voici un diagramme démontrant un aspect de son fonctionnement dans un cas planaire simple. Les résultats sont en fait meilleurs que ce qui est représenté, car le MegaTag représenté a une erreur significative appliquée à trois points au lieu d'un seul point. À mesure que le MegaTag 3D combiné augmente en taille et en nombre de points clés, sa stabilité augmente.

Le téléchargement du réseau neuronal est reporté à la version 2023.2 !


2023.0.0 et 2023.0.1 (11/01/23)

Introduction des AprilTags, de la localisation du robot, des réseaux de neurones profonds, d'une interface de capture d'écran réécrite, et plus encore.

Fonctionnalités, Changements et Corrections de Bugs

  • Nouveau pipeline de capture de capteur et contrôle du gain
    • Notre nouveau pipeline de capture permet des temps d'exposition 100 fois plus courts qu'en 2022. Le nouveau pipeline active également le contrôle du gain. C'est extrêmement important pour le suivi des AprilTags et servira à rendre le ciblage rétroréfléchissant plus fiable que jamais. Avant Limelight OS 2023, le gain du capteur Limelight était non déterministe (nous avions mis en place quelques astuces pour le faire fonctionner malgré tout).
    • Avec le nouveau curseur "Gain du capteur", les équipes peuvent rendre les images plus sombres ou plus lumineuses que jamais sans toucher au curseur d'exposition. L'augmentation du gain augmentera le bruit dans l'image.
    • En combinant un gain plus faible avec les nouveaux temps d'exposition plus courts, il est maintenant possible de produire des images presque complètement noires avec des LED à pleine luminosité et des cibles rétroréfléchissantes. Cela aidera à atténuer les réflexions des LED et de la lumière du soleil lors du suivi des cibles rétroréfléchissantes.
    • En augmentant le gain du capteur et en réduisant l'exposition, les équipes pourront minimiser les effets de flou de mouvement dus aux temps d'exposition élevés lors du suivi des AprilTags.
    • Nous avons réussi à développer ce nouveau pipeline tout en conservant toutes les fonctionnalités - 90fps, zoom matériel, etc.
  • Plus d'options de résolution
    • Il y a deux nouvelles résolutions de capture pour LL1, LL2 et LL2+ : 640x480x90fps et 1280x960x22fps
  • Interface Web optimisée
    • L'interface web se chargera et s'initialisera jusqu'à 3 fois plus rapidement sur les réseaux robotiques.
  • Interface de captures d'écran réécrite
    • La fonction de captures d'écran a été entièrement réécrite pour permettre le téléchargement, le téléversement et la suppression d'images. Il existe également de nouvelles API pour la capture d'écran détaillées dans la documentation.
  • Améliorations de SolvePnP
    • Notre fonction de localisation de caméra basée sur solvePnP avait un bug gênant qui limitait sérieusement sa précision tous les quatre images. Ce problème a été résolu, et un tout nouveau canevas 3D complet a été construit pour les visualisations SolvePNP rétroréfléchissantes/couleur.
  • Correction de bug de l'interface Web
    • Il y avait un problème extrêmement rare en 2022 qui causait une panne permanente de l'interface web lors du premier démarrage après le flashage, ce qui forçait l'utilisateur à reflasher. La cause principale a été trouvée et corrigée définitivement.
  • Nouvelles API
    • Limelight inclut maintenant des API REST et Websocket. Les API REST, Websocket et NetworkTables prennent toutes en charge la nouvelle fonction de dump JSON, qui liste toutes les données pour toutes les cibles dans un format lisible par l'homme et simple à analyser pour FRC et toutes les autres applications.

Vision basée sur l'apprentissage sans code et support Google Coral

  • Google Coral est maintenant pris en charge par tous les modèles Limelight. Google Coral est un accélérateur matériel USB de 4TOPs (Billions d'opérations par seconde) spécialement conçu pour l'inférence sur les réseaux de neurones 8 bits.
  • Tout comme le suivi rétroréfléchissant il y a quelques années, la barrière à l'entrée pour la vision basée sur l'apprentissage sur les robots FRC a été trop élevée pour que l'équipe moyenne puisse même faire une tentative. Nous avons développé toute l'infrastructure nécessaire pour rendre la vision basée sur l'apprentissage aussi facile que les cibles rétroréfléchissantes avec Limelight.
  • Nous avons un cluster GPU cloud, des scripts d'entraînement, un outil d'agrégation de données et une équipe d'étiquetage humain prêts à l'emploi. Nous sommes ravis d'apporter les réseaux de neurones profonds à la communauté FRC pour la première fois.
  • Nous prenons actuellement en charge deux types de modèles : les modèles de détection d'objets et les modèles de classification d'images.
    • Les modèles de détection d'objets fourniront des "ID de classe" et des boîtes englobantes (comme nos cibles rétroréfléchissantes) pour tous les objets détectés. C'est parfait pour le suivi en temps réel des pièces de jeu.
      • Veuillez contribuer au premier modèle de détection d'objets FRC en soumettant des images ici : https://datasets.limelightvision.io/frc2023
      • Utilisez les clés tx, ty, ta et tclass de networktables ou le dump JSON pour utiliser les réseaux de détection
    • Les modèles de classification d'images ingéreront une image et produiront une seule étiquette de classe.
      • Pour en savoir plus et commencer à entraîner vos propres modèles pour Limelight, consultez Teachable Machine de Google.
      • https://www.youtube.com/watch?v=T2qQGqZxkD0
      • Les modèles Teachable Machine sont directement compatibles avec Limelight.
      • Les classificateurs d'images peuvent être utilisés pour classifier l'état interne du robot, l'état des caractéristiques du terrain, et bien plus encore.
      • Utilisez la clé tclass de networktables pour utiliser ces modèles.
  • Limelight OS 2023.0 ne permet pas le téléversement de modèles personnalisés. Cette fonction sera activée prochainement dans la version 2023.1

Support AprilTag sans code

  • Les AprilTags sont aussi faciles à utiliser que les cibles rétroréfléchissantes avec Limelight. Comme ils ont un filtre naturel dur sous la forme d'un ID, il y a encore moins de raison d'avoir votre roboRIO faire un filtrage lié à la vision.
  • Pour commencer, utilisez tx, ty et ta comme d'habitude. Aucun changement de code n'est requis. Triez par n'importe quelle caractéristique de cible, utilisez des groupes de cibles, etc.
  • Comme les AprilTags sont toujours carrés et toujours identifiables de manière unique, ils fournissent la plateforme parfaite pour les calculs de pose 3D complets.
  • Les retours que nous avons reçus pour cette fonctionnalité dans nos canaux de support ont été extrêmement positifs. Nous avons rendu les AprilTags aussi faciles que possible, du suivi 2D à une localisation complète du robot en 3D sur le terrain.
  • Consultez la spécification de la carte de terrain et le document sur le système de coordonnées pour plus d'informations détaillées.
  • Il y a quatre façons d'utiliser les AprilTags avec Limelight :
  • AprilTags en 2D
    • Utilisez tx, ty et ta. Configurez vos pipelines pour rechercher un ID de tag spécifique.
    • <gif>
  • Points d'intérêt AprilTags 3D
    • Utilisez les clés tx et ty, ta et tid de networktables. Le décalage du point d'intérêt est tout ce dont la plupart des équipes auront besoin pour suivre les cibles qui n'ont pas directement d'AprilTags attachés.
    • <gif>
  • 3D complet
    • Suivez votre LL, votre robot ou les tags en 3D complet. Utilisez campose ou json pour extraire les données pertinentes dans votre roboRio.
    • <gif>
  • Localisation du robot dans l'espace du terrain
    • Indiquez à votre Limelight comment il est monté, téléversez une carte du terrain, et votre LL fournira la pose du terrain de votre robot pour une utilisation avec l'estimateur de pose WPILib.
    • Notre système de coordonnées du terrain place (0,0) au centre du terrain au lieu d'un coin.
    • Utilisez la clé botpose de networktables pour cette fonctionnalité.
    • <gif>

2022.3.0 (13/04/22)

Corrections de bugs et pulsation.

Corrections de bugs

  • Correction des problèmes de performance, de stabilité du flux et de latence liés aux flux de caméra USB et aux instances multiples de flux.

Fonctionnalités et Modifications

  • Clé NetworkTable "hb" pour la pulsation
    • La valeur "hb" s'incrémente une fois par frame de traitement et se réinitialise à zéro à 2000000000.

2022.2.3 (16/03/22)

Corrections de bugs et filtrage de recadrage par code robot.

Corrections de bugs

  • Correction de la clé "stream" de networktables et des modes Picture-In-Picture
  • Correction de la clé "snapshot" de networktables. Les utilisateurs doivent définir la clé "snapshot" à "0" avant de la définir à "1" pour prendre une capture d'écran.
  • Suppression des alertes superflues liées à Python de l'interface web

Fonctionnalités et Modifications

  • Filtrage manuel du recadrage
    • En utilisant le tableau "crop" de networktables, les équipes peuvent maintenant contrôler les rectangles de recadrage depuis le code du robot.
    • Pour que la clé "crop" fonctionne, le pipeline actuel doit utiliser le rectangle de recadrage par défaut, grand ouvert (-1 pour minX et minY, +1 pour maxX et +1 maxY).
    • De plus, le tableau "crop" de networktables doit avoir exactement 4 valeurs, et au moins une de ces valeurs doit être non nulle.

2022.2.2 (23/02/22)

Mise à niveau obligatoire pour toutes les équipes basée sur les tests de fiabilité de la Semaine 0 et du FMS.

Corrections de bugs

  • Correction des problèmes de blocage / perte de connexion / perte de ciblage liés aux interfaces web ouvertes, FMS, configurations similaires au FMS, multiples appareils de visualisation, etc.

Fonctionnalités et Modifications

  • Filtrage par recadrage

    • Ignore tous les pixels en dehors d'un rectangle de recadrage spécifié
    • Si votre volant d'inertie a des points optimaux sur le terrain, vous pouvez utiliser le filtre de recadrage pour ignorer la majorité des pixels dans des pipelines spécifiques. Cette fonctionnalité devrait aider les équipes à réduire la probabilité de suivre des éléments non ciblés.
    • Si vous suivez le cargo, utilisez cette fonctionnalité pour chercher le cargo uniquement dans une partie spécifique de l'image. Pensez à ignorer les pare-chocs de votre équipe, les cibles éloignées, etc.
  • Fonctionnalité des coins maintenant compatible avec le regroupement intelligent des cibles

    • Celle-ci est destinée aux équipes qui souhaitent faire de la vision personnalisée plus avancée sur le RIO
    • Limite de coins "tcornxy" augmentée à 64 coins
    • La simplification des contours et les fonctionnalités de force convexe fonctionnent maintenant correctement avec le regroupement intelligent des cibles et l'envoi des coins
  • Filtre IQR maximum augmenté à 3.0

  • Taux de mise à jour des cibles en direct de l'interface web réduit de 30fps à 15fps pour réduire la bande passante et la charge CPU lorsque l'interface web est ouverte


2022.1 (25/01/22)

Corrections de bugs

  • Nous avons obtenu des informations de l'un de nos fournisseurs concernant un problème (et une solution !) qui affecte environ 1/75 des processeurs spécifiquement utilisés dans Limelight 2 (cela pourrait être lié à un lot spécifique). Cela a du sens, et c'était l'une des dernières différences de démarrage entre l'image 2022 et l'image 2020.
  • Correction des boutons de téléchargement pour les entrées GRIP et les modèles SolvePNP

Fonctionnalités

  • Arc-en-ciel de teinte

    • Le nouvel arc-en-ciel de teinte facilite la configuration du seuil de teinte.
  • Inversion de teinte

    • La nouvelle fonction d'inversion de teinte est une fonctionnalité essentielle si vous souhaitez suivre des objets rouges, car le rouge se trouve à la fois au début et à la fin de la gamme de teintes.
  • Nouvelles bibliothèques Python

    • Ajout de scipy, scikit-image, pywavelets, pillow et pyserial à notre bac à sable Python.

2022.0 et 2022.0.3 (15/01/22)

C'est une mise à jour majeure. Voici les quatre changements principaux :

Fonctionnalités

  • Regroupement Intelligent des Cibles

    • Regroupe automatiquement les cibles qui passent tous les filtres de cibles individuels.
    • Regroupe dynamiquement n'importe quel nombre de cibles entre -minimum du curseur de taille de groupe- et -maximum du curseur de taille de groupe-
  • Rejet des Valeurs Aberrantes

    • Bien que cet objectif soit plus difficile que les autres, il nous offre plus d'opportunités de filtrage. Conceptuellement, cet objectif est plus qu'une simple "tache verte". Puisque nous savons que l'objectif est composé de plusieurs cibles proches les unes des autres, nous pouvons rejeter les cibles aberrantes qui se trouvent isolées.
    • Vous devriez vous fier presque entièrement à un bon filtrage des cibles pour l'objectif de cette année, et n'utiliser le rejet des valeurs aberrantes que si vous voyez ou attendez des valeurs aberrantes parasites dans votre flux vidéo. Si vous avez un mauvais filtrage standard des cibles, la détection des valeurs aberrantes pourrait commencer à jouer contre vous !
  • Améliorations de l'Image Limelight 2022 Nous avons supprimé des centaines de parties mobiles de notre logiciel. Voici les résultats :

    • Taille de l'image compressée : 1,3 Go en 2020 → 76 Mo pour 2022 (Réduite d'un facteur 17 !)
    • Temps de téléchargement : dizaines de minutes en 2020 → secondes pour 2022
    • Temps de flash : 5+ minutes en 2020 → secondes pour 2022
    • Temps de démarrage : 35+ secondes en 2020 → 14 secondes pour 2022 (10 secondes jusqu'à l'allumage des LED)
  • Scripting Python Complet

    • Limelight a réussi à exposer un grand nombre d'étudiants à certaines des capacités de la vision par ordinateur en robotique. Avec le scripting Python, les équipes peuvent maintenant faire un pas de plus en écrivant leurs propres pipelines de traitement d'image.
  • Cette mise à jour est compatible avec tout le matériel Limelight, y compris Limelight 1.

  • Problèmes connus : L'utilisation du zoom matériel avec Python produira des résultats inattendus.

  • 2022.0.3 restaure le flux GRIP 5802 et résout les problèmes de démarrage sur certaines unités LL2 en revenant sur certaines des optimisations du temps de démarrage. Le temps de démarrage est augmenté à 16 secondes.