Post on 29-Sep-2018
INSTITUTO TECNOLÓGICO Y DE ESTUDIOS SUPERIORES DE MONTERREY
Desarrollo de un Sistema de Visión para la Localización y Navegación de Robots Humanoides
TESIS PARA OPTAR POR EL GRADO DE MAESTRO EN CIENCIAS DE LA INGENIERÍA
PRESENTA
ERICK ROGELIO CRUZ HERNÁNDEZ
Asesor:
Comité de Tesis:
Jurado:
DR. ALEJANDRO ACEVES LÓPEZ Presidente Secretario Vocal
Atizapán de Zaragoza, Edo. De Méx., México, abril de 2011
2
RESUMEN
El presente trabajo muestra el desarrollo y los resultados obtenidos de un sistema de visión
artificial que proporciona los elementos necesarios para que los robots humanoides del
Tecnológico de Monterrey, Campus Estado de México sean capaces de localizarse y
desplazarse a diferentes lugares dentro de un ambiente estructurado.
Desde 2008 el Tecnológico ha participado en la competencia internacional de RoboCup
categoría Humanoid League – Kid Size. En esta categoría los robots son diseñados para jugar
partidos de futbol soccer de forma autónoma bajo el reglamento del organismo de RoboCup.
El principal sensor que utilizan los robots para adquirir información del entorno es un
sistema de visión basado en una cámara que captura imágenes del ambiente.
En la investigación presentada se desarrolla un sistema de visión capaz de adquirir y
procesar varias imágenes por segundo, de manera que se asegura que el sistema robótico
cuente con información oportuna en un ambiente dinámico como lo es un partido de futbol.
A fin de poder reconocer los diferentes elementos del terreno de juego, se realiza una
segmentación (clasificación) de los pixeles encontrados en cada imagen. Debido a que los
objetos de interés (porterías, marcas de referencia, pelota) tienen por reglamento colores
previamente especificados, la segmentación de pixeles se hace en base al color. Se propone
una técnica de segmentación por color basada en la agrupación de regiones elipsoidales
rotadas en el espacio. El objetivo es encontrar el elipsoide que envuelva la distribución de las
diferentes tonalidades para un color dado de un ambiente real. Los resultados de las pruebas
realizadas bajo esta técnica también se presentan. Adicionalmente se diseñó una herramienta
que consiste en una interfaz gráfica con la que el usuario puede encontrar de manera
semiautomática los parámetros que definen al elipsoide característico utilizando para esto
imágenes en línea obtenidas de la cámara del propio robot.
Enseguida se muestra el algoritmo propuesto para la identificación y diferenciación entre los
objetos de la cancha (porterías y marcas de referencia). El correcto reconocimiento de estos
elementos resulta de interés ya que con esto, los robots pueden tomar decisiones de alto nivel
útiles para la estrategia de juego.
Utilizando la información sobre los objetos encontrados en la cancha, se plantea un algoritmo
de localización basado en un método no-probabilístico. Este método utiliza un par de objetos
de posición fija y conocida para realizar una triangulación entre estos objetos y el robot. Con
esto se define la posición del robot en la cancha. Adicionalmente con la información sobre el
ángulo que guarda cada uno de los objetos con respecto al robot, es posible también
3
determinar la orientación del mismo, con lo que se consigue una solución completa de
localización sobre el plano de juego.
Finalmente, se presenta una aplicación que utiliza la información sobre la localización del
robot, se trata de una rutina de auto-posicionamiento implementada en el robot que lo
conduce desde una localización inicial hasta una posición y orientación deseadas. La
metodología de navegación propuesta es iterativa a fin de reducir el error de posicionamiento
final. Los resultados de las pruebas llevadas a cabo tanto para los algoritmos de localización
como para las rutinas de navegación se muestran también en este documento.
Los robots humanoides del campus son ahora capaces de auto-localizarse y navegar hasta
una determinada ubicación en un tiempo menor a los dos minutos, realizando en la mayoría
de las ocasiones de tres a cuatro iteraciones de la rutina de navegación propuesta.
4
CONTENIDO
1 Introducción ...................................................................................................................................................... 11
1.1 Motivación ................................................................................................................................................ 12
1.2 Antecedentes de Sistemas de visión en robots Bogobots ..................................................... 13
1.3 Objetivos ................................................................................................................................................... 15
1.4 Características de los robots y del medio. ................................................................................... 17
1.4.1 Características del Robot Bogobot 1 (2009) .................................................................... 19
1.4.2 Características del Robot Bogobot 2 (2010) .................................................................... 20
1.5 Planteamiento de Solución ................................................................................................................ 21
1.6 Metodología ............................................................................................................................................. 23
1.7 Estructura del manuscrito ................................................................................................................. 24
2 Marco Teórico ................................................................................................................................................... 26
2.1 Imágenes Digitales ................................................................................................................................ 26
2.2 Adquisición de la imagen ................................................................................................................... 29
2.3 Espacios de Color ................................................................................................................................... 31
2.3.1 Espacio RGB ................................................................................................................................... 31
2.3.2 Espacio YUV ................................................................................................................................... 32
2.3.3 Espacio HSI ..................................................................................................................................... 33
2.4 Segmentación de la Imagen ............................................................................................................... 35
2.5 Identificación de Patrones y objetos en el entorno ................................................................. 38
2.6 Localización y Navegación ................................................................................................................. 39
3 Segmentación de Imágenes en Robot ..................................................................................................... 42
3.1 Análisis de distribución de colores en el espacio RGB ........................................................... 42
3.2 Elipsoides de segmentación .............................................................................................................. 44
3.2.1 Determinación de parámetros de segmentación por elipsoides.............................. 51
3.2.2 Procedimiento para la segmentación on-line por medio de elipsoides ................ 55
3.3 Optimización de búsqueda ................................................................................................................ 57
3.4 Herramienta de segmentación en línea semi-automática .................................................... 60
3.4.1 Retroalimentación del segmentador ................................................................................... 63
3.5 Implementación en robots humanoides ...................................................................................... 65
3.6 Resultados en segmentación de imágenes .................................................................................. 66
4 Identificación de Patrones ........................................................................................................................... 69
4.1 Análisis de características de objetos ........................................................................................... 69
4.1.1 Configuración de 2009............................................................................................................... 70
5
4.1.2 Configuración de 2010 y 2011 ............................................................................................... 73
4.2 Obtención del ángulo entre objetos y el frente del robot ..................................................... 83
4.3 Determinación de la distancia de objetos con respecto a robot ........................................ 86
4.3.1 Estimación de distancia mediante triangulación ............................................................ 86
4.3.2 Estimación de distancia mediante análisis de área ....................................................... 88
4.4 Aproximación de área para porterías incompletas ................................................................. 90
4.5 Implementación en el robot .............................................................................................................. 92
4.6 Resultados en identificación de Objetos ...................................................................................... 94
5 Localización y Navegación ........................................................................................................................... 98
5.1 Posicionamiento por triangulación. ............................................................................................... 98
5.1.1 Triangulación por dos ángulos - una orientación ....................................................... 100
5.1.2 Triangulación por teorema del coseno ............................................................................ 102
5.2 Estimación de Orientación .............................................................................................................. 106
5.3 Implementación de sistema de localización en Robot Bogobot ...................................... 108
5.4 Navegación ............................................................................................................................................ 110
5.4.1 Descripción de la máquina de caminado en robots Bogobots................................ 111
5.4.2 Descripción del algoritmo de navegación ....................................................................... 112
5.5 Interfaz de visualización .................................................................................................................. 116
5.6 Resultados de localización y navegación .................................................................................. 118
6 Conclusiones .................................................................................................................................................. 122
A. Imágenes muestra para identificación de objetos 2009 .............................................................. 125
B. Imágenes muestra para identificación de objetos 2010 .............................................................. 127
C. Manual de conocimientos y operación básica para robot Bogobot 2 (parte 1) ................. 129
C.1 Configuración general de hardware del robot ....................................................................... 129
C.2 Configuración general de software ............................................................................................. 130
C.3 Acciones previas al encendido del robot. ................................................................................. 130
C.4 Encendido y acceso al sistema ...................................................................................................... 131
C.4.1 Acceso mediante monitor, teclado y mouse .................................................................. 132
C.4.2 Acceso por medio de Ethernet ............................................................................................ 132
C.4.3 Acceso por medio de WiFi ..................................................................................................... 133
C.5 Cargar y ejecutar programas ......................................................................................................... 134
C.6 Datos de acceso a robots Bogobots ............................................................................................. 135
D. Manual de Uso para herramienta de segmentación On-Line ..................................................... 136
D.1 Descripción general de la herramienta ..................................................................................... 136
D.2 Configuración de la Interfaz ........................................................................................................... 137
D.2.1 Configuración previa con opción WebCam ..................................................................... 137
6
D.2.2 Configuración previa con opción CMUCam .................................................................... 137
D.2.3 Configuración previa con opción Imágenes ................................................................... 138
D.3 Uso básico de la interfaz .................................................................................................................. 138
D.4 Uso avanzado de la Interfaz ........................................................................................................... 140
D.4.1 Especificaciones con CMUCam ............................................................................................ 143
D.5 Segmentador embarcado en el sistema robótico Bogobot ................................................ 143
E. Algoritmo general de localización (posición y orientación)....................................................... 144
Referencias ............................................................................................................................................................... 148
7
LISTA DE FIGURAS
Figura 1.1 Cancha de juego para robots humanoides ................................................................................ 12
Figura 1.2 Segmentación para color amarillo en RoboCup 2008 ......................................................... 14
Figura 1.3 Segmentación de color naranja en RoboCup 2008 ............................................................... 14
Figura 1.4 Robots Participantes en RoboCup 2008 .................................................................................... 15
Figura 1.5 Referencia Azul ......................................................................................................................... 18
Figura 1.6 Referencia Amarilla ......................................................................................................................... 18
Figura 1.7 Bogobot 1 con cmucam3 .................................................................................................................. 20
Figura 1.8 Roboard RB-100 .................................................................................................................................. 20
Figura 2.1 Imagen de Alta Resolución .............................................................................................................. 27
Figura 2.2 Imagen de Baja Resolución ............................................................................................................. 27
Figura 2.3 Muestra entre diferentes niveles de cuantización 8, 4, 2 y 1 bit ..................................... 28
Figura 2.4 Espacio de Color RGB ........................................................................................................................ 31
Figura 2.5 Identificación de Colores en Imagen ........................................................................................... 32
Figura 2.6 Espacio de Color YUV ........................................................................................................................ 33
Figura 2.7 Espacio de Color HSI .......................................................................................................................... 34
Figura 2.8 Segmentación de Imágenes ............................................................................................................. 37
Figura 2.9 Localización por triangulación ...................................................................................................... 40
Figura 3.1 Análisis de la distribución del color en el espacio RGB (para color amarillo, verde y
azul) .......................................................................................................................................................... 43
Figura 3.2 Segmentación por umbrales simples .......................................................................................... 44
Figura 3.3 Comparación entre distribución del color en HSI y en RGB .............................................. 45
Figura 3.4 (Superior) Elipsoide sin Rotación para segmentación del color amarillo, (Inferior)
Elipsoide con rotación para segmentación del color amarillo ......................................... 47
Figura 3.5 Izquierda: elipsoide sin Rotación, Central: rotacion en eje Z, Derecha: Rotación en
eje X ........................................................................................................................................................... 49
Figura 3.6 Elipsoide Rotado en el espacio y elipsoide sin rotación ..................................................... 50
Figura 3.7 Línea de tendencia para componentes rojo (r) y verde (G) . ........................................... 52
Figura 3.8 Segmentación por Elipsoides ......................................................................................................... 56
Figura 3.9 Resultados de Segmentación Elipsoides vs. Umbrales Simples ....................................... 56
Figura 3.10 Izq. – Imagen con colores amarillo y azul, central – región de color amarillo, der. –
región de color azul. ........................................................................................................................... 57
Figura 3.11 Filtro con umbrales simples y Posterior segmentación con elipsoides ..................... 59
8
Figura 3.12 Ejemplo de imágnes segmentadas durante la comparación de la tabla 3.1 ............. 60
Figura 3.13 Vista general de la interfaz de segmentación semiautomática ..................................... 61
Figura 3.14 Detalle de Imágen en línea y representación tridimensional ........................................ 63
Figura 3.15 Segmentación de varios colores Y herramientas de configuración ............................. 64
Figura 3.16 Segmentación de imágenes mediante regiones elipsoidales (colores verde y
azul) ....................................................................................................................................................... 67
Figura 4.1 a) Portería azul 2009, b) Porteria amarilla 2009, C) Marca de referencia lateral
amarilla 2009, d) Marca de referencia lateral azul 2009 ......................................................................... 70
Figura 4.2 Ubicaciones seleccionadas para el análisis de objetos ........................................................ 71
Figura 4.3 A) Portería amarilla 2010, B) Portería azul 2010, C) Marca de referencia lateral
amarilla 2010, D) Marca de referencia lateral azul 2010 ................................................ 74
Figura 4.4 Distancia entre centros de masa para los colores observados ........................................ 78
Figura 4.5 Separación entre centros de masa para identificación de marcas laterales ............... 81
Figura 4.6 Rango de giro en eje Z para la cabeza del robot (vista superior) .................................... 83
Figura 4.7 Comportamiento en los movimientos de un servomotor estándar ............................... 84
Figura 4.8 Ángulo de un objeto con respecto al centro de una imagen .............................................. 85
Figura 4.9 Estimación de ángulo de objeto con respecto a frente de robot ..................................... 85
Figura 4.10 Estimación de distancia a objeto en suelo ............................................................................. 86
Figura 4.11 Convención utilizada para el ángulo alfa ................................................................................ 87
Figura 4.12 Estimación de ángulo beta ............................................................................................................ 88
Figura 4.13 Percepción de tamaño de un objeto a diferentes distancias .......................................... 88
Figura 4.14 Centro de masa Para porteria completa e incompleta en una imagen ....................... 90
Figura 4.15 Imágenes muestra de porterías incompletas ....................................................................... 91
Figura 4.16 Interfaz de Identificación .............................................................................................................. 94
Figura 5.1 Sistema coordenado utilizado en el trabajo de tesis ............................................................ 99
Figura 5.2 Ajuste de ángulo terrestre a sistema coordenado del campo ........................................ 100
Figura 5.3 Triangulación por dos ángulos - una orientación ............................................................... 101
Figura 5.4 Nomenclatura en ecuación de Teorema del coseno .......................................................... 103
Figura 5.5 Triangulación por teorema de cosenos................................................................................... 104
Figura 5.6 Posicionamiento final de robot .................................................................................................. 106
Figura 5.7 Sistema de orientación .................................................................................................................. 107
Figura 5.8 Barrido en rotación de la cabeza alrededor del eje Z ........................................................ 109
Figura 5.9 Diagrama de sistema de caminado ........................................................................................... 111
Figura 5.10 Rotación de Robot hacia destino final .................................................................................. 114
Figura 5.11 Llegada de robot a destino en tres iteraciones ................................................................. 115
9
Figura 5.12 Comunicación remota Robot - Computadora .................................................................... 117
Figura 5.13 Interfaz de visualización para localización - navegación .............................................. 117
Figura 5.14 Localización Real Vs. Localización estimada ...................................................................... 120
Figura 6.1 Visualización 3d sobre la localización del robot en una estación remota ................ 123
Figura C.1 Tarjeta principal Roboard y periféricos utilizados en Bogobot .................................... 129
Figura C.2 Puertos para periféricos instalados en el robot .................................................................. 130
Figura C.3 Interruptor Principal de encendido ......................................................................................... 131
Figura C.4 Acceso al escritorio remoto ......................................................................................................... 132
Figura C.5 Acceso al sistema desde el escritorio remoto ...................................................................... 133
Figura C.6 Programa principal de juego ....................................................................................................... 134
Figura D.1 Vista general de interfaz gráfica de segmentación ............................................................ 136
Figura D.2 Detalle de herramienta de segmentacion 1 .......................................................................... 137
Figura D.3 Detalle de herramienta de segmentación 2 .......................................................................... 138
Figura D.4 Detalle de herramienta de segmentación 3 .......................................................................... 139
Figura D.5 Detalle de herramienta de segmentación 4 .......................................................................... 140
Figura D.6 Detalle de herramienta de segmentacion 5 .......................................................................... 141
Figura D.7 Detalle de herramienta de segmentación 6 .......................................................................... 142
Figura D.8 Segmentación elipsoidal y pre-filtro con prisma vistos en gráfico tridimensional de
segmentador ...................................................................................................................................... 142
10
LISTA DE TABLAS
Tabla 1.1 Especificaciones de Bogobot 1 .................................................................................................. 19
Tabla 1.2 Especificaciones de Bogobot 2 .................................................................................................. 21
Tabla 2.1 conversión entre espacio RGB y YUV [39] ........................................................................... 32
Tabla 3.1 Comparación entre métodos de segmentación simultánea de los colores azul,
amarillo, verde y Blanco............................................................................................................. 59
Tabla 4.1 Relación de pixeles para porterías en 2009 ........................................................................ 72
Tabla 4.2 Relación de pixeles para Referencias LateraLes en 2009 .............................................. 73
Tabla 4.3 Características sobre Marca de Referencia Lateral Amarilla ....................................... 75
Tabla 4.4 Características sobre Marca de Referencia Lateral Azul ................................................ 76
Tabla 4.5 Características sobre Portería Amarilla ................................................................................ 80
Tabla 4.6 Características sobre Portería Azul ......................................................................................... 82
Tabla 4.7 Relación entre distancia real y área observada en pixeles ............................................ 90
Tabla 4.8 Análisis para búsqueda de área en porterías incompletas ............................................ 92
Tabla 4.9 Resultados en estimación de distancia a objetos .............................................................. 95
Tabla 4.10 Resultados en la estimación de distancias para porterías incompletas ................ 96
Tabla 5.1 Error de posición en pruebas de localización .................................................................. 118
Tabla 5.2 Error de orientación en pruebas de localización ............................................................ 119
Tabla B.1 Datos de acceso a robots .......................................................................................................... 135
11
1 INTRODUCCIÓN
RoboCup, organización internacional que promueve la investigación en robótica, se ha puesto
como principal objetivo para el año 2050 que la humanidad sea capaz de desarrollar un
equipo de robots humanoides con habilidades suficientes para derrotar a la mejor selección
del mundo en futbol soccer [21]. Esta idea aunque parece un poco simple, conlleva un
sinnúmero de retos científicos tecnológicos e ingenieriles que se deben tomar para poder
llevar a cabo esta ambiciosa propuesta.
Es por ello que la organización de RoboCup organiza año con año una competencia mundial
dividida en varias categorías en donde los mejores proyectos de investigación tienen la
oportunidad de participar a fin de demostrar sus avances conseguidos. Cabe mencionar que
las reglas de cada categoría cambian conforme pasan los años, imponiendo nuevos retos y
tratando de que el ambiente y circunstancias de juego se parezcan cada vez más a las reales.
Debido a esto es necesaria una constante investigación en varias áreas del conocimiento tales
como materiales, componentes electrónicos, unidades de procesamiento, algoritmos de
inteligencia artificial y toma de decisiones, estrategias de trabajo colaborativo, investigación
en movimientos y equilibrio dinámico de robots bípedos, algoritmos de visión artificial,
reconocimiento de imágenes, localización, navegación, entre otros temas.
Por otro lado, actualmente, el proyecto de robots humanoides del Campus Estado de México
está enfocado al diseño de robots que cumplan con las características y lineamientos de la
categoría Humanoid Kid-Size de RoboCup, la cual consiste en que equipos de tres jugadores
robóticos bípedos de estructura humanoide totalmente autónomos se enfrenten en partidos
de fútbol soccer bajo ciertas condiciones estipuladas en el reglamento de la categoría.
El sensor principal con el que cuentan los robots humanoides para percibir el entorno es una
cámara de video que captura imágenes, mismas que deben ser procesadas o analizadas para
deducir las circunstancias del ambiente como identificación de porterías, jugadores
contrarios, pelota, entre otros objetos; con ello tener la capacidad de deducir la ubicación del
jugador, y así poder tomar decisiones en el juego. Es importante señalar que los elementos
del campo de juego, como las porterías, el césped, las líneas y las marcas de referencia, están
identificados por colores diferentes, como se puede observar en la Figura 1.1.
Debido a la dinámica del juego, es importante que los robots tengan información actualizada
con respecto a su entorno, y es por ello que se busca además de poder hacer una buena
segmentación de colores, lograr que los algoritmos se procesen lo suficientemente rápido
12
para poder reaccionar oportunamente a cambios repentinos en las condiciones del entorno,
como movimientos de la pelota o de otros jugadores.
Con estos antecedentes expuestos, resulta bastante útil poder contar con una herramienta de
visión artificial que sea robusta para su implementación en la plataforma de robots
humanoides ya que el sistema con el que se contaba al inicio de la presente investigación
ofrecía resultados inexactos en el desempeño de los robots como se detallará más adelante.
1.1 MOTIVACIÓN
El principal medio por el cual los robots jugadores de futbol perciben su entorno, es a través
de una cámara de video con la cual se obtienen imágenes que deben ser procesadas y
analizadas. Gracias a estas imágenes, el sistema robótico puede identificar los diferentes
elementos existentes en el terreno de juego, como son la pelota, las porterías, compañeros de
equipo y contrarios, líneas, etc. y esto precisamente es la base para la ejecución de tareas de
más alto nivel como son la identificación del marco rival, el conocimiento de la ubicación del
robot en la cancha, la navegación del robot para llegar a un punto deseado, estrategias de
juego de acuerdo a las circunstancias encontradas, estrategias de juego, etc.
Es por esto que el sistema de visión en un robot jugador de futbol es fundamental para el
buen desempeño del mismo, y, es la base para la correcta realización de comportamientos de
más alto nivel. Un mal funcionamiento de este sistema repercute en diversos módulos del
robot que, aunque sean robustos en su programación, ante la falta de datos confiables en la
entrada, dan como respuesta un desempeño pobre en las acciones generales ejecutadas.
FIGURA 1.1 CANCHA DE JUEGO PARA ROBOTS HUMANOIDES
13
El sistema de visión del robot humanoide resulta entonces de gran interés para el desarrollo
e implementación de algoritmos que se encarguen de recibir, procesar y analizar imágenes
para darle un significado útil a los datos encontrados. La visión artificial es además un campo
que actualmente está creciendo de manera continua, en el que se busca la aplicación práctica
de metodologías para el análisis de datos en imágenes. Es ahora cada vez más común
encontrar aplicaciones en donde se utilicen los recursos de visión. Desde la robótica
académica e industrial hasta aplicaciones domésticas y de seguridad. Sin duda en años
siguientes encontraremos más aplicaciones en diversos sectores ya que al igual que en el ser
humano, la visión es un recurso que facilita de manera sustancial la obtención de información
en el entorno.
1.2 ANTECEDENTES DE SISTEMAS DE VISIÓN EN ROBOTS BOGOBOTS
Para la primera participación del campus en la liga de robots humanoides Kid-Size de
RoboCup en 2008, se utilizaron procesadores independientes para controlar el módulo de
decisión y el módulo de visión. Para este último se optó por usar el sistema embebido
CMUCam3, el cual es una plataforma que integra un pequeño procesador NXP LPC2106 con
una interfaz de programación en código abierto utilizando lenguaje C. Este sistema incorpora
una cámara RGB con una resolución máxima interpolada de 352 X 288. El sistema es capaz
también de controlar hasta cuatro servomotores por ancho de pulso.
En 2008 se utilizó un algoritmo de segmentación basado en umbrales simples sobre el
espacio RGB. Se usó también como herramienta para obtener los parámetros de
segmentación al programa de Adobe PhotoShop®. El proceso para segmentar era el
siguiente: primeramente se capturaban imágenes del entorno de interés y éstas se
almacenaban en la memoria interna de la CMUCam. Posteriormente estas imágenes se
pasaban a una computadora en la cual se visualizaban y se añadían a un proyecto en Adobe
PhotoShop® en donde se agregaban algunas capas de procesamiento a fin de poder
identificar de mejor manera los parámetros de segmentación en la imagen. En la Figura 1.2 se
muestra este trabajo con imágenes tomadas durante la competición de RoboCup 2008. Las
regiones blancas nos indican que dicha región de la imagen se encuentra dentro de los
parámetros especificados del color, en este caso del color amarillo de la portería y marcas de
referencia. De esta forma se debían obtener los parámetros de cada uno de los colores de
interés (azul, amarillo, naranja, verde, etc).
Una vez que se encontraban estos valores, se almacenaban como constantes en el programa
de la CMUCam3 y se pasaba la información al sistema de visión. Finalmente se corroboraba
14
que el robot identificara correctamente los objetos, si se detectaba alguna falla entonces se
volvía a realizar el proceso mencionado para cada color que tuviera parámetros erróneos.
Como se puede adivinar, realizar toda la tarea de segmentación tomaba bastante tiempo (de
20 a 40 minutos) y también cabe considerar que el mismo proceso se debía realizar de
manera independiente para cada uno de los robots ya que los valores entregados para cada
cámara son diferentes.
FIGURA 1.2 SEGMENTACIÓN PARA COLOR AMARILLO EN ROBOCUP 2008
FIGURA 1.3 SEGMENTACIÓN DE COLOR NARANJA EN ROBOCUP 2008
Durante los procesos de configuración de la segmentación frecuentemente se encontraban
situaciones en que las regiones de color segmentadas se empalmaban unas con otras al
segmentar dos o más colores. Este problema era ocasionado por varios factores, entre ellos el
hecho que el sistema de visión de la CMUCam trunca los valores de color en la imagen de 8
bits a un rango de color entre 16 y 240, es decir, que a todo valor que superara estos límites
simplemente se le asignaba el valor de frontera, esto hace que se pierda información y que
colores que en principio son diferenciables se agrupen. Cabe mencionar también que a la
15
imagen obtenida por la cámara sólo es posible ajustarla mediante el cambio de los valores de
brillo y contraste, lo cual limita al pre-procesamiento. Sin embargo, la deficiencia más
significativa en el proceso de visión es el algoritmo de segmentación basado en umbrales
simples, ya que como se verá más adelante, esta metodología agrupa en una misma región a
un espectro amplio de colores que no necesariamente son de nuestro interés, provocando
falsos positivos en la imagen segmentada.
La Figura 1.3 muestra la segmentación de la pelota color naranja durante la competición de
RoboCup 2008, es decir, el mismo ambiente que las imágenes de la Figura 1.2, nuevamente el
color blanco señala los pixeles que se encuentran dentro de la región de segmentación. En
estas imágenes se evidencian los aspectos antes mencionados, las regiones de amarillo y
naranja se traslapan lo que ocasiona que el color naranja se confunda con el amarillo. Resulta
imposible separar las regiones de amarillo y naranja en estas imágenes utilizando una
segmentación basada en el acotamiento por umbrales simples.
1.3 OBJETIVOS
Al momento de empezar con el presente trabajo de investigación, el proyecto de Robots
Humanoides en el Tecnológico de Monterrey, Campus Estado de México había tenido ya su
primera participación en el concurso internacional de RoboCup 2008 (Figura 1.4). Así que se
revisaron los resultados y desempeño mostrado en el evento a fin de encontrar las áreas de
oportunidad en el equipo.
FIGURA 1.4 ROBOTS PARTICIPANTES EN ROBOCUP 2008
16
Se determinó que el sistema de visión en los robots humanoides era un área fundamental
para abordar y realizar investigación. Si bien con los algoritmos creados hasta el momento,
los robots eran capaces de llevar a cabo tareas más complejas, lográndose ubicar dentro de
los 16 mejores equipos de RoboCup en la categoría, se detectaron puntos de mejora, como la
segmentación de color utilizada, la cual era de tipo lineal y presentaba varias deficiencias en
la identificación de colores frente a entornos con ruido o con zonas de color externas muy
semejantes a los colores de interés; también se notó que valía la pena aumentar la resolución
de las imágenes utilizadas, la calidad de la lente, así como mejorar la capacidad de
procesamiento.
Se llegó entonces a formular la siguiente pregunta de investigación:
¿Cómo desarrollar un efectivo sistema de visión artificial para la localización y navegación de
robots humanoides dentro de una cancha oficial de RoboCup Humanoid Kid - Size?
Este cuestionamiento está enfocado al proyecto de robots humanoides del Campus Estado de
México, a sus necesidades y disponibilidad de recursos financieros, tecnológicos y humanos.
Asimismo se seleccionó la pregunta antes expuesta para servir de punto de partida en la
presente investigación y tema principal del proyecto de tesis.
Con ello se desprende el siguiente objetivo principal de investigación:
DESARROLLAR UN SISTEMA DE VISIÓN QUE AYUDE A LA LOCALIZACIÓN Y
NAVEGACIÓN DE UN ROBOT HUMANOIDE DENTRO DE UN AMBIENTE
ESTRUCTURADO UTILIZANDO PARA ELLO MÉTODOS DE SEGMENTACIÓN BASADOS
EN COLOR Y RECONOCIMIENTO DE FORMAS PARA SU APLICACIÓN EN SISTEMAS
ROBÓTICOS. ESTO SE LLEVARÁ A CABO MEDIANTE LA PROPUESTA DE
ALGORITMOS PARA EL PROCESAMIENTO DE IMAGEN, DE TAL FORMA QUE SE
PUEDA TENER UN MÉTODO ROBUSTO DE ANÁLISIS EN AMBIENTES DINÁMICOS.
Con el fin de alcanzar este objetivo principal, se busca como actividades previas cumplir con
los siguientes objetivos específicos:
1. Investigar y crear nuevas propuestas de algoritmos de segmentación.
2. Implementar los algoritmos creados, en un procesador y cámara igual o equivalente al
que poseen los robots humanoides del campus.
3. Diseñar y crear una interfaz gráfica para el usuario que permita de forma
semiautomática obtener una segmentación útil de una forma rápida y sencilla, lo cual
es crucial dentro del proyecto de robots humanoides.
17
4. Implementar la solución generada dentro del módulo de visión en una plataforma
robótica.
5. Con los datos obtenidos acerca de la posición de elementos de la cancha, construir un
algoritmo conveniente para la localización del robot humanoide.
6. Programar una tarea de navegación que conduzca al robot desde un punto inicial
desconocido, hacia un lugar determinado dentro del campo de juego.
Se esperan como beneficios de esta investigación, un mejor desempeño de los robots, que
éstos tengan una mejor capacidad de reacción ante ciertas circunstancias, tener la posibilidad
de transportar los algoritmos y aplicaciones generadas a otras plataformas robóticas con el
fin de realizar investigación en otras áreas y al mismo tiempo proveer al proyecto de robots
humanoides de una herramienta de segmentación que permita al usuario un ahorro de
tiempo y mayor robustez en las soluciones generadas, lo cual es importante tener en
competencias ya que generalmente se dispone de tiempos limitados para calibrar o ajustarse
a cambios repentinos del entorno.
Es importante señalar que los resultados que se obtengan de esta investigación pueden ser de
gran aportación para otros problemas ingenieriles en donde se requiere el conocimiento de
características del ambiente, tales como actividades de rescate, reconocimiento de patrones
en la industria, inspecciones de calidad automatizadas, clasificación de partes o productos,
etc.
1.4 CARACTERÍSTICAS DE LOS ROBOTS Y DEL MEDIO.
Existen ciertos lineamientos, criterios y restricciones que los robots participantes en la
categoría Humanoid Kid - Size deben cumplir para tener condiciones equitativas de juego [4].
Como se mencionó anteriormente, estos lineamientos sufren algunas modificaciones año con
año a fin de tener circunstancias más parecidas a las reales pero que a la vez sean
compatibles con las tecnologías y avances en robótica actuales.
Algunas consideraciones relevantes para este trabajo sobre las reglas vigentes de la categoría
de robots Humanoides Kid - Size se presentan a continuación:
Acerca de las características del entorno
• La dimensión del terreno de juego es de 6m de largo por 4m de ancho.
• Las porterías están identificadas cada una por los colores amarillo y azul
respectivamente.
• El campo de juego es de color verde.
18
• Las líneas y marcas de la cancha tales como círculo central, línea de meta, etc. están
identificadas de color blanco.
• La pelota con que deben jugar los robots es una pelota estándar de tenis, color
naranja.
• A la altura de la línea central, en cada extremo de la cancha se encuentran dos
marcas de referencia codificadas en una combinación de colores amarillo y azul tal
como se muestra en la Figura 1.5 y Figura 1.56.
FIGURA 1.5 REFERENCIA AZUL FIGURA 1.6 REFERENCIA AMARILLA
Acerca de las características y restricciones de los robots
• Los robots deben medir entre 30 y 60cm de altura.
• Los robots deben contar con dos piernas, dos brazos y una cabeza, de dimensiones
proporcionales a la altura total, detalles sobre este punto se abordan en [4].
• El número máximo de cámaras por robot son dos, colocadas exclusivamente en la
cabeza de éstos de forma antropomorfa.
• El ángulo máximo de visión permitido en los robots es de 180° es decir, que bajo
ninguna circunstancia, los robots deben ser capaces de ver en una sola imagen los
360° de su entorno.
• Los Robots deben ser autónomos tanto en su procesamiento, como en su consumo
energético.
Acerca de las competencias
• Previo a los días de competencia, se disponen de uno o dos días de calibración para
ajustar los robots a las condiciones propias del lugar como la iluminación,
tonalidades, características de la superficie, etc.
19
• Durante las competencias, el tiempo para realizar ajustes entre partido y partido es
indefinido, dependiendo de la calendarización de los encuentros, por lo que es
posible que haya ocasiones en que se tengan que jugar dos partidos consecutivos.
• Antes de cada partido se conceden 10 minutos para que los equipos realicen ajustes
previos a sus robots en caso de ser necesario. Durante este tiempo ambos equipos
podrán hacer uso de la cancha.
• Después de alguna interrupción durante un partido, los equipos o robots disponen
de alrededor de 10 segundos para reacomodarse y continuar con el encuentro.
1.4.1 CARACTERÍSTICAS DEL ROBOT BOGOBOT 1 (2009)
Durante el inicio del presente trabajo de tesis, se realizó la investigación tomando como base
al robot Bogobot 1, el cual es un robot de 43 centímetros de altura, autónomo, cuenta con
sensor de visión, sensor inercial. Así mismo cuenta con tres procesadores encargados de
visión (Phillips), locomoción – decisión (DsPic) y control de servomotores (AVR). El robot
puede desplazarse omnidireccionalmente a una velocidad de 12 cm/segundo. El robot utiliza
la teoría de Zero Moment Point (ZMP) en su locomoción.
Las especificaciones mecánicas, electrónicas y de software se detallan a continuación:
TABLA 1.1 ESPECIFICACIONES DE BOGOBOT 1
Altura, Grosor, Profundidad y
Peso:
45cm, 17cm, 10cm, 2.5Kg.
Velocidad de Caminado: 12cm/seg
Grados de Libertad GdL: 20 Grados de Libertad en Total: 6 por cada
pierna, 3 por cada brazo y 2 en la cabeza.
Tipo de motores: 14 servomotores HiTEC HSR-5990TG, 4
servomotores HSR-8498HB y 2
servomotores HS-5645MG.
Unidad de Procesamiento: DSPic 30F4013 embebido en tarjeta
personalizada
Cámara(s): CMUcam3
Sensores: Giroscopio de dos ejes IDG300,
Acelerómetro ADXL330
Estructura basada en: Soportes de Lynxmotion y partes
diseñadas para el robot en aluminio.
Fuente de alimentación: Dos Baterías: Litio – Polímero de 1.3Ah
12v y Litio – Polímero de 2.6 Ah 7.4v
20
En 2009, Bogobot 1 utilizaba un sistema de visión basado en la unidad CMUCam3 [41] en la
cual se programaban todos los algoritmos relativos al análisis de imágenes además de
controlar los dos grados de libertad en la cabeza.
El procesador encargado de computar las ecuaciones de trayectorias, cinemáticas inversa,
además de la estrategia general de juego consistía en un DSPic.
FIGURA 1.7 BOGOBOT 1 CON CMUCAM3
1.4.2 CARACTERÍSTICAS DEL ROBOT BOGOBOT 2 (2010)
Para 2010 se conservó la misma estructura mecánica con algunas modificaciones menores,
sin embargo, para la parte de procesamiento, la arquitectura del robot cambió radicalmente.
Se optó por utilizar una microcomputadora embebida en una mini-tarjeta principal. Se trata
de la tarjeta Roboard RB-100 de la compañía DMP Electronics [42]. Algunas especificaciones
de esta tarjeta se presentan en la Tabla 1-2.
El cambio de esta arquitectura tuvo por objeto el mejorar el desempeño y procesamiento del
robot, añadir la funcionalidad de conectividad inalámbrica, mejorar capacidad de memoria y
almacenamiento, así como optimizar los tiempos de desarrollo y depuración. La Figura 1.8
muestra la nueva microcomputadora.
FIGURA 1.8 ROBOARD RB-100
21
TABLA 1.2 ESPECIFICACIONES DE BOGOBOT 2
Procesador DM&P Vortex86DX
Memoria 256MB DDR 2
ADCs Analog Devices AD-7918 10-bit
Interface de I/O Slot de Micro SD x1
USB x3 (USB 2.0)
Conectores 2.54 mm 3-pin box header for PWM x 24
2.54 mm 10-pin box header for RS-232 x1
2.54 mm 10 -pin box header for USB x1
2.0 mm 4-pin header for RS-485 x1
2.0 mm 4-pin header for TTL serial x1
2.54 mm 10 -pin box header for SPI & I 2C x1
2.54 mm 16-pin header for A/D x1
1.25 mm 3 -pin wafer for TTL serial x 1
1.25 mm 4 -pin wafer for LAN x 1
1. 2 5 mm 4-pin wafer for MIC-in x 1
1. 2 5 mm 4-pin wafer for Line-out x1
1. 2 5mm 6-pin wafer for JTAG x1
0.8mm 124-Pin Mini PCI Card connector
3.96 mm 2 pin for Power x 1
Consumo de Energía +5V @ 400mA
Alimentación DC-in 6V to 24V
Dimensiones 96 x 56 mm
Peso 40g
A la microcomputadora se le instaló el sistema operativo Microsoft Windows XP, se dejó de
utilizar la CMUCam3 para usar ahora una cámara web conectada mediante USB al procesador
principal. Todo esto obligó a trasladar el código generado para el microcontrolador de la
CMUCam a la nueva plataforma en Windows, en la cual, las tareas de visión, locomoción y
decisión las lleva a cabo el mismo procesador.
1.5 PLANTEAMIENTO DE SOLUCIÓN
A fin de contar con un sistema de visión adecuado que permita realizar operaciones de
localización y navegación en un robot humanoide, el trabajo se dividió en tres tareas
principales:
1) Segmentación de colores.
2) Clasificación de colores y reconocimiento de patrones.
22
3) Localización y Navegación.
Las primeras dos tareas tienen que ver con la extracción de información relevante a partir de
las imágenes adquiridas, mientras que la tercer tarea utiliza estos datos para la toma de
decisiones y ejecución de tareas. Los detalles sobre las actividades concernientes a cada una
de las tareas mencionadas se describen a continuación.
Para la tarea 1) se propone
Usar una interfaz gráfica basada en LabView® conectada a la cámara del robot para
la toma de fotos en tiempo real.
Usar pixeles definidos por un usuario / programador para la generación automática
de sub-espacios elipsoidales de color.
Probar la identificación de colores en tiempo real mediante la interfaz de LabView®.
Para la tarea 2) se propone
Desarrollar algoritmos embarcados en el robot que permitan un eficiente uso de los
recursos para clasificar lo más rápido posible los pixeles de colores.
En base a los pixeles de colores primarios detectar áreas y en base a estas áreas
identificar objetos en la cancha.
Se verificará la correcta identificación de objetos en la cancha en situaciones críticas.
Se estimarán distancias en base a triángulos definidos en la cancha entre robot -
cámara - objeto.
Para la tarea 3) se propone
Localizar la posición del robot en base al método clásico de triangulación.
Se considerará que no hay obstáculos que impidan la visibilidad o que ocluyan
parcialmente los objetos.
El robot ubicará varios puntos de referencia moviendo su cabeza y con ello poder
triangular su posición.
Se harán pruebas de navegación comenzando con una posición inicial del robot en
un punto al azar dentro del campo de juego y como punto final el centro de la
cancha.
Se probarán estos algoritmos en situaciones críticas o extremas para evaluar su
sensibilidad a ruidos externos y la robustez de la solución generada.
El hecho de que un humanoide pueda conducirse hasta un punto deseado, es decir,
desplazarse de un lugar inicial a otro lugar determinado dentro del campo de juego, es una
tarea útil para un robot jugador de futbol, y de llevarse a cabo representaría un gran avance
en nuestro equipo de robots humanoides. Una primera ventaja sería el hecho de poder
23
posicionarse de manera autónoma en cierto lugar estratégico para el inicio de un partido. En
competencias oficiales de RoboCup se dan consideraciones especiales a los robots que tienen
la habilidad para realizar esta tarea, sobre otros a los que es necesario colocar de forma
manual.
1.6 METODOLOGÍA
A fin de concluir con éxito la presente investigación, se llevarán a cabo diversas actividades,
de las cuales, cada una tendrá un objetivo particular que nos permitirá obtener diferentes
conclusiones y detectar áreas de mejora para que, en conjunto nos ayuden a alcanzar los
resultados esperados.
A continuación se presentan las actividades que se planearon realizar durante el desarrollo
de la investigación:
1. Revisión de los algoritmos usados en la plataforma de robots humanoides (Bogobot
2008), a fin de detectar las posibles áreas de mejora, y localizar los puntos que de ser
modificados pueden tener un impacto positivo en el desempeño de los robots.
2. Proponer un algoritmo de segmentación con el objetivo de aumentar la fiabilidad y
robustez de las soluciones generadas, se validará la funcionalidad de este algoritmo
sólo para el reconocimiento de un color a la vez.
3. Adecuar los algoritmos propuestos para que identifiquen varios colores
simultáneamente optimizando el código para que se puedan analizar el mayor
número de cuadros por segundo.
4. Analizar de qué forma se pueden implementar métodos de reconocimiento de formas
y patrones a partir de las estructuras de color dadas y con ello identificar con
seguridad los elementos de la cancha, como referencias y porterías.
5. Diseñar y crear una interfaz gráfica para el usuario que permita de forma
semiautomática obtener una segmentación útil de una forma rápida, sencilla e
intuitiva (sin necesidad de que el usuario tenga conocimientos profundos en el tema
de segmentación de imágenes).
6. Con los datos obtenidos acerca de la posición de elementos de la cancha, construir un
algoritmo conveniente para la localización del robot humanoide.
7. Programar una tarea de navegación que conduzca al robot desde un punto inicial
desconocido, hacia un lugar determinado dentro del campo de juego.
8. Implementar los algoritmos creados, en un procesador y cámara igual o equivalente al
que poseen los robots humanoides del campus.
24
9. Implementar la solución generada dentro del módulo de visión de los robots
humanoides con los que se cuente en ese momento.
10. Realizar las pruebas de validación pertinentes a fin de comprobar las soluciones
propuestas.
1.7 ESTRUCTURA DEL MANUSCRITO
La tesis presentada consta de 7 capítulos, los cuales están organizados de la siguiente
manera:
En el Capítulo 1 se brinda una introducción al tema desarrollado de la tesis así como a las
entidades con que está ligada como es la Federación Internacional de RoboCup. Además se
abordan las características y restricciones que se tuvieron que tomar en cuenta para el
desarrollo del trabajo. Se plantean también los objetivos, propuesta de solución y
metodologías propuestas.
Para el Capítulo 2 se detallan aspectos sobre el marco teórico de la visión artificial así como
el estado del arte en robots similares al presentado. Se abordan soluciones propuestas por
diversos investigadores y se analiza la factibilidad de tomar diferentes caminos hacia la
solución. Se discuten conceptos de adquisición y procesamiento de imagen, segmentación,
extracción de características y finalmente se comenta acerca de algunos algoritmos de
localización y navegación útiles para el desarrollo de la tesis.
En el Capítulo 3 se discute acerca de la adquisición y segmentación de imágenes en los
robots humanoides, se justifica la metodología propuesta y se ejemplifican los resultados
obtenidos ante diversas situaciones. También se muestra el desarrollo y conceptos utilizados
para la generación del segmentador semi-automático de colores utilizado para la calibración
de la visión en el equipo de robots humanoides. Finalmente se muestran los resultados al
trasportar los algoritmos del sistema Bogobot 1 basado en microcontroladores al Bogobot 2
basado en una microcomputadora.
Para el Capítulo 4 se expone el análisis y los algoritmos generados a fin de identificar y
diferenciar los elementos que se encuentran en la cancha, específicamente las porterías y las
marcas de referencia ubicadas a los extremos del campo. Se muestran los procedimientos
llevados a cabo así como los resultados obtenidos y su validación ante diversas situaciones.
El Capítulo 5 se refiere a los algoritmos propuestos para la localización y navegación del
robot en el terreno de juego, se ejemplifican varias situaciones y se realiza una evaluación de
las rutinas tanto de localización como de navegación a fin de verificar su validez y hallar el
error final en las estimaciones.
25
En el Capítulo 6 se muestran los resultados obtenidos, así como las conclusiones a las que
nos lleva la presente investigación. También se aportan algunas ideas para el trabajo futuro a
realizar en el módulo de Visión en los robots humanoides.
Finalmente se anexan los manuales sobre la utilización y manejo del robot. La comunicación
con los diferentes sistemas, así como el manual de uso para el segmentador semiautomático
de color actualmente usado para calibrar el sistema de visión de los robots en el campus.
También se presenta el algoritmo general usado para la localización de los robots.
26
2 MARCO TEÓRICO
El procesamiento de imágenes digitales tiene sus orígenes a mediados del siglo pasado, con el
desarrollo de la televisión y la generación de las primeras imágenes por computador, ya para
1969 Azriel Rosenfeld [16] realizaba una compilación de trabajos sobre la materia,
abordando temas como la compresión, mejoramiento y restauración de imágenes así como el
reconocimiento de patrones y segmentación. Hoy en día existen diversas aplicaciones para
los sistemas de visión artificial y su uso se lleva a diferentes áreas como la radiología,
meteorología, microscopía, oceanografía, mapeo aéreo, robótica, inspección industrial, entre
muchas otras. Es posible generar imágenes no solamente del espectro visible por el ser
humano, sino que a partir de ondas de diferentes frecuencias, utilizando los sistemas de
sensado correspondientes, se pueden extraer imágenes útiles a muchos campos, ejemplos de
ello son las imágenes de resonancia magnética (MRI), las tomografías por emisión de
positrones (PET), las imágenes de rayos X, o las imágenes de radiotelescopios utilizadas en la
astronomía. Para propósito de la presente investigación se trabajará con el espectro de luz
visible por el ser humano, ya que todos los elementos de interés en la cancha están
codificados dentro de este rango de longitud de onda.
2.1 IMÁGENES DIGITALES
Una imagen digital se refiere a la interpretación binaria (codificada en 1 y 0), de una
representación gráfica [20]. Es posible clasificar diferentes tipos de imágenes digitales
tomando como base algunas características como pueden ser el tamaño, la profundidad de
bits y la modalidad de compresión.
Comencemos por la digitalización de imágenes, esto se refiere a la forma en que una señal
física es convertida a un lenguaje entendible por una computadora u otro sistema de
procesamiento. Las imágenes y señales en el ambiente son por naturaleza análogos, esto nos
dice dos cosas, la primera de ellas es que la señal existe en un dominio continuo de espacio-
tiempo y la segunda es que esta señal toma valores de una gama continua de posibilidades.
Estas señales son convertidas a una digital, la cual también tiene dos características, que la
señal está definida en el dominio discreto del espacio-tiempo y que entonces toma valores a
partir de una lista discreta de posibilidades. Para que esto ocurra se requiere pues de un
proceso de conversión análogo – digital, lo que conlleva dos subprocesos adicionales: el
muestreo y la cuantización.
27
El muestreo es el proceso de convertir una señal de tiempo continuo a una señal de tiempo
discreto. En el campo de las imágenes digitales y del presente trabajo de tesis, podemos ver al
muestreo desde dos perspectivas, la primera de ellas tiene que ver con la frecuencia de
tiempo a la que capturamos las diferentes imágenes. Recordemos que el teorema de Nyquist
[22] nos indica que la frecuencia de muestreo debe ser de al menos el doble de la máxima
frecuencia de interés en el análisis, por ejemplo, en el caso del seguimiento de la pelota en el
robot humanoide, la frecuencia de muestreo deberá ser mayor a las oscilaciones que tiene
pelota cuando ésta se mueve o las percibidas cuando el robot camina.
La otra perspectiva del muestreo en imágenes digitales tiene que ver con qué tanta
información extraemos de la captura realizada, es decir, qué tantos pixeles muestreamos en
una imagen y esto se relaciona directamente con la resolución de la misma. Es importante y
resulta una decisión no trivial el optar por determinada resolución de muestreo ya que por
un lado se debe asegurar que con la resolución empleada no se perderán detalles útiles para
los procesos de análisis y por otro lado se debe considerar que a mayor resolución
incrementa de manera significativa el tamaño de la imagen y por ello el número de pixeles a
procesar, pudiendo alcanzar los millones.
FIGURA 2.1 IMÁGEN DE ALTA RESOLUCION FIGURA 2.2 IMÁGEN DE BAJA RESOLUCIÓN
Un ejemplo de esto es al procesar la imagen de una huella digital, si decidimos emplear muy
pocas muestras se corre el riesgo de que las formas que definían la huella no se muestreen
completamente resultando en una imagen que reproduce la huella con muy poca información
en donde incluso se puede formar un patrón de diferente forma al original. A este fenómeno
28
se le conoce como “aliasing” [23]. La Figura 2.1 y Figura 2.12 nos muestran otro ejemplo al
comparar una imagen de alta resolución con otra de baja resolución, la Figura 2.1 muestra
una imagen con una resolución en X de 1200 pixeles y en Y de 1600 pixeles mientras que en
la Figura 2.12 la resolución disminuye a 50 pixeles en X y 67 en Y. Se puede ver cómo varios
detalles pierden definición en la Figura 2.12 como el ave y las nubes. Esto provoca que se
pierda información sobre el medio.
El otro proceso definido como Cuantización se refiere a la conversión de una imagen con un
rango continuo de valores a una imagen que tome valores a partir de un rango discreto. Esto
se hace por lo general mediante un proceso de redondeo, al truncar o realizar algún otro
método destructivo de información. La cuantización es un paso previo necesario al
procesamiento digital ya que las diferentes intensidades en una imagen deben ser
representadas con una precisión finita para cualquier procesador digital.
FIGURA 2.3 MUESTRA ENTRE DIFERENTES NIVELES DE CUANTIZACIÓN 8, 4, 2 Y 1 BIT
La determinación del nivel de cuantización sin embargo, resulta no ser sencilla, contrario a lo
que ocurre con la determinación de la frecuencia de muestreo, no existe alguna expresión
29
matemática que nos indique cuántos valores discretos es conveniente utilizar para visualizar
una imagen sin perder información relevante. Comúnmente en la práctica se estandariza
utilizar un nivel de cuantización de ocho bits (256 valores) para representar imágenes de una
sola componente por pixel (escala de grises) y un nivel de 24 bits por pixel (16,777,216
posibles valores) para imágenes a color.
En la Figura 2.3 podemos observar un ejemplo de una imagen en escala de grises con
diferentes niveles de cuantización, la primera de ellas está a 8 bits, la segunda a 4, la tercera a
2 y finalmente con un bit.
Ahora bien, durante la presente investigación se trabaja con imágenes a color debido a las
características del ambiente. El ojo humano puede sensar los colores en el entorno mediante
combinaciones de longitud de ondas cortas, medianas y largas, lo cual prácticamente
corresponde a los colores: rojo, verde y azul. La mayoría de las cámaras e instrumentos de
adquisición de imágenes funcionan mediante el reconocimiento de estas tres señales. Es por
ello que una imagen a color consta de varias componentes, es decir, que los datos
encontrados al evaluar un pixel en realidad contienen información acerca de cada uno de los
componentes de la imagen (componente rojo, verde y azul por ejemplo). La mayoría de los
trabajos de investigación en procesamiento y análisis de imágenes se basan en imágenes de
una sola componente (escala de grises) y algunos métodos son aplicables a imágenes a color.
Sin embargo en ocasiones, especialmente en procesos de segmentación, es preciso utilizar o
diseñar algoritmos específicos para las imágenes en color.
2.2 ADQUISICIÓN DE LA IMAGEN
Existen diversos dispositivos útiles para la adquisición de la imagen. El más utilizado en la
década de los 90 eran las cámaras de video. Ésta funciona al escanear determinado haz de
electrones a través de una capa de fósforo dentro de un tubo de gas conocido como Vidicon
[24], la luz entra a la cámara por medio de una superficie de cristal que crea electrones libres
en el fósforo. Esto varía la conductividad en la capa así que la corriente que fluye al ánodo
varía conforme el haz es escaneado de acuerdo a la intensidad de luz local. Es así como se
genera una señal de voltaje análogo que después de ser amplificada se digitaliza
generalmente a un nivel de 8 bits.
En la práctica es relativamente simple adquirir imágenes mediante este procedimiento, sin
embrago presenta algunas deficiencias. Debido a los campos electromagnéticos producidos,
se puede generar una distorsión en las imágenes adquiridas. Entonces es posible que la
30
imagen se deforme, en particular en las orillas, además éstas también tienden a oscurecerse
sumado a que es común que la imagen no quede bien enfocada.
Las cámaras de CCD son otra tecnología para la captura de imágenes. El CCD (Charged-
Coupled Device) es un chip que contiene un arreglo de diodos que funcionan como receptores
de luz. La luz que entra por estos diodos induce electrones cuyo número es proporcional a la
cantidad de luz recibida. Después la carga de toda una fila del arreglo es comunicada una por
una hacia el dispositivo de digitalización a través de una línea de transmisión. Generar este
tipo de tecnología es más barato que las cámaras de video convencionales y es por ello que
hoy en día prácticamente las han reemplazado. Sin embargo también se tienen algunos
puntos débiles en esta tecnología, ya que los diodos receptores resultan ser bastante sensible
a la luz roja e infrarroja algo que no tiene equivalencia en el ser humano afectando en el
enfoque y claridad de la imagen; esto hace necesario el uso de filtros que reduzcan esta
sensibilidad. Otra característica es que la respuesta al espectro de onda es lineal, contraria
también al ser humano y las cámaras de Vidicon cuya respuesta es logarítmica. Esto hace que
sea necesaria una conversión de la señal en la mayoría de las cámaras a fin de tener una
imagen más fiel. A pesar de estas limitantes, el CCD es reconocido en la actualidad por ser el
sensor con las mejores prestaciones y calidad en la imagen, sin embargo, el sensor más
utilizado en la actualidad es el CMOS ya que su costo de producción es más barato y si bien la
calidad de imagen obtenida no es tan fiel como el CCD se logran tener muy buenas
aproximaciones.
El CMOS (Complementary Metal Oxide Semiconductor) [25] es un sensor que se compone de
un arreglo de transistores, su proceso de fabricación es similar al de los circuitos impresos
convencionales por lo que se reduce mucho el costo con respecto al CCD. Similar a este último
el CMOS dispone de sensores detectores de fotones. Sin embargo, en el CMOS la información
de cada pixel es amplificada de manera individual y su arreglo es parecido al de un chip de
memoria por lo que es perfectamente posible realizar un direccionamiento a cualquier región
de interés, es decir, que no necesariamente debemos leer siempre la imagen en su totalidad.
Para imágenes a color se realiza el mismo procedimiento para cada canal. Por otro lado, la
tecnología CMOS sufre de mayores problemas de ruido, esto es en parte debido a que se
requiere de mayor circuitería en su diseño, además contrario a lo que ocurría con el CCD, en
el CMOS al tener un amplificador diferente para cada pixel surge una mayor variación de
respuesta ante el mismo impulso de entrada. A pesar de estas deficiencias, a medida que pasa
el tiempo se van perfeccionando las técnicas de elaboración por lo que hoy en día las cámaras
de CMOS son las más vendidas para dispositivos de consumo personal como son
videograbadoras, cámaras fotográficas, teléfonos celulares, cámaras Web, etc.
31
2.3 ESPACIOS DE COLOR
Hasta ahora hemos diferenciado las imágenes por su número de componentes en imágenes
en escala de grises e imágenes a color. Estas últimas se caracterizan por tener varias
componentes y son las que representan el mundo tal como lo percibe el ser humano. Para
esto, existen diferentes teorías que tratan de modelar al color de acuerdo a diferentes
características, a esto se le conoce como espacios de color. A continuación veremos algunos
de los más representativos para los sistemas digitales.
2.3.1 ESPACIO RGB
El espacio RGB es ampliamente utilizado para realizar la adquisición de imágenes,
prácticamente todos los sensores otorgan una respuesta basada en este espacio de color. Es
posible entender al formato RGB como un cubo en un espacio tridimensional, en el que cada
eje representa una componente del color: X – Rojo, Y – Verde, Z – Azul. La Figura 2.4 es una
imagen obtenida del software ColorSpace [36] en donde vemos representado el cubo de
colores RGB.
FIGURA 2.4 ESPACIO DE COLOR RGB
Los colores se forman al combinar estas componentes y dan lugar a todo el espacio de color.
Por ejemplo, si tenemos un pixel de valor (138,136,17) en una imagen con formato de 8 bits
por componente, significa que en una escala de 0 a 255 donde 0 es ausencia de color y 255 es
el color puro, tenemos un nivel de 138 en rojo, 136 en verde y 17 en azul. En la Figura 2.5 se
ilustra este ejemplo.
32
FIGURA 2.5 IDENTIFICACIÓN DE COLORES EN IMAGEN
2.3.2 ESPACIO YUV
El espacio YUV es una variación del espacio YIQ el cual es usado como estándar para la
difusión de televisión. La “Y” corresponde a la luminancia que es el brillo monocromático de
una imagen desplegada en un televisor blanco y negro. La componente Y es una combinación
de los colores rojo verde y azul, cada uno ponderado en relación a la proporción de
sensibilidad del ser humano ante cada una de estas componentes. La “U” es básicamente la
componente de rojo menos el color cian y la “V” es el magenta menos la componente verde.
En la Tabla 2-1 se muestra la conversión entre el espacio de color RGB y YUV, donde los
valores RGB así como la componente “Y” varían de 0 a 1, mientras que “U” se encuentra en el
rango de -0.436 a 0.436 y “V” de -0.615 a 0.615.
TABLA 2.1 CONVERSIÓN ENTRE ESPACIO RGB Y YUV [39]
RGB YUV YUV RGB
Y = 0.299R + 0.587G + 0.114B R = Y + 0.0U + 1.140V
U = -0.147R – 0.289G + 0.436B G = Y – 0.395U – 0.581V
V = 0.615R – 0.515G – 0.100B B = Y + 2.032U + 0.0V
Podemos observar que para formar la componente Y se requiere de una mayor cantidad de
verde y una menor de azul, esto es debido a que el ojo humano es mucho más sensible a la
longitud de onda de verde y es mucho menos sensible a la longitud de onda del azul.
33
La Figura 2.6 (imagen generada por software ColorSpace [36]) muestra la transformación
entre el espacio RGB y el espacio YUV, en esta imagen se observa cómo se ajusta la gama de
colores del cubo RGB en el espacio YUV. Se puede ver cómo el eje de la luminancia (Y)
corresponde a la diagonal del cubo RGB que une al punto de ausencia de color (negro) con el
de luz total (blanco).
FIGURA 2.6 ESPACIO DE COLOR YUV
2.3.3 ESPACIO HSI
El espacio HSI y sus variantes, tratan de modelar al color de una forma más parecida a como
la interpreta un ser humano. Este espacio también consta de tres componentes, la primera de
ellas conocida como tono (Hue en inglés) modela al color descrito por la longitud de onda, la
segunda llamada saturación nos indica la cantidad de color presente y el tercero conocido
como intensidad se refiere a la cantidad de luz presente, por ejemplo la diferencia entre azul
claro y azul oscuro.
Existen diferentes maneras de graficar este espacio de color, desde un cono hexagonal o
circular hasta una esfera o la unión de dos conos en donde el eje principal de estas figuras
corresponde a la intensidad de color que va del negro en un extremo al blanco en otro. La
ventaja de este modelo radica en que el color se descompone en elementos menos abstractos,
más entendibles y más trabajables para el ser humano y varias características físicas en el
medio ambiente influyen directamente en alguna de las componentes. Debido a esto se han
realizado diversos trabajos de procesamiento de imágenes basados en este espacio de color
[26] [37].
34
La Figura 2.7 (imagen generada por software ColorSpace [36]) muestra la transformación
entre el espacio RGB y el espacio HSI, en esta imagen se observa cómo se ajusta la gama de
colores del cubo RGB en el espacio de coordenadas cartesianas HSI.
FIGURA 2.7 ESPACIO DE COLOR HSI
Sin embargo, una desventaja importante consiste en que no es sencilla la conversión entre el
espacio RGB y el espacio HSI, esto ha dado lugar a que se encuentren diversas propuestas de
simplificación o aproximación en la transformación RGB HSI [26] [37]. Estas propuestas
utilizan diferentes criterios de conversión que los hace más o menos robustos ante varias
condiciones de análisis.
Cabe mencionar que la conversión entre los espacios RGB y HSI es inevitable ya que las
cámaras digitales actuales entregan en su mayoría valores en los formatos RGB y algunas en
el espacio YUV pero no en el espacio HSI, por lo que si se desea realizar algún análisis en este
espacio, la conversión deberá realizarse.
Una forma de convertir de forma exacta colores de RGB a HSI es mediante un paso intermedio
a un tercer espacio conocido como CIE XYZ [50]. No obstante, al final del procedimiento es
necesario validar condiciones particulares lo que complica la solución.
Una aproximación más sencilla al espacio de color HSI consiste en modelarlo de forma cónica
y tomando a la componente de intensidad como simplemente un promedio de los valores
RGB [39]. Esto sin embargo provoca una mayor distorsión entre estos dos espacios de color,
en particular, en los valores de saturación. A continuación se presentan las ecuaciones
correspondientes de conversión tomando en cuenta valores a la entrada RGB normalizados
35
de 0 a 1 (posteriormente se debe normalizar a valores entre 0 y 255 para una imagen de 8
bits por componente) [48].
( )
{ ( )
( ) }
( ) ⁄
√( ) ( ) ( )⁄
Como podemos ver, las ecuaciones siguen requiriendo de un poder de cómputo considerable,
sobre todo teniendo en cuenta que sería necesario efectuar cada una de estas operaciones
para cada pixel en la imagen, no hay que olvidar además, que se requiere analizar imágenes a
varios cuadros por segundo, considerando también el poder de procesamiento del sistema
encargado de esta tarea.
2.4 SEGMENTACIÓN DE LA IMAGEN
El proceso de segmentación se refiere a la tarea de subdividir una imagen en las diferentes
partes que la constituyen y con esto extraer aquellas que sean de interés [27]. El proceso de
segmentación es el primer paso y la tarea más crítica dentro del análisis de imágenes, ya que
los resultados que se obtengan en este paso afectarán de manera directa todas las tareas
subsecuentes en el análisis como la representación y descripción de objetos, la medición de
características, y con ello también se afectarán las tareas de más alto nivel como la
clasificación de objetos y la interpretación de un escenario.
En la actualidad existe un gran número de propuestas de algoritmos para realizar la
segmentación de una imagen, estos algoritmos varían en su función de acuerdo a la aplicación
para lo que se van a utilizar. Pal [28] agrupa estos métodos en seis diferentes clases:
1. Clasificación por umbrales
2. Clasificación de Pixeles
3. Segmentación por rangos de imagen
4. Segmentación por color
5. Detección de bordes
6. Métodos difusos
36
Existen métodos que se pueden clasificar en varias categorías, ya que con el fin de lograr un
mejor resultado, se conjugan diversas técnicas de análisis. Sin embargo, aún no es posible
definir como enteramente válido algún algoritmo general para segmentar imágenes, por lo
que actualmente se realiza en el mundo un gran número de investigaciones sobre el tema, y
algunos expertos consideran que el campo del análisis de imágenes se encuentra aún en
pleno desarrollo [29].
En la presente investigación se lleva a cabo un algoritmo de segmentación que se ubica
dentro del cuarto apartado de la lista mostrada, es decir, se realiza una segmentación en base
al color de los elementos [8], se toma esta elección dadas las características del entorno de
juego reglamentario (donde todos los elementos de la cancha tienen un color característico
que los diferencia).
Dentro del tema de segmentación de colores encontramos diversos trabajos que son de
interés. Fermüller et. Al. [1][2] realiza un trabajo donde se convierte una imagen a un modelo
tridimensional por medio de la identificación de cambios de color en la fotografía. De esta
manera es posible identificar los diferentes planos en una imagen. Por ejemplo, una mesa en
primer plano y una pared en el fondo. A pesar de tener éxito en la identificación de estos
elementos, los algoritmos propuestos demandan un alto poder de cómputo, esta
problemática la aborda G. Cheng [7] mediante la alternativa de utilizar una estación de
trabajo remota con buenas prestaciones conectada al robot.
Es importante señalar que las técnicas de segmentación por color consisten en subdividir el
espacio de color en clases. Se crearán tantas clases como colores distintos se quieran
identificar. La segmentación parte del hecho que pixeles con colores iguales o semejantes
estarán juntos dentro del espacio de color formando un cúmulo generalmente irregular.
Para identificar un cúmulo de pixeles como miembros del mismo color se suele definir o
imponer una geometría volumétrica. Todo pixel dentro de este volumen es identificado como
miembro del color o clase. Los retos de estos algoritmos son:
Incluir dentro del volumen a todos los pixeles que efectivamente son del mismo color
y dejar fuera a todos aquellos que no son del mismo color.
Garantizar que cada clase tiene intersección nula con las otras clases, es decir,
garantizar que no existan pixeles que se puedan clasificar simultáneamente en más de
una clase de color.
Que la fórmula matemática que define el sub-espacio volumétrico de cada clase sea
suficientemente sencilla para que el algoritmo de clasificación sea ejecutado lo más
rápido posible.
37
Particularmente, en el campo de la robótica, este último punto resulta de suma importancia.
En este momento cabe hacer una distinción entre los algoritmos de uso general y la
segmentación pensada para robots móviles. Normalmente se diseña un algoritmo de
segmentación considerando que la determinación de clases ya sea por entrenamiento o ajuste
del usuario se lleva a cabo de manera off-line y la clasificación de pixeles de hace on-line. Sin
embargo, en el ámbito de la robótica se desea que tanto la determinación de clases como la
clasificación se lleven a cabo todo on-line. Por ejemplo, en una competición de RoboCup se
tiene un ambiente con características dinámicas donde el robot debe reaccionar al instante
interactuando con objetos en constante movimiento. Por ello se busca un algoritmo de
segmentación que permita al sistema robótico el procesamiento de varios cuadros por
segundo [3]. La Figura 2.8 muestra la segmentación para una pelota en la competencia de
RoboCup, la imagen de la derecha muestra el resultado de la segmentación donde el color
blanco representa la identificación de la pelota.
FIGURA 2.8 SEGMENTACIÓN DE IMÁGENES
Dentro del ámbito de RoboCup también se han llevado a cabo investigaciones sobre los
procesos de segmentación [14][18][19] e incluso existen propuestas para la calibración
automática off-line de colores como lo menciona Rossi [17] en su trabajo con robots
cuadrúpedos. Es posible encontrar métodos que tratan de agrupar los colores de acuerdo a
diversos criterios, por ejemplo, de manera lineal o umbrales simples como lo describe J.
Bruce [9] en su artículo “Fast and inexpensive color image segmentation for interactive
robots”, esta propuesta posee interesantes ventajas relacionadas a la facilidad de
implementación y su simplicidad, lo cual conlleva ahorros importantes de cómputo, sin
38
embargo, tiene una baja efectividad en ambientes ruidosos como los que se encuentran
comúnmente en las competencias.
R. Alvarez [10] propone el uso de superficies implícitas, lo cual nos da la ventaja de manejarse
con buenos resultados en diversos ambientes, aunque las formas encontradas son difíciles de
procesar si es que no se hace una tabla de colores que describa cada objeto. Es por esto que
debemos conseguir un algoritmo de selección que se adecue a las necesidades tanto de
procesamiento como de exactitud en los resultados obtenidos, para ello es posible que se
usen algoritmos como los descritos por D. Stronger y P. Stone [11] en su artículo “Selective
Visual Attention for Object Detection on a Legged Robot” en donde se proponen técnicas para
optimizar el flujo de información y disminuir los tiempos de procesamiento consiguiendo con
esto una mayor tasa de cuadros por segundo.
2.5 IDENTIFICACIÓN DE PATRONES Y OBJETOS EN EL ENTORNO
Como se ha estado explicando, el ambiente de juego en RoboCup está caracterizado por
elementos que tienen diferentes colores y formas, debido a esto es necesario el poder
diferenciar entre cada uno de los elementos presentes. Las marcas más representativas que
contribuyen a la toma de decisiones sobre el terreno de juego son la pelota, marcas de
referencia y las porterías. Se han realizado estudios al respecto en el ámbito de RoboCup
entre las que destacan los trabajos de J. Wendler [12] y S. Enderle [13] en los que se definen
algunas propuestas sobre el análisis de patrones así como el reconocimiento de algunas
formas, incluso el reconocimiento de las mismas líneas del campo pueden ser de mucha
utilidad para la posterior localización de los robots. En artículos de M. Jamzad [14] y H.
Strasdat [15] se tratan algunas ideas de cómo es factible la posibilidad de reconocer la
distribución de estos elementos y las ventajas que esto ofrece para la localización y decisión
de los robots.
En el ambiente de RoboCup, a través de la identificación de patrones en una imagen es
posible encontrar algún objeto conocido o desconocido en la cancha así como descartar
posibles situaciones donde se encuentre ruido.
También se ha explorado la posibilidad de utilizar la teoría de redes neuronales para crear un
proceso de aprendizaje para la correcta identificación y diferenciación de objetos. Bishop [31]
y Chua [32] muestran algunos trabajos al respecto con resultados satisfactorios. Para el
proyecto de robots humanoides será preciso evaluar qué metodología resulta más
conveniente a fin de tener un algoritmo simple pero eficaz capaz de distinguir los diferentes
patrones y objetos dentro del campo de juego.
39
2.6 LOCALIZACIÓN Y NAVEGACIÓN
Una tarea importante para el buen desempeño de los jugadores robóticos es lograr deducir su
posición y orientación dentro de la cancha. Con esta información un robot puede incluso
trasladarse desde una localización inicial a una localización deseada. Más adelante, en el
presente trabajo de tesis se proponen algoritmos de localización y navegación. El correcto
desempeño de estos algoritmos dependerá de los resultados previos obtenidos durante los
procesos de segmentación e identificación de objetos.
De acuerdo al tipo de ambiente en que se desenvuelven los robots, se puede ver al tema de
localización desde dos perspectivas. La primera de ellas se refiere a la situación en que el
robot se encuentra en una posición desconocida en un ambiente desconocido [43], en este
caso se suelen usar algoritmos que construyen un mapa del lugar y estiman la localización del
robot conforme éste recorre el entorno. A estos algoritmos se les conoce como SLAM. El
segundo tipo de ambiente corresponde a un robot que debe encontrar su posición en un
ambiente estructurado previamente conocido, ésta es la situación que encontramos en un
partido de RoboCup ya que la posición de los puntos de referencia es fijo y se conoce
previamente, por lo que el robot debe encontrar su posición sobre un ambiente previamente
definido.
Para el caso de localización en ambientes previamente definidos, es posible diferenciar en la
literatura dos tendencias principales de análisis, los métodos probabilísticos y no-
probabilísticos. Entre los métodos probabilísticos más usados podemos encontrar
adecuaciones del filtro de Kalman, método de Markov o Montecarlo [44]. Mientras que en los
no-probabilísticos se encuentran los métodos geométricos como triangulación y métodos
específicos que hacen uso de equipo como radares, sonares o sensores de orientación [40].
Ambos métodos poseen ventajas y desventajas dependiendo de la aplicación en que se
utilicen. Los métodos probabilísticos suelen tener menor error en la estimación de
localización aunque requieren de un mayor uso de procesador ya que se debe tener un
constante registro de la actividad del robot como los datos de odometría y la visualización de
objetos. Los métodos no-probabilísticos aunque por lo general están más sujetos a errores no
necesitan de una constante actualización de datos y la respuesta de localización es inmediata
ante cambios bruscos en la posición del robot (cuando un agente externo mueve al robot
cambiándolo repentinamente de posición). En este último punto la respuesta de los métodos
probabilísticos no es inmediata debido a que la memoria sobre ubicaciones pasadas tiene
determinado peso y los algoritmos tardan algunas iteraciones en converger a la posición
nueva.
40
Las aplicaciones y alternativas de implementación difieren debido al sistema de hardware y
de procesamiento que se utilicen. Por ejemplo, A. R. Price[5] y S. Suzuki [6] proponen
soluciones de visión y localización para situaciones de juego dinámicas y en tiempo real
basados en métodos probabilísticos. Sin embargo, los robots presentados en esos trabajos
utilizan sistemas de visión omnidireccionales lo que significa que su ángulo de visión cubre
los 360° y debido a esto, en una sola toma se puede tener información acerca de todo el
entorno. Lamentablemente este tipo de componentes no están permitidos para la categoría
de robots humanoides de RoboCup, ya que los sistemas de percepción de los robots deben ser
semejantes a los de un ser humano.
FIGURA 2.9 LOCALIZACIÓN POR TRIANGULACIÓN
En sistemas de localización para robots humanoides Strasdat et. Al [33] proponen una
solución basada en una cámara con visión dirigida (menos de 180° de visión). Este algoritmo
utiliza la teoría de Monte Carlo la cual es una discretización del método de Markov [34]; ésta
es una técnica del tipo probabilística. Además del uso de visión, también se recurre a la
información obtenida por una brújula digital, con la cual se sabe en todo momento la
orientación que guarda el robot en el campo de juego.
Por otro lado, para un método no-probabilístico, Betke [35] propone también un algoritmo
basado en triangulación, utilizando como referencia objetos fijos en el ambiente con los
cuales el sistema móvil calcula su orientación y distancia con respecto a ellos. Esto es útil en
41
el proyecto de robots humanoides ya que existen referencias fijas (porterías y marcas) con
las que el robot puede estimar su distancia y a partir ello realizar una triangulación para
calcular su posición y orientación dentro del terreno de juego. La Figura 2.9 ejemplifica este
razonamiento al realizar una triangulación formada por dos referencia fijas en el campo y la
ubicación actual del robot.
42
3 SEGMENTACIÓN DE IMÁGENES EN ROBOT
En el presente capítulo se discute la generación de los algoritmos de segmentación de
imágenes a color utilizados para el sistema de visión de los robots humanoides del campus.
Para realizar el análisis de imágenes se eligió utilizar el espacio de color RGB debido a que es
el espacio de color nativo que utilizan los sensores de adquisición en los robots. Se presenta
entonces, un análisis de la distribución de los colores en este espacio, posteriormente se
presenta la alternativa del uso de elipsoides ajustados a la región de interés para realizar el
proceso de segmentación. Se describe su funcionamiento e implementación en los sistemas
robóticos. Finalmente se detalla el desarrollo del segmentador semiautomático de colores en
base a elipsoides en el espacio RGB y se explica su utilidad dentro del proyecto de robots
humanoides.
3.1 ANÁLISIS DE DISTRIBUCIÓN DE COLORES EN EL ESPACIO RGB
Una vez detectadas las áreas de mejora en el módulo de visión de los robots se procedió a
evaluar el comportamiento o distribución de los colores en imágenes tomadas de un
ambiente real. Para realizar este análisis se utilizó ColorSpace [51], un software de licencia
libre que permite visualizar la distribución de los colores de una imagen en diferentes
espacios de color. Se capturaron varias imágenes del campo de juego en el laboratorio de
trabajo y también se utilizaron para el análisis, imágenes guardadas de competencias previas.
En la Figura 3.1 es posible observar la distribución de los colores representativos de la
cancha vistos en el espacio RGB, en particular los colores amarillo, verde y azul
(correspondientes a la portería amarilla, el césped y la portería azul respectivamente). Se
puede apreciar cómo las diferentes tonalidades del color van desde las regiones oscuras hacia
los colores claros, las muestras de color se distribuyen alrededor de un eje principal que tiene
esta tendencia. Esto indica que un cúmulo de pixeles del mismo color tenderá a estar alineado
con respecto a la diagonal principal del espacio cúbico de color RGB.
Es importante señalar que este comportamiento también se debe a que el acabado del color
en los objetos utilizados en la categoría de robots humanoides kid-size es mate u opaco, con
lo cual el ambiente es altamente libre de especularidades provocadas por la incidencia de luz
sobre objetos brillosos. Las variaciones de tonalidad que se presentan son producto de la
diferencia de lecturas relativas a cada sensor de color. También se encuentran variaciones de
tonalidad provocadas por los diferentes ángulos de incidencia y el efecto de las sombras.
43
Si tratamos de cubrir el espacio formado por cada color mediante prismas rectangulares
(como es el caso de los umbrales simples) observamos que necesariamente se agrupan áreas
que no coinciden con la dispersión de las muestras y no son del color de interés. En la Figura
3.2 se aprecia este comportamiento al segmentar el pasto artificial de color verde, las
imágenes izquierdas corresponden a las tomas originales, las centrales muestran el prisma
rectangular propuesto para la segmentación y las imágenes de la derecha muestran los
pixeles que se encuentran dentro del prisma de segmentación. Se puede ver cómo existen
colores que inevitablemente se quedarán dentro de los umbrales a pesar de que se reduzca la
región de segmentación. Una desventaja importante es que al tratar de disminuir esta región
también se desprecian regiones que sí eran de interés provocando falsos negativos.
FIGURA 3.1 ANÁLISIS DE LA DISTRIBUCIÓN DEL COLOR EN EL ESPACIO RGB (PARA COLOR AMARILLO, VERDE Y AZUL)
Es de suponer que, si en lugar de proponer un prisma rectangular, se considerara un
elipsoide (elipse tridimensional) inscrito en el prisma inicial, se tendría un mejor resultado
puesto que se eliminarían las regiones cercanas a los vértices del prisma, los cuales son los
puntos más lejanos con respecto a la línea de tendencia. Aunque esta solución se ajusta de
mejor forma a dispersión de un color dado, esto no es suficiente, ya que se siguen tolerando
espacios no deseados.
Ahora bien, si se logra rotar al elipsoide propuesto de tal manera que el eje principal sea
colineal con la línea de tendencia de un color dado y además la longitud del eje principal sea
44
equivalente a la distancia neta cubierta por la dispersión de ese color, se puede encontrar una
solución satisfactoria al modelo de distribución de un color sólido en un ambiente real que
presenta iluminación no uniforme.
FIGURA 3.2 SEGMENTACIÓN POR UMBRALES SIMPLES
3.2 ELIPSOIDES DE SEGMENTACIÓN
Vemos pues que un elipsoide rotado en el espacio de color RGB se ajusta de forma razonable
a la distribución de los colores. Este modelo brinda mejores resultados comparado con el de
umbrales simples y de acuerdo a R. Álvarez [10] también presenta una mejor respuesta que la
segmentación tipo cónica y de paraboloides. La segmentación tipo cónica modela al color a
través de un volumen cónico cuyo vértice se encuentra en la esquina inferior (color negro)
del espacio RGB y de ahí se proyecta con un ángulo y dimensión de acuerdo a la dispersión
del color de interés. La segmentación por paraboloides suaviza el vértice del cono, lo que
ofrece menor posibilidad de empalmes entre diferentes colores.
La segmentación por elipsoides se ajusta a las diferentes tonalidades oscuras y claras, y su
geometría no deja regiones abiertas como sucede en la segmentación cónica o la de
paraboloides. Una mayor región de segmentación en elipsoides no involucra necesariamente
mayor susceptibilidad a ruido externo. Cabe señalar que la segmentación por elipsoides no
requiere de un gasto computacional elevado lo cual se aborda más adelante en este
documento.
45
Es válido realizar una analogía entre la región que intenta modelar la segmentación por
elipsoides en el espacio RGB y la distribución de colores del espacio HSI. Esta comparación se
hace en el sentido de que el elipsoide rotado rodea a un cúmulo de pixeles cuya distribución
sigue la tendencia de la diagonal principal en el espacio RGB. Esta diagonal en el espacio HSI
equivale al eje correspondiente a la luminosidad o intensidad (componente I). Esto se
muestra en la Figura 3.3 donde en la parte superior de presenta una imagen y en la parte
inferior se muestra la distribución de todos los colores en los espacios RGB (Izquierda) y HSI
(derecha), vemos cómo la diagonal principal en RGB corresponde con el eje de intensidad en
HSI.
FIGURA 3.3 COMPARACIÓN ENTRE DISTRIBUCIÓN DEL COLOR EN HSI Y EN RGB
Los elipsoides rotados en el espacio, sin embargo, requieren de menor procesamiento que la
conversión al espacio HSI ya que como se explica en los siguientes párrafos, en la
segmentación por elipsoides se requiere solamente un juego de multiplicaciones y sumas
para la clasificación de un pixel, mientras que la transformación entre espacios HSI y RGB
requiere el cómputo de funciones trigonométricas y raíces.
A fin de obtener un algoritmo eficiente para la correcta clasificación de colores dentro de un
elipsoide se siguió el planteamiento que se describe a continuación.
Se parte de la idea de encerrar dentro de un elipsoide a toda la región de interés. La
representación matricial de la ecuación general para la superficie de un elipsoide con centro
en el origen y con los semiejes alineados con los ejes cartesianos se presenta a continuación.
46
[
]
[
]
[
]
( )
Donde a, b, y c se refieren a la distancia de los semiejes de la elipsoide con respecto a los ejes
cartesianos X, Y y Z respectivamente. Ahora bien, si deseamos trasladar el origen de este
elipsoide a otro punto en el espacio cartesiano, la ecuación general toma la forma de la
ecuación 3.2 donde , y se refieren a las coordenadas del centro del elipsoide.
[
]
[
]
[
]
( )
Recordemos que esta ecuación modela la superficie de un elipsoide y que la igualdad a uno
nos es muy conveniente para los fines de este análisis ya que se cumplen las siguientes
relaciones de las ecuaciones 3.2, 3.3 y 3.4 las cuales se explican a continuación.
[
]
[
]
[
]
( )
La relación 3.3 se refiere a una región que está dentro de los límites del elipsoide. Mientras
que la ecuación 3.2 se refiere a los límites de este volumen, finalmente la desigualdad
mostrada en 3.4 nos indica toda la región fuera de la superficie del elipsoide que en nuestro
caso es la región que no cumple con los requerimientos de segmentación.
[
]
[
]
[
]
( )
47
La ecuación 3.3 nos da entonces el parámetro de decisión sobre el cual descartaremos o
aceptaremos pixeles en nuestra región de segmentación, bajo el argumento de que todo punto
(x, y, z) que cumpla con la ecuación 3.3 está dentro de la superficie del elipsoide y por tanto
dentro de la región de segmentación. Sin embargo, aún falta rotar esta figura geométrica para
que describa de forma adecuada la distribución del color, es decir, que su eje principal
coincida con la línea de tendencia de nuestro color de interés. La Figura 3.4 en su parte
superior muestra una segmentación para el color amarillo, en este caso el elipsoide ya está
trasladado al punto central de las muestras pero aún no ha sido rotado.
FIGURA 3.4 (SUPERIOR) ELIPSOIDE SIN ROTACIÓN PARA SEGMENTACIÓN DEL COLOR AMARILLO, (INFERIOR) ELIPSOIDE CON ROTACIÓN PARA SEGMENTACIÓN DEL COLOR AMARILLO
Dentro de los algoritmos de ejecución de los robots Bogobots, realmente no se rota el
elipsoide sino que se forma a partir del punto central de éste un nuevo sistema coordenado
de tal forma que el elipsoide cumpla con la forma general de la ecuación 3.1. Los pixeles en el
espacio de color son trasladados a este nuevo sistema coordenado y entonces se evalúa su
pertenencia a la región elipsoidal mediante la ecuación 3.3.
La rotación y traslación de los pixeles al nuevo sistema coordenado se logra utilizando
matrices homogéneas y siguiendo la convención de Euler Z – X – Z se tiene lo siguiente.
Matrices homogéneas para la rotación de una partícula en un espacio tridimensional:
( ) [
] ( ) [
]
48
( ) [
]
La traslación de las partículas está dada por:
[
] [
]
Y finalmente, la matriz de transformación MT se obtiene al evaluar el producto de estas
matrices en el siguiente orden:
[
] ( ) ( ) ( )
A continuación se muestran las tres componentes del vector de posición en la matriz de
transformación MT:
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )] [ ( ) ( )]
[ ( ) ( )] ( )
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )]
[ ( ) ( ) ( ) ( ) ( )] ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
49
Recordemos que para describir la rotación se utilizaron tres componentes, sin embargo, es
posible simplificar las ecuaciones 3.5, 3.6 y 37 si consideramos que para hallar un elipsoide
que envuelva a una línea de tendencia tridimensional solamente se necesita especificar un
par de rotaciones, (Figura 3.5 y Figura 3.6). La primera consiste en girar al elipsoide
alrededor del eje X (ángulo ) y la segunda corresponde al giro alrededor del eje Z (ángulo ).
FIGURA 3.5 IZQUIERDA: ELIPSOIDE SIN ROTACIÓN, CENTRAL: ROTACION EN EJE Z, DERECHA: ROTACIÓN EN EJE X
Para lograr esto en la rotación de matrices homogéneas con la convención de Euler Z – X – Z
( ) se debe fijar el ángulo con un valor de -
radianes, de modo que el eje X (sobre el
que se realiza la rotación ) sea colineal con el semieje secundario horizontal del elipsoide y
enseguida se realiza la rotación (sobre el eje z). Las ecuaciones resultantes se muestran a
continuación.
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
( ) ( ) ( ) ( ) ( )
( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )
( ) ( ) ( )
50
En las ecuaciones 3.8, 3.9 y 3.10 se han remplazado las incógnitas , y por las literales
, , y respectivamente y las variables , , , , y por , , , , y
respectivamente, esto se hace para evidenciar la analogía que existe entre los ejes X, Y y Z del
espacio tridimensional con las componentes RGB que se analizarán en las imágenes (X – Rojo,
Y – Verde, Z – Azul). De la misma forma, se cambia la notación de la ecuación 3.1 y se
convierte en la ecuación 3.11. Esta última ecuación será la que defina la pertenencia de cierto
pixel al elipsoide de segmentación.
[
]
[
]
[
]
( )
Es importante mencionar que el proceso de segmentación de imágenes en los robots
humanoides Bogobots, consiste en dos fases.
1. Análisis de imágenes para determinación de parámetros de segmentación.
2. Análisis de imágenes on-line para clasificación autónoma de colores.
FIGURA 3.6 ELIPSOIDE ROTADO EN EL ESPACIO Y ELIPSOIDE SIN ROTACIÓN
La primera fase consiste en un proceso de calibración donde el usuario haciendo uso de
imágenes representativas del ambiente de juego, encuentra los parámetros de segmentación
tales como la dimensión, traslación y rotación del elipsoide. Una vez que se hallan estos
parámetros, se almacenan en la memoria del robot para ser usados durante la segunda fase.
La segunda fase corresponde a un ambiente de juego en una situación real, donde el robot
adquiere imágenes y las segmenta de forma autónoma utilizando como parámetros de
segmentación los que se guardaron durante la fase 1.
51
3.2.1 DETERMINACIÓN DE PARÁMETROS DE SEGMENTACIÓN POR ELIPSOIDES
Antes de poder ejecutar los algoritmos de segmentación por elipsoides para buscar pixeles
clasificables en algún criterio de color, es necesario identificar y obtener los parámetros que
definen a la geometría de agrupación. Los parámetros necesarios para el funcionamiento de
la segmentación por elipsoides son: las dimensiones de los semiejes del elipsoide (a, b y c), la
coordenada central del elipsoide ( , y ) y los ángulos de rotación del elipsoide ( y
). En total suman nueve los parámetros que es preciso especificar para cada elipsoide de
clasificación de colores. A continuación se propone una metodología para la obtención
manual de estos valores.
1. Se elige una imagen de prueba que contenga al color que se desea segmentar. En la
imagen escogida se toma una serie de muestras sobre pixeles representativos del
color a segmentar. Se obtiene el valor RGB de cada uno de estos pixeles, con lo que se
obtiene un arreglo o lista con tres componentes: rojo , verde y azul
(ecuación 3.12), esta lista representa a la nube de puntos que describe la distribución
del color de interés.
{ } {
[ ]
[ ]
[ ] ( )
2. Se busca identificar la línea de tendencia que están siguiendo las muestras
almacenadas, el semieje principal del elipsoide será un fragmento de la recta
encontrada, es de particular interés encontrar los puntos extremos (máximo y
mínimo) sobre esta recta que acotarán la dimensión del eje principal del elipsoide.
Una manera en la que se propone encontrar esta línea de tendencia es utilizando un
algoritmo de regresión lineal basado en la teoría de mínimos cuadrados. Se elige este
método debido a que entrega resultados consistentes y resulta sencilla su aplicación.
Cabe apuntar que el método de mínimos cuadrados no es tan eficiente cuando en las
muestras existen valores fuera de rango, sin embargo, se parte del supuesto que el
usuario ha tomado solamente valores del color de interés por lo que no se tiene este
problema. La implementación se lleva a cabo de la siguiente manera.
1) Se toma un par de componentes del arreglo (por ejemplo rojo y verde
) a fin de realizar un análisis en dos dimensiones. La Figura 3.7 muestra una
gráfica ejemplo la cual incluye una serie de puntos muestra y la línea de
52
tendencia correspondiente obtenida mediante el método de mínimos
cuadrados.
FIGURA 3.7 LINEA DE TENDENCIA PARA COMPONENTES ROJO (R) Y VERDE (G) .
Es importante señalar que las fórmulas presentadas a continuación toman en
consideración la minimización del error cuadrático en los valores de Y,
asumiendo que los valores en X son correctos, se escoge esta metodología por
su simplicidad en la implementación. Se trata entonces de hallar los
parámetros de pendiente m e intersección k en la función de la forma de la
ecuación 3.13.
( )
Estos parámetros se encuentran al aplicar las ecuaciones de regresión lineal
simple [49] mostradas en las ecuaciones 3.14 y 3.15.
∑
∑ ∑
∑
(∑ )
( )
∑ (∑ )
( )
53
2) Ya que se tienen los parámetros m y k, entonces encontramos las coordenadas
que representen los extremos de la nube de puntos, para ello, evaluamos el
valor mínimo del arreglo en X (en este ejemplo, el valor mínimo del arreglo
) en la ecuación 3.13, se hace lo mismo con el valor mínimo del arreglo en Y
(en este ejemplo, el valor mínimo del arreglo ) mediante el despeje de X en
la ecuación 3.13. La coordenada mínima sobre la recta corresponderá al par
de puntos de menor magnitud.
( ) (( ) ( )) ( )
3) Para encontrar los puntos máximos se realiza lo mismo que en 2) pero ahora
evaluando y comparando los valores máximos de los arreglos.
( ) (( ) ( )) ( )
4) Para conocer la tercer componente de las coordenadas máximas y mínimas
( y ), se elige un segundo par de sub-arreglos del arreglo (por
ejemplo verde y azul ), nuevamente se encuentran los parámetros de
una línea de tendencia como se explica en 1) y ahora simplemente se resuelve
la ecuación 3.11 con la variable conocida (en este ejemplo y ,
obtenidos en el paso anterior) y así obtenemos los valores de y .
3. Una vez que se tienen las coordenadas máximas y mínimas representativas de la nube
de puntos ( y ), se computa la longitud entre estas
coordenadas, recordemos que este valor corresponde a la longitud del eje principal
del elipsoide ( ). Para obtener este valor se aplica la ecuación 3.18 basada en una
proyección del teorema de Pitágoras a tres dimensiones.
√( )
( ) ( )
( )
La longitud de los dos semiejes secundarios b y c debe ser tal que el elipsoide
resultante logre envolver la nube de puntos muestra. Para esto se propone utilizar
una transformación geométrica de los planos descritos en el punto 2. De tal forma que
la línea de tendencia coincida con el eje X, la transformación se realiza sobre los
puntos muestra y se calcula entonces la desviación estándar sobre el eje Y,
54
(perpendicular a la línea de tendencia) de las nuevas muestras. El procedimiento
descrito se ilustra en las ecuaciones 3.19 y 3.20.
[
]
[
] [
] [ ]
√∑ (
∑
)
( )
[
]
[
] [
] [ ]
√∑ (
∑
)
( )
Cabe recordar que la desviación estándar se define como la desviación promedio
entre las muestras y la media, por lo que una distancia en los semiejes igual a dos
veces la desviación estándar puede resultar adecuada. En la práctica es sencillo
definir la longitud de los semiejes secundarios al contar con retroalimentación en una
imagen sobre la segmentación resultante o una gráfica tridimensional que dibuje al
elipsoide y los puntos muestra.
4. La coordenada del punto medio del elipsoide resulta simplemente de promediar los
puntos máximos y mínimos del eje principal del elipsoide calculados en el punto 2.
Esto se muestra en las ecuaciones 3.21.
( )
5. Para hallar la rotación se procede de la siguiente manera, recordemos que se utilizó la
convención de Euler Z-X-Z para describir la rotación del elipsoide y que además se
definió la primer rotación en Z ( ) con un valor de
, los dos parámetros de rotación
de Euler restantes los encontramos al auxiliarnos de los dos puntos límite de la línea
55
de tendencia definidos en el punto 2. La rotación sobre el eje X ( ) se resuelve
mediante la ecuación 3.22.
(√( )
( )
) ( )
Mientras que se encuentra simplemente por:
(
) ( )
Con esto se definen los ángulos de rotación para el elipsoide mismos que son
utilizados por las ecuaciones 3.8, 3.9 y 3.10.
Siguiendo los cinco pasos descritos, se pueden encontrar los nueve parámetros necesarios
para caracterizar al elipsoide con rotación. Es importante señalar que la metodología
propuesta no garantiza que todos los puntos muestra se encuentren dentro del elipsoide, sin
embargo, con este método es posible modelar bajo una geometría cerrada a cualquier región
de muestras tridimensional cuya distribución siga una tendencia lineal.
3.2.2 PROCEDIMIENTO PARA LA SEGMENTACIÓN ON-LINE POR MEDIO DE ELIPSOIDES
Cuando el sistema de visión ya tiene información sobre los parámetros que definen al
elipsoide de segmentación, entonces es posible utilizar esta información para que el sistema
pueda por sí mismo encontrar un color dado en un ambiente real, por medio del análisis de
imágenes. El procedimiento para clasificar un pixel dentro de la segmentación por elipsoides
consiste en una serie de pasos descritos a continuación.
1. A partir de una imagen se elige un pixel.
2. Para este pixel se obtienen sus valores de rojo, verde y azul (R, G y B).
3. Se realiza la traslación tridimensional de este punto utilizando las ecuaciones de
trasformación 3.8, 3.9 y 3.10 a fin de encontrar la posición de este pixel en las nuevas
coordenadas cartesianas [ ].
4. Los valores encontrados se evalúan en la ecuación de elipsoide 3.11.
5. Si el resultado es igual o menor a ‘1’, entonces se considera que el pixel está dentro de
la región de segmentación y por lo tanto es un pixel del color de interés. En caso
contrario el pixel se considera no clasificable dentro del color dado.
56
FIGURA 3.8 SEGMENTACIÓN POR ELIPSOIDES
La Figura 3.8 muestra la misma imagen analizada en la Figura 3.2 pero ahora utilizando
elipsoides rotadas en el espacio para generar la segmentación (tiempo de procesamiento:
74ms). La Figura 3.9 muestra otra comparación entre los resultados obtenidos mediante
segmentación por elipsoides (superior derecha) vs umbrales simples (superior central).
Obsérvese que la segmentación por umbrales simples permite una mayor incorporación de
pixeles no deseados en la región de segmentación, en este ejemplo, se tienen algunos pixeles
de césped clasificados como color amarillo, sucede lo mismo con la tabla situada en la pared.
Al realizar una segmentación por elipsoides, la región de acotamiento se vuelve más
restrictiva, con lo que se consigue un modelo más exacto al color que se desea segmentar. En
la Figura 3.9 se realiza el análisis para dos colores con un tiempo de procesamiento de 138ms
para el caso de segmentación por elipsoides.
FIGURA 3.9 RESULTADOS DE SEGMENTACIÓN ELIPSOIDES VS. UMBRALES SIMPLES
57
3.3 OPTIMIZACIÓN DE BÚSQUEDA
Recordemos que el algoritmo expuesto para la segunda fase de segmentación (segmentación
autónoma on-line) se debe aplicar de manera independiente para cada color que se desee
segmentar. Aunque se ha realizado lo posible para simplificar este proceso al hacer que al
pixel de interés sólo se le necesite realizar algunas multiplicaciones y sumas, al intentar
evaluar más de un color requeriremos de mayor poder computacional. Lo cual en el caso de la
CMUCam3 o de un procesador de uso portátil resulta difícil de conseguir. Por esto, para la
segmentación autónoma on-line, es recomendable proponer un algoritmo que ahorre el
mayor tiempo posible en el análisis de cada pixel para poder analizar el mayor número de
cuadros por segundo.
La segmentación por elipsoides rotados en el espacio es una manera precisa de modelar un
color dado, sin embargo, requiere de mayor procesamiento que el método de umbrales
simples, ya que este último utiliza solamente comparaciones para la decisión de clasificación.
Para optimizar entonces los tiempos en la segmentación de imágenes se realiza una
preclasificación de las muestras.
FIGURA 3.10 IZQ. – IMAGEN CON COLORES AMARILLO Y AZUL, CENTRAL – REGIÓN DE COLOR AMARILLO, DER. – REGIÓN DE COLOR AZUL.
Podemos notar que resulta poco eficiente examinar a cada pixel de la imagen bajo el método
riguroso de elipsoides cuando posiblemente el pixel se encuentra bastante lejano de nuestra
región de interés, un ejemplo de ello es al evaluar un pixel azul (que usualmente tiene una
componente B grande y una R pequeña), siendo el color amarillo (que usualmente tiene una
componente en B casi nula y una R grande) el que deseamos segmentar, esto se puede
visualizar en la Figura 3.10.
Ante esto se decidió utilizar un método de preclasificación mucho más sencillo y rápido que el
sistema de elipsoides. Éste se basa en una lógica de decisión de umbrales simples. La idea es
construir un prisma rectangular en cuyo volumen se encuentre la geometría del elipsoide de
segmentación. Se parte de la siguiente hipótesis.
58
Es posible analizar más cuadros por segundo si primero se clasifica cada pixel en un prisma rectangular, y luego se refina la clasificación en un elipsoide que si sólo se clasifican los pixeles en cada elipsoide.
Para llevar esto a la práctica, es necesario encontrar un prisma rectangular que encierre al
elipsoide de interés, este prisma no debe ser demasiado pequeño de manera que algunas
regiones del elipsoide queden fuera del prisma y tampoco debe ser demasiado grande de
manera que existan muchos pixeles que pasen este pre-filtro sin que en realidad sean
clasificables. Para dar solución a esto, al final de la fase de calibración se puede construir un
prisma mediante el siguiente procedimiento.
1. Se encuentran los límites inferiores del prisma ( ) con el ciclo que
se presenta a continuación.
Para (en segundo ciclo se hace para y en el tercero para )
a. Para (2° ciclo para , 3° ciclo para )
i. Para (2° ciclo para , 3° ciclo para )
1. Se evalúa el pixel ( ) en el elipsoide hallado según el
procedimiento descrito en la Sección 3.2.2 a partir del paso 3.
2. Si el resultado es , se toma el valor actual de R como
(en 2° ciclo se encuentra y en el 3° ) y se detiene
la iteración.
2. Se encuentran los límites superiores del prisma ( ) con el ciclo
que se presenta a continuación.
Para (en segundo ciclo se hace para y en el tercero para )
a. Para (2° ciclo para , 3° ciclo para )
i. Para (2° ciclo para , 3° ciclo para )
1. Se evalúa el pixel ( ) en el elipsoide hallado según el
procedimiento descrito en la Sección 3.2.2 a partir del paso 3.
2. Si el resultado es , se toma el valor actual de R como
(en 2° ciclo se encuentra y en el 3° ) y se detiene
la iteración.
Con esto se tiene la definición del prisma que encierra exactamente al elipsoide de interés sin
perder datos de regiones útiles pero tampoco incluir datos innecesarios, es importante
mencionar que el algoritmo de construcción del prisma sólo se debe llevar a cabo una vez
después de haber encontrado los parámetros del elipsoide durante el proceso de calibración
y posteriormente solamente se utilizan los valores de
y para realizar el pre-filtro durante la segmentación autónoma.
59
A continuación se presenta el algoritmo general de segmentación autónoma on-line
considerando que ya se tienen almacenados los parámetros de segmentación.
Para cada pixel de la imagen (RGB)
1. Para i = 1 … N (Se suponen N colores distintos).
2. Evaluar si el pixel (RGB) pertenece al prisma del i-ésimo color (utilizando
y ).
3. Si no pertenece al i-ésimo prisma entonces incrementar i = i+1 y regresar al paso 2.
4. Si pertenece entonces evaluar si también pertenece al i-ésimo elipsoide de color.
5. Si no pertenece al elipsoide entonces incrementar i = i+1 y regresar al paso 2.
6. Si pertenece al elipsoide entonces el pixel es de color i, y Fin.
FIGURA 3.11 FILTRO CON UMBRALES SIMPLES Y POSTERIOR SEGMENTACIÓN CON ELIPSOIDES
De esta manera se obtiene un ahorro de tiempo sustancial ya que, como se mencionaba
anteriormente, el primer filtro de umbrales simples utiliza solamente tres pares de
comparaciones para obtener el resultado.
TABLA 3.1 COMPARACIÓN ENTRE MÉTODOS DE SEGMENTACIÓN SIMULTÁNEA DE LOS COLORES AZUL, AMARILLO, VERDE Y BLANCO
Muestra Tiempo de segmentación SIN pre-filtro de prisma
(ms)
Tiempo de segmentación CON pre-filtro de prisma
(ms)
1 136 51
2 129 50
3 130 50
4 146 56
5 144 52
6 135 51
60
La Tabla 3.1 contiene una comparación sobre el desempeño de un sistema que realiza la
segmentación de 4 colores distintos en la misma imagen (amarillo, azul, verde y blanco)
primero sin utilizar el pre-filtro del prisma y posteriormente haciendo uso de éste. Para
comparación se utilizó al mismo sistema con un procesador de doble núcleo corriendo a 1.8
GHz, las imágenes analizadas tienen una resolución de 320 X 240 pixeles.
En la Figura 3.12 se pueden observar algunas de las muestras utilizadas para la comparación.
El sistema de segmentación que utiliza el pre-filtro de prismas puede procesar mayor
cantidad de cuadros por segundo que si sólo procesan los elipsoides. El tiempo de ciclo para
el algoritmo con pre-filtro consume entre el 37 y 39% del tiempo ocupado sin el pre-filtro de
prisma. Cabe destacar que el resultado de segmentación en ambos métodos es idéntico, sólo
cambia el tiempo de ejecución del algoritmo.
1 2 3
4 5 6 FIGURA 3.12 EJEMPLO DE IMÁGNES SEGMENTADAS DURANTE LA COMPARACIÓN DE LA TABLA 3.1
3.4 HERRAMIENTA DE SEGMENTACIÓN EN LÍNEA SEMI-AUTOMÁTICA
Elaborar un elipsoide que modele de forma correcta una región de color resulta ser no trivial,
como se comentó en la Sección 3.2, se requiere de varios parámetros con los cuales podremos
definir los límites y características del elipsoide. Para encontrar estos parámetros de forma
manual y heurística es necesario contar con una herramienta de visualización gráfica
tridimensional donde sea posible representar en el espacio RGB la distribución del color de
interés, y después acomodar un elipsoide para que visualmente cumpla con las
61
especificaciones requeridas ajustando los valores de longitud en cada uno de los ejes así
como las rotaciones en los ejes X y Z.
Realizar de forma manual este elipsoide para cada color que se desea segmentar sin algún
tipo de información previa es poco práctico y puede provocar como resultado regiones mal
acotadas que conlleva a la pérdida de información y un desempeño pobre del sistema. Para
atacar este problema se diseñó una interfaz gráfica que permite de forma semiautomática
encontrar los elipsoides correspondientes a nuestro análisis. Para realizar esta herramienta
se utilizó la plataforma de LabView® debido a su facilidad y robustez en la comunicación con
los puertos periféricos del sistema así como en el despliegue de interfaces y visualización de
gráficos tridimensionales [38].
La herramienta generada se puede instalar en cualquier computadora con el sistema
operativo Windows® y con éste es posible segmentar imágenes vía Serial, mediante USB o
imágenes almacenadas en formato BMP, JPG, o PNG. El manual de uso para esta aplicación se
encuentra en el Anexo D de este trabajo, en esta Sección se abordarán las características más
sobresalientes del programa.
FIGURA 3.13 VISTA GENERAL DE LA INTERFAZ DE SEGMENTACIÓN SEMIAUTOMÁTICA
La secuencia del proceso de segmentación utilizando esta interfaz es como sigue:
Primeramente se adquiere una imagen, ya sea desde una Cámara Web, la CMUCam3 o algún
archivo de imagen previamente guardado. Una vez que se tiene esta imagen, el usuario toma
62
algunas muestras del color de interés; los parámetros RGB de estas muestras se almacenan
en la memoria del procesador y es entonces cuando el algoritmo de generación
semiautomática de elipsoides comienza su actividad.
El primer paso de este algoritmo consiste en identificar la línea de tendencia que están
siguiendo las muestras almacenadas, esto se realiza a través de una caracterización de los
puntos buscando una regresión lineal siguiendo el procedimiento descrito en la Sección 3.2.1.
Esta recta será el semieje principal del elipsoide, para conocer su longitud se aplica la
ecuación 3.18 y el punto medio se define por la ecuación 3.21.
Para hallar la rotación se usa la convención de Euler Z-X-Z, siguiendo con el procedimiento
descrito en la Sección 3.2.1, el ángulo toma un valor de
, y los ángulos y se obtienen
mediante las ecuaciones 3.22 y 3.23 respectivamente.
Con esto se genera automáticamente un elipsoide que encierra a las muestras seleccionadas.
Cada vez que el usuario hace un clic sobre la imagen, o cambia algún parámetros, la
herramienta entra en la modalidad de calibración y obtención de parámetros a fin de ajustar
el elipsoide formado tomando en cuenta los cambios generados, una vez que se encuentran
los nuevos parámetros, el sistema cambia a la modalidad de segmentación y empieza a
segmentar automáticamente las imágenes entrantes de acuerdo a los criterios actuales.
Durante la modalidad de segmentación el rendimiento no se ve afectado por el número de
muestras que haya ingresado el usuario, ya que solamente se evalúan los pixeles de acuerdo a
los parámetros ya obtenidos. Durante la modalidad de calibración el sistema sí puede verse
afectado por el número de muestras ingresadas para el cálculo de los nuevos parámetros, sin
embargo, en una computadora con procesador a 1.8GHz, el proceso de calibración no supera
los 200ms. Debido a esto, la respuesta a cambios por el usuario en los parámetros parece ser
instantánea.
Aunque generalmente no es necesario, la herramienta de segmentación también permite
configurar hasta cinco parámetros útiles para describir a la región de color. Estos parámetros
son:
Ángulo de rotación Euler en eje R (θ)
Ángulo de rotación Euler en eje B (ψ)
Longitud de semieje R (a)
Longitud de semieje G (b)
Longitud de semieje B (c)
Con esto el usuario avanzado tiene la libertad de hacer ajustes finos sobre la región de
segmentación.
63
3.4.1 RETROALIMENTACIÓN DEL SEGMENTADOR
El usuario tiene dos formas de retroalimentación, mediante una gráfica tridimensional del
espacio de color y por medio de la visualización de los resultados de segmentación en la
misma imagen. La gráfica tridimensional muestra todo el espacio RGB siendo los ejes XYZ las
componentes Rojo, Verde y Azul respectivamente; en este espacio de color se grafican cada
una de las muestras tomadas en la imagen (marcadas en rojo), con lo que el usuario puede
identificar con mayor facilidad la región de color que se está evaluando.
En el mismo espacio también se grafica el elipsoide resultante del proceso de segmentación.
Esto se realiza mediante la evaluación de una red de puntos sobre la superficie del elipsoide
que representa el límite de la región de segmentación, se utiliza para ello las herramientas de
graficación y despliegue para cuerpos tridimensionales incorporadas en LabView®, se utiliza
una red de puntos a fin de poder visualizar las muestras de color rojo que en teoría se
encuentran dentro del elipsoide.
De esta forma, el usuario puede observar en qué regiones se concentran las muestras
obtenidas y asimismo puede identificar posibles mejoras en la segmentación al comparar la
posición y orientación del elipsoide con respecto a la nube de puntos.
FIGURA 3.14 DETALLE DE IMÁGEN EN LÍNEA Y REPRESENTACIÓN TRIDIMENSIONAL
Otra forma de retroalimentación consiste en que al mismo tiempo que el usuario toma nuevas
muestras, los resultados de la segmentación automática se hacen evidentes en la imagen de
trabajo, los pixeles que entran en la región son cambiados por un color característico de
manera que el usuario identifica con facilidad las áreas de la imagen que entran en los
parámetros de segmentación con lo cual resulta sencillo también identificar regiones de
falsos positivo o falsos negativos y hacer los ajustes necesarios.
El segmentador también obtiene de forma automática las dimensiones y posición del prisma
rectangular que se ajusta de forma exacta al elipsoide mediante el procedimiento descrito en
64
la Sección 3.3, este prisma se utiliza para el primer filtro en el proceso de segmentación. Las
medidas se obtienen al evaluar cada plano del espacio desde los extremos hacia adentro a fin
de encontrar el punto donde el prisma haga contacto con el elipsoide. A petición del usuario
en la herramienta, el prisma formado también se puede graficar en el espacio tridimensional
a fin de observar sus características, asimismo se tiene la opción de visualizar el resultado de
la segmentación utilizando sólo los prismas rectangulares de manera que podemos comparar
los resultados de ambos métodos.
La herramienta de segmentación generada también tiene la funcionalidad de poder
segmentar de manera simultánea todos los colores de interés para la categoría Kid-Size
(amarillo, azul, naranja, verde, blanco, magenta y cian) logrando con ello el poder identificar
posibles empalmes entre las regiones clasificadas con lo que se hace más fácil el poder
corregir de manera objetiva el tratamiento previo de la imagen y prevenir errores de visión
durante el partido. Otra característica importante es que el programa obtiene
automáticamente las constantes de las ecuaciones 3.8, 3.9 y 3.10 que corresponden al vector
de posición para la matriz de transformación MT, estas constantes junto con las dimensiones
de los semiejes y los límites del prisma rectangular para el pre-filtro son guardados en un
archivo de configuración, el cual consiste en un archivo de texto que tiene todos estos valores
en un formato preestablecido. Este archivo después es utilizado por los robots humanoides y
su uso se describe en la sección 3.5.
FIGURA 3.15 SEGMENTACIÓN DE VARIOS COLORES Y HERRAMIENTAS DE CONFIGURACIÓN
Un punto crucial de la herramienta de segmentación semiautomática, es la característica de
poder tomar imágenes desde una Cámara Web vía USB o desde una CMUCam3 vía serial. La
rápida ejecución del algoritmo de segmentación junto con esta funcionalidad permite que sea
posible el análisis de imágenes en línea, con esto, el usuario puede estar realizando el proceso
de segmentación mientras ve imágenes reales en vivo. Esto elimina la necesidad de capturar
65
previamente las imágenes y después realizar el proceso de segmentación de modo “offline”,
gracias a ello el tiempo para realizar esta calibración baja de manera significativa siendo
ahora de unos cuantos minutos cuando anteriormente se promediaban tiempos superiores a
la media hora sumado a resultados menos eficientes. Con un procesador de doble núcleo a
1.83GHz se alcanzan tazas de actualización de hasta 30 cuadros por segundo para un solo
color y de hasta 10 cuadros por segundo en el análisis simultáneo de los siete colores
representativos del ambiente de juego, todo esto para imágenes con una resolución de 320 X
240 pixeles.
3.5 IMPLEMENTACIÓN EN ROBOTS HUMANOIDES
El robot Bogobot 2 cuenta con un procesador Vortex que trabaja a 1000MHz, tiene
incorporada una memoria DRAM de 256MB, además cuenta con 24 puertos digitales de I/O, 8
entradas analógicas comunicadas mediante SPI, comunicación I2C, 3 puertos seriales y 3
puertos USB 2.0. El disco duro es una micro SD clase 6 con el sistema operativo Microsoft
Windows XP®. Esta microcomputadora se encarga de todo el procesamiento del sistema,
desde los algoritmos de visión hasta la resolución de las ecuaciones de trayectorias,
cinemática inversa, adquisición de señales en sensores y estrategias de decisión.
Para tal efecto se instaló el entorno de programación de LabView® que sirvió como
plataforma principal para controlar el comportamiento del robot. Labview® utiliza una
estructura de programación basada en el flujo de información por lo que no es secuencial.
Esto hace posible que el sistema pueda ejecutar varias tareas en paralelo lo cual es útil para
separar los diferentes módulos de trabajo en el robot así como para asignar la prioridad que
cada uno de éstos tiene durante la ejecución de rutinas. Para el módulo de visión entonces, se
dejó de utilizar la CMUCam3 reemplazando la adquisición de imagen por una cámara web
conectada a uno de los puertos USB.
El proceso de calibración de segmentación para hallar los parámetros de los elipsoides ahora
se realiza en el entorno de LabView®. En el robot Bogobot 2 se ajustó la interfaz de
segmentación y se cargó directamente en el sistema operativo del robot, con ello, resulta aún
más fácil la tarea de la calibración de segmentación ya que en el mismo robot se realiza esta
operación sin necesidad de realizar conexiones adicionales o recompilar el programa.
Además gracias a la comunicación a través de USB el periodo de actualización de imagen se
reduce y aunque aún toma un tiempo alto el periodo de adquisición y análisis debido a las
características del procesador (750ms), este tiempo representa menos del 25% del que se
66
lograba anteriormente. Nuevamente los parámetros encontrados son guardados en archivos
de configuración que después son cargados por el programa principal del jugador. Debido a
que estos archivos son ajenos al código de la rutina, no es necesario recompilar el programa
cada vez que se genera o modifica alguna segmentación de color. También es implementado
el uso del filtro de preclasificación con lo cual se libera gran carga del procesador para
ocuparse en otras actividades como el cálculo de trayectorias, estrategia de decisión, etc.
Finalmente una ventaja importante al hacer uso de una cámara web además de tener una
mejor calidad de imagen, es la posibilidad de hacer un tratamiento previo al análisis de la
imagen como el ajuste de brillo, contraste, balance de blancos, exposición y ganancia entre
otras características estas tareas las realiza el controlador interno de la cámara por lo que se
libera al procesador principal de estas rutinas previas de acondicionamiento.
3.6 RESULTADOS EN SEGMENTACIÓN DE IMÁGENES
En este capítulo se presentó el diseñó un algoritmo de segmentación basado en regiones
delimitadas por elipsoides en el espacio tridimensional de color. De esta manera se logró
disminuir de forma significativa el ruido en segmentación provocado por falsos positivos que
se producían cuando se usaba la rutina anterior (basada en umbrales simples). Los elipsoides
resultaron ajustarse de mejor manera a la distribución de color, logrando con ello que se
pudieran realizar segmentaciones más precisas.
Resultó fundamental para la efectiva implementación del algoritmo en un entorno real, la
realización de una herramienta de segmentación semiautomática ya que con ello, el sistema
encuentra los diferentes parámetros necesarios para describir cada elipsoide de interés,
permitiendo al usuario seleccionar las regiones de color de una forma intuitiva. Sin esta
aplicación sería necesario que el usuario final tuviera bastante experiencia previa en la teoría
de distribución del color así como en la traslación y rotación de coordenadas
tridimensionales a fin de lograr una segmentación precisa en cierto tiempo límite. Gracias a la
herramienta generada se puede hallar el elipsoide de interés de forma intuitiva lo cual
requiere de un nivel de experiencia mínimo para lograr una segmentación satisfactoria. Por
otro lado, el uso de la herramienta de segmentación permite generar los parámetros de
elipsoides en un tiempo muy corto comparado contra el tiempo que tomaba el calibrar cierta
región bajo el método anterior off-line.
La metodología propuesta fue probada en primera instancia en el laboratorio y después se
tuvo oportunidad de llevarla a la práctica en los campeonatos internacionales de RoboCup
67
2009 y 2010 donde se utilizó la herramienta de segmentación para calibrar las regiones
elipsoidales, particularmente, a partir de 2009 se eliminó por reglamento la iluminación
especial en las canchas y los robots ahora debían adaptarse a las condiciones de luz propias
del lugar donde se efectuara la competencia. Los resultados en estas competencias fueron
satisfactorios logrando incluso la calificación a los cuartos de final, algo nunca antes
conseguido por el equipo del Campus Estado de México, esto representó estar posicionados
entre los mejores ocho equipos del mundo, y en su momento, ser el único equipo del
continente americano en estar en este grupo. Los algoritmos de segmentación también se
probaron en torneos nacionales, particularmente, en el Torneo Mexicano de Robótica,
celebrado en 2009 donde se logró obtener el segundo lugar, solamente detrás del equipo
invitado, el actual campeón del mundo, el conjunto alemán Darmstadt Dribblers.
FIGURA 3.16 SEGMENTACIÓN DE IMÁGENES MEDIANTE REGIONES ELIPSOIDALES (COLORES VERDE Y AZUL)
En estos eventos se confirmó la validez de los algoritmos de segmentación propuestos. Al
tener una segmentación más exacta se disminuyó la cantidad de ruido en las imágenes por lo
que ahora los robots tenían la habilidad de identificar la pelota a una distancia mayor a los
2.5m, situación en la cual, la pelota representa solamente unos cuantos pixeles de la
resolución total de la imagen. Al no existir ruido significativo en las imágenes también se
logró identificar las porterías con mayor rango de seguridad, incluso desde los extremos más
lejanos del campo (las esquinas opuestas a las porterías). También, al utilizar el segmentador
semiautomático se consiguió obtener los parámetros de regiones en un menor tiempo
68
(inferior a los 10 minutos), esto representó una gran ventaja en competiciones ya que los
tiempos entre partidos son cortos, e incluso se llegan a programar juegos continuos (sin
tiempo para re-calibración). Al configurar la segmentación en un menor periodo se logró
tener mayor oportunidad de aprovechar el tiempo ganado para ajustar otras áreas del robot,
lo que se tradujo en tener un mejor desempeño general.
69
4 IDENTIFICACIÓN DE PATRONES
Una vez que es posible identificar regiones de color en una imagen (proceso de
segmentación) es necesario conocer sus características a fin de que el sistema robótico sea
capaz de tomar decisiones de más alto nivel. Para que un robot pueda desempeñarse de
manera fiable durante un partido de futbol, se requiere que al menos el robot pueda
reconocer los colores naranja, amarillo y azul, los cuales corresponden a los colores con los
que se identifican la pelota, las dos porterías y las marcas de referencia laterales. Para efectos
de la localización y navegación del robot dentro del terreno de juego, las porterías y marcas
de referencia resultan de gran interés ya que estos objetos son elementos fijos en la cancha,
es decir, no cambian su posición durante el partido, por lo que los robots pueden utilizar esto
como referencia y así poder deducir su ubicación y orientación en el campo de juego. En las
siguientes líneas se detalla la manera en que se abordó el problema de identificar los
elementos de la cancha antes mencionados.
4.1 ANÁLISIS DE CARACTERÍSTICAS DE OBJETOS
Tenemos pues, que las porterías y marcas de referencia son objetos importantes para la
localización y navegación de los robots, el valor de estos objetos también se debe a que son
elementos con representación única dentro del campo de juego, es decir, que en la cancha
solamente existe una portería amarilla, una portería azul, una marca de referencia lateral azul
y una marca de referencia lateral amarilla. Cada uno de estos objetos posee características y
combinaciones de colores diferentes de modo que son perfectamente identificables y
diferenciables entre sí.
La Figura 4.1 muestra cada uno de los objetos antes mencionados según el reglamento de
2009. Se puede observar que aunque los objetos son completamente diferentes en cuanto a
su forma y tamaño, comparten características en cuanto al color, es decir, los cuatro
elementos están identificados por diferentes combinaciones de los colores amarillo y azul,
esto descarta la posibilidad de utilizar solamente la variable de color para poder distinguir
con fiabilidad los cuatro distintos objetos.
Sin embargo, podemos encontrar que la relación y proporción que guarda la distribución de
los colores en los diferentes objetos es único, por lo que es posible atacar el problema de
identificación mediante estas características.
70
4.1.1 CONFIGURACIÓN DE 2009
A fin de tener una participación satisfactoria en 2009, surge la necesidad de diferenciar los
objetos de referencia en la cancha, ya que en un partido es fundamental al menos reconocer
con seguridad la ubicación de ambas porterías puesto que son éstas donde la pelota debe
ingresar. La preocupación radicaba en poder identificar cada una de las porterías sin tener
falsos positivos o falsos negativos ocasionados por la presencia de las marcas laterales. Para
ello se realizó un análisis general sobre las características y relaciones que guardan cada uno
de estos objetos entre sí tanto en su forma como en su ubicación dentro del terreno de juego.
Al tomar imágenes desde la perspectiva del robot a nivel de cancha, resultó claro que cuando
el robot centraba con su cabeza cualquier portería desde diferentes posiciones en el campo,
era poco probable que en una sola toma lograra captar tanto la portería como alguna marca
de referencia lateral al mismo tiempo, y cuando esto sucedía (en las regiones cercanas a las
esquinas contrarias a la portería observada), la proporción de área ocupada por la portería
era mucho mayor al área ocupada por la marca de referencia.
a) b)
c) d)
FIGURA 4.1 A) PORTERÍA AZUL 2009, B) PORTERIA AMARILLA 2009, C) MARCA DE REFERENCIA LATERAL AMARILLA 2009, D) MARCA DE REFERENCIA LATERAL AZUL 2009
Para comprobar esta tendencia se recopiló información de varias muestras representativas
de imágenes en la cancha desde la perspectiva del robot. Para esto, se tomaron una serie de
71
fotografías desde diversos puntos en la cancha que fueran suficientemente representativos de
todas las situaciones en las que se puede encontrar el robot. La Figura 4.2 muestra un mapa
del terreno de juego con los puntos que se establecieron para recabar las imágenes de
muestra. Para el análisis se tomaron un total de 50 imágenes desde las ubicaciones antes
mencionadas, estas imágenes se encuentran en el Anexo A de este documento.
FIGURA 4.2 UBICACIONES SELECCIONADAS PARA EL ANÁLISIS DE OBJETOS
La Tabla 4.1 muestra los resultados de segmentación para el subgrupo de imágenes que
contenían a las porterías (los números de imagen pueden no ser consecutivos, ya que la tabla
muestra sólo las imágenes que contienen porterías; los números de imagen coinciden con la
imágenes del Anexo A). La tabla muestra para cada imagen el número de pixeles amarillos, el
número de pixeles azules, la relación que guarda el número de pixeles amarillos con los
pixeles azules y finalmente el resultado conocido o real de la imagen (si se trata de portería
amarilla o azul).
Al analizar la Tabla 4.1 se puede afirmar que siempre que se observe una portería, la cantidad
de pixeles del color de la misma deberá ser mucho mayor al número de pixeles del color de la
portería contraria. De hecho, la cantidad de pixeles de la portería contraria suele ser un
número muy bajo e incluso de valor cero, en este caso se debe validar el resultado de la
relación de pixeles para que no se indefina (posible división entre cero). En el caso de la Tabla
4.1 se observa que la relación mínima entre pixeles es de 317.3 para porterías amarillas y
0.007 para porterías azules.
Los otros elementos de interés en la cancha son las marcas de referencia laterales, las cuales
están compuestas por dos colores en la siguiente proporción, dos partes del color principal
72
por una parte del color secundario. De las imágenes muestra se eligió un segundo subgrupo
correspondiente a imágenes que contienen las marcas de referencia laterales. Los resultados
de segmentación se muestran en la Tabla 4.2 donde nuevamente se enlista para cada imagen
el número de pixeles amarillos, el número de pixeles azules, la relación que guarda el número
de pixeles amarillos con los pixeles azules y finalmente el resultado conocido o real de la
imagen (si se trata de referencia lateral amarilla o azul). Los valores máximos de relación en
la Tabla 4.2 son 3.06 para la referencia amarilla y 0.52 para la referencia lateral azul.
TABLA 4.1 RELACIÓN DE PIXELES PARA PORTERÍAS EN 2009
Imagen Número de Pixeles Azules en Imagen
Número de Pixeles Amarillos en Imagen
Relación entre pixeles amarillos y pixeles
azules en la imagen
Resultado conocido
3 1 6717 6717 Portería Amarilla
5 0 13265 Infinito Portería Amarilla
12 2 10229 5114.5 Portería Amarilla
13 8 2864 358 Portería Amarilla
17 7 3091 441.5714286 Portería Amarilla
22 10 3173 317.3 Portería Amarilla
28 4 16682 4170.5 Portería Amarilla
31 2 5651 2825.5 Portería Amarilla
33 1 5236 5236 Portería Amarilla
42 7 1543 220.4285714 Portería Amarilla
43 14 16870 1205 Portería Amarilla
46 2 1829 914.5 Portería Amarilla
1 5811 32 0.005506797 Portería Azul
7 3066 8 0.002609263 Portería Azul
10 3001 5 0.001666111 Portería Azul
15 9217 34 0.003688836 Portería Azul
19 10674 0 0 Portería Azul
24 11695 15 0.001282599 Portería Azul
26 3224 4 0.001240695 Portería Azul
29 4995 10 0.002002002 Portería Azul
35 5287 18 0.003404577 Portería Azul
38 1442 0 0 Portería Azul
39 1563 11 0.007037748 Portería Azul
49 1704 1 0.000586854 Portería Azul
Si tomamos en cuenta la información de relación de pixeles para porterías y marcas de
referencia, (Tabla 4.1 y Tabla 4.2 respectivamente) se puede notar que es posible reconocer y
diferenciar las dos porterías sin producir un falso positivo en caso de ver una referencia
73
lateral. Simplemente se deben elegir dos valores de corte en la relación de colores para
clasificar correctamente la portería amarilla, la portería azul y no confundirlas con las marcas
de referencia. Si observamos la razón de pixeles amarillos sobre pixeles azules nos damos
cuenta por la Tabla 4.1 que se puede concluir portería amarilla si esta razón es superior a 50.
Además si esta razón es inferior a 0.005 se podría concluir que se observa portería azul. Con
esto encontramos los límites máximos y mínimos. Con esta lógica de clasificación se participó
en la competición de RoboCup 2009.
TABLA 4.2 RELACIÓN DE PIXELES PARA REFERENCIAS LATERALES EN 2009
Imagen Número de Pixeles Azules en Imagen
Número de Pixeles Amarillos en Imagen
Relación entre pixeles amarillos y pixeles azules en la imagen
Resultado conocido
2 555 1387 2.499099099 Referencia Amarilla
6 190 583 3.068421053 Referencia Amarilla
9 1760 3966 2.253409091 Referencia Amarilla
16 1843 4145 2.249050461 Referencia Amarilla
18 190 532 2.8 Referencia Amarilla
21 481 1072 2.228690229 Referencia Amarilla
25 480 1239 2.58125 Referencia Amarilla
30 205 548 2.673170732 Referencia Amarilla
36 3786 8763 2.314580032 Referencia Amarilla
44 94 279 2.968085106 Referencia Amarilla
45 227 562 2.475770925 Referencia Amarilla
4 1978 1044 0.527805865 Referencia Azul
8 3302 1732 0.524530588 Referencia Azul
11 547 356 0.650822669 Referencia Azul
20 4824 2594 0.537728027 Referencia Azul
23 1340 715 0.53358209 Referencia Azul
27 1160 655 0.564655172 Referencia Azul
32 10016 5542 0.553314696 Referencia Azul
34 558 333 0.596774194 Referencia Azul
40 195 132 0.676923077 Referencia Azul
47 490 284 0.579591837 Referencia Azul
48 600 344 0.573333333 Referencia Azul
4.1.2 CONFIGURACIÓN DE 2010 Y 2011
Para la competición de 2010 y para fines de localización y navegación del robot era necesario
no sólo reconocer las porterías, sino que ahora el sistema debía ser capaz de identificar y
74
diferenciar las dos marcas de referencia laterales, aunado a esto, las características sobre la
forma y tamaño de elementos de la cancha se modificó en la versión 2010 del reglamento de
competencia.
El diámetro de las marcas de referencia se redujo de 20 a 10cm y la altura total de las marcas
disminuyó de 60 a 45cm, la composición y distribución de los colores en las marcas
permaneció sin cambios, por lo que ahora se tienen tres bloques de color de 15cm de altura
cada uno. Por otro lado, las porterías se modificaron de la siguiente manera: se eliminó el
color de fondo que contenía cada portería, y los postes que anteriormente estaban pintados
de blanco, ahora son de color azul o amarillo según corresponda, la nueva configuración de
estos elementos según el reglamento 2010 [30] se muestra en la Figura 4.3.
Para una imagen en dos dimensiones, el área total ocupada por las marcas de referencia se
redujo en un 62.5% y el área de color ocupada por la portería se redujo en un 41.6%, se
puede ver entonces que en general, los colores representativos de porterías y marcas de
referencia disminuyeron su presencia en el entorno de juego. Ésta fue otra de las razones por
las que se cambió en 2010 el sistema de procesamiento y visión, a fin de poder detectar con
mayor facilidad los detalles de objetos más pequeños.
a) b)
c) d)
FIGURA 4.3 A) PORTERIA AMARILLA 2010, B) PORTERIA AZUL 2010, C) MARCA DE REFERENCIA LATERAL AMARILLA 2010, D) MARCA DE REFERENCIA LATERAL AZUL 2010
75
No obstante los cambios presentes en el nuevo reglamento, se puede observar que la relación
de proporción que guardan los objetos no cambió e incluso la nueva geometría de color en las
porterías ahora ocupa mucho mayor área que la que ocupan las marcas de referencia.
Tomando esto como base partimos de la misma técnica utilizada en 2009 para realizar la
clasificación de objetos.
Adicionalmente a lo realizado en 2009, se desea ahora poder identificar y diferenciar cada
una de las marcas de referencia laterales. Estas marcas como hemos visto, están
representadas por combinaciones de colores amarillo y azul en una proporción 2 a 1. Sin
embargo, estos datos no son suficientes para poder identificar con seguridad cada uno de los
elementos, ya que pueden existir diferentes situaciones en las que encontremos en una
imagen proporciones similares de estos colores sin que represente algún objeto en particular.
Estas situaciones son provocadas principalmente por elementos ruidosos fuera del ambiente
de juego, por ver objetos parcialmente ocluidos o cuando la imagen captada no alcanza a
cubrir todo el objeto de interés y sólo aparece parte de éste haciendo ambigua su posible
identificación.
TABLA 4.3 CARACTERÍSTICAS SOBRE MARCA DE REFERENCIA LATERAL AMARILLA
Imagen
Centro de Masa de pixeles
azules en X
Centro de Masa de pixeles
amarillos en X
Centro de Masa de
pixeles azules en Y
Centro de Masa de pixeles
amarillos en Y
Relación entre pixeles
amarillos y azules
3 150.466292 149.061162 134.730337 135.082569 1.837078652
12 137.089636 136.506079 136.770308 135.300912 1.843137255
14 163.602484 163.30869 142.934161 139.960441 1.91552795
18 135.691824 135.062092 146.113208 143.673203 1.924528302
22 170.616099 190.46114 141.517028 141.84456 1.792569659
26 156.204969 153.632184 137.285714 138.176245 1.621118012
32 136.833807 160.271878 157.734375 159.151232 1.671875
36 138.176471 138.832 156.088235 154.248 1.838235294
38 143.833333 162.853846 112.603448 114.461538 1.494252874
44 150.466292 149.061162 134.730337 135.082569 1.837078652
Es necesario encontrar otras características en los objetos observados a fin de poderlos
clasificar adecuadamente de forma automática, se realizó nuevamente un análisis sobre otras
variables referentes a la distribución y comportamiento de los colores presentes en cada uno
de los objetos. Para esto se recabaron nuevas imágenes con la geometría de porterías y
referencias según el reglamento de 2010, nuevamente se tomaron un total de 50 imágenes
desde las mismas ubicaciones señaladas en la Figura 4.2, de manera que se tuviera una
76
muestra representativa de las diversas posiciones durante el juego, estas imágenes muestra
se pueden encontrar en el Anexo B de este documento.
Para hacer esta tarea más sencilla, se realizó un programa que sirviera como herramienta de
visualización y análisis, nuevamente se escogió la plataforma de LabView® para tales efectos.
La interfaz es capaz de segmentar en línea los colores amarillo y azul, así como desplegar
varios datos referentes a los colores, su distribución y relación en la imagen. Cuando la
herramienta está en ejecución, estos datos son almacenados y enviados a una hoja de cálculo
donde se puede realizar un análisis posterior a fin de detectar algún comportamiento
consistente, las Tablas 4.3, 4.4, 4.5 y 4.6 presentan la información obtenida sobre las
características relevantes referentes a cada objeto de interés dentro del terreno de juego. (En
estas tablas los números de imagen pueden ser no consecutivos ya que para cada tabla se
presentan solamente las imágenes que contengan al objeto en cuestión, todas las imágenes
utilizadas para este análisis se pueden encontrar en el Anexo B).
TABLA 4.4 CARACTERÍSTICAS SOBRE MARCA DE REFERENCIA LATERAL AZUL
Imagen
Centro de Masa de
pixeles azules en X
Centro de Masa de pixeles
amarillos en X
Centro de Masa de
pixeles azules en Y
Centro de Masa de pixeles
amarillos en Y
Relación entre pixeles amarillos y
azules
1 167.912 168.281095 141.386286 144.771144 0.459428571
7 138.545852 138.367187 130.842795 143 0.558951965
10 151.825162 151.630477 140.708603 143.967299 0.471477027
16 167.226257 167.301282 135.75419 137.878205 0.43575419
20 180.807339 178.520661 135.211009 146.528926 0.555045872
24 174.081528 173.931601 145.600912 147.549932 0.416761688
28 173.095528 173.449541 137.292683 147.431193 0.443089431
30 148.327765 147.754717 138.50358 150.493997 0.463802705
34 143.476636 143.313131 140.392523 154.757576 0.462616822
39 147.859155 147.5 146.859155 149.5 0.422535211
Una idea inicial para clasificar los objetos era por medio de su forma, esto se puede realizar
fácilmente mediante la obtención de un rectángulo característico que circunscriba a la
distribución de los colores segmentados, lo cual resulta en la forma de las marcas laterales o
las porterías. Cuando la cámara fija su orientación hacia estos objetos, el eje principal de una
marca de referencia está orientado de manera vertical mientras que en una portería la
dirección del eje principal es horizontal; sin embargo, debido a agentes externos a las
condiciones del ambiente de juego, tales como vestimentas de personas o decoraciones
exteriores de los colores amarillo y azul, estos rectángulos pueden crearse a partir de
77
información errónea. Es posible dar solución a esta situación mediante la búsqueda de todos
los rectángulos característicos que rodean a cada grupo continuo de pixeles del mismo color,
no obstante, esta búsqueda y ajuste de un número indeterminado de grupos requiere de un
mayor gasto computacional por lo que se hace ineficiente para cumplir con la frecuencia de
adquisición de imagen necesaria dentro de un partido.
Al usar la herramienta de visualización se observó que además de ser útil el número de
pixeles de cada color, también resultaba de interés el encontrar el punto medio que
representara su distribución, es decir, dentro de la imagen captada hallar las coordenadas del
centro de masa para cada color, en sus componentes X y Y. Para las marcas de referencia
laterales, resulta particularmente útil esta información ya que se espera que los centros de
masa de los dos colores al observar cualquiera de las dos marcas estuvieran en o muy
cercanos de la misma coordenada. Las Tablas 4.3 y 4.4 muestran esta información.
Se hacen entonces las siguientes consideraciones:
Se supone que sólo se observa un objeto por imagen.
Los pixeles de color amarillo y azul son producidos por las porterías y marcas de
referencia.
Los objetos de interés se ven completos en la imagen y sin oclusiones.
Se calcula el centro de masa de la nube de pixeles azules y el centro de masa de la nube de
pixeles amarillos. Se admite que si ambos centros de masa están cercanos entonces
efectivamente se trata de una marca de referencia y no de ruido.
Para calcular el centro de masa para los pixeles de un color en los ejes X y Y de una imagen se
procede de la siguiente forma.
Consideremos una imagen que contenga pixeles de color azul.
Sea un conjunto de pixeles ( ) que pertenezcan al color azul con .
El valor central en cada eje se calcula como:
∑
∑
Se procede de la misma forma para encontrar el centro de masa y
de los
pixeles amarillos pero ahora considerando al conjunto de pixeles que se
encuentren en la imagen.
78
Para poder identificar una marca de referencia debemos cuantificar la relación que existe
entre los centros de masa de color amarillo y azul que se encuentran en una imagen. Para esto
se calcula la distancia en pixeles entre los centros de masa para ambos colores, con ello
tenemos una diferencia en X y otra diferencia en el eje Y, estas variables se ilustran en la
Figura 4.4. A fin de realizar un poco más simple el análisis de relación de distancia entre los
centros de masa, se obtiene la distancia neta entre los dos centros mediante una relación de
catetos mostrada en la ecuación 4.1.
Sea el centro de masa en X del color amarillo.
el centro de masa en X del color azul.
el centro de masa en Y del color amarillo.
el centro de masa en Y del color azul.
es la distancia euclidiana entre el centro de masa azul y el centro de masa
amarillo.
√(
) (
) ( )
FIGURA 4.4 DISTANCIA ENTRE CENTROS DE MASA PARA LOS COLORES OBSERVADOS
Con la ecuación 4.1 tenemos una sola variable para comparar la ubicación general de los
grupos de color encontrados. La segunda variable de interés será entonces la relación entre el
número de pixeles azules y el número de pixeles amarillos , esto se muestra en la
ecuación 4.2, este coeficiente de relación es útil también ya que permitirá el rechazo de una
marca de referencia cuando ésta se vea incompleta, lo que ocurre cuando el robot se
encuentra muy próximo a la marca y el ángulo de visión de la cámara impide ver la marca de
referencia con todas sus componentes. También es importante incluir el número de pixeles
de cada color para realizar la clasificación adecuadamente.
79
( )
Con ayuda de estas cuatro variables se armó el algoritmo de decisión para clasificar los
elementos vistos en la cancha. El diagrama de flujo se presenta a continuación y enseguida se
brinda una explicación sobre el procedimiento y las constantes mencionadas.
DIAGRAMA 4-1 DIAGRAMA DE FLUJO PARA ALGORITMO DE IDENTIFICACIÓN DE OBJETOS
En el caso de la decisión para encontrar porterías, se necesita que se cumplan dos
condiciones para concluir como portería válida a lo que se observa en una imagen. La primer
condición se refiere a que la relación de área entre el número de pixeles azules y amarillos
debe ser inferior a un valor para tomarse como probable portería color amarilla
80
o superior al inverso de este último valor para definirla como probable portería azul basados
en los resultados de las Tablas 4.3 a 4.6 se define el valor de en 0.125, es decir, una
relación de por lo menos 8 a 1. La segunda condición requiere que el número de pixeles
encontrados del color de la portería sea superior a un valor de corte mínimo , el
cual puede definirse desde dos criterios: el primero de ellos es el número de pixeles del color
de la portería vistos desde la posición más lejana del robot en el campo de juego, el otro
criterio es ver al valor como el número máximo permisible de ruido dentro de la
imagen. El valor específico de esta variable depende de las condiciones del ambiente real
donde se desempeñe el juego. Para fines prácticos, se considera a este valor como el número
de pixeles equivalente al 1% de la resolución total de la imagen, ya que esta cifra
generalmente cumple con ambos criterios. En los robots Bogobots trabajando con una
imagen de resolución 320 X 240 y apoyados en los resultados de las Tablas 4.3 a 4.6 se estima
el valor de en 800.
TABLA 4.5 CARACTERÍSTICAS SOBRE PORTERÍA AMARILLA
Imagen
Centro de Masa de pixeles
azules en X
Centro de Masa de pixeles
amarillos en X
Centro de Masa de pixeles
azules en Y
Centro de Masa de pixeles
amarillos en Y
Relación entre pixeles amarillos y
azules
4 Infinito 164.581856 Infinito 105.690307 Infinito
8 122 129.165287 84 102.951971 3019
11 189.142857 184.172266 99.571429 95.942029 433.7142857
15 161.7 174.228477 96.4 103.952539 181.2
17 146.125 176.170833 101.125 106.920833 180
21 Infinito 161.1875 Infinito 115.558239 Infinito
25 134.2 151.874654 118 93.138573 1300.4
31 137.5 199.064185 112 117.49386 3949.5
35 166 114.960878 111.5 114.52688 3962
37 177 155.93239 134 130.830189 636
Las condiciones para identificar con éxito las marcas de referencia laterales son un poco más
restrictivas, ya que la similitud entre estos objetos es mayor que en el caso de las porterías. La
primera comparación relaciona la distancia obtenida mediante la ecuación 4.1 con la
desviación máxima de centros admitida . En otras palabras, si en una imagen existen
tanto pixeles amarillos como azules pero sus respectivos centros de masa se encuentran muy
distanciados entre sí entonces difícilmente se tratará de una marca de referencia ya que en
este caso teóricamente los centros se encuentran en el mismo punto. El valor de no
es una constante sino que depende de cada imagen en particular. No es lo mismo el valor de
81
si la supuesta referencia se encuentra tan lejos que sólo ocupa unos cuantos pixeles
en la imagen, que si se observa de cerca y la referencia ocupa casi la totalidad de la imagen.
Entonces, el valor de varía de acuerdo al número total de pixeles hallados
(relacionado al tamaño del objeto). Si consideramos que el área total de una marca de
referencia lateral es como un cuadro, entonces si se obtiene la raíz cuadrada se estaría
calculando uno de los lados de este cuadrado, este valor será el límite permisible de
separación entre los centros de masa de ambos colores. Una separación superior al límite
permisible indica que los centros de masa de las regiones color amarillo y azul no alcanzan a
estar dentro cuadro considerado. La Figura 4.5 y la ecuación 4.3 describen este razonamiento.
FIGURA 4.5 SEPARACIÓN ENTRE CENTROS DE MASA PARA IDENTIFICACIÓN DE MARCAS LATERALES
√ ( )
La segunda y tercera comparación en la identificación de marcas laterales delimita el rango
en el que debe estar el coeficiente de relación . La relación teórica que debe existir entre
los dos colores bajo condiciones óptimas es de 2 a 1 (dos partes del color principal y una
parte del color secundario), así que se define un rango de tolerancia alrededor de esta
relación teórica para acotar la región válida para cada marca. Los valores exactos dependen
de las circunstancias del ambiente particular de juego, sin embargo, se puede recomendar en
la mayoría de las situaciones que la tolerancia de relación tome los valores de
82
y
. Al ser el valor de
del doble de se asegura que no se invade
el dominio de clasificación para porterías, mientras que el valor de
evita que la
relación sea muy cercana a 1, lo cual significa que se ha encontrado el mismo número de
pixeles azules y amarillos. Estos valores están basados y son válidos para los datos
presentados en las Tablas 4.3 a 4.6.
Finalmente, la cuarta comparación se utiliza para validar la marca de referencia encontrada
contra el ruido que puede existir en los alrededores. Este valor depende de la situación de
juego real, aunque es recomendable fijarlo ligeramente debajo del número de pixeles
observado cuando el robot se encuentra en una esquina contraria a la marca de referencia,
con esto se asegura que el robot podrá reconocer la marca siempre que éste se ubique en
algún punto dentro de la cancha.
TABLA 4.6 CARACTERÍSTICAS SOBRE PORTERÍA AZUL
Imagen
Centro de Masa de pixeles
azules en X
Centro de Masa de pixeles
amarillos en X
Centro de Masa de pixeles
azules en Y
Centro de Masa de pixeles
amarillos en Y
Relación entre pixeles amarillos y
azules
2 149.447742 169.95 94.233411 91.908333 0.025439898
6 173.850853 231.08 95.033342 89.133333 0.019088827
9 136.27822 114 98.174789 93.478261 0.005718548
13 142.943571 173.407643 73.086833 74.923567 0.020226746
19 193.995515 275 104.433822 97.666667 0.000328156
23 121.915094 89.25 105.069029 101.875 0.000920387
27 152.213089 174.42029 105.943979 101.724638 0.036125654
29 148.852194 131.139535 108.431409 101.534884 0.019861432
33 173.001454 209.929412 117.528357 110.411765 0.041202133
41 158.77305 192.7 117.822695 112.6 0.030395137
Si ninguna de las condiciones antes mencionadas se cumple, entonces se determina que el
robot no está viendo referencia alguna. Con este juego de condiciones es posible determinar
la existencia o no de objetos dentro del campo de visión del robot así como identificar con
seguridad cada uno de los elementos en el campo de juego.
Cabe señalar que la metodología propuesta para la identificación de objetos es válido
únicamente para reconocer un objeto a la vez dentro de una imagen, lo cual en el caso de los
robots Bogobots resulta de utilidad debido a que el campo de visión horizontal de los robots
es de aproximadamente 60° lo cual hace muy poco frecuente que el robot se ubique en alguna
posición y orientación donde encuentre dos objetos al mismo tiempo.
83
4.2 OBTENCIÓN DEL ÁNGULO ENTRE OBJETOS Y EL FRENTE DEL ROBOT
Una vez que se identifica un objeto en la cancha, es posible conocer el ángulo que este objeto
guarda con respecto al frente del robot humanoide, la información sobre este ángulo
resultará útil para la estimación de posición y orientación en los robots por lo que se
considera un paso previo al algoritmo de localización.
FIGURA 4.6 RANGO DE GIRO EN EJE Z PARA LA CABEZA DEL ROBOT (VISTA SUPERIOR)
Es importante señalar que el ángulo total que el objeto guarda con respecto al frente del
robot se compone de dos partes, la primera de ellas corresponde al ángulo rotado físicamente
por la cabeza en el eje Z, al cual denominaremos “ ” y el segundo se refiere a la diferencia de
ángulo que mantiene el objeto observado en la imagen con respecto al centro de la misma.
Cabe aclarar que un objeto observado justamente en el centro de la imagen, mantiene
directamente un ángulo con respecto al frente del robot. A continuación se explica la
manera de hallar las dos componentes del ángulo total .
1. El valor de corresponde al ángulo de rotación en la cabeza (Figura 4.6). Este ángulo
es conocido debido a que se utilizan servomotores para mover cada articulación en el
robot, incluyendo los movimientos de cabeceo y guiñada en la cabeza. La posición de
los servomotores utilizados en los robots Bogobots responden a una señal de tren de
pulsos donde se varía el ancho de cada pulso dependiendo del ángulo que se desea
alcanzar. Para mover los servomotores, los robots cuentan con una tarjeta
controladora a la que envían vía serial el ancho de pulso deseado en el servomotor y
la tarjeta transmite ese pulso a los motores (en un servomotor estándar, el rango de
valores admitidos para el ancho de pulso varían entre 500ms y 2500ms, logrando
una rotación total de aproximadamente 200°).
84
Con esto, simplemente se debe encontrar el ángulo correspondiente a determinado
ancho de pulso en el servomotor. Esto se realiza mediante una función lineal cuya
pendiente se refiere al factor de relación entre las unidades de posicionamiento
para el servomotor y el ángulo de rotación final. El término independiente
relaciona los puntos iniciales para el movimiento del servomotor con el punto central
del ángulo (0° cuando el robot está mirando justo al frente). La Figura 4.7 muestra
el comportamiento del valor en un servomotor estándar.
FIGURA 4.7 COMPORTAMIENTO EN LOS MOVIMIENTOS DE UN SERVOMOTOR ESTÁNDAR
( )
2. Para encontrar el valor de , es necesario conocer primeramente el ángulo del
campo de visión horizontal para la lente que se está utilizando ( ). Mediante
pruebas experimentales se determinó que este ángulo es de 60° en el caso de la lente
de los robots Bogobots. Esto se definió al colocar un objeto de dimensiones conocidas
frente al robot de manera que el objeto ocupara todo el campo de visión horizontal de
la lente, y mediante relaciones trigonométricas se obtuvo el ángulo máximo que el
robot era capaz de visualizar.
Una vez definido este valor tomamos como eje inicial de medida (0°) al punto central
de la imagen en el eje horizontal de manera que los objetos que se encuentren a la
izquierda del centro tomarán un valor de ángulo negativo y el ángulo de los objetos a
la derecha será positivo. El valor de es entonces la diferencia en pixeles entre el
centro de masa en X del objeto ( ) y el centro en pixeles en X de la imagen (
),
este resultado se multiplica por un factor de conversión definido por la relación
85
del campo de visión ( ) y la resolución de la imagen (Figura 4.8), en el caso de los
robots Bogobots la resolución horizontal de la imagen es de 320 pixeles. Es preciso
mencionar que se considera que el lente de la cámara no genera distorsión en las
orillas de la imagen, lo que ocurre generalmente en lentes de gran angular (con FOV
de más de 90°).
( ) ( )
Donde:
( )
FIGURA 4.8 ÁNGULO DE UN OBJETO CON RESPECTO AL CENTRO DE UNA IMAGEN
FIGURA 4.9 ESTIMACIÓN DE ÁNGULO DE OBJETO CON RESPECTO A FRENTE DE ROBOT
( )
86
De esta manera, el ángulo total formado entre la posición del objeto y el frente del robot
será simplemente la suma de con . (Ecuación 4.7 y Figura 4.9).
4.3 DETERMINACIÓN DE LA DISTANCIA DE OBJETOS CON RESPECTO A ROBOT
Para fines de localización y posterior navegación de los robots es útil no solamente identificar
o reconocer los objetos de posición fija dentro de la cancha, sino que se requiere conocer la
distancia que guarda el objeto con respecto al robot. También en el caso de la pelota se estima
su distancia con relación al robot. Esto último se utiliza con el objetivo de que en un partido el
robot sepa en qué momento acelerar o desacelerar a fin de aproximarse lo suficiente a la
pelota para después ejecutar los movimientos suaves de aproximación y finalmente patear la
pelota cuando ésta se encuentra en la distancia correcta.
4.3.1 ESTIMACIÓN DE DISTANCIA MEDIANTE TRIANGULACIÓN
Para calcular la distancia que la pelota mantiene en relación al robot se utiliza un algoritmo
sencillo que se basa en la triangulación entre la pelota, el robot y el suelo. Para esto se
realizan un par de suposiciones:
FIGURA 4.10 ESTIMACIÓN DE DISTANCIA A OBJETO EN SUELO
1. La pelota permanece tocando el suelo mientras es observada (no debe estar en el
aire).
2. El robot se encuentra también en el suelo en posición erguida (siempre mantiene una
altura constante).
Cuando el robot está sobre el terreno de juego busca la pelota moviendo su cabeza en los
ángulos de guiñada y cabeceo (pan & tilt), una vez que encuentra la pelota registra el ángulo
87
en el que ésta fue observada y finalmente utilizando la información sobre su altura ( ) se
resuelve la identidad trigonométrica para encontrar la distancia faltante. La ecuación 4.8
muestra la solución.
( )
( )
La Figura 4.10 ilustra el razonamiento de esta solución. El ángulo se obtiene sumando el
ángulo registrado por el servomotor de la cabeza, y el ángulo obtenido por la desviación
en la componente Y desde el centro de imagen hasta el punto más cercano de la pelota al
suelo. El ángulo se refiere a la orientación que tiene la cabeza al ver el objeto de interés, la
Figura 4.11 muestra la convención utilizada para definir este ángulo.
FIGURA 4.11 CONVENCIÓN UTILIZADA PARA EL ÁNGULO ALFA
El ángulo está relacionado al campo de visión vertical de la cámara (45°, obtenido de
manera similar que en la Sección 4.2) y resulta de la conversión a grados de la diferencia que
existe entre el centro de la imagen y el centro del objeto observado en sus componentes en Y,
la Figura 4.12 muestra la convención utilizada.
El mismo principio puede aplicarse a las marcas de referencia laterales, sin embargo, la
misma metodología no es aplicable en el caso de las porterías, ya que éstas son objetos que no
se pueden considerar puntuales puesto que están formados por dos postes separados por una
distancia considerable en el campo de juego. No obstante tenemos información muy
importante a partir de la identificación de la imagen, esto es, el número de pixeles observados
para cada objeto.
88
FIGURA 4.12 ESTIMACIÓN DE ÁNGULO BETA
4.3.2 ESTIMACIÓN DE DISTANCIA MEDIANTE ANÁLISIS DE ÁREA
Es posible deducir la distancia a la que se encuentra un objeto determinado a partir del
análisis del número de pixeles que lo conforman. Entre más pixeles se encuentran, más cerca
estamos del objeto en cuestión Se puede suponer que la distancia es inversamente
proporcional al área de objeto observada. Sin embargo, esta relación, contrario a lo que se
pensaría en primera instancia, no es lineal, sino que es cuadrática.
FIGURA 4.13 PERCEPCIÓN DE TAMAÑO DE UN OBJETO A DIFERENTES DISTANCIAS
Esto se ejemplifica en la Figura 4.13 donde se ilustra el campo de visión de la cámara en una
dimensión. Se puede ver cómo cuando un objeto se encuentra a una distancia de la lente, el
objeto ocupa una distancia del campo de visión; cuando se aleja el objeto a una distancia
89
entonces el objeto ocupa una fracción
del largo del campo de visión, y cuando la
distancia de triplica la fracción también se reduce a
.
Ahora bien, la imagen realmente es de dos dimensiones por lo que al aumentar el largo ,
también lo hará el ancho en la misma proporción, por lo que tenemos una relación
cuadrática del tipo mostrado en la ecuación 4.10.
√ ( )
Donde:
( )
La Tabla 4.7 nos muestra un conjunto de observaciones del mismo objeto a diferentes
distancias donde { }. El objetivo es calcular la constante tomando en
cuenta la noción de proporcionalidad inversa de la distancia. Al elevar al cuadrado la
ecuación 4.10 se tiene que:
( )
Tomemos la primera muestra para despejar .
√ ( )
En el caso de las muestras presentadas en la Tabla 4.7, el valor de la constante es de
14142.13. Este valor de lo usamos para calcular la distancia en las demás observaciones.
De esta manera obtenemos la expresión para estimar la distancia a un objeto mediante la
información del área que ocupa en una imagen.
√
√
( )
√
√ ( )
90
En la ecuación 4.15, los valores , y son constantes relativas a la distancia y áreas
iniciales, mientras que se refiere al número de pixeles pertenecientes al objeto en
cualquier momento dado. La forma de obtener las constantes , y , se explica en la
Sección 4.5.
TABLA 4.7 RELACIÓN ENTRE DISTANCIA REAL Y ÁREA OBSERVADA EN PIXELES
Muestra Distancia en mm D
base en
pixeles
altura en
pixeles Área A
1 1000 10 20 200
2 900 11.111 22.222 246.908642
3 800 12.5 25 312.5
4 700 14.2857 28.5714 408.162449
5 600 16.667 33.334 555.577778
6 500 20 40 800
7 400 25 50 1250
8 300 33.33 66.66 2221.7778
9 200 50 100 5000
10 100 100 200 20000
Este método se aplicó tanto para estimar la distancia a porterías como para calcular la
distancia a las marcas de referencia; en estas últimas el método sirve como apoyo al ya
mencionado algoritmo de triangulación a fin de contar con mayor información para la
estimación.
4.4 APROXIMACIÓN DE ÁREA PARA PORTERÍAS INCOMPLETAS
Los métodos descritos en el apartado anterior para determinar distancias son útiles en una
gran variedad de situaciones dentro del terreno de juego. Sin embargo, cuando el robot se
aproxima a menos de 1 metro de alguna portería, el limitado campo de visión impide que la
portería aparezca completa en una imagen. Esta situación hace que la estimación de distancia
sea errónea al no contar con toda la información de área.
FIGURA 4.14 CENTRO DE MASA PARA PORTERIA COMPLETA E INCOMPLETA EN UNA IMAGEN
91
Para dar solución a esta problemática y hacer más certera la localización de los robots en
estas regiones se elaboró un algoritmo para detectar posibles porterías incompletas y realizar
un ajuste de tamaño. El algoritmo de basa en la búsqueda del centro de masa cm del objeto,
en el caso de una portería de reglamento 2010/2011, el centro de masa teórico para esta
referencia se ubica en un punto que NO posee el color de la portería, esto es debido a que
solamente los postes están pintados del color representativo (Figura 4.14).
Se realiza entonces un análisis en toda la línea horizontal que se encuentra al nivel del valor
en Y del centro de masa. El análisis se hace en dos recorridos, el primero parte del centro de
masa cm hacia la derecha de la imagen y el segundo parte del mismo punto pero en dirección
contraria. El objetivo es hallar tanto de un lado como de otro la presencia de pixeles del color
de la portería, lo cual representa la identificación de los dos postes verticales. En caso de no
hallar alguno de estos dos postes entonces se deduce que la portería no está completa en la
imagen, (Figura 4.14).
FIGURA 4.15 IMÁGENES MUESTRA DE PORTERÍAS INCOMPLETAS
Para poder estimar el tamaño total de la portería se utiliza la información sobre la distancia
del centro de masa del objeto hasta el poste encontrado, entre más corta sea esta distancia,
menor será la fracción de portería observada. En caso de que el punto del centro de masa cm
sea del mismo color de la portería entonces el robot está observando solamente un poste, por
lo que se descarta la imagen.
Los pixeles observados de portería incompleta son multiplicados por un factor de
estimación para encontrar el área total estimada A. El factor de estimación varía para
cada imagen observada y está en función de la distancia existente entre el centro de
masa cm y el poste encontrado.
La función que genera al factor de estimación ( ) resulta de una linealización del
comportamiento observado entre la distancia y la relación entre el número de pixeles
encontrados en una imagen de portería incompleta con el número real de pixeles que ocupa
tal portería. Para obtener la función del factor de estimación se realizó un análisis de varias
92
imágenes que contenían porterías incompletas, para cada una de estas imágenes se calculó el
centro de masa cm, y el número de pixeles encontrados de la portería incompleta , además
se estimó el número de pixeles totales que ocupaba la portería completa, esto se realizó al
girar la cabeza del robot de modo que se sumara a el número de pixeles de la parte
restante de la portería. Un extracto de los resultados se presenta en la Tabla 4.8, algunas de
las imágenes muestra para el análisis se encuentran en la Figura 4.15.
TABLA 4.8 ANÁLISIS PARA BÚSQUEDA DE ÁREA EN PORTERÍAS INCOMPLETAS
Imagen Distancia en pixeles de cm a
poste
Número de pixeles de portería incompleta
Número de pixeles de portería completa
1 29 2483 4216 1.698
2 21 2581 4684 1.815
3 16 1893 3884 2.052 4 41 1598 2039 1.276
5 35 2340 3423 1.463
6 32 1733 3168 1.828
7 24 2264 4410 1.948
8 26 1942 3358 1.729
9 16 2176 4069 1.87
10 13 2083 3849 1.848
Con y
se realizó una regresión lineal para encontrar la función que describe a , con
los datos de la Tabla 4.8 se obtuvieron los siguientes parámetros, pendiente m = -0.201 y
constante b = 2.294. La ecuación 4.16 muestra la función para encontrar .
( )
( )
El factor de estimación es usado siempre y cuando la imagen contenga una portería
incompleta y da con ello una mejor aproximación sobre el tamaño de ésta. De este modo se
cubre una mayor parte de la cancha donde el robot puede reconocer los objetos que se
encuentran a su alrededor.
4.5 IMPLEMENTACIÓN EN EL ROBOT
Los métodos de identificación de objetos y estimación de distancias se descargaron e
implementaron en el programa general del robot humanoide. Recordemos que los métodos
propuestos necesitan de un ejercicio de calibración para poder entregar resultados correctos.
93
A fin de poder realizar esta calibración de una manera sencilla, precisa y efectiva se
desarrolló una herramienta de calibración por medio de una interfaz en LabView®. Esta
herramienta se usa una vez que ya se definieron los parámetros de segmentación para los
colores de interés.
Dentro de la interfaz es posible ajustar en línea los parámetros y rangos de los algoritmos
propuestos. En el caso de la identificación de objetos se pueden calibrar visualmente los
factores de relación ( ,
,
) y de ruido (
,
) para cada uno
de los elementos analizados. Además se tiene la ventaja de que al ser una herramienta con
adquisición de imágenes en línea se puede especificar con rapidez y efectividad la tolerancia
al ruido en la detección de objetos para las condiciones particulares de algún ambiente de
juego. Los resultados se presentan al momento y en caso de identificar algún objeto,
inmediatamente aparece sobre la imagen una etiqueta con el nombre del elemento
encontrado, esta etiqueta se coloca justo en la coordenada del centro de masa del objeto.
Para el caso de estimación de distancias, la herramienta también permite al usuario definir
los factores de las ecuaciones características de conversión. Como se explicó en la Sub-
Sección 4.3.2, a fin de encontrar dicha ecuación, es necesario conocer los valores de las
constantes , y . En la práctica, se siguen los pasos descritos a continuación a fin de
encontrar estas constantes con ayuda de la interfaz de identificación.
1. Se coloca al robot en una distancia intermedia donde se pueda ver solamente un
objeto completo, una vez colocado en esta posición se cargan los parámetros de
segmentación y se corre la herramienta de identificación.
2. Recordemos que las constantes y corresponden a los lados del objeto de interés
o a su área, por lo que en un ambiente sin ruido, el producto de y corresponderá
a la totalidad observada de pixeles segmentados.
3. Sin mover al robot, se mide la distancia en centímetros a la cual se encuentra éste del
objeto en cuestión y se ingresan esta información a la interfaz.
4. En este momento la herramienta calcula el factor de caracterización ( √ ) para la
ecuación de estimación de distancias. Teóricamente una foto es suficiente para
encontrar esta constante, sin embargo, el usuario debe validar dicha ecuación al
evaluarla en diferentes distancias dentro de la cancha, en caso de detectar alguna
inconsistencia o valores incorrectos se regresa al segundo punto desde otra ubicación
del robot.
5. Los cuatro puntos anteriores se realizan para cada uno de los objetos de interés en el
campo de juego.
94
Una vez que se configuran todos los factores relacionados a la identificación de objetos y
estimación de distancias, la herramienta ofrece la funcionalidad de guardar estos valores en
un archivo de configuración (un archivo de texto), el cual posteriormente se puede cargar en
el programa principal de juego. También es posible cargar una configuración previamente
guardada en la herramienta de identificación a fin de realizar modificaciones o acoplar
valores a diferentes condiciones del ambiente.
FIGURA 4.16 INTERFAZ DE IDENTIFICACIÓN
El correcto ajuste de los parámetros antes mencionados es importante para realizar las tareas
de alto nivel como es la localización del robot, navegación y ejecución de estrategias de juego.
4.6 RESULTADOS EN IDENTIFICACIÓN DE OBJETOS
El método propuesto para diferenciar entre los cuatro elementos de interés en la cancha
ofreció resultados satisfactorios tanto para la configuración según el reglamento de 2009,
como para la configuración de 2010/2011. Al contar con un campo de visión horizontal en la
lente de 60° resulta difícil encontrar situaciones en la cancha en que se visualicen dos objetos
en una misma imagen y cuando esto llega a ocurrir, sucede entre alguna marca de referencia
lateral con alguna portería, en estas situaciones el algoritmo desprecia la imagen captada y en
el caso de la rutina de localización se continúa con el barrido horizontal, de tal forma que los
objetos siempre pueden verse de manera independiente.
Una vez que se implementaron y configuraron los algoritmos en el robot Bogobot, se
realizaron algunas pruebas. En la primera de ellas, con el robot estático, se tomaron cien
imágenes en donde el robot debía reconocer si encontraba algún objeto. En 96 de las 100
95
imágenes el robot acertó en la identificación, en dos imágenes el robot confundió el elemento
observado (referencia lateral amarilla en lugar de referencia lateral azul) y en otros dos casos
el robot no reconoció el objeto observado, (debido a la lejanía de éste).
Se realizó la misma prueba pero ahora con el robot en movimiento, al evaluar un total de 50
imágenes el robot reconoció correctamente 45, en las imágenes restantes el robot confundió
los objetos o no los detectó.
( )
( )
Para el caso de estimación de distancias mediante análisis de área, se tomaron un total de 60
imágenes con el robot desde diferentes posiciones estáticas. Se calculó el error relativo
mediante la ecuación 4.18, comparando la distancia real de los objetos con la estimada por el
robot. Algunos de los resultados se presentan en la Tabla 4.9. De las 60 imágenes se
obtuvieron errores relativos de hasta , la fuente de error proviene principalmente de
ruido exterior en el campo. El sistema es más susceptible a tener un mayor error de
estimación cuando los objetos se encuentran a una distancia lejana tal que los objetos ocupen
solo algunos pixeles en la imagen, por lo que el ruido externo influye de mayor manera que en
imágenes donde los objetos ocupan una gran área de pixeles.
TABLA 4.9 RESULTADOS EN ESTIMACIÓN DE DISTANCIA A OBJETOS
Objeto Distancia Real en
cm Distancia Estimada
en cm Error relativo (%)
Portería amarilla 300 311 -3.666666667
Referencia amarilla 227 219 3.524229075
Referencia azul 127 134 -5.511811024
Portería azul 316 327 -3.481012658
Portería amarilla 316 298 5.696202532
Referencia amarilla 327 310 5.198776758
Referencia amarilla 196 204 -4.081632653
Portería amarilla 461 490 -6.290672451
Referencia azul 360 385 -6.944444444
Portería azul 180 170 5.555555556
Se realizó el mismo procedimiento para medir el error en la estimación de distancia para
porterías incompletas por el método propuesto en la Sección 4.4. En este caso se tomaron un
total de 20 imágenes. Una muestra de los resultados se presenta en la Tabla 4.10. El error
96
relativo obtenido en estas imágenes fue de hasta , la principal fuente de error en este
caso se relaciona con la porción de portería observada.
TABLA 4.10 RESULTADOS EN LA ESTIMACIÓN DE DISTANCIAS PARA PORTERÍAS INCOMPLETAS
Objeto Distancia Real en
cm
Distancia estimada en
cm
Error relativo (%)
Portería amarilla 84 96 -14.28571429
Portería amarilla 136 119 12.5
Portería amarilla 65 53 18.46153846
Portería amarilla 98 89 9.183673469
Portería amarilla 100 116 -16
Portería amarilla 148 160 -8.108108108
Portería amarilla 133 121 9.022556391
Portería amarilla 122 140 -14.75409836
Portería amarilla 117 127 -8.547008547
Portería amarilla 76 62 18.42105263
Se puede concluir que el robot se comporta de manera fiable en el reconocimiento de objetos,
en particular cuando el robot tiene poco movimiento. Se propone para fines de localización
realizar un barrido horizontal de búsqueda de objetos, centrando la cámara en cada
referencia que encuentre, de esta manera aumentará la eficiencia en el reconocimiento de
objetos. En la cuestión de estimación de distancias, se encontró un error relativo del 8%, si
bien este error impide que el robot deduzca su distancia a un objeto con precisión de
milímetros, es posible utilizar los métodos descritos en este capítulo a fin de que sirvan como
entrada a un sistema de localización. Con esto se pretende que el robot pueda inferir el lugar
o región en el que se encuentra, el desarrollo y resultados al respecto se encuentran en el
siguiente capítulo.
Finalmente, en relación al algoritmo propuesto para la aproximación de área en porterías
incompletas, después de ejecutar las pruebas de precisión se encontró un error mayor que en
la estimación que no involucra este procedimiento. Debido a esto, aunque en estas imágenes
es mejor emplear este algoritmo que mantener el número original de pixeles, en los procesos
de localización que se propongan en el siguiente capítulo se dará preferencia a las porterías
que se encuentren de forma completa, utilizando la información de porterías incompletas
sólo como último recurso.
Hasta ahora con los algoritmos propuestos, el robot es capaz de identificar las porterías y
patear a gol, sin embargo, si el robot conoce su localización es posible tomar diferentes
97
decisiones dependientes de la ubicación de éste. En el próximo capítulo se abordará el
problema de estimación de posición y orientación por parte del robot dentro de la cancha y se
evaluará una estrategia de navegación para llegar de manera eficiente a cualquier punto
determinado en el campo.
98
5 LOCALIZACIÓN Y NAVEGACIÓN
En el capítulo anterior se abordó el problema de identificación y extracción de características
para los objetos con posición fija dentro del terreno de juego. Además de que esta
información es útil para realizar tareas básicas en un partido como el encontrar la portería
contraria, también resulta fundamental para la correcta ejecución de rutinas de mayor nivel
como es la toma de decisiones en base a la localización del robot. El poder definir la ubicación
de los humanoides dentro de la cancha abre un abanico de opciones para elaborar estrategias
o tomar decisiones basadas en la posición y/u orientación del robot o de sus compañeros de
equipo. Para poder determinar la localización de un robot en la cancha es necesario observar
el entorno y en base a las características observadas, estimar una ubicación. Es aquí donde la
identificación de objetos cobra una relevancia especial ya que es el punto de partida para las
funciones de localización y entre más fiable sea la información de identificación contaremos
con una estimación de posición y orientación más precisa.
En el presente capítulo se detalla la forma en que se realizó el algoritmo de localización así
como su implementación en los robots humanoides. Una vez que se comprobó el
funcionamiento de los algoritmos propuestos se procedió a programar una rutina sencilla de
navegación donde el robot debía localizarse en el terreno de juego y realizar los movimientos
necesarios para llegar a una posición y orientación final previamente definidos,
particularmente esta rutina tiene una aplicación directa en el estado “Ready” de un partido
oficial, ya que se requiere que cuando los robots se encuentren en este estado, se dirijan a sus
respectivas posiciones iniciales para el comienzo o reanudación del encuentro. La realización
de esta rutina también se explica en las siguientes líneas.
Es importante mencionar que a lo largo del presente capítulo durante los procedimientos de
localización y navegación del robot, se hará mención de diversas posiciones y coordenadas
dentro del terreno de juego, para esto se utilizará como referencia la convención del sistema
coordenado bidimensional mostrado en la Figura 5.1, donde el origen se encuentra en la
esquina derecha de la portería azul y el terreno de juego se encuentra en el primer cuadrante
del sistema coordenado (cualquier coordenada dentro de los límites de la cancha tiene valor
positivo).
5.1 POSICIONAMIENTO POR TRIANGULACIÓN.
Una vez que se tiene la información sobre los objetos vistos en la cancha, se procede con el
diseño de los algoritmos de localización. Existen dos métodos diferentes desde los cuales se
99
puede dar solución al problema de localización autónoma de robots móviles, éstos son los
Métodos Probabilísticos [12] [33] [34] y los No Probabilísticos [13] [35]. Para el desarrollo de
esta tesis se eligió utilizar un Método No Probabilístico debido a que resulta sencillo de
implementar y depurar para un buen desempeño en condiciones de juego; además, esta
técnica resulta útil como punto de partida para futuras investigaciones al respecto.
Uno de los métodos de posicionamiento No Probabilísticos usados con mayor frecuencia [13]
[35] [40] y que además bajo condiciones ideales presenta resultados exactos, es un método
geométrico que consiste en hallar un triángulo cuyos vértices están formados de la siguiente
manera: los primeros dos vértices corresponden a dos referencias espaciales fijas en el
ambiente cuya ubicación es totalmente conocida y el tercer vértice es la posición en que se
encuentra el robot. A este razonamiento se le conoce como método de posicionamiento por
triangulación. Para el caso particular de los robots humanoides jugadores de futbol, tenemos
cuatro referencias con ubicaciones fijas y totalmente conocidas dentro del ambiente de juego:
la portería amarilla, la portería azul, la marca de referencia lateral amarilla y la marca de
referencia lateral color azul.
FIGURA 5.1 SISTEMA COORDENADO UTILIZADO EN EL TRABAJO DE TESIS
Existen varias maneras de determinar las características para el triángulo de interés y con
ello estimar la coordenada espacial en que se encuentra el robot en el entorno, esto depende
de la información de entrada con que se disponga (tipos de sensores), en especial se
revisarán dos técnicas aplicables y válidas para el tipo de hardware permitido en la categoría
Kid-Size de RoboCup, la primera de ellas se basa en información de un sensor de orientación
y el reconocimiento de objetos, mientras que el segundo está basado en la identificación más
la distancia a la que los objetos se encuentran. Es importante mencionar que los métodos que
100
a continuación se describen necesitan ubicar por lo menos un par de referencias para
completar el triángulo característico y con ello generar una solución.
5.1.1 TRIANGULACIÓN POR DOS ÁNGULOS - UNA ORIENTACIÓN
Una primera opción para realizar la triangulación consiste en obtener información a partir de
un sensor de orientación en el eje perpendicular con respecto al plano terrestre, esto lo puede
hacer fácilmente una brújula electrónica. Este sensor nos brinda el ángulo que guarda el
robot con respecto al norte magnético del planeta, esta información se puede entonces
ajustar para referenciarla a un eje fijo propio del ambiente.
( )
La ecuación 5.1 se refiere al ajuste necesario para referenciar el ángulo medido al sistema
coordenado del campo . Donde,
es el ángulo de orientación del robot con respecto al norte terrestre,
es el ángulo de orientación del robot con respecto al eje X de la cancha,
es el ángulo entre el norte terrestre y el eje X del campo de juego.
Este ángulo ajustado corresponde directamente a la orientación del robot en el terreno
de juego. Se supone un sensor de orientación que entrega una medida positiva entre 0 y 360°,
el ángulo también se ajusta entre 0 y 360. La Figura 5.2 ilustra este ajuste.
FIGURA 5.2 AJUSTE DE ÁNGULO TERRESTRE A SISTEMA COORDENADO DEL CAMPO
Para poder determinar la posición del robot, se busca desde una ubicación fija en el campo
dos puntos de referencia ya sean marcas laterales o porterías. Una vez que se encuentran
estos puntos se calcula la diferencia entre la orientación general del robot y el ángulo al que
101
está viendo cada objeto, con esto se determina el ángulo general con respecto a la cancha de
la línea que une al robot con la referencia. La Figura 5.3 y las ecuaciones 5.2 y 5.3 ilustran el
planteamiento descrito.
( )
( )
Donde es el ángulo del primer objeto y es el ángulo del segundo objeto con respecto al
sistema coordenado del campo.
FIGURA 5.3 TRIANGULACIÓN POR DOS ÁNGULOS - UNA ORIENTACIÓN
Con esta información, podemos definir un sistema lineal de dos ecuaciones con dos
incógnitas. Las dos ecuaciones corresponderán a las funciones que forman cada línea que une
al robot con cada objeto observado. Sean ( ) las coordenadas del primer objeto
identificado, ( ) las del segundo objeto y las pendientes de las funciones lineales
representadas por y . Las ecuaciones 5.4 muestran este sistema. Recordemos que la
pendiente es la razón de cambio entre las abscisas y las ordenadas, por lo que los valores
y se pueden hallar simplemente resolviendo la función tangente del ángulo general y
estimado para cada objeto. Esto se muestra en las ecuaciones 5.5.
( )
102
( )
Las constantes se resuelven sustituyendo los valores de y con la coordenada fija
conocida en la que se ubica cada objeto. De esta manera completamos el sistema y
resolvemos las incógnitas de posición, cabe señalar que la orientación ya se había encontrado
directamente al evaluar la señal de la brújula electrónica. Las ecuaciones 5.6 muestran la
solución final para la estimación de posición del robot (x , y) utilizando el método de dos
ángulos – una orientación, donde los valores , , y son las coordenadas de las
referencias.
( ) ( )
( )
( ) ( )
Esta solución se probó de manera satisfactoria en simulaciones realizadas en el robot, sin
embargo, su aplicación no fue posible debido a que los servomotores con los que cuenta el
robot inducen un alto grado de ruido electromagnético produciendo inestabilidad en las
lecturas de la brújula electrónica. Hasta el momento de la redacción de esta tesis no fue
posible encontrar un sensor capaz de manejar de forma efectiva esta problemática, sin
embargo, este algoritmo de localización produce resultados precisos, fiables y con una lógica
sencilla por lo que se puede transportar a otra plataforma robótica o incluso montarse en los
robots humanoides en un futuro próximo.
Aunque el método de Dos Ángulos – Una Orientación resulta no ser viable actualmente en la
práctica, existe otra forma de realizar una triangulación sin necesidad de usar un sensor de
orientación, sino simplemente recabando información de los objetos observados. En las
próximas líneas se abordarán los detalles de esta metodología.
5.1.2 TRIANGULACIÓN POR TEOREMA DEL COSENO
Cuando no se puede tener información por parte de una brújula electrónica, todavía es
posible determinar la posición de un robot mediante la extracción de características de los
objetos encontrados. Una alternativa consiste en identificar un par de referencias en la
cancha con posición fija, y a partir de ello determinar la distancia que guarda el robot para
103
cada una de éstas. Como la ubicación de los elementos de referencia es conocida y se tiene la
información sobre la distancia horizontal (sobre el suelo) que mantienen con el robot, se
puede aplicar una solución basada en el teorema del coseno (ecuación 5.7 y Figura 5.4), el
cual relaciona la longitud de los lados de un triángulo con el ángulo opuesto a alguno de los
lados.
( )
En una situación dada donde el robot encuentra un par de referencias fijas en el campo, se
construye un triángulo cuyos vértices se componen por la ubicación del par de referencias y
la posición del robot. La longitud de los lados para el triángulo propuesto son conocidos, ya
que corresponden a las distancias estimadas del robot a las referencias y la tercer longitud se
conoce previamente debido al conocimiento de la distribución de referencias en el campo de
acuerdo al reglamento de juego.
FIGURA 5.4 NOMENCLATURA EN ECUACIÓN DE TEOREMA DEL COSENO
El proceso de estimación varía en algunos parámetros dependiendo de cuáles marcas de
referencia se estén observando. A continuación se describe el proceso para una situación
ejemplo a fin de comprender de mejor manera el razonamiento de solución. Tomaremos la
siguiente situación, un robot ubicado dentro de la cancha que ha identificado dos objetos: una
portería azul (en coordenada ( , )) y la marca de referencia lateral amarilla (en
coordenada ( , )), (el algoritmo general para la estimación de posición y orientación se
encuentra en el Anexo E).
1. Se identifican los dos elementos en la cancha y se obtienen las distancias que guardan
con respecto al robot ( y
), debido a que la posición de los objetos es fija, la
tercer longitud ( ) entre las referencias es conocida, simplemente se debe obtener
la distancia absoluta entre estos dos puntos mediante el teorema de Pitágoras
(ecuación 5.8).
104
√( )
( ) ( )
2. Se calcula el ángulo del vértice correspondiente a cada marca de referencia utilizando
la expresión despejada para el ángulo en el teorema de cosenos. En este ejemplo
definiremos como al ángulo correspondiente a la portería azul y nombraremos al
ángulo del vértice para la marca de referencia amarilla.
FIGURA 5.5 TRIANGULACIÓN POR TEOREMA DE COSENOS
3. Ahora debemos referenciar los ángulos encontrados a los ejes principales que se han
definido en la cancha. Se puede observar que tanto los ángulos y parten
justamente de la línea que une los dos objetos encontrados. También es importante
notar que la longitud y posición de esta línea es una constante ya que los objetos
están fijos, por lo que se conocen previamente los ángulos y (ecuaciones 5.9 y
5.10) que guarda la línea de distancia con respecto a los ejes X y Y del sistema
coordenado en el campo.
(
)
( )
(
)
( )
105
Para el caso particular del ejemplo que se está abordando, se obtiene el ángulo total
que mantiene la línea entre la portería y el robot con respecto al eje Y de la
cancha; se puede ver que este ángulo está compuesto por y . Sin embargo, existen
dos soluciones a este problema, ya que el robot puede recabar la misma información
de distancias desde dos posiciones diferentes como se muestra en la Figura 5.5. La
otra probable posición se forma mediante un nuevo triángulo en espejo con el
anterior tomando a la línea que une las referencias como eje de simetría. Esto se
valida mediante una condicional que verifique cuál referencia se encuentra a la
derecha de la otra visto desde la perspectiva del robot. Con esta información se resta
o se suma el ángulo del ángulo y se obtiene el ángulo final . El procedimiento
descrito se presenta en las ecuaciones 5.11 y 5.12 donde y corresponden a los
ángulos en los que el robot ve la portería y la marca de referencia respectivamente, la
obtención de estos ángulos se aborda en la Sección 4.2.
(
) ( )
(
) ( )
4. Con el ángulo se define la componente en X de la posición del robot. Simplemente
se obtiene el seno del ángulo y se multiplica por la distancia . Debido a que la
posición en X de la portería es igual a cero, el resultado obtenido es directamente la
estimación de la posición del robot en X.
( ) ( )
( ) ( )
5. Para hallar la posición en Y, se utiliza el mismo proceso descrito en el punto número
tres pero ahora los ángulos se referencian al eje X del sistema coordenado, es decir, se
utiliza el ángulo formado entre la línea que une las referencias y el eje X. Además
106
ahora se utiliza el ángulo para encontrar al ángulo final . Nuevamente se valida
cuál de las dos soluciones de posición es la correcta mediante la misma comparación
mencionada en el tercer punto. De esta manera se obtiene el seno del ángulo
definido y se multiplica por la distancia . Con esto se encuentra la posición en Y del
robot con respecto a la marca de referencia . Por último, al tratarse de la
referencia lateral amarilla cuya componente de posición en Y es igual a , se resta
el valor de a y con ello finalmente se deduce la posición del robot en Y con
respecto al sistema coordenado de referencia.
FIGURA 5.6 POSICIONAMIENTO FINAL DE ROBOT
La misma metodología es aplicable a cualquier par de objetos encontrados en la cancha, sin
embargo, cada conjunto posee sus propios valores de longitud en las líneas de unión entre
referencias, diferentes ángulos a los ejes principales y diferente posición, lo cual debe ser
tomado en cuenta para la correcta estimación final referenciado al sistema coordenado
previamente definido. Cabe recordar que los ángulos, coordenadas y longitudes son
constantes durante todo el partido, por lo que estos datos se conocen totalmente, y por ello es
posible implementar una rutina que reconozca qué valores utilizar en cada caso. El algoritmo
completo de localización se encuentra en el anexo E.
5.2 ESTIMACIÓN DE ORIENTACIÓN
Con los algoritmos vistos en el apartado anterior es posible determinar la posición del robot
en cualquier punto del campo de juego, e incluso en áreas fuera de éste, solamente basta con
107
identificar al menos dos referencias en el ambiente. Sin embargo, si deseamos que el robot se
desplace de un punto a otro en la cancha no basta con saber la posición sino que es preciso
conocer también la orientación que el robot mantiene en el campo, es decir, el ángulo en
que el robot se encuentra con respecto al sistema coordenado de referencia. De esta manera
se tendrá completo el módulo de localización (posición y orientación del robot).
La información que se ha obtenido hasta el momento en el proceso de estimación de posición
servirá también como entrada en la rutina de orientación. Además de estos datos, es preciso
conocer los ángulos con respecto al robot en los que se encuentran las referencias
identificadas. A continuación se detallan los pasos a seguir para calcular la orientación de un
robot teniendo como datos de entrada la posición del sistema ( ) obtenidos en la Sección
anterior, una distancia hacia alguna referencia (
) obtenidos en la Sección 4.3 y el
ángulo que ésta guarda con respecto al frente del robot ( ) obtenido en la Sección 4.2.
Se retomará el ejemplo expuesto en el apartado anterior donde el robot identificaba una
portería azul y una marca de referencia lateral color amarillo.
1. Se utilizará en primera instancia información sobre la portería azul. Se obtiene la
distancia paralela al eje X a la que se encuentra la portería con respecto al robot ( )
y se divide entre la distancia estimada .
FIGURA 5.7 SISTEMA DE ORIENTACIÓN
2. Del resultado anterior se obtiene el coseno inverso y se arma un condicional que
verifique si la posición en Y del robot ( ) se encuentra por arriba o por debajo
(mayor o menor) de la posición en Y de la portería ( ). En caso de que el valor sea
108
menor, se resta de 180° o radianes el ángulo . En caso contrario estos valores se
suman. La Figura 5.7 muestra el razonamiento de este procedimiento.
3. El ángulo ajustado se suma al ángulo formado entre la línea portería – robot y
la línea paralela al frente del robot. De esta manera tenemos el ángulo total del
robot referenciado al sistema coordenado.
4. Los pasos anteriores se repiten para el caso de la segunda referencia (marca lateral
amarilla) pero en esta ocasión se obtiene la distancia paralela al eje Y ( ).
Nuevamente se obtiene el coseno inverso y se arma la condicional evaluando esta vez
la posición en X del robot ( ) en relación a la posición en X de la marca lateral
( ). En caso que el valor sea mayor, se suma
al ángulo encontrado, en caso
contrario se resta, con lo que obtenemos el ángulo de la marca con respecto al
sistema de referencia. Finalmente se suma al ángulo obtenido el ángulo
formado entre las rectas marca – robot y la paralela al frente del robot. Con esto
tenemos una nueva solución para el ángulo total.
5. Podemos ver que es posible deducir una orientación del robot para cada referencia
encontrada. Esto robustece la solución final ya que se puede obtener una media de los
resultados obtenidos y con ello llegar a una salida única .
Con esta rutina se completa la solución de las componentes del sistema de localización:
posición bidimensional y orientación en plano terrestre. La rutina completa de localización
ejecutada en los robots humanoides se presenta en el Anexo E de este documento. En el
siguiente apartado se describe la forma en que todo esto se ha implementado en los robots
para su aplicación en condiciones reales.
5.3 IMPLEMENTACIÓN DE SISTEMA DE LOCALIZACIÓN EN ROBOT BOGOBOT
Los algoritmos mostrados en el apartado anterior se probaron primeramente bajo un
ambiente simulado en condiciones ideales, una vez que se validaron todas las situaciones con
éxito, se procedió a transportar las rutinas generadas a un programa dentro del robot para su
ejecución en condiciones reales.
Como se vio anteriormente la completa localización del robot requiere de dos datos para cada
referencia observada: distancia con respecto al robot y el ángulo con respecto al frente del
robot. Estos datos deben ser recabados para al menos dos referencias estando el robot en la
misma posición y orientación. Para esto se preparó un programa donde el robot permanece
109
en una ubicación fija y entonces éste comienza a rotar su cabeza en búsqueda de objetos de
interés, de esta manera se logra que el robot mantenga una referencia fija en cuanto a la
orientación.
Una vez que el robot está fijo en algún punto del campo, éste comienza a realizar un barrido
del área circundante mediante la rotación de su cabeza. Mecánicamente, los robots poseen
una libertad de movimiento en el eje Z (guiñada) de . Además el campo de visión
horizontal de la imagen ( ) alcanza los 60°. Por lo que tenemos un ángulo efectivo de visión
alrededor del robot de , donde se toma como 0° la posición inicial de la cabeza del
robot cuando está girando hacia el frente.
FIGURA 5.8 BARRIDO EN ROTACIÓN DE LA CABEZA ALREDEDOR DEL EJE Z
El barrido se realiza de izquierda a derecha (sentido ascendente en la medición de ángulo
Figura 5.8) capturando una imagen cada intervalo de °, (menor al ángulo del campo de
visión de manera que no existan regiones ciegas, si el robot toma imágenes a 10 cuadros por
segundo, se sugiere un valor para de 10° de manera que se realice un barrido en poco
menos de 10 segundos). Se continúa de esta manera hasta que se identifica un objeto de
interés, momento en el cual el robot intenta centrar al objeto dentro de la imagen y se calcula
el ángulo “ ” que la referencia guarda con respecto al frente del robot (0°). Es importante
señalar que el ángulo total que el objeto guarda con respecto al frente del robot se compone
de dos partes, tal como se explicó en la Sección 4.2. La primera de ellas corresponde al ángulo
rotado físicamente por la cabeza en el eje Z, al cual denominamos “ ” y el segundo se refiere a
la diferencia de ángulo que mantiene el objeto observado en la imagen con respecto al
centro de la misma (el robot intenta centrar el objeto en la imagen pero en los casos donde
los límites mecánicos de la cabeza impiden girar más, entonces existe un valor ).
110
Se toman varias imágenes para cada objeto en particular hasta llegar a un número
(alrededor de 10 imágenes), recabando para cada una información acerca de su ángulo y
distancia con relación al robot después de lo cual se obtiene una media que definirá a los
valores finales para esa referencia. Una vez hecho esto se continúa con el barrido a fin de
identificar tantos objetos como sea posible, repitiendo el procedimiento descrito
anteriormente. Al finalizar con el recorrido se ingresan los datos obtenidos al algoritmo de
localización y se realiza el cálculo para la estimación de posición y orientación.
5.4 NAVEGACIÓN
A fin de comprobar la efectividad del algoritmo de localización bajo una situación real, se
programó una rutina básica de navegación cuyo objetivo es indicar al robot los movimientos
necesarios para desplazarse de la posición actual a otra región definida dentro del campo de
juego. Esta situación tiene una aplicación real durante un partido cuando los jugadores
robóticos entran en la fase de “ready”, donde se desea que los robots se desplacen hasta una
región inicial para el comienzo o reanudación del partido después de alguna anotación.
DIAGRAMA 5-1 DIAGRAMA DE BLOQUES PARA SISTEMA DE AUTO-POSICIONAMIENTO
El algoritmo de navegación que se propone va de la mano con el algoritmo de localización de
tal manera que el robot sea capaz de trasladarse de un punto a otro de la cancha por cuenta
propia. El Diagrama 5-1 presenta un diagrama de bloques de la rutina completa de auto-
posicionamiento, a partir de una posición y orientación deseadas el robot usa como
retroalimentación la salida del algoritmo de localización y realiza una comparación a fin de
reducir el error de ubicación. Con esto se genera una estrategia de corrección misma que es
enviada a la máquina de caminado, la cual se encarga de desplazar al robot a lo largo del
terreno de juego.
111
5.4.1 DESCRIPCIÓN DE LA MÁQUINA DE CAMINADO EN ROBOTS BOGOBOTS.
Antes de explicar el algoritmo de navegación propuesto, es importante describir el
funcionamiento del sistema de caminado en los robots humanoides Bogobots. El cómputo de
las ecuaciones de cinemática y trayectorias de caminado lo lleva a cabo el procesador
principal de los robots.
Se tienen dos funciones principales que se ocupan de la locomoción. El primero de ellos
recibe como entrada la coordenada tridimensional (XYZ) así como la rotación sobre el eje Z
que se desea tenga cada uno de los pies en el robot, y se encarga de resolver la cinemática
inversa para conseguir el ángulo al que deben rotar los servomotores para alcanzar dicha
posición. La segunda función es de más alto nivel, y recibe como entrada una dirección en la
cual se desea mover al robot, y entonces calcula la trayectoria que deben seguir los pies a fin
de dar un paso en la dirección deseada, al llamar esta función en repetidas ocasiones, el robot
da una serie de pasos, lo que hace que el robot se desplace de un lugar a otro. El conjunto de
estas dos funciones integran la máquina de caminado de los robots Bogobots.
FIGURA 5.9 DIAGRAMA DE SISTEMA DE CAMINADO
Durante un partido de futbol, los algoritmos de decisión y estrategia alimentan a la máquina
de caminado con diferentes direcciones a las que se desea que se mueva el robot. La máquina
de estados programada en los robots permite que éstos se puedan desplazar de forma
omnidireccional en el terreno de juego, esto quiere decir que los robots pueden tener
movimientos holonómicos sobre la superficie del campo, pueden rotar y caminar en
cualquier dirección, incluso en reversa, esto facilita la solución de problemas para
planificación de trayectorias. La Figura 5.9 muestra un diagrama sobre el sistema de
caminado en los robots Bogobots.
Para cualquier dirección de caminado en los robots Bogobots es posible especificar:
La distancia frontal que se desea alcanzar con cada paso.
La distancia lateral que se desea alcanzar con cada paso.
112
La frecuencia de los pasos (pasos / segundo)
La rotación final que se desea obtener con cada paso.
Gracias a la máquina de caminado es posible trabajar en rutinas de más alto nivel que tengan
como salida la dirección a la cual se desea desplazar. La dirección de este caminado se puede
modificar a cada paso dependiendo de las circunstancias del entorno o de la tarea
programada.
El algoritmo de navegación que se propone en la siguiente Sección utiliza la máquina de
caminado para dirigir al robot hacia diferentes puntos dentro del terreno de juego, de manera
que el robot pueda desplazarse de forma autónoma de una localización inicial, a una posición
y orientación deseadas.
5.4.2 DESCRIPCIÓN DEL ALGORITMO DE NAVEGACIÓN
El objetivo del algoritmo de navegación presentado es que un robot sea capaz de trasladarse
de una localización inicial dentro de la cancha a una posición y orientación deseadas. Existen
varias estrategias [45] [46] [47] que son utilizadas para conducir un robot a una posición y
orientación final, estas estrategias varían de acuerdo a las condiciones del ambiente, si
existen o no obstáculos y el tipo de movimientos que pueda hacer el robot. Una de las
ventajas en la locomoción del robot humanoide es que es un sistema omnidireccional, lo que
simplifica las maniobras necesarias para trasladar al robot de un lugar a otro. La estrategia de
navegación que se propone consiste en:
i) Hacer una corrección de ángulo.
ii) Caminar en línea recta hasta el punto deseado.
iii) Hacer una corrección de ángulo para lograr la orientación deseada.
La rutina propuesta asume que el ambiente de juego se encuentra libre de obstáculos y se
basa en hallar el error existente entre la localización actual y la ubicación deseada. Para esto
se descompone al error en dos partes: error de posicionamiento y error de orientación.
Enseguida se presenta la secuencia general del algoritmo mediante una máquina de estados y
a continuación se detallan cada una de las fases.
El robot parte de una posición inicial fija y corre la rutina de localización (Estado a) de la
máquina de estados). En caso de no encontrar referencias suficientes para obtener un
resultado, gira sobre su propio eje un ángulo de 180° y corre nuevamente la rutina de
localización. Debido a que el ángulo de visión para un barrido del robot es superior a 200°
entonces en alguna de las dos orientaciones podrá encontrar al menos dos objetos de
referencia, siempre y cuando el robot esté localizado en un punto dentro o cercano al campo
113
de juego que es el ambiente de interés. Una vez que el robot está localizado se encuentra el
valor del error para las dos componentes, orientación y posición.
DIAGRAMA 5-2 MÁQUINA DE ESTADOS EN ALGORITMO DE NAVEGACIÓN
Con esta información se busca entonces la pendiente de la función que describa a la línea que
une las coordenadas de posición XY actuales y finales deseadas. El objetivo será buscar la
orientación que debe alcanzar el robot a fin de quedar de frente en la dirección que se
encuentra el punto final deseado, esto se ilustra en la Figura 5.10. El ángulo destino será
la tangente inversa de la pendiente hallada.
(
) ( )
( )
Si el robot rota sobre su propio eje el equivalente a la resta de la orientación actual menos la
orientación deseada intermedia llegará a la orientación buscada. Sin embargo esta resta
puede darnos un valor superior a los 180° o inferior a -180°, por lo que es preciso validar esta
situación a fin de que el robot escoja la opción óptima. Esto se logra simplemente al sumar o
restar 180° al valor obtenido para que . El ángulo es después dividido
entre el número grados por paso que da el robot cuando rota, con lo que se obtiene el
114
número de pasos a dar (Estado b) de la máquina de estados). En el caso de los robots
humanoides Bogobots, el valor de se obtiene directamente de los parámetros de
caminado en donde se especifica el grado de rotación que se desea alcanzar con cada paso en
el robot. Generalmente en la implementación de los robots se elige un valor para
ya que este valor satisface el compromiso entre velocidad del robot – precisión de la rotación
deseada. El valor de debe ser entero, por lo que el resultado de la ecuación 5.17 se
redondea hacia el entero más próximo (hacia arriba o hacia abajo).
FIGURA 5.10 ROTACIÓN DE ROBOT HACIA DESTINO FINAL
( )
Una vez que el robot está en dirección a la coordenada deseada se estima la distancia que
debe caminar en línea recta para llegar hasta ahí, esta distancia se obtiene mediante el
Teorema de Pitágoras utilizando las coordenadas de posición actuales y deseadas.
Nuevamente, este valor es convertido al número de pasos que deberá efectuar el robot
para recorrer la distancia objetivo (Estado c) de la máquina de estados). En el caso de los
robots humanoides Bogobots, el valor de se obtiene directamente de los parámetros de
caminado en donde se especifica la distancia en centímetros que se desea alcanzar con cada
paso en el robot. Un valor típico de es 1.5cm ya que con este valor se cumple un
compromiso entre estabilidad del robot, velocidad de caminado y precisión en la cobertura
de la distancia deseada. Nuevamente el valor de en la ecuación 5.19 se redondea al
número entero más cercano.
115
√( ) ( )
( )
( )
Cuando el destino final se ha alcanzado de forma teórica, se corre nuevamente la rutina de
localización y se verifica que el robot haya alcanzado realmente la posición deseada, en caso
contrario, se ejecuta de nueva cuenta el procedimiento de corrección de ángulo y
posicionamiento. Generalmente toma de 3 a 4 ciclos antes de llegar a la posición final
deseada. Esto es debido a que el robot no camina exactamente en línea recta ni alcanza
exactamente la distancia pre-calculada con los pasos dados. Ligeras desviaciones debidas al
suelo o a los motores, hacen que se separe de la trayectoria planeada.
El ciclo se detiene cuando se alcanza la posición deseada con un margen de tolerancia
definido. Se recomienda que este valor de tolerancia sea mayor que el error absoluto que se
tenga en el proceso de localización, para los robots Bogobots este dato se encuentra en la
Sección 5.6. El valor de tolerancia fijado en los robots Bogobots es de 20 cm.
FIGURA 5.11 LLEGADA DE ROBOT A DESTINO EN TRES ITERACIONES
Finalmente, ya que se ha alcanzado la coordenada de posición deseada, se calcula la
diferencia entre la orientación final con la orientación actual, y se hace rotar al robot sobre su
propio eje validando nuevamente la dirección óptima para el giro (Estado d) de la máquina de
estados), en este caso se vuelve a usar la ecuación 5.17 para definir el número de pasos para
116
rotar. De esta manera se alcanza la localización final deseada en sus dos componentes,
posición y orientación.
Cabe señalar que para la implementación del algoritmo en el robot real, se validó también la
probabilidad de caída física del robot durante la ejecución de la rutina, si el robot llega a caer
al suelo durante su caminar, inmediatamente se reincorpora (Estado e) de la máquina de
estados). Debido a la incertidumbre que provoca la caída, no es posible asegurar que la
posición y orientación final de reincorporación sea la misma que la del punto donde el robot
perdió estabilidad, es por ello que una vez que el robot cayó al suelo y se levanta, se repite la
rutina completa de navegación con los parámetros correspondiente a una nueva localización
actual, esto último no representa una pérdida significativa de tiempo, ya que la nueva rutina
de navegación al considerar únicamente la localización actual del robot, no realiza
movimientos redundantes sino que busca directamente la ruta hacia el destino final (Figura
5.11).
5.5 INTERFAZ DE VISUALIZACIÓN
A fin de observar y detectar alguna anomalía de forma más fácil en los algoritmos de
localización y navegación, se programó una interfaz gráfica que permite visualizar desde una
computadora remota, la localización estimada del robot. La herramienta de visualización se
programó utilizando la plataforma de LabView®.
Se diseñó un ambiente virtual en tercera dimensión en el que se añadieron los diferentes
objetos del ambiente, tales como el terreno de juego, las porterías y las marcas de referencia
laterales. Todo esto se dibujó utilizando las herramientas de la librería 3D Picture Control
contenida dentro de la paquetería básica de LabView®, en ella es posible crear diferentes
geometrías tridimensionales y añadirlas a una escena virtual. También se puede determinar
la ubicación espacial y el color de cada uno de los objetos creados, además es posible añadir
superficies, lo cual fue útil para dibujar la alfombra de juego en donde se desenvuelve el
jugador.
Todos los elementos dibujados mantienen una posición fija en la cancha con excepción de las
geometrías que definen al jugador robótico las cuales cambiarán de acuerdo a la localización
recibida. El terreno de juego, así como las referencias y porterías fueron dibujados a perfecta
escala a fin de visualizar una información fiable sobre la localización del robot. Para la textura
de la cancha se incorporó una imagen del terreno de juego dibujada con todos sus elementos
también a escala, es decir, las líneas como el área chica o el círculo central se encuentran
dibujados en las coordenadas exactas del ambiente real.
117
FIGURA 5.12 COMUNICACIÓN REMOTA ROBOT - COMPUTADORA
La interfaz de visualización interactúa con el programa de localización y navegación en el
robot de la siguiente manera: el robot ejecuta la rutina de localización, y una vez que estima
una ubicación, ésta se envía de forma inalámbrica a una dirección IP dentro de la red, para
ello se utiliza el protocolo de comunicación UDP. A fin de que el sistema receptor sea capaz de
recibir la información del robot, es necesario sincronizar el mismo puerto UDP de entrada –
salida en ambos sistemas. El sistema remoto recibe entonces la información de localización, la
interpreta y actualiza la posición y orientación del jugador virtual en el ambiente
tridimensional. Esta animación no representa un mayor consumo de procesamiento en el
robot ya que el despliegue de la visualización lo lleva a cabo directamente la computadora
remota.
FIGURA 5.13 INTERFAZ DE VISUALIZACIÓN PARA LOCALIZACIÓN - NAVEGACIÓN
Dentro de la interfaz de visualización es posible manipular la vista tridimensional del entorno
mediante un mouse u otro dispositivo de entrada como un joystick. Además es posible
modificar el nivel de acercamiento, así como la dirección a la que se está observando.
Finalmente se puede realizar un ajuste de iluminación en el entorno virtual para tener una
mejor vista del ambiente.
118
5.6 RESULTADOS DE LOCALIZACIÓN Y NAVEGACIÓN
En este capítulo se describieron los algoritmos propuestos para localizar al robot desde
cualquier punto del campo, esta solución se implementó físicamente en los robots
humanoides del campus. Para poder funcionar adecuadamente, el algoritmo de localización
necesita información certera referente a los objetos identificados. Se decidió entonces hacer
un barrido horizontal en busca de referencias, y cuando alguna es encontrada, el objeto se
centra en la imagen captada, esto nos provee de un par de ventajas ya que al centrar la
referencia, se disminuye el error proveniente del factor en la ecuación 4.6 del capítulo
anterior y además, al capturar imágenes más estáticas, la calidad de la información recibida
aumenta.
Para el caso de la rutina de localización, los resultados entregados se dividieron en dos
partes, la evaluación de la exactitud en la estimación de posición y la certeza en la estimación
de la orientación. Para el caso de la posición, se consideró evaluar el error de la diferencia
neta entre la coordenada hallada y la coordenada real. Esto se muestra en la ecuación 5.20.
√( ) ( )
( )
Para evaluar el error de localización se posicionó al robot en 20 ubicaciones diferentes y se
corrió la rutina de localización. La Tabla 5.1 muestra un conjunto de 10 pruebas, la cuales
contienen información sobre la posición real y la posición estimada por el robot. El error
obtenido para la estimación de posición oscila entre con respecto a la coordenada
real. La fuente de error se encuentra en la correcta estimación de distancias.
TABLA 5.1 ERROR DE POSICIÓN EN PRUEBAS DE LOCALIZACIÓN
Posición X Real (cm)
Posición Y Real (cm)
Posición X Estimada (cm)
Posición Y Estimada (cm)
Error (cm)
300 130 311 128 11.1803399
60 100 58 108 8.24621125
525 50 517 62 14.4222051
310 200 301 206 10.8166538
414 206 415 201 5.09901951
426 123 421 119 6.40312424
370 185 371 199 14.0356688
441 334 435 328 8.48528137
514 326 516 311 15.132746
344 301 355 311 14.8660687
119
Para evaluar la orientación estimada también se consideró tomar el error entre el ángulo
estimado y el ángulo real del robot, en este caso el error es simplemente la resta entre los dos
valores mencionados, esto se muestra en la ecuación 5.21.
( )
Nuevamente, se realizó un conjunto de pruebas para determinar el error en la estimación de
la orientación. Se tomaron 20 ubicaciones diferentes en el campo y se llevó un registro de la
orientación real y la orientación estimada en cada caso. Se presentan resultados en la Tabla
5.2. El error obtenido fue de , las fuentes de este error son la calibración de los factores
y relacionados con el ángulo estimado de las referencias en las ecuaciones 4.6 y 4.4
respectivamente así como el ruido presente en la identificación de objetos.
TABLA 5.2 ERROR DE ORIENTACIÓN EN PRUEBAS DE LOCALIZACIÓN
Orientación Real
Orientación Estimada
Error
350 359 9
135 137 2
120 130 10
180 178 -2
190 196 6
190 195 5
165 162 -3
100 91 -9
130 124 -6
210 217 7
Para el algoritmo de navegación se utiliza una rutina iterativa de manera que el robot se
acerca cada vez más a la localización deseada, sin embargo, para evitar que este ciclo se repita
de forma indefinida, se fija una tolerancia a partir de la coordenada deseada para dar como
concluido el proceso de navegación. Las fuentes de error que pueden impedir que el robot
llegue a la localización deseada en el primer intento son los factores y los cuales
están relacionados con la precisión en los pasos del robot, y con la estabilidad del mismo. Sin
embargo, cabe señalar que al ser un proceso iterativo, el robot siempre alcanzará la
localización final en la rutina de navegación. Se realizó un conjunto de pruebas a fin de
verificar el comportamiento del robot en las rutinas de navegación. A continuación se
120
muestran algunos resultados de las pruebas efectuadas. En los ejemplos siguientes se coloca
al robot en una posición y orientación determinadas y el robot deberá alcanzar el centro del
campo con una orientación final de 0° (apuntando hacia la portería amarilla).
i) El robot inicia en la posición (168,235) con una orientación de 20°. El robot debe
alcanzar el centro del campo con una orientación final de 0°.
Resultado: El robot realizó 3 iteraciones del ciclo de navegación, no se cayó, tardó
1 minuto con 23 segundos y el error final fue de 13 cm para la posición y 10° en la
orientación.
ii) El robot inicia en la posición (474,216) con una orientación de 100°. El robot debe
alcanzar el centro del campo con una orientación final de 0°.
Resultado: El robot realizó 2 iteraciones del ciclo de navegación, se cayó 1 vez,
tardó 1 minuto con 18 segundos y el error final fue de 10 cm para la posición y 4°
en la orientación.
FIGURA 5.14 LOCALIZACIÓN REAL VS. LOCALIZACIÓN ESTIMADA
iii) El robot inicia en la posición (88,356) con una orientación de 315°. El robot debe
alcanzar el centro del campo con una orientación final de 0°.
Resultado: El robot realizó 2 iteraciones del ciclo de navegación, no se cayó, tardó
57 segundos y el error final fue de 14 cm para la posición y 9° en la orientación.
iv) El robot inicia en la posición (136,70) con una orientación de 330°. El robot debe
alcanzar el centro del campo con una orientación final de 0°.
121
Resultado: El robot realizó 4 iteraciones del ciclo de navegación, se cayó 2 veces,
tardó 1 minuto con 20 segundos y el error final fue de 24 cm para la posición y 8°
en la orientación.
v) El robot inicia en la posición (523,348) con una orientación de 270°. El robot debe
alcanzar el centro del campo con una orientación final de 0°.
Resultado: El robot realizó 3 iteraciones del ciclo de navegación, no se cayó, tardó
1 minuto con 54 segundos y el error final fue de 12 cm para la posición y 7° en la
orientación.
En un principio, se había considerado que el robot verificara su localización cada que éste
girara sobre su propio eje o caminara de frente, sin embargo en pruebas reales se observó
que el robot generalmente alcanzaba con certeza el ángulo deseado, por lo que se hizo
innecesaria la doble verificación, ahora el robot realiza este chequeo solamente al finalizar los
pasos frontales, de esta manera se disminuye el tiempo de llegada al destino final.
Actualmente, por lo regular el robot tarda menos de dos minutos en llegar a cualquier punto
de la cancha.
El robot generalmente realiza entre 3 y 4 iteraciones para alcanzar el destino final, en caso de
caer, una nueva iteración comienza. Con el algoritmo propuesto el robot llega en un tiempo
corto hasta el destino final, aun cuando el robot cae, el tiempo de llegada permanece por
debajo de los 2 minutos. Cabe mencionar que la rutina del robot no para hasta que se alcanza
la localización deseada, lo cual se logró en el 100% de las pruebas.
122
6 CONCLUSIONES
En el presente trabajo de tesis se logró dotar a los robots humanoides Bogobots de un
sistema de visión robusto que utiliza un sistema de segmentación basado en color haciendo
uso de agrupamiento en regiones elipsoidales dentro del espacio de color. Además se
consiguió reconocer los diferentes objetos de la cancha tales como porterías y marcas de
referencia con lo que se hizo posible realizar un algoritmo de localización basado en
triangulación y posteriormente aplicar esta información mediante el diseño de una rutina de
auto-posicionamiento la cual conduce al robot desde una localización inicial hasta una
posición y orientación deseadas.
Con lo anterior se consiguió cumplir con el objetivo principal presentado al inicio de este
trabajo en el que se contemplaba el desarrollo de un sistema de visión que ayudara a la
localización y navegación de un robot humanoide a través de la propuesta de diferentes
algoritmos para el procesamiento de imágenes con características basadas en el color.
Todos los algoritmos y rutinas presentadas en la presente tesis fueron probados y evaluados
a fin de determinar la factibilidad de su uso, así como el de demostrar su utilidad y efectividad
en situaciones reales. Afortunadamente, gracias a los patrocinios conseguidos durante el
trabajo de investigación y el apoyo por parte del instituto, se tuvo oportunidad de participar
en diversos eventos y con ello fue posible compartir las experiencias adquiridas y a la vez
comparar los alcances de los robots Bogobots en relación al desempeño de robots
pertenecientes a otros centros de investigación de prestigio a nivel tanto nacional como
internacional.
Durante el presente trabajo de investigación se realizó un estudio sobre las necesidades de
los robots humanoides en el campus y se detectaron áreas de mejora. En 2008, antes de
comenzar con el trabajo de tesis aquí presentado, se tuvo la primera participación en un
evento de RoboCup dentro de la categoría de robots humanoides. Al evaluar el desempeño de
los robots en esta primera experiencia, se concluyó que el desarrollo de un nuevo sistema de
visión era una gran área de oportunidad. El primer objetivo en cuanto a la visión artificial,
consistía en poder segmentar de forma adecuada los diferentes colores de interés que se
encuentran en el ambiente de juego.
Se implementó entonces un algoritmo de segmentación basado en regiones elipsoidales en el
espacio tridimensional, además se diseñó una interfaz gráfica para generar los parámetros de
estos elipsoides de manera semi-automática. Los resultados fueron evaluados durante las
123
competencias de RoboCup 2009 y 2010. Donde los robots incrementaron su capacidad visual
logrando un mejor desempeño en el juego.
Posteriormente se propuso una solución al reconocimiento de patrones en imágenes y la
identificación de objetos. Con los resultados obtenidos fue posible implementar un algoritmo
de localización para los robots dentro del terreno de juego. Bajo las condiciones mencionadas
en el capítulo 5 los robots fueron capaces de definir de forma autónoma su posición y
orientación en la cancha. Se probó la validez de todos los algoritmos y metodologías
propuestas, los resultados de estas pruebas se encuentran en cada uno de los capítulos
correspondientes.
El algoritmo de localización sirvió como base para implementar una estrategia de auto-
posicionamiento en el terreno de juego. Se parte de una posición en el campo, estimada por el
propio robot y el objetivo es que el robot navegue hasta una localización deseada. Los
algoritmos de localización y navegación propuestos tienen una aplicación directa durante la
fase de “ready” en que se desea que los robots puedan alcanzar de manera autónoma ciertas
regiones en el campo para poder iniciar o reanudar un partido. La rutina de navegación tarda
menos de dos minutos en llegar a la posición meta, lo cual se consigue en 3 o 4 iteraciones de
la rutina. Sin embargo, generalmente en menos de un minuto los robots ya se encuentran en
una región cercana a la posición objetivo.
FIGURA 6.1 VISUALIZACIÓN 3D SOBRE LA LOCALIZACIÓN DEL ROBOT EN UNA ESTACIÓN REMOTA
Como trabajo futuro en el área de segmentación se puede continuar con la implementación de
un doble elipsoide para un color dado, lo cual puede resultar útil cuando alguna componente
de color se satura y llega a los límites del espacio de color, actualmente esto se soluciona
cambiando los niveles de brillo, contraste, exposición o ganancia en la adquisición de la
124
imagen de manera que los colores observados no se saturen. Para mejorar la localización y
navegación convendrá implementar algún método probabilístico de localización a fin de
verificar su desempeño. La investigación más profunda acerca del uso e implementación de
brújulas electrónicas en sistemas robóticos con ruido electromagnético también será útil para
robustecer las soluciones de localización encontradas hasta el momento; en el Capítulo 5 se
muestra un algoritmo de localización que hace uso de estos sensores. Se propone también
continuar con el desarrollo de algoritmos de navegación que validen la presencia de
obstáculos móviles (por ejemplo, un jugador robótico contrario).
También se propone dar seguimiento a este trabajo mediante el desarrollo de sistemas de
comunicación entre robots, de manera que se pueda compartir información sobre la posición
de otros jugadores o de la pelota, de tal suerte que un robot que no ve la pelota pero que se
beneficia de la comunicación con sus compañeros, puede ir hacia ella correctamente.
Finalmente, más adelante resultará útil desarrollar un sistema robótico con mejores
prestaciones de hardware a fin de poder implementar los algoritmos generados en un robot
que tenga mayor estabilidad y precisión en su andar, así como mayor velocidad en sus
movimientos, para esto habrá que evaluar si se continúa utilizando la plataforma de
LabView® o si existe alguna otra alternativa que ofrezca mayores beneficios y facilidad de
implementación. Actualmente algunas plataformas de desarrollo similares son Robotics
Studio de Microsoft® y Robot Operating System de código abierto.
Se espera que el presente trabajo aporte una base para desarrollar futuros proyectos en
sistemas robóticos que se desenvuelvan en un entorno codificado en colores a fin de que se
puedan implementar con rapidez algoritmos sencillos pero eficaces para la segmentación,
identificación, localización y navegación; aspectos básicos para robots móviles autónomos
que utilizan una cámara como principal medio de percepción del entorno.
125
A. IMÁGENES MUESTRA PARA IDENTIFICACIÓN DE OBJETOS 2009
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30
127
B. IMÁGENES MUESTRA PARA IDENTIFICACIÓN DE OBJETOS 2010
1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
21 22 23 24 25
26 27 28 29 30
129
C. MANUAL DE CONOCIMIENTOS Y OPERACIÓN BÁSICA PARA ROBOT BOGOBOT 2 (PARTE 1)
El presente manual tiene como objetivo que el investigador conozca las características y
funcionalidades de los robots humanoides Bogobots y sea capaz de tener acceso a su
operación, ya sea desde el propio robot o desde un equipo remoto (parte 1). También se
espera capacitar al usuario para la operación y calibración básicas de modo que pueda
accionarlo de diferentes maneras así como ejecutar y ajustar satisfactoriamente el programa
de juego que se utiliza durante competencias (parte 2).
C.1 CONFIGURACIÓN GENERAL DE HARDWARE DEL ROBOT
El procesador principal para el funcionamiento del robot consiste en una microcomputadora
marca Roboard®, que entre sus características principales se encuentra el contar con un
procesador de 1000MHz y memoria RAM de 256 MB, contiene tres puertos USB 2.0, y salida
de VGA, puerto Ethernet 10/100, así como puertos digitales I/O y entradas analógicas. La
micro-PC de los robots está cargada con un sistema operativo Windows XP® almacenado en
una microSD que funciona como disco duro en la computadora.
A continuación se muestra una figura con las conexiones básicas de la tarjeta Roboard en el
robot Bogobot 2.
FIGURA C.1 TARJETA PRINCIPAL ROBOARD Y PERIFÉRICOS UTILIZADOS EN BOGOBOT
Adicionalmente a la tarjeta Roboard, el robot utiliza una tarjeta controladora de
servomotores por ancho de pulso de la marca Lynxmotion. Ésta se comunica con la tarjeta
principal mediante el protocolo serial RS-232. Además de manejar el movimiento de los
130
servomotores, la tarjeta controladora también posee puertos de entrada y salida en donde se
recaba información de sensores.
C.2 CONFIGURACIÓN GENERAL DE SOFTWARE
El sistema robótico tiene instalado el sistema operativo Windows XP y el entorno principal de
programación está basado en la plataforma LabView®, con la que se tiene acceso a los
diferentes puertos del sistema como USB, Ethernet, WiFi, Serial así como lectura y escritura
de puertos digitales y analógicos.
El robot está configurado para ejecutar la plataforma de LabView automáticamente cuando se
prende el robot así como abrir la aplicación del software de la cámara web para su
calibración. En la siguiente Sección se describirán los pasos necesarios para encender el
sistema.
C.3 ACCIONES PREVIAS AL ENCENDIDO DEL ROBOT.
Antes de encender el robot, es altamente recomendable tener en cuenta los siguientes
aspectos:
1. Verificar que no existan signos de desgaste en alguno de los cables del robot.
2. Si alguna terminal está desconectada, NO intentar reconectarla a menos que conozca
con seguridad la función y lugar de contacto que tiene dicha conexión. Se recomienda
en la manera de lo posible cerciorarse sobre la razón por la cual el elemento fue
desconectado. (Preguntar a la persona que usó previamente el robot).
FIGURA C.2 PUERTOS PARA PERIFÉRICOS INSTALADOS EN EL ROBOT
131
3. Conectar ya sea una batería de 7.4v, o una fuente de poder de voltaje equivalente
capaz de suministrar al menos 2 Amperes. Si se utiliza una batería, colocarla en la
posición correspondiente (en el costado izquierdo del robot, unida por un sistema de
velcro).
4. Si no se va a utilizar el escritorio remoto (ver más adelante) para la operación del
robot, entonces conectar un monitor externo en el puerto indicado en la Figura C.2,
así como un teclado y mouse (por medio de un Hub de USB). En caso de manejar el
robot por medio de Ethernet conectar un cable en el puerto señalado en la Figura C.2.
C.4 ENCENDIDO Y ACCESO AL SISTEMA
Existen tres maneras de operar el robot Bogobot, la primera de ellas es utilizando
directamente un teclado, mouse y monitor conectados a la tarjeta principal, la segunda opción
consiste en controlarlo mediante un escritorio remoto en una computadora personal
utilizando una conexión Ethernet y la tercera es por medio de una conexión inalámbrica
utilizando un enrutador.
Una vez que se realizaron las acciones previas descritas en la Sección anterior es posible
encender el sistema. Para cualquiera de las opciones de operación mencionadas se sigue el
mismo procedimiento.
1. Ubicar o identificar el interruptor principal de encendido, el cual se encuentra para
ambos robots en el costado izquierdo del tronco, entre el servomotor de la cadera y el
espacio de la batería (Figura C.3).
FIGURA C.3 INTERRUPTOR PRINCIPAL DE ENCENDIDO
2. Activar el interruptor y verificar que enciendan los LEDs rojo y verde que se
encuentran en la esquina superior izquierda de la espalda del robot.
132
C.4.1 ACCESO MEDIANTE MONITOR, TECLADO Y MOUSE
Cuando estos periféricos están conectados directamente en el robot, entonces solamente
basta con introducir la contraseña de usuario a fin de inicializar la sesión en Windows® y con
ello arrancar los programas de inicio. (Las contraseñas, números y nombres de usuario
válidos al momento de la redacción de este manual se encuentran al final del documento).
C.4.2 ACCESO POR MEDIO DE ETHERNET
Es posible también ingresar al sistema robótico mediante una conexión Ethernet,
simplemente se necesita un cable Ethernet para conectar una computadora remota con el
robot. En el equipo remoto es necesario ajustar la dirección IP asignada de forma manual
haciendo que tanto el robot como el equipo remoto se encuentren en la misma subred.
Esta configuración se modifica accediendo al siguiente menú:
Inicio > Panel de control > Redes e Internet > Conexiones de Red.
Se ingresa a Propiedades de conexiones de área local para el dispositivo Ethernet y se
selecciona la opción de protocolo de internet TCP/IP. Se ingresa a las Propiedades de esta
opción y se introduce una dirección IP diferente a la del robot.
Dirección IP de equipo remoto: (RobotEth.RobotEth.RobotEth.X)
Donde X es cualquier número entre 0 y 255 que sea diferente al del robot.
Una vez configurada la dirección IP, se abre la aplicación de Escritorio Remoto, la cual se
encuentra en:
Inicio > Accesorios > Conexión a Escritorio Remoto
Aparece entonces una ventana que solicita la dirección IP del equipo con el que se realizará la
conexión. En este espacio ingresamos la dirección IP Ethernet del robot humanoide.
FIGURA C.4 ACCESO AL ESCRITORIO REMOTO
Si la conexión es exitosa, a continuación aparecerá una nueva ventana que solicita ingresar el
nombre de usuario y contraseña para iniciar sesión en el sistema del robot. (En la Sección
133
final de este documento se especifican los nombres de usuario y contraseñas válidos al
momento de la redacción del manual).
Después de ingresar el usuario y contraseñas correctos, se iniciará sesión y los programas
predeterminados se ejecutarán (LabView y software de cámara web).
Con la funcionalidad de escritorio remoto, el investigador puede programar y operar al robot
desde su computadora personal sin la necesidad de conectar un monitor, teclado y mouse
directamente al robot, ya que se utilizan los elementos propios de la computadora personal.
C.4.3 ACCESO POR MEDIO DE WIFI
También se puede accesar y controlar el robot por medio de una red inalámbrica. Esto será
posible siempre y cuando se cuente con un router debidamente configurado para estar dentro
de la misma red del robot y el equipo remoto. Además de respetar la dirección IP fija de cada
uno de los robots.
La computadora remota debe configurarse de la siguiente forma:
Una vez que se encendió el interruptor del robot, se debe habilitar el dispositivo inalámbrico
del equipo remoto y se deberá conectar a la red inalámbrica Robocem, esta vez se dejará que
el router asigne la dirección IP del equipo remoto de forma automática.
Para verificar que el equipo esté conectado se recomienda realizar una comprobación de
conexión mediante el comando PING en la ventana de comandos, realizando esto con la
dirección IP del router o del robot.
Después de verificar la conexión se abre la aplicación de escritorio remoto que se encuentra
en la siguiente ruta:
Inicio > Accesorios
Aparece entonces una ventana que solicita la dirección IP del equipo con el que se realizará la
conexión. En este espacio ingresamos la dirección IP WiFi del robot humanoide.
FIGURA C.5 ACCESO AL SISTEMA DESDE EL ESCRITORIO REMOTO
134
Si la conexión es exitosa, a continuación aparecerá una nueva ventana que solicita ingresar el
nombre de usuario y contraseña para iniciar sesión en el sistema del robot. (En la Sección
final de este documento se especifican los nombres de usuario y contraseñas válidos al
momento de la redacción del manual).
Después de ingresar el usuario y contraseñas correctos, se iniciará sesión y los programas
predeterminados se ejecutarán (LabView y software de cámara web).
Con la funcionalidad de escritorio remoto, el investigador puede programar y operar al robot
desde su computadora personal sin la necesidad de conectar un monitor, teclado y mouse
directamente al robot, ya que se utilizan los elementos propios de la computadora personal.
C.5 CARGAR Y EJECUTAR PROGRAMAS
Actualmente se utiliza la plataforma de programación de LabView para desarrollar y ejecutar
las diferentes tareas que desempeña el robot. Todos los programas que tienen alguna interfaz
gráfica con el usuario se encuentran guardados en la dirección:
C:\Bogobots\Programas
El programa principal que contiene el comportamiento de jugador de futbol y que se ejecuta
en competencias tiene el nombre de jugadorV5.vi, este programa hace uso de la cámara web,
servomotores y sensores del sistema, así como luces indicadoras y botones.
FIGURA C.6 PROGRAMA PRINCIPAL DE JUEGO
Es posible accesar al código fuente para cada uno de los programas desde la barra de menú
haciendo clic en Window > Show Block Diagram.
135
C.6 DATOS DE ACCESO A ROBOTS BOGOBOTS
Los datos de acceso con que cuentan los robots Bogobots actualizado a febrero de 2011 son
los siguientes:
Tabla C.1 Datos de acceso a robots
Dato Robot 1 Robot 2
Nombre de Usuario HumanoidTeam Bogobot
Contraseña de Usuario hola hola
Dirección IP Ethernet 192.168.1.21 192.168.1.22
Dirección IP WiFi 192.168.1.11 192.168.1.12
Nombre de Red Inalámbrica Robocem
Contraseña de Red Inalámbrica mecatronicacem
Dirección IP Router 192.168.1.1
136
D. MANUAL DE USO PARA HERRAMIENTA DE SEGMENTACIÓN ON-LINE
El presente manual tiene como objetivo que el usuario conozca las funcionalidades de la
Herramienta de Segmentación así como capacitarlo para su utilización. Todo ello con la
finalidad de que pueda obtener parámetros de configuración adecuados para su ejecución
durante las rutinas de juego.
D.1 DESCRIPCIÓN GENERAL DE LA HERRAMIENTA
La herramienta de segmentación On-Line consiste en una interfaz gráfica que permite al
usuario definir una región característica en el espacio tridimensional de colores digitales que
represente a un color dado en imágenes reales.
El programa genera de manera automática un elipsoide que describe a la nube de puntos
proveniente de las muestras tomadas por el usuario en las imágenes anteriores. Es posible
ajustar de forma manual los parámetros de tamaño y forma del elipsoide a fin de asegurar
una correcta representación. Una vez que el usuario alcanza una segmentación adecuada, es
posible guardar los parámetros de cada elipsoide en un archivo de configuración que
posteriormente puede ser cargado por los programas de juego.
FIGURA D.1 VISTA GENERAL DE INTERFAZ GRÁFICA DE SEGMENTACIÓN
137
La herramienta puede adquirir imágenes ya sea desde una cámara web, la cámara CMUCam3
o simplemente cargar imágenes previamente guardadas en algún directorio del sistema.
Además es posible realizar la segmentación de varios colores relevantes en el ambiente de
RoboCup.
D.2 CONFIGURACIÓN DE LA INTERFAZ
La Figura D.1 muestra una vista general de la interfaz gráfica, es importante notar el recuadro
en el parte superior señalado como FUENTE en la cual se despliega una lista con los tres tipos
de entrada que se manejan (Webcam, Imágenes o CMUCam3). Previo a la ejecución de la
interfaz se debe elegir el tipo de entrada que se va a usar. A continuación se describen
algunos pasos que deben realizar dependiendo del tipo de entrada elegido.
FIGURA D.2 DETALLE DE HERRAMIENTA DE SEGMENTACION 1
D.2.1 CONFIGURACIÓN PREVIA CON OPCIÓN WEBCAM
Cuando se va a utilizar una cámara web para la adquisición de imágenes, simplemente basta
con definir la cámara que se va a utilizar en caso de existir dos o más cámaras conectadas a la
computadora principal. El control para definir el número de cámara se encuentra indicado en
la Figura D.6. El valor por defecto es cam0.
D.2.2 CONFIGURACIÓN PREVIA CON OPCIÓN CMUCAM
La interfaz puede utilizar imágenes adquiridas por un sistema de CMUCam3 para la
adquisición de imágenes. En caso de utilizar esta opción es necesario especificar el puerto
serial por el cual está comunicada la cámara con la computadora principal. Esta opción está
indicada en la Figura D.6. Es importante mencionar que previamente debe ser cargado a la
138
CMUCam3 el programa llamado vision2010.hex, que configura a la CMUCam3 para
comunicarse de manera efectiva con la computadora y enviar imágenes a ésta.
D.2.3 CONFIGURACIÓN PREVIA CON OPCIÓN IMÁGENES
También es posible analizar y segmentar imágenes previamente almacenadas en algún
directorio, ya sea en el disco duro o en un medio extraíble. El formato de las imágenes
soportadas comprende a los tipos BMP, TIFF, JPEG, JPEG2000, PNG, y AIPD. Al momento de
ejecutar la herramienta bajo la opción Imágenes, aparecerá un cuadro de diálogo de carpetas
en donde el usuario podrá navegar, buscar y seleccionar el directorio en donde se encuentran
guardadas las imágenes que se desea analizar. Es importante que este directorio posea
solamente imágenes y que éstas posean las mismas características de resolución y relación de
aspecto.
A continuación aparecerá un cuadro de diálogo en donde se debe especificar la resolución de
las imágenes cargadas. Una vez que se ingrese este dato y se dé clic en el botón de Aceptar se
iniciará la aplicación mostrando la primera de las imágenes en el directorio.
D.3 USO BÁSICO DE LA INTERFAZ
Una vez iniciada la aplicación con cualquiera de las opciones de entrada previamente
mencionadas, se podrá observar en la pantalla principal una imagen. La frecuencia de
actualización de esta imagen varía dependiendo de la fuente de adquisición. Si se trata de una
cámara web se adquirirá una imagen cada 0.1 segundos, si se utiliza una CMUCam3 el periodo
de actualización subirá a 3.1 segundos debido a que la transmisión se lleva a cabo vía serial,
protocolo más lento que el USB. Finalmente si se utilizan imágenes, se podrá tener acceso a
una diferente cada que se presione el botón de SIGUIENTE o ANTERIOR, como se explicará
más adelante.
FIGURA D.3 DETALLE DE HERRAMIENTA DE SEGMENTACIÓN 2
139
El proceso básico para generar los parámetros de una segmentación se detallan a
continuación:
1. Se dirige la cámara hacia un objeto de interés que contenga el color a segmentar. Si se
está trabajando con imágenes se busca una con información relevante del color de
interés.
2. En la lista desplegable de COLOR (Figura D.2) se selecciona el que corresponda al
color que se va a segmentar.
3. Con ayuda del mouse se hace clic sobre las regiones en la imagen que correspondan al
color que se desea segmentar (se toman varias muestras). Para realizar esto se
recomienda mantener la cámara y el objeto de interés en una posición fija. Para
mayor claridad, el recuadro de color identificado como COLOR ACTUAL muestra el
color del pixel que se está señalando con el mouse en ese instante, también bajo las
etiquetas de ROJO, VERDE y AZUL se indican las componentes del pixel señalado. Es
posible además modificar el nivel de acercamiento haciendo clic en la barra de ZOOM
(Figura D.5).
FIGURA D.4 DETALLE DE HERRAMIENTA DE SEGMENTACIÓN 3
4. Al momento de contar con dos o más muestras, el sistema generará automáticamente
un elipsoide rotado en el espacio tridimensional de color, y los resultados de la
segmentación acotados por esta región se mostrarán de manera instantánea en el
cuadro de la imagen. Los pixeles que se encuentren dentro de la región tomarán un
color característico (azul, amarillo, naranja, blanco, etc. según sea el caso), de esta
forma se obtiene retroalimentación sobre la segmentación. Si la región de
segmentación aún no se cubre el objeto deseado en su totalidad entonces se mueve el
mouse al área faltante y se hace clic hasta que el color buscado en la imagen quede
completamente cubierto. En caso de tomar muestras erróneas o querer reiniciar con
140
el proceso de segmentación para un color dado se debe hacer clic en el botón
denominado NUEVA SEGMENTACION con lo que el sistema reiniciará todas las
variables y pondrá el cero el número de muestras para el color en cuestión.
5. Una vez que se obtenga una segmentación satisfactoria, se deben guardan los datos
obtenidos para que posteriormente sean utilizados por otro programa que requiera
del análisis de imágenes como es el caso del programa general de juego. Para esto, se
hace clic sobre el botón denominado GUARDAR DATOS, y enseguida se abrirá una
ventana de exploración en donde se deberá seleccionar el directorio donde deseamos
guardar la configuración realizada.
6. Se puede realizar la segmentación para otro color sin tener que reiniciar la aplicación,
simplemente basta con seleccionar de la lista desplegable de la Figura D.2 el nuevo
color que se desea segmentar. Es importante elegir el color correcto ya que los
archivos de configuración utilizan esta información para etiquetar los datos que
eventualmente se utilizarán por un programa externo.
FIGURA D.5 DETALLE DE HERRAMIENTA DE SEGMENTACIÓN 4
El número de pixeles encontrados en una imagen para cada color se muestra bajo la etiqueta
PIXELES N ubicada en la parte superior central de la interfaz. Este dato se actualiza cada que
se cuente con una imagen nueva o cuando el usuario cambie algún parámetro de
segmentación, lo que ocurra primero.
D.4 USO AVANZADO DE LA INTERFAZ
Hasta ahora se ha explicado la manera de generar una segmentación utilizando los
parámetros automáticos definidos por el sistema, sin embargo, es posible modificar los
141
valores de tolerancia así como la rotación de los elipsoides encontrados. Bajo la etiqueta de
TOLERANCIA se encuentran los valores de tolerancia para cada uno de los ejes del elipsoide
(largo ancho y alto). Si se desea cambiar la rotación del elipsoide encontrado, entonces se
debe habilitar el botón denominado ÁNGULO MANUAL y posteriormente modificar las barras
indicadoras para los ángulos theta y psi.
FIGURA D.6 DETALLE DE HERRAMIENTA DE SEGMENTACION 5
Para cualquiera de estas modificaciones se podrá observar el cambio instantáneo tanto en la
segmentación de la imagen como en la gráfica tridimensional que se encuentra en la parte
derecha de la interfaz. Esta gráfica representa el espacio tridimensional de color RGB y es
este espacio se grafica al elipsoide que se ha encontrado así como la nueve de puntos que han
formado las muestras obtenidas. De esta manera se tiene una mejor visualización sobre la
región segmentada y los cambios que se esperan al modificar los valores de ésta. Es posible
observar desde diferentes puntos de vista la gráfica tridimensional al mantener un clic sobre
la gráfica y rotarla hacia los lados. También es posible cambiar el nivel de acercamiento en la
gráfica al hacer clic sobre la barra de ZOOM.
Para tener una mejor apreciación sobre la imagen también es posible ocultar los pixeles que
no entren en la segmentación y resaltar solamente los colores segmentados. Esto se hace
mediante el botón de ¿OCULTAR IMAGEN?, el cual se encuentra en la parte central de la
pantalla. Justamente a un costado se encuentra también el botón de ¿SEGMENTAR? Con el que
se habilita o no la capa de color que se dibuja por encima de la imagen original en el lugar de
los pixeles segmentados. En la misma área aparece un tercer botón bajo el nombre de
GUARDAR BMP; al hacer clic en él aparecerá una ventana de carpetas en donde podremos
elegir la ubicación en la cual deseamos guardar la imagen que actualmente estamos
observando en pantalla en formato BMP.
142
FIGURA D.7 DETALLE DE HERRAMIENTA DE SEGMENTACIÓN 6
El número de muestras que se están utilizando para generar el elipsoide rotado se encuentra
bajo la etiqueta de MUESTRAS. Otra funcionalidad de la herramienta consiste en poder
visualizar tanto la segmentación lineal como por elipsoides que se está alcanzando con las
muestras obtenidas. Para visualizar esto se debe elegir en la lista desplegable de
SEGMENTACIÓN el tipo que deseamos ver ya sea ELIPSOIDAL o LINEAL, con ello se puede ver
de manera directa los pixeles que entran en el pre-filtro de segmentación lineal y el resultado
con la segmentación final por elipsoides (Figura D.8). También es posible cargar los
parámetros de una segmentación previamente realizada para verificar o modificar los
parámetros actuales, para ellos se debe dar clic en el botón CARGAR ubicado en la esquina
superior derecha de la interfaz; se mostrará una ventana donde se debe elegir la ubicación
del archivo de configuración que deseemos cargar y a continuación dar un clic en cargar.
FIGURA D.8 SEGMENTACIÓN ELIPSOIDAL Y PRE-FILTRO CON PRISMA VISTOS EN GRÁFICO
TRIDIMENSIONAL DE SEGMENTADOR
Es posible observar en la esquina superior izquierda de la interfaz información acerca de los
coeficientes de las ecuaciones de rotación y traslación finales para los contornos elipsoidales.
143
Estos valores se presentan en tres renglones que corresponden a los coeficientes para las
componentes de rojo, verde y azul respectivamente. Debajo de estos coeficientes se
encuentran los valores límite del prisma de pre-filtro. Enseguida de esto se ubican los valores
que definen al elipsoide generado previo a la rotación, es decir, con los semiejes paralelos a
los ejes del espacio tridimensional y finalmente en el costado derecho se tienen los límites del
semieje principal que define al elipsoide rotado en el espacio.
D.4.1 ESPECIFICACIONES CON CMUCAM
En caso de utilizar una CMUCam para la adquisición de imágenes, la herramienta cuenta con
algunas funcionalidades adicionales específicas de este sistema de visión. La primera de ellas
es la capacidad de poder enviar los parámetros de segmentación y dejar que la CMUCam
realice por si sola la segmentación a fin de verificar que sea congruente con la que se esté
realizando por medio de la computadora. Esto se hace al seleccionar de la lista desplegable de
DATOS la opción PARÁMETROS y haciendo clic en el botón de ENVIAR PARÁMETROS.
Además de enviar los parámetros también es posible modificar los valores de brillo y
contraste con los que trabaja la CMUCam. Simplemente basta con cambiar estos valores en la
interfaz (Figura D.3), seleccionar de la lista desplegable de DATOS la opción BRILLO o
CONTRASTE según corresponda (Figura D.4) y finalmente hacer clic en el botón de ENVIAR
PARÁMETROS.
D.5 SEGMENTADOR EMBARCADO EN EL SISTEMA ROBÓTICO BOGOBOT
La nueva versión de los robot humanoides Bogobots tienen la aplicación de segmentación
semiautomática de forma embarcada. Esto ofrece una ventaja importante ya que simplifica el
proceso de segmentación al no tener que realizar conexiones adicionales con la cámara y
tampoco requerir de la transferencia de los archivos de configuración ya que éstos se
ejecutarán en el mismo sistema. Todo ello lleva a una reducción del tiempo final que el
usuario invierte para generar una nueva segmentación.
La aplicación embarcada en el robot tiene las mismas características que la aplicación
estándar con la única diferencia que en el robot se deshabilitó la opción de adquirir imágenes
desde una CMUCam3 ya que el sistema robótico no utiliza esta cámara para su
funcionamiento.
144
E. ALGORITMO GENERAL DE LOCALIZACIÓN (POSICIÓN Y ORIENTACIÓN)
//Algoritmo general de localización.
//Para la mejor comprensión, el pseudocódigo presentado aborda cada una //de las
6 posibles combinaciones de referencias de manera independiente.
//sin embargo, es posible simplificar el código agrupando decisiones y
//ecuaciones equivalentes entre los casos.
//Datos de entrada:
// bool PAm Portería amarilla encontrada
// float DPAm Distancia a portería amarilla
// float APam Ángulo de portería amarilla con respecto a robot
// bool PAz Portería azul encontrada
// float DPAz Distancia a portería azul
// float APaz Ángulo de portería azul con respecto a robot
// bool MAm Marca amarilla encontrada
// float DMAm Distancia a marca amarilla
// float AMam Ángulo de marca amarilla con respecto a robot
// bool MAz Marca azul encontrada
// float DMAz Distancia a marca azul
// float AMaz Ángulo de marca azul con respecto a robot
const float XPAm //coordenada en X de la portería amarilla
const float YPAm //coordenada en Y de la portería amarilla
const float XPAz //coordenada en X de la portería azul
const float YPAz //coordenada en Y de la portería azul
const float XMAm //coordenada en X de la marca amarilla
const float YMAm //coordenada en Y de la marca amarilla
const float XMAz //coordenada en X de la marca azul
const float YMAz //coordenada en Y de la marca azul
const float PM // distancia entre portería y marca lateral
const float MM // distancia entre marcas laterales
const float PP // distancia entre porterías
const float AOY // ángulo obtuso entre eje Y y línea PM
const float AAY // ángulo suplementario de AOY
const float AOX // ángulo obtuso entre eje X y línea PM
const float AAX // ángulo suplementario de AOX
float a1, a2, x1,y1, x2,y2, x3,y3, x4,y4, x5,y5, x6, y6, x,y;
float sig1, sig2, sig3, sig4, sig5, sig6, sigma, aux1, aux2, suma;
x1 = 0; y1 = 0; x2 = 0; y2 = 0; x3 = 0; y3 = 0;
x4 = 0; y4 = 0; x5 = 0; y5 = 0; x6 = 0; y6 = 0; suma = 0;
if (PAz && MAm){ //portería azul y marca amarilla
//Teorema del coseno
145
a1 = acos(((PM*PM)+(DPAz)*(DPAz)-(DMAm)*(DMAm))/(PM*DPAz*2));
a2 = acos(((PM*PM)+(DMAm)*(DMAm)-(DPAz)*(DPAz))/(PM*DMAm*2));
//validar las dos posibles soluciones
if (APAz < AMAm){a1=AOY-a1; a2=AOX-a2;}
else {a1=AOY+a1; a2=AOX+a2;}
a1 = sin(a1*DPAz); // distancia en X a la portería
a2 = sin(a2*DMAm); // distancia en Y a la marca
x1 = a1 + XPAz; // posición X estimada del robot
y1 = YMAm - a2; // posición Y estimada del robot
aux1 = acos(a1/DPAz); // ángulo con respecto a portería
aux2 = acos(a2/DMAm); // ángulo con respecto a marca
if (y1 <= YPAz) aux1 = Pi - aux1; else aux1 = Pi + aux1;
if (x1 <= XMam) aux2 = Pi/2 - aux2; else aux2 = Pi/2 + aux2;
aux1 = aux1 + APAz; // ángulo general de robot 1
aux2 = aux2 + AMAm; // ángulo general de robot 2
sig1 = (aux1+aux2)/2; // ángulo general de robot
suma++; // número de pares de referencias encontrados
}
if (PAz && MAz){ //portería azul y marca azul
//Teorema del coseno
a1 = acos(((PM*PM)+(DPAz)*(DPAz)-(DMAz)*(DMAz))/(PM*DPAz*2));
a2 = acos(((PM*PM)+(DMAz)*(DMAz)-(DPAz)*(DPAz))/(PM*DMAz*2));
//validar las dos posibles soluciones
if (APAz < AMAz) { a1=AAY-a1; a2=AAX-a2; }
else { a1=AAY+a1; a2=AAX+a2;}
a1 = sin(a1*DPAz); // distancia en X a la portería
a2 = sin(a2*DMAz); // distancia en Y a la marca
x2 = a1 + XPAz; // posición X estimada del robot
y2 = a2 - YMAz; // posición Y estimada del robot
aux1 = acos(a1/DPAz); // ángulo con respecto a portería
aux2 = acos(a2/DMAz); // ángulo con respecto a marca
if (y2 <= YPAz) aux1 = Pi - aux1; else aux1 = Pi + aux1;
if (x2 >= XMaz) aux2 = 3*Pi/2 - aux2; else aux2 = 3*Pi/2 + aux2;
aux1 = aux1 + APAz; // ángulo general de robot 1
aux2 = aux2 + AMAz; // ángulo general de robot 2
sig2 = (aux1+aux2)/2; // ángulo general de robot
suma++; // número de pares de referencias encontrados
}
if (PAm && MAz){ //portería amarilla y marca azul
//Teorema del coseno
a1 = acos(((PM*PM)+(DPAm)*(DPAm)-(DMAz)*(DMAz))/(PM*DPAm*2));
a2 = acos(((PM*PM)+(DMAz)*(DMAz)-(DPAm)*(DPAm))/(PM*DMAz*2));
//validar las dos posibles soluciones
if (APAm < AMAz){ a1=AOY-a1; a2=AOX-a2; }
146
else { a1=AOY+a1; a2=AOX+a2; }
a1 = sin(a1*DPAm); // distancia en X a la portería
a2 = sin(a2*DMAz); // distancia en Y a la marca
x3 = XPAm - a1; // posición X estimada del robot
y3 = a2 - YMAz; // posición Y estimada del robot
aux1 = acos(a1/DPAm); // ángulo con respecto a portería
aux2 = acos(a2/DMAz); // ángulo con respecto a marca
if (y3 >= YPAm) aux1 = 0 - aux1; else aux1 = 0 + aux1;
if (x3 >= XMaz) aux2 = -Pi/2 - aux2; else aux2 = -Pi/2 + aux2;
aux1 = aux1 + APAm; // ángulo general de robot 1
aux2 = aux2 + AMAz; // ángulo general de robot 2
sig3 = (aux1+aux2)/2; // ángulo general de robot
suma++; // número de pares de referencias encontrados
}
if (PAm && MAm){ //portería amarilla y marca amarilla
//Teorema del coseno
a1 = acos(((PM*PM)+(DPAm)*(DPAm)-(DMAm)*(DMAm))/(PM*DPAm*2));
a2 = acos(((PM*PM)+(DMAm)*(DMAm)-(DPAm)*(DPAm))/(PM*DMAm*2));
//validar las dos posibles soluciones
if (APAm < AMAm){ a1=AAY-a1; a2=AAX-a2; }
else { a1=AAY+a1; a2=AAX+a2;}
a1 = sin(a1*DPAm); // distancia en X a la portería
a2 = sin(a2*DMAm); // distancia en Y a la marca
x4 = XPAm - a1; // posición X estimada del robot
y4 = YMAm - a2; // posición Y estimada del robot
aux1 = acos(a1/DPAm); // ángulo con respecto a portería
aux2 = acos(a2/DMAm); // ángulo con respecto a marca
if (y4 >= YPAm) aux1 = 0 - aux1; else aux1 = 0 + aux1;
if (x4 <= XMam) aux2 = Pi/2 - aux2; else aux2 = Pi/2 + aux2;
aux1 = aux1 + APAm; // ángulo general de robot 1
aux2 = aux2 + AMAm; // ángulo general de robot 2
sig4 = (aux1+aux2)/2; // ángulo general de robot
suma++; // número de pares de referencias encontrados
}
if (PAm && PAz){ //portería amarilla y portería azul
//Teorema del coseno
a1 = acos(((PP*PP)+(DPAm)*(DPAm)-(DPAz)*(DPAz))/(PP*DPAm*2));
a2 = acos(((PP*PP)+(DPAz)*(DPAz)-(DPAm)*(DPAm))/(PP*DPAz*2));
//validar las dos posibles soluciones
if (APAm < APAz){ a1 = (Pi/2) - a1; a2 = 0 + a2; }
else { 1 = (Pi/2) + a1; a2 = 0 - a2; }
a1 = sin(a1*DPAm); // distancia en X a la portería
a2 = sin(a2*DPAz); // distancia en Y a la marca
x5 = XPAm - a1; // posición X estimada del robot
147
y5 = a2 + YPAz; // posición Y estimada del robot
aux1 = acos(a1/DPAm); // ángulo con respecto a portería
aux2 = acos(a2/DPAz); // ángulo con respecto a marca
if (y5 >= YPAm) aux1 = 2*Pi - aux1; else aux1 = 0 + aux1;
if (y5 <= YPaz) aux2 = Pi - aux2; else aux2 = Pi + aux2;
aux1 = aux1 + APAm; // ángulo general de robot 1
aux2 = aux2 + APAz; // ángulo general de robot 2
sig5 = (aux1+aux2)/2; // ángulo general de robot
suma++; // número de pares de referencias encontrados
}
if (MAm && MAz){ //marca amarilla y marca azul
//Teorema del coseno
a1 = acos(((MM*MM)+(DMAm)*(DMAm)-(DMAz)*(DMAz))/(MM*DMAm*2));
a2 = acos(((MM*MM)+(DMAz)*(DMAz)-(DMAm)*(DMAm))/(MM*DMAz*2));
//validar las dos posibles soluciones
if (AMAm < AMAz){ a1 = Pi - a1; a2 = (Pi/2) - a2;}
else { a1 = Pi + a1; a2 = (Pi/2) + a2;}
a1 = sin(a1*DMAm); // distancia en X a la portería
a2 = sin(a2*DMAz); // distancia en Y a la marca
x6 = XMAm - a1; // posición X estimada del robot
y6 = a2 + YMAz; // posición Y estimada del robot
aux1 = acos(a1/DMAm); // ángulo con respecto a portería
aux2 = acos(a2/DMAz); // ángulo con respecto a marca
if (x6 >= XMAm) aux1 = Pi - aux1; else aux1 = 0 + aux1;
if (x6 >= XMAz) aux2 = 3*(Pi/2) - aux2; else aux2 = aux2 – (Pi/2);
aux1 = aux1 + AMAm; // ángulo general de robot 1
aux2 = aux2 + AMAz; // ángulo general de robot 2
sig5 = (aux1+aux2)/2; // ángulo general de robot
suma++; // número de pares de referencias encontrados
}
// Localización final
x = (x1 + x2 + x3 + x4 + x5 + x6)/suma; //coordenada X
y = (y1 + y2 + y3 + y4 + y5 + y6)/suma; //coordenada Y
sigma = (sig1 + sig2 + sig3 + sig4 + sig5 + sig6)/suma; //orientación de robot
148
REFERENCIAS
[1] C. Fermüller y Y. Aloimonos. (2000). Observability of 3D Motion. En Int'l. Journal of Computer Vision 37(1):43-62.
[2] J. Neumann, C. Fermuller y Y. Aloimonos. (2004). A hierarchy of cameras for 3D photography. En Computer Vision and Image Understanding, Volume 96, Issue 3, pp. 274-293.
[3] H. Kitano, M. Asada, Y. Kuniyoshi, I. Noda, E. Osawa y H. Matsubara. (1998). RoboCup: A challenge Problem for AI and Robotics. En H. Kitano (Ed.), RoboCup-97: Robot Soccer World Cup I, Springer-Verlag, pp. 1-19.
[4] P. Kulvanit y O. von Stryk. (2009). RoboCup Soccer Humanoid League Rules and Setup for the 2009 competition in Graz, Austria. En http://www.tzi.de/humanoid/pub/Website/ Downloads/HumanoidLeagueRules2009-01-28.pdf.
[5] A. R. Price y T. Jones. (1998). An Innovative Approach to Vision, Localization and Orientation Using Omnidirectional Radial Signature Analysis. En M. Asada y H. Kitano (Ed.), RoboCup-98: Robot Soccer World Cup II, Springer-Verlag, pp. 299-315.
[6] S. Suzuki, T. Kato, H. Ishizuka, Y. Takahashi, E. Uchibe y M. Asada. (1998). An Application of Vision-Based Learning in RoboCup for a Real Robot with an Omnidirectional Vision System and the Team Description of Osaka University “Trackies”. En M. Asada y H. Kitano (Ed.), RoboCup-98: Robot Soccer World Cup II, Springer-Verlag, pp. 316-325.
[7] G. Cheng y A. Zelinsky. (1998). Real-Time Vision Processing for a Soccer Playing Mobile Robot. En H. Kitano (Ed.), RoboCup-97: Robot Soccer World Cup I, Springer-Verlag, pp. 144-155.
[8] P. Jonker, J. Caarls y W. Bokhove. (2001). Fast and Accurate Robot Vision for Vision Based Motion. En P. Stone, T. Balch, G. Kraetzschmar (Ed.), RoboCup 2000: Robot Soccer World Cup IV, Springer-Verlag, pp. 149-158.
[9] J. Bruce, T. Balch, y M. M. Veloso. (2000). Fast and inexpensive color image segmentation for interactive robots. En IEEE/RSJ International Conference on Intelligent Robots and Systems, vol. 3, pp. 2061–2066.
[10] R. Álvarez, E. Millán, R. Swain Oropeza, and A Aceves. (2004a). Color image classification through fitting of implicit surfaces. En 9th Ibero-American Conference on Artificial Intelligence (IBERAMIA), Lecture Notes in Computer Science. Spinger-Verlag.
[11] D. Stronger y P. Stone. (2007). Selective Visual Attention for Object Detection on a Legged Robot. En G. Lakemeyer, E. Sklar, D. Sorrenti y T. Takahashi (Ed.), RoboCup 2006: Robot Soccer World Cup X, Springer-Verlag, pp. 158-170.
149
[12] J. Wendler, S. Brüggert, H. Burkhard y H. Myritz. (2001). Fault-Tolerant Self Localization by Case-Based Reasoning. En P. Stone, T. Balch, G. Kraetzschmar (Ed.), RoboCup 2000: Robot Soccer World Cup IV, Springer-Verlag, pp. 259-268.
[13] S. Enderle, M.Ritter, D. Fox, S. Sablatnög, G. Kraetzschmar y G. Palm. (2001). Vision-Based Localization in RoboCup Environments. En P. Stone, T. Balch, G. Kraetzschmar (Ed.), RoboCup 2000: Robot Soccer World Cup IV, Springer-Verlag, pp. 291-296.
[14] M. Jamzad, B.S. Sadjad, V.S. Mirrokni, M. Kazemi, H. Chitsaz, A. Heydarnoori, M.T. Hajiaghai y E. Chiniforooshan. (2002). A Fast Vision System for Middle Size Robots in RoboCup. En A. Birk, S. Coradeschi y S. Tadokoro (Ed.), RoboCup 2001: Robot Soccer World Cup V, Springer-Verlag, pp. 71-80.
[15] H. J. Trussel y M. S. Kulkarni. (1996). Sampling and Processing of Color Signals. En IEEE Trans. Image Process., 5(4) pp. 677-681.
[16] A. Rosenfeld. (1969). Picture Processing by Computer. En ACM Computing Surveys (CSUR), Vol. 1, Num. 3.
[17] R. Rossi y J. A. Ramírez Uresti. (2007). Automatic Off-Line Calibration for a Fast Color Classification Program in a Color Coded Environment. 37° Congreso de Investigación y Desarrollo (CIDTEC 37), Enero, 2007, México.
[18] Y. Takahashi, W. Nowak y T. Wisspeintner. (2007). Adaptive Recognition of Color-Coded Objects in Indoor and Outdoor Environments. En G. Lakemeyer, E. Sklar, D. Sorrenti y T. Takahashi (Ed.), RoboCup 2007: Robot Soccer World Cup XI, Springer-Verlag, pp. 158-170.
[19] Z. Tu y S. Chun Zhu. (2002). Image Segmentation by Data-Driven Markov Chain Monte Carlo. En IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 24, No. 5, pp. 657-673.
[20] A. Bovik. (2009). The Essential Guide to Image Processing. 2° Edition. Academic Press. USA.
[21] H. Kitano. (1997). RoboCup: The Robot World Cup Initiative. En Proc. of The First International Conference on Autonomous Agent (Agents-97)), Marina del Ray, The ACM Press.
[22] C. E. Shannon. (1949). Communication in the Presence of Noise. En Proc. Institute of Radio Engineers, vol. 37, no.1, pp. 10 – 21.
[23] F. C. Crow. (1981). A comparison of Antialiasing Techniques. En IEEE Computer Graphics & Applications. 1, 1, pp. 40 – 48.
[24] S. Inoué y K. r. Spring. (1997). Video Microscopy – The Fundamentals. 2nd Edition. Plenum Press. New York, USA.
[25] J. Nakamura. (2006). Image Sensors and Signal Processing for Digital Still Cameras. En CRC Press. Boca Raton. Florida, USA.
150
[26] S. K. Singh, D. S. Chauhan, M. Vatsa, y R. Singh. (2003). A Robust Skin Color Based Face Detection Algorithm. En Tamkang Journal of Science and Engineering, Vol.6, No. 4. pp. 227 – 234.
[27] H. Palus. (2007). Color Image Segmentation: Selected Techniques. En R. Lukac y K. N. Plataniotis (Ed.), Color Image Processing. Canada. pp. 103-128.
[28] N. R. Pal y S.K. Pal. (1993). A Review on Image Segmentation Techniques. En Pattern Recognition, Vol. 26, No. 9, pp. 1277 – 1294.
[29] Y. J. Zhang. (2006). An Overview of Image and Video Segmentation in the Last 40 Years. En Y. J. Zhang (Ed.), Advances in Image and Video Segmentation, USA. pp. 1 – 15.
[30] J. Baltes, P. Kulvanit, et. Al. (2010). RoboCup Soccer Humanoid League Rules and Setup for the 2010 competition in Singapore. En http://www.tzi.de/humanoid/pub/Website/ Downloads/HumanoidLeagueRules2010.pdf
[31] C. M. Bishop. (1998). Neural Networks for Pattern Recognition. Oxford University Press. New York, USA.
[32] L. O Chua y T. Roska. (2002). Cellular Neural Networks and Visual Computing. Cambridge Uiversity Press. Cambridge, UK.
[33] H. Strasdat, M. Bennewitz y S. Behnke. (2007). Multi-cue Localization for Soccer Playing Humanoid Robots. En G. Lakemeyer, E. Sklar, D. Sorrenti y T. Takahashi (Ed.), RoboCup 2006: Robot Soccer World Cup X, Springer-Verlag, pp. 245-257.
[34] H. Utz, A. Neubeck, G. Mayer y G. Kraetzschmar. (2003). Improving Vision-Based Self-Localization. En G. A. Kaminka, P. U. Lima y R. Rojas (Eds.), RoboCup 2002, LNAI 2752, Springer-Verlag, pp. 25-40.
[35] M. Betke y L. Gurvitis. (1995). Mobile Robot Localization using Landmarks. En IEEE International Conference on Robotics and Automation, vol. 2, pp. 135–142.
[36] P. Colantoni and A. Trémeau. (2003). 3D Visualization of color data to analyze color images. En The PICS Conference, Rochester, USA.
[37] H. D. Cheng, X. H. Jiang, y J. Wang. (2002). Color image segmentation based on homogram thresholding and region merging. En Pattern Recognition 35, pp. 373 – 393.
[38] Relf, Christopher G. (2004). Image acquisition and processing with LabView. 1st Ed. CRC Press. United States.
[39] J. C. Russ. (2007). The Image Processing Handbook. 5th Edition. CRC Press. Canada. pp. 42 – 48.
[40] D. C. Yuen y B. A. MacDonald (2005). Vision-Based Localization Algorithm Based on Landmark Matching, Triangulation, Reconstruction, and Comparison. En IEEE Transactions on Robotics. Vol. 21, NO. 2. pp. 217-223.
151
[41] A. Rowe y A. Goode (2007). CMUCam3 Datasheet V1.02. Carnegie Mellon University. Disponible en http://www.cmucam.org/attachment/wiki/Documentation/ CMUcam3_datasheet.pdf?format=raw.
[42] DMP Electronics Inc. [info@roboard.com] (2009). RoBoard RB – 100. Disponible en http://www.roboard.com/RB-100.htm. Taipei, Taiwan.
[43] S. Se, D. Lowe y J. Little (2001). Vision-based Mobile Robot Localization And Mapping using Scale-Invariant Features. En Proceedings of IEEE International Conference of Robotics and Automation 2001. Vol. 2. pp. 2051 – 2058.
[44] S. Thrun, D. Fox, W. Burgard y F. Dellaert (2001). Robust Monte Carlo Localization for Mobile Robots. En Artifitial Intelligence. Vol. 128. Issues 1 – 2. pp. 99 – 141.
[45] J. Bruce y M. Veloso (2002). Real-Time Randomized Path Planning for Robot Navigation. En IEEE Conference on Intelligent Robots and Systems. Vol. 3. pp. 2383 – 2388.
[46] S. Behnke (2004). Local Multiresolution Path Planning. En B. Browning, D. Polani, A. Bonarini, and K. Yoshida (ed.): RoboCup-2003: Robot Soccer World Cup VII, LNCS 3020, pp. 332-343.
[47] J. Baltes y N. Hildreth. Adaptive Path Planner for Highly Dynamic Environments. En RoboCup 2000: Robot Soccer World Cup IV Lecture Notes in Computer Science, 2001, Volume 2019/2001, 76-85.
[48] G. Pajares y J. de la Cruz (2002). Visión por Computador. Imágenes Digitales y Aplicaciones. Alfa Omega. 1ª Edición. pp 133 – 136 México.
[49] S. Thompson (2002). Sampling. Wiley, Wiley Series in Probability and Statistics. 2° Edición. Estados Unidos. pp. 90 – 94.
[50] A. Ford y A. Roberts (1998). Colour Space Conversions. University of Westminster. pp. 9-11
[51] P. Colantoni [colantoni@couleur.org] (2008). Download ColorSpace Version 1.1.1 for Windows NT/2000/XP. Disponible en http://www.couleur.org/index.php?page= download. Francia.