Journal des modifications et retours d'expérience
Soumettez vos problèmes et demandes de fonctionnalités par email ou sur le Dép ôt de retours Limelight
Limelight OS 2024.10.2 (28/10/24)
Correction du Snapscript Python (CRÉDIT - ÉQUIPE FTC 23251 TRIPLE FAULT)
- Les sorties Python ne se bloqueront plus lors de l'utilisation du Control Hub avec Limelight3A
- Les sorties Python ne se bloqueront plus lors du changement entre les pipelines python
Cas particulier 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 particulier ne remettait pas à zéro la position du robot mt2 - il remettait à zéro la position de la caméra.
- Le robot est maintenant placé à (0,0,0) chaque fois que ce cas particulier est détecté
Adressage IP Statique
https://github.com/LimelightVision/limelight-feedback/issues/25
- Ajout d'un avertissement lors du réglage de l'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 la version 2024.10.1, l'interface utilisateur 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 double, 12 éléments)
Cas particulier du téléchargement de modèle
- Si un modèle de classification est téléchargé dans un pipeline de détection, "vérifier le modèle" s'affichera sur l'image
- Si un modèle de détection est téléchargé dans un pipeline de classification, "vérifier le modèle" s'affichera sur l'image
Limelight OS 2024.10.1 (15/09/24)
Mises à jour Limelight 3A
- Mise à jour des valeurs par défaut de la balance des couleurs
- Mise à jour de la configuration par défaut de la taille des AprilTags à 101.6 mm
- Réduction de la fréquence d'images par défaut du flux vidéo à 30 FPS
- Légère augmentation de la compression du flux vidéo pour réduire le débit binaire
Avertissement de taille des AprilTags
- Ajout d'un avertissement dans le visualiseur d'espace de terrain si la taille configurée des AprilTags 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 utilisateur depuis NetworkTables/LimelightLib/REST fonctionne à nouveau correctement.
Limelight OS 2024.10 (9/4/24)
Support de Limelight 3A pour FTC
- Limelight3A est entièrement pris en charge
- Le 3A est utilisable à la fois en FTC et en FRC
Mises à jour des cartes AprilTag
- L'éditeur de carte prend désormais en charge la génération de cartes FTC standard et en diamant
- L'interface web LLOS affichera automatiquement le bon type de terrain en fonction de la carte téléchargée
- Tous les visualiseurs de terrain dans 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 les 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 USB Ethernet Limelight pour l'accès Internet
- Windows ne tente plus d'utiliser l'interface USB Ethernet 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 que la route update-robotorientation est utilisée, les mises à jour d'orientation NetworkTables sont désactivées jusqu'au redémarrage
Limelight OS 2024.9.1 (7/7/24)
- L'outil Map Builder accepte/convertit désormais les dispositions d'apriltags WPILib .json
- Ajout d'AprilTag3 aux Snapscripts Python (from apriltag import apriltag)
- Voir l'exemple dans le dépôt github examples
- Correction du problème de passerelle de connectivité USB sous Windows.
Limelight OS 2024.9 (7/5/24)
Améliorations de MegaTag
-
Limelight OS est passé à NetworkTables 4.0
-
MegaTag2 utilise maintenant getAtomic() de NT4 pour récupérer les mises à jour horodatées de l'IMU depuis le roboRIO.
-
Nos images horodatées sont associées aux deux échantillons IMU les plus pertinents avant que l'interpolation ne soit effectuée.
-
La fonction flush() de NT4 a été ajoutée à LimelightLib. L'ajout de Flush() aux anciennes versions de Limelight OS vous donnera des performances très proches de la version 2024.9, mais NT4 garantit une précision 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 repliables, 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'"USB ID" 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 désormais le sous-réseau 172.29.0.0/24 par défaut
- Les systèmes Windows utiliseront désormais 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 leurs ID USB
Classificateurs neuronaux CPU
- Téléchargez un classificateur .tflite CPU 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.
- Définissez l'environnement d'exécution du classificateur sur "CPU" pour activer cette fonctionnalité
Détecteurs neuronaux CPU
- Téléchargez un détecteur .tflite CPU 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.
- Définissez l'environnement d'exécution du détecteur sur "CPU" pour activer cette fonctionnalité
Limelight OS 2024.8 (7/3/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 du pipeline de vision
- Correction des téléchargements de calibration, des captures instantanées et des téléchargements nn
Limelight OS 2024.6 (5/8/24)
LimelightLib Python
- pip install limelightlib-python
- Notre bibliothèque Python vous permet d'interagir avec les Limelights USB et Ethernet sur toutes les plateformes.
- Elle permet une configuration complète de 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 "enregistrement sur disque"
- 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. D'autres améliorations arrivent bientôt !
- Ajout du curseur "Ajustement de latence du gyroscope" à 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 3D du terrain inclut maintenant les écarts-types MegaTag1 et Megatag2 pour x, y et lacet.
Nouveau Type de Pipeline "Focus"
- En mode "focus", vous aurez accès à un curseur de qualité de flux et un curseur de boîte 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 la mise au point avec un Limelight fixe/monté.
Nouveau Type de Pipeline "Codes-barres"
- Détection et décodage multi-QR Code à 50-60FPS en 1280x800
- Détection et décodage multi-DataMatrix à 50-60FPS en 1280x800
- UPC, EAN, Code128 et PDF417 multi à 30FPS en 1280x800
- Les chaînes de données des codes-barres sont publiées dans le tableau nt "rawbarcodes"
- Le pipeline Codes-barres remplira toutes les métriques 2D comme tx, ty, ta, tcornxy, etc.
API REST Entièrement Nouvelle
- https://docs.limelightvision.io/docs/docs-limelight/apis/rest-http-api
- Notre API REST / HTTP a été reconstruite de fond en comble
- L'API REST permet une configuration complète de 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 "enregistrement sur disque"
- 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)
- Il a été remplacé par l'option "orientation du flux". 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)
- Il 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 Pipeline Utilisent Maintenant le Format JSON (CHANGEMENT MAJEUR)
- Les pipelines utilisent toujours l'extension .vpr
- (Défectueux dans certains cas dans 2024.6) L'interface convertira automatiquement les pipelines en JSON lorsque vous utilisez le bouton "upload"
- (Entièrement fonctionnel) Vous pouvez aussi utiliser https://tools.limelightvision.io/pipeline-upgrade pour mettre à niveau vos pipelines
Amélioration de l'UX de 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 dispose maintenant d'un bouton "Télécharger la mosaïque de calibration". La mosaïque vous montrera exactement ce que chaque image contribue à votre calibration.
Région de Ciblage "Centroïde"
- 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 pipeline. C'est utile dans 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 dispose maintenant d'un serveur modbus toujours actif pour l'inspection, la logistique et les applications industrielles
- Consultez les spécifications des registres modbus ici : https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
- Le port serveur modbus par défaut peut être modifié dans l'onglet 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 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 fiduciaires bruts est maintenant une valeur calibrée et normalisée allant de ~0-1
Tous les Changements NetworkTables et JSON
-
Ajout NT getpipetype - Obtenir la chaîne du type de pipeline actuel (ex: pipe_color, pipe_fiducial)
-
Ajout NT tcclass - Nom de classe détectée par le pipeline de classification
-
Ajout NT tdclass - Nom de classe détectée par le pipeline de détection
-
Ajout NT t2d pour le ciblage 2d atomique garanti - [valid,targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]
-
Suppression NT tlong, tshort, thor, tvert, et ts
-
Ajout tableau NT 'crosshairs' [cx0,cy0,cx1,cy1]
-
Suppression NT cx0, cy0, cx1, et cy1
-
Ajout 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 (augmenté de 8)
-
Ajout fiducial_offset_set pour le réglage dynamique du décalage 3D
-
Ajout de "pType" au résultat de niveau supérieur json
-
Ajout de "stdev_mt1" et "stdev_mt2" au résultat de niveau supérieur json (x,y,z,roll,pitch,yaw) (mètres, degrés)
Changements aux Autres Formats de Fichiers et Dumps JSON
- Le format du fichier de calibration a été simplifié. Les anciennes calibrations sont automatiquement converties au nouveau format lors du téléchargement
- Une couche d'imbrication a été supprimée des dumps JSON Results et Status
Corrections de Bugs
- Auparavant, si un Google Coral était débranché pendant qu'un pipeline Neural était actif, le pipeline revenait définitivement au 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 fiduciaire é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 pleinement le curseur de zone min-max. Auparavant, les pipelines AprilTag filtraient les résultats 2D basés sur la zone de tag, mais pas les résultats 3D / de localisation.
Limelight OS 2024.5.0 (4/9/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 résoudre un problème de blocage des périphériques 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
- Cette opération n'a aucun impact sur les performances.
- 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 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 "rawdetections" nt
- [classID, txnc, tync, ta, corner0x, corner0y, corner1x, corner2y, corner3x, corner3y, corner4x, corner4y]
- les coins sont dans l'espace pixels sans calibration appliquée
Mise à jour Érosion/Dilatation
- Les pipelines de couleur prennent maintenant en charge jusqu'à 10 étapes de dilatation et 10 étapes d'érosion
- Les pipelines de couleur disposent maintenant d'une option "morpho inverse" 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 (4/3/24)
Merci à toutes les équipes qui ont contribué avec leurs idées pour cette mise à jour.
Megatag 2
Megatag 2 est un localisateur sans ambiguïté. Il offre une meilleure précision et exactitude que Megatag1, et a été conçu avec les exigences suivantes :
- Éliminer le problème d'ambiguïté de pose et augmenter la robustesse face au bruit d'image/coins.
- Fournir d'excellentes estimations de pose avec un ou plusieurs tags, quelle que soit la perspective.
- Augmenter la robustesse face aux imprécisions de placement physique des AprilTags
- Réduire la quantité de filtrage nécessaire côté robot pour obtenir 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 à tag unique :
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 endroit ou n'est pas pertinent, filtrez-le avec la nouvelle fonction de filtre dynamique.
Filtrage Dynamique des Apriltags
- Comme 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é, 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 distance, Megatag2 et Megatag1 devraient correspondre étroitement, voire exactement. À longue distance, Megatag 2 (robot rouge) devrait être plus précis et plus stable que Megatag1 (robot bleu).
Une fois que le visualiseur intégré montre 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 (4/3/24)
Ajout de
getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()
Limelight OS 2024.3.4 (20/03/24)
Merci à toutes les équipes qui ont contribué avec leurs idées pour cette mise à jour.
Solveur de Tag Unique à Haute Précision
Le solveur 3D de tag unique de MegaTag a été amélioré. Il est beaucoup plus stable qu'auparavant à longue distance.
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 et de manière générale pour les équipes utilisant des tableaux de bord à auto-souscription comme Shuffleboard.
- Cela devrait également réduire la charge NT et l'utilisation du CPU du RoboRIO.
- Réactivez JSON par pipeline dans l'onglet de sortie.
- Cette mise à jour inclut des changements qui devraient permettre à encore plus d'équipes de se passer de JSON pour l'estimation de pose.
Surface Non Déformée (Changement Majeur)
Les coins sont corrigés de la distorsion avant de calculer la surface de toute cible.
Inclusion des Métriques Par-Fiducial 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 à tag unique avec des ambiguïtés > 0,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 anciennes entrées NT rawtargets (tx0,ty0, etc) ont été supprimées.
Corrections de Bugs
- Remise à zéro de toutes les informations 3D de tag unique si le priorityID n'a pas été trouvé. Auparavant, seuls Tx, Ta, Ty et Tv étaient remis à zéro lorsque le priorityTag n'était pas trouvé
- Remise à zéro de botpose si le seul tag visible a été filtré par les fonctionnalités "ID Filters" de l'interface utilisateur. 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é
- La version 2024.2 publiait des NANs dans certaines entrées networktables dans de rares cas. Cela n'arrivera plus.
LimelightLib 1.4 (21/03/24)
- Ajout du support pour les Fiducials bruts 2024.3.4. Les PoseEstimates incluent désormais un tableau de rawFiducials qui contient id, txnc, tync, ta, distanceToCamera, distanceToRobot et ambiguity
Limelight Hardware Manager 1.4 (18/03/24)
Correction de bug
Les Limelights USB découverts sont maintenant correctement affichés comme une seule entrée plutôt que deux entrées partielles.
Limelight OS 2024.2.2 (17/03/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 d'intrinsèques personnalisée, vous observez probablement encore des variations entre les caméras car 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 qu'il corresponde au pixel principal, soit utiliser ces nouvelles métriques.
Changement potentiellement incompatible dans tx/ty
Un bug introduit plus tôt cette saison a perturbé la calibration personnalisée spécifiquement pour tx, ty, et tx + ty en 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 plantage causé par la présence de plus d'environ 30 images dans certaines circonstances.
Nous obtenons régulièrement 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 de l'interface utilisateur des filtres de balises fiduciaires
La zone de texte des filtres de balises accepte maintenant n'importe quel nombre de filtres.
Divers
Le générateur d'Apriltag est configuré par défaut sur "sans bordure" pour éviter la mise à l'échelle avec les balises de 165,1 mm.
Limelight OS 2024.1.1 (24/02/24)
- Correction du priorityID
Limelight OS 2024.1 (24/02/24)
Métriques Matérielles (clé hw dans networktables, requête GET /status)
- Les équipes ont maintenant la possibilité de journaliser les FPS, la charge CPU, l'utilisation de la RAM et la température du CPU.
- Résout https://github.com/LimelightVision/limelight-feedback/issues/5
Amélioration de la Calibration
- Correction d'un plantage qui pouvait survenir si une image de calibration contenait exactement une détection valide. Amélioration du retour d'information de l'interface web.
Amélioration de la Localisation du Robot (nombre de tags et plus)
-
Tous les tableaux networktables de botpose (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 du terrain téléchargée. Les AprilTags personnalisés et/ou mobiles n'affecteront pas ces métriques.
-
Avec la calibration du dispositif 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 d'expérience utilisateur suivant :
-
Avant cette mise à jour, il n'y avait aucun moyen de changer facilement l'ID de tag préféré pour le ciblage tx/ty.
-
Bien qu'il existe un filtre ID dans l'interface utilisateur, il
- n'est pas dynamique
- retire 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 toute détection, filtrage et tri des tags, concentre-toi sur le tag qui correspond à l'ID prioritaire."
-
Cela n'affecte en aucune façon la localisation, et ne modifie que légèrement l'ordre des tags dans les résultats JSON.
-
Si votre ID prioritaire n'est pas -1, tx/ty/ta retournera 0 sauf si le tag choisi est 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)
- Inclusion du surnom du dispositif dans le json /status
LimelightLib 1.3
- LimelightLib (Java et CPP) a é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
Limelight Retours et Suivi des Problèmes : 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 désormais le tout premier générateur d'AprilTag en ligne.
- Sélectionnez votre format de papier, la taille du marqueur et les ID des tags pour générer un PDF imprimable.
- Safari peut ne pas afficher correctement les tags pour le moment.
Limelight Map Builder
- https://tools.limelightvision.io/map-builder
- Vous pouvez maintenant créer des cartes AprilTag personnalisées avec une interface utilisateur intuitive.
- La famille par défaut et la taille des tags ont été mises à jour pour correspondre au terrain 2024.
Nouveau Gestionnaire de Matériel
- L'outil Finder est maintenant le Gestionnaire de Matériel Limelight
- Il a été entièrement réécrit. Il détecte désormais de manière fiable les Limelights, fournit des informations de diagnostic plus utiles et ne nécessite plus de redémarrage pour fonctionner correctement.
- Téléchargez-le maintenant depuis la page de téléchargements
Entraînez vos propres réseaux de neurones
- Vous pouvez entraîner vos propres modèles de détection gratuitement avec RoboFlow, le Carnet d'entraînement du détecteur Limelight, et notre nouveau tutoriel
2024 Détecteur de Notes et Carte AprilTag
- Le modèle de carte et de détection a été ajouté à la page de téléchargements et à la dernière image du système d'exploitation Limelight.
Limelight OS 2024.0 (6/2/24)
Corrections de la calibration ChArUco
- La précision sous-pixel de notre détecteur ChArUco a été améliorée. Une erreur de reprojection de 1-2 pixels est maintenant possible avec des cibles sur planchette et 20 images.
- En utilisant la même caméra et la même cible, la version 2023.6 obtenait une ERR de 20 pixels, et la version 2024.0 obtient une ERR de 1,14 pixels.
- Les champs de saisie n'acceptent plus les lettres et les caractères spéciaux. Cela élimine le risque de plantage.
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 faisait référence au curseur de taille de tag de l'interface utilisateur au lieu des tailles de tag fournies par le fichier .fmap.
- Megatag respecte désormais 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 des performances et corrections de bugs
- Pipelines AprilTag avec FPS plus élevé
- Les performances du visualiseur d'espace de terrain ont été considérablement améliorées.
Corrections de bugs
- Les Apriltags dans les visualiseurs 3D étaient parfois affiché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"