Proyecto Fin de Carrera Ingeniería...

101
Equation Chapter 1 Section 1 Proyecto Fin de Carrera Ingeniería Industrial Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas Autor: Antonio González Carnerero Tutor: Francisco Rodríguez Rubio Dep. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2016

Transcript of Proyecto Fin de Carrera Ingeniería...

Equation Chapter 1 Section 1

Proyecto Fin de Carrera Ingeniería Industrial

Sensor de esfuerzos en un robot manipulador en

posicionamiento de piezas

Autor: Antonio González Carnerero

Tutor: Francisco Rodríguez Rubio

Dep. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería

Universidad de Sevilla

Sevilla, 2016

ii

Proyecto Fin de Carrera Ingeniería Industrial

Sensor de esfuerzos en un robot manipulador en

posicionamiento de piezas

Autor:

Antonio González Carnerero

Tutor:

Francisco Rodríguez Rubio

Profesor titular

Dep. Ingeniería de Sistemas y Automática

Escuela Técnica Superior de Ingeniería

Universidad de Sevilla Sevilla, 2016

iv

Resumen

En la robótica actual el control de esfuerzos adquiere una vital importancia en tareas donde el robot necesite contactar físicamente con un objeto a manipular.

En aplicaciones tales como ensamblado, pulido, atornillado, etc.. Si solo se realiza el control de posición, el extremo del robot o el elemento con el que interactúa pueden dañarse, siendo necesario aplicar también un control de la fuerza (par y fuerza aplicada).

El objetivo de este proyecto es conocer los distintos tipos de control de fuerza en robots manipuladores y realizar una simulación real de un sensor de esfuerzos con un robot SCARA de la firma STAUBLI durante un proceso de posicionamiento de piezas. Debido a la no disponibilidad de sensores para medir dichos esfuerzos, se ha recurrido a mediciones indirectas de dichos esfuerzos a través de valores de intensidad del propio robot.

Para ello se desarrollarán unas aplicaciones en VAL3 cuyo objetivo es determinar el esfuerzo que realiza el robot a la hora de posicionar una pieza a diferentes velocidades... Estas aplicaciones se implementarán mediante el software SRS (Staubli Robotics Suite) y se simularán en un robot TS80.

Este resultado puede usarse como un “programa de entrenamiento” para robots, ya que a través de los resultados obtenidos a través de una simulación en condiciones ideales pueden evitarse daños en el robot o en la pieza en situaciones reales distintas a las esperadas. El robot compararía los valores de esfuerzos actuales con los ideales y dejaría de trabajar en caso de que los esfuerzos fueran mayores a los esperados.

vi

Índice

Resumen v

Índice vii

Índice de figuras ix

1 Introducción 1 1.1 Historia y evolución de los robots 1 1.2 Definición de robot industrial 3 1.3 Clasificación de los robots industriales 4 1.4 Staubli dentro de la robótica 7

1.2.1 Historia de la robótica en STAUBLI 8 1.2.2 Gama de productos 9

2 Control de esfuerzos 13 2.1 Introducción 13 2.2 Control por el par articular 15 2.3 Control de fuerza por rigidez 17 2.4 Control de fuerza por impedancia mecánica 20 2.5 Control híbrido posición-fuerza 22 2.6 Sensores 25

3 Descripcion del sistema 37 3.1 Robot Staubli TS80 37

3.2.1 Presentación 37 3.2.2 Dimensiones 38 3.2.3 Zona de trabajo 39 3.2.4 Características técnicas 40

3.2 Controlador CS8C 41 3.2.1 El armario de control 41 3.2.2 El MCP (mando manual) 42 3.2.3 Interfaz opearador WMS 45

3.3 Lenguaje de programación VAL3 46 3.2.1 Antecedentes 46 3.2.2 Elementos del lenguaje VAL 3 47

3.4 SRS (STAUBLI ROBOTICS SUITE) 59 3.2.1 SRS Development Studio 62 3.2.2 SRS Maintenance Studio 62

viii

4 Resultados 65 4.1 Introducción 65 4.2 Programa entrenamiento robot 65 4.3 Programa Fuerza 71 4.4 Programa Cliente 71 4.5 Simulación y presentación de resultados 73

5 Conclusiones finales 85

Referencias 87

ÍNDICE DE FIGURAS

Figura 1–1 Cartel de la película Metropolis 2

Figura 1-2 Robot Industrial Staubli TX200 4

Figura 1-3 Robot cartesiano 5

Figura 1-4 Robot cilíndrico 5

Figura 1-5 Robot esférico 6

Figura 1-6 Robot angular 6

Figura 1-7 Robot SCARA 7

Figura 1-8 Robot STAUBLI Unimation PUMA 200 8

Figura 2-1 Aplicación de limpieza, control de la localización del extremo del robot 14

Figura 2-2 Aplicación de mecanizado, control de fuerza del extremo del robot 14

Figura 2-3 Fuerzas y pares ejercidas por el extremo del robot 15

Figura 2-4 Ejemplo de control de fuerza por rigidez 18

Figura 2-5 Diagrama de bloques de control de fuerza por rigidez 19

Figura 2-6 Impedancia mecánica de un cuerpo 21

Figura 2-7 Diagrama de bloques de control por impedancia 21

Figura 2-8 Efector final en contacto con superficie plana 22

Figura 2-9 Matrices de restricciones en aplicaciones de pulido con fuerza constante en robot SCARA 24

Figura 2-10 Diagrama de bloques de control híbrido 24

Figura 2-11 Relación eléctrica 25

Figura 2-12 Encóder 26

Figura 2-13 Sincro 27

Figura 2-14 Codificador rotativo 27

Figura 2-15 Sensor LVDT 28

Figura 2-16 Tacogenerador 28

Figura 2-17 Acelerómetros 29

Figura 2-18 Sensor inductivo y principio de funcionamiento 30

x

Figura 2-19 Principio funcionamiento sensores efecto Hall 31

Figura 2-20 Sensor capacitivo 32

Figura 2-21 Sensor ultrasónico 32

Figura 2-22 Sensor óptico de proximidad 33

Figura 2-23 Componentes sensor de fuerza 34

Figura 2-24 Sensor de fuerza ATI 35

Figura 3-1 Robot Staubli TS80 37

Figura 3-2 Vista lateral y superior TS80 38

Figura 3-3 Rango de trabajo TS80 39

Figura 3-4 Armario de control CS8C 41

Figur 3-5 Mando manual SP1 42

Figura 3-6 Modos de desplazamiento 43

Figura 3-7 Teclas de comando aplicaciones 44

Figura 3-8 Teclas de jog 44

Figura 3-9 Interfaz WMS y modos de funcionamiento 45

Figura 3-10 Ejemplo de comentario 47

Figura 3-11 Ejemplo de llamada subprograma call 49

Figura 3-12 Ejemplo que convierte un día escrito en string (sDay) en un num (nDay) 50

Figura 3-13 Ejemplo de uso de intrucción while 51

Figura 3-14 Ejemplo de uso de intrucción do…until 51

Figura 3-15 Ejemplo de uso de instrucción for 52

Figura 3-16 Ejemplo de uso de instrucción switch 53

Figura 3-17 Inicialización de variables según el tipo de contenedor 55

Figura 3-18 Programación de un robot STAUBLI 56

Figura 3-19 Soluciones VAL3 Staubli 57

Figura 3-20 Soluciones uniVAL Studio 58

Figura 3-21 SRS 59

Figura 3-22 Licencias Staubli Robotics Suite 60

Figura 3-23 Licencias Staubli Robotics Suite mediante llave local 60

Figura 3-24 Licencias Staubli Robotics Suite mediante llave en red 60

Figura 3-25 Licencias Staubli Robotics Development Studio 62

Figura 3-26 Licencias Staubli Robotics Maintenance Studio 63

Figura 4-1 Laboratorio Robótica Staubli Española 73

Figura 4-2 SRS 2016 73

Figura 4-3 Creación de una nueva célula 74

Figura 4-4 Creación de un controlador local 75

Figura 4-5 Célula de trabajo "Proyecto" 76

Figura 4-6 Célula de trabajo "Proyecto - Vista detallada robot 76

Figura 4-7 Elementos simulación real 77

Figura 4-8 Controlador CS8C 77

Figura 4-9 Simulación programa entrenamiento 78

Figura 4-10 Simulación real-Obstáculo 82

Figura 4-11 Simulación real - Colisión 83

xii

1

1 INTRODUCCIÓN

n este primer apartado introductorio situaremos históricamente a los robots industriales. Se tratará de dar una definición de los mismos y se clasificarán. A su vez, se presentará brevemente a la firma de robots STAUBLI ya que será a través de uno de sus robots, el TS80, mediante el cual realizaremos la

simulación del programa de control de esfuerzos realizado en VAL3.

.

1.1 Historia y evolución de los robots La primera constancia del uso del término “robot” con el significado que conocemos en la actualidad se remonta a principios del siglo XX, cuando en 1921 el dramaturgo Karel Capek usó la palabra “robota” en la obra Rosum´s Universal Robots en la que imaginó sustitutos automatizados para sustituir a los seres humanos en sus labores.

Bajo este punto de vista los robots podrían llegar a dominar el mundo ya que podrían estar dotados de inteligencia y vida propia.

En 1926, se entrena la primera película inspirada en robots, Metropolis y ya en 1939 se estrena Electro, una película basada en un robot caminante.

Ya en 1950 Isaac Asimov publica el libro Yo Robot en la que introduce las tres leyes que deben regir la inteligencia de los robots, y más en concreto de los humanoides:

a) Un robot no puede lastimar a un ser humano o permanecer inactivo ante un daño que se le pueda hacer.

b) El robot debe obedecer al ser humano excepto si contradice la primera ley.

c) El robot debe proteger su existencia salvo que entre en conflicto con las leyes anteriores.

E

Siempre parece imposible hasta que está hecho.

- Nelson Mandela -

Introducción

2

Debemos remontarnos a 1948 cuando, el neurólogo Grey Walter construye los primeros robots móviles utilizando el sentido común y algo de bricolaje, que se llamaron las tortugas de Bristol.

Figura 1-1. Cartel de la película Metropolis

A continuación se detallarán algunos de los logros más importantes relacionados con la robótica durante el siglo XX:

Fecha Logro

1952 El Instituto Tecnológico de Massachussets desarrolla una máquina prototipo de control numérico.

1954 George C. Devol desarrolló un dispositivo de transferencia programada articulada. El primer robot programable.

1958 Primer robot comercial, llamado “UNIMATE”. Fue creado por Devol y Joseph Engelberger.

1962 Instalación del primer UNIMATE en una planta de General Motors para funciones de manipulación de piezas y ensamblaje.

1962 H.A. Ernest publica el desarrollo de una mano mecánica controlada por computador con sensores táctiles, llamada “MH1”

1963 American Machine y Foundry Company introducen el robot comercial “VERSATRAN”

1968 Desarrollo del robot móvil “Shakey”, por el Instituto de investigación de Stanford.

1970 Lunokohod 1, robot ruso que exploró la superficie lunar mediante control remoto desde la tierra.

3

3 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

1.2 Definición de robot industrial No es simple establecer una definición formal de lo que es un robot industrial (Figura 1 -2) debido a la diferencia conceptual que se tiene de esta herramienta industrial en diferentes partes del mundo.

Las definiciones más comúnmente aceptadas en la actualidad son las siguientes:

- ROBOT INSTITUTE OF AMERICA (RIA- 1979):

“Un robot industrial es un manipulador multifuncional reprogramable, capaz de mover materias, piezas, herramientas, o dispositivos especiales, según trayectorias variables, programadas para realizar tareas diversas".

1971 Brazo robótico con accionamiento elétrico, Universidad de Stanford.

1973 Bolles y Paul (Stanford), utilizaron un robot controlado por computador que usaba realimentación visual para el montaje de bombas para automóvil.

1975 Will y Grossman, en IBM, desarrollaron un manipulador controlado por computador con sensores de contacto y fuerza para montajes mecánicos.

1978 Se introduce el robot PUMA (Máquina Universal Programable para el ensamblado) en tareas de montaje.

1979 Japón introduce el robot SCARA (Selective Compliance Assembly Robot Arm) para tareas de montaje.

1982 IBM introduce el robot RS-1 para montaje.

1985 WASUBOT, capaz de tocar un instrumento de teclado después de leer una partitura de música, construido por la universidad de Waseda, Tokio.

1993 La universidad de Bristol desarrolla el robot caminante MARV.

1996 Honda Motors, crea el robot humanoide P2, siendo capaz este de moverse de modo autónomo similar a un ser humano. El robot ASIMO es la evolución de este prototipo.

1997 El robot Mars Pathfinder desarrollado por la NASA explora Marte.

1999 Sony Corporation construye el primer robot que reproduce el comportamiento de un perro, AIBO.

2000 Friendly Robotics, saca al mercado un cortacéspedes robótico completamente automático, ROBOMOW RL500.

2001 iRobot Corporation construye un robot doméstico multiusos teleoperato a través de la web.

Introducción

4

- ASOCIACIÓN INTERNACIONAL DE ESTÁNDARES (ISO 8373-1998):

“Un robot industrial es un manipulador de 3 o más ejes, con control automático, reprogramable, móvil o no, destinado a ser utilizado en aplicaciones de automatización industrial. Incluye al manipulador (sistema mecánico y accionadores) y al sistema de control (Software y Hardware de control y potencia).”

- ASOCIACIÓN FRANCESA DE NORMALIZACIÓN (AFNOR):

"Por robot industrial de manipulación se entiende una máquina de manipulación automática, reprogramable y multifuncional con tres o más ejes que pueden posicionar y orientar materias, piezas, herramientas o dispositivos especiales para la ejecución de trabajos diversos en las diferentes etapas de la producción industrial, ya sea en una posición fija o en movimiento"

Figura 1 -2. Robot Industrial Stäubli TX200

En resumen, podemos considerar un robot industrial como un brazo mecánico con capacidad de manipulación al que se le incorpora un control más o menos complejo

1.3 Clasificación de los robots industriales No existe una única clasificación para los robots industriales, dependiendo del aspecto que se quiera reflejar del robot.

Se podrían clasificar los robots según el número de ejes (3, 4, 5 o más…), según el tipo de control, según su generación (primera, segunda o tercera), etc…

Dentro de nuestro estudio, la clasificación que más nos interesa es la relacionada con el tipo de estructura mecánica.

Podemos clasificar los robots en:

5

5 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

a) Cartesianos:

El posicionando se hace en el espacio de trabajo con las articulaciones prismáticas. Esta configuración se usa bien cuando un espacio de trabajo es grande y debe cubrirse, o cuando la exactitud consiste en la espera del robot. Posee tres movimientos lineales, es decir, tiene tres grados de libertad, los cuales corresponden a los movimientos localizados en los ejes X, Y y Z.

Figura 1 -3. Robot cartesiano

b) Cilíndricos:

El robot tiene un movimiento de rotación sobre una base, una articulación prismática para la altura, y una prismática para el radio. Este robot ajusta bien a los espacios de trabajo redondos. Puede realizar dos movimientos lineales y uno rotacional, o sea, que presenta tres grados de libertad.

Este robot está diseñado para ejecutar los movimientos conocidos como interpolación lineal e interpolación por articulación. La interpolación por articulación se lleva a cabo por medio de la primera articulación, ya que ésta puede realizar un movimiento rotacional.

Figura 1 -4. Robot cilíndrico

Introducción

6

c) Esférico o polar:

La primera y segunda articulación son de ejes de rotación perpendiculares entre sí, la tercera es prismática; así pues tenemos dos giros y un desplazamiento que permiten posicionar un punto en el espacio mediante coordenadas polares.

Figura 1 -5. Robot esférico

d) Angular o antropomórfico:

El robot usa 3 juntas de rotación para posicionarse. Generalmente, el volumen de trabajo es esférico. Estos tipos de robot se parecen al brazo humano, con una cintura, el hombro, el codo, la muñeca. Presenta una articulación con movimiento rotacional y dos angulares. Aunque el brazo articulado puede realizar el movimiento llamado interpolación lineal (para lo cual requiere mover simultáneamente dos o tres de sus articulaciones), el movimiento natural es el de interpolación por articulación, tanto rotacional como angular

Figura 1 -6. Robot angular

7

7 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

e) SCARA

Similar al de configuración cilíndrica, pero el radio y la rotación se obtiene por uno o dos eslabones. Este brazo puede realizar movimientos horizontales de mayor alcance debido a sus dos articulaciones rotacionales. El robot de configuración SCARA también puede hacer un movimiento lineal (mediante su tercera articulación).

Figura 1 -7. Robot SCARA

Un robot con esta configuración es el que usaremos para realizar nuestra aplicación del control de esfuerzos durante una aplicación de posicionamiento de piezas.

1.4 Staubli dentro de la robótica Stäubli es un innovador proveedor de soluciones de mecatrónica con tres divisiones:

a) TEXTIL:

Máquinas de textil que incluyen: excéntricas, máquinas de lizos, máquinas de Jacquard, monturas, preparación de tejeduría, sistemas de preparación de alfombras y soluciones automáticas para las máquinas de textil.

b) CONECTORES:

Enchufes rápidos para aplicaciones de aire comprimido, hidráulica, electricidad…

Multiconectores, sistemas de cambio rápido de moldes y cambiadores de herramientas de robot.

c) ROBÓTICA:

Dispone de una amplia gama de robots para la automatización industrial, incluyendo robots SCARA y antropomórficos.

Software de programación para cualquier robot, aplicaciones y software específico para cualquier segmento industrial.

Introducción

8

1.2.1 Historia de la robótica en STAUBLI

A continuación se van a destacar los principales hitos dentro la historia de la división de robótica de la firma STAUBLI.

Fecha: Hito

1982 Creación de la división de Robótica

1982-1989 Distribución de UNIMATION ROBOTS (USA)

1989 Compra de UNIMATION, pionera en la industria de la robótica

1992 Lanzamiento de la serie de robots RX

2000 La producción alcanza los 1000 robots/año

2002 Lanzamiento del controlador CS8

2004 Lanzamiento de la serie TX de robots

2005 Compra de la división de robótica de Rexroth

2008 Lanzamientos RX170 (Robot de mecanizado) / TX200 y Stericlean

2009 Lanzamientos TS80- TS60 SCARA /TX 200L

2010 Desarrollo de UNIVAL DRIVE

2011 Lanzamiento del SCARA TS40

2013 Lanzamiento del TP80

Figura 1 -8. Robot Staubli Unimation PUMA 200

9

9 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

1.2.2 Gama de productos

En el siguiente apartado vamos a describir brevemente los diferentes tipos de robots que STAUBLI dispone actualmente para el sector industrial.

Podemos distinguir los siguientes segmentos:

a) Pequeños portadores de 4 ejes (de 1 hasta 8 Kg)

b) Pequeños portadores de 6 ejes (de 1 hasta 10 Kg)

c) Medianos portadores de 6 ejes (de 10 hasta 80 Kg)

Introducción

10

d) Grandes portadores de 6 ejes (más de 80 Kg)

e) Robots específicos: Aparte STAUBLI dispone de robots específicos para cubrir todos los requerimientos del mercado tales como pintura, mecanizado, sala blanca….

- PINTURA : (TX90 Paint, RX160 Paint, TX250 Paint)

El sistema Paint está diseñado para proporcionar un paquete de automatización preparado para la integración en su célula. Incluye un armario eléctrico y un sistema de purga, con el módulo de E/S analógico listo para su conexión para los parámetros de pintura, como por ejemplo ancho del abanico, flujo de producto, presión de pulverización o tensión y velocidad de campana en aplicaciones electrostáticas.

11

11 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

- PLÁSTICO: (TX40-TX60, TX90, RX160 Plastics)

Stäubli Robotics ofrece soluciones que aumentan la productividad para el taller de moldeado, con una gama en crecimiento de robots de 6 ejes, desarrollada en colaboración con empresas de moldeado por inyección e integradores de sistemas que realizan su actividad en el sector del plástico. La gama Plastics de robots puede ofrecer la solución ideal para todos los requisitos de automatización.

- STERICLEAN : (TX40, TX60, TX90, RX 160 Stericlean)

Como resultado de nuestra experiencia en el campo de ciencias de la vida y tras consultas en profundidad con los líderes de la industria farmacéutica, Stäubli ha adaptado su consolidada gama de robots industriales para salas blancas para cumplir con los estrictos requisitos del cada vez más frecuente proceso de descontaminación con VPH (Vapor de Peróxido de Hidrógeno).

Introducción

12

- MECANIZADO (High Speed Machinning): TX90, RX160, TX200hsm)

Robots dedicados a mecanizado con alta precisión y alta flexibilidad.

13

2 CONTROL DE ESFUERZOS

tráves de esta sección se describirá el fundamento teórico sobre el control de esfuerzos en robots industriales, aprovechando la ocasión para dar una visión exhaustiva de los sensores utilizados en la robótica actual.

.

2.1 Introducción Cuando se debe realizar una tarea con un robot nos podemos encontrar con dos tipos de situaciones: que sea necesario un contacto físico del extremo del robot manipulador con el objeto a manipular o que no lo haya (es decir que el extremo del robot solo tenga que describir una trayectoria concreta en el espacio.

En términos de control del brazo robótico, podemos hablar que en esta última situación (robot que únicamente describe una trayectoria), sólo necesitamos realizar un control de posición (orientar y posicionar correctamente), del brazo robótico.

Aplicaciones de este tipo pueden ser: corte por láser, robots de limpieza por chorro, pintura, soldadura, paso de un punto a otro de trabajo…

Sin embargo, en aplicaciones como ensamblado, pulido, atornillado... (Hay contacto físico entre el extremo del robot manipulador y el objeto), aparte del control de posición es necesario realizar un control de esfuerzos, entiendo como tal el control del par y fuerza aplicada por el extremo del robot.

Habitualmente el control de esfuerzos se realiza mediante un sensor (se desarrollará este punto más adelante) en el extremo de la muñeca del robot, de forma que a partir de éste se obtienen los datos para cerrar el bucle de control.

A

Un día sin reir es un día perdido

- Charles Chaplin -

Control de esfuerzos

14

A continuación se muestran algunos ejemplos de aplicaciones en las que es necesario el control de posición y el control de esfuerzos.

Figura 2 -1. Aplicación de limpieza, control de la localización del extremo del robot.

Figura 2 -2. Aplicación de mecanizado, control de fuerza del extremo del robot.

15 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

2.2 Control por el par articular Uno de los métodos para el control de esfuerzos es a través de los pares de los accionadores de las articulaciones. En este tipo de control no es necesario el uso de sensores específicos de fuerza.

Las fuerzas y pares ejercidas por las articulaciones de un robot se traducen en la aparición de una fuerza y un par sobre el extremo del robot, de forma que se cumpla que el mismo se encuentra en equilibrio estático.

Si consideramos el vector F como:

� = �(�, �)� = (�, �, ��, �, �, ��)�

(2–1)

Que representa los pares y fuerzas en el extremo del robot medidos sobre el sistema de referencia asociado al extremo del robot (Figura 2-3).

Figura 2 -3. Fuerzas y pares ejercidas por el extremo del robot.

Si definimos:

� = Vector fuerzas y pares ejercidos por las articulaciones.

� = Desplazamiento virtual del extremo del robot debido a la fuerza F que sobre el se ejerce.

� = Desplazamiento virtual que tendrían las articulaciones.

Control de esfuerzos

16

Para seguir avanzado en el desarrollo debemos hacer referencia a la matriz Jacobiana.

La matriz Jacobiana es una matriz de derivadas. En general para un conjunto de m funciones que dependen de n variables independientes tenemos:

�� = ��(��, ��, ��… . , ��)

�� = ��(��, ��, ��… . , ��)

.

.

. (2–1)

�� = ��(��, ��, ��… . , ��)

Que se puede expresar de forma matricial como:

= �() (2–3)

Si consideramos que las n variables son dependientes del tiempo:

��� = ������

��� +�����

��� +⋯+ �����"

���

��� = �� ���

��� +�� ��

��� +⋯+ �� ��"

���

.

.

. (2–3)

��� = ��#���

��� +��#��

��� +⋯+ ��#��"

���

Que se puede expresar de forma matricial como:

� = $() ∗ �

.

(2–4)

Siendo $() la denominada Matriz Jacobiana.

17 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

Considerando la expresión (2-4), podemos decir que:

& = $(') ∗ &'

.

(2–5)

El trabajo virtual (δW) del sistema vendría dado como:

&( = ��& − *�&'

.

(2–6)

Si sustituimos (2-5) en (2-6), se obtiene:

&( = (��$(') − *�)&'

.

(2–7)

La ecuación (2-7) debe ser nulo si el sistema permanece en equilibrio, por lo que:

* = $�(') ∗ �

.

(2–8)

Es decir, que las fuerzas y pares ejercidos por el extremo del robot están relacionadas con las fuerzas y pares ejercidas por las articulaciones a través de la respuesta de la Jacobiana. Las fuerzas y pares ejercidas por las articulaciones pueden ser determinadas a través de la corriente suministrada a los motores.

Este tipo de control de par no es muy preciso debido a que entre otro tipo de pérdidas, están las perdidas por fricción.

El control de fuerza por medio de retroalimentación de pares de los accionadores de las articulaciones está condicionado por la precisión del modelado de fuerzas y pares estáticos del robot.

Como se verá más adelante, este es el tipo de control de esfuerzos elegido para la simulación, debido a la no disponibilidad de sensor externos para realizarla.

2.3 Control de fuerza por rigidez Podemos considerar este tipo de control como un método active debido a que la impedancia se regula utilizando la retroalimentación de la posición, velocidad y fuerza de contacto del extremo del robot.

La idea sobre la que gira este método es controlar la fuerza que se ejerce a través de la posición de forma que se establece como consigna para el extremo del robot una posición interior al objeto con el que se quiere estar en contacto.

Claro está, los controladores del robot son los que envían la información a los accionadores del mismo para alcanzar dicha posición, provocando que el robot ejerza una fuerza sobre la superficie.

Control de esfuerzos

18

Un posible ejemplo de control por rigidez puede verse en la siguiente figura, considerando por ejemplo el pulido de una superficie plana sobre la que se ejerce una fuerza perpendicular.

Figura 2 -4. Ejemplo de control de fuerza por rigidez

Aplicado a un caso general, si consideramos que la posición del extremo del robot es (p > p-), entonces la fuerza ejercida sobre la superficie (F-) podemos definirla como:

�/ = 0/(1 − 1/) = 0/&1

.

(2–9)

Dónde:

23 = matriz diagonal 6x6, los elementos de la diagonal principal son las constantes de rigidez y torsional respecto a un sistema de coordenadas especificado en el punto de consigna.

4= desplazamiento virtual

Empleando un regulador de tipo PD:

� = 01(15 − 1) −061�

.

(2–10)

Resultando un sistema estable para 7897:positivas.

19 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

En régimen permanente y ante un punto de consigna fijo, se cumple que:

� = 0/(1 − 1/) = 01(1; − 1)

Como hemos considerado p< fijo, la ley de control provoca que el extremo de control del robot ejerza la fuerza F sobre la superficie en estudio.

La ganancia K> puede considerarse com ola rigidez del robot y la herramienta.

(2–11)

Por último vamos plantear mediante diagrama de bloques la arquitectura de control de fuerza por rigidez.

Si tenemos en cuenta las expresiones:

& = $(') ∗ &' (2–5)

* = $�(') ∗ � (2–8)

�/ = 0/(1 − 1/) = 0/&1 (2–9)

� = 0/(1 − 1/) = 01(1; − 1) (2–11)

Llegamos a la siguiente expresión:

* = $�01$&' = $�01$('; − ') (2–12)

Y el diagrama de bloques sería:

Figura 2 -5. Diagrama bloques control de fuerza por rigidez

Control de esfuerzos

20

2.4 Control de fuerza por impedancia mecánica

En este caso el objetivo es controlar la fuerza (esfuerzo) a través del ajuste de la impedancia mecánica del extremo del robot a las fuerzas externas generadas sobre él cuando se entra en contacto con una superficie.

Para el desarrollo de este método podemos basarnos en el símil eléctrico-mecánico que identifica fuerzas con voltajes y velocidades con corrientes.

Denominamos impedancia mecánica a la relación fuerza a velocidad lineal (par a velocidad angular). Podemos representar esta relación en el dominio de Laplace:

?(@) =�(@)6(@)

(2–13)

Dónde:

F(s)= Fuerza

V(s)= Velocidad

Z(s)= Impedancia mecánica

Si expresión (2-13) la desarrollamos en términos de la posición:

@?(@) =�(@)D(@)

(2–14)

Y suponiendo un caso lineal:

@?(@) = −(E@F +G@ + 0) (2–15)

Donde como se puede ver en la figura (2-6):

I = Matriz de inercia

D= Matriz de amortiguamientoi

K= Matriz de rigidez

Estas matrices se especifican según el comportamiento dinámico deseado para el robot.

21 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

Figura 2 -6. Impedancia mecánica de un cuerpo

La función de transferencia para la expresión (2-14) corresponde a la siguiente ecuación diferencial:

EJ + G� + 0 = −� (2–16)

Podemos considerar el objetivo del control por impedancia como:

La regulación dinámica entre la fuerza de interacción y el error de movimiento una vez especificada la trayectoria de movimiento deseada.

Una vez definida la impedancia, el sistema de bloques de control corresponde a la figura (2-7)

Figura 2 -7. Diagrama de bloques control por impedancia

Dónde:

KL= trayectoria deseada

K = posición (y orientación) del extremo del robot

KM= vector de ajuste que se obtiene de filtrar las fuerzas y pares de iteración

N, O, 2= son las matrices que especifican la impedancia deseada

KP= referencia modificada = (KL − KM)

Control de esfuerzos

22

Se puede observar que si no hay contacto con la superficie (F=0) entonces KP=KL , por lo que el robot y el robot sigue con la trayectoria deseada.

Resumiendo, el control por impedancia se basa en regular la relación entre la velocidad y las fuerzas, o lo que es igual, a la impedancia mecánica.

2.5 Control híbrido posición-fuerza El control híbrido (fuerza - posición) para robots industriales es una técnica basada en el comportamiento que debe tener el robot por cada grado de libertad; es decir, cada grado de libertad es controlado en términos de la posición o en términos de la fuerza.

Para realizar un control híbrido es necesario conocer las restricciones del sistema, las cuales se definen como las limitaciones de posición, velocidad y fuerza que tiene el manipulador por cada grado de libertad.

Existen dos tipos de restricciones: las naturales y las artificiales.

Las restricciones naturales se pueden definir como aquellas que surgen de acuerdo con cada situación de contacto en el manipulador, mientras que las restricciones artificiales son introducidas para especificar los movimientos y las fuerzas deseadas en el robot.

Vamos a analizar las restricciones de la figura (2-8), donde podemos observar el efector final de un manipulador que se encuentra en contacto con una superficie plana desplegada sobre los ejes (x,y).

Figura 2 -8. Efector final en contacto con superficie plana

23 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

Realizando un análisis de las limitaciones en el sistema de la figura anterior, obtenemos:

a) Restricciones naturales: se encuentran en posición y velocidad en la dirección normal al plano de la superficie.

b) Restricciones artificiales: las fuerzas que se encuentran en las direcciones tangenciales al plano.

Podemos expresar matemáticamente lo anteriormente mencionado como:

- Restricciones naturales en la posición:

6� = Q, ( = Q, ( = Q (2–17)

- Restricciones naturales debidas a la fuerza:

� = Q, � = Q, R� = Q (2–18)

- Restricciones artificiales del sistema:

6 = 6S, 6 = 6S,(� = Q (2–19)

�� = �S, R = Q, R = Q (2–20)

Donde 6Sy �S son la velocidad y fuerza deseada para el robot.

Si deseamos realizar el control híbrido de un manipulador se hace necesario que se genere una estrategia de control dependiendo de la aplicación para la que se vaya a usar el robot.

Un posible orden para la estrategia de control podría ser:

• Una labor compleja debe ser dividida en subtareas, donde cada una quedará definida por las restricciones artificiales necesarias.

• Las restricciones artificiales son las referencias para el sistema de actuación del robot ya sean en posición o fuerza.

• La transición entre subtareas se da cuando se cumple determinadas condiciones que deben ser suministradas al sistema.

• La descomposición de subtareas puede ser una tarea de planificadores automáticos.

Esta estructura de control tiene la particularidad que cada sub-controlador se puede diseñar de forma independiente, donde el control de posición puede ser de tipo PD y el controlador de fuerza podría ser de tipo PID (Proporcional - Integral - Derivativo).

Cabe apreciar que el control de fuerza se encuentra determinado por la estructura del medio en el que interactúa.

Control de esfuerzos

24

A continuación vamos a comentar la arquitectura de control híbrido. En virtud del sistema de referencia de restricciones, se puede decir qué grados de libertad deben ser controlados en posición y cuales por fuerza.

Matemáticamente se representa a través de una matriz diagonal de restricciones S, cuyas componentes toman el valor 1 o 0 según tenga que ser controlado el grado de libertado asociado por fuerza o posición respectivamente.

Véase el siguiente ejemplo:

Figura 2 -9. Matrices de restricciones en aplicación de pulido con fuerza constante en robot SCARA

Una posible representación mediante diagrama de bloques puede ser el representado en la figura (2-10).

Cuando uno de los elementos de la matriz S vale 1, el bucle de control se desconecta, y viceversa con el de fuerza cuando vale 0.

Hay que comentar que las referencias son tomadas directamente de sensores de posición y fuerza.

Figura 2 -10. Diagrama de bloques control híbrido

25 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

2.6 Sensores Por último vamos a centrar este punto en una descripción de los sensores para robots manipuladores. Ya hemos comentado anteriormente que para que un robot realice su tare de forma precisa es necesario que el robot tenga conocimiento tanto de su propio estado como del estado de su entorno.

Una posible definición de sensor podría ser el de un dispositivo eléctrico y/o mecánico que convierte magnitudes físicas (presión, luz, magnetismo…) en valores medibles de dicha magnitud.

Podemos diferenciar dos tipos de sensores: internos y externos.

a) Sensores internos: están integrados dentro de la propia estructura del robot. Fundamentalmente dan información sobre posición, velocidad y aceleración de las articulaciones.

b) Sensores externos: dan información del entorno del robot tal como proximidad, contacto, fuerza,...

2.6.1 Sensores Internos

Están integrados dentro de la propia estructura del robot. Fundamentalmente dan información sobre posición, velocidad y aceleración de las articulaciones.

a) SENSORES DE POSICIÓN:

Son los encargados de indicar a la unidad de control la posición del robot. Vamos a enumerar los más importantes:

- POTENCIOMETROS

Se usan para la determinación de desplazamientos lineales o angulares. Podemos considerar que se cumple la siguiente relación eléctrica (2-11):

Figura 2 -11. Relación eléctrica

El potencial anterior pude medirse y de esta manera se dispone de un sistema de calibrado de manera que por cada nivel de potencial se obtiene proporcionalmente una distancia de desplazamiento.

La ventaja de este tipo de sensores es su bajo precio y la facilidad de uso.

La mayor desventaja, aparte de la limitada precisión, que presentan es que deben estar fijados al dispositivo cuyo desplazamiento se quiere medir.

Control de esfuerzos

26

- ENCODERS

Constan de un disco transparente con una serie de marcas opacas colocadas radialmente y equidistantes entre sí, de un sistema de iluminación y de un elemento foto receptor.

El eje cuya posición se quiere medir va acoplado al disco, a medida que el eje gira se van generando pulsos en el receptor cada vez que la luz atraviese las marcas, llevando una cuenta de estos pulsos es posible conocer la posición del eje.

La resolución (cantidad de medida más pequeña que se puede detectar) depende del número de marcas que se pueden poner físicamente en el disco.

Figura 2 -12. Encoder

27 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

- SINCROS

Es un transductor de posición angular de tipo electromagnético. Su principio de funcionamiento puede resumirse diciendo que se trata de un transformador, en el que uno de los devanados es rotativo. La configuración más habitual se basa en situar el primario en el rotor y monofásico y, por otra parte, el secundario en el estator y trifásico.

Cuando se aplica una tensión senoidal al devanado primario, se recogen en los devanados secundarios de cada una de las fases tres tensiones, cuya amplitud y fase con respecto a la tensión del primario dependen de la posición angular del rotor

Figura 2.13. Sincro

- CODIFICADOR ROTATIVO

Son captadores angulares de posición, suelen denominarse también como resolvers.

Los resolvers parecen pequeños motores pero son, esencialmente, transformadores rotativos diseñados de tal modo que su coeficiente de acoplamiento entre el rotor y el estator varía según sea la posición angular del eje.

Figura 2 -14. Codificador rotativo

Control de esfuerzos

28

- SENSORES DE DESPLAZAMIENTO INDUCTIVO (LVDT)

Los sensores de desplazamiento tipo inductivo, también conocidos como sensores de desplazamiento LVDT basan su funcionamiento en el movimiento de un núcleo dentro del cuerpo del sensor que tiene arrollados los bobinados, de ahí que sea un transformador de núcleo móvil.

Se trata de un sensor sin rozamiento, ya que al ser inductivo, la variación es por campo magnético. Este desplazamiento debidamente calibrado, proporciona una relación entre la inducción y la distancia recorrida.

Vamos ahora a centrarnos en los sensores externos, dentro de los cuales destacaremos los sensores para medición de fuerza.

Figura 2 -15. Sensor LVDT

b) SENSORES DE VELOCIDAD:

La captación de la velocidad se hace necesaria para mejorar el comportamiento dinámico de los actuadores del robot. La información de la velocidad de movimiento de cada actuador se realimenta normalmente a un bucle de control analógico implementado en el propio accionador del elemento motor.

El sensor más usado es el tacogenerador (Figura 2-15) que proporciona una tensión proporcional a la velocidad de giro de su eje.

Su funcionamiento se basa en convertir la energía del eje en cuestión en energía eléctrica, proporcional a la rotacional y que puede ser fácilmente medida.

Para generar la corriente a partir del giro se acopla al motor o eje que se va a medir, una espira situada dentro de un campo magnético fijo (creado por los dos imanes).

Al girar el motor, la espira girará en el interior del campo magnético, lo que provocará una corriente eléctrica

Figura 2 -16. Tacogenerador

29 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

c) SENSORES DE ACELERACIÓN:

Los acelerómetros o sensores de aceleración, están pensados para realizar una medida de aceleración o vibración, proporcionando una señal eléctrica según la variación física, en este caso la variación física es la aceleración o la vibración.

Para cubrir los diferentes rangos de medida, precisión y protección, existen una gran variedad de acelerómetros, fabricados con diferentes tecnologías, que permiten cubrir todas las necesidades.

A continuación se muestran unos ejemplos de acelerómetros:

Figura 2 -17. Acelerómetros

2.6.2 Sensores externos

El empleo de mecanismos de detección exteriores permite a un robot interaccionar con su ambiente de una manera flexible. Proporcionan información sobre los objetos en el entorno del robot.

Los sensores de estado externo operan con la detección de variables tales como el alcance, la proximidad y el contacto. La detección externa, se utiliza para el guiado del robot, así como para la manipulación e identificación de objetos.

A continuación detallamos algunos de los tipos de sensores más importantes:

Control de esfuerzos

30

a) SENSORES DE PROXIMIDAD:

Los sensores de proximidad suelen tener una salida binaria que indica la presencia de un objeto dentro de un intervalo de distancia especificado. En condiciones normales, los sensores de proximidad se utilizan en robótica para un trabajo en campo cercano en relación a agarrar o evitar un objeto.

- SENSORES INDUCTIVOS

Los sensores basados en un cambio de inductancia debido a la presencia de un objeto metálico están entre los sensores de proximidad industriales de más frecuente uso.

El principio de funcionamiento es la modificación de un campo magnético por la presencia de objetos metálicos. Constan de una bobina situada junto a un imán permanente.

En condiciones estáticas no hay ningún movimiento en las líneas de flujo y no se induce ninguna corriente en la bobina. Cuando un objeto metálico penetra en el campo del imán o lo abandona, el cambio resultante en las líneas de flujo induce un impulso de corriente, cuya amplitud es proporcional a la velocidad del cambio del flujo. La forma de onda de la tensión a la salida de la bobina proporciona un medio para detectar la proximidad de un objeto.

Figura 2 -18. Sensor inductivo y principio de funcionamiento

31 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

- SENSORES DE EFECTO HALL

El efecto Hall relaciona la tensión entre dos puntos de un material conductor o semiconductor con un campo magnético a través del material.

Los sensores de efecto Hall están basados en el principio de una fuerza de Lorentz que actúa sobre una partícula cargada que se desplaza a través de un campo magnético.

Esta fuerza actúa sobre un eje perpendicular al plano establecido por la dirección de movimiento de la partícula cargada y la dirección del campo.

El principio de funcionamiento es el siguiente (Figura 2-18):

En ausencia de material el sensor de efecto Hall detecta un campo magnético intenso.

Cuando el material se aproxima al sensor el campo magnético se debilita en el sensor debido a la curvatura de las líneas de campo a través del material.

Figura 2 -19. Principio funcionamiento sensores efecto Hall

- SENSORES CAPACITIVOS

A diferencia con los sensores inductivos y de efecto Hall que detectan solamente materiales ferromagnéticos, los sensores capacitivos son potencialmente capaces (con diversos grados de sensibilidad) de detectar todos los materiales sólidos y líquidos.

Como su nombre indica, estos sensores están basados en la detección de un cambio en la capacidad inducido por una superficie que se lleva cerca del elemento sensor.

El elemento sensor es un condensador constituido por un electrodo sensible y un electrodo de referencia separados por un dieléctrico, una cavidad de aire seco para aislar y un conjunto de circuitos electrónicos.

Control de esfuerzos

32

Un ejemplo de sensor capacitivo es:

Figura 2 -20. Sensor capacitivo

- SENSORES DE ULTRASONIDOS

Con este tipo de sensores se reduce la dependencia de los sensores de proximidad al material del objeto de la detección.

Las ondas ultrasónicas tienen la capacidad de que cuando viajan por un medio cualquiera son reflejadas si encuentran en su camino una discontinuidad o algún elemento extraño.

El elemento básico de este tipo de sensores es un transductor electroacústico, de tipo cerámico piezoeléctrico. La capa de resina protege al transductor contra la humedad, polvo y otros factores ambientales.

A pesar del alto grado de uso de los sensores ultrasónicos, éstos presentan problemas que dificultan su implantación y hacen que las medidas, sobre todo de objetos lejanos sean erróneas.

Figura 2 -21. Sensor ultrasónico

33 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

- SENSORES OPTICOS

Un sensor óptico detecta un objeto por medio de un haz luminoso. Sus dos componentes básicos son un emisor y un receptor de luz.

La detección es efectiva cuando el objeto penetra en el haz de luz y modifica suficientemente la cantidad de luz que llega al receptor para provocar el cambio de estado de la salida.

Se siguen dos procedimientos:

– bloqueo del haz por el objeto detectado

– retorno del haz sobre el receptor por el objeto detectado.

Los detectores fotoeléctricos disponen de un emisor de diodo electroluminiscente y de un receptor de fototransistor. Estos componentes se utilizan por su elevado rendimiento luminoso, su insensibilidad a los golpes y a las vibraciones, su resistencia a la temperatura, su durabilidad prácticamente ilimitada y su velocidad de respuesta.

Dependiendo del modelo de detector, la emisión se realiza en infrarrojo o en luz visible verde o roja. La corriente que atraviesa el LED emisor se modula para obtener una emisión luminosa pulsante e insensibilizar los sistemas.

Figura 2 -22. Sensor óptico de proximidad

b) SENSORES DE FUERZA

Este tipo de sensores son los que más nos interesan debido a que son los usados en los controles de fuerza en los robots manipuladores.

Se utilizan fundamentalmente para determinar la fuerza con la que el extremo del robot interactúa con un determinado objeto. En los robots manipuladores suelen colocarse entre la muñeca y la pinza y proporciona información acerca de las tres componentes de fuerza y sus tres momentos.

Los valores de fuerza no pueden medirse directamente y habitualmente se obtiene una medida indirecta a partir de otras medidas como la compresión, el desplazamiento o la deformación obtenidas al aplicar la fuerza a medir.

Estas medidas indirectas son captadas mediante dispositivos como los sensores piezorressitivo.

Control de esfuerzos

34

Estos sensores piezorresistivos presentan una resistencia variable a la deformación sufrida tras la aplicación de una fuerza (en inglés se denominan Strain-Gauged).

Los sensores piezorresistivos tienen la propiedad de variar su resistencia al sufrir un alargamiento mediante el uso de galgas extensiométricas. Suelen contener una armadura que se puede desplazar en una dirección. Dicha distancia de desplazamiento está limitada por filamentos de alambre sensible a acciones de fuerza, de modo que, cuando al extensómetro se le aplica una fuerza dicha armadura se desplaza proporcionando un cambio en la resistencia de los filamentos.

Estos sensores se encuentras normalmente unidos a las superficies que sufren la fuerza que se desea medir. Cuando estas superficies se comprimen o expanden, los sensores también sufren una deformación en su longitud cambiando proporcionalmente su resistencia. Debido a esto siempre se deben colocar estos dispositivos en la dirección en la que se va a aplicar la fuerza.

Por lo comentado anteriormente, la disposición habitual para la obtención de la fuerza y los momentos aplicados suele ser en los brazos de una cruz metálica (Figura 2-20).

Figura 2 -23. Componentes sensor de fuerza

Mediante esta disposición se puede obtener la fuerza (fuerza y pares ejercidos) F que será proporcional a la lectura de los sensores T�, T�, … . TU.

Matemáticamente podemos expresarlo como:

V�, �,�, �, �,��W = 0V@X, @F,@Y, @Z, @[,@\, @], @^W (2–20)

35 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

A nivel comercial los sensores de fuerza y torsión más usados por el fabricante de robots STAUBLI son los sensores de la firma ATI Industrial Automation, en las aplicaciones donde es necesaria la medición de este tipo de variables.

Pueden verse los diferentes modelos en la siguiente web: http://www.ati-ia.com/

Figura 2 -24. Sensor de fuerza ATI

Control de esfuerzos

36

37

3 DESCRIPCIÓN DEL SISTEMA

n este capítulo vamos a describir los diferentes elementos y soportes que nos van a permitir realizar la simulación del sensor de esfuerzos en el posicionamiento de piezas de un robot manipulador tipo SCARA. Para realizar nuestro trabajo hemos elegido un robot disponible en nuestro laboratorio de

Sabadell, el TS80, el controlador CS8C, el lenguaje de programación VAL 3 y la herramienta de trabajo software SRS 2016 (Staubli Robotics Suite).

3.1 Robot Staubli TS80

3.2.1 Presentación

Como puede verse en la figura 3-1, el brazo está constituido por miembros enlazados entre sí por articulaciones. Los movimientos de dichas articulaciones son generados por servomotores.

Una de las principales características de este robot es que permite conocer permanentemente la posición absoluta del mismo.

Figura 3-1. Robot Staubli TS80

E

El secreto para salir adelante es simplemente empezar

- Marc Twain -

Descripción del sistema

38

Las principales aplicaciones donde podemos encontrar este tipo de robot son:

- Manipulación de carga.

- Ensamblaje.

- Procesos de control/comprobación.

De la figura 3-1 podemos distinguir los elementos fundamentales del brazo robótico: el pie (A), el brazo 1 (B), el brazo 2 (C) y el tornillo de bola (D).

3.2.2 Dimensiones

A continuación, en la figura 3-2, se detallan las dimensiones del robot TS80.

Figura 3-2. Vista lateral y superior TS80

39 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

3.2.3 Zona de trabajo

Figura 3-3. Rango de trabajo TS80

Descripción del sistema

40

3.2.4 Características técnicas

Finalmente vamos a describir algunas de las características más importantes del robot TS80, como la amplitud, velocidad, resolución, respetabilidad y carga máxima.

a) AMPLITUD

Amplitud (mm) 800

Radio Interno (mm) 183

Amplitud angular eje 1 ± 140

Amplitud angular eje 2 ± 155

Carrera eje 3 (mm)

Amplitud angular eje 4 ± 500

b) VELOCIDAD NOMINAL/MÁXIMA

Eje 1 (º/s) 350/490

Eje 2 (º/s) 500/585

Eje 3 (mm/s) 1600/2220

Eje 4 (º/s) 1200/1929

Ejes 1 +2 (m/s) 8.11/10.62

c) RESOLUCIÓN

Eje 1 (x 0.001º) 0.060

Eje 2 (x 0.001º) 0.068

Eje 3 (x 0.001 mm) 0.254

Eje 4 (x 0.001º) 0.0183

41 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

d) CARGA MÁXIMA TRANSPORTABLE

3.2 Controlador CS8C A continuación se detalla la descripción y localización de los componentes del controlador usado en nuestro proyecto para el control de esfuerzos.

El controlador contiene todos los elementos electrónicos necesarios para controlar el manipulador y los diferentes equipos periféricos.

3.2.1 El armario de control

Como puede verse en la figura 3-4, está constituido por una CPU (5), quién gestiona al robot a través de amplificadores de potencia numéricos (1) asociados a cada eje del brazo.

La gestión del robot se realiza a través de amplificadores de potencia numéricos (1) asociados a cada uno de los ejes del brazo.

Otro componente a destacar es el bloque de potencia, PSM (7) quién realiza la conversión de energía eléctrica.

Figura 3-4. Armario de control CS8C

A velocidad reducida 8 Kg

A velocidad nominal 2 Kg

Descripción del sistema

42

La alimentación RPS (2) y la ARPS (3) suministran a los anteriores elementos las tensiones necesarias para su correcto funcionamiento.

Las funciones de seguridad eléctrica se gestionan a través de la tarjeta RSI (4) y el paro se produce poniendo el interruptor frontal del armario de control (6) en la posición de 0.

3.2.2 El MCP (mando manual)

El MCP (mando manual) permite aplicar la potencia y controlar los movimientos del brazo. El modelo usado en nuestro desarrollo es el SP1.

Figura 3-5. Mando manual SP1

A continuación vamos a detallar con más profundidad las funcionalidades del mando manual SP1.

(1) Modo de trabajo

Según la elección del modo de trabajo en la interfaz del operador WMS (se comentará más adelante), se indica entorno al botón 1.

(2) Botón de aplicación de potencia al brazo (2)

A través de este botón permite activar/desactivar la energía del brazo.

Si el indicador está en verde fijo, nos informa de que la aplicación de potencia es efectiva

43 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

(3) Parada de emergencia

(4) Teclas de movimientos

Están activas cuando se selecciona el modo manual y permiten generar movimientos del brazo.

(5) Modo de desplazamiento

A través de estas cuatro teclas (figura 3-6) se puede seleccionar el modo de desplazamiento, siempre y cuando el brazo esté sometido a potencia y en modo manual.

Los modos de desplazamiento disponibles son:

a) JOINT: define la posición angular de cada eje angular y la posición lineal de cada eje lineal.

b) FRAME: El tipo frame permite definir la posición de sistemas de referencia en la célula. Manual cartesiano.

c) TOOL: permite definir la geometría y la acción de una herramienta.

d) POINT: permite definir la posición y la orientación de la herramienta del robot en la célula.

Figura 3-6. Modos de desplazamiento

(6) Control de velocidad

Mediante esta tecla se puede variar la velocidad del brazo dentro de los límites impuestos por el modo de desplazamiento. El parámetro de velocidad puede verse en la pantalla del MCP.

(7) Teclas menús contextuales

A través de estas teclas se pueden validar los diversos menús mostrados encima de ellas.

(8) Teclas alfanuméricas

A través de estas teclas se introducen los datos de la aplicación en cuestión.

(9) Teclas de interfaz y numeración

Descripción del sistema

44

(10) Teclas de comando de aplicaciones

Estas teclas se utilizan para poner en marcha/detener una aplicación y para validar los movimientos del brazo (Figura 3-8).

TECLA STOP: detiene la aplicación en curso

TECLA RUN: permite la puesta en marcha de una aplicación

TECLA MOVE/HOLD: tiene diferentes funciones dependiendo del modo de trabajo.

Figura 3-7. Teclas comando aplicaciones

(11) Activación del dispositivo

Este botón tiene tres posiciones y acciona contactos que están:

- Abiertos cuando el botón no está activado.

- Cerrados en la posición media.

- Abiertos en una posición completamente hundida que corresponde a una crispación del

usuario.

(12) Activación salidas digitales

En modo manual, mediante estas teclas hacen que se conmute el estado de las salidas digitales que les están asociadas.

(13) Teclas de Jog

Estas teclas están activas en el modo manual y permiten generar movimientos del brazo, por

eje o en los puntos de referencia según el modo de desplazamiento elegido (Joint, Frame, Tool), con una sola mano

Figura 3-8. Teclas de Jog

45 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

3.2.3 Interfaz opearador WMS

El interfaz WMS (Working Mode Selection) se usa para la selección de los modos de funcionamiento.

Se debe instalar siempre fuera de la célula.

Figura 3-9. Interfaz WMS y modos de funcionamiento

A continuación pasamos a describir brevemente cada uno de los modos de funcionamiento:

a) MODO LOCAL:

El modo local permite hacer desplazar el robot sin ninguna intervención humana a la velocidad máxima definida para la aplicación. Los movimientos son el resultado de un escenario escrito en un programa.

El robot es operativo únicamente cuando se ven reunidas las siguientes condiciones:

• El brazo está sometido a potencia.

• Una aplicación de movimiento está cargada en la memoria y está en curso de ejecución.

b) MODO DESPLAZADO:

El funcionamiento del modo desplazado es similar al modo local pero con algunas diferencias en el encendido del brazo, corte de potencia y activación/desactivación de alguno de los botones como el Move/Hold.

Descripción del sistema

46

c) MODO MANUAL:

El modo manual se utiliza en los siguientes casos:

• Desplazamientos manuales del brazo.

El operador acciona los movimientos del brazo a partir del MCP.

• Prueba / puesta a punto de una aplicación.

3.3 Lenguaje de programación VAL3

3.2.1 Antecedentes

El lenguaje de programación VAL3 aparece como una evolución del lenguaje VAL II, el cual fue una evolución del lenguaje VAL. El lenguaje VAL3 se considera como lenguaje de programación de segunda generación de programación de robots industriales.

El lenguaje VAL fue introducido en 1979 por UNIMATION para su serie de robots PUMA y se considera dentro de los lenguajes de primera generación para programación de robots. Este sistema (al igual que otros sistemas de primera generación) tiene algunas limitaciones, tal como la incapacidad para realizar cálculos aritméticos complejos durante la ejecución de un programa y aplicaciones con sensores de alta tecnología.

El lenguaje de programación VAL II fue lanzado al mercado en 1984 reemplazando al VAL. Este lenguaje ya se considera de los de segunda generación. Este tipo de lenguajes salvaban algunas de las limitaciones de los lenguajes de primera generación, haciendo que los robots parezcan más inteligentes. Este tipo de lenguajes también han sido llamados lenguajes de programación estructurada ya que poseen construcciones de control similares a los usados en los lenguajes de programación de computadores.

Algunas de las principales características y capacidades del lenguaje de programación VAL II pueden ser:

a) Control de movimiento: es básicamente la misma que para los lenguajes de primera generación aunque se incluyen problemas geométricos más complejos.

b) Capacidades de sensor avanzadas: una de las mejoras de este tipo de lenguajes es la capacidad para tratar con más que señales binarias simples (todo o nada) y la capacidad para controlar los dispositivos por medio de los datos del sensor.

c) Comunicación y procesamiento de datos: los lenguajes de segunda generación suelen tener los medios adecuados para interactuar con PC, generar informes y controlar la célula de trabajo.

d) Inteligencia limitada: esta capacidad utiliza la información recibida sobre el entorno de trabajo para modificar el comportamiento del sistema de una manera programada.

47 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

Posteriormente, en el año 1989, Adept Technology desarrolló el lenguaje de programación textual de alto nivel VAL 3 (VAL+).

Actualmente aparte del uso en robots industriales de la firma Adept, ha sido incorporado por Staubli para la programación de sus robots.

El lenguaje VAL 3 combina las características básicas de un lenguaje informático de alto nivel en tiempo real estándar y de las funcionalidades específicas del control de una célula de robot industrial:

a) Herramientas de control del robot

b) Herramientas de modelización geométrica

c) Herramientas de control de entradas salidas

3.2.2 Elementos del lenguaje VAL 3

A continuación detallaremos los elementos más importantes del lenguaje VAL 3 para su programación.

3.3.2.1 Aplicaciones

Una aplicación VAL 3 es un paquete de software autónomo diseñado para controlar robots y entradas/salidas asociadas a un controlador y está constituida por los siguientes elementos:

- Un conjunto de programas (las instrucciones VAL 3 que deben ejecutarse)

- Un conjunto de Variables Globales (los datos compartidos por todos los programas en la aplicación)

- Un conjunto de bibliotecas (las aplicaciones externas utilizadas para compartir programas y/o datos)

- Un conjunto de tipos de usuario (aplicaciones externas utilizadas como plantillas para definir datos estructurados en la aplicación)

Posteriormente daremos más detalles de cada uno de estos elementos.

La puesta en marcha de una aplicación VAL 3 es gestionada siempre por el controlador. Este puede utilizar una petición del usuario, a partir del usuario MCP, o de manera automática, como parte del proceso de inicio.

Solo puede ponerse en marcha una aplicación VAL 3 a la vez. Sin embargo, esta aplicación puede utilizar simultáneamente diversas otras aplicaciones (como bibliotecas) y poner en marcha diferentes tareas de ejecución.

Cuando una aplicación VAL 3 está en funcionamiento, se ejecuta su programa start().

Una aplicación VAL 3 se para por sí misma cuando se termina la última de sus tareas: entonces, se ejecuta el programa stop(). Todas las tareas creadas por bibliotecas, si quedan, son destruidas en el orden inverso de su creación.

Descripción del sistema

48

Si la parada de una aplicación VAL 3 se provoca desde la interfaz de usuario del MCP, la tarea de arranque, si ésta existe todavía, se destruye inmediatamente. Se ejecuta después del programa stop(), y, a continuación, todas las tareas de la aplicación, si quedan por hacer, se destruyen en el orden inverso del orden en que fueron creadas.

Por otro lado, una aplicación puede ser configurada por los siguientes parámetros:

a) La unidad de longitud: es el milímetro o la pulgada. Ésta es utilizada por los tipos de datos geométricos del VAL 3: plano, punto, articulación (para ejes lineales), transformación, herramienta y combinación de trayectoria. La unidad de longitud de una aplicación se define en el momento de su creación por la unidad de longitud en curso del sistema, y no puede ser ya modificada a continuación.

b) Cantidad de memoria de ejecución: se necesita memoria para el almacenamiento de tareas de VAL 3. Por defecto, cada tarea incluye 500 bytes para la memoria de ejecución. En ocasiones este nivel de memoria no es suficiente para aplicaciones que contengan grandes tablas de variables locales o diversos algoritmos recursivos. En este caso debe incrementarse la memoria de ejecución a través del interfaz MCP o utilizando el VAL3 Studio en SRS.

3.3.2.2 Programas

Podemos definir un programa como una secuencia de instrucciones de VAL 3 por ejecutar, que está constituido por:

- La secuencia de instrucciones que deben ejecutarse.

- El conjunto de variables locales (datos internos del programa)

- El conjunto de parámetros (datos facilitados al programa en cuestión cuando se le llama)

El número de instrucciones de un programa está únicamente limitado por el espacio disponible en la memoria del sistema, mientras que el número de variables locales y de parámetros sólo está limitado por el tamaño de la memoria de ejecución. Un comentario a destacar es que los programas son re-entrantes, es decir que un programa puede llamarse a sí mismo de manera recurrente (instrucción call) o puede ser llamado simultáneamente por varias tareas. Cada llamada de un programa utiliza sus variables y parámetros locales únicos. No es posible ninguna interacción entre dos diferentes llamadas del mismo programa.

Es necesario comentar los programas START () y STOP ().

El programa start() es el programa llamado cuando se ejecuta la aplicación VAL 3 y no puede tener parámetros. Este programa incluye todas las operaciones requeridas para ejecutar la aplicación: inicialización de las variables globales y de las salidas, creación de las tareas de aplicación, etc. La aplicación no termina al final del programa start(), mientras otras tareas de aplicación continúen en funcionamiento.

49 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

El programa stop() es el programa llamado durante la parada de la aplicación VAL 3 y tampoco puede tener parámetros. En este programa se encuentran especialmente todas las operaciones necesarias para terminar propiamente la aplicación: reactualizar las salidas y detener las tareas de la aplicación, según la secuencia apropiada, etc.

Por último vamos a detallar las principales instrucciones de control de un programa en lenguaje de programación VAL 3: comentario, llamada de subprograma call, return, if, while, do…until, for y switch. Para cada una de estas instrucciones detallaremos su estructura, su función y un ejemplo de aplicación.

a) Comentario

La estructura de esta instrucción es: // <Cadena>

Una línea que se inicie con « // » no es ejecutada y la ejecución se reanuda en la línea de texto. No puede

utilizarse « // » en la mitad de una línea; estos deben ser los primeros caracteres en la línea.

3.10 Ejemplo de comentario.

b) Subprograma call

La estructura de esta instrucción es: call programa([parámetro1][,parámetro2])

La instrucción de llamada ejecuta un programa definido por el usuario. El número y el tipo de expresiones después del nombre del programa debe coincidir con la interfaz del programa. Las expresiones especificadas como parámetros son primero ejecutadas en el orden en el que están especificadas. Las variables locales son luego inicializadas y la ejecución del programa comienza con su instrucción de inicio. La ejecución de una llamada se completa cuando el programa ejecuta una instrucción de retorno o de fin.

3.11 Ejemplo llamada subprograma call.

Descripción del sistema

50

c) Return

La estructura de esta instrucción es: return

La instrucción de return (retorno) termina la ejecución del programa en curso, de manera inmediata.

Si este programa fue llamado mediante un call, la ejecución se reanuda después del call en el programa de llamada. En caso contrario (si el programa es el programa start() o el punto de lanzamiento de una tarea), la tarea en curso se termina.

Esta instrucción tiene exactamente el mismo efecto que la instrucción de fin, al final del programa.

d) If

La estructura de esta instrucción es de la siguiente forma:

if <bool bCondición>

<instrucciones>

[elseIf <bool bCondiciónAlterna1>

<instrucciones>]

../..

[elseIf <bool bCondiciónAlternaN>

<instrucciones>]

[else

<instrucciones>]

endIf

La secuencia if...elseIf...else...endIf evalúa sucesivamente las expresiones booleanas marcadas por las palabras clave if ó elseIf hasta que una expresión sea verdadera. Se ejecutan luego las instrucciones que siguen a la expresión booleana, hasta la siguiente palabra clave elseIf, else o endIf. El programa se reanuda finalmente después de la palabra clave endIf.

No hay límite al número de expresiones elseIf en una secuencia if...endIf.

3.12 Ejemplo que convierte un día escrito en un string (sDay) en un num (nDay).

51 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

e) While

En este caso la estructura que presenta esta instrucción es:

while <bool bCondición>

<instrucciones>

endWhile

Las instrucciones entre while y endWhile son ejecutadas cuando la expresión bCondición booleana es (true). Si la expresión bCondición booleana no es verdadera a la primera evaluación, las instrucciones entre while y endWhile no son ejecutadas.

3.13 Ejemplo uso instrucción while

f) Do … until

Esta instrucción presenta en este caso la siguiente configuración:

do

<instrucciones>

until <bool bCondición>

Las instrucciones entre do y until son ejecutadas hasta que la expresión bCondición booleana sea (true).

Las instrucciones entre do y until son ejecutadas en el momento en el que la expresión bCondición es verdadera, durante esta primera evaluación.

3.14 Ejemplo uso instrucción do …until

Descripción del sistema

52

g) For

La estructura para la instrucción for es la siguiente:

for <num nContador> = <num nComienzo> to <num nFin> [step <num nPaso>]

<instrucciones>

endFor

Las instrucciones entre for y endFor son ejecutadas hasta que nContador exceda el valor nFin especificado.

El nContador se inicializa mediante el valor nComienzo.

Si nComienzo excede nFin, las instrucciones entre for y endFor no son ejecutadas. Con cada interacción, el nContador se incrementa por el valor nPaso, y las instrucciones entre for y endFor se ejecutan de nuevo si el nContador no excede nFin.

3.15 Ejemplo uso instrucción for

h) Switch

La estructura de esta instrucción es:

switch <expresión>

case <valor1> [, <valor2>]

<instrucciones1-2>

break

[case <valor3> [, <valor4>]

<instrucciones3-4>

break ]

[default

<instrucciones predeterminadas>

break ]

endSwitch

53 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

La secuencia switch...case...default...endSwitch evalúa sucesivamente las expresiones indicadas por la palabra clave case hasta que una expresión sea igual a la expresión inicial después de la palabra clave switch.

Luego se ejecutan las instrucciones que siguen a la expresión, hasta la palabra clave break. El programa se reanuda finalmente después de la palabra clave endSwitch.

Si ninguna expresión case es igual a la expresión switch inicial, se ejecutan las instrucciones entre las palabras clave default y endSwitch (si está presente la palabra clave default).

3.16 Ejemplo uso instrucción switch

3.3.2.3 Datos

Un dato es un conjunto de valores a utilizar como parámetro o resultante de instrucciones VAL 3 .

Un dato consta de los siguientes elementos:

- Un conjunto de valores.

- El tipo, el cual define los valores posibles y operaciones autorizadas sobre los datos. Los tipos de datos más simples son Booleano, Numérico y Cadena.

- Un contenedor, que define la manera de como almacenados los datos. Tenemos tres tipos de contenedores:

a) Elemento: consiste simplemente en un valor individual.

b) Conjunto: consta de un conjunto de valores identificados por índices enteros 1, 2 o 3.

c) Colección: consta de un conjunto de valores identificados por una clave cadena.

Descripción del sistema

54

El lenguaje de programación en VAL 3 soporta los siguientes tipos sencillos:

a) bool: para los valores booleanos (verdadero / falso)asd

b) num: para valores numéricos (números de enteros o punto flotante)asd

c) string: para cadenas de caracteres (caracteres Unicode)ads

d) dio: para entradas/salidas digitales

e) aio: para las entradas-salidas numéricas (analógicas o digitales)

f) sio: para las entradas-salidas en conexión serie y socket Ethernet

g) screen: para acceso por pantalla MCP y teclado

Por otro lado podemos definir como tipo estructurado, aquel tipo que combina varios tipos sencillos con el fin de formar un tipo de nivel más elevado. A cada subtipo se le otorga un nombre y puede accederse al mismo individualmente, como un campo de la estructura.

Este tipo de lenguaje de programación soporta los siguientes tipo estructurados:

h) trsf: para las transformaciones geométricas cartesianas

i) frame: para los planos geométricos cartesianos

j) tool: para las herramientas ajustadas en un robot

k) point: para las posiciones cartesianas de una herramienta

l) joint : para las posiciones de los ejes del robot

m) config: para las configuraciones del robot

n) mdesc: para los parámetros de desplazamiento del robot

En el capítulo posterior se comentarán con más detalle los tipo sencillo y estructurados usados en el programa sobre el cual gira el PFC.

3.3.2.4 Variables

Una variable es un dato referenciado por su nombre en una aplicación o programa y se caracteriza por:

- Un nombre: una cadena de caracteres

- Un indicador: cuando puede accederse a la variable (al interior de un programa individual, compartido por programas al interior de una aplicación, o compartido entre aplicaciones)

- Un conjunto de valores

- Un tipo de dato (tipo simple o estructurado)

- Un contenedor de datos (elemento, conjunto o colección)

El nombre de una variable es una cadena de 1 a 15 caracteres entre "a..zA..Z0..9_", y que comienza con una letra.

55 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

Una cuestión a tener muy en cuanta es el alcance las variables. Una variable puede ser:

a) Local: puede accederse a la variable únicamente mediante el programa en el cual está declarado.

b) Global: todos los programas de la aplicación pueden utilizar la variable.

Cuando una variable global y una variable local tienen el mismo nombre, el programa donde está declarada la variable local utilizará la variable local, y no tendrá acceso a la variable global.

Cuando una aplicación se utiliza como una librería, cada variable global puede declararse como pública o privada. Puede accederse a una variable pública mediante las aplicaciones que utilizan la biblioteca; puede accederse a las variables privadas únicamente al interior de la biblioteca.

Por último vamos a comentar la forma de acceso a las variables, que depende del tipo de contenedor, por lo que el acceso se realiza:

- Contenedor de elemento: con el nombre de la variable (sin corchetes): nVariable

- Contenedor de conjunto: con sus índices numéricos entre corchetes después del nombre de la variable: n1dArray[nIndex], n2dArray[nIndex1, nIndex2], n3dArray[nIndex1, nIndex2, nIndex3].

- Contenedor de colección: con su clave de cadena entre corchetes después del nombre de la variable: nCollection[sKey]

3.17 Inicialización de variables según el tipo de contenedor

.

Una vez comentados los principales elementos del lenguaje de programación VAL 3, vamos a comentar brevemente las soluciones que ofrece STAUBLI para programar un robot.

Descripción del sistema

56

3.18. Programación de un robot STAUBLI

Aparte del lenguaje VAL 3, se han desarrollado las soluciones uniVAL drive y VALproducts para ayudar tanto a usuarios como a fabricantes a la programación de los robots.

Pasamos a comentar cada uno de ellos:

57 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

a) VAL 3 :

Las características de este lenguaje de programación ya fueron comentadas en el apartado anterior. Mediante este lenguaje se pueden programar todos los robots STAUBLI.

A continuación se muestran diversas herramientas para la programación.

3.19. Soluciones VAL3 Staubli

b) VALproducts :

Es un paquete de soluciones desarrolladas por STAUBLI para mercados específicos que favorece y ayuda a la programación de los robots:

- VALntending: carga/descarga de máquina y operaciones de recogida y colocación.

- VALplast: aplicaciones de carga/descarga de piezas en máquinas de inyección.

- PaintiXen: software de pintura diseñado para simplificar el uso y la programación en aplicaciones de pintura.

Descripción del sistema

58

c) uniVAL:

Es la solución desarrollada por Stäubli para controlar cualquiera de sus robots con un controlador industrial de ejes.

Es una solución “lista para conectar” orientado a los fabricantes de máquinas.

3.20. Soluciones uniVAL Staubli

59 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

3.4 SRS (STAUBLI ROBOTICS SUITE) Por último vamos a comentar de manera general la herramienta de desarrollo sobre PC de STAUBLI.

En el siguiente apartado desarrollaremos más este punto en base a la simulación real que se realizó en el laboratorio.

Basado en una plataforma software Windows, el Stäubli Robotics Suite 2016 está diseñado para facilitar la creación de células robotizadas , incluyendo la importación de modelos 3D prediseñados.

Las avanzadas herramientas de software le guía a través del proceso de desarrollo, simulación y depurado de los programas del robot hasta alcanzar la validación final y transferencia a la célula robótica real.

En la siguiente figura se puede ver la estructura general de la herramienta SRS:

Figura 3-21. SRS

Descripción del sistema

60

Algunas de las características a destacar de esta herramienta son:

- Disponibilidad de todos los modelos de robots (y sus distintas configuraciones)

- Total integración del editor VAL3 con escenario 3D

- Operación simultánea de varios robots

- Actualización online de la base de datos.

Dentro de esta herramienta hay tres tipos de niveles, la básica (gratuita), y otros dos niveles (mediante licencia) que son el “Development Studio” y el “Maintenance Studio).

Figura 3.22. Licencias Staubli Robotics Suite

La gestión de estas licencias se gestiona a través de llaves USB, siendo éstas de dos tipos:

1) Llave local:

La Llave local puede contener la licencia Development Studio y/o Maintenance Studio y debe estar conectada al PC donde se ejecuta el Stäubli Robotics Suite.

Figura 3-23. Licencia Staubli Robotics Suite mediante llave local

61 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

2) Llave en red:

La llave en red puede contener hasta 50 licencias Development Studio y 50 licencias Maintenance Studio. Debe estar conectada en uno de los PC de la red y proporciona licencias a los usuarios conectados a la misma red.

Figura 3-24. Licencia Staubli Robotics Suite mediante llave en red

Las funciones básicas que ofrece la herramienta en su versión gratuita son:

a) Editor de VAL3 en modo solo lectura:

- Visualiza e imprime aplicaciones VAL 3.

- Ayuda online para lenguaje VAL 3

b) Escenario 3D:

- Permite la visualización en el PC de los movimientos de trayectoria del brazo robótico.

- Visualización 3D de todos los brazos robóticos

c) Transferencia bidireccional de archivos entre el PC y robots:

- Aplicaciones VAL 3 y archivos de configuración en ambas direcciones

d) Gestión de perfiles de usuario:

- Acceso controlado a través de nombre de usuario y contraseña

- Gestión de derechos de acceso para diversas funcionalidades del sistema, tales como modos de trabajo, programas, puntos …

- Permite asignar diferentes derechos de acceso a posibles usuarios tales como operadores, programadores, personal de mantenimiento …

e) Actualizaciones menores automáticas:

- Stäubli Robotics Suite verifica en cada arranque si hay disponibles actualizaciones menores para descargar

Descripción del sistema

62

3.2.1 SRS Development Studio

Aparte de las funciones de la versión básica, con esta licencia se garantiza acceso a todas las funcionalidades requeridas para realizar simulaciones realistas para uno o más robots:

• Editor de programa VAL 3 con avanzadas funcionalidades inspiradas en los últimos lenguajes informáticos (tales como depuración en línea, auto-completado de código de línea, fragmentos de código, comprobación de sintaxis sobre la marcha).

• Capacidades de importar modelos CAD (STEP, IGES, STL, VRML).

• Modelado 3D basado en formas primitivas simples (cubos, esferas, cilindros).

• Integración profunda en la escena 3D con el entorno de programación.

• Simulaciones multi-robot permitiendo análisis de diseño y mediciones de tiempos de ciclo realistas.

• Creación simple de la herramienta de fin de brazo, partes, y cargas adicionales basadas en modelos 3D.

• Cálculo automático de parámetros de carga (momentos de inercia) para ayudar a seleccionar los mejores robots de montaje así como afinar las leyes de mando dinámicas (estimaciones de tiempos de ciclo más realistas).

• Los robots en la escena 3D se pueden conectar a los controladores reales o emulados.

• Alto rendimiento en detección de colisión: resaltado de elementos en colisión, definición de zonas de distancia de seguridad.

Figura 3.25 Licencia Staubli Robotics Development Studio

3.2.2 SRS Maintenance Studio

Esta licencia garantiza el acceso a todas las funciones requeridas para conectarse remotamente a los robots reales y realizar operaciones de diagnóstico, así como la supervisión remota de los ciclos del robot:

• Acceso completo sobre la Ethernet de los sistemas del robot, posibilidad de visualizar remotamente e interactuar con los controladores del robot y su mando manual desde el PC (PC no suministrado)

• Múltiples usuarios pueden actuar simultáneamente en el mismo robot (remotamente o in situ) y visualizar las acciones de los demás

• Todas las características del mando manual están disponibles remotamente excepto (por razones de seguridad) las que son susceptibles de generar movimiento en el robot

63 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

• Posible conexión remota simultánea de todos los robots de la misma red

• Escena 3D en modo visualización, posibilidad de cargar la célula 3D creada previamente con la licencia Development Studio

Figura 3-26. Licencia Staubli Robotics Maintenance Studio

Descripción del sistema

64

65 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

4 RESULTADOS

n este capítulo se presentan los resultados obtenidos tras simular una aplicación de posicionamiento de piezas en un robot SCARA TS80 de Staubli. El objetivo de la aplicación es poder obtener el esfuerzo que realiza el robot en el eje z a una velocidad nominal determinada al posicionar la pieza, evitando así

posibles daños en el robot/pieza en el supuesto de que el esfuerzo que se realice es superior al deseado. Este valor de esfuerzo deseado se obtiene previamente mediante un “entrenamiento” realizado en las condiciones deseadas. La programación de esta aplicación se realiza mediante el lenguaje de programación VAL3. Las simulaciones se realizaron en la sala de ensayos de la central de Staubli Española en Sabadell.

4.1 Introducción El objetivo de este proyecto es desarrollar y simular un programa de entrenamiento de un robot SCARA para cuantificar el esfuerzo del robot durante el posicionamiento de piezas.

Simplificaremos la aplicación focalizando en el esfuerzo que realiza el robot al posicionar una pieza en el eje z a una determinada velocidad.

La primera parte del proyecto consiste en desarrollar y simular un programa de entrenamiento mediante el cual obtendremos el valor del esfuerzo que realiza el robot a diferentes velocidades. Las condiciones de este entrenamiento (rango movimiento robot y posición final) se configuran de modo de que sean las condiciones límites que deseamos. La tabla de resultados obtenidos de este “entrenamiento” nos servirá a posteriori para que el programa cliente compare el esfuerzo que realiza el robot al posicionar la pieza a una determinada velocidad.

Debido a que no se disponen de sensores de esfuerzos, el proyecto y los programas han sido enfocados al control de esfuerzos mediante el par articular, es decir, que los esfuerzos obtenidos de las simulaciones son calculados a través de la fuerza de las intensidades del motor, siendo estos no fiables al 100%.

4.2 Programa entrenamiento robot (Fuerza) A continuación se detalla en programa en VAL3 para medir la fuerza ejercida en el posicionamiento de una pieza en función de la velocidad de bajada parametrizando esta fuerza en una tabla de resultados con cien mediciones.

El programa de entrenamiento es el siguiente:

E

Si buscas resultados distintos, no hagas siempre lo mismo.

- Albert Einstein -

Resultados

66

Propiedades Unidad: mm, Tamaño de la pila: 5000

Librerías Alias: Datos, Ruta: 'Disk://DatosFuerza/DatosFuerza.pjx', Auto Carga: True

Tipos de variables (ninguno)

Variables mdesc

privado mNomSpeed[1]

string

privado sMensaje[25]

num

privado nLanguage[1]

privado nAltura[1]

privado nFuerza[4]

tool

privado tTool[1]

pointRs

privado pPosition[1]

privado pUp[1]

Data () l_nKeyPress num

begin

cls()

call ToolData()

// Limpiar buffer de teclado

do

delay(0)

until getKey()==-1

cls ()

// Preguntar si deseas mover el robot al punto

gotoxy(6,6) put(sMensaje[0+ nLanguage ])

gotoxy(0,13)

put(sMensaje[1+ nLanguage ])

do

l_nKeyPress=getKey()

until ((l_nKeyPress==271) or (l_nKeyPress==278))

cls()

if (l_nKeyPress == 271)

// Mirar si el robot esta en manual

if workingMode()!= 1

gotoxy(6,6)

put(sMensaje[2+ nLanguage ])

endIf

wait(workingMode()== 1)

//Mover el robot a la posición

gotoxy(0,6)

put(sMensaje[3+ nLanguage ])

67 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

gotoxy(0,13)

put(sMensaje[4+ nLanguage ])

// Limpiar buffer de teclado

do

delay(0)

until getKey()==-1

// Tomar la posicion

do

l_nKeyPress=getKey()

until (l_nKeyPress==278)

pPosition= here(tTool, world)

else

pPosition= here(tTool, world)

endIf

cls()

gotoxy(6,6)

put(sMensaje[5+ nLanguage ])

get( nAltura)

pUp=pPosition pUp.trsf.z=pUp.trsf.z+nAltura

cls()

end

Init ()

l_nCounter num

begin

userPage()

cls()

autoConnectMove(true)

// Idioma mensajes

// 0 : Español

// 20: Ingles

// 40: Frances // ....

nLanguage= 0

for

l_nCounter=0 to 100

Datos:nFuerzaMaxima3[l_nCounter]=0

endFor

tTool.trsf.x=0 tTool.trsf.y=0 tTool.trsf.z=0 nAltura=0

end

Main ()

l_nCounter num

l_nDistance num

l_nSpeed num

l_nKeyPress num

l_pActual point

begin

// Mirar si el robot esta en automatico remoto

if workingMode()!= 4

gotoxy(4,6)

put(sMensaje[17+ nLanguage ])

endIf wait(workingMode()== 4)

if esStatus()==2

gotoxy(6,6)

put(sMensaje[18+ nLanguage ])

endIf

Resultados

68

wait(esStatus()!=2) enablePower()

while isPowered()==false

delay(1)

enablePower()

endWhile

//------------------------------------------------------

// Controlar si podemos modificar la velocidad

cls()

setMonitorSpeed(12)

if getMonitorSpeed()== 12

setMonitorSpeed(17)

if getMonitorSpeed()!= 17

gotoxy(1,6)

put(sMensaje[14+ nLanguage ])

do

delay(2)

setMonitorSpeed(17)

until getMonitorSpeed()== 17

endIf else

gotoxy(1,6)

put(sMensaje[14+ nLanguage ])

do

delay(2)

setMonitorSpeed(17)

until getMonitorSpeed()== 17

endIf

cls()

gotoxy(5,6)

put(sMensaje[15+ nLanguage ]) cls()

//------------------------------------------------------// Aviso movimiento robot

do

delay(0)

until getKey()==-1

gotoxy(8,6)

put(sMensaje[16+ nLanguage ])

gotoxy(37,13)

put(sMensaje[19+ nLanguage ])

// Wait for a good option

do

l_nKeyPress=getKey()

until (l_nKeyPress>=278)

cls()

gotoxy(5,6)

put(sMensaje[15+ nLanguage ])

movel(pUp,tTool,mNomSpeed)

for l_nCounter=0 to 100

Datos:nFuerzaMaxima3[l_nCounter]=0

endFor

cls()

//------------------------------------------------------//Realizamos los movimientos del 1% a 100% de velocidad

mNomSpeed.vel=100

movel(pUp,tTool,mNomSpeed)

waitEndMove()

for l_nCounter=1 to 100

gotoxy(8,6)

put(sMensaje[21+ nLanguage ])

putln (l_nCounter)

setMonitorSpeed (l_nCounter)

movel(pPosition,tTool,mNomSpeed)

do

getJointForce(nFuerza)

//Eje 3

if nFuerza[2]>Datos:nFuerzaMaxima3[l_nCounter]

Datos:nFuerzaMaxima3[l_nCounter]=nFuerza[2]

69 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

endIf

//Retardo 4ms

delay(0.004)

l_pActual=here(tTool,world)

l_nDistance=distance(l_pActual,pPosition)

until (l_nDistance<=0.01)

setMonitorSpeed(100)

movel(pUp,tTool,mNomSpeed)

waitEndMove()

endFor

cls()

//Guardar resultados en la libreria

Datos:libSave()

//Mostrar resultados

do

gotoxy(6,5)

put (sMensaje[22+ nLanguage ])

get (l_nSpeed)

if (l_nSpeed<100)

gotoxy(6,7)

put (sMensaje[23+ nLanguage ])

put (l_nSpeed )

put ("%: ")

putln (Datos:nFuerzaMaxima3[l_nSpeed])

l_nSpeed=0

endIf

until (l_nSpeed>101)

end

start ()

l_nContador num

l_nDistancia num

l_nVelocidad num

begin

call Init()

call Data()

call Main()

end

stop () begin

resetMotion()

disablePower()

cls()

end

ToolData () l_nKeyPress num

begin

do

// Clear keyboard buffer

do

delay(0)

until getKey()==-1

// Print tool options

gotoxy(6,3)

put(sMensaje[6+ nLanguage ]) gotoxy(8,5)

put(sMensaje[7+ nLanguage ]) gotoxy(8,6)

put(sMensaje[8+ nLanguage ]) gotoxy(8,7)

put(sMensaje[9+ nLanguage ])

Resultados

70

gotoxy(8,8)

put(sMensaje[10+ nLanguage ])

gotoxy(8,9) put(sMensaje[11+ nLanguage ])

gotoxy(8,10) put(sMensaje[12+ nLanguage ])

gotoxy(0,13) put(sMensaje[13+ nLanguage ])

// Wait for a good option

do

l_nKeyPress=getKey()

until ((l_nKeyPress>=271) and (l_nKeyPress<=278))

// Read the options

switch l_nKeyPress

case 271

gotoxy(13,5)

get( tTool.trsf.x)

gotoxy(13,5)

put(tTool.trsf.x)

break

case 272

gotoxy(13,6)

get( tTool.trsf.y) gotoxy(13,6)

put (tTool.trsf.y)

break

case 273

gotoxy(13,7)

get( tTool.trsf.z) gotoxy(13,7)

put( tTool.trsf.z)

break

case 274

gotoxy(14,8)

get( tTool.trsf.rx)

gotoxy(14,8)

put( tTool.trsf.rx)

break

case 275

gotoxy(14,9)

get( tTool.trsf.ry)

gotoxy(14,9)

put( tTool.trsf.ry)

break case 276

gotoxy(14,10)

get( tTool.trsf.rz)

gotoxy(14,10)

put( tTool.trsf.rz)

break

endSwitch

until (l_nKeyPress==278)

end

Se quiere comentar la estructura de la función getJointForce (num& nFuerza) Esta instrucción reenvía el par actual (N.m para el eje de revolución) o lo fuerza (N para el eje lineal) sobre la articulación calculados a partir de las intensidades del motor. La fuerza sobre la articulación no es una estimación directa de los esfuerzos externos. También incluye la gravedad, la fricción, la viscosidad, la inercia, el ruido y la precisión de los captadores de intensidad, la relación entre la intensidad del motor y el par. Sólo puede utilizarse para estimar los esfuerzos externos registrando las fuerzas en condiciones de referencia y comparándolas con las fuerzas medidas en condiciones similares con esfuerzos externos suplementarios. Sólo proporciona una magnitud de las fuerzas. Su precisión no está garantizada y se debe evaluar para cada aplicación

71 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

4.3 Programa Datos Fuerza

A continuación se detalla el programa que nos genera la tabla de valores de las fuerzas obtenidas a través del programa de entrenamiento del robot. Es un acceso público.

Propiedades Unidad: mm, Tamaño de la pila: 5000

Librerías (ninguno)

Tipos de variables (ninguno)

Variables num

Público nFuerzaMaxima3[101]

start () begin

end

stop () begin

end

4.4 Programa Cliente (Test Fuerza) A continuación se describe un programa para el posicionamiento de piezas en un robot Scara. Mediante esta aplicación el cliente puede comparar los resultados de la fuerza que se ejerce al posicionar las piezas con el “caso ideal” del programa de entrenamiento. En el supuesto de que ahora la fuerza ejercida sea mayor que en la indicada en el programa de entrenamiento el robot parará automáticamente los trabajos.

Propiedades Unidad: mm, Tamaño de la pila: 5000

Librerías Alias: DatosFuerza, Ruta: 'Disk://DatosFuerza/DatosFuerza.pjx', Auto Carga: True

Tipos de variables (ninguno)

Variables jointRs privado jHome[1]

mdesc privado mNomSpeed[1] privado mSpeed[1]

num privado nSpeed[1] privado nId[1]

pointRs privado pPick[1] privado pPlace[1]

tool privado tTool[1]

trsf privado trUp[1]

bool privado bFin[1]

dio privado diFin[1]

Resultados

72

ForceControl () l_nForce [4] num

begin

do

delay(0)

until (getMoveId()>= (nId))

do

delay(0)

getJointForce(l_nForce)

until (l_nForce[2]>=DatosFuerza:nFuerzaMaxima3)

resetMotion() put("Colision") bFin=true

end

Home () begin

movej(jHome,tTool,mSpeed)

open(tTool)

end

InitVar () begin trUp={0,0,-100,0,0,0}

bFin= false

userPage()

cls()

end

Main ()

begin

do

// go to pick

movej(appro(pPick,trUp),tTool,mSpeed)

movel(pPick,tTool,mSpeed) close(tTool)

movel(appro(pPick,trUp),tTool,mSpeed)

// Go to place

nSpeed=getMonitorSpeed()

taskCreate "Control",10,

ForceControl() movej(appro(pPlace,trUp),

tTool,mSpeed)

nId= movel(pPlace,tTool,mSpeed)

close(tTool) taskKill("Control")

movel(appro(pPlace,trUp),

tTool,mSpeed)

until (bFin==true)

end

start () begin call InitVar()

call Home()

call Main()

end

stop () begin end

73 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

4.5 Simulación y presentación de resultados La realización de la simulación se realizó en el laboratorio de Robótica de Stäubli Española en la localidad de Sabadell (Barcelona).

Figura 4-1. Laboratorio Robótica Staubli Española

La primera parte de nuestro trabajo fue la de simular los programas creados en VAL3 en la aplicación Staubli Robotics Suite 2016, para depurar errores.

Obviamente al ser una simulación de aquí no podemos obtener la tabla de esfuerzos deseada.

Figura 4-2.. SRS 2016

Resultados

74

El primer paso es crear una nueva célula a la que llamaremos “Proyecto”.

Una célula puede contener varios controladores (locales o distantes).

Para crear una nueva célula, seleccionar el comando NUEVO en el menú de aplicación y seguir las instrucciones en el asistente.

Figura 4-3. Creación de una nueva célula

La nueva célula será guardada en la ruta indicada en la figura 4.3.

Es posible definir una ruta diferente, queda a elección del usuario.

75 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

Una vez creada la célula debemos crear nuestro controlador local.

Llamaremos a este nuevo controlador como TS80 y en este punto debemos elegir el tipo de robot sobre el que deseamos simular los programas. En este caso es un Scara TS80 con implantación en suelo. La longitud y el diámetro del eje 3 lo definimos en función del robot disponible en el laboratorio.

El mismo programa directamente nos implementa el robot definido.

Figura 4-4. Creación de un controlador local

Una vez creado el controlador local, se cargan las aplicaciones en VAL3 a simular:

* Datos fuerza

* Fuerza (entrenamiento)

* Test fuerza (cliente)

Resultados

76

Para una mejor visión de la aplicación se modela mediante 3D el entorno físico de la simulación real.

Figura 4-5. Célula de trabajo “Proyecto”

Figura 4-6.Célula de trabajo “Proyecto”- Vista detallada robot

Se pudo comprobar el buen funcionamiento de los programas en VAL3.

77 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

A posteriori se realizó la prueba de simulación real.

Para ello elegimos un robot TS80 para posicionar una pieza metálica, un PC (SRS2016) y el controlador CS8C.

Figura 4-7. Elementos simulación real

Figura 4-8. Controlador CS8C

Resultados

78

La primera tarea fue simular el programa de entrenamiento. considerando una velocidad nominal de 2000 mm/s en el eje 3 del brazo.

El objetivo del programa de entrenamiento es de obtener para diferentes velocidades de trabajo el esfuerzo que realiza el brazo en la articulación al posicionar la pieza. Para que el esfuerzo sea máximo elegimos la posición final de la pieza un 2% mayor que en el caso ideal. De este modo nos garantizamos que el esfuerzo que se realiza es el máximo deseado.

El programa Datos Fuerza nos genera una tabla del esfuerzo al posicionar la pieza para 100 velocidades distintas. Estas velocidades corresponden con un % de la velocidad del robot antes prefijada.

Figura 4-9. Simulación programa entrenamiento

Los resultados de esfuerzos obtenidos fueron los siguientes:

% Velocidad Nominal Esfuerzo (N)

0 0

1 26,997727

2 32,896913

3 30,226519

4 26,389502

79 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

5 28,458432

6 28,215017

7 27,306659

8 27,922276

9 24,590511

10 27,88559

11 26,727733

12 24,701193

13 26,61259

14 27,795577

15 25,0751633

16 28,561722

17 28,786014

18 29,280031

19 27,0376607

20 30,17257

21 29,642766

22 30,294874

23 29,260276

24 28,774664

25 27,858753

26 32,30376

27 31,318018

28 27,400498

29 27,635992

30 31,749821

31 29,791163

32 27,93553

33 29,2948

34 27,214448

Resultados

80

35 26,578325

36 30,268736

37 26,410825

38 29,291808

39 24,917969

40 26,436846

41 24,786985

42 26,0531364

43 24,535929

44 28,0696271

45 27,994292

46 26,613377

47 27,0725286

48 27,879369

49 27,130251

50 33,418711

51 33,334442

52 33,339143

53 31,371395

54 33,0724189

55 55

56 39,295183

57 33,624772

58 30,843299

59 35,667533

60 34,599189

61 41,322666

62 48,200563

63 46,887805

81 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

64 45,731884

65 55,465758

66 41,548694

67 49,36507

68 54,757388

69 56,584462

70 47,540911

71 55,106804

72 51,736983

73 53,0526399

74 51,646351

75 50,126729

76 54,845391

77 60,518175

78 52,920572

79 57,0402584

80 67,47693

81 65,634927

82 61,97299

83 50,368208

84 63,0525139

85 84,969803

86 76,296598

87 89,373796

88 70,949555

89 80,198067

90 74,190201

91 92,203095

92 75,063378

93 83,386991

Resultados

82

94 89,955455

95 76,628759

96 86,569112

97 90,493771

98 98,296786

99 85,896006

100 96,311137

Posteriormente se simuló el programa “cliente” en el cual el robot realiza una operación de trabajo real.

En esta ocasión la posición final del robot se eligió acorde con las necesidades reales de la aplicación y una velocidad del 50% de la velocidad nominal del robot, es decir de 1000 mm/s.

El objetivo ahora es comparar el esfuerzo que se realiza con el que previamente se obtuvo con la simulación del programa entrenamiento.

De los resultados del programa de entrenamiento obtuvimos que para una velocidad del 50%, el esfuerzo que había realizado el brazo al posicionar la pieza fue de 33,418711 N.

Siempre y cuando el esfuerzo del robot no supere el valor anteriormente comentado realizará el trabajo de posicionamiento.

Para provocar un error se puso un trozo de cartón simulando un obstáculo durante una de las bajadas del brazo y pudo comprobarse como el robot se paraba y en display salía la palabra COLISION.

Esto sucedió porque la fuerza que se ejerció al encontrarse el obstáculo era superior a al valor “aprendido” para esa velocidad.

Figura 4-10. Simulación real-Obstáculo

83 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

Figura 4-11. Simulación real-Colisión

Resultados

84

85 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

5 CONCLUSIONES FINALES

l objetivo de este proyecto puede separarse en dos partes. Por un lado se han desarrollado los principales métodos de control de esfuerzos en un robot manipulador y por otro lado, aprovechando la experiencia laboral en la firma Stäubli, se ha querido profundizar en el conocimiento del lenguaje de programación VAL3, la herramienta de simulación Staubli Robotics Suites y recrear una simulación de los programas desarrollados en un robot TS80 de la misma firma.

No ha sido posible desarrollar este proyecto con sensores específicos para este tipo de control de esfuerzos, por lo que los esfuerzos obtenidos en las simulaciones son valores indirectos obtenidos a través de las variaciones de intensidad del motor. Obviamente los valores de esfuerzos obtenidos mediante este método son fiables al 100% debido a que diversos factores externos influyen en su valor (gravedad, fricción, inercia….).

Dentro del control de esfuerzos hemos podido comprobar que el mejor método para determinar la fuerza que ejerce el brazo robótico con un objeto es a través de los sensores de fuerza y así poder cerrar el bucle de control. Se han descrito diversos métodos de control como el híbrido posición-fuerza, el control por impedancia mecánica, el control por rigidez y el control por par articular. Este último tipo de control es el que ha usado en nuestra simulación debido a que no se necesitan sensores de fuerza.

Uno de los puntos más importantes para mí en este proyecto ha sido que tras ocho años de desarrollo profesional en la firma Staubli he podido profundizar en el conocimiento de herramientas de programación (VAL3) y de simulación (Staubli Robotics Suite 2016), hasta ahora desconocidas para mí. También ha sido de gran interés el poder haber realizado la simulación de los programas desarrollados en un robot real TS80.

E

Algunas personas quieren que algo ocurra, otras seuñan con que pasará, otras hacen que suceda..

- Michael Jordan -

Conclusiones finales

86

Centrándonos un poco en los resultados obtenidos en nuestra simulación, podemos comprobar que los resultados de los esfuerzos realizados por el robot al posicionar la pieza proporcionados por el programa de entrenamiento van aumentando a medida que la velocidad del proceso va aumentando

Como ya se ha comentado varias veces en el proyecto los valores obtenido por este método no podemos considerarlos fiables al 100%, debido a los factores externos que influyen en él. De ahí que no debamos tener en consideración el descenso del esfuerzo realizado por el brazo en algunos casos cuando aumenta la velocidad. La gráfica anterior debería ser lineal ascendente.

El programa desarrollado para la obtención del esfuerzo que realiza el robot a diferentes velocidades, puede usarse para futuros trabajos en robots reales como como programa de entrenamiento para así poder evitar fallos o errores en aplicaciones de similares características.

Estos resultados pueden usarse también para crear un lazo de control propiamente dicho donde el parámetro de esfuerzo ideal sea el que sirva como referencia para controlar el posicionamiento de la pieza.

0

20

40

60

80

100

120

1 4 7

10

13

16

19

22

25

28

31

34

37

40

43

46

49

52

55

58

61

64

67

70

73

76

79

82

85

88

91

94

97

10

0

Fue

rza

(N)

Velocidad Nominal (%)

Fuerza robot (N) en función de la velocidad nominal

87 Sensor de esfuerzos en un robot manipulador en posicionamiento de piezas

REFERENCIAS

- SPONG, HUTCHINSON, VIDYASAGAR (2006). “Robot modelling and control”. John Willey & Sons Inc.

- FERNANDO REYES CORTÉS (2011). “Robótica. Control de robots manipuladores”. Alfaomega.

- FERNANDO TORRES, JORGE POMARES, PABLO GIL, SANTIAGO T.PUENTE, RAFAEL ARACIL (2002). “Robots y sistemas sensoriales”. Prentice Hall.

- GONZALO CORTÉS UTRERO (2012). “Implementación de un sensor de fuerza par en un robot ABB IRB 1600. Universidad Carlos III de Madrid

- “Manual de referencia VAL3” (2010). Staubli Robotics.

- “SRS 2016 Manual” (2016). Staubli Robotics

- SERGIO ESCUDERO (2012). “Programación en VAL3”. Staubli Española

- JAUME YEBRA PEREZ, NURIA LAGOS FERNANDEZ (2002). “El lenguaje V+”. Universidad Politécnica de Cataluña.

11