Aller au contenu principal

Journal des modifications logicielles 2021 - 2023

2023.6 (18/04/23)

Calibration ChArUco simplifiée et visualiseurs de calibration

  • La calibration ChArUco est considérée comme meilleure que la calibration par damier car elle gère les occlusions, les mauvaises détections de coins, et ne nécessite pas que la planche entière soit visible. Cela facilite grandement la capture des coins de la planche de calibration près des bords et des coins de vos images. C'est crucial pour l'estimation des coefficients de distorsion.
  • Le processus de calibration de Limelight fournit un retour à chaque étape et s'assurera que vous faites tout le nécessaire pour obtenir de bons résultats de calibration. Un effort considérable a été consacré à rendre ce processus aussi infaillible que possible.
  • Plus important encore, vous pouvez visualiser vos résultats de calibration juste à côté de la calibration par défaut. D'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 re-téléverser pour apprendre comment la matrice intrinsèque et les coefficients de distorsion affectent les résultats de ciblage, le FOV, etc.
  • Regardez cette vidéo :

2023.5.1 & 2023.5.2 (22/03/23)

  • Correction d'une régression introduite dans 2023.5.0 - Bien que 2023.5 ait corrigé 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 2023.4.

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

  • Le Yaw du 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 régression - Le "Yaw" de l'espace robot du Limelight était inversé dans les versions précédentes. Le yaw du Limelight dans l'interface web est maintenant positif dans le sens antihoraire 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 retournera une réponse JSON détaillant les informations sur les intrinsèques de la caméra et la distorsion

Correction MegaTag

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

Plus grande précision de tx et ty

  • TX et TY sont plus précis que jamais. Les cibles sont entièrement corrigées de la distorsion, et le FOV est déterminé uniquement par les 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 un filtrage facile des détections indésirables.

Support étendu du détecteur neuronal

Support de toute résolution d'entrée, support de formes de sortie supplémentaires pour prendre en charge d'autres architectures de détection d'objets. Les modèles basés sur EfficientDet0 sont maintenant supportés.


2023.3.1 (14/02/23)

Améliorations de la précision AprilTag

Matrice intrinsèque améliorée et, plus important encore, coefficients de distorsion améliorés pour tous les modèles. Améliorations notables de la localisation AprilTag unique.

Téléversement de détecteur

Téléversement de détecteur corrigé.


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 rangée centrale du capteur d'image du 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 avec le nouveau curseur de seuil de qualité. La valeur par défaut définie dans 2023.3 devrait supprimer 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 maximum est maintenant de 33ms (contre 12,5 ms auparavant). Les modes de capture à haute fréquence 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 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 de camMode - le mode conducteur produit maintenant des images lumineuses et utilisables.
  • L'étiquette d'exposition a été corrigée - chaque "tick" représente 0,01ms et non 0,1 ms
  • Correction du téléversement 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 directement.

Ceux-ci correspondent aux systèmes de coordonnées WPILib. exemple botpose megatag :

Tous les botposes sont affichés directement dans le visualiseur d'espace de terrain dans l'interface web, ce qui permet de confirmer facilement d'un coup d'œil que tout fonctionne correctement.

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

RobotPose dans TargetSpace est sans doute la donnée la plus utile provenant du Limelight en ce qui concerne les AprilTags. En utilisant cela seul, vous pouvez parfaitement aligner un châssis avec un AprilTag sur le terrain.

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

Téléversement de réseau neuronal

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


2023.1 (19/01/23)

MegaTag et améliorations de performance

Correction d'une erreur

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

Stabilité de suivi accrue

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

Conversion en niveaux de gris ultra rapide

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

Recadrage pour la performance

Les pipelines AprilTag ont maintenant des curseurs de recadrage. Recadrer votre image entraînera des fréquences d'images améliorées à n'importe quelle résolution.

Filtrage plus facile

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

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 affiche maintenant le terrain FRC 2023. Il devrait maintenant être plus facile de juger la précision de botpose d'un coup d'œil.

Limelight MegaTag (nouveau botpose)

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

Le GIF suivant montre une situation conçue pour induire un retournement de tag : Cylindre vert : Pose bot individuelle par tag Cylindre bleu : BotPose 2023.0.1 Cylindre blanc : Nouveau Botpose MegaTag

Remarquez comment 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é du tag :

Voici les avantages :

Botpose est maintenant résilient 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ésilient au bruit dans les coins des tags si plus d'un tag est visible. Plus les tags sont éloignés les uns des autres, mieux c'est. Cela n'est pas limité aux tags planaires. Cela s'adapte à n'importe quel nombre de tags en 3D complet et dans n'importe quelle orientation. Les tags au sol et au plafond fonctionneraient parfaitement.

Voici un diagramme démontrant un aspect de comment cela fonctionne avec 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éversement de réseau neuronal est reporté à 2023.2 !


2023.0.0 et 2023.0.1 (11/01/23)

Présentation des AprilTags, de la localisation de robot, des réseaux neuronaux profonds, d'une interface de capture 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 100x plus courts qu'en 2022. Le nouveau pipeline permet é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 du Limelight était non déterministe (nous avons implémenté quelques astuces pour le faire fonctionner quand même).
    • Avec le nouveau curseur "Gain du capteur", les équipes peuvent maintenant rendre les images plus sombres ou plus lumineuses que jamais sans toucher au curseur d'exposition. Augmenter le 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 LEDs à pleine luminosité et des cibles rétroréfléchissantes. Cela aidera à atténuer les réflexions des LEDs 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 du flou de mouvement dû 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 graphique web se chargera et s'initialisera maintenant jusqu'à 3x plus vite sur les réseaux de robots.
  • Interface de captures réécrite
    • La fonctionnalité de captures a été complètement réécrite pour permettre le téléversement d'images, le téléchargement d'images et la suppression d'images. Il y a également de nouvelles APIs pour capturer des captures détaillées dans la documentation.
  • Améliorations de SolvePnP
    • Notre fonctionnalité de localisation de caméra basée sur solvePnP avait un bug désagréable qui limitait sérieusement sa précision toutes les quatre images. Cela a été corrigé, 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 la rupture permanente de l'interface web lors du premier démarrage après le flashage, ce qui forçait l'utilisateur à re-flasher. La cause racine a été trouvée et corrigée définitivement.
  • Nouvelles APIs
    • Limelight inclut maintenant des APIs REST et Websocket. Les APIs REST, Websocket et NetworkTables supportent toutes la nouvelle fonctionnalité 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 supporté par tous les modèles Limelight. Google Coral est un accélérateur matériel USB de 4TOPs (Trillions d'opérations / seconde) qui est spécialement conçu pour l'inférence sur les réseaux neuronaux 8 bits.
  • Tout comme le ciblage 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 tente même l'expérience. 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 jeux de données et une équipe d'étiquetage humain prêts à fonctionner. Nous sommes ravis d'apporter les réseaux neuronaux profonds à la communauté FRC pour la première fois.
  • Nous supportons actuellement 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 "IDs de classe" et des boîtes englobantes (tout 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 tout premier modèle de détection d'objets FRC en soumettant des images ici : https://datasets.limelightvision.io/frc2023
      • Utilisez les clés networktables tx, ty, ta et tclass ou le dump JSON pour utiliser les réseaux de détection
    • Les modèles de classification d'images ingèrent une image et produisent 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 éléments du terrain, et bien plus encore.
      • Utilisez la clé networktables tclass pour utiliser ces modèles.
  • Limelight OS 2023.0 ne fournit pas la possibilité de téléverser des modèles personnalisés. Cela sera activé prochainement dans 2023.1

Support AprilTag sans code

  • Les AprilTags sont aussi faciles que les cibles rétroréfléchissantes avec Limelight. Parce qu'ils ont un filtre dur naturel sous forme d'ID, il y a encore moins de raison de faire du filtrage lié à la vision sur votre roboRIO.
  • 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 les groupes de cibles, etc.
  • Parce que les AprilTags sont toujours carrés et toujours identifiables de manière unique, ils fournissent la plateforme parfaite pour les calculs de pose 3D complète.
  • 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 carte de terrain et le document sur le système de coordonnées pour des informations plus 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>
  • AprilTags 3D avec point d'intérêt
    • Utilisez les clés networktables tx et ty, ta et tid. Le décalage du point d'intérêt est tout ce dont la plupart des équipes auront besoin pour suivre des cibles qui n'ont pas directement d'AprilTags attachés.
    • <gif>
  • 3D complète
    • Suivez votre LL, votre robot ou les tags en 3D complète. Utilisez campose ou json pour extraire les données pertinentes vers votre roboRio.
    • <gif>
  • Localisation du robot dans l'espace du terrain
    • Indiquez à votre Limelight comment il est monté, téléversez une carte de 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 de terrain place (0,0) au centre du terrain au lieu d'un coin.
    • Utilisez la clé networktables botpose pour cette fonctionnalité.
    • <gif>

2022.3.0 (13/04/22)

Corrections de bugs et heartbeat.

Corrections de bugs

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

Fonctionnalités et changements

  • Clé NetworkTable "hb" Heartbeat
    • La valeur "hb" s'incrémente une fois par image 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é networktables "stream" et des modes Picture-In-Picture
  • Correction de la clé networktables "snapshot". 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 changements

  • Filtrage de recadrage manuel
    • En utilisant le tableau networktables "crop", les équipes peuvent maintenant contrôler les rectangles de recadrage depuis le code 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 networktable "crop" 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 du blocage / perte de connexion / perte de ciblage liés aux interfaces web ouvertes, FMS, configurations similaires au FMS, appareils de visualisation multiples, etc.

Fonctionnalités et changements

  • Filtrage par recadrage

    • Ignorez 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 grande majorité des pixels dans des pipelines spécifiques. Cette fonctionnalité devrait aider les équipes à réduire la probabilité de suivre des non-cibles.
    • Si vous suivez des cargos, utilisez cette fonctionnalité pour rechercher des cargos uniquement dans une partie spécifique de l'image. Envisagez d'ignorer les pare-chocs de votre équipe, les cibles éloignées, etc.
  • La fonctionnalité de coins est maintenant compatible avec le regroupement intelligent de cibles

    • Celle-ci est pour les équipes qui veulent faire de la vision personnalisée plus avancée sur le RIO
    • La limite de coins "tcornxy" augmentée à 64 coins
    • Les fonctionnalités de simplification de contour et de forçage convexe fonctionnent maintenant correctement avec le regroupement intelligent de cibles et l'envoi de coins
  • Maximum du filtre IQR 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 seules différences de démarrage restantes 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 fonctionnalité d'inversion de teinte est une fonctionnalité critique si vous souhaitez suivre des objets rouges, car le rouge se trouve à la fois au début et à la fin de la plage de teinte :
  • Nouvelles bibliothèques Python

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

2022.0 et 2022.0.3 (15/01/22)

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

Fonctionnalités

  • Regroupement intelligent des cibles

    • Regroupe automatiquement les cibles qui passent tous les filtres de cibles individuels.
    • Regroupera 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 d'autres objectifs, il nous offre plus d'opportunités de filtrage. Conceptuellement, cet objectif est plus qu'une "tache verte." Puisque nous savons que l'objectif est composé de plusieurs cibles proches les unes des autres, nous pouvons en fait rejeter les cibles aberrantes qui sont 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 aberrations parasites dans votre flux caméra. 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 composants mobiles de notre logiciel. Voici les résultats :

    • Taille de l'image compressée : 1,3 Go en 2020 → 76 Mo pour 2022 (Réduit d'un facteur de 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 LEDs)
  • 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 franchir une nouvelle étape 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 annulant certaines des optimisations du temps de démarrage. Le temps de démarrage est augmenté à 16 secondes.