Saltar al contenido principal

Guía de Inicio Rápido Limelight 3A

Especificaciones de Hardware

  • Dimensiones: 2.839in x 1.894in (72.11mm x 48.11mm)
  • Grosor: 0.661in (16.80mm)
  • Masa: 0.20 lb
  • Montaje: 4x orificios pasantes #10, 4x M3, 6x orificios roscados M4
  • Entrada de Energía: 4.1V-5.75V vía USB
  • Consumo Máximo de Energía: 4W
  • Sensor: OV5647 Color Rolling Shutter (640x480 @ 90FPS)
  • Sin iluminación LED incorporada
  • Campo de Visión: H:54.5° V:42°
  • Solo conectividad USB-C (sin puerto RJ45)
  • Luz de Estado: Verde (detección de objetivo)
  • Optimizado para compatibilidad con FTC

Capacidades de Software (Limelight OS)

  • Visión de alto rendimiento Plug-and-Play. No se requiere experiencia.
  • Interfaz de usuario basada en navegador auto-alojada para configuración de pipelines de visión
  • Soporte para FTC (integración directa con Java) y FRC (interfaz NetworkTables)
  • Exposición configurable, ganancia del sensor, resolución y tasa de cuadros
  • Configura 10 Pipelines de Visión intercambiables en caliente:
    • Pipelines Python personalizados con OpenCV 4.10, numpy, etc.
    • Seguimiento de AprilTag 2D, 3D y Localización del Robot
      • Localización 3D completa (GPS del Robot) con MegaTag1
      • Localización 3D completa de mayor precisión (GPS del Robot) con Fusión de IMU Externo con MegaTag2
      • 20fps @ 1280x960 (reducción 2x), 50fps @ 640x480 (reducción 2x)
      • Visualizador 3D completo en la interfaz web
    • Pipelines de detección de manchas de color a 90FPS
    • Pipelines de Detección de Objetos con Redes Neuronales (Solo inferencia en CPU)
    • Pipelines de Clasificación de Imágenes con Redes Neuronales (Solo inferencia en CPU)
    • Pipelines de Seguimiento de Códigos de Barras
  • Interfaz de Calibración de Intrínsecos Charuco incorporada
  • Streaming MJPEG de baja latencia incorporado

1. Montaje del Limelight 3A

Montaje Roscado (Recomendado)

  • Usa al menos 2 tornillos M3 o M4 para montar tu LL3A en canales Rev o GoBilda usando los orificios de montaje roscados
  • También puedes usar cinta VHB o bridas para sujetar tu Limelight

Montaje con Orificios Pasantes

  • Usa pernos #10-32 o #10-24 de 1 1/4" con tuercas nylock
  • Alternativamente, usa pernos M4 de 28mm con tuercas nylock
Dibujo del Limelight 3A

2. Cableado del Limelight 3A

Cuando estés listo para usar tu Limelight en tu robot:

Para FTC

  • Conecta un cable USBC a USBA desde tu Limelight 3A al puerto USB 3.0 de tu Control Hub
  • Conéctate a tu Control Hub enchufando en un puerto USB 3.0 (puerto azul)

Para FRC

  • Conecta tu Limelight 3A al puerto USB de tu roboRIO
  • Usa un cable USB-C a USB-A

Limelight 3A no soporta Google Coral. Aún puedes usar pipelines de detección y clasificación neuronal configurando el motor de ejecución de redes neuronales en "CPU".

3. Acceso a la Interfaz Web

Después de conectar tu Limelight 3A a tu computadora vía USB:

  1. Espera a que la luz de estado verde se active (aproximadamente 15-20 segundos)
  2. Usa uno de estos métodos para acceder a la interfaz web:
    • Método 1: Abre la aplicación Limelight Hardware Manager, busca Limelights, y haz doble clic en tu Limelight 3A cuando aparezca
    • Método 2: Abre un navegador web y navega a http://limelight.local:5801

Una vez conectado, tendrás acceso a:

  • Pestaña de Configuración - Configura el número de equipo, nombre de host y otras configuraciones del sistema
  • Pestañas de Pipeline de Visión - Configura y ajusta tus pipelines de procesamiento de visión
  • Pestaña de Cámara y Punto de Mira - Ajusta la configuración de la cámara y parámetros del punto de mira
  • Pestaña de Visualización 3D - Ve la detección de AprilTag y localización en tiempo real

Toda la configuración se realiza a través de esta interfaz web. Los cambios se guardan automáticamente en tu Limelight.

4. Actualización de LimelightOS

info

Los Limelights vienen con una imagen preinstalada. Probablemente puedes omitir este paso por ahora.

Instrucciones de Actualización (Windows)
warning

Guarda tus pipelines antes de actualizar LimelightOS. Se eliminarán durante la actualización.

  • Descarga los últimos controladores USB, imagen de Limelight OS y la herramienta Balena Flash desde la Página de Descargas
  • Reinicia tu máquina después de instalar los controladores
  • Mantén presionado el botón azul de configuración en tu Limelight
  • Mientras lo mantienes presionado, conecta un cable USB->USB-C desde tu laptop a tu limelight (tu Limelight se encenderá automáticamente)
  • Después de enchufar tu LL a tu laptop, puedes soltar el botón azul de configuración
  • Tu Limelight ahora está en modo flash, y sus LEDs no parpadearán
  • Ejecuta "Balena Etcher" como administrador
  • Puede tomar hasta 20 segundos para que tu máquina reconozca la cámara
  • Selecciona la última imagen .zip en tu carpeta de descargas
  • Selecciona un dispositivo "Compute Module" en el menú "Drives"
  • Haz clic en "Flash"
  • Una vez completado el flasheo, retira el cable USB de tu limelight
Instrucciones de Actualización (Avanzado) (macOS y Linux)
warning

Guarda tus pipelines antes de actualizar LimelightOS. Se eliminarán durante la actualización.

note

Estamos trabajando para simplificar dramáticamente el proceso de actualización en macOS y Linux

  • Descarga la imagen de Limelight OS y la herramienta Balena Flash desde la Página de Descargas
  • Compila el controlador USB Boot tú mismo:
brew install libusb
brew install pkg-config
git clone --recurse-submodules --shallow-submodules --depth=1 https://github.com/raspberrypi/usbboot
cd usbboot
make
cd mass-storage-gadget64
sudo ../rpiboot -d .
# Mientras rpiboot esté ejecutándose, tu cámara se enumerará correctamente en macOS y Linux
# Necesitas ejecutar rpiboot cada vez que quieras flashear.
  • Mantén presionado el botón azul de configuración en tu Limelight
  • Mientras lo mantienes presionado, conecta un cable USB->USB-C desde tu laptop a tu limelight (tu Limelight se encenderá automáticamente)
  • Después de enchufar tu LL a tu laptop, puedes soltar el botón azul de configuración
  • Tu Limelight ahora está en modo flash, y sus LEDs no parpadearán
  • Ejecuta "Balena Etcher"
  • Puede tomar hasta 20 segundos para que tu máquina reconozca la cámara
  • Selecciona la última imagen .zip en tu carpeta de descargas
  • Selecciona un dispositivo "Compute Module" en el menú "Drives"
  • Haz clic en "Flash"
  • Una vez completado el flasheo, retira el cable USB de tu limelight

5. Proceso de Configuración

Para FTC

  1. Conecta tu Limelight a tu laptop con un cable USB
  2. Accede a la interfaz web como se describe en la sección 3
  3. Ve a la pestaña de Configuración y establece tu número de equipo, luego haz clic en "Restart Vision Client"
  4. Configura tus pipelines como desees (AprilTag, Redes Neuronales, Python Personalizado, etc.)
  5. Cuando estés listo para la competencia, conecta tu Limelight 3A al puerto USB 3.0 de tu Control Hub
  6. En la App FTC DriverStation, haz clic en "Configure Robot"
  7. Si no tienes una configuración activa, puede que necesites crear una nueva
  8. Haz clic en el botón "scan"
  9. Deberías ver aparecer un "Ethernet Device"
  10. Puedes editar el nombre de este dispositivo a "limelight" para mayor claridad
  11. Ahora puedes inicializar un objeto Limelight3A en tu código usando el hardware map

Para FRC

  1. Conecta tu Limelight 3A a tu laptop, espera la actividad de la luz de estado
  2. Accede a la interfaz web como se describe en la sección 3
  3. En la pestaña de Configuración, establece tu número de equipo y haz clic en "Restart Vision Client"
  1. Configura tus pipelines como desees
  2. Cuando estés listo, conecta tu Limelight 3A al puerto USB de tu roboRIO
  3. Abre tu dashboard preferido para asegurarte de que tu 3A está enviando datos a las NetworkTables de tu roboRIO
  4. Agrega Port Forwarding para habilitar la edición de pipelines en vivo mientras estás conectado a la red de tu robot:
// (robotIP):5801 ahora apuntará al stream de la interfaz web del Limelight3A (id 0):
// (robotIP):5800 ahora apuntará al stream de video del Limelight3A (id 0):
PortForwarder.getInstance().add(5801, "172.29.0.1", 5801);
PortForwarder.getInstance().add(5802, "172.29.0.1", 5802);
PortForwarder.getInstance().add(5803, "172.29.0.1", 5803);
PortForwarder.getInstance().add(5804, "172.29.0.1", 5804);
PortForwarder.getInstance().add(5805, "172.29.0.1", 5805);
PortForwarder.getInstance().add(5806, "172.29.0.1", 5806);
PortForwarder.getInstance().add(5807, "172.29.0.1", 5807);
PortForwarder.getInstance().add(5808, "172.29.0.1", 5808);
PortForwarder.getInstance().add(5809, "172.29.0.1", 5809);

// (robotIP):5811 ahora apuntará al stream de la interfaz web del Limelight3A (id 1):
// (robotIP):5810 ahora apuntará al stream de video del Limelight3A (id 1):
PortForwarder.getInstance().add(5811, "172.29.1.1", 5801);
PortForwarder.getInstance().add(5812, "172.29.1.1", 5802);
PortForwarder.getInstance().add(5813, "172.29.1.1", 5803);
PortForwarder.getInstance().add(5814, "172.29.1.1", 5804);
PortForwarder.getInstance().add(5815, "172.29.1.1", 5805);
PortForwarder.getInstance().add(5816, "172.29.1.1", 5806);
PortForwarder.getInstance().add(5817, "172.29.1.1", 5807);
PortForwarder.getInstance().add(5818, "172.29.1.1", 5808);
PortForwarder.getInstance().add(5819, "172.29.1.1", 5809);

6. Tipos de Pipeline Disponibles

El Limelight 3A ofrece las mismas características de procesamiento de visión que otros modelos de Limelight:

  • Seguimiento de AprilTag y localización del robot
  • Seguimiento de manchas de color
  • Detección de objetos con redes neuronales (solo CPU)
  • Clasificación con redes neuronales
  • Seguimiento de códigos de barras
  • Pipelines Python personalizados

Cada 3A viene con un mapa de campo Into The Deep incorporado para FTC.

7. Programación FTC

Ejemplo Básico de FTC: Muestra FTC

La mayoría de las aplicaciones requieren menos de 10 líneas de código:

public class Teleop extends LinearOpMode {

private Limelight3A limelight;

@Override
public void runOpMode() throws InterruptedException
{
limelight = hardwareMap.get(Limelight3A.class, "limelight");

telemetry.setMsTransmissionInterval(11);

limelight.pipelineSwitch(0);

/*
* Comienza a solicitar datos.
*/
limelight.start();

while (opModeIsActive()) {
LLResult result = limelight.getLatestResult();
if (result != null) {
if (result.isValid()) {
Pose3D botpose = result.getBotpose();
telemetry.addData("tx", result.getTx());
telemetry.addData("ty", result.getTy());
telemetry.addData("Botpose", botpose.toString());
}
}
}
}
}

Para máxima precisión de localización 3D, llama a updateRobotOrientation() y usa getBotPose_MT2():

while (opModeIsActive()) {
YawPitchRollAngles orientation = imu.getRobotYawPitchRollAngles();
limelight.updateRobotOrientation(orientation.getYaw(AngleUnit.DEGREES));
LLResult result = limelight.getLatestResult();
if (result != null) {
if (result.isValid()) {
Pose3D botpose = result.getBotpose_MT2();
// Usa los datos de botpose
}
}
}

Para más información, consulta la página de Programación FTC

8. Solución de Problemas

Indicadores de Luz de Estado

  • Luz Verde: Parpadea lentamente (sin objetivos), parpadea rápidamente (objetivos detectados)

Preguntas Frecuentes

  • ¿Por qué mi Limelight se siente tan caliente? Para que Limelight funcione lo más frío posible, necesariamente necesita sentirse lo más caliente posible/tan caliente como sea seguro al tacto. Su carcasa es un disipador de calor altamente conductivo que ayuda a mantener la CPU a una temperatura razonablemente fría.

  • ¿Por qué la imagen se ve tan granulada? Para minimizar la latencia, se omiten varios filtros normalmente presentes en cámaras comerciales. El stream también está comprimido para minimizar el bitrate. En 2024.10.1, cambiamos los valores predeterminados de balance de color para hacer que las imágenes se vean más naturales y vibrantes al ojo humano.

  • ¿Qué ofrece Limelight sobre OpenCV en el Control Hub? Un algoritmo de localización multi-tag listo para usar, sin código, con fusión de sensor IMU del robot, redes neuronales y más.