Aller au contenu principal

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.

capture d'écran de mosaïque:

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.

capture d'écran de la mosaïque :

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)

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 capture d'écran du notebook:

Entraînez vos propres réseaux de neurones

capture d'écran du carnet:

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.

Amélioration de la précision des Megatags 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 tags fournies par le fichier .fmap.
  • Megatag respecte maintenant les tailles de tags 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 dessinés avec des images de tags 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".

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 toute la planche 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 ce qui est nécessaire pour obtenir de bons résultats de calibration. Beaucoup d'efforts ont été déployés pour 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 un outil d'apprentissage. Vous pouvez modifier les fichiers de résultats de calibration téléchargés et les télécharger à nouveau pour apprendre comment la matrice des paramètres intrinsèques et les coefficients de distorsion affectent les résultats de ciblage, le champ de vision, etc.
  • Jetez un œil à cette vidéo :

2023.5.1 & 2023.5.2 (22/03/23)

  • Correction d'une 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 vignettes 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 d'une régression - Le "Yaw" en espace robot de Limelight était inversé dans les versions précédentes. Le yaw de 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 renverra une réponse JSON détaillant les informations sur les paramètres intrinsèques et la distorsion de la caméra.

Correction MegaTag

  • Certaines dispositions d'apriltags non coplanaires étaient défectueuses dans MegaTag. Cela a été corrigé, et l'estimation de pose est maintenant stable avec tous les tags de 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 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 pour le 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

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 d'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 d'un seul AprilTag.

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 rangée centrale 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 la caméra dans l'espace du robot (Clés NT : "camerapose_robotspace_set", "camerapose_robotspace")

La position de votre Limelight dans l'espace du 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 33 ms (contre 12,5 ms auparavant). Les modes de capture à haute fréquence d'images sont toujours limités à (1/fps) secondes. Les pipelines à 90 Hz, par exemple, n'auront pas d'images plus lumineuses au-delà de 11 ms 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
  • L'étiquette d'exposition a été corrigée - chaque "coche" représente 0,01 ms 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 avec WPILib

Botpose est maintenant encore plus facile à utiliser dès la sortie de la boîte.

Celles-ci 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, ce qui permet de confirmer d'un coup d'œil que tout fonctionne correctement.

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

RobotPose dans TargetSpace est sans doute la donnée la plus utile provenant de Limelight en ce qui concerne les AprilTags. En utilisant uniquement cela, vous pouvez parfaitement aligner un groupe motopropulseur 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échargement de réseau neuronal

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


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 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 l'ensemble, en particulier 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 les performances

Les pipelines AprilTag disposent maintenant de curseurs de recadrage. Le recadrage de votre image entraînera une amélioration des fréquences d'images à n'importe quelle résolution.

Filtrage plus facile

Il y a maintenant un seul champ "filtre 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 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 de botpose d'un coup d'œil.

Limelight MegaTag (nouveau botpose)

Ma priorité numéro 1 a été de réécrire botpose pour une plus grande précision, une réduction du bruit 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 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 du robot individuelle par tag Cylindre bleu : BotPose 2023.0.1 Cylindre blanc : Nouveau BotPose MegaTag

Remarquez à quel point 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 des tags) 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, mieux 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 avec un cas planaire simple. Les résultats sont en réalité 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 ! Voici la traduction en français du document Docusaurus :

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 de gain
    • Notre nouveau pipeline de capture permet des temps d'exposition 100 fois 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 de 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 graphique 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'écrans détaillées dans la documentation.
  • Améliorations de SolvePnP
    • Notre fonction de localisation de caméra basée sur solvePnP avait un vilain bug qui limitait sérieusement sa précision toutes 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 la rupture 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 de 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 (Trillions 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 (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 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 classer 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 fournit pas la possibilité de télécharger des modèles personnalisés. Cela sera activé prochainement dans la version 2023.1

Support des AprilTags sans code

  • Les AprilTags sont aussi faciles à utiliser que les cibles rétroréfléchissantes avec Limelight. Parce qu'ils ont un filtre dur naturel sous la forme d'un ID, il y a encore moins de raison pour que votre roboRIO effectue un filtrage lié à la vision.
  • Pour commencer, utilisez tx, ty et ta comme d'habitude. Aucun changement de code n'est nécessaire. Triez par n'importe quelle caractéristique de cible, utilisez des 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 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>
  • AprilTags 3D avec point d'intérêt
    • 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échargez une carte du terrain, et votre LL fournira la pose du terrain de votre robot à utiliser 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 battement de cœur.

Corrections de bugs

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

Fonctionnalités et changements

  • Clé NetworkTable "hb" pour le battement de cœur
    • La valeur "hb" s'incrémente une fois par image traitée 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 changements

  • Filtrage manuel du recadrage
    • En utilisant le tableau "crop" de NetworkTables, les équipes peuvent désormais 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, largement 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 l'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, multiples appareils de visualisation, etc.

Fonctionnalités et Changements

  • Filtrage par recadrage

    • Ignore tous les pixels en dehors d'un rectangle de recadrage spécifié
    • Si votre volant d'inertie a des points forts 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 cargaisons, utilisez cette fonctionnalité pour rechercher des cargaisons 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é des coins est maintenant compatible avec le regroupement intelligent des 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 des contours et de force convexe fonctionnent maintenant correctement avec le regroupement intelligent des cibles et l'envoi des coins
  • La valeur maximale du filtre IQR augmentée à 3.0

  • Taux de mise à jour des cibles en direct de l'interface web réduit de 30 fps à 15 fps 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 CPU 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 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 importante. Voici les quatre principaux changements :

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 les autres, il nous offre plus d'opportunités de filtrage. Conceptuellement, cet objectif est plus qu'un "blob vert". 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 se tiennent seules.
    • 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 pièces 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 : 10aines 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.


2020.4 (11/03/20)

2020.4 est une autre mise à jour critique qui élimine le plantage intermittent de 2 à 4 secondes qui pouvait se produire lors d'une déconnexion brusque du flux mjpeg. Cela se produisait souvent à la toute fin du match, et dans certains cas, cela pouvait arriver pendant les matchs.


2020.3 (25/02/20)

2020.3 est une mise à jour critique qui résout les redémarrages logiciels intermittents liés au réseau et corrige un plantage qui se produisait lors de la déconnexion d'une caméra USB.


2020.2 (30/01/20)

2020.2 pousse le matériel de Limelight encore plus loin en ajoutant la capacité de panoramique et de zoom vers n'importe quel point. Il ajoute également un tout nouveau mode vidéo et des corrections de bugs importantes. Faites-nous savoir quelles fonctionnalités vous aimeriez voir dans les futures mises à jour !

Fonctionnalités

  • Zoom matériel 3x à 60 FPS

    • Notre dernière mise à jour a ajouté un zoom matériel 2x pour tous les modèles Limelight sans aucun coût supplémentaire. Nous avons réussi à pousser notre zoom matériel encore plus loin avec un zoom matériel 3x. Tous les modèles Limelight sont maintenant capables d'un zoom matériel 3x à 60fps. Cela rend le suivi sur tout le terrain encore plus facile pour chaque équipe.
  • Panoramique matériel

    • Les robots capables de tirer à la fois à longue et courte distance en 2020 auraient trouvé difficile d'utiliser le zoom matériel sur leurs Limelights sans l'utilisation d'un support Limelight actif et ajustable. Nous avons intégré le panoramique matériel pour résoudre ce problème.

Corrections de bugs

  • Résolution des problèmes de pilotes qui perturbaient les curseurs d'équilibrage des couleurs
  • Retour à toutes les variantes de pilotes liés au réseau de la saison 2019 pour répondre à un petit nombre de rapports de performance réseau des équipes

2020.1 (16/01/20)

2020.1 ajoute l'une des fonctionnalités les plus cool de Limelight à ce jour : le zoom matériel 2x. Il ne s'agit pas d'un zoom numérique, et cette fonction est désormais activée pour toutes les versions de Limelight.

Fonctionnalités

  • Zoom matériel 2x

    • Pas un zoom numérique
    • Activez le zoom matériel 2x pour obtenir un suivi considérablement amélioré à longue distance, et un suivi stable sur toute la longueur du terrain.
    • Cette fonctionnalité n'entraîne absolument aucun coût en termes de latence ou de fréquence d'images - le suivi continue de s'exécuter à 90 fps sans surcharge supplémentaire.
  • Réticules manuels

    • Ajustez manuellement les emplacements des réticules simples et doubles à l'aide de curseurs dans l'interface web
  • Nouvelles fonctionnalités SolvePNP / 3D (Toujours expérimentales)

    • Nous avons ajouté l'option "Force Convex" pour n'utiliser que les points les plus extérieurs d'une cible - ceci est nécessaire en 2020 en raison du ruban fin utilisé pour la cible hexagonale.
    • L'option "bind target" a été ajoutée. Cette fonctionnalité lie "tx" et "ty" à la cible 3D. Cela est nécessaire pour guider les robots vers le score en utilisant des cibles 3D.
    • Enfin, ajoutez l'option "Goal Z-Offset" pour décaler automatiquement l'emplacement de la cible souhaitée dans l'espace 3D sur l'axe Z.
    • Dans Infinite Recharge, le "Goal Z-Offset" serait utilisé pour suivre le centre du petit but circulaire derrière le but hexagonal.
  • Détection de couleur avec "tc"

    • Lisez le nouveau tableau "tc" dans Network Tables pour obtenir les valeurs Rouge, Vert et Bleu à l'emplacement du réticule. Ajustez "Blue Balance" et "Red Balance" dans l'onglet d'entrée pour obtenir une détection parfaite des couleurs.

Corrections de bugs

  • La fonctionnalité de caméra USB cassée dans 2020.0 est maintenant corrigée dans 2020.1
  • La fonctionnalité SolvePnP cassée dans 2020.0 est maintenant corrigée dans 2020.1
  • SolvePnP utilise correctement le centre du modèle comme centre de visualisation de l'axe

2019.7 (4/5/19)

2019.7 ajoute deux nouvelles fonctionnalités.

Fonctionnalités

  • Streaming 160x120 à 30 fps
    • Streaming plus fluide et à bande passante réduite pour les équipes utilisant des caméras USB grand angle. La bande passante de notre flux de caméra à 180 degrés est passée d'environ 3,7 Mbps à environ 1,8 Mbps.
    • Modifiez la résolution du flux dans l'onglet des paramètres.
    • Changement de la résolution du flux sur un Limelight avec une caméra USB grand angle connectée. Pas d'incrustation d'image (Picture-in-Picture) et débit de flux normal.
  • Rejet intelligent des taches (Smart Speckle Rejection)
    • Les équipes qui ont monté leurs caméras en ligne avec la cible cette année ont dû faire face à des réflexions LED indésirables.
    • Le curseur de zone ne résout pas toujours ce problème, car les équipes veulent suivre de petites cibles de vision à grandes distances.
    • Cette nouvelle fonctionnalité rejettera automatiquement les contours relativement petits qui ont passé tous les autres filtres.
    • Lorsqu'un robot s'éloigne d'une cible de vision (diminuant sa taille), le SSR s'ajustera automatiquement pour ne rejeter que les contours relativement petits.

Changements

  • Infobulles
    • Des infobulles sont désormais disponibles sur certains contrôles Limelight

2019.6.1 Correctif (14/03/19)

2019.6.1 corrige les téléchargements Grip.


2019.6 (12/03/19)

2019.6 est entièrement axé sur la fiabilité.

Corrections de bugs

  • Caméras USB
    • Résolution d'un problème qui pouvait causer l'échec de certaines caméras USB au démarrage.
  • FMS
    • Rendre Limelight plus résistant (sinon complètement) aux redémarrages FMS et aux changements de réseau sur le terrain / ordinateur portable.
    • Limelight ne se bloquera plus après un changement soudain de réseau client.
  • Tri des contours bruts (CHANGEMENT IMPORTANT)
    • Les filtres d'intersection n'affectent plus le tri des contours bruts.
  • Auto-publication Smartdashboard
    • LL publie automatiquement certaines informations sur SmartDashboard (adresse IP, URL de l'interface, etc.). Les noms de ces valeurs contiennent maintenant le nom d'hôte.

Fonctionnalités et changements

  • Augmentation significative de la précision et de la stabilité de la fonction compute3d. Les mesures de translation et de rotation sont stables à de plus grandes distances.
  • Le décalage maximal du niveau de noir est augmenté à 40 (au lieu de 25) pour des images encore plus sombres.
  • Nouvelles options de tri "Plus proche" dans l'onglet "Sortie" lorsque le mode "Double réticule" est activé.
    • Standard - Implémentation actuelle du tri "plus proche" avec le mode "Double réticule".
    • Standard V2 - Implémentation expérimentale et intelligente du tri "plus proche" avec le mode "Double réticule".
    • Moyenne des réticules - L'origine du tri "plus proche" avec le mode "Double réticule" est la moyenne des deux réticules.
    • Réticule A - L'origine du tri "plus proche" avec le mode "Double réticule" est le réticule A.
    • Réticule B - L'origine du tri "plus proche" avec le mode "Double réticule" est le réticule B.
  • Nouvelles options de pipeline "Mode LED" : "Moitié gauche", "Moitié droite"
  • Valeurs des coins bruts à virgule flottante lorsque compute3D est activé.
  • Masquage des décorations d'image lors de l'utilisation des baguettes magiques
  • Flux plus grand dans l'interface web

2019.5 (9/2/19)

Avec la version 2019.5, nous introduisons la toute nouvelle fonctionnalité de localisation de caméra compute3D. Seules quelques équipes ont déjà tenté d'ajouter cette fonctionnalité à leurs systèmes de vision, et maintenant elle est disponible pour tous les utilisateurs de Limelight 1 et Limelight 2.

Ce n'est pas une solution miracle pour le jeu de cette année. Nous recommandons vivement de réfléchir à des façons créatives d'utiliser le suivi standard à haute vitesse de 90 fps, sauf si cette fonctionnalité est absolument nécessaire.

Fonctionnalités

  • Mode Haute Précision et PnP
    • Dans le gif suivant, un Limelight 2 a été placé à 37 pouces derrière et 14,5 pouces à droite de la cible.
    • Le Limelight a ensuite été tourné à la main. Remarquez comment les distances restent globalement inchangées.
    • Avec la version 2019.4, nous avons introduit l'envoi des coins. Cela permettait aux équipes avancées d'écrire leurs propres algorithmes en utilisant solvePNP() d'OpenCV. Avec la version 2019.5, tout cela est fait à bord.
    • Téléchargez un fichier csv en texte brut avec un modèle de votre cible. Nous avons des modèles pré-construits des cibles 2019 hébergés sur notre site web. Tous les modèles doivent avoir une origine centrée et utiliser un ordre de points dans le sens inverse des aiguilles d'une montre avec une échelle en pouces.
    • Activez le nouveau mode haute résolution 960x720, puis activez "Solve 3D" pour acquérir la position et la rotation de votre Limelight par rapport à votre cible.
    • Les numéros des coins sont maintenant affichés sur l'image pour faciliter la création de modèles et l'ajustement des seuils.
    • Lisez les 6 dimensions de la transformation de votre caméra (x,y,z,pitch,yaw,roll) en lisant le tableau de nombres "camtran" dans la networktable.
  • Niveau de Noir
    • Avec le nouveau curseur de niveau de noir, le seuillage est encore plus facile. Augmentez le décalage du niveau de noir pour assombrir davantage vos images.

Changements Importants

  • Le champ de vision vertical rapporté pour LL2 a été corrigé pour correspondre à la valeur indiquée de 49,7 degrés. Cela changera vos valeurs "ty"

Corrections de Bugs

  • Correction d'un plantage en mode stream uniquement qui pouvait se produire lorsque des caméras USB fisheye étaient connectées.
  • Correction d'un blocage rare causé par un pilote lié au réseau.
  • L'approximation des coins est maintenant toujours active.

2019.4 (26/01/19)

Nous pensons que tous les rapports de bugs critiques sont couverts avec cette version.

Fonctionnalités

  • Coins
    • Envoyez les coins de votre cible sous forme de deux tableaux (tcornx, tcorny) *MAINTENANT tcornxy en activant "envoyer les coins" dans l'onglet "Sortie". Cela permettra aux équipes intéressées par des pipelines avancés avec des méthodes comme solvePNP().
    • Ajustez l'approximation des coins avec le curseur "approximation des coins" dans l'onglet "Sortie".

Corrections de bugs

  • Correction d'un blocage + rare plantage qui se produisait lorsque deux cibles avaient exactement la même surface, coordonnée x ou coordonnée y.
  • Correction du calcul de la surface dans les modes double et triple cibles.
  • Optimisation du tri des contours pour de meilleures performances.

2019.3 (19/01/19)

2019.3 corrige plusieurs bugs et répond à des demandes de fonctionnalités.

Fonctionnalités

  • Débit de flux (réduction de la bande passante)
    • Définissez le débit de flux sur "faible" dans la page des paramètres pour obtenir un flux vidéo à 15 fps à bande passante réduite.
  • Contours bruts désactivés dans NetworkTables (réduction de la bande passante)
    • Les contours bruts sont maintenant désactivés par défaut. Cela réduira davantage la bande passante globale de Limelight.
    • Il y a maintenant environ 180 entrées NetworkTables de moins soumises par seconde par défaut.
    • Voir la nouvelle option de pipeline "Contours bruts" dans l'onglet "Sortie" pour réactiver les contours bruts.
  • Index de pipeline actif
    • Lisez la clé NetworkTables "getpipe" pour obtenir le véritable index de pipeline actif de la caméra. Ceci est mis à jour à 90 Hz.
    • L'index de pipeline actif est maintenant écrit sur le flux vidéo sous l'affichage FPS.
  • Filtres d'intersection gauche et droite
    • Les équipes peuvent maintenant choisir entre les filtres d'intersection de double contour "gauche" et "droite". Les filtres d'intersection "au-dessus" et "en-dessous" ont été ajoutés dans la version 2019.2.

Corrections de bugs

  • Correction du bug de streaming du tableau de bord LabView introduit dans la version 2019.2
  • La page web ne demande plus de polices d'icônes sur Internet. Toutes les polices sont stockées localement. Cela devrait accélérer le chargement de l'interface.
  • Réduction de l'exposition en "mode pilote".
  • Correction de l'implémentation GRIP de "Distance Transform"
  • Correction des délais de communication de 20 secondes causés par le changement du nom d'hôte.

2019.2 (7/1/19)

2019.2 ajoute de nouvelles fonctionnalités pour mieux équiper les équipes pour la saison 2019.

  • Filtre d'intersection
  • Filtre de direction

Changements et corrections supplémentaires

  • L'adresse IP est automatiquement publiée sur SmartDashboard/Shuffleboard pour faciliter le dépannage lors des événements. Nous n'avons presque pas eu de signalements de problèmes à ce sujet, mais cela sert de fonctionnalité de contingence supplémentaire.
  • Le nom du pipeline est automatiquement publié sur SmartDashboard/Shuffleboard
  • Accédez à la largeur et à la hauteur de la boîte englobante approximative en pixels avec de nouvelles clés networktables.
  • Accédez au côté le plus long et au côté le plus court de la boîte englobante parfaite en pixels avec de nouvelles clés networktables.
  • Le "Mode de tri" s'applique désormais aux contours doubles
  • Le "Mode de tri" est maintenant corrigé
  • Le flux 5802 est moins exigeant pour la caméra

2019.1 (18/12/18)

2019.1 corrige tous les bugs majeurs signalés pendant la version bêta

  • Les performances sont de retour à un niveau stable de 90 fps. Un problème de pilote était la cause principale de nos problèmes de performance pendant la bêta
  • Les paramètres IP et de nom d'hôte s'appliquent réellement et "persistent"
  • Les Baguettes Magiques ont été réorganisées pour correspondre à celles du logiciel Limelight 2018
  • Nous prenons maintenant en charge les entrées Grip comme les masques via l'interface web
  • Le gel de NetworkTables a été corrigé

2019.0 (10/12/18)

Avec la version 2019, nous introduisons le support GRIP, une toute nouvelle interface et une procédure de flashage plus simple.

  • Support GRIP

    • Construisez des pipelines avec GRIP pour Limelight, et exportez des fichiers "LL Script" à télécharger sur votre caméra.
    • Le support des masques et de NetworkTables sera ajouté dans une future mise à jour
    • Exposez un flux vidéo brut à http://limelighturl:5802 pour les tests dans GRIP
  • Nouvelle interface web

    • Contrôles plus petits
    • Plus d'infobulles
    • Ajout de la possibilité d'éteindre les LEDs depuis l'interface
    • Déplacement de la liste déroulante d'affichage sous le flux pour faciliter le changement d'affichage
    • Communication plus rapide avec Limelight. La nouvelle technologie web nous a permis de simplifier d'autres parties de notre code.
  • Flashage

    • Nous avons migré vers "Balena Etcher"
    • Etcher est deux fois plus rapide et fonctionne sur toutes les plateformes
    • Les pop-ups de flashage sont corrigés avec cette migration.
  • Autres

    • Le mode LED a été modifié pour permettre des modes LED spécifiques à chaque pipeline
    • Temps de démarrage plus rapides en mode d'attribution automatique d'IP
    • Optimisations et corrections de bugs mineurs

2018.5 (28/03/18)

2018.5 corrige un problème critique qui empêchait les utilisateurs d'ajuster les pipelines sur les instantanés.


2018.4 (19/03/18)

2018.4 ajoute de nouvelles options de tri des contours. Celles-ci sont assez importantes pour le suivi des cubes cette année, car les équipes ne veulent pas nécessairement suivre le plus grand cube visible. Dans de nombreux cas, les équipes souhaitent suivre le cube le plus proche de leurs systèmes de prise. De nombreux utilisateurs ont dû utiliser la fonctionnalité des contours bruts pour implémenter leur propre tri, nous voulons donc rendre cela aussi facile que possible.

Fonctionnalités

  • Mode de tri des contours
    • Sélectionnez entre les options de tri "le plus grand", "le plus petit", "le plus haut", "le plus bas", "le plus à gauche", "le plus à droite" et "le plus proche".
    • Nous pensons que de nombreuses équipes utiliseront l'option "le plus proche" pour le suivi des cubes.

2018.3 (28/02/18)

2018.3 corrige un bug majeur de reconnexion des NetworkTables qui empêchait les changements de paramètres NetworkTables de se propager à Limelight. Merci à Peter Johnson et à l'équipe WPILib d'avoir identifié et corrigé le bug NT sous-jacent. C'était (à notre connaissance) le dernier bug de haute priorité affectant Limelight.

Les changements de paramètres tels que ledMode, pipeline et camMode devraient toujours s'appliquer à Limelight. Vous ne devriez plus avoir besoin de solutions de contournement pour modifier les paramètres de Limelight lors du débogage, après le redémarrage du code du robot et après le redémarrage du roborio.

Changements

  • Correction d'un problème majeur de synchronisation NT qui empêchait les changements de paramètres (ledMode, pipeline et camMode) pendant le débogage LabView, et après une réinitialisation/redémarrage du roborio.
  • Outil pipette :
    • L'outil pipette utilise toujours une fenêtre de 10 unités pour la teinte, mais utilise maintenant une fenêtre de 30 unités pour la saturation et la valeur. Cela signifie que le seuillage est plus souvent une opération en un clic, plutôt qu'un processus en plusieurs étapes.
  • Instantanés
    • Définir la valeur d'instantané à "1" ne prendra qu'un seul instantané et réinitialisera la valeur à 0. La prise d'instantanés est limitée à 2 instantanés par seconde.
    • La limite d'instantanés est augmentée à 100 images.
    • La zone de sélection des instantanés est maintenant défilable pour prendre en charge 100 images.

2018.2 (10/02/18)

2018.2 corrige tous les bugs de streaming connus avec divers tableaux de bord FRC. Il rend également Limelight plus facile à régler et plus polyvalent pendant les événements.

Fonctionnalités

  • Baguettes de seuillage
    • Configurez les paramètres de seuil HSV en quelques clics
    • La baguette "Définir" centre les paramètres HSV autour du pixel sélectionné
    • La baguette "Ajouter" ajuste les paramètres HSV pour inclure le pixel sélectionné
    • La baguette "Soustraire" ajuste les paramètres HSV pour ignorer le pixel sélectionné
  • Instantanés
    • Les instantanés permettent aux utilisateurs de sauvegarder ce que Limelight voit pendant les matchs ou l'étalonnage d'événements, et d'ajuster les pipelines lorsqu'ils sont loin du terrain.
    • Sauvegardez un instantané avec l'interface web, ou en postant un "1" à la clé NetworkTables "snapshot"
    • Pour voir les instantanés, changez la boîte combo "Source d'image" dans l'onglet d'entrée. Cela vous permettra de tester vos pipelines sur des instantanés plutôt que sur le flux de la caméra Limelight
    • Limelight stockera jusqu'à 32 instantanés. Il supprimera automatiquement les anciens instantanés si vous dépassez cette limite.
  • Nouvelles options de streaming
    • Nous avons introduit la clé NetworkTables "stream" pour contrôler le mode de streaming de Limelight. Nous avons reçu des demandes pour des modes PiP (Picture-in-Picture) pour mieux s'adapter à certains tableaux de bord.
    • 0 - Standard - Flux côte à côte si une webcam est attachée à Limelight
    • 1 - PiP Principal - Le flux de la caméra secondaire est placé dans le coin inférieur droit du flux de la caméra principale.
    • 2 - PiP Secondaire - Le flux de la caméra principale est placé dans le coin inférieur droit du flux de la caméra secondaire.
  • Augmentation de la fréquence d'images en streaming à 22 fps
  • Érosion et Dilatation
    • Activez jusqu'à une itération d'érosion et de dilatation.
    • L'érosion érodera légèrement le résultat d'un seuil HSV. C'est utile si de nombreux objets passent à travers un seuil HSV réglé.
    • La dilatation gonflera légèrement le résultat d'un seuil HSV. Utilisez ceci pour combler les trous dans les résultats de seuillage.
  • Bouton de redémarrage
    • Redémarrez le suivi visuel de Limelight depuis l'interface web. Ceci n'est utile que pour les équipes qui rencontrent des problèmes intermittents lors du débogage du code LabView.

Optimisations

  • Réduction du temps d'exécution du pipeline en régime permanent à 3,5-4ms.

Corrections de bugs

  • Correction des problèmes de streaming avec Shuffleboard
  • Correction des problèmes de streaming avec le tableau de bord LabView

2018.1 (8/1/18)

  • Curseur d'équilibre des rouges
  • Curseur d'équilibre des bleus
  • Meilleurs paramètres par défaut pour l'équilibre des couleurs
  • Augmentation du réglage d'exposition maximale

Voici la traduction en français du document Docusaurus :

2018.0 (3/1/18)

En plus d'une multitude de nouvelles études de cas, d'une documentation plus détaillée et d'un programme d'exemple complet pour un tireur autonome STEAMWORKS, le logiciel a reçu une mise à niveau majeure.

Fonctionnalités

  • Nouvelle interface de pipeline de vision
    • Ajoutez jusqu'à 10 pipelines de vision uniques, chacune avec des réticules personnalisés, des options de seuillage, d'exposition, de filtrage, etc.
    • Nommez chaque pipeline de vision.
    • Marquez n'importe quelle pipeline comme pipeline "par défaut".
    • Basculez instantanément entre les pipelines pendant un match avec la nouvelle valeur "pipeline" dans NetworkTables. Ceci est utile pour les jeux qui ont plusieurs cibles de vision (par exemple, le piquet d'engrenage et la chaudière de 2017). C'est également utile pour les équipes qui ont besoin d'utiliser des options de réticule légèrement différentes par robot, terrain, alliance, etc.
    • Téléchargez les pipelines de vision depuis Limelight pour sauvegarder ou partager avec d'autres équipes.
    • Téléversez les pipelines de vision dans n'importe quel "slot" pour utiliser les pipelines téléchargées.
  • Option de "Groupement" de cibles
    • Préférez instantanément les cibles composées de deux formes avec le mode de groupement "dual". Les options "Single" et "Tri" sont également disponibles
  • Nouvelle interface de calibration du réticule
    • Modes de réticule "Simple" et "Double".
    • Le mode "Simple" est ce que Limelight utilisait avant cette mise à jour. Les équipes alignent leurs robots manuellement et "calibrent" pour remettre à zéro les valeurs de ciblage autour du réticule.
    • Le mode "Double" est une fonctionnalité avancée pour les robots qui ont besoin d'un réticule dynamique qui s'ajuste automatiquement lorsque la zone/distance d'une cible change. Nous avons utilisé cette fonctionnalité sur certains de nos robots de tir, car certains d'entre eux tiraient avec une légère courbe. Cette fonctionnalité sera également utile pour les robots avec des montages Limelight décentrés et/ou mal alignés.
    • Calibration X et Y séparée.
  • Ajout de la clé "tv" pour Cible Valide dans Network Tables.
  • Ajout de la clé "tl" pour la Latence de Ciblage dans Network Tables. "tl" mesure le temps d'exécution du pipeline de vision. Ajoutez au moins 11 ms pour le temps de capture.
  • Dessinez un rectangle supplémentaire pour aider à expliquer le calcul du rapport d'aspect.
  • Suppression de la fonction de limitation, et verrouillage de Limelight à 90fps.
  • Désactivation de la mise au point sur la plupart des boutons de l'interface web. Corrige un problème de flux de travail signalé par les équipes qui calibraient leurs réticules, puis appuyaient sur "entrée" pour activer leurs robots.
  • Publication de trois contours "bruts" et des deux réticules dans Network Tables.
    • Accédez à un contour brut avec tx0, tx1, ta0, ta1, etc.
    • Accédez aux deux réticules bruts avec cx0, cy0, cx1, cy1.
    • Toutes les valeurs x/y sont dans l'espace d'écran normalisé (-1.0 à 1.0)
  • Ajout de l'option "suffixe" à l'interface web. Permet aux utilisateurs d'ajouter un suffixe aux noms d'hôte et NetworkTables de leurs Limelights (par exemple, limelight-boiler). Cette fonctionnalité ne doit être utilisée que si les équipes ont l'intention d'utiliser plusieurs Limelights sur un seul robot.
  • Affichage de la version de l'image sur l'interface web

Optimisations

  • Réduction de la latence liée au réseau à ~0,2 ms contre ~10ms (Merci à Thad House)
  • Déplacement de l'encodage du flux et de la compression jpg vers le troisième cœur, éliminant le blocage de 10ms (blocage de 25 à 30ms avec deux caméras) observé toutes les six images.
  • Réduction du temps d'exécution du pipeline en régime permanent à 5ms grâce aux optimisations SIMD.

Corrections de bugs

  • Correction d'une légère inexactitude de la valeur de la zone qui empêchait la valeur d'atteindre 100% (maximum ~99%).
  • Correction du décalage d'un demi-pixel dans tous les calculs de ciblage
  • Correction des informations de flux de caméra qui ne se remplissaient pas pour les serveurs NT démarrés après la séquence de démarrage de Limelight. Actualisation régulière des informations de flux de caméra.
  • Correction d'un bug qui causait occasionnellement le "retournement" du rapport d'aspect.
  • Forcer la sortie de flux standard (plutôt que la sortie seuillée) en mode pilote.
  • Correction d'un bug qui empêchait les LEDs de clignoter après la réinitialisation des informations réseau

2017.7 (21/11/17)

  • Amélioration du tri des contours. Favorisait auparavant les petits contours par rapport aux grands contours.
  • Nouveau système de coordonnées : Le centre est (0,0). ty augmente lorsque la cible se déplace vers le "haut" de l'axe y, et tx augmente lorsque la cible se déplace vers la "droite" le long de l'axe x.
  • Calculs d'angles plus précis (modèle de caméra sténopé).
  • Affichage des informations de ciblage (tx, ty, ta et ts) sur la page web.
  • Les valeurs de ciblage par défaut sont des zéros. Cela signifie que des zéros sont renvoyés si aucune cible n'est visible.
  • Nouvelle mise en page côte à côte de la page web. Se replie toujours en une seule colonne sur les petits appareils.
  • Les mises à jour continues du curseur n'affectent pas les performances du panneau de configuration.
  • Surface envoyée à NT sous forme de pourcentage (0-100).
  • Taille de l'image réduite à 700 Mo contre 2,1 Go précédemment.

2017.6 (13/11/17)

  • Nouvel outil d'imagerie. Testé sur Win7, Win8 et Win10.
  • Diffusion du flux de la caméra vers les flux cameraserver. Fonctionne avec les flux de caméra du tableau de bord intelligent, mais Shuffleboard présente des bugs connus à ce niveau
  • Mise à l'échelle quartique sur les curseurs de zone, mise à l'échelle quadratique sur les curseurs de rapport d'aspect. Cela facilite grandement le réglage
  • Organisation des contrôles en onglets "entrée", "seuil", "filtre" et "sortie"
  • Mises à jour continues lors du glissement des curseurs
  • Zone envoyée à NT sous forme de pourcentage (0-100)
  • Taille d'affichage de l'image réduite à 700 Mo contre 2,1 Go

2017.5 (11/9/17)

  • Taille de l'image réduite à 2,1 Go contre 3,9 Go
  • Ajout des API pour le mode pilote et le mode LED
  • Définir ledMode à 0, 1 ou 2 dans la table limelight.
  • Définir camMode à 0 ou 1 dans la table limelight.
  • Ajout de la possibilité de basculer entre l'image seuillée et l'image brute via l'interface web (sera amélioré dans une prochaine version)
  • Publication du flux de la caméra dans les network tables sous CameraPublishing/limelight/streams (nécessitera un correctif)
  • Ajout de l'inclinaison aux informations de ciblage ("ts" dans la table limelight)
  • Ajout de la base "CommInterface" en prévision de protocoles supplémentaires

2017.4 (30/10/17)

  • Nombreuses améliorations de la robustesse du démarrage et de l'arrêt

2017.3 (25/10/17)

  • La plage de teinte est de 0-179 au lieu de 0-255
  • Diminution de la taille maximale des journaux, effacement des journaux, effacement du cache apt

2017.2 (23/10/17)

  • Sensibilité ISO manuelle
  • Exposition minimale augmentée à 2

2017.1 (21/10/17)

  • Optimisations
  • "Convexité" changée en "Plénitude"
  • Plage d'exposition réglée de 0-128 ms au lieu de 0-255 ms
  • Prise en charge de deux caméras
  • Prise en charge complète de la calibration à point unique