Diseño y Construcción de un Robot Ápodo

Texto completo

(1)

Dise˜no y Construcci´on de un Robot ´Apodo

Jos´e Alberto M´endez Polanco, Erika Amaro Camargo

Ang´elica Mu˜noz Mel´endez y Eduardo F. Morales Manzanares

Instituto Nacional de Astrof´ısica, ´Optica y Electr´onica

Coordinaci´on de Ciencias Computacionales

Luis Enrique Erro No. 1

72840 Tonantzintla, Puebla. M´exico

{polanco, amaro, munoz,emorales}@inaoep.mx

Resumen

Se presenta el dise˜no y construcci´on de un robot ´apo-do. El robot est´a formado por cuatro m´odulos, cada uno de ellos con un servomecanismo. En su conjunto, estos m´odu-los permiten al robot realizar movimientos rectil´ıneos. Se presenta de manera detallada la construcci´on del robot. As´ı mismo, se proponen dos maneras de controlar al robot, la primera mediante un mecanismo de control tradicional y la segunda, mediante un control basado en aprendizaje por refuerzo. Finalmente, se presentan resultados del robot probado en distintas circunstancias y en distintos ambientes con y sin obst´aculos.

1. Introducci´on

En los ´ultimos a˜nos, los robots ´apodos han cobrado in-ter´es en el ´area de rob´otica m´ovil. Esto se debe a que este tipo de robots, que se valen ´unicamente de su cuerpo para moverse, tienen un sistema de locomoci´on robusto para contender con ambientes con superficies irregulares.

Los robots ´apodos est´an frecuentemente inspirados en la naturaleza, i.e., sus dise˜nadores se basan en los patrones de movimiento de los gusanos y serpientes cuya estruc-tura se compone de m´ultiples segmentos que permiten el movimiento ondulatorio. De manera an´aloga, los robots ´apodos se construyen a partir de m´odulos similares entre s´ı, que en su conjunto forman el cuerpo del robot.

En este trabajo se presenta el dise˜no y construcci´on de un prototipo de robot ´apodo formado por cuatro m´odulos, cada enlace entre dos de ellos con un servomecanismo in-dependiente, que en su conjunto permiten al robot generar movimientos rectil´ıneos. El control en los robots ´apodos se vuelve una tarea complicada conforme el n´umero de

m´odu-los que lo conforman aumenta debido a que m´odu-los movimien-tos de las articulaciones que los unen deben sincronizarse adecuadamente. Una soluci´on para generar el movimiento ondulatorio, es generar ondas que recorran el cuerpo del robot con la ayuda de alg´un modelo como la generaci´on de una onda sinusoidal. Esta soluci´on tiene la limitante de que cada vez que son agregados o eliminados m´odulos al robot, y cada vez que el robot enfrenta ambientes cuyas condi-ciones var´ıan, los par´ametros de dicho modelo deben ser redefinidos. Por ello, es importante dotar al robot de meca-nismos de aprendizaje que le permitan contender con cam-bios en su estructura y en el ambiente que lo rodea. Debido a lo anterior, se probaron dos tipos de control para el robot. El primero es un control tradicional basado en un movimiento sinusoidal, cuyos par´ametros son fijos y se definen a

prio-ri. El segundo control se basa en aprendizaje por refuerzo

y permite al robot encontrar en un conjunto de estados, la secuencia m´as adecuada de estados para que el robot logre desplazarse. Hasta donde sabemos, no hay trabajos donde se reporte la aplicaci´on de aprendizaje por refuerzo en la locomoci´on de un robot ´apodo.

El documento est´a organizado de la siguiente manera, el cap´ıtulo 2 resume trabajos relacionados. En el cap´ıtulo 3 se describen el dise˜no y la construcci´on del robot ´apodo. En el cap´ıtulo 4 se describen los esquemas de control emplea-dos para generar el desplazamiento del robot ´apodo. En el cap´ıtulo 5 se presentan las pruebas que se realizaron con el robot y finalmente el cap´ıtulo 6 se presentan las conclu-siones y perspectivas del trabajo.

2. Trabajo Relacionado

Uno de los primeres robots ´apodos conocidos fue un pro-totipo de robot serpiente dise˜nado por Shigeo Hirose en 1993 [5]. A partir de este trabajo se han desarrollado

(2)

diver-sos robots similares. Howie Choset y su equipo han traba-jado durante los ´ultimos 12 a˜nos en el desarrollo de robots tipo serpiente [3].

Gonz´alez G´omez et al. [4] presentan un prototipo de robot ´apodo modular denominado Cube revolutions, cons-tituido por la uni´on en cadena de ocho m´odulos iguales. Este robot se desplaza en l´ınea recta por medio de ondas que recorren su cuerpo desde la cola hasta la cabeza. El robot calcula las posiciones de las articulaciones a partir de los par´ametros de la onda, i.e., forma, amplitud y longitud.

Finalmente Alarc´on ´Avila et al. [2] presentan el dise˜no y la construcci´on de un robot ´apodo capaz de operar de mane-ra aut´onoma con base en sus percepciones locales.

A diferencia de los anteriores, en este trabajo se muestran resultados de aprendizaje en l´ınea de las acciones de control que gobiernan el movimiento de un robot ´apodo, utilizando aprendizaje por refuerzo.

3. Dise˜no y Construcci´on del Robot ´Apodo

En esta secci´on se describen el dise˜no y la contrucci´on del robot ´apodo.

3.1.

Morfolog´ıa

La locomoci´on de un gusano se basa en sus m´usculos que se contraen y expanden, permit´endole avanzar o retroce-der. Para lograr esta locomoci´on, un robot ´apodo debe te-ner una morfolog´ıa que le permita contraerse y expandirse. Se dise˜naron m´odulos para la composici´on del cuerpo del robot de manera que tuvieran dos caracter´ısticas esenciales: (1) rigidez capaz de soportar toda la estructura del robot y, (2) flexibilidad para permitir la contracci´on y expansi´on del robot. El cuerpo del robot se compone de los siguientes tres elementos:

Cabeza (A). Es la parte m´as ligera del cuerpo del

robot, debe ser ligera para lograr su elevaci´on y por consiguiente escalar objetos de una cierta altura. La cabeza est´a formada por un ´unico m´odulo (figura 1(a)).

Cuerpo (B). Es la parte que da soporte y movilidad al

robot, est´a formada por una serie de m´odulos id´enticos unidos entre s´ı, lo cual permite la expansi´on del cuerpo del robot ´unicamente agregando m´odulos adicionales de este tipo (figura 1(b)).

Cola (C). Es la parte m´as pesada del robot, permite el

impulso al robot hacia adelante por medio de la con-tracci´on y expansi´on (figura 1(c)).

Cada uno de estos m´odulos tiene una forma cil´ındrica para permitir al robot mantenerse en equilibrio. Para aumentar

(a) (b) (c)

Figura 1. M ´odulos que conforman al robot.

la estabilidad, cada uno de los m´odulos tienen adem´as un soporte plano en la parte inferior.

Para formar la estructura completa del robot se unen un m´odulo tipo A, dos modulos tipo B y un m´odulo tipo C como se aprecia en la figura 2. Este tipo de configuraci´on modular permite expandir el tama˜no del robot ´unicamente agregando m´odulos adicionales del tipo B a la estructura completa del robot. En la figura 2, puede apreciarse tambi´en que entre cada par de m´odulos se encuentran dos enlaces, llamados articulaciones. Estas articulaciones permiten la uni´on y movilidad de los m´odulos de robot. Con estas ar-ticulaciones se puede imitar la contracci´on y expansi´on de un gusano. Dos articulaciones conectadas al mismo m´odu-lo tienen la misma funci´on y se mueven de manera id´enti-ca, por lo que se consideran como una sola articulaci´on. El robot tiene en total tres grados de libertad.

Figura 2. Estructura completa del robot for-mada por un m ´odulo tipo A, dos m ´odulos tipo B y un m ´odulo tipo C. Los n ´umeros in-dican las articulaciones del robot.

El plano detallado para la contrucci´on del m´odulo B se ilustra en la figura 3. Los planos de los m´odulos A y C son similares a ´este.

3.2.

Materiales y Equipamiento

3.2.1. Partes Mec´anicas

La elecci´on de los materiales para la construcci´on del robot ´apodo fue realizada con base en un estudio realizado previamente [1]. Dicho estudio contempla diversos materia-les como la madera, aluminio, acr´ılico y cart´on.

(3)

Figura 3. Plano del m ´odulo B.

El cart´on tiene gran disponibilidad en el mercado, bajo costo, alta flexibilidad y a pesar de no ser tan resistente co-mo la madera o el aluminio, su bajo peso y las caracter´ısti-cas mencionadas lo convirtieron en el material id´oneo para la construcci´on del prototipo.

3.2.2. Equipamiento

Para el control del robot se utiliz´o una tarjeta comer-cial Handy Board c basada en el microprocesador 68HC11 de Motorola. Las principales caracter´ısticas esta tarjeta son memoria RAM de 32 K, salidas para 4 motores de corriente directa y 6 servomotores, entradas para un gran variedad de sensores anal´ogicos y digitales. La tarjeta se programa en el lenguaje de programaci´on multitarea Interactive C.

Los movimientos de las articulaciones, fueron generados con servomotores Hobbico HCAM0149 los cuales proveen mayor torque que los motores de corriente directa. Las ca-racter´ısticas de estos servomotores son, peso de 44 grs., alimentaci´on de voltaje de 4.8 V - 6.0 V y velocidades de 60◦/0.19 seg. a 4.8 V o bien de 60◦/0.16 seg. a 6.0 V.

Los servomotores tienen un margen de operaci´on de 180◦

aproximadamente.

Se utiliz´o adem´as un sonar como sensor de distancia. Este sonar es un sensor anal´ogico Devantech SRF04 con un rango de operaci´on de aproximadamente 30-2000 mm., tiempo de respuesta de 0.03 segundos y un campo de acci´on de 30◦.

4. Control

Para controlar los movimientos del robot fueron emplea-dos emplea-dos esquemas distintos. El primero es un control tradi-cional basado en la generaci´on de una onda sinusoidal. El segundo esquema de control est´a basado en aprendizaje por refuerzo. En esta secci´on se explican las bases e imple-mentaci´on de ambos esquemas.

4.1.

Control Basado en una Onda

Sinu-soidal

Este tipo de control se basa en el principio de la propa-gaci´on de una onda sinusoidal a trav´es de las articulaciones del robot. El algoritmo 1 resume el proceso aplicado por el denominadoalgoritmo de ajuste empleado para generar el

movimiento del robot. Para generar la onda sinusoidal se parte del gusano en reposo y dos vectores de movimiento, los cuales se presentan en el cuadro 1, y se ajustan las articu-laciones del robot a cada uno de los vectores de movimien-tos de manera alternada.

Algoritmo 1. Algoritmo de Ajuste

1. Colocar las articulaciones 1,2,3 en su posici´on original, 0◦

sobre el eje horizontal. 2. Hacer i ← 1

3. Seleccionar el vector de posiciones ~vide la tabla de

vec-tores de movimiento para generar una onda sinusoidal. 4. Ajustar simult´aneamente las articulaciones del robot

seg´un los valores de ~vi

5. Esperar 40 milisegundos.

6. Si i = 1 entonces i ← i + 1 de lo contrario i ← 1 7. Regresar al paso 3

articulaci´on 1 articulaci´on 2 articulaci´on 3 ~

v1 −45◦ 45◦ −45◦

~

v2 45◦ −45◦ 45◦

Cuadro 1. Vectores de movimiento emplea-dos por el algoritmo de ajuste para generar la onda sinusoidal.

4.2.

Control Basado en Aprendizaje por

Refuerzo

El aprendizaje por refuerzo [6] trata de resolver el problema de c´omo un sistema aut´onomo que recibe

(4)

infor-maci´on sensorial y act´ua en un entorno, puede aprender a elegir acciones ´optimas para alcanzar sus objetivos. El ob-jetivo es que el robot ´apodo aprenda la mejor secuencia de movimientos que le permita avanzar.

Se eligi´o aprendizaje por refuerzo y en particular el algo-ritmo Q-learning, debido a que este tipo de aprendizaje es especialmente indicado para sistemas que interact´uan con ambientes f´ısicos y din´amicos, que deben aprender a alcan-zar objetivos de su interacci´on directa con el ambiente en el que est´an inmersos [6].

El robot recibe informaci´on de la distancia que avanza despu´es de ejecutar una acci´on, y con base en esta infor-maci´on, obtiene un refuerzo seg´un la distancia que logre avanzar al final de cada intento. Para aplicar el algoritmo al robot ´apodo, se defini´o primero el conjunto de estados S que el robot puede percibir. Un estado est´a constituido por una combinaci´on de las posiciones de sus tres articula-ciones. Los movimientos que puede realizar el robot son en realidad continuos. Sin embargo, para aplicar el algoritmo

Q-learning fue necesaria una discretizaci´on de los estados.

Si se tomaran en cuenta todas las posibles posiciones de las articulaciones, digamos una por cada grado que se puede mover el servomotor, el n´umero de estados ser´ıa demasiado grande, del orden de 1803

y el algoritmo ser´ıa inaplicable. Es por esto que solamente fueron tomadas tres posiciones de las articulaciones para representar los estados del robot. Dos ejemplos de estados v´alidos con combinaciones distin-tas de las articulaciones del robot se ilustran en la figura 4.

(a) Estado a1, b3, c2 (b) Estado a2, b1, c3

Figura 4. Ejemplos de dos estados v´alidos.

Elalgoritmo de Q-learning aplicado al robot ´apodo se

describe en el algoritmo 2. Para calcular el refuerzo, se em-ple´o el sonar del robot. El sonar realiza inicialmente una medici´on y obtiene un valor de distancia hacia un objeto de referencia. A partir de ese valor inicial, despu´es de la ejecu-ci´on de cada estado el sonar realiza otra mediejecu-ci´on. Con estos dos valores, el anterior y el actual, se realiza una resta y se compara si la distancia es mayor que un umbral definido. Si es mayor, entonces se obtiene una recompensa de 10, en caso contrario se obtiene una recompensa de 0.

Los valores de la matriz de recompensa se propagan a medida que se pasa por un estado con recompensa. La es-tructura de la matriz se muestra en la figura 5 que ilustra el proceso de aprendizaje. Los valores vrse van actualizando

conforme se llega a un estado con recompensa. La Figura 5 muestra tambi´en c´omo el contenido de la matriz Q∗ se

actualiza de acuerdo al valor obtenido del sonar, que indi-ca si el robot ejecut´o un movimiento hacia un estado que provoque un avance hacia adelante.

Algoritmo 2. Algoritmo de Q-learning

1. Definir la matriz Q∗con dimensiones 27 × 27, que son

todas las posibles combinaciones de los estados que puede ejecutar el robot. Inicializar Q∗con ceros.

2. Seleccionar un estado aleatorio y colocar cada una de las articulaciones del robot en la posici´on correspondiente a dicho estado s.

3. Leer el sonar y obtener una medida de distancia inicial da,

da←obtenerValorSonar()

4. Repetir

4.1. Seleccionar una acci´on aleatoria a y colocar cada una de las articulaciones del robot en la posici´on correspondiente a dicha acci´on.

4.2. Obtener el refuerzo inmediato vr a partir del

va-lor dnobtenido por el sonar que indica si hubo un

avance. dn←obtenerValorSonar() vr=  0 si (da − dn) ≤ 0 10 si (da − dn) > 0 4.3. Asignar da←dn

4.4. Nombrar s’ al estado en el que se encuentra el robot despu´es de ejecutar la acci´on a.

4.5. Identificar en la tabla Q∗, los valores del estado

s’ que tienen valores de recompensa asignados y

obtener el m´aximo de ellos.

4.6. Actualizar la tabla Q∗ para la acci´on ejecutada:

Q(s,a)← γ·max Q(s’,a’) donde γ ∈ [0, 1] e

indi-ca el nivel de confianza que se tiene sobre las accio-nes aprendidas.

4.7. Asignar s←s’.

5. Resultados Experimentales

El robot fue probado en distintos ambientes, con y sin obst´aculos. A continuaci´on se detallan estas pruebas.

5.1.

Desplazamiento

en

una

Superficie

Plana

El primer grupo de pruebas se realiz´o sobre una su-perficie plana empleando el control basado en aprendizaje por refuerzo. En esta ´etapa se ejecut´o el algoritmo de

(5)

Figura 5. Proceso de aprendizaje.

No. Iteraciones Tiempo total 40 2.0 minutos 150 7.5 minutos 200 10.0 minutos 300 15.0 minutos 600 30.0 minutos 1000 50.0 minutos

Cuadro 2. Tiempo empleado por el algoritmo

Q-learningpara distintas iteraciones.

300, 600 y 1000, en todas ellas se obtuvo una secuencia de acciones que provoc´o que el robot avanzara y de esta manera cumpliera la meta planteada. Las pruebas para este algoritmo se dividieron en dos etapas, la primera etapa con-sisti´o en la fase de entrenamiento y la segunda etapa en la ejecuci´on de la secuencia aprendida. Los tiempos de cada una de las pruebas realizadas se reportan en el cuadro 2.

En la figura 6 se muestran distintas etapas de la prueba que se realiz´o al robot con el algoritmo de aprendizaje por refuerzo Q-learning durante 200 iteraciones.

5.2.

Desplazamiento en Superficies

Irre-gulares y con Obst´

aculos

El siguiente grupo de pruebas se realiz´o en superficies irregulares y con obst´aculos empleando el algoritmo de con-trol tradicional basado en onda sinusoidal. Cabe se˜nalar que para estas pruebas, se generaron ondas sinusoidales para permitir al robot contender con ambientes de caracter´ısticas espec´ıficas. Estas caracter´ısticas no pueden ser percibidas por el robot debido a que su equipamiento sensorial no le permite identificar los estados de dichos ambientes, por lo que el aprendizaje por refuerzo no puede aplicarse en estos casos.

La primera prueba de este grupo consisti´o en disponer un obst´aculo de 3 cm de alto en el camino del robot. El robot

(a) t=2 segs.

(b) t= 8 min.

(c) t=10 min.

(d) t=11 min.

Figura 6. Aprendizaje por refuerzo para el robot ´apodo en distintos instantes de tiempo

t. Fase de entrenamiento a) y b). Ejecuci ´on de

secuencias de acciones aprendidas c) y d).

pudo sobrepasar el obst´aculo en un tiempo de 30 segundos. En la Figura 7 se puede apreciar la trayectoria que sigui´o el robot.

Por ´ultimo, se realiz´o una prueba en la que el robot ten´ıa que pasar por una brecha o espacio vac´ıo entre los extremos de dos mesas, una tarea complicada para un robot con lo-comoci´on basada en ruedas. El robot ´apodo la realiz´o co-rrectamente en un tiempo de 10 segundos. En la figura 8 se puede apreciar una secuencia de im´agenes de esta prueba.

6. Conclusiones y Perspectivas

Se dise˜n´o y construy´o un robot ´apodo capaz de des-plazarse de forma rectil´ınea. Se programaron dos tipos dis-tintos de control de las articulaciones del robot. El primer control se bas´o en la generaci´on de una onda sinusoidal y el segundo en aprendizaje por refuerzo. Una de las dificultades de la aplicaci´on de aprendizaje por refuerzo en rob´otica,

(6)

(a) t=1 seg. (b) t=10 segs.

(c) t=20 segs. (d) t=30 segs.

Figura 7. Prueba en un ambiente con un obs-t´aculo.

es la discretizaci´on de los estados del robot. Debido a lo anterior, se propuso una discretizaci´on de los estados del robot tomando en cuenta solamente tres posiciones de las articulaciones. Dicha discretizaci´on permiti´o la aplicaci´on de aprendizaje por refuerzo al problema de locomoci´on de un robot ´apodo.

Por otro lado, en el algoritmo basado en la propagaci´on de una onda sinusoidal, los par´ametros del modelo pueden ser modificados dependiendo del tipo de movimiento desea-do.

En los experimentos realizados se observ´o de manera emp´ırica que, los patrones de movimiento generados por el algoritmo de aprendizaje por refuerzo son similares a los generados por la onda sinusoidal. Como trabajo futuro se trabajar´a en una comparaci´on precisa de dichos patrones de movimiento.

El prototipo de robot presentado en este trabajo no puede girar ni evitar obst´aculos rode´andolos. Como trabajo futuro, redise˜naremos nuestro prototipo integr´andole un mecanis-mo que le permita ejecutar este tipo de mecanis-movimiento. Para el aprendizaje de las acciones involucradas en la evasi´on de obst´aculos, se pretende utilizar de nuevo aprendizaje por re-fuerzo.

El trabajo descrito en esta comunicaci´on forma parte de una l´ınea de investigaci´on interesada en el estudio de formas alternativas de movilidad para robots m´oviles, del Labora-torio de Rob´otica de la Coordinaci´on de Ciencias Computa-cionales del INAOE [1, 2].

(a) t= 0 segs. (b) t= 3 segs.

(c) t= 5 segs. (d) t= 10 segs.

Figura 8. Prueba en un ambiente con brecha.

Agradecimientos

Los primeros dos autores son becarios del Consejo Na-cional de Ciencia y Tecnolog´ıa con n´umeros de registro 201793 y 201668.

Referencias

[1] Alarc´on ´Avila E. (2005) Dise˜no y Construcci´on de una Tarjeta Elect´onica y su Aplicaci´on en el Control de un Robot ´apodo. Tesis de Maestr´ıa en Ciencias Computa-cionales, BUAP. M´exico.

[2] Alarc´on ´Avila E., Mu˜noz Mel´endez A., Rub´ın Falf´an M. (2006) An Inchworm-like Robot Prototype for Ro-bust Exploration. Por publicarse en Proceedings of the

Electronics, Robotics and Automotive Mechanics Con-ference, CERMA 2006, IEEE.

[3] Choset H., Henning W. (1999) A Follow-the-leader Approach to Serpentine Robot Motion Planning.

Jour-nal of Aerospace Engineering, Vol. 12, No. 2, 65-73.

[4] Gonz´alez G´omez J. Aguayo E., Boemo E. (2004) Loco-motion of a Modular Worm-like Robot Using a FPGA-based Embedded MicroBlaze Soft-processor. Climbing

and Walking Robots, Armada M., Gonz´alez de Santos

P. (eds), Springer, 869-878.

[5] Hirose S. (1993) Biologically Inspired Robots: Snake-Like Locomotors and Manipulators. Oxford University Press, UK.

Figure

Actualización...

Referencias

Actualización...