Sie sind auf Seite 1von 35

05/07/2011

Toolbox de Robtica para


Matlab
MaraGabrielaCabrera

Contenido
Introduccin
PeterCorke
Instalacin
DefinicindeunNuevoRobot
MatricesdeRotacin
Cuaternios
TransformacionesHomogneas
GeneracindeTrayectorias
y
Cinemtica
Dinmica
ModelosPredefinidosdeManipuladores
Toolboxderobticaysimulink
Conclusiones

05/07/2011

Introduccin
RobotsIndustriales
DesarrolladoporPeterCorke.
Versin8(2008).
Incluyefuncionesdecinemtica,
dinmica,ygeneracinde
trayectorias.
trayectorias

Peter Corke
Titulo de pregrado y maestra en Ingeniera Elctrica
(Universidad de Melbourne).
Titulo PhD en Ingeniera Mecnica y de Manufactura
(Universidad de Melbourne).
PresidenteEditor 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/RollsRoyce y Australian
Engineering Excellence.
Profesor de control y robtica en la Universidad de Tecnologa
de Queensland.

05/07/2011

Instalacin
1.

Descargarpaqueteen
http://www.petercorke.com/RTB/signin.php

2.

Llenarinformacinrequerida.

3.

ExtraerpaqueterobotenC:\Program
Files\MATLAB\R2009a\Toolbox

4
4.

Abrir
AbrirMATLAB
MATLAB

5.

AgregareldirectoriorobotalMATLABPATH
file>>setpath>>add folder>>robot>>ok>>save

Definicin de un Nuevo Robot


DefinicinenMATLAB:
Li=link([i a i i d i i ])
i nguloentreelejeZ

l
t
l j Zi1 yZZi,sobreelplano
b
l l
perpendicularaXi.Elsignolodalaregladelamano
derecha
ai distanciaentrelosejesZi1 yZi,alolargodeXi.El
signolodefineelsentidodeXi.
i:nguloqueformanlosejesXi1 yXi,sobreelplano
perpendicularaZi.Elsignolodalaregladelamano
derecha.
derecha
di:distanciaalolargodelejeZi1 desdeelorigendel
sistemaSi1 hastalainterseccindelejeZi,coneleje
Xi.Enelcasodearticulacionesprismticasserla
variablededesplazamiento.
i:0(rotacin)1(prismtica)

05/07/2011

Definicin de un Nuevo Robot


Ejemplo:

Figura1RobotSRX611

Definicin de un Nuevo Robot


DefinirlosparmetrosdeDenavitHartenberg.

{1}

{2}

a2
b2
b1

Figura2ParmetrosdeDenavit
Hartenberg delSRX611

{0}

a1

05/07/2011

Definicin de un Nuevo Robot


DefinirlosparmetrosdeDenavitHartenberg.
Eslabn1:
a1 =350mm
350 mm
d1=460.5mm
1 =0
1 =1{variable,rotacin}

Eslabn2:
a2=250mm
d2=85.5mm
2=0
2=2{variable,rotacin}

Eslabn3:
a3=0mm
d3=d3{variable,prismtica}
3=0
3=0

Definicin de un Nuevo Robot


DefinicinenMATLAB:

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({L1L2L3});
srx.name='SRX611';
1
srx.manuf='Sony';
0.5
plot(srx,[000]);

yz x

0
SRX-611
-0.5
-1
1
0.5
0.5

0
-0.5
Y

-1

-0.5
-1

0
X

Figura3RepresentacingraficadelSRX611

05/07/2011

Matrices de Rotacin
Rotacin alrededordelejeX

Rx

MATLAB:

Rx=rotx()

RotacinalrededordelejeY

MATLAB:

Ry

Ry=roty( )

Matrices de Rotacin
Rotacin alrededordelejeZ:

MATLAB:
Rz=rotz()

Rz

MatrizderotacinamatrizdeTH:

MATLAB:
T=r2t(R)

05/07/2011

Matrices de Rotacin
Funcin

Descripcin

angevecr

forma angular/vectorialamatrizderotacin(MR)
angular/vectorial a matriz de rotacin (MR)

eul2r

ngulodeEuler aMR

rotx

MRpararotacinalrededordelejeX

roty

MRpararotacinalrededordelejeY

rotz

MR pararotacinalrededordelejeZ

rpy2r

ngulosroll/pitch/yaw aMR

r2tt

MRaTH

Cuaternios
DefinidosporHamiltonparatrabajarcongirosyorientaciones.
UncuaternioQestconstituidoporcuatrocomponentes{q0,
q1,q2,q3}querepresentanalcuaterniobase{e,i,j,k}.
Paralautilizacindeloscuaternioscomometodologade
representacindeorientacin,serealizaunaasociacin
arbitrariadelgirodeunngulo sobreunvectorkalcuaternio
definidopor:
p

05/07/2011

Cuaternios
Ejemplo:
q
p
Obtenerelcuaternioquerepresentaunarotacinde90
sobre
elejek(3,2,1).

Matlab:
Q=quaternion(k,)
Q=quaternion([321],(pi/2))

Cuaternios
Funcin

Descripcin

adicin

substraccin

dividircuaternioentreun cuaternioounescalar

multiplicarcuaternioporun cuaternioounvector

inv

invertiruncuaternio

norm

magnitud deuncuaternio

plot

mostrarcuaterniocomorotacin 3D

q2tr

cuaternioaTH

quaternion

construir cuaternio

qinterp

interpolarcuaternio

unit

cuaterniounitario

05/07/2011

Transformaciones Homogneas

Transformaciones Homogneas
Matrizdetraslacin

MATLAB:

T=transl(px,py,pz)

Rotacin alrededordelejeX

MATLAB:

T=trotx()

05/07/2011

Transformaciones Homogneas
RotacinalrededordelejeY

MATLAB:

T=troty( )

Rotacin alrededordelejez

MATLAB:

T=trotz()

Transformaciones Homogneas
RotacinsobreelejeXseguido
p
porunatraslacin:

MATLAB:

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

RotacinsobreelejeYseguido
porunatraslacin:

MATLAB:

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

10

05/07/2011

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

3.5
Y
3
X
2.5

2.4 2.2

2 1.8

1.6 1.4

2.5

Figura4Combinacindevariasoperaciones

Transformaciones Homogneas
Funcin

Descripcin

angevec2tr

forma angular/vectorialatransformacinhomognea
(TH)

eul2tr

ngulodeEuler aTH

oa2tr
rpy2tr

ngulosroll/pitch/yaw aTH

tr2angvec

THomatrizderotacinaforma angular/vectorial

tr2eul

THomatrizderotacin enngulosdeEuler

t2r

TH asubmatrizderotacin

tr2rpy

THomatrizderotacina ngulosroll/pitch/yaw

trotx

THpararotacinalrededordelejeX

troty

THpararotacinalrededordelejeY

trotz

THpararotacinalrededordelejeZ

transl

fijaroextraerel componentedetraslacindeunaTH

tnorm

normalizarunaTH

trplot

graficarelsistemadecoordenadas deunaTH

11

05/07/2011

Generacin de Trayectorias
Ejemplo:

Posicin de las articulaciones

100
50
0

%ngulosinciales
start=[154530206030]
%ngulosfinales
stop=[75012025300]
t=[0:0.5:3]

50
0
200

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

100
0
25
20
60

[posvel]=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
%velocidaddecadaarticulacin
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.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

Generacin de Trayectorias
Funcin

Descripcin

ctraj

trayectoria cartesiana
trayectoriacartesiana

jtraj

trayectoria deunaarticulacin

trinterp

interpolarTH

12

05/07/2011

Cinemtica
Cinemtica Directa
Consiste en determinar cul es la posicin y orientacin 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 parmetros geomtricos de
los componentes del robot.
Cinemtica Inversa
En este caso el problema consiste en resolver la configuracin
que debe
d b adoptar
d t ell robot
b t para una posicin
i i y orientacin
i t i del
d l
extremo conocida.

Cinemtica
MATLAB:
Cinemtica Directa
T = fkine(robot,
fki ( b q))
fkine calcula la cinemtica directa para un vector q que
representa las coordenadas de la articulacin. Devuelve una
matriz de transformacin homognea que describe el efector
final.
Cinemtica Inversa
q = ikine(robot, T)
ikine devuelve las coordenadas de la articulacin para el
manipulador descrito por el objeto robot. T es una matriz de
transformacin homognea que describe el efector final.

13

05/07/2011

Cinemtica
Ejemplo:

Articulacin

q1

l1

90

d2

90

d3

q4

l4

Cinemtica
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/20pi/211]);
D3=link([00011]);
L4=link([00010]);
rob=robot({L1D2D3L4})
rob.name=robot2';
plot(rob,[0000]);

0
robot2
-2

-4
4
2

4
2

-2
Y

-2
-4

-4

Paraundesplazamientodelasarticulacionesprismticasde1
P
d l
i t d l
ti l i
i ti
d 1
unidadtenemos:
T=fkine(rob,[0110])

14

05/07/2011

Cinemtica
Ejemplo:
Paralascoordenadasdelasarticulacionesq=[pi/40.50.5
pi/3] se obtiene la siguiente matriz de transformacin:
pi/3]seobtienelasiguientematrizdetransformacin:
T=fkine(rob,[pi/40.50.5pi/3])

Calculodelacinemticainversa:
qi =ikine(rob,T,[0000],[111100])

Cinemtica
Funcin

Descripcin

diff2tr

vectordemovimientodiferencialaTH

fkine

calcularcinemticadirecta
calcular cinemtica directa

ftrans

transformarfuerza/movimiento

ikine

calcularcinemtica inversa

ikine560

calcularcinemtica inversa paraunbrazotipoPuma


560

jacob0

calcular Jacobianoensistemadecoordenadasbase

jacobn

calcularJacobiano enelsistemadecoordenadasdel
efectorfinal

tr2diff

THavectordemovimientodiferencial

tr2jac

THaJacobiano

15

05/07/2011

Dinmica
Funcin

Descripcin

accel

calcular dinmicadirecta

cinertia

calcular matrizdeinerciadeunmanipulador
matriz de inercia de un manipulador
cartesiano

coriolis

calculartorquede laarticulacindebidoaefectosde
fuerzacentrpeta/coriolis

fdyn

dinmicadirecta

friction

friccindela articulacin

gravload

calculartorquedelaarticulacindebido alagravedad

inertia

calcularmatrizdeinercia delmanipulador

itorque

calculartorquedelaarticulacindebidoalainercia

rne

dinmicainversa

Modelos Predefinidos de
Manipuladores
2

1
0
Fanuc AM120iB/10L
yz x

-1
-2
2
1

2
1

-1
-2

-1
-2

FiguraRobotFanuc ArcMate 120iB/10L

1.5
1

0.5
0
Motoman HP6
x
zy

-0.5
-1
-1.5
1

0
-1

-1
X

FiguraRobotMotoman HP6

16

05/07/2011

Modelos Predefinidos de
Manipuladores
1
0.5

yz x

0
Puma 560
-0.5
-1
1
0.5

1
0.5

-0.5
-1

-0.5
-1

FiguraRobotPuma560
4
2

0
y x 2.8
S4 ABB
z
-2
-4
4
2

4
2

-2
Y

FiguraRobotABBS42.8

-4

-2
-4

Modelos Predefinidos de
Manipuladores
Funcin

Descripcin

Fanuc10L

Fanuc ArcMate 120iB/10L(DH,cinemtica)

MotomanHP6

Motoman HP6(DH,cinemtica)

puma560

Puma560(DH,cinemtica,dinmica)

puma560akb

Puma 560(MDH,cinemtica,dinmica)

S4ABB2p8

ABBS42.8(DH,cinemtica)

stanford

BrazoStanford (MDH,cinemtica,dinmica)

twlink

ejemplosimplede2articulaciones(DH,cinemtica)

17

05/07/2011

Toolbox de robtica y simulink


Parautilizarestacaracterstica:
p
addpath
ROBOTDIR/simulink
Paraobservarlosbloques:
roblocks

Toolbox de robtica y simulink


Demos:

18

05/07/2011

Toolbox de robtica y simulink


Demos:

Conclusiones

19

05/07/2011

Referencias
Corke,P.(2011,Mayo8).Robotics Toolboxfor MATLAB.Recuperadode
www.petercorke.com
Dapena,E.(2011,Mayo20).ISPIRO:Introduccinalarobtica.Recuperado
dehttp://webdelprofesor.ula.ve/ingenieria/eladio/ISPIRO.htm
//
/
/
/
Sourceforge.(s.f.).Recuperadoel27deJuniode2011,de
http://sourceforge.net/projects/scirt/
SpaceLib.(s.f.).Recuperadoel28dejuniode2011,de
http://spacelib.ing.unibs.it/
The Orocos Proyect.(s.f.).Recuperadoel27deJuniode2011,de
http://www.orocos.org/
Torres,F.,Pomares,J.,Gil,P.,Puente,S.,&Aracil,R.(2002).Robotsy
SistemasSensoriales. Madrid:Pearson Educacin.
UniversidadDonBosco. (s.f.).Recuperadoel30deMayode2011,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,Mayo4).StaffordshireUniversity.Recuperadode
www.fcet.staffs.ac.uk/sow1/robotmaterial/MasteringRoboticsToolbox.pdf

Toolbox de Robtica
MaraGabrielaCabrera

20

ToolboxdeRobtica

MaraGabrielaCabrera
LaboratoriodeSistemasDiscretos,AutomatizacineIntegracin
LaSDAIULA
Julio,2011
ResumenEl Toolbox de Robtica para Matlab,
desarrolladoporelprofesorPeterCorke,permite
modelar robots tipo manipulador con diferentes
nmeros de articulaciones. Es posible describir la
posicin y orientacin del extremo del robot a
travs de diferentes herramientas matemticas.
Adems permite realizar clculos de cinemtica y
dinmica. Su principal aplicacines enelreade
larobticaindustrial.

Palabras clave MATLAB, Peter Corke, robtica


industrial,toolbox.

INTRODUCCIN
La robtica industrial ha jugado un rol
clave en la automatizacin de actividades
como ensamblaje y manufactura, en una
grandiversidaddeindustriasalrededordel
mundo.Industriascomolaautomovilstica
y la de fundicin han sido importantes
precedentes en la introduccin de robots
industrialesalaslneasdeproduccin.Se
considera como un robot industrial a un
manipulador multifuncional dotado de un
conjunto de grados de libertad con
capacidaddereprogramacin,utilizadoen
tareas de de automatizacin industrial
[7]. Los robots industriales presentan
grandes beneficios en las lneas de
produccin ya que pueden realizar tareas
de manera rpida y eficiente, algunos
poseen una capacidad de carga
importante, adems de que pueden ser
utilizadosenambienteshostilesdondeun
humano
difcilmente
podra
desenvolverse.Enlasdiferentesindustrias
realizan actividades como soldadura,

ensamblajeymanipulacindemateriales.
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
fsica.Unejemplodedichasherramientas
es el Toolbox de Robtica para MATLAB
[1],elcualfuedesarrolladocomohobby
por Peter Corke, Profesor de control y
robtica en la Universidad de Tecnologa
deQueenslandenAustralia.ElToolboxha
sido elaborado y mejorado por casi una
dcada.Sultimapublicacineslaversin
8, la cual fue expuesta en diciembre de
2008. Dicha versin posee funciones de
cinemtica, dinmica y generacin de
trayectorias. Permite larepresentacin de
la posicin y orientacin del extremo del
robot a travs de vectores, matrices de
rotacin,transformacioneshomogneas,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. Elcdigo
fuente est disponible, por lo que puede
serentendidoyutilizadoparaenseanza.

ESTADODELARTE
Existen otras herramientas de dominio
pblicodisponiblesquepermitensimulary

analizar manipuladores. Algunos de estos


son SpaceLib, JRoboOp, Toolbox de
RobticaparaScilabyOrocos.SpaceLibes
unalibreradesarrolladaparaserutilizada
con MATLAB en el caso de aplicaciones
numricas y con Maple para aplicaciones
simblicas. SpaceLib [5] posee funciones
para cinemtica y dinmica. 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 cinemtica, dinmica y
generacin de trayectorias. A diferencia
del Toolbox de Robtica para Matlab,
incluye una mejor visualizacin 3D del
robot. Otra herramienta que posee la
ventajadefuncionarconsoftwarelibrees
el Toolbox de Robtica para Scilab [4].
Dicho Toolbox, posee funciones de
cinemtica, dinmica y generacin de
trayectorias bastante similares a las del
Toolbox de Robtica de MATLAB, sin
embargo no es tan completo.
Adicionalmente, existe la herramienta
conocida como Orocos (Open Robot
ControlSoftware)[6]tambindesoftware
libre,lacualesquizslamscompletade
lasanteriormentedescritas.Constadeuna
librera para cinemtica y dinmica, una
librera para filtrado Bayesiano, y un
conjunto de herramientas para crear
aplicacionesconrobotsentiemporeal.

DEFINICINDEUNNUEVOROBOT
Una forma de definir un nuevo robot
utilizando el Toolbox de Robtica, es
realizando primero una descripcin de
cada articulacin o eslabn del robot. La
funcinqueseutilizaeslasiguiente:
Li=link([iaiidii])

Los primeros cuatro parmetros de la


funcinanteriorsoncalculadosdeacuerdo
a los lineamientos de DenavitHartenberg
y el ultimo parmetro define el tipo de
articulacin, de rotacin o prismtica. A
continuacin,seexplicabrevementecomo
realizarelclculodecadaparmetro[7].
i: ngulo entre el eje Zi1 y Zi, sobre el
plano perpendicular a Xi. El signo lo da la
regladelamanoderecha
ai: distancia entre los ejes Zi1 y Zi, a lo
largodeXi.Elsignolodefineelsentidode
Xi.
i: ngulo que forman los ejes Xi1 y Xi,
sobreelplanoperpendicularaZi.Elsigno
lodalaregladelamanoderecha.
di:distanciaalolargodelejeZi1desdeel
origen del sistema Si1 hasta la
interseccin del eje Zi, con el eje Xi. En el
caso de articulaciones prismticas ser la
variablededesplazamiento.
i:0(rotacin)1(prismtica)
Una vez definida cada articulacin el
siguiente paso es crear un objeto del tipo
robot. Para esto se utiliza la siguiente
funcin,cuyoparmetroesunarreglocon
ladescripcindecadaeslabn:
variable_robot=robot({L1L2Li})
Paraobtenerunarepresentacingrafica
simplementeseutiliza
plot(varable_robot,q)
dondeqesunvectorconlosngulospara
cadaarticulacin.
Lasfuncionesanteriormentedescritasson
utilizadas en el siguiente ejemplo, donde
se realiza la definicin 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
articulacionessonderotacinylatercera
esprismtica.Esutilizadoenindustriasde

manufactura
de
electrnicos,
farmacutica,entreotros.

Ejemplo:
Enlafigura1seapreciaunafotografade
unrobotSRX611.

Figura1RobotSRX611

En la figura 2 se observa una


representacin grafica del robot SRX611
donde se sealan algunos de los
parmetrosdeDenavitHartenberg.

Figura2ParmetrosdeDenavitHartenbergdelSRX611

Como se dijo anteriormente, primero es


necesario definir los parmetros de
DenavitHartenbergparacadaarticulacin.
Eslabn1:
a1=350mm
d1=460.5mm
1=0
1=1{variable,rotacin}
Eslabn2:
a2=250mm

d2=85.5mm
2=0
2=2{variable,rotacin}
Eslabn3:
a3=0mm
d3=d3{variable,prismtica}
3=0
3=0
Una vez establecidos los valores de cada
parmetroesposibleescribirelcdigoen
MATLAB para la definicin completa del
robotSRX611:

%Ejemplo1:Definicindeunnuevorobot

%Definircadaarticulacindeacuerdoalos
parmetrosdeDenavitHartenberg

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]);

%Crearunobjetodeltiporobot
srx=robot({L1L2L3});

%Sisedeseaasignarnombrealrobot
srx.name='SRX611';

%Sisedeseaespecificarfabricante
srx.manuf='Sony';

%Mostrarrepresentacingrficadelrobot
plot(srx,[000]);

RotacinalrededordelejeX:
1

MATLAB:rotx()

RotacinalrededordelejeY:

yz x

0.5
0

SRX-611
-0.5
-1
1
0.5
0.5

0
-0.5
Y

-1

-0.5
-1

0
X

Figura3RepresentacingraficadelSRX611

Enlafigura3seaprecialagraficaobtenida
al ejecutar la funcin plot. Donde,
evidentemente
se
observa
una
representacin grafica sencilla del robot
SRX611.
Es importante destacar que con las
funciones
descritas
anteriormente
simplemente es posible realizar una
descripcinbsicadelrobot,restaanalizar
qufuncionespuedenserutilizadascomo
herramientas
matemticas
para
representar el movimiento espacial del
extremodelrobot.

MATLAB:T=roty( )

RotacinalrededordelejeZ:

MATLAB:T=rotz()

Enlatabla1sepresentanlasfuncionesdel
Toolbox de Robtica relacionadas con las
matrices de rotacin y una breve
descripcindelasmismas.

MATRICESDEROTACIN

Tabla1Funcionesparamatricesderotacin

Una forma de representar la orientacin


de un sistema de coordenadas respecto a
otro fijo es mediante las matrices de
rotacin [2]. A travs de las matrices de
rotacin es posible analizar la orientacin
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 continuacin, se presentan
algunas matrices de rotacin y su funcin
correspondiente
en
MATLAB.
Es
importante destacar que los ngulos
debenserdefinidosenradianes.

Funcin

Descripcin

angevecr

formaangular/vectorialamatrizde
rotacin(MR)

eul2r

ngulodeEuleraMR

rotx

MRpararotacinalrededordelejeX

roty

MRpararotacinalrededordelejeY

rotz

MRpararotacinalrededordelejeZ

rpy2r

ngulosroll/pitch/yawaMR

r2t

MRaTransformacinhomognea

Existen
herramientas
matemticas
alternativas que al igual que las matrices
de rotacin representan la orientacin de
un objeto. Algunas de stas incluyen los

angulos roll, pitch, yaw de Euler y los


cuaternios.

multiplicarcuaternioporuncuaternio
ounvector

CUATERNIOS

inv

invertiruncuaternio

Los cuaternios fueron definidos por


Hamilton para definir giros y
orientaciones. Poseen la ventaja de que
sonmscompactosysencillosdecalcular
computacionalmente que las matrices de
rotacin.Representanungirodegrados
alrededor de un vector k [2].
Generalmente, posee una parte escalar y
una parte vectorial. Puede representarse
como:

norm

magnituddeuncuaternio

plot

mostrarcuaterniocomorotacin3D

q2tr

cuaternioaTH

quaternion

construircuaternio

qinterp

interpolarcuaternio

unit

cuaterniounitario

Con las matrices de rotacin y los


cuaternios es posible representar la
orientacin del extremo del robot, sin
embargo, tambin es importante tener
conocimientosobrelaposicindelmismo.
Unaherramientaquepermiterepresentar
tanto la orientacin como la posicin son
las
matrices
de
transformacin
homognea.

En MATLAB la definicin puede realizarse


delasiguienteforma:

Ejemplo:
Obtenerelcuaternioquerepresentauna
rotacinde90sobreelejek(3,2,1).
%Nota:elngulodebeestarexpresadoen
radianes
Q=quaternion([321],(pi/2))

TRANSFORMACIONESHOMOGNEAS

En la tabla 2 se muestran las funciones


disponiblesenelToolboxdeRobticapara
manejar cuaternios y una breve
descripcindecadauna.
Tabla2Funcionesparacuaternios

Funcin

Descripcin

adicin

substraccin

dividircuaternioentreuncuaternioo
unescalar

Enrobticaresultadegranutilidadposeer
un mecanismo que permita localizar un
objeto de acuerdo a su posicin y
orientacin respecto a un sistema de
referencia.
Para describir la posicin y orientacin de
un objeto es posible utilizar la matriz de
transformacin homognea definida por
Forest[7]:

Estamatriz4x4estcompuestaporcuatro
submatrices, de las cuales solo los
componentes de rotacin y traslacin
resultandeintersparalarobtica.

En
robtica
es
posible
tener
transformaciones que representan solo
traslacin, solo rotacin, o combinaciones
deambas.Seguidamente,sepresentanlas
matrices para varias transformaciones
homogneasysufuncincorrespondiente
en MATLAB. Es importante destacar que
los ngulos deben ser definidos en
radianes.
MatrizdeTraslacin:

MATLAB:T=transl(px,py,pz)

RotacinalrededordelejeX:

MATLAB:T=trotx()

RotacinalrededordelejeY:

MATLAB:T=troty( )

Rotacinalrededordelejez

MATLAB:T=trotz()

Rotacin sobre el eje X, seguido por una


traslacin:

MATLAB:T=trotx()*transl(px,py,pz)

Rotacin sobre el eje Y, seguido por una


traslacin:

MATLAB:T=troty( )*transl(px,py,pz)

En el siguiente ejemplo se muestra el


cdigoescritoenMATLAB,dondesellevan
a cabo diferentes transformaciones
homogneas. Adicionalmente, se utiliza la
funcin trplot(T), a travs de la cual es
posible visualizar cmo la coordenadas
originales son cambiadas debido a una
transformacinT.

Ejemplo:

%Ejemplo
2
Transformaciones
Homogneas

%Matrizdetraslacin
T=transl(1,1,1);
trplot(T)

%Matriz para una rotacin alrededor del


ejeX
Tx=trotx(0.2);
figure
trplot(Tx)

1.2
1
0.8
Z

0.6

0.4
0.2
0

-0.2
-0.4

-0.6
1
0.5
0

0.5

Figura6RotacinalrededordelejeY

1
0.8
Z
0.6
Z

%Matriz para una rotacin alrededor del


ejeY
Ty=troty(0.2);
figure
trplot(Ty)

%Matriz para una rotacin alrededor del


ejeZ
Tz=trotz(0.2);
figure
trplot(Tz)

%Composicindevariastransformaciones
tr=trotx(.2)*troty(.3)*transl(1,2,3)
figure
trplot(tr)

0.4
0.2
X
0

0.8

0.5

0.6

1.8
1.6

0.4

0.2

1.4

Figura7RotacinalrededordelejeZ

1.2

1
2
1

1.5
1

1.5

3.5
Z

Figura4Traslacin

Y
3

2.5

Z
0.8

2.4
2.2

0.6
0.4

2
1.8
1.6
1.4

2.5

Y
0.2

Figura8Combinacindevariasoperaciones

0
X

0
0.5
1
X

0.4

0.2

0.6

0.8

Figura5RotacinalrededordelejeX

Enlasfiguras4,5,6,7y8seapreciacmolas
coordenadasoriginalescambiandebidoauna
transformacin homognea. Las nuevas
coordenadas son las de color azul mientras

que en negro se observan las coordenadas


originales.
Con las transformaciones homogneas es
posible representar la posicin y
orientacin del extremo del robot. Sin
embargo, para entender ms a fondo las
capacidades del robot es necesario
estudiar las funciones del Toolbox que
representan
las
trayectorias
y
movimientosdecadaarticulacin.

GENERACINDETRAYECTORIAS
En ciertas aplicaciones puede ser
necesarioprogramarunrobotparaquesu
extremo describa una trayectoria
especfica, o conocer qu trayectoria se
generar al moverse de un punto a otro.
Para esto el Toolbox cuenta con las
funcionesjtrajyctraj.
La funcin jtraj devuelve una trayectoria
generadaalmoverlasarticulacionesdesde
unconjuntodecoordenadasoriginalhacia
otro
conjunto
de
coordenadas.
Opcionalmente, puede devolver la
velocidad y aceleracin de cada
articulacin.
La funcin ctraj devuelve una trayectoria
cartesiana (lnea recta) desde un punto a
otro, ambos representados por una
transformacin homognea. Es necesario
especificar el nmero de puntos que se
trazarn.
En el siguiente ejemplo [9], se muestra el
uso de la funcin jtraj para un
manipulador con 6 articulaciones. Las
articulaciones recorrern una trayectoria
para moverse desde el conjunto de
coordenadas inciales descritas por el
vectorstarthastalascoordenadasfinales
descritas por el vector stop. El tiempo
para realizar la trayectoria se especifica
conelvectort.

%Ejemplo2GeneracindeTrayectorias

clc
%ngulosinciales
start=[154530206030];
%ngulosfinales
stop=[75012025300];
%vectordetiempo
t=[0:0.5:3];

[posvel]=jtraj(start,stop,t);

%posicindecadaarticulacin
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

%velocidaddecadaarticulacin
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))

Tabla3Funcionesparatrayectorias

Posicin de las articulaciones


100
50
0
50
0
200

0.5

1.5

2.5

0.5

1.5

2.5

100
0
25
20
60

0.5

1.5

2.5

40

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

20
0

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

Descripcin

ctraj

trayectoriacartesiana

jtraj

trayectoriadeunaarticulacin

trinterp

interpolarTH

CINEMTICA

40
20

Funcin

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

Figura10Velocidaddecadaarticulacin

En las figuras 9 y 10, puede observarse


respectivamente la posicin y velocidad de
cada articulacin. En la siguiente tabla se
incluyen las funciones relacionadas con
generacin de trayectorias y una breve
descripcin.

La cinemtica se encarga de estudiar el


movimiento del robot, sin tomar en cuenta
las leyes fsicas que lo generan, se limita a
estudiar trayectorias en funcin del tiempo.
Lacinemticapuedeserabordadadesdedos
puntos de vista: la cinemtica directa y la
cinemticainversa.
La cinemtica directa calcula la posicin y
orientacindelextremodelrobotapartirdel
valordelascoordenadasdelasarticulaciones
delrobot[2].
En MATLAB la definicin puede realizarse de
lasiguientemanera:
T=fkine(robot,q)
fkine calcula la cinemtica directa para un
vectorqquerepresentalascoordenadasde
la articulacin y devuelve una matriz de
transformacin homognea que describe el
efectorfinal.
La cinemtica inversa calcula el valor de las
coordenadasdelasarticulacionesapartirde
la posicin y orientacin del extremo del
robot[2].
En MATLAB la definicin puede realizarse de
lasiguientemanera:
q=ikine(robot,T)
ikine devuelve las coordenadas de la
articulacinparaelmanipuladordescritopor
el objeto robot. T es una matriz de

transformacin homognea que describe el


efectorfinal.
En el ejemplo que se muestra seguidamente
se realiza la definicin de un robot cilndrico
y,posteriormente,elclculodelacinemtica
directaeinversaparaelmismo.

Ejemplo[8]:
Como se explic anteriormente, primero es
necesario definir los parmetros de Denavit
Hartenberg.

Figura11Robotcilndrico
Tabla4ParmetrosdeDenavitHartenbergparaelrobot
cilndrico

q1

l1

90

d2

90

d3

q4

l4

2
xy z
Z

Articulacin

%Definir cada articulacin de acuerdo a los


parmetrosdeDenavitHartenberg
L1=link([00010]);
D2=link([pi/20pi/211]);
D3=link([00011]);
L4=link([00010]);

%Crearunobjetodeltiporobot
rob=robot({L1D2D3L4});
rob.name='robot2';

%Mostrarrepresentacingrficadelrobot
plot(rob,[0000]);

%Para un desplazamiento de las


articulaciones prismticas de 1 unidad
tenemos:

T1fkine(rob,[0110])

%Paralascoordenadasdelasarticulacionesq
= [pi/4 0.5 0.5 pi/3] se obtiene la siguiente
matrizdetransformacin:

T2=fkine(rob,[pi/40.50.5pi/3])

%Clculodelacinemticainversa:

qi=ikine(rob,T,[0000],[111100])

0
robot2

Enlatabla4semuestraelvalordecadauno
delosparmetrosnecesariosparadefinirel
robot.ElcdigoescritoenMATLABparael
ejemploeselsiguiente:

%Ejemplo3:Cinemticadirectaeinversa

-2

-4
4
2

4
2

-2
Y

-2
-4

-4

Figura12Representacingraficadelrobotcilndrico

10

DINMICA
La dinmica de un robot tiene por objeto
conocer la relacin entre el movimiento del
robotylasfuerzasimplicadasenelmismo[7].
Acontinuacin,sepresenta unatabladonde
se describen las funciones disponibles
relacionadascondinmica.
Tabla6Funcionesparadinmica

En la figura 12 se muestra la representacin


grafica del robot cilndrico descrito en la tabla
4. Luego, se muestran las matrices
correspondientes a la cinemtica 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 clculo de la
cinmica inversa usando T2. Como se
esperaba, se obtienen las mismas coordenadas
que fueron utilizadas para calcular T2.
Tabla5Funcionesparacinemtica

Funcin

Descripcin

diff2tr

vectordemovimientodiferencialaTH

fkine

calcularcinemticadirecta

ftrans

transformarfuerza/movimiento

ikine

calcularcinemticainversa

ikine560

calcularcinemticainversaparaun
brazotipoPuma560

jacob0

calcularJacobianoensistemade
coordenadasbase

jacobn

calcularJacobianoenelsistemade
coordenadasdelefectorfinal

tr2diff

THavectordemovimientodiferencial

tr2jac

THaJacobiano

Funcin

Descripcin

accel

calculardinmicadirecta

cinertia

calcularmatrizdeinerciadeun
manipuladorcartesiano

coriolis

calculartorquedelaarticulacin
debidoaefectosdefuerza
centrpeta/coriolis

fdyn

dinmicadirecta

friction

friccindelaarticulacin

gravload

calculartorquedelaarticulacin
debidoalagravedad

inertia

calcularmatrizdeinerciadel
manipulador

itorque

calculartorquedelaarticulacin
debidoalainercia

rne

dinmicainversa

MODELOS
PREDEFINIDOS
MANIPULADORES

DE

El Toolbox de Matlab cuenta con la


definicin de varios manipuladores
industriales de gran utilidad para el
aprendizaje del uso de las funciones del
Toolbox.Losrobotspredefinidosincluyen:
FanucArcMate120iB/10L, MotomanHP6,
Puma560,ABBS42.8,yBrazoStanford.
En la tabla 7 se presentan las funciones
para utilizar cada uno de los modelos
11

predefinidos y una breve descripcin de


cadauna.
2

Tabla7Funcionesparamodelospredefinidos

Fanuc10L

Descripcin

Funcin

0
Fanuc AM120iB/10L
yz x

-1

FanucArcMate120iB/10L(DH,
cinemtica)

-2
2
1

MotomanHP6

MotomanHP6(DH,cinemtica)

puma560

Puma560(DH,cinemtica,
dinmica)

puma560akb

Puma560(MDH,cinemtica,
dinmica)

S4ABB2p8

ABBS42.8(DH,cinemtica)

stanford

BrazoStanford(MDH,cinemtica,
dinmica)

twlink

ejemplosimplede2articulaciones
(DH,cinemtica)

2
1

-1
-2

-1
-2

Figura14RepresentacingraficadeFanucArcMate
120iB/10L

ElrobotMotomanHP6esunrobotmulti
aplicacin con seis grados de libertad que
puede realizar actividades como
empaquetar, distribuir o realizar
soldadurasporarco.Enlasfiguras15y16
se observa el robot Motoman HP6 y su
representacingraficarespectivamente.

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.Enlafigugura13seobserva
una fotografa del Fanuc ArcMate
120iB/10L y en la figura 14 la
representacingraficacorrespondienteen
MATLAB.

Figura15RobotMotomanHP6

1.5
1

0.5
0
Motoman HP6
x
zy

-0.5
-1
-1.5
1

Figura13RobotFanucArcMate120iB/10L

0
-1

-1
X

Figura16RepresentacingraficadeMotomanHP6

12

TOOLBOXDEROBTICAYSIMULINK
El Toolbox de Robtica incluye un set de
bloques con la mayora de las funciones
del Toolbox, las cuales pueden ser
utilizados en Simulink. Para utilizar esta
caracterstica es necesario agregar los
bloquesaSimulink,paraesto,esnecesario
escribir la siguiente lnea en el workspace
deMATLAB:

addpathROBOTDIR/simulink

Paraobservarlosbloques:

roblocks
Al ejecutar roblocks debe observarse la
siguienteventana.

Simulink tambin tiene aplicaciones en el


readecontrolyautomatizacin.

CONCLUSIONES
El toolbox de Robtica para MATLAB,
desarrollado por el profesor Peter Corke,
permite simular y analizar manipuladores,
que generalmente representan robots
industriales. Posee funciones para el
estudiodetransformacioneshomogneas,
cuaternios, matrices de rotacin,
generacin de trayectorias, cinemtica y
dinmica.Elcdigopuedeserobtenidode
maneragratuita,sinembargofuncionacon
el software MATLAB para el cual es
necesario poseer una licencia para poder
utilizarlo. El Toolbox posee herramientas
matemticas poderosas y puede ser
utilizado en conjunto con Simulink para
crear una gran variedad de aplicaciones,
sin embargo, carece de una buena
herramientaparavisualizacin3D.

BIBLIOGRAFA
Figura17BloquesdeRobticaparaSimulink

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
numerodeldemoquesedeseavisualizar.Es
decir, si se desea observar el primer demo,
simplemente es necesario escribir demo1 en
elworkspacedeMATLAB.

APLICACIONES
El Toolbox de Robtica tiene aplicaciones
principalmente en la robtica industrial.
Permite modelar manipuladores con
diferentes nmeros de articulaciones. Es
posible describir la posicin y orientacin
del extremo a travs de diferentes
herramientas matemticas, adems
permite realizar clculos de cinemtica y
dinmica. 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:
Introduccin a la Robtica. 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 el28 de junio
[5]
de2011,dehttp://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).RobotsySistemasSensoriales.
Madrid:PearsonEducacin.

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

BIOGRAFA
M.G.Cabreraactualmentecursaelltimo
semestre de Ingeniera de Sistemas,
Departamento de Control, Universidad de
los Andes, Mrida, Venezuela (email:
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
Ttulo:
Asunto:
Autor:
Angelical V4
Palabras clave:
Comentarios:
Fecha de creacin:
05/07/2011 18:11:00
Cambio nmero:
2
Guardado el:
05/07/2011 18:11:00
Guardado por:
Eladio
Tiempo de edicin: 0 minutos
Impreso el:
05/07/2011 18:11:00
ltima impresin completa
Nmero de pginas:
14
Nmero de palabras:
3.874 (aprox.)
Nmero de caracteres: 21.310 (aprox.)

Das könnte Ihnen auch gefallen