IEL2-2002-II-19 RECONOCIMIENTO DE OBJETOS PARA …
Transcript of IEL2-2002-II-19 RECONOCIMIENTO DE OBJETOS PARA …
IEL2-2002-II-19
RECONOCIMIENTO DE OBJETOS PARA ROBÓTICA MÓVIL
JOHANN FACCELO OSMA CRUZ
UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
BOGOTÁ 2003
IEL2-2002-II-19
RECONOCIMIENTO DE OBJETOS PARA ROBÓTICA MÓVIL
JOHANN FACCELO OSMA CRUZ
TESIS
Asesor: Antonio García Rozo
Ing. Electrónico
UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERÍA
DEPARTAMENTO DE ELÉCTRICA Y ELECTRÓNICA
BOGOTÁ 2003
IEL2-2002-II-19
Nota de Aceptación
____________________
Firma del Asesor
Antonio García Rozo
Ing. Electrónico
____________________
Firma del Jurado
Fredy E. Segura
Ing. Electrónico
Bogotá, 9 de Enero de 2003
IEL2-2002-II-19
DEDICATORIA
Quiero dedicar este trabajo a mis padres, quienes han estado apoyándome en cada momento
de mi vida y en especial, este último periodo de mi vida que ha sido tan enriquecedor para
mi. Espero que este trabajo sea un reflejo de todos los valores y enseñanzas que me han
dado a través de mi vida. No me queda más que decir gracias.
IEL2-2002-II-19
AGRADECIMIENTOS
Este proyecto no hubiese sido realidad sin el apoyo de muchas personas que estuvieron
conmigo durante estos últimos meses de mi carrera y que me sirvieron de pilar para seguir
adelante y nunca desfallecer, sin embargo quiero agradecer profundamente a mis padres y a
mi hermana por toda la confianza que depositaron en mi y por enseñarme lo más valioso de
mi vida.
De igual forma quiero agradecer a Antonio García y a Fredy Segura por su apoyo técnico y
humano durante este periodo, además por la experiencia y consejos que me brindaron para
hacer de este trabajo una realidad.
Finalmente quiero agradecer muy personalmente a Alvaro Varela, Sergio Cruz, Nathaly
Gaitán y a muchos más, por estar ahí en los momentos decisivos y porque de una u otra
forma fueron participes de este trabajo.
IEL2-2002-II-19
1 CONTENIDO
Pag.
1 CONTENIDO 6
2 RESUMEN 7
3 INTRODUCCIÓN 8
4 PROCEDIMIENTO DEL PROYECTO 10
5 ÁREA FÍSICA Y MECÁNICA 12
5.1.1 Mapa eléctrico de las manos. 15
5.1.2 Mapa físico de las manos. 16
6 ETAPA LÓGICA Y DE ALGORITMOS 26
6.1.1 La red neuronal. 30
7 MONTAJE ELECTRÓNICO 39
8 APLICACIONES 50
8.1.1 Utilización en la industria. 53
8.1.2 Utilización en exploración. 54
8.1.3 Utilización familiar o casera. 56
9 RESULTADOS 58
9.1.1 Nuevos modelos para el reconocimiento de patrones. 59
9.2.1 Tiempos de respuesta. 62
10 CONCLUSIONES 64
11 BIBLIOGRAFÍA 68
12 INDICE DE FIGURAS 69
IEL2-2002-II-19
2 RESUMEN
Las redes neuronales y la lógica difusa han sido utilizadas constantemente para el
reconocimiento de patrones en varios sectores de investigación e industria. Para este trabajo
se intentó aplicar estos algoritmos para lograr un reconocimiento de objetos a través de
mediciones físicas como lo son: la forma bidimensional, el ancho, los cromas
característicos y la temperatura; para ser utilizado en aplicaciones de robótica móvil de bajo
costo.
Estas señales permiten que no sean necesarias mediciones de otra índole como lo son el uso
de cámaras de video o digitales para lograr este mismo propósito pero que incrementan la
complejidad de los equipos, tanto software como hardware, del dispositivo; así mismo
como el costo del proyecto.
La utilización de lecturas de este tipo de señales permite una nueva disposición de ideas,
teorías y argumentos para optimizar procesos de reconocimiento, así mismo como procesos
de aprendizaje elemental basados en condiciones no intrínsecas de juicio para robótica.
Palabras claves: robótica, reconocimiento de objetos, aprendizaje no determinístico,
reconocimiento bidimensional, redes neuronales, lógica difusa.
IEL2-2002-II-19
3 INTRODUCCIÓN
Hoy en día el reconocimiento de objetos es un proceso fundamental en muchas áreas de la
industria como lo es el control de calidad o la exploración de recursos. Sin embargo la
mayoría de las aplicaciones existentes, se basan en un proceso de identificación de imagen
con extensos y/o complejos algoritmos implementados casi en su totalidad con potentes
procesadores o en grandes equipos, como lo es un computador, lo que los hace no aptos
para ser trasladados con facilidad o simplemente con limitaciones de espacio físico.
Una alternativa que empieza a fomentarse en el mundo, es la inclusión de otro tipo de
señales para lograr un reconocimiento más versátil de objetos en un medio conocido o
semidesconocido para así obtener identificadores de bajo costo, fácil adaptación al medio
de trabajo y con mayores posibilidades de ser implementados en pequeños y sencillos
dispositivos.
Se pretende en este trabajo, basado en esa nueva tendencia, la implementación y estudio de
un dispositivo móvil que posea sensores capaces de alimentar redes neuronales y
algoritmos de lógica difusa para el aprendizaje e identificación de objetos. Este dispositivo
móvil llamado TA®EA, debe contar con limitaciones en su costo de implementación, así
mismo debe poseer limitaciones físicas para los objetos reconocibles, como lo son unas
dimensiones, una consistencia y un peso mínimo y máximo.
Con este dispositivo se pretende generar una nueva alternativa para el reconocimiento de
objetos pequeños, que posean diversas formas, colores, dimensiones y que permita además
algunas características más complejas como lo es la temperatura del objeto que puede
diferir en el tiempo. Teniendo en cuenta estas características el dispositivo debe estar en
IEL2-2002-II-19
capacidad de crear una base de datos de objetos conocidos que es incrementada con la
interacción, para así en un futuro, tomar decisiones dependiendo de las características del
objeto.
IEL2-2002-II-19
4 PROCEDIMIENTO DEL PROYECTO
El reconocimiento de patrones físicos, químicos o eléctricos para una posterior
clasificación, es un procedimiento difícil, en muchos casos subjetivo y que requiere de un
trabajo largo de investigación para determinar con certeza una escala o segmentos de escala
apropiados para lograr una distribución apropiada para la medición. Conociendo un poco
esto, se diseñó un plan de trabajo que abarcara distintas áreas involucradas para el
desarrollo de este proyecto, como lo son, mecánica, probabilística y por supuesto
electrónica.
El objetivo de este proyecto es el de obtener un módulo capaz de medir y sensar algunas
características físicas de los objetos, para así, con ayuda de algoritmos extraídos de
disciplinas como las redes neuronales, los sistemas de comparación por espacios vectoriales
y las teorías de probabilidad, clasificarlos por sus características y almacenarlos en
memoria para su posterior comparación con nuevos objetos encontrados.
Este objetivo fue dividido en tres grandes áreas para poder afrontar el problema de forma
ordenada y así evitar problemas posteriores. La primera de estas grande áreas comprende la
parte física del montaje y por tanto esta regido principalmente por leyes de la física y
mecánica para su desenvolvimiento. Esta área consiste principalmente en la fabricación de
un módulo capaz de mover los sensores de medición hasta un objeto en reposo que debe
encontrarse cerca de la estructura. Este sistema debe ser accionado por señales eléctricas y
debe permitir la evaluación de objetos con distintas características, como lo son, alto,
ancho, forma, entre otros.
La segunda área de trabajo la constituye la evaluación de algoritmos capaces de llevar a
cabo una clasificación de las características dependientes de la medición obtenida por los
IEL2-2002-II-19
diversos sensores. En esta área se evalúan distintas alternativas que permitan una mejor
clasificación de cada característica, debido a esto, se usan distintas técnicas para los
distintos sensores.
La tercera área comprende el montaje electrónico, es decir, la escogencia de dispositivos
electrónicos apropiados para llevar estos algoritmos a operación, así mismo la interfaz entre
la parte mecánica y los algoritmos que se deben operar para realizar la tarea de
reconocimiento y almacenamiento de información. Esta tercera área es muy dependiente de
la segunda área, por tanto es uno de los últimos procesos que se llevan a cabo, pero a su
vez, sus limitaciones deben ser planteadas desde el principio del diseño.
IEL2-2002-II-19
5 ÁREA FÍSICA Y MECÁNICA
Es un reto grande el poder diseñar un sistema mecánico apropiado y seguro para una
persona cuya área del conocimiento se centra en el diseño de sistemas electrónicos, sin
embargo, con la colaboración indicada este hecho puede ser bien resuelto. A pesar de esto,
esta etapa del trabajo depende mucho del ensayo y error, por un lado debido a la
inexperiencia en trabajos mecánicos, que conlleva a una falta de calidad en los primeros
intentos, y por otro lado debido a la falta de documentación existente para la fabricación y
uso de sensores físicos para medición de objetos pequeños.
El primer paso que se llevó a cabo en esta etapa fue la elaboración de un boceto de
mediciones que se querían realizar. Por un lado se pretendía la medición de la forma lateral
del objeto, es decir se quería una imagen bidimensional del objeto usando únicamente
sensores físicos. Esta medida fue tomada debido a una de las limitantes iniciales del
proyecto que consistía en el no uso de sistemas de video dentro de los sensores. La idea de
no usar sistemas de video incorporados buscaba aminorar los costos del sistema de
reconocimiento y además plantear nuevas alternativas para el desarrollo de sistemas
capaces de reconocer objetos en reposo. En la actualidad, una gran mayoría de los sistemas
de reconocimiento de objetos, utilizan videocámaras o fotografías junto con algoritmos de
tratamiento de imágenes para establecer las características de los objetos; sin embargo en
algunos casos es imposible utilizar estos dispositivos debido a las inconveniencias del
medio, por ejemplo, el uso de estos en aguas profundas; por esto es aún necesario el uso de
personal humano para llevar a cabo funciones de reconocimiento que deberían ser
automatizadas. Con el fin de suplir este tipo de necesidades, se pretende demostrar que con
otro tipo de sensores se puede llegar a un resultado similar.
IEL2-2002-II-19
En este proceso, utilizando la información obtenida por un grupo de investigadores que
trabajan en robótica y reconocimiento de objetos, se tuvo la idea de probar con un sistema
de cinco sensores retráctiles, capaces de hormar el objeto por cada lado y así tener la
posibilidad de obtener una imagen bidimensional del objeto. Así mismo, este robot está en
capacidad de tomar otra clase de medidas físicas para poderlas tener en cuenta como
patrones de clasificación de los distintos objetos, generando así un vector de características
que posea el objeto. Entre estas características están la temperatura, el ancho y los colores
del objeto, además de la ya mencionada estructura bidimensional.
5.1 LAS MANOS
En este punto empezaremos a asemejar ciertas características humanas con la morfología de
el sistema, en primer lugar definiremos las manos del robot. Al igual que los distintos
animales, este robot debe estar en capacidad de manipular los objetos de forma tal que sea
capaz de obtener ciertas características de este. En muchos animales terrestres, este proceso
se lleva a cabo con las extremidades anteriores, para el caso de los primates, las manos
cumplen esta función. Teniendo este gran ejemplo de la naturaleza, el robot tuvo su primer
diseño en esta parte, las manos.
Las manos del robot están ligadas a un sistema que sea capaz de desplazarlas hasta el
objeto. Independientemente de cómo sea este sistema, las manos deben contar con los
sensores precisos para poder tomar una cantidad de datos suficientes para la clasificación
de la forma bidimensional. Para esto, se decidió por un sistema de cinco dedos, llamados
así porque sobresalen de la mano, que tuvieran un movimiento rectilíneo y retráctil para
envolver el objeto. El número de dedos a utilizar se determinó por la experiencia adquirida
en procesos de reconocimiento de caracteres con algoritmos de redes neuronales.
IEL2-2002-II-19
Si se quieren diferenciar las principales formas bidimensionales de un objeto se necesitaría
por lo menos una referencia central y los dos extremos de esta. Con estos tres datos,
podríamos diferenciar una línea recta vertical, una diagonal hacia la izquierda, una diagonal
hacia la derecha y curvas convexas y cóncavas. Si por el contrario usáramos menos de tres
mediciones por cada lado del objeto, a duras penas podríamos diferencias algunas formas.
Por otro lado, con un número mayor de mediciones, podríamos mejorar la información del
sistema y así podríamos distinguir curvas redondeadas, de curvas fuertes. Pero para este
propósito es necesario un mayor procesamiento de información y de esta forma el número
de variables a evaluar crece aumentando la complejidad de los algoritmos.
Encontramos un compromiso entre calidad en la identificación y la complejidad de los
algoritmos. Si usáramos cuatro sensores por cada lado, el centro de referencia se
encontraría tácito, eso suponiendo una distribución equidistante de los sensores, pero si por
el contrario utilizáramos cinco sensores por cada lado del objeto, esto supondría un centro
medible, dos extremos, y una señal entre el centro y cada extremo. Con este número, que
fue evaluado para el uso de algoritmos de reconocimiento por redes neuronales, se
determinó el diseño de la mano del robot.
Ya conociendo el número de sensores que entrarían en contacto con el objeto para
hormarlo, solo bastaba con presentar un diseño que permitiera tener sensores de bajo costo,
fácilmente reparables, debido que en sistemas como estos es frecuente que se presenten
fallas mecánicas, y que tuvieran como salida una señal análoga que representara la posición
actual del sensor con respecto a su posición inicial. Este diseño se llevó a cabo simulando
un poco los procesos de agarre de algunas máquinas que cuentan con partes móviles para
mejorar el agarre de los objetos.
La mano era esencialmente una caja donde se encontraban los distintos dispositivos y
conexiones para la transformación de un proceso mecánico como lo era el movimiento en
una señal eléctrica. Por otro lado, la caja en uno de sus lados debía tener los cinco dedos
IEL2-2002-II-19
retráctiles para hormar de la mejor manera el objeto. Se determinó el largo de los dedos
mirando la disponibilidad del mercado de dispositivos que variaran sus características
eléctricas con el desplazamiento. Se encontraron unas resistencias variables de movimiento
rectilíneo que se ajustaban muy bien a estas condiciones y con estas se realizó el primer
mapa eléctrico del circuito correspondiente de la mano.
5.1.1 Mapa eléctrico de las manos. El circuito es de una complejidad mínima y se basa
en el movimiento del puntero de la resistencia variable para la obtención de un valor acorde
con la distancia de desplazamiento. Estas resistencias variables no son lineales, pero su
comportamiento, que tampoco es logarítmico, permiten trabajar con una buena
aproximación a una relación proporcional de distancia por ohms.
Figura 1. mano izquierda del robot mostrando las resistencias variables.
Estas resistencias variables fueron escogidas porque contaban con cuatro conexiones, dos
de ellas correspondían a las resistencia de punta a punta, es decir de 100KΩ, una tercera
conexión correspondiente al valor de la resistencia que varía con el desplazamiento, y un
cuarto terminal que no tiene influencia en la resistencia. Este cuatro terminal fue utilizado
IEL2-2002-II-19
para la obtención de una señal que indique cuando alguno de los cinco dedos llega al final
de su recorrido, es decir, cuando el objeto ya esta hormado.
Se puede apreciar la forma y diseño de la resistencia variable, así mismo, la disposición que
existe para la creación de la mano. En este circuito, cada extremo de la resistencia total es
conectado, bien sea a un voltaje de alimentación o la referencia, la tercera conexión
corresponde al valor sensado que se haya entre el voltaje de alimentación y cero voltios, y
una ultima terminal adaptada para entrar en contacto con la alimentación cuando la
resistencia haya llegado al final del trayecto (Ver Figura 1).
Este diseño se cumple para los cinco sensores correspondientes a los cinco dedos de la
mano, obteniendo una carga aproximada de 20KΩ, que corresponde al resultado de cinco
resistencias de 100KΩ en paralelo. Las señales de final de trayectoria están unidas por
conexión, es decir se tiene un OR cableado de todas las señales de fin de trayectoria, que
indica cuando alguno de los dedos ha llegado a su extremo, cuando esta señal sea activa
podemos hacer la medición con la certeza de tener hormado el objeto.
5.1.2 Mapa físico de las manos. Conociendo un poco el circuito que se desprendía de
los sensores, se pudo determinar un tamaño adecuado para la caja que contenía todo este
sistema. Se determinó que un área de diez (10) centímetros por diez (10) centímetros era
suficiente. La altura de la estructura se vio definida por el alto de los dedos, que en este
caso fueron fabricados con balso por su peso, costo y fácil manejo.
Teniendo en cuenta que las manos debían ser desplazadas por un sistema de brazos, el
material escogido para ser usado como soporte fue el acrílico. Este material cuenta con
características importantes en el diseño, por un lado es un material ligero, esto da una
ventaja frente a materiales de gran peso como puede ser la madera o algunos metales. Por
otro lado, es un material firme, que puede ser fácilmente trabajable y que no se desgasta de
manera sencilla, ventaja sobre la madera, y finalmente es un material no conductor, que es
IEL2-2002-II-19
una clara ventaja frente a materiales como el aluminio. Este última característica es
importante ya que desconocemos los objetos que puedan llegar a ser sensados y por tanto
no sabemos si estos pueden producir cambios en los sensores. Esta misma razón fue
aplicada al material de los dedos, sin embargo encontramos que el acrílico era muy frágil
para ser expuesto a continuas presiones en los dedos.
Figura 2. vista posterior de las manos del robot, se puede apreciar el circuito impreso.
Ya determinados estos materiales, acrílico para las tapas y balso para los dedos, el resto
consistía en realizar un circuito que no ocupara tanto espacio, que no tuviera problemas en
sus conexiones previstas por los continuos movimientos de los dedos y obviamente que
fuera lo más ligero posible. Por ello, se determinó realizar un circuito impreso para cada
mano. Este circuito mide aproximadamente 7.5 por 7.5 centímetros y cabe perfectamente
en la caja, dejando espacio para la fabricación de un bus capaz de trasportar nuestras
señales desde las manos hasta el lugar de procesamiento de información. (Ver Figura 2).
El espacio sobrante en el diseño de las manos se dejó libre para la inserción de algún otro
tipo de sensor de ser necesaria. Más adelante se discutirá este tema, en la sección
IEL2-2002-II-19
correspondiente al sensor de temperatura. Debido a esto, la fabricación de las manos no fue
llevada a cabo en este punto, sin embargo su estructura externa ya esta formada para poder
continuar con el diseño de las otras partes.
5.2 LOS BRAZOS
Para poder posicionar las manos y poderlas desplazar, era necesaria la construcción de
brazos capaces de mover un gran peso en un tiempo mínimo sin llegar a dañar el objeto que
se quería reconocer. Para este trabajo se resolvió colocar las manos a una distancia
pertinente del robot para facilitar su movimiento y para permitir agarrar objetos de cierto
ancho.
La primera idea de diseño consistió en un par de pinzas que se cierran, cada una
dependiente de un eje de rotación. Este diseño contemplaba un par de rotores, uno para
cada brazo que movilizara la mano en una trayectoria semicircular hasta que ambas manos
se encontraran. Este diseño no llego a ser implementado ya que este tipo de trayectoria no
facilitaba el reconocimiento de la forma bidimensional del objeto. Usando esta trayectoria
era posible que dos objetos de forma similar, pero dimensiones de ancho distintas, fueran
tomados en partes diferentes y así se alterara el reconocimiento. Por ejemplo, si tuviésemos
un cubo de ancho X, es posible que sea hormado muy cerca de su media, es decir dando
como resultado dos líneas verticales rectas como prueba de su forma bidimensional. Sin
embargo si tomamos un cubo parecido al anterior, pero de ancho X + Y, es posible que los
sensores no alcancen los dos extremos laterales del cubo y la forma sensada sea distinta
debido al ángulo de incidencia de las manos.
IEL2-2002-II-19
Un segundo diseño se planteó para solucionar este problema, si podíamos cambiar el
trayecto de las manos por un desplazamiento en línea recta, el ángulo de incidencia sería
igual, o por lo menos con poca variación. Usando un diseño de brazo articulado, copiado de
los sistemas de cierre y apertura de puertas, se lograba un desplazamiento casi rectilíneo de
las manos, manteniendo un eje independiente para cada brazo manejado por un rotor, y un
eje móvil encadenado a un riel para mantener un desplazamiento rectilíneo de la parte
extrema del brazo. Este diseño fue resuelto primero en una maqueta utilizando fichas de
LEGO1 para su fabricación. El sistema funcionaba, sin embargo la maqueta difería
considerablemente en el peso de las partes que en verdad se utilizaban.
Al intentar construir este sistema de movimiento con partes del mercado que soportaran el
peso real de las manos y se pudieran acoplar por medio de tornillos, el sistema falló, debido
principalmente al rozamiento producido por los ejes móviles con el riel. En ese momento se
replantearon las ideas para la fabricación de un sistema capaz de movilizar las manos en
una trayectoria rectilínea evitando al máximo el rozamiento.
Observando con mucho detenimiento el movimiento de una puerta corrediza, se decidió
copiar el sistema de rieles de una puerta, esta vez utilizando dos rieles, uno arriba y otro
abajo, un sistema con rodamientos, utilizados en carpintería para cajones y similares, y un
sistema de tracción en ambos sentido producido por un solo motor para cada brazo. Este
diseño tuvo mucho éxito ya que permite mover con facilidad el brazo, que no es articulado
ni tiene un eje, simplemente lo desplaza por los rieles halando de una cuerda. El reto en ese
momento fue el de usar un solo motor para halar en ambas direcciones, para eso, se trabajó
un sistema de polea mixta que enrolla a la vez que desenrolla dos cuerdas y dependiendo
del sentido de giro el brazo es halado en algún sentido.
Este sistema posee una especie de carro que esta atado por medio de una extensión metálica
a la mano. Este carro, esta sujeto por dos cuerdas, una en cada dirección de movimiento que
llegan a un solo eje movido por un rotor por medio de un cuidadoso juego de poleas. Una 1 LEGO ® : Fichas para armar.
IEL2-2002-II-19
de las cuerdas enrolla en sentido de las manecillas del reloj y la otra lo hace en sentido
contrario. De esta manera, cuando el rotor gira en un sentido el brazo se abre y cuando gira
en el otro sentido el brazo se cierra.
Figura 3. vista superior del robot sin tapa, se puede apreciar el sistema de poleas.
El sistema de poleas es necesario por varios motivos, el primero de ellos trata la fuerza de
los motores. Siendo pequeños motores DC, estos no cuentan con un torque suficiente para
desplazar el peso de los brazos y las manos, así que se provee de una relación de piñones
para disminuir la velocidad de desplazamiento y aumentar la fuerza. En segundo lugar, se
debe tener en cuenta que es importante darle grados de libertad al rotor en caso que la mano
haya llegado a su límite, es decir, el rotor debe poder seguir girando sin dañar la estructura
de las manos o los rieles, para esto se utiliza una banda elástica como conector entre el rotor
y el eje (Ver Figura 3).
Este último diseño tuvo éxito y es el que actualmente se está utilizando, con motores DC
alimentados con un potencial de 7.5 Voltios aproximadamente, las manos tienen la
posibilidad de moverse hasta hormar el objeto sin dañarlo debido a su baja velocidad y su
fuerza limitada. Es importante recalcar que se le quitó algo de fuerza al sistema para que no
IEL2-2002-II-19
se presentaran daños en la estructura de los objetos, sobre todo aquellos objetos de vidrio
que se pretenden usar como ejemplares para identificación.
Los materiales utilizados en la fabricación de los brazos varían bastante. Por un lado, para
mantener la uniformidad con las manos, la estructura del robot se ha trabajado en acrílico,
así mismo los rieles y los soportes de motores y ejes. Los rodamientos utilizados para los
carros de los rieles son de metal, al igual que las escuadras utilizadas como extensiones de
los brazos para soportar las manos. Las partes metálicas utilizadas son principalmente
utilizados en carpintería, así que su bajo peso, alta rigidez y bajo costo son ideales. Por otro
lado, las cuerdas utilizadas son de Nylon de diferentes calibres dependiendo del sentido de
giro.
5.3 LA CARA
Al igual que los animales, el robot posee una cara que le permite sensar otras
características de los objetos al quererlos reconocer. Una de esas características es el color
de los objetos, es decir sus características cromáticas. Para seguir con las analogías entre
animales y el proyecto, los ojos son los encargados de la visión, pero el robot no desea ver,
solo quiere distinguir los colores de lo que tiene enfrente, para esto se diseño un sistema
similar a unos ojos capaces de distinguir ciertas frecuencias de luz.
Usando algunas teorías de la física óptica, se plantearon soluciones para lograr sensar esta
característica. La primera de estas teorías, es la reflexión de la luz, para poder ver de que
color es el objeto es necesario exponerlo a la luz y ver que frecuencias son reflejadas en
mayor medida. Para lograr este cometido, se le pusieron dos ojos activos al robot que se
componen de una bombilla de luz blanca para cada ojo, que permite iluminar de forma casi
IEL2-2002-II-19
igual a cualquier objeto puesto enfrente del robot, con esto se pretende desvincular las
mediciones de cromas a las luz ambiente. Por otro lado tenemos tres ojos pasivos, que estén
compuestos por fotorresistencias recubiertas por distintos colores para aumentar el rechazo
o aceptación de rangos de frecuencias (Ver Figura 4).
Figura 4. se aprecia la cara del robot, distinguiéndose los ojos pasivos y activos.
Cada ojo pasivo esta recubierto por un color, los cuales son Verde, Amarillo y Azul-
Violeta. Estos tres colores permiten una distinción en la medición de los distintos colores
en objetos. Estos colores fueron escogidos usando referencias de artistas, diseñadores y por
supuesto de tratamiento de imágenes, pero fue después de varias pruebas que fueron
escogidos como los colores de filtros a utilizar. Los ojos pasivos se encuentran protegidos
de las luz ambiente por la misma estructura física del robot y esto aumenta la
independencia con la luz ambiente.
Los ojos del robot se encuentran en la cara, con una disposición triangular para los ojos
pasivos, que se encuentran en la parte inferior de la cara, mientras los ojos activos se
IEL2-2002-II-19
encuentran en la parte alta y equidistantes de la mitad. Esta distribución se hizo así para
poder exponer al objeto a la mayor cantidad de luz, y de igual forma poder sensar la mayor
cantidad de luz reflejada por este.
La localización de la cara debía ser lo más cercana posible al objeto y que no interfiriera
con el movimiento de los brazos. Para esto se creó una extensión del robot hacia adelante
que permitió localizar la cara con un pequeño ángulo de inclinación muy cerca del objeto.
Esta localización ayuda a que la luz ambiente sea menos incidente en los ojos pasivos ya
que el mismo objeto trabaja como barrera para esta.
5.4 LA ALIMENTACIÓN
Siendo un robot con autonomía propia para poder identificar objetos, sería poco oportuno
que el montaje no contara con su propia fuente de alimentación y por tanto este se viera
limitado por una conexión eléctrica a alguna fuente de poder externa. Esta razón que es de
gran peso si hablamos de robótica móvil se ve resuelta si portamos nuestra propia fuente de
alimentación. Esta fuente de alimentación debe cumplir con un número de características
que la hagan útil para el robot.
La primera de estas características consiste en su salida, esta debe ser un voltaje D.C. que
permita operar de manera sencilla los circuitos eléctricos y electrónicos que posee el robot,
al igual que sus actuadores como bombillos y motores. Se definió una fuente de 12 Voltios
D.C. como potencial requerido. De esta forma se pueden operar los motores hasta su
capacidad máxima (que son 12 V), y se puede distribuir una fuente de 5 Voltios para los
circuitos.
IEL2-2002-II-19
Por otro lado, los motores D.C. de apertura de los brazos necesitan un amperaje suficiente
para su buen funcionamiento. Este amperaje ha sido calculado de manera experimental
dependiendo de las distintas situaciones a las que se ve el robot expuesto al hormar un
objeto. En el peor de los casos, cada motor requiere un máximo de 0.7 Amperios para poder
desplazar las manos de manera satisfactoria, si la resistencia del objeto lo permite.
Teniendo en cuenta que el robot nunca tomaría un objeto estando en movimiento, solo dos
motores actuarían a la vez, (esto teniendo en cuenta futuras mejoras al robot, como motores
propios para el desplazamiento), es por esto que la fuente de alimentación debe contar con
un suministro de corriente superior a 1.5 A/h. Además de esto, hay que contar con las
exigencias de corriente de los circuitos, aunque esta sea mucho menor que la antes
mencionada. En total, una fuente de 2.0 A/h es suficiente para cubrir las necesidades de
corriente del robot.
Otro aspecto importante es el tamaño de la batería a utilizar, a parte de contar con las
características eléctricas antes mencionadas, la batería debe poderse colocar dentro del
robot para que haga parte del mismo y no se convierta en un módulo anexo de este. Para
lograr este fin se analizaron algunas alternativas del mercado que permitieran definir que
formato de batería era la más adecuada. Finalmente se decidió por una batería con una
altura inferior a los diez centímetros y que fuera rectangular para poder optimizar el espacio
interno del robot dispuesto para la fuente de alimentación y circuitos.
Un último requerimiento era la duración de la batería, si este robot se llevara a un proceso
industrial debería por lo menos durar una jornada de trabajo completa, es decir debería
soportar prácticamente un día laboral completo para no entorpecer las acciones. Contando
con este y todos los requerimientos antes mencionados se decidió por una batería
PANASONIC de 12 V, 2.2 A/h y una duración de carga completa de veinte (20) horas. Esta
batería esta localizada en la parte posterior del robot, lo que permite una mejor distribución
de peso ya que los brazos y motores se encuentran en la parte frontal.
IEL2-2002-II-19
Para lograr que esta fuente provea de energía a cada etapa del robot, se utilizaron dos
reguladores de voltaje, uno que permite tener una salida constante de 5.0 voltios para
alimentar los circuitos y un segundo controlador que alimenta a los motores con 7.5 voltios
y una salida de corriente de 1.5 A, que es la máxima exigida por ambos motores.
Finalmente cabe destacar que esta batería es recargable y que tiene una vida útil de varios
años (Ver Figura 5).
Figura 5. vista frontal del robot, al fondo se aprecia la batería de color negro.
IEL2-2002-II-19
6 ETAPA LÓGICA Y DE ALGORITMOS
Teniendo ya caracterizada la parte mecánica y física del robot, es importante definir los
algoritmos y rutinas que se deben llevar a cabo para el manejo de la información. Este flujo
de información va desde una medición física hasta un resultado que informa el número del
objeto que se ha identificado, o en caso de ser uno nuevo, la asignación de un número para
este objeto. Estas definiciones son importantes para poder repartir este gran proceso de
identificación y aprendizaje en pequeñas rutinas de fácil manejo y mantenimiento para
lograr un desarrollo óptimo.
Al pretender desenvolver un gran algoritmo en pequeñas partes, se debe empezar no solo
por mirar el problema sino por definir una comunicación adecuada para que estos pequeños
procesos puedan actuar en conjunto. La primera definición que se utilizó, fue la
determinación del uso de 5.0 Voltios como alimentación de todos los circuitos eléctricos,
esto incluye además sensores. Con esta definición, se incluyó además una característica
importante en los valores que iban a tener las señales que se iban a sensar.
Todos los sensores del robot deben operar en un rango de cero (cinco) a cero (0) Voltios,
para poder lograr esto es necesario la inclusión de etapas de amplificación para el caso del
sensor de temperatura, y de manejo de impedancias para el resto de sensores. Con estos
datos físicos obtenidos de las distintas pruebas se alimentaban los algoritmos y programas
de simulación para poder analizar sus alcances antes de ser montadas.
Con el fin de mantener una uniformidad entre la información física obtenida y la
información procesada, se estableció que toda señal análoga de cero a cinco voltios, que
IEL2-2002-II-19
manejaba la salida de cada sensor, iba a ser discretizada y normalizada en el mismo
formato, es decir con un valor mínimo de 0.0 y un valor máximo de 5.0.
Teniendo esta premisa sobre los posibles valores de los datos que alimentarían los distintos
algoritmos, se diseñaron estrategias para afrontar cada etapa de reconocimiento de patrones
requerida. La primera de estas etapas consistió en el reconocimiento de la forma
bidimensional de los objetos, se escogió esta como la primera etapa a trabajar debido a su
importancia y la complejidad de la misma, que exigía un tiempo mayor de desarrollo y
pruebas que el resto de etapas.
6.1 RECONOCIMIENTO DE FORMA
El reconocimiento de forma bidimensional pretende tener una aproximación del relieve del
objeto si se mira de lado. Debido que las posibles formas de un objeto son infinitas, era
abrupto establecer un número de formas posibles y limitar el proceso a identificar la más
parecida a la real.
Este proceso sesgado quería superarse de la mejor manera y es por esto que se resolvió
presentar una serie de formas comunes de los objetos, y desarrollar un algoritmo que fuera
capaz de decidir cuales de esas formas se parecían en gran medida a la anatomía del objeto,
en otras palabras era posible que un objeto presentara varias de las formas comunes antes
mencionadas.
Se empezó definiendo cada una de las formas básicas con las cuales se podía caracterizar la
forma del objeto. Se estableció un número de ocho posibles formas básicas que debían
incluir curvas, rectas, diagonales entre otras. Teniendo en cuenta las limitantes físicas del
IEL2-2002-II-19
robot, los objetos que iban a querer ser identificados no deben poseer un ancho superior a
diez centímetros, así que las copas y vasos podían ser una fuente de inspiración para
analizar el tipo de objeto que se podían medir. Gracias a esto, se establecieron las formas
más apropiadas para esta clase de objetos que se adaptan muy bien a otra clase de objetos.
Figura 6. formas básicas para el reconocimiento de forma.
En la Figura 6 se pueden observar las formas básicas. Se definieron dos tipos de líneas
rectas, una vertical y una horizontal. La primera de ellas es para representar los objetos que
poseen un lado plano es decir como un libro o un cubo. La segunda línea recta es la
horizontal y es representante de formas en las que el objeto presenta un alto menor a la
distancia entre los dedos superior e inferior de la mano y por tanto solo algunos de los
sensores son deslazados y algunos de los extremos quedan total o parcialmente extendidos.
En este caso aparecen cubos con un alto menor como se ve en el ejemplo. Este caso es
bastante global ya que puede ser que el objeto se encuentre localizado en la mitad pero no
este ejerciendo presión sobre todos los dedos centrales (Ver Figura 7).
Figura 7. ejemplos de horma para vertical y vertical corta.
IEL2-2002-II-19
Los dos casos siguientes pertenecen a las curvas y estas están definidas como cóncavas o
convexas. Debido a la generalidad de las curvas, están deben ser identificadas a pesar del
diámetro del circulo o la altura a la que se presentan con relación a las manos del robot. Es
importante recalcar que uno se puede presentar a una curva en la parte media de esta o en la
parte superior o inferior, dando así una forma diferente para cada caso, sin embargo el
algoritmo debe estar en capacidad de asociar todas estas posibilidades con la forma curva
correspondiente a su sentido, es decir cóncava o convexa, como se muestra en las figuras.
Estas son las formas básicas con mayor complejidad en cuanto a patrones de
reconocimiento se refiere (Ver Figura 8).
Figura 8. ejemplos de horma para curvas cóncava y convexa
Finalmente las últimas cuatro opciones son las definidas como diagonales con cambio, es
decir objetos que presentan dos zonas fácilmente diferenciables. Ya que existen figuras con
la parte superior en mayor relieve que la inferior o viceversa, se decidió determinar dos
tipos de formas para señalar estos cambios, estas son las formas básicas quinta y sexta.
Finalmente están las diagonales que son fáciles de diferencia debido a su naturaleza
progresiva de disminución de relieve tanto en sentido superior o inferior. Estas dos figuras
IEL2-2002-II-19
corresponden a las últimas dos formas básicas con las que se pretende asociar la forma real
del objeto (Ver Figura 9).
Figura 9. ejemplos de horma para diagonales y cambios.
Teniendo ya definidas las formas básicas con las que se pretende trabajar, se plantearon
varias opciones como alternativas para el algoritmo. La primera alternativa era generar
tablas para identificar los patrones que se presentan en cada forma y asociarlos de manera
subjetiva para poder definir quien pertenecía a una forma determinada. Por otro lado se
quería intentar un reconocimiento por medio de redes neuronales que permitiera generar
varios espacios vectoriales con las distintas características de cada forma básica y después
agrupar estas características para decidir que forma podía asociarse mejor con alguna forma
básica. Después de algunos intentos para establecer subjetivamente los patrones más
comunes de cada forma, se decidió abandonar esta alternativa para concentrarnos en un
trabajo con redes neuronales.
6.1.1 La red neuronal. La red neuronal que se utilizó para este proceso es una red
neuronal de arquitectura Feed-Forward. Se escogió este tipo de red neuronal ya que
poseemos información suficiente para generar nuestra propia base de datos completa,
además por la experiencia previa que se tiene trabajando con este tipo de redes.
IEL2-2002-II-19
Para el entrenamiento de esta red neuronal se realizó una base de datos con más de diez
ejemplos por cada una de las formas básicas, de los cuales solo se utilizaron 800 de estos
ejemplares para el proceso de entrenamiento y el resto se utilizó como validación. Para la
red se utilizaron programas de mi propiedad que fueron desarrollados hace un año durante
la clase de Redes Neuronales que tienen la capacidad de entrenar redes con métodos de
Back Propagation o Full Propagation, y que cuentan con una sigmoide como función de
activación. Esta sigmoide es idéntica a la utilizada en proyectos pasados basados en
reconocimiento de patrones y se determinó con anterioridad dados los buenos resultados
que ha tenido en casos anteriores. Debido a esto, se sugirió el uso de la misma sigmoide y
se estableció un umbral de 0.6 para la segunda capa de neuronas, con el fin de activar
alguna de las salidas.
La red neuronal, después de varios intentos de entrenamiento se estableció con un tamaño
de cinco neuronas en la capa intermedia y ocho para la capa de salida, sonde cada una de
las neuronas de salida correspondía a una de las formas básicas preestablecidas. Para el
entrenamiento de la red se desarrollo un simulador del movimiento de los dedos de una
mano. Este simulador da un valor correspondiente al movimiento de cada dedo que va
desde cero hasta cinco, imitando el funcionamiento real de una mano. El simulador fue
diseñado usando el programa de animación Flash2 que permite una interacción sencilla para
el movimiento de los dedos.
Usando este simulador se generó la base de datos que se utilizó en otro programa,
desarrollado en C, para el entrenamiento de la red. Posterior a esto, se realizó un último
programa que conjugaba el simulador de movimiento de los dedos de la mano para permitir
conocer el valor que entregarían los sensores, y entrando estos valores en campos de texto,
se calcula la salida y se entrega la respuesta correspondiente para una forma dada. Este
último programa fue realizado en JAVAScript para ser utilizado en cualquier navegador sin
2 FLASH, un producto asociado a MACROMEDIA ®
IEL2-2002-II-19
problemas y para poder operar con una animación de FLASH y la implementación de una
red neuronal en JAVA. Este último programa fue realizado con el fin de validar en casos
inhóspitos el comportamiento de la red, gracias esto se pudo comprobar que la red tiene un
gran factor de apreciación con diferentes formas, incluso con formas a veces incoherentes
para un objeto normal.
Finalmente se decidió operar dos veces esta misma red neuronal, la primera vez con la
información proveniente de la mano izquierda y la segunda vez con la información
proveniente de la mano derecha del robot. La información resultante se almacena en dos
palabras de ocho bits, donde cada palabra es el resultado de la información de forma de
cada lado del objeto. Cada bit de estas palabras representa una forma básica con la que
puede ser catalogada la forma real del objeto. Debido que la forma real de un objeto puede
ser asociada a varias formas básicas se decidió este sistema no codificado de información
que permite una lectura y comparación posterior de la información de una manera sencilla y
no tenemos que complicarnos observando que formas se pueden asociar entre sí y que
formas nunca serán asociadas a una misma forma real.
6.2 RECONOCIMIENTO DE CROMAS
El reconocimiento de cormas o colores es un proceso bastante subjetivo donde es necesario
predefinir y seleccionar ejemplo de los colores para establecer una base de datos fidedigna.
Esto es realmente complicado ya que no siempre un mismo color se es identificado con el
mismo nombre por varias personas, en muchos casos es difícil diferenciar un verde de un
azul o un rojo y un naranja. Por esta razón se busco la opinión de varias personas para
seleccionar objetos con colores “puros” para la generación de la base de datos.
IEL2-2002-II-19
Conociendo un poco la teoría de composición del color, que puede ser utilizada con tres
únicos colores para la composición de cualquier otro color, como lo es el caso de los tres
colores primarios utilizados en pintura (amarillo, azul y rojo), los tres colores utilizados en
las pantallas (Rojo, Verde y Azul) o muchos otros, se decidió utilizar tres sensores para la
detección de intensidad de luz con distintos filtros de colores que permitieran una lectura
similar a la que se hace en una pantalla de computador.
En un área tan diferente a la electrónica como lo es el Diseño Industrial, encontramos una
solución al problema mirando la forma como ellos trabajaban con filtros de colores para
producir efectos ópticos. Los tres colores que ellos utilizan son denominados: Amarillo,
Verde y Azul-Violeta. Con estos tres colores descomponen la luz y producen distintas
mezclas de luz que suelen ser interesantes. Con esta misma concepción cada sensor, que
para este caso es una fotorresistencia, fue cubierto por una capa de estos colores.
Teniendo un sensor con un filtro Amarillo, otro con un filtro Verde y un último sensor con
un filtro Azul-Violeta, obtenemos la información cromática de un objeto que tengamos
enfrente. Estos tres sensores entregan un valor entre cero y cinco voltios que es discretizado
y normalizado en valor de 0.0 a 5.0 para su operación. Resueltos los problemas físicos
referentes a este caso, como lo es la luz ambiente, se obtuvo una base de datos observando
los valores que entregaba cada uno de los tres sensores. Con estos valores se lleno una tabla
para tener una identificación previa de los ocho colores escogidos.
Al igual que en el caso anterior de formas, se definieron ocho colores básicos que
corresponden a: el blanco, el negro, los tres colores primarios y los tres colores secundarios.
Con esta definición se realizaron dos procesos distintos para el procesamiento de la
información. El primer método consistió en probar con varios objetos de distintos colores y
comparar la información obtenida con la tabla ya establecida de colores. Esta tabla fue
renovándose con esa información, hasta que finalmente la tabla predecía con gran éxito el
color más determinante de un objeto. Posterior a este proceso, se realizaron algunas
IEL2-2002-II-19
modificaciones a los valores extremos de cada color para permitir la inclusión de colores
intermedios a los referidos en las formas básicas para que de esta forma fuera posible que
un objeto fuera catalogado como una mezcla de dos o más colores, por ejemplo, un objeto
podía ser rojo y naranja.
El segundo método utilizado fue el entrenamiento de una red neuronal con la misma
arquitectura de la utilizada en el reconocimiento de forma. El resultado de este proceso se
ve en una red de cuatro neuronas intermedias y ocho de salida. Sin embargo los resultados
obtenidos no fueron del todo satisfactorios ya que la diferencia entre un valor positivo y
uno negativo para un color básico, solo difiere en unas pocas décimas en la respuesta. El
umbral para este caso fue de 0.30 y aunque se aproximaba bastante a la realidad, la cercanía
de las salidas por encima y por debajo del umbral no permitía que en el caso real la
respuesta no fuese equivocada. Finalmente se trabajó con un red un poco más grande, que
poseía una neurona más en la capa intermedia pero el resultado fue similar y se perdió
precisión entre los colores amarillo y naranja.
La razones para que el entrenamiento con redes neuronales de este proceso no hayan sido
del todo satisfactorias son debidas a las limitantes físicas del robot, cuyos sensores no
proveen un gran rango de valores en las respuestas y que no se contó con una base de datos
del tamaño deseado para un buen estudio de varias tipos de bases de datos.
Figura 10. espacios vectoriales superpuestos para reconocimiento de cromas.
IEL2-2002-II-19
Se optó entonces por el primer método en el cual se diseñaron regiones vectoriales
tridimensionales, ya que son tres entradas, en las cuales se ubican cada unos de los ocho
colores básicos. Estos espacios vectoriales se entrelazan unos a otros para que el cambio de
un color a otro no sea abrupto como se ve en la Figura 10. La información obtenida por
este algoritmo de reconocimiento, en el cual se compara el valor de cada sensor con los
rangos de valores de cada espacio vectorial para determinar su pertenencia o no, es
entregada en una palabra de ocho bits, donde cada bit representa un color básico. Se
mantiene el mismo formato de almacenamiento que se tiene para el reconocimiento de
formas debido a su facilidad para comparaciones directas bit a bit a pesar que es más
factible encontrar los posibles cromas que podrían asociarse a un solo objeto ya que
conocemos las zonas de superposición de los espacios vectoriales.
6.3 RECONOCIMIENTO DE ANCHO Y TEMPERATURA
IEL2-2002-II-19
El reconocimiento de ancho y temperatura de un objeto puede diferir en gran medida del
algoritmo que se utilice, sin embargo en este caso tenemos un rango no muy amplio de
valores posibles para el ancho y la temperatura de los objetos. Para el caso del ancho, las
limitantes físicas del desplazamiento de las manos y el largo de los dedos juegan un papel
determinante para establecer un rango fijo de operación. Este rango es de aproximadamente
tres milímetros a diez centímetros de ancho.
Aprovechando un poco la manera como trabaja la apertura de las manos en el robot, que
consiste en el movimiento de dos motores que por medio de unas poleas halan los carros
que mantienen las manos en un riel, es posible tomar una medida sencilla del
desplazamiento que han cubierto ambas manos hasta tener un dato del ancho del objeto.
Para estos datos, se incluyeron resistencias variables que se movieran junto con las poleas
de tracción de los brazos y de esta forma obtener una señal eléctrica dependiente del ancho
del objeto.
Los dos valores obtenidos por estos dos sensores, cada uno dispuesto sobre una de las
poleas de tracción de cada mano, están en el rango de cero a cinco voltios, para mantener la
hegemonía en el robot. Posterior a la obtención del dato, que se hace de manera totalmente
mecánica, se discretizan ambos datos, se normalizan de 0.0 a 5.0 y se suman para obtener
un dato que represente una medida del ancho del objeto, es decir una magnitud
proporcional al movimiento de ambos brazos hacia el objeto, a mayor desplazamiento de
los brazos, menor será el ancho del objeto.
Para el caso de la temperatura, este dato es proporcionado por un sensor comercial de
temperatura que presenta características lineales para temperaturas cercanas a las ambiente,
es decir para rango de temperatura entre 0 ºC y 50 ºC. Este sensor entrega un valor de
voltaje bajo que representa cada temperatura, por ejemplo en unas condiciones de 34ºC, el
sensor entregará un valor de 0.34 voltios. Para poder mantener la hegemonía en el robot, se
IEL2-2002-II-19
ha decidido amplificar la señal del sensor en un factor de diez por medio de un amplificador
operacional. Este amplificador con una configuración de amplificación no inversora,
entrega un valor entre los cero y cinco voltios, dada que la polarización del amplificador es
de cinco voltios. Esto permite trabajar con una señal análoga con un mayor rango de
operación que además es un buen rango de funcionamiento.
Es importante notar que el robot tiene limitantes físicas con respecto a la temperatura que
puede soportar, es decir, una temperatura por debajo de cero puede provocar fallas en las
manos ya que puede obstruir el libre movimiento de los dedos. Por otro lado, la zona que
entra en contacto con los objetos esta hecha de caucho, lo que limita las altas temperaturas.
Por esta razón una zona de operación para la temperatura entre los 0 ºC y los 50 ºC es
suficiente para nosotros dadas las condiciones de el robot. Este dato al igual que los otros
es discretizado y normalizado en un rango de 0.0 a 5.0 para poder ser operado dentro de los
algoritmos.
El proceso de clasificación de las características de ancho y temperatura para los objetos,
son llevados a cabo por un simple algoritmo que contiene zonas de decisión difusas. En
otras palabras, comparando la magnitud del valor obtenido de cada característica, se analiza
si se encuentra en alguna de las dos zonas provistas para caracterizar estas dos propiedades
físicas de los objetos. Se puede ver en la Figura 11 la manera como se muestran estas
zonas cuyos limites fueron estipulados teniendo en cuenta eventos equiprobables para estos
valores.
Figura 11. zonas de decisión difusas para temperatura y ancho. El eje vertical corresponde
a la respuesta y el horizontal al valor de la entrada
IEL2-2002-II-19
Como se puede apreciar en la figura, existen dos zonas que dependen del valor de la señal
discretizada y normalizada de los sensores. En caso que el valor pertenezca a la primera
zona, será caracterizado como delgado, para el caso del ancho, o frío, para el caso de la
temperatura. Si se encuentra en la zona final, será caracterizado como ancho, para el primer
caso, o caliente para el segundo. Sin embargo existe una zona intermedia donde las zonas
se cruzan y el robot decidirá que el objeto no es muy ancho ni muy delgado, o para el caso
de la temperatura, que el objeto no es muy frío ni muy caliente, es decir que esta en una
temperatura media (Ver Figura 11).
La información proveniente del resultado de este sencillo algoritmo de comparación de
magnitudes, es almacenado en cuatro bits, dos que corresponden a las características
referentes al ancho y dos que corresponden a la temperatura. Cada bit representa, para el
caso de la temperatura, la condición fría y caliente, es decir si están ambas activadas
significará que el objeto esta en la zona intermedia de temperatura.
IEL2-2002-II-19
7 MONTAJE ELECTRÓNICO
El área correspondiente al montaje electrónico incluye también la elección de los
dispositivos a utilizar, así mismo como las técnicas para llevar a cabo la operación de los
algoritmos en los dispositivos. A pesar que esta es la última etapa de desarrollo, en la cual
se utiliza el montaje mecánico, los programas con la información necesaria para llevar a
cabo los distintos algoritmos, fue necesario colocar restricciones eléctricas y físicas al
montaje.
La primera limitante existente es la alimentación, sabíamos de antemano que solo
contábamos con una alimentación de 5.0 voltios para los circuitos, es decir no contábamos
con fuente negativas y esto obligaba a usar únicamente cierto tipo de dispositivos
comerciales. Entre los requerimientos para todo el proceso, existía una etapa de tratamiento
de señales análogas, que debían ser convertidas en señales digitales para su tratamiento en
algoritmos matemáticos complejos. Por otro lado necesitábamos memoria para poder
almacenar la información que se obtenía del objeto sensado, además de la memoria
necesaria para guardar la información de los objetos conocidos. Finalmente necesitábamos
alguna clase de unidad matemática o procesador que se encargara de realizar operaciones,
comparaciones y demás partes de los distintos algoritmos. Debido a todas estas razones, se
busco en primera instancia las alternativas que se encontraban disponibles.
7.1 MÓDULO CENTRAL
IEL2-2002-II-19
Era predecible que el robot necesitaría de un “cerebro” que manejara y administrara los
distintos algoritmos ya descritos. Para este fin se evaluaron varias alternativas que
contemplaban distintos dispositivos de distintas familias. El primero dispositivo que se
observó fue un DSP de la Texas Instrument3, se evaluó esta alternativa debido que los
DSP’s cuentan con una gran velocidad para llevar a cabo operaciones matemáticas
complejas. En este mismo nivel se evaluó un DSP de la familia MOTOROLA4 que contaba
con menos capacidad que su contraparte de la TI.
Desafortunadamente para el diseño, los DSP’s fueron evaluados con los procesadores de 8
bits, esto hacía que se dificultara el trabajo y que las ventajas que estos ofrecían en
velocidad frente a otro tipo de procesadores disminuyera considerablemente. Otro punto
desfavorable para estos dispositivos es su montaje físico, ya que están dispuestos en tarjetas
de desarrollo que sobrepasan el espacio interno del robot destinado para los circuitos.
Se analizaron también otras dos alternativas que comprenden un microprocesador de la
familia MOTOROLA, y un PIC de la familia Microchip5. El primero de ellos, un
procesador de bajo costo, arquitectura SISC de 8 bit. El segundo un procesador con
arquitectura RISC de 8 bit. A pesar de las ventajas que ofrece la primera arquitectura, el
segundo microprocesador contaba con un conversor análogo digital con ocho líneas de
entrada multiplexadas, con un grado de operación de 10 bit para la conversión, 8K de
memoria Flash para el programa, una velocidad de operación de 20Mhz y una condición
que lo hizo el elegido, la capacidad para sobrescribir su programa en modo operación.
Estas facultades hicieron que el dispositivo elegido para ser el cerebro de el robot fuera el
PIC16F877 de la familia Microchip. Se determinó que se utilizaría aproximadamente 4K de
la memoria Flash del dispositivo para operar los algoritmos y la otra mitad de la memoria
sería destinada para el almacenamiento de la información de los objetos ya conocidos. El
tiempo de operación del dispositivo no debería ser muy alto ya que a partir de una orden 3 T.I. Texas Instrument.®. 4 MOTOROLA. Marca Registrada MOTOROLA Porducts. 5 Microchip, perteneciente a Microchip Products.
IEL2-2002-II-19
para reconocer, el cerebro debería dar el número del objeto en menos de un par de
segundos.
Se utilizó el conversor análogo digital del dispositivo para realizar la conversión de los
dieciséis datos provenientes de los sensores, y por medio de una sencilla operación
matemática eran normalizados de 0.0 a 5.0. Por otra parte, era necesario estandarizar el tipo
de datos que se iban a utilizar en el dispositivo. A pesar que este es un procesador de 8 bit,
se utilizó un formato de 24 bit para flotantes que permite trabajar con una gran autonomía
los algoritmos propuestos a nivel software y que además dan una gran precisión hasta
aproximadamente el cuarto decimal en todas las operaciones, comparándolo con los valores
resultantes en un computador con procesador Pentium III.
Para poder utilizar este formato de números, fue necesario la inclusión de una librería con
operaciones matemáticas básicas para estos números. Parte de esta librería puede ser vista y
obtenida de manera gratuita en el portal de la empresa productora del dispositivo. Ahora
que se contaba con una limitante en el número de instrucciones disponibles para ejecutar
los algoritmos, se decidió que todo el código sería trabajado en lenguaje Assembler, que
permite tener un control total de los recursos del dispositivo, así como del uso de la
memoria RAM del mismo. Por esta razón, fue necesario rescribir parte de la librería que se
encontraba en lenguaje C, para poder tener una completa librería para flotantes de 24 bit en
código Assembler. El resultado de este proceso se encuentra en aproximadamente 1.500
operaciones que permiten sumar, restar, multiplicar, dividir y comparar magnitudes de dos
números flotantes, así mismo se realizó una operación matemática compleja necesaria en
las redes neuronales, la exponencial.
El formato de 24 bit esta representado en dos partes, la primera de ellas consiste en un
exponente de dos que permite saber la potencia a la que es elevado el número de la base. La
base es un conjunto de potencias negativas de dos que da como resultado un número entre
1.0 y 2.0 para representar todos los números en un rango muy amplio. Para un mejor
tratamiento de este formato, se desarrollaron dos pequeños programas en C que permiten
IEL2-2002-II-19
pasar del formato binario de 24 bit para flotantes a un número decimal y viceversa. El
número en esta representación incluye además su signo, lo que lo hace útil para nuestras
operaciones.
7.2 FORMATO DE 24 BIT PARA FLOTANTES
El formato de 24 bit que se utilizó es planteado por un grupo de desarrollo de programas en
PIC´s de la misma compañía que los produce. El formato de la IEEE de 32 bit para
flotantes es muy efectivo pero debido a su tamaño, el procesamiento requerido para una
simple operación es mucho más complejo que el de 24. Por otro lado, el formato de 24 bit
da una aproximación idéntica hasta el cuarto decimal del número y esto asegura un buen
manejo de los datos sin tener una pérdida significativa de información. Estos dos formatos
son compatibles y en caso de ser necesario se podría pasar de un formato al otro con la
misma librería implementada.
Figura 12. formato decimal de 24 bits.
Para describir un poco el formato, se expondrá un ejemplo de una de las constantes
utilizadas en el programa. El número de 24 bit está repartido en una palabra de 8 bit que
representa la potencia de dos a la que debe ser elevada la base del número. Esta potencia
esta referencia con el número 7Fh, es decir si el exponente es 80h, la base será multiplicada
por dos a la 80h – 7Fh, es decir por dos a la uno. La base del número está representada con
las potencias negativas de dos. Esta base comprende dos palabras de 8 bit, en total, desde la
IEL2-2002-II-19
potencia -1, hasta la potencia -15 de dos. El primer bit de la base representa el signo del
número.
Analicemos el número 844910h que se encuentra en formato de 24 bit. El exponente del
número corresponde al número 84h. Este número debe ser restado con el número 7Fh para
ver la potencia del número. El resultado es 5, es decir la base del número será multiplicada
por dos a la cinco, 32. La base del número corresponde a 4910h y representa las potencias
negativas de dos. En este caso, (Ver Figura 12), las potencias negativas de dos que son
activadas son: -1,-4,-7 y -11. Por condición del formato, siempre se suma uno al resultado
de la base, es decir la menor base es uno y la mayor es aproximadamente dos.
El resultado de la base corresponde a la suma de estas potencias de dos, dando un resultado
de 1.57080078125 en decimal. Este número multiplicado por dos elevado a la cinco da el
resultado final que corresponde a 50.265625 en decimal. (Ver Figura 13).
Figura 13. ejemplo de traducción del formato decimal de 24 bits al número decimal.
IEL2-2002-II-19
7.3 EL ALGORITMO PRINCIPAL
A pesar que el proceso fue distribuido en pequeñas rutinas, capaces de operar de manera
independiente pero que cuentan con un formato de comunicación establecido, existe un
gran algoritmo que comprende a los demás y que determina el flujo de datos y control del
robot. Este algoritmo trató de diseñarse de la manera más sencilla para facilitar el acople de
las distintas rutinas, simplificando el trabajo de unión y pruebas. Por último es importante
tener en cuenta que el robot puede operar en varios modos, uno de las cuales está a cargo
de este algoritmo y comprende la función de reconocimiento (Ver Figura 14).
Figura 14. modos de operación del robot.
La secuencia para el reconocimiento de un objeto está dividida en varias partes. Inicia con
un proceso de espera a una señal de activación, operada por el usuario desde el teclado, que
inicia la conversión análoga digital de los dieciséis datos provenientes de los sensores.
Estos dieciséis datos están representados en cinco sensores en cada mano, tres
IEL2-2002-II-19
fotoresistores, un sensor de temperatura y dos resistencias variables que determinan el
ancho (Ver Figura 15).
Figura 15. flujo de control para el modo de reconocimiento.
El proceso de reconocimiento avanza con el uso de una red neuronal para el reconocimiento
de la forma bidimensional del objeto. La primera operación de esta se realiza con los datos
normalizados provenientes de la mano izquierda, y posterior a esto se alimenta de nuevo
esta red con los datos de la mano derecha. Cuando este resultado está completo, se procede
IEL2-2002-II-19
a la utilización de los datos cromáticos. Estos tres datos son comparados y son clasificados
en un espacio vectorial definido, para determinar cuales son los colores más representativos
del objeto.
Posterior a este proceso se realiza la comparación de magnitudes para los datos de
temperatura y ancho en espacios difusos. Con estos dos últimos procesos terminados, se
tiene un vector de veintiocho bits con la información del objeto. Esta información es
comparada con la información almacenada en la base de datos de objetos del robot, con
una proporción del 96.5% de parentesco para identificar el objeto actual como uno ya
conocido.
Este porcentaje se deduce de la relación de un bit distinto de los veintiocho que componen
el vector de información. Es decir, si dos objetos comparten veintisiete o más bits iguales
del vector, se consideran objetos iguales. Este porcentaje se consideró necesario debido a
los cambios que se pueden presentar en las mediciones del objeto, cambios debido a
luminosidad, temperatura ambiente, etc.
Finalmente si no se encuentra un objeto que cumpla con las características antes
mencionadas, se concluye que el objeto es desconocido y su información se almacena en el
primer campo de la base de datos vacío. Esta información es almacenada de forma
permanente y se le informa al usuario que el objeto ha sido catalogado como nuevo,
informándole además el número que le fue asignado dentro de la base de datos. En caso que
el espacio de memoria de la base de datos haya terminado, el objeto no es almacenado y se
muestra el número de objeto FFFh.
El procesamiento de los datos se realiza en varias etapas que comprenden desde la
obtención de una señal mecánica o física, hasta el resultado que es visible para el usuario y
la información almacenada que es invisible para este mismo, pero que puede ser obtenida
leyendo la información contenida en la memoria del dispositivo.
IEL2-2002-II-19
El primer paso en el procesamiento de los datos consiste en la transformación de señales
mecánicas y físicas, como lo son desplazamiento, intensidad de la luz y temperatura, en
señales eléctricas. Cumplida esta etapa, que es explicada con mayor detalle en cada uno de
los sensores, se procede a una conversión análoga digital. La conversión se realiza por
medio de un ADC incorporado en el microprocesador utilizado, que cuenta con un reloj de
20 MHz, y una característica de conversión de diez bits para voltajes que oscilan entre la
alimentación del dispositivo (5V) y la referencia (Gnd). El ADC del dispositivo cuenta con
ocho entradas análogas y un único conversor para estas ocho líneas, por lo que cuenta con
un multiplexor interno para seleccionar cada línea. Este proceso se lleva de forma iterativa
convirtiendo las cinco entradas provenientes de la mano izquierda y las tres
correspondientes a los fotoresistores en la primera ronda de conversión.
Como el robot cuenta con dieciséis señales provenientes de los sensores, se realiza una
segunda ronda de lectura. Estas rondas se diferencian utilizando multiplexores análogos
externos al microprocesador, que son manejados por una señal de salida de este último. La
segunda ronda está compuesta por la lectura de los cinco sensores provenientes de la mano
derecha, los dos sensores que miden el ancho y la señal correspondiente a la temperatura.
A medida que cada dato es convertido a un valor digital, este es considerado un entero de
16 bits (añadiendo los cinco bits más significativos como ceros), y es convertido a un
número decimal en formato de 24 bits, que es el utilizado en nuestro algoritmo gracias a la
librería de operaciones de flotantes de 24 bits. Ya en este formato, el número que oscila
entre un valor de 0 y 1028, es normalizado en valores entre cero y cinco para mantener una
hegemonía entre el valor obtenido por el sensor y el dato a procesar.
Posterior a esta normalización, los dieciséis datos son almacenados en la memoria RAM del
microprocesador para ser utilizados en los distintos algoritmos de comparación y
reconocimiento. El resultado de estos procesos de reconocimiento es almacenado en una
memoria tipo FLASH, también interna del microprocesador, para hacer parte de la base de
datos de objetos del robot. Este último resultado es invisible para el usuario quien
IEL2-2002-II-19
desconoce las características asignadas al objeto, pero si es conocido el número del campo
de ese objeto, es decir el número con el cual se asocia ese tipo de objetos en la base de
datos. Este dato se encuentra en un formato tipo vector de 28 bits. Finalmente el dato
mostrado al usuario es un número hexa que corresponde al número del objeto dentro de la
base de datos (Ver Figura 16)..
Figura 16. flujo de datos del modo de reconocimiento.
Si por ejemplo el objeto a reconocer es una pelota de ocho centímetros de diámetro, de
color rojo, las posibles características asociadas al objeto serán: para la mano derecha un
objeto cóncavo, para la mano izquierda un objeto cóncavo, en cromas un objeto rojo, en
anchura un objeto ancho y en temperatura un objeto tibio. Esto se puede ver representado
IEL2-2002-II-19
en el formato de 28 bits que está dividido en dos palabras de ocho bits y dos palabras de
seis bits (Ver Figura 17).
Figura 17. formato de 28 bits para representación de un objeto.
La primera palabra del formato la conforma la palabra de seis bits correspondiente a los
seis primero cromas. Esta palabra se denomina OBJ0. La segunda palabra del formato está
constituida por la información de la forma bidimensional de la mano izquierda, a este
palabra se le llama OBJ1. La palabra OBJ2 corresponde a otra palabra de seis bits que
contiene los colores blanco y negro, y los datos de anchura y temperatura. Por último la
palabra OBJ3 corresponde a la información de forma bidimensional, proveniente de la
mano derecha del robot.
Para el caso de la pelota roja tendríamos una información como la siguiente: OBJ0 = 04h,
OBJ1 = 10h, OBJ2 = 0Bh y OBJ3 = 10h. Es decir se tendría una forma bidimensional
cóncava para cada mano, un color rojo, una temperatura media y el objeto sería ancho. En
resumen, cada bit del vector de 28 bits corresponde a una característica específica y al
momento de una comparación, todas las características son equivalentes en importancia.
IEL2-2002-II-19
8 APLICACIONES
Un producto no tiene ninguna razón de ser, sino está encaminado a la utilización posterior
en el mercado, es decir, toda investigación debe estar referenciada a un desarrollo posible
para algún área del mercado donde pueda generar beneficios. A priori es a veces difícil
saber con certeza en que circunstancias puede ser o no utilizado un producto, sobre todo
cuando este se encuentra en un estado de desarrollo e investigación, sin embargo es posible
describir algunos escenarios donde la nueva alternativa pueda contribuir con avances.
8.1 CAMPOS DE ACCIÓN EN EL MERCADO
Un sistema con capacidad para identificar algunas características físicas de cualquier
objeto, teniendo en cuenta las limitaciones físicas del mismo, tiene un sin número de
posibles aplicaciones, tanto en el mercado, como en situaciones de la vida cotidiana. Pero
es en áreas laborales donde es posible encontrar un mejor uso de estos servicios, que de
pronto por su tamaño y forma de operación, esté un poco más limitado en oficios no
empresariales.
Un primer aspecto que es importante recalcar, es el precio de fabricación de este
dispositivo. Para el prototipo, que se presenta junto con este documento, no se ha invertido
una gran cantidad de dinero, sin embargo si ha tenido un costo importante en horas hombre,
no de producción, sino en diseño, tanto física, mecánica, estética y electrónica. Para esto es
IEL2-2002-II-19
necesario ver el cronograma trazado en un principio y ver como fue el desarrollo completo
del sistema.
Este cronograma tiene una duración completa de 144 días hábiles que fueron repartidos en
tres grandes bloques. Estos bloques, que son básicamente las mismas tres áreas de
desarrollo definidas en este trabajo. El primer bloque de trabajo lo compone el diseño
mecánico del dispositivo, es decir, el movimiento de brazos, el diseño de los sensores, los
materiales elegidos para la fabricación, etc. Para esto se definió un periodo aproximado de
44 días hábiles, que está comprendida desde la última semana de abril, hasta la última
semana del mes de junio. El segundo bloque está constituido por el diseño de algoritmos y
secuencias de aprendizaje, así mismo como la programación necesaria. Este bloque fue
desarrollado en 67 días hábiles, cuya dependencia del primer bloque es inminente, debido a
la necesidad de conocer los sensores físicos para realizar simulaciones.
Finalmente el último bloque lo constituye el acople de algoritmos con una implementación
física y su posterior unión con las partes mecánicas del dispositivo. Este proceso, que
cuenta con una duración de 43 días hábiles, tuvo una terminación el día 27 de Noviembre,
día en el cual se dio el visto bueno al prototipo. En total, un periodo que va desde la última
semana de marzo, hasta la última semana de Noviembre, es decir, un desarrollo completo
de siete meses.
El tiempo para este desarrollo puede considerarse un poco extenso, sin embargo hay que
tener en cuenta que no todo esto fue desarrollado por un sola persona, lo que claramente
aumento el tiempo de investigación y desarrollo. Pasado este proceso, y contando con un
grupo de tres personas, es posible llegar a un producto final en menos de tres meses. Es
decir, es un producto que podría ser producido en poco tiempo, un dato favorable para el
ingreso en la industria.
Un punto importante en este punto, es definir un plazo de tiempo razonable en el cual el
dispositivo debe conocer el tipo de objetos con los que va a interactuar, sea cual fuere su
IEL2-2002-II-19
función específica en la industria. Es decir, si el dispositivo se encargara de seleccionar
entre distintas producciones de cristalería, es necesario que el robot conozca primero los
objetos para que realice mejor su trabajo. Debido que dos robot no van a presentar un
mismo comportamiento debido a la estructura evolutiva y adaptativa de su algoritmo. Es
necesario ser muy selectivo a l momento de un entrenamiento para un fin particular.
El tiempo para que el robot genere una base de datos de objetos conocidos apropiada para
la función a realizar, es realmente corto y puede darse en pocas horas si los objetos
seleccionados para este aprendizaje son los mejores. Si la función del robot es de nuevo,
reconocer distintos tipos de copas de cristal, la primera copa de cristal que se le muestre
debe contar con las mejores característica de la producción.
Teniendo esto en cuenta, sabiendo que el tiempo de fabricación en cadena no es crítico, por
la sencillez de los modelos mecánicos y eléctricos, que su precio no es alto y su flexibilidad
para ser utilizado en distintos mercados, este dispositivo ofrece una gama de posibilidades
de uso, de las cuales se pueden destacar tres. La primera, orientada a un uso familiar, es su
utilización en el mercado de los juguetes. Un dispositivo que es capaz de aprender objetos y
asociarlos con objetos similares, es un dispositivo perfecto para una interacción entre el
niño y el juguete que permite guiar procesos de aprendizaje en formas básicas para las
primeras etapas de desarrollo motriz, o para crear inquietudes a una edad mayor. Para este
campo es necesario un proceso de reingeniería para adaptar el dispositivo a un modelo más
seguro que no vaya a generar problemas de protección para los menores. Además una
reestructuración de la forma como muestra la información al usuario, ya que debe contar
con un modelos más didáctico, como una pequeña imagen del objeto reconocido.
Un segundo campo, cuya importancia puede llegar a ser mayor, lo constituye el uso del
dispositivo para procesos de control de calidad y diferenciación de productos. Este campo,
muy encaminado al uso continuo del proceso de reconocimiento como un acto repetitivo,
puede aminorar el costo en procesos en los que se requiera un reconocimiento de patrones,
sin el uso de un sistema de video o de tratamiento de imágenes, que en muchos casos exige
IEL2-2002-II-19
un computador para la realización de cálculos. Esta exigencia puede ser un factor
importante para la no utilización de un sistema automático para procesos de diferenciación
o control, que puede ser resulta con la portabilidad de nuestro dispositivo.
8.1.1 Utilización en la industria. Las características de portabilidad, adaptabilidad y
sencillez de este dispositivo, le dan una oportunidad para su inclusión en la industria. Un
algoritmo que es capaz de diferenciar más de mil tipos de objetos distintos, con posibilidad
de extensión hasta más de dos mil, con un bajo consumo de energía y la independencia de
su lugar de trabajo, son características generosas de este robot.
Dos procesos claramente definidos pueden ser las aplicaciones más claras en la industria
para este producto, la primera de ellas la diferenciación de productos. En muchos casos un
mismo sistema se encarga de la producción de distintas líneas de productos, incluso en
muchas fábricas se obtienen distintas piezas en una misma línea de producción. Para la
separación de estas piezas, o productos, es necesario tener un medio para diferenciarlas y
clasificarlas. En un gran número de fábricas este trabajo se realiza de forma manual donde
un error puede causar grandes pérdidas a una empresa. Solo imaginemos un modelo de silla
para armar en casa cuyas partes han sido colocadas de forma errada y en vez de el brazo
derecho de la silla, tenemos otro espaldar. El costo de cambio del producto es grande, más
si se tiene en cuenta que este error puede producirse en varias ocasiones.
Si por el contrario se ajusta el dispositivo a ese tipo particular de objetos o piezas, es
posible conseguir un sistema capaz de clasificar las partes de una manera confiable y
rápida, o por lo menos mejorando un poco la velocidad normal de una persona, sobre todo
teniendo en cuenta que las labores repetitivas por espacios prolongados de tiempo
realizadas por humanos suelen incrementar el número de errores.
Para este tipo de trabajo, sería necesario determinar que características medibles por el
robot tienen importancia y cuales no. Retomando el ejemplo de la silla plegable, la
IEL2-2002-II-19
temperatura de las piezas puede no ser de importancia, sin embargo la forma bidimensional,
o el ancho de la pieza son características fundamentales. Para estos casos, la modificación
de la lectura de los datos sería el único cambio necesario. Si por otra parte se requiere
cambios más profundos, se puede dar más importancia a algunos aspectos del objeto que a
otros, por ejemplo la forma.
El otro proceso en la industria que puede ser un candidato para el uso del dispositivo es el
control de calidad. El control de calidad, que puede estar muy ligado al proceso anterior, es
la diferenciación entre un objeto con las características mínimas necesarias y uno que no las
cumple. Para esto, un sistema de reconocimiento de patrones físicos puede ser la solución
en muchos campos de fabricación. Si se tiene una fábrica de engranes, se requiere un buen
sistema para el control de calidad que verifique cada engrane y determine si cumple con las
características necesarias. Para un caso como este, la medición de forma podría ser una
solución viable.
Al igual que en la diferenciación de objetos, es posible que sea necesario la inclusión de
nuevas mediciones, por ejemplo cambiar la medida de temperatura por una medición de
resistencia eléctrica, y cambiando las constantes de reconocimiento, o dando más
importancia a algunas mediciones, como el ancho, que a otras, los colores.
Para el control de calidad, es necesario que el primer proceso de aprendizaje, es decir,
reconocer un objeto en buenas condiciones y conocer varios objetos que presenten fallas de
algún tipo, sea riguroso, para que el proceso de control de calidad dé los mejores frutos. En
caso de un entrenamiento pobre o apresurado, es posible que el robot no logre distinguir
entre un objeto defectuoso, de uno que cumpla con las exigencias de producción de la
fábrica.
8.1.2 Utilización en exploración. Existen un sin número de casos en los que es
necesario realizar la inspección de un espacio determinado, pero esta inspección se ve
IEL2-2002-II-19
limitada debido al difícil acceso, o a las condiciones ambientales del medio, presión,
humedad, ausencia de oxígeno, etc. Para estos casos el dispositivo puede llegar a ser
utilizado.
Uno de los objetivos trazados al inicio de este trabajo, era el construir un dispositivo capaz
de llevar a cabo un proceso de reconocimiento y aprendizaje de objetos. Para este fin, se
apartó un poco el concepto de un tipo de objetos específicos, es decir, se trató de
generalizar la mayor cantidad de objetos sin basarse en un caso específico. Por esta razón,
se cuenta no solo con variadas formas y colores bases, sino con la medición de varios
patrones físicos como lo es la temperatura. La idea de generalizar el aprendizaje de objetos,
sin sesgar las características o tipos de objetos reconocibles, se debió a la necesidad de
tener un dispositivo que no solo fuera previsto para la industria, sino que por el contrario
aportara significativamente en el estudio de algoritmos de aprendizaje evolutivo.
Aprovechando esta característica que nos permite la interacción con distintos y diversos
objetos, que cumplan con un tamaño y temperatura adecuada para poder ser manipulados
por el robot, se promueve el uso de este último en la exploración. Teniendo en cuenta que
existen lugares en los cuales el ingreso de personas puede ser peligroso, o incluso casi
imposible, un sistema de reconocimiento y aprendizaje diseñado para ser un dispositivo
móvil puede ser una solución interesante.
A pesar que en las condiciones actuales, la información presentada por el robot no refiere a
las características del objeto, sino su posición en la base de datos, es posible conocer la
información de los distintos objetos conocidos, por medio de una comunicación serial de
lectura del microprocesador, claro está, con un circuito adecuado.
Esta información puede ser almacenada para conocer el tipo de objetos y elementos
presentes en el medio no conocido y así tomar decisiones que sería imposible tomar sin esa
información. Para este propósito es posible que se cambien algunas lecturas por otras, por
IEL2-2002-II-19
ejemplo cambiar el sensor de temperatura por un analizador de niveles de oxígeno o de
gases tóxicos.
Todas estas razones, sumadas al hecho que su batería es capaz de mantener un
funcionamiento permanente por veinte horas, hacen del robot un posible candidato para
estas tareas de exploración, y que aprovechan al máximo las características de generalidad
y flexibilidad en el aprendizaje de objetos del robot.
8.1.3 Utilización familiar o casera. En este campo se puede asociar todo uso del
dispositivo que no sea incluido como industrial o de exploración, sin embargo se enfoca
principalmente con dos alternativas. En la creciente industria de la juguetería, se han venido
desarrollando juguetes con capacidad de aprendizaje e interrelación con el usuario, en
muchos casos, el infante. Este dispositivo posee estas características que le permitirían
competir con otros productos, y que por su sencillez en la fabricación entraría en la gama
de juguetes interactivos de un costo alto moderado. Bastaría un proceso de rediseño, para
lograr una interfaz correcta como juguete, es decir, una salida visual del objeto, y por
supuesto, desarrollar un mecanismo seguro para los niños que no comprometa la seguridad
del mismo.
En la actualidad, el dispositivo ya cuenta con características, como una batería recargable,
con una duración significativa, para ser considerado apropiado en el mundo de los juguetes,
además de vistosos colores, una forma particular apreciable, recordando una araña o un
cangrejo.
Por otro lado, este juguete podría ser utilizado no solo en la diversión de los niños, sino
como instrumento de aprendizaje para algunas clases de discapacitados. Si se tiene el caso
de un niño que ha quedado ciego, este necesitará un periodo en el cual aprenda a reconocer
los objetos con las manos, el olfato y los otros sentidos para reemplazar su vista. Este
dispositivo podría sugerirse como un tutor didáctico, con el cual el niño va aprendiendo a
IEL2-2002-II-19
palpar objetos y puede comparar sus apreciaciones con el resultado obtenido con el robot.
Con este simple proceso, el niño va mejorando su capacidad táctil y podrá tener un tutor al
momento que el lo requiera y no cuando una persona sin limitaciones esté disponible.
Para este último uso, es necesario que la respuesta originada por el dispositivo sea sonora o
pueda ser interpretada por un niño discapacitado, así mismo como un control remoto
especialmente diseñado para permitir una utilización segura.
IEL2-2002-II-19
9 RESULTADOS
Después de un periodo pertinente de pruebas se debe llegar a una serie de resultados,
esperados o no, que permiten determinar las características de un dispositivo o producto
para su posterior caracterización en uso, es decir, conocer las limitaciones del producto a la
hora de sacarlo al mercado. Así mismo es importante conocer los avances que ha traído
consigo el dispositivo, producto de la investigación realizada para llegar a este.
9.1 AVANCES EN MATERIA DE RECONOCIMIENTO
Al momento de plantear las características del dispositivo se conocía la existencia de
dispositivos capaces de reconocer formas y características de distintas clases de objetos. La
mayoría de estos dispositivos poseían una sistema de captura de imágenes que utilizaban
para la adquisición de información del objeto. Con el tiempo estos dispositivos se han
vuelto más complejos y comerciales, pero han limitado un poco su utilización por su misma
naturaleza, es decir, es necesario tener una cámara fotográfica o de video para su
funcionamiento.
Para este caso, se propuso un sistema capaz de reconocer las características físicas más
comunes en los sistemas de reconocimiento, pero que no tuviera la dependencia de un
sistema de captura de imágenes. Con este objetivo claro, se diseño un sistema de dedos
retráctil acoplado en un montaje al que se le llamó “mano”, que era capaz de transformar
una forma física en señales eléctricas. Este primer avance marcó con mucha determinación
el producto final que se obtuvo. Este diseño contó con asesoramiento de profesionales y
IEL2-2002-II-19
estudiantes en áreas como la ingeniería electrónica y diseño industrial, para lograr un
funcionamiento adecuado.
Gracias a este pulcro diseño de la “mano”, se logró un muy buen resultado en el
reconocimiento de formas bidimensionales, siendo el proceso de reconocimiento más veraz
de los realizados por el dispositivo. Sin embargo no solo se debe tener en cuenta el diseño
físico sino la matemática y los algoritmos que hay detrás de este reconocimiento para poder
entender el éxito de este proceso. Por un lado, se determinó prudente la posibilidad de tener
múltiples respuestas para la descripción de una forma bidimensional, es decir, no se quiere
encasillar a la fuerza una superficie a una figura, sino por el contrario poder describir esa
superficie como un conjunto de formas básicas, determinando cuales de las formas básicas
se aproximan mejor a la superficie en medición.
Por otro lado, un riguroso entrenamiento de redes neuronales, buscando entre distintas
dimensiones de las redes, para ver su comportamiento y así poder determinar la mejor
arquitectura. Este proceso, fue uno de los más largos para poder asegurar que la
identificación de formas bidimensionales iba a ser exitosa.
9.1.1 Nuevos modelos para el reconocimiento de patrones. A pesar del éxito
obtenido con el reconocimiento de formas, no se puede olvidar otros avances significativos
durante todo el proceso de investigación. Por un lado, se logró demostrar que procesos
sencillos de comparación, como lo son regiones vectoriales ene dimensionales, se podía
obtener una respuesta rápida para tediosos procesos de reconocimiento. La utilización de
lógica difusa para determinar niveles de respuesta fue clave para una compresión de la
información y una representación clara de las características como el ocurrido con la
temperatura. Para este caso, se decía que el objeto era tanto frío como caliente, para decir
que tenía una temperatura media, es decir tibio. En la naturaleza humana, el tibio es un
término tan poco claro, que es necesario decir que no es del todo frío ni del todo caliente
para describirlo, así no solo se comprimió la información de tres niveles de respuesta en dos
IEL2-2002-II-19
bits de información, sino que se logró una aproximación significativa a la manera como se
evalúan las características en casos de la vida cotidiana.
En general, todos los procesos de reconocimiento involucrados con este dispositivo son de
carácter difuso, es decir no se limita una característica a ser encasillada como una única
respuesta sino que se da lugar a intersecciones entre las posibles respuestas para describir
con una mejor proporción a la característica medida. Al igual como pasa con el tibio, el
medio ancho o simplemente la diferenciación entre el naranja y el amarillo, o el vertical y
el curvo se vuelve un juego de posibilidades de intersecciones de respuestas posibles.
Para describir un poco todo este sistema, se podría decir que se quería un acercamiento con
la forma de clasificar los objetos utilizada por el común de las personas. Al introducir una
copa de cristal utilizada para servir Margaritas, un compañero la identificó por medio de
figuras básicas como rectas, curvas, diagonales y cambios bruscos, así mismo identifico el
color de la copa entre un verde y un amarillo y digo que la copa era ancha a comparación
de otros tipos de copas, en general, este mismo sistema es utilizado en el dispositivo,
agregando que la copa no era tan caliente ni tan fría.
9.2 IMPLEMENTACIÓN DE UNA RED NEURONAL EN UN
DISPOSITIVO MÓVIL
Las redes neuronales han sido utilizadas cada vez con más frecuencia en muchos procesos,
reconocimiento de patrones, realización de predicciones financieras, entre otras. Todos
estos procesos, son llevados a cabo por medio de complejos algoritmos basados en redes
neuronales, acompañados de bancos de información almacenados en distintos medios. A
IEL2-2002-II-19
pesar de la gran variedad de utilidades de las redes neuronales, casi en su mayoría se
encuentran implementadas en computadores.
A través de los años se ha querido llegar a la implementación de redes neuronales en
dispositivos móviles para distintas necesidades del mercado, saliéndose un poco de la
necesidad de un computador para ello. Por un lado, el procesamiento digital, casi obligado
en la redes neuronales actuales, ha impedido la migración de estos algoritmos a dispositivos
de otras características. Una alternativa clara a este inconveniente, es el uso de lenguajes de
alta descripción para su posterior implementación en FPGA`s y otros dispositivos de
arreglos programables. Desde hace más de un año, junto con mi compañero Alvaro Varela,
hemos trabajo en la implementación de una Neurona Digital implementada en una FPGA
por medio de una descripción en VHDL. Partiendo del mismo gusto por las redes
neuronales, mi compañero se dedicó al mejoramiento de la neurona y a una posterior
utilización recurrente de la misma para conformar una red neuronal completa. Esta
implementación, mejora el tiempo de respuesta de una neurona, pero pierde velocidad al ser
utilizada la misma neurona para simular toda la red. Esta arquitectura es bastante compleja
y útil en casos en los cuales sea necesaria una reducción de componentes. Sin embargo la
respuesta en tiempo podría mejorarse si se utilizaran varias FPGA’s para crear una red sin
neuronas recurrentes.
Conociendo un poco todo este trabajo anteriormente realizado y que se continúa realizando,
se definió desde un principio que para el desarrollo de un sistema capaz de realizar el
reconocimiento de varias características de un mismo objeto, y que por tanto utilizaría más
de una red neuronal, se descartó de inmediato el uso de FPGA´s para su implementación.
Establecido esto, se buscaron otras alternativas de las cuales la más interesante fue la
utilización de un PIC de la familia Microchip con suficiente capacidad para albergar no
solo las redes, sino la base de datos necesaria. La arquitectura funcional de la red neuronal
implementada en el PIC posee características similares a las establecidas para el trabajo
original en VHDL. Se describió una neurona sin importar su ubicación dentro de la red
IEL2-2002-II-19
neuronal, y se establecieron algunos registros exclusivos para las entradas a la neurona y
otros para la salida generada por esta. Teniendo comprobada la funcionalidad de la
neurona, se realizó un proceso de Copia y Pegado para armar la arquitectura de la red
deseada. Al final de cada capa de neuronas, fue necesaria la inclusión de un proceso de
movimiento de información a través de los registros de salidas y entradas para así habilitar
la segunda capa de neuronas.
Toda la descripción de la red neuronal se realizo en lenguaje Assembler de Microchip y
ocupa para una red de cinco neuronas de entrada y ocho de salida, aproximadamente mil
instrucciones, sin incluir la librería matemática encargada de realizar operaciones como
suma, resta, multiplicación, división y exponencial de decimales. Finalmente se realiza una
comparación de magnitudes con el umbral establecido para las respuesta de la red, que se
encuentra descrito en menos de cincuenta instrucciones. Este proceso de instanciación
convierte la red neuronal del dispositivo, en una red iterativa, en otras palabras no hay
procesamiento paralelo de datos en neuronas de la misma capa.
9.2.1 Tiempos de respuesta. A pesar de la iteratividad de los procesos de comparación,
como en las redes neuronales, y así mismo en el proceso de búsqueda de objetos conocidos,
el sistema responde en un tiempo más que suficiente. Se tiene un cristal de veinte MHz
para el procesador (PIC16F877), haciendo de cada instrucción un retardo de 200
nanosegundos, y sabiendo que la librería matemática cuenta con cinco operaciones básicas,
en promedio cada una de cien instrucciones, y una operación exponencial con más de mil
operaciones involucradas, sin contar las cerca de dos mil instrucciones adicionales
utilizadas para los algoritmos de reconocimiento, lectura y comparación. Además de esto,
para cada neurona se realizan seis multiplicaciones, cinco sumas, una resta, una división,
una exponencial y una comparación de magnitud, con todo esto, el dispositivo responde en
tiempo real. Para el momento en que se oprime y suelta el pulsador que determina el inicio
de la comparación, la operación ha finalizado y se tiene una respuesta visual por medio de
IEL2-2002-II-19
cuatro displays siete segmentos y un led indicando el final de la operación. El tiempo
promedio de operación completa está por debajo de 500 milisegundos.
Entre los 500 milisegundos se incluye también la conversión análoga digital de todas las
señales, y la escritura en la base de datos de objetos en caso de ser un objeto nuevo. Es
decir, para el funcionamiento típico de este dispositivo, este tiempo de respuesta es lo
suficientemente bajo y pueda competir con otros sistemas de reconocimiento.
Este tiempo no incluye el movimiento de los brazos para hormar el objeto, ya que este
proceso se considera un modo de operación distinto, únicamente dependiente del tipo de
objeto y de la fuerza de los motores. Para el caso actual de poleas con reductores de fuerza
y motores DC trabajados a once Voltios en promedio, se tiene un tiempo aproximado de
tres segundos y medio para la horma del objeto. Aún así, este tiempo puede ser de mayor
tiempo si el objeto posee cambios bruscos que dificulten el movimiento de los dedos, en
algunos casos es necesario la un segundo proceso de cierre de brazos para obtener una
mejor horma, convirtiéndolo en un proceso más lento. Sin embargo, siendo un proceso
mecánico de cierre, se puede mejorar dependiendo de la naturaleza de los objetos a medir, y
se puede aumentar la relación de fuerza si los objetos no son frágiles, hay que recordar que
el prototipo puede hormar cristal y vasos de vidrio sin romperlos.
IEL2-2002-II-19
10 CONCLUSIONES
La conclusión de este trabajo fue la creación de un prototipo, por medio del cual se pudo
comprobar la teoría expuesta en capítulos anteriores, así mismo, conocer un acercamiento
real del diseño en un producto final. Si bien es cierto que el prototipo no es, y no debe ser,
el modelo final para producción, si es un paso grande a la conclusión de este. Por esta
razón, la contribución que nos da el prototipo es un avance en la dirección correcta, para la
toma posterior de decisiones de ajuste al producto final. Tomando esto como un hecho, se
logra una serie de conclusiones.
10.1 HACIA UN RECONOCIMIENTO ADAPTATIVO
El reconocimiento adaptativo se puede definir, a partir de este trabajo, como un proceso
mediante el cual no solo se reconocen patrones físicos, mecánicos, eléctricos o de otra
índole, sino que se realiza un proceso de comparación de la información obtenida con
información de conocimiento previo para crear asociaciones.
La diferencia fundamental entre un proceso comparativo tradicional y el expuesto en este
trabajo se basa en la manera de representar la información, es decir por medio de zonas o
regiones de decisión no excluyentes unas con otras, para representar un sin número de
posibilidades. Para ver este concepto de una forma más clara supóngase el reconocimiento
de una forma bidimensional de un objeto cualquiera. Para el prototipo actual existen
definidas ocho formas básicas por medio de las cuales se puede representar la superficie
IEL2-2002-II-19
lateral del objeto. Teniendo en cuenta que las ocho formas básicas son no excluyentes al
momento de una respuesta, es posible que la forma del objeto sea representada con una o
más formas básicas. A pesar del reducido número de formas básicas, es difícil determinar
las combinaciones posibles, incluso podría darse el caso de obtener las ocho formas básicas
como respuesta de una misma superficie lateral.
La formulación matemática de este cálculo es un poco compleja, sin embargo será
explicada. Teniendo en cuenta que la respuesta puede ser una, dos o hasta ocho formas, y se
deben calcular todas las posibles agrupaciones no ordenadas de la misma, es necesario
recrear el cálculo como una serie de subconjuntos no ordenados de un conjunto mayor.
Sumado a todo este resultado debe tenerse en cuenta el resultado nulo, es decir que el
dispositivo no asocie la superficie lateral del objeto a alguna forma básica. Se tendría
entonces la siguiente fórmula (Ver Figura 18).
Figura 18. fórmula de posibles respuestas para una superficie.
Se puede notar que el número de respuestas posibles coincide con la cantidad de números
representados con 8 bits. A pesar de esto es difícil suponer que se lleguen a dar las
condiciones para la aparición de las 256 posibles respuestas, por el contrario en la práctica
se han diferenciado más de quince respuestas típicas.
Sabiendo que existe la posibilidad de existencia de 256 posibles respuestas, permite que el
dispositivo tenga una amplia gama de descripción permitiendo una mejor caracterización de
una superficie cualquiera. Para el momento de la comparación de la información recién
obtenida con la información de la base de datos de objetos, se estipula un porcentaje
IEL2-2002-II-19
permitido para considerarlos el mismo tipo de objetos. A este proceso se le pueden atribuir
características de adaptación, teniendo en cuenta que la base de datos de objetos va
creciendo y enriqueciéndose con la experiencia propia de cada dispositivo, en otras
palabras dos robots iguales no tendrán la misma capacidad de reconocimiento para el
mismo objeto, sino que esta capacidad estará determinada por la historia del robot.
10.2 POSIBLES MEJORAS AL DISEÑO
Es importante reconocer que el prototipo no tiene todas las cualidades que debe tener un
producto que sale al mercado, por ello, se deben recalcar algunas fallas típicas que sufre
durante su funcionamiento con el fin de ser corregidas.
Para el movimiento de los brazos, el robot utiliza un sistema de polea doble, mientras una
polea se enrolla la otra se desenrolla para así tener un movimiento en ambos sentidos con
un único motor por brazo. Para la polea de apertura, se utilizó Nylon para pesca. Este
Nylon es bastante duro, grueso y difícil de moldear. Para la polea de cierre, se utilizó un
Nylon de menor calibre, con un poco de elasticidad incluida, esto con el fin de no presionar
demasiado al objeto que se esté reconociendo. Debido a las diferencias en las tensiones
producidas por ambas poleas, las poleas de cierre tiene una vida útil muy corta. Se podría
cambiar el sistema de apertura y cierre, por uno que utilice otros medios como lo son
solenoides6 u otro tipo de actuadores.
Otras posibles mejoras son el cambio del algoritmo para reconocimiento de cromas por uno
basado en redes neuronales, cuyos resultados no fueron los mejores pero con algo de
tiempo para un entrenamiento más detallado se podría tener mejores resultados, tal y como
fue expuesto en capítulos anteriores.
6 Solenoide: Actuador electromagnético cuya función es halar un eje central-
IEL2-2002-II-19
10.3 TRABAJO A FUTURO
Uno de los ideales al inicio del proyecto, fue la inclusión de movimiento al dispositivo, en
otras palabras, un sistema capaz de mover el robot como se tiene hoy en día. Para este fin,
ya se cuenta con interruptores adecuados en el teclado de operación para llevar a cabo la
movilidad del dispositivo por medido e los motores D.C., sin embargo, estos motores no
han sido acoplados aún al diseño. Este es el proceso a seguir en cuanto a operación del
dispositivo.
Un poco más ambicioso es el querer implementar un sistema que permita un libre
movimiento al robot por medio de algoritmos de inteligencia artificial, redes neuronales o
lógica difusa, para que sea el mismo robot quien determine su ruta de movilización y por
supuesto su necesidad de tomar objetos para su aprendizaje. Este objetivo va encaminado
un poco más al estudio de un modelo de aprendizaje autónomo que permita un desarrollo
interesante en sistemas con capacidad de decisión.
Finalmente bastaría agregar que es necesario esperar más pruebas para poder conocer más a
fondo las implicaciones de este modelo de aprendizaje y reconocimiento, que por su
dependencia con el historial del mismo, requiere de mucho tiempo para establecer con
mayor claridad los patrones más frecuentes de aprendizaje.
IEL2-2002-II-19
11 BIBLIOGRAFÍA
1. S. Caselli, C. Magnanini, y F. Zanichelli, “Haptic Recognition with a Dextrous
Hand Based on Volumetric Shape Representation”, Università di Parma, 1994.
2. --------, “Efficient Exploration and Recognition of Convex Objetcs Based on Haptic
Perception”, Università di Parma, 1996.
3. B. Beccari, S. Caselli, y F. Zanichelli, “Pose-Independent Recognition of Convex
Objects from Sparse Tactile Data”, Università di Parma, 1997.
4. G. Looney, “Pattern Recognition using Neural Networks”, Oxford University Press,
1997.
5. F. Testa, “Floating Point Math Functions”, FJT Consulting, MicroChip.
6. --------, “Fixed Point Routines”, FJT Consulting, MicroChip.
7. --------, “Compliant Floating Point Routines”, FJT Consulting, MicroChip.
8. Microchip Group, “PIC16F877 Datasheet”, MicroChip Website.
9. F. Cady, “Microcontrollers and Microcomputers”, Oxford University Press, 1997.
10. S. Chapman, “Electric Machinery Fundamentals”, Mc Graw Hill, 2000.
11. B. Kuo, “Automatic Control Systems”, Prentice Hall, 1995.
IEL2-2002-II-19
12 INDICE DE FIGURAS
Pag. Figura 1 16
Figura 2 18
Figura 3 21
Figura 4 23
Figura 5 26
Figura 6 29
Figura 7 29
Figura 8 30
Figura 9 30
Figura 10 35
Figura 11 38
Figura 12 42
Figura 13 43
Figura 14 44
Figura 15 45
Figura 16 48
Figura 17 49
Figura 18 65