Professional Documents
Culture Documents
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.
05/07/2011
Figura1RobotSRX611
{1}
{2} b2
a2
b1
{0}
a1
05/07/2011
Eslabn2:
a2=250mm d2=85.5mm 2=0 2=2{variable,rotacin}
Eslabn3:
a3=0mm d3=d3{variable,prismtica} 3=0 3=0
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).
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
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
-2 2 1 0 -1 Y -2 -2 -1 X 1 0 2
FiguraRobotMotoman HP6
16
05/07/2011
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
17
05/07/2011
18
05/07/2011
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
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
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
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:
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
0.5 X
Figura6RotacinalrededordelejeY
Figura7RotacinalrededordelejeZ
X
Figura4Traslacin
Z
3.5 Y 3
1 Z 0.8
2.5
0.6 Z
2.4 2.2
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))
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.
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
-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
Funcin
diff2tr fkine ftrans ikine ikine560
Descripcin
vectordemovimientodiferencialaTH calcularcinemticadirecta transformarfuerza/movimiento calcularcinemticainversa calcularcinemticainversaparaun brazotipoPuma560 calcularJacobianoensistemade coordenadasbase calcularJacobianoenelsistemade coordenadasdelefectorfinal THavectordemovimientodiferencial THaJacobiano
inertia
itorque
rne
jacob0
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
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
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.
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.)