ml cap 3

42
Preliminares matemáticos R] i-l 0^ d i-l 1 3.1 Introducción I ^ .1 , vi^^^ 3.2 Producto interno 3.3 Matrices de rotación ^. 3.4 Reglas de rotación 3.5 Transformaciones de traslación 3.6 Transformaciones homogéneas 3.7 Librerías para matrices homogéneas 3.8 Resumen

Upload: christianzamarripa

Post on 11-Jan-2016

7 views

Category:

Documents


1 download

DESCRIPTION

.

TRANSCRIPT

Page 1: ML cap 3

Preliminares matemáticos

R] i-l 0^

d i-l 1

3.1 Introducción I ^ .1 , vi^^^

3.2 P r o d u c t o i n t e r n o

3.3 M a t r i c e s de rotación ^ .

3.4 R e g l a s de rotación

3.5 T r a n s f o r m a c i o n e s de traslación

3.6 T r a n s f o r m a c i o n e s homogéneas

3.7 Librerías p a r a m a t r i c e s homogéneas

3.8 R e s u m e n

Page 2: ML cap 3

Objetivos

Presentar los preliminares matemáticos para la cinemática directa de

robots manipuladores y sistemas mecatrónicos, asimismo desarrollar l i ­

brerías en lenguaje M A T L A B (toolbox) para las matrices de transforma­

ción homogénea de rotación y traslación.

O b j e t i v o s p a r t i c u l a r e s :

Hl jll Producto interno de vectores. ^

imi jlll Matrices de rotación y traslación,

imll Transformaciones homogéneas.

^ O B Librerías de matrices homogéneas para M A T L A B . ' '

Page 3: ML cap 3

3.1 Introducción 143

3.1 Introducción

E ^ L posicionamiento del extremo final del robot en el espacio tr id imensional J (pose) requiere de 6 coordenadas: 3 coordenadas para la posición cartesiana

y 3 coordenadas para la orientación de la herramienta de t raba jo . A la relación que existe entre las coordenadas articulares del robot con las coordenadas cartesianas y la orientación de la herramienta de t raba jo colocada en el extremo final del robot se le denomina cinemática directa.

Como parte de la representación matemática de la cinemática directa de robots manipuladores se encuentra el uso de transformaciones homogéneas para representar orientación y traslación de la herramienta de t raba jo , con respecto al sistema de referencia fijo ubicado generalmente en la base del robot .

Como preámbulo al tema de matrices de transformación homogénea están los conceptos de producto punto o escalar entre vectores y matrices ortogonales.

El producto punto permite ut i l i zar proyecciones de ortogonal idad de los ejes principales de un sistema de referencia E i ( a ; i , z i ) re lat ivo a o tro sistema de referencia Eo{xQ,yo, ZQ). O t r o de los temas de prerrequisito es el de las matrices ortogonales para modelar la orientación y traslación de la herramienta de trabajo respecto al sistema fijo del robot TJQIXQ, yo, ZQ). Resaltan las propiedades matemáticas de las matrices ortogonales que fac i l i tan el análisis y descripción de movimientos de rotación y traslación. E n función de las propiedades matemáticas de las matrices ortogonales se generan diferentes reglas de rotación.

Las matrices homogéneas incluyen estos conceptos para ofrecer una representación compacta de la matr iz de rotación, que determina la orientación relat iva de u n sistema de referencia E i ( x i , í/i, z i ) con respecto a un sistema de referencia fijo 0(2 0? yoi ZQ) y del vector de coordenadas o de traslación XQ = [ X Q , yo, ZQ ] ^ .

Con la estructura matemática de la transformación homogénea se desarrolla u n conjunto de librerías para propósitos de simulación de cinemática directa de robots manipuladores y sistemas mecatrónicos.

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 4: ML cap 3

144 Capítulo 3: P r e l i m i n a r e s matemáticos

3.2 Producto interno

P A R A modelar la orientación de la herramienta de t raba j o del robot se encuentra el producto escalar o producto interno, también conocido como producto punto

{dot product), el cual permite ut i l i zar los conceptos de la geometría euclidiana tradicionales como longitudes, ángulos, proyecciones geométricas, ortogonal idad en dos y tres dimensiones de los sistemas de referencia asociados al robot y de la herramienta de t raba jo . '

El término espacio euclidiano se denomina así en honor del matemático y filósofo griego Euclides, y se ut i l i za para d is t inguir lo de o tro t i p o de espacios como los espacios curvos de la geometría no euclidiana y la teoría de la re la t iv idad de Einstein. El espacio euclidiano es un t i p o de espacio geométrico donde se satisfacen los axiomas de la geometría de Euclides. Como casos particulares del espacio euclidiano se encuentran la recta real, el plano y el espacio tr id imensional , que corresponden a las dimensiones 1, 2 y 3, respectivamente. .^v ,. •

El concepto abstracto de espacio euclidiano geométrico se generaliza para el caso general de espacio euclidiano n-dimensional, el cual también se considera como un espacio vectorial n-dimensional real.

A l producto interno x y es una operación definida sobre dos vectores x,y ^ IR'^ de un espacio euclidiano cuyo resultado es u n número o escalar (los espacios vectoriales que incluyen al producto interno reciben el nombre de espacios prehilbertianos) .

Considere los siguientes vectores x,y E I R " , el producto interno vectorial se define como:

x y = x'^y = '^Xiyi = xiyi-\-X2y2-\- - (3.1)

El producto punto se le l lama producto escalar debido a que también se puede realizar como: x • y = x^y.

En un espacio euclidiano real, el producto interno (3.1) también acepta una definición

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S .

Page 5: ML cap 3

3.2 P r o d u c t o i n t e r n o 145

geométrica dada por:

X • y = \\x\\\\y\\ (3.2)

donde O es el ángulo que forman los vectores x y y (ver figura 3.1), y las normas euclidianas se encuentran definidas por ||a;|| = + + • • • + x,^, ||y|| =

+ ?/2 + • • • + 5 respectivamente.

Geométricamente \\y\\ representa la proyección del vector y sobre la dirección del vector x, como se presenta en la figura 3.1. E l concepto de proyección geométrica se usa particularmente en las matrices rotacionales para modelar la orientación del sistema de referencia de la herramienta de t raba j o del robot . " •

F i g u r a 3.1 Producto interno vectorial x y.

Considere x,y,z G JR^, y a G IR; el producto interno tiene las siguientes propiedades: , . ;

Conmutat iva : x • y = y • x.

Distr ibut iva : z • {x -\- y) = z • x -\- z • y.

Asociativa: ax • y = x • ay = x • ya.

jQJI La expresión geométrica del producto escalar permite calcular el coseno del ángulo O existente entre los vectores x y y de la, siguiente manera:

cos(é') = X y XlVl + X2y2 + • • • + XnVn 1 11112/11 xl + • • • + xl^yl+yl + • • • + yl

m Vectores ortogonales: x-y = Q=>xA-y,6=^ rad (90 grados).

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 6: ML cap 3

146 Capítulo 3: P r e l i m i n a r e s matemáticos

Vectores paralelos o con la misma dirección si el ángulo que forman es O rad (O grados) o TT rad (180 grados): x • y = ||a:||||y||.

XX = O < ^ x^O e IR' ' .

La norma euclidiana de u n vector x se puede expresar como: ||cc|| = \/x • x =

M A T L A B contiene la función d o t ( x , y ) para realizar la operación producto interno X • y los vectores x,y e I R " , con la siguiente estructura de sintaxis:

X y = d o t ( x , y )

x y = d o t ( x , y , n )

X • t /=dot ( x , y , n ) retorna el producto escalar de los vectores x, y con dimensión n.

el producto punto x • y equivale a realizar la operación en M A T L A B :

La norma euclidiana ||£c|| de un vector x E IR'^, también conocida como norma 2, se puede calcular ut i l izando la función norm con la siguiente sintaxis:

|a;||=noriii(x,2)

^ E j e m p l o 3.1

Sean x,y E IR^ con las siguientes componentes respectivamente:

'2^ • 8 " X = y =

4 y =

- 3

obtener el producto punto x-y y el ángulo 6 que forman entre los vectores x,y.

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S .

Page 7: ML cap 3

3.2 P r o d u c t o i n t e r n o 147

Solución

Puesto que los vectores x,y e TR^ están formados por x = [2 4]^ y y = [8 — 3 ] ^ , y tomando en cuenta la definición del producto punto se obtiene lo siguiente:

x y xiyi + X2y2 = 2 (8) - 4 (3) - 16 - 12 = 4. ^ - . . i

El ángulo que forman los vectores x y y se obtiene como:

cos(6') = xiyi + X2y2 X y \x\\\\y\\ y/x'i^xly/y'f^y'i

4 4 0.1046

V 2 2 T 4 2 v^82 + ( - 3 ) 2 (4.4721)(8.544)

lo que significa que 9 =1.465 rad (83.99 grados).

Observe que evidentemente se cumple: i ^ , .

xy = ||x||||í/||cos( ) = y 2 0 V ^ c o s ( 1.465) = (4.472135)(8.544003)(0.1046) = 4.

El cuadro 3.1 presenta el código fuente para realizar el desarrollo del ejemplo 3.1.

^ Código F u e n t e 3.1 P r o d u c t o i n t e r n o o e s c a l a r

' / O M ATLAB Apl icado a Robótica y M e c a t r o n i c a .

/ ( E d i t o r i a l Alfaomega, Fernando Reyes Cortés.

'/oCapítulo 3 Cinemática "/oPrograma cap3_prodint .m

Producto interno o escalar 1 ele; olear all; cióse all ; 2 dispCProducto interno o escalar de vectores') 3 X = [2; 4 ] ; % vector columna de dos renglones x € IR' 4 y — [8; -3]; %vector columna de dos renglones y G H"^ 5 xdoty=dot(x,y) %producto interno x • y usando la función dot 6 xdoty_m=x'*y %forma matemática del producto interno x • y 7 theta=acos(x'*y/(norm(x,2)*norm(y,2)))%ángulo que forman los vectores

8 %forma geométrica del producto interno: x y = ||a;||||t/|| cos(^) 9 xdoty_geometrica=norm(x,2)*norm(y,2) *cos(theta)

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 8: ML cap 3

148 Capítulo 3: P r e l i m i n a r e s matemáticos

• 3.3 Matrices de rotación

I A figura 3.2 muestra dos sistemas de referencia cartesianos, asociados a J un cuerpo rígido, representados por {xo,yo, ZQ) y T,i {xi,yi, zi), ambos

sistemas comparten el mismo origen. E l sistema de referencia S i ( x i , z i ) mantiene una orientación relat iva al sistema de referencia fijo {xo,yo, ZQ).

Po=(Xo.yi,,Zo)

t„ y / •'0

F i g u r a 3.2 Sistemas de referencia fijo S Q y rotado E l .

Considérese un punto p sobre el cuerpo rígido, con respecto al sistema S Q (xoyozo ) tiene coordenadas PQ = [ X Q , ?/o,- o]" , el mismo punto p se representa como Pi = [ x i , ? / i , z i ] ^ con respecto al sistema de referencia E i ( x i , ) . E l problema que se plantea es encontrar la relación que hay entre las coordenadas de u n punto Pi en el sistema de referencia E i ( x i , ) con el vector PQ definido en el sistema de referencia E Q ( X Q , ?/o,- o )• Considere vectores bases para cada sistema de referencia E Q y E i . Sean {io,Jo,ko} vectores unitar ios a lo largo de los ejes xo,?yo,^o, respectivamente. Es decir, ÍQ = [ 1 , 0 , 0 ] , = [ 0 , 1 , 0 ] , feo = [O, 0,1] . Similarmente se definen los vectores unitar ios { ¿ i , J i , fci} para el sistema S i ( x i , ? / i , z i ) .

U n vector que va desde el origen común para ambos sistemas hasta el punto p, puede ser expresado en función de cualquiera de las dos bases de vectores unitar ios de la siguiente forma:

Po =

A L F A O M E G A

Poxio + POyJo + Pozko con respecto al sistema E Q (3.3)

M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 9: ML cap 3

3.3 M a t r i c e s de rotación 149

Pi = Pix^i + Piyj 1 + Piz^i con respecto al sistema S i (3.4)

Los vectores PQ,PI representan al mismo punto p. Tomando en cuenta las ecuaciones (3.3) y (3.4) la relación que hay entre sus componentes adquiere la siguiente forma:

Pox = Po • io = Pi • io

= Pixii • io + Piyji • io-\-Pizki • io (3.5)

POy = Po - Jo =Pl - Jo

= Pixii • Jo + PiyJi • 3o + Pizki • Jo (3.6)

Poz =^ Po • ko = Pi • ko

= Pixii • ko +piyji • ko-\-pizki • ko. ; ~ (3.7)

Estas ecuaciones pueden ser escritas de manera compacta como:

Po = R'oPi / ; (3.8)

donde RQ representa la siguiente

RQ =

La matriz RQ G I R " ^ ^ ^ es la matr i z de transformación de las coordenadas del punto p del sistema de referencia S i ( x i , ?/i, 2:1) hacia las coordenadas del sistema ^oi^OiVo, ZQ). E n otras palabras, dado un punto P i en el sistema S i {xi,yi,zi),

entonces RQPI representa el mismo vector expresado con respecto al sistema de referencia So ( X Q , |/o, ^0 )•

Obsérvese que las columnas de RQ son los cosenos directores de los ejes coordenados i i , y i , zi respecto de los ejes coordenados xo,yo,zo. Por ejemplo, la pr imera columna 1*1 • ^0, h • jo, h • ko]^ especifica la dirección del eje xi re lat iva al sistema de referencia

Similarmente se puede obtener el punto Pi en función del punto PQ:

Plx = Pi-Íi=PQ-Íi • : ,-

= POxio-ií+POyJo-il-^POzko-il .

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

matr i z

ii • io 3i - io ki • io

ii-Jo J i J o ki-JQ

ií-ko ji-ko ki-ko

(3.9)

Page 10: ML cap 3

150 Capítulo 3: P r e l i m i n a r e s matemáticos

Piy =

Plz =

Pl =

Pl 3i=PoJi

POxil • J l + POyJl -31+ POzki • J i

Pl ki = PQ ki

Poxñ • ki + poyji • ki + pozki • ki

RÍPo

io • ii 3o • * i ' o • h

io-Ji 3o-3i ko-ji

Jo-ki Jo-ki ko-ki_

(3.10)

(3.11)

La matr iz R^ G IR" " (3-11) representa la matr i z inversa de la transformación RQ

(3.9). Debido a que el producto interno de vectores unitarios cumple la propiedad conmutativa, entonces ii • ji = ji • ¿ i , io • Jo = 3o ' io, etc., por lo que resulta:

• ñ ? = ( ñ j ) - ' = ( ñ j f ,^ " (3.12)

La matr iz RQ cuya inversa es su transpuesta se denomina m a t r i z ortogonal . La norma de los vectores columna de RQ son de m a g n i t u d u n i t a r i a y mutuamente ortogonales, el determinante de RQ es ± 1 . Si el sistema de referencia se selecciona de acuerdo con la regla de la mano derecha, entonces el determinante de RQ es 1. La matr iz RQ se denomina matr i z de rotación y pertenece a la clase de matrices ortogonales que se denotan como SO{3). . -

Notación

La matr iz RQ representa la orientación del sistema S i ( x i , y i , z i ) respecto al sistema

'^oi^o^yo, zo). R\a la orientación del sistema S2 (a:2,2/2, -2:2 ) respecto al

sistema S i ( x i , ?/i, z i ) , y así sucesivamente. Mientras que la transformación inversa

R\a la orientación del sistema de referencia S Q ( X Q , ?/o, -20 ) re lat iva al sistema

de referencia S i ( x i , ?/i, 2:1). De manera análoga, R2 es la transformación inversa de

coordenadas del sistema de referencia S i ( x i , ?/i, 2:1) hacia el sistema S2 ( X 2 , 2 / 2 , - 2 )•

Hay varios métodos para expresar la orientación del sistema de referencia S i ( x i , ?/i, 2 i) con respecto al sistema de referencia fijo So(xo, yo,-2 0)5 entre los más usuales se encuentra la rotación con respecto a uno de los ejes principales X Q , yo-, Vo-

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S .

Page 11: ML cap 3

3.3 M a t r i c e s de rotación 151

A continuación se t r a t a n los casos de rotación alrededor de u n eje pr inc ipa l .

3.3.1 M a t r i z d e rotación a l r e d e d o r d e l e j e ZQ

Considere que el sistema de referencia S i ( z i , z i ) el cual se encuentra rotado u n ángulo 6 alrededor del eje ZQ del sistema S Q ( Z Q , yo, zo ) . Obtener la matr i z resultante de transformación RQ.

Como se muestra en la figura 3.3, los ejes ZQ y zi son paralelos. E l signo del ángulo 9 está dado por la regla de la mano derecha. Por convención, un ángulo posit ivo es aquel cuyo sentido de rotación es contrario al movimiento de las manecillas del re lo j .

F i g u r a 3.3 Rotación de u n ángulo 6 alrededor del eje z.

De la figura 3.3 se obtienen las siguientes ecuaciones: • v : ; ,

¿1 • ¿o = cos(^) - io = - sen{0)

J l • Jo = cos(é/) ií-3o = sen(^) ' " ' ^^ k{) • k\ 1

todos los demás productos punto son cero, puesto que el ángulo que existe entre los vectores unitarios ÍO,ÍI,JQ, y J i con ko y ki es de 90 grados, excepto entre ellos mismos, puesto que ko y ki forman u n ángulo de O grados: fci • ¿o = cos(|) = 0,fci • Jo = cos( f ) ,¿ i • feo = cos ( f ) = O, y j i • feo = cos ( f ) = 0. . • • .

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 12: ML cap 3

152 Capítulo 3: P r e l i m i n a r e s matemáticos

Notación

La matr iz (3.13) se conoce como matr i z de rotación alrededor del eje z y es

representada por i?^(^). _ _

cos(6')

sen(^)

O

- sen(6') O

cos(6') O

O 1

(3.13)

La matr iz de rotación RziO) se interpreta como una matr i z que especifica la orientación del sistema de referencia E i ( x i , z i ) re lat ivo al sistema de referencia ^o{xo,yo,zo). : . •

cos(^) - sen((9) 0^

sen((9) cos((9) O p^. (3.14)

O O 1 Po = Rz{0)pi=^

Por convención considérese que el ángulo O es posit ivo en el sentido contrario al movimiento de las manecillas del re lo j . :

La relación inversa que determina la orientación del sistema E Q ( X Q , yo,- ^o) con respecto al sistema E i ( x i , z i ) está dada por:

cos((9) sen(^) O'

- sen(6') cos(6') O P Q . (3.15)

O O 1 P l = RI{0)PQ =

Por lo tanto , un punto P Q en el sistema E Q [xQ^yo, ZQ) es transformado hacia un punto Pl en el sistema E i ( x i , z i ) incluyendo su orientación relativa.

O t r a forma de obtener la matr i z Rz{0) que relaciona la orientación O del sistema de referencia E i ( z i , z i ) con respecto al eje zo del sistema de referencia ^0 (-2^0,2/0,-2^0) es por medio de una proyección geométrica, es decir, analizando la proyección de los ejes x i , yi sobre los ejes xo, ?/o como se ve en la figura 3.4.

Los ejes z i y zo son paralelos entre sí, el plano xi—yi se encuentra rotado u n ángulo 9 con respecto al plano X Q —2/o, entonces la proyección del punto Pi = [pixiPiyiPiz^

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 13: ML cap 3

3.3 M a t r i c e s de rotación 153

y.

Vi ^1 ==^^1.

p.cos(Q)

Pixsen( @ )

Figura 3.4 Rotación 6 grados del plano xi — yi con respecto al plano XQ — yo-

sobre los ejes del sistema E Q s onr *

- POx = Plx cos{9) - piy sen{e)

POy = Plx sen{e) + piy cos{0) .

POz = Plz • >^

Po = Rz{0)pi =

cos{e) - sen{e) O sen(6') cos(6') O

O O 1 Pl

Propiedades de l a m a t r i z de rotación Rz{0)

La matriz de rotación Rz{d) tiene varias propiedades importantes que a continuación se presentan:

^^(0) =^ I e IR^^^ es la matr i z identidad. - -

R,{0)Rz{í3) ^ Rzif3)Rz{9) = Rz{e ^ f3) = Rz{(3 + 6). ^

R,{9y' = Rz{-9).

IATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 14: ML cap 3

1 5 4 Capítulo 3: P r e l i m i n a r e s matemáticos

Rz{e)Rz{ef = Rz{9fRz{e) = L

det[i?^( 6)] = 1 si el sistema de referencia cartesiano E ( z , ?/, z ) es seleccionado por la regla de la mano derecha, en otro caso áet[Rz{ 9)] — — 1 .

Función m a t r i z de rotación i ó i ^ ^ ^ J ^

La función matr iz de rotación ^ )

" cos(l9) - sen(^) O Rz{e) = sen{e) cos{0) O

O o 1

tiene la siguiente sintaxis: ^ - ' r ^ ^ í ,

R=Rz(6')

donde ^ G IR es el ángulo de rotación alrededor del eje z, y representa el argumento de entrada. Retorna la matr i z de rotación R.

E l cuadro 3.2 contiene el programa en código fuente para evaluar en forma simbólica las propiedades matemáticas de la matr i z de rotación Rz{9). Para simplificar el álgebra simbólica es recomendable ut i l i zar la función s i m p l i f y .

Para expresiones matemáticas con variables simbólicas, la función s i m p l i f y

resulta importante para obtener u n resultado matemático compacto, es decir

factorizado y reducido.

Cuando un programa se encuentra combinando cálculos numéricos con variables simbólicas, se recomienda usar la función vpa con una precisión de tres dígitos a través de d i g i t s O ) .

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 15: ML cap 3

3.3 M a t r i c e s de rotación 155

4 ^ Código F u e n t e 3.2 Función Rz{9)

" /OMATLAB Apl icado a Robótica y M e c a t r o n i c a .

' /oEditorial Alfaomega, Fernando Reyes Cortés.

yoCapítulo 3 Cinemática °/oArchivo Rz.m

Función Rz{0)

1 f\inction R=Rz(theta) 2 dato=whos('theta'); 3 i f StrcmpCdato. c l a s s , 'sym') "/opara var iables simbólicas - r - * — 4 R=simplify([cos(theta),-sin(theta), 0; 5 sin(theta), cos(theta), 0; 6 0,0 ,1 ] ) ; ^^^--.j^ J - - '---^A-ZW/j^^ / Á-;. '' 7 8

else%cálculos numéricos digits(3); - • ' . -

9 R=simplify([ double(cos(theta)), doublc(-siri(tlieta)), 0; ; 10 .- yi double(sin(theta)), double(cos(theta)), 0; 11 0,0, 1]); ••v: . . .. ^^^^ 12

13 end

^ Jl» E j e m p l o 3.2

Escribir un programa en M A T L A B para comprobar las propiedades de la matr i z

de rotación \ ' , • '

Solución

En el cuadro 3.5 se presenta el programa en código fuente para M A T L A B de las propiedades de la matr i z de rotación Rz{0).

Para que el resultado simbólico sea compacto o simplificado se emplea la función s i m p l i f y . ] V " í\^r ' 'G : ; i;w-^.- . <ít i

Para visualizar los resultados de las propiedades matemáticas de la matr i z Rz{0) es necesario no insertar en cada línea el operador ; ) .

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 16: ML cap 3

1 5 6 Capítulo 3: P r e l i m i n a r e s matemáticos

mH Cuando se t r a b a j a únicamente con variables simbólicas es importante

ut i l izar la función s i m p l i f y para obtener resultados algebraicos compactos.

jjQIJI Cuando hay una combinación entre variables simbólicas y cálculos numéricos

es recomendable usar la función doub le como en el cuadro del código 3.2

de la matr iz Rz{9). Otras opciones que se pueden usar son la función vpa

y d i g i t s O ) (ver el código 3.8).

Código F u e n t e 3.5 P r o p i e d a d e s de l a m a t r i z de rotación RziO)

% M A T L A B Aplicado a Robótica y M e c a t r o n i c a . ^ *.

" /oEditorial Alfaomega, Fernando Reyes Cortés

"/oCapítulo 3 Cinemática /oArchivo cap3_propiedadesRz .m

Propiedades de la matr iz de rotación Rz{0)

1 ele; 2 olear all; * 3 cióse all; 4 syms a b real - -. 5 %resultados simbólicos 6 simplify(Rz(a)*Rz(b)) %R,{a)R,{b) v v x i ^ -i^v^^^- ^•

7 simplify(Rz(b)*Rz(a)) %Rz{b)Rzia) ' ' -''^ 8 simplify(inv(Rz(a))) %i2^(a) "^ . , 9 simplify(Rz(-a)) %Rz{a)~'^ = Rz{-a)

1 0 simplify(Rz(a)') %Rz{a)'^ = Rz{a)~^ 1 1 simplify(Rz(a)'*Rz(a)) %R,{a)'^ R,{a) = I 1 2 simplify(Rz(a)*Rz(a)') %Rzia)Rz{a)'^ ^ I • , . .. 1 3 simplify(det(Rz(a))) %det[i?^( a )] = 1 1 4 %cálculo numérico - ,> ^ 1 5 theta=90*pi/180; ^ = f

1 6 Rz(theta)%i?^(é')

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 17: ML cap 3

3.3 M a t r i c e s de rotación 157

X E j e m p l o 3.3

Escribir un algor i tmo en lenguaje M A T L A B que realice la rotación de 90 grados alrededor del eje ZQ de una imagen de prueba (flecha).

Solución

El programa 3.4 contiene el código para realizar la rotación de la imagen de prueba. El vector PQ = [pxo, PyOiPzO ] ^ tiene las coordenadas de la imagen de prueba definidas en el sistema de referencia T>o{xo, yo, ZQ). E l ángulo de rotación O es de 90 grados con respecto al eje ZQ. E l sistema ^i{xi,yi, zi) tiene la imagen rotada con respecto al sistema T^oixo^yo, ZQ). L a matr i z de rotación Rzq{^) relaciona la orientación que tiene la imagen rotada definida en S i ( a : i , y i , z i ) en relación a l sistema fijo So(a:o,yo,^o)-

En la figura 3.5 se muestra el resultado del programa en ambos sistemas de referencia ^o{xo, yo, ZQ) y el sistema de referencia rotado S i ( x i , yi, zi).

•m EdK View iRsert Toots Desktop Wndov Help

1^ r -

e s -

#.

«

-1-

^9^ t -2t

-1»

20 "^30

F i g u r a 3.5 Rotación de 90 grados alrededor del eje ZQ.

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S ' A L F A O M E G A

Page 18: ML cap 3

158 Capítulo 3: P r e l i m i n a r e s matemáticos

4^ Código F u e n t e 3.4 Rotación a l r e d e d o r de l eje ZQ

" / O M A T L A B A p l i c a d o a R o b ó t i c a y M e c a t r o n i c a . " / o E d i t o r i a l A l faomega, Fernando Reyes C o r t é s . "/oCapítulo 3 Cinemática °/oArchivo c a p S j r o t a c i o n R z .m

Rotación alrededor del eje

1 ele; 2 clear all; 3 cióse all;

%coordenadas del vector pg — PxO Pyo PxO

5 pxo=[0,0,0,0,0,6,7,7, 8, 8, 9,9, 10,10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 13, 14,14, 14, 14, 14, 14, 14, 14,14, 14, 15, 15, 16,16, 17,17,18,19,20,21];

6 pyo-[0,0,0,0,0,9,9,10,9, 11, 9,12, 1, 2, 3, 4, 5, 6,7, 8, 9, 12, 12, 12, 12,1, 2, 3, 4, 5, 6, 7, 8, 9, 12, 9, 12, 9, 11, 9, 10, 9,0,0,0 ] ;

7 pzo=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0];

8 theta=90*3.1416/180.0; 9 %matriz de rotación RziO)

1 0 Rjztheta=[ cos(theta), -sin(theta), 0; 1 1 sin(theta), cos(theta), 0; 1 2 O, 0,1]; 1 3 %conversión de coordenadas del sistema T,o{xo,yo, ZQ) al sistema Ei{xi,yi, zi)

1 4 %p^ = R,{9)po 1 5 Sigmal=Rjztheta*[pxo; pyo; pzo];

Pxl

1 6

Pyi Pzl

); 1 7 px l=S igmal ( l , : 1 8 pyl=Sigmal(2, : ) ; 1 9 pzl=Sigmal(3,:) ; 2 0 %puntos graneados en los sistemas pg ^ oC o, yo, o) y P i € y i , 21) 2 1 plot3(pxo,pyo,pzo,'. ' ,pxl,pyl,pzl,'x')

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 19: ML cap 3

3.3 M a t r i c e s de rotación 1 5 9

X E j e m p l o 3 .4

Considere un punto Pi — [pix, Piy,PizV = [ 0 - 8 , 0 . 5 , 1 ] ^ en el sistema de referencia ^i{zi,yi, zi), el cual mantiene una orientación relat iva de 9 0 grados alrededor del eje ZQ del sistema fijo S Q ( Z Q , yo, ZQ). Obtener la proyección del punto Pi en el sistema fijo E Q .

Solución

El punto Pl = [pixiPiy,Piz]^ = [ 0 . 8 , 0 . 5 , 1 ] - ^ se encuentra en el sistema de referencia El ( z i , y i , z i ) , la conversión de coordenadas al sistema de referencia fijo se realiza a través de: P Q = R{z, 0)pi, obteniendo lo siguiente:

Po =

cos ( f ) s en ( f )

O - 0 . 5

0 . 8

1

- s e n ( f ) cos ( f )

O

" 0 . 8 '

0 . 5

1

Nótese que el punto PQ en el sistema de referencia fijo E Q (zo? 2/0? ) se puede convertir al punto Pi en el sistema de referencia rotado E i ( z i , y i , z i ) , a través de la siguiente relación: , ^ .

- cos ( f ) sen ( f ) 0 " • - 0 . 5 "

Pl = - s en ( f ) cos ( f ) 0 0 . 8

0 0 1 1

0 . 8

0 .5

1

La figura 3 .6 muestra la descripción geométrica del punto pi y su proyección sobre el sistema de referencia E Q ( Z Q , yo,-2 0 )• Observe que los ejes ZQ y zi se mantienen paralelos entre sí. MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 20: ML cap 3

160 Capítulo 3: P r e l i m i n a r e s matemáticos

J(t E j e m p l o 3.5

Considere un paralelepípedo rectangular definido en el sistema de referencia '^oizQ^yo, ZQ)] ro tar el poliedro 180 grados alrededor del eje ZQ. Describir la proyección del sistema de referencia rotado E i ( z i , y i , z i ) en el sistema de referencia fijo.

Solución

Sea Po — [POxiPOyiPOz]^ u n punto sobre el paralelepípedo rectangular, al ro tar este punto Po 180 grados con respecto al eje ZQ se mueve rígidamente j u n t o con todo el sólido quedando en el punto Pi — [pix,Piy,Piz\^•

Todos los puntos que pertenecen al poliedro están sujetos a la siguiente transformación: Pi = i?^(7r)po, es decir los puntos Po definidos en el sistema ^QÍXQIVQ-, ZQ) son transformados a coordenadas Pi en el sistema E i ( x i , y i , z i ) por medio de la matr i z de rotación Rz{n). La interpretación geométrica de la rotación del poliedro 90 grados alrededor del eje ZQ se presenta en la figura 3.7. _

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 21: ML cap 3

3.3 M a t r i c e s de rotación 161

Zo i Z,

( J O , X ) , X > ) *^0y '^Oz

y,

Figura 3.7 Rotación de 180 grados alrededor del eje ZQ de u n paralelepípedo rectangular.

1 3 .3 .2 M a t r i z d e rotación a l r e d e d o r d e l e j e X Q

Considere el sistema de referencia S i ( z i , y i , z i ) el cual está rotado u n ángulo Q alrededor del eje X Q del sistema E Q ( Z Q , yo,-^o); obtener la matr i z resultante de rotación.

En la figura 3.8 se muestra la rotación del sistema E i ( z i , y i , z i ) con respecto al eje Xo del sistema fijo Eo (zo, yo, 2^0); el ángulo de rotación Q g ira alrededor del eje X Q en sentido positivo (contrario a las manecillas del re lo j ) .

En este caso el ángulo de rotación que existe entre los ejes XQ y x\s cero, puesto que son ejes paralelos. Para la pr imera columna \i\ ¿o ¿1 - Jo ¿1 • ^ o ] ^ de la matriz de rotación RQ{0) ecuación (3.9) tiene las siguientes componentes: ¿1 • ¿o = cos(O) = 1, ¿1 • Jo = cos(|) = 0; ¿1 • feo = cos(|) = 0. L a segunda columna [ J i • io J i • Jo J i • ko]^ adquiere la siguiente forma: J i • io = cos(|) = O, i i • Jo = cos(6') y j i • feo = cos((9 - |) = sen(6').

Finalmente, la tercera columna [ki • ÍQ ki • JQ ki • ko] se encuentra definida

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 22: ML cap 3

162 Capítulo 3: P r e l i m i n a r e s matemáticos

. : ; ^ F i g u r a 3.8 Rotación de un ángulo 9 alrededor del eje XQ. - ^

como: fci • ¿o — cos(|) = O, fei • JQ = cos(^ + f ) = ~ sen(0) y fei • feo — cos(^).

Por lo tanto , la matr i z correspondiente de rotación está dada por:

1 O O Rl{9) = O cos(^) - sen(6')

O sen((9) cos(6') (3.16)

Observe que los ejes X Q y xi coinciden entre sí, y el plano zi — y\e desplaza un ángulo 9 de derecha a izquierda con respecto al plano X Q — yo- ^ ^ - •

Notación

La matr iz (3.16) cuyo ángulo de rotación 9 se realiza alrededor del eje x se denota por iía;(^) y su estructura matemática es:

RAO) =

1 O o o cos(6') - sen(6') O sen(6') cos(6')

(3.17)

Las propiedades de la matr i z de rotación Rxi9) son las mismas para Rz{9).

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 23: ML cap 3

3.3 M a t r i c e s de rotación 163

3.3 .3 M a t r i z d e rotación a l r e d e d o r d e l e j e yo

Considere los sistemas de referencia E i ( z i , i / i , z i ) y YIQ { zo,yo, ZQ), el sistema ^i{zi,yi, zi) se encuentra rotado un ángulo 9 alrededor del eje yo del sistema fijo ^o{zo,yo, ZQ). Obtener la matr i z resultante de rotación.

De la figura 3.9 se puede obtener la matr i z que relaciona la orientación relat iva del sistema de referencia E i ( z i , y i , z i ) con respecto al sistema de referencia fijo So [zo.yo^zo). E l ángulo de rotación 6 es alrededor del eje yo-

La matriz Í ? Q ( ^ ) adquiere la siguiente expresión:

cos(e) o sen(^) O 1 O

- scn(6') O cos(6') (3.18)

Figura 3.9 Rotación de un ángulo 9 del sistema E i alrededor del eje yo del sistema

So. . - . . . . ^

Observe que la rotación del ángulo O alrededor del eje yo mueve el plano zi — xi.

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 24: ML cap 3

164 Capítulo 3: P r e l i m i n a r e s matemáticos

La matr iz de rotación (3.18) describe la orientación relat iva del sistema

S i ( z i , z i ) con respecto al sistema de referencia fijo EQ ( ZQ, yo, zo ) usando una

rotación alrededor del eje yo, la cual se denota por:

RyiO) =

cos{e) o sen(^)

O 1 O

_ - sen(6') O cos(^) _

(3.19)

Las propiedades de Ry{9) son las mismas que Rz{9).

• 3.4 Reglas de rotación

G E N E R A L M E N T E la descripción de la orientación del sistema de referencia de la herramienta de t raba jo del robot colocada en el extremo final del robot con

respecto al sistema de referencia fijo en la base del robot involucra varias rotaciones sucesivas (composición de rotaciones). Existen varios métodos que permiten definir el orden o reglas de las rotaciones consecutivas.

^ o m p o s i c i ó i ^ ^ ^ o t a c i ^ ^

Considere tres sistemas de referencia cartesianos definidos por Ho {xo,yo, zo) (sistema fijo), S i ( x i , y i , z i ) tiene una rotación relat iva al sistema fijo y sea el sistema de referencia '^2 {x2,y2, ^2) cuya orientación relat iva es con respecto al sistema de referencia S i ( x i , y i , z i ) . Todos los sistemas de referencia cartesianos comparten el mismo origen como se presenta en la figura 3.10.

E l problema que se plantea es encontrar la expresión matemática que relaciona la orientación del sistema de referencia S2 ( X2, ?/25 2 ) re lat ivo al sistema de referencia fijo So (xo , 2/0,^0 )•

Puesto que los tres sistemas de referencia tienen el mismo origen, entonces un punto p puede ser representado en función de las coordenadas pQ,Pi,p2 de la siguiente

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 25: ML cap 3

3.4 R e g l a s de rotación 165

F i g u r a 3.10 Composición de rotaciones.

forma:

Po = RIPI : ..^ ' (3-20)

> P l = R\P2 : (3.21)

donde la matr iz representa la orientación del sistema de referencia S i ( x i , y i , z\) con respecto al sistema de referencia So (xo , yo?-^o), y la matr i z R\e la orientación del sistema de referencia S2 (a:2,2/2,-2^2) respecto al sistema

Por lo tanto , la relación que hay entre u n punto pg G So ( XQ, yo,-2^0) con las coordenadas P2 € S2 (^2, ^2, -22 ) está determinada por la siguiente expresión:

Po = R I R I P 2 ' • ' (3.22)

donde RQR\a la orientación del sistema de referencia S2 (X2, y2,-2:2)

respecto al sistema fijo So ( XQ, yo,-2:0), y significa una regla de composición para establecer el orden para transformar un punto p desde su representación en el sistema 2 (a^2, y2, -22 ) a SU correspondiente representación en el sistema SQ (xo , yo, 2:0 ) .

La regla de transformación RQRI establece que el pr imer paso es transformar el punto P2 en coordenadas del sistema S i ( x i , y i , z i ) por medio de , posteriormente al punto Po por medio de RQ. L a regla de composición de rotaciones sucesivas se establece como:

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 26: ML cap 3

1 6 6 Capítulo 3: P r e l i m i n a r e s matemáticos

Rl = RlRl (3.23)

La regla de composición de rotaciones (3.23) puede ser interpretada de la siguiente manera: supóngase que inicialmente los tres sistemas E i , S2 y S3 coinciden. Primero se rota el sistema de referencia E i ( x i , y i , z i ) re lat ivo a EQ ( XQ, yo, ZQ ) de acuerdo a la transformación RQ. Ahora con los sistemas de referencia coincidentes E i y E2, se rota el sistema E2 ( X 2 , ^2,-2^2) relat ivo a S i ( x i , y i , z i ) de acuerdo a la transformación R \ E l sistema de referencia E2 (^2, y2,-2^2) tiene una orientación con respecto al sistema de referencia EQ (xo , yo, - o ) dado por la matr i z RQR\o se muestra en la figura 3.11.

F i g u r a 3.11 Regla de composición de rotaciones sucesivas.

La regla de composición de rotación sucesivas (3.23) se basa en generar nuevos sistemas de referencia consecutivos. Por ejemplo, se forma el sistema de referencia S i (2:1, y i , 2:1) como consecuencia de rotar u n ángulo determinado alrededor de uno de los ejes principales del sistema Eo (xo , yo, ZQ ) , seguido por o t ra rotación ahora alrededor del eje y\l sistema actual E i ( x i , y i , z i ) para obtener el sistema

de referencia E2 ( X 2 , y2, -2:2 ) . Realizando giros en diferente orden, se obtienen otros tipos de representaciones.

Es importante subrayar que la multiplicación de matrices de rotación no es conmutativa, en consecuencia el orden de las rotaciones no es conmutat ivo .

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 27: ML cap 3

3.4 R e g l a s de rotación 167

X E j e m p l o 3.6

Considere el procedimiento de rotación que se muestra en la figura 3.12; obtener la

matriz resultante que define la rotación del sistema de referencia E2 con respecto

al sistema de referencia EQ.

Solución

En la figura 3.12 se pueden observar los tres sistemas de referencia EQ, E i y E2.

Todos los sistemas de referencia comparten el mismo origen.

F i g u r a 3.12 Rotación con respecto al sistema actual .

En el esquema izquierdo de la figura 3.12 se encuentran definidos los sistemas de referencia T^Q {xo,yo, ZQ) y E i ( x i , y i , z i ) . Los ejes yo y yi son paralelos entre sí; existe una rotación por un ángulo (f) alrededor del eje yo que se representa por la matriz RyQ,(f). Posteriormente, continúa una rotación por un ángulo O alrededor del eje zi para generar el sistema de referencia E2 (^2,2/2, 2 ) (parte central de la figura 3.12), los ejes zi y Z2 son paralelos entre sí. La orientación relat iva del sistema E2

con respecto al sistema de referencia E i está determinada por la matr i z Rzi{0).

El esquema derecho de la figura 3.12 muestra la orientación del sistema de referencia E2 con respecto al sistema de referencia EQ, cuya matr i z de rotación se encuentra dado por: ;

RI = R^RJ = Ry^ic/)) Rzi{9)

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 28: ML cap 3

168 Capítulo 3: P r e l i m i n a r e s matemáticos

cos(0) o sen(^)

O 1 O

— sen((/)) O cos(0) J

cos(6') - sen(6') O

sen(^) cos(cos(^)) O

O O 1

cos{ip) cos(^) — cos{ip) sen(^) sen('0) sen(^) cos(é>) O

— sen(0) cos(^) sen(0) sen(^) cos(0)

donde Rl = Ry^icP) y RÍ = Rz,i0).

Para mostrar que el orden de las rotaciones es i m p o r t a n t e , considere el caso donde

las rotaciones se realizan en orden inverso: RQ = RIRQ = Rzi(O)RyQ{(j)). Es decir,

primero la rotación alrededor del eje zi, seguida por una rotación alrededor del eje

yo- Entonces, la matr iz resultante está dada por:

RI Rz,{e)RyM) cos{6) — sen(^) Oí f cos(0) O sen(0) sen(6') cos(cos((9)) O 0 1 0

O O 1 J L - sen((/)) O cos((^)

cos(^) cos{i¡)) — sen(^) cos(^) sen('0)

sen(^) cos(^) cos(^) sen(^) sen('0)

— sen('0) O cos(V )

Observe que es impor tante el orden de rotaciones: RQ = RQR\. E S decir, en general

i^o / R\RQ.

X X E j e m p l o 3.7i

Considere una figura de prueba (flecha) que se encuentra definida en el sistema

de referencia So(xo, yo,-s^o)- Realizar rotaciones sucesivas por u n ángulo ^ = f alrededor de los eje ZQ, del sistema resultante S i ( x i , y i , zi) realizar una rotación

^ = I alrededor del eje x i , y finalmente del sistema generado S2(x2, y2, ^2) rotar

alrededor del eje y2 por ^ = f.

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S .

Page 29: ML cap 3

3.4 R e g l a s de rotación 169

Solución

La figura de prueba es una flecha cuyas coordenadas se encuentran definidas en el sistema de referencia T,o{xo,yo, ZQ), cada coordenada de la figura de prueba se encuentra especificada por u n punto PQ = [PxO,PyO,Pzo] • U n observador en el sistema de referencia Y!,Q{xo,yo, ZQ) verá a la figura de prueba sin ningún efecto de rotación. Sin embargo, después de realizar la rotación Rz^ ( | ) u n observador colocado en el sistema de referencia EQC O, 2/0?- o) verá a dicha figura rotada 90 grados en el nuevo sistema generado S i ( x i , y i , z i ) . Las coordenadas de la flecha en el sistema S i ( x i , y i , zi) son Pi = RZQÍ f )Po- Posteriormente se realiza una nueva rotación de 90 grados alrededor del eje x i , dada por: Rx^i f ) , con esto se genera el sistema T,2{x2, y2, ^2)- Las coordenadas de la flecha en este sistema T>2{x2, ^2, Z2) están especificadas por P2 = Rxii f ) P i - L a última rotación consiste en girar a la imagen de prueba (flecha) 90 grados alrededor del eje y2- Esta rotación genera el sistema de referencia S3(x3, ya, z^) con coordenadas de la imagen P3 = Ry^{ | )p2-

La relación del sistema de referencia 23(^3, ys, 2:3) con el sistema de referencia

Eo(xo, yo, zo) es: P3 = Ry,{^)Rx,{^ )Rz, ( f )po o Po = [ ^ . 2 ( f ) ^ x , ( f )Rzo ( f ) 1^ P3

La figura 3.13 muestra la sucesión de rotaciones.

>He EdK Vi«w inMft Tooto Oeaktop Window He4p • a y ^ tí % ^ - a o B a s

-10 -20

Figura 3.13 Rotaciones sucesivas de la figura de prueba alrededor de los ejes

^,xi,y2.

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 30: ML cap 3

170 Capítulo 3: P r e l i m i n a r e s matemáticos

Código F u e n t e 3.5 R o t a c i o n e s a l r e d e d o r de los ejes zo,xi,y2

" / O M A T L A B A p l i c a d o a R o b ó t i c a y M e c a t r o n i c a . ' ' / . E d i t o r i a l A l faomega , Fernando Reyes C o r t é s . "/oCapítulo 3 Cinemática Z A r c h i v o c a p 3 _ r o t a c i o n . m

Rotaciones alrededor de los ejes Z Q , x i , 7/2

1 ele; clear all; cióse all ; . 2 pzo=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0, ^ . , ^ ,,:

0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]; 3 pyo=[0,0,0,0,0,9,9,10,9, 11, 9,12, 1, 2, 3, 4, 5, 6,7, 8, 9, 12, 12, 12, 12,1, 2, 3, 4, 5,

6 , 7 , 8 , 9 , 1 2 , 9 , 1 2 , 9 , 1 1 , 9 , 1 0 , 9 , 0 , 0 , 0 ] ; 4 pxo=[0,0,0,0,0,6,7,7, 8, 8, 9,9, 10,10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 12, 13, 14,14,

14, 14, 14, 14, 14, 14,14, 14, 15, 15, 16,16, 17,17,18,19,20,21]; _ 5 tlieta=90*3.1416/180.0; 6 R_ztheta=[ cos(theta), -sin(theta), 0; sin(theta), cos(theta), 0; O, 0,1]; 7 R_xtheta=[ 1, O, 0; O, cos(theta), -sin(tlieta); O, sin(theta), cos(tlieta)]; 8 R_ytheta=[ cos(theta). O, sin(theta); O, 1, 0; -sin(theta). O, cos(theta)];

Xo

% 2/1 = RziO) yo 9

. ^ 1 . Zo 1 0 Sigmal=R_ztheta*[pxo; pyo; pzo]; 1 1 pxl=Sigmal( l , : ) ;pyl=Sigmal(2 , : ) ; pzl=Sigmal(3, : ) ;

X2 Xl

% 2/2 = Rx{0) yi 1 2 .^2. 1 3 Sigma2=Rjxtheta*[pxl; p y l ; pz l ] ; 1 4 px2=Sigma2(l,:); py2=Sigma2(2,:); pz2=Sigma2(3,:);

X3 X2 % ys = RyiO) 2/2

1 5 . ^ 3 . Z2 1 6 Sigma3=R_ytheta*[px2; py2; pz2]; • ' 1 ' 1 7 px3=Sigma3(l,:); py3=Sigma3(2,:); pz3=Sigma3(3,:); 1 8 plot3(pxo,pyo,pzo,'.',pxl,pyl,pzl,'x',px2,py2,pz2,'o',px3,py3,pz3,'o')

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 31: ML cap 3

3.5 T r a n s f o r m a c i o n e s de traslación 171

3.5 Transformaciones de traslación

C O N S I D E R E el sistema de referencia cartesiano fijo T,Q {xo,yo, ZQ) y el sistema de referencia S i ( x i , y i , zi), donde sus respectivos orígenes son no coincidentes.

El origen del sistema de referencia S i se encuentra desplazado una distancia d j con respecto al origen del sistema SQ, como se muestra en la figura 3.14.

Figura 3.14 Transformaciones de traslación y rotación del sistema S i con respecto

al sistema So. r- ; ,. w

El vector <i¿ está expresado en coordenadas del sistema So: = [do^^dly^dQ^]^, entonces cualquier punto p tiene representación PQ y Pi- L a relación general entre los sistemas de referencia So (xo , yo?-2 0) y ( ^ i ? y i 5 ^ i ) incluyendo la m a t r i z de rotación RQ y el vector de traslación cZ¿ es:

PQ = dl + Rlp, (3.24)

'Plx'

Piy

Para el caso de tres sistemas de referencia cartesianos IlQixoyoZo), S i ( x i y i 2 ; i ) y

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 32: ML cap 3

172 Capítulo 3: P r e l i m i n a r e s matemáticos

^2(3 22/2- 2) (ver figura 3.15) se obtienen las siguientes expresiones:

Po = dl + Rlpi

Pl = dl + Rlp2

(3.25)

(3.26)

V

F i g u r a 3.15 Traslación y rotación de S i y 112 con respecto al sistema SQ.

Sustituyendo la ecuación (3.26) en (3.25) se tiene:

Po = dl^-Rld\ RlR\p2. ^: - > (3.27)

Por lo tanto , la regla de transformación de traslación y orientación de u n punto P2

en el sistema S2(x2y2-2^2) hacia u n punto P Q en el sistema So(xo2/o-2^o) adquiere la siguiente estructura:

Po = dl + Rlp2 (3.28)

donde

KQ — rÍQJríi

d'o = dl + Rldl

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 33: ML cap 3

3.6 T r a n s f o r m a c i o n e s homogéneas

1

173

3.6 Transformaciones homogéneas

A notación más común para representar la transformación de traslación y rotación en forma compacta se conoce como transformación homogénea.

Por ejemplo, para representar el caso de traslación y rotación del sistema Ei{xiyiZi)

con respecto al sistema Ho{xoyoZQ)

la transformación homogénea se realiza con la siguiente notación:

Rn (IQ 0 0^ 1

(3.29)

Vector de

traslación

M a t r i z de

rotación

0^

donde RQ G 5 0 ( 3 ) y (ÍQ E JR^. Para propósitos de acoplamiento en dimensiones, el vector 0^ y el número 1 aparecen en el último renglón.

La representación inversa que relaciona el punto p^ en función del punto Po adquiere la siguiente forma:

P l = -Rfdl^RfpQ

entonces,.la transformación homogénea inversa está determinada por:

-Ro^dl ^

o (3.30)

Las matrices de rotación permiten modelar la orientación de la herramienta de trabajo colocada en el extremo final del robot , y j u n t o con las transformaciones homogéneas dentro de una sola matr i z incluye la orientación y posición de la herramienta de t raba jo , formando la estructura del modelo cinemático directo.

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 34: ML cap 3

174 Capítulo 3: P r e l i m i n a r e s matemáticos

^ ^ ^ ^ 3.7 Librerías para matrices homogéneas

E" N esta sección se presentan las librerías de transformación homogénea de J rotación y traslación con respecto a los ejes principales x, y, z.

^ a t r i c e ^ d ^ t r a ñ s f o r m a ^

Las matrices de transformación homogénea de rotación con respecto a los ejes y, z, respectivamente, tienen la siguiente estructura:

HRM =

r n o o -| ro-j n o cos(6') - sen{0) O

Lo sen(6') cos(6') J Lo. O O O cos{e) - sen{e) O sen{e) cos{e) O

O 0 1, 0 0 0

1

O o

LoJ 1

HRyiO) =

005(6») o sen(é') O 1 O

sen{e) O cos{e) J Lo. O O O 1

^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ a s l a ^ ^ ^ ^

Las matrices de transformación homogénea de traslación con respecto a los ejes X, y, z respectivamente tienen la siguiente estructura:

HTM = r- "1 0 0- -d-

0 1 0 0 .0 0 1. .0_ [0 ü 0] 1

p •1 0 0' 0 1 0 d

.0 0 1. .0. _ [0 0 0] 1

p -1 0 0' •0" 0 1 0 0

.0 0 1. .d. . [0 0 0] 1

^ ^ l a i r i z j d e ^ ^ m

La matr iz de transformación homogénea Denavit Hartenberg tiene la forma siguiente:

E = R

0^

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 35: ML cap 3

3.7 Librerías p a r a m a t r i c e s homogéneas 175

3.7.1 M a t r i z d e transformación h o m o g é n e a HRx{0)

La sintaxis de la función de transformación homogénea de rotación HRx{9) alrededor del eje x está dada por: - -

donde 9 es el ángulo de rotación alrededor del eje x y es la variable de la función HRx(^). Retorna la matr i z de transformación homogénea RHx. - • - v v - ^

4 ^ Código F u e n t e 3.6 Función HRx{9)

7OMATLAB A p l i c a d o a R o b ó t i c a y M e c a t r o n i c a . "/oEditorial A l faomega , Fernando Reyes C o r t é s .

'/«Capítulo 3 Cinemática "/ofunción HRx.m

Función HRx{9)

1 funet ion RHx=HRx(theta) 2 dato=whos ('theta'): 3 i f StrcmpCdato.class, ' sym' ) "/ovariables simbólicas 4 R H x = [ l , 0, 0, 0; 5 0, cos(theta), -sin(theta), 0; 6 0, sin(theta), cos(theta), 0; 7 0, 0, 0, 1]; 8 else digits(3); %cálculos numéricos 9 RHx=round( [ l , 0, 0, 0;

1 0 0, vpa(cos(theta),3), vpa(-sin(theta),3), 0; 1 1 0, vpa(sin(theta),3), vpa(cos(theta),3), 0; 1 2 0, 0, 0, 1]); 1 3 end 1 4 end

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 36: ML cap 3

176 Capítulo 3: P r e l i m i n a r e s matemáticos

3.7 .2 M a t r i z d e transformación h o m o g é n e a HRy{6)

La sintaxis de la función de transformación homogénea de rotación HRy{q) alrededor del eje está dada por:

Q RHy=HRy(é')

donde 6 es el ángulo de rotación alrededor del eje y y es la variable de la función HRy(^). Retorna la matr i z de transformación homogénea RHy.

4 ( Código F u e n t e 3.7 Función HRy{e)

" / O M A T L A B A p l i c a d o a R o b ó t i c a y M e c a t r o n i c a .

" / o E d i t o r i a l A l faomega , Fernando Reyes C o r t é s . "/oCapítulo 3 Cinemática °/ofunción HRy.m

Función HRy{9)

1 f u n c t i o n RHy=HEy(theta) 2 dato=whos('theta'); i f strcmpCdato. c l ass , ' s y m ' ) / ( v a r i a b l e s

simbólicas 3 RHy=[cos(theta), 0, sin(theta), 0; 4 0, 1, 0, 0; 5 -sin(theta), 0, cos(theta), 0; 6 0, 0, 0, 1]; 7 else digits(3); %cálculos numéricos 8 RHy=round([ vpa(cos(theta),3), 0, vpa(sin(theta),3), 0; 9 0, 1, 0, 0;

1 0 vpa(-sin(theta),3), 0, vpa(cos(theta),3), 0; 1 1 0, 0, 0, 1]); 1 2 end 1 3 end

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS,

Page 37: ML cap 3

3.7 Librerías p a r a m a t r i c e s homogéneas 177

3.7.3 M a t r i z d e transformación h o m o g é n e a HRz{9)

La sintaxis de la función de transformación homogénea de rotación HRz{6) alrededor del eje 2 está dada por:

RHz=HRz(^) Q

donde 9 es el ángulo de rotación alrededor del eje 2; y es la variable de la función HRz(^). Retorna la matr i z de transformación homogénea RHz. r . ' - .r

4 ^ Código F u e n t e 3.8 Función HRz{9)

" / O M A T L A B A p l i c a d o a R o b ó t i c a y M e c a t r o n i c a .

' / . E d i t o r i a l A l faomega , Fernando Reyes C o r t é s . '/.Capítulo 3 Cinemática Z func ión HRz.m

Función HRz{9)

1 func t i on RHz=HRz(theta) 2 dato=whos( 'theta'); 3 i f strcmp (dato . c l ass , ' sym') ' /ovariables simbólicas 4 RHz=[cos(theta), -sin(theta), 0, 0; 5 sin(theta), cos(theta), 0, 0; 6 0, 0, 1, 0; 7 0, 0, 0, 1]; 8 else digits(3); %cálculos numéricos 9 RHz=round([ vpa(cos(theta),3), vpa(-sin(theta),3), 0, 0;

1 0 vpa(sin(theta),3), vpa(cos(theta),3), 0, 0; 1 1 0, 0, 1, 0; 1 2 0, 0, 0, 1]); 1 3 end 1 4 end

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 38: ML cap 3

178 Capítulo 3: P r e l i m i n a r e s matemáticos

3 .7 .4 M a t r i z d e transformación h o m o g é n e a HTx{d)

La sintaxis de la función de transformación homogénea de traslación HTx{d) a lo largo del eje a: está dada por:

Q THx=HTx(d)

donde d es el desplazamiento de traslación sobre el eje x. Retorna la matr i z de transformación homogénea THx. . : f l ; i : Í . rr

# Código F u e n t e 3.9 Función HT^id)

" / O M A T L A B Apl icado a Robótica y M e c a t r o n i c a .

7oEditorial Alfaomega, Ferncindo Reyes Cortés

'/«Capítulo 3 Cinemática Xfunción HTx.m

Función HTx{d)

1 f u n c t i o n Tx=HTx(d) 2 I Tx= [ 1 O O d; O 1 O 0; O O 1 0; O O O 1]; 3 end

3.7 .5 M a t r i z d e transformación h o m o g é n e a HTy{d)

La sintaxis de la función de transformación homogénea de traslación HTy{d) a lo largo del eje está dada por:

THy=HTy(d)

donde d es el desplazamiento lineal de traslación sobre el eje y. Retorna la matriz de transformación homogénea THy.

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 39: ML cap 3

3.7 Librerías p a r a m a t r i c e s homogéneas 179

Código F u e n t e 3.10 Función HTy{d)

' / O M A T L A B A p l i c a d o a R o b ó t i c a y M e c a t r o n i c a . " / .Ed i t o r ia l A l faomega , Fernando Reyes Cor tés '/.Capítulo 3 Cinemática "/ofunción HTy.m

Función HTy{d)

1 f unc t i on Tz=HTy(d)

2 I Tz=[ 1 O O 0; O 1 O d; O O 1 0; O O O 1]; 3 end

3.7.6 M a t r i z d e transformación h o m o g é n e a HTz{d)

La sintaxis de la función de transformación homogénea de traslación HTz{d) a lo largo del eje 2 está dada por: ;

THz=HTz(d)

donde d es el desplazamiento lineal de traslación sobre el eje z. Retorna la matr i z de transformación homogénea THz. i - ,

# Código F u e n t e 3.11 Función HTzid)

' / O M A T L A B A p l i c a d o a R o b ó t i c a y M e c a t r o n i c a . ' / . E d i t o r i a l A l faomega , Fernando Reyes Cor tés '/.Capítulo 3 Cinemática y„función HTz.m

Función HTz{d)

1 func t i on Tz=HTz(d) 2 I T z - [ 1 O O 0; O 1 O 0; O O 1 d; O O O 1]; 3 end

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 40: ML cap 3

180 Capítulo 3: P r e l i m i n a r e s matemáticos

3 .7 .7 M a t r i z d e transformación D H

La función H _ D H ( H ) extrae de la matr i z de transformación homogénea H la matriz de rotación y el vector de coordenadas cartesianas.

La sintaxis de la función de transformación homogénea D H está dada por:

[R v e c t _ d v e c t _ c e r o c]=H_DH(H)

donde H es la variable de entrada y representa la matr i z de transformación homogénea. Retorna la matr i z de rotación R , el vector de coordenadas cartesianas vect_d , el vector v e c t _ c e r o = [ 0 , O, 0 ] ^ y la constante u n i t a r i a c = l .

Código F u e n t e 3.12 Función H _ D H

" / O M A T L A B A p l i c a d o a R o b ó t i c a y M e c a t r o n i c a . " / E d i t o r i a l A l faomega , Fernando Reyes C o r t é s . " /Capítulo 3 Cinemática " / función HJDH.m

Función H _ D H 1 f u n c t i o n [R vect_d vect .cero c]=H_DH(H) 2 f o r i = l :3 3 f o r j = l : 3 4 I R( i , j )=H( i , j ) ; 5 end 6 end 7 %estructura de la matriz de transformación homogénea 8 vect_d=[H(l,4) ;H(2,4);H(3,4)] ; 9 vect_cero=[0;0;0]';

1 0 c = l ; 1 1 end

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.

Page 41: ML cap 3

3.8 R e s u m e n 181

3.8 Resumen

C I N E M Á T I C A de robots manipuladores y sistemas mecatrónicos encuentra su fundamento en una clase part i cular de matrices denominadas ortogonales.

Estos preliminares matemáticos constituyen la base para desarrollar propiedades, reglas y operaciones de traslación y rotación entre dos sistemas de referencia ^ 0 ( 3 ^ 0 5 yo? ^o) y ^i{xi,yi, Zl) bajo una estructura matemática denominada matr i z de transformación homogénea.

La matriz ortogonal RQ representa la orientación del sistema de referencia ^0(3^0? 1/07 ^0) con respecto al sistema E i ( x i , z i ) . De part i cular interés son las matrices de rotación Rx{9), Ry{9), Rz{9) ya que representan la rotación alrededor de los ejes principales x, y, z, respectivamente. E l orden como se realice la rotación determina la regla o procedimiento de orientar u n sistema de referencia con respecto a otro.

En este capítulo se ha desarrollado un conjunto de librerías para realizar operaciones de traslación y rotación. La librería R=Rz(^) realiza la rotación del sistema de referencia 2 1 ) con respecto al sistema de referencia Il(){xo,yo, ZQ). Esta función puede t raba jar con variables simbólicas y también para realizar aplicaciones numéricas. De manera análoga se puede implementar las funciones R=Rx(^) y R=Ry(6').

Cuando hay combinación de cálculos numéricos con variables simbólicas, como es el caso de las matrices de transformación homogénea (rotación y traslación) la funciones vpa, r o u n d y doub le pueden ayudar a presentar el resultado numérico de manera conveniente.

Por otro lado, para simplificar las expresiones simbólicas se recomienda usar la función s i m p l i f y , por lo que el lector puede modificar el código fuente de las librerías desarrolladas para presentar resultados simbólicos o numéricos a su entera conveniencia.

La tabla 3.1 contiene el resumen de las librerías para realizar las matrices de

MATLAB A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S C O R T É S A L F A O M E G A

Page 42: ML cap 3

182 Capítulo 3: P r e l i m i n a r e s matemáticos

transformación homogénea de traslación y rotación.

T a b l a 3.1 M a t r i c e s de transformación homogénea

Función Sintaxis

Matr i z de transformación

homogénea de rotación a l ­ RHx=HRx(6') 6» e IR. rededor del eje a:

Matr i z de transformación homogénea de rotación a l ­ RHy=HRy(6>) ^ G IR.

rededor del eje ?/

Matr i z de transformación

homogénea de rotación a l ­ RHz=HRz(^) 6» G IR. > - ^ ^ - • rededor del eje 2

Matr i z de transformación

homogénea de traslación THx=HTx(d) dG IR. sobre el eje x

Matr i z de transformación

homogénea de traslación THy=HTy(d) dG IR. . " / , ^ sobre el eje ^

M a t r i z de transformación

homogénea de traslación THz=HTz(d) dG IR. sobre el eje z

[R vect_d vect_cero c]=HJDH(H)

M a t r i z de transformación RG S O { S ) es la matr i z de rotación

homogénea Hartenberg

Denavit -vect_d es el vector con coordenadas cartsianas:

[x y zf

v e c t _ c e r o = [ 0 , 0 , 0 ] ^ c = l .

A L F A O M E G A M A T L A B A P L I C A D O A R O B Ó T I C A Y M E C A T R O N I C A • F E R N A N D O R E Y E S CORTÉS.