Diferencia entre revisiones de «Ejemplo sumo»
(No se muestran 5 ediciones intermedias del mismo usuario) | |||
Línea 1: | Línea 1: | ||
− | A continuación desarrollaremos un programa para permitir al robot Butiá luchar al estilo sumo. | + | A continuación desarrollaremos un programa para permitir al robot Butiá luchar al estilo sumo. Para ello utilizaremos la paleta Butiá que utilizamos comúnmente. |
+ | |||
El sumo de robots, en pocas palabras, trata de una pelea de robots sobre un escenario o dohyo. La idea es dejar al enemigo fuera del dohyo mediante una programación inteligente. En este caso mostraremos un programa simple, pero eficaz. | El sumo de robots, en pocas palabras, trata de una pelea de robots sobre un escenario o dohyo. La idea es dejar al enemigo fuera del dohyo mediante una programación inteligente. En este caso mostraremos un programa simple, pero eficaz. | ||
<center>[[Archivo:Dibujo.PNG|250px]]</center> | <center>[[Archivo:Dibujo.PNG|250px]]</center> | ||
− | Como podemos ver en la imagen, el dohyo está caracterizado por ser de color negro con una línea blanca en el contorno. | + | Como podemos ver en la imagen, el dohyo está caracterizado por ser de color negro con una línea blanca en el contorno. |
+ | |||
+ | Para comenzar, plantearemos los detalles a tener en cuenta y los pasos que el robot debe seguir para ser un completo luchador de sumo: | ||
− | + | [[Archivo:Pseudo.PNG|300px]] | |
En primer lugar, debemos evitar caer del escenario. Para ello utilizaremos el sensor de grises. Crearemos una constante que identifique el valor que nos muestra el sensor cuando se encuentra sobre la zona oscura del dohyo. | En primer lugar, debemos evitar caer del escenario. Para ello utilizaremos el sensor de grises. Crearemos una constante que identifique el valor que nos muestra el sensor cuando se encuentra sobre la zona oscura del dohyo. | ||
+ | |||
+ | <center>[[Archivo:Sin_título-1.png|200px]]</center> | ||
+ | |||
Esta constante es definida por el usuario, ya que debe ser calibrada según el valor arrojado por el modelo de sensor de cada Butiá. | Esta constante es definida por el usuario, ya que debe ser calibrada según el valor arrojado por el modelo de sensor de cada Butiá. | ||
Una vez que tenemos esta constante, indicamos al programa la acción que debe de tomar según los valores arrojados. | Una vez que tenemos esta constante, indicamos al programa la acción que debe de tomar según los valores arrojados. | ||
Línea 15: | Línea 21: | ||
− | Cuando el valor sobrepase | + | Cuando el valor sobrepase nuestra constante, debemos informarle al robot que se encuentra en peligro de caer del dohyo y que debe retirarse de ese lugar a uno más seguro. Para ello, lo hacemos retroceder una distancia de 10 y luego girar 180 grados. |
<center>[[Archivo:Sin_título-2.png|400px]]</center> | <center>[[Archivo:Sin_título-2.png|400px]]</center> | ||
Línea 21: | Línea 27: | ||
SI el valor es menor a nuestra constante, pasaremos a localizar al enemigo. Para ello utilizaremos un razonamiento simple, giramos hasta encontrarlo. Utilizaremos el sensor de distancia, que al indicar un valor menor a 1000, sabremos que nuestro objetivo se encuentra delante del robot. | SI el valor es menor a nuestra constante, pasaremos a localizar al enemigo. Para ello utilizaremos un razonamiento simple, giramos hasta encontrarlo. Utilizaremos el sensor de distancia, que al indicar un valor menor a 1000, sabremos que nuestro objetivo se encuentra delante del robot. | ||
Al tenerlo delante del Butiá procederemos a avanzar hasta interceptarlo y empujarlo, arrojándolo fuera del dohyo. Esto siempre y cuando la distancia sea menor a 1000. De no ser así, nuestro enemigo ya no se encuentra delante del robot y procederemos a buscarlo nuevamente. El programa completo tendría el siguiente aspecto: | Al tenerlo delante del Butiá procederemos a avanzar hasta interceptarlo y empujarlo, arrojándolo fuera del dohyo. Esto siempre y cuando la distancia sea menor a 1000. De no ser así, nuestro enemigo ya no se encuentra delante del robot y procederemos a buscarlo nuevamente. El programa completo tendría el siguiente aspecto: | ||
+ | |||
<center>[[Archivo:Sumo_completo.png|500px]]</center> | <center>[[Archivo:Sumo_completo.png|500px]]</center> | ||
*(Aumentamos, en el comienzo del programa, la velocidad del Butiá para tener más fuerza al empujar). | *(Aumentamos, en el comienzo del programa, la velocidad del Butiá para tener más fuerza al empujar). | ||
+ | |||
+ | ¿Dónde debo colocar los sensores? | ||
+ | |||
+ | <center>[[Archivo:Sensores.png]]</center> | ||
+ | |||
+ | Como podemos ver en la imagen anterior, el sensor de Distancia debe colocarse señalando hacia adelante, en la parte delantera del robot Butiá. Mientras que el sensor de Grises también debe ir colocado en la parte delantera pero señalando hacia abajo. | ||
+ | |||
[http://www.box.net/shared/166qyrrnuuuvojuqvt4f Descargar este ejemplo para TortugarteButiá] | [http://www.box.net/shared/166qyrrnuuuvojuqvt4f Descargar este ejemplo para TortugarteButiá] | ||
Revisión actual del 20:18 2 nov 2011
A continuación desarrollaremos un programa para permitir al robot Butiá luchar al estilo sumo. Para ello utilizaremos la paleta Butiá que utilizamos comúnmente.
El sumo de robots, en pocas palabras, trata de una pelea de robots sobre un escenario o dohyo. La idea es dejar al enemigo fuera del dohyo mediante una programación inteligente. En este caso mostraremos un programa simple, pero eficaz.
Como podemos ver en la imagen, el dohyo está caracterizado por ser de color negro con una línea blanca en el contorno.
Para comenzar, plantearemos los detalles a tener en cuenta y los pasos que el robot debe seguir para ser un completo luchador de sumo:
En primer lugar, debemos evitar caer del escenario. Para ello utilizaremos el sensor de grises. Crearemos una constante que identifique el valor que nos muestra el sensor cuando se encuentra sobre la zona oscura del dohyo.
Esta constante es definida por el usuario, ya que debe ser calibrada según el valor arrojado por el modelo de sensor de cada Butiá. Una vez que tenemos esta constante, indicamos al programa la acción que debe de tomar según los valores arrojados.
Cuando el valor sobrepase nuestra constante, debemos informarle al robot que se encuentra en peligro de caer del dohyo y que debe retirarse de ese lugar a uno más seguro. Para ello, lo hacemos retroceder una distancia de 10 y luego girar 180 grados.
SI el valor es menor a nuestra constante, pasaremos a localizar al enemigo. Para ello utilizaremos un razonamiento simple, giramos hasta encontrarlo. Utilizaremos el sensor de distancia, que al indicar un valor menor a 1000, sabremos que nuestro objetivo se encuentra delante del robot. Al tenerlo delante del Butiá procederemos a avanzar hasta interceptarlo y empujarlo, arrojándolo fuera del dohyo. Esto siempre y cuando la distancia sea menor a 1000. De no ser así, nuestro enemigo ya no se encuentra delante del robot y procederemos a buscarlo nuevamente. El programa completo tendría el siguiente aspecto:
- (Aumentamos, en el comienzo del programa, la velocidad del Butiá para tener más fuerza al empujar).
¿Dónde debo colocar los sensores?
Como podemos ver en la imagen anterior, el sensor de Distancia debe colocarse señalando hacia adelante, en la parte delantera del robot Butiá. Mientras que el sensor de Grises también debe ir colocado en la parte delantera pero señalando hacia abajo.
Descargar este ejemplo para TortugarteButiá
El comportamiento en acción (El programa está cargado en el Butiá Verde):