Saltar al contenido principal

Registro de Cambios del Software 2021 - 2023

2023.6 (18/04/23)

Calibración ChArUco Fácil y Visualizadores de Calibración

  • La calibración ChArUco se considera mejor que la calibración de tablero de ajedrez porque maneja oclusiones, detecciones deficientes de esquinas y no requiere que todo el tablero sea visible. Esto hace que sea 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 del coeficiente 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 dedicado mucho esfuerzo para hacer este proceso lo más infalible posible.
  • Lo más importante es que puedes visualizar tus resultados de calibración justo al lado de 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 una herramienta de aprendizaje. Puedes modificar archivos de resultados de calibración descargados y volver a cargarlos para aprender cómo la matriz de intrínsecos y los coeficientes de distorsión afectan los resultados de orientación, campo de visión, etc.
  • Mira este video:

2023.5.1 & 2023.5.2 (22/03/23)

  • Se corrigió la regresión introducida en 2023.5.0 - Mientras que 2023.5 arregló megatag para todos los diseños no planares, redujo el rendimiento de las estimaciones de pose de etiqueta única. Esto ha sido corregido. Las estimaciones de pose de etiqueta única utilizan exactamente el mismo solucionador usado en 2023.4.

  • Interfaz de instantáneas más ágil. La cuadrícula de instantáneas 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 tanto en el visualizador como internamente.

  • Se indica qué objetivos están siendo rastreados actualmente en el visualizador de espacio de campo.


2023.5.0 (21/03/23)

Cambios Importantes

  • Se corrigió la regresión - El "Yaw" en espacio del robot de Limelight estaba invertido en versiones anteriores. El yaw de Limelight en la interfaz web ahora es CCW-Positivo internamente.

Actualización de Selección de Región

  • La selección de región ahora funciona como se espera en las tuberías del detector neural.
  • Se agregaron 5 nuevas opciones de región para seleccionar el centro, arriba, izquierda, derecha o parte inferior del rectángulo objetivo sin rotar.

API REST "hwreport"

  • :5807/hwreport devolverá una respuesta JSON detallando la información de intrínsecos y distorsión de la cámara

Corrección de MegaTag

  • Ciertos diseños de apriltags no coplanares estaban rotos en MegaTag. Esto ha sido corregido, y la estimación de pose ahora es estable con todas las etiquetas de campo. Esto permite una estimación de pose estable incluso a distancias mayores que antes.

Mayor precisión en tx y ty

  • TX y TY son más precisos que nunca. Los objetivos están completamente sin distorsión, y el campo de visión está determinado totalmente por los intrínsecos de la cámara.

2023.4.0 (18/02/23)

Filtro de Clases del Detector Neural

Especifica las clases que deseas rastrear para filtrar fácilmente las detecciones no deseadas.

Soporte expandido del Detector Neural

Soporta cualquier resolución de entrada, soporta formas de salida adicionales para admitir otras arquitecturas de detección de objetos. Los modelos basados en EfficientDet0 ahora son compatibles.


2023.3.1 (14/2/23)

Mejoras en la 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 del Detector

Se corrigió la carga del detector.


2023.3 (13/02/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 proceso de procesamiento.

Nuevo Umbral de Calidad para AprilTags

Los AprilTags espurios ahora se filtran más fácilmente con el nuevo control deslizante 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 del 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 una matriz de ceros, se utiliza la pose establecida en la interfaz web.

Aquí hay un ejemplo de un Limelight en un elevador: Limelight en Elevador

Exposición Máxima Aumentada

El tiempo máximo de exposición es ahora de 33ms (aumentado desde 12.5 ms). Los modos de captura de alto fps siguen limitados a (1/fps) segundos. Las tuberías de 90hz, por ejemplo, no tendrán imágenes más brillantes después de 11ms de tiempo de exposición.

Actualizaciones de Botpose

Las tres matrices de botpose en networktables tienen una séptima entrada que representa la latencia total (latencia de captura + latencia de objetivo).

Correcciones de Errores

  • Arreglo de transmisiones MJPEG de LL3 en shuffleboard
  • Arreglo del camMode - el modo conductor ahora produce imágenes brillantes y utilizables
  • La etiqueta de exposición ha sido corregida - cada "marca" representa 0.01ms y no 0.1 ms
  • Arreglo de la carga del detector de red neuronal

2023.2 (28/1/23)

Haciendo el 3D más fácil que nunca.

Botposes compatibles con WPILib

Botpose es ahora aún más fácil de usar desde el primer momento.

Estos coinciden con los sistemas de coordenadas de WPILib. ejemplo de megatag botpose:

Todas las botposes se muestran directamente en el visualizador de espacio de campo en la interfaz web, lo que facilita 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 proporciona Limelight con respecto a AprilTags. Usando solo esto, puedes alinear perfectamente un tren de transmisión con un AprilTag en el campo.

  • Clave NetworkTables "campose" ahora es "camerapose_targetspace"
  • Clave NetworkTables "targetpose" ahora es "targetpose_cameraspace"
  • Nueva clave NetworkTables - "targetpose_robotspace"
  • Nueva clave NetworkTables - "botpose_targetspace"

Carga de Red Neuronal

Carga modelos de teachable machine al Pipeline Clasificador de Limelight. Asegúrate de que sean modelos compatibles con Tensorflow Lite EdgeTPU. Carga los archivos .tflite y .txt de etiquetas por separado.


2023.1 (19/01/23)

MegaTag y Mejoras de Rendimiento

Corrigiendo un Error

El parámetro de tamaño del marcador predeterminado en la interfaz de usuario se ha corregido a 152.4mm (reducido desde 203.2mm). Esta era la causa principal de la mayoría de los problemas de precisión.

Mayor Estabilidad de Seguimiento

Hay varias formas de ajustar la detección y decodificación de AprilTag. Hemos mejorado la estabilidad en general, especialmente en entornos de baja luz / baja exposición.

Conversión a Escala de Grises Ultra Rápida

La conversión a escala de grises es 3-6 veces más rápida que antes. Los equipos siempre verán una transmisión de video en gris mientras rastrean AprilTags.

Recorte para Mejorar el Rendimiento

Los pipelines de AprilTag ahora tienen controles deslizantes de recorte. Recortar tu imagen resultará en mejores tasas de fotogramas a cualquier resolución.

Filtrado más Sencillo

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 de botpose a simple vista.

Limelight MegaTag (nuevo botpose)

Mi prioridad #1 ha sido reescribir botpose para mayor precisión, menor ruido 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 el espacio de campo, MegaTag esencialmente combina todas las etiquetas en una gigantesca etiqueta 3D 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 del robot por etiqueta individual Cilindro Azul: BotPose 2023.0.1 Cilindro Blanco: Nuevo Botpose MegaTag

Observa cómo el nuevo botpose (cilindro blanco) es extremadamente estable en comparación con el antiguo botpose (cilindro azul). También puedes ver los valores tx y ty.

Aquí está la pantalla completa, mostrando la ambigüedad de la etiqueta:

Estas son las ventajas:

Botpose ahora es resistente a ambigüedades (volteo de etiquetas) si hay más de una etiqueta a la vista (a menos que estén cerca y coplanares. Idealmente los puntos clave no son coplanares). Botpose ahora es más resistente al ruido en las esquinas de las etiquetas si hay más de una etiqueta a la vista. Cuanto más alejadas estén las etiquetas entre sí, mejor. Esto no está restringido a etiquetas planares. Se escala a cualquier número de etiquetas en 3D completo y en cualquier orientación. Las etiquetas en el suelo y 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 que lo representado, ya que el MegaTag representado tiene un error significativo aplicado a tres puntos en lugar de uno. A medida que el MegaTag 3D combinado aumenta en tamaño y en cantidad de puntos clave, su estabilidad aumenta.

¡La carga de la Red Neural se pospone para 2023.2!


2023.0.0 y 2023.0.1 (11/1/23)

Presentamos AprilTags, localización de robots, Redes Neuronales Profundas, una interfaz de capturas de pantalla reescrita y más.

Características, Cambios y Correcciones

  • Nuevo pipeline de captura de sensores y control de Ganancia
    • Nuestro nuevo pipeline de captura permite tiempos de exposición 100 veces más cortos que 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 determinista (implementamos algunos trucos para hacerlo funcionar de todos modos).
    • Con el nuevo control deslizante "Ganancia del Sensor", los equipos pueden hacer las imágenes más oscuras o brillantes que nunca sin tocar el control de exposición. Aumentar la ganancia incrementará el ruido en la imagen.
    • Combinando una ganancia más baja con los nuevos tiempos de exposición más bajos, ahora es posible producir imágenes casi completamente negras con LEDs de brillo completo 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 por movimiento debido a altos tiempos de exposición mientras rastrean AprilTags.
    • Hemos logrado desarrollar este nuevo pipeline manteniendo 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 3 veces más rápido en redes de robots.
  • Interfaz de Capturas Reescrita
    • La función de capturas ha sido completamente reescrita para permitir cargas, descargas y eliminación de imágenes. También hay nuevas APIs para capturar instantáneas detalladas en la documentación.
  • Mejoras en SolvePnP
    • Nuestra función de localización de cámara basada en solvePnP tenía un error desagradable que limitaba seriamente su precisión cada cuatro frames. Esto ha sido solucionado, y se ha construido un nuevo lienzo 3D completo para visualizaciones de SolvePNP Retroreflectivo/Color.
  • Corrección de la 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 volver a 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 soportan la nueva función de volcado JSON, que lista todos los datos para todos los objetivos en un formato legible y fácil de analizar 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 Limelight. Google Coral es un acelerador de hardware USB de 4TOPs (Billones de Operaciones por segundo) construido 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 lo intente. Hemos desarrollado toda la infraestructura necesaria para hacer que la visión basada en aprendizaje sea 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 conjuntos de datos y un equipo de etiquetado humano listos para usar. 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 tx, ty, ta y tclass de networktables 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 las características del campo y mucho más.
      • Usa la clave tclass de networktables para usar estos modelos.
  • Limelight OS 2023.0 no proporciona la capacidad de cargar modelos personalizados. Esto se habilitará próximamente en 2023.1

Soporte de AprilTags 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 incluso menos razón para que tu roboRIO realice cualquier filtrado relacionado con la 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 manera única, proporcionan la plataforma perfecta para cálculos de pose 3D completos.
  • La retroalimentación que hemos recibido para esta característica en nuestros canales de soporte ha sido extremadamente positiva. Hemos hecho los AprilTags lo más fácil posible, desde el seguimiento 2D hasta una localización completa del robot en 3D en el campo.
  • Consulta la Especificación del Mapa de Campo y el Documento del Sistema de Coordenadas para obtener 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 de Punto de Interés 3D
    • Usa las claves tx y ty, ta y tid de networktables. 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 en tu roboRio.
    • <gif>
  • Localización de Robot en Espacio de Campo
    • Dile a tu Limelight cómo está montado, carga 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 botpose de networktables para esta característica.
    • <gif>

2022.3.0 (13/4/22)

Correcciones de errores y latido.

Correcciones de errores

  • Corrección de problemas de rendimiento, estabilidad del flujo y retraso del flujo relacionados con las transmisiones de cámara USB y múltiples instancias de transmisión.

Características y Cambios

  • Clave "hb" de Heartbeat en NetworkTable
    • El valor "hb" se incrementa una vez por cada cuadro de procesamiento y se reinicia a cero en 2000000000.

2022.2.3 (16/03/22)

Corrección de errores y filtrado de recorte desde código del robot.

Corrección de errores

  • Corrección de la clave "stream" de networktables y Modos Picture-In-Picture
  • Corrección de la clave "snapshot" de networktables. Los usuarios deben establecer la clave "snapshot" a "0" antes de establecerla a "1" para tomar una captura de pantalla.
  • Eliminación de alertas superfluas relacionadas con Python de la interfaz web

Características y Cambios

  • Filtrado Manual de Recorte
    • Usando el array "crop" de networktables, los equipos ahora pueden controlar los 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 y completamente abierto (-1 para minX y minY, +1 para maxX y +1 maxY).
    • Además, el array "crop" de networktables debe tener exactamente 4 valores, y al menos uno de esos valores debe ser distinto de cero.

2022.2.2 (23/02/22)

Actualización obligatoria para todos los equipos basada en la Semana 0 y pruebas de fiabilidad del FMS.

Corrección de errores

  • Corrección de bloqueos / pérdida de conexión / pérdida de objetivos relacionados 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 utilizar el filtro de recorte para ignorar la mayoría de los píxeles en pipelines específicas. Esta característica debería ayudar a los equipos a reducir la probabilidad de rastrear objetivos no deseados.
    • Si estás rastreando cargo, usa esta característica para buscar cargo solo dentro de una parte específica de la imagen. Considera ignorar los parachoques de tu equipo, objetivos lejanos, etc.
  • Característica de esquinas ahora compatible con agrupación inteligente de objetivos

    • Esto 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
    • La simplificación de contornos y las características de fuerza convexa ahora funcionan correctamente con la agrupación inteligente de objetivos y el envío de esquinas
  • Filtro IQR máximo aumentado a 3.0

  • Tasa de actualización de objetivos 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)

Corrección de errores

  • Obtuvimos información de uno de nuestros proveedores sobre un problema (¡y una solución!) que afecta aproximadamente a 1/75 de las CPUs específicamente utilizadas 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 de 2022 y la imagen de 2020.
  • Arreglo de los botones de carga para entradas GRIP y Modelos SolvePNP

Características

  • Arcoíris de Matiz

    • El nuevo arcoíris de matiz facilita la configuración del umbral de matiz.
  • Inversión de Matiz

    • La nueva función de inversión de matiz es una característica crítica si deseas rastrear objetos rojos, ya que el rojo se encuentra tanto al principio como al final del rango de matiz:
  • Nuevas Bibliotecas Python

    • Se agregaron scipy, scikit-image, pywavelets, pillow y pyserial a nuestro entorno de pruebas 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 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

    • Si bien este objetivo es más desafiante que otros objetivos, nos da más oportunidades de filtrado. Conceptualmente, este objetivo es más que una "mancha verde". Como sabemos que el objetivo está compuesto por múltiples blancos que están cerca uno del otro, podemos rechazar objetivos atípicos que se encuentran aislados.
    • Este año deberías confiar casi exclusivamente en un buen filtrado de objetivos, y usar el rechazo de valores atípicos solo 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: 10s de minutos en 2020 → segundos para 2022
    • Tiempo de grabación en flash: 5+ minutos en 2020 → segundos para 2022
    • Tiempo de arranque: 35+ segundos en 2020 → 14 segundos para 2022 (10 segundos hasta que se encienden los LEDs)
  • Programación Completa 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 la programación en Python, los equipos ahora pueden dar un 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 la transmisión GRIP 5802 y soluciona problemas de arranque en algunas unidades LL2 revirtiendo algunas de las optimizaciones de tiempo de arranque. El tiempo de arranque aumenta a 16 segundos.