Interfaz Gráfica para la CMUCAM3 Arturo Camarillo Rodríguez Seminario del Proyecto de Investigación en robótica Humanoide
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