jueves, abril 10, 2008

3m/s (II): Analógico vs Digital

En un velocista hay que seguir un camino marcado entre dos líneas negras "pintadas" sobre un fondo blanco... Muchas veces para ahorrar tiempo y proceso lo que se hace es coger una de las dos líneas (generalmente la interior) y seguirla. Para hacernos una idea:



La forma de "ver" esa línea es casi siempre igual sensores de infrarrojos que distinguen entre el fondo blanco y la línea negra: los omnipresentes CNY70 (aunque se pueden usar otros).

La mayoría de los sensores de infrarrojos que nos encontremos para este menester dan una salida analógica en función de la cantidad de luz que reciben, ahora bien, cómo debemos procesar esta información.

  • Por un lado tenemos la opción digital, es decir se escoge un umbral y todo lo que sobrepase de ese umbral es un '1' y lo que no un '0' (en realidad se escogen dos umbrales y se realiza un trigger Schmitt)

  • Por otro lado la opción totalmente analógica en la que no usamos micro y las decisiones que afectan al movimiento se realizan por añadir y substraer señales unas de otras. Dado la complicación que esto supondría (sobretodo a la hora de cambiar "el programa") esta opción queda totalmente descartada.

  • Algo más intermedio sería utilizar un conversor analógico-digital para tener las señales digitales pero no como 1s y 0s sino como bytes.


Las ventajas e inconvenientes son claros, la "digitalización" de las señales aumenta la velocidad de proceso a costa de perder información de la señal... así que la pregunta es: ¿cuánta información necesitamos? o mejor dicho ¿de cuánta información podemos prescindir?

S2

Ranganok Schahzaman

4 comentarios:

Anónimo dijo...

Una alternativa:

Se puede conseguir rapidez muy superior usando una mini vídeo cámara enfocada hacia la pista, un foco de luz a base de led, un filtro electrónico que permita identificar la línea contínua en alto contraste, algo de memoria y una red neural que aprenda a anticipar la ruta.

De esa forma, en vez de medir el punto actual del movimiento del vehículo, se mide y predice la ruta muy por delante, permitiendo tomar una decisión de aceleración, giros, e intentar evitar el uso de frenos.

El entrenamiento de la red neural permitirá que el vehículo se supere a sí mismo hasta un límite físico.

Ranganok Schahzaman dijo...

Sí, la idea de la cámara ya la había pensado, sin embargo uno de los problemas que tengo es la falta de recursos... lo cual nos lleva a una pregunta que he planteado en este post y que es muy indicativa en este caso ¿cuánta información es necesaria?

Mi objetivo son los 3m/s, así que ¿necesito una cámara y una FPGA con procesado de imagen y una red neuronal para consegirlos? ¿puedo hacer lo mismo con un PIC18, varios sensores de IR y ajustando bien la mecánica?

S2

Ranganok Schahzaman

Anónimo dijo...

Bien. Estaré atento entonces a ver si consigues los 3 m/s con IR. Luego, sería interesante ver resultados comparativos entre opción analógica, digital y la alternativa de anticipar el estado de la pista interpretando imagenes de vídeo.

* ¿Cómo imaginas la opción analógica? tal vez entre una conexión directa de IR con una función para el giro y otra función para aceleración? sin pasar por el PIC? es una idea muy loca?

* En la opción digital, todo se traduce a una predicción y luego confirmación de pulsos discretos. La predicción de (a) línea recta y (b) curva.
Se podría asumir que una curva completa (antes de una inflexión o fin) se puede predecir obteniendo datos del primer segmento, y luego una confirmación obteniendo los datos del último segmento.

Para lo anterior, con programación clásica, se puede optimizar aun más, si se almacenan bits para cada tipo de curva aprendida (ángulo inicial, longitud y ángulo final) en un mismo orden. Así, en la primera vuelta, es un reconocimiento a velocidad inferior, para aumentar el offset de velocidades máximas desde la segunda vuelta, y así ganar las carreras.

En parte, se responde a la pregunta de cuánta información se necesita. Primero, almacenando datos según la cantidad de curvas, luego reciclando esa misma memoria para reemplazarlo por una información (no datos) de toda la pista. Ese momento de optimización es otro desafío por resolver, proponiendo tomar como punto de partida la recta más larga y no el inicio de la pista.

Aun así, defendería mejor una alternativa con red neural que aprende en dos niveles: pista completa y segmentos menores. Es más natural así.

salu2.

seba dijo...

quetal, mira soy de argentina, y aqui hay una competancia que hace la UTN ( unversidad tecnica nacional ) de summo y de carrera de seguilineas.

Se han logrado resultados optimos utilizando 1 par de infrarrojos. poniendolos a ambos lados de la linea ( dependiendo del espesor y dandole un margen de error). Cada uno lo llebas a un AOP y dependiendo de la derivada ( pendiente o aceleracion) del crecimiento de recepcion de uno o otro fotodiodo, se puede dar a conoser el angulo o curbatura de la curba, y poder asi lograr mayor presicion y velocidad a la hora de doblar que es el unico inconveniente que te limita la velocidad.
Ej:

tengo 2 IR, y dos fotodiodos. ( conviene usar LDR con filtro, xq son mas sensibles al medir distancia o direccion). Supongamos que la pista tiene una curba a la izquierda, entonces comenzara a resibir mas del lado izquierdo que del derecho, por ende y por conveniencia conviene que baje la velocidad del motor izquierdo y aumente la del derecho. Entonces si la curba es a 90 grados, el reseptor izquierdo estara saturado y el motor iizquierdo se parara, el reseptor derecho no resibira intensidad de luz, por ende acelerara el motor derecho.

Asi logramos doblar ( perdiendo mas inercia mientras mas cerrada sea la curba ) otra alternativa es hubicar otro par de emisores y reseptores en la punta del vehiculo, asi se puede adelantar a la curba y no perder tanta inercia haciendo la curba mas amplia.

Cualquier cosa i meil es sansoni-91 de hotmeil.