• No se han encontrado resultados

2.3. FROVIS: “A Flexible Robot Vision System” (Robot apoyado por visi´ on)

3.1.2. Spectation

La programaci´on del sistema de visi´on Simatic VS-725 de Siemens se realiza a trav´es del software Spectation [SIE03b]. Este software cuenta con una interfaz gr´afica en donde se realiza el dise˜no del producto, donde el producto puede ser una identifi- caci´on o inspecci´on. Pueden existir tantos productos como se requiera. Cada producto esta conformado por diferentes “SoftSensors”, que son los que realizan el an´alisis sobre la imagen.

“SoftSensors” utilizados

A continuaci´on se presenta un descripci´on de los SoftSensor que debido a sus caracter´ısticas pueden ser de mucha utilidad al realizar ensambles o inspecciones, una explicaci´on mas completa y detallada se puede encontrar en [SIE03b].

“Measurement SoftSensors”

Los “Measurement SoftSensors” son utilizados para la medici´on de las partes que son inspeccionadas. Esta madici´on se realiza en pixeles, al menos que un factor de es- cala sea creada y calibrada (en “Math Tools” ´o Herramientas Matem´aticas, se crea el factor de escala). Hay dos tipos de SoftSensor de Medici´on: los que se basan en l´ınea y los que se basan en ´area.

Hay cuatro mediciones principales que los SoftSensor puede realizar: desfazamiento de una l´ınea, medida de calibraci´on, ajuste de l´ınea y c´alculo de un radio. El SoftSensor que mide el desfazamiento de una l´ınea trabaja como el SoftSensor de desplazamiento. Mide la distancia del origen del SoftSensor al pixel donde la caracter´ıstica es encontra- da. La medici´on la hace en pixeles a diferencia del SoftSensor de desplazamiento que es en porcentaje.

Ls medici´on de calibraci´on puede ser realizada usando SoftSensor de l´ınea o de ´

area. En ambos casos el SoftSensor puede medir de adentro hacia afuera o de afuera hacia adentro.

Figura 3.2: Uso de los SoftSensor de calibraci´on para obtener la altura.

El SoftSensor para el ajuste de l´ınea es un SoftSensor que mide por ´area. Funciona de la misma manera que una SoftSensor de calibraci´on de ´area, pero mide solo en una direcci´on. Consiste de muchas l´ıneas de medici´on. Cada linea de medici´on intersecta el borde de la parte a ser inspeccionada y determina el punto de intersecci´on.

Circle”. Tienen la misma funcionalidad; la diferencia es en su aplicaci´on. Find Circle debe ser usado cuando el c´ırculo que va a ser medido es un c´ırculo completo. El de segmento es usado cuando no es un c´ırculo completo. En la Figura 3.3 se muestra un ejemplo de la utilizaci´on de estos SoftSensors.

Figura 3.3: Uso de los SoftSensor “Find Circle” y “Segmented Find Circle”.

Herramientas Matem´aticas

Las herramientas matem´aticas ofrecen una variedad de SoftSensors. A diferencia de otras herramientas, cuando se unan los SoftSensor de herramientas matem´aticas, no se requiere ning´un dibujo adicional. Utiliza referencias hacia otras herramientas usadas en el objeto. Hay tres tipos de SoftSensor Matem´aticos. El primero realiza c´alculos b´asicos basados en la salida de otros SoftSensors.

El segundo tipo es el de factor de escala. En casos en donde la distancia en pixeles no es suficiente, el usuario puede crear un factor de escala para convertir los pixeles en unidades. Hay dos maneras de ejecutar el factor de escala: est´atico y din´amico. El m´etodo de escala est´atico ejecuta el factor de escala una vez y lo usa para imagenes subsecuentes. El m´etodo din´amico requiere que un objeto con un tama˜no conocido per- manezca enfrente del sistema de visi´on mientras la imagen es inspeccionada. El tama˜no de este objeto en pixeles es calculado en cada inspecci´on.

El tercer tipo de los SoftSensor de matem´aticas es el de transformaci´on de co- ordenadas. Estos SoftSensors son usados para establecer un sistema de coordenadas diferentes al de la imagen en pixeles o para la correcci´on de la distorci´on del lente. El usuario necesita seleccionar un m´ınimo de 5 puntos en la imagen. El SoftSensor de transformaci´on de coordenadas usa esos puntos para generar el nuevo sistema de coor- denadas basado en la coordenada original (pixeles) y en la nueva coordenada (definida por el usuario). Despu´es de que este procedimiento es completado, cualquier softsen- sor puede referenciar el nuevo sistema de coordenadas para generar su salida en base

a las coordenadas definidas por el usuario. Esto es, cualquier ubicaci´on en la imagen tendr´a las coordenadas originales y la opci´on de reportar en las funciones definidas por el usuario. La principal aplicaci´on de esta herramienta, es la interfase con un robot. Las coordenadas pixel necesitan ser transformadas hacia coordenadas robot antes de tranferir los datos.

Este tipo de SoftSensor es muy ´util para aplicaciones en donde el robot va a tomar una pieza, en la que no conoce su posici´on y/o orientaci´on. A continuaci´on se encuentran los pasos propuestos en [SIE03b] para programar un SoftSensor de transformaci´on de coordenadas.

Seleccionar puntos espec´ıficos (m´ınimo 5 para transformaci´on simple de coorde- nadas, y mas de 10 si se va a corregir la distorci´on del lente) para los cuales se conoce la coordenada del robot.

Crear un SoftSensor que genere un punto como su salida para cada uno de los puntos para obtener la coordenada en pixeles de ellos.

Crear un SoftSensor de sistema de coordenadas y use los SoftSensor creados en el paso anterior como puntos de calibraci´on. Para agregar el punto de calibraci´on uno por uno, el usuario necesita especificar la coordenada de robot del punto. Al presionar el b´oton de actualizaci´on de las coodenadas, las coordenadas del pixel ser´an agregadas autom´aticamente.

Crear un SoftSensor para buscar la parte a ser inspeccionada.

Crear un nuevo SoftSensor de transformaci´on de coordenada para transformar el SoftSensor que busca la parte basado en c´alculos hechos por el sistema de coordenadas calibrado previamente. Este SoftSensor debe obtener la posici´on de la parte usando coordenadas del robot.

“ObjectFind SoftSensor”

“ObjectFind SoftSensor” usa algoritmos avanzados para aprender las caracter´ısti- cas de un objeto y encontrar las ocurrencias de dicho objeto en las imagenes subse- cuentes. [SIE03c]

Cuando el SoftSensor es dibujado, este binariza la imagen basado en el umbral seleccionado. Despu´es, analiza el objeto blanco u oscuro presente (de acuerdo a la selec- ci´on del usuario) y extrae varias caracter´ısticas que describen la geometr´ıa del objeto. La lista de caracter´ısticas se almacena en memoria y el SoftSensor usa esa lista como el modelo aprendido. En imagenes subsecuentes, el algoritmo busca por las caracter´ısticas

contenidas en el modelo para determinar la presencia del objeto aprendido. Hay dos tipos de ObjectFind SoftSensor: de ´area simple y de ´area doble. El de ´area simple debe ser dibujado alrededor del objeto y cuando el SoftSensor aprende las caracter´ısticas de este, puede ser extendido para cubrir el ´area donde el objeto pudiera encontrarse como se observa en la Figura 3.4. El de ´area doble determina dos ´areas; el ´area interior es para aprender el objeto y debe ser dibujado justo sobre los bordes del objeto. El ´area exterior indica donde va a ser buscado el objeto. Ambos sensores desempe˜nan el mismo trabajo, pero el SoftSensor de ´area doble es preferido en casos en donde el objeto que cambia de posici´on sobre toda el ´area necesita necesita volver a aprenderse usando la se˜nal de reaprendizaje. Para lograr esto, el nuevo objeto a ser aprendido debe estar colocado en el rect´angulo interior.

Figura 3.4: Uso del “ObjectFind SoftSensor”.

ObjectFind SoftSensors tienen un n´umero de par´ametros que el usuario puede ajustar para encontrar mejor los objetos. Primero, puede ser ajustado para encontrar un solo objeto (cuando se usa para referencia de posici´on) o para encontrar m´ultiples objetos (cuando se usa para contar partes). Para minimizar el tiempo de proceso, el usuario puede limitar el moviento que el objeto tiene. Esto es, cuando la aplicaci´on lo permite, el usuario puede limitar el movimiento en la direcci´on de X y Y, as´ı como en la rotaci´on, para que la b´usqueda del objeto no tome mucho tiempo de procesamien- to. Las distancias y ´angulos indicados por el usuario son relativos a la posici´on que el objeto tiene cuando el modelo es aprendido. As´ı mismo, cuando el SoftSensor es ajus- tado para m´ultiples objetos, el usuario puede especificar una separaci´on m´ınima de los objetos en pixeles (traslaci´on) y en ´angulos (rotaci´on). Cuando esta opci´on es usada y los objetos son encontrados con lo m´ınimo permitido, solo el objeto que concuerda con el modelo aprendido es reportado. Si la distancia entre el objeto y el lente tiende

a variar, el objeto va a parecer que varia en el tama˜no. Para estos casos, el SoftSensor ofrece un par´ametro de tolerancia de escalamiento el cual el usuario puede seleccionar para indentificar objetos cuando estos son proporcionalmente mayores o menores que el modelo aprendido.

Otro par´ametro importante que tiene el ObjectFind SoftSensor es la flexibilidad. El usuario puede ajustar el SoftSensor para darle menor o mayor flexibilidad. El Soft- Sensor debe tener menos flexibilidad cuano el objeto a ser localizado no varia en tama˜no ni geometr´ıa. Si las partes son defectuosas o estan encimadas, el SoftSensor debe recono- cer la presencia del objeto cuando muchas caracter´ısticas del modelo aprendido esten presentes en el ´area. Esta opci´on hace el SoftSensor menos susceptible al ruido. Para el caso contrario, cuando el objeto tiene a encimarse o cuando cambia su geometr´ıa, el SoftSensor debe ser hecho mas flexible. Esto permitir´a al SoftSensor encontrar objetos donde solo hay algunas caracter´ısticas del objeto aprendido. el usuario debe mantener en mente que entre mas flexible es el SoftSensor, se vuelve m´as susceptible al ruido. Los par´ametros que le permiten al SoftSensor ser mas flexible son (Figura 3.5):

“Scale Tolerance”: permite al SoftSensor encontrar objetos menores o mayores. “Object Matching Parameters”: indica el m´ınimo porcentaje de caracter´ısticas y per´ımetro que deben coincidir con el modelo aprendido, para que el objeto sea reconocido como tal.

“Feature Matching Parameters”: disminuir esto permite alguna deformaci´on en la parte que se va a analizar, y a´un lo concidera como que coincidi´o.

“Polyline Matching Parameters”: determina como el poligono que sigue el con- torno de un nobjeto es dibujado, as´ı como el per´ımetro m´ınimo que la carac- ter´ıstica de un objeto debe tener para evitar ser descartado.

“Scripts”

Adem´as de los SoftSensors, que realizan tareas espec´ıficas, algunas aplicaciones re- quieren m´as personalizaci´on. Algunos usuarios necesitan realizar decisiones inteligentes basadas en bits, y combinaci´on de datos de diferentes SoftSensor. A veces se necesita implementar un “handshake” espec´ıfico para comunicarse exitosamente con un dispo- sitivo externo. O puede ser que el usuario prefiera escribir su propio c´odigo y usar los SoftSensors est´andar como herramientas para obtener informaci´on. Para todos estos casos y para muchos otros casos espec´ıficos, se creo la herramienta llamada “script”, un juego de herramientas programables.

Figura 3.5: Par´ametros del “ObjectFind SoftSensor” para darle flexibilidad. Inspecciones de cada producto solo pueden controlar sus propios SoftSensors. Los SoftSensor solo pueden referenciar otros SoftSensor para posiciones de referencia y otras tareas menores. Diferentes inspecciones no pueden comunicarse una con la otra, esto es, una cierta inspecci´on es realizada y cuando termina, todos los datos usados en la inspecci´on desaparecen del sistema. Los scripts pueden ser vistos como una excepci´on a la regla. Los script pueden accesar datos que otros SoftSensor no, e incluso pueden realizar comunicaciones entre productos, esto es posible al compartir la misma memoria de sistema.

Existen dos tipos de script: “background” (de fondo) y “foreground” (de primer plano). La diferencia b´asica entre ellos es que el script de fondo es independiente de las inspecciones y se ejecuta a nivel del sistema, en donde se ejecuta en cada inspecci´on y existe a nivel del producto. Mientras que el script de primer plano es particular de una inspecci´on y se ejecuta cuando se realiza la inspecci´on a la que pertenece.

Documento similar