You are on page 1of 17

Gonzlez et al.

(2013)

171

Robot Mvil Guiado con Visin (VISBOT)


Juan C. GONZALEZ, Ivn D. MORA, Johny A. VARELA
Universidad Pontificia Bolivariana, Cir. 1 # 70-01, B11, Medelln, Colombia
juancamilo.gonzalezve alfa.upb.edu.co
Resumen: Este artculo describe la implementacin de un mini-robot mvil autnomo usando visin artificial, capaz
de desplazarse en un ambiente controlado y realizar una tarea especfica, explorando diferentes tecnologas como la
BeagleBoard Xm y el sensor Kinect de Microsoft. Copyright UPB 2013
Palabras clave: Visin de maquina, Robot mvil, Kinect, BeagleBoard XM.
Abstract: Implement a mobile robot controlled with computer vision algorithms, capable of moving in a controlled
environment and perform a specific task, exploring different technologies such as the BeagleBoard Xm and
Microsoft's Kinect.
Keywords: Computer vision, Mobile Robot, Kinect, BeagleBoard XM.
UPB_autoArt 2013-07-19, s 2013-09-18

INGENIAR UPB 2013

Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

172

1.

INTRODUCCIN

La visin artificial ha tenido un papel importante en el desarrollo


de nuevas tecnologas. La creacin de robots autnomos con
algoritmos de aprendizaje y visin son en gran medida estudiados
y desarrollados en grandes universidades del mundo, ya que
permiten la creacin de robots inteligentes capaces de solucionar
diversos problemas que se presentan actualmente en la industria y
en la vida cotidiana, emulando las funciones biolgicas de
animales y humanos.
En este artculo se describe los aspectos que se tuvieron en cuenta
para el desarrollo del proyecto: Robot mvil guiado por visin. En
la seccin 2 se presenta el estado del arte, en la seccin 3 se
explica el proceso de construccin del prototipo seguidor de lnea,
a continuacin se explica en detalle la construccin del vehculo
de parqueo automtico. En la seccin 5 se explica el proceso de
reconocimiento de imgenes con Kinect, y su implementacin en
el robot mvil. Finalmente, se explican los ajustes que se estn
realizando a los problemas planteados y se realizan las
conclusiones.
2.

ESTADO DEL ARTE

La robtica en los ltimos aos ha tomado gran importancia a


nivel educativo e industrial, no solo porque combina diferentes
reas de la ingeniera, sino por que debido al gran avance en los
procesadores se ha permitido desarrollar y procesar diferentes
algoritmos antes imposibles de computar, a una gran velocidad.
INGENIAR UPB 2013

Se dan desarrollado simulaciones que permiten observar el


diseo de un controlador difuso para el parqueo en reversa de un
vehculo terrestre no articulado. Adems se muestra el desarrollo
de una interfaz configurable construida en Matlab, la cual permite
el control bien sea manual o automtico del vehculo. (Restrepo
et. al, 2010)
Algunos proyectos elaborados por algunas universidades llevan
esta simulacin a un prototipo. El proyecto llevado a cabo por la
universidad de Mnchen, presenta una aproximacin a la
adquisicin y transferencia de las habilidades de un conductor
experimentado para un controlador de estacionamiento
automtico. El controlador procesa la informacin de entrada
procedente de una cmara generando los comandos de direccin
correspondientes. Para la arquitectura del control hibrido se
consider dos arquitecturas de control: redes neuronales y lgica
difusa. (Chen, 1996)
Otro proyecto similar se llev a cabo en la universidad de Florida,
la cual consiste en demostrar experimentalmente el
funcionamiento de un vehculo que utiliza lgica difusa para el
parqueo en espacios reducidos. Los parmetros necesarios para el
controlador son aprendidos mediante sistemas genticos, los
cuales adaptan a este para que realice la tarea de la forma ms
ptima. (Gupta, 1989)
Chih-Yung Chen y Hsuan-Ming Feng desarrollaron un integrando
el uso de transformadas Wavelet, mapas de organizacin, lgica
difusa y redes neuronales para implementar un sistema inteligente
Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

173

mediante FPGA y microprocesadores que fuera capaz de mover


un robot mvil para que este lograra parquearse de forma
automtica en una celda. (Aby et. al, 2011)
Se desarroll y dise un algoritmo en redes neuronales en tiempo
discreto para la aplicacin en robtica mvil en la Universidad de
San Juan Argentina, buscando implementar controladores para
reducir las perturbaciones ocasionadas por las variaciones del
modelo debido a la cmara abordo. (Rossommando et. al, 2011).
3.

La plataforma empleada para este prototipo es la misma que se


uso para el robot de parqueo, por lo tanto se explica en la
siguiente seccin.

SEGUIDOR DE LNEA

Para el prototipo del seguidor de lnea se emplea la cmara CMU


Cam 4, creada por el proyecto del mismo nombre, y que permite
desarrollar aplicaciones de visin de forma rpida y sencilla con
la ayuda de un microcontrolador de la familia Arduino.
Dado que la cmara cuenta con funciones ya implementadas para
extraer ciertas caractersticas provenientes de la imagen, es una
buena herramienta para tomar una primera aproximacin al diseo
de controladores con visin artificial.
Para este proyecto, se emplea la CMU Cam para desarrollar el
prototipo de seguidor de lnea. El algoritmo se desarrolla en la
IDE de Arduino con las funciones propias de la CMU Cam,
incluida en la librera desarrollada por sus autores.
El controlador es de tipo proporcional, pues toma la diferencia
que hay entre el centro de la imagen y el centro de la lnea de
color que debe seguir (cuyos valores en el espacio de color RGB
INGENIAR UPB 2013

se especifican en el parmetro correspondiente), y da una orden de


control a los motores proporcional a dicho error. De esta forma, si
el centro de la lnea se desplaza a la izquierda de la imagen se
acciona el motor derecho, y si se desplaza hacia la derecha se
acciona el izquierdo. En caso de estar en el medio los motores se
accionan con la misma velocidad y direccin.

4.

PARQUEO AUTOMTICO

En esta seccin se describen cada una de las etapas del proyecto,


los problemas que se presentaron en estas y las soluciones
empleadas.
4.1. Diseo de la estructura
La estructura utilizada es la plataforma bsica para robtica todo
terreno, la cual est diseada para aplicaciones bsicas de robtica
mvil (ver Figura 1).
Debido a que la estructura no tiene el espacio suficiente para tener
abordo los elementos elctricos y electrnicos, se rediseo el
robot de tal forma que este quedara con dos niveles.
De esta manera, en la parte superior del robot se ubic la tarjeta
de desarrollo BeagleboardxM, la cmara y el servomotor que la

Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

controla. En la parte inferior est ubicado todo lo relacionado con


el control de motores y la batera.

174

procesamiento mucho mayor debido a su buen manejo de los


recursos del sistema. Los perifricos que tiene la tarjeta son los
necesarios para el control de la cmara y el Arduino Uno.

Figura 1. Plataforma robot mvil. Tomado Dynamo (2013)


4.2. Hardware
En el robot mvil se utiliza varios tipos de hardware, cada uno
con una tarea especfica dentro del funcionamiento del robot.
Unidad de procesamiento. Debido a que el robot es totalmente
autnomo y adems deber procesar una gran cantidad de
informacin suministrada por la cmara, es indispensable el uso
de un buen procesador. Se decidi usar la tarjeta de desarrollo
Beagleboard xM desarrollada por Texas Instruments (ver Figura
2). Esta tarjeta contiene un procesador Cortex A8 1GHz, lo que le
permite trabajar similar a una laptop. El sistema operativo
seleccionado para el desarrollo del robot es Ubuntu, este sistema
operativo le permite a la tarjeta tener una velocidad de
INGENIAR UPB 2013

Figura 2. Tarjeta BeagleboardxM. Tomado de Beagleboard (2012)


Control de Motores. Para el control de los motores y el
servomotor encargado de la cmara, se decidi utilizar la tarjeta
Arduino Uno. Este microcontrolador est basado en ATmega328,
con 14 pines de entrada y salida, de los cuales 6 son anlogos,
permitiendo utilizarlas como salida de PWM, adems tiene un
cristal de 16MHz lo que le permite funcionar de una manera
rpida. Este microcontrolador es muy utilizado en proyectos de
ingeniera, lo que permite acceder a grandes cantidades de
informacin en internet, facilitando su uso y resolucin de
Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

175

posibles problemas que se presentan en el trascurso del proyecto


(ver Figura 3).

Figura 4. Cmara Logitech C170. Tomada de Testfreaks (2012)

Figura 3. Tarjeta Arduino Uno. Tomada de Arduino Main Board


(2012)
Adems para el control de los motores se eligi un controlador
puente H de referencia L293D, debido a que permite invertir el
sentido de giro del motor fcilmente con comandos provenientes
del Arduino Uno.
Sensor de Visin. Se utiliz la cmara Logitech C170compatible
con la tarjeta BeagleboardxM. Esta cmara tiene un tamao
adecuado para el robot mvil y permite cambiar su ngulo de
visin debido a su diseo ergonmico. La cmara Logitech C170,
tiene una resolucin de 640 x 480 pixeles y captura video a una
velocidad de 30 cuadros por segundo (ver Figura 4).
INGENIAR UPB 2013

Fuente de energa. El robot mvil debe ser autnomo respecto al


suministro de energa, de manera que no dependa de una fuente
externa. Se decidi utilizar 4 bateras AA que dan un voltaje de 6
V, los necesarios para la alimentacin de los motores.
4.3. Construccin del vehculo
Teniendo en cuenta tanto el hardware y software nombrados
anteriormente, se llev a cabo la construccin del vehculo (ver
Figura 5 y Figura 6).
La construccin del vehculo est hecha por aluminio, cuyas
lminas tienen perforaciones circulares para facilitar el cableado
de los componentes electrnicos y mecnicos. Se decidi utilizar
este tipo de material debido a su resistencia y bajo costo.

Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

176

Figura 6. Vehculo vista lateral derecha y vista superior

Figura 5. Vehculo vista frontal


Ya que el vehculo esta guiado por visin, se implement un
espacio de parqueo controlado que proporcione mejores
resultados en la operacin del vehculo. El espacio es totalmente
blanco y tanto las marcas como el espacio que limita el tamao de
cada parqueadero tendr un color negro (ver Figura 7).

INGENIAR UPB 2013

Figura 7. Vista superior del espacio de parqueo

Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

4.4. Software
En este punto se consideraron dos alternativas para la solucin del
problema, las cuales sern descritas a continuacin.
Python. Una posibilidad es elegir este lenguaje de programacin,
debido a que es multiplataforma, orientado a objetos, permite
programacin imperativa y funcional, y ofrece un gran soporte y
documentacin en lnea que facilita en gran medida su desarrollo.
Para el procesamiento de imgenes y video, se usar OpenCV que
es una librera de cdigo abierto que le permite a los
desarrolladores del campo de visin artificial, obtener muy
buenos resultados y gran eficiencia en el procesamiento de
imgenes y video.
Matlab. La BeagleBoard xM tiene libreras de Simulink que
pueden ser utilizadas en conjunto con las herramientas de visin
artificial de Matlab para elaborar proyectos de robtica que
requieran control de actuadores mediante visin. De este modo,
utilizando tan solo un cable de red, es posible enviar programas
desde el Host donde se tiene instalado Matlab y quemar modelos
de Simulink que funcionan en la BeagleBoard xM.
Debido a que Simulink para Beagleboard xM est en una fase de
desarrollo
temprana, no soporta completamente todas las
propiedades y herramientas de Matlab, como es el caso de la
comunicacin va serial, lo que imposibilit mandarle ordenes al
Arduino para el control de los motores, por tal razn esta opcin
de programacin quedo descartada y se realiz el proyecto con
INGENIAR UPB 2013

177

Python. Sin embargo cabe resaltar que el procesamiento de


imgenes con la librera de Simulink y la tarjeta Beagleboard xM,
permite desarrollar aplicaciones en tiempo real ya que posee gran
velocidad de procesamiento y estabilidad en la adquisicin de la
imagen.
Con la integracin de Python y OpenCV, se cre un cdigo rpido
y eficiente que procesa imgenes, controlar motores por medio de
mandos seriales y permiti disear un control inteligente para
lograr un buen desempeo del robot mvil.
4.5. Visin
La aplicacin de visin que gua al robot mvil hasta el
parqueadero, necesita en primera instancia procesar las imgenes
que captura por medio de la cmara.
OpenCV captura cada frame de video proveniente de la cmara
secuencialmente para luego convertirlo en escala de grises con el
fin de lograr un procesamiento correcto de las imgenes. Se
transforma las imgenes que estn es escala de grises a imgenes
binarias y luego se suavizan por medio de un filtrado no lineal con
el fin de remover el ruido y solo capturar la informacin relevante
que se necesita para el control de robot mvil.
Una vez se procesan las imgenes, se obtiene los contornos y
luego se filtran aquellos contornos que no proporcionan ninguna
informacin sobre el nmero que se desea reconocer. Con este
filtrado solo queda los contornos relevantes y se les hace un
Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

anlisis y se les extrae informacin sobre la posicin x y y del


centroide y el boundingbox el cual dibuja un rectngulo el cual
cubre todo el objeto sin considerar rotaciones (ver Figura 8).

178

4.6. Algoritmos de aprendizaje


Los
algoritmos
inteligentes
implementados
para
el
reconocimiento de nmeros y el control del vehculo para lograr
el objetivo de parquearse se describen a continuacin.
Mquinas de soporte vectorial. Esta metodologa de aprendizaje
consiste en optimizar el separador que permite clasificar un
conjunto de datos de entrada, mediante la reduccin del producto
vectorial entre el separador y el vector de pesos.
Este algoritmo de aprendizaje se utiliz para el reconocimiento de
dgitos. Inicialmente, se tom como base un grupo reducido de
datos, pero posteriormente se uso un algoritmo que descargaba
estos datos en lnea, y mejoraba as el desempeo del clasificador.
Este ltimo aprendizaje tardo alrededor de 1200 s en realizarse, y
una vez terminado genera un archivo .DAT que puede ser ledo
gracias a las funciones propias de la librera dedicada a SVM de
Python.

Figura 8. Procesamiento de imgenes para el reconocimiento de


nmeros
Como se logra observar en la Figura 8, los nmeros que se
reconocen son el 0 y el 9 (ver la parte superior izquierda de cada
nmero), cada imagen se proces como se describi anteriormente
obteniendo el rectngulo que cubre el rea de inters y el
centroide del nmero que se detecta, dibujados respectivamente
en color verde y rojo.

INGENIAR UPB 2013

La caracterstica usada como entrada para el algoritmo fue el


contorno del digito obtenido mediante un proceso de
segmentacin de la imagen. Una forma en que se puede mejorar a
futuro el reconocimiento de estos dgitos es usando un vector con
algunas caractersticas adicionales que permitan disminuir el
nmero de falsos positivos obtenidos.
Redes neuronales. Este algoritmo se usa para el control del
vehculo. Tomando como entrada el rea del rectngulo que
encierra el digito y el centroide del mismo, y como salida (funcin
Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

objetivo) la accin a realizar por el vehculo (ir hacia adelante,


hacia atrs, derecha o izquierda), se construyeron los datos de
entrenamiento para la red.
La red neuronal, de tipo FeedForward, se hizo de 3 capas, la
primera con dos neuronas, la oculta con 4 y la tercer con 3. La
funcin de activacin para la capa oculta es la funcin sigmoidea
y la de la capa de salida la funcin lineal. Tanto la capa oculta
como la capa de salida tenan Bias.
Dado que en una sola imagen el algoritmo puede tomar mltiples
rectngulos (debido al ruido en la imagen, a factores como la
iluminacin, entre otros), se adiciono una rutina en la cual el
control solo toma como dato de entrada el rectngulo y el
centroide del digito que se le pide reconocer. En caso de que no
vea el digito ingresado, elige alguno de los rectngulos restantes
de forma aleatoria y se dirige a el. Esto no debe introducir mucho
error, pues si bien esta tomando una accin incorrecta, el
clasificador de los dgitos corrige rpidamente el error, y permite
al controlador cambiar su ruta para dirigirse al digito correcto una
vez lo ha reconocido correctamente.
Para el caso en que no se ve ningn digito en la imagen, y no se
logra determinar un rectngulo adecuado, se opta por avanzar
hacia adelante hasta que el carro tenga dentro de su campo de
visin algn digito.

INGENIAR UPB 2013

179

5.

RECONOCIMIENTO DE FIGURAS

5.1. Descripcin del problema


La visin artificial describe la deduccin automtica de la
estructura y propiedades de un mundo dinmico representado por
una serie de imgenes consecutivas.
Las aplicaciones ms utilizadas de la visin artificial, son
precisamente aquellas que simulen el ojo humano, cuya
informacin que llega de entrada por medio de imgenes, se debe
procesar para lograr capturar un punto o rea de inters que brinde
informacin importante del medio y con ello ejecutar una tarea
especfica. Estas aplicaciones pueden ser deteccin de fallas,
medicin o calibracin, reconocimiento e identificacin de
objetos o smbolos que ayuden para aplicaciones de sealizacin
y localizacin para realizar cierto proceso o identificar anomalas
en productos.
Para la deteccin de smbolos o patrones en visin artificial es
esencial realizar segmentacin y el reconocimiento de regiones,
lograr capturar la informacin relevante de la imagen y
clasificarla dentro de unos grupos o clases de una poblacin
especfica.
Como se muestra en la Figura 9, el sistema debe incluir un sensor
que recoja fielmente las imgenes para ser clasificados, para luego
pasar a un algoritmo que permita extraerle las caractersticas
necesarias para ingresarlas al clasificador quien finalmente

Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

clasifica la imagen dentro de unas clases previamente establecidas


y toma una decisin con esta informacin.

180

neuronales. Como hardware y sensor de visin, se escogi el


sensor Kinect, ya que ofrece excelente calidad de video.
El sensor Kinect est continuamente sensando el entorno y
debido a que la aplicacin funciona en un ambiente no controlado,
se decidi utilizar una seal o una caracterstica que simule una
seal de trfico automotriz usando un papel rojo.

Figura 9. Sistema bsico de reconocimiento


Para la implementacin de sistemas de visin, los problemas
principales que se le presentan al desarrollador son la
segmentacin de la imagen, como lograr que se capture
adecuadamente la informacin que se requiere, eliminando ruido,
caractersticas no deseadas de la imagen y enfocarse en el rea de
inters, eliminando distracciones que confundan al clasificador.
Todo lo anterior se debe implementar sin que la informacin
importante captada por la cmara se pierda o se deteriore.

Procesamiento. Una vez el Kinect censa la imagen cada 10 frames


por segundo, se procede a segmentar la imagen con Matlab, se
extraen las caractersticas RGB de la imagen cada una
individualmente, como se desea que el procesamiento solo se
enfoque en el rea de inters compuesta por los pixeles rojos, se
sustrae de la imagen el fondo, comparando pixel por pixel la
imagen en escala de grises y las caractersticas de la matriz R, que
contiene las caractersticas sobre los pixeles rojos de la imagen.
Tras esto, se convierte la imagen a binaria para separar las regin
de inters del resto de la imagen, como se puede observar en la
Figura 10.

5.2. Solucin planteada


Como se describi en la seccin anterior, el primer problema a
solucionar es la segmentacin de la imagen, de tal manera que
quede solo el rea de inters que nos proporcione informacin
relevante. A continuacin se explica el proceso en la adquisicin
de las imgenes y el procesamiento aplicado.
Adquisicin de la imagen. Como software y herramienta de
desarrollo se implement Matlab, con toolbox de visn y redes

INGENIAR UPB 2013

Figura 10. Imagen segmentada con los pixeles rojos (izquierda)


Binarizacin de imagen (derecha)

Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

Para convertir la imagen binaria se utiliz el operador Sobel, y


debido a que una vez aplicado este operador a la imagen para
detectar bordes quedan huecos dentro de una vecindad en la
imagen binarizada, se hace necesario aplicarle mascara de
convolucin y operadores morfolgicos con el fin de rellenar esos
huecos, convirtiendo el contorno en un contorno ms definido y
que se facilite la obtencin del boundingbox que encierra dicha
regin de inters.
Teniendo la imagen con los bordes detectados, se desea encerrar
dentro de un rea cuadrada la regin de inters que se necesita
para entrenar la red neuronal. Para lograr esto se encerr dentro de
un boundingbox, el borde de la figura, obteniendo propiedades
como el rea de este cuadrado que delimita la figura, como se
puede ver en la Figura 11.
Teniendo delimitada la regin de la figura se procede eliminar
todos los pixeles que se encuentran fuera de esta regin y
redimensionar la imagen resultante a una resolucin de 9x6
pixeles, que puedan ser ingresados con facilidad y sin consumir
mucha memoria de Matlab (ver Figura 11).
Clasificador. Para entrenar el clasificador, en primera instancia se
toma 10 fotos por cada figura, cada imagen distinta de la otra,
diferencindose por el tamao, forma de la figura, ancho y alto,
obteniendo 10 datos de diferentes caractersticas que representan
una figura en particular. La aplicacin reconocer 4 figuras
diferentes por lo tanto la red se entren con 40 datos de entrada,
cada imagen redimensionada como una matriz de tamao 9x6, se
INGENIAR UPB 2013

181

organiz de manera que quedar una columna de 54 filas, cuya


columna tiene todos los pixeles de la imagen con sus
caractersticas necesarias para entrenar la red. La base de datos
total est compuesta por 40 columnas y cada una de ellas con 56
filas, cuyos valores son los 56 pixeles de cada imagen, quiere
decir que la matriz de entrenamiento tiene dimensiones 56x40.

Figura 11. Imagen deteccin de bordes delimitado por el


boundingbox (izquierda) imagen redimensionada (cuadrado y
cruz)
Red Neuronal. La arquitectura usada para la red neuronal, es la
feed forward, los datos de entrada estn normalizados entre 0 y 1,
ya que se utiliza como funcin de activacin de la red la funcin
sigmoidea y como funcin de transferencia purelin.
La capa de entrada contiene 54 neuronas sigmoideas, mientras
que la capa de salida tiene 4 neuronas purelin.
5.3. Evaluacin
Las mtricas mas usadas tradicionalmente para medir la
eficacia de un clasificador emergen de la recuperacin de
informacin y son llamadas precisin y recall. La precisin
Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

182

es una estimacin del porcentaje de los datos de entrada que son


clasificados dentro de una clase dada, que realmente pertenecen
a ella, y el recall, es una estimacin del porcentaje de los
datos de entrada que pertenecen a las clase Ci y son clasificados
dentro de ella.
Estas mtricas dependen de cuatro variables (a,b,d y d) que
son organizadas en la matriz de confusin.
Para este caso, se tomaron 51 datos de entrada de un
conjunto distinto a los usados para entrenar la red, y se realizo un
procesos iterativo en el cual se inspecciono cuantos de estos
datos pertenecientes a la clase cuadrado eran clasificados
como tal (verdaderos positivos), cuantos eran clasificados de
forma equivocada (falsos negativos) y cuales de estas figuras
sin ser cuadrados eran clasificadas como tal (falsos positivos) y
cuantas no (verdaderos negativos).

En base a estos datos se calculan las mtricas correspondientes.


La precisin obtenida es de 0.73, la cobertura de 0.78, la exactitud
de 0.86 y la media armnica de 0.76.
Estos resultados indican que el clasificador tiene un
desempeo muy bueno, pero aspectos como la precisin y la
cobertura pueden ser mejorados (reduciendo el nmero de falsos
negativos a 0). El valor de la exactitud es bastante bueno,
indicando que de todos los datos de prueba, el 86.27 % de
estos fueron clasificados correctamente.
Con el fin de corroborar el desempeo del clasificador, se
ubican los valores de VPR y FPR calculados en la curva ROC
mostrada en la Figura 12.

Los resultados obtenidos se presentan en la Tabla 1.


Tabla 1. Matriz de confusin obtenida
Clase Cuadrados

Clase no cuadrados

Positivos clase
cuadrados

a = 11

b=4

Negativos clase
cuadrados

c=3

d = 33
Figura 12. Desempeo del clasificador de acuerdo a la curva
ROC. Tomada de Poudel (2010)

INGENIAR UPB 2013

Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

Como se puede apreciar en la Figura 12, el desempeo del


clasificador esta dentro de la zona de bueno, dado el valor
calculado de VPR y FPR.
5.4. Montaje de la plataforma
Para llevar este algoritmo a una plataforma mvil, se usa la misma
metodologa de control propuesta para el carro de parqueo, es
decir, mediante un control neuronal cuyas entradas son el
centroide de la figura y el rea de la misma, se envan ordenes
mediante comunicacin serial a un Arduino MEGA que lleva al
carro hacia la figura deseada.
6.

INVESTIGACIN ADICIONAL

Las tres tareas bsicas que se explicaron en las secciones


anteriores son la solucin inicial que se le dio a cada uno de los
problemas planteados.
Los 3 prototipos estn siendo ajustados de forma tal que puedan
resolver problemas de complejidad mayor mediante otro tipo de
tcnicas que les permita modelar de forma ms robusta su
entorno.
A continuacin se van a explicar dichas tcnicas y la forma en que
estn siendo implementadas en cada uno de los prototipos. No se
presentan aun los resultados finales, ni los detalles de la
implementacin, puesto que para la fecha de entrega aun se
encuentran en proceso de ajuste. Dichos cambios se vern
reflejados en la versin publicable del presente artculo.
INGENIAR UPB 2013

183

6.1. Control inteligente para el seguimiento de lnea


Con el esquema de controlador proporcional propuesto para el
seguimiento de lnea en la seccin 3, no es posible realizar giros
de mayor complejidad como ngulos rectos, o giros pronunciados
(que forman un ngulo agudo con respecto a la vertical).
Para que se puedan hacer este tipo de acciones, se debe cambiar el
esquema de control o el tipo de procesamiento que se le hace a la
imagen. Sin embargo, debido a la naturaleza de la CMU Cam, no
es posible cambiar el tipo de caractersticas que esta extrae de la
imagen.
Por lo tanto se opta por modificar el esquema de control, por uno
basado en mtodos de clasificacin.
En concreto se plantea un control mediante redes neuronales que
toma un vector de caractersticas de la imagen y tras realizar un
conjunto de operaciones matriciales, arroja la orden de control
adecuada.
Dicha red se construyo en Matlab con las caractersticas tomadas
en tiempo real desde el Arduino mediante comunicacin serial.
Una vez entrenada se llevan las matrices de peso al Arduino y se
implementan siguiendo la arquitectura de la red.
6.2. Manejo de incertidumbre mediante tcnicas probabilsticas
Tanto los actuadores como los sensores empleados, presentan un
error propio de la naturaleza de los mismos. Por ejemplo, al dar
una orden de velocidad a un motor, factores como la friccin,
Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

vibraciones o la misma caracterstica no lineal del motor, causan


que la posicin final del prototipo no pueda ser determinada de
forma exacta.
Por esta razn, se usan modelos de probabilidad que mejoran el
desempeo tanto de los sensores y actuadores como del modelo
del entorno en que se estn desplazando. Dichos modelos se
explican a continuacin.
Campos aleatorios condicionales (CRF). Un campo aleatorio
condicional se refiere a una red de Markov (grafo no dirigido)
cuyas entradas siempre son observadas. Lo que busca un modelo
CRF es estimar la probabilidad de que dichas observaciones
pertenezcan a una clase determinada, es decir estimar P(Y = k |
Xi), donde k es una clase determinada y Xi son las observaciones
realizadas.
Este modelo se emplea para mejorar el reconocimiento de dgitos
y figuras tanto en el prototipo de parqueo, como en el prototipo
con Kinect. Cada una de las Xi puede ser tomada como el
resultado arrojado por un clasificador determinado (como el SVM
explicado), y combinar el resultado de todos estos clasificadores
para determinar con mayor certeza la clase a la que pertenece el
digito o figura observados.
Se puede pensar como un proceso de votacin en el cual cada
clasificador emite su decisin en cuanto a la clase a la que
pertenece la observacin, y de este modo se toma una decisin
definitiva mas acertada. Esto permite usar mltiples

INGENIAR UPB 2013

184

caractersticas que hagan que la decisin final sea invariante a


aspectos como la rotacin o la escala.
Redes bayesianas. Una red bayesiana es un grafo acclico dirigido
que codifica las relaciones de independencia e independencia
condicional asociadas a un conjunto de variables aleatorias
definidas en un problema dado.
La ventaja de una red bayesiana sobre otros modelos usados en
inteligencia artificial, es que permite tomar decisiones ante
situaciones de incertidumbre en la cuales puede fallar la medida
del sensor o la accin de los actuadores. Este esquema se esta
usando para modelar el entorno y los motores del robot de
parqueo, hacindolo mucho mas robusto ante situaciones que se
puedan dar durante el desempeo de su tarea.
Modelos ocultos de Markov. En el caso del robot de parqueo es
posible construir y entrenar una red bayesiana de forma cerrada,
puesto que se asume que el ambiente en el cual se desplaza se
conoce (en cuanto a su tamao y forma). Sin embargo, en una
aplicacin real los datos de enteramiento estn incompletos,
debido a que el ambiente donde se mueve el robot no es conocido.
Un modelo oculto de Markov (o HMM por sus siglas en ingles),
es una red bayesiana que representa la transicin de estados de un
sistema dinmico, dada las observaciones que realiza el agente
dentro de dicho sistema. Lo que se propone con este esquema es
desplazar el robot del Kinect dentro de un ambiente desconocido,
que este construya un mapa del mismo, y que despus pueda
realizar las tareas que se le indiquen dentro de este.
Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

185

Para esto puede usar el esquema de reconocimiento de figuras ya


explicado, y usar estas como punto de inters (landmarks) que le
permitan ubicarse dentro de dicho entorno.

desplazan dentro de su campo de visin, realizando una tarea


determinada (como apilar cajas, realizar inventario, entre otras)
8.

7.

POTENCIAL

El proyecto propuesto, si bien es elaborado a modo de prototipo o


simulacin, puede ser expandido a diversas aplicaciones reales.
La adicin de sensores y de capacidad de procesamiento mayor,
puede llevar las ideas propuestas aqu a aplicaciones de calibre
mayor.
El uso de algoritmos de aprendizaje y de tcnicas probabilsticas
permite disear robots capaces de desplazarse en ambientes no
controlados como es el mundo real en el que las personas se
desplazan a diario. De este modo se podra pensar en robots de
ayuda que guen a personas discapacitadas por la calle, en
sistemas autnomos de visn que conduzcan vehculos de forma
autnoma siguiendo las leyes de transito, en robots mviles que
realicen tours por museos, que desarrollen labores de vigilancia en
las empresas, entre otros.
Sin embargo, la aplicabilidad de los sistemas de visin artificial
no solo se puede reducir a la robtica mvil. En lneas de
procesos industriales se pueden ubicar cmaras estticas que
controles manipuladores seriales de tal forma que se optimicen los
procesos de produccin, o ubicar cmaras en puntos estratgicos
que enven ordenes de control remotas a vehculos que se

INGENIAR UPB 2013

CONCLUSIONES

Durante el desarrollo de proyectos de ingeniera se deben tener


presente todas las posibles fuentes de error, y solucionar los
problemas de una manera eficiente, teniendo en cuenta que la
solucin puede ser abordada desde otras disciplinas que no
siempre estn relacionadas con las que se estudiaron en el
pregrado.
El uso de algoritmos de aprendizaje capaces de solucionar los
problemas planteados como el reconocimiento de nmeros y el
control del robot mvil para llegar a la celda de parqueo, permiten
elaborar aplicaciones de ingeniera con cierto grado de
inteligencia, capaces de tomar decisiones de forma autnoma sin
necesidad de programar un sin nmero de reglas puntuales que
debe obedecer el robot mvil sin darle espacio a la incertidumbre,
tal como se hace en la programacin tradicional.
REFERENCIAS
Aby, P.K.; Jose, A.; Dinu, L.D.; John, J.; Sabarinath, G.; Implementation and
optimization of embedded Face Detection system, Signal Processing,
Communication, Computing and Networking Technologies (ICSCCN), 2011.
Arduino Main Board (2012). Arduino Uno. En lnea,consulta 2013-0303,http://arduino.cc/en/Main/arduinoBoardUno
Chen, B.; Hoberock, L.L.; , "Machine vision recognition of fuzzy objects using a
new fuzzy neural network," Robotics and Automation, 1996.
Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

Dynamo (2012). Plataforma todo terreno. En lnea,consulta 2013-03-07,


http://www.dynamoelectronics.com/components/com_virtuemart/shop_image/
product/todoterreno2.JPG
F.G Rossomando, C. Soria, R. Carelli.;, "Algoritmo compensador neural discreto
de dinmica en robots mviles usando filtro de Kalman extendido" Instituto
de Automtica, Facultad de Ingenieria, Universidad Nacional de San Juan,
Av. San Martin 1112, Marzo 2012, doi: 10.1109/ICSCCN.2011.6024553
Gardeazabal, D.; Ponomaryov, V.; Chairez, I, Fuzzy control for obstacle avoiding
in mobile robots using stereo vision algorithms, Electrical Engineering
Computing Science and Automatic Control (CCE).
Gupta, M.M.; Fuzzy neural networks in computer vision," Neural Networks, 1989.
IJCNN.
LiquidWare (2012). BeagleBoard xM. En lnea,consulta 2013-0307,https://www.liquidware.com/shop/show/BB-XM/BeagleBoard+XM
Marsland, Stephen. Machine Learning: An algorithmic perspective (2009). CRC
Press, USA.
Poudel, P.; Shirvaikar, M.; Optimization of computer vision algorithms for real
time platforms, System Theory (SSST), 2010.
RestrepoAndrs, Jhony A. Cardona, Lucas F. Lpez.; Control difuso para el
parqueo en reversa de un vehculo terrestre no articulado, Escuela de
ingeniera (UPB), 2010.
ShenKhangTeoh; VooiVoon Yap; Chit Siang Soh; Sebastian, P.; Implementation
and optimization of human tracking system using ARM embedded platform,
Intelligent and Advanced Systems (ICIAS), 2012.
Sutton, Richard. Reinforcement Learning (1998). The MIT Press. Cambridge.
Testfreaks (2012). Logitech C170. En lnea,consulta 2013-03-07,
http://www.testfreaks.es/webcams/logitech-c170/

INGENIAR UPB 2013

186

AUTORES
Juan Camilo GONZLEZ VLEZ, estudiante
de dcimo semestre de Ing, elctrica y
electrnica, en la Universidad Pontificia
Bolivariana,
egresado
del
Colegio
Corazonista de Medelln, miembro del
Semillero A+D de la UPB.

Ivn Daro MORA OROZCO, docente titular


de la Facultad de Ingeniera Elctrica y
Electrnica de la UPB. Magster en
Automtica con nfasis en robtica. Su
principal lnea de trabajo es la Mecatrnica y
ha desarrollado trabajos en el rea de control
de movimiento de robots manipuladores,
robtica
mvil
y
visin
artificial.
Actualmente es el Coordinador del Semillero
en Automtica y Diseo A+D.

Universidad Pontificia Bolivariana

Gonzlez et al. (2013)

187

Johny Alexander VARELA OSORIO, nace el 21


de agosto de 1988. Tecnlogo en
Telecomunicaciones (2009). En el 2009
comienza sus estudios de ingeniera electrnica
en la Universidad Pontificia Bolivariana, en el
ao 2012 labora en la empresa SMDigital en el
cargo de programador durante 9 meses.
Actualmente cursa el dcimo semestre y forma
parte del semillero de investigacin en automtica y diseo (A+D)
de la UPB.

INGENIAR UPB 2013

Universidad Pontificia Bolivariana

You might also like