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.
Lo que quiero decir a modo de resumen, es que un robot que corre en curva a 2.6m/s, por meterle una IMU completa no va a correr más en curva. ¿Que ayuda?? Por supuesto!! Pero que parece que es la panacea para dar un salto en velocidad terrible, y la mejora que se obtiene, creo que es bastante pequeña.
Gracias a la IMU puedes saber cómo es cada curva y adaptarte a ella con lo que SÍ puedes correr más.
Dudo que robots que van a 2.5-3m/s de media puedan hacer nada que les dé un salto de velocidad terrible. Sobre todo, que eso de "terrible" es bastante relativo. Yo me he pasado un largo tiempo diseñando un DC-DC que me dé la corriente suficiente para arrancar/acelerar y no creo que haya ganado más de 1 o 2 décimas por vuelta (dependiendo del circuito). ¿Eso es terrible? Pues quizá no, pero puede marcar la diferencia. También he pasado largo tiempo con el software de aprendizaje y adaptación a la pista para que no derrape si se ensucian las ruedas, adapte los puntos de frenada, etc. etc. Está claro que cada cosa por separado, no es la panacea como tú dices, pero es el conjunto lo que hace que un robot pueda ir a 3m/s durante 100 vueltas seguidas en un circuito como el de Cosmobot 2012.
Mi opinión es que la diferencia de este año entre Silvestre y otros robots excepcionales como Veloli o Pelopinxo ha sido el conjunto de cosas que Silvestre lleva de más porque, probablemente, desde el punto de vista "físico" o mecánico, esos robots son mejores. Y que el año que viene, si trabajan en esos aspectos, ganarán bastantes competiciones pero no será por conectarle una IMU de 9 grados al I2C lo que haga que al instante vayan a 5m/s 🙂
Creo que estamos pensando cosas muy parecidas.
🙂
Sólo apuntar que pelondulado, lleva un módulo como este http://www.pololu.com/catalog/product/1250 , pero que no lo utilizó en aessbot. Estaba pensado para el cosmobot y tirar recto el zigzag. La idea era medir el ángulo que daba la brújula y ejecutar el pd a partir de este dato. El principal problema es la rapidez de la brújula, como máximo 70 Hz. Seguro que con un giróscopo se puede precisar más.
También comentar que pelopincho no lleva nada más que encoders y el culeo que mostraba cuando forzaba era básicamente un tema de desespero: si ves que te pillan con un programa, pues le metes más velocidad ... pero se perdió y como no deja migas para el camino de vuelta ...
He visto algunos robots que también llevan sensores en la parte trasera. De este modo también sería posible detectar el culeo.
Un saludo,
Hola a tod@s!
Tengo una pregunta respecto a los robots velocistas... ahí va:
Cuando se acelera en el tramo de recta, ¿Que perfil se suele utilizar? Yo he probado un perfil trapezoidal, y no funciona muy bien, ya que el robot oscila mucho durante la rampa de aceleración/desaceleración. Ahora estoy mirando de implementar el denominado "jerk s-curve", pero no tengo claro que sea necesario... ¿Alguien podría orientarme un poco, por favor? ¿Quizá una spline cúbica? En fin, si alguien ha hecho pruebas y ha dado con algún perfil que funcione bien...
Muchas gracias
Yo tampoco tengo claro que hacer eso sea necesario, según leo y si te refieres a esto:
S-curve acceleration and deceleration refers to the shape of the velocity profile of a given move. Without using s-curve acceleration when you load an acceleration, velocity, and position, the motor tries to go from 0 to the specified acceleration instantaneously. When a motor does this, it creates a trapezoidal velocity profile. When the motor is ready to stop, it once again goes from 0 acceleration to a negative acceleration as fast as it can until it is at 0 velocity and then abruptly stops. These abrupt starts and stops create the sharp corners of the trapezoidal profile. The sharp corners translate to a very high jerk. Jerk is the derivative of acceleration and refers to abrupt changes in acceleration.
To explain jerk a little better, if you were driving your car in first gear and suddenly decided to switch into reverse, this would create an extremely large amount of jerk and might destroy your car. Suddenly accelerating and decelerating like that tends to reduce the life of mechanical components. To reduce the jerk, the transition into maximum acceleration needs to occur smoothly by slowly reaching a target acceleration or deceleration. The s-curve is used to slowly reach a certain acceleration or deceleration.
The following image shows the effect that the s-curve has on the velocity profile. Smoothing out the corners of the trapezoid using the s-curve reduces jerk and prolongs the life of mechanical parts.
Por otro lado, hacer esto en donde estamos ya me parece empezar a hilar muy fino:
An S-curve with an intermediate constant acceleration (linear portion) is often used to reduce the time to make large speed changes. The jerk can be used to determine how much of the rise or fall period can be made under constant acceleration.
Nosotros todavía estamos muy verdes en el tema de correr en recta, probablemente vamos a empezar ahora con el diseño de un nuevo velocista para intentar llegar al aessbot de diciembre. En las pruebas que hice con la versión del robot del pasado aessbot, lo que mejor me funcionaba era un perfil trapezoidal (así entiendo que lo llama) en pasos, ésta es la prueba de acelerar en recta, cuando el led está en verde el pwm está al 100%, motor 10:1 hp de pololu @6.5v con ruenda de pololu, 3 m de recta y dos curvas de 31 cm:
http://www.youtube.com/watch?v=OGRImyTVV9Q " onclick="window.open(this.href);return false;
En recta lleva 4 velocidades, la velocidad de entrada a recta, la velocidad del pwm al 100%, una velocidad de frenado y otra de entrada a curva. Nada más que el robot detecta que está en recta pone la velocidad de inicio durante x espacio (unos pocos centimetros, 30-40), luego se pone al 100% durante x distancia. para pasar a la velocidad de frenado y a la de entrada a curva (en ese vídeo pasaba directamente a la de entrada a curva sin frenar). Es decir lo que probé es aumentar o reducir la velocidad por pasos, en este caso una velocidad intermedia antes de la máxima.
Además de las distintas velocidades lleva dos Kp, una para la de entrada a curva y otra más baja para los cambios de velocidad y la velocidad alta, para que sea menos sensible y oscile menos. No sé si es buena idea o mala pero en las pruebas me parecía que funcionaba bien y así se ha quedado, aunque luego en el día del concurso no aceleramos ni nada al no mapear la pista, pero en casa la idea me funcionaba bien.
Silvestre y piolin: http://dani.foroselectronica.es/silvestre-2012-improvements-165/ " onclick="window.open(this.href);return false; creo que usan la lectura de los sensores inerciales para decelerar, su resultado es muy bueno, supongo que evitan ese tirón/sacudida.
Otro tema es la construcción de la base, nosotros usamos un material plaśtico que se deforma fácilmente y que desde mi punto de vista funciona como una especie de suspensión, algo que también me comentaron en el aessbot.
Los motores vibran y la base que llevamos amortigüa esas vibraciones, y más con los motores baratos en los que el par no es continuo en todo el recorrido del rotor, sino que depende de la posición de éste. De igual forma al acelerar, decelerar y al entrar en curva puede a ayudar a minimizar las transferencia de carga del robot debido a las inercias. No lo sé, yo tengo la duda si lo mejor es hacer la base en pcb como estáis haciendo la mayoría de los participantes, o si es mejor usar un material más flexible como el que llevamos, yo de momento creo que me voy a seguir decidiendo por una base de plástico.
Saludos