Está en la página 1de 47

ROBÓTICA

MOVIMIENTO DE
CUERPOS RIGIDOS
(segunda parte)

Ing. Iván A. Calle Flores

1
Contenido

1. Composición de rotaciones.
2. Parametrización de rotaciones
Ángulos de Euler.
Ángulos Roll, Pitch, Yaw
Representación Eje-Angulo
Cuaternión unitario
1. COMPOSICIÓN DE ROTACIONES

▪ Se refiere al análisis de
la rotación que resulta
al aplicar una serie de
rotaciones.
Composición respecto al eje actual

• Se refiere a las rotaciones sucesivas del tipo que se muestra en la figura.

R10 R21

R =R R
0
2
0
1
1
2

• La matriz de rotación se acumula por la derecha.


Composición respecto al eje actual

Ejemplo: Halle la matriz de rotación R que representa una rotación f alrededor


del eje “y” actual, seguida de una rotación q alrededor del eje “z” actual.
Composición respecto al eje actual

Solución.

R20 = Ry ,f Rz ,q
 cos f 0 sin f  cos q − sin q 0  Demo_01.m
=  0 1 0   sin q cos q 0 
 − sin f 0 cos f   0 0 1 
 cos f cos q − cos f sin q sin f 
=  sin q cos q 0 
 − sin f cos q sin f sin q cos f 
¿Si se aplica un orden invertido se obtiene el mismo resultado?
Composición respecto al eje actual

Ejemplo: Continuando el ejemplo anterior, halle la matriz de rotación bajo las


siguientes consideraciones
Demo_02.m
f = pi / 6 2

q = pi / 4
1.5

1 Z
Z21 0
0.5
Y
2
0 {1}
X0 {2}
{0}
Y 10
-0.5 X
X1 2
-1

-1.5

-2
-2
-1 -2
0 -1
1 1 0
2 2
Composición respecto al eje inercial

• Se refiere a las rotaciones sucesivas del tipo que se muestra en la figura.

R10
R

R = RR
0
2
0
1

• La matriz de rotación se acumula por la izquierda.


Composición respecto al eje inercial

Ejemplo: Halle la matriz de rotación R que resulta de la rotación de un ángulo f


alrededor del eje y (Ry,f), y una rotación q alrededor del eje inercial z (Rz,q)
Composición respecto al eje inercial

Solución.

R20 = Rz ,q Ry ,f
cos q − sin q 0   cos f 0 sin f  Demo_03.m
=  sin q cos q 0   0 1 0 
 0 0 1   − sin f 0 cos f 
cos q  cos f − sin q cos q  sinf 
=  sin q  cos f cos q sin q  sinf 
 − sin f 0 cos f 
¿Si se aplica un orden invertido se obtiene el mismo resultado?
Composición respecto al eje inercial

Ejemplo: Continuando el ejemplo anterior, halle la matriz de rotación bajo las


siguientes consideraciones
Demo_04.m
f = pi / 6
q = pi / 4 2

Z0
1 Z1 Z
2
{1}
{2}
{0} Y2
0 X Y 10
0
X1 X2
-1

-2
-2 -1
-2
-1 0
0 1
1
2 2
Composición respecto al eje inercial

Demostración.

• Suponga que tenemos 2 sistemas {0}, {1}, si aplicamos una rotación


“R” respecto al eje inercial, en el eje {1} esta rotación esta dada por.

R = (R
1
2 1)
0 −1
RR10 …Aplicando la transformación de similitud
• De donde se aplicando la ley de composición en el eje actual.

R = R ( R1 ) RR10  = RR10
0  0 −1
0
2
 1

• De donde se tiene que las matrices de rotaciones sucesivas en el eje
inercial se acumulan por la izquierda “pre-multiplication”.
Composición de rotaciones

• En el caso de rotaciones consecutivas respecto al eje actual:


Las matrices de rotación se multiplican por la derecha

• En el caso de rotaciones consecutivas respecto al eje inercial:


Las matrices de rotación se multiplican por la izquierda.

• También se pueden combinar las rotaciones anteriormente mencionadas.


Composición de rotaciones

Ejercicio. Se tienen los sistemas coordenados {1}, {2} y {3} que cumplen las
siguientes relaciones

Halle la matriz
Composición de rotaciones

Ejercicio. Resuelva lo siguiente:


Composición de rotaciones

Ejercicio. Halle la matriz de Rotación que resulta al aplicar las siguientes


rotaciones básicas:

Rpta.
FUNCION “atan2”

▪ La función arco tangente con dos argumentos “atan2” permite conocer el


cuadrante de un ángulo computado.

▪ Nótese que Matlab y otros lenguajes usan el formato: atan2(y,x)


▪ El formato usado en el libro de texto de Spong es: atan2(x, y)
2. PARAMETRIZACIÓN DE ROTACIONES
▪ Los nueve elementos en una
matriz de rotación no son
independientes.
▪ Un cuerpo rígido posee tres grados
de libertad en la rotación.
▪ Se requieren tres parámetros
para representar una rotación.
Matriz de Rotación

▪ Los nueve elementos en una matriz


de rotación no son independientes.

▪ Existen 6 restricciones debido a las  r11 r12 r13 


 
condiciones de ortogonalidad:

R R = I3
T
R =  r21 r22 r23 
r 
 31 r33 
▪ En las secciones siguientes, a partir
de R se busca una representación
r32
mínima.
2.1 Ángulos de Euler

▪ Son tres ángulos


introducidos por
Leonhard Euler para
describir la
orientación de un
cuerpo rígido.

Sistema Gimball
Ángulos de Euler

Cualquier rotación se puede obtener como una rotación por un ángulo f


alrededor del eje z, seguida de una rotación q alrededor del eje actual
y, seguida de una rotación y alrededor del eje actual z.
Ángulos de Euler

Matriz de rotación resultante

RZYZ = Rz ,f Ry ,q Rz ,y
cf − sf 0   cq 0 sq  cy − sy 0  Demo_05.m
=  sf cf 0   0 1 0   sy cy 0 
 0 0 1   − sq 0 cq   0 0 1 
 cf cq cy − sf sy −cf cq sy − sf cy cf sq 
 
=  sf cq cy + cf sy − sf cq sy + cf cy sf sq 
 − sq cy s s c  get_matrix_euler.m
 q y q 
Ángulos de Euler

Ejercicio. Halle la matriz de Euler


correspondiente a los ángulos:

f = pi / 6 2

1.5 Z0
q = pi / 4 1 Ze Ye

y = pi / 6
0.5 {0}
{e} Y0
X
0 0
Xe
-0.5

-1
-2
-1.5 -1
0
-2
-2 1
-1.5 -1 -0.5 0 0.5 1 2
1.5 2

Demo_06.m
Ángulos de Euler

▪ Lo que sigue es hallar los ángulos de Euler para una matriz de rotación R
(esto se usa mas adelante en el problema de la cinemática inversa).

 r11 r12 r13 


 
R =  r21 r22 r23 
r r33 
 31 r32
▪ Para hallar “los ángulos” se consideran tres casos.

1 caso : r13  0 y r23  0 r33  1

2 caso : r33 = +1 3 caso : r33 = −1


Ángulos de Euler
atan2(y,x)

cf cq cy − sf sy −cf cq sy − sf cy cf sq 
1 caso : r33  1  
RZYZ =  sf cq cy + cf sy − sf cq sy + cf cy sf sq 
 − sq cy sq sy cq 

cq = r33 , sq =  1 − r332  0
Hay dos soluciones dependiendo del signo elegido para q

sq  0
q  (0,  )
θ = atan2 ( 1- r , r33
2
33 ) f = atan2(r23 ,r13 )
y = atan2(r32 ,-r31 )

sq  0
q  (− , 0)
(
θ = atan2 - 1- r , r33 2
33 ) f = atan2(-r23 ,-r13 )
y = atan2(-r32 ,r31 )
Ángulos de Euler
atan2(y,x)

 r11 r12 0
2 caso : r33 = +1  
RZYZ =  r21 r22 0
0 0 +1

▪ Si r33 = 1 q =0
 c cy − s sy −c sy − s cy 0  cf +y − sf +y 0
RZYZ = c sy + s cy c cy − s sy 0  =  sf +y cf +y 0 
 0 0 1   0 0 1 

De donde: f +y = atan2 ( -r12 , r22 ) También hay


otras opciones
f +y = atan2 ( r21 , r11 )

Ya que hay infinitas soluciones usualmente se asume por convención: f =0


▪ ¿Cual es el significado físico en de este caso?
Ángulos de Euler
atan2(y,x)

 r11 r12 0
 
3 caso : r33 = −1 RZYZ =  r21 r22 0
0 0 −1
▪ Si r33 = −1 q = 

 −c cy − s sy c sy − s cy 0   −cf −y − sf −y 0
RZYZ =  c sy − s cy c cy + s sy 0  =  − sf −y cf −y 0 
 0 0 −1  0 0 −1

De donde: f -y = atan2 ( -r12 , r22 ) También hay


otras opciones
f -y = atan2 ( -r12 , −r11 )

Ya que hay infinitas soluciones usualmente se puede asumir: f =0


▪ ¿Cual es el significado físico en de este caso? get_euler_angles.m
Ángulos de Euler

Ejercicio. Suponga que R se genera por


una rotación de 90° en el eje “z”,
seguida de una rotación de 30° en el
eje “y” inercial, seguida de una
rotación de 60° en el eje “x” inercial:

Halle los ángulos de Euler:

Demo_07.m
2.2. Ángulos Roll-Pitch-Yaw

▪ Son tres ángulos


respecto al eje
inercial que se usan
comúnmente en los
sistemas de
navegación.
Ángulos Roll, Pitch, Yaw

Cualquier rotación se puede obtener como tres rotaciones consecutivas


alrededor del eje inercial:
Roll (x0) y, Pitch (y0) q, Yaw (z0) f
Ángulos Roll, Pitch, Yaw

Matriz de rotación resultante

R XYZ = Rz,f Ry ,q Rx,y


cf − sf 0  cq 0 sq  1 0 0 
 
= sf cf 0  0 
1 0  0 cy − sy 
 0 0 1 − sq 0 cq  0 sy cy 
cf cq − sf cy + cf sq sy sf sy + cf sq cy 
 
= sf cq cf cy + sf sq sy − cf sy + sf sq cy 
 − sq cq sy cq cy  get_matrix_RPY.m
 
▪ Los ángulos pueden hallarse usando un método similar al usado en los
ángulos de Euler
Ángulos Roll, Pitch, Yaw

Ejercicio. Halle la matriz de RPY


correspondiente a los ángulos:
2

f = pi / 6 1.5
Z
0
q = pi / 4
1
Ze
0.5 Y
e

y = pi / 6
{e}
{0} Y0
0 X0

-0.5 Xe
-1

-1.5
-2
-2 0
-2 -1 0 1 2 2

Demo_08.m
Ángulos Roll, Pitch, Yaw

▪ Lo que sigue es hallar los ángulos RPY para una matriz de rotación R (esto se
usa mas adelante en el problema de la cinemática inversa).

 r11 r12 r13  c cq − s cy + c sq sy s sy + c sq cy 


  R =  s c c c + s s s −c s + s s c 
R =  r21 r22 r23  XYZ   q  y  q y  y  q y 

r   − sq c s c c 
 31 r32 r33   q y q y 

▪ Para hallar “los ángulos” se consideran tres casos.

1 caso : r11  0 y r21  0 r31  1

2 caso : r31 = +1 3 caso : r31 = −1


Ángulos Roll, Pitch, Yaw
atan2(y,x)

c cq − s cy + c sq sy s sy + c sq cy 
 
1 caso : r31  1 RXYZ =  s cq c cy + s sq sy −c sy + s sq cy 
 − sq cq sy cq cy 
 
sq = −r31 , cq =  1 − r312 =  r322 + r332  0
Hay dos soluciones dependiendo del signo elegido para q

cq  0
q  (− / 2,  / 2)
(
θ = atan2 -r31 , 1- r 2
31 ) f = atan2(r21 ,r11 )
y = atan2(r32 ,r33 )

cq  0
q  ( / 2,3 / 2)
(
θ = atan2 -r31 ,- 1- r 2
31 ) f = atan2(-r21 ,-r11 )
y = atan2(-r32 ,-r33 )
Ángulos Roll, Pitch, Yaw
atan2(y,x)

 0 r12 r13 
 
2 caso : r31 = +1 RXYZ =  0 r22 r23 
 +1 0 0 

Si = 1, sq = −r31
▪ r31 q = − / 2
0 −cf sy − sf cy sf sy − cf cy  0 − sf +y −cf +y 
RZYZ = 0 cf cy − sf sy −cf sy − sf cy  = 0 cf +y − sf +y 
1 0 0  1 0 0 

De donde: f +y = atan2 ( -r12 ,r22 ) También hay


otras opciones
f +y = atan2 ( -r23 ,-r13 )

Ya que hay infinitas soluciones usualmente podemos asumir: y =0


▪ ¿Cual es el significado físico en de este caso?
Ángulos Roll, Pitch, Yaw
atan2(y,x)

 0 r12 r13 
 
3 caso : r31 = −1 RXYZ =  0 r22 r23 
 −1 0 0 

31 = −1, sq = −r31
▪ rSi q = / 2
 0 cf sy − sf cy cf cy + sf sy   0 − sf −y cf −y 
RZYZ =  0 cf cy + sf sy sf cy − cf sy  =  0 cf −y sf −y 
 −1 0 0   −1 0 0 

De donde: f -y = atan2 ( -r12 ,r22 ) También hay


otras opciones
f -y = atan2 ( r23 ,r13 )

Ya que hay infinitas soluciones usualmente podemos asumir: y =0


▪ ¿Cual es el significado físico en de este caso?
Ángulos Roll, Pitch, Yaw

▪ Nótese que también hay otras maneras de expresar la solución:

q = / 2

y − f = atan2 ( -r23 ,r22 )

q = − / 2

y + f = atan2 ( -r23 ,r22 )

Ya que hay infinitas soluciones usualmente podemos asumir: f =0


Ángulos Roll, Pitch, Yaw

Ejercicio. Suponga que R se genera por


una rotación de 60° en el eje “x”,
seguida de una rotación de 30° en el
eje “y” inercial, seguida de una
rotación de 90° en el eje “z” inercial:

Halle los ángulos RPY:

Demo_09.m
2.3. Representación Eje/Angulo

▪ Cualquier matriz de rotación


puede ser representada
como una rotación simple
alrededor de cierto eje.

▪ Asumiendo que el vector


unitario que define el eje
este dado por “k”

k x 
k̂ = k y 
 k z 
2.3. Representación Eje/Angulo

▪ De la figura se tiene: R = Rz , Ry , 
0
1

▪ Y aplicando similitud
2.3. Representación Eje/Angulo

▪ De donde se tiene:

▪ Un problema con esta representación es que no es única. Una rotación


alrededor del eje es igual a una rotación negativa en el eje opuesto.
2.3. Representación Eje/Angulo

 Tr (R ) − 1
▪ Para una matriz de rotación q = cos  −1

“R” se puede demostrar que:  2 
 r11 r12 r13  r32 − r23 
  ˆ 1  
R =  r21 r22 r23  k= r − r
2 sinq 
13 31 
r r33 
 31 r32  r21 − r12 

▪ Nótese que se tienen dos casos especiales cuando sin(q ) = 0


▪ Cualquier matriz de rotación se puede representar como una sola
rotación alrededor de un eje

get_axis_angle_from_R.m
2.3 Representación Eje/Angulo

Ejercicio. Suponga que R se genera por


una rotación de 90° en el eje “z”,
seguida de una rotación de 30° en el
eje “y” inercial, seguida de una
rotación de 60° en el eje “z” inercial:

Halle la representación eje / ángulo:

Demo_10.m
2.4. Cuaternión unitario

▪ Los problemas de la representación


eje/ángulo pueden superarse
usando la siguiente Parametrización

Donde

…Parte escalar

…Parte vectorial
Bajo la siguiente condición
2.4. Cuaternión unitario

▪ De donde se tiene:

▪ Esta representación es única. Una rotación alrededor del eje tiene el


mismo quaternion que una rotación negativa en el eje opuesto.
2.4. Cuaternión unitario

 r11 r12 r13 


▪ Para una matriz de rotación  
R =  r21 r22 r23 
“R” se puede demostrar que:
r r33 
 31 r32

▪ Nótese que a diferencia de la representación eje/angulo no existen


problemas de singularidad
2.4. Cuaternión unitario

Ejercicio. Suponga que R se genera por


una rotación de 90° en el eje “z”,
seguida de una rotación de 30° en el
eje “y” inercial, seguida de una
rotación de 60° en el eje “z” inercial:

Halle su representación Cuaternión unitaria:

También podría gustarte