fbpx

Expresate

Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:

Avisos
Vaciar todo

Cosmobot 2011. Resultados

52 Respuestas
11 Usuarios
0 Reactions
21.5 K Visitas
furri
Respuestas: 2708
Topic starter
(@furri)
Ardero
Registrado: hace 19 años

Que barbaro....

N__bWm34djw

Responder
51 respuestas
dragonet80
Respuestas: 1328
(@dragonet80)
Ardero
Registrado: hace 17 años

Hola a todos
Me alegro de que os gustase veloli 😀 ; para aclararos las dudas os cuento que el robot tiene un diseño bastante sencillo en cuanto al hw, y tambien el sw; os describo los principales componentes:
Motores: pololu 10:1 HP, sin trucar ni nada por el estilo [unos 15 € c/u]
Driver: MAX4427 (driver para atacar al mosfet) [3 € c/u] + puente H mosfet ZXMHC3F381N8 [< 1 € c/u]
Micro: 18f4550 TQFP aunque bastaría con un 18f2550
Sensores: 6 CNY70 para leer la linea + 2 CNY70 para los dos encoders
Encoders: Un trozo de carton redondo con 4 trozos de cinta aislante (al principio lo pinté pero no iba bien) [barato, barato]
Ruedas: compradas en tienda de modelismo creo que de aviones ultraligeros pesan poquisimo y el exterior es de espuma 3,75 cm de diametro [2,7 € las dos] y los neumaticos (es lo que he visto que obtiene mejor agarre) globos
bateria: Lipo 600 mA comprada por elementos sueltos (en Hobbycity) para poder poner los elementos uno al lado de otro [unos 8 € (en un pedido mas grande)]
El chasis es la propica placa de CI; es de un un grosor mas fino que el estandar.

Poco mas que destacar; en cuanto a las prestaciones, en laboratorio (en una pista de casa, vamos) para la configuracion de Cosmobot puede ir a unos 2,2 m/s con un algoritmo normal de seguir linea (teniendo en cuenta las curvas de radio 33,5 cm).
Con el algoritmo de acelerar en los tramos rectos he conseguido (en casa) una velocida media de 2,8 m/s (da una max en recta grande de 4,2 m/s). Estos valores son reales es decir referidos a la distancia que recorre
Yo calculo que en cosmobot haria una media de 2,6 m/s porque las curvas estaban bastantes mal trazadas (lo siento Raul, teneis que practicar mas con la cinta aislante) y tambien no agarraba demasiado bien.
Haber si saco un poco de tiempo y pongo unas fotos, esquemas y demás
Un saludo

Responder
avlober
Respuestas: 82
(@avlober)
Trusted Member
Registrado: hace 19 años

Perdon por tardar en responder, llevo una semana de locura.

El tema de reconocimiento de la pista y demas que me preguntas (sithas).
Como ya he comentado (creo) el tema del mapeo para este caso es relativamente sencillo ya que la pista es conocida de antemano. Lo que hago es dividir la pista en 4 tramos. La recta principal, La curva posterior a la recta principal, La recta pequeña y la Curva antes de recta princiapal. Los encoders son bastante precisos y el error que puedes cometer en una vuelta (si no derrapa o se desestabiliza) es bastante pequeño (uno o dos centímetros).
Pero como bien dices es imprescindible sincronizar en cada vuelta con un punto de referencia y que el algoritmo sea ´tolerante a errores´. En mi caso lo que hago es buscar un punto (un sitio muy concreto) con el que sincronizarme en cada vuelta y ademas le dejo un márgen de unos 50 o 60 cm para encontralo, por si acaso.
El punto que me ha sido mas fácil de encontrar es el final de la recta principal, ya que, el guiado que hace en recta es bastante fino y practicamente va con los sensores centrales. Al final de la recta lo identifico mediente los sensores de guiado. Tambien es posible hacer la identificacion mediante los encoders, en el mismo punto o en otro que sea significativo; por ejemplo en el unico punto del circuito donde hay una curva hacia la izquierda.
Si el algoritmo no encuentra el final de recta en los 50 - 60 cm del final de la recta, volverá al punto de partida, es decir dará una vuelta completa a velocidad constante hasta encontrar el punto de sincronismo.

Todo esto se prevee y se programa en una pista hecha a imagen de la publicada, pero luego en la práctica, la cosa normalmente se complica. Imagino que los demas robots que intentaron implemetar algo parecido les fallo alguna referencia.
A mi, a pesar de que en la segunda fase reconozco que el robot funcionó muy bien, me dio muchos problemas y estuvo a un tris de no funcionar nada.
Primero en la fase de clasificacion el coche fuen con un cable de un encoders (un cny70 vamos) desoldado, con lo cual el robot no encontro nunca el punto de referencia y dio las dos vueltas a velocidad constante. Y cuando soldé el cable y lo probé en la pista descubrí que todas las medidas y puntos de referencia no estaban en concordancia con la pista. La pista era (segun calcúlo) unos 40 cm mas grande que la que habia probado en casa. Afortunadamente dejaron un rato despues de las clasificaciones para probar y pude poner los puntos de referencia en su sitio y todo fue bien.
Esto pasa porque el algoritmo es bastante cerrado, poco adaptativo. Lo suyo sería implementar un algoritmo que sea capaz de dar un par de vueltas y reconocer la pista y adaptarse a ello, esto es mas complicado, pero factible. Ese es mi próximo reto para este robot.

Perdón por mi sobreexpicación, deformación profesional. Espero que te haya aclarado alguna duda
Un saludo

Responder
sithas
Respuestas: 10
(@sithas)
Active Member
Registrado: hace 15 años

Si, me ha aclarado bastante! Algo parecido estaba pensando en intentar implementar. A ver que tal me va y si consigo hacerlo también sin necesitar tener la pista de antemano.
Muchas gracias!

Responder
mindless
Respuestas: 73
(@mindless)
Trusted Member
Registrado: hace 19 años

Hola a todos:

avlober, felicidades! Espectacular cómo funcionó a pesar de los problemas.

En mi caso, Silvestre, en la CRJET de 2010, llevaba un algoritmo casi idéntico al que comentas y funcionó fenomenal desde la homologación:

YueAaFJxl_I

En cambio, para Cosmobot decidimos hacer algo más elaborado que le permitiese saber en cada momento dónde estaba y poder sacar el máximo provecho a cada sector. Digamos que para las curvas cerradas podría llevar una velocidad distinta a la que llevaría en una curva muy larga y abierta, aparte de poder acelerar en las rectas y frenar en cada punto. Además puede internamente medir sus tiempos y modificar parámetros que le permiten saber si ha mejorado o no.

El día de antes, el funcionamiento de Silvestre era este:

WnSHa5dBPkc

Tarda 3.4 segundos en recorrer los 8.7 metros que mide esa pista y fuimos capaces de no subir de los 3.5s durante una tanda de 100 vueltas seguidas. Para ello usa giróscopo, acelerómetro y encoders.

Como comenta avlober, los puntos de referencia que buscaba Silvestre no se parecían en nada a los que él esperaba por lo que nunca era capaz de sincronizarse e iba a una velocidad lenta. El problema fue que al estar mal trazada la pista, las señales de los sensores inerciales no correspondían a las esperadas y los pequeños parecidos que había no se consideraban como suficientes. Al haber hecho algo más complejo de lo que debíamos, no fue tan fácil adaptarlo a la hora de comer... Supongo que si no hubiésemos tocado nada con respecto a la CRJET, habría funcionado mucho mejor todo.

avlober, para la próxima te lo intentaremos poner algo más difícil!

Enhorabuena otra vez 🙂

Responder
dragonet80
Respuestas: 1328
(@dragonet80)
Ardero
Registrado: hace 17 años

Enhorabuena a todos los que participaron y que hacen que cada año suba el nivel.

Este año el nuevo robot de Poltrux, Ebusus II se quedó en la fase de prototipado y no dió tiempo a llevarlo al concurso. Espero que el año que viene esto no pase y, no sólo él, sino unos cuantos más, nos podamos sumar a dar guerra a los campeones actuales.

Avlober, no se que ha pasado en el otro mensaje que solo se ve la cita, pero te preguntaba si con los motorcillos de pololu no sería capaz de alimentarlos directamente el 4427 y así ahorrarse el puente-h. No se si un driver mosfet está preparado para atacar a una carga inductiva o si solo funciona bien con una carga capacitiva como son los mosfets.

Responder
Página 3 / 11
Compartir: