simulacion de la tarea de pintura para el robot …

102
SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT INDUSTRIAL ANDES 1 JONNATHAN HERNAN BERMUDEZ GONZALEZ UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERIA DEPARTAMENTO DE INGENIERIA DE SISTEMAS Y COMPUTACIÓN BOGOTA D.C 2003

Upload: others

Post on 18-Jul-2022

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT INDUSTRIAL ANDES 1

JONNATHAN HERNAN BERMUDEZ GONZALEZ

UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERIA

DEPARTAMENTO DE INGENIERIA DE SISTEMAS Y COMPUTACIÓN BOGOTA D.C

2003

Page 2: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT INDUSTRIAL ANDES 1

JONNATHAN HERNAN BERMUDEZ GONZALEZ

Tesis para obtener el título de

Ingeniero de Sistemas y Computación

Profesor Asesor FERNANDO DE LA ROSA

UNIVERSIDAD DE LOS ANDES FACULTAD DE INGENIERIA

DEPARTAMENTO DE INGENIERIA DE SISTEMAS Y COMPUTACIÓN BOGOTA D.C

2003

Page 3: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

iv

A mis padres Vicente Bermúdez, Consuelo González

y mi hermano Cristian Bermúdez.

Page 4: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

v

AGRADECIMIENTOS Expreso mi agradecimiento al profesor Fernando de la Rosa, asesor de Tesis, por su valiosa colaboración en el desarrollo de éste trabajo, así como a todos los compañeros del grupo de informática gráfica que de alguna u otra forma realizaron su aporte en el proyecto.

Page 5: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

vi

CONTENIDO

INTRODUCCIÓN .............................................................................................................1

CAPITULO 1. ANTECEDENTES .....................................................................................3

1.1 Antecedentes en planificación de tareas. ............................................................. 3 1.2 Antecedentes en tele-operación........................................................................... 4 1.3 Antecedentes en simulación................................................................................ 6

CAPITULO 2. DEFINICIONES ........................................................................................8

2.1 Definiciones Básicas ................................................................................................ 8 2.1.1 Robot Industrial................................................................................................. 8 2.1.2 Marco de Referencia.......................................................................................... 8 2.1.3 Pieza.................................................................................................................. 9 2.1.4 Recurso ............................................................................................................. 9 2.1.5 Ambiente Robotizado ........................................................................................ 9

2.2 DEFINICIÓN DE TAREAS..................................................................................... 9 2.2.1 Punto ................................................................................................................. 9 2.2.2 Matriz de transformación. .................................................................................. 9 2.2.3 Plano ............................................................................................................... 10 2.2.4 Cascarón.......................................................................................................... 10 2.2.5 Superficie ........................................................................................................ 10 2.2.6 Superficie de acomodación .............................................................................. 11 2.2.7 Objeto ............................................................................................................. 11 2.2.8 Objeto Activo .................................................................................................. 12 2.2.9 Objeto Pasivo .................................................................................................. 12 2.2.10 Objeto Estático .............................................................................................. 12 2.2.11 Objeto Compuesto ......................................................................................... 12 2.2.12 Objeto Compuesto Articulado........................................................................ 12 2.2.14 Relación ........................................................................................................ 12 2.2.15 Atributos........................................................................................................ 14

2.3 OPERACIÓN......................................................................................................... 14 2.3.1 Marco de acomodación.................................................................................... 14 2.3.2 Punto de alcance de la herramienta .................................................................. 14 2.3.3 Efector terminal. .............................................................................................. 14 2.3.4 Trayectoria ...................................................................................................... 15 2.3.5 Restricción ...................................................................................................... 15 2.3.6 Paso de Tarea .................................................................................................. 15 2.3.7 Tarea industrial................................................................................................ 15 2.3.8 Aplicación industrial........................................................................................ 16 2.3.9 Cinemática Directa .......................................................................................... 16 2.3.10 Cinemática Inversa ........................................................................................ 16

Page 6: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

vii

2.4. TELE-OPERACIÓN ............................................................................................. 17 2.4.1. Comando automático ...................................................................................... 17 2.4.2 Comando interactivo:....................................................................................... 17 2.4.3. Sesión de tele-operación: ................................................................................ 17 2.4.4 Memoria Intermedia(Buffer) de comunicación: ............................................... 17 2.4.5 Memoria Intermedia (Buffer) de Aplicación: ................................................... 18 2.4.6 Memoria Intermedia(Buffer) de Sensores: ....................................................... 18 2.4.7 Administrador Local:....................................................................................... 18 2.4.8 Administrador Remoto: ................................................................................... 19 2.4.9 Telerobot:........................................................................................................ 19

2.5 HERRAMIENTA................................................................................................... 19 2.5.1 Herramienta..................................................................................................... 19 2.5.2 Acción............................................................................................................. 20 2.5.3 Spray gun ........................................................................................................ 20 2.5.4 Responsabilidad............................................................................................... 20 2.5.5 Disparar........................................................................................................... 21 2.5.6 Pitch-and-yaw.................................................................................................. 21 2.5.7 FIFO. ........................................................................................................ 21 2.5.8. Línea de Visión. ............................................................................................. 22

CAPITULO 3. SIMULACION DE TAREAS INDUSTRIALES .................................23

3.1 PINTAR............................................................................................................. 23 3.1.1 Establecer parámetros. .............................................................................. 28 3.1.1.1 Interacción. ............................................................................................... 28 3.1.1.2 Pintado y cambio de color. ........................................................................ 29 3.1.1.3 Cantidad de material volátil utilizado. ....................................................... 29 3.1.1.4 Alcance total en la tarea. ........................................................................... 30 3.1.1.5 Alcance de la herramienta. ............................................................................ 30 3.1.1.6. Puntos alcanzables del Spray................................................................. 30 3.1.2 Evaluación de costos................................................................................. 31 3.1.2.1 Aplicación del Spray................................................................................. 31 3.1.3 Asignación de Responsabilidades. ................................................................... 34

3.2 SOLDADURA....................................................................................................... 35 4. CAPITULO 4: DESCRIPCION DE LA PLATAFORMA ........................................ 39 4.1 SIMULACIÓN....................................................................................................... 39

4.1.1 Objetivos del sistema. ...................................................................................... 39 4.1.2 Componentes de la Simulación ........................................................................ 41 4.1.2.1 Robot............................................................................................................ 41 4.1.2.2 Sensores ....................................................................................................... 42 4.1.2 Mundo Externo al robot. ........................................................................... 44 4.1.3.1 Localización y orientación de los objetos. .................................................... 44

4.2 ALGORITMOS IMPLEMENTANTADOS...................................................... 48 4.2.1 Detección de colisiones ................................................................................... 48 4.2.2 Colisión de la línea de visión de la herramienta................................................ 52 4.2.3 Algoritmo de simulación.................................................................................. 56 4.2.4 Implementación de la persistencia................................................................... 57 4.2.4.1 Formato de los archivos de objetos. .............................................................. 57

Page 7: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

viii

4.2.4.2 Formato del archivo de Robots ..................................................................... 57 4.2.4.3 Formato del archivo de Escena ..................................................................... 59

4.3 OPERACIÓN........................................................................................................ 60 4.4 DESARROLLO ............................................................................................... 61

4.4.1 Clases base. ..................................................................................................... 62 4.4.2 Clases de los componentes del sistema ............................................................ 65

CAPITULO 5: UTILIZACIÓN DE LA PLATAFORMA .............................................76

5.1 CONCEPTOS BASICOS ....................................................................................... 76 5.2 CONCEPTOS AVANZADOS. .............................................................................. 82 5.3 MANEJO DE CAMARAS. .................................................................................... 84

CAPITULO 6: DEFINICION DE UN MODULO DE COMUNICACIÓN .................85

6.1 TARJETAS CONTROLADORAS. ........................................................................ 85 6.2 BUFFERS EN LA PLATAFORMA DE SIMULACIÓN........................................ 86 6.3 MODELO PARA INTERPRETACIÓN DE DATOS. ............................................ 86

CONCLUSIONES Y TRABAJOS FUTUROS ...............................................................89

CONCLUSIONES ....................................................................................................... 89 TRABAJOS FUTUROS............................................................................................... 90

BIBLIOGRAFIA ................................................................................................................91

Page 8: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

ix

LISTA DE FIGURAS

Figura 2.1. Cascarón 10 Figura 2.2. Superficie de Acomodación 11 Figura 3.1. Línea de visión de la Herramienta en estado libre 24 Figura 3.2. Línea de visión de la Herramienta en estado de colisión 24 Figura 3.3. Rayo de referencia durante selección de objetos con el mouse 25 Figura 3.4. Comando de translación de objetos desde el menú principal 26 Figura 3.5. Robot Andes 1 en la plataforma de simulación 27 Figura 3.6. Electrodos 35 Figura 3.7. Ejemplo de soldadura industrial 37 Figura 4.1. Simulación de sensor de proximidad 43 Figura 4.2. Localización de eslabones. Robot Andes 1 45 Figura 4.3. Marcos de referencia entre obstáculos relacionados 45 Figura 4.4. Relación Sostiene – Es Sostenido 46 Figura 4.5. Algoritmo de detección de colisiones 48 Figura 4.6. Colisión entre planos. [RIV-2002] 50 Figura 4.7. Intersección segmento de recta – plano.[RIV-2002] 51 Figura 4.8. Intersección segmenta Plano con visión de puntos. [RIV-2002] 51 Figura 4.9. Colisión rayo de visión de la herramienta – obstáculo 52 Figura 4.10. Aproximación de un cilindro a través de un poliedro 53 Figura 4.11. Colisión rayo de visión de la herramienta – Cilindro 55 Figura 4.12. Colisión rayo de visión de la herramienta – Plano de Cilindro 55 Figura 4.13. Diagrama de secuencia. Plataforma de simulación y control Andes 1. [RIV-2002] 56 Figura 4.14. CTrupla 62 Figura 4.15. CFrame 63 Figura 4.16. CboundingBox 64 Figura 4.17. Cmodificacion 64 Figura 4.18. Csurface 65 Figura 4.19. CObject2 67 Figura 4.20. CRobot 68 Figura 4.21. CTool 70 Figura 4.22. CPath 71 Figura 4.23. CStep 72 Figura 4.24. CTask 73 Figura 4.25. CWorld 74 Figura 5.1. Plataforma de simulación Andes 1 76 Figura 5.2. Robot Andes 1 simulado en alambre 77 Figura 5.3. Cargando objetos en el mundo 78 Figura 5.4. Robot Simulado en Alambre y Robot Simulado con sólidos 78 Figura 5.5. Cargando herramienta al robot simulado 79

Page 9: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

x

Figura 5.6. Selección de superficie usando el rayo de visión de la herramienta 81 Figura 5.7. Activar – Desactivar herramienta 81 Figura 5.8. Activación de path usando el menú principal 82 Figura 5.9. Colocando velocidad a la simulación 83 Figura 5.10. Señalando puntos recorridos por el path 83 Figura 6.1. Interpretación de los datos desde la plataforma hasta el Robot Real 87

Page 10: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

xi

LISTA DE TABLAS

Tabla 3.1. Responsabilidad de los objetos del mundo 35 Tabla 3.2. Restricciones en tarea de soldadura 36 Tabla 5.1.Teclas para movimiento del robot 77 Tabla 5.2. Teclas para translación de un objeto seleccionado 80 Tabla 5.3. Teclas para la rotación de un objeto seleccionado 80

Page 11: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

1

INTRODUCCIÓN

Los Robots industriales son máquinas versátiles, capaces de realizar eficientemente labores

de paletizaje, pintura, soldadura y maquinado. Estos robots poseen cualidades tales como

precisión y velocidad, necesarias para desarrollar las tareas. Por estas razones la industria

moderna considera necesario integrar este tipo de máquinas en su cadena de producción

con el fin de reducir tiempo en procesos y obtener una disminución de costos en la cadena

de valor.

El incremento en la demanda y utilización de robots industriales hace prever un inminente

acercamiento entre el operador tradicional sin conocimientos en programación y las

plataformas de control utilizadas en Robótica industrial. Cuando se produce éste

acercamiento, el operario normalmente guía físicamente al robot por los puntos que

posteriormente deberán ser trabajados. Sin embargo esta forma de manipular al robot es

riesgosa, pues se coloca en riesgo la integridad de la máquina, y peor aún, la integridad del

operador.

Es entonces cuando se hace necesaria una plataforma computacional que realiza las mismas

tareas que se pueden hacer con el robot real pero en un entorno simulado. En este mundo

virtual el operador puede simular la tarea tantas veces quiera sin colocar en riesgo el robot

real a la vez que disminuye los costos asociados con las pruebas reales (gasto de recursos,

combustibles y energía). En esta plataforma el operador puede guiar al robot virtualmente

obteniendo una secuencia de puntos en el espacio para formar una trayectoria que luego

podrá realizar el robot real. En este ambiente el operador puede controlar al robot como lo

desee, pero siempre se verá limitado por las restricciones asociadas al robot y a la tarea

desempeñada .

Este trabajo se centra en dar continuación y mejoramiento a la plataforma desarrollada en

trabajos anteriores por Plinio Moreno López, Javier Gil Quijano [MOR/GIL - 2002] y Juan

Page 12: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

2

Daniel Riveros [RIV-2002]. En estos trabajos se proponen las definiciones y validaciones

de las geometrías y cinemáticas necesarias para la simulación del Robot Industrial Andes 1

y su interacción con el entorno, mostrando al operador una interfaz gráfica donde puede

visualizar al robot y los objetos que componen la escena. Con el desarrollo de este trabajo

el operador puede no solo visualizar los objetos de la escena, sino que puede manipular el

robot y los objetos con facilidad usando el teclado y el ratón.

En la plataforma el operador puede guiar al robot para simular la tarea de pintura, y

posteriormente puede visualizar la simulación completa y obtener un estimado del recurso

utilizado.

A medida que la simulación se efectúa, la plataforma almacena los puntos por los cuales

pasa la herramienta y los valores angulares de cada grado de libertad del robot, ésto para

que en trabajos futuros sea posible la construcción de un parser que interprete la

información y construya un archivo de control típico para los motores del Robot Andes 1.

En el Capitulo 1 hay una descripción sobre los trabajos anteriores realizados en el tema y

que son relevantes para la comprensión del desarrollo de éste trabajo. En el Capítulo 2 se

encuentran definidos los conceptos claves utilizados en el trabajo. En el Capítulo 3 se

encuentran definidas las tareas industriales estudiadas en el proyecto. En el Capítulo 4 se

describe la plataforma de simulación y control. En el Capítulo 5 se encuentra un manual

para usar la plataforma. En el Capítulo 6 se describe un módulo de comunicaciones

propuesto en éste trabajo. Finalmente se encuentran las conclusiones, los trabajos que se

pueden desarrollar a partir de los resultados obtenidos en este trabajo y la Bibliografía.

Page 13: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

3

CAPITULO 1. ANTECEDENTES.

1.1 Antecedentes en planificación de tareas.

En robótica industrial la planificación pretende resolver la ejecución de una tarea en forma

automática. Estas tareas involucran movimientos gruesos y/o movimientos finos

[SCHI-1990], por lo tanto, para los movimientos gruesos es conveniente utilizar una

representación del espacio de configuraciones, mientras que para los movimientos finos es

mejor utilizar una representación de campo de potenciales, bien sea ficticio o numérico

[LAT-1993].

En [MOR-91] se discute sobre programación y planificación en robótica, y se clasifica la

programación de robots en tres tipos: Programación gestual, programación textual y

programación implícita. En la programación gestual el operador guía físicamente al robot

por las posiciones donde debe pasar y el robot las almacena. En la programación textual el

usuario programa en un lenguaje basado en instrucciones de movimientos, como MOV o

GOTO, y el lenguaje las traduce a instrucciones de movimiento del robot real. En la

programación implícita el usuario especifica con algún formalismo la tarea que el robot

debe resolver.

La programación gestual también se conoce como guiado, el cual puede ser extendido o

fuera de línea [LOZ-1983]. En el guiado extendido se utilizan sensores para que el robot

pueda determinar la posición de un objeto y de esta manera consigue mayor autonomía,

pues no requiere de un operador que le indique donde debe iniciar. Sin embargo el método

continua siendo riesgoso para el robot y costoso en la realización de pruebas. Entretanto el

guiado fuera de línea consiste en hacer el mismo guiado pero en un robot simulado y en

un escenario simulado, permitiendo hacer muchas pruebas antes de efectuar la tarea en el

Page 14: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

4

robot real. Durante el guiado fuera de línea el operador se ve limitado por las restricciones

del robot y las restricciones de la tarea.

En trabajos anteriores realizados por el grupo DFAC – Uniandes [MOR/GIL-2002], se

desarrollo el MSIM: un ambiente de programación de robots con capacidad de

planificación de tareas [VIL-1991].

El MSIM utiliza planificadores de movimientos gruesos, de movimientos finos, y de

posición de agarre, posee una arquitectura por capas sobre un modelo orientado por objetos.

En la primera capa se encuentra el modelo del robot y su mundo, en la segunda los sensores

del robot, la comunicación y la programación interactiva y en la tercera capa la

programación implícita. Para el MSIM también se plantearon algoritmos de visualización,

colisión y planificación.

Posteriormente en trabajos de Plinio Moreno y Javier Gil [MOR/GIL-2002] se inicia el

desarrollo de una nueva plataforma para la programación, simulación y tele-operación del

Robot Andes 1. Si bien la plataforma continua en desarrollo con la implementación del

modelo, trabajo realizado por Juan Daniel Riveros [RIV-2002], y con la simulación de la

tarea industrial de pintar, trabajo realizado en este proyecto, P. Moreno y J. Gil plantearon

las definiciones y conceptos claves de la plataforma, lo que ha permitido su constante

desarrollo.

1.2 Antecedentes en tele-operación.

En cuanto al desarrollo de arquitecturas de tele-operación, en [ROD - 1999] se propone una

arquitectura ASSET. Las características más importantes de ésta arquitectura son

[MOR/GIL - 2002]:

a) Proveer una plataforma flexible que nos permita desarrollar prototipos de

aplicaciones de tele-operación en poco tiempo.

Page 15: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

5

b) Reutilizar varios componentes construidos y probados, encapsulando sus detalles de

implementación, para que puedan ser utilizados por diferentes aplicaciones.

c) Contribuir a la evolución de la construcción de software de tele-operación,

brindando un framework de desarrollo que permita crear sistemas extensibles,

modulares y reutilizables.

Los elementos principales en discusión en cada uno de estos temas son:

a) Interfaz con el mundo real. Se refiere a la comunicación con el mundo real, que

hace por medio de los dispositivos actuadores y sensores.

b) Interfaz de usuario. Se refiere a la comunicación entre el sistema y el usuario por

medio de dispositivos activos y pasivos.

c) Comunicaciones. Características como el ancho de banda, velocidad de transmisión

y confiabilidad se deben tener en cuenta para el desempeño del sistema.

d) Procesos de Simulación. Se tiene en cuenta para generar realimentación sin esperar

los resultados del sistema remoto y evitar que el sistema entre en estados de error o

riesgo.

Sobre la plataforma de programación, simulación y tele-operación del Robot Andes 1,

Plinio Moreno y Javier Gil [MOR/GIL - 2002] plantearon una arquitectura de tele-

operación para el robot Andes 1 inspirada en la arquitectura ASSET. Una aplicación

realizada por tele-operación utilizando la arquitectura planteada por P.Moreno debe tener

las siguientes características:

• Ubicación del operador y del robot en sitios que garanticen un ancho de banda

amplio sobre la red, por lo que el ambiente escogido para la aplicación debe ser

sobre una red LAN.

• Considerando un ancho de banda satisfactorio entre el sitio local y remoto, el

retardo de envió y recibo de la señal no será tenido en cuenta como punto

fundamental a resolver.

• El ambiente robotizado debe ser conocido para lograr un buen desempeño en las

tareas industriales.

Page 16: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

6

• Contar con sensores externos al robot que envíen retroalimentación al usuario.

Como mínimo una cámara y un sensor de proximidad en la herramienta.

• Definir un sitio determinado donde se realice el cambio de herramienta. Esta acción

puede ser ejecutada por el operador o por otro robot.

• Debido a la configuración del controlador para la ejecución de las tareas, se puede

ubicar el sistema de tele-operación como un telerobot, ya que no es totalmente

autónomo ni totalmente manual.

Relacionado al tema de tele-operación del robot Andes 1, Plinio Moreno desarrollo algunos

procedimientos en lenguaje C para comunicarse con las tarjetas controladoras del robot,

tarjetas PMAC, con el fin de evitar la programación de rutinas en lenguaje ensamblador. A

pesar que el trabajo en estas rutinas no fue completamente desarrollado, es un buen avance

en la solución de la tele-operación del Andes 1.

Por otro lado, en el trabajo de Juan Daniel Riveros [RIV-2002] se deja implementada

parcialmente una clase para la comunicación entre la plataforma de simulación y las tarjetas

PMAC, sin embargo tan solo se encuentra codificada su especificación. No se logró hacer

las pruebas

1.3 Antecedentes en simulación.

Para el robot Industrial Andes 1 se han desarrollado dos plataformas de simulación, ambas

fundamentadas en los conceptos y definiciones planteadas en el trabajo de Plinio Moreno y

Javier Gil [MOR/GIL-2002].

Los principales objetivos en los trabajos de simulación son:

• Apoyo en la definición y evaluación de las tareas industriales.

• Plataforma de entrenamiento del manejo del robot industrial Andes 1.

Page 17: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

7

Cada simulación ha sido centrada en la representación del comportamiento del robot, para

lo cual se tuvieron en cuenta aspectos como:

• Geometría del robot.

• Comportamiento cinemático.

• Comportamiento dinámico.

• Espacio de configuraciones del robot.

Para efectos de visualización de una simulación completa del ambiente robotizado, se

tienen en cuenta los siguientes componentes:

• Robot: Es un manipulador formado por cuerpos conectados en una cadena

mediante articulaciones.

• Sensores: Permiten validar la ejecución adecuada desde el punto de vista

funcional de la tarea, revisando que se cumplan restricciones de dicha taréa.

• Mundo exterior al robot: Objetos distintos al robot con los cuales éste último

puede interactuar.

La primera interfaz de simulación fue desarrollada en VTK(Visualization Tool Kit), que es

un sistema de software orientado por objetos diseñado para computación gráfica. Esta

primera plataforma de simulación fue desarrollada en el trabajo de [MOR/GIL-2002].

Una segunda plataforma de simulación fue desarrollada en [RIV-2002]. Esta segunda

plataforma fue implementada en OpenGL, utilizando MFC (Microsoft Fundation Class).

Para el diseño de la interfaz se utiliza un modelo de procesamiento mental donde el usuario

alcanza las metas mediante la solución de sub-problemas. Para el diseño de la interfaz

basada en dicho modelo existen técnicas como GOMS(Goals, Operators, Methods and

Selection) y CCT(Cognitive Complexy Theory). En las aplicaciones se utiliza el modelo

GOMS, que consiste en:

a) Goals: Son los objetivos del usuario, describen lo que el usuario desea alcanzar.

b) Operators: Son el nivel más bajo del análisis. Son acciones que el usuario debe

emprender con el objetivo de utilizar el sistema.

c) Methods: Son las diferentes formas en que un objetivo puede ser descompuesto en

submetas.

Page 18: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

8

CAPITULO 2. DEFINICIONES

Las definiciones utilizadas en este trabajo han sido obtenidas de los trabajos de Plinio

Moreno, Javier Gil [MOR/GIL-2002] y Juan Daniel Riveros [RIV-2002]. Sin embargo, el

presente trabajo hace necesario incluir nuevas definiciones que son utilizadas comúnmente

durante el desarrollo de una tarea industrial.

2.1 Definiciones Básicas

2.1.1 Robot Industrial

Según la definición adoptada por la RIA (Robot Industries Association) es un manipulador

reprogramable multifuncional diseñado para mover materiales, piezas, herramientas o

artefactos especiales mediante movimientos variables programados para la ejecución de

tareas, potencialmente muy diversas.[HER-1992]

2.1.2 Marco de Referencia

Se define como la intersección de tres ejes mutuamente perpendiculares representados

mediante tres vectores unitarios. Puede estar referido a otro marco de referencia, o ser el

marco de referencia global. Un marco de referencia en el sistema cumple con la regla de la

mano derecha.

Page 19: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

9

2.1.3 Pieza

Elemento al que se le desea realizar algún proceso de manufactura. Tiene un marco de

referencia fijo que debe ser expresado en términos del marco de referencia “tierra”. Se

representa por medio de un objeto pasivo (ver definición en Definición de Tareas).

2.1.4 Recurso

Material utilizado por la herramienta para modificar las características de una pieza.

2.1.5 Ambiente Robotizado

Esta compuesto de un robot industrial y uno o varios objetos físicos que pueden ser piezas,

herramientas, accesorios(Ej. Mesas, cajas de herramientas, banda transportadora, torno),

piso y paredes.

2.2 DEFINICIÓN DE TAREAS

2.2.1 Punto

Es una tripla de coordenadas que representan una posición en el espacio, expresado en un

marco de referencia.

2.2.2 Matriz de transformación

Matriz 4x4 que encierra las translaciones y rotaciones necesarias para pasar de un marco de

referencia a otro.

Page 20: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

10

2.2.3 Plano

Es una lista de puntos para el cual el producto cruz de cualquier par de vectores construidos

entre tres puntos consecutivos es siempre un vector con la misma dirección. El vector

unitario en la dirección del producto cruz mencionado se conoce como vector normal al

plano. Cada plano tiene asociado un marco de referencia, y la dirección z es la dirección

del vector normal.

2.2.4 Cascarón

Un cascarón es el producto de la extrusión de un segmento de círculo en dirección normal

al plano al que pertenece el segmento. El eje del centro del cascarón se define como una

línea formada al extruir el centro del segmento de círculo ubicado en el plano, en la

dirección normal al mismo (Figura 2.1)

La normal en un punto del cascarón está definida como el vector que se forma al unir este

punto con un punto del eje de centro del cascarón, tal que el producto punto del vector del

eje con el vector normal sea igual a 0.

El cascarón se representa como un conjunto de planos producto de la extrusión de

segmentos de recta de igual longitud, secantes al círculo, realizando tal extrusión en la

dirección del eje del arco.

Figura 2.1. Cascarón.

2.2.5 Superficie

Una superficie es un plano o un cascarón.

Page 21: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

11

2.2.6 Superficie de acomodación

Es una superficie que pertenece a la pieza que se va a trabajar. Dicha superficie debe tener

la propiedad maquinable, pintable, soldabe o agarrable. En una pieza puede haber una o

varias superficies de acomodación. La dirección normal de la superficie de acomodación

define la orientación de la herramienta (Figura 2).

Figura 2.2. Superficie de Acomodación.

2.2.7 Objeto

Es una entidad física compuesta por un modelo geométrico de sólidos y un conjunto de

variables que representan su estado. Adicionalmente posee información sobre su

comportamiento, que se establece por medio de un conjunto de procedimientos que actúan

sobre sus variables internas. Se consideran 2 tipos de variables internas: atributos y rasgos.

Los atributos representan el estado interno del objeto, los rasgos se definen como el

conjunto de condiciones sobre las relaciones de un objeto, no son mas que atributos

resultantes de su capacidad para relacionarse, no surgen de la necesidad de representar el

estado interno del objeto sino que se deben a su funcionalidad dentro del sistema. [ROD-

1994]

El objeto se representa como un poliedro de caras planas donde cada una de sus caras esta

representada por una superficie. Cada objeto tiene asociado un marco de referencia.

Page 22: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

12

2.2.8 Objeto Activo

Es un objeto capaz de modificar el estado del sistema por si mismo. En este sentido, tiene

capacidad para producir movimiento y generar relaciones con los demás.

2.2.9 Objeto Pasivo

No puede moverse por si mismo, pero puede relacionarse con objetos activos. Objetos

deformables o flexibles. Las piezas se representan mediante este tipo de objeto.

2.2.10 Objeto Estático

Se considera como obstáculo. Tal es el caso del suelo, las paredes entre otros.

2.2.11 Objeto Compuesto

Esta formado por uno o mas objetos pasivos y/o compuestos.

2.2.12 Objeto Compuesto Articulado

Formado por uno o mas objetos activos. Este objeto solamente puede ser modificado en su

etapa de definición, no puede ser modificado dinámicamente en utilización, pero si puede

relacionarse dinámicamente con otros objetos por lo general activos.

2.2.14 Relación

Una relación define la interacción entre los objetos del mundo, y es direccional. Las

relaciones son propiedades de las superficies que forman el objeto.

Page 23: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

13

Al definir las relaciones entre objetos deben tenerse en cuenta los modos posibles de trabajo

del simulador.

El primer modo se refiere a la definición de tareas, que involucra la definición de una

herramienta y de una o varias piezas a ser trabajadas. En este modo la relación mas

importante es la que se presenta entre el robot y la herramienta. Tales relaciones son:

A) Unir: Es una relación permanente durante la definición y ejecución de la tarea.

El segundo modo de operación del simulador es el de definición de los parámetros de

ejecución de la tarea, en el cual principalmente se define la trayectoria de interacción de la

herramienta (y por tanto del robot, al cual está vinculada la herramienta según la relación

unir) con la pieza. En este modo de operación es importante definir las relaciones que se

presentan entre el conjunto robot-herramienta y la pieza, además de las relaciones entre

objetos auxiliares a la tarea y la pieza, tales objetos auxiliares son aquellos que juegan un

papel colaborativo durante la realización de la tarea.

B) Agarrar: Es similar a unir, pero es temporal durante la ejecución de la tarea e

interactuan en ella la pinza del robot y un objeto del mundo.

C) Sostener: Implica que una o varias superficies del objeto sostenido están en contacto con

1 o varias superficies del objeto sostenedor. Ej. Torno, prensa, mesa.

D) Trabajar: Implica que las superficies del objeto pueden ser alteradas por la intervención

de la herramienta. Esta relación es útil a nivel de aplicación para la representación de

resultados. La relación trabajar es genérica, los casos particulares de la misma son:

Maquinar, Pintar y Soldar.

E) Tocar: Se define entre objetos pasivos, permite el contacto entre dichos objetos.

Page 24: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

14

2.2.15 Atributos

Los atributos son las características inherentes al objeto: descripción geométrica,

relaciones, propiedades del material, posición, velocidad.

Los rasgos describen el conjunto de condiciones sobre las relaciones del objeto.

2.3 OPERACIÓN

2.3.1 Marco de acomodación

Esta definición se basa en los conceptos mencionados en [WHI – 1987], [BAS-1986]. Es

un marco de referencia que se ubica sobre las piezas que se desean trabajar, y por cada

superficie de acomodación existe un marco de acomodación. Cuando la pieza se mueve

durante la ejecución o es agarrada para realizar un traslado de la pieza el marco de

acomodación se fija sobre ésta y se puede expresar en términos del marco principal de la

pieza.

2.3.2 Punto de alcance de la herramienta

Esta referido al marco de la herramienta y es donde se presenta la interacción de ésta con la

pieza.

2.3.3 Efector terminal.

Punto de unión de la herramienta con el robot.

Page 25: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

15

2.3.4 Trayectoria

Es un conjunto de puntos en el espacio cartesiano que indican el recorrido del punto de

alcance de la herramienta unida al robot. Cada uno de estos puntos tiene asociada una

superficie de acomodación y puede encontrarse en el espacio de configuración posible del

robot o en las superficies de acomodación. En caso de que la trayectoria involucre a dos

planos de acomodación, se traza un plano con la normal promedio de los planos

involucrados, y se trabaja con ese plano para esa trayectoria. La trayectoria por si misma

define una restricción de posición.

2.3.5 Restricción

Conjunto de limitaciones de movimiento, posición y fuerza, que se aplican a las

trayectorias, teniendo en cuenta la posición de alcance de la herramienta unida al robot y las

fuerzas/torques aplicados sobre el efector terminal. Estas limitaciones son expresadas por

medio de vectores basados en el marco de acomodación y la superficie de acomodación de

la pieza por trabajar. Ocurre un cambio de restricción cuando los valores asignados de

posición y/o fuerza al marco de acomodación cambian o cuando hay un cambio de

superficie.

2.3.6 Paso de Tarea

Secuencia de una o mas trayectorias. En un paso las restricciones pueden o no mantenerse

constantes.

2.3.7 Tarea industrial

Actividad que sirve para la construcción y acople de piezas para una máquina o aparato, y

esta conformada por una secuencia de pasos. Dentro de éstas se incluyen: soldadura,

Page 26: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

16

pintura, maquinado, y ensamblado. Durante la ejecución de una tarea no hay cambio de

herramienta, el cambio de herramienta implica un cambio de tarea industrial.

2.3.8 Aplicación industrial

Una aplicación industrial es una plantilla de tareas industriales y posee un grupo de

herramientas, maquinas auxiliares y restricciones posibles. Así por ejemplo existen las

aplicaciones pintar, soldar, máquinar, etc. Cada una de estas aplicaciones esta definida por

una o varias herramientas, máquinas auxiliares (torno, banda transportadora, etc.), y por los

resultados esperados (tiempo gastado, recurso utilizado, medidas de la eficiencia de la

aplicación).

Las restricciones posibles se refieren a aquellas que pueden ser aplicadas sobre la tarea.

Los resultados se calculan mediante funciones que tienen como entrada la aplicación y

devuelven un valor numérico. Así por ejemplo se pueden definir funciones de cálculo de

gasto de material para las aplicaciones pintar y soldar, y funciones de determinación de

desgaste de la pieza en la aplicación de maquinado. Algunas funciones son generalizables

como aquella que calcula el tiempo gastado en la ejecución de la tarea. La aplicación tiene

una lista de funciones de cálculo de resultados.

2.3.9 Cinemática Directa

Procedimiento en el cual dado los valores angulares de cada componente angular del robot,

se calcula la posición – orientación del efector terminal del robot.

2.3.10 Cinemática Inversa

Procedimiento en el cual dado la posición – orientación del efector terminal del robot, se

calculan los valores necesarios de las componentes angulares para lograr dicha posición-

orientación.

Page 27: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

17

2.4. TELE-OPERACIÓN

2.4.1. Comando automático:

Es una aplicación industrial que se puede ejecutar sin intervención del operador. La

precondición de este comando se encuentra en el espacio libre del robot y el mundo. La

postcondición puede encontrarse en el espacio libre, o en contacto con alguno de los

objetos del mundo, en caso tal la fuerza y/o torque de contacto debe ser especificada

respecto al marco de acomodación de la pieza involucrada.

2.4.2 Comando interactivo:

Secuencia de puntos en el espacio libre del robot suministrados por el operador. Este

comando no tiene ninguna precondición asociada. La única restricción que debe cumplir es

que los puntos pertenezcan al espacio libre del mundo y sean alcanzables por el robot.

Generalmente se utilizan para llevar el robot a satisfacer la precondición del comando

automático.

2.4.3. Sesión de tele-operación:

Se define como una lista de una o más tuplas (<Comando interactivo><Comando

Automático>). La conexión entre comando interactivo y comando automático deben ser

especificadas, y se debe cumplir que la postcondición del comando interactivo sea igual a la

precondición del comando automático.

2.4.4 Memoria Intermedia(Buffer) de comunicación:

La memoria intermedia(Buffer) se utiliza para comunicar el entorno global con el entorno

remoto.

Page 28: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

18

2.4.5 Memoria Intermedia (Buffer) de Aplicación:

Se encarga de recibir los pasos o puntos provenientes del administrador remoto, enviarlos al

control del robot y convertirlos en instrucciones del robot.

Para el caso del comando automático, existe una memoria intermedia(buffer) de Aplicación

que tiene como elemento básico el paso que debe encontrase dentro de una aplicación

industrial.

Para el caso del comando interactivo la memoria intermedia(buffer) de aplicación tiene

como elemento básico el punto(que especifica una posición del robot), un caso especial es

el punto “home”.

2.4.6 Memoria Intermedia(Buffer) de Sensores:

Se encarga de recibir la señal de los sensores externos del robot y enviarlos al

administrador remoto, quien está encargado de mostrarlo en la interfaz. Por cada uno de los

sensores existe una memoria intermedia(buffer) de sensores. El elemento básico es un valor

de la unidad de información del sensor(ej: Valor decimal que representa la distancia medida

por un sensor).

Una característica importante del contenido del Buffer es un indicador del elemento básico

activo. Esto es útil para el seguimiento y sincronización de la ejecución.

2.4.7 Administrador Local:

El administrador local se encarga de recibir los mensajes de control del robot y convertirlos

en datos del tipo elemento básico de la memoria intermedia de sensores. También se

encarga de recibir los datos de la memoria intermedia de aplicación y convertirlo en

instrucciones del robot. Es responsable de la sincronización de los datos enviados a la

interfaz para cada uno de los sensores.

Page 29: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

19

2.4.8 Administrador Remoto:

Se encarga de traducir los mensajes enviados por la memoria intermedia de sensores y

enviarlos a la interfaz; también de leer las señales recibidas de la interfaz de los actuadores

y enviarlos a la memoria intermedia de aplicación.

Para lograr traducir los mensajes desde/hacia las memorias intermedias, debe conocer el

modelo del mundo, es decir, los objetos involucrados en la aplicación y la aplicación

misma.

2.4.9 Telerobot:

Máquina que extiende las sensaciones y la capacidad de manipular de una persona que

supervisa a través de un computador. El operador intermitentemente le envía información al

computador acerca de las tareas. El robot subordinado ejecuta la tarea basándose en la

información recibida, y el operador humano puede detener la tarea cuando crea

conveniente.[SHE-1992]

2.5 HERRAMIENTA

2.5.1 Herramienta

Puede ser un objeto activo o un objeto compuesto articulado. Tiene la capacidad de cambiar

las características y/o la posición de una pieza(remover material, pintar, mover, soldar,

maquinar, etc.), modificando al tiempo la visualización de la escena. Se fija en el efector

terminal del robot y es controlada por éste último.

Page 30: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

20

2.5.2 Acción

Cuando una herramienta realiza una tarea, ésta involucra un cambio en los estados o en los

atributos de los objetos sobre los cuales se realiza el trabajo y sobre la misma herramienta,

a ese cambio se le denomina acción.

2.5.3 Spray gun

Herramienta utilizada en las tareas de pintura. Consiste en un mecanismo hidráulico que

permite expulsar a través de un tubo o expulsor una cantidad determinada de recurso.

La cantidad de recurso expulsado depende del diámetro de la boquilla del tubo expulsor y

la velocidad con que se expulse.

2.5.4 Responsabilidad

Es una acción asociada a un objeto de la escena. La responsabilidad depende del tipo de

objeto sobre el cual se define la acción:

a) Objeto Activo. Informa su posición, orientación, recurso asociado, tarea asociada,

alcance y velocidad con que expulsa el recurso.

b) Objeto Pasivo. Informa su posición, la tarea que puede ser efectuada sobre él,

material del que esta compuesto y la región sobre la cual se ha trabajado, por

ejemplo, si son cajas puede informar sobre la superficie que se ha trabajado.

c) Objeto Estático. Informa su posición, textura y material.

d) Objeto Compuesto . Por estar formado de uno o más objetos pasivos y/o

compuestos, posee las mismas responsabilidades que un objeto pasivo.

e) Objeto Compuesto Articulado. Por estar formado por uno o más objetos activos,

posee las mismas responsabilidades que un objeto activo.

Page 31: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

21

También se considera como responsabilidad informar sobre las relaciones que tiene

asociadas el objeto, tales como: Unir, Agarrar, Sostener, Trabajar y Tocar. Además, el

objeto también tiene como responsabilidad informar sobre sus atributos.

2.5.5 Disparar

Acción asociada a una herramienta (objeto activo u objeto compuesto articulado) en la cual

expulsa una determinada cantidad de recurso para efectuar una tarea.

Las tareas donde más utiliza la acción de disparar son pintar, soldar y lavar. Para el caso de

pintar se utiliza la Spray gun (Spray) para expulsar la pintura; en el caso de soldar se

expulsa algún material(recurso) de soldadura, y en el caso de lavar comúnmente se utiliza

agua. También se aplica la acción de disparar cuando se realiza una tarea de recubrimiento

con un material(recurso) que proteja la pieza. [NOF-1985]

2.5.6 Pitch-and-yaw

Siendo el sistema de referencia local de la herramienta OUVW, se realizan giros sobre los

ejes del sistema fijo OXYZ de la siguiente forma:

1. Girar UVW un ángulo ϕ con respecto a X.(Yaw)

2. Girar UVW un ángulo θ con respecto a Y.(Pitch)

3. Girar UVW un ángulo φ con respecto a Z.(Roll)

2.5.7 FIFO.

First in Firts Out (Primeros en entrar, Primeros en salir) .Técnica usada para controlar

flujos de información que consiste en listar la información en orden de llegada, procesarla y

luego sacar los resultados en el mismo orden en cual llegaron los requerimientos.

Page 32: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

22

2.5.8. Línea de Visión.

Segmento de recta que se prolonga desde el marco de acomodación de la herramienta hasta

el alcance máximo de la herramienta.

Se dice que un objeto está en la línea de visión de la herramienta si alguno de sus planos se

intercepta con el segmento de recta que representa dicha línea de visión.

Page 33: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

23

CAPITULO 3. SIMULACION DE TAREAS INDUSTRIALES

3.1 PINTAR

Existen dos formas de realizar ésta tarea, por inmersión y por spray. La primera consiste en

tomar una paleta o brocha, sumergirla en un recipiente con la pintura, sacar la brocha o

paleta e iniciar la tarea de pintar. En cambio el método de spray consiste en utilizar una

pistola (spray gun) y rociar la pintura sobre la superficie.

Como uno de los objetivos de esta tesis es simular la tarea de pintar aplicada por el Robot

industrial Andes 1 (brazo articulado con 6 GDL´s) lo más apropiado es utilizar el método

de spray.[SPENCER-2002].

La aplicación del método de spray debe tener en cuenta que el actuador (brazo robótico

articulado) debe poseer los siguientes componentes [NOF-1985]:

• Centro de control.

• Manipulador

• Unidad hidráulica.

El centro de control es la interfaz con el usuario, la cual permite visualizar al robot y a la

herramienta de trabajo, es decir, el Spray. Desde aquí el operario puede manipular al robot

utilizando el teclado, ya que para cada grado de libertad existe un par de teclas que

permiten el movimiento (Ver Utilización de la plataforma ).

Una vez el operario coloque la herramienta, se puede observar un rayo que sale desde el

marco de acomodación de la herramienta y se prolonga en línea recta hasta el punto

máximo de alcance de la misma. Este rayo es una línea de referencia que hace la función de

una “mira” utilizada para mostrar a que punto de la escena esta dirigida la herramienta.

Page 34: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

24

Mientras la herramienta no este apuntando a ningún objeto, es decir, que ningún objeto este

en la línea de visión de la herramienta, entonces un rayo de color azul se prolongará la

distancia correspondiente al alcance de la herramienta, mientras que si algún objeto está en

la línea de visión de la herramienta, entonces el segmento de recta que representa la línea

de visión cambiará a un color blanco y se prolongará desde el punto de referencia de la

herramienta, hasta el punto exacto donde el rayo toca al objeto(Figura 3.1, Figura 3.2).

Figura 3.1. Línea de visión de la Herramienta en estado libre.

Figura 3.2. Línea de visión de la Herramienta en estado de colisión.

Una vez una superficie es tocada por el rayo, ésta se activa y cambia a un color gris claro;

en ese momento puede modificarse sus propiedades. Una vez esta activa la superficie es

Page 35: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

25

permitido modificar la posición y orientación del objeto al cual pertenece la superficie tan

solo manipulándolo con el teclado (Ver Utilización de la plataforma ).

Un objeto de la escena también puede ser seleccionado con el mouse. En éste caso la

plataforma tiene en cuenta si la línea de visión de la herramienta se encuentra en colisión

con uno de los objetos del mundo, de ser así se indica un segmento de recta con una

longitud mucho mayor que la línea de visión de la herramienta, pero con la misma

dirección y sentido de dicha línea de visión. Este prolongado segmento de recta sirve como

eje de referencia que informa al operador que existe un objeto del mundo seleccionado por

la herramienta, además puede observar la dirección en la cual esta apuntando la herramienta

y usar esta línea de referencia entre el objeto seleccionado y la dirección en la cual apunta

la herramienta.

Cuando ocurre que un objeto es seleccionado a la vez que la línea de visión de la

herramienta se encuentre en colisión con un objeto del mundo (puede ser el mismo objeto

seleccionado con el mouse), se activa la superficie seleccionada y se muestra el segmento

de referencia que indica la dirección en que apunta la herramienta, de tal forma que el

operador pueda observar las dos acciones al mismo tiempo, tal como se ve en la Figura 3.3.

Figura 3.3. Rayo de referencia durante selección de objetos con el mouse.

Page 36: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

26

Si la línea de visión no está en intersección con algún objeto del mundo, entonces

simplemente se activa la superficie que se ha seleccionado con el mouse.

Si una superficie es seleccionada con el mouse, el objeto al que pertenece la superficie se

puede mover solo una unidad, bien sea en X, Y o Z, o puede rotar una unidad bien sea en

torno a X, Y o Z. Si el operador quiere un mayor desplazamiento de un objeto seleccionado

con el mouse debe recurrir a las opciones del menú principal (Ver Utilización de la

plataforma ).

Figura 3.4. Comando de translación de objetos desde el menú principal.

En esta plataforma el operador puede manipular al robot simulado libremente, lo único que

lo limita son las restricciones del robot y de la tarea. Sin embargo en ocasiones es necesario

observar todo el recorrido realizado durante la tarea, entonces existe la opción de almacenar

los puntos por los cuales pasa el efector terminal del robot durante cada paso de la tarea y

luego son reproducidos. Es importante tener en cuenta que para almacenar cada punto se

debe crear una trayectoria y tener encendida la herramienta (Ver Capitulo 5: Utilización de

la plataforma ).

Una vez se ha activado la trayectoria y se ha encendido la herramienta, a medida que el

operador manipula el robot con el teclado se visualizan los puntos por los cuales ha pasado

el efector terminal del robot; es decir, los puntos por los cuales el robot debe reproducir la

tarea. A ésta utilización de la plataforma se le conoce como guiado fuera de línea, y permite

obtener, a través de la simulación, los puntos donde se debe realizar la tarea, almacenarlos y

posteriormente utilizarlos en el robot real [LOZ-1983].

El manipulador es el brazo articulado simulado, es decir el Robot Andes 1.

Page 37: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

27

El Andes 1 es un Robot Industrial con seis GDL´s (θ1,θ2,θ3,θ4,θ5,θ6) y de configuración

Antropomórfica. Para el control de sus motores se utilizan tarjetas controladoras PMAC.

Figura 3.5. Robot Andes 1 en la plataforma de simulación.

La unidad hidráulica es el Spray. Esta posee sus propios atributos, como el color del

recurso, alcance, capacidad de almacenar recurso, punto al cual está señalando sobre la

superficie a la que apunta y sabe si esta activa o no, es decir, sabe si esta encendida.

Dentro de la tarea de pintar podemos encontrar acciones que nos permiten definir mejor el

trabajo, éstas son: Revestir, Impresión, Barnizar y Arrojar mantillo.

1. Revestir es la actividad en la cuál se aplica una capa de pintura sobre una superficie de

acomodación en un área determinada por el operario.

2. Impresión: Se traza una línea o serie de líneas por una trayectoria especificada por el

operario.

3. Barnizar es la actividad que consiste en arrojar una capa de un material que evite la

corrupción de la pieza trabajada.

4. Arrojar Mantillo: Actividad en la cual se dispara el spray por una corta fracción de

tiempo.

Page 38: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

28

En la plataforma de simulación cada una de las anteriores acciones se puede realizar

variando el tiempo en el cual debe mantenerse encendida(activa) la herramienta (Spray).

Por ejemplo: si la necesidad es arrojar un mantillo, entonces el intervalo de tiempo entre

activar la herramienta y desactivarla debe ser menor a un segundo, mientras que si la

necesidad es aplicar un barnizado el tiempo entre activar y desactivar la herramienta debe

ser mucho mayor. Entretanto el movimiento de la herramienta también es importante en

dichas acciones, pues en revestir, barnizar e imprimir es necesario movimiento, mientras

que en arrojar un mantillo es deseable que la herramienta se encuentre estática.

3.1.1 Establecer parámetros.

Para obtener buenos resultados en la simulación de la tarea de pintar, se deben considerar

parámetros reales utilizados en esta tarea industrial.[NOF-1985]

3.1.1.1 Interacción.

Son acciones correspondientes al robot, el cual se encuentra en interacción con diversos

elementos del mundo. En este caso nos interesa tener en cuenta la pieza (Objeto pasivo), la

cabina del spray o Pistola (Objeto activo), la cinta transportadora (Objeto compuesto

articulado) o mesa de trabajo (Objeto Estático), y el Robot Andes-I (Objeto compuesto

articulado).

Cuando hablamos de la cinta trasportadora debemos tener en cuenta el factor que se conoce

como stops-starts [NOF-1985], es decir que hay que considerar la velocidad óptima de la

cinta para que la tarea de pintar se realice correctamente. Además se debe analizar si es

preciso que la cinta se detenga para permitir la tarea de pintura y después de un

determinado tiempo continúe con su movimiento hasta dejar la siguiente pieza a trabajar

frente al efector terminal del robot.

Page 39: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

29

Esta consideración de stops-stars involucra un buen manejo de la sincronización en los

objetos de la simulación, sobretodo entre los objetos compuestos articulados.

Permitir la activación y desactivación de un determinado objeto compuesto articulado en

forma manual puede ser una buena forma de controlar la sincronización, a esto se le

denominaría dentro de la simulación un comando interactivo. También se podría colocar

valores predefinidos de velocidad de los objetos articulados para que su control sea a través

de un comando automático, pero el encendido de la máquina(objeto compuesto articulado)

debe ser accionado por el operador.

3.1.1.2 Pintado y cambio de color.

Como ya se ha mencionado, para realizar la tarea de pintura el operario debe activar el

Spray desde el teclado (Ver Capitulo 6. Como usar la plataforma), de tal forma que solo se

pinta cuando el operario lo ordena. Adicionalmente si el operario desea realizar un guiado

fuera de línea, entonces debe activar la trayectoria y la herramienta.

El cambio de color de la pintura implica un cambio del Spray, por lo tanto es un cambio de

tarea. Este cambio del Spray es responsabilidad del operario.

A medida que se desarrolla una tarea de pintura, las coordenadas de los puntos por los que

pasa el efector terminal son guardados y luego reproducidos utilizando la técnica FIFO para

el manejo del flujo de información.

3.1.1.3 Cantidad de material volátil utilizado.

Esto es necesario cuando se quiere considerar en la simulación un requisito de seguridad en

el trabajo real, pero que puede ser de mucha ayuda si en la simulación se consideran las

cantidades utilizadas de un determinado recurso. Además la cantidad del recurso usado es

un dato necesario para realizar el cálculo de costos.

Page 40: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

30

3.1.1.4 Alcance total en la tarea.

Este depende del alcance del efector terminal del brazo y del alcance que pueda tener el

Spray. Se puede calcular mediante la ecuación 1 (E.1):

Defínase:

AB: Alcance máximo del brazo, es decir el punto más distante que puede lograr el efector

terminal.

AS: Alcance máximo que puede lograr en un disparo del spray.

AT: Alcance total.

AT = AB + AS. (E.1)

3.1.1.5 Alcance de la herramienta.

En el caso de la tarea de pintura, se refiere a la distancia máxima a la que es expulsado el

recurso. En la plataforma de simulación es representado por la línea de visión de la

herramienta.

3.1.1.6. Puntos alcanzables del Spray.

Debido a que la Pistola es una herramienta rígida, según [NOF-1985] se hace necesario

equipar a esta herramienta con un sistema de rotaciones pitch-and-yaw (ver Definiciones).

Esto debido a que durante la tarea se puede presentar el problema conocido como hard-to-

reach (difícil de alcanzar). Este se presenta cuando en las tareas de pintura existen puntos

que a pesar de ser alcanzables por el efector terminal, no son trabajables debido a la falta de

acomodación de la herramienta.

Sin embargo, en la plataforma de simulación del Robot Andes 1 se poseen los movimientos

necesarios para acomodar la herramienta, entonces no es prioritario darle al Spray la

propiedad de pitch-and-yaw.

Page 41: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

31

3.1.2 Evaluación de costos.

Cuando se realiza una tarea de pintura, es necesario tener en cuenta algunos parámetros que

inciden en el costo de la producción, más aún si se desea saber si el uso del robot realmente

reduce los gastos durante el proceso [NOF-1985].

3.1.2.1 Aplicación del Spray.

Se deben considerar los siguientes parámetros:

Area de cubrimiento (AC). Area promedio que se puede cubrir de pintura sin que el Spray

sea recargado.(medida en: cm ²)

Velocidad de la cinta trasportadora (VC). Velocidad constante a la cual se debe

desplazar la cinta trasportadora.(medida en: cm/min). En este criterio no se tiene en cuenta

la desaceleración que debe tener la cinta para detenerse y permitir la tarea, y la aceleración

para seguir moviéndose.

Centro de la pieza (CP). Altura a la cual se encuentra ubicado el centro de la pieza que se

desea trabajar (medida en: cm).

En la plataforma de simulación se puede obtener el centro de la pieza como una coordenada

en el marco global de referencia, o como una coordenada en el marco local de un plano de

acomodación.

Flujo de salida (FS). Cantidad de flujo que sale por la boquilla del Spray en un periodo

determinado de tiempo.(medida en: oz/min)

Eficiencia en un proceso manual (EM). Eficiencia de la tarea de pintar con spray

manualmente (medida en: %). Los datos para obtener ésta medición deben ser tomados

mediante experimentación.

Page 42: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

32

Eficiencia en un proceso robótico (ER). Eficiencia de la tarea de pintar con spray usando

un robot industrial.(medida en: %). Al igual que en caso anterior, los datos para ésta

medición deben ser tomados mediante experimentación.

Tiempo de uso del Spray (TS). Porcentaje del tiempo de uso del spray en la tarea.

(medido en: %).

En la plataforma, el dato TS corresponde al tiempo que se demora la simulación en hacer el

recorrido de la trayectoria.

Grosor de la película (GP). Grosor de la película de pintura que se obtiene en la tarea de

pintar con spray. Esta depende del tipo de spray utilizado.(medida en: mm).

Costo del material (CM). Costo del recurso utilizado.(medido en: $/gal)

Cálculo del ahorro. Este se realiza comparando los gastos obtenidos entre realizar la tarea

manualmente y realizar la tarea con el robot industrial [NOF-1985].

Para calcular los gastos se debe tener en cuenta los siguientes parámetros:

1. Recurso aplicado manualmente (RM). Es la cantidad del recurso que es

aplicado manualmente en un tiempo determinado.(medido en: oz/min). Este viene

dado por la ecuación 2 (E.2):

RM = FS x TS x EM. (E.2)

2. Recurso aplicado usando el robot (RR). Es la cantidad del recurso que es

aplicado usando el robot en un tiempo determinado.(medido en: oz/min). Este viene

dado por la ecuación 3 (E.3).

RR = FS x TS x ER. (E.3)

Page 43: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

33

3. Overspray (OSM, OSR). Es la cantidad de recurso neto aplicado por el

spray.(medido en: oz/min)

El cálculo de OS depende si el trabajo es realizado manualmente o por el robot. las

ecuaciones cuatro y cinco son para cada caso (E.4),(E.5).

OSM = (FS x TS) - RM. (E.4. manualmente).

OSR = (FS x TS) – RR (E.5. utilizando el robot).

4. Time overspray(TOSM, TOSR). Representa la cantidad de galones del recurso

que son aplicadas en cierta cantidad de tiempo. El tiempo(T) viene dado en minutos

tal como podemos observar en la ecuación 6 (E.6):

T = 60 min/hr X Hhr/ dia X Ddia/ año X. (E.6)

En E.6 se debe tener en cuenta que:

H: Es el número de horas trabajadas al día, y

D: Es el número de días trabajados a año.

También podemos observar que en éste caso T es la cantidad de minutos que realiza

la tarea durante el año. De esta ecuación fácilmente se puede calcular los minutos

trabajados en un día o los minutos trabajados en un mes.

Ahora, el TOS puede ser de la tarea realizada a mano(TOSM), o de la tarea

realizada con el robot(TOSR)

TOSM = (OSM / (n x FS)) x T (E.7)

TOSR=(OSR / (n x FS)) x T (E.8)

Donde n representa el número de veces que se aplica la pintura sobre la pieza.

5. Time cost of overspary(TCOM, TCOR). Es el valor total por el cual se realiza

la tarea durante un tiempo determinado.(En Unidades de Tiempo [T]. Ej: Seg, min,

Page 44: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

34

horas). Para esta variable podemos encontrar dos casos; que se esté encontrando el

costo total en la operación manual(TCOM), o que se esté encontrado el costo total

en la operación robotizada(TCOR). Las ecuaciones 9 y 10 (E.9),(E.10) son

utilizadas para encontrar el valor de éste parámetro.

TCOM = TOSM x CM (E.9)

TCOR = TOSR x CM (E.10)

6. Ahorro. Finalmente el ahorro viene dado por la resta de las ecuaciones E.10 y

E.9

Ahorro = TCOR – TCOM. (E.11).

3.1.3 Asignación de Responsabilidades.

Cada uno de los parámetros vistos en la sección 3.1.2 están a cargo de diferentes Objetos o

tareas industriales del mundo y los podemos clasificar en la Tabla 3.1.

Parámetro Responsable.

Área de cubrimiento. La herramienta(Spray). Pieza trabajada.

Velocidad de la cinta trasportadora. La cinta transportadora.

Centro de la pieza. La pieza.

Flujo de salida. La herramienta.

Eficiencia en un proceso manual. La tarea.

Eficiencia en un proceso robótico. La tarea.

Tiempo de uso del Spray. La tarea.

Grosor de la película. La herramienta. Pieza trabajada(Pintada).

Costo del material. La tarea.

Tabla 3.1. Responsabilidad de los objetos del mundo.

Es así como los objetos que interactúan durante la tarea industrial se encargan de transmitir

y recibir información de otros objetos que modifiquen su estado. Es responsabilidad del

usuario introducir correctamente los valores de cada uno de los atributos de cada objeto de

la escena.

Page 45: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

35

3.2 SOLDADURA

La tarea de soldar no ha sido implementada en la plataforma, pero es necesario dar las

pautas para que sea desarrollada en un corto plazo.

La información utilizada en la investigación fue obtenida de [NOF-1985].

Uno de los procesos de soldadura usados industrialmente consiste en fusionar dos objetos

metálicos. En el proceso, los metales son unidos en unos puntos específicos (spots)

señalados por el operador y se requieren de una inmensa corriente eléctrica para lograrlo.

Existen tres factores críticos en la soldadura por fusión de las piezas:

1. Presión entre electrodos.

2. Nivel de corriente.

3. Tiempo de soldado.

Los electrodos son los conductores de la corriente sobre un punto específico de la

superficie, tal como se muestra en la figura.

Figura 3.6. Electrodos.

En éste tipo de soldadura regularmente se siguen los siguientes pasos:

Page 46: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

36

1. Colocar las dos superficies (Objetos) entre los electrodos.

2. Conducir corriente por los electrodos por un determinado tiempo sin dejar que

toquen las piezas.

3. Colocar los electrodos sobre el punto a soldar. La pieza debe estar fresca, razón por

la cual se acostumbra circular un poco de agua sobre ella antes de efectuar la

soldadura.

4. Retirar los electrodos y buscar el siguiente punto a soldar.

Al igual que en la tarea de pintura, la soldadura requiere de unos componentes

principales para ser realizada, ellos son:

• Brazo articulado. Robot Industrial Andes 1.

• Pistola de soldadura. Análogo al Spray de pintura.

• Unidad de control. Plataforma de simulación y control.

Estos componentes cumplen funciones análogas a las descritas en la tarea de pintura.

Cuando se intente implementar la tarea de soldar en la plataforma, se deben considerar

restricciones de velocidad, distancia, y en algunos casos, de fuerza. Algunas restricciones

reales tenidas en cuenta en la tarea se pueden ver en la Tabla 3.2.

Peso de la herramienta. 40 – 100 Kg

Torque. 120-240 Nm

Velocidad de desplazamiento.

Lineal

Angular

0.5-1.5 m/Seg

60-180 grados/Seg

Margen de error. ± 0.5 o ±1.0 mm

Distancia entre puntos de soldadura. 1.5 o 2 mm

Tabla 3.2. Restricciones en tarea de soldadura.

Operacionalmente la soldadura se aplica punto a punto, siguiendo siempre una secuencia de

puntos que pueden estar controlados por un método FIFO. En la siguiente figura se puede

Page 47: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

37

apreciar los puntos de soldadura para ensamblar un refuerzo en el marco de la puerta

delantera de un automóvil. Los puntos 1,2,3 y 4 hacen parte de la trayectoria pero no se

aplica soldadura.

Figura 3.7. Ejemplo de soldadura industrial.

Al igual que en la tarea de pintar, al implementar la soldadura también se deben establecer

las ecuaciones para calcular el costo relacionado a una tarea. A continuación se presentan

algunas ecuaciones que pueden ser útiles en una futura implementación:

Costo del Metal desgastado = Costo del metal que se desgasta / fracción del electrodo

depositada en una tarea.

El costo del material desgastado se refiere al desgaste del electrodo a medida que se realiza

la tarea de soldadura.

En algunas tareas de soldadura se utiliza gas para lograr combustión y elevar la temperatura

de la soldadura, para éstos casos es importante considerar el costo del gas utilizado.

Costo del Gas = (Precio del Gas x rata del flujo desalojado) / (Eficiencia del electrodo x

Metal desgastado por unidad de tiempo).

Por último, se puede calcular el costo laboral , es decir, el gasto que implica mantener en

funcionamiento el robot, incluidos los gastos de programación.

Page 48: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

38

Costo laboral = (Horas laborales + Horas extra) / (Eficiencia del electrodo x Metal

desgastado por unidad de tiempo x Fracción de la tarea de soldadura en un proceso

manual).

Page 49: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

39

CAPITULO 4. DESCRIPCIÓN DE LA PLATAFORMA

En la descripción de la plataforma se utilizan definiciones y conceptos claves desarrollados

en los trabajos de Plinio Moreno, Javier Gil [MOR/GIL-2002] y Juan Daniel Riveros [RIV-

2002].

Durante el desarrollo de la plataforma fue necesario incluir nuevos conceptos que

permitieran un apropiado desarrollo de la misma, de tal forma que la arquitectura de dicha

plataforma permita continuidad en trabajos posteriores.

4.1 SIMULACIÓN

4.1.1 Objetivos del sistema.

La plataforma de simulación tiene como principal objetivo servir como apoyo en las tareas

industriales diseñadas a medida que evolucione el desarrollo del Robot Andes 1. Para cada

una de estas tareas la plataforma considera algunos objetivos claves:

A) Apoyo en la definición y evaluación de la tarea.

B) Plataforma de entrenamiento del Robot Industrial Andes 1.

C) Plataforma de programación por guiado fuera de línea.

La programación por guiado fuera de línea consiste en almacenar las coordenadas

espaciales de los puntos recorridos por el efector terminal del robot en la tarea simulada, y

posteriormente llevarlos a un buffer local de aplicación(buffer de aplicación en la

plataforma de simulación).

Page 50: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

40

Para que los objetos de la escena puedan interactuar con una buena aproximación al mundo

real, cada uno tiene como responsabilidad saber las relaciones que tiene con los demás

objetos de la escena. Por otra parte, la tarea tiene como responsabilidad saber las

restricciones asociadas a ella.

Por tanto, es necesario tener en el mundo virtual ciertas características importantes del

robot y los objetos presentes en el mundo real como son:

A) Cinemática del robot

B) Modelos geométricos para representar el robot y los objetos de la escena.

C) Tipo de relación de los objetos.

D) Espacio de configuraciones del robot.

La Cinemática es importante para lograr que los movimientos del robot simulado sean

aproximados a los movimientos realizados por el robot real. Dentro de la plataforma de

simulación se maneja la cinemática directa y la cinemática inversa. Cuando el operador

manipula el robot con el teclado, cada uno de los valores angulares cambia según el grado

de libertad que se este modificando(Ver Utilización de la plataforma); en éste caso se

utiliza Cinemática Directa para calcular la posición – orientación que debe tener el efector

terminal. Luego, cuando se reproduce la simulación completa se puede utilizar Cinemática

directa o Cinemática inversa, pero lo mejor en éste caso es utilizar durante toda la

visualización Cinemática Directa, pues al utilizar Cinemática Inversa la plataforma puede

calcular valores angulares distintos a los usados por el operador para llegar a un mismo

punto.

Los modelos geométricos son usados para el cálculo de colisiones y la representación

aproximada del mundo en el escenario del robot. Se pueden tener en cuenta características

como color de los materiales, forma de los objetos y distancia entre los objetos del mundo.

Estos objetos geométricos pueden ser trasladados, rotados o modificados, siempre y cuando

las restricciones de la tarea lo permitan.

Page 51: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

41

El tipo de relación es útil para considerar las tareas industriales que se pueden efectuar

sobre un objeto determinado. De esta forma se simplifica un poco el tiempo que requiere el

simulador para efectuar una operación ya que inmediatamente puede saber si es o no viable

efectuar dicha tarea sobre un objeto seleccionado.

El espacio de configuraciones tiene como objetivo determinar posibles caminos libres de

colisión para alcanzar un punto alcanzable por la herramienta utilizando algoritmos de

trayectoria en espacio de configuraciones (C-Space) que ofrecen soluciones precisas [LAT-

1993]. La desventaja de utilizar estos algoritmos en la plataforma de simulación del Robot

Andes 1 es que computacionalmente son muy costoso, debido a que los objetos de la escena

no están permanentemente estáticos, y por lo tanto el C-Space solo puede servir para tareas

que no impliquen muchos movimientos de los objetos con los que interactúa la herramienta.

Debido a que el cálculo de colisiones es altamente útil en la plataforma y el espacio de

configuraciones resulta costoso computacionalmente, entonces se utiliza un método de

intersección de volúmenes para calcular colisión entre los objetos del mundo.

4.1.2 Componentes de la Simulación

La definición de los componentes del sistema utilizados en este trabajo han sido estudiados

y proporcionados por [MOR/GIL-2002].

4.1.2.1 Robot

El robot es un manipulador formado por un grupo de cuerpos conectados en una cadena

mediante articulaciones. Dichos cuerpos son llamados enlaces. Las articulaciones forman

una conexión entre pares de enlaces vecinos. Debido a consideraciones de diseño mecánico

los manipuladores son por lo general construidos a partir de articulaciones que presentan un

solo grado de libertad. Muchos manipuladores tienen articulaciones de revolución o tienen

articulaciones deslizantes llamados articulaciones prismáticas. En el caso raro que un

Page 52: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

42

mecanismo este construido con una articulación que tenga N grados de libertad, esta puede

ser modelada como N articulaciones con un grado de libertad conectadas con N-1 enlaces

de longitud 0. Por lo tanto sin perdida de generalidad se considerarán solamente

manipuladores los cuales tienen articulaciones con un único grado de libertad. [CRA-89]

Los aspectos básicos a tener un cuenta en la simulación del robot son:

A) Geometría. Para el cálculo de colisiones y despliegue visual, los enlaces se representan

como poliedros de caras planas. Para la determinación de la cinemática inversa del sistema

se necesitan conocer los parámetros de Denavit-Hartenberg [CRA-89] que básicamente se

refieren a la longitud de los enlaces y la posición relativa de las articulaciones.

B) Cinemática del robot. Es necesaria la determinación de la cinemática inversa del robot

para conocer el estado del robot al momento de alcanzar con la herramienta un punto

determinado. Esta determinación se hace a partir de los parámetros de Denavit-Hartenberg.

4.1.2.2 Sensores

En la plataforma no se encuentran implementados los sensores, pero considerando su

importancia y la necesidad de que sean implementados en trabajos futuros, es preciso

definirlos.

Los sensores permiten validar la ejecución adecuada desde el punto de vista funcional de la

tarea, revisando que se cumplan las restricciones de dicha tarea. Tales restricciones son en

general de distancia de la herramienta a la pieza, de orientación de la herramienta y/o de

fuerza sobre las herramientas.

La simulación de un sensor está vinculada a la funcionalidad para la cual es diseñado, sin

embargo existen características comunes que hacen posible su clasificación e

implementación en un modelo jerárquico de clases. La clase padre debe tener como

atributos:

A) Posición – Orientación en el espacio 3D.

B) Alcance. Zona donde la lectura realizada es confiable.

Page 53: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

43

C) Tipo de información. Depende del tipo de sensor.

D) Modo de Operación. A petición, mediante muestreo o por eventos.

E) Estimación del error.

Cuando se particulariza en el análisis de los sensores se encuentran principalmente las

siguientes clases:

Proximidad:

Atributo. La distancia.

Implementación. Basado en características del sensor como alcance, exactitud y error se

puede construir un modelo espacial del sensor basado en la colisión entre un volumen que

recubra el alcance del sensor (Caja envolvente) y los objetos de la escena.

Figura 4.1. Simulación de sensor de proximidad.

Contacto:

Atributos. Ocurrencia de contacto.

Implementación. Cálculo de colisiones.

Fuerza:

Atributos. Esfuerzo y torques.

Implementación. Se deben tener en cuenta características de fabricación, como

comportamiento ante el Esfuerzo vs. Resistencia. La simulación se debe representar

mediante un modelo de simulación funcional.

Page 54: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

44

Cámara o visión:

Atributos. Curvas del lente, ubicación del foco, distancia focal, proyección (frustum).

Implementación. Se Define un modelo espacial para la visualización. Si no se realiza un

análisis de imágenes (que puede ser complejo), tan solo sirve para obtener

retroalimentación visual sin detección de errores de manera automática.

4.1.3 Mundo Externo al robot.

El mundo externo al robot es muy importante en el sistema, pues con él va a estar

interactuando el robot y es el mundo quien le presenta los obstáculos para la realización de

la tarea.

La simulación completa del mundo exterior al robot debe tener en cuenta los siguientes

aspectos:

A) Geometría de los objetos constituyentes

B) Los objetos se representan mediante poliedros de caras planas.

C) Localización/ Orientación de los objetos

4.1.3.1 Localización y orientación de los objetos.

Cada objeto cuenta con un marco de referencia principal, y el marco de referencia de cada

superficie del objeto esta expresado en función del principal. El marco de referencia

principal del objeto puede estar expresado en función del marco de referencia global, el

cual es único y no esta referido a ningún otro marco. También puede estar expresado en

función del marco de referencia principal de otro objeto, debido a que existen relaciones

entre objetos que lo hacen necesario. Tales relaciones son:

Objetos compuestos y Objetos compuestos articulados, para los cuales los enlaces se

encuentran referidos en secuencia comenzando desde el primer componente hasta el último

Page 55: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

45

componente del objeto. En la siguiente figura puede verse un ejemplo donde se enlaza

articulaciones y marcos de referencia desde la base del Robot Andes 1 hasta la herramienta.

Figura 4.2. Localización de eslabones. Robot Andes 1.

Cuando se presenta una relación de ser sostenido, el objeto sostenido esta referido al objeto

sostenedor(ver figura siguiente).

Figura 4.3. Marcos de referencia entre obstáculos relacionados.

Page 56: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

46

Este caso también se presenta cuando dos objetos del mundo son soldados, entonces a uno

de los objetos se le da la responsabilidad de sostener y al otro de ser sostenido, tal como se

muestra en la siguiente figura.

Figura 4.4. Relación Sostiene – Es Sostenido.

En la plataforma de simulación, cuando se realiza la tarea de pintar, solo el robot sabe que

se ha efectuado la tarea, los objetos del mundo no cambian su visualización. La figura

anterior es solo una representación de la soldadura en la plataforma. En este trabajo se

dejan las pautas para que en trabajos futuros se pueda realizar una tarea de soldadura.

Cuando se presenta la relación de agarre, el objeto agarrado se encuentra referido al objeto

que agarra.

Cuando se presenta la relación de unión, la herramienta esta referida al último enlace del

robot.

4.1.3.2 Interacción entre objetos

La interacción entre objetos se define mediante las relaciones entre ellos. Dichas relaciones

se definen sobre las superficies que conforman los objetos involucrados. El tipo de

relaciones que pueden ser especificadas define tres grupos de objetos:

Page 57: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

47

A) Objetos Pasivos: Son la representación de las piezas. Sobre ellos se pueden definir

relaciones que les permitan ser trabajados y sostenidos. Las relaciones posibles sobre

dichos objetos son:

- Ser soldado.

- Ser pintado

- Ser agarrado

- Ser maquinado

- Ser sostenido

- Ser tocado

B) Objetos Estáticos: Son la representación de los muebles, piso y paredes. Sobre ellos

solamente se pueden definir las relaciones:

- Ser sostenido

- Sostener

C) Objetos Activos: Los objetos activos son principalmente las herramientas. En ellos se

pueden definir relaciones que les permitan trabajar sobre objetos pasivos y las que le

permiten unirse al robot. Las relaciones posibles sobre estos objetos son:

- Soldar

- Pintar

- Agarrar

- Maquinar

- Ser unido

- Ser sostenido

En la plataforma de simulación se encuentra implementada la tarea de pintura, por lo tanto

a las superficies de los objetos se les define la relación “ser pintado”, por tanto tiene como

responsabilidad informar a la tarea y a la herramienta que puede ser pintado. A la

herramienta (Spray) se le define la propiedad “pintar”, por lo tanto tiene la responsabilidad

de informar a la tarea y a la pieza trabajada que su objetivo es pintar.

Page 58: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

48

4.1 ALGORITMOS IMPLEMENTANTADOS

Los algoritmos implementados en esta plataforma han venido evolucionando desde los

trabajos de [MOR/GIL-2002] y [RIV-2002].

4.2.1 Detección de colisiones

Como se ha mencionado, el algoritmo de detección de colisiones debe ser muy eficiente,

pues la continua modificación del espacio de trabajo hace necesario que la colisión sea

calculada en todo momento. La utilización de un C-Spacio y el uso de algoritmos para

calcular trayectorias libres de colisión en el mismo resulta muy costoso

computacionalmente, entonces se utiliza mejor un algoritmo para detectar colisión entre

volúmenes, el cual permite obtener una simulación rápida y precisa.

El algoritmo de detección de colisiones consta de tres pasos:

Figura 4.5. Algoritmo de detección de colisiones.

Page 59: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

49

Paso 1. Se evalúa si hay colisiones entre las esferas envolventes de los objetos.

Esto se hace revisando si la distancia entre los centros de las esferas envolventes es mayor

que la suma de los radios de las esferas.

Si no hay colisión entre las esferas envolventes puede descartarse una colisión entre los

objetos.

En caso contrario se pasa al siguiente nivel de complejidad definido como el segundo paso

(Figura 4.5).

Paso 2. Se evalúa si hay colisiones entre las cajas envolventes de los objetos.

Esto se hace tomando una de las cajas envolventes y mirando si alguno de los segmentos de

recta definidos por las aristas de ésta, atraviesa alguno de los seis lados de la otra caja

envolvente.

Si no hay colisión entre las cajas envolventes puede descartarse una colisión entre los

objetos. En caso contrario se pasa al siguiente nivel de complejidad definido como el tercer

paso (Figura 4.5).

Paso 3. En este paso se deben tomar todos los planos de un objeto contra todos los planos

del otro objeto, revisando si existe uno o mas pares de planos que se intersequen (Figura

4.5).

Para revisar las colisiones entre planos se utilizó el siguiente algoritmo [RIV-2002].

Paso 3.1. Se toman los 2 planos y se les aplica una transformación de forma que el plano

número 1 quede sobre el plano Z=0.

Paso 3.2. Para cada 2 vértices V1 = (X1, Y1, Z1) y V2=(X2, Y2, Z2) que sean

consecutivos en el plano 2, se hace la siguiente comprobación:

Si los 2 puntos se encuentran en el mismo lado con respecto al plano Z=0 (Z1*Z2>0),

entonces no existe colisión entre la arista definida por los vértices V1 y V2 con el plano 1.

Page 60: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

50

En caso contrario, se halla la ecuación de la recta que pasa por los puntos V1 y V2, y con

esta ecuación se encuentra el punto en que la recta interseca el plano Z=0. Para esto se

utilizan las siguientes ecuaciones:

La recta que pasa por los puntos V1 y V2, está definida por:

(X,Y,Z) = (X1, Y1, Z1) + α [ (X2,Y2,Z2) – (X1,Y1,Z1) ] con α [-∞,∞]

Se encuentra α tal que Z=0.

α = Z1 / (Z1 – Z2)

y con este α se encuentran los valores de X y Y.

X = X1 + α (X2-X1) y Y = Y1 + α (Y2-Y1)

Teniendo los valores de X y Y, se toma el punto (X,Y) y se le aplica el algoritmo de punto

interno con respecto al plano 1.

Si el punto es interior al plano 1, entonces no hay colisión entre el plano 1 y la arista

definida por V1 y V2 y se deben seguir revisando los demás vértices.

Si el punto es interior al plano 1 entonces hay colisión entre los planos 1 y 2 y por

consiguiente hay colisión entre los 2 objetos.

A continuación se presenta un ejemplo del cálculo de colisiones entre 2 superficies:

Figura 4.6. Colisión entre planos. [RIV-2002]

Page 61: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

51

Es esta imagen se ven 2 planos que se intersecan. El algoritmo de colisiones trabajaría de

la siguiente forma:

Primero se les aplica la transformación a los 2 planos, quedando el plano 1 sobre el plano

Z=0.

Figura 4.7. Intersección segmento de recta – plano.[RIV-2002]

En esta imagen vemos la vista superior de los planos. El plano 2 se ve de frente mientras

que el plano 1 esta representado por la línea horizontal que vemos en la imagen.

Figura 4.8. Intersección segmento Plano con visión de puntos. [RIV-2002]

Page 62: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

52

En esta imagen se han hecho las proyecciones de los segmentos de recta definidos por las

aristas del plano 2.

Los puntos rojos representan la intersección de los segmentos de recta con el plano Z=0.

Como se aprecia en la imagen, solo 2 puntos son interiores al plano. Sin embargo uno de

los dos puntos viene de una arista que no corta el eje (los 2 vértices que la definen se

encuentran del mismo lado del plano Z=0) por lo cual no es un punto válido como colisión.

El otro punto viene de una arista que corta el eje, y por lo tanto nos indica que los 2 planos

están en colisión.

4.2.2 Colisión de la línea de visión de la herramienta.

Para determinar si la línea de visión de la herramienta esta o no en contacto con un objeto

del mundo también se utiliza el algoritmo de colisión. Ahora para el segmento de recta de

la línea de visión se calcula el punto en el cual interseca a la superficie del objeto que se

está trabajando, es decir del objeto que se apunte con la herramienta.

Figura 4.9. Colisión rayo de visión de la herramienta – obstáculo.

Page 63: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

53

Como la línea de visión se encuentra en el marco de referencia de la herramienta, entonces

se transforman sus coordenadas para llevarla al marco de referencia global de la

plataforma. De la misma manera, las coordenadas de la superficie de acomodación de los

objetos se transforman para llevarlas al marco de referencia global. Una vez todo se

encuentre en el mismo marco de referencia se calcula, de existir, el punto de colisión (en el

marco de referencia global) entre la línea de visión de la herramienta y una determinada

superficie. En este momento se tiene las coordenadas globales del punto de colisión.

Una vez se ha determinado el punto de colisión en el marco global, se transforma tanto la

línea de visión como la superficie de acomodación al plano Z = 0 (Algoritmo de colisión

utilizado para calcular colisión entre segmento de recta y herramienta explicado en éste

capítulo), entonces se puede obtener las coordenadas X,Y con respecto al marco de

referencia de la superficie de acomodación.

Cuando se tienen las coordenadas del punto de colisión en el marco de referencia global y

en el marco de referencia local de la superficie de acomodación, entonces se almacena en la

herramienta el número identificador del objeto, el número correspondiente a la superficie

seleccionada de dicho objeto y las coordenadas de los puntos.

Este método sirve para localizar superficies de poliedros, por lo tanto si se quiere modelar

un cilindro para lograr contactos con cascarones, entonces se discretiza el cilindro y con los

puntos discretizados se crea un poliedro circunscrito en el cilindro.

Figura 4.10. Aproximación de un cilindro a través de un poliedro

Page 64: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

54

De esta forma la línea de visión de la herramienta puede entrar en contacto con una

superficie de acomodación del poliedro, simulando un contacto aproximado del rayo de

visión con un cilindro. En la plataforma de simulación se encuentra implementado de ésta

manera.

Sin embargo este método aproximado de detección de colisión de la línea de visión de la

herramienta y un cilindro es muy costoso computacionalmente, entonces se puede

implementar otro método donde se utilicen las ecuaciones de la recta y la circunferencia

para determinar el punto de contacto.

Las ecuaciones necesarias para usar el método son:

Línea de Visión:

P2x = P1x + α (A) ; Para coordenadas en X.

P2y = P1y + β(A) ; Para coordenadas en Y.

P2z = P1z + γ(A) ; Para coordenadas en Z.

Donde:

P1 es el punto inicial del rayo, es decir, el origen del rayo de visión de la herramienta.

A es el alcance de la herramienta, es decir, la longitud del rayo de visión.

P2 es el punto final del rayo de visión.

α es el ángulo con respecto al eje X, β es el ángulo con respecto al eje Y, γ es el ángulo con

respecto al eje Z.

Circunferencia:

Para éste caso hay que tener en cuanta el eje desde el cuál se traza el rayo R (radio):

R² = Z²+Y² ; Si esta sobre el eje X.

R² = X²+Z² ; Si esta sobre el eje Y.

R² = X²+Y² ; Si esta sobre el eje Z.

Teniendo los puntos P1 y P2 se puede calcular la ecuación de la recta pendiente, que

posteriormente es usada para calcular si hay colisión entre el círculo y el rayo de visión. Si

Page 65: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

55

no hay colisión entonces no se activa ninguna superficie, pero si hay colisión se debe

considerar si el rayo efectivamente toca una superficie del cilindro, o simplemente pasa por

las mismas coordenadas en el plano bidimensional pero a mayor o menor distancia del

cilindro en el plano tridimensional. En la siguiente figura se puede observar ésta

consideración.

Figura 4.11. Colisión rayo de visión de la herramienta – Cilindro.

Entonces, para finalizar el cálculo de la colisión, se tiene que calcular si el rayo de visión

intersecta el plano perpendicular al plano definido por el eje desde donde sale el rayo

R(radio) del círculo(Figura siguiente).

Figura 4.12. Colisión rayo de visión de la herramienta – Plano de Cilindro.

Page 66: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

56

4.2.3 Algoritmo de simulación

En el algoritmo de simulación se utiliza la clase Aplicación directamente como interfase

entre el mundo y las trayectorias. El Mundo le pide a la Aplicación el siguiente punto a

simular, y la Aplicación se encarga de cambiar los valores de los grados de libertad del

robot y devolver como información la velocidad a la que se deben mover los motores,

desde las posiciones que tenían anteriormente hasta las nuevas.

El mundo se encarga entonces de calcular el tiempo que le toma al robot pasar de las

posiciones anteriores a las nuevas teniendo en cuenta la velocidad a la que se van a mover y

las velocidades máximas de los motores (o grados de libertad para el sistema). Al mismo

tiempo el mundo se encarga de revisar si con la nueva configuración del robot ocurre

alguna colisión entre el robot y los objetos del mundo.

La obtención del siguiente punto se hace en cascada de la siguiente manera:

Figura 4.13. Diagrama de secuencia. Plataforma de simulación y control Andes 1.[RIV-2002].

La trayectoria se discretiza de acuerdo a la longitud máxima de movimiento que se le haya

asignado a la simulación, y es de esta forma que se obtiene el próximo punto a alcanzar.

Cuando una trayectoria se termina se devuelve un código indicando que la trayectoria

terminó. Esto mismo ocurre cuando se termina un paso, una tarea o la aplicación. De este

modo el mundo puede tomar la decisión de cual es la siguiente acción a realizar. Por

Page 67: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

57

ejemplo, cada vez que se termina una trayectoria se debe calcular el tiempo que se demoró

en ejecutarse y reportarlo al archivo de salida de la simulación.

4.2.4 Implementación de la persistencia

4.2.4.1 Formato de los archivos de objetos

Para la representación de los objetos se utilizó la representación por la frontera. En esta

representación el objeto es una colección de superficies (planos convexos) cada uno de

ellos representado como una secuencia de puntos conexos. A este tipo de archivos se les

conocerá en el sistema con la extensión ojd.

El formato de los archivos utilizados es el siguiente:

Color <Rojo><Verde><Azul>

<nro de planos>

y para cada plano

<nro de puntos>

<X1> <Y1> <Z1>

<Xn><Yn><Zn>

Se escogió este formato por ser una representación sencilla y fácil de entender de los

objetos.

Los objetos deben ser definidos de forma que el origen del objeto corresponda al pivote

para las rotaciones y al punto de referencia para la posición del objeto.

4.2.4.2 Formato del archivo de Robots

Como el robot es una colección de objetos se resolvió que la mejor opción para el formato

de un archivo de robot seria un archivo tipo “project”. Este tipo de archivos no contiene en

si mismo toda la información necesaria para poder cargar el robot, sino que se vale de otros

Page 68: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

58

archivos para obtener la información de las partes que lo componen. En este caso el archivo

del robot contiene los nombres de los archivos de objetos que representan cada una de sus

partes. Aparte de esto contiene la información de la transformación que debe hacerse para

situar cada una de las partes del robot con respecto a la anterior, y la información de cual es

el objeto anterior para cada uno de los objetos. Además contiene la información del grado

de libertad que representa cada uno de los objetos, esta información corresponde a los

límites y al tipo de grado de libertad (Si es rotación en el eje X, Y o Z, o si es translación en

X, Y, o Z). A este tipo de archivos se les conocerá en el sistema con la extensión rjd.

El formato es el siguiente:

<numero de partes>

#para cada parte se repite lo siguiente

<nombre del archivo del objeto que la representa>

<nro del padre>

<xtrans><ytrans><ztrans>

<valorMin><valorMax><tipo> Freedom

Donde:

Nro del padre: Es –1 si es el primer objeto en la jerarquía del robot. Si no corresponde al

número del objeto predecesor en la jerarquía (se cuenta desde 0)

xtrans, ytrans, ztrans: Representa la posición del objeto con respecto al objeto predecesor.

Esta posición se mide con respecto al (0,0,0) local del objeto.

ValorMin, valorMax: Son los valores mínimo y máximo permitidos para el grado de

libertad correspondiente al objeto.

Tipo: Corresponde al tipo de grado de libertad. En el sistema se tienen 6 tipos de grados de

libertad definidos asi:

0 – Translación en el eje X

1 – Translación en el eje Y

2 – Translación en el eje Z

3 – Rotación en el eje X

4 – Rotación en el eje Y

Page 69: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

59

5 – Rotación en el eje Z

Estos 2 tipos de archivos son los tipos de archivos básicos para cargar información en una

escena. Al cargar estos archivos se cargan todos los valores por defecto para cada tipo de

objeto cargado, y estos valores pueden ser modificados en la aplicación por el usuario.

4.2.4.3 Formato del archivo de Escena

Una escena comprende el robot con todas las características que tenga en el momento de

guardar la escena, todos los objetos que se hayan cargado hasta el momento con las

modificaciones que el usuario haya realizado sobre ellos, y además la aplicación que se

haya creado.

Guardar toda esta información como un solo archivo tiene 2 problemas. El primero de ellos

es el tamaño del archivo generado ya que la cantidad de información requerida para

reconstruir el robot y los objetos incluiría toda la información de la representación por la

frontera que para cada uno de los objetos. Por ejemplo para el robot Andes I es de

aproximadamente 100 planos por cada objeto. A esto se le sumaría la información necesaria

para poderlo reconstruir en el mismo estado en que se encuentre en el momento de guardar

la aplicación, y además toda la información de la aplicación que se haya desarrollado.

El segundo problema esta en la integridad de los datos. Dado que existen relaciones de

jerarquía entre los marcos de referencia que en la implementación están representados por

apuntadores a otros marcos de referencia no es suficiente para almacenar los datos tomar

los valores de los atributos de los cada uno de las clases y guardarlos para después

recuperarlos porque los apuntadores no se podrían guardar.

Se necesita entonces una forma de almacenar los datos de forma que se puedan recuperar

exactamente como estén en el momento de guardarlos y que al mismo tiempo no generen

un archivo demasiado grande o con información redundante. Una buena forma de lograr

esto es con un archivo tipo “project” de la misma forma que el archivo con la definición del

robot.

Page 70: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

60

La forma en que se construye el archivo permite reconstruir la escena completa empezando

desde una escena vacía y ejecutando los mismos pasos que el usuario haya ejecutado para

generar la escena. Estos pasos que se guardan en el proyecto son los pasos que afectan los

marcos de referencia de forma que se pueda reconstruir la jerarquía de todos los marcos de

referencia del mundo sin necesidad de guardar los valores de los apuntadores.

Este tipo de archivo además permite modificar aspectos del mundo sin necesidad de tener

que volver a generar la escena nuevamente desde el comienzo, esto se hace aprovechando

que el archivo de la escena guarda los nombres de los archivos de los objetos que están en

la escena, por esta razón si en algún momento se quiere mejorar algún objeto puede hacerse

reemplazando el archivo del objeto pero conservando una propiedad importante del objeto

que es el número de planos.

La definición de como se debería guardar este archivo se hizo observando los pasos que

sigue un usuario para la creación de una escena completa.

4.3 OPERACIÓN

El modelo de operación del robot Andes 1 se desarrolló en el trabajo de [MOR/GIL-2002].

En él se definen las tareas industriales básicas que debe hacer el robot Andes 1 (pintar,

soldar, maquinar, ensamblaje e inspección). En [NOF-1985] las tareas industriales se

definen en los siguientes grupos:

• Pintura/Soldadura. En estas tareas las trayectorias no tienen restricciones de

fuerza en la herramienta, solamente restricciones de distancia y velocidad.

• Maquinado. Son las tareas en las que se necesita desbastar la superficie de una

pieza, entre ellas el torneado, fresado, esmerilado y taladrar. En estas tareas existen

restricciones de fuerza pero no de distancia.

• Ensamblado. En estas tareas se introduce una pieza dentro de otra. Estas tareas

tienen restricciones de un nivel mas alto que las anteriores debido a que requieren

de mayor interacción con los objetos de la escena. Ejemplos de restricciones para

Page 71: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

61

una tarea de ensamblaje pueden ser: Moverse hasta detectar contacto, Mantener

posición mientras exista detección de contacto, etc.

• Inspección. Utilizando un estándar de cualidades de un determinado objeto, la

herramienta compara una pieza elaborada con dicho estándar y reporta errores.

En [MOR/GIL-2002] se describen algunas características relevantes del Robot Andes 1

necesarias para implementar sus operaciones en la plataforma:

• Brazo articulado de seis grados de libertad. Estos grados de libertad permiten la

orientación de la herramienta en un amplio rango de posiciones – orientaciones.

• Control robusto en la posición de cada uno de los motores. Este control garantiza

que dada una posición de los motores por alcanzar, el robot llega a esa posición con

un margen de error pequeño. Una gran desventaja es que los motores solo tienen en

cuenta los movimientos inerciales del robot, pero no tienen en cuenta fuerzas

externas.

• Lenguaje de programación de bajo nivel para mover el robot y efectuar control. Se

puede programar una rutina para que el robot revise sensores internos y externos

que se encuentren instalados.

• Pruebas de trayectorias usando sensores de proximidad.

4.4 DESARROLLO

El formato base de las clases realizado por [RIV-2002] no ha sido modificado, solo se han

realizado algunas modificaciones al código fuente en algunas de ellas para permitir la

funcionalidad de los nuevos movimientos relacionados a cada objeto de la escena

(movimientos con el teclado) y a la nueva tarea implementada. Para la implementación de

la tarea de pintar fue necesario incluir la clase CSpray.

El desarrollo del sistema se hizo bajo el paradigma de la programación orientada a objetos.

A continuación se presentan los diagramas de clases (UML) utilizados del diseño del

programa. El diagrama se dividió en 2 partes:

Page 72: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

62

Clases base: Estas son las clases que se utilizan como base para la definición de las clases

que representan los componentes del sistema.

Clases de los componentes del sistema: Estas son las clases que representan los

componentes del sistema como lo son el robot, los objetos, la aplicación, tareas, pasos entre

otros.

4.4.1 Clases base.

Información de las clases y gráficas obtenidas de [RIV-2002].

Clase CTrupla: Esta es la clase base para el manejo de las operaciones algebraicas

necesarias para la interacción en 3 dimensiones. Su único atributo es un arreglo de 3

elementos que representan cada una de las 3 dimensiones. De esta clase heredan 2 clases

que importantes en las representaciones tridimensionales (Figura 4.14).

Clase CPoint2: Representa un punto 3D e implementa métodos que permiten obtener

distancias entre puntos y saber si está en un segmento de recta entre otras (Figura 4.14).

Clase CVector: Representa un vector 3D e implementa métodos para las operaciones

básicas entre vectores como el producto punto y el producto cruz (Figura 4.14).

Figura 4.14. CTrupla.

Page 73: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

63

Clase CFrame: Esta clase representa un marco de referencia tridimensional. La clase

implementa los métodos necesarios para poder obtener el valor de un punto en coordenadas

del marco de referencia o en coordenadas del marco global. También permite la

transformación de un punto de coordenadas globales a coordenadas locales al marco de

referencia.

Atributos:

id y fatherId: fueron pensados para poder reconstruir la jerarquía de los marcos de

referencia, sin embargo en esta implementación del sistema no se utilizaron estos atributos.

TransformMatrix: es la matriz de transformación entre el marco de referencia padre y este

marco de referencia (Figura 4.15).

Clase CTransformMatrix: Esta clase implementa una matriz de transformación. Su

implementación es una matriz homogénea. Tiene como atributos la matriz de

transformación inversa, la matriz de transformación directa y el origen (Figura 4.15).

Figura 4.15. CFrame

Clase BoundigBox: Esta clase es de gran importancia en el algoritmo de colisiones.

Representa la caja y la esfera envolvente de un objeto y una superficie.

Atributos:

Center y Radius: Son los que representan la esfera envolvente.

Page 74: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

64

Blbcorner, blucorner, brbcorner, brucorner, flbcorner, flucorner, frbcorner, frucorner:

Estos ocho atributos representan las 8 esquinas de la caja envolvente.

La caja envolvente se calcula solamente la primera vez cuando se carga el objeto la

superficie, y su marco de referencia esta ligado con el marco de referencia del objeto o

superficie correspondiente a la caja envolvente (Figura 4.16).

Figura 4.16. CBoundingBox

Clase Modification: Esta clase es utilizada para la reconstrucción de los objetos al cargar

una escena. La información de una modificación consiste simplemente en el tipo de

modificación que puede ser una translación o una rotación en uno de los ejes principales y

los parámetros de la modificación respectiva que son un vector tridimensional para la

translación y un ángulo para la rotación (Figura 4.17).

Figura 4.17. CModification

Page 75: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

65

4.4.2 Clases de los componentes del sistema

Figura 4.18. CSurface

Clase CSurface: Esta clase representa una superficie de un objeto dado (Figura 4.18).

Atributos:

ReferenceFrame: Es el marco de referencia de la superficie. Este marco de referencia debe

además estar referido al marco de referencia del objeto al que pertenece la superficie.

BoundingBox: Es la caja envolvente del objeto utilizada para la evaluación eficiente de

colisiones.

Relations: Es un arreglo que contiene la información de las relaciones definidas para la

superficie. El valor por defecto de estas relaciones es desactivado y es responsabilidad del

operario activar estas relaciones.

Page 76: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

66

De esta clase heredan los 2 tipos de superficies que se definieron en el modelo de Moreno y

Gil. Estas clases son:

Clase CPlane: Esta clase representa un poligono que esta definido como una colección

ordenada de puntos que cumplen con la restricción de que todos deben estar en un mismo

plano coordenado y deben definir un poligono convexo.

Atributos:

PointList: Colección de puntos que representan el poligono.

NormalVector: Vector normal al poligono.

Adding: atributo de control para la creación del poligono.

Clase CArch: Esta clase no se ha implementado para el desarrollo del sistema dado que en

el modelo no tiene una especificación completa del manejo de este tipo de superficies. Se

establece como una definición inicial que debe ser un conjunto de 2 o mas planos no

paralelos.

Clase CObjetc2: Esta clase representa los objetos dentro del sistema. Estos objetos sirven

para representar desde los objetos que se van a trabajar hasta los objetos que componen el

robot y la herramienta (Figura 4.19).

El objeto se representa dentro del sistema como una serie de poliedros de caras planas, que

en el sistema se conocen como superficies. Además tiene una lista de las modificaciones

que se le han hecho desde el momento de la carga.

Atributos:

OFileName: Es el nombre del archivo del cual se cargo el objeto. Necesario para armar el

“project”.

Page 77: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

67

Figura 4.19. CObject2

SelectedSurface: Es el índice de la superficie que esta seleccionada en un momento dado en

objeto. Si ninguna superficie esta seleccionada su valor es –1.

SaveModifications: Es una variable de control para saber si se debe mantener el record de

todas las modificaciones que se le han hecho al objeto desde que se cargo en el sistema o

no.

Color: Es el valor del color del objeto expresado en formato RGB. Los valores de R, G y B

deben pertenecer al rango [0,1].

Los atributos density, poissonModulus, youngModulus, materialName, no se han utilizado

en el sistema y se han dejado para futuras adiciones al sistema en las que sean necesario

tener un mayor detalle de las propiedades del objeto.

De esta clase heredan 3 clases mas que son:

Page 78: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

68

Clase CStaticObject: Representa un objeto estático. La única diferencia con respecto a las

otras clases son las relaciones que le pueden ser habilitadas a este tipo de objetos.

Clase CPassiveObject: Representa un objeto pasivo. La única diferencia con respecto a las

otras clases son las relaciones que le pueden ser habilitadas a este tipo de objetos.

Clase CActiveObject: Representa un objeto activo. La única diferencia con respecto a las

otras clases son las relaciones que le pueden ser habilitadas a este tipo de objetos.

Clase CRobot: El robot se representa como una colección ordenada de objetos y de grados

de libertad. Esta colección ordenada de objetos debe representar el esquema jerárquico del

robot, y la forma en que se represento esto en el sistema es con la dependencia del marco de

referencia de un cada objeto del robot con el marco de referencia del objeto que representa

a su padre en la jerarquía. Es importante tener en cuenta que la lista de objetos y la lista de

grados de libertad del robot están relacionados directamente y que al objeto n de la lista de

objetos debe corresponderle el grado de libertad n de la lista de grados de libertad (Figura

4.20).

Figura 4.20. CRobot

Clase CFreedomDegree: Representa un grado de libertad. A los grados de libertad en el

sistema se les agregó un atributo además de los atributos usuales de un grado de libertad.

Page 79: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

69

Este atributo es la velocidad máxima a la que puede cambiar el valor del atributo. En el

caso de un grado de libertad en rotación estaría dada en grados por segundo; si es en

translación estaría dada en centímetros por segundo.

Atributos:

CurrentValue: Valor actual del grado de libertad.

MaxVlue, MinValue: Valores máximo y mínimo permitidos para el grado de libertad.

Type: Tipo de grado de libertad. Este puede ser:

• Translación en X

• Translación en Y

• Translación en Z

• Rotación en X

• Rotación en Y

• Rotación en Z

Velocity: Velocidad máxima permitida del grado de libertad.

Clase CTool: Representa una herramienta. En un comienzo se pensó en la herramienta

como un objeto compuesto y por esa razón la herramienta esta implementada como una

herencia de un objeto compuesto activo. Sin embargo, actualmente la herramienta se esta

usando como si fuera un objeto activo simple y se hace referencia siempre al primer objeto

del objeto compuesto activo (Figura 4.21).

Atributos:

Por heredar de un objeto compuesto activo la herramienta tiene los atributos de color,

marco de referencia, caja envolvente y relaciones de las superficies, con esto la herramienta

puede tratarse como un objeto más que se encuentra ligado a través de la jerarquía de

marcos de referencia con el marco de referencia del efector terminal del robot.

Otro aspecto importante de la herramienta era el punto de alcance de la herramienta, este

esta definido por una posición horizontal y una posición vertical. Estas posiciones son

medidas desde el origen del marco de referencia de la herramienta y se dan en coordenadas

locales.

Atributos:

Page 80: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

70

Horizontal: Distancia horizontal hasta el punto de alcance de la herramienta.

Vertical: Distancia vertical hasta el punto de alcance de la herramienta.

Figura 4.21. CTool

ResourcesList: Es una lista de los recursos que utiliza la herramienta. Actualmente no se

esta usando en el sistema, sin embargo se deja como una futura adición al modelo en el cual

se pueda medir la cantidad de recursos que se gastan al ejecutar una tarea.

Clase CSpray: Representa al Spray para realizar la tarea de pintura. Hereda de la clase

CTool y se utiliza para almacenar la información sobre la cual es responsable la

herramienta.

Atributos:

VelExp (Velocidad de expulsión) Es la velocidad con la cual la herramienta expulsa el

recurso.

Alcance (Alcance) Es la distancia máxima que puede alcanzar el recurso. En la plataforma

corresponde a la línea de visión.

Page 81: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

71

Rboquilla (Radio de la boquilla) Es el radio del orificio por el cuál sale expulsada la

herramienta.

Lptos (Lista de puntos) Lista de puntos en el espacio de trabajo por los cuales pasa el

efector final del robot en cada paso de la tarea.

Lang (Lista de angulos) Lista de los valores angulares almacenados durante cada paso de la

herramienta.

Clase CPath: Representa un camino de un paso. El paso se representa como una lista de

puntos y el porcentaje de la velocidad máxima que debe usar cada uno de los grados de

libertad (Figura 4.22).

Figura 4.22. CPath

Atibutos:

CurrentSimPoint: Representa el índice del segmento que está siendo simulado actualmente.

El segmento simulado corresponde al segmento de recta entre los puntos i e i+1 de la lista

de puntos.

DeltaAlpha: Representa la distancia que debe moverse en cada paso de la simulación.

SimuAlpha: Representa la distancia desde el punto i en dirección al punto i+1, en la que va

la simulación.

Velocity: Representa el porcentaje de velocidad máxima que debe usar cada uno de los

grados de libertad.

Clase CStep: Representa un paso dentro de una tarea. Cada paso tiene unas restricciones y

sensores diferentes. Además el paso tiene un marco de acomodación el cual le indica a la

cinemática inversa cual debe ser la orientación de la herramienta, y recibe como parámetro

Page 82: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

72

la herramienta con la que se está ejecutando el paso para realizar el calculo de la cinemática

inversa (Figura 4.23).

Figura 4.23. CStep

Atributos:

AcomodationFrame: Marco de acomodación para el paso.

CurrentPath: Es el índice del camino que esta siendo simulado.

InverseKinematics: Es una instancia de la clase CInverseKinematics. Se utiliza para

calcular la cinemática inversa para un punto dado con una herramienta dada.

TransformationWorldOriginRobotBase: Es la transformación desde el origen a la base del

robot. Utilizada para calcular la posición de los puntos de alcance de la herramienta en

coordenadas locales del robot.

Clase CAcomodationFrame: Esta clase representa un marco de acomodación para un

paso de la aplicación.

Atributos:

RelatedSurface: Es la superficie relacionada con el marco de acomodación.

Page 83: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

73

Clase CTask: Esta clase representa una tarea de la aplicación. La tarea se caracteriza por

utilizar una sola herramienta y contiene uno o más pasos (Figura 4.24).

Figura 4.24. CTask

Atributos:

CurrentStep: índice en la lista de pasos del paso que esta siendo simulado.

Tool: Herramienta a ser utilizada.

ToolNumber: Indice en la lista de herramientas de la aplicación de la herramienta a ser

utilizada. La primera herramienta tiene el índice 0.

Clase CApplication: Esta clase representa una aplicación. Una aplicación consiste de una

lista de tareas y una lista de herramientas que son las que pueden ser seleccionadas para las

tareas.

Atributos:

ApFileName: Nombre del archivo donde se va a almacenar la aplicación.

AuxiliaryMachineList: Lista de máquinas auxiliares para ejecutar la aplicación.

Actualmente no se están utilizando las máquinas auxiliares.

Page 84: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

74

Communicator: Es un comunicador. El comunicador es la interfaz entre el sistema y el

robot. Sirve de puente para mandar al robot los valores de los grados de libertad en que

debe situarse.

CurrentTask: Tarea que se está simulando actualmente.

ExternalSensorList: Listado de los sensores que se pueden utilizar en la aplicación.

ToolList: Lista de las herramientas que se pueden utilizar en la aplicación.

TaskList: Listado de las definidas para la aplicación.

TransformationBetweenRobotandOrigin: Es la transformación desde el origen a la base del

robot. Utilizada para calcular la posición de los puntos de alcance de la herramienta en

coordenadas locales del robot.

Clase CWorld: Esta es la clase contenedora de todo el sistema. Es la interface entre el

mundo y la interfaz gráfica. Esta conformada por una aplicación, un Robot y un listado de

objetos (Figura 4.25).

Figura 4.25. CWorld

Atributos:

Application: Aplicación definida para el mundo.

Page 85: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

75

ObjectList: Lista de objetos incluidos en el mundo. Esta lista no incluye los objetos que

hacen parte del robot ni las herramientas.

Robot: El robot que se ha cargado en el mundo.

SelectedObject: Indice del objeto que se encuentra seleccionado actualmente.

SimFileName: Nombre del archivo de la simulación.

PathTime: Variable de control utilizada en la simulación para llevar el dato de cuanto

tiempo se demora un camino en ser ejecutado.

Page 86: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

76

CAPITULO 5. UTILIZACIÓN DE LA PLATAFORMA

5.1 CONCEPTOS BASICOS En el siguiente aparte se explicará de manera breve como utilizar el sistema para programar

aplicaciones industriales del robot Andes 1 simulado en la plataforma.

Al comienzo el sistema muestra una interfaz como la siguiente.

Figura 5.1. Plataforma de simulación Andes 1.

Para cargar un robot deberá seleccionarse la opción load robot del menú File.

Lo primero que el sistema pedirá será el nombre del archivo del robot a cargar. Como el

archivo del robot es de tipo “project” es posible que el programa no encuentre alguno de los

Page 87: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

77

archivos necesarios para abrir el robot, en este caso el sistema informará el nombre del

archivo que no se encuentra y el usuario deberá dar al sistema la ubicación del archivo.

Una vez se ha terminado de cargar el robot, se asigna una valor de 3.0 a la velocidad de

cada uno de los grados de libertad del robot, es entonces que el robot se ha cargado

completamente.

Figura 5.2. Robot Andes 1 simulado en alambre.

Para manipular el robot manualmente se puede usar el teclado, pues se tiene un

determinado par de teclas para la manipulación de cada grado de libertad, tal como se

indica en la Tabla 5.1.

Par de teclas Número de Componente angular.

Z, X (Movimiento grueso) 0

A, S (Movimiento grueso) 1

Q, W (Movimiento grueso) 2

C, V (Movimiento fino) 3

D, F (Movimiento fino) 4

E, R (Movimiento fino) 5

Tabla 5.1.Teclas para movimiento del robot.

Page 88: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

78

El siguiente paso después de tener un robot en la escena es cargar los diferentes objetos.

Para esto se debe seleccionar la opción load Object del menú File. Se le permitirá al

usuario seleccionar que tipo de objeto quiere cargar.

Figura 5.3. Cargando objetos en el mundo.

Otra opción que puede ser usada en cualquier momento en el sistema es cambiar la

visualización entre objetos sólidos o estructuras de alambre. Esta opción resulta muy útil

cuando se quieren apreciar detalles que no se pueden ver cuando se tienen objetos sólidos.

Para cambiar la visualizacion seleccione la opcion Draw Solid Object del menú View.

Figura 5.4. Robot Simulado en Alambre y Robot Simulado con sólidos.

Una vez se cargan los objetos deseados, se puede usar el ratón para seleccionar el objeto de

interés. A éste objeto seleccionado se mostrará de color diferente en la superficie sobre la

cual pulsó el ratón y se visualizará el marco de referencia de ésta superficie.

Page 89: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

79

Por medio del menú object se pueden cambiar las propiedades del objeto y la superficie

seleccionada, o se puede trasladar y rotar el objeto.

En este momento ya se deben tener cargados todos los objetos y el robot. Se deberá

entonces comenzar la creación de la aplicación. Para esto debe seleccionarse en el menú

Application la opción new Application. Al crear una nueva aplicación el sistema le pide al

usuario un archivo para guardar la información de la aplicación. Cuando se ha creado la

aplicación deberán agregarse las herramientas. Las herramientas pueden agregarse en

cualquier momento durante la definición de la aplicación, sin embargo se recomienda

agregarlas todas al comienzo.

Para agregar herramientas a la aplicación seleccione la opcion add Tool, del menú

Application.

El sistema le pedirá que llene la información correspondiente a la herramienta. Esta

información incluye la funcionalidad de la herramienta, es decir, que tareas puede realizar

la herramienta. Esta información solo puede ser llenada en el momento de cargar la

herramienta y no puede ser editada mas adelante, por esta razón es importante llenarla con

cuidado.(Ver Figura 5.5)

Figura 5.5. Cargando herramienta al robot simulado.

Page 90: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

80

Una vez se tenga colocada la herramienta, se puede observar un rayo en línea recta que sale

desde el efector terminal. Cuando esta línea recta toca(se intersecta) con una superficie de

un objeto, la activa para ser trabajada, indicando además los puntos x,y (locales) sobre la

superficie.

Para manipular el objeto manualmente se puede usar el teclado, siempre y cuando dicho

objeto este seleccionado por la línea de visión de la herramienta, generando movimientos

en relación al marco de referencia local del objeto. Estos movimientos se realizan sobre el

plano X,Y,Z usando las teclas indicadas en la Tabla 5.2.

Teclas Movimiento sobre el eje local

B, N X.

G, H Y.

T, Y Z.

Tabla 5.2. Teclas para translación de un objeto seleccionado.

También se puede rotar manualmente el objeto seleccionado. La rotación se hace en torno

al origen en el marco de referencia local del objeto. En la siguiente tabla se pueden ver las

teclas usadas para las rotaciones.

Teclas Rotación sobre el eje local

U, J X

I, K Y

O, L Z

Tabla 5.3. Teclas para la rotación de un objeto seleccionado.

En la siguiente figura se puede observar a la línea de visión de la herramienta en colisión

con un objeto del mundo.

Page 91: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

81

Figura 5.6. Selección de superficie usando el rayo de visión de la herramienta.

Cuando se quiere aplicar el recurso se presiona la tecla P. Cuando se intenta aplicar un

recurso y no hay superficie seleccionada, entonces se notifica al operario mediante un

mensaje en la pantalla.

Figura 5.7. Activar – Desactivar herramienta.

Page 92: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

82

5.2 CONCEPTOS AVANZADOS.

Una vez se tenga una escena representada en la plataforma de simulación, el operador

puede generar una simulación completa usando la capacidad de la plataforma para

almacenar los puntos y valores angulares de cada paso y representarlos después.

Para iniciar una trayectoria se debe tener activa la herramienta (encendida), se debe estar

apuntando a una de las superficies y las superficies a trabajar deben tener la propiedad de

pintables.

Para iniciar una trayectoria(Path) se deba hacer:

• Crear una nueva tarea.

Figura 5.8. Activación de path usando el menú principal.

• Seleccionar la herramienta. Pide el número identificador de la herramienta,

comenzando desde cero hasta n, en el orden en el cual se han adicionado

herramientas a la aplicación.

• Luego, del menú principal hay que seleccionar STEP, NEW STEP.

• Luego, del menú principal hay que seleccionar PATH, NEW PATH. En éste

momento se pide la velocidad del Path. Se debe introducir un valor porcentual

según los valores obtenidos en el proceso real.(Ver siguiente figura).

Page 93: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

83

Figura 5.9. Colocando velocidad a la simulación.

Ahora se activa la herramienta (tecla “P”) y se manipula el robot. Se puede ver cruces de un

color blanco encendido por los puntos que pasa el efector terminal, tal como se muestra en

la grafica.

Figura 5.10. Señalando puntos recorridos por el path.

Luego, para iniciar la simulación:

• Se finaliza el Path (PATH, END PATH).

• Se finaliza el paso (STEP, END STEP).

• Se finaliza la tarea (TASK, END TASK).

• Se finaliza la aplicación (APLICATION, END APLICATION).

• Se procede a correr la simulación (APLICATION, SIMULATE).

Page 94: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

84

Entonces se visualiza al Robot Andes 1 simulado hacer el recorrido que se ha especificado.

5.3 MANEJO DE CAMARAS.

Para el manejo de la visualización se usa:

Acercar: Tecla “+”

Alejar: Tecla “-”

Movimientos cartesianos: Flechas arriba, abajo, izquierda, derecha.

Movimientos polares: Del teclado alfa numérico, los números 2,4,6 y 8.

Vistas:

Derecha: Tecla “1”.

Frontal: Tecla “2”.

Superior: Tecla “3”.

Page 95: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

85

CAPITULO 6. DEFINICION DE UN MODULO DE COMUNICACION

El foco central de este trabajo fue el estudio e implementación de la tarea de pintar, sin

embargo el enfoque dado a la misma tarea (manipulación, simulación y obtención de

puntos en el espacio) hizo posible desarrollar un capítulo donde se defina una forma de

comunicación entre la plataforma de simulación y el robot real.

La investigación se inició en el trabajo de Plinio Moreno y Javier Gil [MOR/GIL-2002].

Ellos se inspiran en la arquitectura ASSET para diseñar un sistema de teleoperación

apropiado para el robot Andes 1.

En este capítulo no se hablará de una arquitectura compleja de la teleoperación del Robot,

sino que se propone una solución al problema de comunicación entre la plataforma y la

herramienta.

6.1 TARJETAS CONTROLADORAS

El control de los motores del Robot Andes 1 se logra a través de tarjetas controladoras

PMAC [MAN]. La tarjeta cuanta con un conjunto de comandos mediante los cuales se

modifican las variables usadas en el control de las interrupciones. Las variables son:

I – Variables:

Son las interrupciones a los motores. En total son 1024 variables y sus características

principales son:

• Inicialización e instalación de variables

• Coordenadas específicas

• Codificaciones específicas.

Page 96: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

86

P – Variables:

Son variables de usuario de propósito general. En total son 1024 variables.

Q – Variables:

Son otro tipo de variables de propósito de usuario.

M – Variables:

Son variables que provee acceso público a la memoria.

Las tarjetas usan herramientas del álgebra booleana para implementar su control, entre

dichas herramientas encontramos: Entero sin signo, signo magnitud, BCD, punto flotante y

formatos.

6.2 BUFFERS EN LA PLATAFORMA DE SIMULACIÓN

Como se ha visto en capítulos anteriores, cuando se manipula al robot en la plataforma de

simulación se obtienen una serie de puntos y componentes angulares que son almacenados

en sus listas respectivas. También se ha dicho que la plataforma sirve como herramienta

para realizar una programación por guiado fuera de línea [LOZ-1983] debido a que la lista

de los puntos y componentes angulares hace a la vez de buffer de aplicación remoto.

Entonces se busca establecer una comunicación que permita hacer de la plataforma un

administrador remoto, y que el robot se convierta en un Telerobot.

6.3 MODELO PARA INTERPRETACIÓN DE DATOS.

Una vez almacenados los puntos y valores angulares en los buffers (Listas de puntos) de la

herramienta (Spray), se pueden interpretar y traducir al lenguaje de las tarjetas PMAC, de

tal forma que se genere un archivo con las instrucciones necesarias para replicar el

movimiento realizado en la simulación en el robot real.

Page 97: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

87

De la plataforma (administrador remoto) se puede extraer el buffer de administración con

los valores angulares que debe poseer la herramienta o los puntos que debe recorrer el

efector terminal. También se debe extraer la velocidad de cada motor y los valores de las

restricciones.

Una vez se obtenga la información, se puede hacer pasar por un parser que traduzca cada

paso al lenguaje de las tarjetas, de tal forma que por cada paso existen varias instrucciones

para poder acomodar al robot tal como se observa en la simulación. Una vez se interprete el

primer paso y se generen las instrucciones respectivas, entonces se analiza el segundo paso,

y así continuamente hasta analizar e interpretar todos los pasos. En la siguiente figura se

observa el ciclo:

Figura 6.1. Interpretación de los datos desde la plataforma hasta el Robot Real.

Cada grupo de instrucciones generadas por un paso son guardadas consecutivamente en un

archivo que posteriormente puede ser compilado e interpretado por las tarjetas

controladoras.

Una consideración importante que debe hacerse antes de adicionar comandos al archivo de

ejecución, hay que verificar que los motores se encuentren inicializados (Envíen/ Reciban

datos). Si los motores no se encuentran inicializados se debe tener en cuenta las

interrupciones:

Page 98: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

88

I0 – I99: Instalación general de la tarjeta.

I100 – I184 Instalación del Motor #1.

I185 – I199 Coordinación del sistema #1.

I200 – I284 Instalación del motor #2.

...

I800 – I884 Instalación del motor #8.

I885 – I899 Coordinación del sistema #8.

I900 – I979 instalación del Encoder 1 – 16.

I980 – I1023 Reservado para futuros usos.

La razón por la cual se consideran 8 motores, es que el robot Andes 1 cuanta con 8 tarjetas

controladoras PMAC, pero solo seis de ellas son utilizadas.

Page 99: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

89

CONCLUSIONES Y TRABAJOS FUTUROS.

CONCLUSIONES

La plataforma tiene las siguientes características:

• Se puede cargar el robot y otros objetos activos.

• Se pueden definir nuevos objetos compuestos articulados.

• El robot simulado puede ser manipulado desde el teclado.

• Los objetos del mundo pueden ser seleccionados con el mouse y manipulados con el

teclado.

• La arquitectura de la plataforma permite un continuo desarrollo.

• Indica índices de desempeño de la herramienta. Se puede observar un gasto

aproximado de recurso durante la tarea.

Como la plataforma esta diseñada pensando en un operador tradicional, sin conocimientos

previos en programación, resultan muy útiles las nuevas funcionalidades del programa,

pues el robot puede ser manipulado con el teclado, y a medida que es manipulado, se

capturan los puntos por los cuales pasa el efector terminal. Este movimientos se conoce

como programación por guiado fuera de línea y es bastante útil en tareas industriales como

pintura.

Cuando se realiza la tarea de pintura, los puntos y coordenadas articulares quedan

almacenados en la lista de puntos o componentes articulares(Buffer) de la herramienta, pero

no se visualizan cambios en la superficie pintada, dichos cambios se pueden desarrollar en

trabajos posteriores.

La herramienta es fácil de utilizar y requiere de poco entrenamiento por parte del operador.

Con una breve indicación se aprende el manejo de ésta.

Page 100: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

90

Por último se han desarrollado algunos capítulos de investigación con el fin de encontrar un

punto de inicio en trabajos futuros.

TRABAJOS FUTUROS

En trabajos futuros se puede implementar:

• Un método más eficiente para el cálculo de colisiones.

• El módulo de comunicación entre la plataforma y el robot real.

• La tarea industrial de soldar. En ésta se puede utilizar la misma metodología usada

en la tarea de pintura, pues ambas cumplen con restricciones similares.

• Implementación de tareas de mayor complejidad, como maquinar y ensamblar.

• Implementación de las clases para emular los sensores.

• Desarrollar un parser que me permita importar archivos creados en otros programas

de diseño 3D, como por ejemplo 3DS o VRML.

Page 101: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

91

BIBLIOGRAFIA

[SPENCER-2002] Spencer Rob, “Robotic painting and coating”, Robotics World

Magazine, Pag 15, June 2002.

[NOF-1985] Nof Shimon Y, “Handbook of industrial robotics”, Purdue

University, Indiana, John Wiley & Sons

[ROD-1994] C.F. Rodriguez, “Planificación y control de sistemas multirobot en

tareas coordinadas”. Tesis Doctoral. Universidad Politécnica de

Madrid.

[MOR/GIL-2002] Moreno López Plinio, Gil Quijano Javier, “Plataforma de

programación, simulación y teleoperación del Robot Andes-I”, Tesis

de Magíster, Universidad de los Andes, Bogotá. Colombia,2002.

[RIV-2002] Juan Daniel Riveros, “Implementacion de la plataforma de

programación y simulación del Robot Andes –I”, Tesis de pregrado,

Universidad de los Andes Bogotá. Colombia, 2002.

[HER-1992] J.T. Hernández, J. Villalobos, C.F. Rodríguez, “Ambientes de

programación y planificación de robots”, Universidad de los Andes,

Bogotá. Colombia , 1992.

[LAT-1993] Jean Claude Latombe. Robot motion planning. Stanford University.

1993.

[SCHI-1990] Schilling Robert. Fundamentals of robotics : analysis and control.

Englewood Cliffs, New Jersey : Prentice Hall, 1990

Page 102: SIMULACION DE LA TAREA DE PINTURA PARA EL ROBOT …

ISC-2003-2-10

92

[MOR-1991] Villalobos J., Morales J., Villegas E. Programación y planificación en

robótica. Universidad de los Andes. 1991.

[LOZ-1983] Lozano Pérez Tomas. Robot Programin. Proceedings of IEEE, VOL

71, No 7. Julio 1983.

[VIL-1991] Villalobos J. MSIM: Un ambiente de programación de robots con

capacidad de planificación de tareas. Universidad de los Andes,

1991.

[SHE-1992] Sheridan, Thomas B. Telerobotics, Automation and Human

Supervisory Control. London: MIT press, 1992. 383p.

[SHO-2001] Schoroeder William, Avila Lisa, Martin Kenneth, Hoffman, William,

Law Charles. The VTK User’s Guide. Kitware, Inc, 2001.

[MAN-] Manual de usuario de las targetas controladoras PMAC.

[CRA-1989] John J.Craig, 1999. Addison Wesley