Diferencia entre revisiones de «Tutorial:ODE y robots modulares:Módulo»

De WikiRobotics
Saltar a: navegación, buscar
(Modelo de módulo)
(Modelo de módulo)
Línea 73: Línea 73:
 
== Modelo de módulo ==
 
== Modelo de módulo ==
 
[[Imagen:Module.png|thumb|400px|'''Figura 1''': El módulo empleado en este ejemplo]]
 
[[Imagen:Module.png|thumb|400px|'''Figura 1''': El módulo empleado en este ejemplo]]
 +
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 ==
 
== Funcionamiento del servo ==

Revisión del 08:38 8 ene 2009

Servo screenshot3.png

Simulación de un módulo

Capítulo anterior
Índice
Capítulo siguiente

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:

Servo en posición de 90 grados
Servo en posición de 0 grados
Servo en posición de -90 grados

Vídeo

Servo video thumb.png video.mpg

Modelo de módulo

Figura 1: El módulo empleado en este ejemplo

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

Capítulo anterior
Índice
Capítulo siguiente