Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola a todos,
Me hago eco en este hilo de un comentario que salió en otro: Robots para concursos. Kits o lo que veais que pueda interesar al principiante, intermedio o experto.
Esto es lo que JMV comentaba :
Hablando de minisumo (y por hablar un poco de robots para concursos en este foro.. ¬¬) on enlazo un kit que he pedido para hacer uno, a ver si me llega y le hago unas fotos: http://www.fingertechrobotics.com/proddetail.php?prod=ft-kit-cobra-4wd-chassis " onclick="window.open(this.href);return false; , lo he pedido con motores 20:1 ya que los 50:1 me parecen que tienen demasiado par según unos primeros cálculos para 500 gr y lentos @ 6V.
El kit tiene muy buena pinta:
Por si alguno estuviese, por ejemplo, pensando en presentarse a AESSBot (4-6 Mayo) lo mismo está a tiempo.
Saludos,
Sphinx.
A mi los sensores tampoco es que me gusten mucho, más bien poco, pero por tamaño no he visto otros.
No tenemos la telemetría funcionando por lo que no puedo responder con certeza, pero yo diría que leer en analógico no supone "una gran ventaja" frente a hacerlo en digital. Como dices la lectura del sensor en analógico depende de muchos factores y son muy sensibles, las irregularidades del suelo, o las diferencias de distancias provocadas por el robot y su movimiento y orientación pueden dar lecturas muy distintas, al final lo que predomina es el valor medio de las distintas lecturas, que es similar a lo que hacemos al leer en digital (un valor medio), contar el tiempo que tarda la línea en pasar de un sensor a otro para saber la velocidad, en lugar de tener una velocidad instantánea que es lo que te da la lectura analógica tenemos una velocidad media de la línea entre dos sensores. Excepto para calibrar sensores yo de momento no le veo ninguna ventaja en usar los ADC.
Un par de videos de ayer que ando probando distintas dimensiones de bases, leyendo en digital el resultado a mi me parece muy bueno (grabaré uno a cámara lenta donde se vea mejor), no sé si leer en analógico se notaría en algo.
http://www.youtube.com/watch?v=DGxU4GjSs8g " onclick="window.open(this.href);return false;
http://www.youtube.com/watch?v=EXsNHaxUJpY " onclick="window.open(this.href);return false;
Lo de las ruedas lo que dices. muy importante el tamaño y el peso, a mayor tamaño y peso mayor inercia en el giro propio de la rueda, por lo tanto mayores son los tiempos de reacción del robot. Por otro lado al poner ruedas pesadas en los extremos de un robot ligero se aumenta mucho su momento de inercia lo que va a dificultar mucho los giros y a la mínima va a derrapar. Las mejores ruedas que hemos encontrado hasta ahora es la de pololu y las de miniz (las dos muy ligeras), en algunos casos la de miniz da mejor resultado, pero desde que es muy pequeña para montar los encoders pues la de pololu. Si la pista está limpia a mi me gusta más la de pololu que la de miniz.
Supongo que si quieres hacer un control pid de velocidad no queda otra que gastarse 200 euros por motor. Los drivers de los motores después de buscar yo me decidí por hacerlos con un par de transistores, ya que así se podía poner el condensador cerquita de cada motor ya que ibamos a usar el dc-dc de pololu, y por otro lado tb es más fácil a la hora de trazar el pcb.
Nosotros vamos a ver si conseguimos tener listos los velocistas, que queda muy poco y tenemos que hacer casi todo el programa, y con el minisumo haremos nuestro primer intento, a ver que sale.. Lo de hacer un robot bueno en cada categoría está difícil, ya que almenos en velocistas los robots han mejorado mucho de un año a otro.
S2
En los vídeos se ve muy bien, muy pegado a la línea el robot. A mi me queda mucho trabajo en el tema de encontrar las constantes adecuadas al mio para que vaya así. Y ahora mismo estoy esperando los samples del nuevo micro para hacerme las placas nuevas, así que lo tengo bastante parado. Con el robot yendo tan fino supongo que podrías hacer el reconocimiento de pista incluso sin necesidad de encóder.
El morro creo que lo dejaré como estaba en el anterior, con los pines conectados a las entradas analógicas. También seguiré con los qre1113 para ahorrar peso. Haré las lecturas en analógico pero las pasaré a digital, así podré ir calibrando a cada lectura y evitar flasheos de luces o sombras, el micro anterior ya podía hacerlo y el nuevo aun será más rápido. Eso sí, el morro anterior llevaba solo 6 sensores y lo veo demasiado corto. Mínimo 8 y puede que hasta 10. No se si el peso extra de llevar 10 compensaría, pero 6 eran demasiado pocos, en las curvas se salía facilmente. Lo que sí he visto es que hay que intentar que se salga de la línea lo mínimo posible, ya que eso hace perder mucho tiempo.
Ya me gustaría a mi poderme gastar 200 € por motor, pero va a ser que no. De momento seguiré con los pololu. Quizá para el próximo año pruebo con motores brushless y me haga yo el encoder directo al motor. El problema está en el puente-H, que me lo tendría que hacer y programar yo mismo y eso necesita mucho tiempo seguramente.
No deberías tener muchos problemas en encontrar las constantes, en nuestros robots el ajuste se hace en unos pocos minutos (10-15 min, también ya he ajustado muchos), ya que es muy fácil encontrar los valores, hay muchos valores distintos de las constantes en el que el robot se comporta de forma correcta/similar. Encontrar los valores que den el "100% del robot" pues sí, puede ser mucho más complejo.
Yo lo que hago para ajustar es con un regulador PD (la I no la usamos) poner una velocidad media, ajustar la constante proporcional para que el robot pueda hacer el circuito sin salirse, si va muy rápido bajar la velocidad y ajustar la Kp, una vez ajustada la Kp incrementas la Kd que antes era cero para corregir la oscilación, hasta que veas que el robot vaya bien.
Una vez aquí puedes hacer dos cosas:
1. Con la Kp y Kd ajustadas, incrementar de nuevo la velocidad y repetir el proceso, incrementar la Kp con la Kd anterior fija para que no se salga y corregir la oscilación incrementando la Kd una vez establecida la Kp, y así...
2. También puedes guardar la relación de proporcionalidad entre Kp y Kd, ya que la acción proporcional y derivativa deben estar acopladas en el regulador PD, us=k⋅1s⋅Td.
Según se aumenta la velocidad del robot se tiene que incrementar el valor de esa k (Kp) de forma experimental. El PD predice hacia donde va el robot en un tiempo fijo, al aumentar la velocidad se dispone de menos tiempo para corregir la dirección, por lo que para una misma predicción hay que aumentar k para corregir con más fuerza.
Es decir si para una velocidad media en el que el robot va despacio, pongamos 50, en la que puedes ajustar bien hallas una Kp de 15 y una Kd de 1500 (relación de 100), si luego subes la velocidad a 150 y experimentalmente pones una Kp de 30, pues la Kd la pones en función de la Kp, es decir pondrías una Kd de 3000, que es la relación que has obtenido de ajustar anteriormente el sistema. Así te quitas un grado de libertad.
Esto lo he probado y observado de forma experimental y parece ser que funciona, pero como digo hay un rango muy amplio de constantes en el que el robot tiene una buena respuesta, por lo que es difícil verlo. Supongo que para analizar todo ésto hace falta telemetría y conocimientos bastantes sólidos del tema (yo vi poco de estas cosas y sé lo básico o menos).
También da buen resultado llevar distintas constasntes en función del tipo de trazado, ahora llevamos una Kp para recta y otra para curva y mejoran muchos los tiempos del robot.
Supongo que te puedes complicar todo lo que quieras con el tema, para un robot como los que hacemos no merece la pena meterse con todo esto, antes que meterse con todo esto lo primero es comprarse motores buenos.
Nos queda hacer toda la programación, lleva un programa muy básico de dos velocidades y dos kp y reconocer el trazado con los encoders que hicimos para probar la electrónica, todo esto tendríamos que hacerlo bastante más despacio, lo de reconocer la pista sin encoders pues no śe, es posible pero aún no nos hemos puesto, a ver si después de las pruebas de acelerar al máximo y frenar empezamos con estas cosas que tenemos muchas ideas y poco tiempo hasta el concurso.
S2
2. También puedes guardar la relación de proporcionalidad entre Kp y Kd, ya que la acción proporcional y derivativa deben estar acopladas en el regulador PD, us=k⋅1s⋅Td.
Según se aumenta la velocidad del robot se tiene que incrementar el valor de esa k (Kp) de forma experimental. El PD predice hacia donde va el robot en un tiempo fijo, al aumentar la velocidad se dispone de menos tiempo para corregir la dirección, por lo que para una misma predicción hay que aumentar k para corregir con más fuerza.
Eso de que la kp y la kd guardan una proporción no lo sabía, gracias, lo probaré. Y es cierto que hay muchos valores de kp y kd que parecen funcionar igual y es difícil encontrar los óptimos. Para eso quería usar la telemetría.
De momento he empezado otra vez con el diseño del chasis. A ver si me cabe el nuevo micro que es un poco más grande.
Y es cierto que hay muchos valores de kp y kd que parecen funcionar igual y es difícil encontrar los óptimos. Para eso quería usar la telemetría..
Ciertamente es una locura, sobre todo si se sigue el método de "prueba y error".
Para intentar minimizarlo y poder cambiar los valores "sobre la marcha" le puse a n00b0t un TSOP que permita subir o bajar valores con el mando de la tele y ver como se comporta... aunque la propia función de "escucha" parece afectar también a la capacidad de reacción del robot (dado que los recursos de procesamiento son limitados). Supongo que con un 32b la cosa irá mejor.