Tutorial:ODE y robots modulares:Robot ápodo
Contenido
- 1 Simulación de un robot ápodo del grupo cabeceo-viraje
Simulación de un robot ápodo del grupo cabeceo-viraje
|
|
Introducción
En este ejemplo se simula un robot ápodo del grupo cabeceo-viraje de 16 módulos. El usuario puede establecer los diferentes modos de caminar mediante el teclado: línea recta, desplazamiento lateral, rotación, rodar, girar, etc. Para la generación de todos los movimientos se utiliza la misma técnica de generadores sinusoidales que en el ejemplo de la cocnfiguración PP.
Objetivo
- Mostrar cómo mover un robot ápodo de cualquier número de módulos
Código
Programa principal | |
Creación y dibujo del robot | |
Definición de las constantes. | |
Definición de los prototipos de robot.cpp y las estructuras de datos. |
Compilación
Todos los ejemplos de este tutorial compilan tecleando "make". Sin embargo se describe a continuación cómo se compila directamente usando el GCC:
g++ -Iinclude -c -o snake_ex/snake.o snake_ex/snake.cpp g++ -Iinclude -c -o snake_ex/robot.o snake_ex/robot.cpp g++ -o snake snake_ex/snake.o snake_ex/robot.o libdrawstuff.a -lm -lode -lX11 -lGL -lGLU
Ejecución
Para probar el ejemplo, teclear:
./snake
Además de los mensajes impresos en pantalla por la drawstuff, aparecerá el siguiente menú:
Keys for selecting the gaits: 1: Straight 2: Turning 3: Side-winding 4: Inclined side-winding 5: Flapping 6: S-shaped rotating 7: U-sahped rotating 8: Rolling q: Quit simulation
Mediante las diferentes teclas se pueden seleccionar las 8 maneras de caminar del robot ápodo
Capturas de pantalla
Visualización del robot moviéndose de diferentes maneras:
Vídeo
video.mpg |
Clasificación de robots ápodos
Figura 1: Clasificación de los robots ápodos: grupo cabeceo-cabeceo (izquierda), viraje-viraje (centro) y cabeceo-viraje (derecha) |
Los robots ápodos se pueden clasificar en tres grupos dependiendo de la conexión entre sus módulos, como se muestra en la figura 1. Los grupos son: cabeceo-cabeceo, viraje-viraje y cabeceo-viraje.
En este capítulo se simula la locomoción de un robot ápodo del grupo cabeceo-viraje.
Modelo de robot
El robot está constituido por la unión en cadena de MOD módulos, numerados desde el módulo 0 hasta el MOD-1. Los impares son de cabeceo y los pares de viraje. En la Figura 1 se muestra la geometría de los dos primeros módulos del robot, el 0 y el 1.
El robot está formado por:
- MOD módulos iguales, de masa MASS y dimensiones (W,L,H).
- MOD articulaciones, de cuales las impares son de cabeceo y las pares de viraje. Sus ejes de rotación son el x (1,0,0) y el z (0,0,1) respectivamente.
- MOD+1 cuerpos:
- El izquierdo y derecho están formados por una única geometría hexaédrica, de dimensiones (W,L/2,H) y masa MASS/2
- Los cuerpos centrales están compuestos por la unión de dos geometrías hexaédricas. Tienen masa MASS y dimensiones (W,L,H)
- 2*MOD geometrías, de dimensiones (W,L/2,H). Los cuerpos centrales tiene dos geometrías, denominadas 1 y 2,
Las posiciones de los elementos con respecto al origen de coordenadas son:
Cuerpo izquierdo: | (-,-, -) |
Cuerpo derecho: | (-, -, -) |
Cuerpo central i: | (-, -, -). |
Articulación i | (-,-,-) |
Modelo de control
Espacio de control
Espacio de formas
Explicación del código
Función Robot_new()
Función Robot_Render()
Función servos_sim()
Función sequence_generation()
Funciones Main y Command()
Enlaces
|
|