Sei sulla pagina 1di 11

IMPLEMENTACIN DE UN PROCEDIMIENTO DE

NAVEGACIN EN FORMA GUIADA O AUTNOMA


EN UNA PLATAFORMA MVIL EMPLEANDO
FUSIN SENSORSTICA Y SOFTWARE LIBRE
Resumen: Utilizando la fusin de sensores de posicin, efecto hall y una cmara de
video se desarroll un procedimiento para implementar algoritmos de navegacin
guiada o autnoma. El software desarrollado permiti a una plataforma de robot
mvil trasladarse en un ambiente dinmico evitando colisiones y posibles accidentes
con operarios. Se utilizaron bibliotecas de visin artificial y tcnicas de control
automtico en tareas de navegacin. El software de navegacin guiada funcion en
forma satisfactoria en superficies de 80 m2. Un GPS permiti implementar un
programa de navegacin autnoma en ambientes de trabajo superiores a 2500 m 2
debido a la baja exactitud del instrumento. El software desarrollado no requiere
instalacin y arranca desde un DVD. Los algoritmos desarrollados en la experiencia
son de uso libre y cdigo fuente abierto.

INTRODUCCIN

La teora del control automtico y la tecnologa de los robots, permite combinar


diversas disciplinas como por ejemplo mecnica, informtica y electrnica con la
finalidad de disear y construir aplicaciones, facilitando la experimentacin en
entornos de robots mviles. La integracin de la arquitectura de control con las
funciones de un sistema de medida [1] permite evaluar tareas de fusin sensorial.
Normalmente un nico sensor cubre un rango espacial reducido y fusionando los
datos de varios transductores se puede conseguir una cobertura mayor. Debido a que
un sensor necesita un tiempo determinado para obtener y transmitir una medida
determinada, la fusin de manera eficiente de la informacin de varios sensores
reduce su nmero.
Otro problema en el campo de la robtica es la incertidumbre. La incertidumbre
depende del objeto que se est observando en vez del sensor. Se da cuando el sensor
no puede medir todos los atributos relevantes para la percepcin o cuando la
observacin es ambigua. Un nico sensor es incapaz de reducir la incertidumbre en su
percepcin debido a su visin limitada del objeto. Al fusionar la informacin se
reduce el conjunto de interpretaciones de una determinada medida. Cuando medidas
independientes de la misma propiedad se fusionan midiendo una cualidad
determinada con dos tipos de sensores, el sistema se vuelve menos vulnerable a
interferencias [2]. En el siguiente trabajo se implementa procedimientos de
navegacin en forma guiada o autnoma a una plataforma de robot mvil
denominado RoMAA II mediante la fusin de la informacin proveniente de sensores
de posicin, magnticos y una cmara de video.

ESPECIFICACIONES DE LA PLATAFORMA MVIL


El dispositivo denominado RoMAA II fue desarrollado en el Centro de Investigacin
en Informtica para la Ingeniera [3], surge como respuesta a la necesidad de disponer
de una plataforma sobre la cual ensayar y validar las investigaciones llevadas a cabo.
Desde el inicio fue concebido con arquitectura abierta, pudiendo acceder a cada nivel
jerrquico de su estructura para modificar o adaptar a los diferentes experimentos. La
estructura es de tipo uniciclo con dos ruedas motoras y una rueda castor atrs. Las
dimensiones son adecuadas para ambientes interiores de laboratorio; con posibilidad
de montar diferentes tipos de sensores, actuadores y cmaras de video de manera
sencilla en la parte frontal. El robot mvil se complementa con las herramientas de
desarrollo denominados Stage-Player [4] y OpenCV [5].

HERRAMIENTAS DE DESARROLLO

El programa denominado Player-Stage es un esfuerzo internacional en producir


herramientas de software libre para investigacin y desarrollo en el mundo de la
robtica. Se utiliza el lenguaje de programacin C++ [6]. La eleccin de la plataforma
Stage facilita la forma de gestionar los controladores de hardware y la comunicacin.
Posee un servidor de dispositivos y un sockets TCP/IP, su estructura es multihilos, la
lectura de sensores es transparente y contempla libreras oficiales en C y C++.
Incluye drivers de los sensores, actuadores y robots comerciales como por ejemplo:
Robots Pioneer, iRobot Roomba, Segway RMP y cmaras de video.
El Stage simula entornos virtuales con robots complementndose con el Player. Es
decir, el Stage permite evaluar la eficiencia del algoritmo de navegacin sin conectar
la plataforma mvil en el ambiente real. El Stage dispone de muchos modelos de
sensores y actuadores. El Player contiene el cdigo fuente de las funciones encargadas
de manejar y controlar el hardware del RoMAA II.
Un complemento indispensable del Player-Stage es la librera de visin artificial
denominada OpenCV originalmente desarrollada por Intel. Se lo utiliza desde
sistemas de seguridad con deteccin de movimiento, hasta aplicativos de control de
procesos donde se requiere reconocimiento de objetos. Su licencia permite su uso en
forma libre para propsitos comerciales o de investigacin. El OpenCV es
multiplataforma, existiendo versiones para GNU/Linux, Mac OS X y Windows.
Contiene ms de 500 funciones que abarcan una gran gama de reas en el proceso de
visin, como reconocimiento de objetos, calibracin de cmaras, visin estreo y
visin robtica. El proyecto encargado de desarrollar OpenCV pretende proporcionar
un entorno fcil de utilizar y altamente eficiente. Para realizar tareas de
acondicionamiento de seales y transmisin de informacin entre los sensores y la
notebook se emplea un dispositivo genrico denominado Student Full [7][8]. El
ncleo del Student Full es un microcontrolador diseado para realizar tareas de
control y mediciones analgicas empleando un programa escrito en lenguaje C [9]
[10]. Finalmente se utiliza un framework informtico denominado QT. El mismo es
un desarrollo para aplicaciones en C++ y otros lenguajes de programacin. El QT no
slo incluye un conjunto de libreras y herramientas, si no tambin una IDE especfica
que facilita el trabajo sobre dicho framework. Se lo configura para manejar
interrupciones en el puerto de comunicaciones USB, facilitando el envo de
informacin de los sensores al programa.

HIPTESIS DE TRABAJO

Es posible implementar algoritmos de navegacin guiada o autnoma en una


plataforma mvil articulando un software de robtica, visin artificial y sensores de
proximidad y de efecto hall.

METODOLOGA 1
u1=k.t1
La teora
k del control automtico estudia la estabilidad de los sistemas y proporciona
m1
una metodologa que permite definir criterios de seguimientos. En la figura 1 se
visualiza un modelo simplificado encargado de seguir una banda magntica.

Sensores de Banda
efecto hall magntica

r1 t1=(r1-s1)
- Motor 1

s1 Banda
Sensor 1
Magntica
Figura 1. La plataforma mvil sigue el camino magntico empleando tcnicas de
retroalimentacin.
El bloque denominado Motor 1 representa el motor izquierdo de la plataforma mvil.
La variable 1 es la velocidad angular de la rueda del robot. El bloque denominado
Banda Magntica representa la cinta de aluminio colocado en el piso. El bloque
Sensor 1 transforma la seal elctrica m1 en digital s1. La variable t1 se obtiene
sumando la constante de referencia r1 con la salida s1. El triangulo representa un
amplificado de ganancia k negado. Finalmente u1 excita el motor de corriente
continua, permitiendo el giro de la rueda izquierda cuando el sensor de efecto hall esta
excitado. El motor derecho del robot es controlado bajo el mismo principio.
Es decir, si los dos sensores de efecto hall detectan la lmina metlica, el RoMAA II
sigue la gua magntica. En la parte frontal superior de la plataforma se colocan dos
sensores de proximidad denominados SP1 y SP2. Los mismos detectan objetos en
frente del robot a una distancia no mayor de 1.5 metros. La informacin obtenida es
codificada y transmitida a la notebook va USB empleando el Student Full. El
programa desarrollado en QT recibe e interpreta los cdigos en el puerto de
comunicaciones y, mediante un algoritmo de navegacin guiada, enva al Player las
rdenes necesarias para llevar al RoMAA a la posicin deseada. El programa se
detalla de la siguiente manera:
Se recibe los posibles estado lgico de las variables: s1, s2, SP1 y SP2.

if (SP1=0 and SP2=0) then


if(s1=1 and s2=1)
Motor1 = Motor 2=0.07
velocidadAngular = 0
if s1=0 and s2=1
Motor1 = Motor 2=0
velocidadAngular = -0.05
if s1=1 and s2=0
Motor1 = Motor 2=0
velocidadAngular = +0.05
if(SP1=1 and SP2=0) or if(SP1=0 and SP2=1)
Motor1 = Motor 2=0
velocidadAngular = 0

De esta manera, si alguno de los sensores de proximidad detecta un


objeto el robot se detiene. En cambio, si no hay nada delante avanza
sobre la lnea, corrigiendo la direccin segn el sensor que deje de
detectar el camino.
NAVEGACIN GUIADA

El algoritmo descripto anteriormente no detecta un operario u objetos fuera del


alcance de los sensores de proximidad. Se utiliza entonces visin artificial para
detectar un cuerpo especfico y su posicin.
Se utiliza un chaleco fosforescente en una primera fase de prueba. El cdigo fuente
encargado de realizar las tareas de deteccin se obtuvieron de las libreras del
OpenCV [11]. Luego se articula el algoritmo de seguimiento desarrollado
anteriormente con las funciones de deteccin de objetos de la librera de visn
artificial como se muestra en la figura 2.

Figura 2. Se configura el OpenCV para detectar el chaleco y su posicin en la


apantalla

De esta manera el sistema queda configurado para detectar el chaleco como se


visualiza en la figura 3, es decir, las libreras de visin artificial permiten generar una
condicin de stop en la plataforma mvil.

Figura 3. El operario se interpone en la trayectoria del


robot fuera del alcance de los sensores de posicin.
Seguidamente se plantea una segunda condicin en las tareas de navegacin guiada.
En esta segunda parte se interpone en la trayectoria del robot una barrea mvil que
detecta la condicin de accidente entre el operario y el robot. Es decir, si una persona
atraviesa la trayectoria guiada del RoMAA II y a la vez es detectado por la barrera
mvil como se muestra en la figura 4, el dispositivo de control baja la barrera para
interrumpir la movilidad del robot.

Figura 4. La barrera mvil


detecta una persona que se
desplaza perpendicular a la trayectoria del robot.

Como consecuencia de la condicin planteada, se enciende una luz roja en forma


automtica con la intencin de indicar peligro de accidente. Los sensores frontales del
RoMAA II detectan la barrera y el robot detiene su camino.

A) B)

Figura 5. A) El sensor de la barrera mvil detecta al operario y baja la barrera, luego


prende la luz roja y el robot se detiene. B) El sensor de la barrera mvil al no detectar
al operario sube la barrera, prende la luz verde y el robot sigue su trayectoria.

El siguiente ejemplo tiene como objetivo esquivar un objeto que se encuentra en la


trayectoria del robot. Se instalan cuatro sensores de proximidad, dos en el frente y
uno en cada lado del RoMAA II. En este caso, se utiliza al Stage como herramienta de
experimentacin. El sensor que detecte primero el objeto tiene prioridad en la
direccin de giro. En la figura 6 el sensor conectado a la derecha detecta el obstculo.
Luego se activan el sensor lateral [12] que mide la distancia del robot a la superficie
del objeto.

Figura 6. El simulador Stage utiliza el algoritmo de navegacin para esquivar el


objeto en su trayectoria.

Finalmente la plataforma mvil encuentra el camino magntico para continuar la


navegacin guiada.

NAVEGACIN AUTNOMA

En el Stage tiene el instrumento de navegacin denominado GPS de alta exactitud. De


esta manera es posible establecer un punto de partida y otro de llegada mediante un
algoritmo. El RoMAA II es representado de color verde y se dirige desde la posicin
de partida hasta la llegada a travs de la trayectoria mostrada en la figura 7.

Llegada

Trayectori
a

Partida

Figura 7. La plataforma mvil


navega en forma autnoma
mediante el instrumento de navegacin denominado GPS.
El algoritmo de navegacin es desarrollado teniendo en cuenta que el GPS disponible
en el Stage da la ubicacin instantnea del robot, pero no dice nada sobre la direccin
del movimiento ni la forma de llegar al destino.

ALGORITMO DE NAVEGACIN AUTNOMA

El algoritmo consiste en aproximar la direccin real del robot a partir de la ubicacin


actual con la anterior. Con los datos obtenidos se puede establecer la direccin
aproximada para guiar al robot a la meta.
El algoritmo se bas en geometra euclidiana, ya que dadas las condiciones del
experimento no ofrece errores significativos. Los ngulos de las direcciones se
obtienen utilizando la funcin arco tangente corregido, para contemplar el ngulo con
el cuadrante correcto. Los ngulos necesarios se obtienen de la siguiente ecuacin:

double = atan2(y - ultimaY, x - ultimaX);


double = atan2(destinoY - y, destinoX - x);

Donde es la direccin actual y la direccin que debera tener el robot para llegar al
destino desde la posicin actual. Luego se calcula el ngulo de rotacin para alcanzar
la direccin deseada mediante la resta = - .
El algoritmo descripto se implementa en C++ como se visualiza en la figura 8.

Figura 8. Cdigo fuente encargado de direccionar al robot hacia la meta.

En la figura 9 se observa el ngulo de giro y la direccin de movimiento.


Figura 9.

Representacin del ngulo de giro y la direccin del movimiento del robot.

Al implementar el algoritmo en el Stage, tomado como partida el punto (0,0) y


destino al punto (10,10), el robot describe la siguiente trayectoria como se observa en
la figura 10.

Figura 10. El robot al


iniciar la navegacin
toma un camino aleatoria hasta encontrar la direccin correcta.

Como puede verse en un principio el robot toma posiciones arbitraria, hasta que
encuentra la direccin correcta para alcanzar el destino.
La ventaja en las tareas de depuracin y puesta a punto de los algoritmos de
navegacin en Stage y Player es que los mismos pueden funcionar al mismo tiempo.
Es decir, el movimiento visualizado en la simulacin es el obtenido en la plataforma
mvil en forma real. El Stage posee dispositivos GPS con una exactitud elevada. En
este trabajo se utilizo un GPS comercial con una exactitud del orden de dos metros.
Por ese motivo las tareas de navegacin en un recinto de 80 m 2 no son vlidas debido
al alto error obtenido. Para implementar el algoritmo desarrollado utilizando el GPS
real es necesario agrandar la escala de la imagen de 80 m 2 a 2500 m2. En esta
condicin el RoMAAII no puede seguir directamente la trayectoria ideal trazada en el
ejemplo anterior debido al error del instrumento. En la figura 11 se observa un error
entre la trayectoria ideal y la navegacin real debido a la exactitud de GPS real.

Meta error

Trayectoria ideal

Figura 11. La Partida


trayectoria real no se ajusta al ideal debido al error del GPS real.

La ventaja que se obtiene al utilizar este tipo de dispositivo es que en la trama de


comunicacin que transmite el GPS real al Player tiene byte que identifica el sentido
del movimiento. De esta manera cuando el robot arranca y se traslada en una
direccin aleatoria el GPS real detecta el sentido del movimiento, permitiendo de esta
manera corregir la orientacin y ubicarlo hacia la meta.

CONCLUSIN

Utilizando la fusin de sensores de posicin, efecto hall y una cmara de video se


desarroll un procedimiento para implementar algoritmos de navegacin guiada y
autnoma. Permitiendo a la plataforma mvil trasladarse en un ambiente dinmico
evitando colisiones y posibles accidentes con operarios. Se utilizaron bibliotecas de
visin artificial y tcnicas de control automtico para facilitar las tareas de
navegacin. El procedimiento para desarrollar el algoritmo es simple de implementar.
Puede ser modificado y optimizado sin tener elevados conocimientos de
programacin. El GPS utilizado permiti implementar un algoritmo de navegacin
autnoma, pero teniendo un elevado margen de error entre la trayectoria real y la
ideal. El algoritmo de navegacin guiada funciona en forma satisfactoria en ambientes
de trabajo superiores a 2500 m 2. El software desarrollado no requiere instalacin
previa en la notebook debido a que fue diseado para arrancar directamente desde un
DVD. Los cdigos fuentes desarrollados en la experiencia son de uso libre sin fines
lucrativos.

REFERENCIA

1.Garcia, A,. Antn lvarez, C.,:


Instrumentacin Electrnica. Editorial Thomson. Cap 1. pp 10. Espaa. Madrid
2011.
2.Baturone, A.,:
Robtica Manipuladores y Robot Mviles. Editorial Marcombo. Cap 1. pp 6.
Tercera edicin. Espaa 2010. Madrid.
3. http://ciii.frc.utn.edu.ar/Robotica/RobotsRoboticaWeb
4. www.playerstage.sourceforge.net/
5. www.es.wikipedia.org/wiki/OpenCV
6. Garay, J., Bronson S.:
C++ para Ingeniera y Ciencia. Editorial Thomsom 2002. Madrid. Espaa.
7.Vazquez R,. Robledo A,. Toledo P,. Mason L,. Mariguetti J,. Canali Luis.
Desarrollo de un Procedimiento para Disear Dispositivos Genricos
Multipropsitos. Jornadas de investigacin en ingeniera del NEA y pases
limtrofes, ISBN: 978-950-42-0142-7
8.Saravia, B., Coria J., Fiadino, G,. Arroldi A.,:
MPlab X y Tcnicas de Programacin en Libreras de Microchip. Cap 3. pp 55.
Primera Edicin 2011. Buenos Aires. Argentina.
9.Santos M,. Patio I,. Carrasco R,. :
Fundamento de programacin. Primera Edicin 2006. Cap 5. p.97. Editorial
Alfaomega Rama. Mxico. Mxico.
10.Usategui, J., Ruiz Etebarria A., Martnez Angulo, I., Parra Trueva, I.,:
dsPIC Diseo prcticos de aplicaciones. Editorial Mc Graw Hill. Aplicacin 0. pp
175. Espaa 2006. Madrid.
11. https://github.com/Itseez/opencv/blob/master/samples/cpp/camshiftdemo.cpp
12. Palacios, E., Remiro F., Lpez, J.,:
Microcontroladores PIC 16f84. Desarrollo de Proyectos. Cap 32. pp530.
Alfaomega Ra-Ma. Segunda Edicin. Espaa 2006.Madrid.

Potrebbero piacerti anche