Entradas

PRÁCTICA 3: AUTOLOCALIZACIÓN VISUAL BASADA EN MARCADORES

Imagen
Introducción al problema El algoritmo implementado combina visión artificial (con balizas AprilTag) y odometría para estimar la posición y orientación del robot en un entorno conocido. El siguiente esquema muestra de forma clara el problema al que se busca dar solución, para el que se tienen que tener en cuenta los sistemas de referencia del mundo, de la cámara y de las balizas. Además se ha de considerar el offset entre la cámara y el centro del robot, así como la diferencia de orientación entre las balizas y el sistema de referencia del mundo según el robot se desplaza. En definitiva queremos llegar a tener la matriz de transformación RT_mc como el producto de RT_mb @ RT_bc, siendo RT_bc la inversa de RT_cb. Pasos seguidos En cada iteración (1) el robot captura una imagen, (2) la convierte a escala de grises, (3) detecta las balizas visibles usando el detector de AprilTags y (4) toma solo la primera detectada. Para cada baliza detectada (1) se recogen las coordenadas 2D de las esquin...

PRÁCTICA 2: RECONSTRUCCIÓN 3D DESDE VISIÓN

Imagen
Reconstrucción 3d a partir de un par estéreo En este ejercicio de recontrucción 3d a partir de dos imágenes de un par estéreo existen 3 partes principales: 1 - Selección de puntos de interés 2 - Búsqueda de homólogos 3 - Triangulación  Cada una de estas partes se desglosa en varios pasos que se cuentan a continuación.  Selección de puntos de interés Después de capturar cada una de las imágenes recibidas por cada cámara se llama a una función que encuentra los bordes de estas con Canny, aplicando primero un filtrado bilateral ( filtro bilateral opencv ). Para este filtrado se ponen valores altos para los sigma values (150), exgaerando el efecto del blur, eliminando detalles innecesarios para la reconstrucción 3D que únicamente introducen ruido. Por tiempos de procesado y por la calidad de los resultados obtenidos el tamaño del filtro se deja en size=5. Después de tener los bordes de las imágenes se llama a otra función que devuelve las coordenadas de los pixeles detectados como...

PRÁCTICA 1: CONTROL VISUAL.

Para que el coche sea capaz de seguir la línea roja de forma autónoma primero obtengo una máscara que devuelve en blanco los pixeles que se corresponden con la región roja de la imagen. Para ello establezco el rango de valores HSV de interés. A partir de la máscara llevo a cabo el cálculo del momento, tal y como se indica en  https://jderobot.github.io/RoboticsAcademy/exercises/AutonomousCars/follow_line/ . Para calcular el error saco la diferencia entre el momento y el centro de la imagen, que en un momento inicial he asumido que se corresponde con el centro del coche. Sin embargo, después he observado que el centro de la imagen no cae justo sobre el centro de la línea roja, lo que me indica que la cámara no está centrada en el coche, sino que está un poco desplazada (aproximadamente 4 pixeles).  Así, el cálculo del error queda finalmente como: err = cx – (w//2 - 4).   En un primer momento establecí la velocidad lineal en un valor bajo para intentar optimizar el con...