Saltar al contenido principal

Registro de cambios del software y comentarios

Envía problemas y solicitudes de funciones por correo electrónico o al Repositorio de comentarios de Limelight

Limelight OS 2024.10 (9/4/24)

Soporte para Limelight 3A en FTC

  • Limelight3A es totalmente compatible
  • 3A se puede utilizar tanto en FTC como en FTC

Actualizaciones del Mapa de AprilTag

  • El editor de mapas ahora admite la generación de mapas FTC estándar y de diamante
  • La interfaz web de LLOS mostrará automáticamente el tipo de campo correcto según el mapa cargado
  • Todos los visualizadores de campo en las herramientas e interfaces muestran zonas de alianza y cuadrículas de baldosas ftc.
  • Se ha mejorado el rendimiento del visualizador 3D.

Soporte de Limelight USB en ControlHub y RoboRio

  • Los equipos de FTC pueden usar un solo Limelight compatible con USB en el Control Hub
  • Los equipos de FRC pueden usar hasta 16 Limelights compatibles con USB en el RoboRio. Los Limelights USB auto-completan las networktables al igual que los Limelights ethernet.
    • Para usar múltiples Limelights USB, asigne a cada LL un índice USB único y un nombre de host único.

Mejoras de Conectividad USB

  • MacOS ya no utiliza la interfaz Limelight Ethernet USB para el acceso a Internet
  • Windows ya no intenta utilizar la interfaz Limelight Ethernet USB para el acceso a Internet

Actualizaciones de la API REST

  • Se corrigió la solicitud POST de update-robotorientation.
  • MT2 ahora es totalmente accesible sin NetworkTables.
  • Una vez que se utiliza la ruta update-robotorientation, las actualizaciones de orientación de NetworkTables se desactivan hasta el reinicio.

Limelight OS 2024.9.1 (7/7/24)

  • La Herramienta de Construcción de Mapas ahora acepta/convierte diseños de apriltag .json de WPILib
  • Se agregó AprilTag3 a los Snapscripts de Python (from apriltag import apriltag)
  • Ver ejemplo en el repositorio de ejemplos de GitHub
  • Se corrigió el problema de conectividad del gateway USB en Windows.

captura de pantalla del mosaico:

Limelight OS 2024.9 (7/5/24)

Mejoras de MegaTag

  • Limelight OS ha hecho la transición a NetworkTables 4.0

  • MegaTag2 ahora utiliza getAtomic() de NT4 para recuperar actualizaciones de IMU con marca de tiempo desde el 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. Agregar 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 plegables, y los robots virtuales se pueden ocultar.

  • 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

  • Establece 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 establece 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 concentrador USB ajustando sus nombres de host y USB IDs

Clasificadores neuronales de CPU

  • Sube un clasificador .tflite de CPU para habilitar la clasificación neural sin Google Coral. Puedes esperar 15-18 FPS en variantes LL3.
  • 2024.9 viene con un clasificador de CPU predeterminado.
  • Establece el tiempo de ejecución del clasificador en "CPU" para habilitar esta función

Detectores neuronales de CPU

  • Sube un detector .tflite de CPU para habilitar la detección neural sin Google Coral. Puedes esperar 10 FPS en variantes LL3.
  • 2024.9 viene con un detector de CPU predeterminado.
  • Establece el tiempo de ejecución del detector en "CPU" para habilitar esta función

Limelight OS 2024.8 (7/3/24)

  • Añadir salida de Python (PythonOut), tx, ty, txnc, tync, ta al objeto de resultados json
  • Mejora adicional de la compensación de latencia MT2

Limelight OS 2024.7 (21/05/24)

  • Actualización a Linux 6.6

Correcciones de errores

  • Corrección de la conversión del pipeline de visión
  • Corrección de las subidas de calibración, subidas de instantáneas y subidas de redes neuronales

Limelight OS 2024.6 (5/8/24)

LimelightLib Python

  • pip install limelightlib-python
  • Nuestra biblioteca de Python te permite interactuar con Limelights USB y Ethernet en cualquier plataforma.
  • Permite una configuración completa de Limelight sin interacción con la interfaz web.
  • Carga 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 personalizados de Python, establece la orientación del robot, etc.

Mejoras de MegaTag2

  • Se ha mejorado la compensación de latencia del giroscopio de MegaTag2. ¡Espera más mejoras pronto!
  • Se añadió el control deslizante "Ajuste de latencia del giroscopio" a la interfaz de usuario. 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 durante la rotación.

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 "Enfoque"

  • En el modo "enfoque", tendrás acceso a un control deslizante de calidad de transmisión y un control deslizante de recorte
  • Gira la lente para maximizar la puntuación de "enfoque".
  • 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 "Códigos de Barras"

  • 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
  • UPC, EAN, Code128 y PDF417 múltiples a 30FPS a 1280x800
  • Las cadenas de datos de códigos de barras se publican en el array nt "rawbarcodes".
  • El pipeline de Códigos de Barras 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 una configuración completa de Limelight sin interacción con la interfaz web.
  • Carga 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, establece la orientación del robot, etc.

Eliminación de la Configuración de Orientación de la Cámara de la Interfaz (CAMBIO IMPORTANTE)

  • Esto ha sido reemplazado por la opción "orientación de transmisión". La calibración y el apuntado nunca se ven afectados por esta opción.
  • La nueva opción solo afecta a la transmisión. Boca abajo, 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 al usar cámaras rotadas.

Eliminación del Soporte GRIP (CAMBIO IMPORTANTE)

Eliminación del Modo "Driver" de Cero Procesamiento (CAMBIO IMPORTANTE)

  • Esto ha sido reemplazado por el tipo de pipeline "Visor"

Adición del Tipo de Pipeline "Visor"

  • El pipeline de visor desactiva todo el procesamiento para una 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 siguen usando la extensión de archivo .vpr
  • (Roto en algunos casos en 2024.6) La interfaz de usuario convertirá automáticamente los pipelines a JSON cuando uses el botón "subir".
  • (Totalmente funcional) También puedes usar https://tools.limelightvision.io/pipeline-upgrade para actualizar tus pipelines

Mejora de la Experiencia de Usuario en 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 se ha 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 lo que cada imagen está contribuyendo a tu calibración.

captura de pantalla del mosaico:

Región de Apuntado "Centroide"

  • Se ha añadido el modo de apuntado centroide a la pestaña "Salida" para mejorar el seguimiento de objetos con pipelines de color

Desplazamiento 3D Dinámico (NT: fiducial_offset_set)

  • Ahora es posible ajustar el Desplazamiento 3D sin cambiar pipelines. Esto es útil para situaciones en las que tu "punto de apuntado" necesita cambiar según la distancia u otras propiedades.

Adición de Soporte Modbus

  • Limelight OS ahora tiene un servidor modbus siempre activo para aplicaciones de inspección, logística e industriales
  • Consulta la especificación de registros modbus aquí: https://docs.limelightvision.io/docs/docs-limelight/apis/modbus
  • El puerto del servidor modbus predeterminado se puede cambiar en la pestaña de configuración de la interfaz de usuario
  • A través de modbus y pipelines python de snapscript, ahora se admiten 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 de cristal ejecutándose en una PC, y Limelight 3G comunicándose a través de USB.

Cambios en Rawfiducial

  • El valor de "área" de los fiduciales crudos ahora es un valor calibrado y normalizado que va de ~0 a 1

Todos los Cambios en NetworkTables y JSON

  • Adición de NT getpipetype - Obtener la cadena del tipo de pipeline actual (ej. pipe_color, pipe_fiducial)

  • Adición de NT tcclass - Nombre de la clase detectada por el pipeline clasificador

  • Adición de NT tdclass - Nombre de la clase detectada por el pipeline detector

  • Adición de NT t2d para apuntado 2d atómico garantizado - [valid,targetcount, targetlatency, capturelatency, tx, ty, txnc, tync, ta, targetid, classifierID, detectorID, tlong, tshort, thor, tvert, ts(skew)]

  • Eliminación de NT tlong, tshort, thor, tvert, y ts

  • Adición del array NT 'crosshairs' [cx0,cy0,cx1,cy1]

  • Eliminación de NT cx0, cy0, cx1, y cy1

  • Adición de NT rawbarcodes - Array de Cadenas NT de datos de códigos de barras. Hasta 32 entradas.

  • Todos los arrays "raw" permiten hasta 32 objetivos (aumentado desde 8)

  • Adición de fiducial_offset_set para establecer el Desplazamiento 3D dinámico

  • Adición de "pType" al resultado de nivel superior de json

  • Adición de "stdev_mt1" y "stdev_mt2" al resultado de nivel superior de json (x,y,z,roll,pitch,yaw) (metros, grados)

Cambios en Otros Formatos de Archivo y Volcados JSON

  • El formato del archivo de calibración se ha simplificado. Las calibraciones antiguas se convierten automáticamente al nuevo formato al subirlas
  • Se ha eliminado una capa de anidación de los volcados JSON de Resultados y Estado

Correcciones de Errores

  • Anteriormente, si se desconectaba un Google Coral mientras un pipeline Neural estaba activo, el pipeline volvía permanentemente al modo "color/retro"
    • Ahora, se imprimirá "CHECK CORAL" o "CHECK MODEL" en la imagen. El tipo de pipeline nunca cambiará
  • Anteriormente, las etiquetas que pasaban exitosamente por el filtro de ID fiducial a veces se dibujaban con un contorno rojo en lugar de verde. Este problema de visualización ha sido corregido.
  • Los pipelines de Apriltag ahora pueblan el array NT tcornxy
  • Los pipelines de Apriltag ahora respetan completamente el control deslizante de área mínima-máxima. Anteriormente, los pipelines de AprilTag filtraban los resultados 2D basados en el Área de la Etiqueta, pero no los Resultados de Localización / 3D.

Limelight OS 2024.5.0 (9/4/24)

  • Actualización a Linux 6.1

Actualización del Stack de Cámara

  • Se ha actualizado todo el stack de cámara para solucionar un bloqueo del periférico de cámara en Limelight3G.
    • Los síntomas incluyen
  • Asegúrese 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 establecer "fiducial_downscale_set" para anular la configuración de reducción de escala del pipeline actual
  • 0:Control de UI, 1:1x, 2:1.5x, 3:2x, 4:3x, 5:4x
  • Use el nuevo método Helpers con 0.0 (Control de UI), 1.0, 1.5, 2.0, 3.0, 4.0
  • Esta es una operación sin sobrecarga.
  • Al combinar la reducción de escala dinámica y el recorte dinámico, los equipos pueden maximizar los FPS sin gestionar múltiples pipelines

Mejoras en MegaTag2

  • MT2 ahora funciona sin importar la orientación de Limelight, incluyendo modos "retrato" con giros de 90 grados y -90 grados

Array "rawdetections" en nt

  • [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 admiten hasta 10 pasos de dilatación y 10 pasos de erosión
  • Los pipelines de color ahora tienen una opción de "morfología inversa" para invertir el orden de los pasos de dilatación y erosión

LimelightLib 1.6 (9/4/24)

  • Añadir void SetFiducialDownscalingOverride(float downscale)

Establecer a 0 para control de 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ñadir RawFiducial[] GetRawFiducials()
  • Añadir RawDetection[] GetRawDetections()

Limelight OS 2024.4.0 (3/4/24)

Gracias a todos los equipos que contribuyeron con ideas para esta actualización.

Megatag 2

Megatag 2 es un localizador sin ambigüedades. Tiene mayor precisión y exactitud que Megatag1, y fue construido con los siguientes requisitos:

  • Eliminar el problema de ambigüedad de pose y aumentar la robustez frente al ruido de imagen/esquinas.
  • Proporcionar excelentes estimaciones de pose dado uno o más tags, sin importar la perspectiva.
  • Aumentar la robustez frente a imprecisiones en la colocación física de AprilTags
  • Reducir la cantidad de filtrado necesario del lado del robot para obtener buenos resultados de estimación de pose

Observe la diferencia entre MegaTag2 (robot rojo) y Megatag (robot azul) en este caso de un solo tag altamente ambiguo:

Megatag2 requiere que establezca la orientación de su robot con una nueva llamada a 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 resultados excelentes y sin ambigüedades a cualquier distancia dado un solo tag. Esto significa que es perfectamente viable enfocarse solo en tags que sean relevantes y estén dentro de su tolerancia de colocación deseada. Si un tag no está en la ubicación correcta o es irrelevante, filtrelo con la nueva función de filtro dinámico.

Filtrado Dinámico de Apriltag

  • Dado que MegaTag2 no está desesperado por acumular tantos AprilTags como sea posible, puede filtrar de manera segura los tags bien colocados y relevantes:
int[] validIDs = {3,4};
LimelightHelpers.SetFiducialIDFiltersOverride("limelight", validIDs);

Transición a MegaTag2

Megatag2 requiere la orientación de su robot para funcionar correctamente. Una orientación de 0 grados, 360 grados, 720 grados, etc. significa que su robot está mirando hacia la pared de la alianza roja. Esta es la misma convención utilizada en PathPlanner, Chorero, Botpose y Botpose_wpiblue.

Una vez que haya agregado SetRobotOrientation() a su código, verifique el visualizador 3D incorporado. A corta distancia, Megatag2 y Megatag1 deberían coincidir estrechamente, 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 incorporado muestre buenos resultados, puede usar Megatag2 de manera segura para guiar su robot durante el período autónomo.

El único filtro que recomendamos agregar es un filtro de "velocidad angular máxima". Puede encontrar que a altas velocidades angulares, sus 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 (4/3/24)

Añadir

getBotPoseEstimate_wpiRed_MegaTag2()
getBotPoseEstimate_wpiBlue_MegaTag2()
SetRobotOrientation()

Limelight OS 2024.3.4 (20/03/24)

Gracias a todos los equipos que contribuyeron con ideas para esta actualización.

Solucionador de Etiqueta Única de Mayor Precisión

El solucionador 3D de etiqueta única de MegaTag ha sido mejorado. Es mucho más estable que antes a larga distancia.

JSON Desactivado por Defecto (Cambio Importante)

  • JSON se ha desactivado por defecto para reducir el uso de ancho de banda y en general para los equipos que utilizan paneles de control con suscripción automática como Shuffleboard.
  • Esto también debería reducir la carga de NT y el uso de CPU en el RoboRIO.
  • Vuelve a activar json por pipeline en la pestaña de salida.
  • Esta actualización incluye cambios que deberían permitir que aún más equipos dejen de usar JSON para la estimación de pose.

Área Sin Distorsión (Cambio Importante)

Las esquinas se corrigen de la distorsión antes de calcular el área de cualquier objetivo.

Inclusión de 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 etiqueta utilizada por la localización de megatag, los arrays anteriores ahora incluyen (tagID, txnc, tync, ta, distanceToCamera, distanceToRobot, ambiguity)

Ambiguity es una nueva métrica que va de 0 a 1 e indica la ambigüedad de la perspectiva actual de la etiqueta. Las actualizaciones de etiqueta única con ambigüedades de etiqueta > 0.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

  • Se ponen a cero todas las informaciones 3D de etiqueta única si no se ha encontrado el priorityID. Anteriormente, solo Tx, Ta, Ty y Tv se ponían a cero cuando no se encontraba la etiqueta prioritaria
  • Se pone a cero botpose si la única etiqueta visible ha sido filtrada por las características de "Filtros ID" de la interfaz de usuario. Anteriormente, las botposes se reiniciaban al centro del campo en lugar de (0,0,0) si la única etiqueta visible era una etiqueta filtrada;
  • La versión 2024.2 publicaba NANs en ciertas entradas de networktables en algunos casos raros. Esto ya no ocurrirá.

LimelightLib 1.4 (21/03/24)

  • Se agregó soporte para Fiduciales Crudos de 2024.3.4. Las PoseEstimates ahora incluyen un array de rawFiducials que contienen id, txnc, tync, ta, distanceToCamera, distanceToRobot y ambiguity

Limelight Hardware Manager 1.4 (18/03/24)

Corrección de errores

Los Limelights USB descubiertos se muestran correctamente como una sola entrada en lugar de dos entradas parciales.


Limelight OS 2024.2.2 (17/03/24)

Corrección de errores

TX y TY respetan adecuadamente la mira en las entradas NT.


Limelight OS 2024.2 (8/3/24)

Orientación sin punto de mira con Json (tx_nocross, ty_nocross) y NT (txnc, tync)

Si estás utilizando orientación tx/ty con calibración de intrínsecos personalizada, es probable que aún estés viendo variaciones de cámara a cámara porque el punto de mira de Limelight no está alineado con el píxel principal de la cámara. Los equipos que requieren mayor precisión en tx/ty pueden configurar el punto de mira para que coincida con el píxel principal o utilizar estas nuevas métricas.

Posible cambio disruptivo 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 volviendo a las calibraciones predeterminadas en varios casos.

Mejoras en la calibración

La calibración ahora es casi instantánea, sin importar cuántas imágenes se hayan capturado. También hemos corregido un fallo causado por tener más de 30 imágenes aproximadamente en 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 0.3 píxeles con nuestros objetivos de alta calidad de calib.io.

Corrección de la interfaz de usuario de filtros de marcadores fiduciales

El cuadro de texto del filtro de marcadores fiduciales ahora acepta cualquier número de filtros.

Varios

El generador de Apriltag ahora tiene por defecto "sin borde" para evitar el escalado con etiquetas de 165.1 mm.


Limelight OS 2024.1.1 (24/02/24)

  • Corrección de priorityID

Limelight OS 2024.1 (24/02/24)

Métricas de Hardware (clave hw en networktables, solicitud GET /status)

Mejora de Calibración

  • Corrige un fallo que podía ocurrir si una imagen de calibración contenía exactamente una detección válida. Mejora la retroalimentación de la interfaz web.

Mejora de Localización del Robot (conteo de etiquetas y más)

  • Todos los arrays de botpose en networktables (botpose, botpose_wpiblue y botpose_wpired) ahora incluyen Conteo de Etiquetas, Extensión de Etiquetas (metros), Distancia Promedio (metros) y Área Promedio (porcentaje de imagen)

  • Estas métricas se calculan con las etiquetas incluidas en el mapa de campo cargado. Las etiquetas AprilTag personalizadas y/o móviles no afectarán estas métricas.

  • Con la calibración del dispositivo y esta actualización del array de botpose, creemos que JSON no es necesario para la gran mayoría de los casos de uso este año.

  • El volcado JSON ahora incluye botpose_avgarea, botpose_avgdist, botpose_span y botpose_tagcount para conveniencia.

[tx,ty,tz,rx,ry,rz,latencia,conteoetiquetas,extensionetiquetas,distpromedio,areapromedio]

Nueva Característica: ID Prioritario (Clave NT priorityid)

  • Si tu robot utiliza características basadas en odometría y características basadas en tx/ty, probablemente hayas encontrado el siguiente problema de experiencia de usuario:

  • Antes de esta actualización, no había una manera fácil de cambiar el ID de etiqueta preferido para el apuntado tx/ty.

  • Aunque hay un filtro de ID en la interfaz de usuario, este

    • no es dinámico
    • elimina etiquetas de la localización megaTag.
  • Esto significaba que los equipos estaban creando varias tuberías: una para localización 3D, y una por etiqueta tx/ty (una tubería para disparar del lado azul con la etiqueta 7, una para amplificar del lado azul con la etiqueta 6, etc.).

  • La nueva característica de ID prioritario (Clave NT priorityid) te permite decirle a tu Limelight "Después de que se complete toda la detección, filtrado y ordenamiento de etiquetas, enfócate en la etiqueta que coincida con el ID prioritario."

  • Esto no afecta la localización de ninguna manera, y solo cambia ligeramente el orden de las etiquetas en los resultados JSON.

  • Si tu ID prioritario no es -1, tx/ty/ta devolverán 0 a menos que la etiqueta elegida sea visible.

Misceláneos

  • Corrige la "x" a través de la pantalla mientras se usa el modo de doble objetivo en una tubería de apriltag 3D
  • API REST expandida con cargas de etiquetas de red neuronal (/uploadlabels)
  • Incluye el apodo del dispositivo en el json /status

LimelightLib 1.3

  • LimelightLib (Java y CPP) ha sido actualizado 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 Teams

Limelight Feedback y Seguimiento de Problemas: https://github.com/LimelightVision/limelight-feedback/issues

Repositorio de Ejemplos: https://github.com/LimelightVision/limelight-examples

Ejemplo de Apuntado y Medición de Distancia con Swerve: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-aiming-and-ranging

Ejemplo de Localización con MegaTag: https://docs.limelightvision.io/docs/docs-limelight/tutorials/tutorial-swerve-pose-estimation

Gracias a los recientes contribuyentes jasondaming, Gold876, JosephTLockwood, Andrew Gasser, y virtuald


Actualizaciones de Limelight 2024 (6/2/24)

Actualización de la Documentación de Limelight

  • La documentación ha sido reescrita para simplificar el proceso de configuración

Generador de AprilTag de Limelight

  • https://tools.limelightvision.io/ ahora cuenta con el primer generador de AprilTag en línea.
  • Selecciona el tamaño del papel, el tamaño del marcador y los IDs de las etiquetas para generar un PDF imprimible.
  • Es posible que Safari no muestre correctamente las etiquetas en este momento.

Constructor de Mapas de Limelight

  • https://tools.limelightvision.io/map-builder
  • Ahora puedes construir mapas personalizados de AprilTag con una interfaz de usuario intuitiva.
  • La familia predeterminada y el tamaño de las etiquetas se han actualizado para coincidir con el campo de 2024.

Nuevo Administrador de Hardware

  • La Herramienta Finder ahora es el Administrador de Hardware de Limelight
  • Ha sido reescrito desde cero. Ahora detecta de manera confiable los dispositivos Limelight, proporciona información de diagnóstico más útil y no requiere reinicios para funcionar correctamente.
  • Obténlo ahora desde la página de descargas captura de pantalla del notebook:

Entrena tus propias Redes Neuronales

captura de pantalla del cuaderno:

2024 Detector de Mapa AprilTag y Notas

  • El modelo de mapa y detector se ha añadido a la página de descargas y a la última imagen del sistema operativo Limelight.

Limelight OS 2024.0 (6/2/24)

Correcciones de Calibración ChArUco

  • Se ha aumentado la precisión subpixel de nuestro detector ChArUco. Ahora es posible lograr un error de reproyección de 1-2 píxeles con objetivos de tablero y 20 imágenes.
  • Usando la misma cámara y el mismo objetivo, la versión 2023.6 logró un RPE de 20 píxeles, y la 2024.0 logró un RPE de 1.14 píxeles.
  • Los campos de entrada ya no aceptan letras ni caracteres especiales. Esto elimina la posibilidad de un bloqueo.

Mejora de Precisión de Megatag Lista para Usar

  • Antes de esta actualización, el generador de mapas Megatag interno de Limelight hacía referencia al control deslizante de tamaño de etiqueta de la interfaz de usuario en lugar de los tamaños de etiqueta proporcionados por el archivo .fmap.
  • Megatag ahora respeta los tamaños de etiqueta configurados en los archivos fmap e ignora el control deslizante de tamaño.
  • Si su control deslizante de tamaño no se ha establecido en 165.1 mm, notará una mejora inmediata en la precisión de localización.

Mejoras de Rendimiento y Correcciones de Errores

  • Pipelines de AprilTag con mayor FPS
  • Se ha mejorado significativamente el rendimiento del Visualizador de Espacio de Campo.

Correcciones de Errores

  • A veces, los Apriltags en los visualizadores 3D se dibujaban con imágenes de etiquetas incorrectas o corruptas. Ahora las etiquetas siempre se muestran correctamente.
  • "v" / tv / "valid" ahora solo devolverá "1" si hay detecciones válidas. Anteriormente, tv siempre era "1"

2023.6 (18/04/23)

Calibración ChArUco fácil y visualizadores de calibración

  • Se considera que la calibración ChArUco es mejor que la calibración de tablero de ajedrez porque maneja oclusiones, detecciones de esquinas deficientes y no requiere que todo el tablero sea visible. Esto facilita mucho la captura de 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 se asegurará de que hagas todo lo necesario para obtener buenos resultados de calibración. Se ha dedicado un gran esfuerzo para hacer este proceso lo más a prueba de errores 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 los 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 orientación, el campo de visión, etc.
  • Echa un vistazo a este video:

2023.5.1 y 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 el mismo solucionador exacto 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 en el visualizador e internamente.

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


2023.5.0 (21/03/23)

Cambios importantes

  • Se corrigió una regresión - El "Yaw" en el 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 de detección neuronal.
  • Se añadieron 5 nuevas opciones de región para seleccionar el centro, arriba, izquierda, derecha, arriba o abajo del rectángulo objetivo no rotado.

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 apriltag 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 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 campo de visión está determinado totalmente por los intrínsecos de la cámara.

2023.4.0 (18/02/23)

Filtro de Clase del Detector Neural

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

Soporte ampliado del Detector Neural

Admite cualquier resolución de entrada y soporta formas de salida adicionales para admitir otras arquitecturas de detección de objetos. Ahora se admiten los modelos basados en EfficientDet0.


2023.3.1 (14/02/23)

Mejoras en la precisión de AprilTag

Se mejoró la matriz de intrínsecos y, lo más importante, se mejoraron los coeficientes de distorsión 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 inicio del proceso de procesamiento.

Nuevo Umbral de Calidad para AprilTags

Ahora es más fácil filtrar los AprilTags espurios 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 la Pose de la Cámara en el Espacio del Robot (Claves NT: "camerapose_robotspace_set", "camerapose_robotspace")

La posición de tu Limelight en el espacio del robot ahora se puede ajustar sobre la marcha. Si la clave se establece en un array de ceros, se utiliza la pose establecida en la interfaz web.

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

Aumento del Tiempo de Exposición Máximo

El tiempo de exposición máximo ahora es 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

Los tres arrays de botpose en las tablas de red tienen una séptima entrada que representa la latencia total (latencia de captura + latencia de apuntado).

Correcciones de errores

  • Arreglo de los streams MJPEG de LL3 en shuffleboard
  • Corrección del camMode - el modo de conductor ahora produce imágenes brillantes y utilizables.
  • Se ha corregido la etiqueta de exposición - cada "marca" representa 0.01ms y no 0.1 ms
  • Corrección de la carga del detector de red neuronal

2023.2 (28/01/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 principio.

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

Todos los botposes se imprimen 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 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 de NetworkTables "campose" ahora es "camerapose_targetspace"
  • La clave de NetworkTables "targetpose" ahora es "targetpose_cameraspace"
  • Nueva clave de NetworkTables - "targetpose_robotspace"
  • Nueva clave de 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 de marcador predeterminado en la interfaz de usuario se ha corregido a 152.4mm (reducido de 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 poca luz / baja exposición.

Conversión a Escala de Grises Ultra Rápida

La conversión a escala de grises es de 3 a 6 veces más rápida que antes. Los equipos siempre verán una transmisión de video en escala de grises 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 cuadros a cualquier resolución.

Filtrado Más Fácil

Ahora hay un solo campo de "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 confusa y tenía errores.

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 de un vistazo.

Limelight MegaTag (nuevo botpose)

Mi prioridad número 1 ha sido reescribir botpose para mayor precisión, reducción de 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 gigante 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 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 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 se limita a etiquetas planares. Se escala a cualquier número de etiquetas en 3D completo y en cualquier orientación. Las etiquetas de suelo y 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 uno. A medida que el MegaTag 3D combinado aumenta en tamaño y en número de puntos clave, su estabilidad aumenta.

¡La carga de la Red Neural se está posponiendo para la versión 2023.2!

2023.0.0 y 2023.0.1 (11/1/23)

Introduciendo AprilTags, localización de robots, redes neuronales profundas, una interfaz de captura de pantalla reescrita y más.

Características, Cambios y Correcciones de Errores

  • Nueva pipeline de captura de sensores y control de ganancia
    • Nuestra nueva pipeline de captura permite tiempos de exposición 100 veces más cortos que en 2022. La nueva pipeline también habilita el Control de Ganancia. Esto es extremadamente importante para el seguimiento de AprilTags, y servirá para hacer el seguimiento de objetivos retroreflectantes 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 que las imágenes sean más oscuras o brillantes que nunca sin tocar el control deslizante 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 retroreflectantes. Esto ayudará a mitigar los reflejos de LED y luz solar mientras se rastrean objetivos retroreflectantes.
    • 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 esta nueva pipeline mientras mantenemos 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 gráfica web ahora se 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 la carga, descarga 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 estaba limitando seriamente su precisión cada cuatro fotogramas. Esto ha sido abordado, y se ha construido un nuevo lienzo 3D completo para visualizaciones de SolvePNP Retroreflectivo/Color.
  • Corrección de error en 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 obligaba 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 admiten la nueva función de volcado JSON, que enumera todos los datos para todos los objetivos en un formato legible por humanos 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 de Limelight. Google Coral es un acelerador de hardware USB de 4TOPs (Billones de operaciones por segundo) diseñado específicamente para inferencia en redes neuronales de 8 bits.
  • Al igual que el seguimiento retroreflectante 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 incluso intente. Hemos desarrollado toda la infraestructura necesaria para hacer que la visión basada en aprendizaje sea tan fácil como los objetivos retroreflectantes 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 comenzar. Estamos emocionados de traer redes neuronales profundas a la comunidad FRC por primera vez.
  • Actualmente admitimos 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 (al igual que nuestros objetivos retroreflectantes) 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, consulta 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 se pueden usar 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á en breve en 2023.1

Soporte de AprilTag sin código

  • Los AprilTags son tan fáciles como los objetivos retroreflectantes con Limelight. Debido a que tienen un filtro duro natural en forma de ID, hay aún menos razón para que tu roboRIO realice cualquier filtrado relacionado con la visión.
  • Para comenzar, usa tx, ty y ta como de costumbre. 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.
  • Los comentarios que hemos recibido sobre esta característica en nuestros canales de soporte han sido extremadamente positivos. Hemos hecho que los AprilTags sean lo más fáciles 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 3D de Punto de Interés
    • 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/04/22)

Correcciones de errores y latido.

Correcciones de errores

  • Solución de problemas de rendimiento, estabilidad del flujo y retraso del flujo relacionados con los flujos de cámara USB y múltiples instancias de flujo.

Características y cambios

  • Clave "hb" de latido 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 controlado por código del robot.

Correcciones de errores

  • Arreglo de la clave "stream" de networktables y los Modos de Picture-In-Picture
  • Arreglo 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 las pruebas de fiabilidad del FMS.

Correcciones de errores

  • Solución para el bloqueo / pérdida de conexión / pérdida de objetivo 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 utilizar el filtro de recorte para ignorar la gran 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 carga, usa esta función para buscar carga 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 la agrupación inteligente de objetivos

    • Esta es para los equipos que quieren hacer visión personalizada más avanzada en el RIO
    • El límite de esquinas "tcornxy" aumentó a 64 esquinas
    • Las características de simplificación de contorno y forzado convexo ahora funcionan correctamente con la agrupación inteligente de objetivos y el envío de esquinas
  • El máximo del filtro IQR aumentó a 3.0

  • La tasa de actualización de objetivos en vivo de la interfaz web se redujo de 30fps a 15fps para reducir el ancho de banda y la carga de CPU mientras la interfaz web está abierta


2022.1 (25/01/22)

Correcciones 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 utilizadas específicamente 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.
  • Se corrigieron los botones de carga para las entradas GRIP y los modelos SolvePNP

Características

  • Arcoíris de tonos

    • El nuevo arcoíris de tonos 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 se encuentra tanto al principio como al final del rango de tonos:
  • Nuevas bibliotecas de Python

    • Se agregaron scipy, scikit-image, pywavelets, pillow y pyserial a nuestro entorno de pruebas de Python.

2022.0 y 2022.0.3 (15/01/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 de objetivos.
    • Agrupará dinámicamente cualquier número de objetivos entre -el mínimo del control deslizante de tamaño de grupo- y -el 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 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 unos de otros, podemos rechazar objetivos atípicos que se encuentran aislados.
    • Debes confiar casi exclusivamente 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 flujo 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 de 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)
  • Scripting Completo en Python

    • Limelight ha expuesto con éxito a un gran número de estudiantes a algunas de las capacidades de la visión por computadora en robótica. Con el scripting en Python, los equipos ahora pueden dar un paso más adelante escribiendo sus propios pipelines de procesamiento de imágenes.
  • Esta actualización es compatible con todo el hardware de Limelight, incluyendo Limelight 1.

  • Problemas conocidos: Usar zoom por hardware con Python producirá resultados inesperados.

  • 2022.0.3 restaura el flujo GRIP 5802 y aborda problemas de arranque en algunas unidades LL2 al revertir algunas de las optimizaciones de tiempo de arranque. El tiempo de arranque se incrementa a 16 segundos.

2020.4 (11/03/20)

2020.4 es otra actualización crítica que elimina el fallo intermitente de 2-4 segundos que podía ocurrir durante una desconexión abrupta del flujo mjpeg. Esto sucedía a menudo al final del partido, y en algunos casos podía ocurrir durante los partidos.


2020.3 (25/02/20)

2020.3 es una actualización crítica que aborda reinicios intermitentes del software relacionados con la red, y soluciona un fallo que ocurría al desconectar una cámara USB.


2020.2 (30/01/20)

2020.2 lleva el hardware de Limelight aún más lejos al agregar la capacidad de hacer panorámicas y zoom a cualquier punto. También añade un nuevo modo de video y correcciones importantes de errores. ¡Háznos saber qué características te gustaría ver en futuras actualizaciones!

Características

  • Zoom por hardware 3x a 60 FPS

    • Nuestra última actualización agregó Zoom por hardware 2x para todos los modelos de Limelight sin costo alguno. Hemos logrado llevar nuestro zoom por hardware aún más lejos con el Zoom por hardware 3x. Todos los modelos de Limelight ahora son capaces de hacer Zoom por hardware 3x a 60fps. Esto hace que el seguimiento de cancha completa sea aún más fácil para todos los equipos.
  • Panorámica por hardware

    • Los robots capaces de disparar desde distancias largas y cortas en 2020 habrían encontrado difícil usar el Zoom por hardware en sus Limelights sin el uso de un soporte Limelight ajustable y activo. Hemos incorporado la Panorámica por hardware para resolver este problema.

Correcciones de errores

  • Se solucionaron problemas de controladores que estaban afectando los controles deslizantes de balance de color
  • Se revirtieron todos los controladores relacionados con la red a las variantes de la temporada 2019 para abordar un pequeño número de informes de rendimiento de red de los equipos

2020.1 (16/01/20)

2020.1 añade una de las características más geniales de Limelight hasta ahora: Zoom de Hardware 2x. Esto no es zoom digital, y ahora está habilitado para todas las versiones de Limelight.

Características

  • Zoom de Hardware 2x

    • No es zoom digital
    • Habilita el zoom de hardware 2x para lograr un seguimiento vastamente mejorado a larga distancia, y un seguimiento estable a distancias de cancha completa.
    • Esta característica no tiene absolutamente ningún costo de latencia o velocidad de fotogramas - el seguimiento continúa ejecutándose a 90fps sin sobrecarga adicional.
  • Cruces manuales

    • Ajusta manualmente las ubicaciones de las cruces simples y dobles con deslizadores en la interfaz web
  • Nuevas características de SolvePNP / 3D (Aún experimentales)

    • Hemos añadido la opción "Forzar Convexo" para usar solo los puntos más externos de un objetivo - esto es necesario en 2020 debido a la cinta delgada utilizada para el objetivo hexagonal.
    • Se ha añadido la opción "vincular objetivo". Esta característica vincula "tx" y "ty" al objetivo 3D. Esto es necesario para guiar a los robots a anotar usando objetivos 3D.
    • Finalmente, añade la opción "Desplazamiento Z del Objetivo" para desplazar automáticamente la ubicación deseada del objetivo en el espacio 3D en el eje Z.
    • En Infinite Recharge, el "Desplazamiento Z del Objetivo" se usaría para rastrear el centro del pequeño objetivo circular detrás del objetivo hexagonal.
  • Detección de color con "tc"

    • Lee el nuevo array "tc" en Network Tables para obtener valores de Rojo, Verde y Azul en la ubicación de la cruz. Ajusta el "Balance de Azul" y "Balance de Rojo" en la pestaña de entrada para lograr una detección de color perfecta.

Correcciones de errores

  • La funcionalidad de la cámara USB rota en 2020.0 ahora está arreglada en 2020.1
  • La funcionalidad de SolvePnP rota en 2020.0 ahora está arreglada en 2020.1
  • SolvePnP ahora usa correctamente el centro del modelo como el centro de visualización del eje

2019.7 (4/5/19)

2019.7 añade dos nuevas características.

Características

  • Transmisión de 160x120 a 30fps
    • Transmisión más fluida y de menor ancho de banda para equipos que utilizan cámaras USB de gran angular. El ancho de banda de nuestra transmisión de cámara de 180 grados se redujo de ~3.7mbps a ~1.8 mbps.
    • Cambia la resolución de transmisión en la pestaña de configuración.
    • Cambio de la resolución de transmisión en un Limelight con una cámara USB de gran angular conectada. Sin Picture-in-Picture y tasa de transmisión normal.
  • Rechazo Inteligente de Manchas
    • Los equipos que han montado sus cámaras en línea con el objetivo este año han tenido que lidiar con reflejos LED no deseados.
    • El control deslizante de área no siempre resuelve este problema, ya que los equipos quieren rastrear objetivos de visión pequeños a grandes distancias.
    • Esta nueva característica rechazará automáticamente contornos relativamente pequeños que hayan pasado por todos los demás filtros.
    • A medida que un robot se aleja de un objetivo de visión (disminuyendo su tamaño), el RIM se ajustará automáticamente para rechazar solo contornos relativamente pequeños.

Cambios

  • Tooltips
    • Ahora hay tooltips disponibles en algunos controles de Limelight

2019.6.1 Parche de emergencia (14/03/19)

2019.6.1 corrige las subidas de Grip.


2019.6 (12/3/19)

2019.6 se centra en la fiabilidad.

Correcciones de errores

  • Cámaras USB
    • Se soluciona un problema que podía causar que algunas cámaras USB fallaran al arrancar.
  • FMS
    • Se hace que Limelight sea más (si no completamente) resistente a los reinicios de FMS y a los cambios de red del campo / portátil.
    • Limelight ya no se bloqueará después de un cambio repentino en la red del cliente.
  • Clasificación de contornos sin procesar (CAMBIO IMPORTANTE)
    • Los filtros de intersección ya no afectan a la clasificación de contornos sin procesar.
  • Publicación automática en Smartdashboard
    • LL publica automáticamente cierta información en SmartDashboard (dirección IP, URL de interfaz, etc.). Los nombres de estos valores ahora contienen el nombre del host.

Características y cambios

  • Se aumenta significativamente la precisión y estabilidad de la función compute3d. Las mediciones de traslación y rotación son estables a distancias mayores.
  • El desplazamiento máximo del nivel de negro se incrementa a 40 (desde 25) para imágenes aún más oscuras.
  • Nuevas opciones de clasificación "Más cercano" en la pestaña "Salida" cuando el modo "Doble punto de mira" está activado.
    • Estándar - Implementación actual de clasificación "más cercano" con modo "Doble punto de mira".
    • Estándar V2 - Implementación experimental e inteligente de clasificación "más cercano" con modo "Doble punto de mira".
    • Promedio de puntos de mira - El origen de clasificación "más cercano" con modo "Doble punto de mira" es el promedio de los dos puntos de mira.
    • Punto de mira A - El origen de clasificación "más cercano" con modo "Doble punto de mira" es el punto de mira A.
    • Punto de mira B - El origen de clasificación "más cercano" con modo "Doble punto de mira" es el punto de mira B.
  • Nuevas opciones de "Modo LED" en el pipeline: "Mitad izquierda", "Mitad derecha"
  • Valores de esquinas sin procesar en punto flotante cuando compute3D está activado.
  • Ocultar decoraciones de imagen al usar varitas mágicas
  • Transmisión más grande en la interfaz web

2019.5 (2/9/19)

Con 2019.5 estamos introduciendo la nueva función de localización de cámara compute3D. Solo un puñado de equipos han intentado agregar esta característica a sus sistemas de visión, y ahora está disponible para todos los usuarios de Limelight 1 y Limelight 2.

Esto no es una solución mágica para el juego de este año. Recomendamos encarecidamente pensar en formas creativas de usar el seguimiento estándar de alta velocidad de 90 fps a menos que esta función sea absolutamente necesaria.

Características

  • Modo de Alta Precisión y PnP
    • En el siguiente gif, se colocó un Limelight 2 a 37 pulgadas detrás y 14.5 pulgadas a la derecha del objetivo.
    • Posteriormente, el Limelight se giró a mano. Observe cómo las distancias permanecen mayormente sin cambios.
    • Con 2019.4, introdujimos el envío de esquinas. Esto permitió a los equipos avanzados escribir sus propios algoritmos usando solvePNP() de OpenCV. Con 2019.5, todo esto se hace a bordo.
    • Suba un archivo csv de texto plano con un modelo de su objetivo. Tenemos modelos pre-construidos de objetivos 2019 alojados en nuestro sitio web. Todos los modelos deben tener un origen centrado y usar un orden de puntos en sentido contrario a las agujas del reloj con escala en pulgadas.
    • Habilite el nuevo modo de alta resolución 960x720, y luego active "Solve 3D" para adquirir la posición y rotación de su Limelight en relación con su objetivo.
    • Los números de las esquinas ahora se muestran en la imagen para facilitar la creación de modelos y el ajuste de umbrales.
    • Lea las 6 dimensiones de la transformación de su cámara (x,y,z,pitch,yaw,roll) leyendo el array de números "camtran" de la networktable.
  • Nivel de Negro
    • Con el nuevo control deslizante de nivel de negro, el umbral es aún más fácil. Aumente el desplazamiento del nivel de negro para oscurecer aún más sus imágenes.

Cambios Importantes

  • El FOV vertical reportado para LL2 se ha corregido para coincidir con el valor listado de 49.7 grados. Esto cambiará sus valores "ty"

Correcciones de Errores

  • Se corrigió un fallo de solo transmisión que podía ocurrir cuando se conectaban cámaras USB de ojo de pez.
  • Se corrigió un bloqueo poco frecuente causado por un controlador relacionado con la red.
  • La aproximación de esquinas ahora está siempre activa.

2019.4 (26/01/19)

Creemos que todos los informes de errores críticos están cubiertos con esta versión.

Características

  • Esquinas
    • Envía las esquinas de tu objetivo como dos matrices (tcornx, tcorny) *AHORA tcornxy habilitando "enviar esquinas" en la pestaña "Salida". Esto permitirá a los equipos interesados en pipelines avanzadas con métodos como solvePNP().
    • Ajusta la aproximación de las esquinas con el deslizador "aproximación de esquinas" en la pestaña "Salida".

Corrección de errores

  • Corregido el bloqueo + raro fallo que ocurría cuando dos objetivos tenían exactamente la misma área, coordenada x o coordenada y.
  • Corregido el cálculo del área en los modos de doble y triple objetivo.
  • Optimizada la clasificación de contornos para un mejor rendimiento.

2019.3 (19/01/19)

2019.3 aborda varios errores y solicitudes de funciones.

Características

  • Tasa de transmisión (reducción de ancho de banda)
    • Establezca la tasa de transmisión en "baja" en la página de configuración para obtener una transmisión de video de 15fps con menor ancho de banda.
  • Contornos sin procesar deshabilitados en NetworkTables (reducción de ancho de banda)
    • Los contornos sin procesar ahora están deshabilitados por defecto. Esto reducirá aún más el ancho de banda general de Limelight.
    • Ahora hay aproximadamente 180 entradas menos de networktables enviadas por segundo por defecto.
    • Consulte la nueva opción de pipeline "Contornos sin procesar" en la pestaña "Salida" para volver a habilitar los contornos sin procesar.
  • Índice de pipeline activo
    • Lea la clave de networktable "getpipe" para obtener el verdadero índice de pipeline activo de la cámara. Esto se actualiza a 90hz.
    • El índice de pipeline activo ahora se escribe en la transmisión de video debajo de la pantalla de FPS.
  • Filtros de intersección izquierda y derecha
    • Los equipos ahora pueden elegir entre filtros de intersección de contorno dual "izquierda" y "derecha". Los filtros de intersección "arriba" y "abajo" se agregaron en 2019.2.

Correcciones de errores

  • Corregido el error de transmisión del panel de control de LabView introducido en 2019.2
  • La página web ya no solicita fuentes de iconos de Internet. Todas las fuentes se almacenan localmente. Esto debería acelerar la carga de la interfaz.
  • Reducida la exposición del "modo conductor".
  • Corregida la implementación GRIP de "Transformación de distancia"
  • Corregidos los retrasos de comunicación de 20 segundos causados por cambiar el nombre de host.

2019.2 (7/1/19)

2019.2 añade nuevas características para equipar mejor a los equipos para la temporada 2019.

  • Filtro de Intersección
  • Filtro de Dirección

Cambios y Correcciones Adicionales

  • La dirección IP se publica automáticamente en SmartDashboard/Shuffleboard para facilitar la resolución de problemas en eventos. Casi no hemos recibido informes de que esto sea un problema, pero sirve como otra característica de contingencia.
  • El nombre del pipeline se publica automáticamente en SmartDashboard/Shuffleboard
  • Accede al ancho y alto del cuadro delimitador aproximado en píxeles con nuevas claves de networktables.
  • Accede al lado más largo y más corto del cuadro delimitador perfecto en píxeles con nuevas claves de networktables.
  • El "Modo de Ordenación" ahora se aplica a contornos duales
  • El "Modo de Ordenación" ahora está arreglado
  • El stream 5802 es menos exigente para la cámara

2019.1 (18/12/18)

2019.1 corrige todos los errores importantes reportados durante la beta

  • El rendimiento ha vuelto a un estable 90fps. Un problema de controladores fue la causa raíz de nuestros problemas de rendimiento durante la beta
  • La configuración de IP y nombre de host ahora se aplica y "permanece"
  • Las Varitas Mágicas han sido reordenadas para coincidir con las del software Limelight 2018
  • Ahora admitimos entradas de Grip como máscaras a través de la interfaz web
  • Se ha corregido el congelamiento de NetworkTables

2019.0 (10/12/18)

Con 2019, estamos introduciendo soporte para GRIP, una interfaz completamente nueva y un procedimiento de flasheo más limpio.

  • Soporte para GRIP

    • Construye pipelines con GRIP para Limelight, y exporta archivos "LL Script" para cargar en tu cámara.
    • El soporte para máscaras y NetworkTables se añadirá en una actualización futura
    • Expone un stream de video básico en http://limelighturl:5802 para pruebas en GRIP
  • Interfaz web completamente nueva

    • Controles más pequeños
    • Más tooltips
    • Añade la capacidad de apagar los LEDs desde la interfaz
    • Mueve el combobox de visualización debajo del stream para facilitar el cambio de visualización
    • Comunicación más rápida con Limelight. La nueva tecnología web nos permitió simplificar otras partes de nuestro código.
  • Flasheo

    • Hemos migrado a "Balena Etcher"
    • Etcher es dos veces más rápido y funciona en todas las plataformas
    • Los popups de flasheo se han solucionado con la migración.
  • Otros

    • El Modo LED ha sido modificado para permitir Modos LED específicos por pipeline
    • Tiempos de arranque más rápidos en el modo de asignación automática de IP.
    • Optimizaciones y correcciones de errores menores

2018.5 (28/03/18)

2018.5 corrige un problema crítico que impedía a los usuarios ajustar pipelines en instantáneas.


2018.4 (19/03/18)

2018.4 añade nuevas opciones de clasificación de contornos. Estas son bastante importantes para el seguimiento de cubos este año, ya que los equipos no necesariamente quieren seguir el cubo más grande a la vista. En muchos casos, los equipos quieren seguir el cubo que está más cerca de sus sistemas de entrada. Muchos usuarios han tenido que utilizar la función de contornos sin procesar para implementar su propia clasificación, por lo que queremos hacer esto lo más fácil posible.

Características

  • Modo de Clasificación de Contornos
    • Selecciona entre las opciones de clasificación "más grande", "más pequeño", "más alto", "más bajo", "más a la izquierda", "más a la derecha" y "más cercano".
    • Creemos que muchos equipos harán uso de la opción "más cercano" para el seguimiento de cubos.

2018.3 (28/02/18)

2018.3 corrige un importante error de reconexión de networktables que causaba que los cambios en la configuración de NetworkTables no se propagaran a Limelight. Gracias a Peter Johnson y al equipo de WPILib por identificar y corregir el error subyacente de NT. Este era (hasta donde sabemos) el último error de alta prioridad que afectaba a Limelight.

Los cambios de configuración como ledMode, pipeline y camMode deberían aplicarse siempre a Limelight. Ya no debería necesitar soluciones alternativas para cambiar la configuración de Limelight mientras depura, después de reiniciar el código del robot y después de reiniciar el roborio.

Cambios

  • Corrección de un importante problema de sincronización de NT que impedía los cambios de configuración (ledMode, pipeline y camMode) durante la depuración de LabView y después de un reinicio del roborio.
  • Herramienta cuentagotas:
    • La herramienta cuentagotas utiliza la misma ventana de 10 unidades para el tono, pero ahora usa una ventana de 30 unidades para la saturación y el valor. Esto significa que el umbral es más a menudo una operación de un solo clic, en lugar de un proceso de varios pasos.
  • Instantáneas
    • Establecer el valor de instantánea en "1" solo tomará una única instantánea y restablecerá el valor a 0. La captura de instantáneas está limitada a 2 instantáneas por segundo.
    • El límite de instantáneas se ha aumentado a 100 imágenes.
    • El área del selector de instantáneas ahora se puede desplazar para admitir 100 imágenes.

2018.2 (10/02/18)

2018.2 corrige todos los errores de transmisión conocidos con varios tableros de control FRC. También hace que Limelight sea más fácil de ajustar y más versátil durante los eventos.

Características

  • Herramientas de umbral
    • Configure los parámetros de umbral HSV con unos pocos clics
    • La herramienta "Establecer" centra los parámetros HSV alrededor del píxel seleccionado
    • La herramienta "Agregar" ajusta los parámetros HSV para incluir el píxel seleccionado
    • La herramienta "Restar" ajusta los parámetros HSV para ignorar el píxel seleccionado
  • Instantáneas
    • Las instantáneas permiten a los usuarios guardar lo que Limelight está viendo durante los partidos o la calibración del evento, y ajustar los pipelines mientras están lejos del campo.
    • Guarde una instantánea con la interfaz web o publicando un "1" en la clave "snapshot" de NetworkTables
    • Para ver las instantáneas, cambie el cuadro combinado "Fuente de imagen" en la pestaña de entrada. Esto le permitirá probar sus pipelines en instantáneas en lugar de la transmisión de la cámara de Limelight
    • Limelight almacenará hasta 32 instantáneas. Eliminará automáticamente las instantáneas antiguas si supera este límite.
  • Nuevas opciones de transmisión
    • Hemos introducido la clave "stream" de NetworkTables para controlar el modo de transmisión de Limelight. Hemos recibido solicitudes de modos PiP (Picture-in-Picture) para adaptarse mejor a ciertos tableros de control.
    • 0 - Estándar - Transmisiones lado a lado si hay una cámara web conectada a Limelight
    • 1 - PiP Principal - La transmisión de la cámara secundaria se coloca en la esquina inferior derecha de la transmisión de la cámara principal.
    • 2 - PiP Secundario - La transmisión de la cámara principal se coloca en la esquina inferior derecha de la transmisión de la cámara secundaria.
  • Aumento de la tasa de fotogramas de transmisión a 22fps
  • Erosión y Dilatación
    • Habilite hasta una iteración tanto de erosión como de dilatación.
    • La erosión erosionará ligeramente el resultado de un umbral HSV. Esto es útil si muchos objetos están pasando a través de un umbral HSV ajustado.
    • La dilatación inflará ligeramente el resultado de un umbral HSV. Úselo para corregir agujeros en los resultados del umbral.
  • Botón de reinicio
    • Reinicie el seguimiento de visión de Limelight desde la interfaz web. Esto solo es útil para equipos que experimentan problemas intermitentes mientras depuran código LabView.

Optimizaciones

  • Reducción del tiempo de ejecución del pipeline en estado estable a 3.5-4ms.

Correcciones de errores

  • Corrección de problemas de transmisión de Shuffleboard
  • Corrección de problemas de transmisión del tablero de control de LabView

2018.1 (8/1/18)

  • Control deslizante de balance de rojos
  • Control deslizante de balance de azules
  • Mejores ajustes predeterminados de balance de color
  • Aumento del ajuste máximo de exposición

2018.0 (1/3/18)

Además de una gran cantidad de nuevos estudios de casos, documentación más detallada y un programa de ejemplo completo para un lanzador autónomo de STEAMWORKS, el software ha recibido una importante actualización.

Características

  • Nueva interfaz de Pipeline de Visión
    • Añade hasta 10 pipelines de visión únicas, cada una con miras personalizadas, opciones de umbral, exposición, opciones de filtrado, etc.
    • Nombra cada pipeline de visión.
    • Marca cualquier pipeline como la pipeline "predeterminada".
    • Cambia instantáneamente entre pipelines durante un partido con el nuevo valor "pipeline" en NetworkTables. Esto es útil para juegos que tienen múltiples objetivos de visión (por ejemplo, la clavija de engranaje y la caldera de 2017). También es útil para equipos que necesitan usar opciones de mira ligeramente diferentes por robot, campo, alianza, etc.
    • Descarga pipelines de visión desde Limelight para hacer copias de seguridad o compartir con otros equipos.
    • Sube pipelines de visión a cualquier "ranura" para usar pipelines descargadas.
  • Opción de "Agrupación" de objetivos
    • Prefiere instantáneamente objetivos que consisten en dos formas con el modo de agrupación "dual". Las opciones "Single" y "Tri" también están disponibles
  • Nueva interfaz de Calibración de Mira
    • Modos de mira "Single" y "Dual".
    • El modo "Single" es lo que Limelight utilizaba antes de esta actualización. Los equipos alinean sus robots manualmente y "calibran" para volver a poner a cero los valores de apuntado sobre la mira.
    • El modo "Dual" es una característica avanzada para robots que necesitan una mira dinámica que se ajusta automáticamente a medida que cambia el área del objetivo / distancia al objetivo. Hemos usado esta característica en algunos de nuestros robots de disparo, ya que algunos de ellos disparaban con una ligera curva. Esta característica también será útil para robots con montajes de Limelight descentrados y/o mal alineados.
    • Calibración separada de X e Y.
  • Añadir clave de Objetivo Válido "tv" a Network Tables.
  • Añadir clave de Latencia de Apuntado "tl" a Network Tables. "tl" mide el tiempo de ejecución del pipeline de visión. Añade al menos 11 ms para el tiempo de captura.
  • Dibujar un rectángulo adicional para ayudar a explicar el cálculo de la relación de aspecto.
  • Eliminar la función de limitación y bloquear Limelight a 90fps.
  • Deshabilitar el enfoque en la mayoría de los botones de la interfaz web. Soluciona el problema de flujo de trabajo reportado por equipos que calibraban sus miras y luego presionaban "enter" para habilitar sus robots.
  • Publicar tres contornos "crudos" y ambas miras en Network Tables.
    • Accede a un contorno crudo con tx0, tx1, ta0, ta1, etc.
    • Accede a ambas miras crudas con cx0, cy0, cx1, cy1.
    • Todos los valores x/y están en el espacio de pantalla normalizado (-1.0 a 1.0)
  • Añadir opción de "sufijo" a la interfaz web. Permite a los usuarios añadir un sufijo a los nombres de host y NetworkTables de sus Limelights (por ejemplo, limelight-boiler). Esta característica solo debe utilizarse si los equipos tienen la intención de usar múltiples Limelights en un solo robot.
  • Mostrar la versión de la imagen en la interfaz web

Optimizaciones

  • Disminuir la latencia relacionada con la red a ~0.2 ms desde ~10ms (Gracias a Thad House)
  • Mover la codificación de stream y la compresión jpg al tercer núcleo, eliminando el enganche de 10ms (25 - 30ms de enganche con dos cámaras) visto cada seis frames.
  • Reducir el tiempo de ejecución del pipeline en estado estable a 5ms con optimizaciones SIMD.

Correcciones de errores

  • Corregir una inexactitud menor en el valor del área que impedía que el valor alcanzara el 100% (máximo ~99%).
  • Corregir el desplazamiento de medio píxel en todos los cálculos de apuntado
  • Corregir que la información del stream de la cámara no se poblara para servidores NT iniciados después de la secuencia de arranque de Limelight. Actualizar regularmente la información del stream de la cámara.
  • Corregir el error que causaba que la relación de aspecto se "volteara" ocasionalmente.
  • Forzar la salida de stream estándar (en lugar de la salida con umbral) en el modo de conductor.
  • Corregir el error que impedía que los LEDs parpadearan después de restablecer la información de red

2017.7 (21/11/17)

  • Mejora en la clasificación de contornos. Se favorecían los contornos pequeños sobre los más grandes.
  • Nuevo sistema de coordenadas: El centro es (0,0). ty aumenta a medida que el objetivo se mueve "hacia arriba" en el eje y, y tx aumenta a medida que el objetivo se mueve "hacia la derecha" a lo largo del eje x.
  • Cálculos de ángulos más precisos (modelo de cámara estenopeica).
  • Muestra información de orientación (tx, ty, ta y ts) en la página web.
  • Los valores de orientación predeterminados son ceros. Esto significa que se devuelven ceros si no hay ningún objetivo a la vista.
  • Nuevo diseño de página web en dos columnas. Aún se colapsa a una sola columna en dispositivos pequeños.
  • Las actualizaciones continuas del deslizador no afectan el rendimiento del panel de configuración.
  • Área enviada a NT como porcentaje (0-100).
  • Tamaño de imagen reducido a 700MB desde 2.1GB

2017.6 (13/11/17)

  • Nueva herramienta de imágenes. Probada en Win7, Win8 y Win10.
  • Transmisión de cámara a los flujos de cameraserver. Funciona con los flujos de cámara del tablero inteligente, pero shuffleboard tiene errores conocidos aquí
  • Escala cuártica en los controles deslizantes de área, escala cuadrática en los controles deslizantes de relación de aspecto. Esto facilita mucho el ajuste
  • Organización de los controles en pestañas de "entrada", "umbral", "filtro" y "salida"
  • Actualizaciones continuas al arrastrar los controles deslizantes
  • Área enviada a NT como porcentaje (0-100)
  • Tamaño de visualización de imagen reducido a 700MB desde 2.1GB

2017.5 (11/9/17)

  • Tamaño de imagen reducido de 3.9GB a 2.1GB
  • Añadidas APIs para modo de conductor y modo LED
  • Establecer ledMode a 0, 1, o 2 en la tabla limelight.
  • Establecer camMode a 0 o 1 en la tabla limelight.
  • Añadida la capacidad de alternar entre imagen umbralizada e imagen sin procesar a través de la interfaz web (se mejorará en una versión posterior)
  • Publicar el flujo de la cámara en las tablas de red bajo CameraPublishing/limelight/streams (necesitará un parche)
  • Añadido sesgo a la información de objetivo ("ts" en la tabla limelight)
  • Añadida base "CommInterface" en anticipación de más protocolos

2017.4 (30/10/17)

  • Muchas mejoras en la protección del arranque y apagado

2017.3 (25/10/17)

  • El rango de tono es 0-179 en lugar de 0-255
  • Disminución del tamaño máximo del registro, limpieza de registros, limpieza de la caché de apt

2017.2 (23/10/17)

  • Sensibilidad ISO manual
  • Exposición mínima aumentada a 2

2017.1 (21/10/17)

  • Optimizaciones
  • "Convexidad" cambiado a "Plenitud"
  • Rango de exposición establecido de 0-128 ms en lugar de 0-255 ms
  • Soporte para dos cámaras
  • Soporte completo para calibración de un solo punto