El montaje será el robot con las ruedas y un sensor de contacto en el centro como vemos en la foto:
En la parte del código, en esta práctica usaremos una nueva forma de programar el robot. Esta forma es mediante comportamientos.
Los comportamientos se heredan de la clase behavior. Hay que implementar tres métodos:
- boolean takeControl(). Devuelve verdadero si se dan las condiciones necesarias para que cierto comportamiento tome el control del robot.
- void action(). El código de este método se ejecuta cuando el comportamiento se activa.
- void suppress(). Este método debe terminar inmediatamente el código que
ejecuta el método action(). Puede terminarlo de inmediato (si es un bucleinfinito, o la ejecución es larga) o esperar a que termine, si la ejecución es
corta.
A lo largo de toda esta práctica vamos a usar los siguientes comportamientos:
Para esta primera parte que consistía en esquivar un obstáculo usaremos andar y evitar, y el árbitro será obstáculos:
Para el comportamiento evitar nos definiremos touch de la clase TouchSensor y viajar de la clase TachoPilot. En take control pondremos si está presionado el sensor para que de control al comportamiento. En supress haremos que el robot se pare, y en action haremos que se pare, retroceda y gire mediante el steer para bordear el obstáculo. Antes y después del steer usamos rotate para que el robot se oriente en su dirección de destino, es decir, que después de esquivar el objeto siga con la dirección que llevaba.
Aquí podemos ver el código:
Aquí podemos ver el vídeo del funcionamiento
No hay comentarios:
Publicar un comentario