Muy buenas a todos, en esta entrada vamos a realizar una
práctica muy útil, se trata de, mediante 2 web cam, ser capaces de medir 2
piezas. Esto, como es un tutorial, vamos a trabajarlo desde adquisición de
imágenes, y no con cámaras de verdad.
En programa solo se realizará en visión, sin embargo, habrá
que hacer una serie de operaciones de
comparación desde labview.
Empezaremos poniendo un poco la sucesión de funciones.
Seguidamente os iré explicando cada una, como siempre.
Como veis, primero son 2 adquisiciones, tanto la de flanco
izquierdo, como del derecho, para medir nuestra pieza. Después necesitamos captar cada flanco, para
poder medirla, por lo que creamos la 3 función.
Después vamos a necesitar una función que se encargará de
seleccionar con cuál de las 2 vamos a ver el interface, es decir, los elementos
booleanos y demás.
Después ponemos otra búsqueda de flanco, en este caso el
izquierdo, seguido de un calculador, que será el que haga la comparación y nos
muestre la medida de la pieza.
Finalmente ponemos un overlay para mostrar la información en
la pantalla.
Vamos con el inicio del programa. En primer lugar deciros
que ambas imágenes deben estar calibradas, yo solo explicaré una, vosotros deberéis hacer lo mismo con la otra.
Como siempre, seleccionamos “simulatte adquisición”
pondremos un nombre para la función y seleccionaremos la ruta de las imágenes,
que es esta.
Seleccionaremos que se reproduzca el ciclo completo de
imágenes.
Entonces ahora daremos en la parte de arriba a “calibration”,
y le damos a crear nueva, este paso es más o menos al de la entrada de
calibración de objetos, yo os voy a poner directamente las fotos que vea
importantes y las explicaré.
Le daremos y aparecerá una especie de “guía” que nos llevará
por varios pasos.
El primer paso será poner un nombre a la calibración y
también decir quién es su creador.
Marcaremos que la calibración nunca expira.
Daremos a siguiente, y diremos que es una “calibración
simple”.
En el siguiente paso diremos que vamos a usar la imagen ya
seleccionada “use current image”
En la siguiente parte diremos que queremos un pixel redondo “square
pixel”.
Aquí tendremos que seleccionar los 2 pun tos para calibrar,
tan sencillo como seleccionarlos manteniendo el botón control pulsado, recordad
que debe ser lo más fiel a la imagen, para que, cuando estén puestos digáis “hay
1 cm” y esté bien.
Ponéis más o menos lo que pongo yo, y pasamos al siguiente.
En el último solo nos queda poner el eje de coordenadas.
Os aconsejo que pongáis mis medidas, 69 en el x y 340 en el
Y, poned que la referencia es de de x la horizontal e Y la vertical.
Con esto ya tendríamos echa nuestra calibración, ahora
debéis hacer exactamente lo mismo pero con la otra adquisición.
Recordad que la calibración es muy importante.
Ahora lo que vamos a hacer es buscar los flancos, esto es
una tarea bastante sencilla si se tiene una imagen de buena visibilidad. Para
eso cogemos la función “find edges” que os pongo aquí.
Como siempre, cuando la seleccionemos , deberemos dar un
nombre a la función.
En la ventana settings, yo he puesto buscar todos los
flancos “all edges” aunque en este caso con encontrar uno nos valdría, después
le digo que la polaridad será de oscuro a claro, por lo que voy a trazar la
imagen de izquierda a derecha, como os enseño en la imagen. Lo demás yo lo
dejaría por defecto, porque no creo que tengáis problemas en capturar el
flanco.
Esto sería la polaridad. (de oscuro a claro)
Con el flanco izquierdo deberéis hacer exactamente lo mismo,
solo que debéis cambiar, tanto nombre, como dirección del trazado.. etc.
Ahora lo que haremos será seleccionar la imagen con la que
vamos a trabajar, como veis, el programa se encuentra en un solo estado, nosotros
trabajamos realmente sobre 2 imágenes, sin embargo debemos tener seleccionada
1, para trabajar con ella, por lo que con esta función, una vez la metemos,
solo debemos seleccionar la adquisición 1, que será la que muestra la parte
izquierda de la pieza.
Veréis que cuando demos un paso, la adquisición en la que se
detiene siempre es la de la parte izquierda.
Bueno ya casi estamos acabando, ahora solo nos queda la
función que contará la medida de nuestra pieza y nos dirá si vale o no.
Para eso, como os dije vamos a tener que hacer una función
con labview. Para eso seleccionamos la función siguiente.
Cuando le deis, os saldrá una imagen en blanco, será ahí
donde tengamos que meter nuestro proceso de labview. El proceso es el
siguiente.
Como veis, no es nada complejo, en resumen, lo que hace esta
unión de puertas es sacar un valor, más o menos aproximado de la medida de
nuestra tabla. Por un lado saca el valor del flanco derecho, y le suma 380, a
ese resultado le resta su flanco izquierdo .
Después colocamos un mayor y un menor, para establecer un
rango entre 39 y 405 como medida aceptable, por ultimo una salida booleana . Y
ya estaría.
Y ya tendríamos el valor que deseamos, ahora solo
necesitamos meter un “custom overlay” como os muestro aquí.
Y ya tan solo lo que tenemos que hacer es sacar las dos
cosas que necesitamos, por un lado, la medida exacta “value” y por otro lado un
booleano que nos diga si está bien o mal. Como veis donde pone “value” ponemos
la variable que queremos mostrar, en el caso del led de correcto /incorrecto,
pondremos el “step value”, como está en la imagen.
En el caso de la medida exacta pondríamos esto.
Metemos entre corchetes lo que sería el nombre de la función,
en mi acso “ancho de pieza” y después le he puesto yo, pixels como nota de guía.
Con esto, ya estaría solo faltaría dar
click en el lugar donde deseamos ponerlo de la imagen y listo.
Esto ha sido todo en la entrada, a continuación os pondré un
vídeo de cómo solo una de las tablas da el visto bueno, las demás, por salirse
del rango, o bien por que no llegan o se pasan, se las pondrá como incorrecto.
Espero que os sirva de ayuda, un saludo!
No hay comentarios:
Publicar un comentario