Buscar este blog

Vistas de página en total

martes, 13 de diciembre de 2011

PROGRAMACIÓN DE UN ROBOT HEXÁPODO

SECUENCIA DE MARCHA DEL HEXÁPODO


  • Gateo 

Cuando se haya construido el hexápodo, es el momento para hacerlo caminar. Un método de caminar hacia delante con las piernas se llama gateo. Los animales o robots con muchos grados de libertad tienen una variedad de movimientos disponibles. Los seres humanos pueden caminar, correr, brincar o saltar y los caballos pueden caminar, trotar, galopar, y así sucesivamente. Sin embargo el hexápodo es tan simple que sólo tiene un caminar para el movimiento hacia adelante, llamado marcha trípode

En la marcha trípode, el hexápodo tiene tres pies en contacto con el suelo en todo momento: la parte delantera y patas traseras de un lado y la pierna del medio en el otro lado. El ángulo del servo medio determina de qué lado está en marcha y de qué lado está abajo. Se logra el movimiento hacia adelante, empujando las extremidades hacia atrás contra el suelo mientras los otras patas avanzan. Entonces, el hexápodo cambia su peso a los otras tres patas y se mueve hacia adelante de la misma manera. Continuamente cambiando su peso con las patas del medio, después de mover el pie levantado hacia adelante, este camina hacia adelante. 

  •  Caminando hacia adelante con el Centro de Control Maestro 
Se puede crear secuencias de movimiento utilizando la función “Sequence” del Centro de Control Maestro. Luego utilizar los controles de la ficha “Status” para mover el hexápodo en cada una de estas cuatro posiciones, pulsando el botón "Save Frame" permitirá guardar una secuencia.


Frame 0 
Delantera derecha, delantera trasera y la pata izquierda media deben tocar el suelo.

 

Frame 1 
Las patas traseras se mueven hacia atrás mientras que las patas delanteras se mueven hacia adelante.

 

Frame 2 
El peso se desplaza hacia el otro trípode.


 

Frame 3 
Las patas traseras se mueven hacia atrás mientras que las patas delanteras se mueven hacia adelante.

 

En las imágenes anteriores del Centro de Control Maestro, se puede observar que los servos están siempre en sus valores máximos o mínimos. Previamente se debe tener configurados unos valores seguros que no haga que el servo realice un movimiento extraño. Sus números podrían ser ligeramente diferentes de los que se muestran aquí. Si se han ensamblado los servos con una configuración diferente o han sido conectados en puertos diferentes. Obviamente, se tendrán diferentes ajustes para cada frame. 

En la ficha “Sequence”, ahora se debería tener cuatro frames guardados. Seleccionar "Play in a loop", y reproducir la secuencia para ver el paseo del hexápodo. Cambiar el nombre de la secuencia a "forward" antes de continuar. 


  • Caminando hacia adelante de forma autónoma 
Pulsar en el botón "Copy Sequence to Script" para convertir la secuencia en un script que puede ser guardado en el Maestro. Seleccionar la opción "Run script on startup" de la ficha “Script” y aplicar la configuración, automáticamente el hexápodo empezará a caminar. Ahora se debe desconectar el cable USB y permitir que camine por su cuenta. 

Volver a conectar el cable USB y hacer clic en "Stop script" o desactivar la opción "Run script on startup", opción para conseguir que deje de caminar. 


  • Hacia atrás y Gateo de giro 
En la ficha “Status”, volver a empezar con el Frame 0, pero con la secuencia de movimientos en sentido contrario para llegar caminando al revés: Frame 0, Frame 3, Frame 2, entonces el Frame 1. Guardar esta secuencia con el nombre de "backwards", y comprobar que el hexápodo se mueva hacia atrás. 

El giro es diferente. Para crear secuencias de giro, se tendrá que mover todo el frente y las patas traseras hacia adelante o hacia atrás juntas, en lugar de mover ambos lados en direcciones opuestas. Intentar, y guardar dos secuencias más: "right" y "left", verificando que las dos secuencias funcionen correctamente. Ahora se podrá programar el hexápodo para evitar los obstáculos.


USO DE UN SCRIPT PARA EVITAR OBSTÁCULOS

El Maestro Micro tiene un lenguaje de programación interno que puede almacenar secuencias, leer sensores, y unirlo todo para formar comportamientos inteligentes. Creando al hexápodo verdaderamente autónomo. 

Una vez que se hayan establecido todos los pasos básicos, borrar el script, luego hacer clic en la opción "Copy All Sequences to Script" en la pestaña de secuencia. Este botón añade un conjunto de subrutinas que se pueden utilizar para acceder a los diferentes gateos desde un script. A continuación, puedes nombrar a las subrutinas desde tu script de la siguiente manera:

1
2
3
4
begin
  forward
  left
repeat

Por ejemplo, hará que el hexápodo se mueva varias veces hacia adelante y luego gire a la izquierda, una y otra vez. Es probable que desee tener en cuenta las lecturas del sensor, que se puede acceder usando el comando GET_POSITION. He aquí un ejemplo de un programa muy simple que utiliza la lectura de los sensores para tratar de evitar los objetos. Personalizar esto para conseguir el comportamiento que quieras.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
start:
  # back up if both sensors see an object
  left_sensor right_sensor logical_and
  if back back back goto start endif
 
  # back up and turn right if the left sensor sees an object
  left_sensor if back right right right goto start endif
 
  # back up and turn left if the right sensor sees an object
  right_sensor if back left left left goto start endif
 
  # otherwise, if there is nothing ahead, walk forward
  forward
  goto start
 
# returns true if the left sensor sees an object
sub left_sensor
  4 get_position 512 less_than
  return
 
# returns true if the right sensor sees an object
sub right_sensor
  3 get_position 512 less_than
  return
 
### Sequence subroutines: ###
 
# back
sub back
  100 4992 5312 5056 frame_0_1_2 # Frame 0
  120 7168 6976 frame_0_2 # Frame 1
  100 6528 frame_1 # Frame 2
  120 4992 5056 frame_0_2 # Frame 3
  return
# forward
sub forward
  100 7168 5312 6976 frame_0_1_2 # Frame 1
  120 4992 5056 frame_0_2 # Frame 2
  100 6528 frame_1 # Frame 3
  120 7168 6976 frame_0_2 # Frame 0
  return
# left
sub left
  100 7168 5312 5056 frame_0_1_2 # Frame 0
  150 4992 6976 frame_0_2 # Frame 1
  100 6528 frame_1 # Frame 2
  150 7168 5056 frame_0_2 # Frame 3
  return
# right
sub right
  100 4992 5312 6976 frame_0_1_2 # Frame 1
  120 7168 5056 frame_0_2 # Frame 2
  100 6528 frame_1 # Frame 3
  120 4992 6976 frame_0_2 # Frame 0
  return
 
sub frame_0_1_2
  2 servo 1 servo 0 servo delay
  return
 
sub frame_0_2
  2 servo 0 servo delay
  return
 
sub frame_1
  1 servo delay
  return

No hay comentarios:

Publicar un comentario