desarrollo de un sistema de visión para la localización y navegación de...

151
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

Upload: doanh

Post on 29-Sep-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

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

126

31 32 33 34 35

36 37 38 39 40

41 42 43 44 45

46 47 48 49 50

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

128

31 32 33 34 35

36 37 38 39 40

41 42 43 44 45

46 47 48 49 50

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. [[email protected]] (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 [[email protected]] (2008). Download ColorSpace Version 1.1.1 for Windows NT/2000/XP. Disponible en http://www.couleur.org/index.php?page= download. Francia.