reporte SIP 06 - SAPPI - Sistema de Administración de...

22
SISTEMA MECATRÓNICO PARA INTERCEPTAR Y CAPTURAR OBJETOS EN MOVIMIENTO VIA ROBOT INDUSTRIAL Clave del Proyecto: 20061435 Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas ESCUELA SISTEMA MECATRÓNICO PARA INTERCEPTAR Y CAPTURAR OBJETOS EN MOVIMIENTO VIA ROBOT INDUSTRIAL PROYECTO 1.- Resumen. Se diseñó y desarrolló un sistema mecatrónico implementado a un Sistema de Manufactura Flexible (SMF) para la intercepción y captura múltiple de piezas en movimiento sobre la banda transportadora vía un robot industrial. Se desarrollaron los objetivos particulares, entre ellos: el diseñar y desarrollar un sistema de visión para seguimiento de trayectorias generadas por dos objetos en movimiento. Así como, aplicar la metodología de análisis e intercepción para generar la trayectoria seguidora del efector final del robot industrial. Aunado a la implementación e integración de los subsistemas de visión y algoritmos seguidores a través de un programa de control (software). También se realizó la predicción de trayectorias generadas por los objetos en movimiento. El proyecto consistió en operar un brazo robot industrial de la marca CRS ROBOTICS CORPORATION, que se encuentra en el laboratorio CIM, mediante una PC y el uso de Visión Artificial para interceptar y capturar dos objetos, los cuales en primera instancia describirán una trayectoria circular y como una segunda modalidad uno de ellos describirá una trayectoria oval dentro de un área delimitada por el alcance del robot, tal como se aprecia en la figura 1. Figura 1 Mesa de trabajo Página: 1 de 22

Transcript of reporte SIP 06 - SAPPI - Sistema de Administración de...

SISTEMA MECATRÓNICO PARA INTERCEPTAR Y CAPTURAR OBJETOS EN MOVIMIENTO VIA ROBOT

INDUSTRIAL

Clave del Proyecto: 20061435

Unidad Profesional Interdisciplinaria en Ingeniería y Tecnologías Avanzadas ESCUELA

SISTEMA MECATRÓNICO PARA INTERCEPTAR Y CAPTURAR OBJETOS EN MOVIMIENTO VIA ROBOT INDUSTRIAL

PROYECTO

1.- Resumen. Se diseñó y desarrolló un sistema mecatrónico implementado a un Sistema de Manufactura Flexible (SMF) para la intercepción y captura múltiple de piezas en movimiento sobre la banda transportadora vía un robot industrial. Se desarrollaron los objetivos particulares, entre ellos: el diseñar y desarrollar un sistema de visión para seguimiento de trayectorias generadas por dos objetos en movimiento. Así como, aplicar la metodología de análisis e intercepción para generar la trayectoria seguidora del efector final del robot industrial. Aunado a la implementación e integración de los subsistemas de visión y algoritmos seguidores a través de un programa de control (software). También se realizó la predicción de trayectorias generadas por los objetos en movimiento.

El proyecto consistió en operar un brazo robot industrial de la marca CRS ROBOTICS CORPORATION, que se encuentra en el laboratorio CIM, mediante una PC y el uso de Visión Artificial para interceptar y capturar dos objetos, los cuales en primera instancia describirán una trayectoria circular y como una segunda modalidad uno de ellos describirá una trayectoria oval dentro de un área delimitada por el alcance del robot, tal como se aprecia en la figura 1.

Figura 1 Mesa de trabajo

Página: 1 de 22

Dichos objetos fueron de forma cuadrada, color blanco con dimensiones de 5x5 cm y se

movieron a una velocidad que desde 1.0 cm/s con incrementos de 1cm/s hasta 15 cm/s sobre un tablero de madera color negro.

2.- Introducción. En nuestro tiempo el desarrollo de máquinas ha estado influido por el progreso tecnológico. Por esta razón se pasa de maquinas que tienen como objetivo la amplificación de las habilidades humanas a máquinas que además son capaces de analizar información, realizar tareas peligrosas, dar flexibilidad a los procesos productivos y tomar decisiones. La robótica industrial nace en los años 50, cuando George Devol crea un mecanismo llamado “dispositivo de transferencia programada articulada”, este dispositivo consistía de un manipulador reprogramable que era capaz de seguir una secuencia de movimientos determinados por las instrucciones en el programa, en base a esta máquina Unimation Inc. lanza el primer robot industrial en 1959[5]. El desarrollo del presente prototipo es considerado interdisciplinario, ya que para el desarrollo de éste intervienen principalmente 5 áreas de la ingeniería, las cuales son mecánica, electrónica, robótica, visión artificial y sistemas computacionales. La visión artificial nos proporciona la información del exterior sobre los objetos en movimiento para ser procesada y obtener la posición, velocidad y orientación de estos. Por la parte de robótica en éste tipo de robots se analiza a detalle debido a la necesidad de conocer la cinemática inversa para la correcta manipulación del robot. Respecto al área de mecánica y electrónica son implicadas en la construcción y control del gripper de doble efector final y finalmente por la parte de computación nos referimos al software en este caso LabVIEW® el cual nos permitirá realizar todo el procesamiento y la conjunción de todas las áreas que componen el proyecto. El reporte consta de nueve capítulos en los que se desarrolla y se explica a detalle cada una de las etapas que lo componen. El primer capítulo se refiere al estado del arte, el cual esta compuesto por las diferentes investigaciones y trabajos desarrollados hasta el momento similares o que conjugan alguna de las áreas que para nuestro trabajo emplearemos. En el segundo capitulo se desarrolla el modelo matemático del robot manipulador del cual se realiza un breve análisis de sus dimensiones, alcances, área de trabajo y velocidades, además se presenta las matrices de transformación homogénea propias de cada articulación y finalmente se desarrolla la cinemática directa e inversa con la finalidad de comprobar los resultados obtenidos. El tercer capítulo se compone de una breve introducción a LabVIEW®, los requerimientos para montar el sistema de visión y el procesamiento de las imágenes que realizaremos para obtener la información necesaria para enviar al robot a esa posición. En el cuarto capítulo se desarrolla la parte que comprende a la comunicación del robot con la computadora y algunos comandos del software necesarios para obtener la mejor velocidad del robot.

Página: 2 de 22

En el quinto capítulo se muestra la manera y las herramientas que empleamos para la programación de la cinemática inversa y directa del robot en el ambiente de LabVIEW® y resaltando la similitud que existe con la programación en C++. El sexto capítulo se compone del proceso de calibración de la cámara, del cual se realiza una breve descripción para poder así facilitar esta etapa mediante el uso de las herramientas con las que contamos al trabajar con LabVIEW®. En el séptimo capítulo se detalla la forma de calcular la velocidad a la que se mueven los objetos, haciendo uso de la etapa de visión artificial, misma que nos proporciona toda la información necesaria para este cálculo. El octavo capítulo comprende el desarrollo y obtención del Jacobiano primeramente directo y posteriormente inverso a partir de las ecuaciones de la cinemática directa e inversa respectivamente. En el noveno capítulo realizamos la obtención del modelo matemático del algoritmo de generación de la trayectoria del efector final, el cual esta basado en la tesis doctoral “Diseño e implementación de algoritmos de recuperación de tiempos aplicados a un sistema de manufactura flexible (FMS)” [3].

3.- Métodos y materiales. 3.1 MODELO MATEMÁTICO En una gran cantidad de aplicaciones de ingeniería, la parte del modelado juega un papel importante, sin este no sería posible el desarrollo de muchos de los equipos que hoy en día conocemos. En este aspecto se tiene dos tipos de técnicas para lograr un modelado de un sistema físico. En la primera técnica, el modelado se obtiene mediante datos experimentales y mediante un trabajo de procesamiento de datos para llegar a un modelo apropiado según la aplicación deseada. La segunda técnica consiste en la construcción de modelos mediante leyes físicas, en el caso de la robótica tenemos las leyes de Newton y las ecuaciones de Lagrange principalmente. El modelo matemático es el que representa el comportamiento del robot, es el que ayuda a saber cual es la posición de este en el espacio. Este tipo de modelado se le conoce como modelo cinemático y es útil principalmente para realizar el movimiento concreto de cada una de las extremidades del robot, logrando una determinada forma de trayectoria de paso. El otro modelo es el que da el comportamiento del robot mediante fuerzas, pares, inercias y efectos de la gravedad. Este modelo es el que se considera en el diseño de los sistemas de control y es conocido como modelo dinámico, el cual para nuestro caso no será necesario desarrollar dado que para el control del robot emplearemos su propio controlador.

El robot CRS A465 es un manipulador de 6 grados de libertad compuesto por eslabones conectados en serie por articulaciones de tipo revolución, que se puede modelar como una cadena articulada en lazo abierto. Esta diseñado para laboratorios de automatización, ensamble de piezas, manipulación de objetos, educación, investigación, entre otros. La cinemática del robot consiste en el estudio analítico del movimiento de los elementos del robot con respecto a un sistema de coordenadas de referencia situado en la base del robot, sin considerar las fuerzas

Página: 3 de 22

que originan tal movimiento. En este capítulo planteamos los dos problemas que se presentan en el estudio de robots manipuladores, el primero que se conoce como problema cinemático directo que consiste en determinar la posición y orientación del efector final para valores conocidos de los ángulos de cada articulación y una segunda problemática conocida como cinemática inversa, en el cual a partir de un punto en el espacio, determinamos los valores de los ángulos de cada articulación para alcanzar dicho punto. 3.2 Modelo Cinemático Directo

El robot CRS A465 es un robot de 6 grados de libertad (gdl) y debido al parecido que tiene con el brazo humano se le denomina brazo articulado o brazo manipulador. Se puede modelar como una cadena en lazo abierto de elementos conectados en serie por 6 articulaciones (J1, J2,…, J6) de tipo revolución, cada articulación gira alrededor de un eje de movimiento, tal como se aprecia en la figura 2.

Figura 2 Grados de libertad del Robot CRS A465

El espacio de trabajo del manipulador depende directamente de las dimensiones de cada

articulación y de su rango de movimiento, la tabla 1 muestra el rango de movimiento, par, velocidad y aceleración para J1, J2,…, J6, y la figura 3 representa el espacio de trabajo [12].

Tabla 1. Capacidad de Operación del robot CRS A465

Velocidad Max. Aceleración Articulación Rango de Movimiento

Par (Nm) (rad/s) (°/s) (rad/s2) (°/s2)

J1 +175° a -175° 39.50 3.14 180 12.6 720 J2 +90° a -90° 66.08 3.14 180 12.6 720 J3 +110° a -110° 39.50 3.14 180 12.6 720 J4 +180° a -180° 6.89 2.99 171 24.9 1430 J5 +105° a -105° 6.82 3.02 173 25.1 1430 J6 +180° a -180° 2.50 2.99 171 24.9 1430

Peso Aproximado del Robot: 32 Kg.

Página: 4 de 22

Repetibilidad ± 0.05 mm. Máxima 80% de la velocidad o aceleración 3.0 Kg.Capacidad de

Carga Nominal 100% de la velocidad o aceleración 2.0 Kg.

Figura 3. Espacio de trabajo

El robot CRS A465 es capaz de tomar y manipular piezas dentro de su rango de trabajo conocer la posición y orientación del objeto a manipular con respecto al sistema de referencia situado en la base del robot (Ooxyz); en el espacio tridimensional es posible conocer la posición de un cuerpo rígido a partir de 3 componentes (x, y, z) y su orientación por medio de 9 elementos [n,s,a]1. Para esto se utiliza una matriz de dimensión 4x4 que transforma un vector de posición expresado en coordenadas homogéneas desde un sistema de coordenadas fijo hasta otro sistema de coordenadas rotado. Una matriz de transformación homogénea T consiste de 1 matriz de orientación R de 3x3, un vector de posición p, un vector de 1x3 que representa la transformación de perspectiva f y un factor de escala global m; esto es:

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡=

EscaladoaPerspectivTraslaciónRotación

mfpR

Txx

xx

1131

1333

(3.1)

La ecuación 3.1 es útil para representar la posición y orientación de un sistema de

coordenadas OXmYmZm rotado, con respecto al sistema de referencia OXoYoZo situado en la base del robot, es decir:

XmYmZmmXoYoZo OTO 0= (3.2)

En robótica la matriz de perspectiva f1x3 toma los valores de [0 0 0], el escalado es la unidad, porque de esta forma las coordenadas homogéneas transformadas de un vector de posición son las mismas que las coordenadas físicas del vector y por último la matriz de orientación corresponde a los vectores n, s, a; estos vectores están relacionados con la orientación del efector final, ver figura 12. Por tanto, la matriz de transformación homogénea 0

mT es:

⎥⎦

⎤⎢⎣

⎡=

⎥⎥⎥⎥

⎢⎢⎢⎢

=1000

1000

0 pasnpasnpasnpasn

Tzzzz

yyyy

xxxx

m

(3.3)

1 La matriz [n,s,a] es una matriz de 9 elementos que representa la orientación del efector final.

Página: 5 de 22

Donde: n = es el vector perpendicular a la pinza. s = es el vector de giro. a = es el vector de acercamiento. m = son los grados de libertad del manipulador. Cada articulación del robot representa un grado de libertad y a cada grado se le asigna un sistema de coordenadas y una matriz de transformación que relaciona la posición y orientación del sistema de coordenadas actual con el sistema de coordenadas anterior. El producto de las matrices de transformación produce la relación entre el efector final y la base, así la transformación homogénea desde la base hasta el efector final esta dada por:

(3.4) TTTTTTTT 67

56

45

34

23

12

01

07 =

La figura 13 representa la asignación de ejes de referencia a cada articulación del robot.

Figura 4. Transformaciones Homogéneas

La matriz de trasformación homogénea 07T se calcula de la multiplicación sucesiva de las

6 matrices de transformación anteriores. El código en Matlab para calcular la cinemática directa con operaciones simbólicas se encuentra en el apéndice A con el nombre prog1_tr_homo. Así de la ecuación 3.3 tenemos:

⎥⎥⎥⎥

⎢⎢⎢⎢

=

1000

07

zzzz

yyyy

xxxx

pasnpasnpasn

T (3.5)

(3.6)

nx = ─ C1S23C4C5C6 + S1S4C5C6 ─ C1C23S5C6 + C1S23S4S6 + S1C4S6ny = ─ S1S23C4 C5C6 ─ C1S4C5C6 ─ S1C23S5C6 + S1S23S4S6 + C1C4S6

Página: 6 de 22

nz = C23C4C5C6 ─ S23S5C6 ─ C23S4S6 sx = C1S23C4C5S6 ─ S1S4C5S6 + C1C23S5S6 + C1S23S4C6 + S1C4C6 sy = S1S23C4C5S6 + C1S4C5S6 + S1C23S5S6 + S1C23S4C6 ─ C1C4C6 sz = ─C23C4C5S6 + S23S5S6 ─ C23S4C6 ax = ─ C1S23C4S5 + S1S4S5 + C1C23C5 ay= ─ S1S23C4S5 ─ C1S4S5 + S1C23S5 az= ─ C23C4S5 + S23C5 px= ─ C1S23C4S5G + S1S4S5G + C1C23C5G + 76C1S23C4S5 + 76S1S4S5 + 76C1C23C5 + 330C1C23 + 305C1C2 py= ─ S1S23C4S5G ─ C1S4S5G + S1C23C5G ─ 76S1S23C4S5 ─ 76C1S4S5 + 76S1C23C5 + 330S1C23 + 305S1C2 pz= 330+C23C4S5G + S23C5G + 76C23C4S5 + 76S23C5 + 330S23 + 305S2 Donde: C1= cos(θ1), C2= cos(θ2), C3=cos(θ3), C4=cos(θ4), C5=cos(θ5), C6=cos(θ6), S1= sen(θ1), S2= sen(θ2), S3=sen(θ3), S4=sen(θ4), S5=sen(θ5), S6=sen(θ6), C23= cos(θ2+ θ3), S23= sen(θ2+ θ3). G= Distancia del efector final.

Para validar la cinemática directa utilizamos el programa prog2_cin_dir que se encuentra en el apéndice A; desarrollado en matlab® 7.0

3.3 Modelo Cinemático Inverso El problema cinemático inverso consiste en calcular los valores de las coordenadas articulares del robot, q = [q1, q2, q3, q4, q5, q6] = [θ1, θ2, θ3, θ4, θ5, θ6,] para que el efector final se posicione y oriente dependiendo de la localización de los objetos. Sin embargo, con cierta frecuencia la solución del problema no es única, existiendo diferentes configuraciones que posicionan y orientan el gripper del mismo modo. Si se consideran tan sólo los primeros tres grados de libertad del CRS, estos quedan contenidos en un plano, y los tres restantes grados de libertad se cortan en un punto que en este caso es la base de la muñeca o en otras palabras el origen del sistema de referencia asociado a q5. Los primeros tres grados de libertad posicionan el efector final y los últimos 3 se encargan de la orientación. Para calcular los valores de q1, q2, q3 se puede utilizar relaciones geométricas mediante la solución de triángulos que forman los elementos del manipulador. Con base en la figura 5 y la figura 6 calculamos los valores para q1, q2 y q3.

Página: 7 de 22

Figura 5. Método geométrico

23

2

23

23

3

31tan1

zrc

yxr

xy

q

+=

+=

⎟⎟⎠

⎞⎜⎜⎝

⎛= −

(3.7)

(3.8)

(3.9)

Aplicando las leyes de cosenos (3.10) y de senos (3.12) para obtener el valor de A tenemos:

( )

( )

)cos(*305)(cos1*305

)tan(

)(cos1)(

)tan()cos(*305

)(*305)cos()(

)(*)cos(*305))cos(*305(*)())(*)cos()cos()((*305)(*

)(*305)(*)180(*305)(*305)(*

)(330

)(305

180180

*330*2305330cos

cos**330*2330305cos2

2

2

222

222

222

BcB

A

BBsen

ABc

BsenAAsen

BsenABcAsenBsenABAsenAsenc

BAsenAsencBAsenCsenAsenc

cCsenBsenAsen

BACCBA

ccA

AccAbccba

−−

=

−=

=−

=

=−+=

+=−−==

==

−−==++

−+=

−+=

−+=

(3.10)

(3.11)

(3.12)

(3.13)

(3.14)

Página: 8 de 22

Aplicando el mismo procedimiento para B:

( )

( )

)cos(*330)(cos1*330

)tan(

)(cos1)(

)tan()cos(*330

)(*330)cos()(

)(*)cos(*330))cos(*330(*)())(*)cos()cos()((*330)(*

)(*330)(*)180(*330)(*330)(*

)(330

)(305

180180

*305*2330305cos

cos**305*2305330cos2

2

2

222

222

222

AcA

B

AAsen

BAc

AsenBBsen

AsenBAcBsenBsenABAsenBsenc

BAsenBsencBAsenCsenBsenc

cCsenBsenAsen

BACCBA

ccB

BccBaccab

−−

=

−=

=−

=

=−+=

+=−−==

==

−−==++

−+=

−+=

−+=

(3.15)

(3.16)

(3.17)

Sustituyendo 3.11 en 3.17 y 3.15 en 3.14 tenemos:

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

−+−

⎟⎟⎠

⎞⎜⎜⎝

⎛ −+−

=

⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜

−+−

⎟⎟⎠

⎞⎜⎜⎝

⎛ −+−

=

ccc

cc

B

ccc

cc

A

*330*2305330*330

*330*23053301*330

tan

*305*2330305*305

*305*23303051*305

tan

222

2222

1

222

2222

1

(3.18)

(3.19)

A partir de A y B es posible obtener q2 y q3 como:

BACq

Brzq

rzBq

+=−=

−⎟⎠⎞

⎜⎝⎛=

=+

1803

'tan2

')2tan(

1 (3.20)

(3.21)

Debido a la raíz en la ecuación 3.14 y 3.17 existen 4 posibles soluciones que dependen del signo positivo y negativo de cada raíz. A estas configuraciones se les denomina codo arriba y codo abajo.

Página: 9 de 22

Ahora definimos un vector de posición pf que va desde el origen del sistema de coordenadas de la base 0o hasta el final del efector final, así como un vector p5 que apunta desde la base del sistema de coordenadas 03 hasta la base del sistema asociado a la muñeca 05 y un vector p3 que apunta desde el origen de coordenadas de la base hasta la base del sistema de coordenadas del codo 03, tal como se aprecia en la figura 6.

Figura 6. Desacoplo cinemático

De esta forma tenemos que: pf = p3 + p5 (3.22)p3 = pf – p5 = pf – 76*a

x3 = x – 76*axy3 =y – 76*ay

z3 = z – 76 * az - 330 El siguiente paso es determinar los valores de q4, q5 y q6 para tener completa la cinemática inversa. Para lo cual denominamos a la matriz 0

6R como la matriz de orientación compuesta por:

( ) ( ) [ ] RRRasnRRRR

asnRRR56

45

34

103

06

103

36

36

03

06 ][*

===

==−−

( ) [ ]⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

+−+−−−

−=

333231

232221

13121110

3

36

546465464654546465464654

56565

bbbbbbbbb

asnR

SSCCSCSSCCCSSCCSSCCSSCCC

CSSCSR

(3.23)

(3.24)

Tomando b23 y b33:

54

545

4

54

33

33

23

23

Sb

S

SSbSb

C

SCb

=

=

=

=

(3.25)

(3.26)

(3.27)

(3.28)

Página: 10 de 22

( )⎟⎟⎠

⎞⎜⎜⎝

+−+−

−=

==

)23(2)321123()321123(112

tan4

)4tan(44

1

23

33

CaCCaSSaCaSa

q

bb

qCS

zyx

yx

(3.29)

Donde: C23 = cos (q2 + q3), S123 = sen (q1 + q2 + q3), S321 = sen (q1- q2 - q3), C123= cos (q1 + q2 + q3), C321= cos (q1- q2 - q3) Para q5 tenemos:

(3.30)

⎟⎟⎠

⎞⎜⎜⎝

⎛=

==

=

==

4*tan5

4*)5tan(

55

45

545

13

231

13

23

23

23

13

Cbb

q

Cbb

qCS

Cb

S

SCbCb

(3.31)

(3.32)

Por último q6 se obtiene a partir de las siguientes ecuaciones:

(3.33)

⎟⎟⎠

⎞⎜⎜⎝

⎛−=

=−=

=

=

−=

−=

11

121

11

12

12

12

11

11

tan6

)6tan(66

56

655

6

65

bbq

qbb

CS

SbS

SSbSbC

CSb

(3.34)

(3.35)

Para validar la cinemática inversa tenemos el programa prog3_cin_inv en el apéndice A, mediante el cual se obtienen las configuraciones de la figura 7.

Página: 11 de 22

Px = 911, Py = 0, Pz = 330 nx = 0, ny = 0:, nz = 1 sx = 0, sy = 1, sz = -1 ax = 1, ay = 0, az = 0

Px = 395.8129, Py = 395.8129, Pz = 928.1062

nx = 0.4372, ny = -0.8917, nz = 0.1170 sx = 0.8662, sy = 0.3825, sz = -0.3214 ax = 0.2418, ay = 0.2418, az = 0.9397

Px = 0, Py = 0, Pz = 1241 nx = -1, ny = 0, nz = 0 sx = 0, sy = -1, sz = 0 ax = 0, ay = 0, az = 1

Px = -911, Py = 0, Pz = 330 nx 0, ny = 0, nz = -1 sx = 0, sy = -1, sz = 0 ax = 0, ay = 0, az = 1

Figura 7 Simulación de la Cinemática Inversa

3.3 LabVIEW® ver 7.1

LabVIEW de National Instruments proporciona un potente entorno de desarrollo gráfico para el diseño de aplicaciones de adquisición de datos, análisis de medidas y presentación de datos, ofreciendo una gran flexibilidad gracias a un lenguaje de programación sin la complejidad de las herramientas de desarrollo tradicionales. LabVIEW es una herramienta de software líder en la industria para pruebas de diseño, medida y sistemas de control. LabVIEW posee la flexibilidad de un lenguaje de programación combinado con herramientas adicionales diseñadas específicamente para pruebas, mediciones y control, para crear aplicaciones que van desde la simple monitorización de temperatura hasta la simulación y diseño de sistemas de control. Sin importar de qué proyecto se trate. Una de las ventajas que tenemos al trabajar con LabVIEW® 7.1 es que además de que es un ambiente gráfico, también podemos desarrollar nuestro propio código fuente de una manera muy similar a la que se emplea en la programación en C++ y además trabajar con diagramas a bloques enlazados con un “Formula Node”, herramienta que nos sirve para capturar código fuente.

Página: 12 de 22

Figura 8 Formula Node

3.4 PROGRAMACIÓN DE LA CINEMÁTICA INVERSA EN LabVIEW®. En un “Formula Node” dentro de LabVIEW, se requiere definir las variables de entrada y salida de manera gráfica en el contorno de la función, ya que de esta forma se podrán visualizar en el Front Panel y además realizar conexiones con otros diagramas en la pantalla de Block Diagram. Sin embargo la sintaxis comparada con la programación en C++ es prácticamente la misma. De esta manera, en la pantalla del Front Panel podremos observar los valores que están tomando cada una de nuestras variables de salida para ser ejecutadas por el robot y se visualiza como en la figura 9.

Figura 9 Cinemática Directa e Inversa en Front Panel

Página: 13 de 22

3.5 VELOCIDAD DE LOS OBJETOS

Como ya se mencionó con anterioridad los objetos describirán una circunferencia de diámetro variable, siempre y cuando ambos diámetros se encuentren dentro del alcance de la cámara, es decir, que los movimientos de ambos logren ser captados por la cámara. Así mismo la velocidad a la que se mueven puede ser variada y es por ello que en este capítulo describiremos la manera en la que se calcula la velocidad mediante el software. Es importante mencionar que el movimiento de ambos objetos estará determinado por un solo motor, por lo que la velocidad de ambos objetos será exactamente la misma pues dependen de los mimos parámetros.

3.6 CALCULO DE LA VELOCIDAD DE LOS OBJETOS.-

Para esta etapa se incluye directamente la etapa de la identificación, binarizado y caracterización de los objetos ya que a partir del centroide de los objetos, el radio de la circunferencia que describe su movimiento y el tiempo entre toma y toma serán que calculemos la velocidad a la que se están moviendo, para este caso manejaremos unidades de rad/segundo.

A la salida del IMAQ Find Circles del diagrama para caracterización de la imagen

colocaremos un Array to Cluster para poder desempaquetar la información que viene del elemento anterior y a continuación un Unbundle que nos permitirá individualizar la información de cada uno de los objetos que detecte la cámara. podemos observar la manera en la que debemos conectar estas dos herramientas descritas anteriormente. Es importante mencionar que se ha añadido al diagrama un Wait Until Next ms Multiple, el cual dentro de un While Loop cumple la función de temporizar el corrido del programa, para poder así hacer constante el tiempo entre toma y toma. Finalmente, dentro de un Formula Node programaremos la ecuación que nos determinara la velocidad de los objetos.

v1= R*((atan2 ((Y2),(X2))-atan2((Y1),(X1)))/t) En donde: v1 es la velocidad del objeto R es el radio de la circunferencia que describe el objeto Y2, X2 son las coordenadas de la posición final del objeto Y1, X1 son las coordenadas de la posición inicial del objeto t es el tiempo en el que el objeto recorrió de su posición inicial a la final

Página: 14 de 22

Figura 10 Front Panel – Velocidad de los objetos

En la figura 10 podemos observar desde el Front Panel la manera en la que se visualiza el objeto y los parámetros de caracterización del sistema que nos arroja el programa que acabamos de describir para el cálculo de la velocidad angular de los objetos.

3.7 GENERACIÓN Y SIMULACIÓN DE LATRAYECTORIA DE INTERCEPCIÓN

El fenómeno de intercepción se define como: “El acercamiento a un objeto móvil mientras se iguala su posición y velocidad en el tiempo más corto posible”. Existen dos técnicas de intercepción, una de ellas es simplemente calcular el punto de intercepción, moverse y llegar antes que el objetivo, esperar y atrapar en el momento apropiado (snatching). Los humanos usamos esa técnica de la siguiente manera: utilizamos nuestro sentido de visión y el sentido del tacto para determinar cuando cerrar la mano para atrapar el objeto móvil. La otra técnica consiste en igualar la trayectoria y velocidad del objeto para atraparlo sin impacto y adquiriendo mayor tiempo para tomarlo en pleno vuelo (catching). Los humanos por lo regular no utilizamos esta técnica. Sólo cuando se trata de objetos pesados y rápidos utilizamos una combinación de las dos técnicas anteriores [3].

Página: 15 de 22

3.8 ANÁLISIS DEL EVENTO Partimos de saber que tenemos dos objetos en movimiento O1 y O2 que describen cada uno por su cuenta una trayectoria circular a una velocidad angular ω y con un radio R ambos constantes. Para un intervalo de tiempo determinado [0,T], O1 y O2 inician su movimiento en el instante t = t0, mientras que TEF (Trayectoria del Efector Final) se inicia en t = t1 con t0<t1<T. El problema que se pretende resolver es determinar la trayectoria que deberá seguir TEF para interceptar primeramente a O1 en t2 y posteriormente a O2 en el instante de tiempo t3 que está acotado en t1<t2<t3<T. La representación paramétrica del movimiento de las partículas O1 y O2 se caracteriza por medio de las funciones X(t) y mostradas en las siguientes ecuaciones:

Y(t)

X1 (t)= R cos (ωt) (3.36) Y1 (t)= R sin (ωt)

X2 (t)= R cos (ωt) (3.37) Y2 (t)= R sin (ωt)

Nuestro objetivo es determinar la trayectoria que deberá seguir el efector final de nuestro

robot de tal manera que con un tiempo de retardo t1∈ℜ, intercepte a los objetos que obedecen a las funciones dadas por [X1(t), Y1(t)] en el tiempo de intercepción t2 y [X2(t),Y2(t)] en el tiempo de intercepción t3. Las funciones X1(t) y X2(t) tienen el mismo comportamiento en el tiempo, describiendo la forma de un coseno que parte de un tiempo t1=0. De igual forma, las funciones Y1(t) y Y2(t) tienen el mismo comportamiento en el tiempo, describiendo la forma de un seno que parte de un tiempo t1=0. Analizando el fenómeno real observamos que para definir la trayectoria que debe seguir el efector final para interceptar ambos objetos es necesario considerar lo siguiente, Es importante destacar que para el plano X(t) no existe un desplazamiento de la trayectoria de los objetos, dado que ambos se encuentran centrados en la misma coordenada y es por esto que solo podemos observar una sola grafica como se observa en la figura 12. Para el caso del plano Y(t), si existe una distancia que distingue la posición de la trayectoria de O1 y O2, es por eso que observamos ambas graficas en la figura 11.

Punto de intercepción predefinido

Función O1

Función O2

Figura 11 Las funciones O1 y O2 definidas en (Y(t),t) y TEF en (Y*(t),t)

Página: 16 de 22

3.9 GENERACIÓN DE LA TRAYECTORIA DEL EFECTOR FINAL Una vez que hemos descrito la problemática en el punto anterior, procederemos a realizar el análisis y generación de la trayectoria que deberá seguir el efector final de nuestro robot manipulador para que intercepte ambos objetos para un intervalo de tiempo acotado [0,T]. Para esto, primeramente es necesario definir un punto de partida para nuestro efector final, el cual es seleccionado en una posición tal que permita el movimiento del efector final en un solo sentido para facilitar y agilizar el evento de intercepción. Es importante mencionar que para nuestro caso trabajaremos en unidades de centímetros y a una escala de 1:0.1 para simplemente ejemplificar el evento. La metodología que emplearemos consiste primeramente en generar una matriz de dimensión 1xt, en donde t representa cada instante de tiempo en segundos y a partir de las ecuaciones 9.1 y 9.2 podremos conocer la posición de ambos objetos en el plano (x,y) para cualquier instante de t requerido. Tengamos presente que el efector final del robot se encuentra fijo en un punto determinado y a partir de este punto y después de un tiempo de retardo tr, el robot comenzara a moverse a la posición del objeto O1 en el instante de tiempo t2, instante en el cual el robot intercepta al primer objeto. Para esto es necesario calcular primeramente la distancia que existe entre la posición inicial predefinida del efector final y la posición del objeto O1 en el instante de tiempo t2 en el que el robot inicia su recorrido mediante la ecuación 9.3.

(3.38) d=√(x2-x1)2 + (y2-y1)2

Obtenida la distancia entre ambas posiciones, es necesario calcular el tiempo en el que el efector final recorrerá dicha distancia con el fin de identificar el incremento de tiempo y por tanto de posición a lo largo de la trayectoria circular del objeto O1, para ejemplificar dichos eventos se ha determinado una velocidad lineal para el efector final de 3.3 cm/s y equivalente a 0.33 cm/s a la escala en la que estamos trabajando. Aplicamos la ecuación 9.4 para determinar el tiempo de recorrido.

v= d (3.39) t

Conocido el tiempo de traslación del efector final, es posible determinar la posición del objeto O1 en el tiempo t2, instante en el cual el robot captura al primer objeto. Esto es posible al sumar al tiempo de retardo tr el tiempo de traslación del efector final y a partir del tiempo resultante y mediante la ecuación 3.36 obtener la posición en la que se encontrara el objeto O1, misma a la que deberá dirigirse el efector final. El evento se representa en la figura 12.

Página: 17 de 22

Posición de O1 en el tiempo de retardo tr

Posición de O1 en t2

Posición inicial del efector final

Trayectoria del Efector final

Figura 12 Generación de la trayectoria de intercepción

El mismo método es el que emplearemos ahora para generar la trayectoria que interceptará al segundo objeto, destacando que el segundo objeto será interceptado en el instante de tiempo t3, mismo que se compone del tiempo de retardo tr y el tiempo de traslación del efector final al objeto O1 y además del tiempo de traslación del efector final al objeto O2. Observemos también que para este caso la distancia del objeto O1 al objeto O2 en el instante de tiempo t2, siempre será la misma, dado que su posición, movimiento y velocidad son exactamente las mismas dentro de la trayectoria circular que describen cada una y esto para cualquier instante de tiempo t acotado en t≤t2. Este hecho facilita un poco la generación de la trayectoria del efector final hacia el segundo objeto ya que tanto la distancia como el tiempo que se calcularon para el primer caso, son una constante.

Posición de O1 y O2 en los instantes de intercepción t2 y t3

Posición de O1 y O2 en el tiempo de retardo tr

Posición inicial del efector final

Trayectoria del Efector final

Figura 13 Intercepción múltiple de objetos

Página: 18 de 22

CONCLUSIONES

A diferencia de trabajos anteriores, hasta el momento no se había dado el enfoque que el presente trabajo pretende que es el de la intercepción múltiple de partículas haciendo uso de una herramienta como lo es LabVIEW, software que nos permite un ambiente de programación gráfico que facilita muchas de las tareas de programación compleja, sin embargo, durante el desarrollo del proyecto pudimos evaluar las capacidades del software y concluimos:

1. La facilidad para enviar y recibir datos a través del puerto serial es evidente, ya que cuenta con distintos bloques que permiten de una manera muy sencilla, realizar la configuración del puerto que se requiera.

2. Una de las ventajas que nos fue de mucha utilidad para el desarrollo del proyecto es la posibilidad de construir nuestros propios códigos de programación e interactuarlos con diagramas a bloques ya que para la programación de las ecuaciones del robot, los propios comandos del robot y los algoritmos de intercepción es necesario programar de la manera convencional. Además la similitud con C++ para programar nos permitió familiarizarnos rápidamente.

3. La mayor aportación que se puede destacar al emplear este software es la facilidad para montar la plataforma de visión artificial ya que incluye bastantes aplicaciones para la caracterización de imágenes, calibración de la cámara, reconocimiento de patrones y muchas otras aplicaciones que facilitan en gran medida la etapa de visión artificial.

4. El inconveniente que se detecto fue el consumo de memoria de la PC cuando se captan imágenes de manera continua desde una cámara, en este caso una webcam.

A pesar de este inconveniente, para la aplicación deseada en este trabajo, se

considera que LabVIEW nos proporciona los requerimientos necesarios para llevarlo acabo, ya que aunque el consumo de memoria es elevado, para un intervalo de tiempo de hasta 30 segundos, el software cumple los requerimientos para continuar el evento.

Respecto a la generación de trayectorias para la intercepción múltiple de objetos,

este trabajo muestra una metodología basada en la trayectoria que genera una línea recta a partir de dos puntos diferentes en el plano (x,y), sin embargo, no contempla la igualación de la velocidad y dirección del efector final a la del objeto en movimiento para evitar una colisión entre ellos debido a la diferencia de velocidades en el instante de intercepción. En nuestro caso no son requeridas estas condiciones, ya que ello se emplea cuando se requiere atrapar objetos frágiles en movimiento, sin embargo, para futuros trabajos al presente, podría proponerse esta metodología.

Algunas limitantes que se nos presentaron durante el desarrollo del presente

trabajo fue la ausencia del software del robot CRS A465 para calibrarlo, sin el cual el robot genera un margen de error elevado. Una segunda limitante que se tubo durante el desarrollo es el empleo de la webcam, definitivamente la precisión de los datos y la calidad de las imágenes se ven limitadas a las características de la cámara, desafortunadamente las cámaras de mayor calidad y precisión, por su elevado costo quedaron fuera de nuestro alcance.

Página: 19 de 22

4.- Impacto. Los beneficios que se obtuvieron con el desarrollo de este proyecto están enfocados al sector educativo con miras a la aplicación en el sector productivo. El sistema desarrollado cuenta con la implementación de un sistema de visión (una cámara con su base y soporte), al robot industrial CRS A426 dentro de nuestro laboratorio de Manufactura Integrada por Computadora (CIM). Aunque, actualmente no está en uso el sistema, se pretende invitar a los alumnos a trabajar y mejorar su infraestructura. Es importante mencionar que uno de los beneficios es el uso de software de alto nivel como es el de la compañía de Nacional Instruments, con Labview 7.1 que si bien permite actualizarnos en materia de Software a nivel internacional. Por otro lado, nos permite mejorar los sistemas de producción, sobre todo cuando uno de los problemas principales en la industria manufacturera y en general en cualquier proceso, el tiempo juega un factor importante que se refleja directamente en la productividad de la industria nacional.

5.- Resultados. A continuación se presenta el avances de las metas y los resultados obtenidos por en cada una.

# % de c/meta

Descripción de actividades Resultados Avance

1 5 Meta: Obtención de información bibliográfica relacionada con el tema.

Se revisaron los centros de revistas e información especializada, se obtuvo el estado del arte. Se presenta en los artículos publicados en congresos nacionales e internacionales.

100%

2 10 Meta: Diseño de metodología de intercepción múltiple.

Se desarrolló una metodología de intercepción múltiple que intercepta dos o más objetos en movimiento. Se presenta detalles en congresos y tesis derivadas de este proyecto de investigación. Además se validan experimentalmente utilizando un robot industrial, un sistema de visión bajo la plataforma de Nacional Instruments.

100%

3 10 Meta: Diseño de sistema de visión para seguimiento de objetos.

Se diseña y se desarrolla un sistema de visión utilizando una cámara web de bajo costo, pero con las características necesarias y suficientes para satisfacer la tares de localizar el centroide y la velocidad de las piezas en movimiento. Se utilizó la plataforma de Nacional Instruments y algunos algoritmos de Matlab.

100%

4 5 Meta: Esquema de predicción de trayectorias

L esquema de predicción de trayectorias se resolvió construyendo las funciones de movimiento de los objetos a capturar. Debido a que el sistema operativo XP, es multitarea, se diseño

100%

Página: 20 de 22

un mecanismo capaz de controlar y monitorear el tiempo que tomaba la adquisición de la imagen hasta el procesamiento y cálculo de los resultados. Lo anterior, permitió cubrir las restricciones de tiempo para que el sistema trabajara en tiempo real.

5 5 Meta: Obtención del modelo dinámico del robot industrial.

Se obtuvo el modelo cinemática del robot industrial CRS A416, posteriormente se obtuvo el modelo dinámico utilizando la convención de Denavit-hartenberg y la formulación de Euler-Lagrange, respectivamente.

100%

6 10 Meta: Diseño y construcción de gripper doble efector final.

En esta meta se tuvo problemas de fabricación del efector de doble efecto, este dispositivo tenía la tarea de capturar dos objetos en forma secuencial, sin necesidad de cambiar de gripper. Sin embargo, no mermó los objetivos del proyecto.

100%

7 5 Meta: Programación del robot industrial.

La programación se desarrolló bajo la plataforma de Labview 7.0, se consiguió una licencia educacional y se logró tramitar una donación por parte de la empresa Nacional Instruments.

100%

8 20 Meta: Integración del sistema de visón con el robot industrial y los algoritmos de intercepción.

Se realizó la integración a través de software. Es decir, se interconectaron el sistema de visión, los algoritmos de intercepción múltiple y el controlador del robot industrial a través de un programa desarrollado en la plataforma de Labview 7.0.

100%

9 20 Meta: Pruebas y correcciones experimentales del sistema completo.

Se realizaron las pruebas y las correcciones necesarias al sistema integrado, se obtuvieron resultados teóricos y experimentales satisfactorios.

100%

10 10 Meta: Análisis, evaluación y publicación de resultados.

Se analizaron los resultados obtenidos y se adaptaron a los formatos de los congresos para su publicación. 100%

%: 100 % 100%

REFERENCIAS [1] P.I. Corke, visual control of Robots: High-Performance visual servoing. Mechatronics, John Wiley & sons,1996. [2] Koichi Hashimoto, ”Visual Servoing Real-time Control of Robot Manipulators Based on Visual Sensory Feedback. World Scientific, 1993.

Página: 21 de 22

[3] Flores C. Juan A. “Diseño e implementación de algoritmos de recuperación de tiempos aplicados a un sistema de manufactura flexible (FMS)”. Tesis doctoral, SEPI-ESIME-IPN, 2005. [4] Christopher G. Relf, “Image Acquisition and Processing with LabView”. CRC PRESS, 2004. [5] K.S. FU, R. C. González, “Robótica: Control, Detección, Visión e Inteligencia”. Mc. Graw-Hill, 1988. [6] Mark W. Spong, M. Vidyasagar, “Robot Dynamics and Control”. Jonh Wiley & sons, 1989. [7] Ollero B. Anibal,“Robótica manipuladores y robots móviles”. Alfaomega Marcombo, 2001. [8] Iñigo Madrigal, Vidal Idiarte.“Robots Industriales manipuladores”. Alfaomega, 2004. [9] Barrientos Antonio, Peñin Luis Felipe. “Fundamentos de Robótica”. Mc. Graw Hill, 1997. [10] Flores C. Daniel Isaí, Jiménez A. Víctor Hugo. “Prototipo de un robot manipulador de tres grados de libertad controlado mediante algoritmos de visión artificial”. Tesis de licenciatura. UPIITA-IPN, 2004. [11] Morales S. Raúl. “Sistema de Inspección Visual SIV”. Tesis de licenciatura. UPIITA-IPN, 2004

Página: 22 de 22