A F F O R D A N C E S Y FLUJO ÓPTICO:
EVITACIÓN DE COL IS IONES DE UN VEHÍCULO
A U T Ó N O M O
TESIS
MAESTRÍA EN CIENCIAS C O N ESPECIALIDAD EN
S I S T E M A S INTELIGENTES
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
POR
C E S A R DE L O S RÍOS GONZÁLEZ
A G O S T O 2011
AFFORDANCES Y FLUJO ÓPTICO: EVITACIÓN DE COLISIONES DE UN VEHÍCULO AUTÓNOMO
TESIS
MAESTRÍA EN CIENCIAS CON ESPECIALIDAD EN
SISTEMAS INTELIGENTES
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
POR: CÉSAR DE LOS RÍOS GONZÁLEZ
AGOSTO DE 2011
© César de los Ríos González, 2011
AfFordances y Flujo Óptico: Evitación de Colisiones
de un Vehículo Autónomo
por
Ing. César de los Ríos González
Tesis
Presentada al Programa de Graduados de la
Escuela de Ingeniería y Tecnologías de Información
como requisito parcial para obtener el grado académico de
Maestro en Ciencias
especialidad en
Sistemas Inteligentes
Instituto Tecnológico y de Estudios Superiores de Monterrey
Campus Monterrey
Agosto de 2011
A mi madre.
Reconocimientos
Extiendo un reconocimiento al Dr. Arturo Galván por su asesoría, dirección, dedi
cación y paciencia para concretar el presente trabajo. Sin su apoyo esta obra no habría
sido posible.
Mi más sincero reconocimiento también para el Dr. Santiago Conant y el Ing.
Miguel González. Sus aportaciones enriquecieron significativamente el presente trabajo.
Extiendo un reconocimiento también a mi madre quien me alentó a seguir adelante;
y a valorar los desvelos y sacrificios para concretar esta meta.
El apoyo de mi esposa y el entusiasmo de mis hijos y mis afectos fueron importantes
en momentos críticos del desarrollo de esta empresa. Va mi reconocimiento para ellos.
Agradezco también a los profesores de la maestría quienes con su trabajo dentro
y fuera del aula han enriquecido mi formación académica.
Las conversaciones informales y proyectos realizados con mis compañeros de la
maestría han influeciado positivamente el desarrollo de este trabajo. También extiendo
un gran reconocimiento a ellos.
CÉSAR DE LOS RÍOS GONZÁLEZ
Instituto Tecnológico y de Estudios Superiores de Monterrey
Agosto 2011
v
Affordances y Flujo Óptico: Evitación de Colisiones
de un Vehículo Autónomo
César de los Ríos González, M.C. Instituto Tecnológico y de Estudios Superiores de Monterrey, 2011
Asesor de la tesis: Dr. Arturo Galván Rodríguez
Los siguientes elementos constituyen un marco referencial consistente para guiar la construcción de un agente inteligente móvil: (1) la utilización de sensores de flujo óptico (2) la utilización de perceptos bajo el enfoque de extracción de características y (3) una estrategia basada en la teoría de percepción directa y affordances. Este es el marco referencial de esta tesis.
En la naturaleza hay insectos que extraen información del flujo óptico para dirigir su vuelo, reaccionar y cambiar de dirección en menos de 30 milisegundos. Trasladar este fenómeno a un agente inteligente de diferentes capacidades motrices constituye una oportunidad en la Inteligencia Artificial.
Se desarrolla una estrategia basada en affordances y sensores de flujo óptico para la evitación de colisiones de un vehículo autónomo que opera en el espacio proximal. El método está integrado por la teoría de percepción directa y affordances. De acuerdo a los experimentos realizados, el vehículo autónomo que se implemento en esta tesis es capaz de detectar y evitar colisiones con obstáculos que se encuentran en un rango de distancia de 10 a 80 centímetros cuando viaja a una velocidad máxima de 4.8 m/s.
Índice general
Reconocimientos V
Resumen VI
Indice de cuadros X
Índice de figuras XI
Capítulo 1. Introducción 1
1.1. L a evitación de colisiones y sus técnicas 1
1.2. F lu jo Óptico: breve introducción 4
1.3. Affordances: algunos conceptos 7
1.4. E l espacio proximal del V A y su contexto en el alcance de este trabajo . 8
Capítulo 2. Marco Teórico 11
2.1. Teoría de la percepción directa y affordances 11
2.2. Percepción y Affordances en la Inteligencia Art i f i c ia l (IA) 12
2.3. F lu jo Óptico: Desarrollo Teórico 14
2.4. Técnicas para el cálculo de flujo óptico 17
2.4.1. Rastreo en una secuencia de imágenes 18
2.4.2. Rastreo de puntos significativos en la escena 19
2.4.3. Cálculo del F lu jo Óptico 22
VII
2.4.4. Método de Lucas-Kanade (flujo óptico disperso) 23
2.4.5. Método de Horn-Schunck (flujo óptico denso) 30
2.5. Actuadores y Control 31
2.5.1. Servomotores RC 31
2.5.2. Sistema de Control Motriz 32
2.6. Resumen 33
Capítulo 3. Arquitectura y Diseño 34
3.1. Arquitectura Conceptual 34
3.2. Arquitectura Lógica 37
3.2.1. Procesador de Flujo Óptico 38
3.2.2. Procesador de Affordances 40
3.2.3. Comando de Trayectorias 41
3.2.4. Sistema de Control Motriz 42
3.2.5. Actuadores 44
3.3. Arquitectura Física 45
Capítulo 4. Implementación 48
4.1. Sistema de Procesamiento Central - desarrollo 50
4.2. Sistema Mínimo - desarrollo 51
4.3. Sensor de Aceleración - desarrollo 53
Capítulo 5. Resultados 54
5.1. Diseño de experimentos 54
5.2. Categorización de los Resultados 56
5.2.1. Affordance colisión correctamente asociado 56
5.2.2. Affordance pasaje correctamente asociado 57
5.2.3. Falso positivo: Affordance colisión sin obstáculo próximo 57
VIII
5.2.4. Falso negativo: Affordance pasaje con obstáculo próximo 58
5.3. Problemas presentados 67
5.3.1. Lentitud en la comunicación y su impacto en falsos positivos y
falsos negativos 67
5.3.2. Confusión de puntos de la escena 70
5.4. Otros resultados 71
Capítulo 6. Conclusiones 73
Bibliografía 76
Apéndice A. Experimentos para la calibración de los servomotores 79
A.l. Calibración del servomotor que controla la dirección 82
A.2. Calibración del servomotor que controla la velocidad 85
Vita 86
IX
índice de cuadros
1.1. Desempeño de sonares y flujo óptico en la evitación de colisiones 5
3.1. Elementos de la Arquitectura Física 45
4.1. Sistema operativo y hardware del Sistema de Procesamiento Central . . 49
4.2. Componentes de software relevantes para este proyecto y hospedados en
el Sistema de Procesamiento Central 50
4.3. Sistema operativo y hardware del Sistema Mínimo 52
4.4. Componentes de software relevantes para este proyecto y hospedados en
el Sistema Mínimo 52
4.5. Sistema operativo y hardware del Sensor de Aceleración 53
5.1. Resultados obtenidos del VA ante experimentos realizados 55
x
índice de figuras
1.1. Procesos participantes en una estrategia para la evitación de colisiones. . 3
1.2. Técnicas y tecnologías para la detección de obstáculos 4
1.3. Evitación de colisiones en un robot humanoide mediante flujo óptico y
sonar 6
2.1. Teorías de Percepción y sus implicaciones en la Utilización de Perceptos
en la IA 14
2.2. Flujo óptico en imágenes 16
2.3. Foco de expansión en imágenes 17
2.4. Las esquinas son buenas características para rastrear. 20
2.5. Problema de la apertura 27
2.6. Tren de pulsos para el control de un servomotor 32
3.1. Arquitectura Conceptual 35
3.2. Arquitectura Lógica del Procesador de Flujo Óptico 38
3.3. Arquitectura Lógica del Procesador de Affordances 40
3.4. Arquitectura Lógica del Comando de Trayectorias 42
3.5. Arquitectura Lógica del Sistema de Control Motriz 43
3.6. Arquitectura Lógica de los Actuadores 44
3.7. Arquitectura Física 46
4.1. Despliegue físico del Vehículo Autónomo 49
XI
5.1. Affordance colisión correctamente asociado - primera muestra 57
5.2. Aceleración propioceptiva del VA (affordance colisión correctamente aso
ciado) - primera muestra 58
5.3. Histograma de flujo óptico medido (affordance colisión correctamente
asociado) - primera muestra 59
5.4. Affordance colisión correctamente asociado - segunda muestra 59
5.5. Aceleración propioceptiva del VA (Affordance colisión correctamente
asociado) - segunda muestra 60
5.6. Histograma de flujo óptico medido (affordance colisión correctamente
asociado) - segunda muestra 60
5.7. Affordance pasaje correctamente asociado - primera muestra 61
5.8. Aceleración propioceptiva del VA (Affordance pasaje correctamente aso
ciado) - primera muestra 61
5.9. Histograma de flujo óptico medido (affordance colisión correctamente
asociado) - primera muestra 62
5.10. Affordance pasaje correctamente asociado - segunda muestra 62
5.11. Aceleración propioceptiva del VA (Affordance pasaje correctamente aso
ciado) - segunda muestra 63
5.12. Histograma de flujo óptico medido (affordance colisión correctamente
asociado) - segunda muestra 63
5.13. Affordance colisión erróneamente asociado 64
5.14. Aceleración propioceptiva del VA (Affordance colisión erróneamente aso
ciado) 64
5.15. Histograma de flujo óptico medido (Affordance colisión erróneamente
asociado) 65
5.16. Affordance pasaje erróneamente asociado 65
XII
5.17. Aceleración propioceptiva del VA (Affordance pasaje erróneamente aso
ciado) 66
5.18. Histograma de flujo óptico medido (Affordance pasaje erróneamente aso
ciado) 66
5.19. Lentitud en la comunicación inalámbrica 68
5.20. Lentitud en la comunicación inalámbrica y su impacto en los falsos ne
gativos 69
5.21. Lentitud en la comunicación inalámbrica y su impacto en los falsos po
sitivos 70
5.22. Confusión de puntos en la escena 71
5.23. Efecto de la iluminación natural en el desempeño del VA 72
A.l . Calibración de la dirección: inicio desde el valor mínimo seguro del ser
vomotor 79
A.2. Calibración de la dirección: avance desde el valor mínimo seguro del
servomotor 80
A.3. Calibración de la dirección: rotaciones mínimas encontradas 81
A.4. Calibración de la dirección: aumenta la amplitud de rotación nuevamente. 82
A.5. Calibración de la dirección: aproximación a los valores más altos del
sevomotor 83
A.6. Calibración de la dirección: los valores más altos del servomotor que
controla la dirección 83
A.7. Calibración de la dirección: trayectoria lineal - parte 1 84
A.8. Calibración de la dirección: trayectoria lineal - parte II 84
A.9. Calibración de la velocidad. Aceleración en el eje X en una trayectorial
lineal) 85
XIII
Capítulo 1
Introducción
En este capítulo se presenta:
• Una breve introducción a la relevancia de las técnicas de evitación de colisiones
en los Vehículos Autónomos (VA).
• Una explicación de alto nivel acerca de las técnicas en la evitación de colisiones.
Se incluyen los procesos de alto nivel; asi como algunos sensores utilizados para
este propósito.
• Una descripción del flujo óptico y su utilización en la detección de obstáculos.
• Una breve introducción al concepto affordance y su relevancia en la evitación de
colisiones.
• Una breve explicación contextual del espacio proximal en el alcance de este tra
bajo.
1.1. La evitación de colisiones y sus técnicas
Las técnicas para la evitación de colisiones son un tema de interés común en la
construcción de vehículos autónomos (VA). Es un requerimiento mandatorio que los VA
planifiquen y ejecuten trayectorias libres de obstáculos para cumplir con las demandas
1
de seguridad y cuidado de los mismos VA; los cuales normalmente llevan consigo equipos
de instrumentación altamente especializados y costosos; o bien, transitan en ambientes
operativos que demandan una extrema precaución [2].
La evitación de colisiones inicia primero con la detección de posibles obstáculos
y esta detección permite prever una posible colisión tomando en cuenta información
tanto del VA como del medio ambiente. Es común ubicar la detección de obstáculos
en la dirección de movimiento del VA y utilizar medidas de proximidad calculadas a
partir de la adquisición de datos provistas por sensores.
Es importante aclarar que los algoritmos para la evitación de colisiones son habi-
tualmente implementados como funciones en tiempo real; cuyo objetivo, una vez que
se detecta una posible colisión, es planificar y ejecutar acciones evasivas que permitan
evitarla [2]. Así por ejemplo: un VA puede disminuir la velocidad, detener la marcha
o realizar una maniobra segura; y posteriormente notificar al sistema central acerca
de la situación para que se actualice el estado proprioceptivo del VA y emprenda las
acciones correctivas pertinentes. En la figura 1.1 se muestran los procesos que se han
mencionado.
Las técnicas para la evitación de colisiones en un VA pueden utilizar: información
provista por sensores en tiempo real y modelos detallados del medio ambiente en el cual
operan. Ambas técnicas no son mutuamente excluyentes (bien un VA puede perfecta
mente incorporar las dos). Asimismo, estas técnicas deben considerar la velocidad del
VA durante su desplazamiento; así como las restricciones de tiempo que imponen las
condiciones de operación. El presente trabajo toma como uno de sus pilares la primera
técnica. Más adelante se describe el interés en esta técnica tomando como criterios el
costo computacional versus los modelos detallados del medio ambiente.
Existen diversas tecnologías utilizadas en la evitación de colisiones. Algunos sen
sores que se utilizan para este propósito son: sensores de contacto, sensores de tacto,
sonares, láseres y sensores ópticos. Cada uno de ellos provee funciones específicas según
2
Figura 1.1: Procesos participantes en una estrategia para la evitación de colisiones.
su naturaleza; y son utilizados en condiciones operativas que favorecen su uso. A muy
alto nivel, la figura 1.2 esquematiza las técnicas y tecnologías que se utilizan para la
detección de obstáculos.
Los sensores de contacto y de tacto son utilizados para el posicionamiento fino de
un VA y para evitar un contacto brusco con objetos muy cercanos. Normalmente se
utilizan para detectar obstáculos en las trayectorias de los manipuladores del VA. Su
utilización es limitada en la evitación de colisiones durante la navegación del mismo.
Los sonares y láseres tienen una amplia utilización en la navegación de VAs. Estos
sensores tienen una gran efectividad cuando el ambiente en el que operan está compues
to por superficies planas con una alta capacidad de reflexión y que están posicionadas
perpendicularmente con respecto a la emisión del haz que emite el sonar o láser. Sin
embargo, su desempeño se ve negativamente afectado cuando los obstáculos carecen
de dichas superficies reflexivas; o bien, estos obstáculos están posicionados de tal for
ma que no ofrecen superficies perpendiculares a la emisión del haz. Bajo estas últimas
3
Figura 1.2: Técnicas y tecnologías para la detección de obstáculos
condiciones, es habitual que los sonares y láseres no sean efectivos para la evitación de
colisiones.
Los sensores ópticos —en particular las cámaras de visión—toman en cuenta la
información contenida en una imagen y básicamente se utilizan bajo dos enfoques:
para hacer una modelación del medio ambiente y a partir de ahí calcular obstáculos
en la trayectoria planeada que lleven hacia la evitación de colisiones; o bien, estos
sensores extraen información directamente de la imagen y partir de ahí determinan si
hay un posible obstáculo sin necesidad de modelar el ambiente operativo del VA. En la
figura 1.2 se señala el área (en líneas punteadas) que cubre las técnicas y tecnologías
para la detección de obstáculos que incorpora este trabajo. En el siguiente apartado
se mostrará que el flujo óptico (relevante en este desarrollo) es una técnica que se
implementa en cámaras de visión (i.e. cámara fotográfica).
1.2. Flujo Óptico: breve introducción
El presente trabajo utiliza la técnica del flujo óptico bajo el enfoque de extracción
de información sin modelación del medio ambiente. Más adelante se explica el deta-
4
lie de este enfoque. Por ahora, se puede adelantar que la utilización del flujo óptico
complementa a la utilización de los sonares; pues su desempeño mejora en aquellas
situaciones en las que los sonares son negativamente afectados y viceversa; los sonares
se desempeñan mejor en aquellas situaciones en las que el flujo óptico tiene un bajo
desempeño (véase el cuadro 1.1).
Precisamente el desempeño de ambas tecnologías en la evitación de colisiones fue
experimentado empíricamente por el autor durante la ejecución del proyecto Planea-
ción de Trayectorias y Control de Movimientos en un Robot Humanoide. Este proyecto
involucró la utilización de robots humanoides y uno de los requerimientos era que éstos
no colisionaran ni con otros robots ni con las paredes del medio ambiente. El desem
peño de los sonares en la evitación de colisiones con las paredes fue muy efectivo; pero
su desempeño cuando se aproximaba a otros robots era pobre: varias veces fallaron
en proveer la información para evitar la colisión con ellos. El trabajo desarrollado en
esta tesis para el cálculo de flujo óptico se utilizó para complementar la detección de
obstáculos mediante los sonares. De esta manera la suma de ambos permitió la detec
ción efectiva de obstáculos tanto con paredes (detectadas por los sonares) como con
otros robots (detectados por el flujo óptico).
Cuadro 1.1: Desempeño de sonares y flujo óptico en la evitación de colisiones
Se puede obtener información valiosa mediante el análisis de secuencias de imáge
nes que varían en el tiempo. En primera instancia pareciera que procesar secuencias
de imágenes es extremadamente complejo dado que el análisis de una sola imagen
es en sí mismo un reto considerable. Curiosamente, hay información que es más fácil
5
(a) flujo ópt ico ( b ) sonar
Figura 1.3: Evitación de colisiones mediante flujo óptico y sonar. En la imagen de la izquierda el robot utilizó el flujo óptico que registró el robot frente a él para evitar la colisión. En la imagen de la derecha utilizó los sonares para evitar la colisión con el tubo de la portería y la pared ubicados frente a él.
de obtener en una secuencia de imágenes que varían en el tiempo [15]. Precisamente,
el flujo óptico proporciona información cuantitativa del movimiento aparente de los
objetos cuando la cámara se desplaza con respecto a ellos (o viceversa, cuando los ob
jetos se desplazan con respecto a la cámara). En otras palabras, El flujo óptico extrae
información diferencial en una secuencia de imágenes que varían en el tiempo. Esta
información acerca del movimiento aparente es la que se explota en el presente trabajo
para la evitación de colisiones. En un sentido intuitivo, se puede afirmar que un mo
vimiento aparente menor en la imagen, corresponde a una distancia mayor relativa; y
un movimiento aparente mayor, corresponde a una distancia más cercana del objeto en
cuestión.
Existen diversas técnicas para calcular el flujo óptico. Algunas de ellas privilegian
la exactitud y exhaustividad de los puntos de la imagen (incluyen la mayor cantidad
posible de pixeles y proveen un cálculo del movimiento aparente de mayor precisión).
Otras técnicas privilegian el costo (una menor complejidad computacional) compro
metiendo la exhaustividad y admitiendo un nivel razonable de error; muchas veces,
parametrizable. Por la naturaleza de este proyecto, se escogió una técnica compatible
6
con estos últimos criterios: un algoritmo que provee un desempeño razonable en cuanto
a precisión y exhaustividad a un costo computacional también razonable. Recuérdese
que este trabajo requiere detección de colisiones en tiempo real. El algoritmo utiliza
do para calcular el flujo óptico se llama lukas-kanade en su modalidad piramidal (en
inglés se le conoce como Pyramid Lucas-Kanade optical flow). Mas adelante se explica
el detalle de esta técnica y su contexto en comparación con otras técnicas.
1.3. Affordances: algunos conceptos
El concepto de affordance fue creado por James J. Gibson en el dominio de la
psicología ecológica (particularmente en la disciplina de percepción visual) y pronto fue
utilizado en otros dominios como la Inteligencia Artificial. Los affordances son propie
dades perceptuales del medio ambiente, que devienen aparentes cuando se aproxima a
la percepción desde una perspectiva ecológica [27]. De acuerdo a Gibson, los affordan
ces del medio ambiente son lo que éste ofrece al animal, lo que le provee o proporciona
[12]. En otras palabras los affordances de un medio ambiente son las oportunidades de
acción que tiene un animal en dicho medio ambiente y son sistémicos en la interacción
animal-medio ambiente. Existen naturalmente sin necesidad de ser visibles, conocidos
o deseables por el animal.
Para un animal en locomoción, Gibson propone dos casos generales: obstáculo y
apertura. Un obstáculo es un objeto rígido -individual o ligado a otro objeto; una super
ficie con oclusión de los bordes. Una apertura es un hueco o brecha en una superficie;
también con oclusión de los bordes. Un obstáculo ofrece un affordance colisión; y una
apertura ofrece un affordance pasaje (es decir, que permite pasar a través de él). Ambos
-obstáculo y apertura- tienen un contorno cerrado o casi cerrado en el arreglo óptico
ambiental. Se diferencian en que el borde de un obstáculo está dentro del contorno;
mientras que el borde de una apertura está fuera de dicho contorno [11].
7
Trasladar el concepto de affordance a la Inteligencia Artificial es un paso natural
en el diseño de agentes inteligentes que interactuan de manera autónoma con su me
dio ambiente. Si se reemplaza el término animal por agente inteligente y acotamos el
arreglo óptico ambiental a flujo óptico; la teoría de affordances adquiere un carácter
pragmático en esta disciplina. Una oportunidad concreta es la siguiente: las moscas
extraen información del flujo óptico y dicha información la proveen directamente a los
músculos encargados de la dirección del vuelo. Esto les permite reaccionar ante obstácu
los -se sabe que éstos ofrecen un affordance colisión- del medio ambiente y cambiar de
dirección en menos de 30 milisegundos [23]. La oportunidad que se presenta en la In
teligencia Artificial es trasladar esta habilidad de las moscas a un agente inteligente
de otras características motrices (es a este agente inteligente al que llamamos vehículo
autónomo). El presente trabajo explota dicha oportunidad acotado al siguiente alcan
ce: desarrollar una estrategia basada en affordances y sensores de flujo óptico para la
evitación de colisiones de un vehículo autónomo.
1.4. El espacio proximal del VA y su contexto en
el alcance de este trabajo
El alcance y estrategia de la evitación de colisiones mencionado en la sección an
terior se realiza y delimita al espacio proximal del vehículo autónomo. Esto significa
que este último operará considerando los estímulos registrados en sus sensores (tanto
internos como externos); independientemente del medio ambiente en el que se desen
vuelve. Dicho en otras palabras, se da prioridad a las magnitudes del espacio proximal
del VA versus la relevancia de las magnitudes de los objetos (y sus propiedades) en el
espacio distal (también llamado euclidieano). Aquí cabe mencionar que en la estrate
gia utilizada en este trabajo se renuncia a cualquier modelación persistente del medio
8
ambiente; lo que equivale a decir que la operación del VA se da en su espacio proximal.
De lo anterior se puede hacer una analogía con el «operar» de las amibas en su
medio ambiente natural: éstas no evolucionaron mediante la modelación de los objetos
físicos concretos de su medio ambiente; sino que son los estímulos que registran sus
sentidos los que gatillan las acciones de las amibas para «operar» en dicho medio. En
concreto: las amibas «operan» en su espacio proximal. De esta misma forma, el agente
inteligente objeto de este trabajo, opera también en su espacio proximal.
En el capítulo 2 se presentan algunos conceptos teóricos en los que se sustenta
el presente trabajo. Ahí se describen brevemente algunas teorías de percepción y su
relevancia en el diseño de agentes inteligentes; así como el desarrollo de los conceptos
matemáticos relacionados con el flujo óptico y algunos algoritmos más populares para
su cálculo. Finalmente, en este capítulo se hace una breve descripción de los actuadores
y el servocontrol relevantes a este trabajo.
En el capítulo 3 se presentan los aspectos relevantes de arquitectura y diseño. Se
inicia con un análisis de la arquitectura conceptual en la cual se identifican los macro-
componentes funcionales; así como la integración e interacción de dichos componentes.
Esta información en conjunto, da cuenta del alcance funcional de este proyecto. Ense
guida se hace un mayor acercamiento a la estructura del proyecto mediante la exposi
ción de la arquitectura lógica.Aquí se hace un acercamiento que identifica a los distintos
módulos que forman a los macrocomponentes funcionales. Este acercamiento habilita el
análisis de las interacciones entre los distintos módulos (relaciones intra-componente); y
de las integraciones con otros componentes funcionales (relaciones extra-componente).
Finalmente, se muestra la arquitectura física; en ella, se mapea la distribución de los
componentes funcionales y sus módulos (software) al equipo de cómputo y equipo pe
riférico (hardware) aprovisionado para el desarrollo del presente trabajo.
En el capítulo 4 se entregan los aspectos relevantes de la implementación. Ahí se
describen: los componentes concretos de la implementación, los resultados de las prue-
9
bas realizadas y los problemas presentados durante el desarrollo de este trabajo. Adi-
cionalmente se incluyen otros resultados relevantes.
El capítulo 5 entrega las conclusiones; así como las aportaciones y los trabajos
futuros sugeridos en relación con este proyecto. Y finalmente, el apéndice A describe
brevemente los experimentos realizados para la calibración de los actuadores.
10
Capítulo 2
Marco Teórico
El presente capítulo describe los conceptos teóricos en los que se apoya el desarrollo
de este trabajo. Aquí se presentan:
• Algunas teorías de percepción y su relevancia en el diseño de agentes inteligentes.
• El flujo óptico y algunos de los algoritmos más populares para su cálculo.
• Una breve descripción de los actuadores y el servocontrol relevantes a este trabajo.
2.1. Teoría de la percepción directa y affordances
La teoría de percepción indirecta de Rene Descartes postula que nuestra conciencia
perceptual deviene después de construir una representación interna del medio ambiente
[7]. A esta representación interna se le ha dado el nombre de Teatro Cartesiano. En
contraste, la teoría de percepción directa iniciada por James J. Gibson establece que
el medio ambiente ya contiene toda la información requerida para especificar sus pro
piedades. Según Gibson, el problema para percibir estas propiedades se resuelve con
la detección de información ya disponible en el ambiente [10]. La teoría de percepción
directa rechaza que los seres sensibles aprenden las características del medio ambiente
a través de representaciones simbólicas en la mente. Más aún, Gibson afirma que en
esta percepción directa, estos seres sensibles perciben lo que el ambiente permite a sus
11
cuerpos; es decir, lo que pueden hacer con y en el medio en que viven. A las carac
terísticas del medio ambiente que se aprenden mediante la percepción directa, Gibson
las llamó affordances [7].
En el marco de la teoría de affordances, Gibson propuso que la luz ambiental con
tiene estructuras de información del medio ambiente. A estas estructuras de información
las llamó arreglo óptico ambiental [7]. Se observa que dentro de esta teoría el problema
de la percepción visual se resuelve mediante la extracción de información contenida en
dicho arreglo óptico [11]. Estas ideas de Gibson, resultan en una aplicación práctica
en el área de la Inteligencia Artificial y particularmente en las técnicas de evitación
de colisiones en la robótica móvil: desde la perspectiva de un vehículo autónomo, la
información contenida en el arreglo óptico ambiental podría indicar la presencia próxi
ma de un obstáculo que posee un affordance de tipo colisión. Es oportuno mencionar
que el flujo óptico (de él se hablará en detalle más adelante) se extrae directamente del
arreglo óptico ambiental.
2.2. Percepción y Affordances en la Inteligencia
Artificial (IA)
La capacidad de percepción en un agente inteligente (AI) inicia con la informa
ción que proveen sus sensores. Los sensores de visión son los más importantes para la
navegación [23] y facilitan la autonomía de los AI autónomos en habilidades como ad
quisición de conocimientos y toma de acciones, entre otras [29]. Los sensores de visión
son los más útiles para interactuar con el mundo físico.
Un percepto es una entrada perceptual del AI en un instante dado [23]. Existen
dos tácticas para la utilización de los perceptos:
1. Enfoque basado en modelos: los estímulos sensoriales se utilizan para reconstruir
12
un modelo del medio ambiente.
2. Enfoque basado en extracción de características: el agente detecta un número
mínimo de características particulares en su entrada sensorial y lo pasa direc
tamente al programa del agente; el cual puede reaccionar a las características
presentadas.
Un ejemplo del primer enfoque es la modelación del medio ambiente a partir
del procesamiento digital de imágenes y un ejemplo del segundo es la extracción de
información ambiental a partir del flujo óptico. Se observa que el primer enfoque es
computacionalmente más complejo y que en el segundo, se renuncia a cualquier mo
delación interna -y persistente- del medio ambiente Esto nos lleva a que el enfoque
basado en modelos es compatible con la teoría de percepción indirecta de Descartes;
mientras que el enfoque basado en extracción de características lo es con la teoría de
percepción directa y affordances.
Lo anterior nos permite formular la siguiente hipótesis:
• una estrategia basada en la teoría de percepción directa y affordances,
• la utilización de perceptos bajo el enfoque de extracción de características y
• la utilización de sensores de flujo óptico
son elementos cohesivos y consistentes para guiar la construcción de un agente inte
ligente autónomo que tenga como meta la evitación de colisiones. Dichos elementos
Podemos ser más rigurosos. A partir de la ontología que genera el procesamiento digital de imágenes y el procesamiento de flujo óptico es posible establecer una diferencia más concreta -y específica- entre ambos enfoques: el procesamiento digital de imágenes se encamina hacia una modelación ontológica del medio ambiente en el que está situado el agente inteligente. Modelación que está caracterizada por la representación interna de las dimensiones concretas (físico-geométricas) y persistencia de dicho medio ambiente en la memoria interna del agente inteligente. Por el contrario, el flujo óptico solamente abstrae -modela- aspectos puntuales de la escena que persisten en el mejor de los casos, en dos imágenes consecutivas de dicha escena. Su ontología -si se nos permitiera decirlo de esa manera- está limitada a unos cuantos pixeles de características especiales y el interés en dichos pixeles es exclusivamente su desplazamiento relativo dentro de la imagen.
13
constituyen el maxco teórico referencial de esta tesis 2
En la figura 2.1 se muestran las implicaciones de las teorías de percepción en la
utilización de perceptos en la IA. El área «punteada» resalta los elementos en los que
se basa este trabajo.
Figura 2.1: Teorías de Percepción y sus implicaciones en la Utilización de Perceptos en la IA.
* 2.3. Flujo Óptico: Desarrollo Teórico
El término flujo óptico se refiere a un fenómeno visual que experimentan los anima
les cotidianamente. Es tal su importancia, que se han realizado diversos experimentos
neurológicos con primates para analizar su procesamiento en el cerebro [19] [20] [21].
2Compárese lo aquí declarado, con el trabajo realizado en [14]. Ahí los autores abandonan el «purismo» del concepto de affordance propuesto por Gibson y adoptan un enfoque pragmático: etiquetan a priori los elementos del medio ambiente; los procesan semánticamente y luego, obtienen un modelo ontológico persistente de dicho medio ambiente.
14
Asimismo, se ha sugerido que el flujo óptico es el punto de inicio para descubrir la
maquinaria fisiológica del sistema biológico de visión [17].
En esencia, el flujo óptico es el movimiento visual aparente que los animales ex
perimentan cuando se desplazan en el medio ambiente (esto es, cuando entran en loco
moción). Considere por ejemplo el movimiento aparente de los edificios y árboles que
experimenta una persona cuando va conduciendo un auto: pareciera que estos objetos
se mueven en dirección hacia el conductor. Este movimiento aparente es precisamente
resultado del flujo óptico; y entre otras cosas nos muestra que tan cerca se está de los
diferentes objetos que se observan. Objetos distantes tales como montañas o nubes tie
nen un movimiento aparente tan pequeño que parecen inmóviles; mientras que objetos
más cercanos tales como árboles y edificios parecen moverse hacia el observador. En
apariencia, los objetos más cercanos se mueven más rápido que los objetos más lejanos
[8]. En otras palabras, le llamamos flujo óptico al movimiento aparente de objetos que
resulta en la imagen -o imágenes- que percibe el observador [23].
Hay claramente una relación matemática entre la magnitud del flujo óptico y la
colocación de los objetos con respecto al observador. Si el observador duplica la veloci
dad de desplazamiento, entonces la magnitud del flujo óptico también se multiplica en
aproximadamente la misma proporción. Si un objeto se acerca a la mitad de la distancia
original con respecto al observador; nuevamente se espera que el flujo óptico medido
se duplique (aproximadamente). De ahí que la velocidad del observador y la distancia
a los objetos sean dos aspectos a considerar cuando se interpreta el flujo óptico medi
do. Asimismo, el flujo óptico que se obtiene es diferente dependiendo del ángulo que
se forma entre la dirección del observador y la dirección de movimiento del objeto al
que se está observando en la escena [8]. Por ejemplo: si un observador se desplaza hacia
adelante en línea recta, el flujo óptico de mayor magnitud se obtiene de aquellos objetos
que están a su lado a 90 grados; es decir, posicionados perpendicularmente con respecto
a su dirección de movimiento -y observación. Si el objeto está más cerca de la dirección
15
de movimiento el flujo óptico será menor. De hecho, un objeto exactamente en frente
del observador no arrojará flujo óptico alguno. Sin embargo, dado que los bordes del
objeto no están exactamente enfrente (es decir, en el centro de la escena), estos bordes
son los que se moverán en apariencia; y el objeto en general parecerá hacerse cada vez
más grande.
(a) manos en movimiento (b) persona estática
Figura 2.2: Flujo óptico en imágenes
Nótese que desde el punto de vista del observador, el flujo óptico encodifica in
formación útil acerca de la estructura de la escena que observa (ya sea porque él y/o
los objetos en la escena están en movimiento). En concreto: objetos distantes tienen
un movimiento aparente menor que los objetos cercanos; por lo tanto, la rapidez del
movimiento aparente encodifica -cuantitativamente- la distancia de dichos objetos con
respecto al observador [23]. También es pertinente acotar el alcance del flujo óptico: si
el observador está en reposo y en la escena no hay movimiento alguno; el flujo óptico
arrojará mediciones nulas de movimiento aparente (lo cual, en si mismo puede ser infor
mación relevante en una aplicación en particular. Considérese su utilización en alarmas
contra intrusos).
Otra información importante que se encodifica en el flujo óptico es el patrón que
se obtiene cuando el observador se aproxima a un objeto. Al punto central de la imagen
16
que registra un flujo óptico nulo se le llama foco de expansión (FOE, por sus siglas
en inglés: focus of expansión) y éste indica la dirección específica a la que se dirige el
observador; o bien, si el observador está en reposo, indica que el objeto en el que se
registra el FOE se aproxima directamente hacia él.
Existen diversas aplicaciones del flujo óptico. En el presente trabajo nos interesa su
utilización para la detección de obstáculos y la correspondiente evitación de colisiones.
Para este propósito, son criterios relevantes la magnitud de la distancia y el FOE
encodificados en el flujo óptico 3 .
(a) (b )
Figura 2.3: Foco de expansión en imágenes
2 . 4 . T é c n i c a s p a r a el cá lcu lo de flujo óp t i co
Ya se mencionó que el flujo óptico se utiliza para el rastreo de movimiento en una
secuencia de imágenes. Existen diversas técnicas para el cálculo de flujo óptico: métodos
diferenciales, métodos basados en frecuencia, métodos basados en correlación, métodos
basados en múltiples movimientos y métodos de refinamiento temporal [3]. Asimismo;
3 P o r razones prácticas y considerando la técnica que se escogió en el presente trabajo, calcular el F O E experimentalmente no siempre es factible; o bien, aumenta considerablemente la complejidad computac ional (aspecto muy sensible en aplicaciones de t iempo real c o m o lo es la evitación de col is iones) . Afortunadamente, el F O E no es estrictamente necesario para el propósi to de este trabajo.
17
muchas de estas técnicas han sido acotadas para escenarios de dos y tres dimensiones
[1]. En esta sección se describirán algunos conceptos y técnicas matemáticas utilizadas
para el cálculo del flujo óptico desde un punto de vista pragmático y orientado al alcance
del presente trabajo 4 .
2.4.1. Rastreo en una secuencia de imágenes
En el análisis de una sola imagen, normalmente se tiene un interés en aislar un
particular objeto (i.e. mesa, persona, etc.) para posteriormente tomar una decisión
computacional según el hallazgo que arroja el procesado digital de la escena. Cuando
analizamos una secuencia de imágenes (video), el interés ahora está en un objeto u
objetos que queremos rastrear a lo largo del campo de visión; y a lo largo de la secuencia
de imágenes. Como se verá más adelante, es importante mencionar que el aislamiento
de dicho objeto del resto de la escena, no es requerido para rastrear su movimiento.
Dicho rastreo requiere de dos tareas principales: la identificación y la modelación.
La identificación es una tarea que consiste en delimitar el objeto de interés dentro
de un frame y posteriormente encontrarlo en un frame subsecuente del video. Existen
algunas técnicas como los histogramas de color o el cálculo de momentos que ayudan
a identificar a dicho objeto. Un problema distinto -pero relacionado- es precisamente
el rastreo de objetos que no han sido identificados previamente. El rastreo de objetos
sin identificar a priori es importante cuando lo que deseamos determinar está basado
en su movimiento; o inclusive, si precisamente es el movimiento el objeto de interés.
Las técnicas para el rastreo de objetos no identificados a priori típicamente implican
el rastreo visual de puntos significativos de la escena; en vez de objetos extendidos.
Aqui abordaremos dos técnicas: El algoritmo flujo óptico disperso de Lucas-Kanade y
4 Las técnicas que aquí se describen han sido implementadas en la librería de funciones de visión computacional Opencv (Open Source Computer Vision, por sus siglas en inglés) [6j. Precisamente se escogieron estas técnicas pues nuestro desarrollo utiliza sustancialmente esta librería de funciones.
18
el algoritmo flujo óptico denso de Horn-Chunk.
La segunda tarea -la modelación, se hace cargo del hecho de que estas técnicas
nos proveen con información ruidosa de la posición real del objeto. Existen técnicas
matemáticas poderosas que han sido desarrolladas para estimar la trayectoria de un
objeto que ha sido obtenida de esta forma ruidosa. Estos métodos tienen su aplicación
en modelos de 2 y 3 dimensiones tanto de objetos como de sus localizaciones en el
espacio.
2.4.2. Rastreo de puntos significativos en la escena
Existen diversas clases de puntos locales que se pueden rastrear en una imagen. Sin
embargo, el objetivo es identificar y localizar a aquellos puntos que de forma efectiva
pueden ser localizados en imágenes posteriores. Por ejemplo: si en un primer frame se
escoge un punto dentro de una gran hoja de papel; entonces no será fácil localizar ese
mismo punto en frames posteriores. Esto se debe a lo siguiente: si todos los puntos son
idénticos o muy similares, será poco exitosa la identificación efectiva de un punto en
particular (se confundiría con los demás puntos). Por el contrario, si se escoge un punto
que es posible identificar de manera única, entonces existe una muy buena probabilidad
de encontrar dicho punto en los frames posteriores del video. En la práctica el punto o
característica que se selecciona, debe ser único o casi único; y debe ser parametrizable
de tal forma que pueda ser comparado con otros puntos localizables en una imagen
distinta.
Dado lo anterior, intuitivamente se escogen puntos que contienen cambios signifi
cativos -contrastes- en ellos; y que en consecuencia, arrojan derivadas de gran magnitud.
Los puntos en los bordes son normalmente los que se asocian a estas características.
Pero no es suficiente; pues estos puntos se pueden confundir con otros que existen a lo
largo del borde. Sin embargo, si encontramos un punto que arroja derivadas de gran
19
magnitud en dos direcciones ortogonales; entonces podemos tener mayor confianza en
que se trata de un punto único; o que por lo menos, podemos reconocerlo de manera
efectiva en frames subsecuentes del video. Por esta razón, muchos puntos significativos
-y que son rastreables- se les llama esquinas. Intuitivamente, las esquinas -y no los
bordes- son puntos que contienen suficiente información para identificarlos de manera
única y rastrearlos de un frame a otro. Véase la figura 2.4.
Figura 2.4: Las esquinas son buenas características para rastrear.
Harris creó la definición de esquina mas comúnmente utilizada. Esta definición
se basa en la Matriz de Derivadas de Segundo Orden (d2x,d2y,d2z) asociada a las
intensidades de la imagen [13]. Estas derivadas de segundo orden (también llamadas
imágenes de segundas derivadas), forman una imagen Hessiana cuando se toman en
cuenta todos los puntos de la imagen y se combinan en una sola matriz. La terminología
viene de la matriz Hessiana que se calcula alrededor de un punto. Su definición en dos
20
dimensiones está dada por:
(2.1)
Asimismo, la definición de Harris (para una esquina), implica la matriz de autoco-
rrelación de las imágenes de segundas derivadas que se aplican sobre una pequeña ven
tana alrededor de cada punto. Matemáticamente la matriz de autocorrelación está dada
por:
\ /
Nótese que Wi¿ es un término ponderado que puede ser uniforme; o bien, puede
ser utilizado para crear una ventana circular o una ponderación gaussiana. De acuerdo
a la definición de Harris, las esquinas son lugares en la imagen donde la matriz de
autocorrelación tiene dos eigenvalues de gran magnitud. En términos prácticos, esto
significa que existe textura o bordes que se dirigen hacia al menos dos direcciones
separadas y cuyo centro es el punto en cuestión. Precisamente eso es lo que se observa
en las esquinas «reales»: tienen al menos dos bordes que se conectan en dicho punto.
Las segundas derivadas son útiles porque no responden a gradientes uniformes. Esta
definición también tiene la siguiente ventaja: si se consideran los eigenvalues de la
matriz de autocorrelación, se están tomando en cuenta magnitudes que son invariantes
también a la rotación; lo cual es importante ya que los objetos que se rastrean, pueden
moverse y rotar. Nótese que estos dos eigenvalues además de determinar si un punto es
una «buena característica para rastrear» de manera efectiva; también provee una firma
de identificación para dicho punto.
21
La definición original de Harris implicaba calcular la determinante de H(p) restando
la traza de H(p) y luego comparar la diferencia versus un umbral predeterminado. Más
tarde, Shi y Tomasi encontraron que se obtenían buenas esquinas siempre que el más
pequeño de los dos eigenvalues fuera mayor que un umbral mínimo [24]. El método de
Shi y Tomasi fue suficiente y en muchos casos arrojó resultados más satisfactorios que
el método de Harris. El presente trabajo utiliza el método de Shi y Tomasi para escoger
los puntos de la escena que son «buenas características para rastrear».
Se sabe que existen otras técnicas poderosas para identificar esquinas. Una que
se utiliza comúnmente es conocida como SIFT (por sus siglas en inglés scale-invariant
feature transform). Esta técnica detecta la orientación de gradiente dominante en su
localización; y registra los resultados que arrojan los histogramas de gradientes locales
con respecto a esta orientación. Esto permite que SIFT sea también invariante a la
rotación [5]. Sin duda, una técnica que también ha demostrado ser poderosa 5 .
2.4.3. Cálculo del Flujo Óptico
Recuérdese nuestro objetivo: lo que se busca es evaluar el movimiento aparente en
dos frames (o una secuencia de frames) sin tener algún conocimiento previo acerca del
contenido de dichos frames. Típicamente, el movimiento mismo es el objeto de interés
cuando se analiza una secuencia de imágenes.
Ya se comentó que podemos asociar alguna clase de velocidad a cada pixel en el
frame. De manera equivalente, también se puede asociar desplazamientos que represen
tan la distancia recorrida por un pixel que se ha «movido» entre un primer frame y
el segundo. A esta construcción se le conoce comúnmente como flujo óptico denso; y
esta técnica asocia una velocidad a cada pixel de la imagen. El método de Horn-Chunk
5 L a librería OpenCV 2.0 cuenta con un módulo que implementa la técnica de Shi-Tomasi pero no
incluye módulo alguno que implemente la técnica SIFT. Esta es la razón por la que este trabajo utiliza
la primera técnica.
22
intenta precisamente calcular dicha velocidad de campo [16].
En la práctica, calcular el flujo óptico denso no es una tarea trivial. Por ejemplo:
consideremos el movimiento de una hoja de papel. Muchos de los pixeles blancos en un
frame simplemente permanecerán blancos en el frame siguiente. Solo los bordes podrían
cambiar, y se notarían los cambios perpendiculares a la dirección de movimiento. El
resultado es que las técnicas «densas» deben incluir algún método de interpolación para
los puntos que son fácilmente rastreables; y a partir de ahí resolver aquellos puntos de
la imagen que son más ambiguos. Estas dificultades se reflejan claramente en los altos
costos computacionales del flujo óptico denso.
Existe otra alternativa: el flujo óptico disperso. Los algoritmos de esta naturaleza
dependen de algunos mecanismos que les indiquen a priori el subconjunto de puntos
de la imagen que deben ser rastreados a posteriori. Si estos puntos cuentan con ciertas
propiedades deseables; como las esquinas mencionadas anteriormente, el rastreo será ro
busto y confiable. Para muchas aplicaciones prácticas -como la evitación de colisiones-
el costo computacional del rastreo disperso es mucho menor que las técnicas de rastreo
denso; por lo que estás últimas están mayormente relegadas a un interés puramente
académico. En el siguiente apartado se discutirá el método de Lucas-Kanade (flujo
óptico disperso) y se hará una breve reseña del método Horn-Schunck (flujo óptico
denso).
2.4.4. Método de Lucas-Kanade (flujo óptico disperso)
El algoritmo de Lucas-Kanade (LK) fue propuesto originalmente para producir
resultados densos. Sin embargo, este algoritmo también es fácilmente aplicado a un
subconjunto de puntos de la imagen; lo que lo habilita a ser una técnica dispersa [18].
LK puede ser utilizado en un contexto disperso porque se basa en información local
que se obtiene a partir de pequeñas ventanas alrededor del punto de interés. Esto
23
en contraste con la naturaleza global intrínseca del algoritmo de Horn y Schunck. La
desventaja en utilizar pequeñas ventanas alrededor del punto de interés es que algunos
movimientos de gran magnitud pueden hacer que los puntos de interés «caigan» fuera
de la ventana local; lo que hace que el algoritmo no pueda encontrarlos en la siguiente
imagen. Este problema motivó el desarrollo de una versión piramidal del algoritmo LK.
Esta versión piramidal inicia el rastreo desde el nivel más alto de la imagen piramidal
(menor detalle) y continua el rastreo hacia los niveles inferiores (detalle más fino). El
rastreo a través de imágenes piramidales permite que movimientos de gran magnitud
sean interceptados por las ventanas locales alrededor del punto de interés.
El algoritmo LK descansa en tres premisas:
1. Constancia en el brillo. Un pixel tomado de la imagen (la cual representa a un
objeto y su escena); no cambia en apariencia cuando se mueve de un frame a otro.
Para imágenes en escala de grises (aunque el algoritmo LK también funciona a
color), esto implica que el brillo de un pixel no cambia cuando es rastreado de un
frame a otro.
2. Persistencia temporal o «pequeños movimientos». El movimiento de una cuadrícu
la se da lentamente a través del tiempo. En términos prácticos, esto implica que
el delta temporal entre un frame y otro es lo suficientemente rápido relativo a
la escala de movimiento de la cuadrícula (su desplazamiento entre una imagen y
otra).
3. Coherencia espacial. Los puntos vecinos en una escena pertenecen a la misma
superficie, tienen un movimiento similar y se proyectan sobre puntos cercanos en
el plano de la imagen.
Obsérvese cómo estas premisas llevan a un algoritmo efectivo de rastreo. El primer
requerimiento, constancia en el brillo, nos indica que los pixeles contenidos en una
24
cuadrícula rastreada se ven igual a través del tiempo:
(2.3)
Y significa que la intensidad del pixel que rastreamos tampoco exhibe cambios a
través del tiempo:
(2.4)
La segunda premisa, persistencia temporal, esencialmente significa que los movi
mientos son pequeños entre un frame y otro. En otras palabras, se puede observar este
cambio como una aproximación de la derivada de la intensidad con respecto al tiempo
(i.e. el cambio entre un frame y el siguientes es diferencialmente pequeño). Para en
tender las implicaciones de esta premisa, se iniciará el análisis considerando el caso de
una sola dimensión espacial.
Tómese como punto de partida, la ecuación de constancia de brillo. Ahí se sustituye
la definición de brillo f(x,t), pero se toma en cuenta la dependencia implícita de x con
respecto a i en I(x(t),t). Ahora se aplica la regla de la cadena para diferenciaciones
parciales y obtenemos:
(2.5)
Donde Ix es la derivada espacial a través de la primera imagen, / ( es la derivada
con respecto al tiempo entre las imágenes, y v es la velocidad que se está buscando. Así,
se obtiene la ecuación de velocidad de flujo óptico para el caso de una sola dimensión
espacial:
(2.6)
Obsérvese que la premisa de mantener constante la intensidad a través del tiempo
25
es una condición ideal que en imágenes reales no se mantiene la mayoría de las veces.
Tómese en cuenta que una cámara no provee un brillo estable y que los deltas de tiempo
(también provistos por la cámara) no son tan rápidos con respecto a la velocidad de
movimiento. De ahí que nuestra solución para la velocidad no es exacta. Sin embargo,
si nuestra primera estimación es confiable, entonces podemos iterar hacia una solución
más precisa. Dado que estamos considerando la constancia de brillo como premisa,
nótese que podemos mantener la misma derivada espacial en x tal y como se calculo en
el primer frame. La reutilización de esta derivada espacial previamente calculada nos
proporciona ahorros computacionales significativos. La derivada con respecto al tiempo
todavía tiene que ser recalculada en cada iteración y en cada frame, pero si el cálculo
se inició con una buena primera estimación, entonces estas iteraciones convergerán a
una solución cercana a la «real» dentro de cinco iteraciones. A esto se le conoce como el
método de Newton. Si la primera estimación no fue muy precisa, el método de Newton
divergirá y tendremos que repetir el proceso desde el principio.
Ahora se generalizará la solución en dos dimensiones: llamemos v a la componente
y y u a la componente x:
(2.7)
Nótese que en esta ecuación hay dos incógnitas para cualquier pixel dado. Esto im
plica que la ecuación está subrestringida y que no es posible obtener una única solución
para al movimiento bidimensional en ese punto. Solo se puede obtener una solución pa
ra la componente normal (perpendicular) a la línea que describe esta ecuación de flujo.
El flujo óptico normal resulta del problema de la apertura; el cual surge cuando se tiene
una pequeña apertura o ventana a través de la cual se medirá el movimiento. Cuando
el movimiento se detecta a través de una pequeña apertura, es común ver solamente los
bordes y no las esquinas. Pero un borde es insuficiente para determinar exactamente
en qué dirección se está moviendo el objeto completo (si bien, este objeto no lo hemos
26
identificado a priori, si es nuestro interés conocer la dirección de su movimiento). En
la figura 2.5 se muestra gráficamente el problema de la apertura.
Figura 2.5: Problema de la apertura: en la ventana de apertura (imágenes superiores) se observa un borde desplazándose hacia la derecha; pero no es posible detectar el movimiento simultáneo hacia abajo del cuerpo en su totalidad (imágenes inferiores).
La tercer premisa del algoritmo LK resuelve el problema de la subrestricción: si
una cuadrícula local de pixeles se mueve coherentemente, entonces podemos encontrar
el movimiento del pixel central. Para ello, utilizaremos los pixeles alrededor y entonces
podremos establecer un sistema de ecuaciones. Por ejemplo: si utilizamos una cuadrícula
(también la llamaremos ventana) de 5x5 alrededor de un pixel dado para calcular su
movimiento; obtendremos un sistema de 25 ecuaciones 6 . El sistema de ecuaciones
tomará la siguiente forma:
6 el tamaño de la ventana es un valor parametrizable: se puede establecer una ventana de 3x3, 7x7,
etc. Es importante tomar en cuenta que si se escoge una ventana muy pequeña, se caerá nuevamente en
el problema de la apertura y si se escoge una ventana muy grande, se violará la premisa del movimiento
coherente y será poco factible el rastreo. También tómese en cuenta que si se utiliza el algoritmo LK en
imágenes a color; entonces el número de ecuaciones se triplicará; aumentando el costo computacional.
27
Donde A es una matriz de 25x2, d es un vector de 2x1 y 6 es un vector de 25x1. Nótese
que ahora se tiene un sistema sobrecondicionado de ecuaciones. Para resolverlo, se
aplicará una reducción a la ecuación mediante mínimos cuadrados; donde min\\Ad - b\ |2
se resuelve convencionalmente como:
(2.8)
(2.9)
A partir de esta ecuación se obtienen las componentes de movimiento u y v. Re-
escribiendo la ecuación anterior en su forma extendida, se tiene:
(2.10)
Por lo que la solución a la ecuación es:
(2.11)
Se observa que la ecuación anterior tiene solución cuando (ATA) es invertible. Y
(ATA) es invertible cuanto tiene un rankeo completo (2); lo cual ocurre cuando tiene
dos eigenvalues de gran magnitud. Esta situación se da en regiones de la imagen que
incluyen texturas dirigiéndose en al menos dos direcciones distintas. Considerando estas
condiciones, (ATA) tendrá las mejores propiedades (para ser resolvible) cuando la ven-
28
tana de rastreo está centrada en una esquina de la imagen. Esto nos lleva a la discusión
previa acerca del método de Harris para detectar esquinas. De hecho, esas esquinas son
«buenas características para rastrear» precisamente porque {ATA) tiene dos eigenvalues
de gran magnitud. Se observa como el método de Harris -o el subsecuente de Shi y
Tomasi- complementan de forma efectiva el algoritmo de LK.
Ahora considérense las premisas de movimientos coherentes y pequeños que exige
el algoritmo LK. Se observa que en un escenario real no siempre se cumplen; sobretodo
con las cámaras comunes que capturan imágenes a 30 Hertz. Con estos dispositivos
es común obtener movimientos grandes y no coherentes. De hecho, el algoritmo LK
«puro» no se desempeña de forma aceptable precisamente por esa causa: normalmente
se establecen ventanas grandes para detectar movimientos de gran magnitud; pero esa
misma ventana de gran tamaño rompe la premisa de movimiento coherente. Para evitar
esta problemática, se puede rastrear primero sobre grandes escalas espaciales usando
una imagen piramidal. Después, se pueden retinar las premisas iniciales de la velocidad
del movimiento mediante el rastreo en los niveles inferiores de la imagen piramidal
hasta llegar a los pixeles de la imagen «pura» 7 .
De ahi que la técnica recomendada sea calcular el flujo óptico en el nivel superior
de la imagen piramidal y utilizar los resultados estimados de movimiento como entra
da para el siguiente nivel inmediato inferior; hasta llegar al primer nivel (el nivel más
inferior). De esta manera se minimizan las violaciones a las premisas de movimiento y
entonces se pueden rastrear movimientos más rápidos y de mayor magnitud. Al algo
ritmo mejorado que implementa el rastreo en imágenes piramidales se le conoce como
flujo óptico piramidal de Lukas-Kanade. Esta versión mejorada del algoritmo LK es la
que se utiliza en el desarrollo del presente trabajo.
7 A este enfoque piramidal para el análisis de imágenes también se le conoce como procesamiento
jerárquico [3]
29
2.4.5. Método de Horn-Schunck (flujo óptico denso)
El método de Horn-Schunck fue desarrollado en 1981 [16]. Esta técnica fue una
de las primeras que utilizó la premisa de la constancia en el brillo y partir de ella
se derivaron las ecuaciones básicas de brillo constante. Horn y Schunck propusieron
una solución a estas ecuaciones mediante la hipótesis de restricción de suavidad o
lisura en las velocidades vx y vy. Esta restricción se derivó utilizando una estrategia de
minimización para el laplaciano regularizado de los componentes del flujo óptico:
(2.12)
Donde a es un coeficiente de ponderación conocido como constante de regula-
rización. Grandes valores de a conllevan a vectores más «suaves» (más consistentes
localmente) del flujo de movimiento. Esta es una manera relativamente simple de res
tringir la «suavidad» y su efecto es penalizar aquellas regiones en las cuales el flujo
cambia de magnitud. Al igual que el algoritmo LK, la técnica de Horn-Schunck realiza
iteraciones para resolver las ecuaciones diferenciales.
Como ya se ha mencionado anteriormente, las técnicas de flujo óptico denso son
costosas desde el punto de vista computacional. A pesar de ello, Black y Añadan desa
rrollaron una técnica de flujo óptico denso que se utiliza frecuentemente en la produc
ción de películas [4]. Las casas productoras, motivadas por mejorar la calidad visual de
las películas; están dispuestas a invertir el tiempo requerido para obtener información
detallada del flujo óptico.
30
2.5. Actuadores y Control
2.5.1. Servomotores R C
Los servomotores RC son dispositivos electromecánicos utilizados en modelos de
radio control y son muy útiles en prototipos de robótica porque son pequeños, com
pactos y de costo razonable. Estos servomotores contienen: el motor mismo, una caja
de cambios, un mecanismo de retroalimentación para el posicionamiento y circuitos
electrónicos de control. Pueden ser controlados para moverse a cualquier posición me
diante pulsos simples de control [9].
Los servomotores RC tienen una interfase de tres cables que se utilizan para recibir
los comandos de control y el abastecimiento de la energía. Los cables se identifican
mediante el siguiente código de colores:
• NEGRO: tierra.
- BLANCO: PIN de control.
• ROJO: fuente de voltaje de +4.8 V (+5 V también puede funcionar adecuada
mente) .
Ya mencionamos que el control de los servomotores RC se realiza mediante pulsos
de control. El pulso de control debe ser positivo llevando un pulso con una duración de
1 a 2 milisegundos que debe ser repetido entre 50 y 60 veces en un segundo aproxima
damente. Véase la figura 2.6
Los pulsos de un (1) milisegundo posicionan al servomotor en una posición y
el pulso de dos (2) milisegundos cambia la posición a otra distinta. Un pulso de 1.5
milisegundos posiciona al servomotor en la posición central de las dos anteriores.
El esquema de control es muy sencillo de implementar. En nuestro caso, la inge
niería de control de estos servomotores RC se implementa a muy alto nivel mediante
31
Figura 2.6: Tren de pulsos para el control de un servomotor.
hardware especializado en el control de esta clase de servomotores (ver siguiente sec
ción).
La utilización de servomotores en este trabajo versus otras clases de motores (i.e.
motores de corriente directa, motores de paso, etc.) obedece principalmente a la dis
ponibilidad de componentes físicos asignados y a que cumplen su función de manera
efectiva para el alcance de este trabajo.
2.5.2. Sistema de Control Motriz
El sistema de control motriz utilizado en el desarrollo del prototipo principal de
nuestro trabajo; se basa completamente en un hardware especializado y comercial deno
minado ServoCenter™3.1 USB [31]. Los servocontroladores incrustados en la solución
ServoCenter™ permite el control de servomotores RC estándar desde cualquier dispo
sitivo que contenga una interfase USB o RS-232. ServoCenter™provee interfases USB
y serial para facilitar el control de la posición y velocidad de hasta 16 servomotores RC
de manera simultánea e independiente. Este esquema de control independiente permite
por ejemplo que un servomotor se mueva a una posición específica lentamente; mientras
que otro se desplace a otra posición -completamente diferente- a una mayor velocidad;
y hasta un tercer o cuarto servomotor que se desempeñe con sus propios valores de
32
posición y velocidad distintos de los anteriores.
ServoCenter™cuenta con comandos de control absolutos y relativos; lo que per
mite establecer modos de posicionamiento «crudos» o escalados. Puede ser programa
do utilizando comandos directamente a través de la interfase serial; o bien, mediante
lenguajes de programación de alto nivel que consuman las interfases ActiveX y DLL
provistas con la solución (algunos de esos lenguajes pueden ser: Visual Basic y Visual
C++) 8 . *
2.6. Resumen
En resumen, el presente trabajo se basa en:
• La teoría de affordances desarrollada por Gibson.
• La utilización de perceptos bajo el modelo de extracción de características (y se
renuncia a cualquier modelación de objetos del medio ambiente).
• El flujo óptico como técnica de visión.
• El algoritmo de Shi y Tomasi para determinar las «buenas características para
rastrear» en una imagen.
• La estrategia de flujo óptico disperso decantada en el algoritmo flujo óptico pira
midal de Lukas-Kanade (con imágenes en escala de grises).
Es posible habilitar otros lenguajes de programación para acceder las interfases de control de ServoCenter™. La condición es que se desarrollen métodos de acceso a la interfase serial provista en la solución (RS-232). Tal es el caso de este trabajo, en el que se desarrollaron métodos de acceso desde Python; habilitando así el desarrollo completo del prototipo en este lenguaje de programación.
33
Capítulo 3
Arquitectura y Diseño
El presente capítulo describe los aspectos de arquitectura y diseño relevantes al
presente trabajo. Aquí se describen:
• La arquitectura conceptual.
• La arquitectura lógica.
• La arquitectura física.
3.1. Arquitectura Conceptual
En la figura 3.1 se muestra la arquitectura conceptual del presente trabajo. En este
diagrama se hace un primer acercamiento (de alto nivel) a los componentes funcionales
que forman el alcance de este proyecto; así como a la interacción e integración de dichos
componentes.
A continuación se muestra una descripción de cada uno de los componentes de la
arquitectura conceptual:
1. Comando de Trayectorias: este componente es responsable de establecer la
trayectoria en el espacio aproximal que debe realizar el VA. Asimismo, es res
ponsable de interactuar con el usuario de manera directa (teclado) o indirecta
34
Figura 3.1: Arquitectura Conceptual
(archivos). El Comando de Trayectorias tiene como salida el comando (velocidad
y posición) que debe interpretar el Sistema de Control Motriz.
2. Procesador de Affordances: este componente recibe como entrada el campo
de flujo óptico y a partir del procesamiento de la información ahí codificada; esta
blece si el VA enfrenta un obstáculo o una apertura. El Procesador de Affordances
asocia al obstáculo un affordance colisión y a la apertura un affordance pasa
je. Finalmente, en función del affordance calculado, este componente da como
salida una estrategia de evasión (para evitar la colisión con el obstáculo identifi
cado); o bien, una señal de aprobación (para que el VA mantenga la trayectoria
previamente establecida).
35
3. Sistema de Control Motriz: este componente es responsable del control motriz
del VA. Recibe señales de control tanto del Comando de Trayectorias como del
Procesador de Affordances. Nótese que este componente puede recibir señales
confiictivas a través de sus entradas (i.e. cuando el Procesador de Affordances le
envia la señal para que ejecute una estrategia de evasión). En este caso, el Sistema
de Control Motriz otorga mayor prioridad al Procesador de Affordances.
4. Actuadores: estos componentes son los que ejercen las acciones del VA sobre
el Medio Ambiente. Reciben las señales de control desde el Sistemas de Control
Motriz y de acuerdo a ellas, realizan las acciones pertinentes (cambio de velocidad
y dirección, según sea el caso).
5. Medio Ambiente: no es en sí mismo un componente del proyecto; pero se enfa-
tiza su identificación en la arquitectura conceptual pues proporciona el escenario
sobre el cual se desplazará el VA. El Medio Ambiente cuenta con características
físicas propicias que favorecen una correcta tracción del VA; así como una ade
cuada luminosidad para la identificación de los obstáculos mediante una cámara
común de visión (esto es, que carece de visión nocturna)
6. Procesador de Flujo Óptico: este componente procesa las imágenes que recibe
del Medio Ambiente (dichas imágenes son captadas mediante una cámara común
de visión). El procesamiento de las imágenes tiene como objetivo calcular el campo
de flujo óptico que posteriormente envía al Procesador de Affordances.
A partir de la arquitectura conceptual se puede inferir que el VA ejecutará una
trayectoria en el espacio proximal; cuando se enfrente a un obstáculo ejecutará una
acción evasiva, actualizará su estado proprioceptivo y ejecutará una acción correctiva.
1 E n el decir de Gibson, este medio ambiente ofrece affordances para la locomoción y la visión del
VA [11].
36
Nótese también que los componentes Comando de Trayectorias y Procesador de
Affordances son dos procesos paralelos que concurrentemente se comunicarán con el
Sistema de Control. Cabe mencionar que esta estrategia de procesamiento concurrente
corresponde a una arquitectura computacional robótica denominada híbrida (llamada
de esta manera por combinar aspectos del control reactivo y control deliberativo)[25].
El procesamiento de affordances se enmarca en esta arquitectura computacional. A
diferencia de la arquitectura mostrada en [25], en este trabajo no se realiza ninguna
modelación del medio ambiente y el VA opera solamente en el espacio proximal.
3.2. Arquitectura Lógica
En la arquitectura lógica hacemos un análisis más cercano a cada uno de los com
ponentes funcionales identificados en la arquitectura conceptual. Esta arquitectura ha
sido dividida en varios diagramas para una mejor descripción y análisis de los módulos
que forman a los distintos componentes identificados previamente.
Cada diagrama de arquitectura lógica hace un mayor acercamiento a los elemen
tos de la solución. Este acercamiento permite el análisis de las interacciones entre los
distintos módulos (relaciones intra-componente); y de las integraciones con otros com
ponentes funcionales (relaciones extra-componente). En estos diagramas el componente
funcional objeto del análisis está indicado por un recuadro en línea punteada; y los
módulos que lo integran se resaltan mediante recuadros de línea gruesa.
En las siguientes secciones se muestra la arquitectura lógica de los componentes
funcionales:
• Procesador de Flujo Óptico.
• Procesador de Affordances.
• Comando de Trayectorias.
37
Sistema de Control Motriz
• Actuadores
3.2.1. Procesador de Flujo Óptico
En la figura 3.2 se muestra la arquitectura lógica del Procesador de Flujo Óptico.
En este diagrama se hace un mayor acercamiento a los módulos que lo componen.
Figura 3.2: Arquitectura Lógica del Procesador de Flujo Óptico
A continuación se describen los módulos de la arquitectura lógica de este compo
nente:
• Módulo de Adquisición de Imágenes: como su nombre lo indica, mediante
la cámara de visión este módulo recibe las imágenes del medio ambiente y como
38
resultado de su proceso genera una imagen digitalizada de un solo canal (i.e. en
escala de grises) a 8 bits.
• Extractor de Buenas Características: este módulo recibe como entrada la
imagen digitalizada que entrega el Módulo de Adquisición de Imágenes (tiene
como requerimiento que sea una imagen en un solo canal, de 8 ó 32 bits); y la
procesa mediante el algoritmo de Shi y Tomasi para obtener un arreglo de esqui
nas. Este arreglo constituye precisamente las buenas características para rastrear
que el módulo entrega a su salida. Este módulo tiene los siguientes requerimientos
técnicos:
• Se debe especificar el número máximo de esquinas que el módulo pueda
procesar (este valor es sustituido por el número de esquinas que el módulo
realmente encontró).
• Se debe definir un nivel de calidad. Este nivel de calidad indica el valor
mínimo aceptable de un eigenvalue de un punto para ser considerado como
esquina.
• Se debe incluir una distancia mínima para garantizar que dos o más esquinas
no se conglomeren en una región de la imagen especificada por el parámetro
distancia mínima.
• Módulo para el Cálculo de Flujo Óptico: este módulo tiene como principales
entradas a dos imágenes secuenciales (provistas directamente por el Módulo de
Adquisición de Imágenes) y las buenas características para rastrear. Su función
básica consiste en buscar las buenas características para rastrear en la segunda
imagen y calcular el desplazamiento de dichos puntos dentro de la imagen. El
resultado de este cálculo lo entrega a su salida como el campo de flujo óptico.
Este módulo tiene los siguientes requerimientos técnicos:
39
• Las imágenes secuenciales deben ser de un solo canal a 8 bits.
• Se deben reservar dos buffers de memoria correspondientes a las dos imáge
nes que recibe como entrada.
• Se debe especificar un criterio de terminación; ya sea especificando un núme
ro máximo de iteraciones; o bien, cuando el algoritmo alcanza una métrica
de convergencia menor a un valor especificado.
Este módulo implementa el algoritmo Lucas - Kanade Piramidal.
3.2.2. Procesador de Affordances
En la figura 3.3 se muestra la arquitectura lógica del Procesador de Affordances.
En este diagrama se hace un mayor acercamiento a los módulos que lo componen.
Figura 3.3: Arquitectura Lógica del Procesador de Affordances
A continuación se describen los módulos de la arquitectura lógica de este compo
nente:
• Discriminador de Patrones: este módulo recibe como entrada el campo de
40
flujo óptico y entrega a su salida el affordance correspondiente al patrón de en
trada codificado en el flujo óptico. Este módulo discrimina dos casos de interés:
si el vehículo autónomo (VA) enfrenta un obstáculo; entonces entrega a su salida
un affordance colisión; y si el VA enfrenta una apertura, entonces entrega un
affordance pasaje. Para la asociación de affordances se utiliza el siguiente cri
terio: encontrar un número mínimo de vectores de flujo óptico que excedan una
magnitud umbral. Si se satisface este criterio, se asocia un affordance colisión;
de lo contrario, se asocia un affordance pasaje. Nótese que son dos los paráme
tros a cuantificar: magnitud umbral y total de vectores que exceden este umbral.
Los valores asignados a ambas variables son: 40 pixeles (magnitud umbral) y 10
(vectores que exceden la magnitud umbral).
• Selector de Acciones Reactivas: este módulo recibe como entrada un affor
dance que indica si es seguro mantener al VA en estado de locomoción de acuerdo
a la trayectoria previamente establecida. En cualquier caso entrega a su salida la
acción reactiva que debe seguir el VA: si recibe un affordance pasaje; enton
ces entrega una señal de aprobación a su salida (indicando que es seguro que el
VA mantenga la trayectoria previamente establecida; y si recibe un affordance
colisión, entonces entrega una estrategia de evasión a su salida.
3.2.3. Comando de Trayectorias
En la figura 3.4 se muestra la arquitectura lógica del Comando de Trayectorias.
En este diagrama se hace un mayor acercamiento a los módulos que lo componen.
A continuación se describen los módulos de la arquitectura lógica de este compo
nente:
Monitor de Trayectoria: este módulo monitorea las variables proprioceptivas
del VA y la reporta a su salida.
41
Figura 3.4: Arquitectura Lógica del Comando de Trayectorias
• Módulo Ajustador de Trayectoria: este módulo toma lectura de la trayecto
ria en el espacio proximal que establece el usuario y hace una comparación con
el estado actual que recibe del Monitor de Trayectoria. Envía un comando de
ajuste al Sistema de Control Motriz de acuerdo a la diferencia encontrada entre
la trayectoria previamente establecida y el estado actual reportado por el Monitor
de Trayectoria.
3.2.4. Sistema de Control Motriz
En la figura 3.5 se muestra la arquitectura lógica del Sistema de Control Motriz.
En este diagrama se hace un mayor acercamiento a los módulos que lo componen.
A continuación se describen los módulos de la arquitectura lógica de este compo
nente:
• Módulo Discriminador de Comandos: este módulo recibe dos entradas que
potencialmente entran en conflicto: por un lado recibe del Comando de Trayecto
rias un comando que en la práctica implica un cambio en la velocidad o dirección
42
Figura-3.5: Arquitectura Lógica del Sistema de Control Motriz
del VA; y por otro, recibe del Procesador de Affordances una acción reactiva que
potencialmente implica un cambio en la velocidad y dirección del VA. Para resol
ver este conflicto, este módulo le da mayor prioridad a la entrada que recibe del
Procesador de Affordances. Una vez resuelto este conflicto, entrega a su salida un
comando filtrado.
Interfase de Control Motriz: este módulo recibe como entrada un comando
que indica un cambio en la velocidad y/o dirección del VA; y lo traduce en una
señal de control (eléctrica) que entrega a su salida a los actuadores.
43
3.2.5. Actuadores
En la figura 3.6 se muestra la arquitectura lógica de los Actuadores. En este
diagrama se hace un mayor acercamiento a los módulos que lo componen.
Figura 3.6: Arquitectura Lógica de los Actuadores
A continuación se describen los módulos de la arquitectura lógica de este compo
nente:
• Servomotor - velocidad: este componente recibe como entrada una señal de
control (eléctrica) que le indica un cambio en la velocidad del VA. Entrega como
salida (al medio ambiente) un cambio de velocidad proprioceptiva (física).
• Servomotor - dirección: este componente recibe como entrada una señal de
control (eléctrica) que le indica un cambio en la dirección del VA. Entrega como
salida (al medio ambiente) un cambio de dirección proprioceptiva (física).
44
3.3. Arquitectura Física
En la arquitectura física se mapea la distribución de los componentes funcionales
y sus módulos (software) al equipo de cómputo y equipo periférico (hardware) aprovi
sionado para el desarrollo del presente trabajo. Véase el cuadro 3.1.
Cuadro 3.1: Elementos de la Arquitectura Física
Desde el punto de vista de arquitectura física, identificamos los siguientes elemen
tos:
• Sistema Mínimo: es un equipo de cómputo móvil que se monta físicamente en
el VA. Cuenta con las siguientes características:
• Bajo nivel de consumo de energía
• Peso liviano
• Limitada capacidad de cómputo
• Comunicación inalámbrica (Wi-Fi).
• interfases USB y Serial.
• Interfase de Control Motriz: es un hardware especializado para el control de
servomotores RC estándar. También cuenta con una interfase USB y se conecta
con el Sistema Mínimo a través de ella. Este elemento físico corresponde al módulo
del mismo nombre identificado en la arquitectura lógica.
45
Figura 3.7: Arquitectura Física
• Actuadores: son dos servomotores RC que entregan la velocidad y dirección del
VA. Este elemento físico corresponde al componente funcional del mismo nombre
identificado en la arquitectura conceptual.
• Sensor de aceleración: como su nombre lo indica, es un hardware especia
lizado para proveer la aceleración proprioceptiva del VA. Cuenta con conexión
inalámbrica (Wi-Fi) y a través de esta conexión entrega las lecturas de acelera
ción al Sistema de Procesamiento Central.
• Sistema de Procesamiento Central: es un equipo de cómputo estándar que
se mantiene estático; es decir, no se monta en el VA. Cuenta con las siguientes
características.
• Nivel medio de consumo de energía.
• Peso considerable.
46
• Alta capacidad de cómputo
• Comunicación inalámbrica (Wi-Fi).
Las características de peso y consumo de energía de este elemento hacen que no
sea apto para montarse en el VA.
En la figura 3.7 se muestra la interacción entre los distintos elementos físicos.
47
Capítulo 4
Implement ación
En este capítulo se mostrarán los componentes desarrollados y su ubicación en
los elementos identificados en la arquitectura física. Concretamente, se desarrollaron
librerías y rutinas de software para los elementos: Sistema de Procesamiento Central,
Sistema Mínimo y Sensor de Aceleración 1 .
Cabe mencionar que además de los componentes desarrollados durante el presente
trabajo; se reutilizaron e integraron otros componentes de software ya existentes; al
gunos de ellos provistos por los proveedores del hardware utilizado para este proyecto;
y otros, desarrollados previamente por miembros de la comunidad del ITESM. En la
mención de cada componente se acotará si se trata de un elemento desarrollado durante
este proyecto o si es un componente reutilizado. Cabe mencionar que los componentes
de software desarrollados durante el presente trabajo se programaron en Python. Esto
por tres razones:
1. Python es un lenguaje de programación flexible y potente que facilita el desarrollo
rápido de prototipos.
2. Python cuenta con diversas librerías y utilerías de propósito general que permiten
acortar el ciclo de desarrollo de software. 1E1 sensor de aceleración es en rigor un sistema de procesamiento completo y flexible que incluye
muchas otras funciones. Esta flexibilidad permitió el desarrollo de un componente requerido para su integración en este proyecto.
48
3. La reutilización de librerías para la comunicación con ServoCenter™ y el ace-
lerómetro 2 .
(a) (b )
Figura 4.1: Despliegue físico del Vehículo Autónomo.
La figura 4.1 muestra el desarrollo y despliegue de los componentes físicos del VA.
En ella se distinguen los siguientes elementos físicos: cámara de visión, sistema mínimo,
acelerómetro, el hardware ServoCenter™y el vehículo automotriz propriamente.
Cuadro 4.1: Sistema operativo y hardware del Sistema de Procesamiento Central
2 A u n q u e el acelerómetro original ( M T I de Xsens) no fue utilizado; el nuevo acelerómetro (Neo-O p e n m o k o ) ofrece una interfase amigable en Python desde la cual expone la información relevante de la aceleración [28].
49
4.1. Sistema de Procesamiento Central - desarrollo
En este elemento se concentra la mayor parte de las librerías y desarrollo del
software programados para este trabajo. El cuadro 4.1 concentra los aspectos relevantes
de sistema operativo y hardware; y en el cuadro 4.2 se muestran los componentes
particulares desarrollados así como los componentes de software reutilizados para este
proyecto.
Cuadro 4.2: Componentes de software relevantes para este proyecto y hospedados en el Sistema de Procesamiento Central.
50
4.2. Sistema Mínimo - desarrollo
Este elemento físicamente se monta en el VA y concentra las librerías y desarrollo
del software encargados de capturar las imágenes y controlar los actuadores (servo
motores de velocidad y dirección). El cuadro 4.3 concentra los aspectos relevantes de
sistema operativo y hardware. Nótese la modesta capacidad de cómputo3 que entre
ga este elemento. Esta condición forzó la opción de una arquitectura distribuida de
software.
En el cuadro 4.4 se muestran los componentes particulares desarrollados así como
los componentes de software reutilizados para este proyecto y que se hospedan en el Sis
tema Mínimo. Cabe mencionar que en este cuadro se menciona la modalidad asincrona
del módulo imageServer.py. Esta modalidad asincrona permitió la optimización de los
recursos escasos del Sistema Mínimo, pues este módulo solo utiliza dichos recursos bajo
demanda. Sin embargo, en algunas ocasiones de saturación en el ancho de banda de la
red inalámbrica, esto ocasionó que existiera un intervalo de tiempo entre dos imágenes
consecutivas mayor a un segundo (una latencia muy alta para una reacción oportuna);
lo cual derivó en un pobre desempeño del VA bajo estas condiciones (véase el apartado
5.3.1).
El cuadro 4.4 muestra también el componente commandListener.py que de igual
forma opera bajo una modalidad asincrona. Esta modalidad habilita también la opti
mización de recursos escasos del Sistema Mínimo. Sin embargo, esto nuevamente oca
sionó que en situaciones de saturación de ancho de banda, el VA no recibiera opor
tunamente comandos de acción evasiva cuando el VA enfrentaba obstáculos; dando
como resultado un pobre desempeño bajo estas condiciones (véase también el apartado
5.3.1).
3 E n las pruebas preeliminares, al Sistema Mínimo le tomó 650 milisegundos en promedio el proce
samiento del flujo óptico; mientras que al Sistema de Procesamiento Central le toma 180 milisegundos
en promedio.
51
Cuadro 4.3: Sistema operativo y hardware del Sistema Mínimo
Cuadro 4.4: Componentes de software relevantes para este proyecto y hospedados en el Sistema Mínimo.
52
4.3. Sensor de Aceleración - desarrollo
Este elemento físicamente también se monta en el VA y sus funciones en relación
con este proyecto son: tomar la lectura del sensor de aceleración y (2) entregarla al Siste
ma de Procesamiento Central. El módulo funciona bajo una modalidad cliente-servidor
asincrona; es decir, solo captura y entrega las lecturas del sensor de aceleración bajo
petición explícita del Sistema Central de Procesamiento. El módulo desarrollado para
este propósito se llama accelServer.py. Este elemento es un sistema de procesamiento
completo; razón por la cual se dedicó este apartado para su descripción. El cuadro 4.5
concentra los aspectos relevantes del sistema operativo y hardware.
Cuadro 4.5: Sistema operativo y hardware del Sensor de Aceleración
53
Capítulo 5
Resultados
En este capítulo se entregan los resultados obtenidos. Aquí se describen:
• El diseño de los experimentos.
• Resultados de los experimentos realizados.
• Problemas presentados.
• Otros resultados relevantes.
5.1. Diseño de experimentos
Las condiciones que el medio ambiente debe cumplir para la realización de los
experimentos son:
1. No incluir objetos móviles en el campo de visión del VA.
2. Los obstáculos frente a él deben ofrecer superficies rugosas (no lisas).
3. Carecer de túneles que tengan un diámetro menor a 0.6 metros.
4. Ofrecer un nivel de iluminación al VA en el rango de 80 a 400 lux [26].
54
El cumplimiento de la primera condición evita que el VA potencialmente asocie
un affordance colisión a un objeto móvil que no obstaculiza su locomoción. Lo anterior
arrojaría como resultado un falso positivo.
La segunda condición da cuenta de que el algoritmo de Shi-Tomasi extrae de la
imagen las esquinas que después reporta como buenas características para rastrear.
Ya se comentó anteriormente que las superficies lisas no cumplen con las condiciones
requeridas para alojar esquinas. Esto daría como resultado un falso negativo.
La tercera condición se requiere porque las esquinas pueden ser identificadas pre
cisamente en el borde del túnel. Lo anterior puede ocasionar que el VA asocie un
affordance colisión a dicho borde, cuando en rigor no enfrenta obstáculo alguno que
bloquee su locomoción. Esto nuevamente daría como resultado un falso positivo.
Por último, la cuarta condición es necesaria porque el VA debe desempeñarse en un
ambién óptimo de iluminación: una iluminación escasa (menor a 50 lux) impide que el
VA pueda identificar las esquinas de manera efectiva; y una iluminación excesiva (mayor
a 400 lux) también tiene un efecto de «ceguera» sobre el VA y de igual forma dificulta
la identificación de las esquinas. Los resultados serían imprevisibles en la ausencia de
esta cuarta condición.
Cuadro 5.1: Resultados obtenidos del VA ante experimentos realizados. En total se consideraron 51 experimentos en los que el VA enfrentó un obstáculo y 17 experimentos en los que el VA enfrentó una apertura.
55
5.2. Categorización de los Resultados
En esta sección se categorizan los resultados obtenidos después de realizar diversos
experimentos. En general, podemos hablar de cuatro grandes escenarios que esquema
tizan los resultados de estos experimentos:
1. Affordance colisión correctamente asociado.
2. Affordance pasaje correctamente asociado.
3. Falso positivo: Affordance colisión sin obstáculo próximo.
4. Falso negativo: Affordance pasaje con obstáculo próximo.
En el cuadro 5.1 se muestra la frecuencia con la que se presentaron cada uno de
los escenarios arriba mencionados. Aquí se puede anticipar el desempeño efectivo del
VA.
En los siguientes apartados se entregan imágenes y gráficas relevantes al desem
peño del VA bajo cada uno de estos escenarios.
5.2.1. Affordance colisión correctamente asociado
En la ejecución de estas pruebas el VA identificó oportunamente el obstáculo
frente a él y asoció de manera correcta el affordance colisión. En las figuras 5.1 y 5.2
se muestra el desempeño del VA en un experimento perteneciente a esta categoría. La
figura 5.3 muestra un histograma de la magnitud del flujo óptico calculado al momento
de identificar el obstáculo.
A partir de la información recopilada en los experimentos, se observó que el VA
detecta obstáculos en un rango de distancias de 10 a 80 centímetros; siempre que no
viaje a una velocidad mayor a 4.8 m/s.
Las figuras 5.4, 5.5; y 5.6 muestran también el desempeño del VA en otro experi
mento de esta categoría.
56
(a) Flujo óp t ico (colisión) ( b ) Imagen posterior
Figura 5.1: Affordance colisión correctamente asociado - primera muestra. Aquí el VA extrajo oportunamente las esquinas del obstáculo que enfrentaba y asoció el affordance correspondiente evitando la colisión con el obstáculo. El tamaño de las flechas es proporcional a la magnitud de los vectores de flujo óptico calculados por el VA.
5.2.2. Affordance pasaje correctamente asociado
En la ejecución de estas pruebas el VA identificó continuamente la «apertura»
frente a él (es decir, la ausencia de un obstáculo próximo) y asoció de manera correcta
el affordance pasaje bajo estas condiciones. En las figuras 5.7 y 5.8 se muestra el desem
peño del VA en un experimento perteneciente a esta categoría. La figura 5.9 muestra
un histograma de la magnitud del flujo óptico durante un instante de su trayecto.
Las figuras 5.10, 5.11 y 5.12 muestran también el desempeño del VA en otro
experimento de esta categoría.
5.2.3. Falso positivo: Affordance colisión sin obstáculo próxi
mo
En la ejecución de estas pruebas el VA identificó la existencia de un obstáculo
próximo cuando no lo había; y por lo tanto, asoció erróneamente un affordance colisión
57
(a) (b)
Figura 5.2: Aceleración propioceptiva del VA (affordance colisión correctamente asociado) - primera muestra. Nótese la alta vibración a la que esta expuesta el VA y la pérdida de comunicación hacia el final del experimento por más de un segundo. A pesar de estas condiciones el VA se desempeñó satisfactoriamente.
bajo estas condiciones. En la sección 5.3 se señalan algunas causas que originaron estos
incidentes.
En las figuras 5.13 y 5.14 se muestra el desempeño del VA en un experimento
perteneciente a esta categoría. La figura 5.15 muestra un histograma de la magnitud
del flujo óptico calculado en el momento de identificar el falso obstáculo.
5.2.4. Falso negativo: Affordance pasaje con obstáculo próxi-
En la ejecución de estas pruebas el VA no identificó correctamente la presencia
de un obstáculo próximo que impedía su movilidad de manera segura; y por lo tanto,
asoció erróneamente un affordance pasaje bajo estas condiciones y colisionó con el
obstáculo. En la sección 5.3 se señalan algunas causas que originaron estos incidentes.
En las figuras 5.16 y 5.17 se muestra el desempeño del VA en un experimento
perteneciente a esta categoría. La figura 5.18 entrega un histograma de la magnitud del
flujo óptico en un instante de la colisión con el el obstáculo.
mo
58
Histograma (flujo óptico)
0 10 20 30 40 50 60 70
magnitud (pixeles)
Figura 5.3: Histograma de flujo óptico medido (affordance colisión correctamente asociado) - primera muestra. Nótese la cantidad de vectores de flujo óptico que exceden la magnitud umbral (40) para asociar un affordance colisión.
(a) Flujo óp t i co (colisión) (b ) Imagen posterior
Figura 5.4: Affordance colisión correctamente asociado - segunda muestra. Aquí el VA extrajo oportunamente las esquinas del obstáculo que enfrentaba y asoció el affordance correspondiente evitando la colisión con el obstáculo. El tamaño de las flechas es proporcional a la magnitud de los vectores de flujo óptico calculados por el VA. En este experimento el VA frenó cuando la distancia al obstáculo era menor a la distancia de frenado que se muestra en la figura 5.1. Razón por la cual los vectores de flujo óptico son de una magnitud mayor.
59
tiempo (segundos) (a)
tiempo (segundos)
(b)
Figura 5.5: Aceleración propioceptiva del VA (Affordance colisión correctamente asociado) - segunda muestra. Nótese la alta vibración a la que esta expuesta el VA y la pérdida de comunicación por mas de un segundo después de aproxidamente tiempo = 4 segundos. A pesar de estas condiciones el VA se desempeñó satisfactoriamente.
Histograma (flujo óptico)
0 10 20 30 40 50 60 70
magnitud (pixeles)
Figura 5.6: Histograma de flujo óptico medido (affordance colisión correctamente asociado) - segunda muestra. Nótese que en este histograma la mayoría de los vectores de flujo óptico exceden la magnitud umbral (40) para asociar un affordance colisión. Esto se debe a que el VA asoció el affordance colisión cuando la distancia al obstáculo era menor a la distancia que se muestra en la figura 5.1.
60
(a) Flujo óp t ico (pasaje) ( b ) Imagen posterior
Figura 5.7: Affordance pasaje correctamente asociado - primera muestra. El tamaño de las flechas es proporcional a las magnitudes del flujo óptico calculados por el VA. Nótese que éstas son de un tamaño considerablemente menor que aquellas que se muestran en los experimentos en los que el VA asoció correctamente un affordance colisión (figuras 5.1 y 5.4).
Aceleración proprioceptiva del VA Aceleración proprioceptiva del VA
(a) (b)
Figura 5.8: Aceleración propioceptiva del VA (Affordance pasaje correctamente asociado) - primera muestra. Nótese la alta vibración a la que esta expuesto el VA y que la duración del experimento fue de 25 segundos. Durante este tiempo el VA se desempeñó satisfactoriamente.
61
Histograma (flujo óptico)
20 30 40 50
magnitud (pixeles)
Figura 5.9: Histograma de flujo óptico medido (affordance pasaje correctamente asociado) - primera muestra. Nótese que en este histograma la magnitud de los vectores de flujo óptico no exceden a 10. Los valores son muy pequeños en relación a la magnitud umbral (40) para asociar un affordance colisión.
(a) Flujo óp t ico (pasaje) (b ) Imagen posterior
Figura 5.10: Affordance pasaje correctamente asociado - segunda muestra. El tamaño de las flechas es proporcional a las magnitudes del flujo óptico calculados por el VA. Nótese que éstas son de un tamaño considerablemente menor que aquellas que se muestran en los experimentos en los que el VA asoció correctamente un affordance colisión (figuras 5.1 y 5.4).
G2
(a) (b)
Figura 5.11: Aceleración propioceptiva del VA (Affordance pasaje correctamente asociado) - segunda muestra. Nótese la alta vibración a la que esta expuesta el VA y la pérdida de comunicación en dos intervalos del experimento. La primera pérdida sucedió aproximadamente en tiempo = 1,4 segundos y la segunda sucedió aproximadamente en tiempo = 3,4 segundos. A pesar de estas condiciones el VA se desempeñó satisfactoriamente.
Histograma (flujo óptico)
30 40
magnitud (pixeles)
Figura 5.12: Histograma de flujo óptico medido (affordance pasaje correctamente asociado) - segunda muestra. Nótese que en este histograma la magnitud de los vectores de flujo óptico es muy cercana a cero. Estos valores son muy pequeños en relación a la magnitud umbral (40) para asociar un affordance colisión.
63
(a) Flujo óp t ico (falsa colisión) (b ) Imagen posterior
Figura 5.13: Affordance colisión erróneamente asociado. El tamaño de las flechas es proporcional a las magnitudes del flujo óptico calculados por el VA. Aquí se observa que el cálculo de flujo óptico de las esquinas identificadas en el extremo derecho de la primera imagen (que corresponden a un árbol) es excesivo con respecto al movimiento aparente de la imagen. Esta cálculo erróneo provoca que el VA asocie un affordance colisión cuando no enfrente obstáculo alguno.
tiempo (segundos) (a)
tiempo (segundos)
(b )
Figura 5.14: Aceleración propioceptiva del VA (Affordance colisión erróneamente asociado) . Nótese que la comunicación se perdió por más de cuatro segundos. Esta condición fue decisiva en el desempeño negativo del VA.
64
Histograma (flujo óptico)
magnitud (pixeles)
Figura 5.15: Histograma de flujo óptico medido (Affordance colisión erróneamente asociado). Nótese que en este histograma la magnitud de la mayoría de los vectores de flujo óptico está muy por encima de la magnitud umbral (40) para asociar un affordance colisión. Esta lectura ocasionó que el VA detuviera su marcha.
(a ) Flujo ópt ico (falsa colisión) (b) Imagen posterior
Figura 5.16: Affordance pasaje erróneamente asociado. Dado que permanece inmóvil, el VA asocia un affordance pasaje cuando de hecho ya ha colisionado con el obstáculo (segunda imagen). El mínimo tamaño de las flechas en la imagen de la derecha indican que el VA no registra movimiento aparente.
65
tiempo (segundos) (a)
tiempo (segundos) (b )
Figura 5.17: Aceleración propioceptiva del VA (Affordance pasaje erróneamente asociado). Nótese la alta vibración a la que esta expuesta el VA durante la locomoción y la pérdida de comunicación por más de un segundo en tiempo = 5,5 segundos. La baja vibración que se observa después de tiempo = 7,1 segundos corresponde al vehículo en un estado de no locomoción. El VA colisionó con el obstáculo.
70
Figura 5.18: Histograma de flujo óptico medido (Affordance pasaje erróneamente asociado). Nótese que en este histograma la magnitud de los vectores de flujo óptico es prácticamente cero. El VA estaba inmóvil (colisionado) cuando se tomó esta muestra.
66
5.3. Problemas presentados
Durante la ejecución de las pruebas se presentaron principalmente dos clases de
problemas:
• La lentitud ocasional en la comunicación inalámbrica.
• La asociación incorrecta de puntos en la escena de un frame a otro ocasionado
por la baja resolución de la cámara (320x240).
La lentitud inalámbrica incidió en el 85 % de los experimentos que arrojaron un
desempeño negativo del VA. La asociación incorrecta de puntos en la escena incidió en
apenas un 15% de dichos experimentos (véase el cuadro 5.1. En total se dieron 13
experimentos que arrojaron un desempeño adverso del VA).
Una tercera situación adversa -aunque de menor relevancia en los incidentes- es
la vibración propia que presenta el vehículo en locomoción. Sin embargo, esta última
situación se compensó con una calibración en los criterios para asociar un affordance
colisión (básicamente se establecieron valores de umbral en la magnitud de los vectores
del flujo óptico que demostraron ser más inmunes a esta condición).
5.3.1. Lentitud en la comunicación y su impacto en falsos po
sitivos y falsos negativos
El problema de la lentitud en la comunicación inalámbrica dio origen a dos situa
ciones:
1. Retraso de 1 (uno) o más segundos en la recepción de imágenes (envío de imágenes
desde el Sistema Mínimo hacia el Sistema de Procesamiento Central). En la figura
5.19 se muestra esta condición (nótese el desplazamiento del VA entre una imagen
y otra).
67
Figura 5.19: Lentitud en la comunicación inalámbrica. Obsérvese que el tamaño de la persona en la imagen derecha es significativamente mayor que el de la imagen izquierda. Dado que éstas son imágenes consecutivas tomadas por el VA, esto nos muestra que el lapso de tiempo entre una imagen y otra es también significativamente mayor al requerido para una operación efectiva del VA (un segundo como máximo). Bajo estas condiciones el VA tiene un desempeño negativo.
2. Retraso de 1 (uno) o más segundos en la recepción de comandos (Envío de co
mandos desde el Sistema de Procesamiento Central hacia el Sistema Mínimo).
Esta condición en la comunicación inalámbrica fue la que originó el mayor número
de incidentes (85%) tanto en los falsos negativos (El VA colisiona con un obstáculo)
como en los falsos positivos (el VA detiene su marcha cuando no enfrenta obstáculo
alguno).
La incidencia de falsos negativos se origina en las siguientes situaciones:
• Si el VA identifica correctamente la presencia de un obstáculo próximo, pero aso
cia tardíamente un affordance colisión a estas condiciones. En este caso el Sistema
de Procesamiento Central recibe la imagen y la procesa; pero para entonces el
VA ya ha colisionado con el obstáculo, y tardíamente se realiza la acción evasiva
(precisamente la ejecución de la acción evasiva y la revisión post-mortem del video
es lo que nos permite afirmar que el VA sí identificó el obstáculo).
68
• Si el VA identifica correctamente la presencia de un obstáculo próximo; asocia
oportunamente un affordance colisión; pero recibe tardíamente el comando para
ejecutar la acción evasiva. También en este caso el VA ya ha colisionado con el
obstáculo antes de realizar la acción evasiva.
(a) (b )
Figura 5.20: Lentitud en la comunicación inalámbrica y su impacto en los falsos negativos. Obsérvese que en la figura de la derecha apenas si se" distingue uno de los dedos (extremo derecho de la imagen) que corresponde a la mano completa que se muestra en la primera imagen. Esto nos muestra que el lapso de tiempo entre una imagen y otra es significativamente mayor al requerido para una operación efectiva del VA (un segundo como máximo). Cuando el VA asocia el affordance colisión al obstáculo, ya es demasiado tarde. Para entonces el VA ya ha colisionado.
En las figura 5.20 se muestra el efecto de esta condición en el desempeño del VA.
Nótese que en la secuencia de imágenes si se asocia un affordance colisión, solo que
para entonces el VA ya colisionó con el obstáculo.
La incidencia de falsos positivos se origina cuando el Sistema de Procesamiento
Central recibe dos imágenes consecutivas con una ventana de tiempo entre ellas mayor
o igual a 1 (un) segundo para el cálculo de flujo óptico. En este caso, el movimiento
aparente de las esquinas (también llamadas «buenas característcas para rastrear») en
la imagen da lugar al cálculo de magnitudes de flujo óptico mayores al umbral definido
69
para asociar affordances colisión al evento presentado. En la figura 5.21 se entrega una
muestra de esta clase de incidentes.
Figura 5.21: Lentitud en la comunicación inalámbrica y su impacto en los falsos positivos. Obsérvese que el tamaño del objeto al centro de la imagen derecha es significativamente mayor con respecto al de la imagen izquierda (se trata del mismo objeto). En ambos casos están situados a una distancia que no compromete la locomoción del VA. Sin embargo, el lapso de tiempo transcurrido entre una imagen y otra provoca que el VA calcule magnitudes de flujo óptico que exceden el umbral definido para asociar affordances. Esto ocasiona que el VA detenga su marcha cuando no enfrenta un obstáculo próximo.
En resumen, la lentitud en la comunicación inalámbrica incide en los dos escenarios
no favorables: los falsos positivos y los falsos negativos.
5.3.2. Confusión de puntos de la escena
Esta situación se presentó con menor frecuencia (15%) durante la ejecución de los
experimentos. La figura 5.22 muestran el problema presentado. Nótese que entre una
imagen y otra el desplazamiento de los puntos dentro de la imagen es significativamente
menor a la magnitud de los vectores del flujo óptico asociados a dichos puntos. No
solo eso, la dirección de estos vectores no es coherente con el foco de expansión de
la escena. Esto se debe a que la baja resolución de la cámara ocasiona que en raras
(a) (b)
70
ocasiones el algoritmo LK calcule el campo de flujo óptico con puntos ajenos (en la
imagen posterior) a los identificados en la imagen original. Si estos puntos ajenos están
localizados a una distancia considerable de los puntos originales; el algoritmo calcula
vectores de flujo óptico de grandes magnitudes que no corresponde al desplazamiento
«real» de los puntos dentro de la escena. El resultado: asociación de affordances colisión
cuando el VA no tiene un obstáculo próximo. Esta condición es también una causa de
los falsos positivos.
Figura 5.22: Confusión de puntos en la escena. Nótese que en ambas imágenes existen vectores de flujo óptico cuya dirección no es coherente ni con el foco de expansión que ellas exhiben; ni con la magnitud de los demás vectores. En estos casos el VA calcula el flujo óptico con puntos ajenos (en la imagen posterior) a los identificados en la imagen original.
5 .4 . O t r o s resu l t ados
Recuérdese que para la asociación del affordance colisión a un obstáculo se uti
lizó el siguiente criterio: encontrar un número mínimo de vectores de flujo óptico que
exceden una cierta magnitud umbral. Se probó también otro criterio basado en el FOE
(focus of expansión por sus siglas en inglés), tomando como premisa que el centro del
71
FOE coincide aproximadamente con el centro de la imagen. Los resultados preelimina-
res utilizando este último criterio fueron más desfavorables que el criterio original: si
bien el criterio de la aproximación al FOE no arrojó falsos positivos; sí entregó falsos
negativos en el 80 % de los casos preliminares probados.
(a) (b)
Figura 5.23: Efecto de la iluminación natural en el desempeño del VA. En ambas imágenes se observa que la mayoría de las esquinas identificadas por el VA corresponden al obstáculo frente a él. Esto es positivo para el desempeño del VA, pues permite que su «atención» se concentre en dicho obstáculo.
Por otra parte, la iluminación natural en algunos de los escenarios probados al
aire libre tuvo un impacto positivo en los resultados. Esta iluminación natural «oculta»
detalles de la escena y permite al VA «concentrar su atención» en los obstáculos que
se colocan frente a él. Nótese que en la figura 5.23 la mayor cantidad de esquinas
identificadas por el VA están concentradas en el obstáculo frente a él.
72
Capítulo 6
Conclusiones
Dados los resultados obtenidos en los experimentos realizados, concluyo que una
estrategia basada en affordances y flujo óptico es efectiva para la evitación de colisiones
en un vehículo autónomo que opera en el espacio proximal. Los incidentes adversos que
encontré durante la ejecución de los experimentos (falsos positivos y falsos negativos)
tuvieron su causa raíz en la lentitud ocasional de la comunicación inalámbrica y en la
baja resolución de imagen configurada en la cámara de visión. Precisamente la primera
problemática condicionó a la segunda: tuve que utilizar una resolución baja de imagen
(320x240) que no consumiera una cantidad considerable del ancho de banda de la red
inalámbrica y permitiera una transmisión de las imágenes en un tiempo menor a 100
milisegundos. Dicho en otras palabras, los incidentes con los que me enfrenté fueron
causados por los elementos físicos con los que trabajé y no a causa de la efectividad del
método de cálculo de flujo óptico (algoritmo piramidal de Lukas-Kanade) y del proce
samiento de affordances (ambos aspectos centrales de esta tesis) que adapté, diseñé y
desarrollé para este trabajo.
Considero que el análisis cualitativo y cuantitativo del desempeño del VA en la
evitación de colisiones demuestra la robustez y efectividad de la estrategia que diseñé y
desarrollé. Lo anterior lo afirmo tomando en cuenta lo siguiente:
• El VA evitó colisiones en el 85 % de los experimentos realizados con obstáculos.
73
• Los videos tomados por la misma cámara montada en el VA muestran gráfica
mente el foco de expansión de acuerdo a lo que se espera empíricamente.
• Los datos numéricos recolectados durante la ejecución de los experimentos y re
lacionados con el desempeño del VA son coherentes con mis observaciones de los
experimentos y el análisis post-mortem de los videos. En otras palabras, cuando
yo observé que el VA asoció correcta y oportunamente un affordance pasaje a
una ausencia de obstáculo; observé que el video tomado por la cámara del VA
mostró campos de flujo óptico de menor magnitud (flechas de corta longitud)
y observé también que los datos numéricos recolectados eran coherentes con lo
anterior: la magnitud numérica para los vectores de flujo óptico eran menores
(en magnitud y frecuencia) al umbral definido para la identificación de un affor
dance colisión. Esta misma coherencia observé cuando el VA asoció correcta y
oportunamente un affordance colisión a un obstáculo próximo.
• Los resultados que obtuve fueron consistentes en experimentos realizados al aire
libre y en áreas de trabajo cerradas.
Considero que mis aportaciones derivadas de mi trabajo en esta tesis son:
1. Una estrategia y arquitectura que no depende del modelo cinemático del VA.
2. Una arquitectura conceptual y lógica, independiente de la arquitectura física.
3. Una arquitectura computacional híbrida que opera exclusivamente en el espacio
proximal. A diferencia de la arquitectura híbrida mostrada en [25], en este trabajo
no se realiza representación alguna del entorno (el VA no percibe obstáculos-
solo registra el flujo óptico y otras variables proprioceptivas que le entregan sus
sensores).
Identifiqué los siguientes trabajos a futuro relacionados con esta tesis:
74
• Implementar la arquitectura conceptual y lógica aquí desarrollada en un arqui
tectura física «monolítica» de mayor potencia (mayor capacidad de cómputo y
mayor resolución de imagen). El objetivo general de esta iniciativa será habili
tar el procesamiento in-situ de los affordances y el flujo óptico. Los objetivos
particulares que esta iniciativa deberá considerar son:
1. Evitar la tercerización de estos procesos en una computadora que no esté físi
camente montada en el VA.
2. Minimizar la comunicación inalámbrica durante la ejecución en tiempo real
de los experimentos.
• Diseñar y desarrollar una respuesta evasiva del VA que sea dinámica y parame-
trizable.
• Integrar el monitoreo de las variables proprioceptivas al análisis de flujo óptico
para un procesamiento de affordances más preciso.
• Desarrollar una estrategia que permita al VA el aprendizaje autónomo de affor
dances pasaje y affordances colisión.
• Trasladar el diseño y desarrollo del procesamiento de affordances y flujo óptico
para la evitación de obstáculos en la locomoción de robots humanoides. Esta
iniciativa tiene un impacto inmediato en los robots NAO que se utilizan en las
competencias ROBOCUP: en ellas existe una penalización si un robot colisiona
con otro [22].
75
Bibliografía
[1] J. L. Barron and N. A. Thacker. Tutorial: Computing 2d and 3d optical flow. Tina
Memo No. 2004-012, 2004.
[2] Aníbal Ollero Baturone. Robótica. Manipuladores y robots móviles. Marcombo,
2001.
[3] S. S. Beauchemin and J. L. Barron. The computation of optical flow. ACM
Comput. Surv., 27:433-466, September 1995.
[4] M. K. Black and P. Anandan. The robust estimation of múltiple motions: Parame-
tric and piecewise-smooth flow fields. Computer Vision and Image Understanding,
17:185-203, 1981.
[5] G. Bradski and A. Kaehler. Learning OpenCV: computer visión wüh the OpenCV
library. O'Reilly Series. O'Reilly, 2008.
[6] Gary Bradski. OpenCV, 2011 (accessed April 27, 2011).
[7] Michael J. Braund. The structures of perception: An ecological perspective. Kri-
tike: An Online Journal of Philosophy, 2(2):123-144, June 2008.
[8] Centeye. Optical Flow, 2000 (accessed March 20, 2011).
[9] ePanorama.net. RC servo controlling, 1994 (accessed April 22, 2011).
76
[10] James J. Gibson. The Senses Considered as Perceptual Systems. Houghton Mifflin
Company, 1966.
[11] James J. Gibson. The Ecological Approach to Visual Perception. Laurence Elbraum
Associates, Inc., 1979.
[12] E.B. Goldstein. Sensation and perception. Wadsworth Cengage Learning, 2009.
[13] H. Harris and M. Stephens. A combined comer and edge detector. In J^th Alvey
Vision Conference, 1988.
[14] Kim B.K. Hidayat, S. and K. Ohba. Learning affordance for semantic robots using
ontology approach. In IEEE International Conference on Intelligent Robots and
Systems, 2008.
[15] B. Horn. Robot visión. MIT electrical engineering and computer science series.
MIT Press, 1986.
[16] Berthold K. P. Horn and Brian G. Schunck. Determining optical flow. ARTIFICAL
INTELLIGENCE, 63:75-104, 1996.
[17] D.N. Lee and H. Kalmus. The optic flow field: The foundation of visión [and
discussion]. 290(1038):169-179, 1980.
[18] Bruce D. Lucas and Takeo Kanade. An iterative image registration technique with
an application to stereo visión. In DARPA Imaging Understanding Workshop,
1981.
[19] G A Orban, L Lagae, A Verri, S Raiguel, D Xiao, H Maes, and V Torre. First-order
analysis of optical flow in monkey brain. Proceedings of the National Academy of
Sciences, 89(7):2595-2599, 1992.
77
[20] Raymond E. Phinney and Ralph M. Siegel. Speed selectivity for optic flow in área
7a of the behaving macaque. Cerebral Coriex, 10(4):413-421, 2000.
[21] Milena Raffi, Salvatore Squatrito, and María Grazia Maioli. Neuronal responses to
optic flow in the monkey parietal área pee. Cerebral Coriex, 12(6):639-646, 2002.
[22] Robocup. Regulations and Rules - Robocup, 2011 (accessed Jun 23, 2011).
[23] Stuart Russell and Peter Norvig. Artificial Intelligence: A Modern Approach.
Prentice-Hall, Inc., 1995.
[24] J. Shi and C. Tomasi. Good features to track. In 9th IEEE Conference on Com
puter Vision and Pattern Recognition., 1994.
[25] B. Siciliano and O. Khatib. Springer handbook of robotics. Springer, 2008.
[26] Mike Thomann. Low-Light Performance Calculator, 2011 (accessed Jul 14, 2011).
[27] Manuela Viezzer and C.H.M. Nieuwenhuis. Learning affordance concepts: some
seminal ideas. In IJCAI05 Workshop on modeling natural action selection, 2005.
[28] Openmoko wiki. Accelerometer data retrieval, 2011 (accessed Jun 21, 2011).
[29] Min Xie. Fundamentáis of robotics: linking perception to action. World Scientific,
2003.
[30] Inc. Xsens. Xsens MTi: Miniature AHRS - Attitude and Heading Sensor, 2011
(accessed May 27, 2011).
[31] Inc. Yost Engineering. ServoCenter 3.1 USB - User's Manual and Programming
Guide, 2005.
78
Apéndice A
Experimentos para la calibración de los
servomotores
En este apéndice se describirá brevemente los experimentos realizados para la
calibración de los servomotores. Esta calibración implica definir los rangos de velocidad
y dirección seguros para ser ejecutados por el VA; así como sus valores óptimos de
operación.
(a) direccion=105, velocidad=140 tiempo (segundos)
(b) direccion=110, velocidad=140
Figura A.l : Calibración de la dirección: inicio desde el valor mínimo seguro del servomotor. Nótese que el rango de rotación del VA es muy amplio en ambas imágenes (va de -200 a 200 grados) cuando se establecen estos valores en los servomotores.
Los objetivos de la calibración de los servomotores son:
1. Encontrar los parámetros que permiten que el VA despliegue una trayectoria en
79
0 1 2 3 4 5 6 7 8 0 1 2 3 4 5 6 7 8
tiempo (segundos) tiempo (segundos) (a) direccion=115, velocidad=140 (b) direccion=120, velocidad=140
Figura A.2: Calibración de la dirección: avance desde el valor mínimo seguro del servomotor. Nótese que en la gráfica de la izquierda la amplitud de la rotación sigue siendo amplia (va desde 0 a 100 grados). En la gráfica de la derecha la amplitud de la rotación va de 0 a 6 grados (muy cerca de una trayectoria lineal).
línea recta; o lo más cercano posible a una línea recta. Esto implica hacer pruebas
con distintos valores para el servomotor de la dirección del VA.
2. Encontrar los parámetros que permitan al VA mantener una velocidad mínima
constante (tómese en cuenta el peso de los componentes extra que el VA trans
porta: sistema mínimo, acelerómetro, cámara de visión, sistema de control motriz
y pilas para alimentar estos componentes).
3. Encontrar los parámetros que permitan al VA alcanzar una velocidad máxima
constante.
4. Encontrar los parámetros que permitan al VA realizar un frenado confiable hasta
llegar al reposo.
En términos generales, la calibración de los servomotores se realizó con la ayuda de
un dispositivo especializado en el rastreo de movimiento. Este dispositivo -denominado
MTi y fabricado por la compañía Xsens- contiente acelerómetros, giróscopos y mag-
netómetros que facilitan el rastreo de movimiento en 3D [30]. Los ejercicios de calibra
ción consistieron en:
80
tiempo (segundos) (a) direccion=121, velocidad=140
tiempo (segundos) (b) direccion=121, velocidad=140 (segunda muestra)
Figura A.3: Calibración de la dirección: rotaciones mínimas encontradas. La amplitud de rotación en ambas gráficas es apenas de dos grados. En términos prácticos, el VA despliega una trayectoria en línea recta.
Establecer valores específicos de prueba para ambos servomotores.
Registrar y normalizar los datos que arrojaba el dispositivo MTi (la normalización
de los datos fue necesaria debido a que el dispositivo MTi presentaba un pequeño
error en reposo).
Obtener gráficas de aceleración en los ejes X y Y (en el eje Z se desprecia pues el
movimiento del VA es en dos dimensiones solamente).
Obtener gráficas de rotación con respecto a la orientación original (en reposo) del
VA.
81
tiempo (segundos) tiempo (segundos) (a) direccion=122, velocidad=140 (b) direccion=125, velocidad=140
Figura A.4: Calibración de la dirección: aumenta la amplitud de rotación nuevamente. El rango de la rotación es significativamente mayor que cuando el valor de la dirección se estableció en 121 (ver figura A.3).
A . l . Calibración del servomotor que controla la di
rección
En las figuras A.l , A.2, A.3, A.4, A.5, A.6, A.7, A.8 y ?? se muestra la rotación que
exhibió el VA ante los distintos valores que se asignaron al servomotor de la dirección.
El rango de valores seguros en el servomotor que se encontraron después de varios
experimentos es desde 105 hasta 145. Es en este rango en el que el mecanismo de la
dirección opera normalmente sin dañarse.
Obsérvese que los valores mínimos de rotación se obtuvieron cuando el servomotor
que controla la dirección se le asignó el valor de 121. Este valor es que el que se
escogió para que el VA exhibiera trayectorias en línea recta. Véanse las figuras A.7
y A.8.
82
tiempo (segundos) (a) direccion=130, velocidad=140
tiempo (segundos) (b) díreccion=135, velocidad=140
Figura A.5: Calibración de la dirección: aproximación a los valores más altos del servomotor. Obsérvese que la amplitud en la rotación del VA aumenta nuevamente.
tiempo (segundos) tiempo (segundos) (a) direccion=140, velocidad=140 (b) direccion=145, velocidad=140
Figura A.6: Calibración de la dirección: los valores más altos del servomotor que controla la dirección. Obsérvese que la máxima amplitud de la rotación se consigue en un menor tiempo que en la figura A.5.
83
tiempo (segundos) (a) direccion=121, velocidad=140
tiempo (segundos) (b) direccion=121, velocidad=145
Figura A.7: Calibración de la dirección: trayectoria lineal - parte I. Obsérvese la mínima amplitud de rotación que exhibe el VA. En la imagen de la izquierda fue de apenas 2.5 grados y una velocidad mayor (imagen de la derecha) la amplitud de la rotación aumentó a 10 grados.
tiempo (segundos) tiempo (segundos) (a) direccion=121, velocidad=145 (b) direccion=121, velocidad=150 (primera muestra)
Figura A.8: Calibración de la dirección: trayectoria lineal - parte II. Obsérvese que la amplitud de la rotación en la gráfica de la izquierda fue de apenas 4 grados y a una velocidad aún mayor (gráfica de la derecha) fue de cinco grados. Un desempeño efectivo para exhibir una trayectoria lineal en los términos prácticos del proyecto.
84
A.2. Calibración del servomotor que controla la ve
locidad
El rango de valores seguros que se encontraron para el servomotor que controla la
velocidad después de varios experimentos es desde 140 hasta 170. Sin embargo, debido a
la capacidad de cómputo del Sistema Mínimo y el ancho de banda de la red inalámbrica,
el único valor que asignó al servomotor que controla la velocidad fue de 140 (este valor
permite que el VA se desplace a una velocidad mínima constante).
La gráfica A.9 muestran la aceleración en el eje X (dirección de movimiento del
VA). Para estas gráficas no se utilizó filtro alguno. Nótese el ruido excesivo que se ob
tiene con el muestreo del dispositivo MTi (este comportamiento se observó a cualquier
velocidad del VA). Debido a este comportamiento y al efecto negativo del motor prin
cipal del VA sobre el MTi (el magneto afecta las mediciones de orientación y rotación);
se optó por no utilizarlo para el desarrollo del proyecto. Sin embargo, este dispositivo
si fue útil en la calibración de los servomotores.
tiempo (segundos) tiempo (segundos) (a) direccion=121, velocidad=150 (b) direccion=121, velocidad=150 (segunda muestra)
Figura A.9: Calibración de la velocidad. Aceleración en el eje X (dirección de movimiento del VA) en una trayectorial lineal. Obsérvese el ruido excesivo que se exhibe en ambas gráficas. Este comportamiento se encontró en todos los experimentos de calibración.
85