Escolar Documentos
Profissional Documentos
Cultura Documentos
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
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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
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.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:
Barra de Herramientas
Resultados de Simulacin
Escena
Figura 2.1.1: Interfaz del programa
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.
Habilitar colisiones entre eslabones y obstculos Habilitar colisiones entre efectores finales y obstculos Deshabilitar colisiones
Mostrar/Esconder Rejilla Mostrar/Esconder marcos de ref. locales Mostrar/Esconder marco de ref. global
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
Captulo 3
La Escena
3.1. Descripcin general
La escena es uno de los elementos principales de la interfaz:
Escena 3D
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
(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
Transparencia Alfa
Rejilla
1.
Transparencia Alfa:
View
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
4.
Lneas de Coordenadas:
escena basta con ir al men
View
5.
Rejilla:
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.
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
i 1,
es decir,
zi1 .
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
xi xi .
zi1
zi
La distancia El ngulo
di
xi1
y
xi
zi1
i
+ i
xi1
xi i
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. Los Robots
13
Robots
Tools
Robot Creator,
a lo cual se abrir
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
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
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
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
14
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:
A continuacin un ejemplo de los manipuladores Scara y Kuka con sus respectivas tablas de parmetros y el archivo
Ejemplo 1.
15
16
'v'
(vertex) y
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
i,
i 1 e i y el i y no en
i 1.
Ejemplo 3.
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:
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
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
Robots
Add
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
Robot
Slider
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
Slider
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
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
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.
'v'
(vertex) y
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
Obstacles
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
(0, 0, 0)
Obstculo Obstculo
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
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
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:
Robots
Collisions
Las posi-
bles colisiones de los obstculos sern vericadas comparando con todos los eslabones de los manipuladores
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
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
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
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.
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:
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.
En la carpeta
paths
Paths
Add Path
rbol de trayectorias y seleccionar esta misma opcin desde el men desplegable. Una vez seleccionada la opcin se
24
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
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
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
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
Trayectoria agregada
Aparte de agregar trayectorias podemos eliminarlas dando click derecho sobre una trayectoria en el rbol de trayectorias y seleccionando
Delete Path
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.
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.
i,
i1
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:
7. Simulacin
27
En el recuadro
Path to Follow
se debe especicar la trayectoria que deber seguir el robot. Cabe agregar que
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
28
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
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
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
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
0.1 [m/s],
B. B
al
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
0.1 [m/s],
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
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.
Simulation
Start Simulation
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
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
30
Robot para ver datos Juntas del Robot Tipo de grfica a visualizar Grfica seleccionada
Para exportar los resultados obtenidos tenemos dos opciones como se mencion: 1.
habi-
endo seleccionado el eslabn de inters asociado a dicha junta, damos click derecho sobre la grca activa y
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
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
32
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:
friend RAPID_Collide
RAPID_model
dentro
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