Isidoro-TFM-Rovio02

From robotica.unileon.es
Revision as of 20:35, 5 March 2011 by Anonymous (talk)

Jump to: navigation, search

thumb|right|200px|Rovio, la cámara web móvil.

El trabajo que aquí se va a presentar trata sobre la aplicación del robot ROVIO de la firma [Wowwee Technologies] a tareas de vigilancia. Para ello se utilizará la biblioteca de visión artificial OpenCV, que será la encargada de procesar la información proviniente de la cámara wifi de ROVIO en un ordenador portátil, ya que el procesador de ROVIO no tiene potencia suficiente para soportar la carga computacional que exige el uso de esta biblioteca. Como sistema operativo de base para el desarrollo de esta aplicación se utilizará GNU/Linux, en concreto la distribución [Ubuntu].

Introducción

Pendiente de redacción...

OpenCV

Pendiente de redaccción...

Instalación de la biblioteca

Para realizar la instalación de cualquier paquete lo más cómodo suele ser utilizar una interfaz gráfica. Los usuarios de Ubuntu pueden usar Synaptic (Sistema/Administración/Gestor de paquetes Synaptic) que es la interfaz gráfica por defecto en estos momentos, aunque también se puede instalar desde la línea de comandos:

<geshi lang=Bash lines=0>~$ sudo aptitude install libcv4 libhighgui4 libcvaux4 libcv-dev libhighgui-dev libcvaux-dev opencv-doc</geshi>

Los tres primeros paquetes corresponden a la biblioteca propiamente dicha, por tanto son imprescindibles. Los tres siguientes con el sufijo -dev son los ficheros de desarrollo que también los necesitaremos si queremos desarrollar aplicaciones con esta biblioteca. El último paquete contiene programas de ejemplo y documentación sobre OpenCV y aunque no es imprescidible para trabajar, sí que es recomendable como fuente de consulta.

Operaciones básicas

Pendiente de redacción

Prueba de colores en código

<geshi lang=C lines=0>#include <stdio.h>

  1. include "cv.h"
  2. include "highgui.h"

int main(int argc, char* argv[]) { if(argc<2){

   printf("Uso: cv_texto <nombre-de-imagen>\n\7");
   exit(0);
   }

IplImage *img = cvLoadImage(argv[1]);

 if(!img){
   printf("No puedo cargar la imagen: %s\n",argv[1]);
   exit(0);
 }
 

/* inicializa fuente y aplica texto */ CvFont font; cvInitFont(&font, CV_FONT_HERSHEY_SIMPLEX, 1.0, 1.0, 0, 1, CV_AA); cvPutText(img, "Hola Mundo!", cvPoint(10, 130), &font, cvScalar(0, 0, 0, 0)); /* muestra la imagen */ cvNamedWindow("imagen", CV_WINDOW_AUTOSIZE); cvShowImage("imagen", img); cvWaitKey(0); cvDestroyWindow("imagen"); cvReleaseImage( &img ); return 0; }</geshi>

Si guardamos este código con el nombre ejemplo.c y lo compilamos con g++ de la forma:

<geshi lang=Bash lines=0>~$ g++ -o ejemplo ejemplo.c -Wall -I /usr/include/opencv -L /usr/lib -lm -lhighgui</geshi>

deberíamos poder obtener un fichero que ejecutamos mediante la orden

<geshi lang=Bash lines=0>~$./ejemplo mi-imagen.jpg</geshi>

Seguimiento de colores

Pendiente de redacción

Anexos

Anexo A: Configuración de ROVIO

Pendiente de redacción

Anexo B: Comandos de control de ROVIO(?)

Pendiente de redacción