interface para interacción con robots humanoides
TRANSCRIPT
Resúmen—El objetivo de nuestra investigación es la creación
de una interfaz flexible de interacción y planificación de
movimientos. Por flexible entendemos que tal interfaz sea capaz
de tratar diferentes robots y planificar distintos tipos de
movimientos tales como pasos omnidireccionales, pateo, etc. En
este trabajo se presenta el estado actual de un programa que
sirve para interactuar con el robot humanoide Bioloid
Premium kit en configuración humanoide (HumBioPrem). Se
tiene una visualización de un modelo en realidad virtual del
humanoide en el que se pueden cambiar los colores y los
elementos dibujados, una pestaña para mover individualmente
las articulaciones del robot y otra pestaña para mover las
extremidades del robot resolviendo su cinemática inversa.
Consideramos que el programa presentado en este artículo,
escrito en lenguaje MATLAB es una base importante hacia la
consecución de nuestro objetivo de investigación.
I. INTRODUCCIÓN
OBOCUP es un torneo internacional de robótica que se
viene realizando año con año desde 1997. La
motivación de la RoboCup es impulsar el desarrollo en
Inteligencia Artificial y Robótica. Existen 4 categorías:
Soccer, Rescue, Junior, @Home. La RoboCup rescue se
dedica a robots de búsqueda y rescate en caso de desastres
mientras que la RoboCup @Home considera aplicaciones
del mundo real y la interacción hombre-máquina con robots
autónomos. La Junior RoboCup tiene por objetivo la
participación de estudiantes de niveles primaria y secundaria
e incluye retos enfocados en el aprendizaje de la robótica
[1].
A. Robocup.
La meta en lo que se refiere a Soccer es que un equipo de
robots pueda competir y ganar al campeón del mundo de la
FIFA a mediados del siglo presente; existe un símil de esta
meta con el triunfo de DeepBlue ante Gary Kasparov en una
partida de ajedrez.
Para alcanzar esta meta, robots y agentes autónomos
compiten jugando futbol bajo ciertas condiciones. Existen 5
ligas: Simulation league, Small size league, Middle size
league, Standard platform league, Humanoid league.
Las ligas simulation, small size y middle size league,
consideran agentes y robots que no son humanoides
(principalmente robots con ruedas). En la liga standard se
participa programando el robot humanoide NAO [2].
El reglamento de la liga soccer Humanoid está disponible en
[3]. Dependiendo de su tamaño se puede competir en las
categorías siguientes: Kidsize (robots de 30 a 60 cm),
TeenSize (robots de 100 a 120 cm) y AdultSize (robots de
* Universidad Politécnica de Sinaloa. Email de contacto: jnunez@
upsin.edu.mx).
más de 130 cm). La intención de nuestro equipo de
investigación es participar en la categoría Kidsize en la
RoboCup 2012 a realizarse en México.
B. Robocup soccer kid size.
Para cumplir tal compromiso, nos basaremos en el robot
humanoide Bioloid de ROBOTIS [4] y probablemente en el
KH3-3HV de KONDO [5]. El robot HumBioPrem fue
seleccionado y adquirido ya que se tiene experiencia en su
manejo y programación [6], [7], [8] y el KH3-3HV debido a
recomendaciones en foros de internet y para tener un punto
de comparación para investigaciones futuras. Consideramos
que son dos prototipos adecuados para iniciar trabajos sobre
el juego de futbol de robots humanoides, además de que
tiene un costo accesible.
Para participar en el torneo RoboCup del próximo año a
llevarse a cabo en World Trade Center, se dividió el trabajo
en tres áreas: Manejo de Hardware, Visión y Locomoción.
La primer área encargada de armar adaptar y mejorar el
robot HumBioPrem y el KH-3HV, la segunda de localizar el
balón y las porterías y la tercera del caminado y pateo del
robot en situaciones de juego. Asimismo, se está realizando
un esfuerzo por concretar sinergias con otros laboratorios,
expertos en tales temáticas.
C. Objetivo del artículo.
El trabajo presentado en este artículo se enmarca en la
locomoción de un robot futbolista y presenta un programa
para la interacción entre el usuario y el robot. Hay dos
propósitos esenciales: El primero es entender la estructura
del hardware a manejar desde un punto de vista de robótica y
el segundo es el de generar el software en sí, lo que nos
Interface para interacción con robots humanoides
Víctor Núñez*, Josué Sapiens*, Dora Rodríguez*, Abraham Briceño*, Víctor Rodríguez*.
R
Fig. 1. El programa presentado en este artículo, visualiza el modelo en realidad virtual del robot Bioloid premium kit en configuración
humanoide.
facilitará la tarea de parametrizar movimientos, optimizarlos
y programarlos. En la siguiente sección de éste artículo,
describiremos el robot Bioloid Premium kit y el software
RoboPlus de Robotis, en la tercer sección tratamos la
estructura y algunos detalles de nuestra interface, en la
cuarta sección se detalla la parte de cinemática inversa (IK)
del robot; la quinta sección presenta el software operando
conectado al robot Bioloid y finalmente concluiremos y
mencionaremos las tareas pendientes en la sexta sección.
II. HARDWARE Y SOFTWARE ROBOTIS
El kit Bioloid Premium de ROBOTIS, contiene una unidad
de control llamada CM-510 basada en el microcontrolador
ATMEGA 2561, 18 servomotores dynamixel AX-12,
Frames o partes de plástico para formar los robots, una
unidad USB2Dynamixel, Baterias Li-Po de 11.1 V @ 1100
mA, un Giroscopio de 2 ejes, Un control Remoto, Receptor
IR, módulo de comunicación zigbee, un medidor de
distancia y un sensor IR para detección de obstáculos. La
Fig. 2 muestra el Bioloid Premium Kit.
El CM-510 puede conectarse con los dynamixels en cadena
margarita (daisy chain) con una velocidad de 1 MBaudio,
cada motor en la cadena tiene un numero de ID único. La
unidad de control, tiene 6 puertos en E/S de propósito
general que pueden ser configurados como convertidores
análogo/digital, interface para zigbee ó receptor IR,
micrófono y buzzer integrados, y 5 conectores para cadenas
de dynamixels.
Los servomotores dynamixel AX-12 tienen reductores de
velocidad por engranes de plástico con un ratio de 1/254,
torque máximo de 15 Kg.cm y una velocidad de 59 rmp. En
[9], [10] se estudia el comportamiento de estos dispositivos a
fondo. Cabe mencionar que para nuestros propósitos se
adquirieron motores AX-18 que son compatibles físicamente
y lógicamente con los AX-12 pero que tienen un torque de
18 Kg.cm y una velocidad de 97 rpm.
El robot se programa mediante movimientos y
comportamientos, una vez programado se puede
interaccionar con el robot por medio del control remoto, de
los botones del CM-510. Los programas Task y Manager
sirven para estas dos tareas respectivamente.
Para controlar y monitorear el HumBioPrem en línea desde
una laptop o PC, se conecta el ordenador al CM-510 por
cable serial, con una velocidad de 57.6 KBaudios; Los
programas Manger y Terminal pueden interactuar con el
CM-510 o con los dynamixel de esta forma. Un quinto
programa: Dynamixel wizard, permite la interacción con los
dynamixels conectados en cadena margarita, sin pasar por el
CM-510 con un cable especial, en modo TTL y a una
velocidad de 1 MBaudio.
Los 5 programas mencionados forman parte de la suite
RoboPlus cuya ventana principal se muestra en la Fig, 2. A
continuación describiremos con un poco mas de detalle el
programa Motion y justificaremos la creación de un software
propio para la creación de movimientos, el cual se detalla en
la sección siguiente.
A. Robotis Motion
El programa Motion sirve para crear y editar archivos que
contienen la información que especifica el movimiento del
robot. Estos archivos tienen la extensión .mtn y pueden ser
abiertos (además de con el programa Motion) con un editor
de textos para ver su contenido.
Al inicio del archivo se especifica el número de motores
activos con que cuenta un robot dado; esto se hace por
medio de un conjunto de 25 valores. Para el caso del
HumBioPrem el archivo bio_prm_humanoidtypea_en.mtn
(movimientos programados de fabrica) especifica: enable=0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0,
lo que indica la presencia de servomotores
dynamixels con número de ID del 1 al 18. Es importante
notar que para otros robots que es posible armar con el kit se
contará con un número de motores diferente y que los
vectores compliance y pose (que se explican enseguida)
tienen 25 valores de los cuales solo se especifican los que
corresponden con un valor presente (1) especificado por el
enable.
La información que contiene enable puede expresarse
matemáticamente como:
{
Eq. 1
con { }.
Fig. 2. El Bioloid Premium kit ensamblado en configuración
humanoide. Es posible formar otros robots: araña, dinosaurio, perro,
escorpión etc.
Fig. 3. La suite RoboPlus tiene 5 programas: Task, Terminal,
Manager, Dynamixel Wizard, Motion; además de la ayuda.
El numero máximo de motores presentes en caso específico
de la lógica de programación del kit Bioloid es 25 y el vector
enable denotado por tiene 25 valores que indican si el
motor con la ID correspondiente al subíndice está conectado
a la unidad de control CM-510.
El movimiento de un robot se especifica mediante páginas,
que están delimitadas por las palabras page_begin y
page_end. El límite de páginas es de 255 y se numeran
consecutivamente a partir del 0. El archivo .mtn contiene las
255 páginas aunque pueden haber páginas vacías.
La página contiene campo name cuyo valor puede ser nulo o
una cadena de caracteres que especifique el nombre de la
página, un campo compliance que especifica la rigidez que
tendrá cada servomotor correspondiente al índice i (Eq. 1) y
que puede variar de 0 a 1024; un valor típico utilizado en los
movimientos pregrabados por el fabricante es 5. El campo
play_param especifica 5 parámetros del movimiento
contenido en la pagina. Estos 5 parámetros se especifican a
continuación:
Next: Un número (de 1 a 255) correspondiente a una
pagina existente dentro del mismo archivo y que será
reproducida enseguida de la página actual. En caso de que
este parámetro sea 0, el movimiento del robot se detiene al
finalizar la pagina en curso.
Exit: Este parámetro indica la página en la que finaliza el
movimiento al presionar stop. Si se está, por ejemplo
ejecutando una zancada (pagina k) y deseamos que
forzosamente el robot termine con los pies juntos, después
de la zancada se debe realizar una media zancada, el
parámetro exit indicará la página de salida del movimiento,
es decir la media zancada (pagina m), donde k y m son dos
números cualesquiera correspondientes a paginas distintas.
Repeat Time: Es el número de veces que se repite el
movimiento especificado en una página (valor [1] en la Eq.
2).
Speed rate: Indica la rapidez con la que el movimiento
descrito en una página será realizado (valor [1.5] en la Eq.2).
Inertial Force: Es un parámetro que no tiene importancia
significativa para la mayoría de las páginas.
El campo paso contiene de 1 a 7 vectores de 25 valores
que indican las posiciones deseadas de los motores (de 0 a
1024), y dos parámetros:
Pausa: Es el tiempo que durará la pose del robot, es decir
el tiempo que se mantendrá estático el robot una vez
alcanzadas las posiciones angulares de los motores (valor
[2.98] en la Eq 2).
Tiempo: El tiempo que tomará para que todos los motores
lleguen a la posición deseada (valor [2.98] en la Eq. 2).
Los valores de pausa y tiempo correspondiente a cada
vector presente en un paso se suman y junto con los
parámetros repeat time y speed rate permiten calcular el
tiempo real que lleva cada página es calculado de la forma
siguiente. Como ejemplo se tiene el siguiente cálculo que se
tomó de la página Bravo del archivo
bio_prm_humanoidtypea_en que provee ROBOTIS para el
movimiento del HumBioPrem
Real Time = (3.98sec / 1.5) x 1 = 0min 2.65sec Eq.2
Robotis, la empresa fabricante del kit de robótica Bioloid,
propone pues esta estructura de archivo para almacenar los
posibles movimientos del robot. Para generar estos archivos
se puede trabajar en línea con el robot real o solo con los
valores de los ángulos y una visualización 3d del prototipo
de robot adecuado (humanoide en este caso). El software
Motion tiene además un módulo de cinemática inversa (IK)
para manos y pies del robot. Desafortunadamente la
visualización del robot presenta siempre la cadera fija, no se
tiene acceso al algoritmo de IK y no se cuenta con una
interacción directa de cada extremidad del robot. Al diseñar
y programar un software propio de código abierto en Matlab
estas áreas de oportunidad son aprovechadas y se logra la
generación de conocimiento e innovación.
III. INTERACT
La interfaz que hemos diseñado cuenta con 6 paneles o
pestañas los cuales se describen en los párrafos siguientes.
Edit Robot: Esta es una pestaña que nos da la posibilidad de
cambiar los elementos de despliegue en realidad virtual del
modelo del robot.
Interact: En esta pestaña se puede interaccionar con cada
uno de los 25 motores del robot, fijando su posición deseada
y la velocidad con que el robot real (en caso de estar
conectado) alcanzará su consigna de posición angular. El
modelo virtual del robot realiza también estos movimientos.
IK: Como se muestra en la Fig. 4, en este panel se controlan
las articulaciones del HumBioPrem tanto en el espacio de
juntas así como en el espacio cartesiano.
Motion: Es una sección que condensará la programación que
presenta el programa Motion de ROBOTIS para la lectura y
edición de archivos .mtn.
Walk: Se dan los parámetros del caminado (omnidireccional)
para la marcha del robot humanoide que se está tratando.
Está basado en el software TrayArtBio que se describe en [].
Robot Terminal: Esta parte de nuestro modulo de interacción
con un Robot Humanoide (en este caso el HumBioPrem)
dará acceso a nivel de comandos al microcontrolador del
robot.
En la continuación de esta sección se describirán los tres
primeros paneles; que han sido ya programados y probados.
Fig. 5. Edit Robot permite customizar la apariencia del modelo
virtual del robot humanoide.
A. Edit Robot
La Fig. 5 muestra la visualización del panel Edit Robot del
programa Interact. Está basado en el manejo de un mundo
vrml por medio del lenguaje Matlab.
En la parte izquierda del panel (Transparency) se
seleccionan los elementos del robot y el grado de
transparencia de dichos elementos (entre 0 y 1). Gracias a
vrml es posible hacer desaparecer o aparecer ciertos
elementos del mundo virtual: Robot, la cabeza y el pecho, la
cadena cinemática, los ejes del motor, un marco ortogonal
asociado a cada articulación y a las extremidades, los marcos
de origen y los centros de masa (CoM’s). En la parte derecha
del panel (Color) es posible elegir el color de los mismos
elementos. La programación de este panel utiliza
básicamente los comandos de MatLab: uipanel,
uibuttongroup, además de uicontrol de estilo radiobutton,
slider y edit.
B. Interact
La Fig. 6 muestra la visualización del panel Interact. Este
panel contiene 8 botones y N sliders para manipular los
motores del robot en cuestión. Para el caso mostrado se trata
del HumBioPrem.
El botón [Connect Robot] establece el intercambio de
información entre el programa y el robot humanoide;
también habilita los botones: [Get Angles], [Set Angles],
[All motors on], [All motors off] así como los sliders de
velocidad para cada uno de los motores. Los botones [Go
0´s], [Go Vertical], [Go Home], sirven para enviar al robot
virtual y en su caso al robot real a ciertas posturas
especificas. Los límites articulares naturales (sin considerar
auto colisión) de los 18 motores aparecen en la Tabla I.
Tabla I.- Limites de las articulaciones del robot Bioloid Humanoide
Premium
Motor
ID
Min.
(°)
Max.
(°)
Motor
ID
Min.
(°)
Max.
(°)
01 -150 150 02 -150 150
03 -100 90 04 -90 100
05 -100 100 06 -100 100
07 -95 10 08 -10 95
09 -73 50 10 -50 73
11 -128 23 12 -23 128
13 -142 0 14 0 142
15 -23 49 16 -99 23
17 -54 74 18 -74 54
Para este panel se usaron las instrucciones de Matlab:
uipanel, y uicontrol de estilo pushbutton, togglebutton,
text, slider y edit.
IV. EL PANEL IK
La visualización del panel IK se muestra en la Fig. 7. La
idea principal es que el movimiento de las articulaciones del
robot en cuestión se realice no de forma individual sino de
forma coordinada; así pues la velocidad de los motores es la
misma para cada articulación de la misma extremidad.
Además la posición (y orientación para las piernas) en
espacio de trabajo pueden ser fijadas por el usuario. Nótense
los recuadros Brazo Derecho, Brazo Izquierdo, Pierna
Derecha y Pierna Izquierda.
La solución de la cinemática inversa de las piernas del
Bioloid está basada en [ (6)]. El recuadro Support permite la
operación del robot en doble soporte, o apoyado en uno de
sus pies ya sea el derecho o el izquierdo. Si ninguno de los
botones esta activo, la cadera se considera fija y es posible
desplazar los pies en posición y orientación (el recuadro
Hips de posición de la cadera no está activo).
Al activar cualquiera de los botones de Suport, los controles
del recuadro Hips se activan para poder desplazar la cadera.
En doble apoyo solo se puede desplazar la cadera, en apoyo
izquierdo se puede desplazar la cadera y el pie derecho y en
el caso de apoyo derecho se desplazaran la cadera y el pie
derecho.
En este sentido es necesario decir que las restricciones
holonómicas aplicadas a los robots humanoides -que
provocan que una o varias extremidades del robot se
encuentren fijas- son un tema de investigación aun de
actualidad. Más aún cuando se visualiza considerar un
modelo dinámico e híbrido que considere fases de apoyo a
pies planos, con giro sobre los bordes del pie, impactos y
fases aéreas.
Desde un punto de vista puramente algorítmico es suficiente
calcular la cinemática directa y en seguida la inversa para
colocar la cadera en un punto deseado considerando un pie
fijo en cierto plano de apoyo.
El panel de Symmetry es útil para realizar movimientos
simétricos de brazos y piernas, de esta forma es posible
hacer movimientos coordinados de brazos y piernas: ya sea
con ambas manos (pies) hacia adelante, una hacia adelante y
otra hacia atrás, una hacia la izquierda y la otra a la derecha
o ambas a la izquierda.
Para tener una visualización del robot, se realizó el
despliegue de la cadena cinemática del Bioloid en lenguaje
Matlab y se implementaron tres botones para cambiar el
punto de vista Lateral, en Perspectiva, Frontal o Superior.
La programación de este panel fue la más compleja y se
emplearon los comandos descritos en las otras secciones:
paneles, botoneras, sliders, plots, etc. Cabe mencionar que
toda la GUI fue realizada en código y no dibujada y
compilada.
Fig. 6. Interact permite interactuar con el robot virtual o real por
medio de la posición y la velocidad de cada uno de sus motores.
La interfaz se conecta al Robot a través del cable serial
colocando el CM-510 en Modo Toss, lo que significa que el
ATMEGA 2651 funcionara solo como buffer entre el
ordenador y los dynamixels [7].
A. Motion, Walk y Robot Terminal
Las pestañas Motion, Walk y Robot Terminal, están
actualmente desarrollándose. La primera servirá para
recuperar las poses editadas en IK y generar archivos .mtn
que puedan ser enviados directamente al robot Bioloid; la
segunda estará basada en TrayArtBio [11] y sera de utilidad
para parametrizar y posiblemente optimizar el caminado
omnidireccional del HumBioPrem y la tercera nos permitirá
una interacción a nivel código con el robot HumBioPrem.
V. EXPERIMENTOS
La Fig. 7 muestra la operación del Software Humanoid
Interact con un robot HumBioPrem. En [12] [13] está
disponible un video de la operación del software Humanoid
Interact.
En primer lugar se muestra la operación del panel Robot
Edit para cambiar la apariencia del robot en realidad virtual.
La parte de interact se utiliza para mover las articulaciones
del robot virtual y finalmente el panel de IK permite el
mover las extremidades del robot en el espacio de trabajo
tanto en posición (x, y, z) cartesiana como en orientación (r,
p, y) roll pitch yaw.
VI. CONCLUSIONES
Con el fin de participar en la RoboCup KidSize, se trabaja
con el kit de robótica de ROBOTIS Bioloid Premium. La
parte de locomoción requiere una comprensión profunda de
la estructura cinemática para llegar a tener caminados y
movimientos que sean rápidos y estables; esta será una de
las bases para una participación competitiva en RoboCup de
un equipo de futbol basado en el HumBioPrem. En este
sentido hemos realizado un software de interacción con el
robot HumBioPrem que permite mover cada una de sus
articulaciones y desplazar sus extremidades resolviendo la
cinemática inversa. En este artículo presentamos el software
Humanoid Interact y delineamos los paneles Motion, Walk y
Robot Terminal que se consideran trabajos a futuros y que
forman parte integral del software que estamos diseñando y
programando. Otro trabajo a futuro es la inclusión de más
robots humanoides. Los movimientos pueden ser
visualizados en un modelo en realidad virtual del robot y ser
trabajados en línea con el robot real.
REFERENCIAS
[1] The RoboCup Federation (2011). RoboCup. Robo Cup Main Page
[Online]. Available: http://www.robocup.org/. [2] Gouaillier, D., Hugel, V., Blazevic, P., Kilner, C., Monceaux, J.,
Lafourcade, P.. (2008). The NAO humanoid: a combination of
performance and affordability. submitted to IEEE Transactions on Robotics, currently at Computer Research Repository (CoRR).
[3] The RoboCup Federation. (2011). Humanoid League Rules and Set
Up. RoboCup Humaoid League. [Online]: http://www.tzi.de/humanoid/pub/Website/Downloads/HumanoidLeag
ueRules2011.pdf
[4] Robotis (2011). Bioloid. Robotis website. [Online]. http://www.robotis.com/xe/bioloid_en.
[5] Robosavvy (2011). KHR-3HV Humanoid Robot Kit. Robosavvy
online store. [Online] http://robosavvy.com/store/product_info.php/products_id/554.
Fig. 7. Pestaña de la cinemática inversa. Las cuatro extremidades pueden realizar un control en espacio de trabajo (coordenadas cartesianas) x, y, z
de manos y pies; las piernas tienen los grados de libertad suficientes para controlar también la orientación deseada (ángulos de Euler) r, p , y.
Fig. 6. Interact permite interactuar con el robot virtual o real por
medio de la posición y la velocidad de cada uno de sus motores.
[6] Pámanes, J. A., J. Nuñez, J. V. y Guzmán, J. A. (2009). Un nuevo
enfoque sobre la cinemática inversa de robots bípedos y su aplicación al robot bioloid. Memorias del 9° Congreso Iberoamericano de
Ingeniería Mecánica. ISBN 978-84-692-8516-9. Palma de mallorca,
España. [7] Nunez, V., Olvera, L. I. y A., Pámanes J. Estudio teórico y
experimental del equilibrio de la marcha del robot humanoide bioloid
(2009). Actas del XI Congreso Mexicano de Robótica. Celaya, México.
[8] Nunez, V., Olvera, L. y Pámanes, A.(2011). Simulation and
experimentation of walking of the bioloid humanoid robot. In Proceddings of the 13th World congress in mechanism and machine
science(IFToMM).Guanajuato México.
[9] Teodoro, P. (2007). Humanoid Robot, Development of a simulation environment of an entertainment humanoid robot. Master Thesis en el
Instituto Superior Tecnico de la Universidade Técnica de Lisboa.
[10] Mensink, Arno (2008). Characterization and modeling of a Dynamixel servo. Trabajo Individual de Investigación en el Electrical
Engineering Control Engineeringde la University of Twente.
[11] Olvera, Luis I., Nuñez, J. V. y Pámanes, J. A. (2009). Evaluación experimental de patrones de marcha cicloidales en el robot humanoide
bioloid. . Memorias del 9° Congreso Iberoamericano de Ingeniería
Mecánica (cibim9). Palma de mallorca, España. [12] Nuñez, J. V. (2011) . Humanoid Interact 01. Video ilustrativo de
investigación .Universidad Politecnica de Sinaloa. [Online].
http://www.youtube.com/watch?v=otZetkodHFo. [13] Nuñez, J. V. (2011) . Humanoid Interact 02. Video ilustrativo de
investigación .Universidad Politecnica de Sinaloa. [Online]. http://www.youtube.com/watch?v=lsm7_Ee9m4E