Registro de Cambios de Software y Comentarios
Envía problemas y solicitudes de funciones por correo electrónico o al Repositorio de Comentarios de Limelight
Limelight OS 2025.1 (VERSIÓN FINAL - 24/2/25 VERSIÓN DE PRUEBA - 18/2/25)
24/2/25 - Corrección del problema de conectividad introducido en la versión de prueba 2025.1.
Actualizaciones del IMU de LL4
- Fusión de sensores IMU mejorada
- Rendimiento significativamente mejor bajo vibración e impactos de nivel FRC. Cambios importantes en el enfoque de fusión.
La imagen anterior muestra el resultado de una sesión de práctica bastante violenta de ~5 minutos con un robot FRC. En esta sesión, medimos las orientaciones de
- Un Limelight 4 ejecutando 2025.0 (llyawOLD)
- Un Limelight 4 ejecutando 2025.1 (llyaw)
- Un Pigeon 2.0
Los dos LL4 están montados en orientaciones idénticas. Nota la mejora masiva en la precisión general del LL4 ejecutando 2025.1
-
Modo IMU 3 - IMU_ASSIST_MT1 - El IMU interno utilizará estimaciones de yaw MT1 filtradas para corrección continua de orientación
-
Modo IMU 4 - IMU_ASSIST_EXTERNALIMU - El IMU interno utilizará el IMU externo para corrección continua de orientación
-
Añadida clave NT imuassistalpha_set (predeterminado 0.001) - Alpha / fuerza del filtro complementario. Valores más altos harán que el IMU interno converja hacia la fuente de asistencia más rápidamente
-
El valor predeterminado está configurado en un valor bajo 0.001 porque ahora confiamos más en el IMU interno que antes. Los modos de asistencia están diseñados para "tirar" muy suavemente del IMU interno hacia la fuente de asistencia elegida sin afectar la capacidad de respuesta del IMU interno durante movimientos rápidos.
Actualizaciones de Rendimiento Térmico de LL4
-
Añadido 'throttle_set'. Procesa un fotograma después de cada N fotogramas omitidos. Patrones de ejemplo:
- throttle_set=1: [omitir, procesar, omitir, procesar]
- throttle_set=2: [omitir, omitir, procesar, omitir, omitir, procesar]
-
Las salidas no se ponen a cero/reinician durante los fotogramas omitidos.
-
Configura esto en un número alto mientras está deshabilitado (50-200) para gestionar la temperatura de tu LL4.
-
Opcionalmente, puedes configurar un pipeline como visor y cambiar a este pipeline mientras está deshabilitado.
Nuevas Opciones de FPS para LL4 y LL3G
- Añadido 1280x800 a 60FPS, 55FPS, 45FPS y 30FPS.
- Usar tasas de captura más bajas te permitirá aumentar el tiempo de exposición para evitar el blooming/respiración de imagen debido a la iluminación AC.
Actualizaciones de la API REST
- Añadida API REST de Modo IMU - 'update-imumode'
- Añadida API REST de Throttle - 'update-throttle'
- Añadida API REST de IMU ASSIST ALPHA - 'update-imuassistalpha'
Actualizaciones de FMap
- Los archivos Json de FMap ahora pueden opcionalmente incrustar un SVG codificado en base64
- Los archivos Json de FMap ahora pueden opcionalmente incrustar un PNG codificado en base64
Redes Neuronales de ReefScape Subidas
- El Modelo Hailo B2 es nuestro modelo de mejor rendimiento para FRC2025. Fue entrenado con imágenes monocromáticas para acomodar mejor al LL4.
Actualizaciones de LL3A
- 3A completamente soportado con las actualizaciones de 2025
Correcciones de Errores
- Los Limelights sin IMUs internos ignoran imumode_set
- Los Limelight 3s que han sido actualizados a Limelight 3Gs utilizarán correctamente el ventilador incorporado
- Corrección del recorte en pipelines de Detector Neural basados en Hailo
- Corrección del recorte en pipelines de AprilTag basados en Hailo
Limelight OS 2025.0 (15/1/24)
Soporte para LL4
- Añadido soporte para detección de objetos Hailo y AprilTags acelerados por Hailo
- Añadido soporte para el IMU interno de LL4.
- Añadida clave NT "imumode_set"
- 0 - Usar IMU externo, no inicializar IMU interno
- 1 - Usar IMU externo, inicializar IMU interno
- 2 - Usar IMU interno
Actualizaciones del Campo 2025
- El ancho y alto del campo ahora son parte de los archivos .fmap
- Actualizado el .fmap predeterminado para coincidir con el campo 2025
- Actualizada la imagen del campo predeterminada
- El constructor de mapas en línea ahora te permite configurar el ancho y alto del campo
- El enlace del fmap 2025 en la página de descargas ha sido actualizado.
Correcciones de Errores
- Corregido el botón "eliminar todas las instantáneas"
Limelight OS 2024.10.2 (28/10/24)
Corrección de Python Snapscript (CRÉDITO - EQUIPO FTC 23251 TRIPLE FAULT)
- Las salidas de Python ya no se congelarán al usar el Control Hub con Limelight3A
- Las salidas de Python ya no se congelarán al cambiar entre pipelines de python
Caso límite de MT2
https://github.com/LimelightVision/limelight-feedback/issues/23
- Al probar MT2 sin un robot, es fácil generar una imposibilidad geométrica.
- Este caso límite no ponía a cero el botpose de mt2 - ponía a cero la pose de la cámara.
- El robot ahora se coloca en (0,0,0) cuando se detecta este caso límite
Direccionamiento IP Estático
https://github.com/LimelightVision/limelight-feedback/issues/25
- Añadida una advertencia al configurador de direcciones IP si la dirección termina en .1-.10 o .20-.255 ya que estas direcciones pueden interferir con el FMS u otros dispositivos
- En 2024.10.1, la interfaz a veces sugería que una IP estática estaba configurada cuando el esquema de direccionamiento estaba configurado como "automático"
STDDevs NetworkTables
https://github.com/LimelightVision/limelight-feedback/issues/24
- "stddevs" en networktables contiene todas las stddevs para mt1 y mt2 (array de doubles, 12 elementos)
Caso límite de Carga de Modelo
- Si un modelo clasificador se sube a un pipeline detector, "check model" se mostrará en la imagen
- Si un modelo detector se sube a un pipeline clasificador, "check model" se mostrará en la imagen
Limelight OS 2024.10.1 (15/9/24)
Actualizaciones de Limelight 3A
- Actualizados los valores predeterminados de balance de color
- Actualizada la configuración predeterminada del tamaño de AprilTag a 101.6 mm
- Reducida la tasa de fotogramas predeterminada del stream de video a 30FPS
- Aumentada ligeramente la compresión del stream de video para reducir el bitrate del stream
Advertencia de Tamaño de AprilTag
- Añadida una advertencia al visualizador de espacio de campo si el tamaño de AprilTag configurado no coincide con los tamaños en el mapa de campo subido.
Corrección de CameraPose_RobotSpace
- Sobrescribir la Pose de Cámara configurada en la interfaz desde NetworkTables/LimelightLib/REST funciona correctamente de nuevo.
Limelight OS 2024.10 (4/9/24)
Soporte de Limelight 3A para FTC
- Limelight3A está completamente soportado
- 3A es utilizable tanto en FTC como en FRC
Actualizaciones del Mapa de AprilTag
- El editor de mapas ahora soporta generación de mapas FTC estándar y diamante
- La interfaz web de LLOS mostrará automáticamente el tipo de campo correcto basado en el mapa subido
- Todos los visualizadores de campo en herramientas e interfaces muestran zonas de alianza y cuadrículas de baldosas FTC.
- El rendimiento del visualizador 3D ha sido mejorado.
Soporte de Limelight USB en ControlHub y RoboRio.
- Los equipos de FTC pueden usar un solo Limelight con capacidad USB en el Control Hub
- Los equipos de FRC pueden usar hasta 16 Limelights con capacidad USB en el RoboRio. Los limelights USB auto-populan networktables igual que los limelights ethernet.
- Para usar múltiples Limelights USB, dale a cada LL un índice USB único y un hostname único.
Mejoras de Conectividad USB
- MacOS ya no usa la interfaz Ethernet USB de Limelight para acceso a internet
- Windows ya no intenta usar la interfaz Ethernet USB de Limelight para acceso a internet
Actualizaciones de la API REST
- Corregida la solicitud POST update-robotorientation.
- MT2 ahora es completamente accesible sin NetworkTables.
- Una vez que se usa la ruta update-robotorientation, las actualizaciones de orientación de NetworkTables se deshabilitan hasta el reinicio.
Limelight OS 2024.9.1 (7/7/24)
- La Herramienta de Construcción de Mapas ahora acepta/convierte layouts de apriltag .json de WPILib
- Añadido AprilTag3 a Python Snapscripts (from apriltag import apriltag)
- Ver ejemplo en el repositorio de ejemplos de github
- Corregido problema de gateway de conectividad USB en Windows.

Limelight OS 2024.9 (5/7/24)
Mejoras de MegaTag
-
Limelight OS ha hecho la transición a NetworkTables 4.0
-
MegaTag2 ahora usa getAtomic() de NT4 para recuperar actualizaciones de IMU con marca de tiempo del roboRIO.
-
Nuestros fotogramas de imagen con marca de tiempo se emparejan con las dos muestras de IMU más relevantes antes de realizar la interpolación.
-
Se ha añadido flush() de NT4 a LimelightLib. Añadir Flush() a versiones anteriores de Limelight OS te acercará bastante al rendimiento de 2024.9, pero NT4 asegura que la precisión sea siempre alta.
-
El robot visualizador de MT2 ahora tiene parachoques verdes, y el robot visualizador de MT1 usa parachoques amarillos.
-
Las métricas ahora son colapsables, y los robots virtuales pueden ocultarse.
-
El siguiente video demuestra cómo el MegaTag 2 de 2024.9 (robot verde) con flush() del lado del robot es más robusto que el MegaTag2 de 2024.5 sin Flush() (robot rojo)
ID USB y Nuevas Direcciones IP USB
- Configura el "USB ID" en la página de configuración para usar múltiples Limelights USB en cualquier sistema.
- La interfaz USB-Ethernet que aparece en tu sistema utilizará una dirección IP determinada por el USB ID
- Los sistemas Linux/Android/Mac ahora utilizarán la subred 172.29.0.0/24 por defecto
- Los sistemas Windows ahora utilizarán la subred 172.28.0.0/24 por defecto.
- Si se configura el USBID, la subred cambia a 172.29.(USBID).0/24 para Linux/Android/Mac y 172.28.(USBID).0/24 para Windows.
- Ahora puedes, por ejemplo, conectar cuatro dispositivos Limelight a un solo Hub USB ajustando sus hostnames y USB IDs
Clasificadores Neurales de CPU
- Sube un clasificador .tflite de CPU para habilitar clasificación neural sin Google Coral. Puedes esperar 15-18 FPS en variantes LL3.
- 2024.9 viene con un clasificador de CPU predeterminado.
- Configura el runtime del clasificador a "CPU" para habilitar esta función
Detectores Neurales de CPU
- Sube un detector .tflite de CPU para habilitar detección neural sin Google Coral. Puedes esperar 10 FPS en variantes LL3.
- 2024.9 viene con un detector de CPU predeterminado.
- Configura el runtime del detector a "CPU" para habilitar esta función
Limelight OS 2024.8 (3/7/24)
- Añadida salida de python (PythonOut), tx, ty, txnc, tync, ta al objeto de resultados json
- Compensación de latencia de MT2 mejorada aún más
Limelight OS 2024.7 (21/5/24)
- Actualización a Linux 6.6
Correcciones de Errores
- Corregida la conversión de pipeline de visión
- Corregidas las cargas de calibración, cargas de instantáneas y cargas de nn
Limelight OS 2024.6 (8/5/24)
LimelightLib Python
- pip install limelightlib-python
- Nuestra biblioteca de Python te permite interactuar con Limelights USB y Ethernet en cualquier plataforma.
- Permite la configuración completa de Limelight sin interacción con la interfaz web.
- Sube pipelines, redes neuronales, mapas de campo, etc
- Realiza cambios en tiempo real a cualquier parámetro de pipeline con una opción opcional de "guardar en disco"
- Publica datos de entrada de python personalizados, configura la orientación del robot, etc.
Mejoras de MegaTag2
- ¡La compensación de latencia del giroscopio de MegaTag2 ha sido mejorada. Espera más mejoras pronto!
- Añadido control deslizante "Ajuste de latencia del giroscopio" a la interfaz. Para ajustar manualmente la compensación de latencia de MegaTag 2, puedes girar tu robot y ajustar el control deslizante hasta que los resultados de localización sean perfectos mientras gira.
Métricas de Desviación Estándar
- El visualizador de Campo 3D ahora incluye desviaciones estándar de MegaTag1 y Megatag2 para x, y, y yaw.
Nuevo Tipo de Pipeline "Focus"
- Mientras estés en modo "focus", tendrás acceso a un control deslizante de calidad de stream y un control deslizante de caja de recorte
- Gira la lente para maximizar la puntuación de "focus".
- Si tu cámara está en una ubicación fija, esto toma menos de un minuto. Recomendamos enfocar con un Limelight fijo / montado.
Nuevo Tipo de Pipeline "Barcodes"
- Detección y Decodificación de Múltiples Códigos QR a 50-60FPS a 1280x800
- Detección y Decodificación de Múltiples DataMatrix a 50-60FPS a 1280x800
- Múltiples UPC, EAN, Code128 y PDF417 a 30FPS a 1280x800
- Las cadenas de datos de códigos de barras se publican en el array nt "rawbarcodes".
- El pipeline de Barcodes poblará todas las métricas 2D como tx, ty, ta, tcornxy, etc.
API REST Completamente Nueva
- https://docs.limelightvision.io/docs/docs-limelight/apis/rest-http-api
- Nuestra API REST / HTTP ha sido reconstruida desde cero.
- La API REST permite la configuración completa de Limelight sin interacción con la interfaz web.
- Sube pipelines, redes neuronales, mapas de campo, etc
- Realiza cambios en tiempo real a cualquier parámetro de pipeline con una opción opcional de "guardar en disco"
- Publica datos de entrada de python, configura la orientación del robot, etc.
Eliminada la Configuración de Orientación de Cámara de la Interfaz (CAMBIO IMPORTANTE)
- Esto ha sido reemplazado por la opción "orientación de stream". La calibración y el targeting nunca se ven afectados por esta opción.
- La nueva opción solo afecta al stream. Al revés, 90 Grados en Sentido Horario, 90 Grados en Sentido Antihorario, Espejo Horizontal y Espejo Vertical
- Los equipos ahora necesitarán invertir manualmente tx y ty según sea necesario mientras usan cámaras rotadas.
Eliminado Soporte de GRIP (CAMBIO IMPORTANTE)
Eliminado Modo "Driver" de procesamiento cero (CAMBIO IMPORTANTE)
- Esto ha sido reemplazado por el tipo de pipeline "Viewfinder"
Añadido Tipo de Pipeline "Viewfinder"
- El pipeline viewfinder deshabilita todo el procesamiento para latencia mínima
- Esto permite a los equipos diseñar sus propios pipelines "Driver" para modos de solo visualización
Los Archivos de Pipeline Ahora Usan Formato JSON (CAMBIO IMPORTANTE)
- Los pipelines todavía usan la extensión de archivo .vpr
- (Roto en algunos casos en 2024.6) La interfaz auto-convertirá los pipelines a JSON cuando uses el botón "upload".
- (Completamente funcional) También puedes usar https://tools.limelightvision.io/pipeline-upgrade para actualizar tus pipelines
Mejora de UX de Calibración
- La configuración de calibración ahora se almacena en caché. Ya no necesitas ingresar tu configuración de calibración cada vez que quieras calibrar.
- El diccionario de calibración predeterminado ha sido actualizado para funcionar con el tablero grueso recomendado de 800x600mm de Calib.io.
Mosaico de Calibración
- Anteriormente, era difícil determinar la calidad de las imágenes de calibración
- La pestaña de calibración ahora tiene un botón "Descargar Mosaico de Calibración". El mosaico te mostrará exactamente qué está contribuyendo cada imagen a tu calibración.

Región de targeting "Centroid"
- El modo de targeting centroide ha sido añadido a la pestaña "Output" para mejorar el seguimiento de objetos con pipelines de color
Offset 3D Dinámico (NT: fiducial_offset_set)
- Ahora es posible ajustar el Offset 3D sin cambiar de pipelines. Esto es útil para situaciones en las que tu "punto de mira" necesita cambiar basándose en la distancia u otras propiedades.
Añadido Soporte Modbus
- Limelight OS ahora tiene un servidor modbus siempre activo para inspección, logística y aplicaciones industriales
- Ver la especificación de registros modbus aquí: https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
- El puerto predeterminado del servidor modbus puede cambiarse en la pestaña de configuración de la interfaz
- A través de modbus y pipelines de python snapscript, ahora se soportan aplicaciones de visión completamente personalizadas con comunicación bidireccional.
Servidor NT Personalizado
- La pestaña de configuración ahora contiene una entrada para un servidor NT personalizado.
- Esto habilita un nuevo flujo de trabajo que incluye un servidor NT glass ejecutándose en una PC, y Limelight 3G comunicándose por USB.
Cambios en Rawfiducial
- El valor "area" de los fiduciales raw ahora es un valor calibrado y normalizado que va de ~0-1
Todos los Cambios de NetworkTables y JSON
-
Añadido NT getpipetype - Obtener la cadena del tipo de pipeline actual (ej. pipe_color, pipe_fiducial)
-
Añadido NT tcclass - Nombre de clase detectada del pipeline clasificador
-
Añadido NT tdclass - Nombre de clase detectada del pipeline detector
-
Añadido NT t2d para targeting 2d atómico garantizado - [valid,targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]
-
Eliminados NT tlong, tshort, thor, tvert, y ts
-
Añadido array NT 'crosshairs' [cx0,cy0,cx1,cy1]
-
Eliminados NT cx0, cy0, cx1, y cy1
-
Añadido NT rawbarcodes - Array de Strings NT de datos de códigos de barras. Hasta 32 entradas.
-
Todos los arrays "raw" permiten hasta 32 objetivos (aumentado de 8)
-
Añadido fiducial_offset_set configurador dinámico de Offset 3D
-
Añadido "pType" al objeto de resultado de nivel superior json
-
Añadido "stdev_mt1" y "stdev_mt2" al objeto de resultado de nivel superior json (x,y,z,roll,pitch,yaw) (metros, grados)
Cambios en Otros Formatos de Archivo y Volcados JSON
- El formato de archivo de calibración ha sido simplificado. Las calibraciones antiguas se auto-convierten al nuevo formato al subirlas
- Se ha eliminado un nivel de anidamiento de los volcados JSON de Resultados y Estado
Correcciones de Errores
- Anteriormente, si un Google Coral se desconectaba mientras un pipeline Neural estaba activo, el pipeline revertía permanentemente al modo "color/retro"
- Ahora, "CHECK CORAL" o "CHECK MODEL" se imprimirá en la imagen. El tipo de pipeline nunca cambiará
- Anteriormente, las etiquetas que pasaban exitosamente a través del filtro de ID de fiducial a veces se dibujaban con un contorno rojo en lugar de un contorno verde. Este problema de visualización ha sido corregido.
- Los pipelines de Apriltag populan el array NT tcornxy
- Los pipelines de Apriltag ahora respetan completamente el control deslizante de área min-max. Anteriormente, los pipelines de AprilTag filtraban resultados 2D basándose en el Área de Etiqueta, pero no los Resultados 3D / de Localización.
Limelight OS 2024.5.0 (9/4/24)
- Actualización a Linux 6.1
Actualización del Stack de Cámara
- El stack completo de cámara ha sido actualizado para corregir un bloqueo del periférico de cámara en Limelight3G.
- Los síntomas incluyen
- Asegúrate de reajustar la configuración de exposición y ganancia después de aplicar esta actualización.
Reducción de Escala Dinámica
- Los equipos ahora pueden configurar "fiducial_downscale_set" para anular la configuración de reducción de escala del pipeline actual
- 0:Control UI, 1:1x, 2:1.5x, 3:2x, 4:3x, 5:4x
- Usa el nuevo método Helpers con 0.0 (Control UI), 1.0, 1.5, 2.0, 3.0, 4.0
- Esta es una operación sin sobrecarga.
- Al combinar reducción de escala dinámica y recorte dinámico, los equipos pueden maximizar los FPS sin gestionar múltiples pipelines
Mejoras de MegaTag2
- MT2 ahora funciona sin importar la orientación del Limelight, incluyendo modos "retrato" con rotaciones de 90 grados y -90 grados
Array NT "rawdetections"
- [classID, txnc, tync, ta, corner0x, corner0y, corner1x, corner2y, corner3x, corner3y, corner4x, corner4y]
- Las esquinas están en espacio de píxeles sin calibración aplicada
Actualización de Erosión/Dilatación
- Los pipelines de color ahora soportan hasta 10 pasos de dilatación y 10 pasos de erosión
- Los pipelines de color ahora tienen una opción "reverse morpho" para invertir el orden de los pasos de dilatación y erosión
LimelightLib 1.6 (9/4/24)
- Añadido void SetFiducialDownscalingOverride(float downscale)
Configura a 0 para control del pipeline, o uno de los siguientes para anular la configuración de reducción de escala de tu pipeline: 1, 1.5, 2, 3, 4
- Añadido RawFiducial[] GetRawFiducials()
- Añadido RawDetection[] GetRawDetections()
Limelight OS 2024.4.0 (3/4/24)
Gracias a todos los equipos que contribuyeron ideas para esta actualización.
Megatag 2
Megatag 2 es un localizador libre de ambigüedad. Tiene mayor precisión y mayor exactitud que Megatag1, y fue construido con los siguientes requisitos:
- Eliminar el problema de ambigüedad de pose y aumentar la robustez contra ruido de imagen/esquinas.
- Proporcionar excelentes estimaciones de pose dado uno o más tags, sin importar la perspectiva.
- Aumentar la robustez contra inexactitudes en la colocación física de AprilTags
- Reducir la cantidad de filtrado necesario del lado del robot para buenos resultados de estimación de pose
Observa la diferencia entre MegaTag2 (robot rojo) y Megatag (robot azul) en este caso altamente ambiguo de un solo tag:
Megatag2 requiere que configures el heading de tu robot con una nueva llamada de método. Aquí hay un ejemplo completo:
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 nuestra velocidad angular es mayor a 720 grados por segundo, ignorar actualizaciones de visión
{
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 proporciona excelentes resultados libres de ambigüedad a cualquier distancia dado un solo tag. Esto significa que es perfectamente viable enfocarse solo en tags que son relevantes y están dentro de tu tolerancia de colocación deseada. Si un tag no está en la ubicación correcta o es irrelevante, fíltralo con la nueva función de filtro dinámico.
Filtrado Dinámico de AprilTags
- Debido a que MegaTag2 no está desesperado por acumular tantos AprilTags como sea posible, puedes filtrar de forma segura por tags bien colocados y relevantes:
int[] validIDs = {3,4};
LimelightHelpers.SetFiducialIDFiltersOverride("limelight", validIDs);
Transición a MegaTag2
Megatag2 requiere el heading de tu robot para funcionar correctamente. Un heading de 0 grados, 360 grados, 720 grados, etc. significa que tu robot está mirando hacia la pared de la alianza roja. Esta es la misma convención usada en PathPlanner, Chorero, Botpose y Botpose_wpiblue.
Una vez que hayas añadido SetRobotOrientation() a tu código, verifica el visualizador 3D integrado. A corta distancia, Megatag2 y Megatag1 deberían coincidir de cerca si no exactamente. A larga distancia, Megatag 2 (robot rojo) debería ser más preciso y más estable que Megatag1 (robot azul).
Una vez que el visualizador integrado muestre buenos resultados, puedes usar Megatag2 de forma segura para guiar tu robot durante el período autónomo.
El único filtro que recomendamos añadir es un filtro de "velocidad angular máxima". Puedes encontrar que a altas velocidades angulares, tus estimaciones de pose se vuelven ligeramente menos confiables.
El repositorio de ejemplos tiene un ejemplo de Megatag2 con este filtro.
if(Math.abs(m_gyro.getRate()) > 720) // si nuestra velocidad angular es mayor a 720 grados por segundo, ignorar actualizaciones de visión
{
doRejectUpdate = true;
}
if(mt2.tagCount == 0)
{
doRejectUpdate = true;
}
LimelightLib 1.5 (3/4/24)
Añadido
getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()
Limelight OS 2024.3.4 (20/3/24)
Gracias a todos los equipos que contribuyeron ideas para esta actualización.
Solucionador de Tag Único de Mayor Precisión
El solucionador 3D de tag único de MegaTag ha sido mejorado. Es mucho más estable que antes a larga distancia.
JSON Deshabilitado por Defecto (Cambio Importante)
- JSON ha sido deshabilitado por defecto para reducir el uso de ancho de banda en general para equipos que usan dashboards con auto-suscripción como Shuffleboard.
- Esto también debería reducir la carga NT del RoboRIO y el uso de CPU.
- Reactiva json por pipeline en la pestaña de salida.
- Esta actualización incluye cambios que deberían permitir que aún más equipos hagan la transición lejos de JSON para estimación de pose.
Área Sin Distorsión (Cambio Importante)
Las esquinas se desdistorsionan antes de calcular el área de cualquier objetivo.
Incluir Métricas Por Fiducial en botpose, botpose_wpiblue y botpose_wpired
[tx, ty, tz, roll, pitch, yaw, tagCount, tagSpan (metros), averageDistance (metros), averageArea (porcentaje de imagen), (tags) ]
Para cada tag usado por la localización megatag, los arrays anteriores ahora incluyen (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)
Ambiguity es una nueva métrica que va de 0-1 que indica la ambigüedad de la perspectiva actual del tag. Las actualizaciones de tag único con ambigüedades de tag > .9 probablemente deberían ser rechazadas.
Arrays NT "rawtargets" y "rawfiducials" (Cambio Importante)
- rawtargets - (txnc,tync,ta) por objetivo
- rawfiducials - (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity) por objetivo
- Las entradas NT anteriores de rawtargets (tx0,ty0, etc) han sido eliminadas.
Correcciones de Errores
- Poner a cero toda la información 3D de tag único si el priorityID no ha sido encontrado. Anteriormente, solo Tx, Ta, Ty y Tv se ponían a cero cuando el priorityTag no era encontrado
- Poner a cero botpose si el único tag visible ha sido filtrado por la función "ID Filters" de la UI. Anteriormente, los botposes se restablecían al centro del campo en lugar de (0,0,0) si el único tag visible era un tag filtrado;
- 2024.2 publicaba NANs en ciertas entradas de networktables en algunas instancias raras. Esto ya no ocurrirá.
LimelightLib 1.4 (21/3/24)
- Añadido soporte para Raw Fiducials de 2024.3.4. Los PoseEstimates ahora incluyen un array de rawFiducials que contienen id, txnc, tync, ta, distanceToCamera, distanceToRobot y ambiguity
Limelight Hardware Manager 1.4 (18/3/24)
Corrección de Error
Los Limelights USB descubiertos se muestran correctamente como una sola entrada en lugar de dos entradas parciales.
Limelight OS 2024.2.2 (17/3/24)
Corrección de Error
TX y TY respetan correctamente la cruceta en las entradas NT.
Limelight OS 2024.2 (8/3/24)
Apuntado con Cruceta Cero con Json (tx_nocross, ty_nocross) y NT (txnc, tync)
Si estás usando apuntado tx/ty con calibración de intrínsecos personalizada, probablemente todavía estés viendo variación de cámara a cámara porque la cruceta del Limelight no está alineada con el píxel principal de la cámara. Los equipos que requieren mayor precisión en tx/ty pueden configurar la cruceta para que coincida con el píxel principal, o usar estas nuevas métricas.
Cambio potencialmente importante en tx/ty
Se introdujo un error a principios de esta temporada que rompió la calibración personalizada específicamente para tx, ty y tx + ty en json. Limelight OS estaba revirtiendo a calibraciones por defecto en varios casos.
Mejoras de Calibración
La calibración ahora es casi instantánea, sin importar cuántas imágenes se hayan capturado. También hemos corregido un crash causado por tener más de alrededor de 30 imágenes bajo ciertas circunstancias.
Estamos obteniendo consistentemente un error de reproyección de alrededor de 1 píxel con 15-20 imágenes de objetivos de papel, y un error de .3 píxeles con nuestros objetivos de alta calidad de calib.io.
Corrección de UI de Filtros Fiduciales
El cuadro de texto de filtro fiducial ahora acepta cualquier número de filtros.
Varios
El Generador de AprilTags ahora tiene por defecto "sin borde" para prevenir el escalado con tags de 165.1 mm.
Limelight OS 2024.1.1 (24/2/24)
- Corregido priorityID
Limelight OS 2024.1 (24/2/24)
Métricas de HW (clave hw en networktables, solicitud GET /status)
- Los equipos ahora tienen la capacidad de registrar FPS, Carga de CPU, uso de RAM y Temperatura de CPU.
- Aborda https://github.com/LimelightVision/limelight-feedback/issues/5
Mejora de Calibración
- Corregido crash que podía ocurrir si una imagen de calibración contenía exactamente una detección válida. Mejorada la retroalimentación de la UI web.
Mejora de Localización del Robot (conteo de tags y más)
-
Todos los arrays de botpose de networktables (botpose, botpose_wpiblue y botpose_wpired) ahora incluyen Conteo de Tags, Extensión de Tags (metros), Distancia Promedio (metros) y Área Promedio (porcentaje de imagen)
-
Estas métricas se calculan con tags que están incluidos en el mapa de campo cargado. Los AprilTags personalizados y/o móviles no afectarán estas métricas.
-
Con la calibración del dispositivo y esta mejora del array botpose, no creemos que JSON sea necesario para la gran mayoría de casos de uso este año.
-
El volcado JSON ahora incluye botpose_avgarea, botpose_avgdist, botpose_span y botpose_tagcount por conveniencia.
[tx,ty,tz,rx,ry,rz,latency,tagcount,tagspan,avgdist,avgarea]
Nueva Función: Priority ID (Clave NT priorityid)
-
Si tu robot usa tanto funciones basadas en odometría como funciones basadas en tx/ty, probablemente hayas encontrado el siguiente problema de UX:
-
Antes de esta actualización, no había forma de cambiar fácilmente el ID de tag preferido para apuntado tx/ty.
-
Aunque hay un filtro de ID en la UI, este
- no es dinámico
- elimina tags de la localización megaTag.
-
Esto significaba que los equipos estaban creando varios pipelines: uno para localización 3D, y uno por tag tx/ty (un pipeline para disparar del lado azul con tag 7, uno para amplificar del lado azul con tag 6, etc.).
-
La nueva función priority ID (Clave NT priorityid) te permite decirle a tu Limelight "Después de que toda la detección, filtrado y ordenamiento de tags esté completo, enfócate en el tag que coincida con el priority ID."
-
Esto no afecta la localización de ninguna manera, y solo cambia ligeramente el orden de los tags en los resultados JSON.
-
Si tu priority id no es -1, tx/ty/ta devolverán 0 a menos que el tag elegido sea visible.
Varios
- Corregida "x" a través de la pantalla mientras se usa el modo dual-target en un pipeline de apriltag 3D
- API REST expandida con cargas de etiquetas de red neuronal (/uploadlabels)
- Incluir apodo del dispositivo en json /status
LimelightLib 1.3
- LimelightLib (Java y CPP) han sido actualizadas para hacer la localización más fácil que nunca.
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);
}
Nuevos recursos para Equipos
Retroalimentación y Rastreador de Problemas de Limelight: https://github.com/LimelightVision/limelight-feedback/issues
Repositorio de Ejemplos: https://github.com/LimelightVision/limelight-examples
Ejemplo de Apuntado y Rango con Swerve: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-aiming-and-ranging
Ejemplo de Localización MegaTag: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-pose-estimation
Gracias a los contribuidores recientes jasondaming, Gold876, JosephTLockwood, Andrew Gasser y virtuald
Actualizaciones de Limelight 2024 (6/2/24)
Mejora de Documentación de Limelight
- La documentación ha sido reescrita para agilizar el proceso de configuración
Generador de AprilTags de Limelight
- https://tools.limelightvision.io/ ahora presenta el primer generador de AprilTags en línea.
- Selecciona tu tamaño de papel, tamaño de marcador e IDs de tags para generar un PDF imprimible.
- Safari puede no mostrar correctamente los tags en este momento.
Constructor de Mapas de Limelight
- https://tools.limelightvision.io/map-builder
- Ahora puedes construir mapas de AprilTags personalizados con una UI intuitiva.
- La familia por defecto y el tamaño de tag han sido actualizados para coincidir con el campo 2024.
Nuevo Hardware Manager
- La Herramienta Finder ahora es el Limelight Hardware Manager
- Ha sido reescrita desde cero. Ahora detecta Limelights de forma confiable, proporciona información de diagnóstico más útil y no requiere reinicios para funcionar correctamente.
- Obtenlo ahora desde la página de descargas

Entrena tus Propias Redes Neuronales
- Puedes entrenar tus propios modelos de detección gratis con RoboFlow, el Notebook de Entrenamiento de Detector Limelight, y nuestro nuevo tutorial

Mapa de AprilTags 2024 y Detector de Notas
- El mapa y el modelo de detector han sido añadidos a la página de descargas y a la última imagen de Limelight OS.
Limelight OS 2024.0 (6/2/24)
Correcciones de Calibración ChArUco
- La precisión de subpíxel de nuestro detector ChArUco ha sido aumentada. Un error de reproyección de 1-2 píxeles ahora es alcanzable con objetivos de portapapeles y 20 imágenes.
- Usando la misma cámara y el mismo objetivo, 2023.6 logró un RPE de 20 píxeles, y 2024.0 logró un RPE de 1.14 píxeles.
- Los campos de entrada ya no aceptan letras y caracteres especiales. Esto elimina el potencial de un crash.
Mejora de Precisión de Megatag Lista para Usar
- Antes de esta actualización, el generador interno de mapas Megatag de Limelight referenciaba el deslizador de tamaño de tag de la UI en lugar de los tamaños de tag suministrados por el archivo .fmap.
- Megatag ahora respeta los tamaños de tag configurados en archivos fmap e ignora el deslizador de tamaño.
- Si tu deslizador de tamaño no ha sido configurado a 165.1 mm, notarás una mejora inmediata en la precisión de localización
Mejoras de Rendimiento y Correcciones de Errores
- Pipelines de AprilTag con mayor FPS
- El rendimiento del Visualizador de Espacio de Campo ha sido significativamente mejorado.
Correcciones de Errores
- Los AprilTags en los visualizadores 3D a veces se dibujaban con imágenes de tag incorrectas o corruptas. Los tags ahora siempre se muestran correctamente.
- "v" / tv / "valid" ahora solo devolverá "1" si hay detecciones válidas. Anteriormente, tv siempre era "1"