Saltar al contenido principal

Calibración de Cámara ChArUco

¿Por qué es importante?

Una cámara completamente calibrada proporcionará mediciones 2D y 3D más precisas. Es útil para cualquier tarea que no se base en el "servoing" hacia la cruz de referencia.

Dicho esto, recomendamos usar el método de "servoing" siempre que sea posible. Es rápido, preciso y adecuado para tareas como adquisición de objetos, apuntado y alineación con objetivos. No se preocupe por la calibración a menos que determine que necesita mayor precisión. Cada unidad LL viene con una calibración predeterminada que proporcionará resultados bastante buenos para la mayoría de los casos de uso

¿Qué es la Calibración de Cámara?

La calibración de intrínsecos es el proceso de determinar los dos siguientes componentes:

1. La Matriz de la Cámara

La matriz de la cámara, a menudo denotada como K, es una matriz 3x3 que describe cómo los puntos 3D en el sistema de coordenadas de la cámara se proyectan en el plano de imagen 2D:

[fx  0   cx]
[0 fy cy]
[0 0 1]

cx y cy son las coordenadas del punto principal / píxel principal. El punto principal / píxel principal es el píxel que está directamente alineado con el eje óptico de la lente. Durante la fabricación, una lente de cámara casi nunca está perfectamente alineada con el centro del sensor de imagen. Es crucial que entendamos qué píxel es el verdadero píxel "central"

fx y fy son longitudes focales calculadas en píxeles

2. Coeficientes de Distorsión

Calculamos 5 coeficientes de distorsión:

[k1, k2, p1, p2, k3]

k1, k2, k3 son coeficientes de distorsión radial que hacen que las líneas rectas aparezcan curvadas.

p1, p2 son coeficientes de distorsión tangencial que ocurren debido a que la lente no está paralela al plano de la imagen

Realizando la Calibración ChArUco

La calibración ChArUco con Limelight fue diseñada para ser lo más fluida y a prueba de errores posible. Lea los siguientes pasos y luego vea el video a continuación para aprender cómo calibrar su cámara para una mayor precisión.

info

Solo necesita calibrar en una resolución (recomendamos 1280x960 para LL3 y 1280x800 para LL3G). Los intrínsecos se escalan automáticamente para coincidir con la resolución elegida de su pipeline, y los coeficientes de distorsión son invariantes a la resolución dada una relación de aspecto y FOV fijos. Los pipelines de zoom por hardware y los pipelines de 5 megapíxeles son los únicos pipelines que no harán uso de calibraciones personalizadas.

Preparando el Tablero

Puede usar cualquier pantalla de laptop para calibrar su cámara. Sin embargo, para máxima precisión, recomendamos comprar este tablero grueso de 800mmx600mm de calib.io

Ejemplo de Tablero ChArUco

  1. Imprima un Tablero de Calibración ChArUco o use una imagen de un tablero en una pantalla grande de laptop o computadora. Use nuestro tablero de la página de descargas, o genere el suyo propio.
  2. Encuentre el "ancho" de la cuadrícula sumando el número total de cuadrados negros y el número total de marcadores ArUco en una fila (11 para el tablero de calibración predeterminado de Limelight).
  3. Encuentre la "altura" de la cuadrícula sumando el número total de cuadrados negros y el número total de marcadores ArUco en una columna (8 para el tablero de calibración predeterminado de Limelight).
  4. Confirme las medidas de "tamaño del cuadrado" y "tamaño del marcador" midiendo las longitudes laterales de un cuadrado y un marcador en milímetros.
    • Las medidas del tamaño del cuadrado y del marcador son críticas, así que use calibradores.
  5. Anote el tipo de diccionario. El tablero predeterminado de la página de descargas usa el diccionario 5x5_100.

Capturando Imágenes de Calibración

  1. Asegúrese de que su tablero esté lo más plano posible.
    • No debe realizar la calibración si su tablero no está plano. Puede comprar tableros especiales de calib.io, o fijar su tablero impreso a un portapapeles.
  2. Encienda su robot y acceda a la interfaz web de Limelight.
  3. Cree un pipeline AprilTag de 1280x960.
  4. Elimine todas las instantáneas guardadas cambiando el tipo de fuente de "entrada" de "Cámara" a "Instantánea" y haciendo clic en "Eliminar todas las instantáneas".
  5. Cambie el tipo de fuente de "entrada" de vuelta a "Cámara".
  6. Capture al menos 25 instantáneas del tablero ChArUco para comenzar. Una vez que esté familiarizado con el proceso, querrá volver a capturar un total de al menos 50 imágenes.
  7. La principal ventaja de la calibración ChArUco sobre la calibración estándar de tablero de ajedrez es que funciona incluso si solo parte del tablero es visible para la cámara. Es importante aprovechar esta ventaja.
  8. Sus imágenes deben tener una buena mezcla de las siguientes cualidades:
    • Su tablero abarca grandes regiones de la imagen.
    • Su tablero se extiende más allá de al menos un borde o esquina de la imagen (Esto ayudará a calcular la distorsión alrededor de los bordes de las imágenes).
    • Su tablero a menudo se posiciona de manera que tenga deformación de perspectiva (El tablero no debe estar paralelo al plano de la imagen).
    • Apunte a una amplia diversidad en posiciones del tablero, perspectivas y cobertura.
    • El 50% de sus imágenes deben ilustrar un acortamiento significativo. Este es el efecto de que los marcadores más cercanos aparezcan más grandes que los marcadores lejanos. La primera y la última imagen en la siguiente captura de pantalla demuestran el acortamiento

Ejemplos de Calibración

Calibrando

  1. Navegue a la pestaña "Calibración". Es la tercera pestaña en la barra lateral vertical.
  2. Ingrese los cinco valores encontrados en el paso "Preparando el Tablero".
  3. Haga clic en el botón "Calibrar con Instantáneas". El proceso puede tardar uno o dos minutos en completarse.
  4. Al tener éxito, la tarjeta "Resultado de la Última Calibración" mostrará el resultado de la calibración más reciente.
  5. Verifique la tarjeta "Resultado de la Última Calibración" para un resultado razonable con un bajo error de reproyección (idealmente menos de 1).
  6. Descargue el resultado de la última calibración y súbalo a la ranura de calibración "personalizada - archivo".
  7. Ahora debería ver tres tarjetas de resultados de calibración pobladas.
  8. Cambie su "calibración preferida" a "personalizada - archivo" para utilizar su resultado de calibración personalizado. Todos los pipelines usarán su resultado de calibración.
  9. Considere capturar más capturas de pantalla y recalibrar una vez que esté familiarizado con el proceso.