viernes, 21 de agosto de 2015

Tenemos un nuevo juguete

Desde que empezamos a trastear con OpenCV y la visión artificial, teníamos el gusanillo de incorporar esta tecnología a nuestros robots, y hoy os voy a presentar un nuevo juguetito que esperamos nos de muchas alegrías una vez insertado en un printbot.

El aparato en sí se llama Pixy CMUcam5 y como cuentan en su web, es un sensor de imagen con procesador propio programable, compatible con Arduino, Raspberry Pi y BeagleBone Black, Open Source y que está pensado para robots DIY y aplicaciones similares, ¡¡justo lo que estábamos buscando!!







Cuando te pones a mirar un poco lo que necesitas para realizar un robot con visión artificial, te das cuenta de dos cosas: la cantidad de datos que se generan en los sistemas de adquisición de imágenes y la capacidad de proceso que necesitamos en nuestros micros para digerir, manipular y responder adecuadamente a todos esos datos.

Bien, pues con Pixy estos dos problemas los tenemos casi resueltos, ya que cuenta con un procesador dedicado en exclusiva al sensor de imágenes y por lo tanto, se ocupa de procesar todo ese volumen de datos y nos entrega solamente los datos que necesitamos. Bueno, ya se que seguramente, habrá algunos datos que necesitemos y no los proporcione la interfaz actual de Pixy, pero es Open Source (Patrimonio Tecnológico de la Humanidad) y claro, seguro que podemos modificarlo. 


Vamos a ver que cosas nos ofrece el cacharrito, la mayoría aún no las he podido probar, así que voy a contar lo que nos dice el fabricante.


  • Se le puede enseñar a reconocer un objeto con solo apretar un botón. Esto no es del todo cierto, Pixy identifica objetos por tono y saturación, por lo que, mas que reconocer objetos, identifica patrones de colores. Esto si lo he comprobado y funciona. Y no solo puede reconocer un solo patrón, puede reconocer hasta 7.
  • También puede reconocer códigos de colores, o sea, dos o mas colores distintos colocados muy juntos y que Pixy es capaz de detectar y decodificar e identificarlos como objetos especiales.


  • Se puede utilizar para realizar seguimiento de objetos con la camara. Esto támbién lo he probado como podréis ver en el video que se acompaña a esta entrada.
  • Existen librerías de Software Libre para Arduino, Raspberry Pi y BeagleBone Black.
  • Es compatible con C++ y Python.
  • Ofrece comunicación a través de una o varias interfaces: SPI, I2C, UART, USB o salida analógica/digital.




Actualmente, el API de Arduino nos proporciona los siguientes datos:




  • Identificación del objeto
  • Las coordenadas x-y del centro del objeto detectado
  • El ancho y el largo del objeto
  • El ángulo de en el que se ha detectado el objeto respecto a la cámara.

Podría seguir contando mas cosas, pero, prefiero experimentarlas primero, así que, os dejo los enlaces a su wiki y a su github, yo me voy a jugar con Pixy, pero antes, os dejo un video con las primeras pruebas de detección y seguimiento. 



Los de Pixy también venden un mecanismo de tipo Pan/Tilt para la cámara, pero... somos makers y nos hemos fabricado el nuestro: 

Youmagine
Thingiverse


2 comentarios:

  1. Gracias por compartir. ¿dónde lo adquiriste? ¿Cuánto hacen pagar?

    ResponderEliminar
    Respuestas
    1. Hola Jordi, gracias a ti por leernos.
      Lo puedes adquirir en varios sitios, en su página tienen donde lo venden: http://charmedlabs.com/default/where-to-order-pixy/

      pero yo estuve comparando precios y al final, entre gastos de envío, el cambio y precios finales, lo que mejor salía era comprarlo directamente a ellos a través de ebay: http://www.ebay.com/itm/Pixy-CMUcam5-/262014835257?hash=item3d014d1a39

      Eliminar