martes, 25 de marzo de 2008

Manual: Cómo construir y programar un robot de sumo

CÓMO CONSTRUIR Y PROGRAMAR UN ROBOT DE SUMO PARA UN CONCURSO DE MICROBÓTICA


Si hemos decidido participar en uno de estos concursos (repartidos por toda España), tenemos que preparar bien nuestro microbot, para tratar de conseguir un rendimiento óptimo. Para ello, es bueno seguir ciertas directrices, que nos facilitarán el trabajo y probablemente nos ayuden a conseguir un mejor resultado. Yo hice esto y lo considero de gran ayuda.

1. Leer las reglas y plantear los objetivos a realizar:

Es decir, en que consiste la prueba, el objetivo de la prueba. Para ello es necesario leer las reglas ya que no se puede diseñar cualquier cosa, sino que normalmente las reglas imponen ciertas restricciones de peso, tamaño, etc. Dependiendo de la prueba que sea, habrá que lograr una u otra cosa. La normativa de sumo del concurso de microbots de la universidad de Deusto: http://www.microbots.deusto.es/normativas/NormativaSumo.pdf


Por ejemplo, aquí hay medidas límite (20 x 20, pero sin límite de altura) y peso (máximo 3 Kg.). Además no se puede dañar al robot contrario, ni usar nada arrojadizo… El ring mide 175 cm de diámetro y es negro con una línea blanca delimitando el borde (para no salirse). Además el robot debe esperar 5 segundos sin moverse antes de empezar. En sumo, el objetivo es echar del ring al contrario, antes de que el te eche a ti.

Webs de concursos:
http://www.microbots.deusto.es/
http://aess.upc.es/index.php
http://www.madridbot.org/


Pista de sumo


2. Brainstorm:

Esto es una tormenta de ideas. Hay que tener en cuenta la prueba y apuntar y anotar todas las ideas que se nos ocurran, aunque parezcan descabelladas, ya se rechazarán después. Si ya tienes cierta experiencia esto resultará más fácil, si eres inexperto, puedes preguntarle a alguien o informarte a través de Internet. Este es uno de los pasos más importantes, las ideas originales pueden ser realmente útiles. Esto dependerá obviamente de la prueba a la que haya que presentarse, por ello es muy importante conocer las reglas para poder aprovecharlas mejor, pero sin infringirlas.

3. Bocetos y diseños previos:

Una vez tengamos ya las ideas acerca de cómo va a ser el robot, hay que empezar a diseñar cada uno de los sistemas por separado, y después hacer un boceto global de todo el robot. Así observaremos mejor el resultado final, esto se puede hacer tanto en papel como en diseños en Autocad u otro programa de diseño (incluso el Paint sería útil). Tienes que decidir si vas a comprar la estructura o si la vas a construir tú mismo, en caso de que vayas a diseñar tu propia estructura, tienes que tener en cuenta todo lo que vas a usar. Tienes que tener en cuenta muchas cosas:
- La estructura: De qué material, plástico, metal, madera (cuanto más resistente mejor); con qué forma (lo más adecuado es dividirla en niveles) y que respete las medidas.
- Los motores y ruedas: según los que vayas a usar, tienes que sujetarlos bien y que acoplar las ruedas a los ejes de los motores.
- Los sensores: donde van a ir colocados, es conveniente que estén bien sujetos para que no se muevan.
- La alimentación: Pilas o baterías, donde van a ir colocadas, teniendo en cuenta el peso que añadirán.
- La electrónica: donde estará el driver para motores, el microcontrolador etc., y que todos los sensores tengan cables suficientemente largos como para llegar hasta ellos.
- El resto de sistemas mecánicos que añadas: donde irán sujetos y como funcionarán.
En caso de usar una comercial, te será más sencillo, aunque también tienes que montarla.


Boceto de mi robot


4. Características importantes para la prueba:

Dependiendo de a que prueba vayas a presentarte hay ciertas cosas muy a tener en cuenta, que da igual donde sea el concurso ya que esto se mantiene. Por ejemplo en rastreadores velocistas la velocidad de tus motores (rpm) será muy importante, así como la capacidad de reacción. En sumo en mi opinión hay varias:

- Se requiere un sistema infrarrojo para la detección de la línea que delimita el ring, el cual servirá al robot para no salirse de él y por tanto perder el combate.
- Además es necesario el uso de algún sistema para detectar al robot contrario, bien sean bumpers, ultrasonidos o infrarrojos.
- La adherencia y agarre son muy importantes y deben ser tomados muy en cuenta, así como la potencia de los motores. El objetivo es empujar al otro robot y que no te expulse a ti, por tanto gran parte de los esfuerzos deben dirigirse en mejorar ese aspecto. Para ello deberíamos usar unos motores/servos de gran Par motor y unas ruedas anchas (o de oruga) y de un material adherente (goma o neopreno). Si pudiésemos, sería recomendable emplear una reductora (para aumentar el par motor disminuyendo las rpm. Para saber más acerca de esto: http://f1adslzone.blogspot.com/2007/06/tutoriales-transmisin.html

- La rigidez estructural también debe ser considerable, manteniéndose en perfecto estado tras varios combates, sin romperse o doblarse. Para ello se pueden usar piezas de Mecano, Lego etc.
- El reparto de pesos y el centro de gravedad (lo más bajo posible) influirán en el comportamiento dinámico del robot. Por ello, el robot no debe ser muy alto, y el peso (mediante lastres) debe estar situado a ser posible abajo. Además el peso debe repartirse, no estar situado justo encima de una rueda, que soportará más peso que el resto y eso puede hacer que traccione más que las demás.
- La estabilidad también debe ser un factor a tener en cuenta, ya que sino tu robot podría llegar a volcar (no es broma, ya ha pasado). Para ello, el centro de gravedad debe ser bajo y las ruedas deben estar en los extremos, lo más separadas posibles. Es mejor que el robot esté muy cerca del suelo, apenas levantado.
- Sería interesante reducir las posibilidades de que el otro te detecte, pero esto no es tan sencillo.
- La alimentación también tiene mucha importancia, ya que los motores consumen bastante, así que es necesario un driver para motores (lo que hace es controlar los motores más fácilmente y proporcionarle más alimentación) y alimentación adicional. Cuanto mayor sea la intensidad más par motor obtendremos, mientras que un mayor voltaje proporciona más rpm. Las pilas se agotan en seguida, por tanto es mejor usar alcalinas o pilas grandes (de tipo C o D), pero no de 9 voltios, ya que tienen poca intensidad. Hay que tener en cuenta el peso de las pilas, dónde irán colocadas y que no sobrepase el límite.


Diferentes ruedas LEGO


Pilas de tipo D


5. Dividir en varios aspectos la utilidad de cada elemento hardware:

Yo, para sumo, he dividido en 4 aspectos las funciones del robot: detección del contrario (bumpers, ultrasonidos…), situación (cny70, para no salirse del ring), empuje/resistencia (motores, ruedas… para sacar tú al otro de la pista sin que te saque el a ti) y engaño (para que el otro no te detecte). Así, al comprar los materiales que necesitemos y al programar, nos resultará más sencillo saber que aspectos globales hay que mejorar y cuales son nuestros puntos fuertes, para basar en ellos nuestra programación.


Basic Stamp 2

Arduino NG

6. Hacer un presupuesto, y dependiendo de él, comprar lo mas necesario y útil:

Como probablemente vuestro presupuesto no sea ilimitado, tendréis que dejar cosas sin comprar ya que sino no os será posible pagar todo. Por tanto, es necesario hacer una selección y escoger lo más necesario. Hay que tener en cuenta que para años próximos esos materiales seguirán siendo útiles y podréis invertir más dinero para comprar las partes que no pudisteis en su momento. Habrá que decidir que microcontrolador usar: Basic Stamp, Arduino, Lego (Mindstorm, NXT) o usar algún PIC. Tienes que decidir que sensores, motores etc. comprar. Además de comprar los materiales necesarios para la estructura, en caso de que vayas a construirla tu mismo. Es decir, todo el hardware. Este proceso es complejo, y hay que tener muy claro que necesitas, aquí ya no hay vuelta atrás. Deberías mirar las hojas técnicas de cada sensor para saber sus características y cual es el que más te conviene.


Sensor Infrarrojo (distancias)


Driver para motores


7. Buscar en Internet/tiendas físicas los materiales necesarios para la construcción del robot:

Una vez que ya hayas decidido que sensores, placa etc. usar, debes buscar en Internet o en alguna tienda física para comprarlos. No hay muchas tiendas, pero es recomendable buscar para encontrar el precio más económico. Incluso mirar en el extranjero, pero esto tiene la pega de unos gastos de envío considerables y la posibilidad de aranceles en la aduana.

Tiendas:

http://www.msebilbao.com/tienda/index.php ---- productos Parallax
http://mindstorms.lego.com/ ------Lego Mindstorm
http://www.parallax.com/ -----Parallax (sensores, microcontroladores…)
http://pcb-europe.net/catalog/index.php?cPath=29 ---Arduino (Italia)
http://www.micropik.com/ ----- componentes electrónicos
http://www.eurobotcenter.com/servinicio ---productos de robótica
http://www.robot-electronics.co.uk/ ---- productos devantech (UK)
http://www.robotmarketplace.com/store.html -productos de robótica (USA)
http://www.superrobotica.com/ ---- productos de robótica

Páginas Web de interés:

http://roboticamaselectronica.blogspot.com/ ---- mi blog, con más información
http://www.ikeretxebarria.net/Home.html ---sobre robótica, Mac y Linux
http://www.todomicrostamp.com/ --- acerca de los micros Basic Stamp
http://www.arduino.cc/es/ ---- sobre Arduino, en castellano

8. Una vez recibidas las piezas, comenzar con el montaje y/o soldadura en caso de usar una PCB:

En cuanto tengamos las piezas debemos comenzar a montarlo. Tiene que ser muy seguro, es decir, que no haya cosas colgando, ni tornillos sueltos. Para los iniciados es mejor usar un microcontrolador ya montado, y para aquellos más expertos una PCB, donde suelden todos los componentes. Esto debe acabarse un mes antes como mínimo para tener suficiente tiempo para realizar el resto de tareas que quedan. Sería recomendable ir probando cada cosa mientras se monta, ya que si montamos alguna cosa mal, después tendremos que desmontar todo para buscar el fallo. Así será mucho más fácil. Para los que usen protoboard, también es necesario, ya que quizá alguna resistencia esté mal colocada y eso después puede suponer un problema.

Robot de sumo de Alex Arroyo


9. Durante el montaje, hay que realizar un esquema eléctrico, o al menos apuntar todo lo que se ha montado y dónde:

Yo no hice un esquema eléctrico, pero sí apunté todo. Depende de donde hayamos colocado cada cosa, por ejemplo un bumper. Habría que saber en que entrada lo hemos colocado para después programarlo bien. Hay muchos ejemplos de esquemas eléctricos pero, sobre todo para aquellos iniciados, será complicado. Hay que tener en cuenta que los sensores pueden necesitar algunas resistencias, por tanto es necesario mirar las características y hojas técnicas antes de montarlos.


Esquema eléctrico (no es el mío)

10. Una vez completado el montaje hay que programar:

Aquí hay varias cosas que hacer:
Primero hay que definir el algoritmo, es decir, que quieres que haga el robot. Esto dependerá de los sensores que tengas, de los motores… de toda la parte hardware. Cuantas más cosas, se podrá realizar un algoritmo más complejo. Se pueden crear algoritmos muy largos y complejos o unos mucho más sencillos.
Una vez hayamos escrito el programa (en el lenguaje que hayamos usado, bien sea C, ensamblador, PBasic…) hay que depurarlo, es decir, quitar los fallos sintácticos (palabras o instrucciones mal escritas). Hay algunos programas que lo hacen solos (por ejemplo, el editor Basic Stamp).
Por último, hay que comprobar que no haya errores semánticos, es decir, que el robot haga lo que queremos que haga, para ello, lo mejor es probarlo y así, además de corregir posibles errores, podremos mejorar nuestro algoritmo.
También recomiendo comentar el programa, así nos será más fácil detectar dónde están los fallos y será más sencillo de comprender para otras personas.


Robot de sumo de Alex


11. Una vez ya completo:

Se puede pensar en añadir alguna cosa más (si tenemos tiempo y dinero) y en probarlo para observar su rendimiento. En cualquier caso no debería modificarse nada los días anteriores al concurso a no ser que no funcione, ya que si modificamos algo y luego no funciona, no tendremos tiempo de reacción para ponerlo como estaba.

Robot de sumo de Sergio Porres


Video de un concurso: http://www.ikeretxebarria.net/Deusto_2008.html


Voy a daros algunas recomendaciones, basadas en mi experiencia en su mayoría:

-Que el puerto serie/usb de la placa sea fácilmente alcanzable, así podremos variar el programa de forma sencilla.
-Asegurar la protoboard (en caso de usarla, poner cables, que sin tener ninguna función eléctrica sirvan para que otros no se salgan), pero es mejor soldar todo (aunque tiene el inconveniente de que después hay que desoldarlo todo). En ambos casos, los cables no deben sobresalir, sino estar muy apurados.
-No cambiar nada el último día (a no ser que no funcione). En caso de equivocarnos, no tendremos tiempo de arreglarlo y si no hay tiempo para probarlo habrá que arriesgarse en el concurso para saber si funciona o no.
-Hay que apuntarse al concurso con antelación y mandar un email a los organizadores en caso de tener cualquier duda.
-Llevar pilas de sobra así como todas las herramientas que podamos necesitar para hacer algún arreglo antes de la prueba. Las pilas se agotan fácilmente, así que es conveniente llevar de repuesto, para que no disminuya el rendimiento del robot.
- Que todo el hardware este seguro y no se despegue o caiga nada, lo cual podría suponer una descalificación (nada de chapuzas).
- Buscar en Internet toda la información que podamos (así como en libros) ya que se aprende mucho y es muy enriquecedor (sobre todo para los más inexpertos).
- Leer las hojas técnicas y características de todo lo que vayamos a usar (motores, sensores, etc.) para saber exactamente cómo funcionan y qué necesitan. Así evitaremos sorpresas.

--------------------------------------------------------------------------------
Autor: Sergio Porres González
http://roboticamaselectronica.blogspot.com/

Este documento ha sido realizado para orientar a posibles personas interesadas en la construcción de un robot de sumo o que estén interesados en la robótica en general. Si alguien quiere publicarlo, que contacte con su autor: sergioporres@telefonica.net
--------------------------------------------------------------------------------

Documento relacionado: “Mi robot de sumo Stealthbot” : http://roboticamaselectronica.blogspot.com/2008/03/mi-robot-de-sumo-stealthbot.html

3 comentarios:

Anónimo dijo...

El esquema electronico es el de un quemador de pic's.... ¿?¿?

Leonardo Franco dijo...

Me pasarias alguna programacion del sumo de los movimientos en bascom...

EOCMAESTRO dijo...

Gracias por esta página...donde podría ver el proceso de construcción... soy neófito... sobre este tema... GRACIAS...