Interfaz Gráfica para la CMUCAM3 -...

Post on 23-Sep-2018

222 views 1 download

Transcript of Interfaz Gráfica para la CMUCAM3 -...

Interfaz Gráfica para la CMUCAM3

Arturo Camarillo Rodríguez

Seminario del Proyecto de Investigación en robótica Humanoide

Objetivo• GENERAL:• Aprender a manejar la interfaz Gráfica creada en LabView para la

cámara.

• ESPECÍFICOS:• Obtener una imagen de la CMU y verla en la interfaz• A partir de dicha imagen seleccionar los colores de nuestro interés y

crear los cubos de color• Escribir los datos en la cámara• Obtener la segmentación de la cámara• Ver los datos con los que está trabajando la cámara

Material• CMUCAM 3• Tarjeta SD• Adaptador TTL-Serial• USB2Dynamixel• Pila para la cámara• Objetos de colores distinguibles

DESARROLLO

Conexión de la cámara• USB2Dynamixel• Revisar que esté el switch en RS232

Serial

Cámara

Tarjeta SD

Adaptador Serial

Alimentación(5-12V)Pin derecho es +

Bajar el programa a la CMU• Instalar LPC2000 flash utility• Revisar en que puerto COM se dio de alta.

Modificar a un COM 1-5 en caso de ser necesario.

• Abrir el programa para subir el programa a la cámara.

Seleccionar Archivo .HEXNombre del archivo:

havimo_lpc2106-cmucam3.hex

Baud Rate y Puerto COMBaud Rate: 115200Puerto: En el que se haya dado de alta

Dispositivo y FrecuenciaDevice: LPC2106Freq: 14745 Hz

Apachurrar el botón mientras se baja el switch de encendido

El jumper es importante para bajara un programa a la CMUCAM3

Si lo hicieron bien…

Apachurrar el botón Mágico

Please reset… Dar OK

Re iniciar la CMUcam3 …Cerrar el programa de Philips

Prender y apagar el switch de la cámara

INTERFAZ GRÁFICA

Espacio de color RGB

Espacio RGB• Red• Green• Blue• Nosotros trabajamos con una resolución

de 1 byte• 0 a 255 por cada uno• 176*143 (resolución baja de la cámara)=

25,168 pixeles en total

COMUNICACIÓN

Opciones• 0: Recibir una Imagen• 1: Segmentar una Imagen y mostrar los

resultados (una por una o continuo)• 2: Cambiar valores de colores• 3: Ver valores de la cámara

• Hasta 7 colores

A continuación se explican cada opción.

Comunicación• Serial RS232• Interfaz manda comando• Cmucam recibe comando, procesa la

petición y envía respuesta• Interfaz recibe respuesta y la procesa.• Interfaz genera resultados.

• Código ASCII

Opción 0• Comando mandado: “aaaaa\n”• Regresa las 3 componentes (RGB) de los

25,168 pixeles.• Manda 143 paquetes de 530 bytes cada

uno• …

• Cada byte representa un número entre 0 y 255.

• Así hasta juntar la imagen

0x0D

1 2 176

0x0A

Opción 1• Comando mandado: “aaaab \n”• En el espacio en blanco aparecera ya sea

a=1 color; b=2 colores…g=7colores.• Manda el tiempo que tardó en analizar la

imagen (en ms) => “273\n”• Luego por cada color…• Si no encontró el color mandará: “no hay

objeto de ese color…\n”

Si encontró el color:• [# de grupos encontrados]\nPor cada grupo manda:• [#grupo][xmin][xmax][ymin][ymax][#pix]\nDonde• [#grupo] identificador del grupo• [xmin] coordenada en x ubicada a la izquierda• [xmax] coordenada en x ubicada a la derecha• [ymin] coordenada en y arriba• [ymax] coordenada en y abajo• [#pix] número de pixeles que contiene ese grupo

Ejemplo

• [3] [31] [45] [23] [64] [35] [enter]• 0x03 0x1F 0x2D 0x17 0x40 0x23 0x0D 0x0A

• Son máximo 10 grupos por color• Y solo se envían los datos de los grupos

que tienen más de 5 pixeles.• Si no hay ningún pixel del color o los

grupos tienen todos menos de 5 pixeles entonces aparecerá la leyenda “no hay objeto de ese color…”

Opción 2• Comando mandado: “aaaac \n”• Primer espacio corresponde al igual que

en la opción 1 al # de colores que modificaremos.

• Segundo espacio es variable, desde 6 hasta 42 bytes

• Cada 6 bytes son los límites de cada “cubo” de cada color

Donde RLL=red lower Limit,RUL=red upper Limit, etc

RLL RUL GLL GUL BLL BUL

Opción 3• Comando mandado: “aaaad\n”• Devuelve los límites de los cubos de los 7

colores que tiene registrados en la tarjeta SD

• “ \n”• Un paquete por cada color

RLL RUL GLL GUL BLL BUL

NOTA: Siempre se debe iniciar usando la opción 0.

Seleccionar Puerto COM

Indicadores de Texto

Indicador Opción 1: estatus de la segmentación# Grupos: grupos encontrados de cada colorTiempo: tiempo desde que se mando el comando hasta que se terminó de procesar la información (LabView) [ms]Tiempo de Segmentación: Tiempo que toma a la cámara analizar la imagen

Indicadores Gráficos

Imagen Original• Cuando se seleccione

la opción 0, la imagen que mande la cámara se verá en este espacio.

Filtro• De acuerdo a

como vayan variando los valores se irán presentando en este cuadro los pixeles que se encuentren dentro de nuestra área de interés.

• Se controla el número de colores

Caja delimitadora (BondingBox)

• Cuando se activa la opción 1, se verán en este cuadro los resultados de la segmentación realizada por la cámara.

• Con el siguiente control determinas cuántos colores:

Seleccionador• Para poder

seleccionar específicamente con un click que pixeles queremos.

• Si está en 0 no hace nada.

• De a uno por uno

Indicadores “cubos”• Podemos ver los límites numéricos de nuestros

cubos.• El led indica que color se está modificando

(depende del seleccionador)

Botón Resetear• Cuando lo pulsan resetean los límites del color

que se esté modificando (o sea el que tenga el led prendido)

Switch Continuo• Derecha activado• Izquierda desactivado• Solo debe activarse

con la opción 1• Provoca que la

segmentación sea continua, es decir que no es necesario apachurrar muchas veces el botón OK de la opción

Interfaz

Referenciaswww.cmucam.orgVision module Quick Start (Havimo):http://robosavvy.com/RoboSavvyPages/Support/Hamid/Ha

ViMoQuickStart.pdfPara bajar el Flash Utility:http://www.nxp.com/products/microcontrollers/support/softw

are_download/lpc2000/Para bajar el RunTime Engine:http://joule.ni.com/nidu/cds/view/p/id/2087/lang/es