simulacion de la tarea de pintura para el robot …
TRANSCRIPT
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
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
ISC-2003-2-10
iv
A mis padres Vicente Bermúdez, Consuelo González
y mi hermano Cristian Bermúdez.
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.
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
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
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
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
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
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
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
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.
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
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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,
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.
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.
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.
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.
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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.
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.
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)
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,
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.
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:
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
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.
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).
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).
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.
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
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.
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.
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
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.
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:
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.
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.
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.
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]
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]
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.
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
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
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.
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
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
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
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.
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
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:
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.
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.
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
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.
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”.
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:
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.
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:
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.
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
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.
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.
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.
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.
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
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.
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.
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.
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.
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.
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).
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).
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”.
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.
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.
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:
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.
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.
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.
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
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