Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola pues me dispongo a desarrollar un velocista en un plazo de un año, es decir, para el próximo cosmobot si dios o la caixa quieren. Y me gustaría pedir consejo y escuchar opiniones sobre diferentes puntos.
La base va a ser un coche rc de escala 1/28, como el miniz del cosmobot, esta vez otro modelo de coche, al que he podido incorporar un microservo de 0.1 s 60 grados, para el giro.
Mi primera duda surge en que tipo de sensores para detectar la línea usar, o cuáles hay disponibles. Lo ideal es que cuanto más pequeños mejor, y probablemente haga lectura analógica sobre digital, ya veremos como afectan los cambios de luz.
Yo hasta ahora sólo conozco dos modelos de sensor, en CNY70 y el QRD1114 de fairchild que nunca he usado, en el cosmobot vi a gente que llevaba diversos tipos de sensores, algunos de ellos eran muy pequeños, a ver si alguien me puede indicar otro modelo de sensores distintos de los dos anteriores, o foto trt y foto diodo.
Segunda duda, es como colocar los sensores, mi idea inicial es volver a usar dos placas de sensores, una delante y otra detrás, la de detrás es muy útil para conocer la posición del robot respecto a la línea, para poder realizar cambios de carril y acelerar, cuando el robot está centrado.
En el cosmobot vi a un robot, este http://es.youtube.com/watch?v=IVLpgTclsrI que usaba esa técnica para seguir la línea, me comentaron que esta era la manera correcta de hacerlo, o como se debia hacer. Me gustaría saber que ventajas tiene de hacerlo de esta forma frente a la clásica placa de sensores fija en el coche. Supongo que de esta forma se podrá obtener un error mucho más exacto.
Y por último que microcontrolador usar, he estado leyendo y creo que la mejor elección para este tipo de proyecto es un DSP, además de un mayor número de MIPS llevas los multiplicadores por hard, bastante útil a la hora de realizar operaciones.
Las señales que habría que leer en principio serían los sensores y un encoder que lleve el coche, que aún no sé muy bien donde se lo voy a poder colocar, quizás en el piñon o en la corona, y luego por último leer la batería. Las salidas el motor y el servo.
Aunque con un micro de 8 bits bien programado se puede hacer todo esto y más, yo creo que es un buen proyecto para iniciarse con micros mayores (almenos para mi), aún no sé la cantidad de operaciones que habría que hacer por segundo, mi idea inicial siendo muy optimista, es alcanzar los 2 m/s de media.
Así que a ver si alguien me puede aconsejar un micro para empezar, de momento yo he pensado en el dsPIC del que ya tendría el programador, por lo que el coste sería cero. Pero puestos a aprender no sé si sería mejor irme al mayor fábricante, es decir texas instruments, lo que no sé es cuánto costaría un DSP de estos, y cuánto el material para el desarrollo. La idea es usar un micro smd frente a un kit, por razones de espacio.
Tb me estoy iniciando estos días con atmel, que supongo que tendrá su alternativa a usar.
Gracias. S2
Yo sigo con lo mío.
Por el giro del servo, la velocidad del robot y lo que tardaría en centrarse en la linea, se calcula que el muestreo debe ser de unos 2 ms. Eso quiere decir que hay mucho, muchísimo tiempo para capturar los sensores y hacer operaciones con ellos entre muestra y muestra.
Con esto quiero decir que los arboles no nos están dejando ver el monte. Tal vez sea mas importante ver como nos podemos anticipar a las curvas o hacer que el robot gire más o más rápido.
Los electrónicos tendemos (yo el primero), al hacer robots, a hacer mediocres diseños mecánicos y creernos que con una buena electrónica y una buena programación lo arreglaremos luego, pero no es así.
Creo que lo primero que deberíamos debatir en la mecánica en sí. Cuantos sensores? Como los colocamos? Que estrategia seguimos una vez en pista para recortar tiempos?
Una vez claro todo eso, un buen hardware y un buen soft hacen que la cosa mejore, pero al fin y al cabo son cosas "secundarias".
Lo digo porque al hacer el PD me he encontrado con que, entre la adherencia de las ruedas, las holguras y el lento giro, te limitan totalmente la velocidad.
Un ejemplo muy gráfico. Cuando empecé a hacer el trabajo, no conseguíamos buenos resultados a más de 1,5 m/s. En uno de los ensayos, pisé el robot y le tuve que cambiar las manguetas y llantas delanteras (no las cubiertas) por otras que me daban 6 milímetros más de anchura en el eje delantero. Ese cambio, permitió que el robot pudiera ir a 1,6-1,7 m/s sin problemas. Conseguir eso programando solo no hubiera sido imposible, pero hubiera requerido muchísimo más esfuerzo.
_Silent, de acuerdo totalmente en que la mecánica es muy importante, y por mucho programa que hagamos si el robot tiene holguras, desajustes, un servo lento, etc, etc, no conseguiremos nada.
Pero como todo se puede hacer por partes, no hay problema en ir mejorando cada parte. Pero de toy la razón en que primero habría que hacerse un buen chasis, con unos buenas motores, etc. y después dedicarse a la programación. Yo estoy en la fase del chasis aún.
. En uno de los ensayos, pisé el robot y le tuve que cambiar las manguetas y llantas delanteras (no las cubiertas) por otras que me daban 6 milímetros más de anchura en el eje delantero. Ese cambio, permitió que el robot pudiera ir a 1,6-1,7 m/s sin problemas. Conseguir eso programando solo no hubiera sido imposible, pero hubiera requerido muchísimo más esfuerzo.
Eso no me lo habías dicho... x_x
Sube los videos.
Las medidas del error yo sigo pensando que deben ser reales con la distancia. Hace mucho que no me veo la teoría de esto, pero recuerdo que era para sistemas LTI, así que las explonenciales y potencias no sé si sobran.
Ya bueno, tampoco tengo porqué contarte todos los detalles de lo que pasa con tu robot :-D. en realidad es una llanta de las de serie lo qeu se rompió, pero tube que cambiar las manguetas enteras porque tenía mis llantas montadas en ellas y no las puedo quitar.
Eso qeu dices de los sistemas LTI es totalemnte cierte. Toda la historia esta del PID solo funciona si el sistema es lineal o si está linealizaqdo e caso de no serlo. Estaría por ver si eso de hacer la lectura del error exponencial, no haría que el regulador corrigiera exageradamente y descontrolara el robot.
JM, no hace falta que sean lineales. En la campus del año pasado, en el taller de speedrunners, primero las tenía lineales, pero las cambié a exponenciales (no exactamente, pero li di mayor peso a los sensores externos que a los internos) y me fué mejor.
Piensa que en el centro te interesa que sea estable, suave. Pero según se acerca al exterior te interesa que sea más rápido, para recuperar la posición antes. Viene a ser lo mismo que hace la acción D del PID.