Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola
Me gustaria que me dierais algunas pistas de como empezar en el procesado de imagenes aplicado al manejo de un robot autonomo. en mis proyectos de robot, uso PIC y sensores IR para la deteccion de objetos, switches fin de carrera, CNY70, en fin, lo basico, pero me gustaria ir un poco mas lejos y dotar a mi robot de vision para reconocer formas, colores, ....
Estaba pensando en empezar con algo sencillo. He estado mirando los hilos de los foros y he encontrado algunas referencias a vision artificial, pero no he encontrado pistas claras para alguien que quiere empezar conectando una camara a un microcontralador. Si pudierais indicarme datos sobre que camaras son las mejores y que esten disponibles en el mercado, cuales son los microcontroladores mas sencillos para empezar y que entornos de desarrollo y programacion.
Tengo dudas tan basicas como "si la camara esta conectada al microcontrolador que es quien procesa la imagen y da ordenes al robot, ¿Puedo ver en el PC la imagen como la ve el microcontrolador?" Entiendo que esto es necesario para poder debuggear el programa pero tambien para poder ver a traves de los ojos del robot.
Como veis, quiero tirar del hilo a ver hasta donde llego.
Muchas gracias por vuestra ayuda.
zapa
Por unos 35€+gastos de envío (el precio final te lo tendría que preguntar) te saco yo una cámara con salida puerto serie (3v3):
http://www.bricogeek.com/shop/171-camara-jpeg-con-interfaz-uart.html " onclick="window.open(this.href);return false;
Eso sí la optica es distinta (2.8 creo).
S2
Ranganok Schahzaman
A mi personalmente me gustaría pillar algún cacharro con linux empotrado, y reutlizar alguna webcam usb que sea compatible con linux:
Por ejemplo, la placa esta no pinta mal:
http://softwarelibreeingenieria.site40.net/?p=448 " onclick="window.open(this.href);return false;
Lo bueno de linux es que podrías meter un servidor web y servidor de imágenes, de manera que si le pones un módulo wifi podrías estar accediendo a través de un portátil a la cámara y "reprogramar" el robot de forma remota a través de un interfaz web.
Por tema de €, Lo más interesante de todo es aprovechar un punto de acceso o router wifi para cambiarle el firmware y que haga lo que nos interese; aprovechamos el puerto serie 3.3v que suelen traer para añadirle una controladora de servos y ya tienes un robot, sensores por ic2, etc, como hace la gente esta del
http://es.wikipedia.org/wiki/WRT54G " onclick="window.open(this.href);return false;
Por cierto, alguien sabe por cuanto salen placas de estos cacharros?:
http://www.wifibot.com/page7.php " onclick="window.open(this.href);return false;
http://www.pcengines.ch/alix3d3.htm " onclick="window.open(this.href);return false;
Interesante Ranganok, dejame que le dé un par de vueltas. Poder tomar tanto snapshots como previews (video) y el tema de poder controlarla por comandos es muy interesante y encaja con lo que estaba pensando.
He visto que en la web tiene un precio mas caro, si me decido te mando un mensaje y hablamos como me consigues la camara. gracias.
Vuelvo con la pregunta del microcontrolador, ¿podria hacer procesado basico de los pixels con un PIC887 a 20MHz? o tengo que irme a otro microcontrolador?
Saludos
zapa
Por poder puedes... pero si haces un sencillo cálculo:
A resolución 640*480 tienes algo más de 300.000 píxeles... cada píxel está formado por 3 bytes, osea, que tendrías que procesar 1.200.000 bytes... a 20MHz ejecutas 20millones de instrucciones, y hazme caso que cada pixel lleva bastaaante más que 1 instrucción. Puedes hacer cálculos a menores resoluciones, si quieres, pero seguirás pilladísimo.
Lo caro en ésto de la visión, no es la cámara, que es relativamente barato, lo caro es el micro que hay detrás que mueva dicha cámara. La CMUCamp lleva uno de 60MHz y una resolución de 352x288. Y por lo que veo, intentar hacer el seguimiento de un color (lo típico de la pelota naranja) la gente a penas alcanza 10Hz... Si te fijas en la Robocup, TODOS los participantes llevan mínimo una PDA hackeada para manejar la cámara... y aún así los resultados obtenidos suelen ser bastante... "pobres". No quiero desilusionarte, con todo ésto. No tienes por qué manejar todos lo pixeles, ni mucho menos, pero es sólo para que te hagas una idea de que debes ir muy holgado para conseguir algo decente.
Yo tiraría más por un dsPIC que por un PIC16, más que nada porque tiene implementado ya el multiplicador Hw y si se hacen operaciones de 16bits en coma fija es bastante rápido.
Además para procesar la visión usaría uno de los modos de preview más bajos (80x60 u 80x64) con lo que los requerimientos de velocidad disminuyen (para detectar un color predominante es más que suficiente).
S2
Ranganok Schahzaman