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.
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):
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