Tutorial:ODE y robots modulares:Módulo
Contenido
Simulación de un módulo
|
|
|
Introducción
El siguiente paso para empezar a simular robots modulares es saber cómo implementar un servo. Construiremos un módulo constituido por dos cuerpos unidos mediante un servo. En la simulación de ejemplo, el usuario podrá establecer las posiciones de -90, 90 y 0 grados para este servo y verá cómo varían las posiciones relativas de los dos cuerpos.
Objetivo
- Aprender a simular un servo y construir nuestro primer módulo
Código
Programa principal | |
Creación y dibujo del módulo | |
Definición de las constantes. | |
Definición de los prototipos de modulo.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 servo_ex/servo.o servo_ex/servo.cpp g++ -Iinclude -c -o servo_ex/module.o servo_ex/module.cpp g++ -o servo servo_ex/servo.o servo_ex/module.o libdrawstuff.a -lm -lode -lX11 -lm -lGL -lGLU
Ejecución
Para probar el ejemplo, teclear:
./servo
Además de los mensajes impresos en pantalla por la drawstuff, aparecerá el siguiente menú:
Keys for moving the servo: 1: Set the servo angle to 90 degrees 2: Set the servo angle to 0 degrees 3: Set the servo angle to -90 degrees q: Quit
Por medio de las teclas '1', '2' y '3' el usuario puede establecer la posición del servo a 90, 0 y -90 grados respectivamente.
Capturas de pantalla
Visualización del módulo en las tres posiciones:
Vídeo
![]() |
video.mpg |
Modelo de módulo
El módulo está formado por dos cuerpos, que denominaremos izquierdo y derecho. Tienen diferente masa y longitud, pero la altura y anchura son las mismas.
- Cuerpo izquierdo:
- Masa: MASS0
- Dimensiones: W x L0 x H
- Cuerpo derecho:
- Masa: MASS1
- Dimensiones: W x L1 x H
Funcionamiento del servo
Explicación del código
Enlaces
|
|
|