Vista previa del material en texto
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY CAMPUS MONTERREY PROGRAMA DE GRADUADOS EN TECNOLOGÍAS DE INFORMACIÓN Y ELECTRÓNICA T E S I S MAESTRÍA EN CIENCIAS EN SISTEMAS INTELIGENTES Control Visual de Trayectorias para un Veh́ıculo Autónomo utilizando una Cámara Móvil por Fernando Alberto Rivero Rivero Monterrey, N.L., Diciembre de 2006 ©Fernando Alberto Rivero Rivero, 2006. Control Visual de Trayectorias para un Veh́ıculo Autónomo utilizando una Cámara Móvil por Fernando Alberto Rivero Rivero T e s i s Presentada al Programa de Graduados en Tecnoloǵıas de Información y Electrónica del Instituto Tecnológico y de Estudios Superiores de Monterrey, Campus Monterrey como requisito parcial para obtener el grado académico de Maestro en Ciencias en Sistemas Inteligentes Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey Monterrey, N.L., Diciembre de 2006 Instituto Tecnológico y de Estudios Superiores de Monterrey Campus Monterrey Escuela de Tecnoloǵıas de Información y Electrónica Programa de Graduados en Tecnoloǵıas de Información y Electrónica Los miembros del comité de tesis recomendamos que la presente tesis del Ing. Fernando Alberto Rivero Rivero sea aceptada como requisito parcial para obtener el grado de Maestro en Ciencias en Sistemas Inteligentes. Comité de Tesis Dr. José Luis Gordillo M. Asesor principal Dr. Rogelio Soto Dr. Carlos Hinojosa M.C. Carlos Albores Sinodal Sinodal Sinodal Dr. Graciano Dieck Assad Director de los Programas de Postgrado en Tecnoloǵıas de Información y Electrónica Diciembre de 2006 ix Resumen Esta tesis describe una arquitectura de control para el seguimiento visual de trayectorias con un veh́ıculo autónomo (VA). Durante los desplazamientos del VA, la arquitectura utiliza una cámara móvil con el propósito de ampliar su espacio de trabajo. Con esta cámara, el sistema de visión calcula y retroalimenta la posición del VA durante el seguimiento de una trayectoria. La arquitectura desarrollada cuenta con dos componentes principales: un VA y un sistema de visión cuyas imágenes se obtienen de una cámara móvil rotacional en pan y tilt. El sistema de visión se integra, a la arquitectura del VA ya existente, como un sensor adicional. Este sensor obtiene la posición y orientación del VA; posteriormente se retroalimenta esa información para que el VA corrija su posición y su orientación. El sistema de visión esta compuesto principalmente por tres algoritmos: el seguimiento visual del VA, el control de la cámara móvil y la transformación de coordenadas entre la imagen y el área de trabajo del VA. Para la transformación de coordenadas se desarrolló un método para obtener una matriz de homograf́ıa general a partir de una matriz de homograf́ıa inicial y la posición de la cámara móvil. El sistema de visión y la estimación de posición del VA se unen en un módulo de la arquitectura en el cual se fusiona información obtenida de ambos sensores, con base en la incertidumbre de cada sensor. El algoritmo de fusión de datos utilizado es el Filtro de Kalman Extendido (FKE), herramienta ampliamente utilizada para la fusión de datos generada por varios sensores. El sistema visual mejora la estimación de posición de un veh́ıculo ya que en su estimación de la posición, el error no es acumulativo, como con el uso de la odometŕıa. Incorporar el sistema de visión permite, al sistema de control del VA, realizar el seguimiento de una trayectoria con mayor exactitud, comparado con la sola utilización de sensores internos. xi Dedicatoria A Dios. A mis padres por su amor y apoyo. A mis hermanos Carlos, Mario y Marialmira. A mi novia Gloria por su constante paciencia, comprensión y cariño. xiii Agradecimientos Agradezco al Centro de Sistemas Inteligentes, por el apoyo académico y las facilidades otorgadas para el uso de los recursos y servicios computacionales durante los dos años de mi postgrado. Aśı como también a todos y cada uno de los profesores del CSI por la formación académica que me brindaron durante estos años. En especial al Dr. Rogelio Soto, director del centro y al Dr. Hugo Terashima, director de la carrera. Mi más sincero agradecimiento al Dr. José Luis Gordillo por haberme permitido ser parte de su equipo de trabajo. Su enseñanza y consejos hicieron posible la realización de esta tesis. A Carlos Albores, gracias por tu amistad, consejos y enseñanzas. A Doris, por tu gran apoyo durante todo este tiempo. A todos y cada uno de mis amigos y compañeros de maestŕıa. En especial a Hugo O., Gilberto G., Iván, L. que juntos vivimos esta experiencia y colaboraron de algún modo en la realización de esta tesis. A todos ustedes, gracias... Contenido 1. Introducción 1 2. Arquitectura para el seguimiento visual de una trayectoria con un VA 9 2.1. Arquitectura del control visual de un VA . . . . . . . . . . . . . . . . . 10 2.1.1. Arquitectura del VA . . . . . . . . . . . . . . . . . . . . . . . . 11 2.1.2. Arquitectura del sistema visual . . . . . . . . . . . . . . . . . . 11 2.1.3. Fusión de datos . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2. Arquitectura del veh́ıculo autónomo . . . . . . . . . . . . . . . . . . . . 12 2.2.1. Modelo cinemático . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.2.2. Arquitectura de control . . . . . . . . . . . . . . . . . . . . . . . 14 2.2.3. Control de trayectoria . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.4. Control a punto . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.2.5. Estimación de la posición por odometŕıa . . . . . . . . . . . . . 18 2.2.6. Control de velocidad . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2.7. Control de dirección . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3. Fusión de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.3.1. Filtro de Kalman . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3. Retroalimentación visual con cámara fija 23 3.1. Arquitectura del sistema visual . . . . . . . . . . . . . . . . . . . . . . 24 3.2. Seguimiento del VA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3. Transformación de coordenadas . . . . . . . . . . . . . . . . . . . . . . 27 3.3.1. Modelo pinhole . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.3.2. Distorsión del lente de la cámara . . . . . . . . . . . . . . . . . 29 3.3.3. Proyección de la coordenadas de la imagen al mundo real . . . 30 3.4. Obtención de (x, y, θ)R con el sistema visual . . . . . . . . . . . . . . . 31 4. Cámara Móvil 33 4.1. Control de la Cámara . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 4.1.1. Estimación del desplazamiento . . . . . . . . . . . . . . . . . . . 35 4.1.2. Posición de la cámara . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.3. Protocolo de comunicación . . . . . . . . . . . . . . . . . . . . . 37 4.2. Transformación de coordenadas con cámara móvil . . . . . . . . . . . . 37 xv xvi Contenido 4.2.1. Homograf́ıa móvil . . . . . . . . . . . . . . . . . . . . . . . . . 38 4.2.2. Cámara puramente rotacional . . . . . . . . . . . . . . . . . . . 39 4.2.3. Homograf́ıa entre imágenes . . . . . . . . . . . . . . . . . . . . . 40 4.2.4. Homograf́ıa general . . . . . . . . . . . . . . . . . . . . . . . . . 40 5. Implementación y Experimentos 43 5.1. Arquitectura y Sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.2. Computadora . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.2.1. Fusión de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 5.3. Arquitectura del VA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 5.3.1. Especificaciones del veh́ıculo . . . . . . . . . . . . . . . . . . . . 45 5.3.2. Veh́ıculo Automatizado . . . . . . . . . . . . . . . . . . . . . . . 46 5.3.3. Unidad de procesamiento . . . . . . . . . . . .. . . . . . . . . . 47 5.3.4. Comunicación por RF . . . . . . . . . . . . . . . . . . . . . . . 47 5.3.5. Sensor de velocidad . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.3.6. Sensor de dirección . . . . . . . . . . . . . . . . . . . . . . . . . 48 5.3.7. Etapa de potencia de velocidad . . . . . . . . . . . . . . . . . . 50 5.3.8. Control de velocidad y dirección en el VA . . . . . . . . . . . . 50 5.4. Sistema de visión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 5.4.1. Especificaciones de la cámara . . . . . . . . . . . . . . . . . . . 53 5.4.2. Protocolo de comunicación . . . . . . . . . . . . . . . . . . . . . 54 5.4.3. Algoritmo de seguimiento . . . . . . . . . . . . . . . . . . . . . 54 5.4.4. Obtención de la posición y orientación . . . . . . . . . . . . . . 56 5.5. Experimentos y resultados . . . . . . . . . . . . . . . . . . . . . . . . . 58 5.5.1. Radios de giro del veh́ıculo . . . . . . . . . . . . . . . . . . . . . 58 5.5.2. Pruebas con uso exclusivo de odometŕıa . . . . . . . . . . . . . 60 5.5.3. Pruebas con retroalimentación visual estática . . . . . . . . . . 64 5.5.4. Pruebas con retroalimentación visual dinámica . . . . . . . . . . 66 6. Conclusiones 71 A. Diagramas Eléctricos 75 A.1. Tarjeta del microcontrolador . . . . . . . . . . . . . . . . . . . . . . . . 75 A.2. Tarjeta de potencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 A.3. Doblador de voltaje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 A.4. Concentradora de periféricos . . . . . . . . . . . . . . . . . . . . . . . . 76 B. Interfaz gráfica 81 B.1. Configuración . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 B.2. Progs VA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 B.2.1. Corrida VA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 B.2.2. Manejo Automático y Manual . . . . . . . . . . . . . . . . . . . 85 B.3. Progs Camara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 B.3.1. Configuración de parámetros de la cámara . . . . . . . . . . . . 87 B.4. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 Contenido xvii C. Instrumentación del veh́ıculo 91 C.1. Actuador de velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . 91 C.2. Actuador de la dirección . . . . . . . . . . . . . . . . . . . . . . . . . . 93 C.3. Sensado de la velocidad . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 C.4. Sensado de la dirección . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 Bibliograf́ıa 95 Índice de figuras 1.1. Posición de los elementos principales de la arquitectura propuesta, la cámara móvil se encuentra a cierta altura del área de trabajo y sigue al VA durante su recorrido. . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Arquitectura de control implementada. . . . . . . . . . . . . . . . . . . 5 2.1. Arquitecturas parciales implementadas; que entre ambas existe un módulo de comunicación para intercambiar información. . . . . . . . . 10 2.2. Modelo cinemático del carro, cuya posición es (x, y) del plano con ori- entación θ, mientras que φ indica la dirección de las llantas. . . . . . . 13 2.3. Diagrama a bloques de los módulos que componen la arquitectura del veh́ıculo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4. Algoritmo de persecución pura. Se traza un arco con radio R que va desde la posición del veh́ıculo al siguiente punto de la trayectoria. . . . 17 2.5. Lazo de control digital para la velocidad; se le da una velocidad como referencia la cual debe de alcanzar el controlador. . . . . . . . . . . . . 20 2.6. Lazo de control digital para la dirección. . . . . . . . . . . . . . . . . . 21 2.7. Fusión de posición realizada. . . . . . . . . . . . . . . . . . . . . . . . 22 3.1. Arquitectura modular que gobierna el sistema de visión. . . . . . . . . 25 3.2. Pasos del algoritmo de desplazamiento medio en forma gráfica. . . . . 28 3.3. Modelo pinhole, un objeto en el mundo real (3-D) se proyecta dentro de la imagen (2-D). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.4. Tipos de distorsiones de los lentes . . . . . . . . . . . . . . . . . . . . 30 4.1. Módulo del control de la cámara; cada flecha muestra la transmisión de información entre módulos. . . . . . . . . . . . . . . . . . . . . . . . . 35 4.2. Distancias entre el centro de la imagen y el centro del veh́ıculo. . . . . 36 4.3. La cámara tiene que realizar movimientos rotacionales (θ1, θ2) para seguir al VA dentro del área de trabajo. . . . . . . . . . . . . . . . . . 38 4.4. Dos imágenes tomadas con diferentes rotaciones a travesadas por un punto m’ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.1. Elementos principales del sistema desarrollado. Existe comunicación bidireccional entre todos los elementos que lo conforman. . . . . . . . . 44 5.2. Veh́ıculo a escala escala que se automatizó. . . . . . . . . . . . . . . . 45 xix xx Índice de figuras 5.3. Elementos implementados sobre el VA. . . . . . . . . . . . . . . . . . . 46 5.4. Paquetes y protocolo de comunicación entre la computadora y el VA . . 48 5.5. Sensor de velocidad, disco ranurado y codificador óptico acoplados al eje de las llantas traseras. . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.6. Sensor de dirección acoplado al eje de giro delantero. . . . . . . . . . . 50 5.7. Tarjeta de potencia de velocidad, en ella se encuentran tres partes: ais- lamiento, lógica y potencia. . . . . . . . . . . . . . . . . . . . . . . . . 51 5.8. Resultado de una prueba del control de velocidad, se cerró el lazo de control y se le pidió al controlador que mantuviera 30 cuentas por tiempo de muestreo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52 5.9. Resultado del control de dirección al realizar el veh́ıculo una trayectoria simple con giros en ambos sentidos, el controlador tiene que realizar ajustes seguir la trayectoria. . . . . . . . . . . . . . . . . . . . . . . . . 53 5.10. Paquete de comunicación y protocolo de comunicación entre la computa- dora y la cámara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 5.11. Adelanto de la ventana de seguimiento en la orientación del vector de desplazamiento del VA. . . . . . . . . . . . . . . . . . . . . . . . . . . 55 5.12. Datos comparativos entre los datos crudos (Um = 0) en orientación (a) y (c) respectivamente, contra el uso de un filtro de distancia Um = 0.13 (b) y (d). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 5.13. Orientación del veh́ıculo con datos crudos y al incluir el filtro de primer orden con Wc = 5 y T = 0.18 . . . . . . . . . . . . . . . . . . . . . . . 58 5.14. Representación gráfica de los radios de giro realizados por el VA para su caracterización. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59 5.15. Pruebas de seguimiento de una recta utilizando la manipulaciones no medidas en los radios de giro. . . . . . . . . . . . . . . . . . . . . . . . 60 5.16. Pruebas utilizando solamente los sensores de odometŕıa, resultados obtenidos por el sistema de odometŕıa. . . . . . . . . . . . . . . . . . . 62 5.17. Pruebas utilizando solamente los sensores de odometŕıa, mediciones obtenidas con el sistema de visión. Los resultados de las pruebas vaŕıan al variar φ ya que se se modifica la estimación de la posición. . . . . . . 63 5.18. Pruebas utilizando retroalimentación visual, (a) y (b) es la medición de los sensores de odometŕıa, (c) y (c) es la medición del sistema de visión y (e) y (f) la fusión de las dos mediciones anteriores. . . . . . . . . . . 65 5.19. Pruebas utilizando la cámara móvil y retroalimentando la fusión de los datos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 5.20. Evolución de la trayectoria tipo rectangular, recorridapor el VA, in- tegrada por 7 puntos de control. . . . . . . . . . . . . . . . . . . . . . . 68 5.21. Evolución de la trayectoria tipo ”8”, recorrida por el VA, integrada por 16 puntos de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 Índice de figuras xxi A.1. Tarjeta genérica del microcontrolador MEGA 128. Se divide la tarjeta en siete secciones dependiendo de su función: lógica de programación, alimentación, pines de salida, jumpers, comunicación 485, comunicación 232 y el microcontrolador. . . . . . . . . . . . . . . . . . . . . . . . . . 77 A.2. La tarjeta de potencia de velocidad se divide en tres partes, aislamiento, lógica y potencia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78 A.3. La tarjeta dobladora de voltaje se divide en tres secciones: dos dobladores de voltaje y un regulador variable de voltaje. . . . . . . . . 79 A.4. La tarjeta concentradora de periféricos enlaza las señales de los sensores y actuadores hacia el microcontrolador. . . . . . . . . . . . . . . . . . . 79 B.1. Ventana principal de la interfaz gráfica. . . . . . . . . . . . . . . . . . . 81 B.2. En la ventana de parámetros de configuración del VA se seleccionan los valores de ajuste para las pruebas. . . . . . . . . . . . . . . . . . . . . . 83 B.3. La ventana del manejo de los VA permite enviar comandos hacia el veh́ıculo para manejarlo de forma manual o automático. . . . . . . . . . 84 B.4. Ventana para el env́ıo de comandos al VA. . . . . . . . . . . . . . . . . 85 B.5. Ventana principal del seguimiento visual, en ella se despliega la imagen de la cámara y el seguimiento del VA. . . . . . . . . . . . . . . . . . . . 87 B.6. Ventana para modificar diversos parámetros de la cámara, entre ellos, la posición, intensidad luminosa y contraste. . . . . . . . . . . . . . . . 89 C.1. Diagramas del funcionamiento de un puente-H, a la izquierda están ac- tivados los transistores T1 y T4 mientras que a la derecha T2 y T3. . . . 92 C.2. Diferentes frecuencias de la señal de PWM, a mayor frecuencia tH tiende a T . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 Índice de tablas 5.1. Relación de voltaje, dirección, resistencia y lectura digital del sensor de dirección. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 5.2. Comparación entre algoritmo de seguimiento sin modificación y con un adelanto antes de la búsqueda. . . . . . . . . . . . . . . . . . . . . . . 55 5.3. Relación entre las manipulaciones y radios de giro. . . . . . . . . . . . . 59 5.4. Error inicial en el seguimiento de la trayectoria, basado en las gráficas de la Figura 5.16. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 5.5. Error obtenido por el sistema de visión, basado en las gráficas que apare- cen en la Figura 5.17. . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.6. Error de los diferentes sensores utilizando retroalimentación visual, basa- do en la Figura 5.18. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 5.7. Error de los diferentes sensores utilizando retroalimentación visual dinámica, basado en la Figura 5.19. . . . . . . . . . . . . . . . . . . . 66 6.1. Diferencias entre el trabajo aqúı reportado y el trabajo realizado por [Vázquez 02] dentro del Laboratorio de Robótica del CSI. . . . . . . . 73 xxiii Caṕıtulo 1 Introducción Los robots móviles combinan la mecánica electrónica y control, con el propósito de realizar gran variedad de tareas como: trabajos subterráneos (mineŕıa), aplicaciones submarinas, misiones espaciales y vigilancia, entre otros. Dichos mecanismos realizan tareas en áreas peligrosas o inaccesibles, con mayor precisión que un ser humano. Un tipo de robot móvil son los veh́ıculos autónomos (VA), los cuales son capaces de modelar, planificar y actuar para alcanzar ciertos objetivos sin la intervención o con pequeña intervención de un supervisor humano. Un VA es autónomo durante la ejecución de la tarea. Para dotar de autonomı́a a un veh́ıculo existen dos enfoques: el primero, consiste en diseñar y construir el veh́ıculo pensando en la tarea espećıfica que va a realizar; el segundo, es modificar un veh́ıculo ya construido diseñado para realizar una tarea particular y adaptarlo para que adquiera autonomı́a. El primer enfoque presenta varias desventajas, puesto que el tiempo de desarrollo es mayor, se requiere tener una mayor infraestructura para el desarrollo y es mas costoso. El segundo enfoque permite automatizar un veh́ıculo ya existente, ahorrando el tiempo de construcción permitiendo enfocarse solamente a su automatización. Este trabajo de investigación utiliza el segundo enfoque, puesto que se automatiza un veh́ıculo a escala de control remoto para validar la arquitectura propuesta. Para que un VA siga satisfactoriamente una trayectoria, se requiere que determine su localización (posición y orientación) con precisión, en todo momento, con respecto a un sistema de referencia absoluto. La odometŕıa (dead reckoning) es una técnica que estima la posición y orientación del veh́ıculo utilizando sensores que miden el número de vueltas dadas por sus ruedas y la orientación de sus llantas. La ventaja de esta técnica es su simplicidad y la rapidez de implementación. Entre sus desven- tajas se encuentran las imprecisiones causadas por el deslizamiento de las ruedas, la irregularidad del suelo y fundamentalmente la acumulación de error durante la navegación. Dichas imprecisiones originan que la región de incertidumbre asociada a la posición y orientación del robot vaya creciendo conforme el robot se mueve. Por tanto se necesita de otro sensor para reducir la incertidumbre en la posición del veh́ıculo. 1 2 Caṕıtulo 1. Introducción Los métodos de seguimiento visual mantienen acotada la incertidumbre, ya que son sensores absolutos. Un sistema de visión se puede integrar a un VA de dos formas, como un sensor abordo del veh́ıculo o como un sensor fuera de bordo. Para la estimación de posición si la visión se integra como un sensor abordo del veh́ıculo se colocan marcas preestable- cidas en el ambiente las cuales son detectadas por el sistema de visión. El sistema de visión abordo para navegar aśı es limitado ya que el veh́ıculo solamente puede desplazarse en ambientes predeterminados. Por otra parte, el sistema de visión fuera de bordo tiene una vista mas amplia del ambiente ya que su rango de visión no se limita a la orientación del veh́ıculo; puede de igual forma, ayudar al veh́ıculo a navegar y detectar obstáculos. Para funcionar como sensor en la navegación no es necesario que existan marcas preestablecidas dentro del ambiente. El objetivo de esta tesis es desarrollar una arquitectura computacional la cual integre un VA y un sistema de visión, el cual utiliza una cámara móvil fuera de borda. El sistema de visión permite calcular y retroalimentar la posición del VA durante el seguimiento de una trayectoria. Se supone que al utilizar un sistema visual mejora la estimación de posición de un veh́ıculo ya que en su estimación de la posición el error no es acumulativo como en el uso de la odometŕıa. El resultado de incorporar el sistema de visión al sistema de control del veh́ıculo, permitirá al VA realizar el seguimiento de una trayectoria con mayor exactitud, comparado con utilizar solamente sensores internos. Los VA rara vez son equipados con un solo sensor para realizar todas estas tareas, sino que se incluyen varios sensores que hacen mas robusto el sistema [Ollero 93]. Estos veh́ıculos llevan consigo una gran cantidad de sensores como brújula, giroscopio, acelerómetro, láser, GPS y sistemas de visión. Los sensores permiten al veh́ıculo estimar su posición y orientación, aśı como detectar posibles obstáculos. Un ejemplo de este tipo de veh́ıculos son los desarrollados para una competencia que ha llamado la atención en años recientes organizada por el Departamentode Defensa (DARPA) de los E.U. El objetivo de dicha competencia es que un VA recorra una distancia de 212 Km. a través del desierto. El objetivo a largo plazo de esta ĺınea de investigación es automatizar un veh́ıculo para que pueda navegar, confiablemente, en situaciones similares a las de dicha competencia. Por su parte, en el Laboratorio de Robótica del Centro de Sistemas Inteligentes (CSI) se han instrumentado y desarrollado varios VA a escala los cuales se basan en la arquitectura propuesta por [Palacios 00]. Estos veh́ıculos a escala cuentan con sensores basados en odometŕıa y su consigna principal es seguir trayectorias determinadas en posiciones (x, y) en el espacio de trabajo. En el Laboratorio se cuenta de igual forma de un veh́ıculo automatizado de tamaño real [González 05] el cual tiene las mismas caracteŕısticas que los veh́ıculos a escala. 3 Por otra parte dentro del Grupo de Visión del CSI han desarrollado trabajos de seguimiento de personas en tiempo real, utilizando métodos integrales [Guevara 00] y derivativos [Aguilar 02]. Los métodos derivativos detectan el movimiento mediante un análisis en los cambios de intensidades en la imagen y en los cambios de intensidades que se presentan de imagen a imagen. Los métodos integrales utilizan caracteŕısticas de área; se enfocan en el conjunto de pixeles que conforman al objeto y utilizan técnicas estad́ısticas para realizar el seguimiento. Un trabajo reciente es un sistema para el seguimiento de múltiples objetos utilizando una cámara móvil, realizado por [Ortega 06]. Este sistema permite el seguimiento de un objeto denominado el “objeto principal”, el cual es el objeto de interés para el seguimiento visual. Adicionalmente el sistema detecta “objetos secundarios”, los cuales son elementos que ingresan al área de visión en la cual se encuentra el objeto principal. Se propone utilizar los trabajos realizados dentro del Grupo de Visión [Ortega 06, Guevara 00] como base para el desarrollo e implementación de un sensor adicional para el VA. El sistema desarrollado con estos últimos cierra el lazo de control con el VA. La arquitectura propuesta funciona en espacios cerrados, aśı como en espacios abiertos donde se cuenta con suficiente iluminación. Como en cualquier sistema visual, la iluminación juega un papel preponderante ya que afecta a todo tipo de algoritmos implementados. El veh́ıculo debe de ser visible en todo momento por el sistema de visión. Además se considera que no existen obstáculos los cuales oculten al veh́ıculo de la cámara. Igualmente se considera que al VA siempre se le darán trayectorias las cuales realice dadas sus limitaciones cinemáticas y la trayectoria efectuada se mantendrá dentro del rango de visión de la cámara. Un trabajo similar al actual fue realizado por [Vázquez 02]; donde se utilizó una cámara fija para realizar el seguimiento y control de un veh́ıculo a escala. Dicho desarrollo se basó en [Aguilar 02], el método de seguimiento era por medio de métodos derivativos. Las principales diferencias entre ambos trabajos se pueden dividir en tres: sensores del veh́ıculo, caracteŕısticas del sistema de visión e integración del sistema. En lo que respecta a los sensores del veh́ıculo se agregó un sensor de orientación para las llantas y un sensor adicional de desplazamiento. El sistema de visión es diferente en dos caracteŕısticas: se utiliza una cámara móvil en vez de una cámara estática y los algoritmos de seguimiento visual. En cuanto al sistema integrado se utiliza un método de fusión de datos en la retroalimentación y no solamente el posicionamiento visual. El veh́ıculo utilizado posee las caracteŕısticas de un carro común, se desplaza a través del cambio de la velocidad y de la dirección. De igual forma presenta restricciones no-holonómicas, que deben considerarse al momento de planear la trayectoria a realizar. La Figura 1.1 muestra el posicionamiento de la cámara móvil y el VA dentro del área de trabajo. El sistema de visión se ubica a cierta altura con respecto al área 4 Caṕıtulo 1. Introducción Cámara Trayectoria Área de visión de la cámara VA (θ1,θ2) Figura 1.1: Posición de los elementos principales de la arquitectura propuesta, la cámara móvil se encuentra a cierta altura del área de trabajo y sigue al VA durante su recorrido. de trabajo y desde ah́ı la cubre visualmente. La cámara rota sobre sus ejes, lo que permite al veh́ıculo trabajar una área mayor a la que proporcionaŕıa una cámara estática. El veh́ıculo realiza el seguimiento de la trayectoria modificando la orientación de sus llantas y desplazándose a una velocidad constante. Al incorporar el sistema de visión, como un sensor fuera de borda, se requiere incluir una computadora externa que procese la información del sistema de visión. Debido a que se tienen dos elementos aislados (un VA y una cámara móvil conectada a una computadora) es necesario distribuir las tareas que cada dispositivo realiza. Entre los dos dispositivos existe una comunicación constante para enviar y recibir correcciones de la posición del veh́ıculo. La arquitectura desarrollada cuenta con dos elementos principales: un VA y un sistema de visión. En la práctica, el sistema de visión se integró a una arquitectura ya existente, como un sensor adicional. Este sensor obtiene la posición y orientación del VA; posteriormente el sistema retroalimenta esa información para que el VA corrija su posición y orientación. El resultado de este proceso es un mejor seguimiento de la trayectoria, por parte del VA. subsistemas por elementos El VA es capaz de seguir una trayectoria definida por el usuario. La arquitectura del VA se basa en la arquitectura de control propuesta por [Albores 06]; la cual se muestra en la Figura 1.2. La arquitectura se divide en dos etapas: la primera consiste en la planeación de la trayectoria, mientras que la segunda etapa contempla el seguimiento 5 Control a punto Control de trayectoria Planeación de trayectoria Estimación de posición Control de dirección Control de velocidad Modelo cinemático del vehículo Múltiples sensores Modelodel ambiente Evasión de obstáculos Planeación de trayectoria dinámica Procesamiento de sensores Planeación de trayectoria Seguimiento de trayectoria Fusión de datos Procesamiento dentro del VA Sistema de visión Figura 1.2: Arquitectura de control implementada. de la trayectoria. La etapa de planeación de trayectoria utiliza el modelo del ambiente y las restricciones del modelo cinemático del veh́ıculo para generar una trayectoria válida, que sea factible realizar por el veh́ıculo. En este trabajo no se hará énfasis en esta etapa, puesto que supone que la trayectoria a realizar está validada y el veh́ıculo podrá realizar correctamente dicha trayectoria. El seguimiento de trayectoria incorpora los controladores y sensores, para que los actuadores de velocidad y dirección del veh́ıculo aseguren que la trayectoria solicitada es seguida con fidelidad (con mı́nimo error). La etapa de planeación de trayectoria define la trayectoria como una lista {P1 . . . Pn} de n puntos donde P1 y Pn son los puntos inicial y final respectivamente. La trayectoria es enviada al control de trayectoria, quien se encarga de enviar la velocidad crucero del veh́ıculo, además de la secuencia de puntos {Pi}i=1...n al control a punto. El control a punto recibe uno tras otro los puntos Pi a seguir y determina cuando el VA ha alcanzado al punto Pi de la trayectoria. Aśı, después de haber alcanzado el punto Pi, el control a punto calcula la manipulación a colocar en la dirección para alcanzar al siguiente punto Pi+1. El control de dirección se encarga de mantener la dirección en el valor pedido. El control de velocidad mantiene constante la velocidad crucero durante el seguimiento. La estimación de posición, que se encuentra 6 Caṕıtulo 1. Introducción dentro del VA, realiza los cálculos pertinentes para obtenerla posición y orientación del veh́ıculo con base en la información obtenida de la velocidad y dirección. Esta estimación es de tipo odométrica y se basa en el modelo cinemático del veh́ıculo. Como se mencionó, El sistema de visión se incorpora a la arquitectura como un sensor externo. Este sensor se encuentra fuera de borda conectado a una computadora. El sistema de visión realiza el seguimiento visual del VA, la estimación de la posición y orientación del veh́ıculo, aśı como el control de la cámara móvil. La estimación de posición obtenida por métodos odométricos y por el sistema de visión se introducen al módulo de fusión de datos. Este módulo de fusión de datos, el cual se encuentra en la computadora, se encarga de obtener una nueva estimación de la posición con base en las dos mediciones de entrada, y de realizar la fusión de ambas mediciones utilizando técnicas de fusión de múltiples sensores. Después de realizar la nueva estimación de posición, se retroalimenta al veh́ıculo con la nueva estimación para que corrija su posición y orientación. El módulo de evasión de obstáculos se encarga de manipular la velocidad y dirección cuando se detecta un obstáculo en la trayectoria del veh́ıculo. Al modificar la trayectoria por la evasión de obstáculos es necesario reanudar con el seguimiento de la trayectoria; por tanto, se realiza una planeación dinámica de la trayectoria para reanudar el seguimiento de la trayectoria original. Ni la evasión, ni la planeación dinámica van a ser abordados en este trabajo. La metodoloǵıa seguida durante el desarrollo de esta investigación se describe a continuación; según se describe en [Albores 06], Análisis y caracterización Se realizó la caracterización de los elementos mecánicos y eléctricos del veh́ıculo y de la cámara móvil a utilizar. Modelado Se realizó un modelo del comportamiento del veh́ıculo y del sistema de visión. Se modeló, de igual forma, el funcionamiento del VA en conjunto con el sistema de visión. Diseño Se diseñaron los elementos necesarios para controlar los diferentes compo- nentes del veh́ıculo. También se diseñaron los algoritmos necesarios para integrar al sistema de visión con el VA. Implementación Se acoplaron los elementos necesarios para la manipulación de la velocidad y dirección del veh́ıculo y se desarrollaron los algoritmos de visión requeridos para el seguimiento del veh́ıculo. Esta etapa se realizó en tres fases: la primera, el veh́ıculo navega solamente con sensores de odometŕıa, mientras la visión solamente realiza el seguimiento mediante la estimación de la posición y la orientación del veh́ıculo, pero sin retroalimentación; la segunda implementa la retroalimentación de la posición y orientación hacia el veh́ıculo usando la cámara fija; en la tercera, se le agregó movilidad a la cámara. 7 Validación y pruebas Se realizaron pruebas en cada una de las fases de imple- mentación realizadas. Corrección y refinamiento Se implementó un ciclo de correcciones para mejo- rar el desempeño del VA, el sistema de visión y ambos elementos trabajando en conjunto. Como se mencionó anteriormente, este trabajo está basado en el sistema de visión realizado por [Ortega 06]. De ese trabajo se van a tomar los algoritmos de seguimiento de objetos, transformación de coordenadas y movimiento para una cámara móvil. Se crearán nuevos algoritmos para que los algoritmos de visión puedan ser capaces de interactuar con un VA. Para automatizar el VA, se utiliza la metodoloǵıa realizada por [Albores 06], de dicho trabajo también se extraen los métodos de fusión de múltiples sensores. Las principales contribuciones y alcances de este trabajo son la automatización de un veh́ıculo a escala; el desarrollo de una arquitectura en la cual se integran un VA y un sistema de visión con cámara móvil; el uso de una cámara móvil como sensor externo, para el seguimiento y la estimación de la posición de un VA; uso de un algoritmo que fusiona la posición y la orientación obtenida con sensores de odometŕıa y por el sistema de visión; desarrollo de algoritmos para la estimación de la posición utilizando una cámara móvil; y la retroalimentación la posición y orientación al VA. Describiendo el desarrollo de la tesis, el Caṕıtulo 2 describe la arquitectura del sistema y la arquitectura del VA. Se presenta el modelo cinemático del veh́ıculo a au- tomatizar. Se describen ampliamente la arquitectura de control, el control de velocidad y dirección y la estimación de posición. Se presenta la distribución de la arquitec- tura dentro del VA y una computadora. El Caṕıtulo 3 presenta el sistema de visión. Se describen los algoritmos utilizados para el seguimiento del veh́ıculo. Aśı mismo se describen los algoritmos utilizados para eliminar la distorsión de la cámara y para re- alizar la transformación de coordenadas entre las imágenes obtenidas por el sistema visual y las coordenadas del VA. El Caṕıtulo 4 describe los algoritmos utilizados para el movimiento de la cámara y la estimación de la posición cuando la cámara no se encuentra en una posición estática. El Caṕıtulo 5 presenta las implementaciones real- izadas tanto para automatizar al veh́ıculo como en el sistema de visión. Se muestran los experimentos realizados, aśı como los resultados y mediciones obtenidas. Finalmente el Caṕıtulo 6 contiene las conclusiones obtenidas en la implementación de este trabajo. De forma complementaria, el Apéndice A presenta los diagramas eléctricos implemen- tados. El Apéndice B es un manual de usuario para el sistema de visión y el VA. El Apéndice C describe las implementaciones realizadas sobre el veh́ıculo para lograr su automatización. Caṕıtulo 2 Arquitectura para el seguimiento visual de una trayectoria con un VA Recordemos que la meta principal de un VA es realizar la tarea asignada con cierto grado de autonomı́a. Para que un veh́ıculo se mueva de forma autónoma se agregan tanto actuadores como sensores, de igual forma generar una arquitectura que controle dichos dispositivos y por ende al veh́ıculo. En este caṕıtulo se presenta la arquitectura de todo el sistema y se describe el funcionamiento general de cada parte de la arquitectura. De igual forma, se describe la distribución de la arquitectura con respecto a los componentes utilizados dentro de la experimentación. Por tanto realiza la descripción a fondo la arquitectura implementada dentro del VA y la funcionalidad de cada módulo que integra dicha arquitectura. Debido a que se tienen dos sistemas aislados (un VA y una cámara móvil conectada a una computadora) fue necesario distribuir los elementos de la arquitectura, para crear dos arquitecturas parciales las cuales se comunican entre si. Una arquitectura reside en el VA y la otra se implementa en la computadora que realiza el procesamiento visual. La arquitectura dentro del veh́ıculo se encarga de controlar el seguimiento de la trayectoria, la velocidad y dirección, aśı como la estimación por odometŕıa de la posición. La arquitectura del sistema visual, se encarga del seguimiento del veh́ıculo, movimiento de la cámara y la estimación visual de la posición. Un veh́ıculo común se desplaza manipulando dos variables: la velocidad (v) y ori- entación de las llantas (φ); con ellas el veh́ıculo es capaz de cambiar su posición (x, y) y su orientación (θ). Por tanto, la arquitectura que resida dentro del veh́ıculo se define a partir de las propiedades cinemáticas del veh́ıculo. Teniendo un correcto control de la velocidad y la dirección de las llantas, el veh́ıculo se desplaza siguiendo una trayectoria asignada. 9 10 Caṕıtulo 2. Arquitectura para el seguimiento visual de una trayectoria con un VA 2.1 Arquitectura del control visual de un VA La arquitectura de la cual parte este trabajo se muestra en la Figura 1.2 y está basada en [Palacios 00]. Dicha arquitectura es jerárquica y supone que todoslos elementos se encuentran conectados directamente entre si. Para este trabajo se cuenta con dos elementos, los cuales no se pueden colocar de manera conjunta. Se cuenta con un veh́ıculo el cual se desplaza dentro de un área de trabajo, y una cámara fuera de bordo. Para que ambos dispositivos trabajen en conjunto se diseñaron dos arquitecturas parciales que intercambian información. El veh́ıculo estima su posición por medio de sensores de odometŕıa y transmite esa información hacia el control central, el cual radica en una computadora. La cámara está conectada a la computadora, ah́ı se realizan los algoritmos para estimar la posición por medio visual. Posteriormente, ambas estimaciones de posición se fusionan y se retroalimentan hacia el veh́ıculo para que se corrija su posición. En la Figura 2.1 se muestran las dos arquitecturas parciales implementadas. Entre arquitecturas existe una comunicación constante para enviar y recibir información. Aśı la arquitectura que incluye el seguimiento de trayectoria se implementa sobre el propio veh́ıculo, mientras que la arquitectura del sistema de visión está implementada en el control central. Control a punto Control de trayectoria Estimación de posición Control de dirección Control de velocidad Modelo cinemático del vehículo Cámara móvil Fusión de datos VA Sistema visual C o m u n i c a c i ó n Seguimientodel VA Control de la cámara Transformación de coordenadas Figura 2.1: Arquitecturas parciales implementadas; que entre ambas existe un módulo de comunicación para intercambiar información. Las dos arquitecturas parciales funcionan de manera independientes y se sincronizan cada determinado tiempo para realizar la retroalimentación hacia el veh́ıculo. La sin- cronización se entre ambas arquitecturas parciales se realiza cuando un se tienen datos, 2.1. Arquitectura del control visual de un VA 11 de ambas arquitecturas, los cuales fueron obtenidos dentro de un mismo lapso de tiem- po. El propósito de ambas arquitecturas es colaborar a la estimación de la posición; una lo realiza por medio de sensores dentro del veh́ıculo y la otra por medio visual externo. Las dos estimaciones obtenidas llegan al módulo de fusión de datos, donde se integran ambas arquitecturas. Este módulo tiene tres funciones: en primera instancia se encarga de verificar si las dos mediciones se realizaron dentro del mismo intervalo de muestreo; si ambas muestras se realizaron dentro de un lapso similar de tiempo, se realiza la fusión de ambas estimaciones de posición; finalmente al se realizar la fusión de datos se retroalimenta al veh́ıculo con el resultado. 2.1.1 Arquitectura del VA Esta arquitectura parcial se desarrolla sobre el veh́ıculo. Su función es estimar la posición del veh́ıculo utilizando los sistemas odométricos. Dentro de esta arquitectura se encuentran los elementos de más bajo nivel, consistentes en, los actuadores y sensores para manipular la velocidad y dirección del veh́ıculo. Un conjunto de controladores env́ıan señales a diversos actuadores; aśı mismo, reciben retroalimentación de sensores que verifican el movimiento de los actuadores. Durante el seguimiento de una trayec- toria, se cuenta con otra serie de controladores de más alto nivel los cuales se encargan de modificar la dirección del veh́ıculo. Esta arquitectura localizada dentro del veh́ıculo env́ıa, hacia la arquitectura parcial del control central, información a cerca de la ori- entación de las llantas y el desplazamiento del veh́ıculo. Por otra parte, recibe de la arquitectura en la computadora una corrección de la estimación de la posición. 2.1.2 Arquitectura del sistema visual La arquitectura del sistema visual se realiza en el control central el cual tiene acoplada la cámara móvil. La arquitectura visual tiene dos objetivos principales: re- alizar el seguimiento visual del veh́ıculo y estimar visualmente la posición del veh́ıculo. En primera instancia el seguidor realiza el seguimiento del veh́ıculo manteniéndolo dentro del área de visión, y posteriormente estima su posición. La arquitectura puede funcionar utilizando la cámara en su forma estática o móvil. Dentro de esta arquitectura se encuentran los algoritmos de seguimiento del veh́ıcu- lo, control de la cámara y transformación de coordenadas. El algoritmo de seguimiento del veh́ıculo se encarga de seguir visualmente al veh́ıculo cuando se mueve. El control de la cámara estima el desplazamiento que realiza la cámara y le env́ıa los comandos a la cámara para que realice el desplazamiento. La transformación de coordenadas real- iza las operaciones pertinentes para transformar una posición (x, y)img a una posición (x, y)real. 12 Caṕıtulo 2. Arquitectura para el seguimiento visual de una trayectoria con un VA 2.1.3 Fusión de datos Un componente fundamental dentro de la arquitectura del sistema es el módulo de fusión de datos ; su tarea es tomar las estimaciones realizadas por los diversos sensores del veh́ıculo con el propósito de generar una mejor estimación de la posición con base en la incertidumbre de cada sensor. Es el elemento de integración de las dos arquitecturas parciales y radica en el control central. El algoritmo de fusión de datos utilizado es el Filtro de Kalman Extendido (FKE), herramienta ampliamente utilizada para la fusión de datos generada por varios sensores [Drolet 00]. Para este trabajo se realiza la fusión de la estimación por sensores odométricos y la estimación por medio visual. Para realizar la fusión, los datos de ambos sensores tienen que haberse tomado dentro de un rango de tiempo similar. De lo contrario, no se realiza la fusión ya que son mediciones de dos tiempo distintos. Al finalizar la fusión se env́ıa al veh́ıculo el resultado de la fusión para que corrija su posición. 2.2 Arquitectura del veh́ıculo autónomo Como ya se mencionó anteriormente, esta arquitectura se encuentra dentro del VA y su función principal es la estimación de la posición, aśı como el control de la velocidad y dirección. Para lograr que un veh́ıculo siga una trayectoria se realiza el análisis y la caracterización del veh́ıculo para conocer sus propiedades básicas aśı como las de sus componentes. Posteriormente, se propone un modelo con base en los resultados obtenidos en las pruebas previas. Finalmente se implementan los algoritmos de control que permitan manipular la velocidad y la dirección, para que el veh́ıculo realice correctamente el seguimiento de la trayectoria. La estimación de posición se basa en el modelo cinemático del veh́ıculo. Aśı, se generan los algoritmos para estimar la posición del veh́ıculo x,y,θ, en función de los cambios en la velocidad v y dirección φ. Para obtener las consignas de velocidad y di- rección en el seguimiento de la trayectoria, se generó un algoritmo de control en cascada el cual obtiene las consignas en los controladores superiores (control de trayectoria y control a punto) y las env́ıa a los controladores inferiores de velocidad y dirección para aplicar las consignas sobre los respectivos actuadores. 2.2.1 Modelo cinemático Un veh́ıculo a escala sirve como prototipo para validar la arquitectura del sistema. El veh́ıculo utilizado posee caracteŕısticas de un carro común, pues cuenta con restricciones no-holonómicas. El veh́ıculo cuenta con cuatro llantas: dos fijas en el eje trasero y dos en la parte frontal. Las llantas delanteras definen la dirección que seguirá el veh́ıculo y las traseras son sólo guiadas. Se dice que un robot móvil es no-holonómico cuando los grados de libertad no son independientes y por lo tanto no pueden rotar sobre su propio eje, sin cambiar su posición en el plano [Laumond 97]. Las 2.2. Arquitectura del veh́ıculo autónomo 13 restricciones anteriores, impiden al VA realizar ciertas trayectoria, por tanto se real- iza la validación previa antes de asignar una trayectoria al veh́ıculo, para que la ejecute. Por simplicidad del modelose supone que las dos llantas en cada eje se juntan a una sola llanta en el punto medio del eje (modelo de bicicleta). En la Figura 2.2 se muestra el modelo cinemático, en donde el espacio de configuración está definido por (xp, yp, θ). La posición del veh́ıculo se define en el centro del eje trasero (xp, yp), mientras θ mide la orientación del carro con respecto al eje x. Por su parte φ es el ángulo de la dirección de la llanta delantera con respecto a θ. Las restricciones no-holonómicas para las llantas delanteras se definen por la ecuación 2.1, de la misma forma las restricciones para la llanta trasera se define por la ecuación 2.2. Ambas ecuaciones establecen que no existe movimiento lateral para todo el veh́ıculo. φ θ θ cos L x x p d + = θ Lsen y y p d + = φ L R p x p y p y x 0 φ 1 φ t Figura 2.2: Modelo cinemático del carro, cuya posición es (x, y) del plano con orientación θ, mientras que φ indica la dirección de las llantas. ẋd sen(θ + φ)− ẏd cos(θ + φ) = 0 (2.1) ẋp sen(θ)− ẏp cos(θ) = 0 (2.2) donde xd, yd son las coordenadas de la llanta delantera mientras xp, yp son las coorde- nadas de la llanta trasera, xd = xp + L cos θ (2.3) yd = yp + L sen θ (2.4) L es la distancia entre los ejes. Al sustituir 2.3 y 2.4 en 2.1, y simplificando, ẋp sen(θ + φ)− ẏp cos(θ + φ)− θ̇L cos φ = 0 (2.5) Al definir R como el radio de la curva que describe el veh́ıculo, R = L tan φ (2.6) 14 Caṕıtulo 2. Arquitectura para el seguimiento visual de una trayectoria con un VA obtenemos entonces el modelo cinemático del veh́ıculo, ẋp ẏp θ̇ φ̇ = cos θ sen θ tanφ L 0 v1 + 0 0 0 1 v2 (2.7) donde v1 y v2 son las velocidades del veh́ıculo y de la dirección respectivamente. Es importante mencionar que el modelo cinemático define tres grados de libertad; sin embargo, de estos tres grados: x, y y θ se controlan a través de la velocidad y la dirección solamente. 2.2.2 Arquitectura de control La arquitectura de control se encuentra implementada dentro del veh́ıculo, siendo sus principales tareas: el control de la velocidad y la dirección, el seguimiento de trayec- toria y la estimación de la posición con sensores de odometŕıa. Como se mencionó, la arquitectura de control es de tipo jerárquica, donde se realiza una descomposición del seguimiento de trayectoria en varias tareas independientes en módulos inferiores. Este tipo de arquitectura tiene las siguientes ventajas: reduce la complejidad del problema; es posible cambiar los algoritmos individualmente, sin afectar los demás módulos; ser escalable al agregar fácilmente nuevos sensores [Palacios 00]. Los módulos superiores realizan las tareas de determinar si ya se alcanzó un punto de control de la trayectoria y estimar la dirección que deben tener las llantas para alcanzar el siguiente punto. Los módulos controladores de velocidad y dirección interactúan con los sensores y actu- adores de velocidad y dirección acoplados al veh́ıculo. Posteriormente, estos módulos retroalimentan el resultado de su control a los módulos de control a punto y control de trayectoria. La Figura 2.3 muestra a detalle los elementos que componen la arquitec- tura del veh́ıculo, que forman parte de la arquitectura del sistema. La arquitectura jerárquica sobre el VA, está dividido en los siguientes módulos: Control de trayectoria: Este módulo recibe de la computadora la secuencia de pun- tos a seguir; su función es verificar la posición actual y determinar cuando ya se alcanzó un punto de control. Cuando dicho punto es alcanzado, env́ıa al control a punto el siguiente punto a alcanzar. Cuando ya terminó de despachar todos los puntos de control, este módulo env́ıa un comando de paro de ejecución para detener al veh́ıculo. Control a punto: Este módulo se encarga de guiar al veh́ıculo a cada uno de los pun- tos de la trayectoria asignada; calcula la amplitud de giro de las llantas delanteras para minimizar el ángulo de error entre el veh́ıculo y el punto. Finalmente el módulo env́ıa al control de dirección el ángulo de giro requerido, como referencia. 2.2. Arquitectura del veh́ıculo autónomo 15 Control a punto Control de trayectoria Estimación de posición Control de dirección Control de velocidad Modelo cinemático del vehículo Interface de potencia Planta de velocidad Interface Codificador óptico Interface Potenciómetro análogo Planta de dirección Control de velocidad Control de dirección vd v εv mv εφ φ φd mφ (x,y,θ) (x,y,θ) P={p1,p2,...pn} φ v Comunicación Computadora al VA VA a la computadora ˆ ˆ ˆ φv pn Figura 2.3: Diagrama a bloques de los módulos que componen la arquitectura del veh́ıculo. Estimación posición: Este módulo estima la posición del veh́ıculo con base en las mediciones obtenidas de los sensores de velocidad y de dirección utilizando las ecuaciones del modelo cinemático. Como se mencionó, este módulo funcional se encuentra dividido; aśı la porción que reside en el VA, recibe del módulo de fusión de datos, que se encuentra en la computadora, una corrección de la posición estimada. Control de dirección: Se encarga de mantener las llantas en el ángulo requerido por el control a punto. El control de dirección se integra por un controlador digital, una planta de dirección y un potenciómetro análogo el cual funciona como sensor. Este módulo env́ıa sus mediciones hacia el módulo de estimación de posición. Control de velocidad: Módulo encargado de alcanzar y mantener la velocidad crucero enviada por la unidad de procesamiento central. Este módulo se inte- gra por un controlador digital, un motor de CD y un sensor de velocidad que cierra el lazo de control. Este módulo se encarga de mantener constante la ve- locidad del veh́ıculo durante el seguimiento de la trayectoria. El módulo env́ıa la distancia recorrida en cada tiempo de muestreo hacia el módulo de estimación de posición. 16 Caṕıtulo 2. Arquitectura para el seguimiento visual de una trayectoria con un VA 2.2.3 Control de trayectoria La trayectoria se define como una secuencia de puntos Pi de la forma Pi = (xi, yi) que van desde, P1 el primero punto en la trayectoria, hasta el último, Pn. Esta secuencia de puntos de control es trazada inicialmente por el usuario en el control central y posteriormente enviada hacia el VA. El control de trayectoria se encarga de tener en una lista todos los puntos por donde debe pasar el veh́ıculo para realizar la trayectoria. Debido a las imprecisiones del VA, se considera cierto grado de tolerancia cuando el veh́ıculo visita un punto y por ende se env́ıa el siguiente punto en la lista al control a punto. Para considerar que un punto ya fue visitado se utiliza la distancia euclidiana, d(P, Pi) = √ (xi − xp)2 + (yi − yp)2 (2.8) donde d es la distancia, Pi = (xi, yi) son las coordenadas del punto por alcanzar y Pp = (xp, yp) son las coordenadas de la posición actual del veh́ıculo. Cuando el veh́ıculo se encuentra a una distancia menor o igual a un umbral se da por alcanzado el punto actual Pi y se procede con el seguimiento del siguiente punto Pi+1, d(P, Pi) ≤ Up (2.9) 2.2.4 Control a punto La función principal del control a punto es calcular el ángulo φ de las llantas para que el veh́ıculo llegue al siguiente punto de control. Para realizar dicha estimación se toma en cuenta la posición actual del veh́ıculo y la trayectoria a seguir. El control a punto usa el algoritmo de persecución pura [Ollero 01], el cual se basa en calcular el ángulo de las llantas del veh́ıculo para disminuir la distancia y la diferencia de orientación tangencial al punto objetivo. El método considera al sistema de referencia local asociado al movimiento del veh́ıculo, como se muestra en la Figura 2.4. Se tiene una trayectoria definida entre los puntos Pi y Pi+1; si el carro no se encuentra alineado sobre dicha recta, se modifica el ángulo de las llantas. Se define una distanciaconstante dp la cual actúa como ganancia del control. El algoritmo de control de persecución pura es un método de control proporcional al error lateral (xdp) con respecto al punto objetivo. La constante de proporcionalidad (ganancia) vaŕıa con la inversa del cuadrado de dp. Del análisis de la figura se deduce que los extremos de dp están unidos por el radio R, R = xdp + dr (2.10) R2 = d2r + y 2 dp (2.11) 2.2. Arquitectura del veh́ıculo autónomo 17 θdp R R xdp dr y dp Pi+1 Pi Pv (xv,yv) Pd (xd,yd) v xj yj C Pper Pc Figura 2.4: Algoritmo de persecución pura. Se traza un arco con radio R que va desde la posición del veh́ıculo al siguiente punto de la trayectoria. de donde, R es el radio de la curvatura del veh́ıculo. Despejando dr de 2.10 y susti- tuyendo en 2.11, R2 = (R− xdp) 2 + y2dp (2.12) desarrollando 2.12, R2 = R2 − 2xdpR + x 2 dp + y 2 dp (2.13) Finalmente obtenemos el radio de la curvatura R para que el veh́ıculo se desplace en función de xdp, ydp, R = (xdp) 2 + (ydp) 2 2xdp = d2p 2xdp (2.14) donde d2p = (xdp) 2 + (ydp) 2; el signo depende del sentido del giro necesario para alcan- zar el punto objetivo. Para resolver la ecuación 2.14 se tiene que obtener en primera instancia xdp, para ello seguimos los siguientes pasos: 1. Se forma una recta entre los puntos Pi y Pi+1 (trayectoria). 2. Se obtiene el punto Pv minimizando la distancia del punto Pc a la recta formada entre P y Pi+1. 3. Se estima la distancia xj conociendo los puntos Pc y Pv. 4. Formamos un triángulo rectángulo con las rectas dp, xj y yj y se obtiene la distancia xj . 5. Se obtiene el punto Pd a partir del punto Pv y la distancia conocida xj . 18 Caṕıtulo 2. Arquitectura para el seguimiento visual de una trayectoria con un VA 6. Finalmente, teniendo el triángulo rectángulo Pd, Pc y Pper obtenemos la distancia xdp conociendo las distancias entre Pd y Pc. De la ecuación 2.6, el ángulo φ se relaciona con el radio R que realiza el veh́ıculo; por tanto, para obtener la orientación de las llantas para seguir la trayectoria sustituimos R de la ecuación (2.6) por (2.14), d2p 2xdp = L tanφ , (2.15) despejando para φ, φ = tan−1 ( 2xdpL d2p ) (2.16) El algoritmo asegura que el veh́ıculo se vaya acercando más a la trayectoria con cada desplazamiento que realice. La rapidez con que se alinea a la trayectoria depende de la recta dp. Si dp es muy grande el tiempo en alcanzar la trayectoria es grande, si es muy pequeña el veh́ıculo puede oscilar. Es necesario calibrar la magnitud dp adecuada para que el veh́ıculo realice el seguimiento de la trayectoria con mı́nima oscilación y se alineé rápidamente a la trayectoria. 2.2.5 Estimación de la posición por odometŕıa La estimación descrita en esta sección, es interna al veh́ıculo, de manera que permite dentro del ambiente de trabajo. El veh́ıculo estima su posición con base en a los incrementos de velocidad y dirección. Se cuenta con un codificador óptico acoplado a cada una de las llantas que miden el desplazamiento del veh́ıculo y un potenciómetro se acopla al eje de giro de una de las llantas delanteras. Debido a que se conoce el peŕımetro de las llantas, se calcula la distancia que recorre en cada vuelta. La resolución del mı́nimo desplazamiento que se puede sensar por el veh́ıculo lo establece la resolución del disco ranurado que se encuentra en el eje de las llantas traseras. La dirección de la llantas se obtienen por medio de un potenciómetro análogo, el cual se encuentra acoplado al eje de giro de una llanta delantera. Para obtener la orientación del veh́ıculo (∆θ), se utiliza el modelo cinemático el cual hace uso de la dirección de las llantas φ. Empleando el modelo cinemático y considerando un peŕıodo de muestreo, se analizan los cambios de orientación y posición del veh́ıculo. Los cambios en xd, yd y θ dependen de la dirección actual de las llantas delanteras y el desplazamiento del realizado por el veh́ıculo. 2.2. Arquitectura del veh́ıculo autónomo 19 Los valores que se necesitan calcular son ∆x, ∆y y ∆θ. El primero de estos valores que se obtiene es ∆θ. Enseguida, los desplazamientos de posición en x (∆x) y y (∆y) se calculan con base en la orientación de la llantas del veh́ıculo θ, ∆θ = ∆d R = ∆d tanφ L (2.17) donde d es la distancia lineal recorrida entre un muestreo y otro, L es la longitud entre los ejes, R es el radio de giro del veh́ıculo y φ es el ángulo actual, el cual es positivo o negativo dependiendo del sentido del giro. Al contar con θ, se calculan los cambios en la posición, suponiendo que se realizan pequeñas ĺıneas rectas con inclinación θ + ∆θ con origen en la posición anterior del veh́ıculo. Para calcular el desplazamiento se utilizan las siguientes ecuaciones: ∆x = d[cos(θ + ∆θ)] (2.18) ∆y = d[sin(θ + ∆θ)] (2.19) las cuales se obtienen del modelo cinemático del veh́ıculo (2.7). 2.2.6 Control de velocidad El veh́ıculo cuenta con dos motores de corriente directa para avanzar; uno se encuentra en el eje delantero y el otro en el eje trasero del veh́ıculo. Para que el veh́ıculo a escala se comporte parecido a un veh́ıculo real, se optó por utilizar solamente el motor que se encuentra en la parte trasera del veh́ıculo según se describe en el Apéndice C. Este controlador recibe del control de trayectoria la velocidad crucero a la cual se desplaza el veh́ıculo. El controlador de velocidad realiza los ajustes para mantener la velocidad del veh́ıculo en la referencia deseada. El control es digital, puesto la unidad de procesamiento es un microcontrolador. El lazo de control digital utilizado se muestra en la Figura 2.5. Como el lazo de control requiere una señal digital como entrada, se env́ıa de forma digital la velocidad crucero vd. La diferencia entre la velocidad crucero y la señal muestreada vn, de la señal de salida, arroja el error actual de la velocidad Ev. El error se alimenta al algoritmo de control dentro del microcontrolador, el cual nos arroja un valor discreto Mn para corregir la salida actual de la planta. El convertidor análogo/digital convierte la señal Mn en una señal continua M , la cual es introducida a la planta a través de un actuador. La salida de la planta v, es una señal continua la cual es medida por el sensor. El sensor utilizado para medir la velocidad es digital, por lo que no se necesita hacer ninguna conversión para ser utilizado por el microcontrolador. Para manipular la velocidad se usa una señal de pulso modulado la cual es generada por un microcontrolador. El PWM enviado determina la velocidad del motor. Dentro del microcontrolador se programó un controlador digital el cual obtiene el tamaño de 20 Caṕıtulo 2. Arquitectura para el seguimiento visual de una trayectoria con un VA Algoritmo de control Convertidor D/A Actuador Planta v Sensor - En Mn vn Mvd Figura 2.5: Lazo de control digital para la velocidad; se le da una velocidad como referencia la cual debe de alcanzar el controlador. pulso a enviar hacia el motor para mantener una velocidad constante. El controlador utilizado en la velocidad es el controlador PID que se muestra a continuación: mnv = mnv−1 + Kcv(εv − εv−1) + Kiv(εv) + Kdv(εv − 2εv−1 + εv−2), (2.20) εv = vn − vd, (2.21) de donde mnv y mnv−1 son la variable manipuladora en el tiempo actual y en el tiempo anterior, Kcv es la constante proporcional, Kiv es la constante proporcional, Kdv es la constante derivativa, εv, εv−1 y εv−2 son los errores en el tiempo actual, un tiempo de muestreo anterior y dos tiempos de muestreo anteriores respectivamente, y vn y vd son la velocidad en el tiempo actual y la velocidad deseada. 2.2.7 Control de dirección El controlador de dirección calcula las manipulaciones para el motor de dirección, con el fin de colocar las llantas en la dirección φ deseada. El control de dirección es un esclavo; la entrada al control de dirección está determinada por el control a punto, el cual es el controlador maestro. El controlador seencarga de llevar y mantener la variable controlada en un valor deseado de referencia. La unidad de procesamiento es un microcontrolador y por tanto el control es digital. El lazo de control digital utilizado se muestra en la Figura 2.6. El lazo de control recibe una señal digital como entrada φd, la cual viene del control a punto. La diferencia entre la dirección de referencia y la dirección muestreada φn de la señal de salida, arroja el error actual de la dirección Ed. El error se alimenta al algoritmo de control y éste nos arroja un valor discreto Mn para corregir la salida actual de la planta. El convertidor análogo/digital convierte la señal Mn en una señal continua M , la cual es enviada al actuador. La salida de la planta φ, es una señal continua la cual es medida por el sensor. Como el sensor utilizado es análogo, se agrega un convertidor analógico/digital para discretizar la señal de salida. El controlador digital está limitado para llegar hasta los ĺımites mecánicos; si la manipuladora fuera mayor a estos ĺımites podŕıa causar algún daño al elemento mecánico o al actuador. Se utiliza un controlador PD digital, cuyo cálculo de la variable manipulada mn se realiza mediante la siguiente ecuación: mnd = mnd−1 + Kcd(εd − εd−1) + Kid(εd), (2.22) 2.3. Fusión de datos 21 Algoritmo de control Convertidor D/A Actuador Planta φ Sensor Convertidor A/D - En Mn φn Mφd Figura 2.6: Lazo de control digital para la dirección. εd = φn − φ, (2.23) donde mnv y mnv−1 son la variable manipuladora en el tiempo actual y en el tiempo anterior, Kcd es la ganancia proporcional, Kid es a ganancia derivativa, εd es el error actual, εd−1 es el error un tiempo de muestreo anterior, φ y φn son la orientación de las llantas en el muestreo actual y muestreo anterior respectivamente. 2.3 Fusión de datos La fusión de datos se centra en realizar la sinergia de la información obtenida de los múltiples sensores que se encuentran en el el veh́ıculo. La fusión de sensores se divide en tres clases: sensores complementarios, sensores competitivos y sensores cooperativos. Los sensores complementarios no dependen uno de otro directamente pero se pueden fusionar para tener mayor información del ambiente. Los sensores competitivos son aquellos que proveen información equivalente del ambiente de trabajo, generalmente se utilizan para dar redundancia de información. Los sensores competitivos trabajan en conjunto para obtener información que ninguno de los dos puede obtener por si solo [Tebo 04]. La fusión de datos que se realiza dentro de este trabajo es de tipo competitiva, ya que se tienen dos sensores (odométricos y visión) que proveen la misma información, el posicionamiento del veh́ıculo. El método de fusión a utilizar será el filtro de Kalman, el cual es un filtro que mejora la estimación de posición de ambos sensores eliminando ruido y medidas incompletas. 2.3.1 Filtro de Kalman El filtro de Kalman es la herramienta mas usada en VA para la fusión de datos generada por varios sensores (GPS, visión, odometŕıa, etc.). El filtro de Kalman es un modelo matemático que de manera eficiente obtiene el estado del proceso, minimizando el error cuadrático medio. El filtro de Kalman estima el estado del proceso utilizando un método de control retroalimentado: el filtro estima el estado del proceso en un tiempo y después genera la retroalimentación en la forma de una medición (ruidosa). Las ecuaciones del filtro de 22 Caṕıtulo 2. Arquitectura para el seguimiento visual de una trayectoria con un VA Kalman caen en dos categoŕıas: actualizadas por tiempo y actualizadas por medidas. La actualización de tiempo es responsables de proyectar hacia el frente (en tiempo) el estado actual y el error de las covarianzas estimadas para obtener las medidas a priori para el siguiente estado en el tiempo. Las actualizadas por medidas son responsables de la retroalimentación. Si los errores tienen comportamiento no-gaussianos es posible utilizar el filtro de Kalman aunque no funciona óptimamente. En caso de que exista no linealidad se utiliza el filtro de Kalman Extendido, el cual involucra la linealización de las mediciones y en algunos casos borrar términos de alto orden en la expansión de Taylor. Se propone la fusión de datos en parejas, en la cual, se toman dos distintas mediciones y se obtiene un resultado de ambas; posteriormente, se utiliza ese resultado para fusionarlo con alguna otra estimación o fusión realizada. El modo de fusión de datos utilizados se puede observar en la Figura 2.7. Se tienen tres distintas mediciones: las obtenidas por el sistema de odometŕıa, el sistema de visión y una brújula. Ésta última medida fue anexada debido a que esta parte del trabajo fue en colaboración con [Albores 06]. Odómetro de velocidad Odómetro de dirección Cámara móvil Ecuaciones de odometría P 2 , Cov 2 Brújula P 1 , Cov 1 P od , θ od θ BR P cam , θ cam Figura 2.7: Fusión de posición realizada. En primera instancia se realiza la fusión solamente de la orientación del sistema de odometŕıa y la brújula; el resultado de esa fusión se fusiona posteriormente con la estimación obtenida del sistema de visión. La primera fusión se realiza cada vez que se obtiene un dato del veh́ıculo, la segunda fusión se realiza si cuando en el tiempo de muestreo en el que se recibió el dato existe un dato válido del sistema de visión. Caṕıtulo 3 Retroalimentación visual con cámara fija Como se mencionó anteriormente, se propone utilizar un sistema de seguimiento visual para estimar la posición de un VA. Dependiendo del lugar de posicionamiento y su función dentro de la arquitectura, los sistemas de seguimiento visuales se clasifican en dos tipos: sistemas abordo y sistemas fuera de bordo. Los sistemas abordo son aquellos que se encuentran montados dentro del sistema robótico, la percepción de este tipo de sistemas vaŕıa constantemente dependiendo del movimiento del robot. En cambio el sistema fuera de bordo se coloca al exterior independiente del sistema robótico, para posicionar al robot dentro del espacio visible de la cámara. La ventaja de utilizar un sistema fuera de bordo es que permite procesar un segmento constante de área de trabajo en todo momento, a diferencia del sistema a bordo el cual solamente permite procesar el área hacia la cual se dirige el robot móvil. Otra ventaja de los sistemas fuera de bordo es que no presentan el problema del flujo óptico; el cual sucede cuando nos movemos en una dirección determinada y el campo visual parece expandirse. Los sistemas fuera de bordo en cambio, tienen problemas si el área de trabajo es muy grande, de manera que no se cubre dentro del área de visión de la cámara. Para solucionar este problema se pueden utilizar múltiples cámaras, lo que aumentaŕıa la complejidad del problema al tener que integrar la información de varios sensores. Otra forma de solucionar este problema es utilizar una cámara móvil; la principal ventaja de esta forma de solución es que con un solo sensor se aumenta el área de trabajo. Dentro de esta sección se describen los algoritmos para realizar el seguimiento del VA y la estimación de su posición utilizando una cámara fija. Este trabajo está basado en el realizado por [Ortega 06]. El objetivo principal de dicho trabajo es el seguimiento de un objeto denominado: “objeto principal”, el cual es el objeto de interés para el seguimiento visual. Adicionalmente, el sistema detecta “objetos secundarios”, los cuales son elementos que ingresan al área de visión en la cual se encuentra el objeto principal. Ambos seguimientos se realizan utilizando una cámara 23 24 Caṕıtulo 3. Retroalimentación visual con cámara fija móvil, la cual se colocaba en una posición elevada del ambiente de trabajo y que lo cubre completamente. Para el trabajo actual, el objeto principal es el VA y no se tomarán en cuenta la detección de objetos secundarios.Una cámara móvil colocada a cierta altura del área de trabajo realiza el seguimiento visual, mientras un VA sigue una trayectoria prefijada dentro del área de trabajo. Al sistema de visión se le asigna la posición inicial del veh́ıculo; posteriormente realiza el seguimiento cuando el veh́ıculo se desplaza; y finalmente aplica la transformación del espacio de visión hacia el plano de trabajo del veh́ıculo. Se identifican por tanto tres elementos principales del sistema de seguimiento: Seguimiento visual. Encuentra la posición inicial y posteriormente el seguimiento visual cuando el VA se desplace dentro de la imagen. Transformación de coordenadas. Encuentra una transformación la cual permita la proyección de las coordenadas de la imagen a su equivalente en el mundo real. Cámara móvil. Estima los movimientos que realizará la cámara, controla correcta- mente los movimientos de la cámara y conoce correctamente la posición de la cámara. Dentro de este caṕıtulo no se expondrán los elementos necesarios para llevar a cabo el movimiento de la cámara, solamente se trataran los elementos desde el punto de vista de una cámara móvil, en el siguiente caṕıtulo se expondrá lo correspondiente a la cámara móvil. 3.1 Arquitectura del sistema visual La arquitectura del sistema visual está basada en [Ortega 06]. Cuya caracteŕıstica principal es la modularidad. La ventaja de realizar la arquitectura de forma modular es que se pueden realizar cambios a cualquiera de sus módulos sin afectar al resto de la arquitectura. La Figura 3.1 muestra la arquitectura implementada para el sistema de visión. La entrada a la arquitectura son las imágenes capturadas desde una cámara. Se actualiza la imagen visual y se realizan los algoritmos de seguimiento del veh́ıculo para obtener su posición dentro de la imagen. Posteriormente se realiza la transformación de coordenadas hacia el mundo real; si el veh́ıculo se encuentra cerca de los ĺımites de la imagen, el control de la cámara env́ıa el movimiento a la cámara para mantener dentro de su rango de visión al veh́ıculo. La salida de la arquitectura es la posición del VA en el sistema coordenado del veh́ıculo. Dentro de la arquitectura se consideran tres módulos principales: Seguidor del VA: Realiza el seguimiento del VA, utilizando una imagen It de la secuencia de video de la cámara. Se obtiene la posición (x, y)img del veh́ıculo mediante el algoritmo de desplazamiento medio [Ortega 06]. 3.2. Seguimiento del VA 25 Seguimiento del VA Control de la cámara Transformación de coordenadas Cámara Fusión de datos t=t+∆t It (x,y)img (x,y)R (θ1,θ2)cámara Protocolo de comunicación Calibración de la cámara Figura 3.1: Arquitectura modular que gobierna el sistema de visión. Control de la cámara: Este módulo se maneja el protocolo de control de la cámara; de igual forma se encarga de conocer la posición de la cámara mientras se desplaza. Cuando se realiza la retroalimentación visual con cámara estática, el módulo de control de la cámara está deshabilitado. Transformación de coordenadas: Realiza la transformación de las coordenadas obtenidas en el marco de referencia de la imagen al proyectarlas en el marco de referencia del mundo real. Como salida del módulo de visión hacia el resto del sistema, esta información permite conocer la posición y orientación del VA. El método hace uso de varias técnicas como corrección de la distorsión y homograf́ıa. Para realizar adecuadamente el cambio de coordenadas, el módulo de transforma- ción de coordenadas recibe información del módulo de calibración de la cámara el cual tiene valores caracteŕısticos de la cámara utilizada. La calibración es el proceso por el cual se determina la geometŕıa interna de la cámara; dependiendo del lente de la cámara, pueden causar que las ĺıneas rectas en las imágenes parezcan curvas (distorsión). La calibración comprende una serie de correcciones que se efectúan sobre la imagen con objetivo de reducir las distorsiones ocasionadas por los componentes de la cámara sobre la imagen. Existen diversas formas de solucionar el problema de calibración en función del tipo de información de entrada. 3.2 Seguimiento del VA El seguimiento del veh́ıculo es el primer módulo de la arquitectura que se realiza después de adquirir digitalmente la imagen. Para el seguimiento del VA se utiliza un método integral basado en el algoritmo de desplazamiento medio realizado por [Comaniciu 00]. Dicho algoritmo es una técnica de estimación no paramétrica que 26 Caṕıtulo 3. Retroalimentación visual con cámara fija maximiza la correlación entre dos distribuciones estad́ısticas o funciones de densidad: la correspondiente al objeto de interés y la del objeto candidato. El objeto de interés, para este caso es el VA, cuya distribución estad́ıstica es conocida a priori; mientras que el objeto candidato es la región de la imagen que tiene la distribución mas similar al objeto de interés. Se entiende que el objeto candidato se establece en la posición donde el VA avanza dentro de la imagen. Los detalles de la implementación se presentan en [Guevara 00]. El algoritmo desplazamiento medio consiste en obtener, en cada iteración, la posición mas probable del objeto de interés en la imagen actual. La diferen- cia entre la distribución del objeto de interés y el objeto candidato se expresa en una métrica derivada por el coeficiente de Bhattacharyya [Comaniciu 99], [Devroye 97]. Los siguientes pasos describen el algoritmo utilizado para el seguimiento visual propuesto por [Comaniciu 00]: 1. Definir el objeto de interés en la imagen inicial de la secuencia, mediante una ventana de dimensiones hx y hy. 2. Calcular la distribución estad́ıstica o la función de densidad q̂u del objeto de interés; en términos de la probabilidad de color u en la imagen inicial, q̂u = C n∑ i=1 k(‖x∗i ‖ 2)δ[b(x∗i )− u] (3.1) donde {x∗i }i=1...n corresponde a los n pixeles dentro del área de interés delimitados por hx y hy; δ es la función delta Kronecker 1; b(x∗i ) es una función de correlación que asigna a cada pixel x∗i el ı́ndice de la distribución correspondiente al color en dicho pixel; C es una constante de normalización; y k es la función representando el modelo de Epanechnikov [Comaniciu 02]. 3. Obtener la siguiente imagen de la secuencia. 4. Determinar la función de densidad p̂u(ŷ0) del objeto candidato en la imagen actual, que corresponde a la probabilidad de colores u en la misma área de interés de la imagen anterior. Dado {x∗i }i=1...n como los pixeles del objeto candidato, centrado en ŷ0 en la imagen actual, y utilizando la función de Epanechnikov k, la función de densidad se define como: p̂u(y0) = C n∑ i=1 k(‖y0 − xi‖ 2)δ[b(x∗i )− u] (3.2) 1La función delta Kronecker se define como: δ(n) = { 1 Si n = 0 0 cualquier otro lugar 3.3. Transformación de coordenadas 27 donde C es una constante de normalización. 5. Evaluar la similitud entre la distribución del objeto de interés q̂u y la distribución del objeto candidato p̂u mediante el coeficiente de Bhattacharyya. ρ[p̂(ŷ0), q̂] = m∑ u=1 √ p̂u(y0)q̂u (3.3) 6. Verificar si q̂u ≈ p̂u, i.e. si |ρ| < ǫ0 ir al paso 10 de lo contrario, 7. Calcular los pesos {wi}i=1...n, definidos por: wi = m∑ u=1 δ[b(xi)− ui] √ q̂u p̂u(ŷ0) (3.4) 8. Obtener la posición mas probable del objeto de interés utilizando el vector de desplazamiento medio, el cual encuentra el área con la mayor concentración de puntos de densidad conforme a los datos: ŷ1 = ∑n i=1 xiwig(‖ŷ0 − xi‖ 2)∑n i=1 wig(‖ŷ0 − xi‖ 2) (3.5) donde g(x) es una máscara uniforme y ŷ0 es el centro inicial. 9. Actualizar p̂u(ŷ1)u=1...m y repetir desde el paso 4. 10. Asignar ŷ0 ← ŷ1 y repetir desde el paso 3. La Figura 3.2 muestra gráficamente los pasos a seguir dentro del algoritmo de desplazamiento medio. Se omiten los primeros dos pasos en los cuales se escoge inicial- mente el área donde