“a de jesus.pdfagradecimientos en primer lugar, a mis asesores de tesis, dr. salvador eugenio...

111
BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE P UEBLA FACULTAD DE CIENCIAS DE LA ELECTRÓNICA MAESTRÍA EN I NGENIERÍA ELECTRÓNICA,OPCIÓN I NSTRUMENTACIÓN ELECTRÓNICA Tesis para obtener el grado de MAESTRO EN I NGENIERÍA ELECTRÓNICA “A LGORITMO DE VISIÓN BASADO EN APARIENCIA PARA NAVEGACIÓN AUTÓNOMA CON CAPACIDAD DE EVADIR OBSTÁCULOS " Presenta: P EDRO ALEJANDRO DE J ESÚS GONZÁLEZ * Asesores: Dr. Salvador Eugenio Ayala Raggi M.C. Ricardo Álvarez González * Becario CONACYT Puebla - México, Diciembre de 2014

Upload: others

Post on 14-Mar-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BENEMÉRITA UNIVERSIDAD AUTÓNOMA DE PUEBLA

FACULTAD DE CIENCIAS DE LA ELECTRÓNICA

MAESTRÍA EN INGENIERÍA ELECTRÓNICA, OPCIÓN INSTRUMENTACIÓN

ELECTRÓNICA

Tesis para obtener el grado deMAESTRO EN INGENIERÍA ELECTRÓNICA

“ALGORITMO DE VISIÓN BASADO EN

APARIENCIA PARA NAVEGACIÓN AUTÓNOMA

CON CAPACIDAD DE EVADIR OBSTÁCULOS"

Presenta:PEDRO ALEJANDRO DE JESÚS GONZÁLEZ∗

Asesores:Dr. Salvador Eugenio Ayala RaggiM.C. Ricardo Álvarez González

∗ Becario CONACYT Puebla - México, Diciembre de 2014

Page 2: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme
Page 3: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

Resumen

En este trabajo se diseñó y programó en Visual Basic.net y Matlab unprograma que sigue las reglas de un agente de software para que unrobot móvil marca Dr. Robot y modelo X80SV, fuera capaz de navegarautónomamente una ruta previamente entrenada. El entrenamiento dela ruta se creo con una serie de imágenes tomadas a intervalos regu-lares y la navegación autónoma se hizo comparando las imágenes delentrenamiento con las imágenes que el robot iba adquiriendo durantela navegación autónoma. Para la navegación autónoma se programarony probaron dos enfoques distintos de navegación basada en apariencia.El primer enfoque para la navegación autónoma fue usando compa-ración de plantillas con el coeficiente de correlación como medida desimilitud entre las imágenes. El segundo enfoque se hizo comparan-do los descriptores de las imágenes obtenidos con el algoritmo SpeedUp Robust Features(SURF) y filtrados de falsas correspondencias conuna variante del algoritmo Random Sample Consensus (RANSAC), eneste caso se usó la correlación cruzada normalizada como medida desimilitud. El algoritmo programado también permitió al robot evadirobstáculos que no estaban durante la fase de entrenamiento y poste-riormente terminar el seguimiento de la ruta. Para esta etapa se usó lainformación obtenida de los sensores de rango con los que cuenta elrobot y el procesamiento de imágenes para comenzar la evasión. En elinicio de la evasión se usó un método de segmentación para determinarel espacio obstruido por el obstáculo. También se hicieron pruebas enlas que se cambiaron condiciones del ambiente entre el entrenamientoy la navegación autónoma, pudiendo concluir que el uso de los des-criptores SURF permite una mejor navegación a mayores variacionesentre las imágenes del entrenamiento y las de la navegación autónoma.

Page 4: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme
Page 5: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

Agradecimientos

En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio AyalaRaggi y M.C Ricardo Álvarez González, les agradezco por habermebrindado su apoyo en este proyecto, por su paciencia, por su valiosadirección y amistad.

A mi jurado Dr. Gerardo Mino Aguilar, Dr. José Eligio Moisés Gutié-rrez Arias y Dr. José Fermi Guerrero Castellanos por la atención, lapaciencia y la valiosa guía que me ayudo a terminar este trabajo.

A la Benemérita Universidad Autónoma de Puebla que me condonó lacolegiatura durante mis estudios en la Maestría en Ingeniería Electró-nica con Opción en Instrumentación Electrónica.

A mis compañeros y amigos de la MIE, sin un orden en particular,Lupita, Areli, José Luis, Pepe, Eliseo y Tomé, porque sin el equipoque formamos, no hubiera logrado esta meta.

A mi mis padres, mis hermanas y mi sobrina que siempre han esta-do ahí para apoyarme. Esto nunca hubiera sido posible sin el amparoincondicional que me otorgan y el cariño que me brindan.

Finalmente con la certeza de no lograr expresar lo afortunado que mesiento, le agradezco a mi esposa Juanita y a mi hijo Pedrito Omacicpor todo el amor que me dan y por la felicidad que a diario inspiran enmi.

Page 6: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme
Page 7: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

Para la realización de este trabajo se contó con el apoyo de:

• Consejo Nacional de Ciencia y Tecnología, CONACYT, para realizar estudiosde Maestría, con número de Becario: 274983.

Page 8: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme
Page 9: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

Índice general

Índice de figuras xiii

1 Introducción 1

1.1 Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Organización de la Tesis . . . . . . . . . . . . . . . . . . . . . . 8

2 Trabajo Relacionado 9

2.1 Navegación Autónoma . . . . . . . . . . . . . . . . . . . . . . . 9

2.2 Navegación Basada en Visión Artificial . . . . . . . . . . . . . . 10

2.2.1 Navegación en interiores . . . . . . . . . . . . . . . . . . 10

2.3 Enfoques Usados para Navegación por Visión . . . . . . . . . . . 11

2.3.1 Visión Omnidireccional . . . . . . . . . . . . . . . . . . 12

2.3.2 Visión Estereoscópica . . . . . . . . . . . . . . . . . . . 12

2.3.3 Visión Monocular . . . . . . . . . . . . . . . . . . . . . . 13

2.4 Evasión de Obstáculos . . . . . . . . . . . . . . . . . . . . . . . 13

2.4.1 Algoritmo Bug . . . . . . . . . . . . . . . . . . . . . . . 14

2.4.2 Vector Field histogram (VFH) . . . . . . . . . . . . . . . 14

2.4.3 Otros algoritmos . . . . . . . . . . . . . . . . . . . . . . 15

2.5 Odometría . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.6 Navegación Visual basada en Apariencia . . . . . . . . . . . . . . 16

ix

Page 10: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

ÍNDICE GENERAL

3 Fundamentos 193.1 Dilatación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

3.2 Erosión . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

3.3 Coeficiente de Correlación . . . . . . . . . . . . . . . . . . . . . 22

3.3.1 Interpretación del coeficiente de correlación . . . . . . . . 23

3.3.2 Coeficiente de correlación entre dos imágenes . . . . . . . 23

3.4 Scale Invariant Feature Transform (SIFT) . . . . . . . . . . . . . 24

3.4.0.1 Detección de extremos en el espacio escala . . . 27

3.4.0.2 Localización de puntos clave estables . . . . . . 29

3.4.0.3 Asignación de la orientación . . . . . . . . . . 30

3.4.0.4 Descriptor del punto de interés . . . . . . . . . 31

3.5 Speeded Up Robust Features (SURF) . . . . . . . . . . . . . . . 32

3.6 Algoritmo Random Sample Consensus (RANSAC) . . . . . . . . 33

4 Diseño e Implementación del Algoritmo 354.1 Características Físicas del Sistema . . . . . . . . . . . . . . . . . 35

4.2 Programación de la Interfaz de Navegación . . . . . . . . . . . . 36

4.3 Diseño del Algoritmo de Navegación . . . . . . . . . . . . . . . . 40

4.3.1 Enfoque usando Comparación de Plantillas con el Coefi-

ciente de Correlación . . . . . . . . . . . . . . . . . . . . 42

4.3.2 Enfoque usando descriptores SURF y RANSAC . . . . . 42

4.4 Evasión de Obstáculos . . . . . . . . . . . . . . . . . . . . . . . 45

5 Resultados 575.1 Experimentos de Navegación y Evasión . . . . . . . . . . . . . . 59

5.1.1 Experimento 1 . . . . . . . . . . . . . . . . . . . . . . . 60

5.1.2 Experimento 2 . . . . . . . . . . . . . . . . . . . . . . . 62

5.1.3 Experimento 3 . . . . . . . . . . . . . . . . . . . . . . . 63

5.1.4 Experimento 4 . . . . . . . . . . . . . . . . . . . . . . . 66

5.1.5 Experimento 5 . . . . . . . . . . . . . . . . . . . . . . . 68

5.1.6 Experimento 6 . . . . . . . . . . . . . . . . . . . . . . . 68

5.1.7 Experimento 7 . . . . . . . . . . . . . . . . . . . . . . . 71

x

Page 11: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

ÍNDICE GENERAL

6 Conclusiones y trabajo futuro 736.1 Conclusiones de las pruebas realizadas . . . . . . . . . . . . . . . 736.2 Ponencia resultado del trabajo de investigación . . . . . . . . . . 746.3 Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

Bibliografía 79

Apéndice A 87Pseudocódigo de función razonamiento . . . . . . . . . . . . . . . . . 87Pseudocódigo de función parear_con_SURF . . . . . . . . . . . . . . 87Pseudocódigo de función evasion . . . . . . . . . . . . . . . . . . . . . 87Pseudocódigo de función calcular movimiento . . . . . . . . . . . . . . 87

Comprobante de congreso 93Comprobante de congreso . . . . . . . . . . . . . . . . . . . . . . . . . 93

xi

Page 12: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme
Page 13: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

Índice de figuras

1.1 Metodología del desarrollo del trabajo de tesis . . . . . . . . . . . 7

1.2 Bloques del sistema implementado . . . . . . . . . . . . . . . . . 7

2.1 Diagrama polar. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

2.2 Ejemplos de vehículos que ocupan odometría a) Vehículo guiado

por señal de radiofrecuencia. b)Vehículo con visión estéreo, IMU

y Sensor de rango láser. c)Vehículo con IMU y GPS. . . . . . . . 16

3.1 Proceso de dilatación en una imagen, a) imagen original, b) imagen

binaria y c) imagen dilatada. . . . . . . . . . . . . . . . . . . . . 21

3.2 Efecto de la erosión a) Imagen con puntos blancos dispersos. b)Imagen

erosionada sin puntos . . . . . . . . . . . . . . . . . . . . . . . . 21

3.3 Ejemplos de diagramas de dispersión con diferentes valores de coe-

ficiente de correlación r. . . . . . . . . . . . . . . . . . . . . . . 23

3.4 Coeficiente de correlación entre imágenes idénticas . . . . . . . . 24

3.5 Coeficiente de correlación entre imágenes similares . . . . . . . . 25

3.6 Coeficiente de correlación entre imágenes distintas . . . . . . . . 25

3.7 Las 2 imágenes mostradas corresponden a un mismo lugar, visto

desde distinta perspectiva, los puntos encontrados con el algoritmo

SIFT en una imagen son relacionados con los puntos mas similares

encontrados en la otra . . . . . . . . . . . . . . . . . . . . . . . . 26

3.8 Creación del espacio-escala Gaussiano, Imagen tomada de [1] . . 28

xiii

Page 14: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

ÍNDICE DE FIGURAS

3.9 Valores máximos y mínimos de las imágenes DoG son detectados

comparando un pixel (marcado con x) con sus 26 vecinos en las re-

giones de 3x3 que están en las escalas actual y adyacente (marcada

con círculos), Imagen tomada de [1]. . . . . . . . . . . . . . . . . 29

3.10 el descriptor de un punto de interés es creado al calcular la magni-

tud y la orientación del gradiente en cada punto al rededor del pun-

to de interés, como se ve a la izquierda. Y son ponderados por una

ventana gaussiana, indicada por el circulo. Después estas muestras

son acumuladas en un histograma de orientaciones resumiendo el

contenido de sobre las regiones de 4x4 como se ve a la derecha. Es-

ta figura un descriptor de 2x2 calculado de unas muestras de 8x8,

pero en la implementación se usan muestras de 16x16, Imagen to-

mada de [1] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

3.11 Transformación hecha a los puntos obtenidos del algoritmo SURF

para que el algoritmo RANSAC sea mejor visualizado. . . . . . . 34

4.1 Robot utilizado para la ejecución del algoritmo. . . . . . . . . . . 36

4.2 Estructura de la rutina razonamiento que se encarga de crear y ac-

tualizar las bases de datos que guardan el estado del robot y la

bitácora de instrucciones, además de que decide a que grupo de

funciones se llama en función de la información de los sensores y

del conocimiento del estado del robot. . . . . . . . . . . . . . . . 38

4.3 Estructura de la rutina principal que sirve como interfaz entre Matlab

y el robot y que se encarga también de administrar la diferencia de

tiempos de ejecución que existe entre estos . . . . . . . . . . . . 39

4.4 Se muestra la interfaz programada para controlar el robot X80SV

y la forma en que fluyen los datos durante la ejecución. . . . . . . 40

4.5 El entrenamiento se forma con la concatenación de 3 imágenes co-

rrespondientes a la vista frontal y las laterales, estas imágenes se

toman desde el inicio y cada 30 cm. durante todo el recorrido de

entrenamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

xiv

Page 15: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

ÍNDICE DE FIGURAS

4.6 Cuando la imagen que captura el robot durante la navegación autó-

noma se compara a todo lo largo de la imagen panorámica del en-

trenamiento, se calcula el coeficiente de correlación entre las imá-

genes en cada posición del desplazamiento, si la imagen fuera muy

similar desde el inicio de la comparación el vector de correlación

resultante sería como el azul y el ángulo de corrección sería de 76°,

en el caso de que valor máximo se diera en el píxel 320 el vector

sería similar al rojo y el ángulo de correción sería 0°, por último si

la maxima coincidencia se diera en el píxel 640 el vector se vería

como el verde y el ángulo de corrección sería de -76° . . . . . . . 43

4.7 Para encontrar el ángulo de corrección de orientación, primero se

define en que lado de la panorámica esta la mejor correspondencia

y después se cuentan los píxeles que separan los puntos coincidentes. 44

4.8 Una vez que el conjunto de puntos coincidentes está limpio de fal-

sas correspondencias, la componente horizontal de linea amarilla

que los une es la distancia en píxeles que después se multiplica por

una constante (4.2) para conocer los grados que se deben girar. . . 45

4.9 El rango de medición de los sensores integrados en la plataforma es

limitado a quedar dentro del recuadro verde, porque como existen

regiones ciegas no se puede confiar en las lecturas de distancias

grandes (para las pruebas los frontales se limitan a 0.45 m. y los

laterales 0.20 m.) . . . . . . . . . . . . . . . . . . . . . . . . . . 46

4.10 Imagen resultante de la resta y la binarización de un obstáculo con

rastros de entorno provocados por la desviación existente entre la

posición del robot durante el entrenamiento y la posición durante

el recorrido autónomo . . . . . . . . . . . . . . . . . . . . . . . . 47

4.11 Imagen limpia de artefactos para poder calcular el ángulo de evasión 47

4.12 Cuando es detectado el obstáculo, se realiza la segmentación con la

resta y la binarización de las imágenes, para después con ayuda de

los sensores y el ancho calculado de la imagen usando el teorema

de pitágoras para conocer al ángulo y la distancia necesarios para

hacer que el robot quede a un costado del objeto . . . . . . . . . . 48

xv

Page 16: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

ÍNDICE DE FIGURAS

4.13 El objetivo principal es determinar la dirección y la distancia ne-

cesaria para regresar a la ruta durante el proceso de evasión y para

esto se necesitan el vector resultante del entrenamiento y el vector

resultante de la evasión. . . . . . . . . . . . . . . . . . . . . . . . 51

4.14 Ejemplo de como es que se consideran solamente siete puntos pos-

teriores al punto de inicio de la evasion para regresar a la ruta cuan-

do se esta en una posición fuera de la ruta durante la evasión de

algún obstáculo. . . . . . . . . . . . . . . . . . . . . . . . . . . . 52

4.15 La ruta entrenada (verde) difiere de la ruta reconstruida (negro)

porque esta última acumula error a lo largo de toda la reconstrucción 52

4.16 Ilustración del modo en que se usan los sensores de rango para

producir un giro y permitir los avances durante el proceso de evasión 53

4.17 Diagrama de flujo de la función de evasión . . . . . . . . . . . . . 55

5.1 Debido a que la linea de horizonte se mantiene constante durante

todo el recorrido, es posible dejar de considerar la mayor parte del

suelo en la búsqueda de descriptores . . . . . . . . . . . . . . . . 59

5.2 Se hicieron 5 seguimientos de una ruta con veintinueve posiciones,

se observa que la desviación estándar de los errores es cercano a

3 cm. en promedio, la subida del error al final de las posiciones es

provocada por la curva al final del recorrido . . . . . . . . . . . . 60

5.3 Se hicieron 5 seguimientos de una ruta con veintinueve posicio-

nes, se muestra que la desviación estándar de los errores es apro-

ximadamente 5 cm. en promedio, la subida del error al final de las

posiciones es provocada por la curva al final del recorrido . . . . . 61

5.4 Ambos métodos se probaron dentro de una ruta larga, para poder

determinar si alguno acumulaba un error de posición que le impi-

diera terminar con el seguimiento de la ruta y como se ve ambos

métodos terminaron el seguimiento con manteniendo un error casi

constante . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

xvi

Page 17: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

ÍNDICE DE FIGURAS

5.5 Gráfica de errores de posición durante el seguimiento de una tra-

yectoria que inició con un error de posición inicial de 20 cm. para

ambos métodos, se puede observar que las correspondientes a al

método de comparación de plantillas tienen menos dispersion y las

correspondientes al uso de puntos SURF tienen mayor dispersion,

pero no es evidente cual de los dos métodos tiene mayor error al

final de recorrido. . . . . . . . . . . . . . . . . . . . . . . . . . . 63

5.6 Se hicieron dos seguimientos de ruta con 20 cm. por detrás de la

posición del punto inicial, el seguimiento 1 corresponde al méto-

do de comparación de plantillas y el seguimiento 2 corresponde al

método que usa SURF. . . . . . . . . . . . . . . . . . . . . . . . 64

5.7 Se hicieron dos seguimientos de ruta con 20 cm por delante de la

posición del punto inicial, el seguimiento 3 corresponde al méto-

do de comparación de plantillas y el seguimiento 4 corresponde al

método que usa SURF. . . . . . . . . . . . . . . . . . . . . . . . 65

5.8 En la superposición de la imagen con obstáculo (pasillo con silla)y

de la imagen sin obstáculo (pasillo sin silla) se puede ver que los

puntos descriptores aparecen en las regiones donde no se produjo

un cambio significativo y por lo tanto es positiva la identificación

de la posición y el seguimiento de la ruta puede continuar . . . . . 66

5.9 La imagen A corresponde a la imagen panorámica de un punto de

ruta, B y D son el resultado del cálculo del coeficiente de correla-

ción de C y E a todo lo largo de A, El máximo valor en B es de 0.8

y se encuentra en la posición esperada ya que C se encuentra en la

parte central de A. Por otro lado en D se observa que el máximo

valor es de 0.4 y se encuentra cerca del píxel 100 y por tanto es un

ejemplo de una respuesta errónea provocada por el obstáculo que

hay en la imagen E . . . . . . . . . . . . . . . . . . . . . . . . . 67

xvii

Page 18: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

ÍNDICE DE FIGURAS

5.10 La imagen A corresponde a una imagen almacenada durante unentrenamiento (circulo rojo) tomada sin alteraciones de luz pro-venientes del exterior, la imagen C corresponde a una imagen dela misma posición de ruta que A pero con cambios en la ilumi-nación provocados por luz del exterior (cruz verde), la imagen Ecorresponde a la superposición de las imágenes A y C donde seobservan mas de 20 descriptores coincidentes a pesar de existir di-ferencias en la iluminación. Las imágenes B, D y F correspondena otro ejemplo, pero en ese caso es notable la disminución de des-criptores encontrados debido a que en la mayor parte del suelo nose buscan descriptores, también porque en la región de la puerta loscambios son muy marcados y finalmente porque en regiones casihomogéneas como en las paredes no es probable encontrar descrip-tores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

5.11 La imagen A corresponde a la imagen panorámica de un punto deruta, B y D son el resultado del cálculo del coeficiente de correla-ción de C y E a todo lo largo de A, El máximo valor en B es de 1y se encuentra en la posición esperada ya que C es la imagen cen-tral de A y no presenta cambios en la iluminación. Por otro ladoen D se observa que el máximo valor es de 0.3 y se encuentra cer-ca del píxel 80 y por tanto es un ejemplo de una respuesta erróneaprovocada por los cambios de iluminación que hay en la imagen E. 70

5.12 Cuando existen multiples cambios provocados por objetos que mo-difican la vista del robot a lo largo de la ruta, el método de compa-ración de plantillas no logra identificar la posición desde el primerobstáculo, El algoritmo SURF hace un seguimiento de ruta sin va-riaciones en el numero de pasos ejecutados y sin perturbaciones enla ruta seguida . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

xviii

Page 19: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

CAPÍTULO

1Introducción

La idea de emplear un robot para realizar tareas específicas en lugar de seres

humanos ha sido fascinante y ha generado gran interés entre los investigadores de

distintos campos. Los robots móviles también se emplean en tareas rutinarias que

se desarrollan en espacios y ambientes donde la movilidad de la máquina pueda

reemplazar con eficacia la presencia humana directa. Por ejemplo, en el cultivo

a gran escala [2] y minería [3]. Las aplicaciones de vehículos robóticos también

incluyen la asistencia personal, en las tareas domésticas y en el entretenimiento.

Por ejemplo, una silla de ruedas para proporcionar movilidad a los discapacitados

[4].

La robótica en general abarca un amplio espectro de tecnologías tanto mecá-

nicas, electrónicas y computacionales. En sus primeras etapas, los robots fueron

máquinas capaces de realizar tareas repetitivas en forma automática desde posicio-

nes fijas y predeterminadas sobre ambientes controlados y predecibles, relevando

a las personas de trabajos tediosos y cansados. Al mismo tiempo, se desarrollaron

robots telecontrolados con el objetivo de sustituir a las personas en lugares de traba-

jo peligrosos o no accesibles, tales como por ejemplo la realización de una cirugía

médica a distancia [5], requiriendo aún así de alguien situado en otra parte dirigien-

do desde lejos a este tipo de robots. Conforme ha evolucionado la tecnología y la

1

Page 20: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

1. INTRODUCCIÓN

necesidad de relevar a las personas de trabajos poco productivos, se ha vuelto nece-

sario invertir muchos recursos en diseñar máquinas con mayor inteligencia capaces

de desenvolverse sin intervención humana y de manera automática en ambientes

no controlados y cambiantes. El mejor ejemplo de aplicaciones para enfrentar pro-

blemáticas de este tipo son quizá los robots que realizan navegación autónoma [6],

[7], [8], [9], [10], [11], [12], [13], [14], [15], [16], [17], [18], [19]. La necesidad de

implementar robots con navegación autónoma surge probablemente de la creciente

complejidad de nuestra sociedad moderna. Dicha sociedad compleja demanda mu-

cha fuerza bruta de trabajo y al mismo tiempo ocupar a las personas para realizar

labores mas creativas o intelectuales. Tales demandas podrían ser potencialmente

cubiertas por maquinas autónomas.

La robótica que incorpora navegación autónoma, a diferencia de la robótica

donde movimientos y entorno son predeterminados, constituye un gran reto de in-

geniería, pues implica no solo que un robot se desplace sin intervención humana

en un ambiente que podría ser variable e impredecible, también implica dotar a una

máquina con la capacidad de desenvolverse en un ambiente en el que puede elegir

de entre un número infinito de trayectorias para alcanzar sus metas. Esta aptitud

de lidiar con la variabilidad del entorno, la impredictibilidad y con una infinidad

de grados de libertad en rutas, dota a las máquinas con la capacidad, antes sólo

humana, de enfrentar la imprevisibilidad y adaptarse al medio circundante.

La Navegación autónoma es la capacidad de un robot para recorrer su entorno

haciendo uso tanto de una base de conocimiento previo, como de información de

sus sensores, todo esto con el fin de alcanzar ciertas metas de manera eficiente. Los

robots dotados de navegación autónoma son máquinas autopropulsadas que portan

sensores y recursos computacionales abordo y que toman decisiones propias sobre

su movimiento. Estas decisiones se basan en su entorno y en sus metas predefinidas,

y pueden actuar en el suelo, en el aire, en el espacio o bajo el agua. Estos vehículos

son generalmente no tripulados, en el sentido de que los seres humanos no están

abordo.

En general, la problemática más evidente que surge en la navegación autónoma,

consiste en el reconocimiento e interpretación de la escena vista por la cámara o las

cámaras del robot. Aunque el sensado por visión provee un flujo extremadamente

rico de información que potencialmente sería excepcional para el control autónomo

2

Page 21: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

y el planeamiento de rutas, la tarea de interpretación de toda esta información es de

gran complejidad.

En particular, una de las problemáticas mas importantes en el sistema de vi-

sión de esta clase de robots autónomos es la identificación adecuada de los lugares

y posiciones en los que el robot se sitúa. Esto representa un problema no trivial,

puesto que pueden presentarse diferencias importantes de apariencia entre las imá-

genes de la memoria del robot (capturadas durante una etapa de entrenamiento) y

las imágenes actuales que capta el sistema. Dichas diferencias podrían deberse a

muchos factores, entre ellos: los cambios en la posición del robot inducen diferen-

cias de escala o tamaño, así como deformaciones aparentes de los objetos debidas

a la diferente perspectiva que se tiene de ellos, además puede haber cambios de

iluminación en el ambiente, objetos nuevos no presentes en el entrenamiento, es

decir obstáculos, etc..

En este trabajo, se intenta atacar dichas problemáticas mediante el desarrollo de

algoritmos computacionales de visión artificial que utilizan detección de caracte-

rísticas invariantes a la escala, iluminación, traslación y rotación, con el propósito

de reconocer acertadamente las escenas a pesar de los efectos mencionados en el

párrafo anterior. Por otra parte, se desarrolló también un algoritmo para evadir obs-

táculos nuevos no conocidos previamente por el robot. Ésta última problemática

abordada en esta tesis planteó el reto de lograr que el robot evadiera al obstáculo

basándose en el tamaño de éste para posteriormente poder retornar a su ruta de

navegación original. Así mismo, se incursionó en la utilización de sensores adi-

cionales a la visión para que el robot fuera capaz de tomar decisiones adecuadas

durante la detección y evasión de los obstáculos.

Planteamiento del problema y ContribucionesLa navegación autónoma basada en apariencia con vista monocular que se realiza

en interiores de ambientes estructurados presenta el reto de lograr una efectiva na-

vegación cuando existen cambios dentro del entorno. Los cambios que se pueden

presentar en un entorno así son cambios de iluminación moderados, cambios de

forma del entorno a navegar provocados por objetos móviles, además de los retos

inherentes a cada unos de los sensores con los que se apoya la navegación.

3

Page 22: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

1. INTRODUCCIÓN

También el hecho de afrontar el problema con un arreglo de vista monocular

presenta retos como lo son el no poder inferir profundidad y tener una vista limitada

del entorno, a diferencia de los arreglos que usan cámaras omnidireccionales o

estereoscópicas.

Esta forma de abordar el problema se basa en la premisa de que una persona

podría fácilmente guiar remotamente un robot móvil dentro en un espacio que le

es familiar, ya que como ser humano es capaz de discernir entre objetos móviles e

inmóviles, inferir profundidad de acuerdo a los objetos presentes en la imágenes,

definir la mejor ruta para circular y saber cuando ya se logro alcanzar un objetivo.

Todo eso a pesar de no contar con un mapa geométrico y de contar únicamente con

una vista parcial del entorno.

Las principales contribuciones de este trabajo de tesis son:

• Una arquitectura de software para navegación autónoma que consta de dos

módulos principales: un módulo de interfaz y un módulo de toma de deci-

siones. Dicho módulo de interfaz comunica a la plataforma robótica X80SV

con el módulo de toma de decisiones programado en MATLAB y bautiza-

do como razonamiento. Éste último se diseñó como un agente reactivo de

software que toma decisiones en función de la información de los sensores,

la base de conocimiento (imágenes almacenadas en memoria) y las metas de

dicho agente. Además se diseñó una interfaz de usuario para interactuar con

dicho software.

• Dentro del módulo de toma de decisiones, un algoritmo original para co-

rrección de ruta basado en hallar vectores de corrección mediante el uso de

correspondencia de plantillas utilizando el coeficiente de correlación oNCC

(Normalized Cross Correlation) como medida de similitud entre imágenes.

• Dentro del módulo de toma de decisiones, un algoritmo original para correc-

ción de ruta basado en hallar vectores de corrección mediante la utilización

de características SURF, eliminación de outliers usando el algoritmo RAN-

SAC y cálculo de la componente horizontal de traslación mediante análisis

de Procrustes.

4

Page 23: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

1.1 Objetivos

• Como una aportación más específica derivada de la anterior, hay que resaltar

que este trabajo aporta un algoritmo original que utiliza RANSAC para la

eliminación de outliers y con esto garantizar que es posible reconocer la mis-

ma escena aunque las condiciones del ambiente sean diferentes (obstáculos

e iluminación). Es decir, se garantiza que los dos polígonos formados por

los inliers sobrevivientes son iguales en su forma geométrica, y dado que

se establece un umbral mínimo de una buena cantidad de puntos, se eleva

la probabilidad de estar tratando con la misma escena en caso de encontrar

un número suficiente de inliers. En caso contrario el algoritmo descarta la

correspondencia. Esto permite hacer correspondencia con la escena correcta

y calcular fácilmente el vector de corrección de la ruta.

MotivaciónEl campo de investigación relacionado con la Navegación Autónoma es actual y

está abierto para ser abordado desde distintas y diversas perspectivas. Como pueden

ser la fusión de sensores y el procesamiento de imágenes.

1.1 ObjetivosPara el trabajo de tesis se fijaron los siguientes objetivos:

Objetivo General* Diseñar un algoritmo de navegación por visión, que permita a un robot móvil

de dos ruedas navegar autónomamente y evadir obstáculos

Objetivos Específicos1. Diseñar un algoritmo de visión que dote a una plataforma de dos ruedas con

la capacidad de llevar a cabo un recorrido de un punto a otro siguiendo una

ruta previamente entrenada.

5

Page 24: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

1. INTRODUCCIÓN

2. Diseñar un algoritmo de navegación, con la fusión de información de senso-

res ultrasónicos e infrarrojos para detectar y evadir obstáculos colocados en

la ruta.

Solución PropuestaLos métodos de navegación autónoma que se implementaron constan de dos etapas.

La de entrenamiento, en la que el vehículo almacena las imágenes del entorno por

donde navegue y la segunda etapa que es la de navegación autónoma, en la que

se comparan las imágenes almacenadas con las imágenes que el vehículo toma

durante su recorrido.

En esta segunda etapa, se determina una nueva ruta y una nueva posición cuan-

do el vehículo esta en presencia de un obstáculo detectado con los sensores de la

plataforma móvil.

Uno de los métodos seleccionados para su comparación usa la comparación

de plantillas y el coeficiente de correlación para comparar la similitud entre las

imágenes del entrenamiento y las tomadas durante la navegación, el otro método

usa los puntos y descriptores SURF filtrados con el algoritmo RANSAC para hacer

la correspondencia entre las imágenes.

Diagrama a bloques de la metodología empleadaEl diagrama de flujo que se sigue para alcanzar los objetivos del proyecto se mues-

tra en la Figura 1.1.

Diagrama a bloques del sistema implementadoEl diagrama de bloques que se implemento para probar el algoritmos se ve en la

Figura 1.2.

6

Page 25: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

1.1 Objetivos

Figura 1.1: Metodología del desarrollo del trabajo de tesis

Figura 1.2: Bloques del sistema implementado

7

Page 26: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

1. INTRODUCCIÓN

1.2 Organización de la TesisEste documento de tesis se compone de cinco capítulos, donde abordan los funda-mentos y el desarrollo del algoritmo de navegación y evasión de obstáculos, usandovisión artificial basada en apariencia y sensores de rango.

El documento está organizado de la siguiente manera. El Capítulo 2 tiene defi-niciones y una revisión superficial de trabajos similares de otros autores para poneren contexto el trabajo realizado, el Capítulo 3 tiene los conceptos y los algoritmosque se usaron en las etapas del desarrollo del algoritmo final, en el Capítulo 4 seexplican los pasos que se siguieron para el diseño e implementación del algoritmofinal, en el Capítulo 5 se analizan y explican las pruebas realizadas tanto para la na-vegación como para la evasión y las condiciones de funcionamiento del algoritmodiseñado, finalmente, en el Capítulo 6 se presentan las conclusiones observadasy propuestas de posibles investigaciones que se podrían realizar para lograr unanavegación basada únicamente en visión artificial.

8

Page 27: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

CAPÍTULO

2Trabajo Relacionado

En este capítulo se explican algunos conceptos para poner en contexto el trabajo

realizado y se revisan algunos trabajos similares de distintos autores.

2.1 Navegación AutónomaLa navegación autónoma es la capacidad que tiene un robot para ir de un lugar a

otro únicamente con la ayuda que pueda adquirir e inferir de sus propios senso-

res y de su conocimiento previo. esta navegación debe cumplir con los siguientes

criterios:

1. Mapeo: El robot necesita tener una representación del entorno.

2. Localización: El robot debe saber en dónde está en cada momento.

3. Planificación de rutas: El robot debe poder calcular el mejor camino para

llegar a su destino.

4. Seguimiento de rutas: El robot debe ser capaz de seguir la ruta calculada

evitando obstáculos.

9

Page 28: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

2. TRABAJO RELACIONADO

2.2 Navegación Basada en Visión ArtificialEn la investigación y las aplicaciones realizadas en el campo de la navegación

basada en visión artificial a lo largo de los años hacen distintas clasificaciones para

esta, estas clasificaciones se han hecho debido a la complejidad que la navegación

implica y por tanto se ha buscado acotar las condiciones del entorno y así lograr

poco a poco avances en el área. Un resumen general de esas divisiones se muestra

en los puntos siguientes.

• Dependiendo del medio en en que el robot se desenvuelva se divide en nave-

gación en interiores y navegación en exteriores.

• Dependiendo de la estructura del ambiente, se divide en estructurados (nor-

malmente construidos por el hombre pueden ser, carreteras, parques, edifi-

cios, etc.) y no estructurados (pueden ser lugares como los bosques, desier-

tos, la superficie de otros planetas, etc.)

• También se divide en navegación basada en mapas, basada en construcción

de mapas y sin mapas, esta última puede dividirse en:

– navegación con flujo óptico.

– navegación reconociendo objetos y marcas artificiales.

– navegación basada en apariencia.

2.2.1 Navegación en interiores

Desde los primeros trabajos fue evidente que era necesario indicarle a la compu-

tadora lo que se supone vería. Algunos de los primeros trabajos se basaron prin-

cipalmente en la geometría del espacio, en algunos otros se usaron modelos ge-

nerados por computadora, en otros modelos topológicos del ambiente e incluso

secuencias de imágenes. Cuando las secuencias de imágenes fueron usadas para

la representación del espacio, las imágenes tomadas durante la navegación fueron

usadas para compararlas con lo que el robot se supone que tendría que ver [20].

Los siguientes esfuerzos fueron encaminados en tres grupos principales:

10

Page 29: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

2.3 Enfoques Usados para Navegación por Visión

• Navegación basada en mapas: Son sistemas que dependen de mapas geomé-tricos o topológicos del entorno creados por el usuario.

• Navegación basada en construcción de mapas: Son sistemas que usan senso-res para construir su propio modelo del entorno y usan este modelo para lanavegación.

• Navegación sin mapas: Estos son sistemas que no usan una representaciónexplicita del entorno, si no que reconoce los objetos en el ambiente y en basea eso genera su movimiento.

Dentro de la navegación basada en mapas, hay procesos computacionales quese dividen en cuatro [21]

• Adquirir información de sensores: Cuando es únicamente navegación porvisión esto se refiere tomar imágenes y digitalizarlas.

• Detectar marcas: Esto se refiere a extraer bodes, suavizar, filtrar y segmentarregiones basado en las diferencias de color, de profundidad o de movimiento.

• Establecer coincidencias entre lo observado y lo esperado: En esta etapa elsistema trata de identificar las marcas observadas comparándolas con las quetiene en la base de datos.

• Calcular posición una vez que se detectaron las coincidencias: El sistema ne-cesita calcular la posición en función de las marcas observadas y la posiciónde estas en la base de datos.

2.3 Enfoques Usados para Navegación por VisiónPara la navegación basada ne visión artificial obviamente se necesita una cámarapara que el robot pueda "ver", En la bibliografía se refieren principalmente a tresarreglos, el arreglo monocular, el binocular y el estereoscópico. Cada uno de estosarreglos tiene ventajas y desventajas uno respecto del otro, estas ventajas tienenque ver con el costo computacional del procesamiento de las imágenes obtenidas,con la capacidad de obtener información extra como puede ser la profundidad, conla simplicidad o la necesidad de calibración, entre muchas otras.

11

Page 30: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

2. TRABAJO RELACIONADO

2.3.1 Visión OmnidireccionalLa visión omnidireccional aplicada a robots móviles consta de una cámara queapunta hacia una lente en forma de parábola y con esto logra obtener una imagendel medio circundante al punto donde fue tomada la fotografía.

Este tipo de visión es usada por Taha y Arif Mat-Jizat para detectar marcas arti-ficiales en ambientes controlados con poca iluminación [7], En trabajos como el deZhang, Cao y Lou usan una vista omnidireccional y un enfoque basado en aparien-cia para navegar [22]. En el caso de Wang, Zhao y Li usan análisis de componentesprincipales y estas imágenes para crear mapas de navegación [23].

Las ventajas de usar un sistema así es que se tiene una visión más amplia delentorno, lo que implica mayor información para navegar. En principio se pudierapensar que si se toman imágenes con una cámara monocular y se van añadiendoconforme se gira la cámara, se lograría el mismo efecto, pero el hecho es que cuan-do se toman imágenes separadas, la iluminación de la imagen va cambiando entrecada foto y esto provoca que al unirse las fotografías, la imagen resultante sea drás-ticamente distinta a una omnidireccional. Otro aspecto importante es que tomandouna sola fotografía omnidireccional, el entrenamiento de la ruta seria más rápidaen comparación con tomar fotografías, girar y unir.

Las desventajas radican en el tiempo de procesamiento, al tener que hacer unatransformación de la imagen para verla como un plano y el costo del ensamblecompuesto por el espejo, el soporte y la cámara.

2.3.2 Visión EstereoscópicaDe manera natural, al igual que nuestro sistema auditivo, nuestro mecanismo devisión es estéreo, es decir, somos capaces de apreciar, a través de la visión bino-cular, las diferentes distancias y volúmenes en el entorno que nos rodea. Nuestrosojos, debido a su separación, obtienen dos imágenes con pequeñas diferencias entre

ellas, a lo que denominamos disparidad.

En esta aproximación de visión artificial, se busca emular lo que nuestro cerebrohace al procesar las diferencias entre ambas imágenes e interpretarlas de forma quepercibimos la sensación de profundidad, lejanía o cercanía de los objetos que nosrodean.

12

Page 31: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

2.4 Evasión de Obstáculos

Chitra et al. usan dos cámaras para obtener la información tridimensional de las

imágenes que analizan [24]. Schauwecker y Zell usan dos pares de cámaras como

sensores para dotar a un cuadrirotor con la capacidad de navegar [25]. Chiang et al.

usa un sistema estereoscópico empotrado en un robot humanoide que juega futbol,

el sistema se usa para medir la distancia del robot al balón y del robot a las marcas

de la cancha [26].

2.3.3 Visión Monocular

Esta aproximación de visión artificial es la más barata de implementar debido a que

únicamente se usa una sola cámara para obtener las fotografías, esta cámara puede

ser de baja resolución y costo, lo que la hace fácil de obtener. Sin embargo, es la

que presenta mayores retos en cuanto a la extracción de la información. Debido

a que únicamente se tiene una vista parcial del espacio circundante, creando una

limitante en cuanto a la creación del mapa del recorrido a seguir. Otra desventaja es

que para obtener información sobre la profundidad de los objetos de las imágenes,

se tiene que agregar más fotografías y más procesamiento de las imágenes.

En el trabajo de Tsai et al. se uso una cámara y dos haz láser verdes para calcular

las distancias de distintos objetos, dependiendo de la separación de los haces de

luz [27]. Yamada, Lin y Cheng desarrollaron un algoritmo en el que con una sola

cámara se logra detectar obstáculos y navegar [28].

De los métodos anteriores se selecciono el último, principalmente porque la

plataforma con la que se cuenta tiene integrados seis sensores ultrasónicos y siete

sensores infrarrojos de rango para obtener información de la distancia de los objetos

en las imágenes. Así como una cámara que permite tomar imágenes que cubren

aproximadamente 150° del perímetro circundante.

2.4 Evasión de ObstáculosLa evasión de obstáculos se enfoca en cambiar la trayectoria del robot de acuerdo

a la información de sus sensores durante su movimiento. El movimiento resultante

del robot, es una función de las lecturas actuales de sus sensores y la posición desea-

da. Los siguientes algoritmos dependen en mayor o menor grado de la existencia

13

Page 32: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

2. TRABAJO RELACIONADO

de un mapa global y en el conocimiento preciso del robot de su posición respecto almapa. A pesar de sus diferencias estos algoritmos pueden considerarse de evasiónde obstáculos, porque las lecturas de los sensores juegan un rol importante en lafutura trayectoria del robot.

2.4.1 Algoritmo BugQuizá es el más simple de los algoritmos [29, 30], el nombre da una idea de có-mo funciona, básicamente consiste en seguir el contorno de cada obstáculo y asíatravesarlo.

Algoritmo Bug 1, primero rodea completamente el primer obstáculo y se posi-ciona en el punto con la distancia más corta hacia la meta. Esta aproximación esmuy ineficiente, pero garantiza que el robot alcance la meta.

Algoritmo Bug 2, el robot comienza siguiendo el contorno del obstáculo, y co-mienza a avanzar cuando es capaz de moverse directo a la meta, en general estealgoritmo tiene menor recorrido que el primero, sin embargo pueden haber situa-ciones en las que este algoritmo no alcance la meta.

Algoritmo Bug Tangente [31], Este algoritmo agrega sensores de rango y unarepresentación del entorno denominada gráfica tangente local (LTG), no solo semueve más eficientemente el robot, sino que también puede tomar atajos cuandorodea los obstáculos.

2.4.2 Vector Field histogram (VFH)Borenstein y Koren crearon el algoritmo VFH y después se extendió a VFH+ [32],y VFH* [33],. Esta técnica consiste en que a diferencia del algoritmo Bug, estano depende únicamente de la lectura actual de los sensores. Creando un mapa lo-cal del entorno alrededor del robot que tiene lecturas recientes. Para la evasión deobstáculos VFH genera un histograma polar donde en eje x representa el ángulo enel cual fue encontrado el obstáculo y el eje y, representa la probabilidad P de querealmente haya un obstáculo. De este histograma, se calcula la dirección de despla-zamiento. Primero se identifican las aberturas por las que puede pasar el vehículocomo se indica en la Figura 2.1, después se analizan las aberturas candidatas y seelige la que tenga una menor función de costo G. La función G tiene 3 términos.

14

Page 33: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

2.5 Odometría

G= a* Dirección del objetivo+ b* Orientación de las llantas + c* Dirección pre-

via.

Dirección del objetivo = alineación del robot con la meta.

Orientación de las llantas = diferencia entre la nueva dirección y la orientación ac-

tual de las llantas.

Dirección previa = diferencia entre la dirección seleccionada previamente y la nue-

va dirección.

Los parámetros a, b y c son seleccionados para ajustar el comportamiento del robot.

Figura 2.1: Diagrama polar.

2.4.3 Otros algoritmos

Existen muchos más algoritmos de evasión de obstáculos que implican modelos

dinámicos de las plataformas móviles como son el método de cercanía [34], El Au-

tonomous Systems Lab (ASL)[35], la aproximación Schlegel [36], la aproximación

de ventana dinámica [37], el método de curvatura de velocidad [38], la técnica de

la banda elástica [39] y muchas variantes de estas.

2.5 OdometríaEn cuanto a la odometría, es posible observar en trabajos recientes, que es una

herramienta muy usada en navegación, ubicación y mapeo en robots móviles. Sin

embargo tiene limitantes fuertes que están relacionados con el terreno sobre el que

15

Page 34: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

2. TRABAJO RELACIONADO

se circula y relacionados con la arquitectura del sistema. Se usa como apoyo demuchos más sistemas para lograr una navegación efectiva en los distintos ambientespara los que fueron construidas las plataformas roboticas.

En la Figura2.2 se muestran imágenes de trabajos publicados en la IEEE, en elinciso a) se usa como apoyo a un sistema de detección de posición con respecto atransmisores de radiofrecuencia [40], en el b) se usa como apoyo en sistemas quecuentan con cámaras 3D [17] y en el c) en sistemas con unidades de medición iner-ciales y de posicionamiento global GPS [41]. Con estas observaciones es evidenteque aunque presenta muchos errores, es básico para una navegación funcional.

Figura 2.2: Ejemplos de vehículos que ocupan odometría a) Vehículo guiado porseñal de radiofrecuencia. b)Vehículo con visión estéreo, IMU y Sensor de rango láser.c)Vehículo con IMU y GPS.

2.6 Navegación Visual basada en AparienciaLa navegación basada en apariencia ha sido capaz de alcanzar soluciones robustasal problema de la navegación, principalmente gracias a los avances en hardware,aplicaciones matemáticas y al desarrollo de herramientas en la visión por compu-tadora para la extracción de características estables y representativas.

Las estrategias de navegación basada en apariencia constan de dos partes. Laprimera es la fase del entrenamiento en donde imágenes o descriptores del entornoson grabados y almacenados como modelos de plantillas. Los modelos son etique-tados con una cierta información de localización y/o con un comando de direcciónasociado. La segunda fase el robot tiene que reconocer el entorno y autolocalizarceen él haciendo la comparación entre la imagen tomada en el momento de la na-vegación y la información almacenada en memoria. Los principales problemas dela navegación basada en apariencia son, encontrar el modo adecuado para crear la

16

Page 35: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

2.6 Navegación Visual basada en Apariencia

representación del entorno y definir el modo de hacer la correspondencia entre las

imágenes durante la navegación.

Los dos principales enfoques son creando una representación de la ruta con

imágenes a intervalos regulares de distancia, que permita hacer un seguimiento pa-

so a paso y la otra es con la creación de mapas topológicos, en la que la localización

es menos precisa.

El trabajo realizado por Matsumoto et al. [8] es un ejemplo de la representacion

del entorno con imágenes tomadas a intervalos regulares, en este trabajo la com-

paración entre imágenes se hace con la resta de píxeles. En el posterior trabajo de

Matsumoto et al. [11] se hace una mejora para intentar lograr la navegación con

cambios de iluminación. En el caso de la representación por medio de un mapa

topológico la localización que se consigue es aproximada y tiene una aplicación

principalmente para entornos grandes donde no se necesite precision en la posición

del robot.

Una mejor forma de hacer la correspondencia entre imágenes de distintos lu-

gares es con el cálculo de descriptores como pueden ser MSER, SURF, SIFT, etc.

Esta forma de hacer la comparación se ha vuelto muy popular como se observa en

lo reportado en [14], [15], [12], [13] y [42] gracias a que los descriptores ofrecen

una mejor identificación, ya que en mayor o menor medida poseen inmunidad a

cambios del entorno.

En el trabajo hecho por Zhang et al. [12] se usa las vistas del entrenamiento

para crear un mapa topológico como representación del entorno, logra hacer la

navegación en el exterior y como principal diferencia es que usa palabras visuales

y una red neuronal para hacer la identificación de las posiciones de la ruta en lugar

de usar la imagen completa como se hizo en este trabajo.

En el trabajo de Fraundorfer et al. [42] se reporta una una similitud a lo desa-

rrollado en este trabajo porque también se hace una reconstrucción de la ruta con

la información que se extrae con los descriptores.

De toda la investigación realizada únicamente se encontraron dos trabajos con

los que éste trabajo se puede comparado de un modo mas aproximado.

En los trabajos de Tabuse et al. [13], [43] se hace seguimiento de una ruta

previamente entrenada, la ruta es construida de modo muy similar a lo hecho en

este trabajo. Para hacer la identificación de las posiciones de la ruta también usa

17

Page 36: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

2. TRABAJO RELACIONADO

surf y el ángulo de corrección para asegurar un buen seguimiento se calcula de losdescriptores obtenidos en las imágenes. Las diferencias principales y por las que apesar de ser similar no representa una buena comparativa con este trabajo es porqueen esos trabajos se usa una cámara omnidireccional, y en ninguno se usa RANSACpara limitar los puntos coincidentes, ni se hace una análisis de los cambios queexisten durante la navegación autónoma.

18

Page 37: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

CAPÍTULO

3Fundamentos

En este capítulo se presentan los conceptos y los algoritmos necesarios para lanavegación autónoma basada en visión artificial que se implementó en este trabajo.

En este trabajo se diseñó y programó un programa que le da a un robot móvilla capacidad de navegar autónomamente y de evadir obstáculos que se encuentrendentro de una ruta previamente entrenada, este programa es modular y permitecambiar el modo de navegación autónoma así como el modo de evasión de obs-táculos.

Para la navegación autónoma se diseñaron y programaron dos algoritmos denavegación basada en apariencia. El primer algoritmo usa la comparación de plan-tillas y como medida de similitud el coeficiente de correlación, de este modo elalgoritmo define la correspondencia entre las imágenes de los lugares por dondenavega y las imágenes de la ruta entrenada.

El otro algoritmo programado usa el algoritmo SURF y el algoritmo RANSACpara hacer la correspondencia entre las imágenes de los lugares por donde navegay las imágenes de la ruta entrenada. Se escogió el algoritmo SURF porque entregapuntos que caracterizan a una imagen, éstos puntos tienen cualidades muy sobre-salientes en comparación con otros puntos descriptores, estas características son lainvariancia ante cambios en la rotación, la escala, la iluminación de las imágenesy el cálculo relativamente rápido de estos puntos, éste algoritmo es muy similar al

19

Page 38: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3. FUNDAMENTOS

SIFT pero tiene la ventaja de ser mas rápido en el cálculo de los descriptores a costade tener una pequeña perdida en la robustez de los descriptores. Para asegurar quelos puntos encontrados tanto en la imagen del entrenamiento como en la imagende la navegación sean los mismos, se usa el algoritmo RANSAC, este algoritmodescarta los puntos que no coinciden entre las imágenes y así evitar confusionescuando el robot intenta identificar el lugar por donde navega.

Como ya se mencionó éste programa también permite hacer evasión de obs-táculos con cualquiera de las dos formas de navegación, para esta tarea se hizo unprograma que hace la segmentación del obstáculo dilatando y erosionando la ima-gen frontal de la posición en donde los sensores de rengo indicaron su presencia.

3.1 DilataciónLa dilatación es una operación morfológica correspondiente a la idea intuitiva delcrecimiento, o de añadir una capa de píxeles a la estructura de la imagen. La ma-nera específica en la que es controlado el crecimiento, es por medio de una figurareferida como estructura de referencia. Esta operación es definida en la notación deconjuntos de puntos como:

I ⊕H = {(x′, y′) = (x+ i, y + j)|(x′, y′) ∈ PI(i, j) ∈ Pn} (3.1)

Como indica la expresión 3.1, el conjunto de puntos que constituyen a la dila-tación de una imagen I y la estructura de referenciaH , queda definido por todas lasposibles combinaciones de los pares de coordenadas de los conjuntos de puntos PIy PH . Se podría también interpretar a la operación de dilatación, como el resultadode añadir a los píxeles 1 de la imagen (PI) la forma correspondiente a la estructurade referencia. Un ejemplo del proceso de dilatación en una imagen se ilustra en laFigura 3.1.

En la Figura 3.1, en la imagen binaria b) se observa que quedan píxeles o pe-queños grupos de ellos que sabemos que deberían pertenecer al objeto pero quepor diferentes motivos no quedaron identificados. Adicionalmente aparecen píxe-les que sabemos que no deberían haber aparecido. Para incorporar estos píxelesal objeto conviene hacer a dicha imagen el proceso de dilatación, tal y como seobserva en c).

20

Page 39: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3.2 Erosión

Figura 3.1: Proceso de dilatación en una imagen, a) imagen original, b) imagen bina-ria y c) imagen dilatada.

3.2 ErosiónLa operación cuasi-inversa de la operación de dilatación es la erosión, la cual es

expresada en la notación de conjunto de puntos es definida como:

I H = {(x′, y′) = (x′ + i, y′ + j)|(x′, y′) ∈ PI(i, j), ∀(i, j) ∈ PH} (3.2)

La expresión 3.2, dice que para cada punto (x′, y′) de la imagen, el resultado

se compone por los puntos (x′, y′) para los cuales todos los posibles valores (x′ +

i, y′+j) se encuentran en I . La figura 3.2 muestra un ejemplo de la erosión aplicada

a una imagen con ruido sal y pimienta.

Figura 3.2: Efecto de la erosión a) Imagen con puntos blancos dispersos. b)Imagenerosionada sin puntos

21

Page 40: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3. FUNDAMENTOS

3.3 Coeficiente de CorrelaciónEl coeficiente de correlación entre dos variables es una cantidad que expresa lacalidad de un ajuste por mínimos cuadrados de las variables. Para un ajuste demínimos cuadrados de n puntos (xi, yi), el coeficiente b en.

y = ax+ bx

está dado por

b =n∑xy −

∑x∑y

n∑x2 − (

∑x)2

(3.3)

y el coeficiente b′ enx = a′ + b′y

b =n∑xy −

∑x∑y

n∑y2 − (

∑y)2

(3.4)

El cuadrado del coeficiente de correlación (r2) esta definido como

r2 = bb′ (3.5)

=[n∑xy −

∑x∑y]2

[n∑x2 − (

∑x)2] [n

∑y2 − (

∑y)2]

(3.6)

Por otra parte, la media de x e y de x e y respectivamente como

x =1

n

∑xi (3.7)

y =1

n

∑yi (3.8)

además, b y b′ se pueden escribir:

b =

∑(xi − x)(yi − y)∑

(xi − x)2(3.9)

b′ =

∑(xi − x)(yi − y)∑

(yi − y)2(3.10)

entonces, el coeficiente de correlación se define por

r =

∑(xi − x)(yi − y)√∑

(xi − x)2√∑

(yi − y)2(3.11)

22

Page 41: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3.3 Coeficiente de Correlación

3.3.1 Interpretación del coeficiente de correlaciónEl coeficiente de correlación tiene como resultado un valor en el intervalo [-1,1],donde si r = 1 entonces las variables están perfectamente correlacionadas, es de-cir, todos los datos se encuentran en una linea en la cual x incrementa cuando yincrementa. Si r = 0 no existe correlación y si r = −1 las variables se encuentranperfectamente inversamente correlacionadas, en otras palabras, si x incrementa ydisminuye. La Figura 3.3 muestra ejemplos de variables con diferentes valores der

Figura 3.3: Ejemplos de diagramas de dispersión con diferentes valores de coeficientede correlación r.

Puede observarse que cuando existe una relación lineal entre los datos, el valorde r será cercano a 1, mientras que cuando los datos están dispersos, r será 0.

3.3.2 Coeficiente de correlación entre dos imágenesDadas dos imágenes A(x, y) y B(x, y) de tamaño m× n, cuyos valores medios deniveles de gris son dados por A y B respectivamente, el coeficiente de correlaciónr entre A y B está dado por:

r =

∑m,n

(Amn − A)(Bmn −B)√[∑m,n

(Amn − A)2] [∑

m,n

(Bmn −B)2] (3.12)

A continuación se presentan ejemplos de comparación entre dos imágenes condiferentes grados de similitud, así como las gráficas de los valores de escala degrises de las imágenes.

23

Page 42: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3. FUNDAMENTOS

La Figura 3.4 presenta la comparación entre dos imágenes idénticas. En la grá-

fica de la figura se puede apreciar claramente la relación lineal que existe. Para esta

comparación se obtuvo un valor de r = 1, esperado para dos imágenes iguales.

Figura 3.4: Coeficiente de correlación entre imágenes idénticas

La Figura 3.5 muestra el valor de r cuando las imágenes son muy pareci-

das,también se puede observar que las imágenes tienen una ligera variación en la

iluminación, sin embargo, conservan una relación lineal como lo indica el valor de

r = 0.9204. La Figura 3.6 presenta el resultado de la comparación entre dos imáge-

nes distintas, la gráfica de los valores de escala de grises muestra valores dispersos

y no existe una relación lineal, comprobado por el resultado de r = 1891

3.4 Scale Invariant Feature Transform (SIFT)El descriptor Scale Invariant Feature Transform (SIFT) fue desarrollado por Lowe

[1] para detectar puntos característicos estables en una imagen. Estos puntos son

invariantes a cambios como traslación, escala, rotación e iluminación. Y realiza la

correspondencia entre puntos basado en los vectores descriptores de cada punto

como se ilustra en la Figura 3.7.

El algoritmo SIFT se compone principalmente de cuatro etapas:

24

Page 43: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3.4 Scale Invariant Feature Transform (SIFT)

Figura 3.5: Coeficiente de correlación entre imágenes similares

Figura 3.6: Coeficiente de correlación entre imágenes distintas

25

Page 44: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3. FUNDAMENTOS

Figura 3.7: Las 2 imágenes mostradas corresponden a un mismo lugar, visto desdedistinta perspectiva, los puntos encontrados con el algoritmo SIFT en una imagen sonrelacionados con los puntos mas similares encontrados en la otra

1. Detección de Extremos en el Espacio Escala: Esta etapa del algoritmo realiza

una búsqueda sobre las diferentes escalas y dimensiones de la imagen iden-

tificando posibles puntos de interés, esto se lleva a cabo mediante la función

DoG (Difference-of-Gaussian).

2. Localización de los Puntos de Interés: Para seleccionar los puntos de interés,

se aplica una medida de estabilidad sobre todos ellos para descartar aquellos

que no sean adecuados.

3. Asignación de la Orientación: Se asigna una orientación a cada punto de in-

terés extraído de la imagen basándose en la dirección local del gradiente.

Todas las operaciones posteriores son realizadas sobre los datos transforma-

dos según la orientación, escala y localización.

4. Descriptor del Punto de Interés: La última etapa hace referencia a la repre-

sentación de los puntos clave como una medida de los gradientes locales de

la imagen en las que las proximidades de dichos puntos clave respecto de

una escala determinada. Cada vector descriptor corresponde a un punto y

está compuesto por 128 elementos.

26

Page 45: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3.4 Scale Invariant Feature Transform (SIFT)

3.4.0.1 Detección de extremos en el espacio escala

La primera de las etapas tiene como objetivo obtener puntos candidatos de la ima-

gen que puedan ser identificados de forma repetida bajo diferentes vistas del mismo

objeto. El descriptor SIFT es construido a partir del espacio escala Gaussiano de la

imagen original, en el cual se pueden detectar de manera efectiva las posiciones de

los puntos claves, invariantes a cambios de escala de la imagen. El espacio-escala

Gaussiano de una imagen L(x, y, σ)es definido como la convolución de funciones

Gaussianas G(x, y, σ) de diferentes valores σ con la imagen original I(x, y):

L(x, y, σ) = G(x, y, σ) ∗ I(x, y) (3.13)

Siendo (x, y) las coordenadas espaciales y σ el factor de escala.El algoritmo

utiliza la función DoG (Diferencia de Gaussiana) que se forma a partir de la deri-

vada escalar de la Gaussiana escalada espacialmente. Esta función DoG D(x, y, σ)

se obtiene mediante la sustracción de escalas posteriores en cada octava:

D(x, y, σ) = L(x, y, kσ)− L(x, y, σ) (3.14)

Donde k es una constante multiplicativa del factor de escala. La función DoG

es utilizada por varias razones. En primer lugar porque es una función eficiente

en cuanto a coste computacional se refiere: Las imágenes suavizadas L(x, y, σ)

son calculadas para la descripción de características en el espacio-escala, y por lo

tanto, D puede obtenerse como una simple resta.

Al conjunto de las imágenes Gaussianas suavizadas junto con las imágenes

DoG se le llama octava. El conjunto de las octavas es construido mediante el sub-

muestreo sucesivo de la imagen original por un factor de 2. Cada una de las octavas

es a su vez dividida en un número entero de subniveles o escalas s. Una vez se ha

procesado una octava completa, la primera imagen de la siguiente octava se obtiene

mediante el muestreo de la primera de las imágenes de la octava predecesora con

un valor de σ del doble respecto a la actual. Esto se traduce en una gran eficiencia

del algoritmo para un número de escalas pequeño. El proceso descrito puede verse

representado en la Figura 3.8

Dado que el espacio-escala L(x, y, σ) representa la misma información a dife-

rentes niveles de escala, el modo particular del muestreo permite una reducción de

27

Page 46: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3. FUNDAMENTOS

Figura 3.8: Creación del espacio-escala Gaussiano, Imagen tomada de [1]

la redundancia. De esta manera se producen s + 3 imágenes por cada una de las

octavas y por lo tanto s+ 2 DoG imágenes donde se llevará a cabo la búsqueda de

extremos, el valor de s = 3 es el que mejores resultados consigue.

En cada una de las escalas, también llamadas octavas, la imagen se convolucio-

na repetidamente con funciones gaussianas para producir el conjunto de imágenes

gaussianas mostradas en la parte izquierda de la imagen. Las imágenes obtenidas

son substraídas en parejas adyacentes para producir las imágenes DoG mostradas a

la derecha. Después de cada octava, las imágenes Gaussianas son muestreadas por

un factor de 2, y se repite el proceso.

Los máximos y mínimos de las imágenes DoG son detectados mediante la com-

paración de un pixel con sus 26 vecinos en las regiones de 3x3 de las escalas actual

y adyacentes.

Con esto se obtienen 6 imágenes Gaussianas suavizadas y 5 imágenes DoG por

cada octava. Respecto del otro parámetro por determinar, σ referente al muestreo

de la escala de suavizado, siendo σ = 1.6 el valor recomendado.

28

Page 47: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3.4 Scale Invariant Feature Transform (SIFT)

Para detectar los máximos y los mínimos locales de cada punto de la imagen

D(x, y, σ) se compara el valor de éste con el de los puntos vecinos, en concreto,

con el de sus 8 vecinos más próximos de la imagen D donde se encuentra el punto

más los 9 vecinos de cada una de las imágenes D de nivel superior e inferior como

se muestra en la Figura 3.9 Si el valor resulta ser superior o inferior al de todos sus

vecinos, se identifica el punto como máximo o mínimo local respectivamente.

Figura 3.9: Valores máximos y mínimos de las imágenes DoG son detectados com-parando un pixel (marcado con x) con sus 26 vecinos en las regiones de 3x3 que estánen las escalas actual y adyacente (marcada con círculos), Imagen tomada de [1].

3.4.0.2 Localización de puntos clave estables

Una vez obtenidos los candidatos, se realiza un estudio de su estabilidad. Los pun-

tos no firmemente situados sobre los bordes o aquellos con bajo contraste son bas-

tante vulnerables al ruido y por lo tanto no podrán ser detectados bajo pequeños

cambios de iluminación o variación del punto de vista de la imagen. Para excluir-

los se utilizan los siguientes criterios:

• Para eliminar los puntos con bajo contraste, se aplica un proceso de umbrali-

zación por el cual los puntos cuyo valor sea menor que dicho umbralD serán

29

Page 48: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3. FUNDAMENTOS

excluidos de la siguiente etapa por no considerarse suficientemente estables.

El valor de D = 0.03 es el recomendado.

• Los puntos situados sobre bordes de manera difusa, conllevan un alto grado

de inestabilidad incluso ante pequeños ruidos. Para llevar a cabo su elimina-

ción, se utiliza la propiedad de la función DoG atendiendo a la gran curvatura

que presenta en la dirección paralela al borde y la pequeña curvatura que se

observa en la dirección perpendicular. Estas respuestas tan características se

pueden estudiar mediante el cálculo de la matriz del Hessiano sobre la loca-

lización y escala del punto en estudio:

H =

d2D

dx2d2D

dxdyd2D

dxdy

d2D

dy2

(3.15)

Donde D es la imagen DoG D(x, y, σ) respecto de la escala s. Las derivadas

se calculan mediante la resta del valor de los puntos vecinos. Se puede de-

mostrar que la siguiente desigualdad permite la localización de los puntos en

los bordes:

(d2D

dx2+d2D

dy2

)2

(d2D

dx2∗ d

2D

dy2

)−(d2D

dxdy

)2 <(r + 1)2

r(3.16)

Por lo tanto aquellos puntos que no satisfagan dicha desigualdad serán des-

cartados debido a su inestabilidad. El valor recomendado es de r = 10.

Tras descartar los puntos inestables, al resto de puntos clave se les asignará

una orientación.

3.4.0.3 Asignación de la orientación

La invariancia respecto de la rotación se consigue mediante la asignación a cada

uno de los puntos una orientación basada en las propiedades locales de la imagen y

30

Page 49: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3.4 Scale Invariant Feature Transform (SIFT)

representando el descriptor respecto de esta orientación. Para cada uno de los pun-

tos de interés se calcula la magnitud del gradiente, m, y su orientación, θ, mediante

las siguientes ecuaciones:

m(x, y) =√

(L(x+ 1, y)− L(x− 1, y))2 + ((L(x, y + 1)− L(x, y − 1))2

(3.17)

θ(x, y) = arctan(L(x, y + 1)− L(x, y − 1)

L(x+ 1, y)− L(x− 1, y)(3.18)

Donde L representa la imagen gaussiana suavizada cuya escala resulta más

próxima a la escala del punto de interés actual. Respecto de la orientación del gra-

diente, se crea un histograma con 36 intervalos, cada uno de ellos con una longitud

de 10° para cubrir el rango de los 360° posibles. El intervalo cuyo valor es mas alto

se corresponde con la dirección dominante del gradiente y por lo tanto es elegido

como orientación dominante. Sin embargo se ha de tener en cuenta la posibilidad

de que exista más de una dirección dominante. Es por ello que cualquier intervalo

con un valor de más del 80 % del valor de la magnitud principal se considerará tam-

bién como dirección dominante. Los puntos que contengan más de una dirección

dominante supondrán una mayor estabilidad al mismo.

Las orientaciones principales del histograma se asignan al punto de interés para

formar el vector que lo describirá.

3.4.0.4 Descriptor del punto de interés

Las etapas anteriores han dotado a los puntos de interés seleccionados de inva-

riancia respecto de la orientación, escala y localización respecto de la imagen. En

esta última etapa se crea un vector de características para cada uno de los puntos

de interés que contiene una estadística local de las orientaciones del gradiente. Se

realiza un muestreo de las orientaciones y magnitudes del gradiente de la imagen

sobre regiones de 16x16 alrededor del punto de interés. Este proceso es similar al

de la etapa anterior, donde ahora cada una de las muestras son ponderadas tanto por

la magnitud de su gradiente como por una función 3D gaussiana evitando así cam-

bios bruscos en el descriptor ante pequeños cambios en la posición de la ventana y

31

Page 50: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3. FUNDAMENTOS

al mismo tiempo asignando menor énfasis a los puntos más alejados del punto de

interés.

El valor σ de la función gaussiana se fija como 1.5 veces el tamaño de la re-

gión de cálculo para el punto de interés. Se analizan las muestras de cada región de

16x16 formando histogramas de orientaciones resumiendo el contenido en subre-

giones de 4x4 como se puede ver en la Figura 3.10 Cada uno de los histogramas se

compone de 8 intervalos, que almacenan las orientaciones posibles proporcionales

a 45° donde la magnitud de cada flecha representa el valor acumulado para cada

intervalo. Por lo tanto se obtienen 16 histogramas respecto de las orientaciones de

los puntos de cada región para cada uno de los puntos de interés.

Figura 3.10: el descriptor de un punto de interés es creado al calcular la magnitud yla orientación del gradiente en cada punto al rededor del punto de interés, como se vea la izquierda. Y son ponderados por una ventana gaussiana, indicada por el circulo.Después estas muestras son acumuladas en un histograma de orientaciones resumiendoel contenido de sobre las regiones de 4x4 como se ve a la derecha. Esta figura undescriptor de 2x2 calculado de unas muestras de 8x8, pero en la implementación seusan muestras de 16x16, Imagen tomada de [1]

Finalmente el descriptor de cada punto de interés está formado por un vector

que contiene los valores de las 8 orientaciones de los 4x4 histogramas componiendo

un vector de características de 128 elementos.

3.5 Speeded Up Robust Features (SURF)El descriptor SURF, fue desarrollado por Herbert Bay et al. [44] como un detector y

descriptor de puntos de interés. El descriptor SURF es muy similar al SIFT pero una

32

Page 51: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3.6 Algoritmo Random Sample Consensus (RANSAC)

velocidad de computo mayor, lo que la hace mas deseable para la implementaciónde sistemas para navegación autónoma.

Las mejoras se logran con la reducción del tamaño y complejidad en el cálcu-lo de los vectores descriptores de los puntos de interés, mientras continúan siendosuficientemente característicos e igualmente repetitivos. Las diferencias más im-portantes respecto del descriptor SIFT son:

• La longitud de los vectores descriptores de los puntos de interés es de 64, loque supone una reducción de la mitad de la longitud del descriptor SIFT.

• El descriptor SURF utiliza siempre la misma imagen, y sobre esa imagenaplica los distintos filtros, lo que posibilita el paralelismo en el procesamien-to.

• Utiliza el determinante de la matriz Hessiana para calcular la posición y laescala de los puntos de interés.

• Utiliza la wavelet de Haar para aproximar los filtros DoG e imágenes inte-grales para la convolución.

3.6 Algoritmo Random Sample Consensus (RANSAC)El algoritmo RANSAC [45] sirve para agrupar el mayor número de puntos posiblesque se ajusten a una función, esto es especialmente útil en este trabajo para descar-tar puntos no coincidentes entre las imágenes. Si no existen un numero suficientede descriptores puede suceder que el algoritmo no converja y si el numero de itera-ciones no es suficiente, es probable que el algoritmo caiga en una mínimo local dela función que describe la distribución de los puntos y el resultado no sea el mejor.

El algoritmo abajo descrito se puede aplicar a los pares de puntos relacionadosque entrega el algoritmo SURF si se les hace una sencilla transformación, queconsiste en mapear los puntos en un plano que tenga como ejes la pendiente y lamagnitud de las linea que los une como se ilustra en la Figura 3.11.

33

Page 52: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

3. FUNDAMENTOS

Figura 3.11: Transformación hecha a los puntos obtenidos del algoritmo SURF paraque el algoritmo RANSAC sea mejor visualizado.

Algoritmo 1 Random Sample Consensus (RANSAC)Funcion: S : menor número de pares requerido

N : número de iteraciones requeridasTh : umbral usado para identificar a un punto que ajusta bienT : número de puntos cercanos requeridos para considerar que un modelo esbueno

Regresa:repetir

Tomar un punto al azarpara cada punto diferente al que se tomó hacer

Medir la distancia de ese punto al punto muestra (D)Si D es menor que Th marcar ese punto como vecino

fin parasi Hay T ó mas puntos vecinos al punto muestra entonces

Hay un buen ajustefin si

hasta que N iteraciones hayan transcurridoUsar el conjunto de puntos correspondientes a uno de los puntos muestra queposea el mayor número de vecinos y que además tenga la menor distanciapromedio hacia ellos

34

Page 53: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

CAPÍTULO

4Diseño e Implementación del

Algoritmo

En este capítulo se explican los componentes del sistema, se describe la formay las condiciones en las que funciona el algoritmo final.

4.1 Características Físicas del SistemaEl sistema consta de un robot móvil de dos ruedas con tracción y una de apoyo, quetransmite la información de los sensores hacia una laptop, esta ejecuta el algoritmoy envía de regreso instrucciones de movimiento al robot. El robot que se usó fueel "Dr. Robot X80SV WiFi Mobile Development Platform"(Figura 4.1), del fabri-cante canadiense "Dr. Robot Inc..el cual es una plataforma robótica de uso especialpara investigación en visión artificial e inteligencia artificial.

El robot tiene las siguientes características principales:

* Cámara con pan-tilt-zoom a color con resolución de 640x480 píxeles.

* Dos motores de 12 Volts con más de 40 kg.cm de torque cada uno.

* Completa comunicación inalámbrica.

35

Page 54: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4. DISEÑO E IMPLEMENTACIÓN DEL ALGORITMO

Figura 4.1: Robot utilizado para la ejecución del algoritmo.

* 3 sensores ultrasónicos y 4 infrarrojos dispuestos en la parte frontal del robot.

* Dimensiones 38cm(largo) x 35cm. (ancho)x 28cm. (alto).

La computadora que se usó tiene un procesador AMD Athlon(tm) X2 Dual-

Core QL-64 a 2.10 GHz y 2 GB. de memoria RAM, a esta se le instaló Matlab

R2014a para usar la paquetería de procesamiento de imágenes más actual y también

se le instaló SharpDevelop 4.3 para programar la interfaz que controla al robot.

4.2 Programación de la Interfaz de NavegaciónLa plataforma robótica Dr. Robot X80SV está diseñada para enviar datos de sus

sensores (cámara y sensores de rango) hacia un PC mediante protocolo IP sobre un

enlace tipo WiFi. Tales datos se pueden recuperar en tiempo real mediante el uso

de funciones API (Application Programming Interface) [46, 47, 48] diseñadas pa-

ra un S.O. Microsoft Windows 7. Estas funciones se pueden acceder desde alguna

rutina escrita en lenguaje Microsoft Visual Basic .NET. Por tal motivo, se desarro-

lló un programa escrito en Visual Basic .NET que funciona como interfaz entre el

robot y un programa escrito en MATLAB llamado razonamiento. Éste último fue

desarrollado para esta tesis y realiza todo el procesamiento y reconocimiento de

las imágenes, toma decisiones y envía órdenes de movimiento. Dichas órdenes son

datos que se envían de regreso al programa de interfaz quien a su vez re-transmite

36

Page 55: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4.2 Programación de la Interfaz de Navegación

al robot los comandos de movimiento en un protocolo adecuado (protocolo propie-

tario interno de las funciones API).

La programación de esta interfaz constituye una de las aportaciones del traba-

jo debido a que se diseñó y programó para que cumpla con características de un

agente de software, se programó para ser escalable y para tener una arquitectura

que facilite su entendimiento.

Por otra parte, el programa escrito en MATLAB llamado razonamiento funge

como el cerebro del robot y está escrito como una sola función que es llamada desde

una función timer ejecutada dentro del código VB.net del programa de interfaz

(consultar [49, 50] para detalles sobre como llamar funciones de MATLAB desde

VB .NET). Aunque dicho timer se manda llamar en intervalos regulares de tiempo,

el programa interfaz está diseñado para tomar en cuenta las posibles demoras de la

función razonamiento. De esta manera, se evita que se ejecute la rutina del timer

cuando todavía está vigente el proceso razonamiento iniciado en un tic anterior

del timer.

El diagrama de flujo general del programa razonamiento se muestra en la

Figura 4.2, el beneficio que se obtiene de guardar todos los parámetros del estado

del robot en cada momento es que durante la ejecución de las pruebas en tiempo

real, el usuario puede detener todo el proceso y reanudarlo en el momento que lo

crea conveniente.

De forma similar, el programa interfaz se diseñó para evitar que el robot reciba

órdenes nuevas en el caso de que todavía no se halla terminado de ejecutar alguna

orden anterior enviada al robot.

En la Figura 4.3 se muestra en bloques azules el flujo del proceso general del

timer programado dentro del programa interfaz. A su vez se ilustra también (bloque

color marrón) la llamada (dentro de dicho timer) a la función razonamiento escrita

en MATLAB.

El programa de interfaz escrito en VB .NET se diseñó exclusivamente para

realizar transferencia de datos de sensado y órdenes entre el robot y la función

razonamiento (escrita en MATLAB). Dicho programa no realiza por tanto proce-

sos de reconocimiento de imágenes ni toma de decisiones.

37

Page 56: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4. DISEÑO E IMPLEMENTACIÓN DEL ALGORITMO

Figura 4.2: Estructura de la rutina razonamiento que se encarga de crear y actualizarlas bases de datos que guardan el estado del robot y la bitácora de instrucciones, ade-más de que decide a que grupo de funciones se llama en función de la información delos sensores y del conocimiento del estado del robot.

38

Page 57: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4.2 Programación de la Interfaz de Navegación

Figura 4.3: Estructura de la rutina principal que sirve como interfaz entre Matlab yel robot y que se encarga también de administrar la diferencia de tiempos de ejecuciónque existe entre estos

39

Page 58: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4. DISEÑO E IMPLEMENTACIÓN DEL ALGORITMO

En los dos lenguajes, la programación fue modular y con el menor numero devariables globales, para así lograr un mejor manejo y entendimiento de cada una delas etapas del procesamiento.

La interfaz esta hecha para usarla en modo entrenamiento o en modo nave-gación autónoma. En el modo de entrenamiento la interfaz manda llamar a unafunción MATLAB llamada construiruta la cual se encarga de capturar y alma-cenar las imágenes del recorrido. Para el modo entrenamiento se habilita el botón“Mover” y las cajas de texto para indicar el giro y la distancia que se desee. Parael modo navegación autónoma se habilita el botón “Seguir Ruta” como se ve en laFigura 4.4.

Figura 4.4: Se muestra la interfaz programada para controlar el robot X80SV y laforma en que fluyen los datos durante la ejecución.

4.3 Diseño del Algoritmo de NavegaciónLos programas finales, tanto la interfaz como la rutina razonamiento son resulta-do de la optimización de parámetros y numerosas pruebas comparativas entre dosenfoques de navegación (usando comparación de plantillas por coeficiente de co-rrelación y usando correspondencia de imágenes mediante puntos SURF) usandovisión artificial basada en apariencia.

El esquema de navegación que se programó para ambos enfoques de navegaciónconstó de dos etapas, una de entrenamiento y otra de navegación autónoma. En elentrenamiento, el robot es guiado por el usuario a través de un entorno para registraruna secuencia de imágenes de la ruta. Posteriormente, el robot se desenvolverá demanera autónoma para repetir el recorrido. Se escogió una distancia de 0.3 metros

40

Page 59: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4.3 Diseño del Algoritmo de Navegación

para que fuera el paso de avance del robot, con cada paso del robot se va creandouna base de datos de la ruta en donde se almacenan tres imágenes de la vista frontalcomo se ve en la Figura 4.5.

Figura 4.5: El entrenamiento se forma con la concatenación de 3 imágenes corres-pondientes a la vista frontal y las laterales, estas imágenes se toman desde el inicio ycada 30 cm. durante todo el recorrido de entrenamiento.

La imagen almacenada está compuesta por una fotografía central y dos late-rales, logrando así un ángulo de visión aproximado de 228 grados (es decir, secapturan 3 imágenes por cada paso de ruta). Una vez entrenada la ruta, se colocaal robot en el punto de inicio para realizar el recorrido autónomo, este comienzahaciendo uso únicamente de la información visual que entrega la cámara y continúaasí hasta el momento de detectar un obstáculo.

Para comenzar a recorrer la ruta lo primero que se necesita es conocer la posi-ción y la orientación del robot. En las condiciones actuales la posición se conocedado que es una condición de inicio que el robot siempre comience desde la posi-ción 1 de la ruta entrenada, no siendo así la orientación precisa. Y para esta tarease diseñaron y programaron dos estrategias que se explican a continuación.

41

Page 60: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4. DISEÑO E IMPLEMENTACIÓN DEL ALGORITMO

4.3.1 Enfoque usando Comparación de Plantillas con el Coefi-ciente de Correlación

En este caso, para conocer la orientación se cuenta con la imagen de la posición ac-

tual almacenada en memoria, sobre la que se comparará la vista que el robot acaba

de capturar en el comienzo de la navegación autónoma. Esto se hace comparando

la imagen de la vista actual del robot y segmentos del mismo tamaño de la ima-

gen almacenada en memoria, la similitud se establece calculando el coeficiente de

correlación con cada uno de los segmentos.

Dependiendo del punto en el que el coeficiente de correlación entre la imagen

actual y la imagen del banco sea mayor, se genera una posible respuesta de movi-

miento que puede ser giro a la izquierda, giro a la derecha ó avance hacia el frente;

la amplitud en los giros depende de la distancia en píxeles de donde se encontró el

valor máximo del coeficiente de correlación respecto del centro de la imagen como

se ejemplifica en la Figura 4.6.

En el caso particular del ensamble del robot, cada grado de la cámara corres-

ponde al desplazamiento de 4.2 píxeles, por lo tanto como la imagen almacenada

mide 960 píxeles de largo, el máximo ángulo de corrección de orientación aproxi-

mado es de 76 grados.

4.3.2 Enfoque usando descriptores SURF y RANSAC

De un modo similar a lo descrito anteriormente, se calcula el ángulo que el robot

tiene que girar para quedar orientado correctamente en la ruta, pero en este caso,

esa distancia en píxeles es definida por la separación espacial en píxeles que existe

entre los puntos SURF encontrados en la imagen recién adquirida y los puntos

encontrados en la imagen panorámica del entrenamiento.

Dado que la imagen panorámica se forma con la concatenación de tres imá-

genes por lo tanto ésta es tres veces mas ancha que la imagen recién adquirida y

debido a que el algoritmo surf es dependiente del tamaño de las imágenes, la ob-

tención y comparación de los descriptores se hizo entre la imagen recién adquirida

y cada una de las imágenes que componen la imagen panorámica como se ilustra

en la Figura 4.7.

42

Page 61: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4.3 Diseño del Algoritmo de Navegación

Figura 4.6: Cuando la imagen que captura el robot durante la navegación autónomase compara a todo lo largo de la imagen panorámica del entrenamiento, se calcula elcoeficiente de correlación entre las imágenes en cada posición del desplazamiento, sila imagen fuera muy similar desde el inicio de la comparación el vector de correlaciónresultante sería como el azul y el ángulo de corrección sería de 76°, en el caso de quevalor máximo se diera en el píxel 320 el vector sería similar al rojo y el ángulo decorreción sería 0°, por último si la maxima coincidencia se diera en el píxel 640 elvector se vería como el verde y el ángulo de corrección sería de -76°

43

Page 62: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4. DISEÑO E IMPLEMENTACIÓN DEL ALGORITMO

Figura 4.7: Para encontrar el ángulo de corrección de orientación, primero se defineen que lado de la panorámica esta la mejor correspondencia y después se cuentan lospíxeles que separan los puntos coincidentes.

44

Page 63: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4.4 Evasión de Obstáculos

La correspondencia entre las posiciones se establece después de haber obtenido

sus descriptores y después de haberlos limpiado de falsas coincidencias aplicándo-

les el algoritmo RANSAC a todos los puntos encontrados, esto asegura que en la

mayoría de los casos los puntos en las dos imágenes corresponden con la misma

posición de la ruta como se ejemplifica en la Figura 4.8.

Figura 4.8: Una vez que el conjunto de puntos coincidentes está limpio de falsas co-rrespondencias, la componente horizontal de linea amarilla que los une es la distanciaen píxeles que después se multiplica por una constante (4.2) para conocer los gradosque se deben girar.

4.4 Evasión de ObstáculosEl algoritmo de evasión de obstáculos comienza durante la etapa de navegación

autónoma. La detección de un obstáculo por los sensores frontales del vehículo

es lo que provoca que inicie la evasión. La Figura 4.9 muestra el rango de visión

que tiene la plataforma y el modo en que se define un perfil para la lectura de los

sensores y así tener una región de sensado.

Una vez detectado el obstáculo por los sensores de rango frontales, se adquiere

una imagen de la vista frontal para compárala con la imagen de la base de datos

en esa posición. Estas dos imágenes son restadas para detectar el obstáculo. Si las

dos imágenes fueran idénticas a excepción del obstáculo, el resultado después del

proceso de binarización sería una imagen blanca del obstáculo con fondo negro.

Sin embargo en la práctica, en la imagen resultante aparecen otras marcas debido

45

Page 64: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4. DISEÑO E IMPLEMENTACIÓN DEL ALGORITMO

Figura 4.9: El rango de medición de los sensores integrados en la plataforma eslimitado a quedar dentro del recuadro verde, porque como existen regiones ciegas nose puede confiar en las lecturas de distancias grandes (para las pruebas los frontales selimitan a 0.45 m. y los laterales 0.20 m.)

46

Page 65: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4.4 Evasión de Obstáculos

a la desviación existente entre la posición del robot durante el entrenamiento y la

posición durante el recorrido autónomo.

Para poder determinar de un modo más aproximado el ancho del obstáculo y

así calcular el mejor ángulo de giro y distancia de avance para el primer paso de la

evasión, se tienen que eliminar los rastros de imágenes adicionales como las mos-

tradas en la Figura 4.10. Para este propósito se “erosiona” la imagen, obteniendo así

una reducción de otros restos. Sin embargo, este procedimiento reduce también el

ancho del objeto, por lo que es necesario recuperar el ancho mostrado de la imagen

original y para esa tarea se “dilata” quedando una imagen final como en la Figura

4.11.

Figura 4.10: Imagen resultante de la resta y la binarización de un obstáculo conrastros de entorno provocados por la desviación existente entre la posición del robotdurante el entrenamiento y la posición durante el recorrido autónomo

Figura 4.11: Imagen limpia de artefactos para poder calcular el ángulo de evasión

Una vez detectado y aislado el obstáculo, se cuentan los píxeles libres que hay

entre los costados de la imagen que y el obstáculo detectado para después calcular

47

Page 66: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4. DISEÑO E IMPLEMENTACIÓN DEL ALGORITMO

el ángulo de giro y la distancia de desplazamiento, de tal modo que el vehículo no

toque el obstáculo como se ilustra en la Figura 4.12.

Figura 4.12: Cuando es detectado el obstáculo, se realiza la segmentación con la restay la binarización de las imágenes, para después con ayuda de los sensores y el anchocalculado de la imagen usando el teorema de pitágoras para conocer al ángulo y ladistancia necesarios para hacer que el robot quede a un costado del objeto

Una vez asegurado el primer paso de evasión, el vehículo tiene que continuar

librando el obstáculo y regresar a la ruta, sin embargo la identificación de la posi-

ción cuando el robot esta fuera de la trayectoria entrenada no se puede determinar

del mismo modo que se hace cuando se sigue la ruta sin obstáculos debido a que no

se posee más información visual del mundo circundante. Por lo tanto los siguientes

pasos de la evasión se tienen que hacer usando información con la que sí se cuente.

Dichos pasos, comienzan haciendo uso de la información generada cuando ini-

ció la navegación autónoma y se creó la “Base de Conocimiento”. En esta base de

datos se almacena la información de la reconstrucción de la ruta, esta reconstruc-

ción se hace obteniendo el ángulo que existe entre imágenes consecutivas de la ruta

entrenada aplicando el algoritmo SURF, de este modo se puede aproximar la forma

del recorrido.

48

Page 67: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4.4 Evasión de Obstáculos

Dado que cuando se crea la base de conocimiento se conoce la distancia entre

cada punto de ruta, ya que por consenso el avance siempre es de treinta centímetros

y también se pudo estimar el ángulo que existe entre cada posición de la ruta. Es

posible hacer una aproximación de la localización del robot en cada movimiento

de evasión y de la posición hacia la que el robot debe ir cuando se desvió de la ruta

debido a un obstáculo, en al Figura 4.14 se muestra el proceso que se realiza en

cada punto de la evasión que se realiza.

La estimación de la posición en cada movimiento de evasión y el cálculo de

la trayectoria para regresar a la ruta se hacen en primer lugar, creando un plano

cartesiano en el que el origen es el punto en donde se inicio la evasión, la trayectoria

de retorno a la ruta es el vector resultante de la resta entre el vector resultante del

avance y el vector resultante de la evasión. Como le reconstrucción de la ruta es una

aproximación que tiende a acumular error en cada paso estimado, no sería correcto

usar todos los puntos de ruta para estimar la posición de retorno a la ruta, es por

eso que únicamente se considera la aproximación a los siete puntos posteriores al

inicio de la evasión. La Figura 4.13 ejemplifica la forma en la que se hace el calculo

de los vectores, la Figura 4.15 muestra la reconstrucción estimada de una ruta y el

pseudocódigo siguiente describe el código iterativo para regresar a la ruta.

Pseudocódigo del cálculo de la trayectoria de regreso a ruta (VB.Net)

al principio se muestra el listado de la definición de las variables que se

usarán e inmediatamente después se presenta el pseudocódigo de la funcion

Pi = Posición de inicio de evasión.

Pr = Punto de la ruta al que se regresó después de la evasión

Cx = Componente sobre el eje x del avance entre un punto de ruta y el anterior.

Cy = Componente sobre el eje y del avance entre un punto de ruta y el anterior.

Cex = Componente sobre el eje x del avance entre un punto de evasión y el anterior.

Cey = Componente sobre el eje y del avance entre un punto de evasión y el anterior.

θ = Ángulo de giro entre un punto de ruta y el anterior.

D = Distancia entre un punto de ruta y el anterior.

CxT = Suma de todas las componentes en x de la ruta.

CyT = Suma de todas las componentes en y de la ruta.

49

Page 68: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4. DISEÑO E IMPLEMENTACIÓN DEL ALGORITMO

Ne = Número de movimientos evasivos.

Dtex = Suma de todas las componentes en x de la evasión.

Dtey = Suma de todas las componentes en y de la evasión.

Drr = Distancia para regresar a un punto de ruta.

Arr = Ángulo para regresar a un punto de ruta.

Para i← Pi hasta Pr hacer

Si θ 6= (0 and 90 and 180 and 270)

Cx(i)← Cos( θ(i)D(i)

)

Cy(i)← Sen( θ(i)D(i)

)

Si no entonces

Cx(i)← D(i) ∀ θ ε {0, 180}Cy(i)← D(i) ∀ θ ε {90, 270}

Fin Si

CxT ← CxT + Cx(i)

CyT ← CyT + Cy(i)

Fin Para

Para i← 1 hasta Ne hacer

Dtex← Dtex+ Cex(i)

Dtey ← Dtey + Cey(i)

Fin Para

Drr ←√

(CxT −Dtex)2 + (CyT −Dtey)2

Arr ← sin−1(sen90 ∗ (CyT −Dtey)

Drr)

El comportamiento descrito anteriormente se repite cada vez que el vehículo

realiza un paso para evadir los obstáculos, si el obstáculo fuera pequeño; la detec-

ción del obstáculo, la primera evasión y el cálculo de la trayectoria de regreso, seria

suficiente para que el robot regresara a la ruta. Pero como la mayor parte del tiem-

po, los obstáculos no son tan pequeños, fue necesario programar una rutina para

poder rodear obstáculos que tuvieran formas irregulares y grandes en comparación

con el robot y sus avances.

Para hacer que el robot pudiera evadir obstáculos más grandes e irregulares,

lo que se necesitó fue hacer una buena determinación de hacia dónde se tiene que

50

Page 69: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4.4 Evasión de Obstáculos

Figura 4.13: El objetivo principal es determinar la dirección y la distancia necesariapara regresar a la ruta durante el proceso de evasión y para esto se necesitan el vectorresultante del entrenamiento y el vector resultante de la evasión.

51

Page 70: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4. DISEÑO E IMPLEMENTACIÓN DEL ALGORITMO

Figura 4.14: Ejemplo de como es que se consideran solamente siete puntos poste-riores al punto de inicio de la evasion para regresar a la ruta cuando se esta en unaposición fuera de la ruta durante la evasión de algún obstáculo.

Figura 4.15: La ruta entrenada (verde) difiere de la ruta reconstruida (negro) porqueesta última acumula error a lo largo de toda la reconstrucción

52

Page 71: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4.4 Evasión de Obstáculos

orientar el robot cuando intenta regresar a la ruta, y el modo en que se tiene quegenerar la trayectoria de evasión. En primer lugar se determina el punto hacia don-de el robot debe orientarse para intentar regresar a la ruta, se considera un puntoobjetivo al punto de ruta con la distancia mínima a la posición actual del robot.En segundo lugar para continuar generando la ruta de evasión, se consideran lossensores de rango frontales para que en cada intento de regresar a la ruta, los sen-sores indiquen si hay espacio libre para regresar o si se tiene que girar para intentarregresar después de una avance como se ejemplifica en la Figura 4.16.

Figura 4.16: Ilustración del modo en que se usan los sensores de rango para producirun giro y permitir los avances durante el proceso de evasión

Para usar los sensores de rango en la evasión de los obstáculos, se definió unrango seguro de la lectura de cada uno de los sensores frontales y se programó unafunción para que el robot girara a una velocidad constante mientras la lectura de sussensores estuvieran fuera del rango de seguridad para posteriormente avanzar. Larutina que se programó toma en cuenta las características físicas de la plataformamóvil para calcular el ángulo girado, a continuación se muestra su pseudocódigo.

Pseudocódigo dela función programada para girar hasta que los sensores del robot indiquen

53

Page 72: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4. DISEÑO E IMPLEMENTACIÓN DEL ALGORITMO

lo contrario (VB.Net):Srf = Lectura en sensores de rango frontalesRs = Rango seguro para desplazamientoAg = Ángulo giradoLca = Lectura de los codificadores antes del giroLcd = Lectura de los codificadores antes del giroRll = Radio de las llantas del robotSell = Separación entre las llantas del robotPpv = Pulsos por vueltaMientras Srf < Rs hacer

Girar a una velocidad constanteFin Mientras

Ag ←=2 ∗ (Lcd− Lca) ∗Rll ∗ 360

Sell ∗ Ppv

Una vez comenzada la evasión, es necesario que el vehículo se ajuste a lascondiciones del obstáculo y sea capaz de regresar a la ruta.

Para este fin se sigue la estrategia de la Figura 4.17.

54

Page 73: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

4.4 Evasión de Obstáculos

Figura 4.17: Diagrama de flujo de la función de evasión

55

Page 74: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme
Page 75: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

CAPÍTULO

5Resultados

En este capítulo se presentan, explican y analizan los experimentos que se hi-cieron con el robot para definir el modo en que quedó la implementación final delprograma.

Los dos métodos que se implementaron (comparación de plantillas y detecciónde características SURF) tienen ventajas y desventajas uno respecto del otro. Den-tro de un cierto rango de pequeñas variaciones de iluminación, perspectiva y escala,los dos métodos permiten hacer la correspondencia entre dos imágenes del mismolugar. Sin embargo, cuando los cambios en iluminación son grandes, los resultadosdemostraron que el método que utiliza las características SURF para encontrar lacorrespondencia supera al método de comparación de plantillas.

El método que usa el algoritmo SURF detecta de puntos de interés en la imageny por cada de éstos calcula un vector descriptor asociado. Este conjunto de puntoscaracteriza a una imagen. El descriptor de cada punto encontrado describe la regiónque rodea a dicho punto y es invariante o inmune (hasta cierto grado) a la rotación,cambio de escala e iluminación. Esta inmunidad es ventajosa pues permite reco-nocer lugares aún cuando existan cambios en iluminación, rotación y escala entrela imagen actual y aquella almacenada en la memoria del robot. Como aspectosmenos favorables de los puntos SURF, es que este método resulta dependiente deltamaño de las imágenes a las que se aplique y que se obtienen malos resultados al

57

Page 76: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5. RESULTADOS

hacer la correspondencia entre descriptores cuando las imágenes son pequeñas o

bien, cuando tienen texturas repetitivas.

En el método de comparación de plantillas usando como medida de similitud el

coeficiente de correlación, el valor del coeficiente de correlación entre imágenes

con distinta iluminación mantiene su valor máximo, siempre y cuando el cam-

bio de iluminación modifique uniformemente (linealmente) a la imagen. Cuando

el cambio de ilumninación produce artefactos (manchones de luz o sombras de

proyección) que no existían en la imagen original, la comparación de plantillas

mediante coeficiente de correlación no dará buenos resultados. Esto hace que es-

te método funcione bien solamente cuando los cambios de iluminación sean muy

uniformes sobre toda la imagen. En contraste, el método que utiliza puntos SURF

puede tolerar bien variaciones no uniformes de iluminación. Por otra parte, y como

una posible ventaja del método de comparación de plantillas, es que éste no tiene

restricciones evidentes en el tamaño de las imágenes que se usan.

Se implementaron dos programas en Matlab que realizan la tarea de decidir el

movimiento del robot en función de la comparación entre la imagen actual que ve

el robot y un banco de imágenes de entrenamiento de ruta almacenadas en su me-

moria. El primer programa se desempeña usando el método de la comparación de

imágenes mediante el coeficiente de correlación. El segundo método utiliza puntos

SURF para desempeñar la misma tarea. Se diseñaron experimentos y se estable-

cieron condiciones que ayudaron a contrastar el desempeño de cada uno de los

métodos.

Antes de definir los experimentos para contrastar el desempeño, se hizo un

análisis de las condiciones en las que funcionarían los métodos.

Debido a que el método que usa el algoritmo SURF es dependiente del tamaño

de las imágenes, se hicieron pruebas para encontrar un tamaño de imagen en el

que se pudieran generar el mayor número de puntos y el requerimiento de memoria

fuera bajo, resultando un tamaño de imagen de 320 x 240 píxeles.

Una vez seleccionado el tamaño de la imagen, se hicieron pruebas de compa-

ración de imágenes reales del entorno a navegar y se pudo observar que la vista

cuadriculada del suelo se convierte en una textura que provoca falsos positivos al

momento de hacer coincidir los descriptores de la imagen de entrenamiento con los

de la imagen de la navegación. Por lo tanto, se eliminó la mayor parte del piso al

58

Page 77: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5.1 Experimentos de Navegación y Evasión

momento de obtener los descriptores, esto se hizo tomando una región de interés

(ROI) que considera las 160 filas superiores y todas las columnas. Esto puede ser

considerado valido para anular la textura del piso, siempre y cuando la línea de

horizonte se mantenga en una posición constante durante todo el recorrido, lo que

es precisamente así cuando la navegación es en entornos estructurados donde no

existen desniveles en el terreno como se ve en la Figura 5.1.

Figura 5.1: Debido a que la linea de horizonte se mantiene constante durante todo elrecorrido, es posible dejar de considerar la mayor parte del suelo en la búsqueda dedescriptores

Para el método de comparación de plantillas el tamaño de la imagen seleccio-

nada también fue de 320 x 240 píxeles, simplemente por homogeneidad, pero el

tamaño mínimo que pudiera usarse esta únicamente limitado por la cantidad de in-

formación diferenciable en las imágenes. El tamaño del segmento de panorámica

que se compara para obtener el vector de coeficientes de correlación también se

ajustó a un tercio del tamaño total de la panorámica, este tamaño hace que el nú-

mero de comparaciones que se ejecutan sea menor y permite obtener una tasa muy

baja de falsos positivos.

5.1 Experimentos de Navegación y EvasiónUna vez seleccionados los parámetros para el funcionamiento de cada uno de los

métodos se diseñaron y realizaron experimentos para comparar su desempeño, en

algunos experimentos se cambiaron las condiciones del entorno entre el entrena-

miento y la navegación.

59

Page 78: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5. RESULTADOS

5.1.1 Experimento 1

Se entrenó una ruta con 2 curvas y 29 posiciones, con iluminación constante y sin

variaciones en la posición de inicio del seguimiento lo que provoca que no exista

variación en la escala ni en la perspectiva de las imágenes. Este experimento se hizo

para comparar el error de posición que tiene cada método durante el seguimiento de

rutas con una iluminación, escala y perspectiva constantes entre el entrenamiento y

la navegación como se ve en la Figura 5.2 y en la Figura 5.3.

Figura 5.2: Se hicieron 5 seguimientos de una ruta con veintinueve posiciones, seobserva que la desviación estándar de los errores es cercano a 3 cm. en promedio, lasubida del error al final de las posiciones es provocada por la curva al final del recorrido

De este experimento se puede concluir que el error de posición que se genera

durante el seguimiento de la ruta usando descriptores SURF puede ser mayor de-

bido a que los puntos que entrega son invariantes a la rotación, a la escala y a la

iluminación, por lo tanto, su valor es muy similar entre imágenes en las que existan

estas variaciones, en otra palabras, el método estima que la desviación es menor de

lo que realmente es cuando la diferencia en las imágenes es pequeña. Por otro lado,

en el método de comparación de plantillas cualquier desviación por mínima que

60

Page 79: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5.1 Experimentos de Navegación y Evasión

Figura 5.3: Se hicieron 5 seguimientos de una ruta con veintinueve posiciones, semuestra que la desviación estándar de los errores es aproximadamente 5 cm. en pro-medio, la subida del error al final de las posiciones es provocada por la curva al finaldel recorrido

61

Page 80: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5. RESULTADOS

sea se ve reflejada en el vector de coeficientes de correlación, lo que provoca que

en cada avance el error de posición se reduzca lo mayor posible antes de avanzar

al próximo punto de ruta y por lo tanto la variación del error de posición en cada

punto de ruta es menor.

5.1.2 Experimento 2

Este experimento se diseño para complementar la prueba anterior y averiguar si a

lo largo de una ruta grande era posible que alguno de los 2 métodos acumulara su-

ficiente error de posición como para no terminar de seguir la ruta, en esta prueba se

entrenó una ruta de 24.3 metros con 81 posiciones y 4 curvas como se ve en la Fi-

gura 5.4, también se mantuvieron constantes los parámetros de escala, perspectiva

e iluminación.

Figura 5.4: Ambos métodos se probaron dentro de una ruta larga, para poder de-terminar si alguno acumulaba un error de posición que le impidiera terminar con elseguimiento de la ruta y como se ve ambos métodos terminaron el seguimiento conmanteniendo un error casi constante

62

Page 81: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5.1 Experimentos de Navegación y Evasión

De este experimento se concluye que los dos métodos son capaces de seguir

rutas largas y mantener un error relativamente constante hasta el final del recorrido.

5.1.3 Experimento 3

Para este experimento se modificó la posición de inicio del seguimiento con una

desviación de veinte centímetros a la izquierda y de veinte centímetros a la derecha

como se ve en las Figuras 5.5, 5.6, 5.7 los parámetros de iluminación, escala y

perspectiva siguen constantes entre el entrenamiento y la navegación.

Figura 5.5: Gráfica de errores de posición durante el seguimiento de una trayectoriaque inició con un error de posición inicial de 20 cm. para ambos métodos, se puedeobservar que las correspondientes a al método de comparación de plantillas tienen me-nos dispersion y las correspondientes al uso de puntos SURF tienen mayor dispersion,pero no es evidente cual de los dos métodos tiene mayor error al final de recorrido.

De este experimento se puede concluir que aún cuando existe un error pro-

vocado, el robot es capaz de seguir y terminar el recorrido de la ruta con ambos

métodos.

63

Page 82: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5. RESULTADOS

Figura 5.6: Se hicieron dos seguimientos de ruta con 20 cm. por detrás de la posicióndel punto inicial, el seguimiento 1 corresponde al método de comparación de plantillasy el seguimiento 2 corresponde al método que usa SURF.

64

Page 83: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5.1 Experimentos de Navegación y Evasión

Figura 5.7: Se hicieron dos seguimientos de ruta con 20 cm por delante de la posicióndel punto inicial, el seguimiento 3 corresponde al método de comparación de plantillasy el seguimiento 4 corresponde al método que usa SURF.

65

Page 84: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5. RESULTADOS

5.1.4 Experimento 4En este experimento se modificó el entorno de la navegación con algún objeto que

no obstruyera la ruta, En la Figura 5.9 se muestra el impacto del objeto sobre el

vector de coeficientes de correlación del método de comparación de plantillas y en

la Figura 5.8 se muestra en impacto que tiene el objeto en la determinación de la

ruta usando descriptores SURF.

Figura 5.8: En la superposición de la imagen con obstáculo (pasillo con silla)y dela imagen sin obstáculo (pasillo sin silla) se puede ver que los puntos descriptoresaparecen en las regiones donde no se produjo un cambio significativo y por lo tanto espositiva la identificación de la posición y el seguimiento de la ruta puede continuar

Lo que se concluye del cuarto experimento es que el método de comparación

de plantillas tiene una limitante importante que puede provocar que el robot no

termine el seguimiento de la ruta, se presenta cuando el objeto que modifica la

vista se encuentra en la dirección del avance y tiene el tamaño suficiente para crear

un falso positivo en el vector de coeficientes de correlación. En cambio, en el otro

método no existe restricción sobre la ubicación del objeto y el tamaño de este puede

ser significativamente mayor, siempre y cuando en la imagen obstruida existan 4 o

más descriptores que correspondan con la imagen del entrenamiento.

66

Page 85: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5.1 Experimentos de Navegación y Evasión

Figura 5.9: La imagen A corresponde a la imagen panorámica de un punto de ruta, By D son el resultado del cálculo del coeficiente de correlación de C y E a todo lo largode A, El máximo valor en B es de 0.8 y se encuentra en la posición esperada ya queC se encuentra en la parte central de A. Por otro lado en D se observa que el máximovalor es de 0.4 y se encuentra cerca del píxel 100 y por tanto es un ejemplo de unarespuesta errónea provocada por el obstáculo que hay en la imagen E

67

Page 86: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5. RESULTADOS

5.1.5 Experimento 5

Este experimento se hizo para determinar que método se ve menos afectado por

cambios en la iluminación. El entrenamiento de la ruta se realizó con iluminación

artificial constante sin interferencia de luz del exterior y el seguimiento de la ruta se

hizo con los parámetros de escala y perspectiva constantes, pero con la iluminación

modificada por la luz del exterior que entró por las ventanas, puertas, rendijas, etc.

Cuando se utilizó el método que usa el algoritmo SURF para el seguimiento,

el robot logró terminar su recorrido, en la Figura 5.10 se muestra un ejemplo de

comparación entre imágenes con estas nuevas condiciones de iluminación.

Cuando se utilizó el método de comparación de plantillas en el seguimiento,

como se ve en la Figura 5.11 el robot no logró completar el recorrido porque el

vector de coeficientes de correlación entregó valores muy pequeños (menores a

0.5), lo que generó en muchos casos falsos positivos y por lo tanto la incapacidad

de seguir con la ruta desde los primeros puntos.

De este quinto experimento se concluye que el cambio en iluminación provo-

cado por la luz del exterior, no modifica uniformemente la imagen porque que hace

aparecer artefactos, por lo tanto, cuando se calcula el coeficiente de correlación en-

tre las imágenes de la misma posición el resultado se asemeja al obtenido cuando se

comparan dos imágenes de distintas. En cambio, el método que usa los descriptores

SURF sigue siendo capaz de relacionar las imágenes con los puntos que aparecen

en las regiones de las imágenes con menos cambio.

5.1.6 Experimento 6

Continuando con la comparativa, se colocó un obstáculo dentro del recorrido de la

ruta, que no existía durante el entrenamiento. La evasión de obstáculos se hace sin

usar la visión artificial debido a que el robot no cuenta con imágenes almacenadas

en memoria que le permitan seguir una trayectoria distinta a la entrenada, es por eso

que los métodos de visión artificial usados, solo se ven afectados por el obstáculo

antes de que los sensores de rango indiquen la presencia de éste y el desempeño de

los 2 métodos es muy similar al mostrado por en las pruebas 4 y 5.

68

Page 87: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5.1 Experimentos de Navegación y Evasión

Figura 5.10: La imagen A corresponde a una imagen almacenada durante un en-trenamiento (circulo rojo) tomada sin alteraciones de luz provenientes del exterior, laimagen C corresponde a una imagen de la misma posición de ruta que A pero concambios en la iluminación provocados por luz del exterior (cruz verde), la imagen Ecorresponde a la superposición de las imágenes A y C donde se observan mas de 20descriptores coincidentes a pesar de existir diferencias en la iluminación. Las imáge-nes B, D y F corresponden a otro ejemplo, pero en ese caso es notable la disminuciónde descriptores encontrados debido a que en la mayor parte del suelo no se buscandescriptores, también porque en la región de la puerta los cambios son muy marcadosy finalmente porque en regiones casi homogéneas como en las paredes no es probableencontrar descriptores.

69

Page 88: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5. RESULTADOS

Figura 5.11: La imagen A corresponde a la imagen panorámica de un punto de ruta, By D son el resultado del cálculo del coeficiente de correlación de C y E a todo lo largode A, El máximo valor en B es de 1 y se encuentra en la posición esperada ya que Ces la imagen central de A y no presenta cambios en la iluminación. Por otro lado en Dse observa que el máximo valor es de 0.3 y se encuentra cerca del píxel 80 y por tantoes un ejemplo de una respuesta errónea provocada por los cambios de iluminación quehay en la imagen E.

70

Page 89: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5.1 Experimentos de Navegación y Evasión

5.1.7 Experimento 7Buscando lograr una prueba que evidenciara las ventajas de un método respectodel otro se compararon los métodos en un ambiente con multiples cambios visua-les, provocados por objetos que modificaran el ambiente a todo lo largo de la rutaentrenada. En la Figura 5.12 se observa el resultado de comparar ambos métodosen estas nuevas condiciones.

Figura 5.12: Cuando existen multiples cambios provocados por objetos que modi-fican la vista del robot a lo largo de la ruta, el método de comparación de plantillasno logra identificar la posición desde el primer obstáculo, El algoritmo SURF hace unseguimiento de ruta sin variaciones en el numero de pasos ejecutados y sin perturba-ciones en la ruta seguida

Por tanto se puede concluir que el método donde se usa el algoritmo SURF esbastante mas robusto a los cambios visuales que generan los obstáculos, no impor-tando el tamaño y la posición de estos. La condición extrema en la que el obstáculopodría afectar a este método se presentaría cuando el fondo fuera homogéneo y elobstáculo fuera el único que provocara la generación de los descriptores. Por otro

71

Page 90: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

5. RESULTADOS

lado el método de comparación de plantillas falla cuando los obstáculos se encuen-tran en la dirección del avance y modifican la imagen lo suficiente para provocarfalsos positivos.

72

Page 91: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

CAPÍTULO

6Conclusiones y trabajo

futuro

6.1 Conclusiones de las pruebas realizadasDespués de haber hecho la implementación y las pruebas comparativas las conclu-siones a las que se llega en este trabajo son las siguientes.

• El método de comparación de plantillas usando como medida de similitud elcoeficiente de correlación tiende a entregar un mayor número de falsos posi-tivos debido a la similitud que existe a lo largo de un ambiente estructuradocomo en el caso de pasillos de edificios. Los falsos positivos en el métodoque usa el algoritmo SURF se dan cuando el número de puntos encontradoses pequeño y no hay una mayoría significativa que indique el desplazamientoo también pueden ser causados porque el algoritmo RANSAC no asegura enel 100 % de los casos obtener la mejor respuesta.

• Cuando las condiciones del entorno son constantes, el uso de descriptoresSURF y el uso de comparación de plantillas entregan resultados muy simila-res. Sin embargo, cuando se modifica el entorno el resultado es muy favorablepara el método de los descriptores SURF.

73

Page 92: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

6. CONCLUSIONES Y TRABAJO FUTURO

• Por las características mencionadas del método que usa SURF, el entrena-miento y la navegación autónoma se puede lograr a pesar de que existanobjetos en movimiento dentro del recorrido, esto, siempre y cuando no seandetectados dentro del rango considerado para la evasión. Estas condicionesno son posibles para el método de comparación de plantillas.

• Si se deseara aplicar el algoritmo de navegación para una aplicación en laque existiera una memoria limitada, en la fase de entrenamiento se tendríaque ejecutar el algoritmo SURF y almacenar únicamente los puntos y losdescriptores asociados en lugar de las imágenes, ya que guardar las imágenesdel tamaño necesario para obtener los descriptores incrementaría el consumode memoria.

Por lo tanto el algoritmo final usa el método de los descriptores SURF para elseguimiento de ruta, ya que es más robusto a cambios de iluminación, oclusiones ymodificaciones parciales del ambiente.

De acuerdo a los objetivos establecidos al inicio de este trabajo de tesis y conlos resultados obtenidos durante, se concluye que se han cumplido los objetivosplanteados.

6.2 Ponencia resultado del trabajo de investigaciónA partir del trabajo realizado, se generó una ponencia:

• Pedro Alejandro De Jesús González,Algoritmo de visión basado en aparien-

cia para navegación autónoma con capacidad de evadir obstáculos, PrimerEncuentro Nacional de Matemáticas Aplicadas a la Ciencias Computación yla Electrónica (ENMATCE), Facultad de Ciencias de la Computación (FCC),Benemérita Universidad Autónoma de Puebla (BUAP), Junio 2014, Puebla,Pue.-México, Ponente.

6.3 Trabajo futuroComo posibles líneas de investigación para lograr que el robot navegue y evadamanera mas rápida y efectiva propongo:

74

Page 93: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

6.3 Trabajo futuro

* Usar un algoritmo de segmentación de suelo para que en la evasión de obs-táculos se complemente la información de los sensores de rango.

* Incluir la estimación de pose para hacer una mejor corrección de posicióndurante la navegación autónoma.

* Usar una implementación en FPGA para hacer el calculo de los descriptoresSURF y así mejorar la velocidad de ejecución del algoritmo.

* Incluir el modelo dinámico y cinemático para controlar los movimientos delvehículo.

* Incluir el uso de sensores de rango laser para que conjuntamente con la cá-mara se pueda hacer una estimación en 3D del entorno circundante.

* Agregar otro tipo de procesamiento a las imágenes con el objetivo de lograrhacer navegación en exteriores.

75

Page 94: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme
Page 95: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

6.3 Trabajo futuro

q

77

Page 96: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme
Page 97: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

Bibliografía

[1] David G Lowe. Distinctive image features from scale-invariant keypoints.

International journal of computer vision, 60(2):91–110, 2004. xiii, xiv, 24,

28, 29, 32

[2] Seiichi Arima, S Shibusawa, N Kondo, and Jun Yamashita. Traceability based

on multi-operation robot; information from spraying, harvesting and grading

operation robot. In Advanced Intelligent Mechatronics, 2003. AIM 2003. Pro-

ceedings. 2003 IEEE/ASME International Conference on, volume 2, pages

1204–1209. IEEE, 2003. 1

[3] Sungsik Huh, Unghui Lee, Hyunchul Shim, Jong-Beom Park, and Jong-Ho

Noh. Development of an unmanned coal mining robot and a tele-operation

system. In Control, Automation and Systems (ICCAS), 2011 11th Internatio-

nal Conference on, pages 31–35. IEEE, 2011. 1

[4] Christian Mandel, Kai Huebner, and Tilman Vierhuff. Towards an autono-

mous wheelchair: Cognitive aspects in service robotics. In Proceedings of

Towards Autonomous Robotic Systems (TAROS 2005), pages 165–172. Cite-

seer, 2005. 1

[5] Tianmiao Wang, Dapeng Zhang, and Liu Da. Remote-controlled vascular

interventional surgery robot. The International Journal of Medical Robotics

and Computer Assisted Surgery, 6(2):194–201, 2010. 1

79

Page 98: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BIBLIOGRAFÍA

[6] Qun Zhang, Pey Yuen Tao, Aswin Thomas Abraham, Brice Rebsamen, Chen-

guang Yang, and Shuzhi Sam Ge. Mission-oriented design: A fully autono-

mous mobile urban robot. In Multisensor Fusion and Integration for Intelli-

gent Systems (MFI), 2010 IEEE Conference on, pages 261–266. IEEE, 2010.

2

[7] Taha Z. and Mat-Jizat J.A. Landmark navigation in low illumination using

omnidirectional camera. 9th International Conference on Digital Object Iden-

tifier, pages 262–265, 2012. 2, 12

[8] Yoshio Matsumoto, Masayuki Inaba, and Hirochika Inoue. Visual naviga-

tion using view-sequenced route representation. In Robotics and Automation,

1996. Proceedings., 1996 IEEE International Conference on, volume 1, pages

83–88. IEEE, 1996. 2, 17

[9] Jose Gaspar, Niall Winters, and Jose Santos-Victor. Vision-based navigation

and environmental representations with an omnidirectional camera. Robotics

and Automation, IEEE Transactions on, 16(6):890–898, 2000. 2

[10] Xiusong Yang et al. Vision based trajectory tracking controller for a b21r mo-

bile robot. In 2006 IEEE/RSJ International Conference on Intelligent Robots

and Systems, pages 3313–3318, 2006. 2

[11] Yoshio Matsumoto, Katsuhiro Sakai, Masayuki Inaba, and Hirochika Inoue.

View-based approach to robot navigation. In Intelligent Robots and Systems,

2000.(IROS 2000). Proceedings. 2000 IEEE/RSJ International Conference

on, volume 3, pages 1702–1708. IEEE, 2000. 2, 17

[12] Yingchun Zhang, Juan Cao, Lu Lou, and Bohong Su. Appearance-based mo-

bile robot navigation using omnidirectional camera. In Fuzzy Systems and

Knowledge Discovery (FSKD), 2012 9th International Conference on, pages

2357–2361. IEEE, 2012. 2, 17

[13] Masayoshi Tabuse and Dai Nakai. Mobile robot navigation using surf featu-

res. ACS, 10:276–279, 2010. 2, 17

80

Page 99: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BIBLIOGRAFÍA

[14] Ana Cris Murillo, Jose Jesus Guerrero, and C Sagues. Surf features for ef-

ficient robot localization with omnidirectional images. In Robotics and Au-

tomation, 2007 IEEE International Conference on, pages 3901–3907. IEEE,

2007. 2, 17

[15] Mao-Hai Li, Bing-Rong Hong, Ze-Su Cai, Song-Hao Piao, and Qing-Cheng

Huang. Novel indoor mobile robot navigation using monocular vision. Engi-

neering Applications of Artificial Intelligence, 21(3):485–497, 2008. 2, 17

[16] Kajal Sharma, Kwang-young Jeong, and Sung-Gaun Kim. Vision based au-

tonomous vehicle navigation with self-organizing map feature matching tech-

nique. In Control, Automation and Systems (ICCAS), 2011 11th International

Conference on, pages 946–949. IEEE, 2011. 2

[17] Han Wang, Wei Mou, Minh Hiep Ly, Michael Wai Shing Lau, Gerald Seet,

and Danwei Wang. Mobile robot ego motion estimation using ransac-based

ceiling vision. In Control and Decision Conference (CCDC), 2012 24th Chi-

nese, pages 1939–1943. IEEE, 2012. 2, 16

[18] Olaf Booij, Bas Terwijn, Zoran Zivkovic, and B Krose. Navigation using an

appearance based topological map. In Robotics and Automation, 2007 IEEE

International Conference on, pages 3927–3932. IEEE, 2007. 2

[19] Jungho Kim and In So Kweon. Vision-based autonomous navigation based on

motion estimation. In Control, Automation and Systems, 2008. ICCAS 2008.

International Conference on, pages 1738–1743. IEEE, 2008. 2

[20] Guilherme N DeSouza and Avinash C Kak. Vision for mobile robot naviga-

tion: A survey. Pattern Analysis and Machine Intelligence, IEEE Transactions

on, 24(2):237–267, 2002. 10

[21] Johann Borenstein, Liqiang Feng, and HR Everett. Navigating mobile robots:

systems and techniques. AK Peters, Ltd., 1996. 11

[22] Zhang Yingchun, Cao Juan, Lou Lu, and Su Bohong. Appearance-based

mobile robot navigation using omnidirectional camera. Fuzzy Systems and

81

Page 100: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BIBLIOGRAFÍA

Knowledge Discovery (FSKD), 2012 9th International Conference on Digital

Object Identifier, pages 2357 – 2361, 2012. 12

[23] Ke Wang, Lijun Zhao, and Ruifeng Li. Mobile robot map building in eigens-

pace a pea-based approach. In Control and Decision Conference (CCDC),

2013 25th Chinese, pages 3199–3203. IEEE, 2013. 12

[24] K Chitra, S Dinesh, D Mishra, V Brinda, VR Lalithambika, and BM Kumar.

3d information retrieval for visual odometry system of planetary exploration

rovers - a stereo vision approach. Advances in Computing, Communications

and Informatics (ICACCI), pages 354 – 360, 2013. 13

[25] Konstantin Schauwecker and Andreas Zell. On-board dual-stereo-vision for

autonomous quadrotor navigation. In Unmanned Aircraft Systems (ICUAS),

2013 International Conference on, pages 333–342. IEEE, 2013. 13

[26] C Hsia. A stereo vision based self localization system. sensors journal, 2013.

13

[27] Cheng Pei Tsai, Chin Tun Chuang, Ming Chih Lu, Wei Yen Wang, Shun Feng

Su, and Shyang Lih Chang. Machine vision based obstacle avoidance system

for robot system. In System Science and Engineering (ICSSE), 2013 Interna-

tional Conference on, pages 273–277. IEEE, 2013. 13

[28] M Yamada, Chi-Hsien Lin, and Ming-Yang Cheng. Vision based obstacle

avoidance and target tracking for autonomous mobile robots. In Advanced

Motion Control, 2010 11th IEEE International Workshop on, pages 153–158.

IEEE, 2010. 13

[29] Vladimir J Lumelsky and Tim Skewis. Incorporating range sensing in the

robot navigation function. Systems, Man and Cybernetics, IEEE Transactions

on, 20(5):1058–1069, 1990. 14

[30] Vladimir J Lumelsky and Alexander A Stepanov. Path-planning strategies

for a point mobile automaton moving amidst unknown obstacles of arbitrary

shape. Algorithmica, 2(1-4):403–430, 1987. 14

82

Page 101: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BIBLIOGRAFÍA

[31] Ishay Kamon, Ehud Rivlin, and Elon Rimon. A new range-sensor based glo-bally convergent navigation algorithm for mobile robots. In Robotics and

Automation, 1996. Proceedings., 1996 IEEE International Conference on, vo-lume 1, pages 429–435. IEEE, 1996. 14

[32] Iwan Ulrich and Johann Borenstein. Vfh+: Reliable obstacle avoidance forfast mobile robots. In Robotics and Automation, 1998. Proceedings. 1998

IEEE International Conference on, volume 2, pages 1572–1577. IEEE, 1998.14

[33] Iwan Ulrich and Johann Borenstein. Vfh<sup>*</sup>: local obstacle avoi-dance with look-ahead verification. In Robotics and Automation, 2000.

Proceedings. ICRA’00. IEEE International Conference on, volume 3, pages2505–2511. IEEE, 2000. 14

[34] JAVIER Minguez and LUIS Montano. Nearness diagram navigation (nd): Anew real time collision avoidance approach. In Intelligent Robots and Sys-

tems, 2000.(IROS 2000). Proceedings. 2000 IEEE/RSJ International Confe-

rence on, volume 3, pages 2094–2100. IEEE, 2000. 15

[35] Roland Philippsen and Roland Siegwart. Smooth and efficient obstacle avoi-dance for a tour guide robot. In ICRA, pages 446–451. Citeseer, 2003. 15

[36] Christian Schlegel. Fast local obstacle avoidance under kinematic and dyna-mic constraints for a mobile robot. In Intelligent Robots and Systems, 1998.

Proceedings., 1998 IEEE/RSJ International Conference on, volume 1, pages594–599. IEEE, 1998. 15

[37] Oliver Brock and Oussama Khatib. High-speed navigation using the globaldynamic window approach. In Robotics and Automation, 1999. Proceedings.

1999 IEEE International Conference on, volume 1, pages 341–346. IEEE,1999. 15

[38] Nak Yong Ko and Reid G Simmons. The lane-curvature method for localobstacle avoidance. In Intelligent Robots and Systems, 1998. Proceedings.,

1998 IEEE/RSJ International Conference on, volume 3, pages 1615–1621.IEEE, 1998. 15

83

Page 102: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BIBLIOGRAFÍA

[39] Maher Khatib, H Jaouni, Raja Chatila, and Jean-Paul Laumond. Dynamicpath modification for car-like nonholonomic mobile robots. In Robotics and

Automation, 1997. Proceedings., 1997 IEEE International Conference on, vo-lume 4, pages 2920–2925. IEEE, 1997. 15

[40] Emidio Di Giampaolo and Francesco Martinelli. Mobile robot localizationusing the phase of passive uhf-rfid signals. Industrial Electronics, 2013. 16

[41] Jan Elseberg, Dorit Borrmann, and Andreas Nuchter. 6dof semi-rigid slam formobile scanning. In Intelligent Robots and Systems (IROS), 2012 IEEE/RSJ

International Conference on, pages 1865–1870. IEEE, 2012. 16

[42] Friedrich Fraundorfer, Christopher Engels, and David Nister. Topologicalmapping, localization and navigation using image collections. In Intelligent

Robots and Systems, 2007. IROS 2007. IEEE/RSJ International Conference

on, pages 3872–3877. IEEE, 2007. 17

[43] Masayoshi Tabuse, Toshiki Kitaoka, and Dai Nakai. Outdoor autonomousnavigation using surf features. Artificial Life and Robotics, 16(3):356–360,2011. 17

[44] Herbert Bay, Tinne Tuytelaars, and Luc Van Gool. Surf: Speeded up robustfeatures. In Computer Vision–ECCV 2006, pages 404–417. Springer, 2006.32

[45] Martin A Fischler and Robert C Bolles. Random sample consensus: a pa-radigm for model fitting with applications to image analysis and automatedcartography. Communications of the ACM, 24(6):381–395, 1981. 33

[46] Inc Dr Robot. User manual. Technical report, 2013. 36

[47] Inc Dr Robot. Data sheet. Technical report, 2013. 36

[48] Inc Dr Robot. Sdk api reference manual. Technical report, 2013. 36

[49] R Mariano, Jimenez Maria I., V Lara, I Alberto, V Juan J., and C Myriam.Matlab com integration for engineering applications. Technical report, 2013.37

84

Page 103: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BIBLIOGRAFÍA

[50] Inc Microsoft. Ayuda de visual basic. net. Technical report, 2013. 37

85

Page 104: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme
Page 105: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

Apéndice A

Pseudocódigo de función razonamiento

Pseudocódigo de función parear con SURF

Pseudocódigo de función evasionorden : Imagen respecto del la cual de buscara la desviación: Imagen que se comparará con IM1

Pseudocódigo de función calcularmovimiento

87

Page 106: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BIBLIOGRAFÍA

Algoritmo 2 Pseudocódigo de función razonamientoFuncion razonamiento(sensores) Devuelve ordenCargar estadoCargar imágenes_rutaSi estado.punto_de_ruta = 1

estimar_secuencia_de_giros(imágenes_ruta)Si estado.punto_de_ruta <>punto_final

movimiento = calcular_movimiento(imágenes_ruta(estado.punto_de_-ruta), sensores, estado)

Si movimiento.tipo = évasion_por_la_izquierda’orden.nombre = ’girar_izquierda_mientras_obstáculo’

Si movimiento.tipo = évasion_por_la_derecha’orden.nombre = ’girar_derecha_mientras_obstáculo’

Si movimiento.tipo = ’sin_obstáculo’Si movimiento.angulo <3 entonces

orden.nombre = ’girar_y_avanzar’orden.angulo = movimiento.anguloorden.avance = movimiento.avance

Sinoorden.nombre = ’girar’orden.angulo = movimiento.angulo

Si movimiento.tipo = ’sin_correspondencia_entre_imágenes’orden.angulo = calcular_giro_aleatorio()orden.nombre = ’girar’

guardar estado

88

Page 107: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BIBLIOGRAFÍA

Algoritmo 3 Pseudocódigo de función surf distFuncion Puntos_SURF_coincidentes(imagen1, imagen2) Devuelvepuntos_SURF imagen1 : Imagen respecto del la cual se buscará la desviaciónimagen2 : Imagen que se comparará con imagen1puntos_imagen1 : Puntos SURF de imagen1puntos_imagen2 : Puntos SURF de imagen2puntos_relacionados : Conjunto de puntos relacionados por ser similarespuntos_relacionados_limpios : Conjunto de puntos relacionados libre deoutlierspuntos_imagen1 = SURF (imagen1)puntos_imagen1 = SURF (imagen2)puntos_relacionados_limpios = RANSAC (puntos_relacionados)

89

Page 108: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BIBLIOGRAFÍA

Algoritmo 4 Pseudocódigo de función evasionsi el paso anterior del robot fue un giro para tener libre el rango de sensadoentonces

si hay espacio para avanzar entoncesindicar el avance de un pasocalcular las componentes x, y de ese avancecalcular la nueva orientación

si noindicar girar hasta tener libre el rango de sensado

fin sisi no

si hay un avance pendiente por hacer entoncessi hay espacio para avanzar entonces

indicar el avance de un pasocalcular las componentes de ese avancecalcular la nueva orientación

si noindicar girar hasta tener libre el rango de sensado

fin sisi no

si es el primer paso de evasion entoncesdetectar obstáculo con detectaobstaculoindicar giro y avance regresados por detectaobstaculo

si nocalcular vector resultante de la evasioncalcular orientación actualcalcular vectores resultantes a cada punto de ruta entrenadaseleccionar el menor de 7 vectores resultantes entre la posición actualy puntos de la ruta comenzando por el punto inicial de la evasiónindico giro hacia punto mas cercanosi la distancia al punto mas cercano es menor a U entonces

indico fin de evasiónfin si

fin sifin si

fin si

90

Page 109: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

BIBLIOGRAFÍA

Algoritmo 5 Pseudocódigo de función razonamientoFuncion calcular_movimiento(imágenes_ruta, sensores, estado) Devuel-ve movimientoSi estado.punto_de_ruta = 1

estimar_secuencia_de_giros(imágenes_ruta)Si estado.punto_de_ruta <>punto_final

movimiento = calcular_movimiento(imágenes_ruta(estado.punto_de_-ruta), sensores, estado)

Si movimiento.tipo = évasion_por_la_izquierda’orden.nombre = ’girar_izquierda_mientras_obstáculo’

Si movimiento.tipo = évasion_por_la_derecha’orden.nombre = ’girar_derecha_mientras_obstáculo’

Si movimiento.tipo = ’sin_obstáculo’Si movimiento.angulo <3 entonces

orden.nombre = ’girar_y_avanzar’orden.angulo = movimiento.anguloorden.avance = movimiento.avance

Sinoorden.nombre = ’girar’orden.angulo = movimiento.angulo

Si movimiento.tipo = ’sin_correspondencia_entre_imágenes’orden.angulo = calcular_giro_aleatorio()orden.nombre = ’girar’

guardar estado

91

Page 110: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme
Page 111: “A de Jesus.pdfAgradecimientos En primer lugar, a mis asesores de tesis, Dr. Salvador Eugenio Ayala Raggi y M.C Ricardo Álvarez González, les agradezco por haberme

Apéndice B

Comprobante de congreso

93