Está en la página 1de 32

SIMUNROBOT v2.

0: Software Enviroment for Robot Dynamics Simulation

Manual de Usuario Julio de 2011

David Leonardo Tarazona Jimnez

Facultad de Ingeniera Departamento de Ingeniera Mecnica y Mecatrnica

ndice general
1. Introduccin
1.1. 1.2. Qu es SIMUNROBOT v2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Instalando SIMUNROBOT v2.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

5
5 5

2. La Interfaz
2.1. 2.2. Descripcin general de la Interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Elementos de la Interfaz . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

6
6 6

3. La Escena
3.1. 3.2. Descripcin general . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Manipulando la escena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

9
9 10

4. Los Robots
4.1. 4.2. 4.3. Estructura de un Robot Creando Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Insercin y manipulacin de Robots en la escena

12
12 12 17

5. Los Obstculos
5.1. 5.2. 5.3. 5.4. Qu es un Obstculo? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creando un Obstculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Insercin y manipulacin de Obstculos en la escena . . . . . . . . . . . . . . . . . . . . . . . . . . . Colisiones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

19
19 19 20 21

6. Las Trayectorias
6.1. 6.2. 6.3. Qu es una trayectoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Creando trayectorias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Insertando y modicando trayectorias en la escena . . . . . . . . . . . . . . . . . . . . . . . . . . . .

23
23 23 23

7. Simulacin
7.1. 7.2. 7.3. 7.4. 7.5. Introduccin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Siguiendo una trayectoria Ejecutando una simulacin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

26
26 26 29 29 29

Simulacin con mltiples robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Exportando los datos de la simulacin

ndice de guras
2.1.1.Interfaz del programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7 7 9 10 11 13 16 16 17 18 19 20 20 21 22 22 24 24 25 27 27 28 30 31 2.2.1.Barra de Herramientas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2.rboles de Objetos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1.La escena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

3.2.1.Marco de Referencia del Observador 3.2.2.Elementos Grcos de la Escena

4.2.1.Creador de Robots . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.2.Robot Planar de 2DOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2.3.Modelo 3D Eslabones 0 y 1 para Robot Planar

4.3.1.Modicando Ubicacin y Orientacin de Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3.2.Modicando valor de Junta de Robot . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1.Ejemplo de archivo OBJ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.1.Obstculo en la Escena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.3.2.Modicando Ubicacin y Orientacin de Obstculo . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.1.Colisin entre todos los eslabones y todos los obstculos . . . . . . . . . . . . . . . . . . . . . . . . . 5.4.2.Colisin entre slo los efectores nales y todos los obstculos . . . . . . . . . . . . . . . . . . . . . . 5.4.3.Colisiones deshabilitadas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.1.Ventana para agregar Trayectoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6.3.2.Creacin de trayectoria recta 6.3.3.Trayectoria en la escena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

7.2.1.Ventana para seguir trayectoria . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.2.Trayectoria en la escena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7.2.3.Ejemplo de seguimiento de dos trayectorias 7.5.1.Ventana de resultados de simulacin 7.5.2.Ventana de resultados de simulacin

ndice de cuadros
4.2.1.Parmetros DH para Robot Scara . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 15 4.2.2.Parmetros DH para Robot Kuka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

Captulo 1

Introduccin
1.1. Qu es SIMUNROBOT v2.0
SIMUNROBOT v2.0 es un entorno de software diseado para la simulacin de la dinmica de manipuladores robticos en un ambiente 3D. A continuacin se encuentra un listado con las caractersticas del software: Insercin de Robots en la escena 3D. Insercin de obstculos en la escena 3D. Cinemtica directa. Seguimiento de trayectorias mediante el uso de un nuevo algoritmo de cinemtica inversa de propsito general. Clculo de la Dinmica directa e inversa. Simulacin de la cinemtica y la dinmica de manipuladores robticos. Deteccin de colisiones entre manipuladores robticos y obstculos. Exportado de datos y grcas producto de la simulacin.

1.2. Instalando SIMUNROBOT v2.0


SIMUNROBOT v2.0 puede ser instalado en mltiples sistemas operativos como Windows, Linux o Mac. Las instrucciones de instalacin para cada sistema operativo se encuentran a continuacin:

1.2.1. Windows
El instalador de Windows viene en una carpeta comprimida llamada SIMUNROBOT v2.0.zip. Para instalarlo basta con descomprimir la carpeta en cualquier ubicacin, ingresar a la carpeta SIMUNROBOT v2.0.exe para empezar a usar el simulador.

bin

y ejecutar directamente

Captulo 2

La Interfaz
2.1. Descripcin general de la Interfaz
Una vez hemos instalado satisfactoriamente SIMUNROBOT v2.0 y abrimos el archivo ejecutable nos vamos a encontrar con la siguiente interfaz:

Mens rboles de Objetos

Barra de Herramientas

Resultados de Simulacin

Escena
Figura 2.1.1: Interfaz del programa

2.2. Elementos de la Interfaz


De la anterior gura podemos ver que se distinguen claramente cinco elementos principales en la interfaz:

2.2.1. La escena
La escena es el espacio donde irn contenidos todos los objetos que sern utilizados en el software la cual, ser descrita ms adelante.

2.2.2. Menus
En el software se tienen los siguientes mens:

2. La Interfaz

File: Contiene todas las opciones que tienen que ver con la escena como New Scene, Open Scene y Save Scene. Robots:
Robot. Aqu se encuentran todas las opciones referentes a las operaciones posibles a realizar con cualquier

Obstacles: En este men se pueden encontrar las opciones disponibles a realizar con los obstculos como Add
New Obstacle to the Scene.

Paths: Desde este men se pueden agregar nuevas trayectorias a la escena. Simulation: Desde este men se puede controlar la simulacin que se va a ejecutar o se est ejecutando. View: En este men se encuentran todas las opciones referentes a la visualizacin de elementos en la escena.
Desde este men se puede habilitar/deshabilitar la transparencia alfa de los objetos que posean transparencias, reiniciar la cmara, ver los marcos de referencia de los objetos, etc.

2.2.3. Barras de herramientas


En las barras de herramientas se encuentran los siguientes botones:

Agregar robot a la escena Agregar obstculo a la escena

Habilitar colisiones entre eslabones y obstculos Habilitar colisiones entre efectores finales y obstculos Deshabilitar colisiones

Guardar Escena Abrir Escena Nueva Escena

Mostrar/Esconder Rejilla Mostrar/Esconder marcos de ref. locales Mostrar/Esconder marco de ref. global

Empezar/Resumir Simulacin Pausar simulacin Detener simulacin


Figura 2.2.1: Barra de Herramientas

En el desarrollo del presente manual se irn explicando las funciones de cada una de las herramientas descritas en la anterior imagen, la cual, sirve slo de elemento informativo para que el usuario nal, al leer el manual, se haga una idea general del programa.

2.2.4. rboles
En la interfaz, existen tres clases de objetos, los robots, los obstculos y las trayectorias. Para organizar estos tres tipos de elementos tenemos para cada uno una lista en forma de rbol conteniendo tales objetos y sus propiedades:

Robots

Obstculos

Trayectorias

Propiedades de la trayectoria Propiedades del Obstculo Propiedades del Robot


Figura 2.2.2: rboles de Objetos

2.2. Elementos de la Interfaz

2.2.5. Resultados de Simulacin


En este espacio, indicado en la gura 2.1, una vez se ejecute una simulacin, irn las grcas resultantes del proceso de simulacin tales como valores de junta, velocidades, aceleraciones y torques de juntas. A su vez, por medio de esta misma ventana se podrn exportar los datos obtenidos a un archivo de texto separado por comas o en su defecto en un archivo de imagen o pdf. Las funcionalidades y el uso de la interfaz respectiva a los resultados de simulacin se explicar con detalle en el captulo 7.

Captulo 3

La Escena
3.1. Descripcin general
La escena es uno de los elementos principales de la interfaz:

Escena 3D

Figura 3.1.1: La escena

A travs de la escena se pueden visualizar los elementos que se desea sean objeto de interaccin tales como los robots, los obstculos y las trayectorias. Bsicamente la escena es un espacio 2D a travs del cual se visualizan objetos 3D, que, para el caso de este software, dichos objetos tridimensionales sern los robots, los obstculos y las trayectorias. En vista de que se pueden tener cualquier cantidad de elementos en la escena y a la vez se desea visualizarlos de diferentes maneras, es de vital importancia poder manejar la escena al antojo del usuario. A continuacin se presentan las caractersticas del software que permiten manejar la escena.

10

3.2. Manipulando la escena

3.2. Manipulando la escena


3.2.1. Moviendo la cmara
Como primera opcin bsica para manipular la escena se requiere poder alterar el punto de vista del usuario, es decir, si la escena es bsicamente un mundo virtual que el usuario ve desde un punto en dicho mundo o espacio, es necesario poder cambiar la ubicacin de ese punto desde donde el observador ve el espacio. Tal punto de visin o cmara con la que el usuario ve el espacio 3D y el sistema de referencia asociado al mismo vienen descritos en la siguiente grca:

Lo que el usuario ve en pantalla

Marco de referencia de la cmara

Figura 3.2.1: Marco de Referencia del Observador

Para modicar el punto de visin del observador existen tres operaciones: 1.

Giro hacia los lados

(Girar el espacio 3D alrededor del eje Z de la cmara): Para girar hacia los lados

mantenemos presionado el botn izquierdo del mouse y arrastramos hacia los lados. 2.

Giro hacia arriba y hacia abajo (Giro del espacio 3D alrededor del eje X de la cmara): Para realizar este
giro mantenemos presionado el botn izquierdo del mouse y arrastramos hacia arriba y hacia abajo.

3.

Movimiento de la cmara (atravs de los ejes X e Y de la cmara): Para mover la cmara mantenemos
presionado el botn derecho del mouse mientras lo movemos.

4.

Zoom (Movimiento del espacio 3D atravs del eje Z de la cmara): Para alejar o acercar la cmara basta con
girar la rueda del mouse sobre la escena. Hacia adelante para acercar y hacia atrs para alejar.

5.

Reiniciar la cmara: Para reiniciar la cmara a la posicin inicial que tena cuando se ejecut el programa,
basta con ir al men

View

Reset Camera .

3. La Escena

11

3.2.2. Elementos grcos


En la escena podemos activar/desactivar la visualizacin de ciertos elementos grcos:

Transparencia Alfa

Ejes locales de objetos

Rejilla

Lneas de Coordenadas Eje Global


Figura 3.2.2: Elementos Grcos de la Escena

1.

Transparencia Alfa:

Para habilitar/deshabilitar las transparencias en los objetos 3D que posean caras

transparentes basta con ir al men 2.

View

Alpha Blending . Global

Eje Global: Para mostrar/esconder el marco de referencia global basta con ir al men View
Axis
o ir a la opcin que se encuentra tambin en la barra de herramientas.

3.

Ejes Locales: Para mostrar/esconder los marcos de referencia locales de todos los objetos 3D en la escena
basta con ir al men herramientas.

View

Local Axes

o ir a la opcin que se encuentra tambin en la barra de

4.

Lneas de Coordenadas:
escena basta con ir al men

Para mostrar/esconder las lneas de coordenadas de todos los objetos 3D en la

View

Object Coordinates . View Grid


o ir a la opcin que se

5.

Rejilla:

Para mostrar/esconder la rejilla basta con ir al men

encuentra tambin en la barra de herramientas.

12

Captulo 4

Los Robots
Un robot, segn la teora de robtica, es un conjunto de una o ms cadenas cinemticas de eslabones acoplados por medio de juntas. Para el caso del software SIMUNROBOT v2.0 se utilizarn cadenas cinemticas abiertas (y tambin cerradas en nuevas versiones) para el cual cada eslabn puede tener un nico eslabon previo o eslabn padre mientras que cada eslabn puede tener cero o ms eslabones posteriores o eslabones hijos.

4.1. Estructura de un Robot


Como se mencion cada robot posee un conjunto de eslabones que pueden formar una o ms cadenas cinemticas, de tal modo que lo que se va a denir como robot es simplemente la cadena cinemtica. Para describir las caractersticas de los eslabones que componen las cadenas cinemticas del robot vamos a usar la convencin Denavit-Hartenberg cuya teora se puede encontrar en el documento de trabajo de tesis adjunto a este software. Tenemos entonces que para denir un robot usaremos la tabla de parmetros que resulta de aplicar la convencin Denavit-Hartenberg cuyas reglas se presentan a continuacin a modo informativo: Cada eslabn

se encuentra denido entre dos marcos de referencia

i1

i. i,
viene

El eje de giro (juntas de revolucin) o eje de desplazamiento (juntas prismticas) para un eslabn denido por el eje Cada eslabn rotacionales) La distancia El ngulo

del marco de referencia

i 1,

es decir,

zi1 .

mente el marco de referencia

i tiene jo un marco de referencia i que se va a mover de forma rgida con el eslabn. Adicionali debe estar orientado de tal forma que su eje zi sea el eje de rotacin (juntas o traslacin (juntas prismticas) para el siguiente eslabn i + 1.
es la distancia que hay entre los ejes

ai

zi1
y

zi

medida a lo largo del eje

xi xi .

es el ngulo que hay entre los ejes

zi1

zi

medido a partir de un plano perpendicular al eje y

La distancia El ngulo

di

es la distancia que hay entre los ejes

xi1
y

xi

medida a lo largo del eje

zi1

i
+ i

es el ngulo que hay entre los ejes

xi1

xi i

medido a partir de un plano perpendicular al eje

zi1 .
El ngulo es un ngulo que se ha de agregar al ngulo para poder obtener ciertas orientaciones deseadas.

Adicionalmente debemos tener en cuenta que cada eslabn es en ltima instancia un objeto 3D que es el que va a ser visualizado en la escena junto con el resto de eslabones.

4.2. Creando Robots


Para crear un robot basta con denir correctamente su tabla de parmetros as como los modelos 3D de cada uno de sus eslabones. A continuacin se describir como, a partir del software, se crea un robot a partir de su tabla de parmetros y cmo con ayuda de un software CAD se crea para cada uno de sus eslabones el modelo 3D.

4. Los Robots

13

4.2.1. La tabla de parmetros


Para empezar a crear un robot basta con ir al men una interfaz como la siguiente:

Robots

Tools

Robot Creator,

a lo cual se abrir

Figura 4.2.1: Creador de Robots

Como se puede apreciar, la tabla de parmetros arranca con un eslabn cero o eslabn dummy. Tal eslabn tendr dos propsitos: 1. El primer propsito de tener un eslabn cero consiste en proveer un eslabn de base o eslabn que est anclado al suelo. En los robots reales tal eslabn permanece inmvil y es la base o soporte para el motor del eslabn nmero uno. 2. El segundo propsito consiste en denir el eje de giro/desplazamiento del primer eslabn, por ejemplo, si asignamos valores de

a dicho eslabn tendremos un marco de referencia cuyo eje de giro para el eslabn

nmero uno es diferente al eje z del marco de referencia global. Para manipular la cantidad de eslabones que tendremos en la tabla de parmetros tenemos tres opciones: 1.

Agregar eslabn: Para agregar un eslabn basta con hacer click derecho en cualquier espacio en blanco en la
tabla de parmetros y en el men desplegable seleccionar

Add Link at bottom .

Un eslabn ser aadido

al nal de la tabla de parmetros y su eslabn padre ser el ltimo eslabn de la lista. 2.

Borrar eslabn: Para borrar un eslabn basta con hacer click derecho en cualquier espacio en blanco en la
tabla de parmetros y en el men desplegable seleccionar

Delete this Link .

El eslabn seleccionado ser

eliminado. Si el eslabn seleccionado tena eslabones hijos, el nuevo eslabn padre para los eslabones hijos ser el eslabn padre del eslabn recin borrado. Adicionalmente cabe aclarar que el nico eslabn que no se puede borrar es el eslabn cero. 3.

Limpiar Tabla: Para limpiar por completo la tabla de parmetros basta con hacer click derecho en cualquier
espacio en blanco en la tabla de parmetros y en el men desplegable seleccionar de parmetros seleccionada ser borrada y reinicializada con un eslabn cero.

Clear Table .

La tabla

Una vez hemos agregado los eslabones necesarios es necesario editar la informacin referente a los mismos. 1.

Nombre:

Para cambiar el nombre del eslabn seleccionado vamos a la respectiva casilla y presionamos la

tecla F2 para comenzar la edicin. 2.

Padre: Para cambiar el eslabn padre del eslabn seleccionado vamos a la respectiva casilla y presionamos la
tecla F2. Se abrir una lista desplegable con los posibles eslabones padres para el eslabn. Slo los eslabones denidos previos a un eslabn podrn ser padres de ese eslabn.

3.

Tipo de Junta:
de

Para cambiar el tipo de junta del eslabn seleccionado vamos a la respectiva casilla y

presionamos la tecla F2. Se abrir una lista desplegable con los dos posibles tipos de juntas manejadas por el software, rotacional o prismtica ( Revolute  o  Prismatic ). Si cambiamos el tipo de junta actual, los valores

qMin

qMax

sern puestos en cero y sus unidades cambiarn de acuerdo a la seleccin, grados para

junta rotacional y metros para junta prismtica.

14

4.2. Creando Robots


4.

Valores numricos: Para cambiar cualquier valor numrico segn las unidades (que estn en metros, kilogramos y grados) basta con oprimir F2 para empezar la edicin.

Una vez hemos terminado de crear la tabla de parmetros para el robot podemos dar click en el botn

Save

As,

para guardar la tabla de parmetros del robot en un archivo XML. Como nota adicional cabe agregar que, si

asignamos un valor de

a una junta de revolucin, al momento de abrir el robot en la escena, dicho valor de theta

ser el valor que el eslabn tiene por defecto; de la misma forma aplica para de salida en XML generado por el software:

en un eslabn con junta prismtica.

A continuacin un ejemplo de los manipuladores Scara y Kuka con sus respectivas tablas de parmetros y el archivo

Ejemplo 1.

Tabla de parmetros - Scara

Cuadro 4.2.1: Parmetros DH para Robot Scara

Archivo 4.1 : Archivo XML de manipulador SCARA


<Robot> <Name>EPSON Scara - EH11</Name> <Links> <Link> <Name>Eslabon0</Name> </Link> <Link> <Name>Eslabon1</Name> <Id>1</Id> <ParentId>0</ParentId> <Joint>Rot</Joint> <qMin>-130</qMin> <qMax>130</qMax> <a>0.5</a> <alpha>0</alpha> <d>0.418</d> <theta>15</theta> <m>4</m> </Link> <Link> <Name>Eslabon2</Name> <Id>2</Id> <ParentId>1</ParentId> <Joint>Rot</Joint> <qMin>-130</qMin> <qMax>130</qMax> <a>0.35</a> <alpha>180</alpha> <d>-0.046</d> <theta>-15</theta> </Link> <Link> <Name>Eslabon3</Name> <Id>3</Id> <ParentId>2</ParentId> <Joint>Pri</Joint> <qMin>0</qMin> <qMax>0.25</qMax> <a>0</a> <alpha>0</alpha> <d>0</d> <theta>0</theta> </Link> </Links> </Robot>

4. Los Robots Ejemplo 2.


Tabla de parmetros - Kuka

15

Cuadro 4.2.2: Parmetros DH para Robot Kuka

Archivo 4.2 : Archivo XML de manipulador KUKA


<Robot> <Name>KukaKR16</Name> <Links> <Link> <Name>Eslabon0</Name> </Link> <Link> <Name>Eslabon1</Name> <Id>1</Id> <ParentId>0</ParentId> <Joint>Rot</Joint> <a>0.26</a> <alpha>90</alpha> <d>0.68</d> <theta>0</theta> <qMin>-130</qMin> <qMax>130</qMax> </Link> <Link> <Name>Eslabon2</Name> <Id>2</Id> <ParentId>1</ParentId> <Joint>Rot</Joint> <a>0.68</a> <alpha>0</alpha> <d>-0.02</d> <theta>90</theta> <qMin>-130</qMin> <qMax>130</qMax> </Link> <Link> <Name>Eslabon3</Name> <Id>3</Id> <ParentId>2</ParentId> <Joint>Rot</Joint> <a>-0.035</a> <alpha>90</alpha> <d>0</d> <theta plus="90">-90</theta> <qMin>-130</qMin> <qMax>130</qMax> </Link> <Link> <Name>Eslabon4</Name> <Id>4</Id> <ParentId>3</ParentId> <Joint>Rot</Joint> <a>0</a> <alpha>90</alpha> <d>0.671</d> <theta plus="180">0</theta> <qMin>-180</qMin> <qMax>180</qMax> </Link> <Link> <Name>Eslabon5</Name> <Id>5</Id> <ParentId>4</ParentId> <Joint>Rot</Joint> <a>0.158</a> <alpha>-90</alpha> <d>0</d> <theta plus="90">0</theta> <qMin>-150</qMin> <qMax>150</qMax> </Link> </Links> </Robot>

16

4.2. Creando Robots

4.2.2. El modelo 3D de los eslabones


Naturalmente como la idea es simular el comportamiento de un robot, no basta slo con sus caractersticas matemticas sino tambin sus caracteristicas fsicas. Dentro de las caractersticas fsicas de un eslabn tenemos el modelo 3D, la masa (que es denida en la tabla de parmetros), el volumen, el tensor de inercia y el centro de masa. Sin embargo, en en SIMUNROBOT v2.0 se ha includo una caracterstica que permite calcular para cada eslabn el volumen, el centro de masa y el tensor de inercia de dicho eslabn respecto de su propio centro de masa, que a su vez est denido respecto de su propio marco de referencia. Para asignar de forma apropiada un modelo 3D a un eslabn debemos simplemente disear tal modelo 3D en el software CAD de nuestra preferencia teniendo en cuenta ciertas condiciones: El archivo del eslabn debe estar en formato OBJ. El archivo OBJ de cada eslabn debe contener slo la informacin de los vrtices y de las caras entre vrtices, es decir, debe tener slo etiquetas

'v'

(vertex) y

(face). Por ningn motivo debe exportarse el modelo

3D a un archivo OBJ que contenga las caras denidas entre normales de vrtices. En futuras versiones se planea implementar la opcin que permita leer el archivo OBJ usando tambin caras denidas por normales de vrtices. El eje global del archivo OBJ debe coincidir con el marco de referencia jo del eslabn. Lo anterior quiere decir que, si el eslabn eslabn es el marco

est denido entre los marcos de referencia

i,

el eslabn debe ser diseado con base en el marco

i 1 e i y el i y no en

marco de referencia jo al el marco

i 1.

A continuacin se presenta un ejemplo de modelo 3D para un eslabn del manipulador planar:

Ejemplo 3.

Modelo 3D de eslabones de manipulador planar

Tenemos a continuacin el diagrama del manipulador planar:

Figura 4.2.2: Robot Planar de 2DOF

Teniendo en cuenta los marcos de referencia 1 y 2 que son los marcos de referencia jos a los eslabones 1 y 2 respectivamente, y que adems necesitamos un eslabn 0 o base podemos entonces realizar el modelo 3D de los eslabones 0 y 1 (ya que el 2 es igual al del 1) de la siguiente forma:

Figura 4.2.3: Modelo 3D Eslabones 0 y 1 para Robot Planar

Como vemos, cada eslabn debe disearse de forma tal que el marco de referencia global del modelo 3D concuerde con el marco de referencia jo del eslabn y a su vez que el eje

sea el eje de rotacin y/o traslacin para el siguiente

4. Los Robots

17

eslabn. Para ver ms ejemplos se puede ingresar a la carpeta robots, abrir un manipulador desde el software, ver la orientacin y ubicacin de sus marcos de referencia y luego abrir el software CAD de preferencia y observar el diseo 3D del eslabn. Adicionalmente se debe tener en cuenta que el nombre de archivo del eslabn debe coincidir con el nombre del eslabn, es decir, si en el archivo XML se tiene que un eslabn se llama por ejemplo, del archivo XML deber existir un archivo llamado

Link0 ,

en la misma carpeta

Link0.obj

que contenga el modelo 3D del respectivo eslabn.

4.3. Insercin y manipulacin de Robots en la escena


Para insertar un manipulador robtico que hemos previamente creado basta con ir al men

Robots

Add

Robot from a XML le

o hacer click derecho en el rbol de obstculos y seleccionar dicha opcin o tambin

dar click en esa opcin en la barra de herramientas. A continuacin se abrir un cuadro de dilogo desde donde podremos seleccionar un archivo del tipo XML que contenta la tabla de parmetros del robot. Adicionalmente en la misma carpeta debern estar los archivos OBJ de los eslabones del robot. Sin embargo, en caso de no encontrar el archivo OBJ de algn eslabn, para el software ser imposible calcular el centro de masa y el tensor de inercia de ese eslabn y de igual forma ser imposible calcular el torque en los diferentes eslabones. Para un manipulador robtico podemos manipular tanto su orientacin y ubicacin como los valores de las juntas. Para modicar la ubicacin y/u orientacin del manipulador vamos a ir a sus propiedades y buscar la primera propiedad titulada Loc/Rot. Una vez expandimos esa propiedad nos encontramos con los valores de traslacin en , , o de orientacin en , , . Para modicar dichos valores basta con dar doble click o presionar F2 a

lo que se abrir un slider que nos permitir cambiarlos:

Robot

Slider

Figura 4.3.1: Modicando Ubicacin y Orientacin de Robot

Adicionalmente podemos modicar los valores de las juntas del manipulador robtico abriendo las propiedades de la junta y dando doble click o presionando F2 en el primer elemento, que, para una junta rotacional ser una junta prismtica ser

y para

d:

18

4.3. Insercin y manipulacin de Robots en la escena


Eslabn seleccionado

Slider

Figura 4.3.2: Modicando valor de Junta de Robot

Adicional a la variacin de la ubicacin, orientacin y valores de juntas del manipulador, podemos modicar el nombre del robot dando doble click o presionando F2 en el nombre del robot. Tambin podemos borrar o reiniciar un robot a su posicin inicial, para lo cual podemos hacer click derecho en un robot en el rbol de robots y seleccionar

Delete Robot

Reset Robot

segn sea la opcin que deseemos.

Al reiniciar un robot su traslacin y orientacin sern ajustadas a cero. Por ltimo podemos parmetros no se vern afectados en el manipulador que ya fu agregado en la escena, sin ever la tabla de parmetros del robot haciendo click derecho en el robot o cualquier elemento del mismo y seleccionando

View Robot's DH Table ,

con lo cual se abrir una ventana con la tabla de parmetros del robot. Es importante

aclarar que los cambios hechos en esta tabla de parmetros no se vern afectados en el manipulador que ya fu agregado en la escena, sin embargo se puede modicar dicha tabla y guardarla como otro robot.

19

Captulo 5

Los Obstculos
5.1. Qu es un Obstculo?
Un obstculo es un elemento 3D que se ha de agregar a la escena con el n de detectar posibles colisiones entre tal obstculo y los robots en la escena, o, visto de otra forma, es un cuerpo cuyo contacto con un manipulador robtico desea ser evitado.

5.2. Creando un Obstculo


Para crear un obstculo cualquiera debemos usar nuestro programa CAD de preferencia, bien sea 3DS Max, Inventor, Blender, etc. De nuevo y al igual que los eslabones de los robots, el formato de archivo soportado para los modelos 3D de los obstculos es el formato OBJ usando slo etiquetas

'v'

(vertex) y

(face). A continuacin un ejemplo

de un archivo OBJ en el formato soportado por el software, en este caso, un cubo:

Archivo 5.1 : Ejemplo de archivo OBJ soportado


# 3ds Max Wavefront OBJ Exporter v0.97b - (c)2007 guruware # File Created: 15.07.2011 13:16:53 mtllib Eslabon0.mtl # # object Box001 # v -0.100000 -0.100000 -0.100000 v -0.100000 0.100000 -0.100000 v 0.100000 0.100000 -0.100000 v 0.100000 -0.100000 -0.100000 v -0.100000 -0.100000 0.100000 v 0.100000 -0.100000 0.100000 v 0.100000 0.100000 0.100000 v -0.100000 0.100000 0.100000 # 8 vertices g Box001 usemtl wire_135006006 f 1 2 3 f 3 4 1 f 5 6 7 f 7 8 5 f 1 4 6 f 6 5 1 f 4 3 7 f 7 6 4 f 3 2 8 f 8 7 3 f 2 1 5 f 5 8 2 # 12 faces

Figura 5.2.1: Ejemplo de archivo OBJ

Cabe agregar que adicionalmente el software soporta el uso de materiales para los archivos OBJ, sin embargo estos materiales tan slo pueden ser denidos por valores numricos de colores. El software por el momento no soporta texturas cargadas de archivos de imgenes aunque tal funcionalidad ser implementada en el futuro. Para ms informacin puede buscar en la red el formato de archivo OBJ y el formato de los archivos de materiales MTL.

20

5.3. Insercin y manipulacin de Obstculos en la escena

5.3. Insercin y manipulacin de Obstculos en la escena


Para insertar un obstculo a la escena basta con ir al men

Obstacles

Add Obstacle from OBJ le

hacer click derecho en el rbol de obstculos y seleccionar dicha opcin o tambin dar click en esa opcin en la barra de herramientas. A continuacin se abrir un cuadro de dilogo desde donde podremos seleccionar un archivo del tipo OBJ. En la carpeta

obstacles

se encuentran algunos archivos OBJ de ejemplo. Una vez hemos agregado un

obstculo se agregar a la escena en la posicin

(0, 0, 0)

el objeto 3D indicado y su respectivo elemento en el rbol:

Obstculo Obstculo

Propiedades del Obstculo

Figura 5.3.1: Obstculo en la Escena

Para modicar la ubicacin y/o orientacin del objeto 3D seleccionamos dentro del rbol el valor que deseamos modicar y damos doble click o presionamos F2. Se abrir un pequeo slider que nos permitir cambiar el valor deseado de traslacin en , , o de orientacin en , , :

Obstculo

Obstculo

Slider

Figura 5.3.2: Modicando Ubicacin y Orientacin de Obstculo

5. Los Obstculos

21

Adicionalmente podemos borrar o reiniciar un obstculo a su posicin inicial, para lo cual podemos hacer click derecho en un obstculo en el rbol de obstculos y seleccionar

Delete Obstacle

Reset Obstacle values

segn sea la opcin que deseemos. Al reiniciar un obstculo su traslacin y orientacin sern ajustadas a cero.

Orden de Rotaciones: Como nota adicional cabe resaltar que el orden de las rotaciones realizadas por el software para denir la orientacin del objeto es Z, X, Y , alrededor de su propio marco de referencia. Para ms informacin
adicional acerca de la inuencia del orden de las rotaciones en los cuerpos rgidos puede consultar la documentacin anexa o en http://es.wikipedia.org/wiki/Rotacin.

5.4. Colisiones
La principal motivacin de incluir en el software la posibilidad de agregar obstculos a la escena son las colisiones. En el mundo real, los manipuladores robticos no pueden estar en contacto o colisin con ningn otro objeto de modo que, si se requiere realizar una simulacin de una tarea desempeada por un robot en la que se involucran otros cuerpos adems del robot, es de vital importancia detectar las colisiones entre tales cuerpos y el robot a n de evitar posibles daos en el manipulador. Para congurar las colisiones posibles entre los diferentes obstculos y los manipuladores presentes en la escena tenemos tres opciones:

Colisin entre todos los eslabones y todos los obstculos:


barra de herramientas o ir al men presentes en la escena:

Para activar esta opcin podemos ir a la

Robots

Collisions

All Links vs. All Obstacles.

Las posi-

bles colisiones de los obstculos sern vericadas comparando con todos los eslabones de los manipuladores

Verificando colisin entre todos los obstculos y todos los eslabones

Obstculo

Figura 5.4.1: Colisin entre todos los eslabones y todos los obstculos

Colisin entre los efectores nales y todos los obstculos: Para activar esta opcin podemos ir a la
barra de herramientas o ir al men uladores presentes en la escena:

Robots

Collisions

End Eector vs. All Obstacles.

Las

posibles colisiones de los obstculos sern vericadas comparando slo con los efectores nales de los manip-

22

5.4. Colisiones
Slo verificando colisin entre obstculo y efectores finales

Obstculo

Figura 5.4.2: Colisin entre slo los efectores nales y todos los obstculos

Colisin deshabilitada: Para activar esta opcin podemos ir a la barra de herramientas o ir al men Robots
Collisions No collisions.
No se vericar ninguna clase de colisn:

No se verifican colisiones

Obstculo

Figura 5.4.3: Colisiones deshabilitadas

Como nota nal es necesario mencionar que la librera usada para la deteccin de colisiones

23

Captulo 6

Las Trayectorias
6.1. Qu es una trayectoria
En SIMUNROBOT v2.0 una trayectoria (o path) es un conjunto de puntos

x, y, z

que van a ser seguidos por un

robot. Sin embargo en el software las trayectorias que se agreguen a la escena tendrn primero que ser agregadas a la escena y luego conguradas de tal forma que se indique de forma explcita qu robot va a seguir qu trayectoria. En este captulo tan slo veremos cmo crear y agregar trayectorias a la escena. En el captulo 7, respectivo a la simulacin, veremos como hacer que un robot siga una trayectoria agregada a la escena.

6.2. Creando trayectorias


Para crear una trayectoria tenemos dos alternativas: 1. Crear en algn software externo el conjunto de puntos con sus respectivas coordenadas

x, y, z

y guardar dichas

coordenadas en un archivo .txt. El formato de lista de puntos en archivo TXT soportado por el software es:

Archivo 6.1 : Ejemplo de archivo de puntos TXT


x0 y0 z0 x1 y1 z1 ... xn yn zn

Como aclaracin importante, los diferentes puntos deben estar separados por retornos de lnea o \n y las coordenadas separadas bien sea por un espacio en blanco o un espacio tabular, \t, tal como se muestra en el ejemplo anterior.

2. Por medio del software crear un conjunto de una recta en el espacio.

n puntos entre un punto x, y, z y otro que, naturalmente, formarn

En la carpeta

paths

se encuentran ejemplos de trayectorias diferentes.

6.3. Insertando y modicando trayectorias en la escena


Para insertar una trayectoria en la escena debemos ir al men abrir la siguiente ventana:

Paths

Add Path

o hacer click derecho en el

rbol de trayectorias y seleccionar esta misma opcin desde el men desplegable. Una vez seleccionada la opcin se

24

6.3. Insertando y modicando trayectorias en la escena

Figura 6.3.1: Ventana para agregar Trayectoria

Para agregar una trayectoria a partir de un archivo .TXT debemos abrir el cuadro de dilogo junto a la casilla indicada para almacenar el nombre de archivo. Una vez hallamos seleccionado el archivo correcto damos click en

OK

con lo que habremos agregado una trayectoria a la escena.

Adicionalmente podemos crear una trayectoria a partir de dos puntos en el espacio. Para ello abrimos la pestaa  From

two points 

de la ventana para agregar una trayectoria. Para los dos puntos de la trayectoria, el punto

inicial y el punto nal los podemos denir manualmente con las coordenadas de los eslabones de lo robots en la escena mediante los botones

x, y, z

de tales puntos u obtenerlas

Get from Link .

Cuando presionamos el botn

respectivo a cada punto, en los valores de las coordenadas se ajustar el valor al eslabn seleccionado; en caso de seleccionar un robot se tomar el valor de

x, y, z del marco de referencia jo x, y, z del marco de referencia jo al

efector nal y en caso de no tener ningn robot/eslabn seleccionado no habr ningn cambio:

Eslabn seleccionado

Al presionar "Get From Link" se obtienen las coordenadas del eslabn seleccionado, en este caso el eslabn 4 del robot Kuka.
Figura 6.3.2: Creacin de trayectoria recta

6. Las Trayectorias
of Points .
lo siguiente:

25

Adicionalmente debemos especicar el nmero de puntos que conformarn la lnea recta en el recuadro  Number Una vez hemos agregado una trayectoria a la escena, en este caso, una letra C, tendremos algo como

Visualizacin de trayectoria en la escena

Trayectoria agregada

Figura 6.3.3: Trayectoria en la escena

Aparte de agregar trayectorias podemos eliminarlas dando click derecho sobre una trayectoria en el rbol de trayectorias y seleccionando

Delete Path

. Adicionalmente podemos mostrar/esconder una trayectoria abriendo sus

propiedades y habilitando/deshabilitando la casilla Visible tal como se muestra en la imagen anterior.

26

Captulo 7

Simulacin
7.1. Introduccin
La simulacin en el software SIMUNROBOT v2.0 es el proceso por el cual se observa el comportamiento de un manipulador robtico al seguir una trayectoria en el tiempo. Para poder ejecutar una simulacin es necesario que al menos un robot est siguiendo una trayectoria. Adicional a esto, la simulacin consiste tambin en obtener los datos de tal comportamiento del manipulador en el tiempo de forma tal que puedan ser observados y analizados para tomar acciones correctivas o para simplemente validarlos. En las siguientes secciones se describe como hacer que un manipulador siga una trayectoria y cmo exportar los datos numricos de la simulacin as como un ejemplo prctico.

7.2. Siguiendo una trayectoria


Para hacer que un manipulador robtico siga una trayectoria es necesario calcular las ecuaciones que denen la cinemtica inversa del robot. SIMUNROBOT v2.0 incluye un algoritmo nuevo que permite el clculo automtico de la cinemtica inversa, es decir, de la conguracin articular del manipulador tal que llegue a un punto en el espacio o que siga un conjunto de puntos (trayectoria). Sin embargo el algoritmo an est en fase de desarrollo porque a pesar de que cualquier manipulador sigue las trayectorias de forma apropiada y con errores desde 1E-09 m. hasta 1E-12 m., an no puede recibir orientaciones en el efector nal, tan slo posiciones. Para hacer que un manipulador robtico siga una o ms trayectorias es necesario entender la metodologa usada por el software que consiste en los siguientes pasos:

1. Se dene la primera trayectoria a seguir por el manipulador a partir de la conguracin articular presente al momento de denir explcitamente que el manipulador seguir tal trayectoria. Tal conguracin articular ser la conguracin inicial del robot al iniciar la simulacin.

2. El software har una trayectoria de aproximacin desde la conguracin articular inicial hasta el punto inicial de la primera trayectoria.

(q1ini , q2ini , qnini )

3. Para cualquier trayectoria siguiente de la trayectoria

i,

la trayectoria de aproximacin ser la trayectoria entre el punto nal

i1

y el punto inicial de la trayectoria

i.

Una vez se han creado todas las trayectorias de aproximacin se crea una trayectoria total que no es ms que una concatenacin de todas las trayectorias con sus respectivas trayectorias de aproximacin. Una vez se ha generado la trayectoria total compuesta por las trayectorias de aproximacin y sus respectivas trayectorias a seguir, se calcula la cinemtica inversa para dicha trayectoria total. Para agregar una trayectoria a ser seguida por un manipulador basta con hacer click derecho en dicho manipulador en el rbol de robots y seleccionar la opcin siguiente interfaz:

Add a Path to be followed by Robot

con lo que se abrir la

7. Simulacin

27

Figura 7.2.1: Ventana para seguir trayectoria

En el recuadro 

Path to Follow

se debe especicar la trayectoria que deber seguir el robot. Cabe agregar que

adicionalmente se podrn agregar ms trayectorias a ser seguidas. En el recuadro 

Link Following Path

se

especica el eslabn del manipulador que va a seguir la trayectoria; tal diferenciacin se hace con el objetivo de dar al usuario la libertad de que sea cualquier eslabon el que siga una trayectoria y no slo el efector nal. Este concepto puede ser aplicado a manos robticas para las que usualmente se desea que la mueca siga una trayectoria y luego los dedos sigan otra. A continuacin tenemos el recuadro  la que el robot va a recorrer la trayectoria de aproximacin y el recuadro 

Approach Speed que corresponde a la velocidad con Speed que corresponde a la velocidad

con la que el robot va a recorrer la trayectoria en s. Se hace esta diferenciacin de dos velocidades debido a que en el mundo real usualmente se desea llegar al punto inicial de la trayectoria a recorrer de forma rpida y luego recorrer la trayectoria deseada de forma lenta y precisa. Una vez hemos agregado la primera trayectoria que va a recorrer el robot tendremos algo de la siguiente forma:

Robot Recin agregada la trayectoria a seguir, las condiciones iniciales son en s la configuracin articular del robot al momento de agregar dicha trayectoria

Trayectoria a ser seguida por el robot


Figura 7.2.2: Trayectoria en la escena Como se puede apreciar y tal como se mencion, la condicin articular inicial con la que el robot empezar primero con la trayectoria de aproximacin y luego con la trayectoria, ser la conguracin articular presente en el robot al momento de indicarle que siga la primer trayectoria. Si despus de agregada una trayectoria se modican los

28

7.2. Siguiendo una trayectoria

valores en las juntas del robot, se puede volver al estado de conguracin inicial para la primera trayectoria a seguir haciendo click derecho en el robot y seleccionando la opcin

Set Initial Simulation Conguration

que regresar al robot a su conguracin articular inicial para la trayectoria a seguir. Podemos tambin apreciar en la imagen anterior que al agregar una trayectoria se crea una nueva propiedad en el robot llamada 

Paths

en la cual se encuentran inmersas en el orden en que se agregaron las trayectorias que

el robot va a seguir. Las trayectorias que va a seguir el robot se van a llamar generalmente como  manipulador.

Robot Path

para hacer la diferenciacin entre las trayectorias presentes en la escena y las trayectorias que fuese a seguir un Si agregamos otra trayectoria a seguir por el manipulador, en este caso presentado en la imagen, la misma letra C pero en

z=0

tendramos el siguiente esquema de recorrido:

A
Trayectoria C3 - Top

B C
Trayectoria C3 - Bottom
Figura 7.2.3: Ejemplo de seguimiento de dos trayectorias Bsicamente tendramos que el recorrido realizado por el efector nal del robot vendra descrito de la siguiente forma: 1. Se mueve el efector nal del punto aproximacin de la trayectoria 

2.

C3 - Top. Se recorre la trayectoria  C3 - Top con una velocidad de 0.01 [m/s] cuyo punto de inicio y punto nal son el
punto

al

con una velocidad de

0.1 [m/s],

que corresponde a la trayectoria de

B. B
al

3. Se mueve el efector nal del punto aproximacin de la trayectoria 

4.

C3 - Bottom. Se recorre la trayectoria  C3 - Bottom con una velocidad de 0.01 [m/s] cuyo punto de inicio y punto nal
son el punto

con una velocidad de

0.1 [m/s],

que corresponde a la trayectoria de

C.

En la gura podemos observar que para la primera trayectoria,  articular inicial mientras que para la segunda trayectoria, 

C3 - Top, tenemos denida una conguracin C3 - Bottom, el software nos dice que su condicin

inicial est denida por el punto nal de la anterior trayectoria, tal y como se haba mencionado. Este diseo del seguimiento de trayectorias obedece a un comportamiento que usualmente se ve en el mundo real, ya que cuando se est trabajando con manipuladores robticos se deben tener trayectorias continuas, es decir, se debe siempre ir de un punto a otro.

7. Simulacin

29

Como ltimo aspecto a tener en cuenta en las trayectorias seguidas por el robot es la posibilidad de eliminar dichas trayectorias. Para eliminar una trayectoria de robot basta con hacer click derecho sobre una trayectoria de robot que se encuentra dentro de la propiedad 

Paths

del robot y seleccionar la opcin

Delete this Robot Path .

Adicionalmente, es importante resaltar que si eliminamos una trayectoria de la escena y algn robot est siguiendo dicha trayectoria, la trayectoria de robot o Robot Path dependiente de la trayectoria de la escena, ser eliminada tambin.

7.3. Ejecutando una simulacin


Una vez hemos denido las trayectorias que el robot va a seguir partiendo de una conguracin articular inicial, el siguiente paso consiste en ejecutar la simulacin. Para ejecutar la simulacin basta con ir al men

Simulation

Start Simulation

o hacer click en el mismo botn presente en la barra de herramientas. La simulacin a

ejecutarse se compone de dos pasos:

1.

Clculo de la cinemtica y la dimica del robot: En este paso se calcula la cinemtica y la dinmica
inversa as como las respuestas dinmicas de los motores de las juntas. Es importante resaltar que este clculo slo se hace una vez para una simulacin por cuestiones de eciencia computacional y amabilidad con el usuario. Sin embargo, si se altera la posicin y/u orientacin del robot y se ejecuta la simulacin de nuevo, la cinemtica y la dinmica debern ser computadas de nuevo debido a dicho cambio de valores del robot.

2.

Simulacin en tiempo real: Una vez calculada toda la cinemtica y la dinmica necesaria para simular el
recorrido en el tiempo a travs de la trayectoria del robot, se procede a observar el comportamiento del robot en tiempo real de tal forma que la distancia recorrida por el manipulador por unidad de tiempo corresponda a la velocidad que debe llevar el manipulador.

Es importante notar tambin que la simulacin puede ser detenida en cualquier momento, bien detener el cmputo de la cinemtica inversa o detener la ejecucin en tiempo real. Para detener la simulacin basta con ir al men

Simulation

Stop Simulation

o hacer click en el mismo botn presente en la barra de herramientas.

Tambin dentro de la interfaz tenemos la opcin de pausar la simulacin. Slo se puede pausar la ejecucin en tiempo real de modo que mientras se calcula la cinemtica inversa tan slo se puede detener el proceso. Para pausar la ejecucin en tiempo real basta con ir al men simulacin pausada podemos ir al men punto donde qued. Como nota nal cabe aclarar que mientras haya una simulacin en proceso no se podrn agregar elementos a la escena tales como robots, obstculos y/o rutas sino slo hasta que la simulacin termine o sea detenida.

Simulation Pause Simulation . Si queremos continuar Simulation Resume Simulation y continuar la simulacin en

la el

7.4. Simulacin con mltiples robots


Para realizar una simulacin con mltiples robots realizando diferentes tareas (seguimiento de trayectorias) basta con agregar los robots que se deseen y denir las diferentes trayectorias que cada uno va a seguir teniendo en cuenta cuidadosamente los tiempos de ejecucin de cada trayectoria. Esta caracterstica permite una mayor exibilidad en la simulacin de procesos de automatizacin donde generalmente se involucran ms de un robot.

7.5. Exportando los datos de la simulacin


Una vez el software calcula la cinemtica inversa los resultados de la simulacin estn disponibles para ser exportados bien sea a un archivo CSV o una imagen. Tales resultados se presentan en la ventana designada para tal efecto descrita en el captulo 2 (La interfaz). A continuacin se presenta un ejemplo de datos obtenidos para la simulacin con las dos trayectorias en forma de C de la seccin 7.2:

30

7.5. Exportando los datos de la simulacin

Robot para ver datos Juntas del Robot Tipo de grfica a visualizar Grfica seleccionada

Figura 7.5.1: Ventana de resultados de simulacin

Para exportar los resultados obtenidos tenemos dos opciones como se mencion: 1.

Archivo de texto CSV:


seleccionamos la opcin Microsoft Excel, MATLAB

Para exportar los datos de una junta en particular,

q(t) q (t) , dq(t) , d dt2 , (t), dt

habi-

endo seleccionado el eslabn de inters asociado a dicha junta, damos click derecho sobre la grca activa y

Export Joint Data .

Los datos exportados en el archivo pueden ser abiertos en

o en cualquier editor de texto.

2.

Imagen: Para exportar los datos de la grca seleccionada para una junta en particular, bien sea q (t)
d q(t) dt2 (t), damos click derecho sobre la grca activa y seleccionamos la opcin La grca se puede exportar a uno de los siguientes formatos:

a ) Vectorial: PDF, SVG, PS b ) Mapa de Bits: BMP, JPG, PNG, TIF, etc.
2

dq(t) dt

Export This Graph .

31

Apndices
Diagrama de Clases
A continuacin se presenta un diagrama general de las clases implementadas en el cdigo fuente del software:

MainWindow
Contiene los elementos de la ventana principal

QDynPath
Implementa el objeto que representa una trayectoria en la escena.

QDynScene
Contiene todos los mtodos de la escena 3D Almacena en un QList los robots. Almacena en un QList los obstculos. Almacena en un QList las trayectorias

QDynObstacle
Contiene todos los mtodos de los robots Almacena la ubicacin y orientacin del obstculo Almacena la matriz de transformacin de openGL

QDynRobotPath
Implementa el objeto que representa un "Robot Path" o trayectoria (QDynPath) que va a ser seguida por un robot.

QDynRobot
Contiene todos los mtodos de un robot Almacena en un QList los eslabones (QDynLink). Almacena en un QList los "Robot Path" Almacena en varios QList los resultados de simul.

QDynMesh
Es la clase para cualquier objeto 3D Almacena los vertices, caras y materiales del objeto

QDynRobotThread
Esta clase permite ejecutar los procesos realizados por un robot tales como el clculo de cinemtica inversa y la ejecucin en tiempo real por medio de un hilo (QThread) para evitar el bloqueo de la aplicacin.

QDynLink
Contiene todos los mtodos de un eslabn Almacena las matrices y vectores del eslabn

QDynDialogPath
Esta clase implementa la el cuadro de dilogo para agregar una ruta a la escena.

QDynMath
Contiene todos las operaciones matemticas usadas. Las operaciones matemticas estn como mtodos estticos. Contiene operaciones entre matrices (QDynMatrix)

QDynDialogRobotPath
Esta clase implementa la el cuadro de dilogo para hacer seguir una trayectoria a un robot.

QDynMatrix
Esta clase implementa como objeto una matriz. Contiene mtodos para obtener de una matriz una sub-matriz de la misma, su transpuesta, etc.

QDynDialogRobotTable
Esta clase implementa la el cuadro de dilogo correspondiente a la tabla DH de un robot as como el creador de Robots

Figura 7.5.2: Ventana de resultados de simulacin

32

7.5. Exportando los datos de la simulacin

Incorporando la librera RAPID de deteccin de colisiones en Qt


Para incorporar la librera RAPID a un proyecto de Qt primero debemos descargarla desde: http://gamma.cs.unc.edu/OBB/ Su uso es bastante sencillo. Para entender su uso se puede observar el ejemplo y el manual de usuario sencillo que se encuentran en el respectivo archivo descargado. En la documentacin de RAPID se plantea que la librera se debe compilar en un archivo binario y para su uso se debe incluir en el proyecto en Qt/C++ el archivo RAPID.h. El archivo RAPID.h tiene dentro de s una dependencia del archivo RAPID_private.H. Dicha dependencia debe ser comentada y las declaraciones en el archivo RAPID_private.H deben ser copiadas DENTRO de la declaracin de la clase de RAPID.h excepto la funcin estructuras

Como ltimo paso debemos ir al archivo obb.h y copiar las declaraciones de las estructuras RAPID.h reemplazando las estructuras

box y tri dentro de box y tri que fueron previamente comentadas. Adicionalmente debemos comentar las declaraciones de las estructuras box y tri en el archivo obb.h luego de copiarlas al archivo RAPID.h.
Una vez realizados los pasos descritos lo nico que tendremos que hacer es incluir en nuestro proyecto de Qt, preferiblemente en una carpeta independiente, los siguientes archivos:

box y tri declaradas en RAPID.h

friend RAPID_Collide

RAPID_model

dentro

presente en RAPID_private.H. Adicionalmente las

deben ser comentadas.

Headers: RAPID.h, RAPID_version.h, matvec.h, moments.h, obb.h, overlap.h Sources: RAPID.c, build.c, collide.c, overlap.c
Una vez incluidos los archivos basta slo con incluir el archivo RAPID.h donde lo necesitemos y declarar el objeto RAPID_model como se indica en el manual de usuario de RAPID. Para ver el ejemplo implementado se puede observar el cdigo fuente de los archivos RAPID.h y obb.h de este software abriendo el proyecto en QtCreator 4.7. Para ver la implementacin de RAPID se puede recurrir al archivo QDynMesh.cpp dentro de la carpeta Classes. Adicionalmente para observar la implementacin del mtodo

RAPID_Collide que es el encargado de detectar las colisiones, se puede recurrir al archivo QDynScene.cpp el mtodo QDynScene::checkCollisions().

en

También podría gustarte