Você está na página 1de 6

10 Congreso Nacional de Mecatrnica Noviembre 3 y 4, 2011. Puerto Vallarta, Jalisco.

Integracin de Sistema de Digitalizacin 3D Usando Matlab


Rodrguez-Morales Gustavo1, Guzmn-Ramos Valentin2, Martnez Hilariona2, Lpez Lpez Prudencio2 y Garza lvarez Adriana Guadalupe2
1

Facultad de ingeniera Mecnica y elctrica, Universidad Autnoma de Nuevo Len 2 Depto. Mecatrnica, Universidad Tecnolgica Gral. Mariano Escobedo gustavo.rodriguezml@uanl.edu.mx

Resumen
Se presenta la implementacin de un escner 3D utilizando Matlab y el micro controlador ATmega328 mejor conocido como Arduino. El objetivo de este trabajo es el llamar la atencin de los estudiantes de ingeniera para que el proceso de aprendizaje tenga mejor eficiencia. El escner 3D tiene como objetivo el extraer informacin de los relieves de los objetos, informacin que se utiliza despus en los procesos de manufactura a travs de la maquinaria CNC o la impresora conocida como prototipadora rpida para reproducir el objeto digitalizado. El sistema laser 3D requiere de pocos componentes para integrarlo, estos son un lser, una lente cilndrica, una cmara y un motor a pasos con sus controladores. Para realizar el escaneo de forma automtica se utiliza un micro controlador el cual montado en la tarjeta llamada arduino permite la comunicacin va USB con matlab para controlar todas las funciones del escner. El uso de la tarjeta Arduino se hace debido a su bajo costo y la fcil implementacin de controles a travs de esta.

interfermetro. Esta tcnica produce un patrn de franjas paralelas. El objeto a digitalizar deforma estas lneas lo que nos permite cuantificar la altura del objeto. Esta tcnica puede ser simplificada al generar las franjas con un proyector en lugar del interfermetro. La primera y tercera tcnicas se conocen como de luz estructurada [1][2]. En este trabajo, utilizamos la primera tcnica que consiste en una lnea laser la cual se deforma por la presencia del objeto y entonces se captura por una cmara CCD. Las imgenes capturadas se procesan con Matlab para extraer la informacin de la deformacin de la lnea laser y cuantificar la altura del objeto por la tcnica de triangulacin. Cabe destacar que algunas de las aplicaciones importantes de la luz estructurada son en mediciones sin contacto con la muestra, o tambin conocidas como no invasivas y no destructivas [6]. Las nuevas tecnologas en sensores inteligentes utilizan esta tcnica de visualizacin en aplicaciones de robtica y de visin por computadora [3]. Por otra parte, los cursos de programacin estn basados en prcticas utilizando modelos de fsica para simular algn proceso, lo cual es poco atractivo para el estudiante debido a que no refleja la prctica de la ingeniera que ellos buscan. Una buena alternativa es la integracin de un proyecto a lo largo del semestre que los anime a investigar e implementar las aplicaciones de su inters con el lenguaje de programacin. Otro factor que suele ser decisivo para la implementacin de un proyecto por un estudiante es lo costoso que suelen ser los componentes, sobre todo las tarjetas de adquisicin de datos y control. Tambin el uso de electrnica compleja que desalienta al estudiante a llevar a cabo este tipo de proyectos. La existencia de tarjetas para prototipos de bajo costo y de fcil uso abre un gran nmero de

Palabras clave: integracin estructurada, control, arduino.

de

sistemas,

luz

1. Introduccin
El integrar un escner para la digitalizacin de objetos en tres dimensiones es un tpico muy atractivo para estudiantes del rea de mecatrnica, electrnica y control. Por otro lado como parte de la llamada reingeniera el escner es ampliamente usado industrialmente [1][2]. En el proceso de digitalizacin en 3D existen tres tcnicas principales [2][3], 1) por triangulacin, esta tcnica utiliza dos puntos de referencia para calcular el tercer vrtice de un tringulo, el cual corresponde a la altura del objeto en digitalizacin [1] [4]. 2) la tcnica de tiempo de vuelo utiliza pulsos de luz para determinar la altura del objeto. 3) por interferometra [5], esta es una tcnica de medicin de alta precisin, pero requiere de un

Asociacin Mexicana de Mecatrnica A.C.

72

Instituto Tecnolgico Superior de Puerto Vallarta

10 Congreso Nacional de Mecatrnica Noviembre 3 y 4, 2011. Puerto Vallarta, Jalisco.

posibilidades para que el estudiante desarrolle habilidades de integracin de proyectos aplicando el conocimiento terico aprendido en clase. La tarjeta para prototipos usada en este trabajo es la llamada Arduino cuya informacin de construccin y uso est abierta a todo pblico en la internet [7]. Otro componente electrnico que se utiliz en este trabajo es el controlador del motor a pasos, llamado EasyDriver V4. El cual solo requiere que se le indique cuando mover el eje y en qu direccin para tener movimiento en el motor. En la siguiente seccin se analiza tericamente la el funcionamiento del lser. En la seccin 3 se describe la implementacin desde el punto de vista de programacin. En la seccin 4 se analizan resultados obtenidos con el escner.

funcin Gaussiana est dada por

x2 y2 g ( r ) = exp , w wy x

(1)

Donde wx y wy son el ancho de la gaussiana en cada dimensin. La correlacin cruzada entre dos funciones f(r) y g(r) esta dad por

f ( r ) g ( r ) = f * ( ) g ( r + ) d , (2)
0

Donde f* es el conjugado complejo de la funcin. Por otro lado, podemos usar el teorema de la correlacin y calcularla de la forma

2. Luz estructurada
2.1 Consideraciones tericas El sistema ptico consiste en un lser y una lente cilndrica para generar la lnea laser. Una cmara para capturar la escena del objeto con la lnea laser. El lser y la cama debern estar en planos diferentes los cuales hagan un ngulo para que se pueda visualizar la deformacin de la lnea laser (ver Fig. 1.)

f ( r ) g ( r ) = F F { f ( r )} F { g ( r )} , (3)

Donde F es la transformada de Fourier. El clculo de la correlacin resalta la intensidad de los pixeles que pertenecen a la lnea laser, y disminuyen la intensidad de la informacin de fondo. Este proceso discrimina la luz del ambiente y hace ms fcil el localizar el mximo de la lnea laser. En este mtodo el valor del ancho de la Gaussiana (wx y wy) tiene un efecto un importante en resultado de la correlacin. En la figura 2 se muestra los resultados del clculo para wx = 1, 10, 20 40, y wy = 1. Esta serie de imgenes muestra la importancia del ancho de la gaussiana para obtener una lnea continua de los mximos de intensidad.

Lnea laser Objeto

Laser Plano de proyeccin Camara


Fig. 1. Esquema del sistema para luz estructurada

2.2

Extraccin de la trayectoria laser por correlacin


Fig. 2. Serie de imgenes mostrando los efectos del ancho de la Gaussiana en el resultado de la correlacin. De izquierda a derecha wx = 1, 10, 20 40, y wy = 1.

El mtodo consiste en calcular la correlacin cruzada entre una funcin gaussiana de dos dimensiones y la informacin de la imagen. La

Asociacin Mexicana de Mecatrnica A.C.

73

Instituto Tecnolgico Superior de Puerto Vallarta

10 Congreso Nacional de Mecatrnica Noviembre 3 y 4, 2011. Puerto Vallarta, Jalisco.

En las figuras 2 y 3 el ancho de la lnea laser es variable, una medicin directa nos indica que vara desde 10 a 40 pixeles desde la parte inferior a la parte superior. El resultado de la correlacin con wx = 1 produce una curva discontinua prcticamente en todos sus puntos debido a que estamos detectando el moteo caracterstica inherente de la radiacin laser. En este caso una alta resolucin en direccin horizontal no es efectiva para aplicar en este experimento. Conforme se incrementa el ancho de la gaussiana la curva de mxima intensidad se vuelve continua en las zonas donde el ancho de la gaussiana es aproximadamente el ancho de la lnea laser. Con lo cual estamos detectando la lnea laser y no el moteo de la misma. El efecto se ilustra claramente en la imagen correspondiente a wx = 10, esta muestra continuidad solo en la parte inferior que es donde la lnea laser tiene aproximadamente 10 pixeles de ancho. Conforme se incrementa el ancho de la gaussiana la curva de mximos se vuelve continua como se muestra en las imgenes que corresponden a wx =20 y 40. Con wx = 40 se a alcanzado el mximo de ancho de la lnea laser y la curva de mximos es continua en su totalidad mostrando la variacin espacial de la lnea laser proporcionando la informacin real del perfil del objeto. El ancho de la gaussiana deber tener un lmite pues el hacer el ancho muy grande provocara que la correlacin fusione la lnea laser con el fondo de la imagen lo cual genera incertidumbre en las mediciones.

Realmente no hay una condicin para el ancho de la gaussiana, pero recomendamos mantenerla en algn valor cercano al ancho de la lnea laser. La figura 3 muestra el mismo proceso que en la figura 2 solo que para un ancho diferente en la direccin vertical. El incremento en el ancho vertical reduce la dependencia del ancho horizontal para alcanzar una curva continua de mximos. Con wy=1 la correlacin se calcula prcticamente para cada rengln de la imagen. Mayores anchos verticales implican el involucrar pixeles de los renglones vecinos en el clculo reduciendo la resolucin vertical de la medicin. 2.3 Calculo geomtrico de la altura del objeto

La reconstruccin digital de la superficie del objeto inicia con el clculo de la altura del objeto determinada a travs de la deformacin de la lnea laser. Este clculo se realiza con algebra vectorial, los vectores se muestran en la figura 4. El plano que contiene la lnea laser esta descrito por la ecuacin

= 0, ( r r0 ) n

(4)

Donde r0 es un punto conocido en el plano. El punto r es un punto arbitrario en el plano., en este caso seleccionamos el punto en la interseccin entre el plano y el eje ptico de la cmara.

Plano

n
r0
r2
Line

r1
Fig. 3. Serie de imgenes mostrando los efectos del ancho de la Gaussiana en el resultado de la correlacin. De izquierda a derecha wx = 1, 10, 20 40, y wy = 10.

v = r2 r1

Fig. 4. Definicin de los vectores usados para el clculo de la altura del objeto.

Asociacin Mexicana de Mecatrnica A.C.

74

Instituto Tecnolgico Superior de Puerto Vallarta

10 Congreso Nacional de Mecatrnica Noviembre 3 y 4, 2011. Puerto Vallarta, Jalisco.

La ecuacin de la lnea recta en forma vectorial est dada por r = r1 + tv , (5) Donde r1 es un punto conocido en la lnea, y v es un vector que tiene la direccin de la lnea, en este caso construido por r2-r1. En la cmara estos puntos pueden ser el centro del sensor y un punto en el vrtice exterior de la lente de la cmara. Sustituyendo la ec. (1.7) en (1.6) y resolviendo para t obtenemos

paso, es decir si utilizamos un motor de 200 pasos por revolucin tendremos una resolucin de 1600 micropasos por revolucin. La resolucin vertical la proporciona la cmara. En este caso las posibles resoluciones son las que tenga disponibles la cmara. Para este trabajo utilizamos la cmara Logitec C300 que cuenta con un sensor de 1.3 megapixeles. 3.2 Software

t=

( r0 r1 ) n , v n

(6)

Sustituyendo este parmetro en la ec. (5) obtenemos las coordenadas del punto de interseccin.

3. Implementacin
La implementacin consiste principalmente de la adquisicin de datos, el procesado de imagines y el control del sistema. 3.1 Hardware

El software para el funcionamiento del sistema se divide en dos partes, una respecto a la programacin del microcontrolador para la comunicacin y la segunda respecto a la programacin en Matlab para el control y anlisis de mediciones. El programa del microcontrolador se realiz en el lenguaje de programacin de Arduino, que, como se mencion antes este est basado en el lenguaje Wiring. La rutina tiene el objetivo de establecer comunicacin serial con Matlab para recibir rdenes para el control del motor y el lser. 3.3 Arduino El microcontrolador tiene un nmero pequeo de instrucciones entre las que encontramos instrucciones para la estructura del programa, para manejar variables, y funciones. En esta ocasin, usamos solamente cinco funciones para el control del motor y el lser. La adquisicin de datos se realiza a travs de la cmara la cual se controla directamente desde Matlab. La comunicacin a travs del puerto USB se establece usando las funciones del puerto serie. Las funciones usada fueron begin(), available(), read(). Para el control del motor y el lser se utilizan las funciones pinMode() y digitalWrite() para establecer los puertos y enviar informacin respectivamente. Un ejemplo esquemtico del programa es al siguiente
void setup() { Serial.begin(9600); /*inicia serial*/ } void loop() { /* ciclo principal*/ static int pm = -1; /* estado */ if (Serial.available() >0) { /*lee dato serial en ascii */ val = Serial.read(); /* aqui van las instrucciones para las acciones a efectuar */ /* establece el puerto de salida */ pinMode(pin,OUTPUT); /* Envia datos digitales al Puerto */ digitalWrite(pin,0);

El sistema consiste de un microcontrolador para el control del movimiento de la plataforma donde se contiene el objeto que se desea digitalizar. Tambin el control del lser se realiza a travs de este microcontrolador. Comnmente el programar estos dispositivos es una tarea difcil si no se es familiar con esta. Sin embargo la opcin de la electrnica de prototipos de fuente abierta (open source prototyping electronics) resulta muy atractiva en cuanto a contar con una tarjeta de adquisicin de datos accesible a los estudiantes por su bajo costo (aproximada mente $400.00 pesos) y facilidad de uso. La tarjeta utilizada aqu es conocida como arduino la cual utiliza el microcontrolador ATMEGA328 de ATMEL. El lenguaje de programacin es llamado Wiring [8] es un lenguaje de fcil aprendizaje muy parecido al lenguaje C. Manejar un motor elctrico siempre requiere de una cantidad grande de energa, y es comn el usar componentes electrnicos independientes de la tarjeta de control para suministrar esta energa sin poner en riesgo el microcontrolador. En este caso utilizamos el controlador llamado EASYDRIVER V4.2. Este controlador para motores a pasos es de fcil uso, el cual, adems puede controlar el motor hasta en 1/8 de

Asociacin Mexicana de Mecatrnica A.C.

75

Instituto Tecnolgico Superior de Puerto Vallarta

10 Congreso Nacional de Mecatrnica Noviembre 3 y 4, 2011. Puerto Vallarta, Jalisco.

digitalWrite(pin,1); } /* end if */ } /* end loop */

3.6 Anlisis de datos Para el clculo de la correlacin se genera la funcin gaussiana de la siguiente forma
[X,Y]=meshgrid(x,y); wx=15; wy=1; G=exp(-((X-max(x)/2)/wx).^2 -... ((Y-max(y)/2)/wy).^2);

3.4 Matlab Las rutinas en Matlab pueden ser divididas en comunicacin y captura, clculo y la interfaz grfica (GUI).
Comunicacin y captura 3.5 La comunicacin en Matlab puede ser llevada a cabo como se muestra en el siguiente esquema de rutina

Donde la longitud de los vectores x y y deben corresponder a las dimensiones de la imagen. Una vez establecida la funcin gaussiana la correlacin la calculamos como
% TF de la imagen y de la gaussiana FI=fft2(I(:,:,1)); % solo color rojo FG=fft2(G); % correlacin cruzada CC=fftshift(real(fft2(FI.*conj(FG))));

% define el objeto serial aser=serial(comPort); % Abre el puerto try fopen(aser); catch ME, error(['No puedo abrir: 'comPort]); end

Mientras se desarrollaba este trabajos nos enteramos de las rutinas desarrolladas por Giampiero Campa del equipo de Mathworks[9] las cuales proveen la comunicacin en el mismo estilo en que se presenta aqu. Estas rutinas son una opcin para simplificar an ms el proceso de integracin del sistema. Basta cargar estas rutinas en el microcontrolador y el resto de la programacin es completamente hecha en Matlab. El envo de datos al microcontrolador se realiza con la instruccin
fwrite(aser,[ascii values],'uchar');

Aqu discriminamos la parte azul y verde de la imagen a manera de filtro debido a que usamos un lser color rojo. Despus de la correlacin encontramos el mximo de intensidad usando la funcin find()
[row,col]=find(CC(n,:)==max(CC(n,:)));

Esta instruccin localiza el mximo del n-esimo rengln y proporciona su posicin en trminos de pixeles lo cual corresponde al ndice del arreglo que tiene la informacin de las intensidades de los pixeles. Finalmente se compara la deformacin dela lnea laser con respecto a la lnea laser cuando no se tiene objeto. La medicin estar dada en unidades de pixeles y la conversin a unidades de longitud se hace a travs de las ecuaciones (5) y (6.)

Donde los valores indican el nmero de Puerto y los datos a enviar. La cmara se caracteriza de la siguente forma
% Informacin de las camaras activas Cmr=imaqhwinfo('winvideo'); % Informacion de la 1 camara disponible dev_info = imaqhwinfo('winvideo',1); % Informacion de la resolucin A=dev_info.SupportedFormats'; % extrae el nombre de la 1 resolucin c=cell2mat(A(1)); % Establece la cmara y resolucin a % usar obj=videoinput('winvideo',1,c); % captura una imagen I=getsnapshot(obj); Fig. 5. Editor de GUIs de Matlab mostrando los controles para el sistema de digitalizacin 3D.

Asociacin Mexicana de Mecatrnica A.C.

76

Instituto Tecnolgico Superior de Puerto Vallarta

10 Congreso Nacional de Mecatrnica Noviembre 3 y 4, 2011. Puerto Vallarta, Jalisco.

3.7 GUI Otra caracterstica del trabajo es elaborar una interface grafica para que el sistema pueda ser usado por usuarios que no tengan conocimiento de Matlab. Un objetivo [particular es el incluir la mayor cantidad de parmetros que tengan que ver con el control del sistema y su uso eficiente. La figura 5 muestra una opcin de interface donde se controla la cmara que se usara, as como su resolucin, el nmero de capturas en la digitalizacin, el nmero de pasos del motor entre cada captura, y la posicin del objeto sin captura para efectos de alienacin antes de la digitalizacin. La figura 5 muestra la configuracin de los controles en el editor de GUIs de Matlab.

4. Anlisis de resultados
El hardware del sistema integrado se muestra en la figura 6. La figura 7 muestra un ratn de computadora digitalizado con el sistema desarrollado en este trabajo. Como es visible la digitalizacin es se realiza con buena alta fidelidad a reserva de las zonas de oclusin (o sombras) que producen informacin errnea en la digitalizacin. Las lneas la variacin en las lneas transversales se debe a la vibracin que tiene el objeto.

Laser
Fig. 7. Objeto digitalizado

Referencias [1] Raja V., Fernandes K. , Reverse Engineering, an industrial perspective. London: Springer-Verlag 2008 [2] Chen F., Brown G., Song M., Overview of three-dimensional shape measurement using optical methods, Opt. Eng vol. 39 no. 1pp 1022, January 2000 [3] Jhnd B., Hauecker H., Computer vision and applications, a guide for students and practitioners. San Diego, CA: Academic press, 2000 [4] Gasvik K., Optical metrology. London: John Wiley and sons, 2002 [5] Hariharan P., Optical interferometry. San Diego, CA: Academic Press, 2003 [6] Demeyere M., Rurimunzu D., Eugne C., Diameter measurement of spherical objects by laser triangulation in an ambulatory context IEEE Trans. Instrum. Meas vol 56 no. 3 pp 867872 June 2007. [7] http://www.arduino.cc [8] http://wiring.org.co/ [9] http://www.mathworks.com/academia/arduinosoftware

Arduino y controlador easy driver.

Camara Fuente para motor Lnea laser objeto

Motor

Fig. 6. Hardware del sistema integrado

Asociacin Mexicana de Mecatrnica A.C.

77

Instituto Tecnolgico Superior de Puerto Vallarta

Você também pode gostar