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
Busca CMUCam3 seguro que te ayuda 😉
Si instalas una cámara, ésta necesitará de su propio microcontrolador (suelen venir con uno). La CMUcam3 tiene un ATMega a 60MHz, tampoco es una barbaridad, pero creo que cumple su trabajo justo para empezar (distinguir colores e igual algunas formas).
Generalmente, será la propia cámara la que tome las decisiones de qué hacer, dejando al micro que tenías para manejar el robot como "esclavo" que genere los códigos de movimientos.
A la CMUCamp puedes ponerle un SD (tiene que ser una SD muy específica), y ahí guardar el "vídeo" de lo que ve, para luego visualizarlo, o, creo recordar que trae un programita para poderlo ver en el PC en directo por cable serie.
Otra opción es la desarrollada por un compañero de aqui de ARDE, Omega1024, para mi todo lo que sea artesanal y tirando desde la base tiene un valor añadido que les falta a otros (mios incluidos), despues de ver este proyecto en directo en la Campus casi que me da verguenza decir que tengo una CMUCam2 a la que no he sacado partido aún.... os dejo el enlace, leed y sobre todo disfrutad....
http://www.zonabot.com/microbotica/9-microbots/31-cambot-micro-robot-sigue-lineas-con-camara-de-tv.html " onclick="window.open(this.href);return false;
furri.
Mi memoria no es muy de fiar, pero si no voy equivocado, la CMUCam2 lleva un ATmega algo pasado de vueltas (overclocked), y la CMUCam3 lleva un ARM (un Philips - NXP LPC) a 60MHz. Ya quisiera Atmel que sus AVR fuesen a 60MHz (anunque alguno de sus ARM Cortex M3 ya llega a 96MHz, los Xmega 'solo' llegan a 32MHz).
Muchas gracias.
Yo me habia hecho la idea de que tomado una Webcam, simplona y y extrayendo un frame de cada muchos, pudiera empezar a trabajar con todos los pixels, buscando colores, lineas rectas,... Vamos un analisis de los pixels muy basico de sumar, restar y comparar, a la vez estar visualizando en el PC el frame procesado por el microcontrolador para debuggear mediante prueba y error.
Quien sabe, quizas en el futuro inlcuso añadiendo en el codigo de microcontrolador alguna red neuronal muy basica para empezar a reconocer formas simples.
La cmucam3 ya la habia visto, la verdad que por encima y me parecia un poco cara (140€ en robotronica.es), ademas de no tener claro el entorno de desarrollo. Me parecia que me metia en un berenjanal donde me tenia que poner a estudiar de todo antes de poder meterle mano a la camara.
Lo que ha hecho Omega1024 esta realmente bien, es sugerente y va mas en la linea de lo que voy buscando. Quizas los PIC se quedan cortos y tenga que dar un salto a otro microcontrolador, por eso os preguntaba por donde empezar.
Tu por ejemplo furri, como te lo montas con la cmucam2, como la programas? ¿La tienes en un robot?
¿Es descabellado pensar en una webcam, extraer lo que saca por el usb, tunearla para extraer solo un frame de cada muchos (para no sobrecargar al micro) y analizar el array de pixels?
Muchas gracias
zapa