Robótica Modular y Locomoción: Robots Cube Revolutions y Multicube

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Juan González Gómez

Universidad Rey Juan Carlos (URJC). Madrid. Enero 2006

índice

Introducción: Robótica modular

Módulos Y1

Locomoción de robots ápodos:

Lomoción de configuraciones mínimas

Cube Revolutions

Multicube

Conclusiones y trabajo futuro

Introducción:
Robótica modular

Introducción
Robótica Modular (I)

Construcción de robots a partir de módulos

Diseño centrado en el módulo, no en un robot particular

Uno de los padres fue Mark Yim, investigador del PARC

Nacimiento de la Robótica modular reconfigurable (1994):

¿Por qué no trabajar en una nueva línea de investigación en la que se diseñen robots modulares que se adaptan al terreno, modificando su forma y la manera de desplazarse?

Introducción
Robótica Modular (II)

Polypod: 1994

Módulos con 2 grados libertad

Introducción
Robótica Modular (II)

1997: Polybot G1

Módulos con 1 grado

Primer experimento de reconfiguración simple

Introducción
Robótica Modular (III)

Polybot G1.4

Electrónica y alimentación en el propio módulo

Sensores

PIC16F877

Introducción
Robótica Modular (IV)

Polybot G2

Motor DC

CPU: Power PC 555

Bus Can

Reconfiguración dinámica

Introducción
Robótica Modular (V)

Ultima generación: Polybot G3

5x5x4.5cm

Resumen Polybot

Módulos con 1 DOF

Mecánicamente más simples

Conexión fase-desfase

Reconfiguración Dinámica

Consolidación Robótica Modular Reconfigurable

Módulos Y1

Módulos Y1:
Introducción

Necesario disponer de una plataforma (unos módulos) para investigar en este campo de la robótica

Creados los módulos Y1, inspirados en la primera generación de Polybot.

Los módulos Y1 son LIBRES: los planos están disponibles para que otros investigadores los puedan construir, modificar y distribuir. Además se han diseñado usando sólo herramientas libres

¿Cómo comenzar a investigar en robótica modular?

Módulos Y1:
Características

Material: PVC o metacrilato de 3mm

Servo del tipo Futaba 3003

Dimensiones: 52x52x72mm

Rango de movimiento: 180 grados

Conexión en fase y desfase:

Vídeo

Módulos Y1:
Herramientas diseño

Sólo se han empleado herramientas libres.

Quedan garantizadas las libertades: cualquiera puede estudiar, modificar y distrubir los planos, sin depender de software propietario.

Planos: QCAD

Modelo 3D: Blender

Modulos Y1:
Diseño 3D con Blender

Módulos Y1:
Montaje

Configuraciones: Las diferentes maneras en las que se pueden unir todos los módulos

Las configuraciones más simples con las cadenas

Permiten construir gusanos y serpientes

Misma orientación

Modulos rotados

Módulos Y1:
Configuraciones (I)

Pero se pueden tener otras configuraciones más complejas...

Con bifurcaciones...

Módulos Y1:
Configuraciones (II)

Módulos Y1:
Topologías

1D: Cadenas de módulos

(Gusanos)

Estructuras 2D

Estructuras 3D

Y la pregunta es...

¿Hasta cuánto de complejas?

No hay limitaciones geométricas...

Potencialmente hay infinitas configuraciones...

Las limitaciones que aparecerán será por:

Consumo

Comunicaciones

Cableado

...

Hasta el infinito y más allá...

Módulos Y1:
Configuraciones (III)

La electrónica se sitúa fuera de los módulos

Se utiliza un microprocesador de 8 bits para generar las señales de PWM de posicionamiento de los servos

El micro se conecta al PC por RS-232

Proyecto Stargate

Módulos Y1:
Electrónica

Alimentación

PC

RS-232

PWM

La posición de los servos se controla desde el PC a través de una API en C

Módulos Y1:
API SERVOS8

Servos8

Aplicación

API Servos8

RS-232

Las aplicaciones pueden utilizar los servos como si fuesen periféricos del PC

Esto permite desarrollar algoritmos más potentes.

En la implementación actual, sólo se pueden posicionar hasta 8 servos

Módulos Y1:
CONTROL

¿Cómo definir, almacenar y reproducir una secuencia de movimiento?

En un instante, cada módulo está rotado un cierto ángulo

El estado de mi robot, en un instante, viene determinado por los ángulos de todos sus módulos. Esto lo representamos mediante un vector de estado (o vector de posición angular).

Cada componente del vector contiene el ángulo de cada uno de los módulos:

Módulos Y1:
CONTROL (II)

Una secuencia de movimiento se describe mediante una matriz, en la que cada fila representa un vector de estado en un instante

El controlador sólo tiene que recorrer esta matriz, posicionando los módulos en los ángulos indicados

[-19 -9 24 -4 -22 17 12 -18 ]

[-17 -14 21 4 -25 11 19 -15 ]

[-12 -20 18 11 -25 3 23 -7 ]

[-5 -24 12 17 -22 -4 24 -2 ]

[1 -25 6 21 -17 -12 24 4 ]

[7 -23 -3 25 -11 -18 20 12 ]

[12 -19 -9 24 -4 -22 17 14 ]

[17 -13 -15 21 4 -25 11 19 ]

[20 -6 -21 17 12 -24 2 21 ]

[21 0 -23 12 17 -21 -6 22 ]

[19 9 -24 4 22 -17 -12 18 ]

Vector Instante t1

Vector Instante t2

Vector Instante t3

.

.

.

Vector Instante tn

Módulos Y1:
CONTROL (III)

Para la generación de secuencias manuales y su reproducción se utiliza una aplicación gráfica

Aplicación Star-servos8

Lenguaje C

Librería gráfica: GTK 2.0

Entorno Linux

Módulos Y1:
Trabajos futuros

AUTONOMÍA: Nuevo módulo con la electrónica y alimentación incorporadas. Eliminación de los cables externos.

VERSATILIDAD: Utilizar FPGA's para cada módulo en vez de un procesador convencional

INTERACCIÓN CON ENTORNO: Incluir sensores

RECONFIGURACIÓN MECÁNICA: Módulos capaces de unirse y separarse entre ellos

RECONFIGURACIÓN HARDWARE: Posibilidad de cambiar el hardware en tiempo real, por medio de FPGAs

Locomoción de robots ápodos:

Cube Revolutions:
Mecánica

Configuración: 8 módulos Y1 conectados en fase:

Módulo Y1

Cube Revolutions

Dimensiones: 52x52x576mm:

Cube Revolutions:
Cableado

Dos placas "pasivas" (Matrix)

Se conectan 4 servos a cada una

Interconectadas mediante cable plano de bus

El bus lleva las señales de los 8 servos + la alimentación (VCC y GND)

Cube Revolutions:
Propiedades robots ápodos

Una de las características de los robots ápodos es que pueden cambiar su forma:

Demo

Cube Revolutions:
Problema de la locomoción

¿Cómo conseguir que un robot ápodo se desplace?

Para ello hay que responder a las siguientes preguntas:

1.- ¿Cómo coordinar las articulaciones para que se desplace?

2.- ¿Cómo generar automáticamente las secuencias de movimiento (matrices)?

3.- ¿Cómo controlar el tipo de movimiento y su velocidad?

Cube Revolutions:
Coordinación

¿Cómo coordinar las articulaciones para que se desplace?

En la naturaleza nos encontramos un modelo de propagación de ondas

Cube Revolutions:
Coordinación (II)

Aplicando el modelo de programación de ondas y el algoritmo de ajuste

¿Cómo generar las secuencias de movimiento (matrices)?

Cube Revolutions:
Coordinación (III)

Para cada desplazamiento de la onda se calcula el nuevo vector de estado

Después de desplazar la onda una distancia igual a su longitud de onda, ya se tiene la matriz creada

Visualmente, la manera de generar las matrices de movimiento es:

La animación de esta matriz, sin visualizar las ondas es:

Cube Revolutions:
Coordinación (IV)

Las características del movimiento vienen dadas por la onda aplicada y sus parámetros (amplitud, longitud de onda, frecuencia...)

¿Cómo controlar el tipo de movimiento y su velocidad?

Cube Revolutions:
Software

Demo

Cube Revolutions:
Trabajos futuros

Modelo físico del gusano para la evaluación de las secuencias de movimiento

Optimización de secuencias: ¿Cual es la secuencia de óptima?

Generación de secuencias mediante algoritmos genéticos

Coordinación del movimiento en 2D: Hypercube

Locomoción de configuraciones mínimas:
MULTICUBE

Multicube:
Objetivos

Geométricamente, no hay límite superior al número de módulos a utilizar.

Pero...

¿Cual es la configuración mínima que es capaz de desplazarse tanto en 1D como en 2D?

¿Cómo hay que coordinar los servos para conseguir ese desplazamiento?

Para responder a esas preguntas, se han construido tres configuraciones a las que llamamos Multicube

Multicube:
Configuración PP (Pitch-Pitch)

Pitch axis

Dos módulos Y1 conectados en fase

A pesar de la simplicidad, esta configuración se puede mover en línea recta (1D)

Multicube:
Configuración PP (II)

Los ángulos de cada módulo varían según una onda sinusoidal

Las ondas sólo difieren en la fase

Es precisamente esta fase la que determina la coordinación

1

2

j

2

Asin(

2

p

T

t+

Df

)

=

j

1

Asin(

2

p

T

=

t)

Df

Para la generación de movimiento se ha seguido un enfoque diferente:

Mínimo número de módulos: 2

La mejor coordinación se consigue cuando la fase está comprendida entre 100 y 130 grados.

Tel signo de la fase determina el sentido del movimiento

La velocidad se puede controlar cambiando la amplitud

Resultados:

Multicube:
Configuración PP (III)

Multicube:
Configuración PYP (Pitch-Yaw-Pitch)

Pitch axis

Pitch axis

Yaw Axis

El módulo central está conectado en desfase (rotado 90 grados)

Esta configuración tiene varias maneras de moverse:

Desplazamiento en línea recta (1D)

Describir una trayectoria en arco (2D)

Desplazarse lateralmente (Lateral shift gait)

Rotar lateralmente (Lateral rolling gait)

1

3

2

j

1

Asin(

2

p

T

=

t)

1

2

3

j

3

Asin(

2

p

T

t +

Df

)

=

j

2

0

=

Ángulo de la articulación 2 fijado a 0 grados

Coordinación de las articulaciones 1 y 3 igual que en el caso PP (desfase entre 100 y 130 grados)

Multicube:
Configuración PYP (II)

Desplazamiento en línea recta (1D)

Ángulo de la articulación 2 fijado a un valor diferente de 0 grados

Multicube:
Configuración PYP (III)

Trayectoria en arco (2D)

j

1

Asin(

2

p

T

=

t)

1

2

3

j

3

Asin(

2

p

T

t +

Df

)

=

j

2

0

=

Multicube:
Configuración PYP (IV)

Desplazamiento lateral

1

2

3

j

2

Asin(

2

p

T

t +

)

=

A<=40

Módulos 1 y 3 en fase

Módulo 2 desfasado 90 grados

j

3

=

j

1

p

2

j

1

Asin(

2

p

T

=

t)

Multicube:
Configuración PYP (V)

Rotación lateral

Aplicando la misma coordinación que la del desplazamiento lateral.

Amplitud mayor de 60 grados

El sentido de rotación se modifica cambiando la diferencia de fase con la articulación central.

Multicube:
Configuración 2D en estrella (I)

1

2

3

Ejemplo de una configuración mínima en 2D

Tres módulos Y1 formando un ángulo de 120 grados

El movimiento no es muy bueno. Tipos:

Movimiento en línea recta (1D) a lo largo de 6 direcciones

Rotación paralela al suelo

Multicube:
Configuración 2D en estrella (II)

Tres ondas sinusoidales

Para moverse en la dirección de indicada por la flecha roja:

Módulos 2 y 3: onda en fase

Módulo 1: onda con desfase entre 100 y 130

1

2

3

Movimiento en 1D

Multicube:
Configuración 2D en estrella (III)

Rotación

Tres ondas sinusoidales, desfasadas 120 grados

Movimiento lento de rotación paralelo al suelo

1

2

3

Demostración

Multicube

Configuraciones de tipo cadena (1D)

Con sólo dos módulos se consigue movimiento en 1D

Añadiendo sólo un módulo más, aparecen tres nuevos tipos de movimiento: 2D, desplazamiento lateral y rotación

Configuraciones en 2D

Con sólo 3 módulos se consigue una configuración 2D que puede desplazarse por un plano

Trabajo futuro

¿Configuración mínima en 3D?

Probar otras configuraciones:

Esfera (rolling en 2D)

Cruz

Resumen

¿Dónde está la información?

http://www.iearobotics.com/personal/juan/publicaciones/art12/

Ir a Google

Teclear: Cube Revolutions

Pinchar en voy a tener suerte :-)

Módulos Y1

Ir a Google

Teclear: Módulos Y1

Pinchar en voy a tener suerte :-)

Multicube

Artículo sobre Multicube:

Robótica Modular y Locomoción: Robots Cube Revolutions y Multicube

Escuela Politécnica Superior

Universidad Autónoma de Madrid

Juan González Gómez

Universidad Rey Juan Carlos (URJC). Madrid. Enero 2006

2003-04-25T18:22:37