Journal des modifications logicielles et retours d'expérience
Soumettez les problèmes et les demandes de fonctionnalités par e-mail ou sur le Dépôt de retours Limelight
Limelight OS 2024.10 (9/4/24)
Support de Limelight 3A pour FTC
- Limelight3A est entièrement pris en charge
- 3A est utilisable à la fois en FTC et en FTC
Mises à jour de la carte 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 montrent 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 Ethernet USB Limelight pour l'accès Internet
- Windows ne tente 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 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 maintenant 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 des exemples
- Correction du problème de passerelle de connectivité USB sur 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.
-
NT4 flush() a été ajouté à LimelightLib. L'ajout de 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 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'"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 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 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.
- 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 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.
- 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éversements de calibration, des instantanés et des réseaux de neurones
Voici la traduction en français du document Docusaurus :
Limelight OS 2024.6 (8/5/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 changements en temps réel sur n'importe quel paramètre de pipeline avec une option "enregistrer sur le disque"
- Publiez des données d'entrée Python personnalisées, définissez l'orientation du robot, etc.
Améliorations de MegaTag2
- La compensation de latence du gyroscope MegaTag2 a été améliorée. Attendez-vous à d'autres améliorations prochainement !
- Ajout d'un curseur "Ajustement de la latence du gyroscope" à l'interface utilisateur. Pour régler manuellement la compensation de latence de 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 de 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 de faire la mise au point avec un Limelight fixe / monté.
Nouveau type de pipeline "Codes-barres"
- Détection et décodage de plusieurs codes QR à 50-60 FPS en 1280x800
- Détection et décodage de plusieurs DataMatrix à 50-60 FPS en 1280x800
- UPC, EAN, Code128 et PDF417 multiples à 30 FPS 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 telles que 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 changements en temps réel sur n'importe quel paramètre de pipeline avec une option "enregistrer sur le 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 utilisateur (CHANGEMENT IMPORTANT)
- Ceci 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 IMPORTANT)
Suppression du mode "Driver" sans traitement (CHANGEMENT IMPORTANT)
- 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 IMPORTANT)
- Les pipelines utilisent toujours l'extension de fichier .vpr
- (Défectueux dans certains cas dans 2024.6) L'interface utilisateur 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 de l'expérience utilisateur 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 apporte à 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. Ceci 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 les applications d'inspection, de logistique et industrielles
- Consultez les spécifications du registre modbus ici : https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
- Le port du serveur modbus par défaut peut être modifié dans l'onglet des paramètres de l'interface utilisateur
- Grâce à modbus et aux pipelines python snapscript, des applications de vision entièrement personnalisées avec une 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 de 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 de NT getpipetype - Obtenir la chaîne du type de pipeline actuel (par exemple pipe_color, pipe_fiducial)
-
Ajout de NT tcclass - Nom de la classe détectée par le pipeline de classification
-
Ajout de NT tdclass - Nom de la classe détectée par le pipeline de détection
-
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 des 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 définir dynamiquement le 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 dans les 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é alors 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 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 de caméra
- L'ensemble de la pile de caméra a été mis à jour pour résoudre un problème de blocage du périphérique de 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.
Mise à l'échelle dynamique
- Les équipes peuvent maintenant définir "fiducial_downscale_set" pour remplacer le paramètre de mise à l'échelle actuel du pipeline
- 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 surcoût.
- En combinant la mise à l'é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 de 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 dans l'espace pixel sans calibration appliquée
Mise à jour Éroder/Dilater
- Les pipelines de couleur prennent maintenant en charge jusqu'à 10 étapes de dilatation et 10 étapes d'érosion
- Les pipelines de couleur ont maintenant 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 des idées pour cette mise à jour.
Megatag 2
Megatag 2 est un localisateur sans ambiguïté. Il offre une précision et une exactitude supérieures à 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 de l'image/des 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 côté robot nécessaire 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 de tag unique très ambigu :
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 la tolérance de placement souhaitée. Si un tag n'est pas à l'emplacement correct ou n'est pas pertinent, filtrez-le avec la nouvelle fonctionnalité 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, sinon 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 (3/4/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 des idées pour cette mise à jour.
Solveur de tag unique à plus 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 à abonnement automatique 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.
Zone non distordue (Changement majeur)
Les coins sont non distordus avant de calculer la surface de toute cible.
Inclusion des métriques par fiducial dans botpose, botpose_wpiblue et botpose_wpired
[tx, ty, tz, roulis, tangage, lacet, nombreTags, étendueTag (mètres), distanceMoyenne (mètres), surfaceMoyenne (pourcentage de l'image), (tags)]
Pour chaque tag utilisé par la localisation megatag, les tableaux ci-dessus incluent maintenant (tagID, txnc, tync, ta, distanceÀLaCaméra, distanceAuRobot, ambiguïté)
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 de tag > 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, distanceÀLaCaméra, distanceAuRobot, ambiguïté) par cible
- Les précédentes 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 l'ID prioritaire n'a pas été trouvé. Auparavant, seuls Tx, Ta, Ty et Tv étaient remis à zéro lorsque le tag prioritaire n'était pas trouvé
- Remise à zéro de botpose si le seul tag visible a été filtré par les fonctionnalités "Filtres ID" 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 postait des NAN dans certaines entrées de networktables dans de rares cas. Cela n'arrivera plus.
LimelightLib 1.4 (21/03/24)
- Ajout du support pour les Fiduciaires Bruts 2024.3.4. Les PoseEstimates incluent maintenant un tableau de rawFiducials qui contiennent id, txnc, tync, ta, distanceToCamera, distanceToRobot, et ambiguity
Gestionnaire de matériel Limelight 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 d'une caméra à l'autre 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 cassé 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, quel que soit le nombre d'images capturées. Nous avons également corrigé un plantage causé par la présence de plus d'une trentaine d'images dans certaines circonstances.
Nous obtenons systématiquement 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 fiduciaires
La zone de texte des filtres de fiduciaires accepte maintenant n'importe quel nombre de filtres.
Divers
Le générateur d'Apriltag utilise par défaut "sans bordure" pour éviter le redimensionnement avec les tags de 165,1 mm.
Limelight OS 2024.1.1 (24/02/24)
- Correction de 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é d'enregistrer 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 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,latence,nombretags,étenduetagsm,distmoy,surfacemoy]
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 d'ID dans l'interface utilisateur, 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 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 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 des téléchargements d'étiquettes de réseau neuronal (/uploadlabels)
- Inclusion du surnom de l'appareil 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
Suivi des commentaires et 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 mesure de distance 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 récents contributeurs 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.
Constructeur de carte Limelight
- https://tools.limelightvision.io/map-builder
- Vous pouvez maintenant construire 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 de 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 dès 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 carte AprilTag et de notes
- Le modèle de carte et de détecteur 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 réalisable 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.