Está en la página 1de 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 del Autonomous Systems laboratory. u dado de uto o ous Syste s 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 Llenarinformacinrequerida. ExtraerpaqueterobotenC:\Program Files\MATLAB\R2009a\Toolbox Abrir MATLAB AbrirMATLAB AgregareldirectoriorobotalMATLABPATH file>>setpath>>add folder>>robot>>ok>>save

2. 3.

4 4. 5.

Definicin de un Nuevo Robot


DefinicinenMATLAB:
Li=link([i a i i d i i ]) i nguloentreelejeZi1 yZi,sobreelplano l t l j Z Z 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} b2

a2

b1

{0}

Figura2ParmetrosdeDenavit Hartenberg delSRX611

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]);
Z 0 SRX-611 -0.5 -1 1 0.5 0 -0.5 Y -1 -1 X 0 -0.5 0.5 1

yz x

Figura3RepresentacingraficadelSRX611

05/07/2011

Matrices de Rotacin
Rotacin alrededordelejeX MATLAB: Rx 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 angevecr eul2r rotx roty rotz rpy2r r2t t Descripcin
angular/vectorialamatrizderotacin(MR) forma angular/vectorial a matriz de rotacin (MR) ngulodeEuler aMR MRpararotacinalrededordelejeX MRpararotacinalrededordelejeY MR pararotacinalrededordelejeZ ngulosroll/pitch/yaw aMR 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 + / * inv norm plot q2tr quaternion qinterp unit Descripcin
adicin substraccin dividircuaternioentreun cuaternioounescalar multiplicarcuaternioporun cuaternioounvector invertiruncuaternio magnitud deuncuaternio mostrarcuaterniocomorotacin 3D cuaternioaTH construir cuaternio interpolarcuaternio 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 Z Y 3 X 2.5 3 2.4 2.2 2.5 2 1.8 Y 1.6 1.4 2 X

Figura4Combinacindevariasoperaciones

Transformaciones Homogneas
Funcin angevec2tr eul2tr oa2tr rpy2tr tr2angvec tr2eul t2r tr2rpy trotx troty trotz transl tnorm trplot
ngulosroll/pitch/yaw aTH THomatrizderotacinaforma angular/vectorial THomatrizderotacin enngulosdeEuler TH asubmatrizderotacin THomatrizderotacina ngulosroll/pitch/yaw THpararotacinalrededordelejeX THpararotacinalrededordelejeY THpararotacinalrededordelejeZ fijaroextraerel componentedetraslacindeunaTH normalizarunaTH graficarelsistemadecoordenadas deunaTH

Descripcin
forma angular/vectorialatransformacinhomognea (TH) ngulodeEuler aTH

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] [posvel]=jtraj(start,stop,t) 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))

0.5

1.5

2.5

50

0 200 100 0 25

0.5

1.5

2.5

0.5

1.5

2.5

20 60 40 20 40 20 0

0.5

1.5

2.5

0.5

1.5

2.5

0.5

1.5

2.5

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 ctraj jtraj trinterp Descripcin
trayectoriacartesiana trayectoria cartesiana trayectoria deunaarticulacin interpolarTH

12

05/07/2011

Cinemtica
Cinemtica Directa Consiste en determinar cul es la posicin y orientacin del extremo final del robot con respecto a un sistema de robot, 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 d b adoptar el robot para una posicin y orientacin d l debe d t l b t i i i t i del extremo conocida.

Cinemtica
MATLAB: Cinemtica Directa T = fki ( b q) fkine(robot, ) 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
1 2 3 4 q1 90 0 q4

l1 d2 d3 l4

d
0 0 0 0

a
0 90 0 0

Cinemtica
Ejemplo: L1 = link([0 0 0 1 0]); D2=link([pi/20pi/211]); D2 = link([pi/2 0 pi/2 1 1]); D3=link([00011]); L4=link([00010]); rob=robot({L1D2D3L4}) rob.name=robot2'; plot(rob,[0000]);
4 2 xy z Z 0 robot2 -2

-4 4 2 0 -2 Y -4 -4 -2 X 2 0 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]seobtienelasiguientematrizdetransformacin: pi/3] se obtiene la siguiente matriz de transformacin: T=fkine(rob,[pi/40.50.5pi/3])

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

Cinemtica
Funcin diff2tr fkine ftrans ikine ikine560 jacob0 jacobn tr2diff tr2jac Descripcin
vectordemovimientodiferencialaTH calcularcinemticadirecta calcular cinemtica directa transformarfuerza/movimiento calcularcinemtica inversa calcularcinemtica inversa paraunbrazotipoPuma 560 calcular Jacobianoensistemadecoordenadasbase calcularJacobiano enelsistemadecoordenadasdel efectorfinal THavectordemovimientodiferencial THaJacobiano

15

05/07/2011

Dinmica
Funcin accel cinertia coriolis fdyn friction gravload inertia itorque rne Descripcin
calcular dinmicadirecta calcular matrizdeinerciadeunmanipulador matriz de inercia de un manipulador cartesiano calculartorquede laarticulacindebidoaefectosde fuerzacentrpeta/coriolis dinmicadirecta friccindela articulacin calculartorquedelaarticulacindebido alagravedad calcularmatrizdeinercia delmanipulador calculartorquedelaarticulacindebidoalainercia dinmicainversa

Modelos Predefinidos de Manipuladores


2 1 Z 0 Fanuc AM120iB/10L yz x -1

-2 2 1 0 -1 Y -2 -2 -1 X 1 0 2

FiguraRobotFanuc ArcMate 120iB/10L

1.5 1 0.5 Z 0 -0.5 -1 -1.5 1 0 -1 Y -1 X 1 0 Motoman HP6 x zy

FiguraRobotMotoman HP6

16

05/07/2011

Modelos Predefinidos de Manipuladores


1 0.5 yz x Z 0 Puma 560 -0.5

-1 1 0.5 0 -0.5 Y -1 -1 -0.5 X 0.5 0 1

FiguraRobotPuma560
4

0 y x S4 ABB 2.8 z -2

-4 4 2 0 -2 -2 -4 -4 X 2 0 4

FiguraRobotABBS42.8

Modelos Predefinidos de Manipuladores


Funcin Fanuc10L MotomanHP6 puma560 puma560akb S4ABB2p8 stanford twlink Descripcin
Fanuc ArcMate 120iB/10L(DH,cinemtica) Motoman HP6(DH,cinemtica) Puma560(DH,cinemtica,dinmica) Puma 560(MDH,cinemtica,dinmica) ABBS42.8(DH,cinemtica) BrazoStanford (MDH,cinemtica,dinmica) 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.

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.

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,

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 0.5 0 SRX-611 -0.5 -1 1 0.5 0 -0.5 Y -1 -1 X 0 -0.5 0.5 1 yz x

MATLAB:rotx() RotacinalrededordelejeY:

Figura3RepresentacingraficadelSRX611

MATLAB:T=roty( ) RotacinalrededordelejeZ:

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=rotz() Enlatabla1sepresentanlasfuncionesdel Toolbox de Robtica relacionadas con las matrices de rotacin y una breve descripcindelasmismas.
Tabla1Funcionesparamatricesderotacin

MATRICESDEROTACIN
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
angevecr eul2r rotx roty rotz rpy2r r2t

Descripcin
formaangular/vectorialamatrizde rotacin(MR) ngulodeEuleraMR MRpararotacinalrededordelejeX MRpararotacinalrededordelejeY MRpararotacinalrededordelejeZ ngulosroll/pitch/yawaMR 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.

* inv norm plot q2tr quaternion qinterp unit

multiplicarcuaternioporuncuaternio ounvector invertiruncuaternio magnituddeuncuaternio mostrarcuaterniocomorotacin3D cuaternioaTH construircuaternio interpolarcuaternio cuaterniounitario

CUATERNIOS
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:

En MATLAB la definicin puede realizarse delasiguienteforma: Ejemplo: Obtenerelcuaternioquerepresentauna rotacinde90sobreelejek(3,2,1). %Nota:elngulodebeestarexpresadoen radianes Q=quaternion([321],(pi/2))

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.

TRANSFORMACIONESHOMOGNEAS
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]:

En la tabla 2 se muestran las funciones disponiblesenelToolboxdeRobticapara manejar cuaternios y una breve descripcindecadauna.
Tabla2Funcionesparacuaternios

Funcin
+ /

Descripcin
adicin substraccin dividircuaternioentreuncuaternioo unescalar

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:

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=transl(px,py,pz) RotacinalrededordelejeX:

MATLAB:T=trotx() RotacinalrededordelejeY:

MATLAB:T=troty( ) Rotacinalrededordelejez

MATLAB:T=trotz()

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)

%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)
2 Z 1.8 1.6 Z 1.4 1.2 1 2 1.5 1 X Y 2 Y 1.5 1

1.2 1 0.8 0.6 0.4 Z 0.2 0 -0.2 -0.4 X -0.6 1 0.5 0 Y Y Z

0.5 X

Figura6RotacinalrededordelejeY

1 0.8 Z 0.6 Z 0.4 0.2 X 0 Y 0.8 0.6 0.4 0.2 Y 0 0 X 0.5 1

Figura7RotacinalrededordelejeZ
X

Figura4Traslacin
Z

3.5 Y 3

1 Z 0.8

2.5

0.6 Z

2.4 2.2

2 1.8 1.6 1.4

3 2.5 2 X

0.4 Y 0.2

Figura8Combinacindevariasoperaciones
0 0.5 1 X 0 0.2 Y 0.4 X 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))

Posicin de las articulaciones 100 50 0 50 0 0.5 1 1.5 2 2.5 3

Tabla3Funcionesparatrayectorias

Funcin
ctraj jtraj trinterp
0 0.5 1 1.5 2 2.5 3

Descripcin
trayectoriacartesiana trayectoriadeunaarticulacin interpolarTH

0 200 100 0 25

0.5

1.5

2.5

CINEMTICA
0 0.5 1 1.5 2 2.5 3

20 60 40 20 40 20 0

0.5

1.5

2.5

0.5

1.5

2.5

Figura9Posicindecadaarticulacin
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

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

Articulacin
1 2 3 4

q1 90 0 q4

d
l1 d2 d3 l4

a
0 0 0 0

0 90 0 0

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

2 xy z Z 0 robot2

Enlatabla4semuestraelvalordecadauno delosparmetrosnecesariosparadefinirel robot.ElcdigoescritoenMATLABparael ejemploeselsiguiente: %Ejemplo3:Cinemticadirectaeinversa

-2

-4 4 2 0 -2 Y -4 -4 -2 X 2 0 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
accel cinertia coriolis

Descripcin
calculardinmicadirecta calcularmatrizdeinerciadeun manipuladorcartesiano calculartorquedelaarticulacin debidoaefectosdefuerza centrpeta/coriolis dinmicadirecta friccindelaarticulacin calculartorquedelaarticulacin debidoalagravedad calcularmatrizdeinerciadel manipulador calculartorquedelaarticulacin debidoalainercia dinmicainversa

fdyn friction gravload

Funcin
diff2tr fkine ftrans ikine ikine560

Descripcin
vectordemovimientodiferencialaTH calcularcinemticadirecta transformarfuerza/movimiento calcularcinemticainversa calcularcinemticainversaparaun brazotipoPuma560 calcularJacobianoensistemade coordenadasbase calcularJacobianoenelsistemade coordenadasdelefectorfinal THavectordemovimientodiferencial THaJacobiano

inertia

itorque

rne

jacob0

MODELOS PREDEFINIDOS MANIPULADORES

DE

jacobn

tr2diff tr2jac

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.


Tabla7Funcionesparamodelospredefinidos
2 1

Funcin Fanuc10L MotomanHP6 puma560 puma560akb S4ABB2p8 stanford twlink

Descripcin FanucArcMate120iB/10L(DH, cinemtica) MotomanHP6(DH,cinemtica) Puma560(DH,cinemtica, dinmica) Puma560(MDH,cinemtica, dinmica) ABBS42.8(DH,cinemtica) BrazoStanford(MDH,cinemtica, dinmica) ejemplosimplede2articulaciones (DH,cinemtica)

0 Fanuc AM120iB/10L yz x

-1

-2 2 1 0 -1 Y -2 -2 -1 X 1 0 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 Z 0 -0.5 -1 -1.5 1 0 1 0 -1 Y -1 X Motoman HP6 x zy

Figura13RobotFanucArcMate120iB/10L

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.

[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.

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

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.)