119245
119245
119245
Autor:
DIEGO ALEXANDER TIBADUIZA BURGOS
i
PLANEAMIENTO DE TRAYECTORIAS DE UN ROBOT MÓVIL
Autor:
DIEGO ALEXANDER TIBADUIZA BURGOS
TRABAJO DE INVESTIGACIÓN
Director:
Dr. Tech ROBERTO MARTINEZ ANGEL
Codirector:
MPE. JAIME GUILLERMO BARRERO PEREZ
ii
iii
CONTENIDO
Pag.
INTRODUCCIÓN 1
1. PLANTEAMIENTO DEL PROBLEMA 3
1.1 ROBOTS MÓVILES 4
1.1.1 Configuraciones de robots móviles 5
2. IMPLEMENTACIÓN DEL SISTEMA 9
2.1 PISTA 9
2.2 ROBOTS MÓVILES 9
2.3 OBSTÁCULOS 10
2.4 SISTEMA DE VISIÓN 10
2.5 COMUNICACIÓN ETHERNET 11
2.6 COMUNICACIÓN VÍA RADIOFRECUENCIA 12
2.7 ULTRASONIDO 12
3. ALGORITMO DE CONTROL 14
3.1 CONTROL DE ALTO NIVEL 14
3.1.1 Descomposición en celdas. 15
3.1.2 Mapa de caminos 16
3.1.3 Campos de potencial 16
3.1.4 Algoritmos genéticos 19
3.2 ALGORITMOS IMPLEMENTADOS 24
3.2.1 Campos de potencial 24
3.2.2 Algoritmos genéticos 36
3.3 ALGORITMO DE CONTROL DE BAJO NIVEL 41
3.3.1 Control de servomotores 44
3.3.2 Modulo de ultrasonido 45
3.3.3 Trayectoria planeada 49
3.3.4 Programación 52
4. VISIÓN DINÁMICA 59
4.1 GENERALIDADES DEL ANÁLISIS DINÁMICO DE
iv
IMÁGENES
4.1.1 Definición 59
4.1.2 Etapas fundamentales de la aplicación implementada 59
4.2 GENERALIDADES 61
4.2.1 Descripción de la escena 61
4.2.2 Elementos de adquisición 62
4.2.3 Algoritmo de adquisición y configuración de la tarjeta 66
digitalizadora.
4.3 PRE-PROCESAMIENTO 69
4.4 DETECCIÓN Y SEGMENTACION DE MOVIMIENTO 69
4.4.1 Método basado en Color 69
4.4.2 Algoritmo de color 73
4.4.3 Método basado en Gradientes 76
4.4.4 Método Basado En Correlación 80
4.5 LOCALIZACIÓN E IDENTIFICACION 84
4.5.1. Localización de objetos en la imagen 85
4.5.2. Algoritmo de Identificación 85
4.5.3 Cálculo de Orientación del móvil 89
5. PRUEBAS Y ANÁLISIS DE RESULTADOS 92
5.1 PRUEBAS REALIZADAS PARA EL SISTEMA DE VISIÓN 92
5.1.1 Posición 93
5.1.2 Orientación 94
5.1.3 Seguimiento 95
5.1.4 Tiempo de latencia 98
5.2 CARACTERIZACION DEL MODULO DE ULTRASONIDO 99
SRF04
5.3 PRUEBAS DE DESEMPEÑO DEL ROBOT MÓVIL 101
5.3.1 Comunicación 102
5.3.2 Precisión 102
5.3.3 Repetibilidad
v
5.4 PROGRAMAS ELABORADOS 107
5.4.1 Campos de Potencial 107
5.4.2 Algoritmos Genéticos 109
5.4.3 Sistemas de referencia 111
6. OBSERVACIONES Y CONCLUSIONES 113
7. RECOMENDACIONES PARA TRABAJOS FUTUROS 118
8. REFERENCIAS BIBLIOGRAFICAS 119
vi
LISTA DE FIGURAS
Pag.
Figura 1. Celda de manufactura Universidad Pontificia Javeriana 3
Cali
Figura 2. Configuración síncrona 5
Figura 3. Configuración diferencial 6
Figura 4. Configuración diferencial 6
Figura 5. Triciclo clásico 7
Figura 6. Configuración Ackerman 7
Figura 7. Elementos de la adquisición de imágenes 11
Figura 8. Módulo de Ultrasonido 12
Figura 9. Esquema general de la implementación. 13
Figura 10. Vista del área de trabajo 13
Figura 11. Diagrama de bloques de algoritmo del sistema 14
Figura 12. Problema de un mínimo local en campos de potencial 19
vii
de llegada.
Figura 24. Resultados obtenidos para la distribución definida en 34
la figura 23.
Figura 25. Resultados del método de campos de potencial con 3 35
obstáculos
Figura 26. Resultados obtenidos cuando se tienen 6 obstáculos. 36
Figura 27. Ejemplo de trayectoria codificada. 38
Figura 28. Método de Cruce 39
Figura 29.Camino exitoso sin zonas de riesgo en los obstáculos, 39
generación 20
Figura 30. Camino exitoso sin zonas de riesgo, generación 110. 40
Figura 31. Camino exitoso con grilla de 32 celdas, 40
considerando zonas de riesgo (generación 205).
Figura 32. Diagrama de bloques del sistema de control de bajo 41
nivel.
Figura 33. Módulo de Radiofrecuencia 41
Figura 34. Circuito experimental con un 555 43
Figura 35. Tren de pulsos generado por el circuito. 43
Figura 36. Señal de control para el servomotor. 44
Figura 37. Conexiones del modulo del ultrasonido SRF04 46
Figura 38. Diagrama de Tiempos del SRF04 47
Figura 39. Rango efectivo del SRF04. 48
Figura 40. Captura del pulso de eco. 49
Figura 41. División del Byte para Algoritmo Genético 50
Figura 42. División del Byte para la programación con Campos 51
de Potencial
Figura 43. Diagrama de flujo del móvil controlado. 53
Figura 44. Obstáculo Móvil 54
Figura 45. Diagrama de Flujo del móvil aleatorio 55
Figura 46. Representación de las direcciones del móvil. 56
viii
Figura 47. Diagrama de Subprograma de Giro 57
Figura 48. Diagrama de subprograma Avanzar. 58
Figura 49. Diagrama de bloques de la aplicación implementada 61
Figura 50. Distribución general de la escena 62
Figura 51. Foto tomada sin calibración 63
Figura 52. Foto obtenida después de la calibración 63
Figura 53. Foto tomada sin calibración 64
Figura 54. Foto obtenida después de la calibración 64
Figura 55. Modelo de distorsión completo para lente de 4 mm 65
Figura 56.Diagrama de flujo para algoritmo de adquisición 67
Figura 57. Adquisición de video y frames 68
Figura 58. Diagrama cromático CIE 1931 para un observador de 71
2°
Figura 59. Observador de 2º. 71
Figura 60. Espacio y color HLS 72
Figura 61. Diagrama de flujo para Algoritmo de Color 75
Figura 62. Segmentación del color amarillo con modelo HLS. 76
a) Imagen original. b) Binarización. c) Imagen con filtrado
morfológico
Figura 63. Segmentación del color naranja con modelo xyY 76
a)Imagen original. b) Binarización. c) Imagen con filtrado
morfológico
Figura 64. Diagrama para Algoritmo basado en Gradientes 78
Figura 65. Operaciones del algoritmo de Jain 79
Figura 66. Segmentación de movimiento con gradientes. 80
a) imagen A(to). b)imagen A(to+∆t). c)Gradiente espacial.
d)Gradiente temporal. e)bordes del objeto en movimiento
f)objeto segmentado
Figura 67. Diagrama del algoritmo de correlación 83
Figura 68. Resultados del algoritmo de correlación
ix
Figura 69. Diagrama de flujo para algoritmo de identificación 86
Figura 70. Dimensiones de los móviles 87
Figura 71. Identificación de un móvil 88
Figura 72. Diagrama par el algoritmo alterno 89
Figura 73. Sistema de referencia fijado en el centro de la 90
escena
Figura 74. Sistema de referencia variable 91
Figura 75. Posiciones usadas para determinar la distribución del 93
error.
Figura 76. Distribución del error de posición en los algoritmos 94
implementados
Figura 77. Error en orientación. 95
Figura 78. Seguimiento de una trayectoria recta 96
a)con el modelo de color HLS b)con el modelo de color xyY
c)con el algoritmo basado en gradientes d)con correlación
Figura 79. Seguimiento de una trayectoria circular 97
a)con el modelo de color HLS b)con el modelo de color xyY
c)con el algoritmo basado en gradientes d)con correlación
Figura 80. Caracterización del sensor SRF04 101
Figura 81. Dispersión de los datos en la prueba de 106
repetibilidad.
Figura 82. Interfaz off-line de capos de potencial 107
Figura 83. Interfaz off-line que lee los valores de los obstáculos 108
fijos dentro de la pista usando cámara.
Figura 84. Interfaz gráfica programa de planeación de 110
trayectorias usando algoritmos genéticos.
Figura 85. Ejemplo de trayectoria obtenida con freyja. 110
Figura 86. Ejemplo de trayectoria al ejecutar Freyja. 111
Figura 87. Sistemas de referencia 112
x
LISTA DE TABLAS
xi
LISTA DE ANEXOS
Pág
Anexo A. Construcción del robot móvil 123
Anexo B. Principales características de la tarjeta digitalizadora 133
dfg/compress piranha y de la cámara DFK 50H13
Anexo C. Instalación e interfase grafica de “fenix” 145
xii
RESUMEN
DESCRIPCIÓN
____________________
xiii
ABSTRACT
DESCRIPTION:
The dynamic area is simulated with one of robots mobile, which has I modulate of
ultrasound that sense the area and moves by without no planned trajectory.
____________________
xiv
INTRODUCCIÓN
1
Control, Electrónica, Modelamiento y Simulación.
1
Este proyecto de investigación incluye la elaboración de un algoritmo de visión
dinámica encargado de sensar en un plano 2D, la posición de dos obstáculos fijos,
un obstáculo móvil y la posición del móvil que ejecuta la trayectoria. Para el
planeamiento y ejecución de la trayectoria, se implementó dos programas que
tienen por objeto, encontrar y ejecutar una trayectoria libre de colisiones para un
robot móvil. Estos programas se basan en la técnica de algoritmos genéticos y de
campos de potencial.
2
1. PLANTEAMIENTO DEL PROBLEMA
3
Manipuladores simples
Robots estacionarios
Robots móviles
Los vehículos con ruedas son la solución más simple y eficiente para conseguir la
movilidad en terrenos suficientemente duros y libres de obstáculos, permitiendo
conseguir velocidades relativamente altas.
4
1.1.1 Configuraciones de robots móviles
5
Figura 3: Configuración diferencial
6
Figura 5. Triciclo clásico
7
Para el presente trabajo de investigación se ha elegido la configuración diferencial
porque es una configuración cuyo movimiento es sencillo de controlar, basta con
manejar el movimiento de las dos ruedas impulsoras mediante dos motores para
realizar desplazamientos lineales y angulares. Con esta configuración hay un
consumo de potencia menor que en otras configuraciones, lo que garantiza un
mayor tiempo de funcionamiento con una fuente de alimentación portátil.
8
2. IMPLEMENTACIÓN DEL SISTEMA
Se implementó una plataforma de pruebas para planeamiento de trayectorias de
robots móviles consistente en:
Una pista
Robots Móviles
Obstáculos
Sistema de Visión
Comunicación Ethernet
Comunicación vía Radiofrecuencia
Sensado con ultrasonido
2.1 PISTA
9
Estos robots son alimentados cada uno por un banco de 6 baterías recargables de
1.2 V.
Uno de los robots es usado para ejecutar el planeamiento de trayectorias y el otro
se usa como obstáculo dentro de la pista. Tanto el robot que ejecuta la trayectoria
como el obstáculo móvil son controlados cada uno por un Microcontrolador
MOTOROLA MC68HC908GP32.
En el caso del obstáculo móvil el microcontrolador se encarga de trabajar con un
programa para el control del carro mediante ultrasonido, es decir el robot se
mueve de manera aleatoria por la pista dependiendo de lo que se encuentre
sobre ella.
El microcontrolador del robot móvil que ejecutará la trayectoria es el encargado de
recibir e interpretar las señales de radiofrecuencia enviadas desde el host de
control para ejecutarlas sobre los motores. Además se encarga de recibir las
señales del módulo de ultrasonido para evitar colisionar en caso de que ocurra
alguna anomalía en el proceso.
2.3 OBSTÁCULOS
10
1 tarjeta digitalizadora
Para la obtención de la señal que se va a digitalizar se hizo uso de la cámara
análoga DFK50H13/N existente en el laboratorio de robótica que posee un lente
de 8mm y salida de video compuesto. A esta cámar fue necesario adaptarle un
lente de 4mm para lograr obtener datos de un área mayor.
Ethernet es una Norma o estándar (IEEE 802.3) que determina la forma en que los
puestos de la red envían y reciben datos sobre un medio físico compartido que se
11
comporta como un bus lógico, independientemente de su configuración física.
Ethernet es la capa física más popular de la tecnología LAN usada actualmente.
2.7 ULTRASONIDO
Se usa como método de sensado local para detectar si existe algún obstáculo en
la cercanía de alguno de los dos móviles. Este sistema sirve de respaldo para
informarle al microcontrolador en caso de existir alguna anomalía en el sistema de
detección por cámara o errores en la comunicación. En la figura 8 se puede
apreciar el módulo usado.
12
Figura 9. Esquema general de la implementación.
13
3. ALGORITMO DE CONTROL
14
El planeamiento de caminos consiste en generar un camino libre de colisiones en
un ambiente con obstáculos y optimizar este con respecto a algún criterio.
Cualquiera de estos métodos actúa bien tanto en el espacio de trabajo del robot,
como en el espacio de configuraciones. Se llama espacio de trabajo al lugar donde
se encuentran el robot y los obstáculos y espacio de configuración al espacio que
consiste en todas las posibles configuraciones del robot.
15
insertadas en un grafo en el que celdas adyacentes están conectadas. Entre estas
celdas, el movimiento es normalmente fácil de calcular. El movimiento que conecta
la configuración inicial y la final puede entonces calcularse determinando las
celdas que contienen las configuraciones inicial y final, encontrando un camino
entre estas celdas en el grafo, y finalmente calculando el movimiento entre cada
arista del camino en el grafo.
El método de mapa de caminos intenta construir un grafo de caminos, por los que
es seguro viajar, entre dos obstáculos. Esto puede hacerse, bien para el espacio
de trabajo o para el de configuración. Una vez que se tiene el grafo disponible, el
movimiento se calcula moviendo el robot desde la configuración inicial hasta
alguna posición en un camino cercano, siguiendo después las diferentes rutas
hasta acercarse a la configuración final dejando la última ruta y moviendo el robot
hasta la configuración final.
16
Este método esencialmente trata el ambiente de trabajo como un campo de
fuerzas, dando un valor diferente a cada objeto sobre este. El objetivo o punto de
llegada se considera como un imán de polaridad contraria a la del móvil, es decir
que tiene fuerza atractora mientras que los obstáculos se comportan como imanes
de igual polaridad emitiendo fuerzas repulsivas. Este método considera la
velocidad del móvil en la cercanía del obstáculo.
Ha sido usado ampliamente para robots móviles así como para manipuladores con
excelentes resultados, aunque su acogida es mayor en los robots móviles donde
se han trabajado tanto en planeamiento on-line como off-line.
3) Calcular una nueva posición para el robot como resultado de aplicar una fuerza
aceleradora.
4) Regresar al paso 1.
F= - ∇ U(q) = ( dU/dx )
( dU/dy )
17
Para obtener las fuerzas hay que modelar las funciones de potencial de la meta y
obstáculos calculando el potencial para cada punto del espacio libre:
• Ventajas:
• Desventajas:
18
Figura 12. Problema de un mínimo local en campos de potencial
19
2. La selección natural es el proceso por el que los cromosomas con "buenas
estructuras" se reproducen más a menudo que los demás.
3. En el proceso de reproducción tiene lugar la evolución mediante la
combinación de los cromosomas de los progenitores.
4. La evolución biológica no tiene memoria en el sentido de que en la
formación de los cromosomas únicamente se considera la información del
período anterior
FUNDAMENTOS DE GENETICA
Antes de definir un Algoritmo Genético (AG), es necesario poseer algunos
conceptos de genética que ayudarán a comprender mejor su analogía y
funcionamiento. Las definiciones dadas en este numeral son tomadas del libro La
Salud del Dr. Claude B Blouin:
20
transmite a la descendencia la información que contiene. En casi todos los
organismos celulares el ADN está organizado en forma de cromosomas, situados
en el núcleo de la célula.
- GENOTIPO: Conjunto de los genes llevados por la totalidad de los
cromosomas de un individuo, entre ellos los genes recesivos no se expresan.
- FENOTIPO: Conjunto de los rasgos aparentes de un individuo, correspondiente
a la fracción observable y exteriorizada del genotipo.
- ALELO: Se dice de cada uno de los genes que ocupan el mismo locus en cada
uno de los cromosomas de un mismo par y que ejercen, su efecto, idéntico o
diferente, sobre un mismo carácter determinado.
- LOCUS: Lugar preciso y constante que corresponde a la sede de un gen
concreto en cada uno de los cromosomas de un par concreto.
- MUTACIONES: Aunque la replicación del ADN es muy precisa, no es perfecta.
Muy rara vez se producen errores, y el ADN nuevo contiene uno o más
nucleótidos cambiados. Un error de este tipo, que recibe el nombre de mutación,
puede tener lugar en cualquier zona del ADN.
La mayoría de las mutaciones genéticas son perjudiciales para el organismo que
las porta.
21
ALGORITMO GENETICO SIMPLE
A. REPRODUCCION
Es el proceso por medio del cual cadenas individuales son copiadas de acuerdo al
valor de su función objetivo, f, (los biólogos llaman a esta función, propiedad ("
fitness "). Intuitivamente se puede pensar en la función f como una medida de
beneficio, utilidad o bondad que se quiere maximizar. Se copia cadenas acorde a
los valores promedio, con lo cual las cadenas con un alto valor tienen la mayor
probabilidad de contribuir a la creación de la siguiente generación. Este operador
es una versión artificial de la selección natural de Darwin y es quien en definitiva
indica quien vive o muere.
El operador de reproducción puede ser implementado por diversos métodos, pero
quizá el más usado es el de un individuo basado en una ruleta, donde cada
individuo posee un lugar de acuerdo a su función propiedad dentro de esta.
22
B. CRUCE
Los Operadores de Cruzamiento mas utilizados son:
- Uniforme: En cada bit se elige al azar un padre para que contribuya con su bit
al del hijo, mientras que el segundo hijo recibe el bit del otro padre.
A1= 0 1 1 0 1 A1’= 0 1 1 0 0
A2= 1 1 0 0 0 A2’= 1 1 0 0 1
23
C. MUTACIÓN
Es una alteración aleatoria de un valor de posición de una cadena.
Se ha encontrado que la frecuencia de mutación es de una mutación por cada mil
bits.
La rata de mutación en poblaciones naturales es igualmente pequeña, por lo que
se concluye que es apropiado considerarla como un mecanismo secundario de
adaptación de un algoritmo genético.
• Inicializar variables
24
• Definir potencial para el punto de llegada
Para implementar este método fue necesario tener en cuenta las siguientes
consideraciones:
• Existe una discretización del terreno.
• Cada punto de la pista se considera afectado por un valor numérico que indica
la relación de este con el punto de llegada. De otra manera cada celda
considerada posee un potencial que indica si la trayectoria puede o no pasar
por allí.
• De acuerdo con la distribución numérica asignada, la trayectoria se hace
siguiendo un potencial descendente
• El algoritmo puede ser on-line si se actualiza periódicamente los valores
detectados por una cámara o puede ser off-line si se posee la información de la
ubicación de los obstáculos solo al comienzo del programa, con lo cual sólo se
encuentra un camino sin poder revisar si algún obstáculo ha entrado a la
trayectoria planeada.
• El algoritmo es ajustable al área de trabajo. Con esto se trata de generar
algo de robustez lo cual permite usar el mismo programa para diferentes
tamaños de pista. En este caso el área de trabajo quedaría definida por las
características del sistema de visión tales como altura de la cámara y lentes
usados.
25
el tiempo de respuesta del algoritmo de visión. También dependerá del lenguaje
usado y la velocidad de procesamiento del computador usado
Es la primera etapa del algoritmo, que consiste en obtener la lectura de los datos
tales como: posiciones de inicio, llegada, posiciones de los obstáculos y tamaño
de la pista. Cuando el planeamiento se hace on-line estos datos se obtienen del
algoritmo de visión y se actualizan periódicamente dentro del programa, para
determinar si el camino se cruza o no con un obstáculo.
Una vez conocido el tamaño del área de trabajo se crea una matriz para simular la
pista tal como se muestra en la figura 14 y esta se inicializa con ceros. Cada
elemento de la matriz corresponde a un area determinada, con lo cual si el terreno
de trabajo es por ejemplo de (200*200) cm2 cada elemento de la matriz
corresponde con una area de (10*10) cm2 en la pista. El área de cada celda puede
ajustarse sin importar si el área de trabajo no es cuadrada.
Figura 14. Representación del área de trabajo cuando la pista es de 20x20
26
En el caso de la pista trabajada, el área es de (150*240) cm2, por lo cual la pista
se dividió en areas de (5*5) cm2.
Para poder generar un potencial que haga converger todos los caminos al punto
de llegada, se le asigna a este punto un valor numérico igual a “0” y a partir de
este se generan valores numéricos ascendentes hasta cubrir la totalidad de la
pista, tal como se puede observar en la figura 15. El único punto que queda sin
potencial es el de inicio, el cual se representa con otro valor superior al potencial
mayor en la pista.
Figura 15. Potencial alrededor del punto de llegada.
3 3 3 3 3 3 3
3 2 2 2 2 2 3
3 2 1 1 1 2 3
3 2 1 0 1 2 3
3 2 1 1 1 2 3
3 2 2 2 2 2 3
3 3 3 3 3 3 3
27
• El obstáculo posee un área efectiva propia de sus dimensiones, a través
de la cual no se puede realizar una trayectoria porque habría colisión.
Este obstáculo se representa en el algoritmo con el número “200”,
aunque el valor puede ser cualquiera mayor que los valores del campo
de potencial ya definidos en la pista.
Otro tipo de zona de riesgo muy frecuente se presenta cuando dos obstáculos
están muy cerca uno del otro. Existe la posibilidad de que el algoritmo genere una
trayectoria que pase por entre los obstáculos, sin tener en cuenta que las
dimensiones del móvil puedan no permitir realizar esta trayectoria. Para evitar esta
situación, se genera alrededor del obstáculo un potencial descendente tal como se
muestra en la figura 16.
Figura 16. Campo de potencial alrededor de un obstáculo
49 49 49 49 49
49 50 50 50 49
49 50 200 50 49
49 50 50 50 49
49 49 49 49 49
28
Con valores numéricos alrededor del obstáculo se simula la fuerza repulsora que
los caracteriza y puesto que la trayectoria trascurre de manera descendente, al
encontrar valores grandes de potencial se desvía a zonas más seguras.
Esta es una forma de asegurarse que el móvil jamás salga del área de trabajo y
corresponde más a un método de seguridad que a una necesidad, ya que si el
robot posee sensores de proximidad, estos pueden evitar las colisiones con las
paredes del orillo de la pista.
Los bordes del área de trabajo están representados por un potencial grande, en
este caso su valor corresponde con el número 50 y al igual que para un obstáculo,
se genera una zona de riesgo para evitar que el móvil se acerque demasiado.
En la figura 17 se muestra el potencial alrededor de la pista, el potencial del punto
de llegada y el de los obstáculos.
29
son sólo pruebas al azar para demostrar la efectividad del algoritmo. Las pruebas
mas exhaustivas se encuentran en el capítulo de pruebas y análisis de resultados,
donde además se hace una comparación con el otro método implementado.
EJEMPLO 1:
Parámetros iniciales:
Posición inicial: (x,y) = (5,5).
Posición Final: (x,y)= (15,15)
Número de obstáculos = 1
Posición del obstáculo: (x,y)= (9,9)
Al introducir estos datos en el algoritmo se obtiene la representación que se
muestra en las figuras 18 y 19, los resultados obtenidos después de ejecutado la
planeamiento se pueden observar en la figura 20.
Figura 18. Representación de los datos ingresados al algoritmo con un obstáculo
fijo
30
El punto de inicio se representa con el número “100”, el punto de llegada esta
definido como “0” y los obstáculos están representados con el número “200”.
Todos los movimientos correspondientes a la trayectoria encontrada son
ejecutados dentro de la matriz y exportados para definir al móvil hacia donde
moverse. La estructura definida para los movimientos es la que se observa en la
figura 9.
31
Figura 20. Resultados obtenidos luego de ejecutar el algoritmo.
32
La estructura de la figura 21 esta definida de la forma como aumentan y
disminuyen los índices de las matrices tal como puede apreciarse en la figura 22.
Figura 22. Definición de puntos vecinos dentro de una matriz
33
Figura 23. Distribución de los obstáculos, punto de inicio y punto de llegada.
34
Figura 25. Resultados del método de campos de potencial con 3 obstáculos
EJEMPLO 3:
En este caso se realizará la simulación cuando se tienen seis obstáculos.
Parámetros iniciales:
Posición inicial: (x,y) = (3,3).
Posición Final: (x,y)= (17,17)
Número de obstáculos = 4
Posición del obstáculo1: (x,y)= (9,9)
Posición del obstáculo2: (x,y)= (3,17)
Posición del obstáculo3: (x,y)= (17,3)
Posición del obstáculo4: (x,y)= (9,1)
Posición del obstáculo5: (x,y)= (9,15)
Posición del obstáculo6: (x,y)= (10,17)
35
En la figura 26 se puede apreciar el resultado del algoritmo cuando se tienen 6
obstáculos.
Figura 26. Resultados obtenidos cuando se tienen 6 obstáculos.
Para realizar estas etapas el algoritmo debe ser codificado en cadenas que se
llaman cromosomas, cada una conformada por elementos característicos
denominados genes.
CODIFICACIÓN
36
el plano cartesiano y la distancia que le toma ir de un punto a otro.
1 Monótono en Y (MY)
β 00 Vertical para MX y
horizontal para MY
01 Diagonal superior
para MX
Diagonal izquierda
para MY
10 Horizontal para MX
Vertical para MY
11 Diagonal Inferior para
MX
Diagonal derecha
para MY
δ Según
ecuación (1)
37
El número de genes del cromosoma está dado por la expresión:
38
Figura 28. Método de Cruce
RESULTADOS OBTENIDOS
Figura 29. Camino exitoso sin zonas de riesgo en los obstáculos, generación 20
39
Figura 30. Camino exitoso sin zonas de riesgo, generación 110.
Figura 31. Camino exitoso con grilla de 32 celdas, considerando zonas de riesgo
(generación 205).
40
3.3 ALGORITMO DE CONTROL DE BAJO NIVEL
Una vez encontrada la trayectoria es necesario ejecutarla. Esto como se mencionó
anteriormente se realizó en un microcontrolador Motorola, cuya selección se baso
en la relación de señales que se trabajaron.
Un diagrama de bloques general del sistema se puede apreciar en la figura 32.
Tomado de [email protected]
41
La configuración del microcontrolador y la asignación de pines se realizó basados
en la tabla 2.
42
circuito consta de un monoestable (555) cuya frecuencia está determinada por el
valor de los capacitores C2 y C3. La señal generada se invierte mediante un
transistor conectado en configuración "colector común" que funciona en modo de
saturación (esto significa APAGADO ó ENCENDIDO).
43
Al realizar esta prueba al servomotor HITEC HS-422 se encontró que los límites
de operación corresponden a un mínimo de 1ms y un máximo de 2ms de duración
del pulso. Estos valores posicionan el servomotor en sus respectivos extremos. Un
valor de 1,5ms de ancho de pulso ubica el servomotor en su posición central como
se observa en la figura 36.
Figura 36. Señal de control para el servomotor.
Cuando se sobrepasan los límites de movimiento del servo, éste emite un zumbido
indicando que se debe cambiar la longitud del pulso.
Las señales para el control de los servomotores son generadas por un puerto del
microcontrolador. Para la generación de la señal PWM, se uso el timer y un
comparador (interrupciones asociadas); de este modo el microcontrolador queda
libre para realizar otras tareas, y la generación de la señal es automática y más
efectiva. El mecanismo consiste en programar el timer con el ancho del pulso (el
período de la señal) y al comparador con el valor de duración del pulso a nivel alto.
44
Cuando se produce una interrupción de overflow del timer, la subrutina de
interrupción debe poner la señal PWM a nivel alto y cuando se produzca la
interrupción del comparador, ésta debe poner la señal PWM a nivel bajo.
45
eco. Este tiempo es proporcional a la distancia recorrida por las ondas de presión
ultrasónicas.
El sensor puede detectar objetos ubicados a una distancia entre tres y trescientos
centímetros, por medio de un pulso de tensión cuyo ancho varia entre 100us para
3cm y 18ms para 300cm. Para distancias mayores el sensor envía un pulso de
36ms. Este pulso se obtiene como respuesta (eco) a un pulso de disparo de 10us,
46
enviada por el microcontrolador. Al terminar la recepción del pulso de eco se debe
esperar 10ms antes de enviar el siguiente pulso de disparo.
Las señales de entrada de disparo y el pulso de salida de eco para este modulo
se pueden observar en la figura 38.
47
Figura 39. Rango efectivo del SRF04.
Tomada de SupeRobotica.com
Para el control del módulo de ultrasonido se debe generar una señal de excitación
y capturar el pulso de eco que genera el modulo. La señal de excitación es
generada por un pin del puerto A mediante la interrupción de “overflow” generada
por el timer.
La captura del pulso de eco se realiza configurando un canal del timer del
microcontrolador (PTD5/T1CH1) como entrada “input capture”. Primero se detecta
el flanco ascendente configurando la función input capture en modo “Rising edge”
y se almacena este valor como T1; luego es configurando en modo “Falling edge”
para detectar el flanco descendente, almacenando este valor como T2. La captura
de los flancos se observa en la figura 40. La diferencia entre T2 y T1 es el ancho
del pulso capturado.
48
Figura 40. Captura del pulso de eco.
49
ALGORITMO GENÉTICO (AG)
50
Los 4 bits de distancia representan el numero de pasos que el móvil debe ejecutar
en dicha dirección, donde la longitud del paso esta predefinida según el numero
de divisiones utilizadas en la plataforma de trabajo (celdas), para realizar el
planeamiento del camino.
El camino planeado con este método esta descrito en una cadena de bytes,
donde cada uno representa un segmento del camino planeado con la información
de dirección, los 3 bits más significativos y distancia con los bits restantes, como
se muestra en la figura 42.
Figura 42. División del Byte para la programación con Campos de Potencial
51
Los 5 bits de distancia representan el numero de pasos que el móvil debe ejecutar
en la dirección especificada, donde la longitud del paso esta predefinida según el
numero de divisiones utilizadas en la plataforma de trabajo (celdas), para realizar
el planeamiento del camino.
3.3.4 Programacion
52
Figura 43. Diagrama de flujo del móvil controlado.
53
Figura 44. Obstáculo Móvil
54
Figura 45. Diagrama de Flujo del móvil aleatorio
55
SUBPROGRAMA DE GIRO.
Este subprograma, definido como una función posee de entrada un número entero
que denota la dirección hacia la cual se debe ubicar el móvil. Las direcciones que
puede tomar el móvil se observan en la figura 46. El plano XY en la figura, se tomo
de acuerdo con la ubicación de los elementos en una matriz, donde X representa
las filas y Y las columnas.
56
Figura 47. Diagrama de Subprograma de Giro
SUBPROGRAMA DE AVANZAR.
57
Figura 48. Diagrama de subprograma Avanzar.
58
4. VISIÓN DINÁMICA
4.1.1 Definición
A. Adquisición de Imágenes.
En esta etapa se obtienen las imágenes visuales. Dos elementos son necesarios
para adquirir imágenes digitales de video, el primero es un dispositivo físico que
sea sensible a la banda visible del espectro electromagnético y que produzca una
señal eléctrica proporcional al nivel de energía percibido, y el segundo es un
digitalizador capaz de convertir la señal eléctrica del dispositivo en una forma
digital, aunque en la actualidad existen cámaras que entregan la señal digital
directamente al computador haciendo así innecesario el digitalizador.
59
B. Pre-procesamiento.
El objetivo principal del pre-procesamiento es una mejora de los datos de la
imagen suprimiendo los efectos de ruido e incrementando las características
deseadas para un exitoso procesamiento.
C. Segmentación.
En esta etapa los objetos de interés en la imágen son separados del fondo para su
posterior estudio.
D. Representación y Descripción.
E. Reconocimiento e Interpretación.
60
Figura 49. Diagrama de bloques de la aplicación implementada
4.2 GENERALIDADES
4.2.1 Descripción de la escena
61
los carros es considerable, las restricciones de movimiento no permiten realizar un
buen planeamiento, por lo cual se instaló en la cámara un lente de 4 mm y se
amplió el área de captura efectiva tomando toda la pista, es decir 3.708 m2. En
cuanto a la iluminación se limitó a las fuentes con las que se cuenta en el
laboratorio. Estas fuentes son dos lámparas de techo fluorescentes de 40 W.
Cámara.
Para la obtención de la señal que se va a digitalizar se hizo uso de una cámara
análoga DFK50H13/N, que posee un lente de 8mm y salida de video compuesto.
Fue necesario realizar la calibración para evitar errores en los resultados.
62
Luego se optó por realizar nuevamente la calibración de la cámara usando un
lente de 4mm debido a que con este no se logró tomar el área de trabajo que se
necesitaba.
63
Figura 53. Foto tomada sin calibración
64
Figura 55. Modelo de distorsión completo para lente de 4 mm
Complete Distortion Model
0
20
60
20
40
30
50
40
10 10
50
100
30
150
20
20
200
40
30
10
250
10
300
30
350
50
10
20
20
400 10
40
30
40
60
450
0 100 200 300 400 500 600
Pixel error = [1.383, 0.7862]
Focal Length = (600.475, 604.098) +/- [9.862, 10.04]
Principal Point = (282.204, 223.682) +/- [6.903, 7.087]
Skew =0 +/- 0
Radial coefficients = (-0.54, 0.3479, 0) +/- [0.0179, 0.03443, 0]
Tangential coefficients = (0.003962, 0.0003312) +/- [0.002795, 0.002354]
65
Focal Length: fc = [ 600.47492 604.09831 ] ± [ 9.86222 10.04268 ]
Principal point: cc = [ 282.20427 223.68173 ] ± [ 6.90267 7.08700 ]
Skew: alpha_c = [ 0.00000 ] ± [ 0.00000 ] => angle of pixel axes =
90.00000 ± 0.00000 degrees
Distortion: kc = [ -0.54004 0.34794 0.00396 0.00033 0.00000 ] ± [
0.01790 0.03443 0.00279 0.00235 0.00000 ]
Pixel error: err = [ 1.38326 0.78623 ]
Tarjeta digitalizadora
66
d. formato de color: RGB, YUV. El proceso de adquisición de este proyecto captura
imágenes RGB en verdadero color de 24 bits.
e. modo de visualización
INICIO
?
SI Tarjeta NO
Inicializada
Inicializar
Tarjeta
SI Inicio NO
exitoso?
NO Señal de entrada SI ERROR
Configurada?
Entrada de Video
Modo de Entrada
Formato de Video
Formato de Color
Modo de
Visualización
VIDEO Tipo de
Captura ? FRAME
NO
?
Video SI
Localizar Memoria
Activo
Ventana de
Visualización Información de
la Cabecera
Ajuste de
Tamaño Capturar Frame
Capturar
VISUALIZACIÓN PROCESAMIENTO
Video
Caso ?
Desplegar Video
Desplegar Frame Procesar
Liberar Memoria
67
Para la captura del video, se implementó una interfase en la cual presenta la
señal de video en una ventana de diálogo de tamaño ajustable. A partir de esta
señal, se puede capturar cuadros que permanecen estáticos en un documento
separado. Una imagen capturada de esta manera se conoce como un Frame.
Para capturar un frame, primero se selecciona un área en memoria donde
almacenar los datos de la imagen a adquirir, también se ajusta la cabecera que
corresponde a propiedades de la imagen como las dimensiones y el número de
bits por píxel. Luego, si lo que se desea son imágenes independientes del proceso
de detección y segmentación de objetos en movimiento se efectúa la captura y
posterior despliegue, de lo contrario los frames adquiridos no serán desplegados,
lo cual permite optimizar recursos computacionales y disminuir tiempo en el
proceso.
68
En la figura 57 se aprecia el resultado de implementar el algoritmo de adquisición
descrito anteriormente en visual C++ 6.0, el cual permite capturar video y
desplegarlo en un único dialogo y además capturar múltiples imágenes en
diferentes vistas.
4.3 PRE-PROCESAMIENTO
69
En este trabajo se implementaron dos modelos de color [12] el xyY y HLS para
realizar la detección. La principal razón para elegir estos modelos radica en que la
información cromática y la de brillo es separada en componentes distintas, lo cual
hace a estos modelos robustos ante los cambios de iluminación que se presenten
en el escenario. Además, al estar realizando detección solamente en las
componentes que contienen la información cromática, el tiempo en la
segmentación disminuye, lo cual disminuye también el tiempo total de
procesamiento.
Modelos xyY y HLS
• Modelo De Color xyY : en 1931 la Commission Internationale de l'Éclairage
(CIE) 2 define tres colores imaginarios base x, y e Y, como una solución al
problema que tiene el modelo RGB 3 de no poder representar muchos de los
colores percibidos por el ojo humano.
El modelo xyY, esta basado en las curvas de respuesta espectral de los tres
receptores de color del ojo (observador patrón) las cuales difieren ligeramente de
una persona a otra [8]. El CIE ha definido un “observador estándar” basándose en
la respuesta espectral media de la población.
Los colores primarios para el observador estándar se encuentran representados
en un modelo espacial llamado diagrama cromático CIE 1931 para un observador
de 2°, este diagrama se observa en la figura 58, además en la figura 59 se
observa en qué consiste el concepto de un observador de 2º.
2
Traducción Francesa de “Comisión Internacional sobre iluminantes”, principal organización internacional
encargada de los problemas sobre medición del color.
3
Siglas en ingles de Red(rojo), Green(verde) y Blue (azul) colores base en el modelo RGB
70
Figura 58. Diagrama cromático CIE 1931 para un observador de 2°
En diagrama cromático del CIE (figura 21) se puede observar que la información
de color se encuentra solamente en dos de sus componentes (x & y), puesto que
en la componente Y se representa la claridad de los colores. Esto le da una
ventaja sobre el modelo RGB en el cual la información de color esta contenida en
sus tres componentes.
• Modelo De Color HLS: Este modelo utiliza los tres componentes básicos del
color: matiz (Hue), saturación (Saturation) y brillo (Luminance). Una
representación gráfica incluyendo estas tres propiedades genera el denominado
espacio y color, el cual se ve en la figura 60.
71
Figura 60. Espacio y color HLS
RUSS John. The Image Processing Handbook. Boca Raton, FL. CRC PRESS,
IEEE PRESS. 2002.
En el perímetro del disco están situados los colores en su forma mas pura, es
decir con la ausencia de luz blanca. Al variar la distancia al centro del disco, los
colores comienzan a mezclarse con la luz blanca, presentándose así los colores
pasteles, esto se debe a que la distancia al centro (radio) señala los cambios en
la componente de saturación (saturation) de los colores.
El barrido angular que se hace con una línea tomada desde el centro por toda el
área del disco corresponde a cambios en el color. Esta coordenada angular
corresponde al matiz (hue) del color.
Por ultimo el brillo (luminance), corresponde a la altura del doble cono y tiene un
valor de 0 a 1, esto significa que a una altura cero se encuentra el color negro, a
una de 0.5 se encuentra un gris de intensidad media, y a una altura de valor 1 se
localiza el color blanco puro, lo cual indica que en la línea perpendicular que pasa
por el centro de la circunferencia se encuentran los niveles de grises.
72
4.4.2 Algoritmo de color
⎧θ si B ≤ G
(1)
H =⎨
⎩360 − θ si B > G
donde:
⎛
⎜
1
[(R − G ) + (R − B )] ⎞⎟
θ = cos −1 ⎜ 2 ⎟ (2)
⎜
⎜ (R − G ) + (R − B )(G − B ) ⎟⎟
2
⎝ ⎠
S = 1−
3
[min (R, G, B )] (3)
R+G+ B
73
X Y
x= y= (5)
X +Y + Z X +Y + Z
74
Figura 61. Diagrama de flujo para Algoritmo de Color
Adquisición
Conversión Conversión
RGB a HLS RGB a xyY
Binarización Binarización
Filtrado
Morfológico
Descartar Areas
Pequeñas
Representación y
Descripción
Reconocimiento e
Interpretación
Adquisición
75
detección del color. No obstante se observa que con la utilización de los modelos
de color implementados en este proyecto este problema se soluciona de forma
completa.
a b c
a b c
76
En la estimación del movimiento por medio de métodos basados en gradientes
uno de los principales problemas es la presencia de elementos no móviles que
pueden estar en la escena y que interfieren con la correcta detección de los
bordes de los elementos en movimiento. Por tal motivo en el proyecto aquí
expuesto se implementó un algoritmo que se fundamenta en el algoritmo de Jain,
el cual soluciona en gran medida este problema.
Algoritmo de Jain
ET ( x, y, t ) = dF ( x, y, t ) • dF ( x, y, t ) (6)
dS dt
5
Corresponde a los niveles de intensidad en cada píxel presente en una imagen.
77
Este algoritmo se basa fundamentalmente en el algoritmo de Jain y en algunas
operaciones morfológicas como se puede apreciar en la figura 64.
Figura 64. Diagrama para Algoritmo basado en Gradientes
Adquisición
Pre-procesado
Leer Imagenes
Pre-procesadas
JAIN
Gradiente
Espacial
Gradiente
Temporal
Operación
lógica AND
Morfología
Descartar Areas
Pequeñas
Representación y
Descripción
Reconocimiento e
Interpretación
Adquisición
78
imagen A(to) ....... imagenA(to + ∆t )................ (7)
1444444442444444443
SECUENCIA DE IMAGENES
ImagenA(t) A
Detector de Diferenciador
Imagen de Bordes
Bordes. Sobel B B-A
ImagenA(t+ t) de los objetos en
AND movimiento en la
ImagenA(t+ t)
79
Figura 66. Segmentación de movimiento con gradientes.
a) imagen A(to). b)imagen A(to+∆t). c)Gradiente espacial. d)Gradiente temporal.
e)bordes del objeto en movimiento f)objeto segmentado
a b c
d e f
Principios fundamentales
La correlación aplicada al análisis de imágenes y mas específicamente a la
localización de objetos en movimiento dentro de una escena, consiste en
80
comparar secciones de una imagen para ver el nivel de semejanza con otra
imagen, llamada modelo patrón [12].
i=N
r = ∑ Ii M i (8)
i =1
N ∑ IM − ∑ I ∑ M
r=
(N ∑ I )( ) (8)
− (I ) N ∑ M 2 − (∑ M )
2 2 2
81
Donde N corresponde al número de píxeles analizados e I y M corresponden a la
imagen y modelo patrón, respectivamente.
Algoritmo basado en Correlación
Para tal fin, se implementó un algoritmo eficaz, que para la correlación tiene en
cuenta al modelo no solamente en la orientación original sino también, en
posiciones rotadas, con lo cual, el modelo solo se almacene en memoria una vez.
El Algoritmo utiliza un valor de aceptación para tomar o rechazar un resultado el
cual esta muy ligado a las condiciones de iluminación y ha sido fijado previamente
de acuerdo a las condiciones del laboratorio.
82
Figura 67. Diagrama del algoritmo de correlación
Adquisición
Pre-procesado
Leer Imagen
pre-procesada
NO
?
SI Modelo
Guardado
Visualizar Imagen
NO Modelo
Seleccionado? SI
Seleccionar
Modelo
Buscar
Modelo
Guardar Modelo
Activar Correlación
Angular
%Aceptación
Representación y
Descripción
Reconocimiento e
Interpretación
Adquisición
83
tiene en cuenta los movimientos rotacionales del móvil y se fija un valor umbral
con el cual se decide si un resultado es aceptable o no.
a b c
d e f
84
4.5.1. Localización de objetos en la imagen
Después de realizado el proceso de detección y segmentación de movimiento es
necesario realizar la localización del centroide del objeto segmentado con respecto
al origen de coordenadas de la imagen. Aunque el centroide, está relacionado con
una propiedad física de los objetos como es su masa, tiene una aplicación
particular en el procesamiento digital de imágenes. A continuación se describe de
forma breve el concepto de momentos, necesario para realizar el calculo del
centroide aplicado al procesamiento digital de imágenes.
M ( p, q ) = ∑ ∑x p
y q f ( x, y ) (9)
x y
85
móviles con el fin de realizar un correcto seguimiento de ellos y no llegar a
confundir uno con otro.
La etapa de identificación consta de tres fases fundamentales: actualizar móviles
detectados, eliminar móviles no detectados y detectar móviles nuevos. En la figura
69 se muestra el diagrama de flujo para este algoritmo.
Actualizar Móviles
Detectados
Eliminar Móviles
NO Detectados
Crear Móviles
Nuevos
Fin
86
Detección de móviles nuevos. En esta fase se agrega la información de
posición y orientación de un móvil que se ha detectado en la imagen actual pero
que no se había detectado en la imagen anterior.
Se parte del hecho que las dimensiones de los móviles utilizados en el presente
proyecto son de 20cm x 20cm y que cuando dos móviles están lo mas cerca
posible sin haber chocado, sus centros de gravedad se encuentran a una distancia
de 20cm aproximadamente (figura 70).
20 cm
20 cm
20 cm
87
Figura 71. Identificación de un móvil
radio = 18cm
centroide en t = to
centroide en t = to + t
88
quede estático o salga de la escena. El diagrama para el algoritmo alterno se
muestra en la figura 72.
Umbralización
Móvil
NO NO
Detectado
? SI
Filtrado Morfológico
Actualizar Móviles
Identificación Detectados
de Móviles
89
puede establecer en cualquier lugar de la escena y el segundo es de referencia
variable en cada instante.
(xo,yo)
x
(xm,ym)
90
Donde el punto ( xo, yo) es el origen de coordenadas fijo y el punto ( xm, ym) hace
referencia al centroide del móvil en cada instante.
Sistema de referencia variable
(xm,ym)
Móvil en
t=to + t
91
5. PRUEBAS Y ANÁLISIS DE RESULTADOS
• Posición.
• Orientación.
• Seguimiento de trayectorias.
• Tiempo de latencia
Para realizar estás pruebas se utilizó la aplicación (FENIX) en visual C++ 6.0, la
cual genera un archivo de texto con la información de posición y orientación de
los objetos móviles. Además para emular el objeto en movimiento o estático se
usó en todas las pruebas un rectángulo de cartulina cuyas dimensiones son 17cm
x 12cm con el fin de localizar fácilmente su centroide en la intersección de sus
diagonales.
El error, el valor medio y la desviación estándar para las pruebas se calcula por
medio de las siguientes relaciones:
1 n
valor medio = ∑ xi
n i =0
(13)
92
1 n
desviación estándar = ∑ (xi − valor medio )2 (14)
n − 1 i =0
donde n es el número de muestras.
El calculo del error se efectúa con el fin de medir el nivel de exactitud, mientras la
desviación estándar para establecer el nivel de precisión.
5.1.1 Posición
Por ultimo se localizó el objeto con la aplicación desarrollada, tomando para cada
posición 50 datos. Las posiciones elegidas están distribuidas de tal manera que
cubran la mayor parte del área de trabajo como se observa en la figura 75.
93
Para esta prueba, el algoritmo basado en gradientes no arroja resultados ya que
el objeto que se va a localizar no se encuentra en movimiento, por lo cual este
algoritmo se excluye de la misma.
Figura 76. Distribución del error de posición en los algoritmos implementados
94
En la figura 77 el error para el algoritmo basado en el modelo de color HLS se
muestra con barras verticales de color azul oscuro, para el algoritmo basado en el
modelo de color xyY con barras de color azul claro, el algoritmo basado en
correlación con barras amarillas y el algoritmo basado en gradientes se identifica
con barras rojas.
Para la ejecución de la prueba se opto por usar dos trayectorias: la primera es una
línea recta con una pendiente de 30º con respecto al eje x. En la figura 78 de color
azul se observa la trayectoria ideal y de color rojo el seguimiento con los
algoritmos implementados
95
Figura 78. Seguimiento de una trayectoria recta
a)con el modelo de color HLS b)con el modelo de color xyY c)con el algoritmo
basado en gradientes d)con correlación
a b
Jain
c d
Aunque el seguimiento de una trayectoria rectilínea es altamente fiel para los
cuatro algoritmos implementados, se observo un leve cambio en la pendiente de la
recta. Esto es ocasionado por errores humanos al momento de medir el ángulo de
la pendiente en la trayectoria descrita para el objeto en movimiento.
96
Figura 79. Seguimiento de una trayectoria circular
a)con el modelo de color HLS b)con el modelo de color xyY c)con el algoritmo
basado en gradientes d)con correlación
a b
c d
97
5.1.4 Tiempo de latencia
Esta prueba tiene como objetivo mostrar la rapidez de respuesta de cada uno de
los algoritmos implementados.
Esta prueba se realizó colocado sobre la pista seis objetos móviles y seis
obstáculos. La razón de tener el máximo número de objetos móviles y de
obstáculos en la escena, es porque de esta manera se obtiene el tiempo critico
para cada algoritmo ya que al incrementar el número de objetos de interés en la
escena también incrementa el tiempo de procesamiento.
98
El tiempo de latencia limita la velocidad máxima como se observa en la tabla 8,
con la cual pueden moverse los objetos para poder ser localizados e identificados
correctamente con la aplicación desarrollada. Esto se muestra a continuación:
99
Tabla 9. Resultados del laboratorio en la calibración del SRF04.
En la grafica los puntos en color verde son los datos tomados en el laboratorio y la
línea azul es la regresión lineal de esto puntos, que se representan por la siguiente
ecuación:
Y = 5.78022913408e-5*X + 6.65830035889e-5 (15)
Esta ecuación es utilizada para calcular el ancho del pulso de eco en el rango de
distancias que sensa este modulo.
100
Figura 80. Caracterización del sensor SRF04
101
El análisis de cada uno de los resultados obtenidos permitirá medir el desempeño
de cada robot móvil.
5.3.1 Comunicación
La primer prueba que se realizo fue la de la comunicación vía radio frecuencia
enviando instrucciones desde el PC y observando que el móvil entendiera dichas
instrucciones. Como se menciono en el capitulo anterior la comunicación se
realizo en grupo de ocho bits con una velocidad de 1200 bits por segundo y un bit
de parada.
5.3.2 Precisión
La primera prueba que se realizo fue calibrar el móvil para que ejecutara una
línea recta. Primero
Para esta prueba se vario el ancho de pulso a cada servomotor buscando que el
móvil siguiera una línea recta que se dibujo en la pista. Después de haber
realizado la prueba varias veces se encontró que el móvil siempre se salía de la
línea a uno de sus lados. Una solución a esto fue modificar el prescaler del
microcontrolador para aumentar la resolución en los pulsos enviados. Se realizo
nuevamente la prueba pero el cambio fue mínimo. Se concluyo que este error es
debido a la ubicación de los servomotores en el eje ya que están invertidos (es
decir que para que el móvil avance hacia delante un servomotor recibe un ancho
de pulso mayor a 1.5 ms y el otro uno menor). Para corregir este problema se
invirtió la polaridad al motor de continua de uno de los servomotores para que el
102
móvil avance hacia delante con un ancho de pulso en ambos servomotores mayor
a 1.5 ms. Recordemos que para un ancho de pulso igual a 1.5 ms los
servomotores no se mueven.
Por ultimo a cada servomotor se le cambio el potenciómetro por un trimer para
obtener mayor precisión y también para evitar que se gire accidentalmente uno de
estos.
Una vez fijado los trimers se realizo las mediciones de la prueba obteniendo los
resultados que se muestran en la tabla 10.
103
El signo del ángulo de llegada se tomo como negativo cuando el móvil llega con
una orientación en sentido horario, con respecto a la orientación en la partida.
Con esta prueba se observa una desviación máxima de +/- 3.5 centímetros y una
desviación promedio de 1.91 centímetros para un avance de 80 centímetros.
El ángulo de desviación máximo es de 8 grados y el ángulo de desviación
promedio es de +/- 3 grados con respecto a la orientación en el punto de partida.
5.3.3 Repetibilidad
104
En la prueba el móvil se debe desplazar desde la coordenada (0,120.7cm), hasta
la coordenada (85.35cm,0) siguiendo la trayectoria descrita. La ubicación de los
puntos de llegada se representa en coordenadas polares definiendo el origen
como la coordenada de llegada. Estas medidas se observan en la tabla 11.
1 5.8 70 -1
2 2.6 170 0
3 3.1 72 0
4 4.5 47 -1
5 6.9 215 +4
6 1.5 60 +2
7 3.5 43 0
8 9.5 40 -4
9 3.3 38 +1
10 4.4 209 +3
11 1.7 21 +1
12 8.7 33 -3
13 4.3 228 +2
14 5.2 217 +2
15 6.5 38 -2
16 2.5 233 +1
105
Figura 81. Dispersión de los datos en la prueba de repetibilidad.
106
5.4 PROGRAMAS ELABORADOS
107
Figura 83. Interfaz off-line que lee los valores de los obstáculos fijos dentro de la
pista usando cámara.
La captura de los datos se hace mediante visión reconociendo el color azul para
los obstáculos fijos y el amarillo para el obstáculo móvil y el carro que realiza el
planeamiento.
108
5.4.2 Algoritmo genético
El algoritmo genético fue implementado en VISUAL C#.NET. La interfaz se puede
apreciar en la figura 80, aquí se debe ingresar el peso mínimo, el número de
individuos, punto inicial en x, punto inicial en y, y las generaciones.
109
Figura 84. Interfaz gráfica programa de planeación de trayectorias usando
algoritmos genéticos.
110
Figura 86. Ejemplo de trayectoria al ejecutar Freyja.
Este algoritmo genético ejecuta trayectorias que van de un punto inicial obtenido
de la interfaz a un punto de llegada predefinido evitando los obstáculos y
considerando zonas de riesgo alrededor de cada obstáculo. Las trayectorias
generadas siempre son diferentes dada la aleatoriedad de la creación de la
población inicial, lo cual conduce a obtener caminos válidos en mayor o menor
tiempo.
111
Figura 87. Sistemas de referencia
a X b
Y
Y X
112
6. OBSERVACIONES Y CONCLUSIONES
El resultado final del proyecto es una aplicación en Microsoft Visual C++ 6.0, una
aplicación en Visual C#.NET y una aplicación en Matlab, con las cuales se puede
realizar la localización de los objetos de interés en una escena de condiciones
controladas. Como resultado se obtiene la posición para objetos móviles y la
posición para obstáculos, generándose trayectorias libre de colisiones con
algoritmos genéticos y campos de potencial.
113
extracción del fondo y la diferencia de dos imágenes, el algoritmo basado en
gradientes combina información temporal y espacial lo cual solucionó los
inconvenientes de ruido en la detección de los objetos en movimiento cuando se
encuentran en la escena elementos que no son de interés en la detección.
Debido a que se trabajó con imágenes de dimensiones 640x480 píxeles sin algún
tipo de compresión, la mayoría de las operaciones entre imágenes fueron bastante
básicas como operaciones lógicas, sumas, restas y umbralizaciones, con el fin de
no consumir demasiado tiempo en procesamiento. Esto se evidenció en la prueba
del tiempo de latencia, donde para los tres algoritmos implementados el tiempo de
procesamiento es inferior a 1 segundo.
114
Las pruebas realizadas a la aplicación de visión desarrollada arrojaron resultados
con un error de posición y de orientación inferiores a 3 cm y 2º respectivamente.
Esto se debe a las aberraciones del lente usado. Lo anterior evidencia la
confiabilidad en la información de localización obtenida con los tres algoritmos y la
utilidad del proceso de calibración para corregir las distorsiones de la cámara
utilizada en el proyecto.
115
Obtener buenos datos del algoritmo de visión depende en gran medida de realizar
una buena calibración.
116
Es posible hacer que cada elemento de la matriz dentro del programa de campos
de potencial represente un área dentro de la pista, así como también para el caso
de terrenos pequeños hacer que cada coordenada (x,y) corresponda a un
elemento de la matriz.
117
7. RECOMENDACIONES PARA TRABAJOS FUTUROS
118
8. REFERENCIAS BIBLIOGRAFICAS
[1]. BALLARD, Danna y BROWN, C. Computer Vision [on line]. New Jersey:
Prentice Hall, 1982 [citado en mayo de 2004]. disponible en
<http://www.cs.rochester.edu/u/dana/>
[3]. DE JALON, J. D et al. Aprenda C++ Como Si Estuviera En Primero [on line].
España: Universidad Superior de Ingenieros Industriales de San Sebastián y
Universidad de Navarra, 1998[citado en mayo de 2004] disponible en
<http://www.abcdatos.com/tutoriales/tutorial/l2525.html.>
119
[8]. KUZINA, T. Y. Investigación e implementación de los algoritmos del campo de
visión dinámica por computadora [on line]. México: Universidad de Las Américas
Departamento de ingeniería en sistemas computacionales, 2000 [ citado en mayo
de 2004]. Disponible en
<http://140.148.3.250/u_dl_a/servlet/mx.udlap.ict.tales.html.Block?Thesis=42&Typ
e=T>
[10]. MATROX IMAGING LIBRARY (MIL). User Guide. Versión 5.1. 1998. Guía en
formato digital.
[13]. PEREGRINA, Darío. Seguimiento de objetos por medio de visión activa [on
line]. México: Instituto Nacional de Astrofísica, Óptica y Electrónica, 2002[citado en
junio de 2004]. Disponible en < http://ccc.inaoep.mx/~labvision/tesis.htm>
[14]. RUSS John. The Image Processing Handbook. Boca Raton, FL. CRC
PRESS, IEEE PRESS. 2002.
120
[15]. THE IMAGING SOURCE DFG / COMPRESS. Users Manual. Versión 1.1 US
Edition, 2000. Guía en formato digital.
[16] COOPERATIVE STRATEGY USING DYNAMIC ROLE ASSIGNMENT
AND POTENTIAL FIELDS PATH PLANNING. Paul A. Vallejos, Javier Ruiz-del-
Solar, Alan Duvost. Proceedings of the 1st IEEE Latin American Robotics
Symposium – LARS 2004,Mexico city, Mexico. October 28 – 29, 2004.
[21] Kazuo Sugihara and John Smith. “GENETIC ALGORITHMS FOR ADAPTIVE
PLANNING OF PATH AND TRAJECTORY OF A MOBILE ROBOT IN 2D
TERRAINS”. 1999.
121
[23] Koza, John R. "GENETIC PROGRAMMING. ON THE PROGRAMMING OF
COMPUTERS BY MEANS OF NATURAL SELECTION",The MIT Press, 1992, 819
p.
122
ANEXO A
CONSTRUCCIÓN DEL ROBOT MÓVIL
Para el desarrollo del proyecto, se trabajó con unos kits de robotica móvil de la
compañía Linxmotion. Estos kits vienen de fabrica por piezas para ensamblar, por
lo que fue necesario realizar el ensamble y algunas modificaciones, las cuales se
comentarán a lo largo de este capítulo.
123
torque, necesario para la tracción del móvil sobre la pista de madera. En la figura
A.2 se muestran las partes que componen al servomotor.
Figura A.2 Componentes del servomotor.
Tomada de superrobotica.com
124
Figura A.3 Detalles del tope a cortar.
Una vez retirado el tope se debe desacoplar el potenciómetro del eje principal.
Existen dos maneras de efectuar este procedimiento. La primera consiste en
reemplazar el potenciómetro por otro de igual valor pero que carezca de eje. La
otra opción consiste en dejar el potenciómetro original por fuera de la caja
conservando sus conexiones. De esta manera es posible fijar la posición neutral
enviando el pulso de dicha posición y variando el potenciómetro hasta que el
servomotor deje de girar.
Una vez terminada la modificación de los servomotores que van en las llantas se
procede a realizar el acople al chasis. Las placas están ubicadas paralelamente
una sobre la otra, dando soporte a los motores que están ajustados a una lamina
perpendicular a ellas.
Al rotor de los servomotores esta ajustada una rueda de neopreno indicada para
el uso en robots. Esta rueda se acopla directamente sobre el plato del servomotor
por medio de un adhesivo de doble cara y se atornilla al rotor del servomotor,
proporcionando una gran tracción gracias a que esta realizada con neopreno puro.
Además, de tracción, esta rueda ofrece un movimiento suave y silencioso gracias
125
al efecto de almohadilla que amortigua la irregularidades. Las dimensiones de la
rueda son de 76 x 19 mm. En la figura A.4 se muestra la rueda por su cara interior
y exterior, en la grafica A y en la grafica B podemos observar el rotor del servo.
El chasis posee una rueda giratoria comúnmente llamada rueda loca, la cual es
de goma y permite al móvil realizar giros de forma suave y elegante, dependiendo
de la tracción dada por las otras dos ruedas.
La rueda se atornilla al chasis por medio de un soporte y tiene anillos de fijación
que permiten ajustar la altura de trabajo deseada, en este caso, mantener el
chasis horizontalmente. En la figura A.5 se puede observar la rueda giratoria con
los elementos que la componen.
126
Figura A.5 Rueda giratoria y su ubicación en el chasis.
127
Figura A.6 Móvil completo
128
A.2. MODULO DE ULTRASONIDO
129
Para su funcionamiento se debe excitar el emisor con una señal adecuada en
amplitud y frecuencia de tal modo que este produzca una señal ultrasónica que
será enviada al medio externo.
Este modulo contiene toda la electrónica encargada de realizar el proceso de
emisión, recepción y medición. Requiere cuatro conexiones para su
funcionamiento, dos de ellas son la alimentación del circuito, (0 Volt y +5 Volt dc) y
las dos restantes son las conexiones de las señales. El esquema se observa en la
figura A.8.
130
Figura A.9 Diagrama de Tiempos del SRF04
131
Figura A.10 Rango efectivo del SRF04.
Tomada de SupeRobotica.com
132
ANEXO B
133
B.1.1 CARACTERÍSTICAS
134
Compatibilidad con PCI 2.1.
Un slot PCI libre de 32 bit.
Por lo menos 32 MB de RAM (recomendado 64 MB para Windows NT)-
Windows NT 4.0.
135
seguramente descargada. La instalación de la DFG/Compress es muy fácil, se
debe seguir los pasos mostrados a continuación:
136
Resolución de color: La adquisición y compresión de video se hace en un
formato de verdadero color YUC 4:2:2. La visualización en la VGA puede ser en
diferentes modos: 15 bit, 16 bit (alto color), verdadero color de 24 bit (16.7 millones
de colores) o en modo de verdadero color de 32 bit.
Conversión A/D: PAL: 1/50 s (20 ms) por campo, NTSC: 1/60 s (16.7 ms) por
campo.
Resolución geométrica: PAL: 768 x 576 píxel en 2 campos, NTSC: 640 x 480
píxel en 2 campos.
Si se desea adquirir datos de video con solo una cámara, no es necesario usar el
conector DSUB de 44 pines. En este caso la DFG/Compress tiene un conector
adicional BNC. Los datos desde la cámara pueden ser transferidos en tiempo real
(25 imágenes/seg en PAL/SECAM y 30 imágenes/seg en NTSC), por medio de la
memoria FIFO, directamente al disco duro del PC. En éste modo de operación, el
multiplexor interno no se activará.
137
de las entradas de la tarjeta, exactamente la misma señal está disponible en sus
salidas. En otras palabras, usando la tarjeta de este modo no se deteriora la
señal de video en lo absoluto. Usando la salida de video 1, una de las cuatro
entradas de video puede ser colocada directamente a la salida, desviándose así
del proceso de digitalización de la tarjeta. La salida de la entrada seleccionada de
video no tiene influencia en ninguna grabación de video, la cual puede estar
corriendo al mismo tiempo. En la salida de video 2 se fija el video corriente
proveniente de una cámara o la señal de video sin comprimir, dependiendo de
cual modo se encuentra seleccionado en la tarjeta.
138
imagen (memorias). Antes de esto puede elegirse un lugar de almacenamiento, la
memoria de imagen debe ser primero asignada con el driver e insertada dentro de
la lista de la secuencia. La preparación de la memoria de imagen toma lugar con el
driver, cuando se ha localizado físicamente y de forma lineal (una al lado de la
otra) las posiciones de memoria para la secuencia que se almacena. Note que
una memoria con estas características puede ser definida solamente cuando su
sistema esta iniciando. Solo una limitada parte de la memoria principal esta
disponible para la asignación de la memoria de imagen y no puede ser modificada
en su tamaño mientras el sistema se encuentra en funcionamiento.
Aviso Importante:
Para instalar la tarjeta DFG/Compress bajo Windows NT, los derechos del
administrador se necesitan. En el caso de instalar la tarjeta por primera vez o
realizar un cambio de tarjeta en su equipo.
Numero de serial:
139
Instalación por primera vez:
Windows NT 4.0:
icbvcd32.sys a \<windir>\system32\drivers
icbmem32.sys a \<windir>\system32\drivers
piranha.dll a \<windir>\system32
icbhook.dll a \<windir>\system32
piranha.ini a \<windir>
icblogic.rbf a \<windir>
Windows 9X:
140
disquetes. El driver de la DFG/Compress se encuentra en este disco, entonces
simplemente siga las instrucciones en pantalla y cundo pregunte que hacer,
reinicie su sistema, esto es necesario, ya que el driver será reconocido solamente
cuando su sistema se encuentre iniciando. Cuando su sistema esta corriendo de
nuevo, inserte el disco y ejecute el programa SETUP y de nuevo siga las
instrucciones en pantalla. Durante la instalación los siguientes archivos son
copiados en su PC:
icbvcd32.vxd a \<windir>\system
piranha.dll a \<windir>\system
icbhook.dll a \<windir>\system
piranha.ini a \<windir>
icblogic.rbf a \<windir>
141
debido a la alta compatibilidad que tiene con todas las tarjetas VGA y directo
acceso de los datos de imagen a la memoria principal. Las funciones de cubierta
(mezclado en una imagen de texto y gráficos) tienen que ser programadas por el
usuario. Como Windows toma el control del despliegue de las imágenes, la
imagen en vivo puede ser parcial o totalmente cubierta por muchas otras
ventanas y cajas de dialogo.
DirectDraw Primary Surface Mode:
En este modo los datos de la imagen son escritos en el área visible de la tarjeta
VGA. Brinda el máximo desempeño de 25 imágenes por segundo con la
DFG/Compress. En este caso no es posible usar cubiertas (mezclado en una
imagen de texto y gráficos) debido a que los datos de cubierta deben ser
constantemente sobrescritos en el siguiente frame lo cual nunca permitiría su
visualización. En contraste con muchas otras tarjetas de compresión, en la
DFG/Compress es posible posicionar ventanas, cajas de dialogo y otras
aplicaciones de Windows sobre la ventana que contiene la imagen en vivo de la
DFG/Compress sin perturbarla en lo absoluto, la tarjeta de compresión puede
llevar a cabo esto, no desplegando automáticamente la imagen en vivo bajo las
ventanas que la cubren y manteniendo una alta frecuencia de actualización.
142
de salida, la imagen solo podrá ser mostrada en las partes donde el tipo de color
elegido sea usado, naturalmente si toda la ventana esta llena solamente del tipo
de color elegido, la imagen se visualizara completamente. Ahora, textos y gráficos
usados en la cubierta que no usen el tipo de color elegido permanecerán
disponibles, esto se conoce como cubierta no-destructiva. El mezclado de la
cubierta es realizado por el chip de la VGA y apenas se requieren algunos ciclos
de CPU. Este modo no es soportado por todos los chips VGA y la DFG/Compress
solo soporta modos de 15 y 16 bits en los VGA.
Cada uno de los formatos de color soportado por la tarjeta DFG/Compress usa
diferentes formatos con lo cual se almacenan las imágenes. Como se muestra en
la siguiente tabla:
* Cuando una imagen esta en formato RGB15 o RGB16 los bits superiores al bit
interno 8 son usados en los colores R G y B.
143
A. B.2 CÁMARA DFK 50H13
50H13.
144
ANEXO C
INSTALACIÓN E INTERFASE GRAFICA DE “FENIX”
FENIX es una aplicación software desarrollada en Microsoft Visual C++ 6.0, la cual
tiene como objetivo el análisis dinámico de imágenes en una escena particular.
C.1 INSTALACIÓN
2. Copie la carpeta Fenix con todos sus componentes, en algún lugar del
disco duro del PC.
145
Figura C.1. Ventana principal de FENIX
En la figura C.2 se observan las diferentes opciones del menú principal las cuales
son: archivo, configurar, adquirir, gradiente, correlación, color, ventana y ayuda.
146
C.2.1.1 Archivo
Nuevo: Crea una nueva área (ventana) para desplegar una imagen.
Abrir: Carga una imagen en formato tiff ,desde una archivo existente, por medio
del dialogo abrir de Windows (figura C.4).
147
C.2.1.2 Ítem Configurar
148
Video: permite manipular por medio de una ventana de dialogo (figura C.7) en la
tarjeta piranha las propiedades de video como contraste, brillo, selección del canal
de video, estándar de video etc.
149
Figura C.9. Dialogo de entrada para los parámetros de calibración
Modelo de color: Con este ítem (figura C.11) se puede seleccionar y configurar el
modelo de color a utilizar. Se tienen las opciones de modelos HLS y xyY
150
Figura C.11. Ítem modelo de color
151
La primera se ubica a la izquierda y contiene la información de los umbrales
utilizados para la segmentación de los objetos móviles y de los obstáculos. Para
las componentes x e y del modelo xyY se tiene un umbral inferior y un umbral
superior.
La segunda está ubicada a la derecha y contiene información visual del color con
el cual se desea segmentar cada tipo de objetos de la escena. Para esto se tiene
una imagen de fondo del modelo de color xyY y sobre ésta se dibujan dos
rectángulos. Uno de ellos encierra el color deseado para los objetos móviles y el
otro encierra el color para los obstáculos.
152
Figura C.14. Selección de la unidad de medida para la posición de los objetos de Interés
Este ítem tiene tres opciones: adquirir video, capturar un frame y guardar un frame
desplegado, como se muestra a continuación:
153
Figura C.16. Ítem adquirir
Video: Esta opción permite adquirir video en una ventana de dialogo como se
muestra en la figura C.17.
Guardar: guarda una imagen en formato tiff, por medio de la ventana “guardar”
de windows (figura C.19).
154
Figura C.18. Frame capturado y desplegado
Estos ítems son los encargados del inicio de ejecución de los tres principales
algoritmos implementados por medio de la opción calcular (figura C.20). Cabe
resaltar que la aplicación solo deja ejecutar solo un algoritmo a la vez.
155
Figura C.20. Gradiente, correlación y color
a b
156
C.2.2 BARRA DE HERRAMIENTAS
Esta barra está compuesta de iconos con los cuales tienen acceso directo a
algunas de las funciones descritas anteriormente (figura C.23).
157
C.2.3 BARRA DE ESTADO
158
Zona 1. Información General: Muestra la información del algoritmo utilizado,
cantidad de objetos de interés en la escena y unidad de medida para la posición.
Zona 2. Pista: área en la cual se simula la escena real. Los objetos de interés en
la escena se simbolizan por medio de marcas.
159