SlideShare una empresa de Scribd logo
1 de 140
Descargar para leer sin conexión
NAVEGACI´ON REACTIVA DIFUSA
USANDO DATOS DE PROFUNDIDAD
DEL SENSOR KINECT
TESIS
PARA OBTENER EL T´ITULO DE:
INGENIERO EN COMPUTACI´ON
PRESENTA:
CLAUDIA CRUZ MART´INEZ
DIRECTOR DE TESIS:
DR. IGNACIO ALGREDO BADILLO
SANTO DOMINGO TEHUANTEPEC, OAXACA, M´EXICO. MARZO 2014
Agradecimientos
Agradezco a Dios por la fortaleza y convicci´on de seguir adelante, por los momentos buenos y
malos que he tenido en mi carrera universitaria y que me han ayudado a crecer y madurar como
persona.
Infinitas gracias a mis padres, Carlos Cruz L´opez y Silvia Mart´ınez Rosas, por todo el es-
fuerzo hecho para que me fuera posible terminar mis estudios, por los momentos que estuvieron
junto a m´ı, por darme un ejemplo de vida de lo que quiero seguir siendo en el futuro y por ese
ambiente de hogar que me ha cuidado y apoyado incondicionalmente todos estos a˜nos.
Gracias a mi hermana, Elvira I. Cruz Mart´ınez por ser parte de mi familia, por su apoyo, su
cuidado y los momentos que ha compartido conmigo, y muy en especial, le agradezco por mis
dos sobrinos, Estefania L´opez Cruz y Carlos Manuel L´opez Cruz, quienes me han acompa˜nado
en estos ´ultimos a˜nos, haciendo crecer en m´ı la capacidad de tolerancia y respeto brind´andome
su inocencia y alegr´ıa.
Agradezco a mi director de tesis Dr. Ignacio Algredo Badillo por las aportaciones en este
proyecto. Gracias al profesor M.C. Ernesto Cort´es P´erez por encaminar en un inicio este pro-
yecto de tesis y al profesor M.C. J. Jes´us Arellano Pimentel, no s´olo por su funci´on de sinodal,
sino por el apoyo, sus consejos y ense˜nanzas en estos a˜nos de mi carrera. Tambi´en agradezco a
mis sinodales, M.C. Sergio Ju´arez V´azquez, M.R. Yara P´erez Maldonado y M.C. V´ıctor Hugo
Garc´ıa Rodr´ıguez por sus valiosos comentarios y correcciones realizados en la revisi´on de este
documento.
Un agradecimiento especial al Dr. Enrique Sucar Succar por su apoyo en el desarrollo de
mi proyecto de estancia profesional, as´ı como tambi´en le agradezco a Juan Irving, Shender,
Kika, Israel, Sol, ´Angel y Eduardo, por sus conocimientos, compa˜n´ıa y amistad en mi tiempo
I
AGRADECIMIENTOS II
de estancia profesional.
Quiero agradecer a todos mis dem´as amigos, Leydi, Claudia y Rommel, a quienes siempre
tengo presentes y que han compartido conmigo buenos y malos momentos y que han enriquecido
mi vida con sus consejos, compa˜n´ıa, cr´ıticas, conocimientos y apoyo.
Le agradezco al Programa de Mejoramiento de Profesorado (PROMEP) y al Cuerpo Acad´emi-
co de Ingenier´ıa en Computaci´on por el apoyo econ´omico para la realizaci´on de esta tesis.
Gracias Universidad del Istmo por brindarme la oportunidad de estudiar una carrera profe-
sional, por hacerme crecer no s´olo como profesionista sino tambi´en como persona.
Resumen
En general, el desempe˜no en las actividades diarias de las personas con capacidades disminuidas
que utilizan silla de ruedas desciende porque estas actividades implican un mayor esfuerzo, lo
cual puede ocasionarles lesiones o representar un peligro para su salud. Los sistemas rob´oticos de
navegaci´on autom´atica orientados al apoyo de personas con capacidades disminuidas, permiten
el desplazamiento a trav´es de diferentes ambientes. De este modo, el sistema rob´otico es una
base para la ejecuci´on de las actividades de personas con capacidades disminuidas y se requiere
que dicho sistema presente caracter´ısticas tales como seguridad y estabilidad para prevenir
lesiones del usuario. El principal objetivo de esta tesis es el dise˜no y desarrollo de una aplicaci´on
software para la navegaci´on autom´atica de manera reactiva, que permite una tolerancia en el
procesamiento de informaci´on imprecisa o datos que puedan ser alterados por distintos factores,
todo esto aplicando la l´ogica difusa. Adicionalmente, esta aplicaci´on adquiere la informaci´on del
exterior a trav´es del sensor Kinect y su implementaci´on futura est´a orientada a la navegaci´on
de una silla de ruedas. La informaci´on de profundidad del sensor Kinect es procesada mediante
el algoritmo de l´ogica difusa para detectar la direcci´on con la menor probabilidad de colisi´on.
Esta direcci´on es expresada en grados sexagesimales que permitan la ejecuci´on de movimientos
suaves y la reacci´on ante obst´aculos imprevistos. La evaluaci´on del sistema de navegaci´on se
realiz´o en dos ambientes: un ambiente dom´estico y en un laboratorio de c´omputo. Las pruebas
son ejecutadas en un equipo de c´omputo con el sensor Kinect sobre una plataforma m´ovil, la
cual es controlada manualmente por un operador humano despu´es de recibir las instrucciones
que retorna la aplicaci´on. El sistema de navegaci´on propuesto acierta en un 85.7 % con un
tiempo promedio de ejecuci´on de 38.9 milisegundos por cada captura. En esta tesis se presenta el
desarrollo de cada m´odulo de la aplicaci´on software, as´ı como de una interfaz gr´afica que permite
observar la imagen de profundidad adquirida mediante el sensor Kinect y la visualizaci´on de la
direcci´on de rotaci´on de la plataforma m´ovil para evitar colisiones.
V
Abstract
In general, the performance of the daily tasks for the people with diminished capacities that
use a wheelchair decreases because these tasks imply a greater effort, which can cause lesions
or health problems. The robotic systems of autonomous navigation that are aimed to the sup-
port of people with diminished capacities allow the movement through different environments.
In this way the robotic system is the base for the execution of the activities of people with
diminished capacities and it is necesary that the robotic system presents characteristics such
security and stability to prevent lesions for the user. The main goal of this thesis is the design
and development of a software application for the reactive autonomous navigation that admit
a tolerance on processing of imprecise information or data that can be disturbed by different
factors and generate gradual movements all of this by applying the fuzzy logic. Additionally,
this application acquires the data of enviroment through Kinect sensor and its future implemen-
tation is oriented to the navegation of a wheelchair. The depth information from a Kinect sensor
is processed through fuzzy logic algorithm to detect the direction with less collision probability.
The direction is expressed by sexagesimal angles that allow the execution of soft movements
and the reactions when unexpected obstacles appear. The evaluation of the navigation system
is made in two different environments: a domestic environment and a computer laboratory. The
tests are executed in a computer with the Kinect on top of a mobile platform, which is manually
controlled by a human operator after he receives the instructions that the application returns.
The proposed navigation system hits in a 85.7 % and its average proccessing time is 38.9 milli-
seconds for each capture. This thesis presents the development of each module of the software
application as well as a graphic interface that allow the display of the depth image acquired
by Kinect sensor and the visualization of the direction of rotation of platform mobile to avoid
collisions.
VII
´Indice general
Agradecimientos I
Resumen V
Abstract VII
´Indice de figuras XIII
´Indice de tablas XVII
´Indice de pseudoc´odigos XIX
1. Introducci´on 1
1.1. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.2. Hip´otesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1. General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2. Espec´ıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.4. Justificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.5. Alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.6. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
1.7. Metodolog´ıa general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2. Marco Te´orico 11
2.1. Navegaci´on rob´otica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2. Inteligencia Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3. Visi´on Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.4. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
IX
´Indice general X
2.5. Sensor Kinect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6. L´ogica Difusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.6.1. Definiciones b´asicas y terminolog´ıa . . . . . . . . . . . . . . . . . . . . . 24
2.6.2. Funciones de membres´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.6.3. Sistemas de inferencia difusos . . . . . . . . . . . . . . . . . . . . . . . . 28
3. Estado de Arte 31
3.1. Sistemas de navegaci´on reactiva difusa con sensores de proximidad . . . . . . . . 32
3.2. Sistemas de navegaci´on reactiva difusa con fusi´on sensorial . . . . . . . . . . . . 34
3.3. Sistemas de navegaci´on reactiva difusa con sensor Kinect . . . . . . . . . . . . . 35
3.4. Discusi´on de los trabajos relacionados . . . . . . . . . . . . . . . . . . . . . . . . 37
4. Sistema propuesto 39
4.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.2. Adquisici´on de datos de profundidad . . . . . . . . . . . . . . . . . . . . . . . . 41
4.3. Transformaci´on de los datos de profundidad . . . . . . . . . . . . . . . . . . . . 43
4.4. Eliminaci´on de regiones desconocidas peque˜nas . . . . . . . . . . . . . . . . . . . 45
4.5. Extracci´on de profundidad promedio . . . . . . . . . . . . . . . . . . . . . . . . 49
4.6. Sistema de control difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.6.1. Definici´on de variables de entrada, variables de salida y del sistema de
inferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.6.2. Definici´on de valores ling¨u´ısticos y funciones de membres´ıa . . . . . . . . 56
4.6.3. Conjunto de reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
5. Resultados y Comparaciones 69
5.1. Resultados generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.2. Resultados por capturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
5.3. Resultados por objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.4. Resultados por alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
5.5. Comparaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
6. Conclusiones y trabajo a futuro 95
6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
6.2. Trabajo a futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Referencias 99
´Indice general XI
A. Interfaz gr´afica 105
B. Ejecuci´on del programa 109
C. C´odigo fuente 113
C.1. Archivo principal: Grafico.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
C.2. Transformaci´on de los datos de profundidad: apariencia.m . . . . . . . . . . . . 115
C.3. Dividir imagen de profundidad por regiones: obtenerRegiones.m . . . . . . . . . 115
C.4. Obtener profundidad promedio por regi´on: obtenerProfundidad.m . . . . . . . . 116
´Indice de figuras
1.1. Metodolog´ıa del desarrollo del proyecto de tesis. . . . . . . . . . . . . . . . . . . 8
2.1. Esquema de arquitectura estrat´egica. . . . . . . . . . . . . . . . . . . . . . . . . 11
2.2. Esquema de arquitectura reactiva. . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.3. Esquema de arquitectura por comportamientos. . . . . . . . . . . . . . . . . . . 12
2.4. Esquema de arquitectura h´ıbrida. . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.5. L´ogica difusa aplicado en la navegaci´on reactiva propuesta. . . . . . . . . . . . . 13
2.6. Diagrama de bloques de las etapas de un sistema de visi´on artificial. . . . . . . . 18
2.7. Sensor Kinect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.8. Campo de visi´on del sensor Kinect. . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.9. Nube de puntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
2.10. Imagen de profundidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.11. Elementos de los conjuntos difusos. . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.12. Funci´on triangular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
2.13. Funci´on trapezoidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.14. Funci´on Gaussiana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.15. Funci´on campana (bell). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.16. Estructura general de un sistema de inferencia difusa tipo Mamdani. . . . . . . . 29
2.17. Estructura general de un sistema de inferencia difusa tipo Sugeno. . . . . . . . . 30
4.1. Diagrama a bloques de las etapas del sistema de navegaci´on reactiva difusa. . . . 40
4.2. Estructura de los bits de profundidad. . . . . . . . . . . . . . . . . . . . . . . . 42
4.3. Rango en metros de la imagen de profundidad. . . . . . . . . . . . . . . . . . . . 42
4.4. Im´agenes obtenidas del sensor Kinect. . . . . . . . . . . . . . . . . . . . . . . . . 43
4.5. Imagen de profundidad original. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
4.6. Imagen de profundidad principal ImagenProf a escala de grises de 8 bits. . . . 45
4.7. Ejemplo de erosi´on geod´esica de se˜nales. . . . . . . . . . . . . . . . . . . . . . . 47
XIII
´Indice de figuras XIV
4.8. Imagen con agujeros rellenados. . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.9. Divisi´on de imagen de profundidad ImagenProfundidad. . . . . . . . . . . . . . 50
4.10. Im´agenes de profundidad con ´areas grandes desconocidas. . . . . . . . . . . . . . 51
4.11. Sistema de control difuso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55
4.12. Ejemplo de fusificaci´on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.13. Funciones de membres´ıa para variables de entrada. . . . . . . . . . . . . . . . . 58
4.14. Diagrama del sistema de inferencia Sugeno del control difuso. . . . . . . . . . . . 63
4.15. Diagrama de bloques del sistema de navegaci´on reactiva difusa. . . . . . . . . . 64
4.16. Diagrama general del sistema de control difuso. . . . . . . . . . . . . . . . . . . 65
5.1. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: habitaci´on con
poca luminosidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
5.2. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: habitaci´on con
luminosidad artificial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74
5.3. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: pared y otros
objetos lejanos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
5.4. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: espacio con
luminosidad natural menor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.5. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: espacio con
luminosidad natural moderada. . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.6. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: espacio con
ligeros movimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.7. Im´agenes obtenidas del sensor Kinect en un laboratorio de c´omputo: tratamiento
de objetos cercanos y lejanos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
5.8. Im´agenes obtenidas del sensor Kinect en un laboratorio de c´omputo: ejecuci´on
con una pared cercana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
5.9. Im´agenes obtenidas del sensor Kinect en un laboratorio de c´omputo: ejecuci´on
con una pared muy cercana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.10. Im´agenes obtenidas del sensor Kinect en un laboratorio de c´omputo: caso del
pasillo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.11. Im´agenes obtenidas del sensor Kinect en un laboratorio de c´omputo: vista del
laboratorio de c´omputo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
A.1. Interfaz de usuario del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
A.2. Secci´on de imagen de profundidad. . . . . . . . . . . . . . . . . . . . . . . . . . 106
´Indice de figuras XV
A.3. Secci´on del ´angulo de giro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
A.4. Secci´on gr´afica de giro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
A.5. Secci´on de selecci´on de datos de entrada. . . . . . . . . . . . . . . . . . . . . . . 107
A.6. Secci´on del porcentaje a omitir de datos desconocidos. . . . . . . . . . . . . . . . 108
A.7. Secci´on de botones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
B.1. Proceso de compilaci´on: selecci´on de archivos. . . . . . . . . . . . . . . . . . . . 111
B.2. Proceso de compilaci´on: inicializaci´on. . . . . . . . . . . . . . . . . . . . . . . . 111
B.3. Proceso de compilaci´on: selecci´on de compilador. . . . . . . . . . . . . . . . . . . 111
B.4. Proceso de compilaci´on: verificaci´on de datos. . . . . . . . . . . . . . . . . . . . 112
´Indice de tablas
2.1. Algunas definiciones de Inteligencia Artificial, organizadas en 4 categor´ıas. . . . 15
4.1. Resultados de medici´on distancia/profundidad. . . . . . . . . . . . . . . . . . . . 57
4.2. Rangos y funciones de membres´ıa correspondientes a cada valor ling¨u´ıstico. . . . 59
4.3. Tabla de verdad de la operaci´on l´ogica AND. . . . . . . . . . . . . . . . . . . . 62
4.4. Tabla de verdad de la operaci´on l´ogica OR. . . . . . . . . . . . . . . . . . . . . 62
4.5. Conjunto de reglas del sistema de control difuso: giros pronunciados. . . . . . . . 66
4.6. Conjunto de reglas del sistema de control difuso: reglas predictivas. . . . . . . . 66
4.7. Conjunto de reglas del sistema de control difuso: movimiento en linea recta. . . . 67
4.8. Conjunto de reglas del sistema de control difuso: giros b´asicos. . . . . . . . . . . 67
5.1. Caracter´ısticas de los equipos de c´omputo. . . . . . . . . . . . . . . . . . . . . . 70
5.2. Tiempos de ejecuci´on promedio en milisegundos (ms). . . . . . . . . . . . . . . . 70
5.3. Comparaci´on entre los trabajos relacionados. . . . . . . . . . . . . . . . . . . . . 91
XVII
´Indice de pseudoc´odigos
1. Conversi´on de imagen de profundidad . . . . . . . . . . . . . . . . . . . . . . . . 44
2. Relleno de part´ıculas oscuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3. Reconstrucci´on morfol´ogica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48
4. Extracci´on de profundidad promedio . . . . . . . . . . . . . . . . . . . . . . . . 52
5. Sistema de control difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
6. Sistema completo de navegaci´on reactiva difusa . . . . . . . . . . . . . . . . . . 65
XIX
Dedicado a Dios y a
mi familia
Cap´ıtulo 1
Introducci´on
La rob´otica m´ovil ha sido empleada en diferentes prop´ositos, desde proyectos acad´emicos, proce-
sos industriales, aplicaciones de investigaci´on y en el sector salud, entre otros [1]. Para un robot
m´ovil, la navegaci´on es la habilidad que requiere para desplazarse de un lugar a otro dentro
de un entorno, evitando los obst´aculos que se le presenten. La navegaci´on se puede ejecutar ya
sea a) por un operador humano, que toma las decisiones de movimiento y env´ıa una se˜nal al
dispositivo m´ovil para que ´este ejecute el desplazamiento o b) de manera autom´atica, es decir,
sin la intervenci´on directa de un operador [2].
Un sistema de navegaci´on autom´atica busca explorar un ambiente evitando colisionar con los
objetos que se encuentren dentro de dicho ambiente, tratando de simular el raciocinio humano
mediante la inteligencia artificial. Para conocer qu´e existe en la escena y, en base a esta infor-
maci´on ejecutar el movimiento adecuado, el sistema rob´otico requiere la captura de informaci´on
externa utilizando diferentes tipos de sensores, ya sea aquellos que toman una imagen de la
escena, la informaci´on de proximidad de los objetos con respecto al sensor o una fusi´on entre
diferentes tipos de sensores. En los ´ultimos a˜nos la fusi´on sensorial ha sido aplicada mediante el
sensor Kinect, el cual permite una extracci´on de informaci´on del ambiente empleando: sensores
de proximidad (l´aser y c´amara infrarrojos), im´agenes digitales (c´amara RGB), comandos de voz
(arreglo de micr´ofonos) y sensor propioceptivo (aceler´ometro).
Una vez que se obtienen los datos del ambiente, el sistema debe ejecutar una serie de pro-
cesos, basados en inteligencia artificial, para extraer informaci´on ´util, que le permita conocer
hacia d´onde debe moverse lo m´as r´apido e instant´aneamente posible a´un reaccionando a casos
imprevistos, sin la intervenci´on directa de un operador. La l´ogica difusa, siendo un sub-campo de
1
Cap´ıtulo 1. Introducci´on 2
la inteligencia artificial trata de representar el sentido com´un del humano y puede ser aplicada
en sistemas de navegaci´on para evitar colisiones, tratar datos que pueden estar sujetos a per-
turbaciones y tener una reacci´on en tiempo real. Adem´as permite la generaci´on de movimientos
no tan bruscos, ya que ´estos pueden ocasionar lesiones a los usuarios del sistema.
Considerando los aspectos previamente mencionados, se propone un sistema de navegaci´on
reactiva difusa implementado en software, que se contempla desde el procesamiento de datos
de profundidad hasta la aplicaci´on de la l´ogica difusa como algoritmo de navegaci´on. Se espera
una posterior implementaci´on en hardware (sistema empotrado) principalmente sobre una silla
de ruedas para personas discapacitadas, aunque se tiene en cuenta que dicho sistema puede ser
implementado en alguna otra plataforma m´ovil. Por lo tanto, no se consideran caracter´ısticas
espec´ıficas de alg´un robot m´ovil ya que la presente aplicaci´on se enfoca en calcular la direcci´on
de giro hacia el espacio con la menor probabilidad de choque, evaluando los valores de profun-
didad de los objetos en el ambiente, sin adquirir formas ni tama˜nos de los obst´aculos. Al mismo
tiempo, se busca la reducci´on de costos econ´omicos, recursos de espacio en circuiter´ıa y consumo
de energ´ıa.
Cabe mencionar que este trabajo forma parte del proyecto Desarrollo de una silla de
ruedas aut´onoma con brazo rob´otico para asistir a personas con capacidades dis-
minuidas, desarrollado por el Cuerpo Acad´emico de Ingenier´ıa en Computaci´on de la
Universidad del Istmo, Campus Tehuantepec y financiado por el Programa de Mejo-
ramiento del Profesorado, PROMEP.
A continuaci´on se tratan los temas introductorios del proyecto correspondientes a la defini-
ci´on del problema, justificaci´on, hip´otesis y objetivos generales y espec´ıficos. En el Cap´ıtulo 2 se
exponen los conceptos te´oricos para el conocimiento de los temas a tratar en cap´ıtulos siguientes.
En el Cap´ıtulo 3 se presentan los trabajos actuales relacionados con el sistema de navegaci´on
reactiva difusa. Posteriormente en el Cap´ıtulo 4 se describe de forma detallada el desarrollo del
sistema propuesto, desde la captura de los datos de profundidad hasta la descripci´on del sistema
de control difuso. Los resultados que se obtienen en base a experimentaci´on son presentados en
el Cap´ıtulo 5 dividi´endose en resultados generales, por capturas de la escena y por objetivos
y alcances propuestos en el Cap´ıtulo 1, para concluir en dicho cap´ıtulo con las comparaciones
con los trabajos expuestos en el Estado de Arte. Finalmente en el Cap´ıtulo 6 se plantean las
conclusiones obtenidas y el trabajo que se propone para su implementaci´on futura.
Cap´ıtulo 1. Introducci´on 3
1.1. Planteamiento del Problema
Existe una problem´atica para las personas con discapacidades motrices que utilizan silla de
ruedas al momento del desplazamiento de un lugar a otro, ejecuci´on de actividades cotidianas
y evasi´on de los obst´aculos que se les presentan, ya que son diversas acciones para un mismo
momento. En algunas sillas de ruedas, el desplazamiento depende de la fuerza que pueda gene-
rar el operador, ya sea la misma persona discapacitada o alguien independiente que le ayude a
moverse; sin embargo, esto aumenta la dificultad en la ejecuci´on de otras tareas.
Por un lado, existen diversas sillas de ruedas que utilizan componentes el´ectricos que pue-
den ser manejados ya sea mediante un control o joystick, pero a´un significa un impedimento
para realizar otras actividades, adem´as de que algunas personas discapacitadas no pueden o se
les dificulta manejar dichos controles. Por otro lado, se han probado sistemas de navegaci´on
autom´atica con diferentes tipos de sensores y algoritmos que tratan de obtener la mayor can-
tidad de informaci´on ´util del ambiente y as´ı tomar las mejores decisiones en la ejecuci´on del giro.
El presente trabajo de tesis plantea una aplicaci´on software para la navegaci´on reactiva te-
niendo en cuenta que se deben evitar giros bruscos para no ocasionar lesiones al operador, por
lo tanto se busca responder a la siguiente cuesti´on: ¿La l´ogica difusa puede implementarse para
la evasi´on de obst´aculos de manera reactiva, permitiendo movimientos suaves y previniendo la
ejecuci´on de giros bruscos? Esta cuesti´on conlleva a: a) identificar el formato de los datos que se
extraen del ambiente, b) adquirir la direcci´on de giro de la plataforma m´ovil hacia el espacio con
la menor probabilidad de colisi´on, c) ejecutar una navegaci´on casi de forma inmediata evitando
extracci´on de formas y caracter´ısticas m´as espec´ıficas de los obst´aculos, salvo su proximidad
con respecto al sensor y, adem´as, d) evitar generar movimientos bruscos, adapt´andose lo mejor
posible a cualquier tipo de ambiente. Todo esto tratando de obtener un sistema cuya implemen-
taci´on futura pueda generar la menor cantidad de recursos (espacio, circuiter´ıa, potencia, entre
otros) y sin considerar caracter´ısticas y dimensiones de alg´un dispositivo m´ovil en espec´ıfico.
1.2. Hip´otesis
Un sistema de navegaci´on reactiva difusa en conjunto con el sensor Kinect permitir´a la evasi´on
de obst´aculos de una plataforma m´ovil sin contemplar sus dimensiones, generando movimientos
suaves y orientado a una posterior implementaci´on en una silla de ruedas para personas con
discapacidades motrices o de la tercera edad.
Cap´ıtulo 1. Introducci´on 4
1.3. Objetivos
En esta secci´on se presentan los objetivos del trabajo de tesis considerando desde un enfoque
general hasta un desglose espec´ıfico.
1.3.1. General
Dise˜nar y desarrollar una aplicaci´on software para un sistema de navegaci´on reactiva a trav´es
del procesamiento de datos de profundidad del sensor Kinect y el control difuso sobre las direc-
ciones de giro, orientado a una implementaci´on hardware en una silla de ruedas sin considerar
sus dimensiones.
1.3.2. Espec´ıficos
Examinar los datos de profundidad que adquieren mediante el sensor Kinect.
Identificar los formatos de las im´agenes de rango del sensor Kinect.
Determinar el formato de las im´agenes de rango del sensor Kinect que servir´a como datos
de entrada del programa, en base a tiempo y recursos de procesamiento.
Definir el conjunto de reglas del control difuso.
Establecer los rangos difusos para las variables de entrada y de salida mediante la expe-
rimentaci´on con el sensor Kinect.
Investigar y contrastar el comportamiento de los sistemas de inferencia Mamdani y Sugeno.
Elegir un sistema de inferencia bas´andose en trabajos relacionados a los estudios compa-
rativos, libros y manuales.
Dise˜nar la interfaz gr´afica de usuario para simular el sistema de navegaci´on reactiva y la
visualizaci´on de resultados.
Desarrollar el sistema mediante la herramienta de programaci´on de Matlab 2012a R uti-
lizando Fuzzy Logic ToolboxTM
e Image Processing ToolboxTM
.
Realizar pruebas del sistema de navegaci´on utilizando grabaciones previas del sensor Ki-
nect para visualizar el comportamiento de la aplicaci´on.
Cap´ıtulo 1. Introducci´on 5
Ejecutar pruebas del sistema de navegaci´on en conexi´on directa con el sensor Kinect sobre
una plataforma m´ovil, controlada manualmente por un operador humano siguiendo las
instrucciones que retorna la aplicaci´on.
Analizar cada una de las versiones del sistema mediante los resultados obtenidos.
Seleccionar la versi´on final del programa.
1.4. Justificaci´on
Un sistema de navegaci´on autom´atico utilizando la visi´on artificial es conveniente, ya que permi-
te un avance tecnol´ogico para diferentes sectores en la realizaci´on de tareas peligrosas, repetitivas
o imposibles de ejecutar por un ser humano.
En este trabajo se desarrolla un sistema de navegaci´on autom´atico aplicando una arquitec-
tura reactiva. La navegaci´on reactiva calcula las direcciones o movimientos un menor tiempo en
comparaci´on con otro tipo de arquitecturas de navegaci´on, y es conveniente su implementaci´on
en un sistema empotrado debido al menor consumo de recursos; adem´as, la navegaci´on reactiva
permite no s´olo la aplicaci´on de un solo m´odulo, sino que tambi´en deja la posibilidad de com-
binar con otros tipos de arquitecturas para la ejecuci´on de tareas m´as complejas [3].
Para la adquisici´on de la informaci´on del exterior, se emplea el sensor Kinect, el cual es
uno de los sensores m´as actuales que fomenta la fusi´on de sensores con un bajo costo para:
extracci´on de proximidad (l´aser y c´amara infrarrojos), captura de im´agenes digitales (c´amara
RGB), adquisici´on de comandos de voz (arreglo de micr´ofonos) y obtenci´on de posici´on del
sensor(aceler´ometro). En seguida se mencionan los campos de investigaci´on donde se ha imple-
mentado el uso del Kinect [4].
Reconstrucci´on 3D.
Realidad aumentada.
Procesamiento de im´agenes.
Herramienta de interacci´on.
Reconocimiento de objetos.
Cap´ıtulo 1. Introducci´on 6
Navegaci´on rob´otica.
En este trabajo de tesis se utiliza la extracci´on de datos de profundidad mediante el sensor
Kinect y est´a orientado al procesamiento de im´agenes y navegaci´on rob´otica, misma que se
controla mediante la l´ogica difusa. Se selecciona el uso de la l´ogica difusa para la navegaci´on de
robots m´oviles debido a que ofrece tolerancia a la incertidumbre, el ruido o perturbaciones en
las medidas que se obtienen de los sensores [5]. La l´ogica difusa tambi´en permite lidiar con los
errores presentes en el sensor Kinect, adem´as, a comparaci´on con los algoritmos probabil´ısticos
de navegaci´on, la navegaci´on difusa requiere menos consumo de tiempo para procesamiento y
determinaci´on de movimientos [6].
La navegaci´on difusa supera las dificultades que se presentan en los ambientes no estructu-
rados y din´amicamente cambiantes que son m´as complicados de expresar mediante ecuaciones
matem´aticas; por ejemplo, aquellos ambientes inicialmente desconocidos que tengan obst´aculos
dispersos, con pendientes, entre otros. El control difuso tambi´en es utilizado para las aplicacio-
nes donde la velocidad de decisi´on sea un factor importante, adem´as de la reducci´on de ´area
o consumo de recursos al implementarlo en sistemas electr´onicos digitales o alg´un dispositivo
reprogramable [7].
Este trabajo de tesis forma parte del proyecto Desarrollo de una silla de ruedas aut´ono-
ma con brazo rob´otico para asistir a personas con capacidades disminuidas por lo
cual se enfoca en su aplicaci´on en el sector salud orientado a su implementaci´on futura en una
silla de ruedas. Los principales beneficiados con la realizaci´on de este trabajo son las personas
con discapacidades motrices o de la tercera edad, ya que permite la prueba y evaluaci´on de un
sistema de navegaci´on orientado a una silla de ruedas.
Se tiene en consideraci´on que este sistema puede ser implementado en otro tipo de plata-
formas m´oviles, como las que se mencionan en [8, 9], donde una de las tareas a ejecutar por
dicho dispositivo sea la evasi´on de obst´aculos de manera casi instant´anea y con la generaci´on de
movimientos suaves. Por esta raz´on, en este trabajo no se detallan las caracter´ısticas espec´ıficas
de un dispositivo m´ovil en especial, y se plantean valores de salida que puedan ser evaluados
por diferentes plataformas m´oviles, pasando previamente dichos valores por alg´un decodificador
o librer´ıa.
Cap´ıtulo 1. Introducci´on 7
1.5. Alcances
Los alcances que se presentan en este trabajo de tesis se describen a continuaci´on.
Desarrollar una aplicaci´on software de navegaci´on que utiliza una arquitectura reactiva.
Aplicar un sistema de control difuso que resuelve las direcciones de giro, generando infor-
maci´on al simular el sentido com´un humano.
Utilizar el sensor Kinect para la obtenci´on de datos de profundidad, considerando el tiempo
de procesamiento del sensor.
Plantear la ejecuci´on del sistema en tiempo real aplicando informaci´on previamente ad-
quirida o en conexi´on directa del sensor Kinect.
Dise˜nar y desarrollar una interfaz gr´afica que permite la visualizaci´on de la captura y la
direcci´on de giro.
Ejecutar pruebas con conexi´on directa al sensor Kinect sobre una plataforma m´ovil, misma
que ser´a controlada por un operador humano siguiendo las instrucciones que retorna la
aplicaci´on software.
1.6. Limitaciones
Las limitaciones del sistema de navegaci´on se mencionan a continuaci´on.
Los resultados y conclusiones se obtienen de las pruebas ejecutadas ubicando el sensor
Kinect a 1 metro sobre el nivel del suelo y con un ´angulo de inclinaci´on vertical de 0◦
, por
lo que s´olo se considera la evasi´on de obst´aculos observables con dicha configuraci´on.
El sistema de navegaci´on, al utilizar una arquitectura reactiva, evita la extracci´on de
formas, color, textura y caracter´ısticas m´as espec´ıficas de los objetos en la escena con-
centr´andose s´olo en el conocimiento de la existencia de los mismos.
El sistema se ejecuta en un ambiente con un suelo plano; es decir, sin rampas, escalones
o dem´as protuberancias como piedras, basura, objetos peque˜nos, agujeros, entre otros.
El sistema es evaluado en tiempo real y con el sensor Kinect, pretendi´endose generar una
salida que pueda adaptarse a las caracter´ısticas de los motores de una plataforma m´ovil,
sin embargo la implementaci´on y ejecuci´on sobre un robot m´ovil no se plantea en este
trabajo.
Cap´ıtulo 1. Introducci´on 8
1.7. Metodolog´ıa general
El proceso a seguir en el desarrollo de este proyecto se muestra en la Figura 1.1. El primer paso
es la recopilaci´on de informaci´on relacionada con el trabajo de tesis. Se realiza la revisi´on del
estado de arte para sustentar el sistema que se est´a desarrollando e identificar qu´e se puede
implementar para obtener diferentes y, en su caso, mejores resultados. Tambi´en se revisa infor-
maci´on b´asica para definir conceptos que se utilizar´an durante el desarrollo de la tesis, misma
que se plasmar´a en el marco te´orico.
Definición de los parámetros
del sistema difuso
Pruebas y experimentación
del sistema de navegación
Desarrollo del
sistema de control
difuso
Identificación de versión
final del sistema
Pruebas
y resultados
Recopilación de
información
Tratamiento de los
datos de profundidad
del sensor Kinect
Figura 1.1. Metodolog´ıa del desarrollo del proyecto de tesis.
Una vez que se tiene la informaci´on necesaria se procede con el desarrollo del sistema de
navegaci´on reactiva difusa. Inicialmente se procesan los par´ametros de entrada que son los datos
de profundidad del sensor Kinect, con estos datos se ejecutan una serie de transformaciones que
permiten obtener las caracter´ısticas que son ´utiles para el controlador difuso. Al finalizar esta
Cap´ıtulo 1. Introducci´on 9
etapa se obtiene la informaci´on pertinente que sirve como par´ametros de entrada del sistema
de control difuso.
En la siguiente etapa se definen los par´ametros del sistema de control difuso. Se definen for-
malmente los par´ametros de entrada y salida, as´ı como el sistema de inferencia difusa y dem´as
caracter´ısticas propias de los sistemas difusos. Posteriormente se desarrolla el sistema de control
difuso utilizando la herramienta de programaci´on Matlab 2012a R y las cajas de herramientas:
Image Processing ToolboxTM
y Fuzzy Logic ToolboxTM
.
Con la primera versi´on del sistema de navegaci´on, se procede a realizar pruebas y experimen-
tos, adquiriendo informaci´on del ambiente mediante el sensor Kinect, procesando las im´agenes
o datos de profundidad y obteniendo del control difuso la direcci´on con menor probabilidad de
colisi´on. En los resultados de todas estas pruebas, pueden surgir detalles que implican modificar
o mejorar el sistema, por lo cual se recurre a regresar a dos etapas antes para la obtenci´on de
mejores resultados que cumplan con los objetivos del trabajo. En el momento que se tenga un
sistema estable que brinde los resultados esperados, se seleccionar´a como versi´on final del siste-
ma y se ejecutar´an pruebas y experimentos, para ser documentados y generar las conclusiones
del trabajo de tesis.
Cap´ıtulo 2
Marco Te´orico
2.1. Navegaci´on rob´otica
La navegaci´on es una metodolog´ıa que permite guiar a un robot m´ovil de manera segura y es-
table, a trav´es de un entorno con obst´aculos con el fin de ejecutar alguna tarea en espec´ıfico [3].
Desde el punto de vista de la planificaci´on, existen diferentes arquitecturas que son dise˜nadas
teniendo en cuenta especificaciones como eficiencia, tiempo de respuesta ante cambios repenti-
nos del ambiente y la disponibilidad de la informaci´on del entorno [10]. Entre las principales
arquitecturas est´an:
Arquitectura estrat´egica. Utiliza un modelo del entorno y supone una situaci´on en la
que se ejecuta un plan sin tener en cuenta la posibilidad de generalizar el comportamiento.
Este tipo de arquitectura se basa en un planificador que verifica la informaci´on suminis-
trada por los sensores y genera una secuencia de acciones o plan, ver Figura 2.1.
Sensado Planificar Actuar
Figura 2.1. Esquema de arquitectura estrat´egica.
Arquitectura reactiva. Est´a orientada principalmente a suministrar flexibilidad, adap-
tabilidad y capacidad de respuesta ante situaciones no esperadas. Implementa una estra-
tegia de control como un conjunto de reglas reactivas en forma de pares condici´on-acci´on
sin tener un modelo previo del entorno. No ejecuta b´usquedas exhaustivas en cada camino,
11
Cap´ıtulo 2. Marco Te´orico 12
simplemente busca y ordena la acci´on apropiada que corresponde a cada lectura de los
sensores, ver Figura 2.2.
Sensado
Conjunto
de
reglas
reactivas
Actuar
Figura 2.2. Esquema de arquitectura reactiva.
Arquitectura basada en comportamientos. Es considerada como una evoluci´on de
la arquitectura reactiva. Se basa en un conjunto de comportamientos que describen la
manera en que reacciona el robot m´ovil ante alg´un estado determinado de los sensores,
utilizando un concepto m´as elaborado que la consulta a una tabla de correspondencias.
Cada comportamiento realiza c´alculos internos pudi´endose representar como una m´aquina
de estados finitos que tiene como entrada la informaci´on de los sensores y produce se˜nales
hacia los actuadores, ver Figura 2.3.
Sensado
Conjunto
de
comportamientos
Actuar
Figura 2.3. Esquema de arquitectura por comportamientos.
Arquitectura h´ıbrida. Ofrece una combinaci´on entre arquitectura estrat´egica y reactiva.
Se emplea el sistema reactivo para el control de bajo nivel (funciones de seguridad ante
colisiones imprevistas) y el sistema estrat´egico para el control de alto nivel (modelo del
entorno y planificaci´on de acciones), ver Figura 2.4.
Cap´ıtulo 2. Marco Te´orico 13
Sensado Actuar
Comportamiento
reactivo
Plan
Control bajo nivel Control alto nivel
Figura 2.4. Esquema de arquitectura h´ıbrida.
La navegaci´on es una de las actividades m´as complejas para un robot m´ovil, ya que implica
un gran n´umero de conceptos relacionados con la inteligencia artificial debido a que para el
control de robots m´oviles se incorporan funciones b´asicas (control de motores, articulaciones
y generaci´on de trayectorias de forma autom´atica o con la intervenci´on de un operador) con
funciones inteligentes (realizaci´on parcial o total aut´onoma de operaciones como planificaci´on
de tareas y de movimientos, percepci´on sensorial y reacci´on ante obst´aculos) [3]. La l´ogica difusa
se aplica como un m´odulo dentro del sistema de navegaci´on propuesto y se encarga de procesar
los datos de entrada y decidir qu´e direcci´on es la que tenga menor probabilidad de colisi´on.
Cada una de las reglas del control difuso propuesto, hacen referencia al m´odulo dentro de la
arquitectura reactiva definido como conjunto de reglas reactivas; sin embargo, este ´ultimo difiere
al m´odulo propuesto ya que se tiene un conjunto de reglas que interpretan las entradas y salidas
convertidas de valores num´ericos a valores difusos, generando un conjunto de reglas reactivas
difusas, ver Figura 2.5.
Datos de entrada
Procesamiento
de los datos de
entrada
Algoritmo de
navegación
Dirección de giro
Lógica difusa
SENSADO
CONJUNTO DE
REGLAS
REACTIVAS
ACTUAR
Figura 2.5. L´ogica difusa aplicado en la navegaci´on reactiva propuesta.
Cap´ıtulo 2. Marco Te´orico 14
Existen otras propiedades que motivan al uso de la l´ogica difusa para el control de la nave-
gaci´on, las cuales se definen a detalle en las secciones siguientes, donde adem´as, se abordan los
conceptos de inteligencia artificial, visi´on artificial y descripci´on del sensor Kinect en referencia
a la percepci´on sensorial.
2.2. Inteligencia Artificial
La inteligencia es la capacidad que tienen las personas de conocer, analizar, comprender y resol-
ver diferentes situaciones as´ı como tambi´en un conjunto de destrezas, habilidades y experiencias
en cierto dominio [11, 12].
Los humanos hacen uso de la inteligencia en cada una de las actividades que desempe˜nan
en la vida diaria; sin embargo, existen ciertas actividades que representan un peligro para una
persona, o que requieren un menor tiempo de ejecuci´on, o que necesitan exactitud y mejores re-
sultados, por lo tanto, se precisa de un equipo o m´aquina aut´onoma o que pueda ser controlada
parcial o totalmente por un operador humano.
En algunas ocasiones, las mencionadas actividades necesitan del raciocinio humano a´un cuan-
do la persona no pueda estar presente o se le dificulte ejecutar dicha actividad (por cuestiones
de salud, seguridad, falta de conocimientos, poca experiencia, etc´etera), entonces se requiere un
sistema que ejecute algoritmos que permitan de cierta forma simular el pensamiento humano,
en otras palabras, se requiere Inteligencia Artificial (IA).
La inteligencia artificial se define como la disciplina cient´ıfica que se ocupa de crear pro-
gramas inform´aticos que ejecutan operaciones comparables a las que realiza la mente humana,
como el aprendizaje o el razonamiento l´ogico [12]. En la Tabla 2.1 se muestran m´as definiciones
las cuales est´an organizadas en distintas categor´ıas [13].
En las ´ultimas d´ecadas se ha hecho ´enfasis en el desarrollo de esta disciplina para la au-
tomatizaci´on de actividades en distintas ´areas como control de sistemas, medicina, econom´ıa,
finanzas, ingenier´ıa, industria, milicia, videojuegos, entre otras.
Cap´ıtulo 2. Marco Te´orico 15
Tabla 2.1. Algunas definiciones de Inteligencia Artificial, organizadas en 4 categor´ıas.
Sistemas que piensan como humanos
Sistemas que piensan racionalmente
"El nuevo y excitante esfuerzo de hacer que los
computadores piensen...máquinas con mentes, en
el más amplio sentido literal". (Haugeland, 1985)
"[La automatización de] actividades que vincu-
lamos con procesos de pensamiento humano, ac-
tividades como la toma de decisiones, resolución
de problemas, aprendizaje...". (Bellman, 1978)
" El estudio de las facultades mentales median-
te el uso de modelos computacionales". (Char-
niak y McDermott, 1985)
"El estudio de los cálculos que hacen posible
percibir, razonar y actuar". (Winston, 1992)
Sistemas que actúan como humanos
Sistemas que actúan racionalmente
"El arte de desarrollar máquinas con capacidad
para realizar funciones que cuando son realizadas
por personas requieren de inteligencia". (Kurzweil,
1990)
"El estudio de cómo lograr que los computadores
realicen tareas que, por el momento, los humanos
hacen mejor". (Rich y Knight, 1991)
"La Inteligencia Computacional es el estudio
del diseño de agentes inteligentes".
(Poole et al., 1998)
"IA... está relacionada con conductas inteli-
gentes en artefactos". (Nilsson, 1998)
La inteligencia artificial ha sido estudiada desde los a˜nos 50s, con la llamada Prueba de Tu-
ring propuesta por Alan Turing, la cual consiste en saber si un evaluador humano, dependiendo
de una serie de preguntas realizadas a una persona y a una m´aquina, pod´ıa diferenciar entre
la respuesta de la m´aquina y la persona [13]. Para que una computadora logre pasar la prueba
debe tener la siguientes caracter´ısticas:
Procesar el lenguaje natural
Representar el conocimiento
Razonar autom´aticamente
Aprender de manera autom´atica
Adem´as, se extendi´o dicha prueba a la llamada Prueba Global de Turing, que da la oportuni-
dad del evaluador de manejar objetos para su an´alisis. Para superar esta prueba la computadora
debe tener:
Visi´on artificial (VA)
Rob´otica
Cada una de las 7 caracter´ısticas antes mencionadas son disciplinas que est´an contempladas
dentro de la inteligencia artificial. Para este trabajo se propone un sistema basado en la adqui-
sici´on y procesamiento de informaci´on de profundidad del entorno a trav´es del sensor Kinect
Cap´ıtulo 2. Marco Te´orico 16
y algoritmos de procesamiento de im´agenes, adem´as de generar ´angulos de direcci´on de giro
mediante l´ogica difusa. Por lo tanto, se requieren conceptos b´asicos de: a) visi´on artificial, por
la percepci´on y adquisici´on de datos del medio externo mediante el sensor Kinect, b) la repre-
sentaci´on del conocimiento, para almacenar la informaci´on que se obtiene mediante matrices
de profundidad, y c) el razonamiento autom´atico, para utilizar la informaci´on almacenada y
obtener conclusiones empleando l´ogica difusa. Estos tres temas ser´an descritos, en relaci´on con
el sistema propuesto, en las subsecciones siguientes.
2.3. Visi´on Artificial
El principio de la VA proviene de la importancia que tiene el sentido de la vista para los seres
humanos, ya que estudios cifran su importancia en un 75 % de la informaci´on proveniente de los
sentidos que procesa el cerebro [14]. La visi´on es la interacci´on de los organismos con el mundo,
la cual tiene como funciones principales reconocer y localizar objetos en un ambiente utilizando
el procesamiento de los datos de entrada (im´agenes), por lo tanto, la VA es el estudio de dichas
funciones, para as´ı entenderlas y realizar la construcci´on de m´aquinas que tengan capacidades
similares [15].
La visi´on artificial est´a muy ligada al procesamiento de im´agenes, aunque difieren en el obje-
tivo final. El procesamiento de im´agenes tiene como objetivo mejorar la calidad de las im´agenes
para su posterior utilizaci´on o interpretaci´on. La visi´on artificial busca extraer caracter´ısticas
de una imagen para su descripci´on e interpretaci´on mediante una computadora [15].
La visi´on artificial se basa en diferentes tipos de tecnolog´ıas, de las cuales destacan [14]:
Procesamiento de im´agenes. Adquisici´on de informaci´on (forma, color, textura o ´areas
de los objetos, entre otros) o transformaci´on de una imagen, consider´andose a la imagen
como la materia prima dentro de la visi´on artificial.
Generaci´on de gr´aficos por computadora. Transformaci´on de una descripci´on de los
objetos de una imagen.
Reconocimiento de patrones. Clasificaci´on de un objeto a partir de la obtenci´on de
caracter´ısticas entre un conjunto de candidatos.
A continuaci´on se muestra un resumen de las diferentes ´areas donde se aplican algoritmos
Cap´ıtulo 2. Marco Te´orico 17
de VA [14]:
Militar
• Detecci´on y seguimiento de objetivos
• An´alisis del terreno
• Armas inteligentes
Rob´otica
• Guiado de robots industriales
• Navegaci´on de robots m´oviles
Agricultura
• An´alisis de las plantaciones: crecimiento, enfermedades
• An´alisis de im´agenes tomadas por sat´elites
Identificaci´on
• Identificaci´on autom´atica de huellas dactilares
• Reconocimiento de rostros
Control de tr´afico
• Identificaci´on de matr´ıculas de veh´ıculos
• Control del tr´afico vial
Control de calidad
• Verificaci´on de etiquetas
• Inspecci´on de contenedores
• Inspecci´on de motores
• Inspecci´on de cristales
• Control de calidad de comida
• Inspecci´on de soldaduras
Cap´ıtulo 2. Marco Te´orico 18
• Inspecci´on de circuitos impresos
• Inspecci´on de madera, tela, fundiciones, papel
Biomedicina
• An´alisis de im´agenes tomadas por rayos X
• An´alisis de im´agenes tomadas por ultrasonidos
• An´alisis de sangre
• An´alisis de ADN
Seguridad
• Vigilancia de edificios
• Detecci´on de explosivos por rayos X
Un sistema de visi´on artificial lleva consigo una serie de conceptos hardware, software y al-
goritmos de procesamiento de la informaci´on. Generalmente, el proceso de un sistema de visi´on
artificial consta de 5 etapas principales (ver Figura 2.6) [16].
Escena Real
Etapa
Sensorial
Etapa de
Preprocesamiento
Etapa de
Segmentación
Etapa de
Parametrización
Etapa de
Clasificación
Actuación según
Resultados
Entrada
Etapas
Salida
Figura 2.6. Diagrama de bloques de las etapas de un sistema de visi´on artificial.
Cap´ıtulo 2. Marco Te´orico 19
La primera etapa se le denomina etapa sensorial ya que consiste en la adquisici´on de im´age-
nes digitales utilizando alg´un tipo de sensor y la capacidad de interpretar las se˜nales de dicho
sensor. Una vez que se tiene la imagen en forma digital, la siguiente etapa consta del prepro-
cesamiento de dicha imagen (etapa de preprocesamiento), ya sea aplicando transformaciones
geom´etricas o filtros sobre las im´agenes, todo con la finalidad de obtener una imagen de mejor
calidad que beneficiar´a a las siguientes etapas. La etapa de segmentaci´on radica en la divisi´on
de la imagen en partes que aportan m´as informaci´on de la escena para cumplir con el objetivo
(regi´on de inter´es); esta etapa es una de las m´as importantes ya que una correcta segmenta-
ci´on facilitar´a la soluci´on de problema mientras que una err´onea dirigir´a al fallo. La etapa de
parametrizaci´on se refiere a la selecci´on de caracter´ısticas que brindan informaci´on cuantitati-
va o rasgos b´asicos que permitan diferenciar una clase de objetos de otra. Posteriormente se
ejecuta la etapa de clasificaci´on donde se asigna una etiqueta a cada objeto segmentado, para
as´ı reconocer dicho objeto dentro de un conjunto de objetos identificados previamente y que se
encuentran almacenados en la memoria del dispositivo que realiza el procesamiento.
Despu´es de las cinco etapas, el sistema ejecuta la acci´on correspondiente, por ejemplo, la
navegaci´on reactiva. A pesar de que en la Figura 2.6 se muestra un sistema de VA c´omo un
conjunto de procesos que se ejecutan uno despu´es de otro, en numerosas ocasiones esto no es as´ı,
y se requiere de la retroalimentaci´on en algunas etapas; por ejemplo, es com´un regresar a la etapa
de segmentaci´on si el reconocimiento falla, o incluso al preprocesamiento [16]. La descripci´on
detallada de cada etapa en relaci´on con cada m´odulo del sistema propuesto se especifica en el
Cap´ıtulo 4.
2.4. Sensores
Para realizar la navegaci´on, se necesitan obtener datos del ambiente donde se requiere desplazar
al robot m´ovil. Estos datos pueden presentarse en diferentes formatos, siempre y cuando sean
entendibles para la computadora que ejecutar´a el algoritmo de navegaci´on.
Existen diferentes tipos de sensores que obtienen informaci´on del ambiente. En primera
instancia est´an los sensores que obtienen informaci´on b´asica para la detecci´on de obst´aculos y
el conocimiento aproximado de posici´on del robot m´ovil [3]. Estos dispositivos se mencionan a
continuaci´on:
Sensores propioceptivos. Son dispositivos que retornan informaci´on que el mismo robot
Cap´ıtulo 2. Marco Te´orico 20
m´ovil origina en base a sus caracter´ısticas como son: tama˜no de ruedas, velocidad de
rotaci´on de las ruedas, GPS (Global Positioning System), entre otros.
Sensores de proximidad. Miden la distancia relativa entre el sensor y los objetos en
el entorno. Los principales dispositivos de proximidad son: sensores ultras´onicos, sensores
infrarrojo y bumpers.
Por otro lado, se tienen los sensores que buscan aproximarse a la percepci´on humana a base
de im´agenes mediante c´amaras de video, las cuales utilizan ya sea tecnolog´ıa CCD (Charged
Couple Device) o CMOS (Complementary Metal Oxide Semiconductor) para la detecci´on de luz
visible. Este tipo de dispositivos retornan im´agenes en diferente representaci´on de color:
Escala de grises. Cada pixel tiene un valor de 8 bits, represent´andose en un rango desde
0 (color negro) hasta el 255 (color blanco).
RGB. Representa la suma de tres caracter´ısticas de color: rojo (Red), verde (Green) y
azul (Blue). Esta suma integra un cubo de dimensiones de 256 × 256 × 256.
HSI o HSV. Representaci´on de color mediante: a) matiz (Hue) que representa la longitud
de onda predominante la cual es invariante a la posici´on del robot u objeto, b) saturaci´on
(Saturation) que indica la falta de blancura en el color, por ejemplo, el rojo est´a saturado
mientras que el rosa est´a menos saturado, y c) valor o intensidad (Value/Intensity) que
es la cantidad de luz recibida por el sensor.
Binaria. Imagen que s´olo representa 2 valores: 0 (color negro) y 1 (color blanco).
Uno de los inconvenientes con las im´agenes de c´amaras de video es la falta de informaci´on
de profundidad en la imagen, por lo que no se tiene conocimiento de qu´e tan cerca o lejos se
encuentra un objeto. Uno de los objetivos de la visi´on computacional es en cierta forma simular
el proceso de visi´on humana, donde tambi´en se extrae informaci´on de profundidad.
Para la extracci´on de profundidad se utiliza el esc´aner de rango, que realiza el sensado de
puntos en 3D de una escena y retorna un arreglo de tama˜no m × n (imagen de rango), que
contiene la distancia relativa (rango) desde el centro del sensor hasta un punto en la escena [17].
Entre los principales sensores de rango, se mencionan los siguientes:
C´amaras est´ereo. Se utilizan dos c´amaras, suponiendo dos ojos, donde cada una trata
de encontrar el mismo punto en la imagen convirti´endolo en el centro de la imagen y
as´ı obtener un ´angulo relativo.
Cap´ıtulo 2. Marco Te´orico 21
Trazadores de luz. Proyectan una l´ınea de color (o trazo), red, o patr´on de puntos sobre
el ambiente, para que despu´es una c´amara observe c´omo el patr´on es distorsionado en la
imagen.
L´aser. Un haz de l´aser es emitido y se calcula el tiempo en que la se˜nal tarda en regresar;
es decir, la medida de reflectancia. Este dispositivo puede cubrir una gran ´area y retorna
una imagen donde cada valor representa profundidad.
Kinect. Es un dispositivo que contiene una c´amara RGB, un arreglo de micr´ofonos, un
aceler´ometro y un emisor y c´amara infrarroja. ´Este dispositivo es capaz de capturar imagen
a color y la profundidad en la escena representado en cada pixel de una imagen.
Uno de los dispositivos de rango ´ultimamente utilizado es el sensor Kinect, ya que combina:
la adquisici´on de im´agenes mediante una c´amara RGB (informaci´on 2D), la obtenci´on de matri-
ces de profundidad (informaci´on 21
2
) y la adquisici´on de nube de puntos (informaci´on en 3D), a
un bajo costo en comparaci´on con los sensores tradicionales. Otra ventaja, es que no se necesita
de controladores extras para la compatibilidad entre sensores, por lo que la manipulaci´on del
sensor y la informaci´on que adquiere resulta ser m´as simple [18, 19].
2.5. Sensor Kinect
El sensor Kinect es un dispositivo que apareci´o el 4 de noviembre del 2010 como un accesorio
de la consola de juego Xbox 360 y que originalmente fue desarrollado por PrimeSense Company
para su posterior colaboraci´on con Microsoft [4]. El sensor Kinect consiste de un sistema de
sensado de profundidad, un aceler´ometro, un motor, un arreglo de micr´ofonos y una c´amara
RGB, ver Figura 2.7.
Láser y cámara infrarrojo
Cámara RGB
Arreglo de
micrófonos
Inclinación motorizada
Figura 2.7. Sensor Kinect.
Cap´ıtulo 2. Marco Te´orico 22
El sistema de sensado de profundidad consta de una c´amara infrarroja y un l´aser emisor
infrarrojo. La c´amara infrarroja opera a 30 Hz, el campo de visi´on (ver Figura 2.8) es de 57◦
horizontal, 43◦
vertical y el rango de operaci´on se encuentra entre 0.8 metros (2.7ft) y 3.2 me-
tros (10.6ft). La c´amara RGB soporta una resoluci´on m´axima de 1280 × 960, y la c´amara de
profundidad soporta una resoluci´on m´axima de 640 × 480 [20]. Las im´agenes de rango proce-
dentes del Kinect pueden ser representadas de dos formas distintas [21]:
57° Horizontal
43° Vertical
0.8 m
3.2 m
4.0 m
Figura 2.8. Campo de visi´on del sensor Kinect.
Nube de puntos. Una lista sin orden ni especificaciones compuesta de coordenadas 3D
(x,y,z) dentro de un espacio, ver Figura 2.9.
Figura 2.9. Nube de puntos.
Im´agenes de profundidad. Matriz de m × n en la cual cada uno de sus elementos
representan un valor de profundidad en coordenadas 2D (x,y), ver Figura 2.10.
Cap´ıtulo 2. Marco Te´orico 23
Figura 2.10. Imagen de profundidad.
En este proyecto de tesis, se utiliza el sensor Kinect orientado al ´area de navegaci´on rob´oti-
ca y procesamiento de im´agenes de profundidad, con lo que se requiere de un algoritmo que
pueda lidiar con una gran cantidad de datos que en ciertas ocasiones puedan ser alterados por
perturbaciones en el ambiente y que, al mismo tiempo, generen una acci´on casi inmediata o en
tiempo real (idea principal de la navegaci´on reactiva). Una de las formas para el procesamiento
de dichas im´agenes es utilizando una de las ramas de la inteligencia artificial: la l´ogica difusa.
En la siguiente secci´on se define el concepto de l´ogica difusa y de cada componente.
2.6. L´ogica Difusa
Para la adquisici´on de la direcci´on de giro de manera reactiva se puede implementar un con-
trolador difuso, por lo que en primer lugar se procede a definir el concepto de l´ogica difusa. En
la vida cotidiana es com´un utilizar expresiones tales como un poco, mucho, no tanto, regular,
etc´etera, por ejemplo, decir llegar´e un poco tarde a decir llegar´e 10 minutos tarde. Este tipo de
expresiones no representan una cantidad exacta, sin embargo, el cerebro humano logra interpre-
tarlas para ejecutar alguna acci´on; es precisamente este tipo de pensamiento el cual la l´ogica
difusa busca simular en sistemas artificiales. L´ogica difusa se define como la ciencia que admite
una cierta incertidumbre entre la verdad o falsedad de sus proposiciones, con una semejanza del
raciocinio humano [12].
La teor´ıa de conjuntos difusos fue formulada por Lofti A. Zadeh en 1965, quien entonces
era profesor de Ingenier´ıa El´ectrica y de Ciencias de la Computaci´on en la Universidad de
California, Berkeley [22]. Seg´un Zadeh, la l´ogica difusa es determinada como un conjunto de
Cap´ıtulo 2. Marco Te´orico 24
principios matem´aticos para la representaci´on del conocimiento basado en grados de pertenencia
en lugar de una pertenencia n´ıtida de la l´ogica binaria cl´asica [11]. Es decir, mientras que la
l´ogica binaria cl´asica s´olo permite el valor de 0 (completamente falso) o 1 (completamente
verdadero), la l´ogica difusa admite m´ultiples valores.
2.6.1. Definiciones b´asicas y terminolog´ıa
Los conjuntos difusos son fundamentales dentro de la l´ogica difusa. Sea X un espacio de objetos
y sea x un elemento gen´erico de X. Un conjunto cl´asico A, A ⊆ X, es definido como una
colecci´on de elementos u objetos x ∈ X, tal que cada x puede pertenecer o no al conjunto A.
En un conjunto difuso, un elemento tiene un grado de pertenencia a un conjunto y puede tener
un grado de no pertenencia o de pertenencia a otros conjuntos. Definiendo una funci´on de
membres´ıa para cada elemento x de X, se puede representar un conjunto cl´asico A por un set
de pares ordenados (x,0) o (x,1), lo cual indica que x /∈ A o x ∈ A, respectivamente. La funci´on
de membres´ıa de un conjunto difuso puede tener valores entre 0 y 1, lo cual indica el grado de
pertenencia de un elemento dentro de un conjunto dado. Ahora bien, si X es una colecci´on de
objetos x, entonces un conjunto difuso A dentro de X se define como en la Ecuaci´on 2.1 [23]:
A = {(x, µA(x)) | x ∈ X} (2.1)
donde:
µA(x), es denominado funci´on de membres´ıa (MF por sus siglas en ingl´es) para el conjunto
difuso A.
X, se refiere al universo de discurso, o s´olo universo, que consiste en objetos discretos
(ordenados o no ordenados) o en un espacio continuo.
Una notaci´on conveniente para un conjunto difuso A donde el universo de discurso X es
discreto y finito es la que se muestra en la Ecuaci´on 2.2; mientras que cuando X es continuo e
infinito, A es denotado por la Ecuaci´on 2.3 [22].
A = {
µA(x1)
x1
+
µA(x2)
x2
+ . . .} = {
i
µA(xi)
xi
} (2.2)
A = {
µA(x)
x
} (2.3)
En la pr´actica, cuando X es un espacio continuo, X se divide en diversos conjuntos difusos,
donde se define una MF en cada uno o de manera general. Estos conjuntos son nombrados
Cap´ıtulo 2. Marco Te´orico 25
conforme adjetivos que se utilizan en la vida cotidiana, por ejemplo: “mucho”, “mediano”,
“poco”, etc., y son denominados valores ling¨uisticos. As´ı que el universo de discurso X
tambi´en es llamado variable ling¨uistica [23]. En la Figura 2.11 se identifican los elementos de
los conjuntos difusos, se observa que cada gr´afica representa un valor ling¨u´ıstico, definidos en
diferentes rangos dentro del universo de discurso, y que al mismo tiempo pertenece a un cierto
grado de membres´ıa.
0 x1 x2 . . xi
0
0.2
0.4
0.6
0.8
1
Universo de discurso
Gradosdemembresía
Valor lingüístico 1 Valor lingüístico 2 Valor lingüístico 3
Figura 2.11. Elementos de los conjuntos difusos.
2.6.2. Funciones de membres´ıa
Una funci´on de membres´ıa es una gr´afica que define c´omo cada punto componente del universo
de discurso corresponde a un valor de pertenencia (grado de membres´ıa) entre el 0 y 1 [24]. A
continuaci´on se definen diferentes tipos de funciones de membres´ıa, as´ı como los par´ametros que
requieren. X es el universo de discurso que representa el conjunto de los valores de entrada, por
lo que al ser el universo, se pueden tener variables y par´ametros que permitan definir cada una
de las funciones de membres´ıa para la conversi´on a valores difusos.
Funci´on triangular. Es una funci´on definida por una variable de entrada x y de tres
par´ametros {a,b,c}, lo cuales pertenecen al universo de discurso y determinan las coor-
denadas en x de las tres esquinas de la funci´on triangular. La Ecuaci´on 2.4 especifica la
funci´on triangular, dado el universo de discurso X y los tres par´ametros {a,b,c}.
Cap´ıtulo 2. Marco Te´orico 26
f(x; a, b, c) =



0, x ≤ a
x−a
b−a
, a ≤ x ≤ b
c−x
c−b
, b ≤ x ≤ c
0, c ≤ x
(2.4)
Un ejemplo se muestra en la Figura 2.12 con a = 3, b = 6, c = 8 y el universo de discurso
X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}.
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Universo de discurso X
Gradosdemembresía
Figura 2.12. Funci´on triangular.
Funci´on trapezoidal. La funci´on trapezoidal depende de la variable x y de cuatro
par´ametros {a,b,c,d}, pertenecientes al universo de discurso y que determinan en la coor-
denada x las tres esquinas de la funci´on trapezoidal, como se muestra en la Ecuaci´on 2.5.
f(x; a, b, c, d) =



0, x ≤ a
x−a
b−a
, a ≤ x ≤ b
1, b ≤ x ≤ c
d−x
d−c
, c ≤ x ≤ d
0, d ≤ x
(2.5)
La Figura 2.13 se muestra un ejemplo con a = 1, b = 5, c = 7, d = 8 y el universo de
discurso definido por X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}.
Cap´ıtulo 2. Marco Te´orico 27
0 1 2 3 4 5 6 7 8 9 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Universo de discurso X
Gradosdemembresía
Figura 2.13. Funci´on trapezoidal.
Funci´on Gaussiana. Esta funci´on depende de dos par´ametros σ (dentro del universo
de discurso representa la amplitud de la funci´on) y c (dentro del universo de discurso
representa el centro de la funci´on) como se representa en la Ecuacı´on 2.6.
f(x; σ, c) = exp{
−(x − c)2
2σ2
} (2.6)
Un ejemplo de esta funci´on se observa en la Figura 2.14 con σ = 2, c = 5 y el universo de
discurso X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}.
0 2 4 6 8 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Universo de discurso X
Gradosdemembresía
Figura 2.14. Funci´on Gaussiana.
Funci´on campana (bell) generalizada. La funci´on bell (campana) generalizada est´a de-
finida mediante la Ecuaci´on 2.7, donde se observa que necesita de tres par´ametros a, b
y c que pertenecen al universo de discurso X. El par´ametro b normalmente es positivo
Cap´ıtulo 2. Marco Te´orico 28
(en caso de ser negativo la forma llega a ser una campana inversa), a es la anchura de la
funci´on y c representa el centro de la funci´on.
f(x; a, b, c) =
1
1+ | x−c
a
|2b
(2.7)
Un ejemplo de esta funci´on se expone en la Figura 2.15 con a = 2, b = 4, c = 6 y el
universo de discurso se define con X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}.
0 2 4 6 8 10
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Universo de discurso X
Gradosdemembresía
Figura 2.15. Funci´on campana (bell).
En este trabajo se utilizan las funciones trapezoidales y triangulares debido a que se ajustan
m´as a los valores de entrada y salida esperados, adem´as de ser las m´as utilizadas por aquellos
trabajos relacionados que se mencionan en el estado de arte. Igualmente se hace ´enfasis en que
en varios ejemplos pr´acticos el tipo de funci´on no es lo m´as importante, sino la ubicaci´on de las
curvas dentro del universo de discurso, el n´umero de particiones y el solapamiento de las curvas
[22]; estos par´ametros son definidos en los siguientes cap´ıtulos.
2.6.3. Sistemas de inferencia difusos
La inferencia difusa es el proceso de formular la asignaci´on desde un determinado valor de
entrada a un valor de salida utilizando l´ogica difusa, con esta asignaci´on se tiene una base
desde la cual se pueden tomar decisiones [11]. Existen dos principales sistemas de inferencia
[11, 23], los cuales s´olo difieren en la determinaci´on de las salidas, estos sistemas se definen a
continuaci´on:
Cap´ıtulo 2. Marco Te´orico 29
Modelo difuso Mamdani. Este sistema es uno de los m´as utilizados en las aplicaciones
difusas. En 1974, Ebrahim Mamdani construy´o uno de los primeros sistemas difusos para
controlar la combinaci´on de una caldera y una m´aquina de vapor aplicando un conjunto
de reglas difusas con la ayuda de operadores humanos experimentados. El sistema de tipo
Mamdani es intuitivo y se adapta a la intervenci´on humana ya que sus salidas se expresan
en el lenguaje humano; es decir, las salidas se expresan de manera difusa. En la Figura
2.16 se muestra la estructura general del sistema Mamdani.
Fusificación
Mecanismo de
inferencia
difusa
Defusificación
Conjunto de Reglas
tipo
IF ’x’ es ’A’ OR ’y’ es ’B’
THEN ’z’ es ’C’
Datos
de entrada
X
Datos
de salida
Y
Figura 2.16. Estructura general de un sistema de inferencia difusa tipo Mamdani.
El sistema consta inicialmente de los valores de entrada los cuales pasan por el proceso de
fusificaci´on. Posteriormente se obtienen resultados difusos mediante el uso de un conjunto
de reglas del tipo que se describe en la Ecuaci´on 2.8.
si x es A and y es B entonces z = C (2.8)
Donde x, y, z son variables ling¨u´ısticas y A, B, C son conjuntos difusos en el universo de
discurso X y Y . En ocasiones se requiere utilizar el sistema como un controlador, por lo
tanto las salidas pasan por el proceso de defusificaci´on para convertirlos a datos no difusos
ya sea enteros, flotantes, u otros.
Modelo difuso Sugeno. Este m´etodo se introdujo por primera vez en 1985 por Michio
Sugeno. B´asicamente, este m´etodo es similar al m´etodo de inferencia de tipo Mamdani
con la diferencia en la salida de las funciones de membres´ıa, las cuales no pasan por
el proceso de defusificaci´on ya que se expresan utilizando una funci´on matem´atica. El
esquema general del sistema de inferencia Sugeno se muestra en la Figura 2.17.
Cap´ıtulo 2. Marco Te´orico 30
Fusificación
Mecanismo de
inferencia
difusa
Conjunto de Reglas
tipo
IF ’x’ es ’A’ AND ’y’ es ’B’
THEN ’z’ es f(x,y)
Datos
de entrada
X
Datos
de salida
Y
Figura 2.17. Estructura general de un sistema de inferencia difusa tipo Sugeno.
Una regla t´ıpica en el modelo Sugeno se expresa en la Ecuaci´on 2.9. Usualmente f(x, y)
se representa por ax + by + c, en este caso, al ser un polinomio de primer orden el sistema
es llamado modelo difuso Sugeno de primer orden.
si x es A and y es B entonces z = f(x,y) (2.9)
Existen la posibilidad de modelos difusos Sugeno de orden superior, sin embargo, ´estos
introducen una complejidad significativa con poco cambio de resultados. Otra variante es
cuando la salida z es constante; es decir a = 0, b = 0, en este caso el sistema es llamado
modelo difuso Sugeno de orden cero.
El sistema de inferencia es una parte muy importante dentro del control difuso ya que es este
m´odulo el que se encarga de procesar las variables de entrada y ejecutar los c´alculos necesarios
para retornar los valores finales del sistema difuso. Ambos sistemas de inferencia, tanto tipo
Mamdani como Sugeno, tienen algunos elementos y m´odulos similares, diferenciando en el tipo
de salida que presentan. En el sistema tipo Mamdani, las variables que retorna son expresadas
en t´erminos difusos, es decir, utilizan expresiones cotidianas o de mejor entendimiento para el
usuario; por lo tanto, son defusificadas de tal forma que puedan expresarse num´ericamente. Por
otro lado, el sistema tipo Sugeno evita la defusificaci´on al retornar datos num´ericos. El estudio
detallado de cada una de las partes del sistema de inferencia que se utiliza en este trabajo y las
ventajas del mismo se describe en el Cap´ıtulo 4.
Cap´ıtulo 3
Estado de Arte
Los sistemas de navegaci´on reactiva basados en control difuso han sido explorados en diferentes
trabajos durante los ´ultimos a˜nos [5, 6, 25–33], difiriendo uno de otro en los algoritmos de proce-
samiento de la informaci´on, tipo de sistema de inferencia, el conjunto de reglas, las funciones de
membres´ıa, variables de entrada y salida, o en el tipo de sensor que se utiliza para la adquisici´on
de informaci´on del ambiente.
En algunos sistemas de navegaci´on difusa, el sensor que se plantea utilizar es una c´amara
de video para as´ı obtener la informaci´on del exterior como im´agenes digitales en 2D; es decir,
arreglos matriciales bidimensionales que poseen s´olo informaci´on de ubicaci´on en la coordenada
x y en la coordenada y pero omiten la informaci´on de profundidad.
Uno de los sistemas que maneja informaci´on en 2D se presenta en “A labview-based autono-
mous vehicle navigation system using robot vision and fuzzy control”[25], donde se utiliza una
mini-c´amara JMK, una tarjeta de adquisici´on de im´agenes NI USB-6009 y una tarjeta de cap-
tura de video Dazzle USB. Este sistema es desarrollado bajo la plataforma LabVIEW y emplea
un sistema de inferencia de tipo Mamdani, manejando funciones de membres´ıa tipo triangular
y trapezoidal con 2 variables de entrada (desplazamiento lateral y ´angulo de la curva entrante)
y 2 variables de salida (velocidad y ´angulo de giro). Las variables de entrada tienen en cuenta
el procesamiento de la imagen en 2D del camino a seguir (la imagen en RGB se convierte a
escala de grises y posteriormente es binarizada) de donde se extrae la curvatura de las l´ıneas
del camino (para conocer si es una l´ınea recta o giro a la derecha o giro a la izquierda) y la
anchura del camino, trat´andose como un sistema seguidor de l´ıneas [25]. El sistema de control es
desarrollado como una m´aquina de estados, en donde cada estado espera el resultado del an´alisis
31
Cap´ıtulo 3. Estado de Arte 32
de la imagen de entrada y la decisi´on de giro del sistema de control difuso, para as´ı continuar
con el movimiento adecuado dentro de la m´aquina de estados.
A´un cuando gracias a la captura de im´agenes mediante una c´amara digital se tiene un pano-
rama de la escena, se omite la informaci´on de proximidad de los objetos en la escena. Bas´andose
en el estudio de los sensores de proximidad descritos en la Secci´on 2.4, existen trabajos que
utilizan sensores de este tipo capturando la distancia de los objetos en la escena con respecto al
sensor, como los que se describen en la Secci´on 3.1. Los sensores de proximidad tienen ciertos
inconvenientes al tener un reducido campo de visi´on y omitiendo informaci´on del exterior por
lo cual algunos trabajos buscan la fusi´on de sensores de adquisici´on de im´agenes en 2D con sen-
sores de proximidad y se describen en la Secci´on 3.2. Finalmente, y hacia donde va dirigido este
trabajo, se describen los trabajos que buscan disminuir el costo en la fusi´on sensorial utilizando
el sensor Kinect [4], ver Secci´on 3.3.
3.1. Sistemas de navegaci´on reactiva difusa con sensores
de proximidad
Uno de los inconvenientes de la informaci´on en 2D es que no se sabe qu´e tan cerca o qu´e tan
lejos se encuentra un obst´aculo con respecto al robot m´ovil, por lo cual algunos trabajos como
[5, 26–28], utilizan otro tipo de sensores que permitan obtener informaci´on de proximidad.
El trabajo “Intelligent mobile robot motion control in unstructured environments”[26] im-
plementa un sistema de control para la navegaci´on en ambientes no estructurados sobre un
robot Khepera utilizando un controlador difuso y sensores ultras´onicos para la detecci´on de
objetos pr´oximos. Las entradas del controlador difuso son: distancia del obst´aculo, orientaci´on
del obst´aculo, distancia del objetivo y orientaci´on del objetivo; mientras que las salidas son:
la velocidad angular entre la rueda izquierda y derecha, y la velocidad del veh´ıculo. Se emplea
un sistema de inferencia tipo Mamdani con funciones de membres´ıa tipo Gaussiana y triangular.
En “Implementaci´on de comportamientos para navegaci´on inteligente de robots m´oviles”[27],
se utiliza un anillo de 8 sensores ultras´onicos los cuales son divididos en 4 grupos para la faci-
lidad de procesamiento de datos ya que se obtienen las partes en direcci´on izquierda, frontal,
derecha y parte trasera. Con estos grupos, se evita generar una mayor cantidad de pasos para el
Cap´ıtulo 3. Estado de Arte 33
procesamiento de datos de entrada del sistema de control difuso, adem´as se tiene en cuenta que
no todos los grupos son necesarios para la descripci´on de cada comportamiento, lo cual significa
ahorro de energ´ıa para el robot m´ovil. Este sistema de navegaci´on difuso basado en comporta-
mientos sobre una arquitectura Saphira se compone de 4 comportamientos difusos: navegar por
pasillos, seguir paredes, alcanzar objetivos y evitar obst´aculos; manejando un sistema de inferen-
cia tipo Mamdani, cada uno con su respectivo conjunto de reglas adem´as de utilizar funciones
de membres´ıa de tipo triangular. Los valores de entrada al sistema son las lecturas de distancias
que proporcionan los sensores, y los valores de salida de cada comportamiento es la velocidad
y ´angulo de giro. Las pruebas se realizan en la plataforma m´ovil P-METIN. El funcionamiento
del sistema en general es la ejecuci´on de cada comportamiento por separado o individualmente,
adem´as de permitir combinaciones de comportamientos para tareas m´as complejas, por ejemplo,
un comportamiento complejo de navegar evitando obst´aculos hasta alcanzar a un objetivo.
En “Desarrollo de un sistema de navegaci´on para robots m´oviles mediante diferentes patrones
de comportamientos”[5], se aplica un sistema de navegaci´on difusa por comportamientos sobre
un robot m´ovil con un microcontrolador PIC18F452 programado en lenguaje C. La informaci´on
correspondiente a la distancia en la que se encuentran los objetos con respecto al robot se ob-
tiene mediante 2 sensores ultras´onicos. Este sistema define 3 comportamientos: aproximaci´on a
la pared m´as cercana, seguir el pasillo y evitar obst´aculos. El sistema de inferencia es de tipo
Mamdani, utilizando funciones de membres´ıa trapezoidal y triangular, con un valor de entrada
correspondiente a la distancia del obst´aculo con respecto al sensor y con un valor de salida que
indica el ´angulo en que se mover´a el motor de cada rueda.
Otro trabajo que utiliza un sistema de navegaci´on mediante l´ogica difusa basada en compor-
tamientos y sensores ultras´onicos es “Navegaci´on de robots m´oviles mediante comportamientos
utilizando l´ogica difusa”[28]. Los comportamientos son 2: seguir pared y seguir pasillo. Los sen-
sores ultras´onicos son 8, los cuales de dividen en 3 grupos para un f´acil manejo de la informaci´on
al tener menor cantidad de datos para los valores de entrada de cada m´odulo difuso. El controla-
dor difuso obtiene como valores de entrada a las distancias a las que se encuentran los obst´aculos
y como salida a la velocidad de cada rueda; utiliza un sistema de inferencia tipo Mamdani y
funciones de membres´ıa de tipo trapezoidal y triangular. Para las pruebas del sistema emplea
Fuzzy Logic ToolboxTM
de Matlab R sobre una plataforma P-METIN del grupo GIROPS.
Al utilizar datos de proximidad, los sistemas de navegaci´on difusa son convenientes ya que
retornan informaci´on de distancia entre el sensor y los objetos en la escena adem´as de ser
Cap´ıtulo 3. Estado de Arte 34
tolerantes a fallos que pueda tener el sensor; sin embargo, omiten caracter´ısticas espec´ıficas de
los objetos. A continuaci´on se presentan trabajos que buscan adquirir mayor informaci´on ´util
del ambiente al introducir la fusi´on entre sensores.
3.2. Sistemas de navegaci´on reactiva difusa con fusi´on
sensorial
A´un cuando se obtiene una informaci´on de proximidad, existen trabajos que buscan obtener
m´as informaci´on de la escena, por ejemplo la forma de los objetos, su ubicaci´on y dimensiones;
por lo tanto, implementan sistemas que fusionan tanto sensores de proximidad como una c´ama-
ra de video que captura informaci´on externa mediante im´agenes digitales. Uno de este tipo de
trabajos es “Un sistema multi-agente que emplea visi´on activa y ultrasonidos aplicado a nave-
gaci´on con comportamientos difusos”[29], el cual utiliza sensores ultras´onicos y una c´amara de
video SONY EVI-401 y se implementa sobre un robot m´ovil NORMAD 200. En este trabajo se
entiende como agente un proceso software dirigido a alcanzar o mantener un objetivo; el agente
de Navegaci´on utiliza un controlador difuso mediante funciones triangular y trapezoidal basado
en navegaci´on por comportamientos. Cada comportamiento se define como: orientar la torre-
ta, orientar las ruedas, evitar obst´aculo en una habitaci´on, seguir la pared de una habitaci´on,
atravesar puerta, orientar las ruedas y la torreta en el pasillo, y mover el robot por el pasillo.
La raz´on por la que fusiona dos sensores es por la tarea que busca ejecutar, la cual consiste en
navegar y atravesar puertas entre habitaciones bas´andose en un mapa del entorno donde cada
puerta posee una marca especial.
En “Fuzzy control of a mobile robot”[30] se presenta un sistema de navegaci´on reactiva di-
fusa sobre un Khepera Mobile Robot y una fusi´on entre 8 sensores de proximidad (en este caso
aplica sensores infrarrojos), y una WebCam. Define 3 controladores difusos: a) b´usqueda del
objetivo que ejecuta una b´usqueda del objetivo ignorando los obst´aculos en el camino, b) evadir
obst´aculos que utiliza los sensores infrarrojos y garantiza la seguridad al prevenir colisiones, y c)
explorar el ambiente que est´a basado en una memoria local de todo el camino recorrido. Dichos
controladores son manejados por un m´odulo denominado sistema supervisor difuso cuya funci´on
es determinar la prioridad de ejecuci´on de cada comportamiento. Si hay obst´aculos cerca, le da
prioridad a evadir obst´aculos, por otro lado si el ´area no es explorada, s´olo ejecuta la b´usqueda
del objetivo.
Cap´ıtulo 3. Estado de Arte 35
En el trabajo “Sistema de navegaci´on para robots m´oviles utilizando fusi´on sensorial”[31] se
describe un sistema de navegaci´on difuso desarrollado en lenguaje C y se prueba en un robot
KheperaII. Este sistema utiliza sensores infrarrojos agrupados en 3 partes cuyas se˜nales son
amplificadas, y una c´amara con procesador integrado CMUCam2 de donde se adquieren im´age-
nes en el espacio de color YCbCr. Las se˜nales de entrada provienen de cada grupo: izquierdo,
frontal y derecho, y al mismo tiempo del valor de la centroide del objeto. El valor de salida es
el ´angulo de giro del robot. Ambos casos utilizan la funci´on de membres´ıa tipo triangular. El
sistema fusiona la informaci´on que obtiene del procesamiento de la imagen capturada por la
c´amara (centroide del objeto con respecto al eje x) y la informaci´on que proviene de los sensores
infrarrojos (proximidad izquierda, frontal y derecha); es decir, se tiene el conocimiento de ubi-
caci´on de d´onde se encuentra el objeto y qu´e tan cerca se encuentra con respecto al sensor. Con
estos datos, el sistema de navegaci´on decide el ´angulo de giro del robot m´ovil, por ejemplo, si
encuentra un objeto a la derecha que est´a muy pr´oximo, entonces gira al lado izquierdo evitando
as´ı el obst´aculo; si por otro lado, el robot encuentra un objeto de frente pero lo localiza muy
lejano entonces continua con la navegaci´on frontal.
Los trabajos descritos en esta secci´on buscan definir las caracter´ısticas de los objetos que
se encuentran en la escena, a fin de llegar a un punto en espec´ıfico o utilizar dichas carac-
ter´ısticas para conocer el movimiento a ejecutar, a´un cuando represente un mayor costo y una
implementaci´on extra para la adquisici´on, instalaci´on y compatibilidad de cada sensor. En la
siguiente secci´on se describen trabajos de navegaci´on difusa utilizando el sensor Kinect, una
reciente tecnolog´ıa de fusi´on sensorial que busca resolver los inconvenientes antes mencionados.
3.3. Sistemas de navegaci´on reactiva difusa con sensor
Kinect
Buscando fusionar m´etricas, obtener una mayor cantidad de informaci´on y reducir el costo de
los sensores, una reciente tecnolog´ıa es el sensor Kinect, el cual permite obtener datos de pro-
fundidad a base de sensores infrarrojos e im´agenes digitales mediante una c´amara RGB. Este
sensor ha sido utilizado sobre aplicaciones que se describen en los trabajos de [6, 32, 33].
En “Navegaci´on de robot m´ovil usando Kinect, OpenCV y Arduino”[32] se presenta un sis-
tema de navegaci´on reactiva utilizando el sensor Kinect como dispositivo de captura de escena,
el driver Libfreenect que permite la comunicaci´on entre sensor y computadora, la biblioteca de
Cap´ıtulo 3. Estado de Arte 36
visi´on artificial OpenCV y la placa Arduino para el control de los motores. Este trabajo aplica
un procesamiento a la imagen de profundidad mediante un filtro Gaussiano de 9×9 para la
eliminaci´on de ruido. Posteriormente se procede a localizar el centroide de un objeto pr´oximo
bas´andose en las coordenadas x, y y el valor de profundidad que proporciona la imagen de
profundidad. A partir de dicho objeto, obtiene una distancia promedio para evadir el obst´aculo
girando al lado contrario a la posici´on del objeto, deteniendo motores o avanzando hacia ade-
lante.
Aplicando la navegaci´on reactiva difusa utilizando datos de profundidad del sensor Kinect,
el trabajo “Fuzzy based obstacle avoidance for mobil robots with Kinect sensor”[6] implementa
algoritmos para planificar ruta y evadir obst´aculos. Emplea un sistema de inferencia Mamda-
ni de 16 reglas, funciones de membres´ıa tipo trapezoidal y triangular, 3 variables de entrada
(profundidad del objeto m´as cercano del lado derecho, del lado izquierdo y del centro), y una
variable difusa de salida (´angulo de giro del robot m´ovil). Este trabajo se desarrolla, simula e
implementa utilizando la herramienta Fuzzy Logic ToolboxTM
de Matlab R . Este trabajo mues-
tra resultados de navegaci´on frente a distintas situaciones, desde la detecci´on de obst´aculos en
diferentes direcciones, en diagonal y repentinos, detecci´on de paredes, navegaci´on por pasillos y
navegaci´on libre cuando no existen obst´aculos cercanos omitiendo los casos cuando da prioridad
a los giros.
El sensor Kinect tambi´en puede trabajar en conjunto con otros sensores, por ejemplo en
“Mobile robot navigation and target tracking system”[33] se utilizan las im´agenes de profundi-
dad del sensor Kinect junto con sensores odom´etricos para as´ı obtener los valores de entrada del
controlador difuso: velocidad traslacional y angular del robot, centroide y tama˜no del obst´acu-
lo. Los valores de salida son: velocidad traslacional y angular. El control difuso se desempe˜na
utilizando funciones de membres´ıa de tipo triangular para cada variable. Las im´agenes de pro-
fundidad pasan por un pre-procesamiento mediante la aplicaci´on del filtro Gradiente-Log para
identificar ´areas transversales (suelos). Este sistema est´a implementado bas´andose en el modelo
de un robot diferencial. Al mismo tiempo, utiliza los datos para la detecci´on no s´olo de obst´acu-
los sino para identificar el objetivo final, as´ı como el reconocimiento de formas y los tipos de
caminos por donde navega, por ejemplo, rampas, planos, entre otros, y busca la combinaci´on
entre la planificaci´on de ruta y la navegaci´on de manera reactiva, todo esto mediante l´ogica
difusa y redes neuronales.
Cap´ıtulo 3. Estado de Arte 37
3.4. Discusi´on de los trabajos relacionados
Todos los trabajos mencionados tienen en com´un el aplicar la l´ogica difusa para determinar el
movimiento a ejecutar. A´un cuando utilizan sensores diferentes la idea es b´asicamente la mis-
ma, es decir, utilizar informaci´on de profundidad o proximidad para detectar los obst´aculos m´as
cercanos para posteriormente evadirlos y en algunos casos extraer las dimensiones, formas y el
centroide de cada objeto. Adem´as, estos trabajos est´an orientados hacia la navegaci´on reactiva,
recordando que la navegaci´on basada en comportamientos es considerada un tipo de navegaci´on
reactiva.
La mayor´ıa de los trabajos buscan responder a la pregunta ¿Existe alg´un obst´aculo? En
algunos trabajos se utilizan c´amaras de video para la adquisici´on de im´agenes en 2D para
el reconocimiento de formas. Posteriormente, con el avance tecnol´ogico y aparici´on de nuevos
algoritmos, otros trabajos se concentraron en la adquisici´on de informaci´on de profundidad,
mientras que en algunos m´as buscan la fusi´on entre c´amaras de video y sensores de proximidad
para obtener m´as informaci´on y no s´olo responder a ¿Existe alg´un obst´aculo? sino que adem´as
responder a Si existe un obst´aculo, ¿qu´e tan cerca se encuentra del sensor?, ¿dicho obst´aculo
permite continuar con la navegaci´on?, ¿cu´al es su forma, dimensiones, o textura?; es decir, se
busca la extracci´on de datos que brinden un mejor conocimiento del ambiente donde se navega.
En la siguiente secci´on se describe el desarrollo del sistema propuesto, bas´andose en los trabajos
relacionados al utilizar navegaci´on reactiva, la adquisici´on de datos mediante el sensor Kinect
y la aplicaci´on de un controlador difuso para la toma de decisiones de giro.
Cap´ıtulo 4
Sistema propuesto
4.1. Introducci´on
En este cap´ıtulo se describe el desarrollo del sistema, el cual permite la navegaci´on autom´atica
y evasi´on de obst´aculos bas´andose en una arquitectura reactiva mediante control difuso y datos
de profundidad, con el fin de una posterior implementaci´on en una silla de ruedas.
Un sistema se define como un conjunto de entidades relacionadas entre s´ı que contribuyen a
un determinado objetivo. En general, un sistema se compone de entradas, procesos y salidas. En
este trabajo se describe un sistema en el cual cada uno de los m´odulos representan las entidades
que est´an relacionadas unas con otras con el fin de cumplir el objetivo de navegar de forma au-
tom´atica, evadiendo los obst´aculos que se presenten. Las entradas del sistema de navegaci´on son
los datos de profundidad que se obtienen mediante el sensor Kinect, estos datos son procesados
por cada m´odulo hasta obtener la salida que indica la direcci´on que est´a libre de obst´aculos. Los
m´odulos que componen el sistema inician desde la etapa de intercambio de informaci´on con el
ambiente, siguiendo con las etapas que se encargan de transformar la informaci´on para adquirir
algunas caracter´ısticas espec´ıficas de la escena para que finalmente se determine la direcci´on
de giro. Bas´andose en el diagrama de bloques de las etapas de un sistema de visi´on artificial
del Cap´ıtulo 2, en la Figura 4.1 se muestran las etapas que componen el sistema de navegaci´on
propuesto.
39
Cap´ıtulo 4. Sistema propuesto 40
Etapa sensorial
Etapa de
preprocesamiento
Actuación según
resultados
Etapa de
parametrización
Escena real
Transformación de
datos de profundidad
Eliminación de
regiones
desconocidas
pequeñas
Sistema de
control difuso
Extracción de
profundidad
promedio
Adquisición
de datos de
profundidad
Figura 4.1. Diagrama a bloques de las etapas del sistema de navegaci´on reactiva difusa.
El sistema propuesto obtiene informaci´on del ambiente mediante los datos de profundidad
del sensor Kinect, el cual se encuentra ubicado sobre una plataforma m´ovil, elevado a 1 metro
y con un ´angulo de inclinaci´on vertical de 0◦
. Los datos de profundidad son procesados para
conocer qu´e obst´aculos existen y decidir c´omo actuar controlando la direcci´on del giro de la
plataforma m´ovil.
Se inicia con la adquisici´on de los datos de profundidad, manteni´endose la comunicaci´on entre
el sistema y el ambiente exterior, adem´as de transformar dichos datos a un formato electr´onico.
La transformaci´on de los datos de profundidad describe la transformaci´on de las m´etricas de
profundidad a im´agenes en escala de grises. Posteriormente se procede a la eliminaci´on de las
part´ıculas oscuras de menor ´area dentro de la imagen, las cuales indican informaci´on descono-
Cap´ıtulo 4. Sistema propuesto 41
cida. La extracci´on de profundidad promedio es el proceso donde se obtienen las profundidades
por cada secci´on, esto con el fin de detectar la proximidad de obst´aculos con respecto del sen-
sor. Se finaliza con el procesamiento del control difuso para navegar hacia una trayectoria que
indique una menor cantidad de obst´aculos cercanos.
A continuaci´on, en las siguientes secciones, se presenta la descripci´on detallada de cada etapa
presentada en el diagrama a bloques, Figura 4.1, as´ı como los resultados generados por cada
m´odulo.
4.2. Adquisici´on de datos de profundidad
La fase de adqusici´on de datos de profundidad, consta de la obtenci´on de la informaci´on de
entrada que provienen del mundo real, para que sean transformados a un formato que pueda
ser procesado por la computadora. El sistema trabaja con datos de profundidad, los cuales se
obtienen mediante el sensor Kinect en conjunto con librer´ıas OpenNI [34].
Para la informaci´on adquirida del exterior en una imagen digital bidimensional, el color de
un pixel1
se representa mediante una cadena de d´ıgitos binarios (bits), lo que se denomina in-
tensidad de color. Si se tiene una intensidad de color de n, implica que cada pixel que conforma
la imagen puede representar hasta 2n
colores distintos [35].
En el caso de las im´agenes de profundidad, la informaci´on que se adquiere, cuando el sensor
proyecta un patr´on de puntos infrarrojos en una escena, es examinada por la c´amara para obte-
ner una referencia entre los puntos de la escena y el Kinect, por lo tanto se generan datos en 21
2
,
es decir, una matriz de m×n donde cada elemento indica un valor de proximidad o profundidad;
a diferencia de la informaci´on en 3D que representa una matriz de 3 × n donde cada columna
retorna informaci´on del ambiente en coordenadas (x, y, z). El resultado de la comunicaci´on entre
sensor Kinect y computadora es un arreglo matricial de 640 × 480, el cual puede interpretarse
como una imagen y operarse como tal, pero sin perder el enfoque de que cada pixel es un dato
de profundidad y que adem´as, representa unidades f´ısicas en mil´ımetros. La matriz adquirida
del sensor se define en un marco de profundidad de 16 bits (n = 16), representando un rango
de 216
= 65,536 colores (ver Figura 4.2).
1
Unidad m´as peque˜na homog´enea de color que forma parte de una imagen digital
Cap´ıtulo 4. Sistema propuesto 42
15 12 11 8 7 4 3 0
0000 0101 1111 0011
Figura 4.2. Estructura de los bits de profundidad.
La Figura 4.3 muestra una clasificaci´on dependiendo de la distancia de los objetos en la
escena con la ubicaci´on del Kinect [36]; esta clasificaci´on consta de cuatro rangos: desconocido,
muy cercano, valores normales y muy lejano.
Desconocido
Muy cercano
Valores normales
Muy lejano
0 0.4 0.8 3 4 8
Distancia desde el Sensor (metros)
Figura 4.3. Rango en metros de la imagen de profundidad.
Al utilizar OpenNI, el tipo de dato al que pertenece cada pixel de la imagen de profundidad
que se adquiere con el sensor es un entero sin signo de 16 bits, y la imagen puede ser represen-
tada de manera visual mediante la funci´on imagesc de Matlab R .
Las im´agenes que se obtienen con las dos c´amaras del sensor Kinect se muestran en la Fi-
gura 4.4, donde la imagen que se obtiene de la c´amara RGB del Kinect se observa en la Figura
4.4a, mientras que la imagen de profundidad que se obtiene con el sistema infrarrojo, se observa
en la Figura 4.4b, ambas im´agenes no coinciden exactamente ya que cada una tiene diferente
punto focal. Se aclara de antemano, que este sistema s´olo trabaja con la imagen de profundi-
dad, debido a que la imagen en RGB no proporciona la informaci´on de proximidad; la imagen
en RGB se utiliza para una mejor visualizaci´on de los ambientes donde se experimenta el sistema.
Cap´ıtulo 4. Sistema propuesto 43
100 200 300 400 500 600
50
100
150
200
250
300
350
400
450
(a) Imagen RGB
100 200 300 400 500 600
50
100
150
200
250
300
350
400
450
0
1000
2000
3000
4000
5000
6000
7000
(b) Imagen de profundidad en escala de grises
Figura 4.4. Im´agenes obtenidas del sensor Kinect.
Enfoc´andose en la imagen de profundidad, hasta este punto se tiene una imagen con valores
de pixel de tama˜no de 16 bits. En la siguiente secci´on se realiza una transformaci´on de la imagen
de profundidad para pasar de valores de 16 bits a 8 bits, con la finalidad de que el procesamiento
de la imagen, la extracci´on de datos de profundidad y de la cantidad de datos desconocidos
dentro de la imagen de profundidad consuma la menor cantidad de recursos hardware posibles.
4.3. Transformaci´on de los datos de profundidad
Los datos de profundidad que se obtienen de la escena mediante el sensor Kinect, conforman
un arreglo matricial representado como una imagen de profundidad. El color de cada pixel de
la imagen se basa en el valor de profundidad y su valor puede determinarse en una escala de 0
hasta 65,535; ´esto es porque la imagen es de tipo uint16 (n´umero entero sin signo de 16 bits).
Para la representaci´on de la imagen, el 0 se muestra con el color negro mientras que el color
blanco corresponde al valor 65,535.
En la Figura 4.5 se muestra la imagen de profundidad utilizando el comando imshow de
Matlab R . Al mismo tiempo, se observa la escala de la imagen que va de 0 a 65,535. N´otese que
la mayor´ıa de los pixeles caen dentro del espectro m´as oscuro ya que el valor m´aximo de 65,535
mil´ımetros (65.535 metros) supera el campo de visi´on del sensor Kinect que no es mayor a los
10,000 mil´ımetros (10 metros), lo cual provoca dificultad para diferenciar los objetos dentro de
la imagen.
Cap´ıtulo 4. Sistema propuesto 44
0
1
2
3
4
5
6
x 10
4
Figura 4.5. Imagen de profundidad original.
Para crear una imagen en escala de grises con cada elemento de tama˜no de 8 bits a partir
de una imagen de profundidad con datos de 16 bits, se ejecuta el algoritmo especificado por el
Pseudoc´odigo 1.
Pseudoc´odigo 1 Conversi´on de imagen de profundidad
Entrada: ImagenProf16 {Datos de profundidad de 16 bits}
Salida: ImagenProf {Imagen de profundidad de 8 bits}
1: maximaProf = profundidad m´axima de ImagenProf16
2: para i = 0 hasta 480 hacer
3: para j = 0 hasta 640 hacer
4: Convertir ImagenProf16(i, j) a tipo double
5: profundidad = 255 ∗ ImagenProf16(i, j)/maximaProf
6: Redondear profundidad hacia el entero m´as cercano
7: ImagenProf(i, j) = profundidad
8: fin para
9: fin para
Con este procesamiento se obtiene un rango de 0 (que representa el color negro) a 255 (re-
presentando el color blanco). En la imagen de profundidad, el 0 puede significar objetos muy
cercanos, objetos muy lejanos u objetos que no fueron identificados; bajo esta situaci´on, el sis-
tema de navegaci´on se mantendr´a lo m´as seguro posible dirigi´endose s´olo a lugares conocidos
y que posean la suficiente informaci´on de profundidad para la toma de decisiones, es decir, los
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz
Tesis claudiacruzmtz

Más contenido relacionado

Similar a Tesis claudiacruzmtz

Utilización de Realidad Aumentada e Interfaces Basadas en Audio para Facilita...
Utilización de Realidad Aumentada e Interfaces Basadas en Audio para Facilita...Utilización de Realidad Aumentada e Interfaces Basadas en Audio para Facilita...
Utilización de Realidad Aumentada e Interfaces Basadas en Audio para Facilita...Angelo Tadres
 
20130717JavierEslavaRios
20130717JavierEslavaRios20130717JavierEslavaRios
20130717JavierEslavaRiosJavier Eslava
 
Sistema de soporte de decisiones para la gestión académica de la ULADECH
Sistema de soporte de decisiones para la gestión académica de la ULADECHSistema de soporte de decisiones para la gestión académica de la ULADECH
Sistema de soporte de decisiones para la gestión académica de la ULADECHJulio César Álvarez Reyes
 
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...CIMAT
 
https://bit.ly/3gnuFWa
https://bit.ly/3gnuFWahttps://bit.ly/3gnuFWa
https://bit.ly/3gnuFWacristobalnoe
 
Diseño de bloques en hardware: reciproco de un número, raíz inversa y su reci...
Diseño de bloques en hardware: reciproco de un número, raíz inversa y su reci...Diseño de bloques en hardware: reciproco de un número, raíz inversa y su reci...
Diseño de bloques en hardware: reciproco de un número, raíz inversa y su reci...Luis Isaac Domínguez Gámez
 
Registro nominal de vacunación
Registro nominal de vacunación Registro nominal de vacunación
Registro nominal de vacunación MayumiBarrial
 
Estudio sobre seguridad_y_privacidad_en_el_uso_de_los_servicios_moviles_por_l...
Estudio sobre seguridad_y_privacidad_en_el_uso_de_los_servicios_moviles_por_l...Estudio sobre seguridad_y_privacidad_en_el_uso_de_los_servicios_moviles_por_l...
Estudio sobre seguridad_y_privacidad_en_el_uso_de_los_servicios_moviles_por_l...Joaquin Sanz-Gadea
 

Similar a Tesis claudiacruzmtz (20)

Utilización de Realidad Aumentada e Interfaces Basadas en Audio para Facilita...
Utilización de Realidad Aumentada e Interfaces Basadas en Audio para Facilita...Utilización de Realidad Aumentada e Interfaces Basadas en Audio para Facilita...
Utilización de Realidad Aumentada e Interfaces Basadas en Audio para Facilita...
 
20130717JavierEslavaRios
20130717JavierEslavaRios20130717JavierEslavaRios
20130717JavierEslavaRios
 
Sistema de soporte de decisiones para la gestión académica de la ULADECH
Sistema de soporte de decisiones para la gestión académica de la ULADECHSistema de soporte de decisiones para la gestión académica de la ULADECH
Sistema de soporte de decisiones para la gestión académica de la ULADECH
 
Tfg g3750
Tfg g3750Tfg g3750
Tfg g3750
 
Diagnostico de Fallas Red Area Local
Diagnostico de Fallas Red Area LocalDiagnostico de Fallas Red Area Local
Diagnostico de Fallas Red Area Local
 
Trabajo de investigacion ing de sistemas
Trabajo de investigacion  ing de sistemasTrabajo de investigacion  ing de sistemas
Trabajo de investigacion ing de sistemas
 
Aspecto caracteristicas
Aspecto caracteristicasAspecto caracteristicas
Aspecto caracteristicas
 
1 miguel vasquez
1 miguel vasquez1 miguel vasquez
1 miguel vasquez
 
Tesis maestriafinal
Tesis maestriafinalTesis maestriafinal
Tesis maestriafinal
 
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
Algoritmo de Reconocimiento de Objetos en Escenas Complejas para Aplicaciones...
 
Tesis elio
Tesis elioTesis elio
Tesis elio
 
Biometrica
BiometricaBiometrica
Biometrica
 
https://bit.ly/3gnuFWa
https://bit.ly/3gnuFWahttps://bit.ly/3gnuFWa
https://bit.ly/3gnuFWa
 
0281 williams
0281 williams0281 williams
0281 williams
 
Tesis jaime
Tesis jaimeTesis jaime
Tesis jaime
 
Memoria
MemoriaMemoria
Memoria
 
Diseño de bloques en hardware: reciproco de un número, raíz inversa y su reci...
Diseño de bloques en hardware: reciproco de un número, raíz inversa y su reci...Diseño de bloques en hardware: reciproco de un número, raíz inversa y su reci...
Diseño de bloques en hardware: reciproco de un número, raíz inversa y su reci...
 
Registro nominal de vacunación
Registro nominal de vacunación Registro nominal de vacunación
Registro nominal de vacunación
 
Estudio sobre seguridad_y_privacidad_en_el_uso_de_los_servicios_moviles_por_l...
Estudio sobre seguridad_y_privacidad_en_el_uso_de_los_servicios_moviles_por_l...Estudio sobre seguridad_y_privacidad_en_el_uso_de_los_servicios_moviles_por_l...
Estudio sobre seguridad_y_privacidad_en_el_uso_de_los_servicios_moviles_por_l...
 
TFM_MJVillanueva
TFM_MJVillanuevaTFM_MJVillanueva
TFM_MJVillanueva
 

Último

Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptEduardoCorado
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfMIGUELANGELCONDORIMA4
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)ssuser563c56
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALKATHIAMILAGRITOSSANC
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdfevin1703e
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdfAnthonyTiclia
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfpaola110264
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfReneBellido1
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTFundación YOD YOD
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaSHERELYNSAMANTHAPALO1
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdffredyflores58
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IILauraFernandaValdovi
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASfranzEmersonMAMANIOC
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdfFlorenciopeaortiz
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasSegundo Silva Maguiña
 
Normas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISINormas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISIfimumsnhoficial
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.pptVitobailon
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfMirthaFernandez12
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEANDECE
 

Último (20)

Introducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.pptIntroducción a los sistemas neumaticos.ppt
Introducción a los sistemas neumaticos.ppt
 
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdfPresentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
Presentación N° 1 INTRODUCCIÓN Y CONCEPTOS DE GESTIÓN AMBIENTAL.pdf
 
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)Voladura Controlada  Sobrexcavación (como se lleva a cabo una voladura)
Voladura Controlada Sobrexcavación (como se lleva a cabo una voladura)
 
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONALCHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
CHARLA DE INDUCCIÓN SEGURIDAD Y SALUD OCUPACIONAL
 
Residente de obra y sus funciones que realiza .pdf
Residente de obra y sus funciones que realiza  .pdfResidente de obra y sus funciones que realiza  .pdf
Residente de obra y sus funciones que realiza .pdf
 
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
2. UPN PPT - SEMANA 02 GESTION DE PROYECTOS MG CHERYL QUEZADA(1).pdf
 
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdfCENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
CENTROIDES Y MOMENTOS DE INERCIA DE AREAS PLANAS.pdf
 
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdfCAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
CAP4-TEORIA EVALUACION DE CAUDALES - HIDROGRAMAS.pdf
 
Una estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NISTUna estrategia de seguridad en la nube alineada al NIST
Una estrategia de seguridad en la nube alineada al NIST
 
CICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresaCICLO DE DEMING que se encarga en como mejorar una empresa
CICLO DE DEMING que se encarga en como mejorar una empresa
 
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdfECONOMIA APLICADA SEMANA 555555555555555555.pdf
ECONOMIA APLICADA SEMANA 555555555555555555.pdf
 
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdfVALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
VALORIZACION Y LIQUIDACION MIGUEL SALINAS.pdf
 
Tiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo IITiempos Predeterminados MOST para Estudio del Trabajo II
Tiempos Predeterminados MOST para Estudio del Trabajo II
 
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIASTEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
TEXTURA Y DETERMINACION DE ROCAS SEDIMENTARIAS
 
estadisticasII Metodo-de-la-gran-M.pdf
estadisticasII   Metodo-de-la-gran-M.pdfestadisticasII   Metodo-de-la-gran-M.pdf
estadisticasII Metodo-de-la-gran-M.pdf
 
Topografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la IngenieríasTopografía 1 Nivelación y Carretera en la Ingenierías
Topografía 1 Nivelación y Carretera en la Ingenierías
 
Normas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISINormas para los aceros basados en ASTM y AISI
Normas para los aceros basados en ASTM y AISI
 
Fe_C_Tratamientos termicos_uap _3_.ppt
Fe_C_Tratamientos termicos_uap   _3_.pptFe_C_Tratamientos termicos_uap   _3_.ppt
Fe_C_Tratamientos termicos_uap _3_.ppt
 
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdfPresentación Proyecto Trabajo Creativa Profesional Azul.pdf
Presentación Proyecto Trabajo Creativa Profesional Azul.pdf
 
Fijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSEFijaciones de balcones prefabricados de hormigón - RECENSE
Fijaciones de balcones prefabricados de hormigón - RECENSE
 

Tesis claudiacruzmtz

  • 1. NAVEGACI´ON REACTIVA DIFUSA USANDO DATOS DE PROFUNDIDAD DEL SENSOR KINECT TESIS PARA OBTENER EL T´ITULO DE: INGENIERO EN COMPUTACI´ON PRESENTA: CLAUDIA CRUZ MART´INEZ DIRECTOR DE TESIS: DR. IGNACIO ALGREDO BADILLO SANTO DOMINGO TEHUANTEPEC, OAXACA, M´EXICO. MARZO 2014
  • 2. Agradecimientos Agradezco a Dios por la fortaleza y convicci´on de seguir adelante, por los momentos buenos y malos que he tenido en mi carrera universitaria y que me han ayudado a crecer y madurar como persona. Infinitas gracias a mis padres, Carlos Cruz L´opez y Silvia Mart´ınez Rosas, por todo el es- fuerzo hecho para que me fuera posible terminar mis estudios, por los momentos que estuvieron junto a m´ı, por darme un ejemplo de vida de lo que quiero seguir siendo en el futuro y por ese ambiente de hogar que me ha cuidado y apoyado incondicionalmente todos estos a˜nos. Gracias a mi hermana, Elvira I. Cruz Mart´ınez por ser parte de mi familia, por su apoyo, su cuidado y los momentos que ha compartido conmigo, y muy en especial, le agradezco por mis dos sobrinos, Estefania L´opez Cruz y Carlos Manuel L´opez Cruz, quienes me han acompa˜nado en estos ´ultimos a˜nos, haciendo crecer en m´ı la capacidad de tolerancia y respeto brind´andome su inocencia y alegr´ıa. Agradezco a mi director de tesis Dr. Ignacio Algredo Badillo por las aportaciones en este proyecto. Gracias al profesor M.C. Ernesto Cort´es P´erez por encaminar en un inicio este pro- yecto de tesis y al profesor M.C. J. Jes´us Arellano Pimentel, no s´olo por su funci´on de sinodal, sino por el apoyo, sus consejos y ense˜nanzas en estos a˜nos de mi carrera. Tambi´en agradezco a mis sinodales, M.C. Sergio Ju´arez V´azquez, M.R. Yara P´erez Maldonado y M.C. V´ıctor Hugo Garc´ıa Rodr´ıguez por sus valiosos comentarios y correcciones realizados en la revisi´on de este documento. Un agradecimiento especial al Dr. Enrique Sucar Succar por su apoyo en el desarrollo de mi proyecto de estancia profesional, as´ı como tambi´en le agradezco a Juan Irving, Shender, Kika, Israel, Sol, ´Angel y Eduardo, por sus conocimientos, compa˜n´ıa y amistad en mi tiempo I
  • 3. AGRADECIMIENTOS II de estancia profesional. Quiero agradecer a todos mis dem´as amigos, Leydi, Claudia y Rommel, a quienes siempre tengo presentes y que han compartido conmigo buenos y malos momentos y que han enriquecido mi vida con sus consejos, compa˜n´ıa, cr´ıticas, conocimientos y apoyo. Le agradezco al Programa de Mejoramiento de Profesorado (PROMEP) y al Cuerpo Acad´emi- co de Ingenier´ıa en Computaci´on por el apoyo econ´omico para la realizaci´on de esta tesis. Gracias Universidad del Istmo por brindarme la oportunidad de estudiar una carrera profe- sional, por hacerme crecer no s´olo como profesionista sino tambi´en como persona.
  • 4.
  • 5.
  • 6. Resumen En general, el desempe˜no en las actividades diarias de las personas con capacidades disminuidas que utilizan silla de ruedas desciende porque estas actividades implican un mayor esfuerzo, lo cual puede ocasionarles lesiones o representar un peligro para su salud. Los sistemas rob´oticos de navegaci´on autom´atica orientados al apoyo de personas con capacidades disminuidas, permiten el desplazamiento a trav´es de diferentes ambientes. De este modo, el sistema rob´otico es una base para la ejecuci´on de las actividades de personas con capacidades disminuidas y se requiere que dicho sistema presente caracter´ısticas tales como seguridad y estabilidad para prevenir lesiones del usuario. El principal objetivo de esta tesis es el dise˜no y desarrollo de una aplicaci´on software para la navegaci´on autom´atica de manera reactiva, que permite una tolerancia en el procesamiento de informaci´on imprecisa o datos que puedan ser alterados por distintos factores, todo esto aplicando la l´ogica difusa. Adicionalmente, esta aplicaci´on adquiere la informaci´on del exterior a trav´es del sensor Kinect y su implementaci´on futura est´a orientada a la navegaci´on de una silla de ruedas. La informaci´on de profundidad del sensor Kinect es procesada mediante el algoritmo de l´ogica difusa para detectar la direcci´on con la menor probabilidad de colisi´on. Esta direcci´on es expresada en grados sexagesimales que permitan la ejecuci´on de movimientos suaves y la reacci´on ante obst´aculos imprevistos. La evaluaci´on del sistema de navegaci´on se realiz´o en dos ambientes: un ambiente dom´estico y en un laboratorio de c´omputo. Las pruebas son ejecutadas en un equipo de c´omputo con el sensor Kinect sobre una plataforma m´ovil, la cual es controlada manualmente por un operador humano despu´es de recibir las instrucciones que retorna la aplicaci´on. El sistema de navegaci´on propuesto acierta en un 85.7 % con un tiempo promedio de ejecuci´on de 38.9 milisegundos por cada captura. En esta tesis se presenta el desarrollo de cada m´odulo de la aplicaci´on software, as´ı como de una interfaz gr´afica que permite observar la imagen de profundidad adquirida mediante el sensor Kinect y la visualizaci´on de la direcci´on de rotaci´on de la plataforma m´ovil para evitar colisiones. V
  • 7.
  • 8. Abstract In general, the performance of the daily tasks for the people with diminished capacities that use a wheelchair decreases because these tasks imply a greater effort, which can cause lesions or health problems. The robotic systems of autonomous navigation that are aimed to the sup- port of people with diminished capacities allow the movement through different environments. In this way the robotic system is the base for the execution of the activities of people with diminished capacities and it is necesary that the robotic system presents characteristics such security and stability to prevent lesions for the user. The main goal of this thesis is the design and development of a software application for the reactive autonomous navigation that admit a tolerance on processing of imprecise information or data that can be disturbed by different factors and generate gradual movements all of this by applying the fuzzy logic. Additionally, this application acquires the data of enviroment through Kinect sensor and its future implemen- tation is oriented to the navegation of a wheelchair. The depth information from a Kinect sensor is processed through fuzzy logic algorithm to detect the direction with less collision probability. The direction is expressed by sexagesimal angles that allow the execution of soft movements and the reactions when unexpected obstacles appear. The evaluation of the navigation system is made in two different environments: a domestic environment and a computer laboratory. The tests are executed in a computer with the Kinect on top of a mobile platform, which is manually controlled by a human operator after he receives the instructions that the application returns. The proposed navigation system hits in a 85.7 % and its average proccessing time is 38.9 milli- seconds for each capture. This thesis presents the development of each module of the software application as well as a graphic interface that allow the display of the depth image acquired by Kinect sensor and the visualization of the direction of rotation of platform mobile to avoid collisions. VII
  • 9.
  • 10. ´Indice general Agradecimientos I Resumen V Abstract VII ´Indice de figuras XIII ´Indice de tablas XVII ´Indice de pseudoc´odigos XIX 1. Introducci´on 1 1.1. Planteamiento del Problema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.2. Hip´otesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.3. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.1. General . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.3.2. Espec´ıficos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.4. Justificaci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1.5. Alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.6. Limitaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.7. Metodolog´ıa general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 2. Marco Te´orico 11 2.1. Navegaci´on rob´otica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2. Inteligencia Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 2.3. Visi´on Artificial . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 2.4. Sensores . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 IX
  • 11. ´Indice general X 2.5. Sensor Kinect . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.6. L´ogica Difusa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.6.1. Definiciones b´asicas y terminolog´ıa . . . . . . . . . . . . . . . . . . . . . 24 2.6.2. Funciones de membres´ıa . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.6.3. Sistemas de inferencia difusos . . . . . . . . . . . . . . . . . . . . . . . . 28 3. Estado de Arte 31 3.1. Sistemas de navegaci´on reactiva difusa con sensores de proximidad . . . . . . . . 32 3.2. Sistemas de navegaci´on reactiva difusa con fusi´on sensorial . . . . . . . . . . . . 34 3.3. Sistemas de navegaci´on reactiva difusa con sensor Kinect . . . . . . . . . . . . . 35 3.4. Discusi´on de los trabajos relacionados . . . . . . . . . . . . . . . . . . . . . . . . 37 4. Sistema propuesto 39 4.1. Introducci´on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.2. Adquisici´on de datos de profundidad . . . . . . . . . . . . . . . . . . . . . . . . 41 4.3. Transformaci´on de los datos de profundidad . . . . . . . . . . . . . . . . . . . . 43 4.4. Eliminaci´on de regiones desconocidas peque˜nas . . . . . . . . . . . . . . . . . . . 45 4.5. Extracci´on de profundidad promedio . . . . . . . . . . . . . . . . . . . . . . . . 49 4.6. Sistema de control difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.6.1. Definici´on de variables de entrada, variables de salida y del sistema de inferencia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.6.2. Definici´on de valores ling¨u´ısticos y funciones de membres´ıa . . . . . . . . 56 4.6.3. Conjunto de reglas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 5. Resultados y Comparaciones 69 5.1. Resultados generales . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69 5.2. Resultados por capturas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71 5.3. Resultados por objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 5.4. Resultados por alcances . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 5.5. Comparaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 6. Conclusiones y trabajo a futuro 95 6.1. Conclusiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 6.2. Trabajo a futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 Referencias 99
  • 12. ´Indice general XI A. Interfaz gr´afica 105 B. Ejecuci´on del programa 109 C. C´odigo fuente 113 C.1. Archivo principal: Grafico.m . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113 C.2. Transformaci´on de los datos de profundidad: apariencia.m . . . . . . . . . . . . 115 C.3. Dividir imagen de profundidad por regiones: obtenerRegiones.m . . . . . . . . . 115 C.4. Obtener profundidad promedio por regi´on: obtenerProfundidad.m . . . . . . . . 116
  • 13.
  • 14. ´Indice de figuras 1.1. Metodolog´ıa del desarrollo del proyecto de tesis. . . . . . . . . . . . . . . . . . . 8 2.1. Esquema de arquitectura estrat´egica. . . . . . . . . . . . . . . . . . . . . . . . . 11 2.2. Esquema de arquitectura reactiva. . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.3. Esquema de arquitectura por comportamientos. . . . . . . . . . . . . . . . . . . 12 2.4. Esquema de arquitectura h´ıbrida. . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2.5. L´ogica difusa aplicado en la navegaci´on reactiva propuesta. . . . . . . . . . . . . 13 2.6. Diagrama de bloques de las etapas de un sistema de visi´on artificial. . . . . . . . 18 2.7. Sensor Kinect. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2.8. Campo de visi´on del sensor Kinect. . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.9. Nube de puntos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 2.10. Imagen de profundidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 2.11. Elementos de los conjuntos difusos. . . . . . . . . . . . . . . . . . . . . . . . . . 25 2.12. Funci´on triangular. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 2.13. Funci´on trapezoidal. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.14. Funci´on Gaussiana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 2.15. Funci´on campana (bell). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.16. Estructura general de un sistema de inferencia difusa tipo Mamdani. . . . . . . . 29 2.17. Estructura general de un sistema de inferencia difusa tipo Sugeno. . . . . . . . . 30 4.1. Diagrama a bloques de las etapas del sistema de navegaci´on reactiva difusa. . . . 40 4.2. Estructura de los bits de profundidad. . . . . . . . . . . . . . . . . . . . . . . . 42 4.3. Rango en metros de la imagen de profundidad. . . . . . . . . . . . . . . . . . . . 42 4.4. Im´agenes obtenidas del sensor Kinect. . . . . . . . . . . . . . . . . . . . . . . . . 43 4.5. Imagen de profundidad original. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 4.6. Imagen de profundidad principal ImagenProf a escala de grises de 8 bits. . . . 45 4.7. Ejemplo de erosi´on geod´esica de se˜nales. . . . . . . . . . . . . . . . . . . . . . . 47 XIII
  • 15. ´Indice de figuras XIV 4.8. Imagen con agujeros rellenados. . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4.9. Divisi´on de imagen de profundidad ImagenProfundidad. . . . . . . . . . . . . . 50 4.10. Im´agenes de profundidad con ´areas grandes desconocidas. . . . . . . . . . . . . . 51 4.11. Sistema de control difuso. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.12. Ejemplo de fusificaci´on. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58 4.13. Funciones de membres´ıa para variables de entrada. . . . . . . . . . . . . . . . . 58 4.14. Diagrama del sistema de inferencia Sugeno del control difuso. . . . . . . . . . . . 63 4.15. Diagrama de bloques del sistema de navegaci´on reactiva difusa. . . . . . . . . . 64 4.16. Diagrama general del sistema de control difuso. . . . . . . . . . . . . . . . . . . 65 5.1. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: habitaci´on con poca luminosidad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5.2. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: habitaci´on con luminosidad artificial. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 5.3. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: pared y otros objetos lejanos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 5.4. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: espacio con luminosidad natural menor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.5. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: espacio con luminosidad natural moderada. . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.6. Im´agenes obtenidas del sensor Kinect en un ambiente dom´estico: espacio con ligeros movimientos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.7. Im´agenes obtenidas del sensor Kinect en un laboratorio de c´omputo: tratamiento de objetos cercanos y lejanos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 5.8. Im´agenes obtenidas del sensor Kinect en un laboratorio de c´omputo: ejecuci´on con una pared cercana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 5.9. Im´agenes obtenidas del sensor Kinect en un laboratorio de c´omputo: ejecuci´on con una pared muy cercana. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 5.10. Im´agenes obtenidas del sensor Kinect en un laboratorio de c´omputo: caso del pasillo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 5.11. Im´agenes obtenidas del sensor Kinect en un laboratorio de c´omputo: vista del laboratorio de c´omputo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 A.1. Interfaz de usuario del sistema. . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 A.2. Secci´on de imagen de profundidad. . . . . . . . . . . . . . . . . . . . . . . . . . 106
  • 16. ´Indice de figuras XV A.3. Secci´on del ´angulo de giro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 A.4. Secci´on gr´afica de giro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107 A.5. Secci´on de selecci´on de datos de entrada. . . . . . . . . . . . . . . . . . . . . . . 107 A.6. Secci´on del porcentaje a omitir de datos desconocidos. . . . . . . . . . . . . . . . 108 A.7. Secci´on de botones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108 B.1. Proceso de compilaci´on: selecci´on de archivos. . . . . . . . . . . . . . . . . . . . 111 B.2. Proceso de compilaci´on: inicializaci´on. . . . . . . . . . . . . . . . . . . . . . . . 111 B.3. Proceso de compilaci´on: selecci´on de compilador. . . . . . . . . . . . . . . . . . . 111 B.4. Proceso de compilaci´on: verificaci´on de datos. . . . . . . . . . . . . . . . . . . . 112
  • 17.
  • 18. ´Indice de tablas 2.1. Algunas definiciones de Inteligencia Artificial, organizadas en 4 categor´ıas. . . . 15 4.1. Resultados de medici´on distancia/profundidad. . . . . . . . . . . . . . . . . . . . 57 4.2. Rangos y funciones de membres´ıa correspondientes a cada valor ling¨u´ıstico. . . . 59 4.3. Tabla de verdad de la operaci´on l´ogica AND. . . . . . . . . . . . . . . . . . . . 62 4.4. Tabla de verdad de la operaci´on l´ogica OR. . . . . . . . . . . . . . . . . . . . . 62 4.5. Conjunto de reglas del sistema de control difuso: giros pronunciados. . . . . . . . 66 4.6. Conjunto de reglas del sistema de control difuso: reglas predictivas. . . . . . . . 66 4.7. Conjunto de reglas del sistema de control difuso: movimiento en linea recta. . . . 67 4.8. Conjunto de reglas del sistema de control difuso: giros b´asicos. . . . . . . . . . . 67 5.1. Caracter´ısticas de los equipos de c´omputo. . . . . . . . . . . . . . . . . . . . . . 70 5.2. Tiempos de ejecuci´on promedio en milisegundos (ms). . . . . . . . . . . . . . . . 70 5.3. Comparaci´on entre los trabajos relacionados. . . . . . . . . . . . . . . . . . . . . 91 XVII
  • 19.
  • 20. ´Indice de pseudoc´odigos 1. Conversi´on de imagen de profundidad . . . . . . . . . . . . . . . . . . . . . . . . 44 2. Relleno de part´ıculas oscuras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 3. Reconstrucci´on morfol´ogica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 4. Extracci´on de profundidad promedio . . . . . . . . . . . . . . . . . . . . . . . . 52 5. Sistema de control difuso . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64 6. Sistema completo de navegaci´on reactiva difusa . . . . . . . . . . . . . . . . . . 65 XIX
  • 21.
  • 22. Dedicado a Dios y a mi familia
  • 23.
  • 24. Cap´ıtulo 1 Introducci´on La rob´otica m´ovil ha sido empleada en diferentes prop´ositos, desde proyectos acad´emicos, proce- sos industriales, aplicaciones de investigaci´on y en el sector salud, entre otros [1]. Para un robot m´ovil, la navegaci´on es la habilidad que requiere para desplazarse de un lugar a otro dentro de un entorno, evitando los obst´aculos que se le presenten. La navegaci´on se puede ejecutar ya sea a) por un operador humano, que toma las decisiones de movimiento y env´ıa una se˜nal al dispositivo m´ovil para que ´este ejecute el desplazamiento o b) de manera autom´atica, es decir, sin la intervenci´on directa de un operador [2]. Un sistema de navegaci´on autom´atica busca explorar un ambiente evitando colisionar con los objetos que se encuentren dentro de dicho ambiente, tratando de simular el raciocinio humano mediante la inteligencia artificial. Para conocer qu´e existe en la escena y, en base a esta infor- maci´on ejecutar el movimiento adecuado, el sistema rob´otico requiere la captura de informaci´on externa utilizando diferentes tipos de sensores, ya sea aquellos que toman una imagen de la escena, la informaci´on de proximidad de los objetos con respecto al sensor o una fusi´on entre diferentes tipos de sensores. En los ´ultimos a˜nos la fusi´on sensorial ha sido aplicada mediante el sensor Kinect, el cual permite una extracci´on de informaci´on del ambiente empleando: sensores de proximidad (l´aser y c´amara infrarrojos), im´agenes digitales (c´amara RGB), comandos de voz (arreglo de micr´ofonos) y sensor propioceptivo (aceler´ometro). Una vez que se obtienen los datos del ambiente, el sistema debe ejecutar una serie de pro- cesos, basados en inteligencia artificial, para extraer informaci´on ´util, que le permita conocer hacia d´onde debe moverse lo m´as r´apido e instant´aneamente posible a´un reaccionando a casos imprevistos, sin la intervenci´on directa de un operador. La l´ogica difusa, siendo un sub-campo de 1
  • 25. Cap´ıtulo 1. Introducci´on 2 la inteligencia artificial trata de representar el sentido com´un del humano y puede ser aplicada en sistemas de navegaci´on para evitar colisiones, tratar datos que pueden estar sujetos a per- turbaciones y tener una reacci´on en tiempo real. Adem´as permite la generaci´on de movimientos no tan bruscos, ya que ´estos pueden ocasionar lesiones a los usuarios del sistema. Considerando los aspectos previamente mencionados, se propone un sistema de navegaci´on reactiva difusa implementado en software, que se contempla desde el procesamiento de datos de profundidad hasta la aplicaci´on de la l´ogica difusa como algoritmo de navegaci´on. Se espera una posterior implementaci´on en hardware (sistema empotrado) principalmente sobre una silla de ruedas para personas discapacitadas, aunque se tiene en cuenta que dicho sistema puede ser implementado en alguna otra plataforma m´ovil. Por lo tanto, no se consideran caracter´ısticas espec´ıficas de alg´un robot m´ovil ya que la presente aplicaci´on se enfoca en calcular la direcci´on de giro hacia el espacio con la menor probabilidad de choque, evaluando los valores de profun- didad de los objetos en el ambiente, sin adquirir formas ni tama˜nos de los obst´aculos. Al mismo tiempo, se busca la reducci´on de costos econ´omicos, recursos de espacio en circuiter´ıa y consumo de energ´ıa. Cabe mencionar que este trabajo forma parte del proyecto Desarrollo de una silla de ruedas aut´onoma con brazo rob´otico para asistir a personas con capacidades dis- minuidas, desarrollado por el Cuerpo Acad´emico de Ingenier´ıa en Computaci´on de la Universidad del Istmo, Campus Tehuantepec y financiado por el Programa de Mejo- ramiento del Profesorado, PROMEP. A continuaci´on se tratan los temas introductorios del proyecto correspondientes a la defini- ci´on del problema, justificaci´on, hip´otesis y objetivos generales y espec´ıficos. En el Cap´ıtulo 2 se exponen los conceptos te´oricos para el conocimiento de los temas a tratar en cap´ıtulos siguientes. En el Cap´ıtulo 3 se presentan los trabajos actuales relacionados con el sistema de navegaci´on reactiva difusa. Posteriormente en el Cap´ıtulo 4 se describe de forma detallada el desarrollo del sistema propuesto, desde la captura de los datos de profundidad hasta la descripci´on del sistema de control difuso. Los resultados que se obtienen en base a experimentaci´on son presentados en el Cap´ıtulo 5 dividi´endose en resultados generales, por capturas de la escena y por objetivos y alcances propuestos en el Cap´ıtulo 1, para concluir en dicho cap´ıtulo con las comparaciones con los trabajos expuestos en el Estado de Arte. Finalmente en el Cap´ıtulo 6 se plantean las conclusiones obtenidas y el trabajo que se propone para su implementaci´on futura.
  • 26. Cap´ıtulo 1. Introducci´on 3 1.1. Planteamiento del Problema Existe una problem´atica para las personas con discapacidades motrices que utilizan silla de ruedas al momento del desplazamiento de un lugar a otro, ejecuci´on de actividades cotidianas y evasi´on de los obst´aculos que se les presentan, ya que son diversas acciones para un mismo momento. En algunas sillas de ruedas, el desplazamiento depende de la fuerza que pueda gene- rar el operador, ya sea la misma persona discapacitada o alguien independiente que le ayude a moverse; sin embargo, esto aumenta la dificultad en la ejecuci´on de otras tareas. Por un lado, existen diversas sillas de ruedas que utilizan componentes el´ectricos que pue- den ser manejados ya sea mediante un control o joystick, pero a´un significa un impedimento para realizar otras actividades, adem´as de que algunas personas discapacitadas no pueden o se les dificulta manejar dichos controles. Por otro lado, se han probado sistemas de navegaci´on autom´atica con diferentes tipos de sensores y algoritmos que tratan de obtener la mayor can- tidad de informaci´on ´util del ambiente y as´ı tomar las mejores decisiones en la ejecuci´on del giro. El presente trabajo de tesis plantea una aplicaci´on software para la navegaci´on reactiva te- niendo en cuenta que se deben evitar giros bruscos para no ocasionar lesiones al operador, por lo tanto se busca responder a la siguiente cuesti´on: ¿La l´ogica difusa puede implementarse para la evasi´on de obst´aculos de manera reactiva, permitiendo movimientos suaves y previniendo la ejecuci´on de giros bruscos? Esta cuesti´on conlleva a: a) identificar el formato de los datos que se extraen del ambiente, b) adquirir la direcci´on de giro de la plataforma m´ovil hacia el espacio con la menor probabilidad de colisi´on, c) ejecutar una navegaci´on casi de forma inmediata evitando extracci´on de formas y caracter´ısticas m´as espec´ıficas de los obst´aculos, salvo su proximidad con respecto al sensor y, adem´as, d) evitar generar movimientos bruscos, adapt´andose lo mejor posible a cualquier tipo de ambiente. Todo esto tratando de obtener un sistema cuya implemen- taci´on futura pueda generar la menor cantidad de recursos (espacio, circuiter´ıa, potencia, entre otros) y sin considerar caracter´ısticas y dimensiones de alg´un dispositivo m´ovil en espec´ıfico. 1.2. Hip´otesis Un sistema de navegaci´on reactiva difusa en conjunto con el sensor Kinect permitir´a la evasi´on de obst´aculos de una plataforma m´ovil sin contemplar sus dimensiones, generando movimientos suaves y orientado a una posterior implementaci´on en una silla de ruedas para personas con discapacidades motrices o de la tercera edad.
  • 27. Cap´ıtulo 1. Introducci´on 4 1.3. Objetivos En esta secci´on se presentan los objetivos del trabajo de tesis considerando desde un enfoque general hasta un desglose espec´ıfico. 1.3.1. General Dise˜nar y desarrollar una aplicaci´on software para un sistema de navegaci´on reactiva a trav´es del procesamiento de datos de profundidad del sensor Kinect y el control difuso sobre las direc- ciones de giro, orientado a una implementaci´on hardware en una silla de ruedas sin considerar sus dimensiones. 1.3.2. Espec´ıficos Examinar los datos de profundidad que adquieren mediante el sensor Kinect. Identificar los formatos de las im´agenes de rango del sensor Kinect. Determinar el formato de las im´agenes de rango del sensor Kinect que servir´a como datos de entrada del programa, en base a tiempo y recursos de procesamiento. Definir el conjunto de reglas del control difuso. Establecer los rangos difusos para las variables de entrada y de salida mediante la expe- rimentaci´on con el sensor Kinect. Investigar y contrastar el comportamiento de los sistemas de inferencia Mamdani y Sugeno. Elegir un sistema de inferencia bas´andose en trabajos relacionados a los estudios compa- rativos, libros y manuales. Dise˜nar la interfaz gr´afica de usuario para simular el sistema de navegaci´on reactiva y la visualizaci´on de resultados. Desarrollar el sistema mediante la herramienta de programaci´on de Matlab 2012a R uti- lizando Fuzzy Logic ToolboxTM e Image Processing ToolboxTM . Realizar pruebas del sistema de navegaci´on utilizando grabaciones previas del sensor Ki- nect para visualizar el comportamiento de la aplicaci´on.
  • 28. Cap´ıtulo 1. Introducci´on 5 Ejecutar pruebas del sistema de navegaci´on en conexi´on directa con el sensor Kinect sobre una plataforma m´ovil, controlada manualmente por un operador humano siguiendo las instrucciones que retorna la aplicaci´on. Analizar cada una de las versiones del sistema mediante los resultados obtenidos. Seleccionar la versi´on final del programa. 1.4. Justificaci´on Un sistema de navegaci´on autom´atico utilizando la visi´on artificial es conveniente, ya que permi- te un avance tecnol´ogico para diferentes sectores en la realizaci´on de tareas peligrosas, repetitivas o imposibles de ejecutar por un ser humano. En este trabajo se desarrolla un sistema de navegaci´on autom´atico aplicando una arquitec- tura reactiva. La navegaci´on reactiva calcula las direcciones o movimientos un menor tiempo en comparaci´on con otro tipo de arquitecturas de navegaci´on, y es conveniente su implementaci´on en un sistema empotrado debido al menor consumo de recursos; adem´as, la navegaci´on reactiva permite no s´olo la aplicaci´on de un solo m´odulo, sino que tambi´en deja la posibilidad de com- binar con otros tipos de arquitecturas para la ejecuci´on de tareas m´as complejas [3]. Para la adquisici´on de la informaci´on del exterior, se emplea el sensor Kinect, el cual es uno de los sensores m´as actuales que fomenta la fusi´on de sensores con un bajo costo para: extracci´on de proximidad (l´aser y c´amara infrarrojos), captura de im´agenes digitales (c´amara RGB), adquisici´on de comandos de voz (arreglo de micr´ofonos) y obtenci´on de posici´on del sensor(aceler´ometro). En seguida se mencionan los campos de investigaci´on donde se ha imple- mentado el uso del Kinect [4]. Reconstrucci´on 3D. Realidad aumentada. Procesamiento de im´agenes. Herramienta de interacci´on. Reconocimiento de objetos.
  • 29. Cap´ıtulo 1. Introducci´on 6 Navegaci´on rob´otica. En este trabajo de tesis se utiliza la extracci´on de datos de profundidad mediante el sensor Kinect y est´a orientado al procesamiento de im´agenes y navegaci´on rob´otica, misma que se controla mediante la l´ogica difusa. Se selecciona el uso de la l´ogica difusa para la navegaci´on de robots m´oviles debido a que ofrece tolerancia a la incertidumbre, el ruido o perturbaciones en las medidas que se obtienen de los sensores [5]. La l´ogica difusa tambi´en permite lidiar con los errores presentes en el sensor Kinect, adem´as, a comparaci´on con los algoritmos probabil´ısticos de navegaci´on, la navegaci´on difusa requiere menos consumo de tiempo para procesamiento y determinaci´on de movimientos [6]. La navegaci´on difusa supera las dificultades que se presentan en los ambientes no estructu- rados y din´amicamente cambiantes que son m´as complicados de expresar mediante ecuaciones matem´aticas; por ejemplo, aquellos ambientes inicialmente desconocidos que tengan obst´aculos dispersos, con pendientes, entre otros. El control difuso tambi´en es utilizado para las aplicacio- nes donde la velocidad de decisi´on sea un factor importante, adem´as de la reducci´on de ´area o consumo de recursos al implementarlo en sistemas electr´onicos digitales o alg´un dispositivo reprogramable [7]. Este trabajo de tesis forma parte del proyecto Desarrollo de una silla de ruedas aut´ono- ma con brazo rob´otico para asistir a personas con capacidades disminuidas por lo cual se enfoca en su aplicaci´on en el sector salud orientado a su implementaci´on futura en una silla de ruedas. Los principales beneficiados con la realizaci´on de este trabajo son las personas con discapacidades motrices o de la tercera edad, ya que permite la prueba y evaluaci´on de un sistema de navegaci´on orientado a una silla de ruedas. Se tiene en consideraci´on que este sistema puede ser implementado en otro tipo de plata- formas m´oviles, como las que se mencionan en [8, 9], donde una de las tareas a ejecutar por dicho dispositivo sea la evasi´on de obst´aculos de manera casi instant´anea y con la generaci´on de movimientos suaves. Por esta raz´on, en este trabajo no se detallan las caracter´ısticas espec´ıficas de un dispositivo m´ovil en especial, y se plantean valores de salida que puedan ser evaluados por diferentes plataformas m´oviles, pasando previamente dichos valores por alg´un decodificador o librer´ıa.
  • 30. Cap´ıtulo 1. Introducci´on 7 1.5. Alcances Los alcances que se presentan en este trabajo de tesis se describen a continuaci´on. Desarrollar una aplicaci´on software de navegaci´on que utiliza una arquitectura reactiva. Aplicar un sistema de control difuso que resuelve las direcciones de giro, generando infor- maci´on al simular el sentido com´un humano. Utilizar el sensor Kinect para la obtenci´on de datos de profundidad, considerando el tiempo de procesamiento del sensor. Plantear la ejecuci´on del sistema en tiempo real aplicando informaci´on previamente ad- quirida o en conexi´on directa del sensor Kinect. Dise˜nar y desarrollar una interfaz gr´afica que permite la visualizaci´on de la captura y la direcci´on de giro. Ejecutar pruebas con conexi´on directa al sensor Kinect sobre una plataforma m´ovil, misma que ser´a controlada por un operador humano siguiendo las instrucciones que retorna la aplicaci´on software. 1.6. Limitaciones Las limitaciones del sistema de navegaci´on se mencionan a continuaci´on. Los resultados y conclusiones se obtienen de las pruebas ejecutadas ubicando el sensor Kinect a 1 metro sobre el nivel del suelo y con un ´angulo de inclinaci´on vertical de 0◦ , por lo que s´olo se considera la evasi´on de obst´aculos observables con dicha configuraci´on. El sistema de navegaci´on, al utilizar una arquitectura reactiva, evita la extracci´on de formas, color, textura y caracter´ısticas m´as espec´ıficas de los objetos en la escena con- centr´andose s´olo en el conocimiento de la existencia de los mismos. El sistema se ejecuta en un ambiente con un suelo plano; es decir, sin rampas, escalones o dem´as protuberancias como piedras, basura, objetos peque˜nos, agujeros, entre otros. El sistema es evaluado en tiempo real y con el sensor Kinect, pretendi´endose generar una salida que pueda adaptarse a las caracter´ısticas de los motores de una plataforma m´ovil, sin embargo la implementaci´on y ejecuci´on sobre un robot m´ovil no se plantea en este trabajo.
  • 31. Cap´ıtulo 1. Introducci´on 8 1.7. Metodolog´ıa general El proceso a seguir en el desarrollo de este proyecto se muestra en la Figura 1.1. El primer paso es la recopilaci´on de informaci´on relacionada con el trabajo de tesis. Se realiza la revisi´on del estado de arte para sustentar el sistema que se est´a desarrollando e identificar qu´e se puede implementar para obtener diferentes y, en su caso, mejores resultados. Tambi´en se revisa infor- maci´on b´asica para definir conceptos que se utilizar´an durante el desarrollo de la tesis, misma que se plasmar´a en el marco te´orico. Definición de los parámetros del sistema difuso Pruebas y experimentación del sistema de navegación Desarrollo del sistema de control difuso Identificación de versión final del sistema Pruebas y resultados Recopilación de información Tratamiento de los datos de profundidad del sensor Kinect Figura 1.1. Metodolog´ıa del desarrollo del proyecto de tesis. Una vez que se tiene la informaci´on necesaria se procede con el desarrollo del sistema de navegaci´on reactiva difusa. Inicialmente se procesan los par´ametros de entrada que son los datos de profundidad del sensor Kinect, con estos datos se ejecutan una serie de transformaciones que permiten obtener las caracter´ısticas que son ´utiles para el controlador difuso. Al finalizar esta
  • 32. Cap´ıtulo 1. Introducci´on 9 etapa se obtiene la informaci´on pertinente que sirve como par´ametros de entrada del sistema de control difuso. En la siguiente etapa se definen los par´ametros del sistema de control difuso. Se definen for- malmente los par´ametros de entrada y salida, as´ı como el sistema de inferencia difusa y dem´as caracter´ısticas propias de los sistemas difusos. Posteriormente se desarrolla el sistema de control difuso utilizando la herramienta de programaci´on Matlab 2012a R y las cajas de herramientas: Image Processing ToolboxTM y Fuzzy Logic ToolboxTM . Con la primera versi´on del sistema de navegaci´on, se procede a realizar pruebas y experimen- tos, adquiriendo informaci´on del ambiente mediante el sensor Kinect, procesando las im´agenes o datos de profundidad y obteniendo del control difuso la direcci´on con menor probabilidad de colisi´on. En los resultados de todas estas pruebas, pueden surgir detalles que implican modificar o mejorar el sistema, por lo cual se recurre a regresar a dos etapas antes para la obtenci´on de mejores resultados que cumplan con los objetivos del trabajo. En el momento que se tenga un sistema estable que brinde los resultados esperados, se seleccionar´a como versi´on final del siste- ma y se ejecutar´an pruebas y experimentos, para ser documentados y generar las conclusiones del trabajo de tesis.
  • 33.
  • 34. Cap´ıtulo 2 Marco Te´orico 2.1. Navegaci´on rob´otica La navegaci´on es una metodolog´ıa que permite guiar a un robot m´ovil de manera segura y es- table, a trav´es de un entorno con obst´aculos con el fin de ejecutar alguna tarea en espec´ıfico [3]. Desde el punto de vista de la planificaci´on, existen diferentes arquitecturas que son dise˜nadas teniendo en cuenta especificaciones como eficiencia, tiempo de respuesta ante cambios repenti- nos del ambiente y la disponibilidad de la informaci´on del entorno [10]. Entre las principales arquitecturas est´an: Arquitectura estrat´egica. Utiliza un modelo del entorno y supone una situaci´on en la que se ejecuta un plan sin tener en cuenta la posibilidad de generalizar el comportamiento. Este tipo de arquitectura se basa en un planificador que verifica la informaci´on suminis- trada por los sensores y genera una secuencia de acciones o plan, ver Figura 2.1. Sensado Planificar Actuar Figura 2.1. Esquema de arquitectura estrat´egica. Arquitectura reactiva. Est´a orientada principalmente a suministrar flexibilidad, adap- tabilidad y capacidad de respuesta ante situaciones no esperadas. Implementa una estra- tegia de control como un conjunto de reglas reactivas en forma de pares condici´on-acci´on sin tener un modelo previo del entorno. No ejecuta b´usquedas exhaustivas en cada camino, 11
  • 35. Cap´ıtulo 2. Marco Te´orico 12 simplemente busca y ordena la acci´on apropiada que corresponde a cada lectura de los sensores, ver Figura 2.2. Sensado Conjunto de reglas reactivas Actuar Figura 2.2. Esquema de arquitectura reactiva. Arquitectura basada en comportamientos. Es considerada como una evoluci´on de la arquitectura reactiva. Se basa en un conjunto de comportamientos que describen la manera en que reacciona el robot m´ovil ante alg´un estado determinado de los sensores, utilizando un concepto m´as elaborado que la consulta a una tabla de correspondencias. Cada comportamiento realiza c´alculos internos pudi´endose representar como una m´aquina de estados finitos que tiene como entrada la informaci´on de los sensores y produce se˜nales hacia los actuadores, ver Figura 2.3. Sensado Conjunto de comportamientos Actuar Figura 2.3. Esquema de arquitectura por comportamientos. Arquitectura h´ıbrida. Ofrece una combinaci´on entre arquitectura estrat´egica y reactiva. Se emplea el sistema reactivo para el control de bajo nivel (funciones de seguridad ante colisiones imprevistas) y el sistema estrat´egico para el control de alto nivel (modelo del entorno y planificaci´on de acciones), ver Figura 2.4.
  • 36. Cap´ıtulo 2. Marco Te´orico 13 Sensado Actuar Comportamiento reactivo Plan Control bajo nivel Control alto nivel Figura 2.4. Esquema de arquitectura h´ıbrida. La navegaci´on es una de las actividades m´as complejas para un robot m´ovil, ya que implica un gran n´umero de conceptos relacionados con la inteligencia artificial debido a que para el control de robots m´oviles se incorporan funciones b´asicas (control de motores, articulaciones y generaci´on de trayectorias de forma autom´atica o con la intervenci´on de un operador) con funciones inteligentes (realizaci´on parcial o total aut´onoma de operaciones como planificaci´on de tareas y de movimientos, percepci´on sensorial y reacci´on ante obst´aculos) [3]. La l´ogica difusa se aplica como un m´odulo dentro del sistema de navegaci´on propuesto y se encarga de procesar los datos de entrada y decidir qu´e direcci´on es la que tenga menor probabilidad de colisi´on. Cada una de las reglas del control difuso propuesto, hacen referencia al m´odulo dentro de la arquitectura reactiva definido como conjunto de reglas reactivas; sin embargo, este ´ultimo difiere al m´odulo propuesto ya que se tiene un conjunto de reglas que interpretan las entradas y salidas convertidas de valores num´ericos a valores difusos, generando un conjunto de reglas reactivas difusas, ver Figura 2.5. Datos de entrada Procesamiento de los datos de entrada Algoritmo de navegación Dirección de giro Lógica difusa SENSADO CONJUNTO DE REGLAS REACTIVAS ACTUAR Figura 2.5. L´ogica difusa aplicado en la navegaci´on reactiva propuesta.
  • 37. Cap´ıtulo 2. Marco Te´orico 14 Existen otras propiedades que motivan al uso de la l´ogica difusa para el control de la nave- gaci´on, las cuales se definen a detalle en las secciones siguientes, donde adem´as, se abordan los conceptos de inteligencia artificial, visi´on artificial y descripci´on del sensor Kinect en referencia a la percepci´on sensorial. 2.2. Inteligencia Artificial La inteligencia es la capacidad que tienen las personas de conocer, analizar, comprender y resol- ver diferentes situaciones as´ı como tambi´en un conjunto de destrezas, habilidades y experiencias en cierto dominio [11, 12]. Los humanos hacen uso de la inteligencia en cada una de las actividades que desempe˜nan en la vida diaria; sin embargo, existen ciertas actividades que representan un peligro para una persona, o que requieren un menor tiempo de ejecuci´on, o que necesitan exactitud y mejores re- sultados, por lo tanto, se precisa de un equipo o m´aquina aut´onoma o que pueda ser controlada parcial o totalmente por un operador humano. En algunas ocasiones, las mencionadas actividades necesitan del raciocinio humano a´un cuan- do la persona no pueda estar presente o se le dificulte ejecutar dicha actividad (por cuestiones de salud, seguridad, falta de conocimientos, poca experiencia, etc´etera), entonces se requiere un sistema que ejecute algoritmos que permitan de cierta forma simular el pensamiento humano, en otras palabras, se requiere Inteligencia Artificial (IA). La inteligencia artificial se define como la disciplina cient´ıfica que se ocupa de crear pro- gramas inform´aticos que ejecutan operaciones comparables a las que realiza la mente humana, como el aprendizaje o el razonamiento l´ogico [12]. En la Tabla 2.1 se muestran m´as definiciones las cuales est´an organizadas en distintas categor´ıas [13]. En las ´ultimas d´ecadas se ha hecho ´enfasis en el desarrollo de esta disciplina para la au- tomatizaci´on de actividades en distintas ´areas como control de sistemas, medicina, econom´ıa, finanzas, ingenier´ıa, industria, milicia, videojuegos, entre otras.
  • 38. Cap´ıtulo 2. Marco Te´orico 15 Tabla 2.1. Algunas definiciones de Inteligencia Artificial, organizadas en 4 categor´ıas. Sistemas que piensan como humanos Sistemas que piensan racionalmente "El nuevo y excitante esfuerzo de hacer que los computadores piensen...máquinas con mentes, en el más amplio sentido literal". (Haugeland, 1985) "[La automatización de] actividades que vincu- lamos con procesos de pensamiento humano, ac- tividades como la toma de decisiones, resolución de problemas, aprendizaje...". (Bellman, 1978) " El estudio de las facultades mentales median- te el uso de modelos computacionales". (Char- niak y McDermott, 1985) "El estudio de los cálculos que hacen posible percibir, razonar y actuar". (Winston, 1992) Sistemas que actúan como humanos Sistemas que actúan racionalmente "El arte de desarrollar máquinas con capacidad para realizar funciones que cuando son realizadas por personas requieren de inteligencia". (Kurzweil, 1990) "El estudio de cómo lograr que los computadores realicen tareas que, por el momento, los humanos hacen mejor". (Rich y Knight, 1991) "La Inteligencia Computacional es el estudio del diseño de agentes inteligentes". (Poole et al., 1998) "IA... está relacionada con conductas inteli- gentes en artefactos". (Nilsson, 1998) La inteligencia artificial ha sido estudiada desde los a˜nos 50s, con la llamada Prueba de Tu- ring propuesta por Alan Turing, la cual consiste en saber si un evaluador humano, dependiendo de una serie de preguntas realizadas a una persona y a una m´aquina, pod´ıa diferenciar entre la respuesta de la m´aquina y la persona [13]. Para que una computadora logre pasar la prueba debe tener la siguientes caracter´ısticas: Procesar el lenguaje natural Representar el conocimiento Razonar autom´aticamente Aprender de manera autom´atica Adem´as, se extendi´o dicha prueba a la llamada Prueba Global de Turing, que da la oportuni- dad del evaluador de manejar objetos para su an´alisis. Para superar esta prueba la computadora debe tener: Visi´on artificial (VA) Rob´otica Cada una de las 7 caracter´ısticas antes mencionadas son disciplinas que est´an contempladas dentro de la inteligencia artificial. Para este trabajo se propone un sistema basado en la adqui- sici´on y procesamiento de informaci´on de profundidad del entorno a trav´es del sensor Kinect
  • 39. Cap´ıtulo 2. Marco Te´orico 16 y algoritmos de procesamiento de im´agenes, adem´as de generar ´angulos de direcci´on de giro mediante l´ogica difusa. Por lo tanto, se requieren conceptos b´asicos de: a) visi´on artificial, por la percepci´on y adquisici´on de datos del medio externo mediante el sensor Kinect, b) la repre- sentaci´on del conocimiento, para almacenar la informaci´on que se obtiene mediante matrices de profundidad, y c) el razonamiento autom´atico, para utilizar la informaci´on almacenada y obtener conclusiones empleando l´ogica difusa. Estos tres temas ser´an descritos, en relaci´on con el sistema propuesto, en las subsecciones siguientes. 2.3. Visi´on Artificial El principio de la VA proviene de la importancia que tiene el sentido de la vista para los seres humanos, ya que estudios cifran su importancia en un 75 % de la informaci´on proveniente de los sentidos que procesa el cerebro [14]. La visi´on es la interacci´on de los organismos con el mundo, la cual tiene como funciones principales reconocer y localizar objetos en un ambiente utilizando el procesamiento de los datos de entrada (im´agenes), por lo tanto, la VA es el estudio de dichas funciones, para as´ı entenderlas y realizar la construcci´on de m´aquinas que tengan capacidades similares [15]. La visi´on artificial est´a muy ligada al procesamiento de im´agenes, aunque difieren en el obje- tivo final. El procesamiento de im´agenes tiene como objetivo mejorar la calidad de las im´agenes para su posterior utilizaci´on o interpretaci´on. La visi´on artificial busca extraer caracter´ısticas de una imagen para su descripci´on e interpretaci´on mediante una computadora [15]. La visi´on artificial se basa en diferentes tipos de tecnolog´ıas, de las cuales destacan [14]: Procesamiento de im´agenes. Adquisici´on de informaci´on (forma, color, textura o ´areas de los objetos, entre otros) o transformaci´on de una imagen, consider´andose a la imagen como la materia prima dentro de la visi´on artificial. Generaci´on de gr´aficos por computadora. Transformaci´on de una descripci´on de los objetos de una imagen. Reconocimiento de patrones. Clasificaci´on de un objeto a partir de la obtenci´on de caracter´ısticas entre un conjunto de candidatos. A continuaci´on se muestra un resumen de las diferentes ´areas donde se aplican algoritmos
  • 40. Cap´ıtulo 2. Marco Te´orico 17 de VA [14]: Militar • Detecci´on y seguimiento de objetivos • An´alisis del terreno • Armas inteligentes Rob´otica • Guiado de robots industriales • Navegaci´on de robots m´oviles Agricultura • An´alisis de las plantaciones: crecimiento, enfermedades • An´alisis de im´agenes tomadas por sat´elites Identificaci´on • Identificaci´on autom´atica de huellas dactilares • Reconocimiento de rostros Control de tr´afico • Identificaci´on de matr´ıculas de veh´ıculos • Control del tr´afico vial Control de calidad • Verificaci´on de etiquetas • Inspecci´on de contenedores • Inspecci´on de motores • Inspecci´on de cristales • Control de calidad de comida • Inspecci´on de soldaduras
  • 41. Cap´ıtulo 2. Marco Te´orico 18 • Inspecci´on de circuitos impresos • Inspecci´on de madera, tela, fundiciones, papel Biomedicina • An´alisis de im´agenes tomadas por rayos X • An´alisis de im´agenes tomadas por ultrasonidos • An´alisis de sangre • An´alisis de ADN Seguridad • Vigilancia de edificios • Detecci´on de explosivos por rayos X Un sistema de visi´on artificial lleva consigo una serie de conceptos hardware, software y al- goritmos de procesamiento de la informaci´on. Generalmente, el proceso de un sistema de visi´on artificial consta de 5 etapas principales (ver Figura 2.6) [16]. Escena Real Etapa Sensorial Etapa de Preprocesamiento Etapa de Segmentación Etapa de Parametrización Etapa de Clasificación Actuación según Resultados Entrada Etapas Salida Figura 2.6. Diagrama de bloques de las etapas de un sistema de visi´on artificial.
  • 42. Cap´ıtulo 2. Marco Te´orico 19 La primera etapa se le denomina etapa sensorial ya que consiste en la adquisici´on de im´age- nes digitales utilizando alg´un tipo de sensor y la capacidad de interpretar las se˜nales de dicho sensor. Una vez que se tiene la imagen en forma digital, la siguiente etapa consta del prepro- cesamiento de dicha imagen (etapa de preprocesamiento), ya sea aplicando transformaciones geom´etricas o filtros sobre las im´agenes, todo con la finalidad de obtener una imagen de mejor calidad que beneficiar´a a las siguientes etapas. La etapa de segmentaci´on radica en la divisi´on de la imagen en partes que aportan m´as informaci´on de la escena para cumplir con el objetivo (regi´on de inter´es); esta etapa es una de las m´as importantes ya que una correcta segmenta- ci´on facilitar´a la soluci´on de problema mientras que una err´onea dirigir´a al fallo. La etapa de parametrizaci´on se refiere a la selecci´on de caracter´ısticas que brindan informaci´on cuantitati- va o rasgos b´asicos que permitan diferenciar una clase de objetos de otra. Posteriormente se ejecuta la etapa de clasificaci´on donde se asigna una etiqueta a cada objeto segmentado, para as´ı reconocer dicho objeto dentro de un conjunto de objetos identificados previamente y que se encuentran almacenados en la memoria del dispositivo que realiza el procesamiento. Despu´es de las cinco etapas, el sistema ejecuta la acci´on correspondiente, por ejemplo, la navegaci´on reactiva. A pesar de que en la Figura 2.6 se muestra un sistema de VA c´omo un conjunto de procesos que se ejecutan uno despu´es de otro, en numerosas ocasiones esto no es as´ı, y se requiere de la retroalimentaci´on en algunas etapas; por ejemplo, es com´un regresar a la etapa de segmentaci´on si el reconocimiento falla, o incluso al preprocesamiento [16]. La descripci´on detallada de cada etapa en relaci´on con cada m´odulo del sistema propuesto se especifica en el Cap´ıtulo 4. 2.4. Sensores Para realizar la navegaci´on, se necesitan obtener datos del ambiente donde se requiere desplazar al robot m´ovil. Estos datos pueden presentarse en diferentes formatos, siempre y cuando sean entendibles para la computadora que ejecutar´a el algoritmo de navegaci´on. Existen diferentes tipos de sensores que obtienen informaci´on del ambiente. En primera instancia est´an los sensores que obtienen informaci´on b´asica para la detecci´on de obst´aculos y el conocimiento aproximado de posici´on del robot m´ovil [3]. Estos dispositivos se mencionan a continuaci´on: Sensores propioceptivos. Son dispositivos que retornan informaci´on que el mismo robot
  • 43. Cap´ıtulo 2. Marco Te´orico 20 m´ovil origina en base a sus caracter´ısticas como son: tama˜no de ruedas, velocidad de rotaci´on de las ruedas, GPS (Global Positioning System), entre otros. Sensores de proximidad. Miden la distancia relativa entre el sensor y los objetos en el entorno. Los principales dispositivos de proximidad son: sensores ultras´onicos, sensores infrarrojo y bumpers. Por otro lado, se tienen los sensores que buscan aproximarse a la percepci´on humana a base de im´agenes mediante c´amaras de video, las cuales utilizan ya sea tecnolog´ıa CCD (Charged Couple Device) o CMOS (Complementary Metal Oxide Semiconductor) para la detecci´on de luz visible. Este tipo de dispositivos retornan im´agenes en diferente representaci´on de color: Escala de grises. Cada pixel tiene un valor de 8 bits, represent´andose en un rango desde 0 (color negro) hasta el 255 (color blanco). RGB. Representa la suma de tres caracter´ısticas de color: rojo (Red), verde (Green) y azul (Blue). Esta suma integra un cubo de dimensiones de 256 × 256 × 256. HSI o HSV. Representaci´on de color mediante: a) matiz (Hue) que representa la longitud de onda predominante la cual es invariante a la posici´on del robot u objeto, b) saturaci´on (Saturation) que indica la falta de blancura en el color, por ejemplo, el rojo est´a saturado mientras que el rosa est´a menos saturado, y c) valor o intensidad (Value/Intensity) que es la cantidad de luz recibida por el sensor. Binaria. Imagen que s´olo representa 2 valores: 0 (color negro) y 1 (color blanco). Uno de los inconvenientes con las im´agenes de c´amaras de video es la falta de informaci´on de profundidad en la imagen, por lo que no se tiene conocimiento de qu´e tan cerca o lejos se encuentra un objeto. Uno de los objetivos de la visi´on computacional es en cierta forma simular el proceso de visi´on humana, donde tambi´en se extrae informaci´on de profundidad. Para la extracci´on de profundidad se utiliza el esc´aner de rango, que realiza el sensado de puntos en 3D de una escena y retorna un arreglo de tama˜no m × n (imagen de rango), que contiene la distancia relativa (rango) desde el centro del sensor hasta un punto en la escena [17]. Entre los principales sensores de rango, se mencionan los siguientes: C´amaras est´ereo. Se utilizan dos c´amaras, suponiendo dos ojos, donde cada una trata de encontrar el mismo punto en la imagen convirti´endolo en el centro de la imagen y as´ı obtener un ´angulo relativo.
  • 44. Cap´ıtulo 2. Marco Te´orico 21 Trazadores de luz. Proyectan una l´ınea de color (o trazo), red, o patr´on de puntos sobre el ambiente, para que despu´es una c´amara observe c´omo el patr´on es distorsionado en la imagen. L´aser. Un haz de l´aser es emitido y se calcula el tiempo en que la se˜nal tarda en regresar; es decir, la medida de reflectancia. Este dispositivo puede cubrir una gran ´area y retorna una imagen donde cada valor representa profundidad. Kinect. Es un dispositivo que contiene una c´amara RGB, un arreglo de micr´ofonos, un aceler´ometro y un emisor y c´amara infrarroja. ´Este dispositivo es capaz de capturar imagen a color y la profundidad en la escena representado en cada pixel de una imagen. Uno de los dispositivos de rango ´ultimamente utilizado es el sensor Kinect, ya que combina: la adquisici´on de im´agenes mediante una c´amara RGB (informaci´on 2D), la obtenci´on de matri- ces de profundidad (informaci´on 21 2 ) y la adquisici´on de nube de puntos (informaci´on en 3D), a un bajo costo en comparaci´on con los sensores tradicionales. Otra ventaja, es que no se necesita de controladores extras para la compatibilidad entre sensores, por lo que la manipulaci´on del sensor y la informaci´on que adquiere resulta ser m´as simple [18, 19]. 2.5. Sensor Kinect El sensor Kinect es un dispositivo que apareci´o el 4 de noviembre del 2010 como un accesorio de la consola de juego Xbox 360 y que originalmente fue desarrollado por PrimeSense Company para su posterior colaboraci´on con Microsoft [4]. El sensor Kinect consiste de un sistema de sensado de profundidad, un aceler´ometro, un motor, un arreglo de micr´ofonos y una c´amara RGB, ver Figura 2.7. Láser y cámara infrarrojo Cámara RGB Arreglo de micrófonos Inclinación motorizada Figura 2.7. Sensor Kinect.
  • 45. Cap´ıtulo 2. Marco Te´orico 22 El sistema de sensado de profundidad consta de una c´amara infrarroja y un l´aser emisor infrarrojo. La c´amara infrarroja opera a 30 Hz, el campo de visi´on (ver Figura 2.8) es de 57◦ horizontal, 43◦ vertical y el rango de operaci´on se encuentra entre 0.8 metros (2.7ft) y 3.2 me- tros (10.6ft). La c´amara RGB soporta una resoluci´on m´axima de 1280 × 960, y la c´amara de profundidad soporta una resoluci´on m´axima de 640 × 480 [20]. Las im´agenes de rango proce- dentes del Kinect pueden ser representadas de dos formas distintas [21]: 57° Horizontal 43° Vertical 0.8 m 3.2 m 4.0 m Figura 2.8. Campo de visi´on del sensor Kinect. Nube de puntos. Una lista sin orden ni especificaciones compuesta de coordenadas 3D (x,y,z) dentro de un espacio, ver Figura 2.9. Figura 2.9. Nube de puntos. Im´agenes de profundidad. Matriz de m × n en la cual cada uno de sus elementos representan un valor de profundidad en coordenadas 2D (x,y), ver Figura 2.10.
  • 46. Cap´ıtulo 2. Marco Te´orico 23 Figura 2.10. Imagen de profundidad. En este proyecto de tesis, se utiliza el sensor Kinect orientado al ´area de navegaci´on rob´oti- ca y procesamiento de im´agenes de profundidad, con lo que se requiere de un algoritmo que pueda lidiar con una gran cantidad de datos que en ciertas ocasiones puedan ser alterados por perturbaciones en el ambiente y que, al mismo tiempo, generen una acci´on casi inmediata o en tiempo real (idea principal de la navegaci´on reactiva). Una de las formas para el procesamiento de dichas im´agenes es utilizando una de las ramas de la inteligencia artificial: la l´ogica difusa. En la siguiente secci´on se define el concepto de l´ogica difusa y de cada componente. 2.6. L´ogica Difusa Para la adquisici´on de la direcci´on de giro de manera reactiva se puede implementar un con- trolador difuso, por lo que en primer lugar se procede a definir el concepto de l´ogica difusa. En la vida cotidiana es com´un utilizar expresiones tales como un poco, mucho, no tanto, regular, etc´etera, por ejemplo, decir llegar´e un poco tarde a decir llegar´e 10 minutos tarde. Este tipo de expresiones no representan una cantidad exacta, sin embargo, el cerebro humano logra interpre- tarlas para ejecutar alguna acci´on; es precisamente este tipo de pensamiento el cual la l´ogica difusa busca simular en sistemas artificiales. L´ogica difusa se define como la ciencia que admite una cierta incertidumbre entre la verdad o falsedad de sus proposiciones, con una semejanza del raciocinio humano [12]. La teor´ıa de conjuntos difusos fue formulada por Lofti A. Zadeh en 1965, quien entonces era profesor de Ingenier´ıa El´ectrica y de Ciencias de la Computaci´on en la Universidad de California, Berkeley [22]. Seg´un Zadeh, la l´ogica difusa es determinada como un conjunto de
  • 47. Cap´ıtulo 2. Marco Te´orico 24 principios matem´aticos para la representaci´on del conocimiento basado en grados de pertenencia en lugar de una pertenencia n´ıtida de la l´ogica binaria cl´asica [11]. Es decir, mientras que la l´ogica binaria cl´asica s´olo permite el valor de 0 (completamente falso) o 1 (completamente verdadero), la l´ogica difusa admite m´ultiples valores. 2.6.1. Definiciones b´asicas y terminolog´ıa Los conjuntos difusos son fundamentales dentro de la l´ogica difusa. Sea X un espacio de objetos y sea x un elemento gen´erico de X. Un conjunto cl´asico A, A ⊆ X, es definido como una colecci´on de elementos u objetos x ∈ X, tal que cada x puede pertenecer o no al conjunto A. En un conjunto difuso, un elemento tiene un grado de pertenencia a un conjunto y puede tener un grado de no pertenencia o de pertenencia a otros conjuntos. Definiendo una funci´on de membres´ıa para cada elemento x de X, se puede representar un conjunto cl´asico A por un set de pares ordenados (x,0) o (x,1), lo cual indica que x /∈ A o x ∈ A, respectivamente. La funci´on de membres´ıa de un conjunto difuso puede tener valores entre 0 y 1, lo cual indica el grado de pertenencia de un elemento dentro de un conjunto dado. Ahora bien, si X es una colecci´on de objetos x, entonces un conjunto difuso A dentro de X se define como en la Ecuaci´on 2.1 [23]: A = {(x, µA(x)) | x ∈ X} (2.1) donde: µA(x), es denominado funci´on de membres´ıa (MF por sus siglas en ingl´es) para el conjunto difuso A. X, se refiere al universo de discurso, o s´olo universo, que consiste en objetos discretos (ordenados o no ordenados) o en un espacio continuo. Una notaci´on conveniente para un conjunto difuso A donde el universo de discurso X es discreto y finito es la que se muestra en la Ecuaci´on 2.2; mientras que cuando X es continuo e infinito, A es denotado por la Ecuaci´on 2.3 [22]. A = { µA(x1) x1 + µA(x2) x2 + . . .} = { i µA(xi) xi } (2.2) A = { µA(x) x } (2.3) En la pr´actica, cuando X es un espacio continuo, X se divide en diversos conjuntos difusos, donde se define una MF en cada uno o de manera general. Estos conjuntos son nombrados
  • 48. Cap´ıtulo 2. Marco Te´orico 25 conforme adjetivos que se utilizan en la vida cotidiana, por ejemplo: “mucho”, “mediano”, “poco”, etc., y son denominados valores ling¨uisticos. As´ı que el universo de discurso X tambi´en es llamado variable ling¨uistica [23]. En la Figura 2.11 se identifican los elementos de los conjuntos difusos, se observa que cada gr´afica representa un valor ling¨u´ıstico, definidos en diferentes rangos dentro del universo de discurso, y que al mismo tiempo pertenece a un cierto grado de membres´ıa. 0 x1 x2 . . xi 0 0.2 0.4 0.6 0.8 1 Universo de discurso Gradosdemembresía Valor lingüístico 1 Valor lingüístico 2 Valor lingüístico 3 Figura 2.11. Elementos de los conjuntos difusos. 2.6.2. Funciones de membres´ıa Una funci´on de membres´ıa es una gr´afica que define c´omo cada punto componente del universo de discurso corresponde a un valor de pertenencia (grado de membres´ıa) entre el 0 y 1 [24]. A continuaci´on se definen diferentes tipos de funciones de membres´ıa, as´ı como los par´ametros que requieren. X es el universo de discurso que representa el conjunto de los valores de entrada, por lo que al ser el universo, se pueden tener variables y par´ametros que permitan definir cada una de las funciones de membres´ıa para la conversi´on a valores difusos. Funci´on triangular. Es una funci´on definida por una variable de entrada x y de tres par´ametros {a,b,c}, lo cuales pertenecen al universo de discurso y determinan las coor- denadas en x de las tres esquinas de la funci´on triangular. La Ecuaci´on 2.4 especifica la funci´on triangular, dado el universo de discurso X y los tres par´ametros {a,b,c}.
  • 49. Cap´ıtulo 2. Marco Te´orico 26 f(x; a, b, c) =    0, x ≤ a x−a b−a , a ≤ x ≤ b c−x c−b , b ≤ x ≤ c 0, c ≤ x (2.4) Un ejemplo se muestra en la Figura 2.12 con a = 3, b = 6, c = 8 y el universo de discurso X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}. 0 1 2 3 4 5 6 7 8 9 10 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Universo de discurso X Gradosdemembresía Figura 2.12. Funci´on triangular. Funci´on trapezoidal. La funci´on trapezoidal depende de la variable x y de cuatro par´ametros {a,b,c,d}, pertenecientes al universo de discurso y que determinan en la coor- denada x las tres esquinas de la funci´on trapezoidal, como se muestra en la Ecuaci´on 2.5. f(x; a, b, c, d) =    0, x ≤ a x−a b−a , a ≤ x ≤ b 1, b ≤ x ≤ c d−x d−c , c ≤ x ≤ d 0, d ≤ x (2.5) La Figura 2.13 se muestra un ejemplo con a = 1, b = 5, c = 7, d = 8 y el universo de discurso definido por X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}.
  • 50. Cap´ıtulo 2. Marco Te´orico 27 0 1 2 3 4 5 6 7 8 9 10 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Universo de discurso X Gradosdemembresía Figura 2.13. Funci´on trapezoidal. Funci´on Gaussiana. Esta funci´on depende de dos par´ametros σ (dentro del universo de discurso representa la amplitud de la funci´on) y c (dentro del universo de discurso representa el centro de la funci´on) como se representa en la Ecuacı´on 2.6. f(x; σ, c) = exp{ −(x − c)2 2σ2 } (2.6) Un ejemplo de esta funci´on se observa en la Figura 2.14 con σ = 2, c = 5 y el universo de discurso X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}. 0 2 4 6 8 10 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Universo de discurso X Gradosdemembresía Figura 2.14. Funci´on Gaussiana. Funci´on campana (bell) generalizada. La funci´on bell (campana) generalizada est´a de- finida mediante la Ecuaci´on 2.7, donde se observa que necesita de tres par´ametros a, b y c que pertenecen al universo de discurso X. El par´ametro b normalmente es positivo
  • 51. Cap´ıtulo 2. Marco Te´orico 28 (en caso de ser negativo la forma llega a ser una campana inversa), a es la anchura de la funci´on y c representa el centro de la funci´on. f(x; a, b, c) = 1 1+ | x−c a |2b (2.7) Un ejemplo de esta funci´on se expone en la Figura 2.15 con a = 2, b = 4, c = 6 y el universo de discurso se define con X = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}. 0 2 4 6 8 10 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 Universo de discurso X Gradosdemembresía Figura 2.15. Funci´on campana (bell). En este trabajo se utilizan las funciones trapezoidales y triangulares debido a que se ajustan m´as a los valores de entrada y salida esperados, adem´as de ser las m´as utilizadas por aquellos trabajos relacionados que se mencionan en el estado de arte. Igualmente se hace ´enfasis en que en varios ejemplos pr´acticos el tipo de funci´on no es lo m´as importante, sino la ubicaci´on de las curvas dentro del universo de discurso, el n´umero de particiones y el solapamiento de las curvas [22]; estos par´ametros son definidos en los siguientes cap´ıtulos. 2.6.3. Sistemas de inferencia difusos La inferencia difusa es el proceso de formular la asignaci´on desde un determinado valor de entrada a un valor de salida utilizando l´ogica difusa, con esta asignaci´on se tiene una base desde la cual se pueden tomar decisiones [11]. Existen dos principales sistemas de inferencia [11, 23], los cuales s´olo difieren en la determinaci´on de las salidas, estos sistemas se definen a continuaci´on:
  • 52. Cap´ıtulo 2. Marco Te´orico 29 Modelo difuso Mamdani. Este sistema es uno de los m´as utilizados en las aplicaciones difusas. En 1974, Ebrahim Mamdani construy´o uno de los primeros sistemas difusos para controlar la combinaci´on de una caldera y una m´aquina de vapor aplicando un conjunto de reglas difusas con la ayuda de operadores humanos experimentados. El sistema de tipo Mamdani es intuitivo y se adapta a la intervenci´on humana ya que sus salidas se expresan en el lenguaje humano; es decir, las salidas se expresan de manera difusa. En la Figura 2.16 se muestra la estructura general del sistema Mamdani. Fusificación Mecanismo de inferencia difusa Defusificación Conjunto de Reglas tipo IF ’x’ es ’A’ OR ’y’ es ’B’ THEN ’z’ es ’C’ Datos de entrada X Datos de salida Y Figura 2.16. Estructura general de un sistema de inferencia difusa tipo Mamdani. El sistema consta inicialmente de los valores de entrada los cuales pasan por el proceso de fusificaci´on. Posteriormente se obtienen resultados difusos mediante el uso de un conjunto de reglas del tipo que se describe en la Ecuaci´on 2.8. si x es A and y es B entonces z = C (2.8) Donde x, y, z son variables ling¨u´ısticas y A, B, C son conjuntos difusos en el universo de discurso X y Y . En ocasiones se requiere utilizar el sistema como un controlador, por lo tanto las salidas pasan por el proceso de defusificaci´on para convertirlos a datos no difusos ya sea enteros, flotantes, u otros. Modelo difuso Sugeno. Este m´etodo se introdujo por primera vez en 1985 por Michio Sugeno. B´asicamente, este m´etodo es similar al m´etodo de inferencia de tipo Mamdani con la diferencia en la salida de las funciones de membres´ıa, las cuales no pasan por el proceso de defusificaci´on ya que se expresan utilizando una funci´on matem´atica. El esquema general del sistema de inferencia Sugeno se muestra en la Figura 2.17.
  • 53. Cap´ıtulo 2. Marco Te´orico 30 Fusificación Mecanismo de inferencia difusa Conjunto de Reglas tipo IF ’x’ es ’A’ AND ’y’ es ’B’ THEN ’z’ es f(x,y) Datos de entrada X Datos de salida Y Figura 2.17. Estructura general de un sistema de inferencia difusa tipo Sugeno. Una regla t´ıpica en el modelo Sugeno se expresa en la Ecuaci´on 2.9. Usualmente f(x, y) se representa por ax + by + c, en este caso, al ser un polinomio de primer orden el sistema es llamado modelo difuso Sugeno de primer orden. si x es A and y es B entonces z = f(x,y) (2.9) Existen la posibilidad de modelos difusos Sugeno de orden superior, sin embargo, ´estos introducen una complejidad significativa con poco cambio de resultados. Otra variante es cuando la salida z es constante; es decir a = 0, b = 0, en este caso el sistema es llamado modelo difuso Sugeno de orden cero. El sistema de inferencia es una parte muy importante dentro del control difuso ya que es este m´odulo el que se encarga de procesar las variables de entrada y ejecutar los c´alculos necesarios para retornar los valores finales del sistema difuso. Ambos sistemas de inferencia, tanto tipo Mamdani como Sugeno, tienen algunos elementos y m´odulos similares, diferenciando en el tipo de salida que presentan. En el sistema tipo Mamdani, las variables que retorna son expresadas en t´erminos difusos, es decir, utilizan expresiones cotidianas o de mejor entendimiento para el usuario; por lo tanto, son defusificadas de tal forma que puedan expresarse num´ericamente. Por otro lado, el sistema tipo Sugeno evita la defusificaci´on al retornar datos num´ericos. El estudio detallado de cada una de las partes del sistema de inferencia que se utiliza en este trabajo y las ventajas del mismo se describe en el Cap´ıtulo 4.
  • 54. Cap´ıtulo 3 Estado de Arte Los sistemas de navegaci´on reactiva basados en control difuso han sido explorados en diferentes trabajos durante los ´ultimos a˜nos [5, 6, 25–33], difiriendo uno de otro en los algoritmos de proce- samiento de la informaci´on, tipo de sistema de inferencia, el conjunto de reglas, las funciones de membres´ıa, variables de entrada y salida, o en el tipo de sensor que se utiliza para la adquisici´on de informaci´on del ambiente. En algunos sistemas de navegaci´on difusa, el sensor que se plantea utilizar es una c´amara de video para as´ı obtener la informaci´on del exterior como im´agenes digitales en 2D; es decir, arreglos matriciales bidimensionales que poseen s´olo informaci´on de ubicaci´on en la coordenada x y en la coordenada y pero omiten la informaci´on de profundidad. Uno de los sistemas que maneja informaci´on en 2D se presenta en “A labview-based autono- mous vehicle navigation system using robot vision and fuzzy control”[25], donde se utiliza una mini-c´amara JMK, una tarjeta de adquisici´on de im´agenes NI USB-6009 y una tarjeta de cap- tura de video Dazzle USB. Este sistema es desarrollado bajo la plataforma LabVIEW y emplea un sistema de inferencia de tipo Mamdani, manejando funciones de membres´ıa tipo triangular y trapezoidal con 2 variables de entrada (desplazamiento lateral y ´angulo de la curva entrante) y 2 variables de salida (velocidad y ´angulo de giro). Las variables de entrada tienen en cuenta el procesamiento de la imagen en 2D del camino a seguir (la imagen en RGB se convierte a escala de grises y posteriormente es binarizada) de donde se extrae la curvatura de las l´ıneas del camino (para conocer si es una l´ınea recta o giro a la derecha o giro a la izquierda) y la anchura del camino, trat´andose como un sistema seguidor de l´ıneas [25]. El sistema de control es desarrollado como una m´aquina de estados, en donde cada estado espera el resultado del an´alisis 31
  • 55. Cap´ıtulo 3. Estado de Arte 32 de la imagen de entrada y la decisi´on de giro del sistema de control difuso, para as´ı continuar con el movimiento adecuado dentro de la m´aquina de estados. A´un cuando gracias a la captura de im´agenes mediante una c´amara digital se tiene un pano- rama de la escena, se omite la informaci´on de proximidad de los objetos en la escena. Bas´andose en el estudio de los sensores de proximidad descritos en la Secci´on 2.4, existen trabajos que utilizan sensores de este tipo capturando la distancia de los objetos en la escena con respecto al sensor, como los que se describen en la Secci´on 3.1. Los sensores de proximidad tienen ciertos inconvenientes al tener un reducido campo de visi´on y omitiendo informaci´on del exterior por lo cual algunos trabajos buscan la fusi´on de sensores de adquisici´on de im´agenes en 2D con sen- sores de proximidad y se describen en la Secci´on 3.2. Finalmente, y hacia donde va dirigido este trabajo, se describen los trabajos que buscan disminuir el costo en la fusi´on sensorial utilizando el sensor Kinect [4], ver Secci´on 3.3. 3.1. Sistemas de navegaci´on reactiva difusa con sensores de proximidad Uno de los inconvenientes de la informaci´on en 2D es que no se sabe qu´e tan cerca o qu´e tan lejos se encuentra un obst´aculo con respecto al robot m´ovil, por lo cual algunos trabajos como [5, 26–28], utilizan otro tipo de sensores que permitan obtener informaci´on de proximidad. El trabajo “Intelligent mobile robot motion control in unstructured environments”[26] im- plementa un sistema de control para la navegaci´on en ambientes no estructurados sobre un robot Khepera utilizando un controlador difuso y sensores ultras´onicos para la detecci´on de objetos pr´oximos. Las entradas del controlador difuso son: distancia del obst´aculo, orientaci´on del obst´aculo, distancia del objetivo y orientaci´on del objetivo; mientras que las salidas son: la velocidad angular entre la rueda izquierda y derecha, y la velocidad del veh´ıculo. Se emplea un sistema de inferencia tipo Mamdani con funciones de membres´ıa tipo Gaussiana y triangular. En “Implementaci´on de comportamientos para navegaci´on inteligente de robots m´oviles”[27], se utiliza un anillo de 8 sensores ultras´onicos los cuales son divididos en 4 grupos para la faci- lidad de procesamiento de datos ya que se obtienen las partes en direcci´on izquierda, frontal, derecha y parte trasera. Con estos grupos, se evita generar una mayor cantidad de pasos para el
  • 56. Cap´ıtulo 3. Estado de Arte 33 procesamiento de datos de entrada del sistema de control difuso, adem´as se tiene en cuenta que no todos los grupos son necesarios para la descripci´on de cada comportamiento, lo cual significa ahorro de energ´ıa para el robot m´ovil. Este sistema de navegaci´on difuso basado en comporta- mientos sobre una arquitectura Saphira se compone de 4 comportamientos difusos: navegar por pasillos, seguir paredes, alcanzar objetivos y evitar obst´aculos; manejando un sistema de inferen- cia tipo Mamdani, cada uno con su respectivo conjunto de reglas adem´as de utilizar funciones de membres´ıa de tipo triangular. Los valores de entrada al sistema son las lecturas de distancias que proporcionan los sensores, y los valores de salida de cada comportamiento es la velocidad y ´angulo de giro. Las pruebas se realizan en la plataforma m´ovil P-METIN. El funcionamiento del sistema en general es la ejecuci´on de cada comportamiento por separado o individualmente, adem´as de permitir combinaciones de comportamientos para tareas m´as complejas, por ejemplo, un comportamiento complejo de navegar evitando obst´aculos hasta alcanzar a un objetivo. En “Desarrollo de un sistema de navegaci´on para robots m´oviles mediante diferentes patrones de comportamientos”[5], se aplica un sistema de navegaci´on difusa por comportamientos sobre un robot m´ovil con un microcontrolador PIC18F452 programado en lenguaje C. La informaci´on correspondiente a la distancia en la que se encuentran los objetos con respecto al robot se ob- tiene mediante 2 sensores ultras´onicos. Este sistema define 3 comportamientos: aproximaci´on a la pared m´as cercana, seguir el pasillo y evitar obst´aculos. El sistema de inferencia es de tipo Mamdani, utilizando funciones de membres´ıa trapezoidal y triangular, con un valor de entrada correspondiente a la distancia del obst´aculo con respecto al sensor y con un valor de salida que indica el ´angulo en que se mover´a el motor de cada rueda. Otro trabajo que utiliza un sistema de navegaci´on mediante l´ogica difusa basada en compor- tamientos y sensores ultras´onicos es “Navegaci´on de robots m´oviles mediante comportamientos utilizando l´ogica difusa”[28]. Los comportamientos son 2: seguir pared y seguir pasillo. Los sen- sores ultras´onicos son 8, los cuales de dividen en 3 grupos para un f´acil manejo de la informaci´on al tener menor cantidad de datos para los valores de entrada de cada m´odulo difuso. El controla- dor difuso obtiene como valores de entrada a las distancias a las que se encuentran los obst´aculos y como salida a la velocidad de cada rueda; utiliza un sistema de inferencia tipo Mamdani y funciones de membres´ıa de tipo trapezoidal y triangular. Para las pruebas del sistema emplea Fuzzy Logic ToolboxTM de Matlab R sobre una plataforma P-METIN del grupo GIROPS. Al utilizar datos de proximidad, los sistemas de navegaci´on difusa son convenientes ya que retornan informaci´on de distancia entre el sensor y los objetos en la escena adem´as de ser
  • 57. Cap´ıtulo 3. Estado de Arte 34 tolerantes a fallos que pueda tener el sensor; sin embargo, omiten caracter´ısticas espec´ıficas de los objetos. A continuaci´on se presentan trabajos que buscan adquirir mayor informaci´on ´util del ambiente al introducir la fusi´on entre sensores. 3.2. Sistemas de navegaci´on reactiva difusa con fusi´on sensorial A´un cuando se obtiene una informaci´on de proximidad, existen trabajos que buscan obtener m´as informaci´on de la escena, por ejemplo la forma de los objetos, su ubicaci´on y dimensiones; por lo tanto, implementan sistemas que fusionan tanto sensores de proximidad como una c´ama- ra de video que captura informaci´on externa mediante im´agenes digitales. Uno de este tipo de trabajos es “Un sistema multi-agente que emplea visi´on activa y ultrasonidos aplicado a nave- gaci´on con comportamientos difusos”[29], el cual utiliza sensores ultras´onicos y una c´amara de video SONY EVI-401 y se implementa sobre un robot m´ovil NORMAD 200. En este trabajo se entiende como agente un proceso software dirigido a alcanzar o mantener un objetivo; el agente de Navegaci´on utiliza un controlador difuso mediante funciones triangular y trapezoidal basado en navegaci´on por comportamientos. Cada comportamiento se define como: orientar la torre- ta, orientar las ruedas, evitar obst´aculo en una habitaci´on, seguir la pared de una habitaci´on, atravesar puerta, orientar las ruedas y la torreta en el pasillo, y mover el robot por el pasillo. La raz´on por la que fusiona dos sensores es por la tarea que busca ejecutar, la cual consiste en navegar y atravesar puertas entre habitaciones bas´andose en un mapa del entorno donde cada puerta posee una marca especial. En “Fuzzy control of a mobile robot”[30] se presenta un sistema de navegaci´on reactiva di- fusa sobre un Khepera Mobile Robot y una fusi´on entre 8 sensores de proximidad (en este caso aplica sensores infrarrojos), y una WebCam. Define 3 controladores difusos: a) b´usqueda del objetivo que ejecuta una b´usqueda del objetivo ignorando los obst´aculos en el camino, b) evadir obst´aculos que utiliza los sensores infrarrojos y garantiza la seguridad al prevenir colisiones, y c) explorar el ambiente que est´a basado en una memoria local de todo el camino recorrido. Dichos controladores son manejados por un m´odulo denominado sistema supervisor difuso cuya funci´on es determinar la prioridad de ejecuci´on de cada comportamiento. Si hay obst´aculos cerca, le da prioridad a evadir obst´aculos, por otro lado si el ´area no es explorada, s´olo ejecuta la b´usqueda del objetivo.
  • 58. Cap´ıtulo 3. Estado de Arte 35 En el trabajo “Sistema de navegaci´on para robots m´oviles utilizando fusi´on sensorial”[31] se describe un sistema de navegaci´on difuso desarrollado en lenguaje C y se prueba en un robot KheperaII. Este sistema utiliza sensores infrarrojos agrupados en 3 partes cuyas se˜nales son amplificadas, y una c´amara con procesador integrado CMUCam2 de donde se adquieren im´age- nes en el espacio de color YCbCr. Las se˜nales de entrada provienen de cada grupo: izquierdo, frontal y derecho, y al mismo tiempo del valor de la centroide del objeto. El valor de salida es el ´angulo de giro del robot. Ambos casos utilizan la funci´on de membres´ıa tipo triangular. El sistema fusiona la informaci´on que obtiene del procesamiento de la imagen capturada por la c´amara (centroide del objeto con respecto al eje x) y la informaci´on que proviene de los sensores infrarrojos (proximidad izquierda, frontal y derecha); es decir, se tiene el conocimiento de ubi- caci´on de d´onde se encuentra el objeto y qu´e tan cerca se encuentra con respecto al sensor. Con estos datos, el sistema de navegaci´on decide el ´angulo de giro del robot m´ovil, por ejemplo, si encuentra un objeto a la derecha que est´a muy pr´oximo, entonces gira al lado izquierdo evitando as´ı el obst´aculo; si por otro lado, el robot encuentra un objeto de frente pero lo localiza muy lejano entonces continua con la navegaci´on frontal. Los trabajos descritos en esta secci´on buscan definir las caracter´ısticas de los objetos que se encuentran en la escena, a fin de llegar a un punto en espec´ıfico o utilizar dichas carac- ter´ısticas para conocer el movimiento a ejecutar, a´un cuando represente un mayor costo y una implementaci´on extra para la adquisici´on, instalaci´on y compatibilidad de cada sensor. En la siguiente secci´on se describen trabajos de navegaci´on difusa utilizando el sensor Kinect, una reciente tecnolog´ıa de fusi´on sensorial que busca resolver los inconvenientes antes mencionados. 3.3. Sistemas de navegaci´on reactiva difusa con sensor Kinect Buscando fusionar m´etricas, obtener una mayor cantidad de informaci´on y reducir el costo de los sensores, una reciente tecnolog´ıa es el sensor Kinect, el cual permite obtener datos de pro- fundidad a base de sensores infrarrojos e im´agenes digitales mediante una c´amara RGB. Este sensor ha sido utilizado sobre aplicaciones que se describen en los trabajos de [6, 32, 33]. En “Navegaci´on de robot m´ovil usando Kinect, OpenCV y Arduino”[32] se presenta un sis- tema de navegaci´on reactiva utilizando el sensor Kinect como dispositivo de captura de escena, el driver Libfreenect que permite la comunicaci´on entre sensor y computadora, la biblioteca de
  • 59. Cap´ıtulo 3. Estado de Arte 36 visi´on artificial OpenCV y la placa Arduino para el control de los motores. Este trabajo aplica un procesamiento a la imagen de profundidad mediante un filtro Gaussiano de 9×9 para la eliminaci´on de ruido. Posteriormente se procede a localizar el centroide de un objeto pr´oximo bas´andose en las coordenadas x, y y el valor de profundidad que proporciona la imagen de profundidad. A partir de dicho objeto, obtiene una distancia promedio para evadir el obst´aculo girando al lado contrario a la posici´on del objeto, deteniendo motores o avanzando hacia ade- lante. Aplicando la navegaci´on reactiva difusa utilizando datos de profundidad del sensor Kinect, el trabajo “Fuzzy based obstacle avoidance for mobil robots with Kinect sensor”[6] implementa algoritmos para planificar ruta y evadir obst´aculos. Emplea un sistema de inferencia Mamda- ni de 16 reglas, funciones de membres´ıa tipo trapezoidal y triangular, 3 variables de entrada (profundidad del objeto m´as cercano del lado derecho, del lado izquierdo y del centro), y una variable difusa de salida (´angulo de giro del robot m´ovil). Este trabajo se desarrolla, simula e implementa utilizando la herramienta Fuzzy Logic ToolboxTM de Matlab R . Este trabajo mues- tra resultados de navegaci´on frente a distintas situaciones, desde la detecci´on de obst´aculos en diferentes direcciones, en diagonal y repentinos, detecci´on de paredes, navegaci´on por pasillos y navegaci´on libre cuando no existen obst´aculos cercanos omitiendo los casos cuando da prioridad a los giros. El sensor Kinect tambi´en puede trabajar en conjunto con otros sensores, por ejemplo en “Mobile robot navigation and target tracking system”[33] se utilizan las im´agenes de profundi- dad del sensor Kinect junto con sensores odom´etricos para as´ı obtener los valores de entrada del controlador difuso: velocidad traslacional y angular del robot, centroide y tama˜no del obst´acu- lo. Los valores de salida son: velocidad traslacional y angular. El control difuso se desempe˜na utilizando funciones de membres´ıa de tipo triangular para cada variable. Las im´agenes de pro- fundidad pasan por un pre-procesamiento mediante la aplicaci´on del filtro Gradiente-Log para identificar ´areas transversales (suelos). Este sistema est´a implementado bas´andose en el modelo de un robot diferencial. Al mismo tiempo, utiliza los datos para la detecci´on no s´olo de obst´acu- los sino para identificar el objetivo final, as´ı como el reconocimiento de formas y los tipos de caminos por donde navega, por ejemplo, rampas, planos, entre otros, y busca la combinaci´on entre la planificaci´on de ruta y la navegaci´on de manera reactiva, todo esto mediante l´ogica difusa y redes neuronales.
  • 60. Cap´ıtulo 3. Estado de Arte 37 3.4. Discusi´on de los trabajos relacionados Todos los trabajos mencionados tienen en com´un el aplicar la l´ogica difusa para determinar el movimiento a ejecutar. A´un cuando utilizan sensores diferentes la idea es b´asicamente la mis- ma, es decir, utilizar informaci´on de profundidad o proximidad para detectar los obst´aculos m´as cercanos para posteriormente evadirlos y en algunos casos extraer las dimensiones, formas y el centroide de cada objeto. Adem´as, estos trabajos est´an orientados hacia la navegaci´on reactiva, recordando que la navegaci´on basada en comportamientos es considerada un tipo de navegaci´on reactiva. La mayor´ıa de los trabajos buscan responder a la pregunta ¿Existe alg´un obst´aculo? En algunos trabajos se utilizan c´amaras de video para la adquisici´on de im´agenes en 2D para el reconocimiento de formas. Posteriormente, con el avance tecnol´ogico y aparici´on de nuevos algoritmos, otros trabajos se concentraron en la adquisici´on de informaci´on de profundidad, mientras que en algunos m´as buscan la fusi´on entre c´amaras de video y sensores de proximidad para obtener m´as informaci´on y no s´olo responder a ¿Existe alg´un obst´aculo? sino que adem´as responder a Si existe un obst´aculo, ¿qu´e tan cerca se encuentra del sensor?, ¿dicho obst´aculo permite continuar con la navegaci´on?, ¿cu´al es su forma, dimensiones, o textura?; es decir, se busca la extracci´on de datos que brinden un mejor conocimiento del ambiente donde se navega. En la siguiente secci´on se describe el desarrollo del sistema propuesto, bas´andose en los trabajos relacionados al utilizar navegaci´on reactiva, la adquisici´on de datos mediante el sensor Kinect y la aplicaci´on de un controlador difuso para la toma de decisiones de giro.
  • 61.
  • 62. Cap´ıtulo 4 Sistema propuesto 4.1. Introducci´on En este cap´ıtulo se describe el desarrollo del sistema, el cual permite la navegaci´on autom´atica y evasi´on de obst´aculos bas´andose en una arquitectura reactiva mediante control difuso y datos de profundidad, con el fin de una posterior implementaci´on en una silla de ruedas. Un sistema se define como un conjunto de entidades relacionadas entre s´ı que contribuyen a un determinado objetivo. En general, un sistema se compone de entradas, procesos y salidas. En este trabajo se describe un sistema en el cual cada uno de los m´odulos representan las entidades que est´an relacionadas unas con otras con el fin de cumplir el objetivo de navegar de forma au- tom´atica, evadiendo los obst´aculos que se presenten. Las entradas del sistema de navegaci´on son los datos de profundidad que se obtienen mediante el sensor Kinect, estos datos son procesados por cada m´odulo hasta obtener la salida que indica la direcci´on que est´a libre de obst´aculos. Los m´odulos que componen el sistema inician desde la etapa de intercambio de informaci´on con el ambiente, siguiendo con las etapas que se encargan de transformar la informaci´on para adquirir algunas caracter´ısticas espec´ıficas de la escena para que finalmente se determine la direcci´on de giro. Bas´andose en el diagrama de bloques de las etapas de un sistema de visi´on artificial del Cap´ıtulo 2, en la Figura 4.1 se muestran las etapas que componen el sistema de navegaci´on propuesto. 39
  • 63. Cap´ıtulo 4. Sistema propuesto 40 Etapa sensorial Etapa de preprocesamiento Actuación según resultados Etapa de parametrización Escena real Transformación de datos de profundidad Eliminación de regiones desconocidas pequeñas Sistema de control difuso Extracción de profundidad promedio Adquisición de datos de profundidad Figura 4.1. Diagrama a bloques de las etapas del sistema de navegaci´on reactiva difusa. El sistema propuesto obtiene informaci´on del ambiente mediante los datos de profundidad del sensor Kinect, el cual se encuentra ubicado sobre una plataforma m´ovil, elevado a 1 metro y con un ´angulo de inclinaci´on vertical de 0◦ . Los datos de profundidad son procesados para conocer qu´e obst´aculos existen y decidir c´omo actuar controlando la direcci´on del giro de la plataforma m´ovil. Se inicia con la adquisici´on de los datos de profundidad, manteni´endose la comunicaci´on entre el sistema y el ambiente exterior, adem´as de transformar dichos datos a un formato electr´onico. La transformaci´on de los datos de profundidad describe la transformaci´on de las m´etricas de profundidad a im´agenes en escala de grises. Posteriormente se procede a la eliminaci´on de las part´ıculas oscuras de menor ´area dentro de la imagen, las cuales indican informaci´on descono-
  • 64. Cap´ıtulo 4. Sistema propuesto 41 cida. La extracci´on de profundidad promedio es el proceso donde se obtienen las profundidades por cada secci´on, esto con el fin de detectar la proximidad de obst´aculos con respecto del sen- sor. Se finaliza con el procesamiento del control difuso para navegar hacia una trayectoria que indique una menor cantidad de obst´aculos cercanos. A continuaci´on, en las siguientes secciones, se presenta la descripci´on detallada de cada etapa presentada en el diagrama a bloques, Figura 4.1, as´ı como los resultados generados por cada m´odulo. 4.2. Adquisici´on de datos de profundidad La fase de adqusici´on de datos de profundidad, consta de la obtenci´on de la informaci´on de entrada que provienen del mundo real, para que sean transformados a un formato que pueda ser procesado por la computadora. El sistema trabaja con datos de profundidad, los cuales se obtienen mediante el sensor Kinect en conjunto con librer´ıas OpenNI [34]. Para la informaci´on adquirida del exterior en una imagen digital bidimensional, el color de un pixel1 se representa mediante una cadena de d´ıgitos binarios (bits), lo que se denomina in- tensidad de color. Si se tiene una intensidad de color de n, implica que cada pixel que conforma la imagen puede representar hasta 2n colores distintos [35]. En el caso de las im´agenes de profundidad, la informaci´on que se adquiere, cuando el sensor proyecta un patr´on de puntos infrarrojos en una escena, es examinada por la c´amara para obte- ner una referencia entre los puntos de la escena y el Kinect, por lo tanto se generan datos en 21 2 , es decir, una matriz de m×n donde cada elemento indica un valor de proximidad o profundidad; a diferencia de la informaci´on en 3D que representa una matriz de 3 × n donde cada columna retorna informaci´on del ambiente en coordenadas (x, y, z). El resultado de la comunicaci´on entre sensor Kinect y computadora es un arreglo matricial de 640 × 480, el cual puede interpretarse como una imagen y operarse como tal, pero sin perder el enfoque de que cada pixel es un dato de profundidad y que adem´as, representa unidades f´ısicas en mil´ımetros. La matriz adquirida del sensor se define en un marco de profundidad de 16 bits (n = 16), representando un rango de 216 = 65,536 colores (ver Figura 4.2). 1 Unidad m´as peque˜na homog´enea de color que forma parte de una imagen digital
  • 65. Cap´ıtulo 4. Sistema propuesto 42 15 12 11 8 7 4 3 0 0000 0101 1111 0011 Figura 4.2. Estructura de los bits de profundidad. La Figura 4.3 muestra una clasificaci´on dependiendo de la distancia de los objetos en la escena con la ubicaci´on del Kinect [36]; esta clasificaci´on consta de cuatro rangos: desconocido, muy cercano, valores normales y muy lejano. Desconocido Muy cercano Valores normales Muy lejano 0 0.4 0.8 3 4 8 Distancia desde el Sensor (metros) Figura 4.3. Rango en metros de la imagen de profundidad. Al utilizar OpenNI, el tipo de dato al que pertenece cada pixel de la imagen de profundidad que se adquiere con el sensor es un entero sin signo de 16 bits, y la imagen puede ser represen- tada de manera visual mediante la funci´on imagesc de Matlab R . Las im´agenes que se obtienen con las dos c´amaras del sensor Kinect se muestran en la Fi- gura 4.4, donde la imagen que se obtiene de la c´amara RGB del Kinect se observa en la Figura 4.4a, mientras que la imagen de profundidad que se obtiene con el sistema infrarrojo, se observa en la Figura 4.4b, ambas im´agenes no coinciden exactamente ya que cada una tiene diferente punto focal. Se aclara de antemano, que este sistema s´olo trabaja con la imagen de profundi- dad, debido a que la imagen en RGB no proporciona la informaci´on de proximidad; la imagen en RGB se utiliza para una mejor visualizaci´on de los ambientes donde se experimenta el sistema.
  • 66. Cap´ıtulo 4. Sistema propuesto 43 100 200 300 400 500 600 50 100 150 200 250 300 350 400 450 (a) Imagen RGB 100 200 300 400 500 600 50 100 150 200 250 300 350 400 450 0 1000 2000 3000 4000 5000 6000 7000 (b) Imagen de profundidad en escala de grises Figura 4.4. Im´agenes obtenidas del sensor Kinect. Enfoc´andose en la imagen de profundidad, hasta este punto se tiene una imagen con valores de pixel de tama˜no de 16 bits. En la siguiente secci´on se realiza una transformaci´on de la imagen de profundidad para pasar de valores de 16 bits a 8 bits, con la finalidad de que el procesamiento de la imagen, la extracci´on de datos de profundidad y de la cantidad de datos desconocidos dentro de la imagen de profundidad consuma la menor cantidad de recursos hardware posibles. 4.3. Transformaci´on de los datos de profundidad Los datos de profundidad que se obtienen de la escena mediante el sensor Kinect, conforman un arreglo matricial representado como una imagen de profundidad. El color de cada pixel de la imagen se basa en el valor de profundidad y su valor puede determinarse en una escala de 0 hasta 65,535; ´esto es porque la imagen es de tipo uint16 (n´umero entero sin signo de 16 bits). Para la representaci´on de la imagen, el 0 se muestra con el color negro mientras que el color blanco corresponde al valor 65,535. En la Figura 4.5 se muestra la imagen de profundidad utilizando el comando imshow de Matlab R . Al mismo tiempo, se observa la escala de la imagen que va de 0 a 65,535. N´otese que la mayor´ıa de los pixeles caen dentro del espectro m´as oscuro ya que el valor m´aximo de 65,535 mil´ımetros (65.535 metros) supera el campo de visi´on del sensor Kinect que no es mayor a los 10,000 mil´ımetros (10 metros), lo cual provoca dificultad para diferenciar los objetos dentro de la imagen.
  • 67. Cap´ıtulo 4. Sistema propuesto 44 0 1 2 3 4 5 6 x 10 4 Figura 4.5. Imagen de profundidad original. Para crear una imagen en escala de grises con cada elemento de tama˜no de 8 bits a partir de una imagen de profundidad con datos de 16 bits, se ejecuta el algoritmo especificado por el Pseudoc´odigo 1. Pseudoc´odigo 1 Conversi´on de imagen de profundidad Entrada: ImagenProf16 {Datos de profundidad de 16 bits} Salida: ImagenProf {Imagen de profundidad de 8 bits} 1: maximaProf = profundidad m´axima de ImagenProf16 2: para i = 0 hasta 480 hacer 3: para j = 0 hasta 640 hacer 4: Convertir ImagenProf16(i, j) a tipo double 5: profundidad = 255 ∗ ImagenProf16(i, j)/maximaProf 6: Redondear profundidad hacia el entero m´as cercano 7: ImagenProf(i, j) = profundidad 8: fin para 9: fin para Con este procesamiento se obtiene un rango de 0 (que representa el color negro) a 255 (re- presentando el color blanco). En la imagen de profundidad, el 0 puede significar objetos muy cercanos, objetos muy lejanos u objetos que no fueron identificados; bajo esta situaci´on, el sis- tema de navegaci´on se mantendr´a lo m´as seguro posible dirigi´endose s´olo a lugares conocidos y que posean la suficiente informaci´on de profundidad para la toma de decisiones, es decir, los