Curso TOOLBOX Robotica

October 29, 2017 | Author: guiovanny | Category: Rotation, Euclidean Vector, Matlab, Kinematics, Robotics
Share Embed Donate


Short Description

Download Curso TOOLBOX Robotica...

Description

05/07/2011

Toolbox de Robótica para Matlab María Gabriela Cabrera

Contenido Introducción  Peter Corke Instalación  Definición de un Nuevo Robot  Matrices de Rotación  Cuaternios  Transformaciones Homogéneas  Generación de Trayectorias  y Cinemática  Dinámica  Modelos Predefinidos de Manipuladores Toolbox de robótica y simulink Conclusiones

1

05/07/2011

Introducción Robots Industriales Desarrollado por Peter Corke. Versión 8 (2008). Incluye funciones de cinemática,  dinámica, y generación de  trayectorias.  trayectorias

Peter Corke Titulo de pregrado y maestría en Ingeniería Eléctrica (Universidad de Melbourne). Titulo PhD en Ingeniería Mecánica y de Manufactura (Universidad de Melbourne). Presidente‐Editor de la revista IEEE Robotics & Automation. Fundador y editor asociado del Journal of Field Robotics. Fundador u dado de del Autonomous uto o ous Syste Systemss laboratory. abo ato y Ganador de los premios Qantas/Rolls‐Royce y Australian Engineering Excellence. Profesor de control y robótica en la Universidad de Tecnología de Queensland.

2

05/07/2011

Instalación 1.

Descargar paquete en  http://www.petercorke.com/RTB/signin.php

2.

Llenar información requerida. 

3.

Extraer paquete ‘robot’ en  C:\Program  Files\MATLAB\R2009a\Toolbox

4 4.

Abrir Abrir MATLAB MATLAB

5.

Agregar el directorio ‘robot’ al MATLABPATH file>>set path>>add folder>>robot>>ok>>save

Definición de un Nuevo Robot Definición en MATLAB: Li=link([αi a i θ i d i σi ]) αi ángulo entre el eje Z á l t l j Zi‐1 y ZZi, sobre el plano  b l l perpendicular a Xi. El signo lo da la regla de la mano  derecha  ai distancia entre los ejes Zi‐1 y Zi, a lo largo de Xi. El  signo lo define el sentido de Xi. θi: ángulo que forman los ejes Xi‐1 y Xi, sobre el plano  perpendicular a Zi. El signo lo da la regla de la mano  derecha. derecha di: distancia a lo largo del eje Zi‐1 desde el origen del  sistema Si‐1 hasta la intersección del eje Zi, con el eje  Xi. En el caso de articulaciones prismáticas será la  variable de desplazamiento. σi : 0 (rotación) ó 1 (prismática) 

3

05/07/2011

Definición de un Nuevo Robot Ejemplo:

Figura 1 Robot SRX‐611

Definición de un Nuevo Robot Definir los parámetros de Denavit‐Hartenberg. 

{1}

{2}

a2 b2 b1

Figura 2 Parámetros de Denavit‐ Hartenberg del SRX‐611

{0}

a1

4

05/07/2011

Definición de un Nuevo Robot Definir los parámetros de Denavit‐Hartenberg. Eslabón 1:  a1 = 350 mm 350 mm d1= 460.5 mm α1 = 0 θ1 = θ1  {variable, rotación}

Eslabón 2:  a2 = 250 mm d2= ‐85.5 mm α2= 0 θ2 = θ2  {variable, rotación}

Eslabón 3:  a3 = 0 mm d3= d3 {variable, prismática} α3 = 0 θ3 = 0

Definición de un Nuevo Robot Definición en MATLAB:

Z

L1=link([0, 0.350, 0, 0.4605,0]); L2=link([0, 0.250, 0, ‐0.0855,0]); L3=link([0, 0, 0, 0,1]); srx=robot({L1 L2 L3}); srx.name='SRX‐611'; 1 srx.manuf='Sony'; 0.5 plot(srx,[0 0 0]); 

yz x

0 SRX-611 -0.5 -1 1 0.5

1 0.5

0 0

-0.5 Y

-1

-0.5 -1 X

Figura 3 Representación grafica del SRX‐611

5

05/07/2011

Matrices de Rotación • Rotación alrededor del eje X

Rx

MATLAB:

Rx=rotx(α)

• Rotación alrededor del eje Y

MATLAB:

Ry

Ry=roty(Ԅ)

Matrices de Rotación • Rotación alrededor del eje Z:

MATLAB: Rz=rotz(θ)

Rz

• Matriz de rotación a matriz de TH:

MATLAB: T=r2t(R)

6

05/07/2011

Matrices de Rotación Función 

Descripción 

angevecr

forma angular/vectorial a matriz de rotación  (MR) angular/vectorial a matriz de rotación (MR)

eul2r

ángulo de Euler a MR

rotx

MR para rotación alrededor del eje X

roty

MR para rotación alrededor del eje Y

rotz

MR para rotación alrededor del eje Z

rpy2r

ángulos roll/pitch/yaw a MR

r2tt

MR a TH

Cuaternios Definidos por Hamilton para trabajar con giros y orientaciones. Un cuaternio Q está constituido por cuatro componentes {q0,  q1, q2, q3} que representan al cuaternio base {e, i ,j, k}. Para la utilización de los cuaternios como metodología de  representación de orientación, se realiza una asociación  arbitraria del giro de un ángulo θ sobre un vector k al cuaternio  definido por: p

7

05/07/2011

Cuaternios Ejemplo:  q p Obtener el cuaternio que representa una rotación de 90° sobre  el eje k( 3, ‐2, 1).

Matlab: Q=quaternion(k,θ’) Q=quaternion([3 ‐2 1],(pi/2))

Cuaternios Función 

Descripción 

+

adición



substracción

/

dividir cuaternio entre un cuaternio o un escalar

*

multiplicar cuaternio por un cuaternio o un vector

inv

invertir un cuaternio

norm

magnitud de un cuaternio

plot

mostrar cuaternio como rotación 3D

q2tr

cuaternio a TH

quaternion

construir cuaternio

qinterp

interpolar cuaternio

unit

cuaternio unitario

8

05/07/2011

Transformaciones Homogéneas

Transformaciones Homogéneas • Matriz de traslación 

MATLAB:

T=transl(px, py, pz)

• Rotación alrededor del eje X

MATLAB:

T=trotx(α)

9

05/07/2011

Transformaciones Homogéneas • Rotación alrededor del eje Y

MATLAB:

T=troty(Ԅ)

• Rotación alrededor del eje z

MATLAB:

T=trotz(θ)

Transformaciones Homogéneas • Rotación sobre el eje X seguido  p por una traslación: 

MATLAB:

T=trotx(α)*transl(px, py, pz)

• Rotación sobre el eje Y seguido  por una traslación: 

MATLAB:

T=troty(Ԅ)*transl(px, py, pz)

10

05/07/2011

Transformaciones Homogéneas Ejemplo: tr = trotx(.2)*troty(.3)*transl(1,2,3) trplot(tr) 4 Z

Z

3.5 Y 3 X 2.5 3 2.4 2.2

2.5 2 1.8

1.6 1.4

2

Y

X

Figura 4 Combinación de varias operaciones

Transformaciones Homogéneas Función 

Descripción 

angevec2tr

forma angular/vectorial a transformación homogénea (TH)

eul2tr

ángulo de Euler a TH

oa2tr rpy2tr

ángulos roll/pitch/yaw a TH

tr2angvec

TH o matriz de rotación a forma angular/vectorial

tr2eul

TH o matriz de rotación en ángulos de Euler

t2r

TH a sub‐matriz de rotación 

tr2rpy

TH o matriz de rotación a ángulos roll/pitch/yaw

trotx

TH para rotación alrededor del eje X

troty

TH para rotación alrededor del eje Y

trotz

TH para rotación alrededor del eje Z

transl

fijar o extraer el componente de traslación de una TH

tnorm

normalizar una TH

trplot

graficar el sistema de coordenadas de una TH

11

05/07/2011

Generación de Trayectorias Ejemplo:

Posición de las articulaciones

100 50 0

%ángulos iníciales  start=[15 45 30 20 60 30] %ángulos finales  stop=[75 0 120 25 30 0] t=[0:0.5:3]

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

50

0 200 100 0 25

20 60

[pos vel]=jtraj(start,stop,t)

40 20 40

subplot(6,1,1);plot(t,pos(:,1)) subplot(6,1,2);plot(t,pos(:,2)) subplot(6,1,3);plot(t,pos(:,3)) subplot(6,1,4);plot(t,pos(:,4)) subplot(6,1,5);plot(t,pos(:,5)) subplot(6,1,6);plot(t,pos(:,6)) figure %velocidad de cada articulación subplot(6,1,1);plot(t,vel(:,1)) subplot(6,1,2);plot(t,vel(:,2)) subplot(6,1,3);plot(t,vel(:,3)) subplot(6,1,4);plot(t,vel(:,4)) subplot(6,1,5);plot(t,vel(:,5)) subplot(6,1,6);plot(t,vel(:,6))

20 0

Velocidad de las articulaciones 40 20 0 0 -20 -40 100 50 0 4 2 0 0 -10 -20 0 -10 -20

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

Generación de Trayectorias Función 

Descripción 

ctraj

trayectoria cartesiana trayectoria cartesiana

jtraj

trayectoria de una articulación 

trinterp

interpolar TH

12

05/07/2011

Cinemática Cinemática Directa Consiste en determinar cuál es la posición y orientación del extremo final del robot, robot con respecto a un sistema de coordenadas que se toma como referencia, conocidos los valores de las articulaciones y los parámetros geométricos de los componentes del robot. Cinemática Inversa En este caso el problema consiste en resolver la configuración que debe d b adoptar d t ell robot b t para una posición i ió y orientación i t ió del d l extremo conocida.

Cinemática MATLAB: Cinemática Directa T = fkine(robot, fki ( b q)) fkine calcula la cinemática directa para un vector ‘q‘ que representa las coordenadas de la articulación. Devuelve una matriz de transformación homogénea que describe el efector final. Cinemática Inversa q = ikine(robot, T) ikine devuelve las coordenadas de la articulación para el manipulador descrito por el objeto robot. T es una matriz de transformación homogénea que describe el efector final.

13

05/07/2011

Cinemática Ejemplo:

Articulación

θ

d

a

l1

α

1

q1

0

0

2

90

d2

0

90

3

0

d3

0

0

4

q4

l4

0

0

Cinemática 4

2 xy z Z

Ejemplo: L1 = link([0 0 0 1 0]); D2 = link([pi/2 0 pi/2 1 1]); D2 = link([pi/2 0 pi/2 1 1]); D3 = link([0 0 0 1 1]); L4 = link([0 0 0 1 0]); rob = robot({L1 D2 D3 L4}) rob.name=‘robot2'; plot(rob, [0 0 0 0]);

0 robot2 -2

-4 4 2

4 2

0

0

-2 Y

-2 -4

-4

X

Para un desplazamiento de las articulaciones prismáticas de 1  P d l i t d l ti l i i áti d 1 unidad tenemos: T=fkine(rob,[0 1 1 0])

14

05/07/2011

Cinemática Ejemplo: Para las coordenadas de las articulaciones q = [‐pi/4 0.5 0.5  pi/3] se obtiene la siguiente matriz de transformación: pi/3] se obtiene la siguiente matriz de transformación: T = fkine(rob,[‐pi/4 0.5 0.5 pi/3])

Calculo de la cinemática inversa: qi = ikine(rob,T,[0 0 0 0],[1 1 1 1 0 0])

Cinemática Función 

Descripción 

diff2tr

vector de movimiento diferencial a TH

fkine

calcular cinemática directa calcular cinemática directa

ftrans

transformar fuerza/movimiento

ikine

calcular cinemática inversa 

ikine560

calcular cinemática inversa  para un brazo tipo Puma  560

jacob0

calcular Jacobiano en sistema de coordenadas base

jacobn

calcular Jacobiano en el sistema de coordenadas del  efector final

tr2diff 

TH a vector de movimiento diferencial

tr2jac

TH a Jacobiano

15

05/07/2011

Dinámica Función 

Descripción 

accel

calcular dinámica directa

cinertia

calcular matriz de inercia de un manipulador  matriz de inercia de un manipulador cartesiano

coriolis

calcular torque de la articulación debido a efectos de  fuerza centrípeta/coriolis

fdyn

dinámica directa

friction

fricción de la articulación 

gravload

calcular torque de la articulación debido a la gravedad

inertia

calcular matriz de inercia del manipulador

itorque

calcular torque de la articulación debido a la inercia

rne

dinámica inversa 

Modelos Predefinidos de Manipuladores 2

Z

1

0 Fanuc AM120iB/10L yz x

-1

-2 2 1

2 1

0

0

-1

-1 -2

Y

-2

X

Figura  Robot Fanuc ArcMate 120iB/10L

1.5 1

Z

0.5 0 Motoman HP6 x zy

-0.5 -1 -1.5 1

1

0

0 -1

Y

-1 X

Figura  Robot Motoman HP6

16

05/07/2011

Modelos Predefinidos de Manipuladores 1

0.5

yz x

Z

0 Puma 560 -0.5

-1 1 0.5

1 0.5

0

0

-0.5

-0.5 -1

Y

-1

X

Figura  Robot Puma 560 4

2

Z

0 y x 2.8 S4 ABB z -2

-4 4 2

4 2

0

0

-2 Y

Figura  Robot ABB S4 2.8

-2 -4

-4

X

Modelos Predefinidos de Manipuladores Función 

Descripción 

Fanuc10L

Fanuc ArcMate 120iB/10L (DH, cinemática)

MotomanHP6

Motoman HP6 (DH, cinemática)

puma560

Puma 560 (DH, cinemática, dinámica)

puma560akb

Puma 560 (MDH, cinemática, dinámica)

S4ABB2p8

ABB S4 2.8 (DH, cinemática)

stanford

Brazo Stanford (MDH, cinemática, dinámica)

twlink

ejemplo simple de 2 articulaciones (DH, cinemática)

17

05/07/2011

Toolbox de robótica y simulink Para utilizar esta característica : p addpath ROBOTDIR/simulink Para observar los bloques: roblocks

Toolbox de robótica y simulink Demos:

18

05/07/2011

Toolbox de robótica y simulink Demos:

Conclusiones

19

05/07/2011

Referencias Corke, P. (2011, Mayo 8). Robotics Toolbox for MATLAB. Recuperado de  www.petercorke.com Dapena, E. (2011, Mayo 20). ISPIRO: Introducción a la robótica. Recuperado  de http://webdelprofesor.ula.ve/ingenieria/eladio/ISPIRO.htm // / / / Sourceforge. (s.f.). Recuperado el 27 de Junio de 2011, de  http://sourceforge.net/projects/scirt/ SpaceLib. (s.f.). Recuperado el 28 de junio de 2011, de  http://spacelib.ing.unibs.it/ The Orocos Proyect. (s.f.). Recuperado el 27 de Junio de 2011, de  http://www.orocos.org/ Torres, F., Pomares, J., Gil, P., Puente, S., & Aracil, R. (2002). Robots y  Sistemas Sensoriales . Madrid: Pearson Educación . Universidad Don Bosco. (s.f.). Recuperado el 30 de Mayo de 2011, de  http://www udb edu sv/Academia/Laboratorios/electronica/FRobotica/guia5 http://www.udb.edu.sv/Academia/Laboratorios/electronica/FRobotica/guia5 FRO.pdf Wane, S. (2011, Mayo 4). Staffordshire University. Recuperado de  www.fcet.staffs.ac.uk/sow1/robotmaterial/MasteringRoboticsToolbox.pdf

Toolbox de Robótica María Gabriela Cabrera

20

Toolbox de Robótica  

María Gabriela Cabrera   Laboratorio de Sistemas Discretos, Automatización e Integración  LaSDAI‐ULA  Julio, 2011  Resumen—El  Toolbox  de  Robótica  para  Matlab,  desarrollado por el profesor Peter Corke, permite  modelar  robots  tipo  manipulador  con  diferentes  números  de  articulaciones.  Es  posible  describir  la  posición  y  orientación  del  extremo  del  robot  a  través  de  diferentes  herramientas  matemáticas.  Además  permite  realizar  cálculos  de  cinemática  y  dinámica.  Su  principal  aplicación es  en el área de  la robótica industrial.     Palabras  clave—  MATLAB,  Peter  Corke,  robótica  industrial,  toolbox.   

INTRODUCCIÓN  La  robótica  industrial  ha  jugado  un  rol  clave  en  la  automatización  de  actividades  como  ensamblaje  y  manufactura,  en  una  gran diversidad de industrias alrededor del  mundo. Industrias como la automovilística  y  la  de  fundición  han  sido  importantes  precedentes  en  la  introducción  de  robots  industriales a las líneas de producción. “Se  considera  como  un  robot  industrial  a  un  manipulador  multifuncional  dotado  de  un  conjunto  de  grados  de  libertad  con  capacidad de reprogramación, utilizado en  tareas  de  de  automatización  industrial”  [7].  Los  robots  industriales  presentan  grandes  beneficios  en  las  líneas  de  producción  ya  que  pueden  realizar  tareas  de  manera  rápida  y  eficiente,  algunos  poseen  una  capacidad  de  carga  importante,  además  de  que  pueden  ser  utilizados en ambientes hostiles donde un  humano  difícilmente  podría  desenvolverse. En las diferentes industrias  realizan  actividades  como  soldadura, 

ensamblaje y manipulación de materiales.   Debido  a  la  importancia  anteriormente  descrita  de  los  robots  industriales,  es  imperativo  contar  con  herramientas  que  permitan  simular,  analizar  y  experimentar  con  los  robots  sin  necesidad  de  ser  manipularlos  directamente  de  manera  física.  Un ejemplo de dichas herramientas  es  el  Toolbox  de  Robótica  para  MATLAB  [1], el cual fue desarrollado como “hobby”  por  Peter  Corke,  Profesor  de  control  y  robótica  en  la  Universidad    de  Tecnología  de Queensland en Australia. El Toolbox ha  sido  elaborado  y  mejorado  por  casi  una  década. Su última publicación es la versión  8,  la  cual  fue  expuesta  en  diciembre  de  2008.  Dicha  versión  posee  funciones  de  cinemática,  dinámica  y  generación  de  trayectorias.  Permite  la representación  de  la  posición  y  orientación  del  extremo  del  robot  a  través  de  vectores,  matrices  de  rotación, transformaciones homogéneas, y  cuaternios.  Proporciona  ejemplos  de  modelos  de  robots  conocidos  como  el  Puma560.  Incluye  un  set  de  bloques  que  pueden  ser  utilizados  con  Simulink.  Conjuntamente,  facilita  una  variedad  de  demos  creados  en  Simulink  utilizando  diferentes  bloques  del  Toolbox.    El código  fuente  está  disponible,  por  lo  que  puede  ser entendido y utilizado para enseñanza.  

ESTADO DEL ARTE  Existen  otras  herramientas  de  dominio  público disponibles que permiten simular y 



analizar  manipuladores.  Algunos  de  estos  son  SpaceLib,  JRoboOp,  Toolbox  de  Robótica para Scilab y Orocos. SpaceLib es  una librería desarrollada para ser utilizada  con  MATLAB  en  el  caso  de  aplicaciones  numéricas  y  con  Maple  para  aplicaciones  simbólicas.  SpaceLib  [5]  posee  funciones  para  cinemática  y  dinámica.    Otra  herramienta  disponible  pero  que  no  fue  creada  para  MATLAB  es  JRoboOp  [3].  Dicha  herramienta  es  un  paquete  de  Java  que  permite  simular  y  visualizar  en  3D  el  modelo  de  un  robot.  Proporciona  funciones  de  cinemática,  dinámica  y  generación  de  trayectorias.  A  diferencia  del  Toolbox  de  Robótica  para  Matlab,  incluye  una  mejor  visualización  3D  del  robot.    Otra  herramienta  que  posee  la  ventaja de funcionar con software libre es  el  Toolbox  de  Robótica  para  Scilab  [4].  Dicho  Toolbox,  posee  funciones  de  cinemática,  dinámica  y  generación  de  trayectorias  bastante  similares  a  las  del  Toolbox  de  Robótica  de  MATLAB,  sin  embargo  no  es  tan  completo.  Adicionalmente,  existe  la  herramienta  conocida  como  Orocos  (Open  Robot  Control Software) [6] también de software  libre, la cual es quizás la más completa de  las anteriormente descritas. Consta de una  librería  para  cinemática  y  dinámica,  una  librería  para  filtrado  Bayesiano,  y  un  conjunto  de  herramientas  para  crear  aplicaciones con robots en tiempo real.  

DEFINICIÓN DE UN NUEVO ROBOT   Una  forma  de  definir  un  nuevo  robot  utilizando  el  Toolbox  de  Robótica,  es  realizando  primero  una  descripción  de  cada  articulación  o  eslabón  del  robot.  La  función que se utiliza es la siguiente:  Li=link([αi ai θi di σi ]) 

Los  primeros  cuatro  parámetros  de  la  función anterior son calculados de acuerdo  a  los  lineamientos  de  Denavit‐Hartenberg  y  el  ultimo  parámetro  define  el  tipo  de  articulación,  de  rotación  o  prismática.  A  continuación, se explica brevemente como  realizar el  cálculo de cada parámetro [7].  αi:  ángulo  entre  el  eje  Zi‐1  y  Zi,  sobre  el  plano  perpendicular  a  Xi.  El  signo  lo  da  la  regla de la mano derecha  ai:  distancia  entre  los  ejes  Zi‐1  y  Zi,  a  lo  largo de Xi. El signo lo define el sentido de  Xi.  θi:  ángulo  que  forman  los  ejes  Xi‐1  y  Xi,  sobre el plano perpendicular a Zi. El signo  lo da la regla de la mano derecha.  di: distancia a lo largo del eje Zi‐1 desde el  origen  del  sistema  Si‐1  hasta  la  intersección  del  eje  Zi,  con  el  eje  Xi.  En  el  caso  de  articulaciones  prismáticas  será  la  variable de desplazamiento.  σi : 0 (rotación) ó 1 (prismática)  Una  vez  definida  cada  articulación  el  siguiente  paso  es  crear  un  objeto  del  tipo  robot.  Para  esto  se  utiliza  la  siguiente  función, cuyo parámetro es un arreglo con  la descripción de cada eslabón:   variable_robot=robot({L1 L2…Li})  Para obtener una representación grafica  simplemente se utiliza   plot(varable_robot,q)  donde q es un vector con los ángulos para  cada articulación.   Las funciones anteriormente descritas son  utilizadas  en  el  siguiente  ejemplo,  donde  se  realiza  la  definición  de  un  robot  SRX‐ 611.  Dicho  robot  es  del  tipo  “pick  and  place”,  es  fabricado  por  la  Sony,  y  posee  tres  articulaciones.  Dos  de  las  articulaciones son de rotación y la tercera  es prismática.  Es utilizado en industrias de 



manufactura  de  electrónicos,  farmacéutica, entre otros.     Ejemplo:  En la figura 1 se aprecia una fotografía de  un robot SRX‐611. 

Figura 1 Robot SRX‐611 

En  la  figura  2  se  observa  una  representación  grafica  del  robot  SRX‐611  donde  se  señalan  algunos  de  los  parámetros de Denavit‐Hartenberg.  

Figura 2 Parámetros de Denavit‐Hartenberg del SRX‐611 

Como  se  dijo  anteriormente,  primero  es  necesario  definir  los  parámetros  de  Denavit‐Hartenberg para cada articulación.  Eslabón 1:    a1 = 350 mm  d1= 460.5 mm  α1 = 0  θ1 = θ1  {variable, rotación}  Eslabón 2:    a2 = 250 mm 

d2= ‐85.5 mm  α2= 0  θ2 = θ2  {variable, rotación}  Eslabón 3:    a3 = 0 mm  d3= d3 {variable, prismática}  α3 = 0  θ3 = 0  Una  vez  establecidos  los  valores  de  cada  parámetro es posible escribir el código en  MATLAB  para  la  definición  completa  del  robot SRX‐611:    %Ejemplo 1: Definición de un nuevo robot    %Definir cada articulación de acuerdo a los  parámetros de Denavit‐Hartenberg    L1=link([0, 0.350, 0, 0.4605,0]);  L2=link([0, 0.250, 0, ‐0.0855,0]);  L3=link([0, 0, 0, 0,1]);    %Crear un objeto del tipo robot    srx=robot({L1 L2 L3});    %Si se desea asignar nombre al robot  srx.name='SRX‐611';    %Si se desea especificar fabricante  srx.manuf='Sony';    %Mostrar representación gráfica del robot   plot(srx,[0 0 0]);    



Rotación alrededor del eje X:  1

Z

  MATLAB: rotx(α)    Rotación alrededor del eje Y: 

yz x

0.5 0

SRX-611 -0.5 -1 1 0.5

1 0.5

0 0

-0.5 Y

-0.5 -1

-1 X

Figura 3 Representación grafica del SRX‐611 

En la figura 3 se aprecia la grafica obtenida  al  ejecutar  la  función  plot.  Donde,  evidentemente  se  observa  una  representación  grafica  sencilla  del  robot  SRX‐611.   Es  importante  destacar  que  con  las  funciones  descritas  anteriormente  simplemente  es  posible  realizar  una  descripción básica del robot, resta analizar  qué funciones pueden ser utilizadas como  herramientas  matemáticas  para  representar  el  movimiento  espacial  del  extremo del robot.  

  MATLAB: T=roty( )    Rotación alrededor del eje Z: 

MATLAB: T=rotz(θ)    En la tabla 1 se presentan las funciones del  Toolbox  de  Robótica  relacionadas  con  las  matrices  de  rotación  y  una  breve  descripción de las mismas.  

MATRICES DE ROTACIÓN  

Tabla 1 Funciones para matrices de rotación  

Una  forma  de  representar  la  orientación  de  un  sistema  de  coordenadas  respecto  a  otro  fijo  es  mediante  las  matrices  de  rotación  [2].  A  través  de  las  matrices  de  rotación  es  posible  analizar  la  orientación  del  efector  final  del  robot  respecto  a  su  base.   Es  posible  que  se  presenten  rotaciones  alrededor  del  eje  X,  Y,  Z  o  combinaciones  de  éstas.  A  continuación,  se  presentan  algunas  matrices  de  rotación  y  su  función  correspondiente  en  MATLAB.  Es  importante  destacar  que  los  ángulos  deben ser definidos en radianes.       

Función  

Descripción  

angevecr 

forma angular/vectorial a matriz de  rotación  (MR)  

eul2r 

ángulo de Euler a MR  

rotx 

MR para rotación alrededor del eje X 

roty 

MR para rotación alrededor del eje Y 

rotz 

MR para rotación alrededor del eje Z 

rpy2r 

ángulos roll/pitch/yaw a MR

r2t 

MR a Transformación homogénea 

Existen  herramientas  matemáticas  alternativas  que  al  igual  que  las  matrices  de  rotación  representan  la  orientación  de  un  objeto.  Algunas  de  éstas  incluyen  los 



angulos  roll,  pitch,  yaw  de  Euler  y  los  cuaternios.  



multiplicar cuaternio por un cuaternio  o un vector  

CUATERNIOS  

inv 

invertir un cuaternio 

Los  cuaternios  fueron  definidos  por  Hamilton  para  definir  giros  y  orientaciones.  Poseen  la  ventaja  de  que  son más compactos y sencillos de calcular  computacionalmente  que  las  matrices  de  rotación. Representan un giro de θ grados  alrededor  de  un  vector  k  [2].  Generalmente,  posee  una  parte  escalar  y  una  parte  vectorial.  Puede  representarse  como: 

norm 

magnitud de un cuaternio 

plot 

mostrar cuaternio como rotación 3D 

q2tr 

cuaternio a TH 

quaternion 

construir cuaternio  

qinterp 

interpolar cuaternio 

unit 

cuaternio unitario 

   Con  las  matrices  de  rotación  y  los  cuaternios  es  posible  representar  la  orientación  del  extremo  del  robot,  sin  embargo,  también  es  importante  tener  conocimiento sobre la posición del mismo.  Una herramienta que permite representar  tanto  la  orientación  como  la  posición  son  las  matrices  de  transformación  homogénea.  

En  MATLAB  la  definición  puede  realizarse  de la siguiente forma:    Ejemplo:  Obtener el cuaternio que representa una  rotación de 90° sobre el eje k( 3, ‐2, 1).  % Nota: el ángulo debe estar expresado en  radianes   Q=quaternion([3 ‐2 1],(pi/2)) 

TRANSFORMACIONES HOMOGÉNEAS  

  En  la  tabla  2  se  muestran  las  funciones  disponibles en el Toolbox de Robótica para  manejar  cuaternios  y  una  breve  descripción de cada una.   Tabla 2 Funciones para cuaternios 

Función  

Descripción  

+  

adición 

‐  

substracción  

/  

dividir cuaternio entre un cuaternio o  un escalar  

En robótica resulta de gran utilidad poseer  un  mecanismo  que  permita  localizar  un  objeto  de  acuerdo  a  su  posición  y  orientación  respecto  a  un  sistema  de  referencia.   Para  describir  la  posición  y  orientación  de  un  objeto  es  posible  utilizar  la  matriz  de  transformación  homogénea  definida  por  Forest [7]:     

    

   

  Esta matriz 4x4 está compuesta por cuatro  submatrices,  de  las  cuales  solo  los  componentes  de  rotación  y  traslación  resultan de interés para la robótica.  



 

 

 

 

  En  robótica  es  posible  tener  transformaciones  que  representan  solo  traslación,  solo  rotación,  o  combinaciones  de ambas. Seguidamente, se presentan las  matrices  para  varias  transformaciones  homogéneas y su función correspondiente  en  MATLAB.  Es  importante  destacar  que  los  ángulos  deben  ser  definidos  en  radianes.   Matriz de Traslación:       

  MATLAB: T=transl(px, py, pz)              Rotación alrededor del eje X: 

 

  MATLAB: T=trotx(α)    Rotación alrededor del eje Y: 

  MATLAB: T=troty( )    Rotación alrededor del eje z   

 

  MATLAB: T=trotz(θ)   

Rotación  sobre  el  eje  X,  seguido  por  una  traslación:             

  MATLAB: T=trotx(α)*transl(px, py, pz)    Rotación  sobre  el  eje  Y,  seguido  por  una  traslación:      

  MATLAB: T=troty( )*transl(px, py, pz)    En  el  siguiente  ejemplo  se  muestra  el  código escrito en MATLAB, donde se llevan  a  cabo  diferentes  transformaciones  homogéneas.  Adicionalmente,  se  utiliza  la  función  trplot(T),  a  través  de  la  cual  es  posible  visualizar  cómo  la  coordenadas  originales  son  cambiadas  debido  a  una  transformación T.     Ejemplo:    %Ejemplo  2  Transformaciones  Homogéneas     %Matriz de traslación   T=transl(1,1,1);  trplot(T)    %Matriz  para  una  rotación  alrededor  del  eje X  Tx=trotx(0.2);  figure  trplot(Tx) 



1.2 1 0.8 Z

0.6

Z

0.4 0.2 0

Y

-0.2 -0.4 X -0.6 1 0.5 0

1

0.5

0

Y

X

Figura 6 Rotación alrededor del eje Y 

1 0.8 Z 0.6 Z

  %Matriz  para  una  rotación  alrededor  del  eje Y  Ty=troty(0.2);  figure  trplot(Ty)    %Matriz  para  una  rotación  alrededor  del  eje Z  Tz=trotz(0.2);  figure  trplot(Tz)    %Composición de varias transformaciones   tr = trotx(.2)*troty(.3)*transl(1,2,3)  figure  trplot(tr) 

0.4 0.2 X 0

2

Y

1

0.8

Z

0.5

0.6

1.8

0.4 0.2

1.6

0 0

X

Z

Y

1.4

Figura 7 Rotación alrededor del eje Z 

1.2

X

1 2 1

1.5 1

1.5

Y

4

2 Y

X

Z

3.5 Z

Figura 4 Traslación 

Y 3

1

X

2.5 Z

0.8

2.4 2.2

Z

0.6

0.4

Y

2 1.8 1.6 1.4

3 2.5 2 X

Y 0.2

Figura 8 Combinación de varias operaciones 

0 X

0 0.5 1 X

0

0.4

0.2

0.6

0.8

Y

Figura 5 Rotación alrededor del eje X 

En las figuras 4, 5, 6, 7 y 8 se aprecia cómo las  coordenadas originales cambian debido a una  transformación  homogénea.  Las  nuevas  coordenadas  son  las  de  color  azul  mientras 



que  en  negro  se  observan  las  coordenadas  originales.   Con  las  transformaciones  homogéneas  es   posible  representar  la  posición  y  orientación  del  extremo  del  robot.  Sin  embargo,  para  entender  más  a  fondo  las  capacidades  del  robot  es  necesario  estudiar  las  funciones  del  Toolbox  que  representan  las  trayectorias  y  movimientos de cada articulación.  

GENERACIÓN DE TRAYECTORIAS    En  ciertas  aplicaciones  puede  ser  necesario programar un robot para que su  extremo  describa  una  trayectoria  específica,  o  conocer  qué  trayectoria  se  generará  al  moverse  de  un  punto  a  otro.  Para  esto  el  Toolbox  cuenta  con  las  funciones jtraj y ctraj.   La  función  jtraj  devuelve  una  trayectoria  generada al mover las articulaciones desde  un conjunto de coordenadas original hacia  otro  conjunto  de  coordenadas.  Opcionalmente,  puede  devolver  la  velocidad  y  aceleración  de  cada  articulación.   La  función  ctraj  devuelve  una  trayectoria  cartesiana  (línea  recta)  desde  un  punto  a  otro,  ambos  representados  por  una  transformación  homogénea.  Es  necesario  especificar  el  número  de  puntos  que  se  trazarán.   En  el  siguiente  ejemplo  [9],  se  muestra  el  uso  de  la  función  jtraj  para  un  manipulador  con  6  articulaciones.  Las  articulaciones  recorrerán  una  trayectoria  para  moverse  desde  el  conjunto  de  coordenadas  iníciales  descritas  por  el  vector ‘start’ hasta las coordenadas finales  descritas  por  el  vector  ‘stop’.  El  tiempo  para  realizar  la  trayectoria  se  especifica  con el vector ‘t’.    

%Ejemplo 2 Generación de Trayectorias    clc  %ángulos iníciales   start=[15 45 30 20 60 30];  %ángulos finales   stop=[75 0 120 25 30 0];  %vector de tiempo  t=[0:0.5:3];    [pos vel]=jtraj(start,stop,t);    %posición de cada articulación   subplot(6,1,1);plot(t,pos(:,1))  subplot(6,1,2);plot(t,pos(:,2))  subplot(6,1,3);plot(t,pos(:,3))  subplot(6,1,4);plot(t,pos(:,4))  subplot(6,1,5);plot(t,pos(:,5))  subplot(6,1,6);plot(t,pos(:,6))  figure    %velocidad de cada articulación  subplot(6,1,1);plot(t,vel(:,1))  subplot(6,1,2);plot(t,vel(:,2))  subplot(6,1,3);plot(t,vel(:,3))  subplot(6,1,4);plot(t,vel(:,4))  subplot(6,1,5);plot(t,vel(:,5))  subplot(6,1,6);plot(t,vel(:,6))   



Tabla 3 Funciones para trayectorias 

Posición de las articulaciones 100 50 0

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

50

0 200 100 0

0

0.5

1

1.5

2

2.5

3

25

20

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

40

40 20 0

Figura 9 Posición de cada articulación  Velocidad de las articulaciones 40 20 0 0 -20 -40 100 50 0 4 2 0 0 -10 -20 0 -10 -20

Descripción  

ctraj 

trayectoria cartesiana  

jtraj 

trayectoria de una articulación 

trinterp 

interpolar TH  

 

CINEMÁTICA 

60

20

Función 

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

0

0.5

1

1.5

2

2.5

3

Figura 10 Velocidad de cada articulación 

En  las  figuras  9  y  10,  puede  observarse  respectivamente  la  posición  y  velocidad  de  cada  articulación.  En  la  siguiente  tabla  se  incluyen  las  funciones  relacionadas  con  generación  de  trayectorias  y  una  breve  descripción.  

La  cinemática  se  encarga  de  estudiar  el  movimiento  del  robot,  sin  tomar  en  cuenta  las  leyes  físicas  que  lo  generan,  se  limita  a  estudiar  trayectorias  en  función  del  tiempo.  La cinemática puede ser abordada desde dos  puntos  de  vista:  la  cinemática  directa  y  la  cinemática inversa.   La  cinemática  directa  calcula  la  posición  y  orientación del extremo del robot a partir del  valor de las coordenadas de las articulaciones  del robot [2].   En  MATLAB  la  definición  puede  realizarse  de  la siguiente manera:  T = fkine(robot, q)  fkine  calcula  la  cinemática  directa  para  un  vector ‘q‘ que representa las coordenadas de  la  articulación  y  devuelve  una  matriz  de  transformación  homogénea  que  describe  el  efector final.  La  cinemática  inversa  calcula  el  valor  de  las  coordenadas de las articulaciones a partir de  la  posición  y  orientación  del  extremo  del  robot [2].   En  MATLAB  la  definición  puede  realizarse  de  la siguiente manera:  q = ikine(robot, T)  ikine  devuelve  las  coordenadas  de  la  articulación para el manipulador descrito por  el  objeto  robot.  T  es  una  matriz  de 



transformación  homogénea  que  describe  el  efector final.  En  el  ejemplo  que  se  muestra  seguidamente  se  realiza  la  definición  de  un  robot  cilíndrico  y, posteriormente, el cálculo de la cinemática  directa e inversa para el mismo.     Ejemplo [8]:  Como  se  explicó  anteriormente,  primero  es  necesario  definir  los  parámetros  de  Denavit‐ Hartenberg.  

Figura 11 Robot cilíndrico  Tabla 4 Parámetros de Denavit‐Hartenberg para el robot  cilíndrico 

θ  

d  

a  

α  

1  

q1 

l1  

0  



2  

90 

d2  

0  

90 

3  

0  

d3  

0  



4  

q4 

l4  

0  



4

2 xy z Z

Articulación  

%Definir  cada  articulación  de  acuerdo  a  los  parámetros de Denavit‐Hartenberg  L1 = link([0 0 0 1 0]);  D2 = link([pi/2 0 pi/2 1 1]);  D3 = link([0 0 0 1 1]);  L4 = link([0 0 0 1 0]);     %Crear un objeto del tipo robot    rob = robot({L1 D2 D3 L4});  rob.name='robot2';     %Mostrar representación gráfica del robot   plot(rob, [0 0 0 0]);     %Para  un  desplazamiento  de  las  articulaciones  prismáticas  de  1  unidad  tenemos:     T1fkine(rob,[0 1 1 0])     %Para las coordenadas de las articulaciones q  =  [‐pi/4  0.5  0.5  pi/3]  se  obtiene  la  siguiente  matriz de transformación:     T 2= fkine(rob,[‐pi/4 0.5 0.5 pi/3])     %Cálculo de la cinemática inversa:     qi = ikine(rob,T,[0 0 0 0],[1 1 1 1 0 0])   

0 robot2

  En la tabla 4 se muestra el valor de cada uno  de los parámetros necesarios para definir el  robot. El código escrito en MATLAB para el  ejemplo es el siguiente:    %Ejemplo 3: Cinemática directa e inversa     

-2

-4 4 2

4 2

0

0

-2 Y

-2 -4

-4

X

Figura 12 Representación grafica del robot cilíndrico 

10 

DINÁMICA  La  dinámica  de  un  robot  tiene  por  objeto  conocer  la  relación  entre  el  movimiento  del  robot y las fuerzas implicadas en el mismo[7].  A continuación, se presenta  una tabla donde  se  describen  las  funciones  disponibles  relacionadas con dinámica.   Tabla 6 Funciones para dinámica 

En la figura 12 se muestra la representación grafica del robot cilíndrico descrito en la tabla 4. Luego, se muestran las matrices correspondientes a la cinemática directa para obtener primero un conjunto de coordenadas q=[0 1 1 0] y luego q=[‐pi/4  0.5  0.5  pi/3]. Posteriormente se realiza el cálculo de la cinámica inversa usando T2. Como se esperaba, se obtienen las mismas coordenadas que fueron utilizadas para calcular T2. Tabla 5 Funciones para cinemática 

Función  

Descripción  

diff2tr  

vector de movimiento diferencial a TH 

fkine  

calcular cinemática directa  

ftrans  

transformar fuerza/movimiento 

ikine  

calcular cinemática inversa 

ikine560  

calcular cinemática inversa  para un  brazo tipo Puma 560  

jacob0  

calcular Jacobiano en sistema de  coordenadas base  

jacobn  

calcular Jacobiano en el sistema de  coordenadas del efector final  

tr2diff  

TH a vector de movimiento diferencial 

tr2jac  

TH a Jacobiano  

Función  

Descripción  

accel 

calcular dinámica directa  

cinertia 

calcular matriz de inercia de un  manipulador cartesiano  

coriolis 

calcular torque de la articulación  debido a efectos de fuerza  centrípeta/coriolis  

fdyn 

dinámica directa  

friction 

fricción de la articulación 

gravload 

calcular torque de la articulación  debido a la gravedad  

inertia 

calcular matriz de inercia del  manipulador  

itorque 

calcular torque de la articulación  debido a la inercia  

rne 

dinámica inversa  

 

MODELOS  PREDEFINIDOS  MANIPULADORES  

DE 

El  Toolbox  de  Matlab  cuenta  con  la  definición  de  varios  manipuladores  industriales  de  gran  utilidad  para  el  aprendizaje  del  uso  de  las  funciones  del  Toolbox. Los robots predefinidos incluyen:  Fanuc ArcMate 120iB/10L, Motoman HP6,  Puma 560, ABB S4 2.8, y Brazo Stanford.   En  la  tabla  7  se  presentan  las  funciones  para  utilizar  cada  uno  de  los  modelos  11 

predefinidos  y  una  breve  descripción  de  cada una.   2

Tabla 7 Funciones para modelos predefinidos 

Fanuc10L  

Descripción  

Z

1

Función  

0 Fanuc AM120iB/10L yz x

-1

Fanuc ArcMate 120iB/10L (DH,  cinemática)  

-2 2 1

MotomanHP6  

Motoman HP6 (DH, cinemática) 

puma560  

Puma 560 (DH, cinemática,  dinámica)  

puma560akb  

Puma 560 (MDH, cinemática,  dinámica)  

S4ABB2p8  

ABB S4 2.8 (DH, cinemática) 

stanford  

Brazo Stanford (MDH, cinemática,  dinámica)  

twlink  

ejemplo simple de 2 articulaciones  (DH, cinemática)  

2 1

0

0

-1

-1 -2

Y

-2

X

Figura 14 Representación grafica de Fanuc ArcMate  120iB/10L 

El robot Motoman HP6 es un robot multi‐ aplicación  con  seis  grados  de  libertad  que  puede  realizar  actividades  como  empaquetar,  distribuir  o  realizar  soldaduras por arco.  En las figuras 15 y 16  se  observa  el  robot  Motoman  HP6  y  su  representación grafica respectivamente.  

  El  robot  Fanuc  ArcMate  120iB/10L  es  utilizado  para  diferentes  aplicaciones  donde  se  requiere  realizar  distintos  tipos  de  soldadura  por  arco  o  por  chorro  de  plasma,  entre  otros.  Posee  seis  articulaciones. En la figugura 13 se observa  una  fotografía  del  Fanuc  ArcMate  120iB/10L  y  en  la  figura  14  la  representación grafica correspondiente en  MATLAB.  

Figura 15 Robot Motoman HP6 

1.5 1

Z

0.5 0 Motoman HP6 x zy

-0.5 -1 -1.5 1

1

0

Figura 13 Robot Fanuc ArcMate 120iB/10L 

0 -1

Y

-1 X

Figura 16 Representación grafica de Motoman HP6 

12 

TOOLBOX DE ROBÓTICA Y SIMULINK    El  Toolbox  de  Robótica  incluye  un  set  de  bloques  con  la  mayoría  de  las  funciones  del  Toolbox,  las  cuales  pueden  ser  utilizados  en  Simulink.  Para  utilizar  esta  característica  es  necesario  agregar  los  bloques a Simulink, para esto, es necesario  escribir  la  siguiente  línea  en  el  workspace  de MATLAB:    addpath ROBOTDIR/simulink     Para observar los bloques:      roblocks  Al  ejecutar  roblocks  debe  observarse  la  siguiente ventana.  

Simulink  también  tiene  aplicaciones  en  el  área de control y automatización.  

CONCLUSIONES  El  toolbox  de  Robótica  para  MATLAB,  desarrollado  por  el  profesor  Peter  Corke,  permite  simular  y  analizar  manipuladores,  que  generalmente  representan  robots  industriales.  Posee  funciones  para  el  estudio de transformaciones homogéneas,  cuaternios,  matrices  de  rotación,  generación  de  trayectorias,  cinemática  y  dinámica. El código puede ser obtenido de  manera gratuita, sin embargo funciona con  el  software  MATLAB  para  el  cual  es  necesario  poseer  una  licencia  para  poder  utilizarlo.  El  Toolbox  posee  herramientas  matemáticas  poderosas  y  puede  ser  utilizado  en  conjunto  con  Simulink  para  crear  una  gran  variedad  de  aplicaciones,  sin  embargo,  carece  de  una  buena  herramienta para visualización 3D.  

BIBLIOGRAFÍA  Figura 17 Bloques de Robótica para Simulink 

El  Toolbox  incluye  6  demos  con  diferentes  ejemplos  de  aplicaciones  usando  Simulink.  Para  acceder  a  cada  uno  de  estos  demos  simplemente  se  debe  escribir  demo  y  el  numero del demo que se desea visualizar. Es  decir,  si  se  desea  observar  el  primer  demo,  simplemente  es  necesario  escribir  demo1  en  el workspace de MATLAB.  

APLICACIONES  El  Toolbox  de  Robótica  tiene  aplicaciones  principalmente  en  la  robótica  industrial.  Permite  modelar  manipuladores  con  diferentes  números  de  articulaciones.  Es  posible  describir  la  posición  y  orientación  del  extremo  a  través  de  diferentes  herramientas  matemáticas,  además  permite  realizar  cálculos  de  cinemática  y  dinámica.  Utilizado  en  conjunto  con 

[1]    Corke,  P.  (2011,  Mayo  8).  Robotics  Toolbox  for  MATLAB.  Recuperado  de  www.petercorke.com  [2]   Dapena,  E.  (2011,  Mayo  20).  ISPIRO:  Introducción  a  la  Robótica.  Recuperado  de  http://webdelprofesor.ula.ve/ingenieria/eladio/ ISPIRO.htm  [3]   Jroboop.  (s.f.).  Recuperado  el  28  de  Junio  de  2011,  de  http://digilander.libero.it/carmine.lia/jroboop/i ndex.html  [4]   Sourceforge.  (s.f.).  Recuperado  el  27  de  2011,  de  Junio  de  http://sourceforge.net/projects/scirt/  SpaceLib.  (s.f.).  Recuperado  el 28  de  junio  [5]   de 2011, de http://spacelib.ing.unibs.it/  [6]   The  Orocos  Proyect.  (s.f.).  Recuperado  el  27  de  Junio  de  2011,  de  http://www.orocos.org/  [7]   Torres, F., Pomares, J., Gil, P., Puente, S., &  Aracil, R. (2002). Robots y Sistemas Sensoriales .  Madrid: Pearson Educación. 

13 

[8]   Universidad  Don  Bosco.  (s.f.).  Recuperado  el  30  de  Mayo  de  2011,  de  http://www.udb.edu.sv/Academia/Laboratorios /electronica/FRobotica/guia5FRO.pdf  [9]   Wane,  S.  (2011,  Mayo  4).  Staffordshire  University.  Recuperado  de  www.fcet.staffs.ac.uk/sow1/robotmaterial/Mas teringRoboticsToolbox.pdf    

BIOGRAFÍA  M. G. Cabrera actualmente cursa el último  semestre  de  Ingeniería  de  Sistemas,   Departamento  de  Control,  Universidad  de  los  Andes,  Mérida,  Venezuela  (e‐mail:  [email protected]).     

14 

Nombre de archivo: paper_toolbox_de_robotica01 Directorio: C:\Documents and Settings\Eladio\Mis documentos\Dropbox\CLASES\ISPIRO\SEMINARIOS\GABRIELACABR ERA Plantilla: C:\Documents and Settings\Eladio\Datos de programa\Microsoft\Plantillas\Normal.dotm Título: Asunto: Autor: Angelical V4 Palabras clave: Comentarios: Fecha de creación: 05/07/2011 18:11:00 Cambio número: 2 Guardado el: 05/07/2011 18:11:00 Guardado por: Eladio Tiempo de edición: 0 minutos Impreso el: 05/07/2011 18:11:00 Última impresión completa Número de páginas: 14 Número de palabras: 3.874 (aprox.) Número de caracteres: 21.310 (aprox.)

View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF