Registro de Cambios de Software 2021 - 2023
2023.6 (18/4/23)
Calibración ChArUco Fácil y Visualizadores de Calibración
- La calibración ChArUco se considera mejor que la calibración con tablero de ajedrez porque maneja oclusiones, detecciones de esquinas defectuosas y no requiere que todo el tablero sea visible. Esto hace mucho más fácil capturar esquinas del tablero de calibración cerca de los bordes y esquinas de tus imágenes. Esto es crucial para la estimación de coeficientes de distorsión.
- El proceso de calibración de Limelight proporciona retroalimentación en cada paso y asegurará que hagas todo lo necesario para obtener buenos resultados de calibración. Se ha invertido un gran esfuerzo en hacer este proceso lo más infalible posible.
- Lo más importante es que puedes visualizar tus resultados de calibración junto a la calibración predeterminada. De un vistazo, puedes entender si tu resultado de calibración es razonable o no.
- También puedes usar el panel de calibración como herramienta de aprendizaje. Puedes modificar archivos de resultados de calibración descargados y volver a subirlos para aprender cómo la matriz de intrínsecos y los coeficientes de distorsión afectan los resultados de seguimiento, FOV, etc.
- Mira este video:
2023.5.1 & 2023.5.2 (22/3/23)
-
Corregida regresión introducida en 2023.5.0 - Mientras que 2023.5 corrigió megatag para todos los diseños no planares, redujo el rendimiento de las estimaciones de pose de una sola etiqueta. Esto ha sido corregido. Las estimaciones de pose de una sola etiqueta usan exactamente el mismo solucionador usado en 2023.4.
-
Interfaz de capturas más ágil. La cuadrícula de capturas ahora carga miniaturas de baja resolución de 128p.
-
El Yaw de Limelight ahora se presenta correctamente en los visualizadores 3D. Es positivo en sentido antihorario en el visualizador e internamente.
-
Indica qué objetivos están siendo rastreados actualmente en el visualizador de espacio de campo
2023.5.0 (21/3/23)
Cambios Importantes
- Corregida regresión - El "Yaw" del Espacio-Robot de Limelight estaba invertido en versiones anteriores. El yaw de Limelight en la interfaz web ahora es positivo en sentido antihorario internamente.
Actualización de Selección de Región
- La selección de región ahora funciona como se esperaba en pipelines de detector neuronal.
- Se añaden 5 nuevas opciones de región para seleccionar el centro, arriba, izquierda, derecha, arriba o abajo del rectángulo objetivo sin rotar.
API REST "hwreport"
- :5807/hwreport devolverá una respuesta JSON detallando los intrínsecos de la cámara e información de distorsión
Corrección de MegaTag
- Ciertos diseños de apriltag no coplanares estaban rotos en MegaTag. Esto ha sido corregido, y la estimación de pose ahora es estable con todas las etiquetas del campo. Esto permite una estimación de pose estable a distancias aún mayores que antes.
Mayor precisión de tx y ty
- TX y TY son más precisos que nunca. Los objetivos están completamente sin distorsión, y el FOV está determinado completamente por los intrínsecos de la cámara.
2023.4.0 (18/2/23)
Filtro de Clase del Detector Neuronal
Especifica las clases que quieres rastrear para filtrar fácilmente detecciones no deseadas.
Soporte expandido del Detector Neuronal
Soporta cualquier resolución de entrada, soporta formas de salida adicionales para soportar otras arquitecturas de detección de objetos. Los modelos basados en EfficientDet0 ahora son compatibles.
2023.3.1 (14/2/23)
Mejoras de Precisión de AprilTag
Matriz de intrínsecos mejorada y, lo más importante, coeficientes de distorsión mejorados para todos los modelos. Mejoras notables en la localización de AprilTag individual.
Carga de Detector
Carga de detector corregida.
2023.3 (13/2/23)
Latencia de Captura (Clave NT: "cl", Resultados JSON: "cl")
La nueva entrada de latencia de captura representa el tiempo entre el final de la exposición de la fila central del sensor de imagen de Limelight y el comienzo del pipeline de procesamiento.
Nuevo Umbral de Calidad para AprilTags
Los AprilTags espurios ahora se filtran más fácilmente con el nuevo deslizador de Umbral de Calidad. El valor predeterminado establecido en 2023.3 debería eliminar la mayoría de las detecciones espurias.
Anulación de Pose de Cámara en Espacio Robot (Claves NT: "camerapose_robotspace_set", "camerapose_robotspace")
La posición de tu Limelight en el espacio del robot ahora puede ajustarse sobre la marcha. Si la clave se establece en un array de ceros, se usa la pose establecida en la interfaz web.
Aquí hay un ejemplo de un Limelight en un elevador:
![]()
Exposición Máxima Aumentada
El tiempo máximo de exposición ahora es 33ms (antes era 12.5 ms). Los modos de captura de alto fps todavía están limitados a (1/fps) segundos. Los pipelines de 90hz, por ejemplo, no tendrán imágenes más brillantes más allá de 11ms de tiempo de exposición.
Actualizaciones de Botpose
Los tres arrays de botpose en networktables tienen una séptima entrada que representa la latencia total (latencia de captura + latencia de seguimiento).
Correcciones de Errores
- Corregidos streams MJPEG de LL3 en shuffleboard
- Corregido camMode - el modo conductor ahora produce imágenes brillantes y utilizables.
- La etiqueta de exposición ha sido corregida - cada "tick" representa 0.01ms y no 0.1 ms
- Corregida carga de detector de red neuronal
2023.2 (28/1/23)
Haciendo el 3D más fácil que nunca.
Botposes Compatibles con WPILib
Botpose ahora es aún más fácil de usar directamente.
Estos coinciden con los sistemas de coordenadas de WPILib. 
Todos los botposes se imprimen directamente en el visualizador de espacio de campo en la interfaz web, facilitando confirmar de un vistazo que todo funciona correctamente.
Acceso Más Fácil a Datos 3D (Cambios Importantes)
RobotPose en TargetSpace es posiblemente el dato más útil que sale de Limelight con respecto a AprilTags. Usando solo esto, puedes alinear perfectamente un tren de transmisión con un AprilTag en el campo.
- La clave NetworkTables "campose" ahora es "camerapose_targetspace"
- La clave NetworkTables "targetpose" ahora es "targetpose_cameraspace"
- Nueva clave NetworkTables - "targetpose_robotspace"
- Nueva clave NetworkTables - "botpose_targetspace"
Carga de Red Neuronal
Sube modelos de teachable machine al Pipeline Clasificador de Limelight. Asegúrate de que sean modelos compatibles con Tensorflow Lite EdgeTPU. Sube archivos .tflite y .txt de etiquetas por separado.
2023.1 (19/1/23)
MegaTag y Mejoras de Rendimiento
Corrigiendo Un Error
El parámetro de tamaño de marcador predeterminado en la UI ha sido corregido a 152.4mm (antes era 203.2mm). Esta era la raíz de la mayoría de los problemas de precisión.
Estabilidad de Seguimiento Aumentada
Hay varias formas de ajustar la detección y decodificación de AprilTag. Hemos mejorado la estabilidad en general, especialmente en entornos de poca luz / baja exposición.
Conversión a Escala de Grises Ultra Rápida
La conversión a escala de grises es 3x-6x más rápida que antes. Los equipos siempre verán un stream de video en gris mientras rastrean AprilTags.
Recorte para Rendimiento
Los pipelines de AprilTag ahora tienen deslizadores de recorte. Recortar tu imagen resultará en framerates mejorados a cualquier resolución.
Filtrado Más Fácil
Ahora hay un único campo "filtro de ID" en los pipelines de AprilTag que filtra la salida JSON, las etiquetas habilitadas para botpose y las etiquetas habilitadas para tx/ty. La configuración de doble filtro era problemática y confusa.
Cambio Importante
La clave NT "camtran" ahora es "campose"
Actualización JSON
"botpose" ahora es parte del volcado de resultados json
Actualización del Visualizador de Espacio de Campo
El visualizador de espacio de campo ahora muestra el campo FRC 2023. Ahora debería ser más fácil juzgar la precisión del botpose de un vistazo.
Limelight MegaTag (nuevo botpose)
Mi prioridad #1 ha sido reescribir botpose para mayor precisión, ruido reducido y resistencia a la ambigüedad. La nueva implementación de botpose de Limelight se llama MegaTag. En lugar de calcular botpose con un promedio simple de múltiples poses individuales en espacio de campo, MegaTag esencialmente combina todas las etiquetas en una etiqueta 3D gigante con varios puntos clave. Esto tiene enormes beneficios.
El siguiente GIF muestra una situación diseñada para inducir el volteo de etiquetas: Cilindro Verde: Pose de bot individual por etiqueta Cilindro Azul: BotPose 2023.0.1 Cilindro Blanco: Nuevo Botpose MegaTag
Observa cómo el nuevo botpose (cilindro blanco) es extremadamente estable comparado con el antiguo botpose (cilindro azul). También puedes observar los valores de tx y ty.
Aquí está la pantalla completa, mostrando la ambigüedad de la etiqueta:
Aquí están las ventajas:
Botpose ahora es resistente a ambigüedades (volteo de etiquetas) si más de una etiqueta está a la vista (a menos que estén cerca y sean coplanares. Idealmente los puntos clave no son coplanares). Botpose ahora es más resistente al ruido en las esquinas de las etiquetas si más de una etiqueta está a la vista. Cuanto más lejos estén las etiquetas entre sí, mejor. Esto no está restringido a etiquetas planares. Escala a cualquier número de etiquetas en 3D completo y en cualquier orientación. Las etiquetas en el piso y las etiquetas en el techo funcionarían perfectamente.
Aquí hay un diagrama que demuestra un aspecto de cómo funciona esto con un caso planar simple. Los resultados son en realidad mejores de lo que se muestra, ya que el MegaTag representado tiene un error significativo aplicado a tres puntos en lugar de un punto. A medida que el MegaTag 3D combinado aumenta en tamaño y en cantidad de puntos clave, su estabilidad aumenta.
¡La carga de redes neuronales se pospone a 2023.2!
2023.0.0 y 2023.0.1 (11/1/23)
Presentando AprilTags, localización de robot, Redes Neuronales Profundas, una interfaz de capturas reescrita y más.
Características, Cambios y Correcciones de Errores
- Nuevo pipeline de captura de sensor y control de Ganancia
- Nuestro nuevo pipeline de captura permite tiempos de exposición 100x más cortos de lo que eran en 2022. El nuevo pipeline también habilita el Control de Ganancia. Esto es extremadamente importante para el seguimiento de AprilTags, y servirá para hacer el seguimiento retroreflectivo más confiable que nunca. Antes de Limelight OS 2023, la ganancia del sensor de Limelight era no determinística (implementamos algunos trucos para que funcionara de todos modos).
- Con el nuevo deslizador "Ganancia del Sensor", los equipos ahora pueden hacer las imágenes más oscuras o más brillantes que nunca sin tocar el deslizador de exposición. Aumentar la ganancia aumentará el ruido en la imagen.
- Combinando menor ganancia con los nuevos tiempos de exposición más bajos, ahora es posible producir imágenes casi completamente negras con LEDs a máximo brillo y objetivos retroreflectivos. Esto ayudará a mitigar los reflejos de LED y luz solar mientras se rastrean objetivos retroreflectivos.
- Al aumentar la Ganancia del Sensor y reducir la exposición, los equipos podrán minimizar los efectos del desenfoque de movimiento debido a tiempos de exposición altos mientras rastrean AprilTags.
- Hemos logrado desarrollar este nuevo pipeline mientras retenemos todas las características - 90fps, zoom por hardware, etc.
- Más Opciones de Resolución
- Hay dos nuevas resoluciones de captura para LL1, LL2 y LL2+: 640x480x90fps y 1280x960x22fps
- Interfaz Web Optimizada
- La interfaz web ahora cargará e inicializará hasta 3x más rápido en redes de robot.
- Interfaz de Capturas Reescrita
- La función de capturas ha sido completamente reescrita para permitir cargas de imágenes, descargas de imágenes y eliminación de imágenes. También hay nuevas APIs para capturar capturas detalladas en la documentación.
- Mejoras de SolvePnP
- Nuestra función de localización de cámara basada en solvePnP tenía un error desagradable que estaba limitando seriamente su precisión cada cuatro frames. Esto ha sido abordado, y se ha construido un nuevo canvas 3D completo para visualizaciones de SolvePNP Retroreflectivo/Color.
- Corrección de Interfaz Web
- Había un problema extremadamente raro en 2022 que causaba que la interfaz web se rompiera permanentemente durante el primer arranque después de flashear, lo que forzaba al usuario a re-flashear. La causa raíz fue encontrada y corregida definitivamente.
- Nuevas APIs
- Limelight ahora incluye APIs REST y Websocket. Las APIs REST, Websocket y NetworkTables todas soportan la nueva función de volcado JSON, que lista todos los datos de todos los objetivos en un formato legible por humanos y fácil de parsear para FRC y todas las demás aplicaciones.
Visión Basada en Aprendizaje Sin Código y Soporte para Google Coral
- Google Coral ahora es compatible con todos los modelos de Limelight. Google Coral es un acelerador de hardware USB de 4TOPs (Trillones de Operaciones / segundo) que está diseñado específicamente para inferencia en redes neuronales de 8 bits.
- Al igual que el seguimiento retroreflectivo hace unos años, la barrera de entrada para la visión basada en aprendizaje en robots FRC ha sido demasiado alta para que el equipo promedio siquiera haga un intento. Hemos desarrollado toda la infraestructura requerida para hacer la visión basada en aprendizaje tan fácil como los objetivos retroreflectivos con Limelight.
- Tenemos un clúster de GPU en la nube, scripts de entrenamiento, una herramienta de agregación de datasets y un equipo de etiquetado humano listos para funcionar. Estamos emocionados de traer redes neuronales profundas a la comunidad FRC por primera vez.
- Actualmente soportamos dos tipos de modelos: modelos de Detección de Objetos y modelos de Clasificación de Imágenes.
- Los modelos de detección de objetos proporcionarán "IDs de clase" y cuadros delimitadores (igual que nuestros objetivos retroreflectivos) para todos los objetos detectados. Esto es perfecto para el seguimiento de piezas de juego en tiempo real.
- Por favor contribuye al primer modelo de detección de objetos FRC enviando imágenes aquí: https://datasets.limelightvision.io/frc2023
- Usa las claves networktables tx, ty, ta y tclass o el volcado JSON para usar redes de detección
- Los modelos de clasificación de imágenes ingerirán una imagen y producirán una única etiqueta de clase.
- Para aprender más y comenzar a entrenar tus propios modelos para Limelight, revisa Teachable Machine de Google.
- https://www.youtube.com/watch?v=T2qQGqZxkD0
- Los modelos de Teachable Machine son directamente compatibles con Limelight.
- Los clasificadores de imágenes pueden usarse para clasificar el estado interno del robot, el estado de características del campo y mucho más.
- Usa la clave networktables tclass para usar estos modelos.
- Los modelos de detección de objetos proporcionarán "IDs de clase" y cuadros delimitadores (igual que nuestros objetivos retroreflectivos) para todos los objetos detectados. Esto es perfecto para el seguimiento de piezas de juego en tiempo real.
- Limelight OS 2023.0 no proporciona la capacidad de subir modelos personalizados. Esto se habilitará pronto en 2023.1
Soporte de AprilTag Sin Código
- Los AprilTags son tan fáciles como los objetivos retroreflectivos con Limelight. Debido a que tienen un filtro duro natural en forma de ID, hay aún menos razón para que tu roboRIO haga cualquier filtrado relacionado con visión.
- Para comenzar, usa tx, ty y ta como siempre. No se requieren cambios de código. Ordena por cualquier característica del objetivo, utiliza grupos de objetivos, etc.
- Debido a que los AprilTags son siempre cuadrados y siempre identificables de forma única, proporcionan la plataforma perfecta para cálculos de pose 3D completos.
- Los comentarios que hemos recibido para esta función en nuestros canales de soporte han sido extremadamente positivos. Hemos hecho los AprilTags lo más fáciles posible, desde seguimiento 2D hasta localización completa de robot 3D en el campo
- Revisa la Especificación del Mapa de Campo y el Documento del Sistema de Coordenadas para información más detallada.
- Hay cuatro formas de usar AprilTags con Limelight:
- AprilTags en 2D
- Usa tx, ty y ta. Configura tus pipelines para buscar un ID de etiqueta específico.
<gif>
- AprilTags 3D de Punto de Interés
- Usa las claves networktables tx y ty, ta y tid. El desplazamiento del punto de interés es todo lo que la mayoría de los equipos necesitarán para rastrear objetivos que no tienen AprilTags directamente adjuntos.
<gif>
- 3D Completo
- Rastrea tu LL, tu robot o etiquetas en 3D completo. Usa campose o json para extraer datos relevantes a tu roboRio.
<gif>
- Localización de Robot en Espacio de Campo
- Dile a tu Limelight cómo está montado, sube un mapa de campo, y tu LL proporcionará la pose de campo de tu robot para usar con el Estimador de Pose de WPILib.
- Nuestro sistema de coordenadas de campo coloca (0,0) en el centro del campo en lugar de una esquina.
- Usa la clave networktables botpose para esta función.
<gif>
2022.3.0 (13/4/22)
Correcciones de errores y heartbeat.
Correcciones de Errores
- Corregidos problemas de rendimiento, estabilidad de stream y lag de stream relacionados con streams de Cámara USB y múltiples instancias de stream.
Características y Cambios
- Clave NetworkTable "hb" Heartbeat
- El valor "hb" se incrementa una vez por frame de procesamiento, y se reinicia a cero en 2000000000.
2022.2.3 (16/3/22)
Correcciones de errores y filtrado de recorte desde código de robot.
Correcciones de Errores
- Corregida clave networktables "stream" y Modos Picture-In-Picture
- Corregida clave networktables "snapshot". Los usuarios deben establecer la clave "snapshot" a "0" antes de establecerla a "1" para tomar una captura.
- Eliminadas alertas superfluas relacionadas con python de la interfaz web
Características y Cambios
- Filtrado de Recorte Manual
- Usando el array networktables "crop", los equipos ahora pueden controlar rectángulos de recorte desde el código del robot.
- Para que la clave "crop" funcione, el pipeline actual debe utilizar el rectángulo de recorte predeterminado, completamente abierto (-1 para minX y minY, +1 para maxX y +1 maxY).
- Además, el array networktable "crop" debe tener exactamente 4 valores, y al menos uno de esos valores debe ser distinto de cero.
2022.2.2 (23/2/22)
Actualización obligatoria para todos los equipos basada en pruebas de confiabilidad de Semana 0 y FMS.
Correcciones de Errores
- Corregido cuelgue / pérdida de conexión / pérdida de seguimiento relacionado con interfaces web abiertas, FMS, configuraciones similares a FMS, múltiples dispositivos de visualización, etc.
Características y Cambios
-
Filtrado de Recorte
- Ignora todos los píxeles fuera de un rectángulo de recorte especificado
- Si tu volante tiene puntos óptimos en el campo, puedes usar el filtro de recorte para ignorar la gran mayoría de píxeles en pipelines específicos. Esta función debería ayudar a los equipos a reducir la probabilidad de rastrear no-objetivos.
- Si estás rastreando cargo, usa esta función para buscar cargo solo dentro de una parte específica de la imagen. Considera ignorar los parachoques de tu equipo, objetivos lejanos, etc.
-
La función de esquinas ahora es compatible con agrupación inteligente de objetivos
- Esta es para los equipos que quieren hacer visión personalizada más avanzada en el RIO
- Límite de esquinas "tcornxy" aumentado a 64 esquinas
- Las funciones de simplificación de contorno y forzar convexo ahora funcionan correctamente con agrupación inteligente de objetivos y envío de esquinas
-
Máximo del Filtro IQR aumentado a 3.0
-
Tasa de actualización de objetivo en vivo de la interfaz web reducida de 30fps a 15fps para reducir el ancho de banda y la carga de CPU mientras la interfaz web está abierta
2022.1 (25/1/22)
Correcciones de errores
- Adquirimos información de uno de nuestros proveedores sobre un problema (¡y una solución!) que afecta aproximadamente a 1/75 de los CPUs específicamente utilizados en Limelight 2 (puede estar relacionado con un lote específico). Tiene sentido, y era una de las únicas diferencias de arranque restantes entre la imagen 2022 y la imagen 2020.
- Corrección de los botones de carga para entradas GRIP y modelos SolvePNP
Características
-
Arcoíris de Tono
- El nuevo arcoíris de tono facilita la configuración del umbral de tono.
-
Inversión de Tono
- La nueva función de inversión de tono es una característica crítica si deseas rastrear objetos rojos, ya que el rojo está tanto al principio como al final del rango de tono:
-
Nuevas Bibliotecas de Python
- Se agregaron scipy, scikit-image, pywavelets, pillow y pyserial a nuestro sandbox de python.
2022.0 y 2022.0.3 (15/1/22)
Esta es una actualización importante. Aquí están los cuatro cambios principales:
Características
-
Agrupación Inteligente de Objetivos
- Agrupa automáticamente los objetivos que pasan todos los filtros de objetivos individuales.
- Agrupará dinámicamente cualquier número de objetivos entre -mínimo del control deslizante de tamaño de grupo- y -máximo del control deslizante de tamaño de grupo-
-
Rechazo de Valores Atípicos
- Aunque este objetivo es más desafiante que otros objetivos, nos brinda más oportunidades para filtrar. Conceptualmente, este objetivo es más que un "blob verde". Dado que sabemos que el objetivo está compuesto por múltiples objetivos que están cerca uno del otro, podemos rechazar objetivos atípicos que están aislados.
- Deberías confiar casi por completo en un buen filtrado de objetivos para el objetivo de este año, y solo usar el rechazo de valores atípicos si ves o esperas valores atípicos espurios en tu transmisión de cámara. ¡Si tienes un filtrado de objetivos estándar deficiente, la detección de valores atípicos podría comenzar a trabajar en tu contra!
-
Mejoras de Imagen Limelight 2022 Hemos eliminado cientos de partes móviles de nuestro software. Estos son los resultados:
- Tamaño de imagen comprimida: 1.3 GB en 2020 → 76MB para 2022 (¡Reducido por un factor de 17!)
- Tiempo de descarga: decenas de minutos en 2020 → segundos para 2022
- Tiempo de flasheo: 5+ minutos en 2020 → segundos para 2022
- Tiempo de arranque: 35+ segundos en 2020 → 14 segundos para 2022 (10 segundos hasta que los LEDs se encienden)
-
Scripting Completo en Python
- Limelight ha expuesto exitosamente a un gran número de estudiantes a algunas de las capacidades de la visión por computadora en robótica. Con scripting en python, los equipos ahora pueden dar otro paso adelante escribiendo sus propios pipelines de procesamiento de imágenes.
-
Esta actualización es compatible con todo el hardware Limelight, incluyendo Limelight 1.
-
Problemas conocidos: Usar zoom por hardware con python producirá resultados inesperados.
-
2022.0.3 restaura el stream GRIP 5802, y aborda problemas de arranque en algunas unidades LL2 revirtiendo algunas de las optimizaciones de tiempo de arranque. El tiempo de arranque se incrementa a 16 segundos.