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.
Bueno, el programa que lleva pelopincho no es muy complejo. Básicamente tiene 3 rutinas:
acelera: toma como parámetro los ticks que tiene la recta
frena: el parámetro es el numero de ticks de la frenada
curva: diferencia entre los ticks de los encoders derecho e izquierdo
En todo momento ejecuta un pd, con un rango amplio de velocidades y constantes Kp y Kd correspondientes.
Yo creo que la parte interesante es que la diferencia de ticks entre los encoders de las ruedas no depende del radio de la curva, sólo del ángulo y de los parámetros del robot: anchura, diámetro de las ruedas, encoders, ... http://dl.dropbox.com/u/534319/Enviar%20dades%20cire/Estudi%20curvatura.pdf
Para verlo mejor, un pequeño estudio de la pista que mandaron para aessbot: http://dl.dropbox.com/u/534319/Enviar%20dades%20cire/Telemetria%20aessbot%20ficomic%202012.pdf
Hola DGM y pelopincho,
en el robot zero para saber si está en recta o en curva se comparan los ticks de cada enconder durante una distancia, pelopincho no hace esto, sino que cuenta de manera continua los incrementos de ticks en cada encoder y su diferencia, si entiendo bien lleva todo el circuito memorizado en el robot, es decir empieza en un punto que selecciona con los interruptores en función de en que lado comience la carrera el robot, y el programa sería algo así:
recta1 hasta que contamos x ticks en un encoder --> pasamos a curva 1 hasta que contamos x ticks de diferencia en los encoders --> pasamos a curva 2 hasta que contamos x ticks de difrencia ---> pasamos a recta 2 hasta que contamos x ticks en los encoders --> pasamos a.... y así, lleva todas las distancias de cada curva y cada recta en el robot, y lo único que hace es contar ticks y diferencias de ticks para saber cuando se acaba cada recta y cada curva.
En el robot zero sólo llevamos las distancias de las rectas para acelerar y frenar.
La ventaja de hacerlo así es que llevas toda la pista programada y el robot no tiene que estar detectando si está en recta o en curva. La desventaja es que tienes que programarlo y supongo que habrá que poder dar unas vueltas antes en el circuito y recoger datos con la telemetría para que el robot vaya seguro, no lo sé.
En el robot zero detectar las curvas y rectas depende del radio de curva y de la distancia en que contamos, se pueden llevar varias distancias para detectar las curvas y rectas de radio más grande y más pequeños, es decir pasar a curva si en x cm tenemos una diferencia de ticks de x (radio pequeño de curva), no pasar arecta hasta tener menos de x ticks en una distancia mayor, etc... Todo esto hay que ajustarlo y probarlo bien, pero se puede hacer.
Lo suyo es llevar un acelerómetro/giróscopo para detectar el trazado, lo que va a simplificar mucho la programación, creo que vamos a hacer una nueva versión de la electrónica para el próximo concurso para añadir estos sensores, ya que con sólo los encoders reconocer la pista es más difícil, probablemente también metamos un micro más grande.
Hola
Primero de todo, muchas gracias por colgar estos PDF's tan ilustrativos. Me lo he estado mirando y me surgen varias dudas...
- El algoritmo de reconocimiento de pista ¿Cómo filtra los distintos tramos, para no detectar las pequeñas rectas que pudieran haber en una curva de radio grande?. Yo entiendo que cado tramo está formado por un DeltaTick y un Tick acumulado de inicio y final de tramo.
- ¿Cómo correlas los datos, para saber en que tramo estás respecto al patrón que habías sacado durante el reconocimiento?
- ¿Qué puntos del circuito utilizas para sincronizarte? ¿Rectas, curvas, o rectas y curvas?
Muchas gracias
Y yo que pensava que Iban sin encoder...
Lo suyo es llevar un acelerómetro/giróscopo para detectar el trazado, lo que va a simplificar mucho la programación, creo que vamos a hacer una nueva versión de la electrónica para el próximo concurso para añadir estos sensores, ya que con sólo los encoders reconocer la pista es más difícil, probablemente también metamos un micro más grande.
Si no es mucho preguntar... ¿Cómo un acelerómetro y giroscopio te va a "simplificar" la programación?
Piensas en usar sólo un acelerómetro, sólo un giroscopio, o ambos? ¿Cómo vas a ir corrigiendo la deriva del giro en Z? ¿O piensas programarlo para que se corrija en vuelta?
Y sobre todo, seguirás necesitando un encóder no? Porque sólo el acelerómetro con giro... no veo cómo vas a detectar el trazado en su longitud, quiero decir, podrás detectar rectas y curvas, pero no la longitud de las rectas... :geek: