Documentos de Académico
Documentos de Profesional
Documentos de Cultura
x1
=x = x2 [ x1 x3 ]
T
x2 ( 1)
x3
Cuando x1, x2, x3 coinciden con X,Y,Z respectivamente, se tienen las coordenadas cartesianas:
X
x = Y
Z
u = [u 1 u3 ] v = [v 1 v3 ]
T T
En este espacio se definen vectores u2 y v2 y
operaciones:
0 −u3 u2
=[u X ] u3 0 −u1 ( 2)
−u2 u1 0
Donde [u X ] es la matriz skew symmetric de u.
{Ω ∈ ℜ 3x3
/ − Ω = ΩT } ( 3)
1.- Es una matriz singular, es decir: su determinante es cero: , es decir: det ([u X ]) = 0
1
2.- Sus valores propios son: 0, ±αj.
Nota 2: en Matlab, el comando “skew()” entrega una matriz skew symmetric, “vex()”, devuelve
el vector que la creó.
Ejercicio 1
0 3 −2
A = −3 0 7
Probar la propiedad ( 3) en la matriz
2 −7 0
Solución.
0 −3 2 0 −3 2
=AT 3 0= −7= −A
3 0 −7
−2 7 0 −2 7 0
Donde se comprueba que ambas matrices son iguales.
Ejemplo:
z
p
z
0 d
x x y q
y
Figura 1
1.- Si X(t) y Y(t) son coordenadas de dos puntos p, q, en el objeto respectivamente, la distancia
d entre ellos es constante:
X (t ) − Y (t ) = d= cte, ∀t ∈ ℜ
2.- Se requiere que el movimiento del cuerpo rígido, además de conservar distancias, preserve
orientaciones (es decir ángulos entre vectores). Esto es llamado el espacio euclidiano especial
(SE(3)).
2
1.3.- LOCALIZACIÓN DE UN CUERPO RÍGIDO.
w
w
tc XC
Rc
ZC
YC
Zw
Xc
0w Xw
Xw
Yw M
Figura 2
=
Xw w
R c Xc + w t c ( 4)
EJEMPLOS
Ejemplo 1.- Hallar la nueva posición P1=(2,1,3) respecto a su base si su sistema de coordenadas
asociado ha girado 90° en el eje Y.
a) Solución gráfica:
z
(2,1,3)
3
z
(2,1,3) x
(3,1,-2)
0 0 1 0
rot ( y,90°=
) 0 R= 0 1 0 0
t1 = 0
1 ,
−1 0 0 0
=
p' 0
R1p + 0 t1
3 0 0 1 2 0
=1 0 1 0 1 + 0
−2 −1 0 0 3 0
Ejemplo 2.- Extender el ejemplo 1 para el caso en que el sistema asociado se ha trasladado
(2,0,0) y luego ha rotado 90° sobre el eje Y en el sistema resultante.
4
z
(4,1,3)
(2,1,3)
x y
x y
(2,1,3)
(5,1,-2) x
Solución matemática:
=
p '' 0
R1p + 0 t1
5
1.4.- MOVIMIENTO ROTACIONAL Y SU REPRESENTACIÓN.
Está representado por una matriz ortonormal R de orden 3x3:
r1=
T
r1 r2=
T
r2 r3=
T
r3 1
r1=
T
r2 r2=
T
r3 r2=
T
r3 0 ( 6)
r1
R = r2
r3
A
RB Z
Z
kB
kA 0B Y
0A Y X jB
iB
X jA
iA
6
Figura 7.- Relación entre los frames A y B a través de la rotación R
A
R B se entiende como: “el sistema A ha rotado hasta alcanzar la orientación del sistema B”, o
“Rotación del sistema B respecto al sistema A”, que en función de sus respectivos vectores
unitarios, se puede considerar:
iA ⋅ iB i A ⋅ jB iA ⋅ k B
A j ⋅i
RB = j A ⋅ jB j A ⋅ k B ( 7)
A B
k A ⋅ iB k A ⋅ jB k A ⋅ k B
Los ejes Z de ambos sistemas coinciden, una vista horizontal del plano XY se vería como en la
Figura 8:
YA
YB
θ
jA XB
jB iB
θ
kA k iA
B XA
Figura 8.- vista horizontal del giro del sistema B sobre el sistema A
k A ⋅ kB =
1
k A ⋅ iB =k A ⋅ jB =iA ⋅ k B = j A ⋅ k B =0
=
iA ⋅ iB iB cos(θ ) cos(θ )
iA =
=
j A ⋅ jB jB cos(θ ) cos(θ )
jA =
=j A ⋅ iB =
j A iB cos(θ − 90°) sin(θ )
Reemplazando resultados en la matriz de rotación:
7
cos(θ ) − sin(θ ) 0
A
R B = sin(θ ) cos(θ ) 0 ( 8)
0 0 1
Del mismo modo se puede deducir las rotaciones sobre los ejes X e Y, que se resumen en la
siguiente tabla:
Eje de rotación
X Y Z
1 0 0 cos(θ ) 0 sin(θ ) cos(θ ) − sin(θ ) 0
R= 0 cos(θ ) − sin(θ ) 0 1 0 sin(θ ) cos(θ ) 0
0 sin(θ ) cos(θ ) − sin(θ ) 0 cos(θ ) 0 0 1
1 0 0
rot ( x,90°) = R = 0 0 −1 ( 9)
0 1 0
Z R Y'
Y Z'
X X'
Figura 9
1
0
El nuevo eje X en mismo eje X anterior.
0
0
0
El nuevo eje Y en eje Z anterior.
1
8
0
−1
El nuevo eje Z en la dirección opuesta del eje Y anterior.
0
R t ( 10)
H= T
0 1
0 = [ 0 0 0]
T
Donde es el vector nulo.
t x
t
t = y
tz
1
1.5.2.- COORDENADAS HOMOGÉNEAS.
p = [x z]
T
Definición: son coordenadas homogéneas de y , el vector:
wx
wy ( 11)
p =
wz
w
Donde en robótica, w=1.
w Rc w tc ( 12)
Xw = T Xc
0 1
Con = [x
X yw zw 1] y X
T
= [ x y z 1]T
w w c c c c
9
RT −RT t ( 13)
H −1 = T
0 1
1 0 0 tx ( 14)
0 1 0 t y
H=
0 0 1 tz
0 0 0 1
Eje de rotación
X Y Z
1 0 0 0 cos(θ ) 0 sin(θ )
0 cos(θ ) − sin(θ ) 0 0
H 0 cos(θ ) − sin(θ ) 0 0 1 0 0 sin(θ ) cos(θ ) 0 0
0 sin(θ ) cos(θ ) 0 − sin(θ ) 0 cos(θ ) 0 0 0 1 0
0 0 0 1 0 0 0 1 0 0 0 1
Ejemplo 3.-
a.- Hallar la posición y orientación relativa del sistema del mundo respecto a la cámara (Figura
10).
0C
ZC
XC YC
5
Zw
Yw
10
0w Xw
Figura 10
10
Solución a)
c
Primero se hallará la rotación Rw :
=
c
R w rot ( x,90°) ⋅ rot ( z ,90°)
1 0 0 0 −1 0 0 −1 0
c 0 0 −1 1 0 0 =
Rw = 0 0 −1
0 1 0 0 0 1 1 0 0
=
R w rot ( y, −90°) ⋅ rot ( x,90°)
c
0 0 −1 1 0 0 0 −1 0
=
c
R w 0 1 0 0 0 =−1 0 0 −1
1 0 0 0 1 0 1 0 0
t w = [10 5 0]
c T
c Rw c
tw
Conformamos la matriz homogénea según ( 10)
c
Hw = T
0 1
0 −1 0 10
0 0 −1 5
c
Hw =
1 0 0 0
0 0 0 1
Solución b)
−1 c R Tw − c R Tw c t w
c
H = T
w
0 1
0 0 1
c
R = −1 0 0
T
w
0 −1 0
11
0 0 1 10 0
− R c
t =− −1 0 0 5 =10
T c
w w
0 −1 0 0 5
0 0 1 0
−1 0 0 10
w
Hc =
0 −1 0 5
0 0 0 1
Otra forma de solución: la solución anterior no es la única manera, p.e.:
=
w
R c rot ( y,90°) ⋅ rot ( z , −90°)
0 0 1 0 1 0 0 0 1
w 0 1 0 −1 0 0 =
Rc = −1 0 0
−1 0 0 0 0 1 0 −1 0
t c = [ 0 10 5]
w T
0 0 1 0
−1 0 0 10
w
Hc =
0 −1 0 5
0 0 0 1
w
Que es igual al resultado anterior de H c aplicando su inversa de c H w .
12
1.6.- MOVIMIENTOS COMPUESTOS.
REGLA:
Ejemplo 4
Interpretar: =
T rot ( z , −90°) * trasl (0, a, 0)
Solución a): considerando todo en el sistema fijo:
Z Z'
Z ''
a Y Y'
X '' a
X X'
Y ''
Figura 11
Z Z'
Z ''
X' Y
X '' a
Y'
Y '' X
Figura 12
Ejemplo 5
=
T [rot ( z , −90°) * trasl (0, a, 0)]* rot ( y, −90°)
Solución a) La parte en paréntesis corresponde al Ejemplo 4 , considerar el siguiente
movimiento en el sistema resultante:
13
Z
Z '' X '''
Y
X '' a
Z '''
Y '' X
Y '''
Figura 13
Z X' X ''
X '''
Z' Z ''
a Y'
a Y ''
Y
Y ''' X Z '''
Figura 14
Z X'
X ''' X ''
Z'
Z '' Y '
a
Y '' Y
Y ''' X Z '''
Figura 15
=
0
R2 0
R1 1 R 2 ≠ 1 R 2 0 R1 ( 15)
Ejemplos:
1.- Suponer que R representa una rotación de θ alrededor de Y seguido de una rotación de φ
alrededor de Z (sistema resultante):
=R rot ( y, θ ) ⋅ rot ( z , φ )
14
2.- Obtener la matriz de transformación que representa un giro de 90° en X, luego un giro de
180° en Y (sistema fijo), y luego un giro de -90° en Y en el sistema resultante
Ejemplo 6.-
−1 0 0 0.4
0 −1 0 0
0
H3 =
0 0 1 0.3
0 0 0 1
0
a.- Graficar los sistemas X 0Y0 Z 0 y X 3Y3 Z 3 según la transformación H3 .
0
b.- Hallar las rotaciones básicas que generan R3 .
Solución a)
−1 0 0 0.4
=
0
R 3 0 −1 0 y
0
t 3 = 0
0 0 1 0.3
Z3
0.4 X3
Y3
0.3
Z0 0
Y0 R3
X0
Figura 16
Solución b)
=
0
R 3 rot ( z ,90°) ⋅ rot ( z ,90°)
0 −1 0 0 −1 0 −1 0 0
=
0
R 3 1 0 0 1 0 =0 0 −1 0
0 0 1 0 0 1 0 0 1
=
0
R 3 rot ( z ,180°)
15
Ejemplo 7.-
Se tiene las siguientes transformaciones consecutivas: T1: traslación (6,2,3), seguido de una
rotación de -90° en Y; T2: rotación de 180° en Z; T3: traslación (-2,-1,4), seguido de una rotación
de 90° en Z.
a.- Graficar las transformaciones X 1Y1Z1 , X 2Y2 Z 2 , X 3Y3 Z 3 , según la base X 0Y0 Z 0 .
0
b.- Indicar y desarrollar las rotaciones básicas realizadas para llegar a R3 .
0
c.- Conforme la matriz H3 .
Solución a)
Y3
Z3
X1
0 X3 2
R3
1 Z1
Y1
4 Z2
Y2 X 3
2
Z0
Y0
X0 6 2
Figura 17
Solución b)
0
=
R 3 rot ( y, −90°) ⋅ rot ( z , −90°)
0 0 −1 0 1 0 0 0 −1
0 1 0 −1 0 0 =
R3 =
−1 0 0
0
1 0 0 0 0 1 0 1 0
Otra opción:
=
R 3 rot ( z , −90°) ⋅ rot ( x,90°)
0
0 1 0 1 0 0 0 0 −1
0
R 3 = −1 0 0 0 0 −1 = −1 0 0
0 0 1 0 1 0 0 1 0
16
Solución c)
2
0
t 3 = 3
5
0 0 −1 2
−1 0 0 3
0
H3 =
0 1 0 5
0 0 0 1
cφ cθ cφ sθ sψ − sφ cψ cφ sθ cψ + sφ sψ
R = sφ cθ sφ sθ sψ + cφ cψ sφ sθ cψ − cφ sψ ( 16)
− sθ cθ sψ cθ cψ
Paso de R a RPY:
π π
Para θ∈ − ,
2 2
Nota 1: si θ = π / 2 , se tiene una singularidad
Nota 2: Mediante la representación de RPY, la posición y orientación se puede representar en
forma compacta mediante un vector 6x1:
17
x
y
z ( 18)
X=
ψ
θ
φ
Nota 3: en Matlab, “tr2rpy()”, su contrario: “rpy2tr()”.
Nota 1: en Matlab existe el comando “tr2eul()” que transforma una rotación a la forma ZYZ, su
contrario: “eul2tr()”.
1.8.2.2.- CARDANIANOS.-
Movimientos en los tres ejes: XYZ, XZY, YZX, YXZ, ZXY, ZYX, el más usado: ZYX ( es decir: roll,
pitch, yaw).
n
o
Figura 18
nx ox ax
R = n y oy a y ó R = [n o a ] ( 19)
nz oz az
Entonces:
n= o × a ( 20)
18
1.8.3.1.- CONVENCIONES.
Cámara:
XC
ZC
YC
Figura 19
Robot móvil:
mov.
X
Z
Figura 20
Avión o barco:
X
roll
Y
yaw pitch
Z
Figura 21
Z k
θ
Y
X
Figura 22
19
trace(R ) − 1 ( 21)
θ = a cos
2
r32 − r23
1
=k r − r ( 22)
2sin(θ )
13 31
r21 − r12
Nota 2: El ángulo y eje de rotación se encuentra en los valores propios y vectores propios de
R:
- Vector k : vector propio correspondiente al valor propio la unidad.
- Ángulo θ : ángulo del número complejo de cualquiera de los dos otros valores propios.
Ejemplo 8
Solución:
Solución alternativa:
20
Entonces:
0.3525
k = 0.6888 y=θ angle(0.3526 + 0.935
= i ) 1.2105
0.6335
1.8.4.1.- PASO DE ( k , θ ) a R
Se usa la fórmula de Rodrígues (Olinde Rodrigues, 1790):
( 23)
R =I + sin(θ ) [ k X ] + (1 − cos(θ )) [ k X ]
2
0 −k z ky
Con [ k X ] k z
= 0 −k x
−k y kx 0
r= θ ⋅ k ( 24)
con
θ= r ( 25)
r
k=
r
1.8.5.1.- PASO DE r A R
( 26)
[r ] [r ]
2
R =I + sin r X + (1 − cos(θ )) X
r 2
r
Ejemplo 9
Suponer que R es generado por una rotación de 90° en Z, luego 30° en Y, luego 60° en X
(todos en el sistema resultante).
21
c.- En base al ángulo y eje hallado encontrar la rotación original mediante la fórmula de
Rodrígues.
Solución a)
0 −0.5 0.866
= , 60°) 0.866 0.433 0.25
R rot ( z ,90°) ⋅ rot ( y,30°) ⋅ rot ( x=
−0.5 0.75 0.433
trace(R ) − 1
=θ a cos = =
1.6378 93.84°
2
0.75 − 0.25 0.2506
1 0.6846
= k = 0.866 + 0.5
2sin(1.6378)
0.866 + 0.5 0.6846
Solución b)
φ=
a tan 2(−0.866, 0) ⋅180 / π =
90°
( )
θ = a tan 2 −(−0.5), 0.752 + 0.4332 ⋅180 / π = 30°
ψ=
a tan 2(0.75, 0.433) ⋅180 / π =
60°
Solución c)
0 −0.6846 0.6846
I + sin(1.6378) 0.6846
R'= 0 −0.2506 +
−0.6846 0.2506 0
−0.6846 0.6846
2
0
(1 − cos(1.6378)) 0.6846 0 −0.2506
−0.6846 0.2506 0
0 −0.5 0.866
R ' = 0.866 0.433 0.25
−0.5 0.75 0.433
Solución d)
0.2506 0.4104
r = θ ⋅ k = 1.6378 ⋅ 0.6846 = 1.1212
0.6846 1.1212
22
1.9.- REPRESENTACIÓN POR CUATERNIOS (William Hamilton, siglo 19)
1.9.1.- CUATERNIO
Es una extensión de los números complejos, poseen 3 cantidades imaginarias, está constituido
por cuatro elementos (q0 , q1 , q2 , q3 ) donde q0 es escalar y (q1 , q2 , q3 ) es vectorial:
Q = q0 + q1i + q2 j + q3 k ( 27)
Donde i 2 =j 2 =k 2 =i ⋅ j ⋅ k =−1
=Q q0 q1 q2 q3 ] [ s
[= v] ( 28)
=
Donde s q=
0,v (q1 , q2 , q3 ) , con la restricción: q02 + q12 + q22 + q32 =
1
θ θ ( 29)
=Q cos sin ⋅ k
2 2
3.- Evita singularidades que se pueden presentar al trabajar con la representación RPY.
1.9.4.- PROPIEDADES.
1.9.4.1.- Cuaternio conjugado
Q* = [ q0 −q1 −q2 −q3 ] = [s −v ] ( 30)
( Q1 ⋅ Q 2 ) =Q*2 ⋅ Q1*
*
Nota: no es conmutativo.
1.9.4.3.- SUMA
Q1 + Q 2 =[ s1 + s2 , v1 + v2 ] ( 32)
23
1.9.4.5.- PRODUCTO POR SU CONJUGADO
Q ⋅ Q* = q02 + q12 + q22 + q32 ( 34)
1.9.4.6.- NORMA
Q = Q ⋅ Q* = q02 + q12 + q22 + q32 ( 35)
1.9.4.7.- INVERSO
Q* ( 36)
Q −1 = siempre que Q ≠ 0
Q
Si Q = 1 , entonces Q −1 = Q*
1.9.4.8.- DIVISIÓN
Q ( 37)
Si Q 2 = 1 , entonces=1
Q= −1
1Q 2 Q1Q*2
Q2
1.9.4.9.- NORMALIZACIÓN
Q ( 38)
QN = , entonces Q N = 1 “CUATERNIO UNITARIO”
Q
Ejemplo 10
Obtener el cuaternio que representa una rotación de 60° alrededor del eje=
k [3 −2 1] .
Solución:
3 3 1
=Q [cos(30°) )⋅k]
sin(30°= −1
2 2 2
24
1.9.5.- PASO DE UN PUNTO (X,Y,Z) A CUATERNIOS.
REGLA:
Solución: Q = [ 0 1 2 3]
2.- Aplicar:
p ' = Q ⋅ p ⋅ Q* ( 40)
2 1
q0 + q1 − 2 q1q2 − q3 q0 q1q3 + q2 q0
2
R =2 ⋅ q1q2 + q3 q0 q2 q3 − q1q0
1
q02 + q22 − ( 41)
2
1
q1q3 − q2 q0 q2 q3 + q1q0 q0 + q3 −
2 2
2
I + 2q0 [ q X ] + 2 [ q X ]
R=
2 ( 42)
Ejemplo 11
El vector p = (1,1, 0) es rotado 90° alrededor de Y, hallar el nuevo vector rotado usando
cuaternios.
Solución:
La rotación a aplicarse:
25
0 0 1
R = 0 1 0
−1 0 0
Su ángulo y eje:
1−1 0 π
θ a cos =
= =
2 2 2
0 − 0 0
=k
1 1 + 1 1
=
π
2sin 0 − 0 0
2
Su cuaternio:
2 2
=Q [cos(45°) )⋅k]
sin(45°= 0 0
2 2
Su cuaternio conjugado:
2 2
=Q* 0 − 0
2 2
p en cuaternios:
p = [ 0 1 1 0]
p ' = Q ⋅ q ⋅ Q* = Q ⋅ q ⋅ Q*
Cálculo de q ⋅ Q :
*
2 2
=
q ⋅ Q* [0 1 1 0] ⋅ 0 − 0
2 2
2 2 2 2
=
0 + , ( 0, 0, 0 ) + , , 0 + 0, 0, −
2 2 2 2
2 2 2 2
= −
2 2 2 2
Cálculo de Q ⋅ q ⋅ Q :
*
26
2 2 2 2 2 2
Q ⋅ q ⋅ Q*
= 0 0 ⋅ −
2 2 2 2 2 2
1 1 1 1 1 1 1 1
= − , , , − + 0, , 0 + − , 0, −
2 2 2 2 2 2 2 2
= [0 0 1 −1]
Pasamos a cartesianos:
= [0 1 −1]
T
p'
Ejemplo 12
Se tiene dos rotaciones consecutivas: R1= rotación en el eje Y 90°, R2=rotación en el eje X 60°.
Hallar la rotación resultante,
Solución a)
1 0 0
0 0 1
R1 = 0 1 =
0 ; R 2 0
1
−
3
2 2
−1 0 0
0 3 1
2 2
0 3 1
1 0 0 2 2
0 0 1
3 3
R = R1 ⋅ R 2 = 0 1 0 0
1 1
− = 0 −
2 2 2 2
−1 0 0
0 3 1 −1 0 0
2 2
Solución b)
0 1
R1 : θ1 = 90°; k1 = 1 ; R 2 : θ 2 =60°; k2 =0
0 0
27
2 2
=
Q1 [cos(45°) ) ⋅ k1 ]
sin(45°= 0 0
2 2
3 1
Q 2 [ cos(30°) sin(30°)=
= ⋅ k2 ] 0 0
2 2
Q = Q1 ⋅ Q 2 = [ s1s2 − v1 ⋅ v2 , v1 × v2 + s1v2 + s2 v1 ] =
donde Q1 [=
s1 , v1 ] ; Q 2 [ s2 , v2 ]
Si
v1 ⋅ v2 =
0
2 1
0 0 0
2 2
=v1 × v2 0= 0 0 0 0
− 2 0 0 0 − 2
2 4
2 3 2 2 2 3
Q = Q1Q 2 = , 0, 0, − + , 0, 0 + 0, , 0
4 4 4 4
2 3 2 2 3 2
= = − [ 0.6124 0.3536 0.6124 −0.3536]
4 4 4 4
Solución c)
Alternativa 1) Pasar de Q a R:
3 2 2 2 2 1 3 2 2 3 2 2 2 2 3 2 2
+ − + − +
4 4 2 4 4 4 4 4 4 4
2 2
2 3 2 2 3 2 3 2 3 2 1 3 2 2 3 2 2
R =⋅
2 − + − − −
4 4 4 4 4 4 2 4 4 4 4
2 2 2
2 2 3 2 3 2 2 3 2 2 3 2 2 1
− 4 4 − 4 −
4 4
+
4 4
+ −
4 2
4
3
0 0.5
2
3
=R 0 0.5 −
2
−1 0 0
28
Alternativa 2) Pasar de R a cuaternio:
0.5 − 1
=θ a=
cos 1.8235
2
3
0 + 0.4472
2
=
1
= 0.7746
k 0.5 + 1
2sin(1.8235) −0.4472
0 − 3
2
1.8235 1.8235
Q cos 2= sin ⋅k [0.6124 0.3536 0.6124 −0.3536]
2
29
R1
Figura 23
( 43)
( 44)
30