Logo Studenta
¡Este material tiene más páginas!

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