sábado, 1 de diciembre de 2012

Robot Sumo


Autor: Fermín Pradena.
Competencia:  Creatividad e innovación, 1°Sem.
 Palabras clave: Robot sumo, programacion, nxt, nxc.


Descripción de la actividad
Esta fue una actividad del ramo Programación de robots(primer semestre) donde teníamos la tarea de diseñar y programar un robot que fuese capaz de vencer a otros en una arena de lucha de manera que pudiese desarmarlos o expulsarlos de la arena.


Solución de la actividad
A continuación le describiremos los pasos que seguimos, los objetivos, ideas principales y problemas que tuvimos para enfrentar el proyecto “Sumo” además de las conclusiones que obtuvimos y errores que pensamos cometimos, el proyecto sumo se trataba de un campeonato, en el cual el diseño del robot era libre, el robot tenia que cumplir con mantenerse dentro de un área de combate delimitada y tratar de hacer que el robot contrario saliera de esta o quedara inmovilizado, teníamos a nuestra disposición todas las piezas dentro del kit y podíamos usar todos los sensores que utilizamos en los proyectos anteriores, solo que esta vez nosotros debíamos decidir la mejor manera de utilizarlos, como grupo decidimos que la mejor manera de abordar este desafio era primero definir la estructura del robot, la cual era escencia para crear el código ( por la posición de los sensores ) por lo que empezamos por ahí, una vez decido del diseño pasamos a la creación del código que se explicara con detalles mas abajo, finalmente hacemos una conclusión y analizamos los resultados quedando demostrado si cumplimos con las expectativas y si usamos de manera correcta los sensores y rutinas antes aprendidas.

Patrón de ataque y defensa
El programa de nuestro robot esta diseñado para ejecutar tres rutinas, las cuales están divididas en búsqueda, ataque y defensa. En primer lugar, avanza con ambos motores hasta la mitad del circulo, donde al llegar comienza a girar en su propio eje a toda potencia, esto para poder detectar con su sensor de ultrasonido al robot contrario, una vez que esto se realiza, el robot pasa a modo ataque, en el cual avanza con ambos motores y toda la potencia embistiendo al robot rival, otra parte del programa es la rutina que se ejecuta una vez el robot detecta la línea negra que es el contorno del área de combate, cuando el robot con su sensor de luz detecta esta línea realiza un giro y vuelve a girar sobre su propio eje, esto se puede considerar además como un movimiento defensivo, puesto que mientras el robot gire a toda potencia al robot enemigo se le complicara embestirlo, y lo mas probable es que al ser embestido, nuestro robot siga girando y logre salir de la parte frontal del otro robot, continúe girando y detecte al robot enemigo y realice un contrataque, en todo momento desde que el robot inicia el programa tenemos un tercer motor activado, el cual esta conectado a dos garras, una a cada lado del robot, esto lo consideramos un ataque “auxiliar” teniendo la finalidad de que en caso de que al embestir al robot contrario, este llegara a “montarse” sobre nosotros producto de nuestra rampa, las garras laterales debían de golpearlo para arrancarle alguna pieza o empujarlo para que cayera de costado y así ganar el combate.
Link del codigo: http://www.mediafire.com/?ckbabcn8vj9fufc

Análisis de enfrentamiento
La conclusión que podemos sacar de nuestros combates es que a pesar de tener un 50% de efectividad y perder en segunda ronda el programa funciono como lo esperábamos, en el primer combate nos enfrentamos a uno de los pocos robot que no contaba con una rampa frontal, lo cual fue una gran ventaja para nosotros, además de que el robot enemigo tenia un espacio entre el suelo y el cuerpo del robot que nos permitió levantarlo con ayuda de nuestra rampa y lanzarlo fuera de la arena, conseguimos que en el segundo round, a pesar de que ellos lograron embestirnos en primera instancia, no consiguieron sacarnos como lo planeaban, nuestros robot se engancharon, por lo que ese round fue declarado un empate, ( a pesar de que según las reglas debimos ganar ese también, porque el robot enemigo en medio de la batalla perdió varias piezas )finalmente el tercer round fue un mero tramite en ámbitos de combate, nuestro robot detecto primero al de ellos, lo embistió y lo saco sin que nuestro rival tuviera nada que hacer.
El segundo combate fue bastante mas reñido, nos enfrentamos a un equipo que también tenia un robot con rampa, además de usar los 3 motores para empuje, el combate se decidió de manera unánime al momento de chocar los robots, el contrincante al tener 3 motores para empujar, se llevo en potencia a nuestro “Eddie” el cual a pesar de ser mas grande, no tenia la tracción suficiente para sostenerse de la embestida, en el segundo round, los robots se engancharon, y perdimos porque mientras girábamos fuimos acercándonos mas a la orilla y salimos ( cosa de suerte ) y el tercero aunque era innecesario de realizar, lo hicimos y ganamos, nuestros robots no se detectaron, así que empezaron a buscarse, el de ellos al llegar a la línea se propuso girar y por un error termino saliendo de la pista.

Diseño del robot
El robot contaba con tres motores, utilizábamos dos para la movilidad orientados estructuralmente de forma paralela,
El tercero controlaba dos garras que estaban estructurados en forma de hélice en sentido vertical,
Las cuales pretendían aferrarse a los cables del enemigo y por efecto desconectarlos, o enredarlos y arrastrarlos a partir de ello.
El robot también contaba con una rampa, nuestra arma fundamental, estratégicamente como equipo habíamos planeado que, si nuestro robot lograba levantar al enemigo e impedirle el roce de las ruedas con el suelo lograríamos un empuje desenfrenado que lo sacaría afuera del círculo.
Sobre la rampa situamos el sensor de ultra sonido lo cual tenía una función muy particular, consideramos que en esa posición del robot seria una gran desventaja poner un sensor de tacto debido a que tendríamos que aguardar que el enemigo atacara para que nuestro robot realizara una reacción, lo cual seria peligroso, además no teníamos en mente estar ala defensiva.
Sobre el sensor de Luz, lo ubicamos abajo de la rampa y entre los motores de ambas ruedas, estructuralmente se encontraba en el centro del robot y oculto de la vista, nuestro sensor estaba muy bien protegido fue en la ubicación de dicho sensor en la cual mas dedicación le pusimos ya que si nos atacaban y perdíamos en funcionamiento del sensor automáticamente perderíamos las peleas.
Sobre el peso, el peso para nuestro robot era fundamental ya que nos dimos cuenta de que no solo bastaba aplicarle la máxima potencia a los motores para empujar al contrincante, durante pruebas que realizamos notamos que al empujar y no tener suficiente peso el robot “patinaba” y no lograba avanzar. Fue por eso que le implementamos unas piezas de lego, que visualmente parecía inservible, pero su único fin era generar peso.
Sobre el sensor de tacto, nosotros no utilizamos sensor de tacto, ya que nuestra estrategia no lo contemplaba no esta en nuestros planes tener al enemigo tan cerca, ni realizar alguna acción si se activaba el sensor, además de que teníamos complicaciones de implementarlo al robot un sensor para su estructura de 20 cm de largo parecería inservible.

Uso de los sensores

Sensor de Ultrasonido
Este sensor lo ubicamos en la parte frontal del robot, y se podría considerar como el corazón de nuestro ataque, puesto que con este sensor determinaríamos el “cuando atacar”, determinamos una distancia especifica y al encontrar un objeto a una distancia menor, ejecutaba la rutina “ataque”, al principio habíamos ubicado
Muy alto este sensor, pero nos dimos cuenta de que seria
Una desventaja al enfrentarnos a robots que tuvieran un perfil bajo
Sensor de LUZ  

El sensor de luz lo ubicamos en el centro del robot
oculto de la vista, su trabajo era escencial, evitarnos el salir del área de combate, el uso de este sensor es bastante sencillo, al ser el área de combate blanca y con un contorno negro, al detectar el contorno, para evitar salir del circulo, el robot giraba hasta “dejar de ver negro”.

Fotografía del robot 

Video de un combate de nuestro robot(para omitir mucho ruido y posibles garabatos, no es necesario activar su audio):


Reflexión
Esta fue una actividad entretenida ya que nos dava la opción de diseñar nuestro propio robot luchador, aunque por lo mismo tenia una dificultad mas o menos alta ya que los demás grupos igual podían crear un buen luchador, pero al fin y al cabo nos mantuvo entretenenidos durante el largo tiempo de trabajo que gastamos en él.

Te invito a que compartas comentarios y dudas acerca de esta actividad, gracias...

No hay comentarios:

Publicar un comentario