Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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).
Fundador
u dado de
del Autonomous
uto o ous Syste
Systemss laboratory.
abo ato y
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
3
05/07/2011
Figura 1 Robot SRX‐611
{1}
{2} a2
b2
b1 {0}
Figura 2 Parámetros de Denavit‐ a1
Hartenberg del SRX‐611
4
05/07/2011
SRX-611
-0.5
-1
1
0.5 1
0 0.5
0
-0.5
-0.5
-1 -1
Y X
Figura 3 Representación grafica del SRX‐611
5
05/07/2011
Matrices de Rotación
• Rotación alrededor del eje X MATLAB:
Rx 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)
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
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
plot mostrar cuaternio como rotación 3D
q2tr cuaternio a TH
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)
T=trotx(α)
9
05/07/2011
Transformaciones Homogéneas
• Rotación alrededor del eje Y MATLAB:
T=troty(Ԅ)
T=trotz(θ)
Transformaciones Homogéneas
• Rotación sobre el eje X seguido MATLAB:
p
por una traslación:
T=trotx(α)*transl(px, py, pz)
• Rotación sobre el eje Y seguido MATLAB:
por una traslación:
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
3.5
Z
Y
3
2.5
3
2.5
2.4 2.2 2 1.8 2
1.6 1.4
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
t2r TH a sub‐matriz de rotación
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
tnorm normalizar una TH
11
05/07/2011
Generación de Trayectorias
Ejemplo: 100
Posición de las articulaciones
50
0
0 0.5 1 1.5 2 2.5 3
%ángulos iníciales 50
start=[15 45 30 20 60 30] 0
0 0.5 1 1.5 2 2.5 3
200
%ángulos finales 100
stop=[75 0 120 25 30 0] 0
25
0 0.5 1 1.5 2 2.5 3
t=[0:0.5:3]
20
0 0.5 1 1.5 2 2.5 3
60
[pos vel]=jtraj(start,stop,t) 40
20
0 0.5 1 1.5 2 2.5 3
40
20
subplot(6,1,1);plot(t,pos(:,1)) 0
0 0.5 1 1.5 2 2.5 3
subplot(6,1,2);plot(t,pos(:,2))
subplot(6,1,3);plot(t,pos(:,3)) 40
Velocidad de las articulaciones
subplot(6,1,4);plot(t,pos(:,4)) 20
0
subplot(6,1,5);plot(t,pos(:,5)) 0
0 0.5 1 1.5 2 2.5 3
subplot(6,1,6);plot(t,pos(:,6)) -20
-40
figure 100
0 0.5 1 1.5 2 2.5 3
50
0
%velocidad de cada articulación 4
0 0.5 1 1.5 2 2.5 3
subplot(6,1,1);plot(t,vel(:,1)) 2
0
subplot(6,1,2);plot(t,vel(:,2)) 0
0 0.5 1 1.5 2 2.5 3
subplot(6,1,3);plot(t,vel(:,3)) -10
-20
subplot(6,1,4);plot(t,vel(:,4)) 0
0 0.5 1 1.5 2 2.5 3
subplot(6,1,5);plot(t,vel(:,5)) -10
-20
subplot(6,1,6);plot(t,vel(:,6)) 0 0.5 1 1.5 2 2.5 3
Generación de Trayectorias
Función Descripción
ctraj trayectoria cartesiana
trayectoria cartesiana
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ó deld 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 α
1 q1 l1 0 0
2 90 d2 0 90
3 0 d3 0 0
4 q4 l4 0 0
Cinemática
Ejemplo:
4
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]); 2
xy z
D3 = link([0 0 0 1 1]); 0
Z
robot2
L4 = link([0 0 0 1 0]); -2
rob = robot({L1 D2 D3 L4})
-4
rob.name=‘robot2'; 4
2 4
plot(rob, [0 0 0 0]); 0
0
2
-2 -2
Y -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
tr2jac TH a Jacobiano
15
05/07/2011
Dinámica
Función Descripción
accel calcular dinámica directa
itorque calcular torque de la articulación debido a la inercia
rne dinámica inversa
Modelos Predefinidos de
Manipuladores
2
0
Z
Fanuc AM120iB/10L
-1 yz x
-2
2
1 2
0 1
0
-1
-1
-2 -2
Y X
Figura Robot Fanuc ArcMate 120iB/10L
1.5
0.5
0
Z
Motoman HP6
-0.5 x
zy
-1
-1.5
1
1
0
0
-1 -1
Y X
Figura Robot Motoman HP6
16
05/07/2011
Modelos Predefinidos de
Manipuladores
1
0.5
yz x
Z
Puma 560
-0.5
-1
1
0.5 1
0 0.5
0
-0.5
-0.5
-1 -1
Y X
Figura Robot Puma 560
Z
y x 2.8
S4 ABB
z
-2
-4
4
2 4
0 2
0
-2 -2
-4 -4
Y
Figura Robot ABB S4 2.8 X
Modelos Predefinidos de
Manipuladores
Función Descripción
Fanuc10L Fanuc ArcMate 120iB/10L (DH, cinemática)
puma560 Puma 560 (DH, cinemática, dinámica)
S4ABB2p8 ABB S4 2.8 (DH, cinemática)
twlink ejemplo simple de 2 articulaciones (DH, cinemática)
17
05/07/2011
Para observar los bloques:
roblocks
18
05/07/2011
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, ensamblaje y manipulación de materiales.
desarrollado por el profesor Peter Corke, permite
modelar robots tipo manipulador con diferentes Debido a la importancia anteriormente
números de articulaciones. Es posible describir la descrita de los robots industriales, es
posición y orientación del extremo del robot a imperativo contar con herramientas que
través de diferentes herramientas matemáticas.
permitan simular, analizar y experimentar
Además permite realizar cálculos de cinemática y
dinámica. Su principal aplicación es en el área de con los robots sin necesidad de ser
la robótica industrial. manipularlos directamente de manera
física. Un ejemplo de dichas herramientas
Palabras clave— MATLAB, Peter Corke, robótica
es el Toolbox de Robótica para MATLAB
industrial, toolbox.
[1], el cual fue desarrollado como “hobby”
INTRODUCCIÓN por Peter Corke, Profesor de control y
robótica en la Universidad de Tecnología
La robótica industrial ha jugado un rol
de Queensland en Australia. El Toolbox ha
clave en la automatización de actividades
sido elaborado y mejorado por casi una
como ensamblaje y manufactura, en una
década. Su última publicación es la versión
gran diversidad de industrias alrededor del
8, la cual fue expuesta en diciembre de
mundo. Industrias como la automovilística
2008. Dicha versión posee funciones de
y la de fundición han sido importantes
cinemática, dinámica y generación de
precedentes en la introducción de robots
trayectorias. Permite la representación de
industriales a las líneas de producción. “Se
la posición y orientación del extremo del
considera como un robot industrial a un
robot a través de vectores, matrices de
manipulador multifuncional dotado de un
rotación, transformaciones homogéneas, y
conjunto de grados de libertad con
cuaternios. Proporciona ejemplos de
capacidad de reprogramación, utilizado en
modelos de robots conocidos como el
tareas de de automatización industrial”
Puma560. Incluye un set de bloques que
[7]. Los robots industriales presentan
pueden ser utilizados con Simulink.
grandes beneficios en las líneas de
Conjuntamente, facilita una variedad de
producción ya que pueden realizar tareas
demos creados en Simulink utilizando
de manera rápida y eficiente, algunos
diferentes bloques del Toolbox. El código
poseen una capacidad de carga
fuente está disponible, por lo que puede
importante, además de que pueden ser
ser entendido y utilizado para enseñanza.
utilizados en ambientes hostiles donde un
humano difícilmente podría ESTADO DEL ARTE
desenvolverse. En las diferentes industrias Existen otras herramientas de dominio
realizan actividades como soldadura, público disponibles que permiten simular y
1
analizar manipuladores. Algunos de estos Los primeros cuatro parámetros de la
son SpaceLib, JRoboOp, Toolbox de función anterior son calculados de acuerdo
Robótica para Scilab y Orocos. SpaceLib es a los lineamientos de Denavit‐Hartenberg
una librería desarrollada para ser utilizada y el ultimo parámetro define el tipo de
con MATLAB en el caso de aplicaciones articulación, de rotación o prismática. A
numéricas y con Maple para aplicaciones continuación, se explica brevemente como
simbólicas. SpaceLib [5] posee funciones realizar el cálculo de cada parámetro [7].
para cinemática y dinámica. Otra αi: ángulo entre el eje Zi‐1 y Zi, sobre el
herramienta disponible pero que no fue plano perpendicular a Xi. El signo lo da la
creada para MATLAB es JRoboOp [3]. regla de la mano derecha
Dicha herramienta es un paquete de Java ai: distancia entre los ejes Zi‐1 y Zi, a lo
que permite simular y visualizar en 3D el largo de Xi. El signo lo define el sentido de
modelo de un robot. Proporciona Xi.
funciones de cinemática, dinámica y θi: ángulo que forman los ejes Xi‐1 y Xi,
generación de trayectorias. A diferencia sobre el plano perpendicular a Zi. El signo
del Toolbox de Robótica para Matlab, lo da la regla de la mano derecha.
incluye una mejor visualización 3D del di: distancia a lo largo del eje Zi‐1 desde el
robot. Otra herramienta que posee la origen del sistema Si‐1 hasta la
ventaja de funcionar con software libre es intersección del eje Zi, con el eje Xi. En el
el Toolbox de Robótica para Scilab [4]. caso de articulaciones prismáticas será la
Dicho Toolbox, posee funciones de variable de desplazamiento.
cinemática, dinámica y generación de σi : 0 (rotación) ó 1 (prismática)
trayectorias bastante similares a las del Una vez definida cada articulación el
Toolbox de Robótica de MATLAB, sin siguiente paso es crear un objeto del tipo
embargo no es tan completo. robot. Para esto se utiliza la siguiente
Adicionalmente, existe la herramienta función, cuyo parámetro es un arreglo con
conocida como Orocos (Open Robot la descripción de cada eslabón:
Control Software) [6] también de software variable_robot=robot({L1 L2…Li})
libre, la cual es quizás la más completa de Para obtener una representación grafica
las anteriormente descritas. Consta de una simplemente se utiliza
librería para cinemática y dinámica, una plot(varable_robot,q)
librería para filtrado Bayesiano, y un
donde q es un vector con los ángulos para
conjunto de herramientas para crear
cada articulación.
aplicaciones con robots en tiempo real.
Las funciones anteriormente descritas son
DEFINICIÓN DE UN NUEVO ROBOT utilizadas en el siguiente ejemplo, donde
Una forma de definir un nuevo robot se realiza la definición de un robot SRX‐
utilizando el Toolbox de Robótica, es 611. Dicho robot es del tipo “pick and
realizando primero una descripción de place”, es fabricado por la Sony, y posee
cada articulación o eslabón del robot. La tres articulaciones. Dos de las
función que se utiliza es la siguiente: articulaciones son de rotación y la tercera
Li=link([αi ai θi di σi ]) es prismática. Es utilizado en industrias de
2
manufactura de electrónicos, d2= ‐85.5 mm
farmacéutica, entre otros. α2= 0
θ2 = θ2 {variable, rotación}
Ejemplo: Eslabón 3:
En la figura 1 se aprecia una fotografía de a3 = 0 mm
un robot SRX‐611. 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:
Figura 1 Robot SRX‐611
%Ejemplo 1: Definición de un nuevo robot
En la figura 2 se observa una
representación grafica del robot SRX‐611 %Definir cada articulación de acuerdo a los
donde se señalan algunos de los parámetros de Denavit‐Hartenberg
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
Figura 2 Parámetros de Denavit‐Hartenberg del SRX‐611 srx.name='SRX‐611';
Como se dijo anteriormente, primero es
necesario definir los parámetros de %Si se desea especificar fabricante
Denavit‐Hartenberg para cada articulación. srx.manuf='Sony';
Eslabón 1:
a1 = 350 mm %Mostrar representación gráfica del robot
d1= 460.5 mm plot(srx,[0 0 0]);
α1 = 0
θ1 = θ1 {variable, rotación}
Eslabón 2:
a2 = 250 mm
3
Rotación alrededor del eje X:
0.5 yz x
0
MATLAB: rotx(α)
Z
SRX-611
-0.5
-1
1
Rotación alrededor del eje Y:
0.5 1
0 0.5
0
-0.5
-0.5
-1 -1
Y X
Figura 3 Representación grafica del SRX‐611
MATLAB: T=roty( )
En la figura 3 se aprecia la grafica obtenida
al ejecutar la función plot. Donde,
evidentemente se observa una Rotación alrededor del eje Z:
representación grafica sencilla del robot
SRX‐611.
Es importante destacar que con las
funciones descritas anteriormente
MATLAB: T=rotz(θ)
simplemente es posible realizar una
descripción básica del robot, resta analizar
qué funciones pueden ser utilizadas como En la tabla 1 se presentan las funciones del
herramientas matemáticas para Toolbox de Robótica relacionadas con las
representar el movimiento espacial del matrices de rotación y una breve
extremo del robot. descripción de las mismas.
Tabla 1 Funciones para matrices de rotación
MATRICES DE ROTACIÓN
Una forma de representar la orientación Función Descripción
de un sistema de coordenadas respecto a
otro fijo es mediante las matrices de angevecr forma angular/vectorial a matriz de
rotación [2]. A través de las matrices de rotación (MR)
rotación es posible analizar la orientación eul2r ángulo de Euler a MR
del efector final del robot respecto a su
rotx MR para rotación alrededor del eje X
base.
Es posible que se presenten rotaciones roty MR para rotación alrededor del eje Y
alrededor del eje X, Y, Z o combinaciones rotz MR para rotación alrededor del eje Z
de éstas. A continuación, se presentan
rpy2r ángulos roll/pitch/yaw a MR
algunas matrices de rotación y su función
correspondiente en MATLAB. Es r2t MR a Transformación homogénea
importante destacar que los ángulos
Existen herramientas matemáticas
deben ser definidos en radianes.
alternativas que al igual que las matrices
de rotación representan la orientación de
un objeto. Algunas de éstas incluyen los
4
angulos roll, pitch, yaw de Euler y los * multiplicar cuaternio por un cuaternio
cuaternios. o un vector
CUATERNIOS inv invertir un cuaternio
Los cuaternios fueron definidos por norm magnitud de un cuaternio
Hamilton para definir giros y
orientaciones. Poseen la ventaja de que plot mostrar cuaternio como rotación 3D
son más compactos y sencillos de calcular q2tr cuaternio a TH
computacionalmente que las matrices de
quaternion construir cuaternio
rotación. Representan un giro de θ grados
alrededor de un vector k [2]. qinterp interpolar cuaternio
Generalmente, posee una parte escalar y
unit cuaternio unitario
una parte vectorial. Puede representarse
como:
Con las matrices de rotación y los
cuaternios es posible representar la
En MATLAB la definición puede realizarse orientación del extremo del robot, sin
de la siguiente forma: embargo, también es importante tener
conocimiento sobre la posición del mismo.
Una herramienta que permite representar
Ejemplo: tanto la orientación como la posición son
Obtener el cuaternio que representa una las matrices de transformación
rotación de 90° sobre el eje k( 3, ‐2, 1). homogénea.
% Nota: el ángulo debe estar expresado en TRANSFORMACIONES HOMOGÉNEAS
radianes En robótica resulta de gran utilidad poseer
Q=quaternion([3 ‐2 1],(pi/2)) un mecanismo que permita localizar un
objeto de acuerdo a su posición y
orientación respecto a un sistema de
referencia.
En la tabla 2 se muestran las funciones Para describir la posición y orientación de
disponibles en el Toolbox de Robótica para un objeto es posible utilizar la matriz de
manejar cuaternios y una breve transformación homogénea definida por
descripción de cada una. Forest [7]:
Tabla 2 Funciones para cuaternios
Función Descripción
+ adición
‐ substracción Esta matriz 4x4 está compuesta por cuatro
submatrices, de las cuales solo los
/ dividir cuaternio entre un cuaternio o
un escalar componentes de rotación y traslación
resultan de interés para la robótica.
5
Rotación sobre el eje X, seguido por una
traslación:
En robótica es posible tener
transformaciones que representan solo
traslación, solo rotación, o combinaciones
de ambas. Seguidamente, se presentan las
MATLAB: T=trotx(α)*transl(px, py, pz)
matrices para varias transformaciones
homogéneas y su función correspondiente
en MATLAB. Es importante destacar que Rotación sobre el eje Y, seguido por una
los ángulos deben ser definidos en traslación:
radianes.
Matriz de Traslación:
MATLAB: T=troty( )*transl(px, py, pz)
MATLAB: T=transl(px, py, pz) En el siguiente ejemplo se muestra el
código escrito en MATLAB, donde se llevan
Rotación alrededor del eje X: 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
MATLAB: T=trotx(α) transformación T.
Rotación alrededor del eje Y: Ejemplo:
%Ejemplo 2 Transformaciones
Homogéneas
MATLAB: T=troty( )
%Matriz de traslación
T=transl(1,1,1);
Rotación alrededor del eje z
trplot(T)
%Matriz para una rotación alrededor del
eje X
MATLAB: T=trotz(θ) Tx=trotx(0.2);
figure
trplot(Tx)
6
1.2
%Matriz para una rotación alrededor del 1
eje Y 0.8
Z
Ty=troty(0.2); 0.6
0.4
figure
Z
0.2
trplot(Ty) 0
Y
-0.2
-0.4
X
%Matriz para una rotación alrededor del -0.6
1
eje Z 0.5
0
0 0.5 1
Tz=trotz(0.2); Y
X
figure Figura 6 Rotación alrededor del eje Y
trplot(Tz)
%Composición de varias transformaciones 1
tr = trotx(.2)*troty(.3)*transl(1,2,3) 0.8
Z
figure 0.6
Z
0.4
trplot(tr)
0.2
X
0 Y
2 1
Z
0.8
0.6 0.5
1.8 0.4
0.2 0
0
1.6 Y X
Z
1.4
Figura 7 Rotación alrededor del eje Z
1.2 X
1
2
1
1.5
Y 1.5
1 4
2
X Y
3.5 Z
Figura 4 Traslación
Z
Y
3
1 2.5 X
Z
0.8
2.4
0.6 2.2 3
2 2.5
1.8
1.6 2
1.4
Z
0.4
Y X
Y
0.2
Figura 8 Combinación de varias operaciones
0
0 X En las figuras 4, 5, 6, 7 y 8 se aprecia cómo las
0.5
1 0 0.2 0.4 0.6 0.8
coordenadas originales cambian debido a una
X Y
transformación homogénea. Las nuevas
Figura 5 Rotación alrededor del eje X coordenadas son las de color azul mientras
7
que en negro se observan las coordenadas %Ejemplo 2 Generación de Trayectorias
originales.
Con las transformaciones homogéneas es
clc
posible representar la posición y
orientación del extremo del robot. Sin %ángulos iníciales
embargo, para entender más a fondo las start=[15 45 30 20 60 30];
capacidades del robot es necesario %ángulos finales
estudiar las funciones del Toolbox que stop=[75 0 120 25 30 0];
representan las trayectorias y
%vector de tiempo
movimientos de cada articulación.
t=[0:0.5:3];
GENERACIÓN DE TRAYECTORIAS
En ciertas aplicaciones puede ser
[pos vel]=jtraj(start,stop,t);
necesario programar un robot para que su
extremo describa una trayectoria
específica, o conocer qué trayectoria se %posición de cada articulación
generará al moverse de un punto a otro. subplot(6,1,1);plot(t,pos(:,1))
Para esto el Toolbox cuenta con las subplot(6,1,2);plot(t,pos(:,2))
funciones jtraj y ctraj.
subplot(6,1,3);plot(t,pos(:,3))
La función jtraj devuelve una trayectoria
subplot(6,1,4);plot(t,pos(:,4))
generada al mover las articulaciones desde
un conjunto de coordenadas original hacia subplot(6,1,5);plot(t,pos(:,5))
otro conjunto de coordenadas. subplot(6,1,6);plot(t,pos(:,6))
Opcionalmente, puede devolver la figure
velocidad y aceleración de cada
articulación.
%velocidad de cada articulación
La función ctraj devuelve una trayectoria
subplot(6,1,1);plot(t,vel(:,1))
cartesiana (línea recta) desde un punto a
otro, ambos representados por una subplot(6,1,2);plot(t,vel(:,2))
transformación homogénea. Es necesario subplot(6,1,3);plot(t,vel(:,3))
especificar el número de puntos que se subplot(6,1,4);plot(t,vel(:,4))
trazarán. subplot(6,1,5);plot(t,vel(:,5))
En el siguiente ejemplo [9], se muestra el subplot(6,1,6);plot(t,vel(:,6))
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’.
8
Tabla 3 Funciones para trayectorias
Posición de las articulaciones
100
50
Función Descripción
0
0 0.5 1 1.5 2 2.5 3
50 ctraj trayectoria cartesiana
0 jtraj trayectoria de una articulación
0 0.5 1 1.5 2 2.5 3
200
100
trinterp interpolar TH
0
0 0.5 1 1.5 2 2.5 3
25
CINEMÁTICA
20
0 0.5 1 1.5 2 2.5 3 La cinemática se encarga de estudiar el
60
40 movimiento del robot, sin tomar en cuenta
20
0 0.5 1 1.5 2 2.5 3 las leyes físicas que lo generan, se limita a
40
20
estudiar trayectorias en función del tiempo.
0
0 0.5 1 1.5 2 2.5 3
La cinemática puede ser abordada desde dos
puntos de vista: la cinemática directa y la
Figura 9 Posición de cada articulación cinemática inversa.
La cinemática directa calcula la posición y
Velocidad de las articulaciones orientación del extremo del robot a partir del
40
20 valor de las coordenadas de las articulaciones
0
0 0.5 1 1.5 2 2.5 3 del robot [2].
0
-20 En MATLAB la definición puede realizarse de
-40
0 0.5 1 1.5 2 2.5 3 la siguiente manera:
100
50 T = fkine(robot, q)
0
0 0.5 1 1.5 2 2.5 3 fkine calcula la cinemática directa para un
4
2 vector ‘q‘ que representa las coordenadas de
0
0 0.5 1 1.5 2 2.5 3 la articulación y devuelve una matriz de
0
-10
transformación homogénea que describe el
-20
0 0.5 1 1.5 2 2.5 3
efector final.
0 La cinemática inversa calcula el valor de las
-10
-20 coordenadas de las articulaciones a partir de
0 0.5 1 1.5 2 2.5 3
la posición y orientación del extremo del
robot [2].
Figura 10 Velocidad de cada articulación
En MATLAB la definición puede realizarse de
En las figuras 9 y 10, puede observarse la siguiente manera:
respectivamente la posición y velocidad de q = ikine(robot, T)
cada articulación. En la siguiente tabla se
ikine devuelve las coordenadas de la
incluyen las funciones relacionadas con
generación de trayectorias y una breve articulación para el manipulador descrito por
descripción. el objeto robot. T es una matriz de
9
transformación homogénea que describe el %Definir cada articulación de acuerdo a los
efector final. parámetros de Denavit‐Hartenberg
En el ejemplo que se muestra seguidamente L1 = link([0 0 0 1 0]);
D2 = link([pi/2 0 pi/2 1 1]);
se realiza la definición de un robot cilíndrico
D3 = link([0 0 0 1 1]);
y, posteriormente, el cálculo de la cinemática L4 = link([0 0 0 1 0]);
directa e inversa para el mismo.
%Crear un objeto del tipo robot
Ejemplo [8]: rob = robot({L1 D2 D3 L4});
Como se explicó anteriormente, primero es rob.name='robot2';
necesario definir los parámetros de Denavit‐
%Mostrar representación gráfica del robot
Hartenberg.
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:
Figura 11 Robot cilíndrico
T 2= fkine(rob,[‐pi/4 0.5 0.5 pi/3])
Tabla 4 Parámetros de Denavit‐Hartenberg para el robot
cilíndrico
%Cálculo de la cinemática inversa:
Articulación θ d a α
qi = ikine(rob,T,[0 0 0 0],[1 1 1 1 0 0])
1 q1 l1 0 0
robot2
-2
En la tabla 4 se muestra el valor de cada uno -4
de los parámetros necesarios para definir el 4
2 4
robot. El código escrito en MATLAB para el 0
0
2
-2
ejemplo es el siguiente: Y -4 -4
-2
X
Figura 12 Representación grafica del robot cilíndrico
%Ejemplo 3: Cinemática directa e inversa
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
friction fricción de la articulación
Función Descripción
gravload calcular torque de la articulación
diff2tr vector de movimiento diferencial a TH debido a la gravedad
inertia calcular matriz de inercia del
fkine calcular cinemática directa manipulador
11
predefinidos y una breve descripción de
cada una.
2
Tabla 7 Funciones para modelos predefinidos
1
Función Descripción 0
Z
Fanuc AM120iB/10L
-1 yz x
Fanuc10L Fanuc ArcMate 120iB/10L (DH,
cinemática) -2
2
1 2
1
MotomanHP6 Motoman HP6 (DH, cinemática) 0
-1
0
-1
-2 -2
Y X
puma560 Puma 560 (DH, cinemática,
dinámica) Figura 14 Representación grafica de Fanuc ArcMate
120iB/10L
puma560akb Puma 560 (MDH, cinemática,
dinámica) El robot Motoman HP6 es un robot multi‐
S4ABB2p8 ABB S4 2.8 (DH, cinemática) aplicación con seis grados de libertad que
puede realizar actividades como
stanford Brazo Stanford (MDH, cinemática,
dinámica)
empaquetar, distribuir o realizar
soldaduras por arco. En las figuras 15 y 16
twlink ejemplo simple de 2 articulaciones se observa el robot Motoman HP6 y su
(DH, cinemática) 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
Figura 15 Robot Motoman HP6
MATLAB.
1.5
0.5
0
Z
Motoman HP6
-0.5 x
zy
-1
-1.5
1
1
0
0
-1
Figura 13 Robot Fanuc ArcMate 120iB/10L Y
-1
X
Figura 16 Representación grafica de Motoman HP6
12
TOOLBOX DE ROBÓTICA Y SIMULINK Simulink también tiene aplicaciones en el
El Toolbox de Robótica incluye un set de área de control y automatización.
bloques con la mayoría de las funciones CONCLUSIONES
del Toolbox, las cuales pueden ser El toolbox de Robótica para MATLAB,
utilizados en Simulink. Para utilizar esta desarrollado por el profesor Peter Corke,
característica es necesario agregar los permite simular y analizar manipuladores,
bloques a Simulink, para esto, es necesario que generalmente representan robots
escribir la siguiente línea en el workspace industriales. Posee funciones para el
de MATLAB: estudio de transformaciones homogéneas,
addpath ROBOTDIR/simulink cuaternios, matrices de rotación,
generación de trayectorias, cinemática y
Para observar los bloques: dinámica. El código puede ser obtenido de
manera gratuita, sin embargo funciona con
roblocks el software MATLAB para el cual es
Al ejecutar roblocks debe observarse la necesario poseer una licencia para poder
siguiente ventana. 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 [1] Corke, P. (2011, Mayo 8). Robotics
Toolbox for MATLAB. Recuperado de
El Toolbox incluye 6 demos con diferentes www.petercorke.com
ejemplos de aplicaciones usando Simulink. [2] Dapena, E. (2011, Mayo 20). ISPIRO:
Para acceder a cada uno de estos demos Introducción a la Robótica. Recuperado de
http://webdelprofesor.ula.ve/ingenieria/eladio/
simplemente se debe escribir demo y el
ISPIRO.htm
numero del demo que se desea visualizar. Es
[3] Jroboop. (s.f.). Recuperado el 28 de Junio
decir, si se desea observar el primer demo, de 2011, de
simplemente es necesario escribir demo1 en http://digilander.libero.it/carmine.lia/jroboop/i
el workspace de MATLAB. ndex.html
APLICACIONES [4] Sourceforge. (s.f.). Recuperado el 27 de
Junio de 2011, de
El Toolbox de Robótica tiene aplicaciones http://sourceforge.net/projects/scirt/
principalmente en la robótica industrial. [5] SpaceLib. (s.f.). Recuperado el 28 de junio
Permite modelar manipuladores con de 2011, de http://spacelib.ing.unibs.it/
diferentes números de articulaciones. Es [6] The Orocos Proyect. (s.f.). Recuperado el
posible describir la posición y orientación 27 de Junio de 2011, de
del extremo a través de diferentes http://www.orocos.org/
herramientas matemáticas, además [7] Torres, F., Pomares, J., Gil, P., Puente, S., &
permite realizar cálculos de cinemática y Aracil, R. (2002). Robots y Sistemas Sensoriales .
Madrid: Pearson Educación.
dinámica. Utilizado en conjunto con
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:
mariacabrera@ula.ve).
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.)