Académique Documents
Professionnel Documents
Culture Documents
Estudiantes:
Álvarez Henrry
Barrios Noel
Gallo Orellana Carlos
Senzano Mauricio
Victoria Wilber
Materia:
Robótica
Docente:
Ing. Marco Arancibia
FECHA:
28/09/2017
Cochabamba - Bolivia
Matrices de transformación homogénea
Introducción.-
A fin de simplificar y reducir un espacio en un sistema de control automático de computador se
pueden representar las rotaciones y traslaciones de sistemas coordenados o vectores en una sola
matriz que contenga la información de los movimientos que se requieran, esta matriz se llama
Matriz de transformación homogénea.
La matriz de transformación homogénea consta de una matriz de rotación 3x3, una matriz de
traslación de 3x1, una matriz de perspectiva 1x3, y una matriz escalar unitario 1x1. Siendo T la
matriz homogénea, tenemos:
𝑟𝑜𝑡𝑎𝑐𝑖ó𝑛 3𝑥3 𝑡𝑟𝑎𝑠𝑙𝑎𝑐𝑖ó𝑛 1𝑥3
T=[ ]
𝑝𝑒𝑟𝑠𝑝𝑒𝑐𝑡𝑖𝑣𝑎 1𝑥3 𝑒𝑠𝑐𝑎𝑙𝑎 𝑢𝑛𝑖𝑡𝑎𝑟𝑖𝑎 1𝑥1
Donde se considera a la perspectiva una matriz nula [0 0 0] y la escala [1]
Las matrices de transformación homogénea se utilizan para:
Traslación.-
Si se desea trasladar el sistema OXYZ hasta el sistema OUVW que se encuentra a una posición p =
px 𝑖̂ + py 𝑗̂ + pz 𝑘̂ la matriz homogénea se denominará de la siguiente manera:
1 0 0 𝑃𝑥
0 1 0 𝑃𝑦
T(p) = [ ]
0 0 1 𝑃𝑧
0 0 0 1
Un vector cualquiera r, representado en OUVW por ruvw , tendrá como coordenadas en el sistema
OXYZ:
Rx 1 0 0 𝑃𝑥 Ru Ru + Px
Ry 0 1 0 𝑃𝑦 Rv Rv + Py
[ ]= [ ][ ] = [ ]
Rz 0 0 1 𝑃𝑧 Rw Rw + Pz
1 0 0 0 1 1 1
Ejercicio nº 1: Tenemos un sistema O´UVW que está trasladado un vector p (7,-3,11) con respecto
del sistema OXYZ. Calcular las coordenadas (rx, ry ,rz) del vector r cuyas coordenadas con respecto al
sistema O´UVW son ruvw (-1,8,-3).
Rx 1 0 0 𝑃𝑥 Ru
Ry 0 1 0 𝑃𝑦 Rv
[ ]= [ ][ ]
Rz 0 0 1 𝑃𝑧 Rw
1 0 0 0 1 1
Rx 1 0 0 7 −1 6
Ry 0 1 0 −3 8 5
[ ]= [ ][ ] = [ ]
Rz 0 0 1 11 −3 8
1 0 0 0 1 1 1
Ejercicio nº2: Calcular el vector r’xyz resultante de trasladar al vector rxyz(4,5,12) según la
transformación T(p) con p(7,-4,12).
R′x 1 0 0 𝑃𝑥 Rx
R′y 0 1 0 𝑃𝑦 Ry
[ ]=[ ][ ]
R′z 0 0 1 𝑃𝑧 Rz
1 0 0 0 1 1
R′x 1 0 0 7 4 11
R′y 0 1 0 −4 5 1
[ ]= [ ][ ] = [ ]
R′z 0 0 1 12 12 24
1 0 0 0 1 1 1
Rotación.-
Si se desea rotar el sistema OXYZ en torno a uno de sus ejes, resultando en un nuevo sistema
OUVW la matriz T se definirá de tres formas diferentes, cada una representando la rotación en
torno a uno de sus ejes, siendo estas formas:
1 0 0 0
0 cos 𝛼 − sin 𝛼 0
Rotación con respecto al eje x T (x, α) = [ ]
0 sin 𝛼 cos 𝛼 0
0 0 0 1
cos ∅ 0 sin ∅ 0
0 1 0 0
Rotación con respecto al eje y T (y, ∅) = [ ]
− sin ∅ 0 cos ∅ 0
0 0 0 1
cos θ − sin θ 0 0
sin θ cos θ 0 0
Rotación con respecto al eje z T (z, θ) = [ ]
0 0 1 0
0 0 0 1
Ejercicio nº3: Tenemos un sistema OUVW que se encuentra girado -90º alrededor del eje OZ con
respecto al sistema OXYZ. Calcular las coordenadas del vector rxyz si ruvw=[-2,7,3].
Rx cos θ − sin θ 0 0 Ru
Ry sin θ cos θ 0 0 Rv
[ ]= [ ][ ]
Rz 0 0 1 0 Rw
1 0 0 0 1 1
Rx cos −90 − sin −90 0 0 −2
Ry sin −90 cos −90 0 0 7
[ ]= [ ][ ]
Rz 0 0 1 0 3
1 0 0 0 1 1
Rx 0 1 0 0 −2 7
Ry −1 0 0 0 7 2
[ ]= [ ][ ] = [ ]
Rz 0 0 1 0 3 3
1 0 0 0 1 1 1
Ejercicio nº4: Tenemos un sistema OUVW que se encuentra girado 180º alrededor del eje OY con
respecto al sistema OXYZ. Calcular las coordenadas del vector rxyz si ruvw=[21,17,-13].
Rx cos ∅ 0 sin ∅ 0 Ru
Ry 0 1 0 0 Rv
[ ]= [ ][ ]
Rz − sin ∅ 0 cos ∅ 0 Rw
1 0 0 0 1 1
Rx cos 180 0 sin 180 0 21
Ry 0 1 0 0 17
[ ]= [ ][ ]
Rz − sin 180 0 cos 180 0 −13
1 0 0 0 1 1
Rx −1 0 0 0 21 −21
Ry 0 1 0 0 17 17
[ ]= [ ][ ]= [ ]
Rz 0 0 −1 0 −13 13
1 0 0 0 1 1 1
Ejercicio nº5: Tenemos un sistema OUVW que se encuentra girado 45º alrededor del eje OX con
respecto al sistema OXYZ. Calcular las coordenadas del vector rxyz si ruvw=[5,8,-8].
Rx 1 0 0 0 Ru
Ry 0 cos 𝛼 − sin 𝛼 0 Rv
[ ]= [ ][ ]
Rz 0 sin 𝛼 cos 𝛼 0 Rw
1 0 0 0 1 1
Rx 1 0 0 0 5
Ry 0 cos 45 − sin 45 0 8
[ ]= [ ][ ]
Rz 0 sin 45 cos 45 0 −8
1 0 0 0 1 1
Rx 1 0 0 0 5 5
Ry 0 0.71 −0.71 0 8 11.31
[ ]= [ ][ ] = [ ]
Rz 0 0.71 0.71 0 −8 0
1 0 0 0 1 1 1
Combinación de rotaciones y traslaciones.-
Las matrices homogéneas permiten representar simultáneamente rotación y traslación, ya sea, de
un vector o un sistema en general usando la matriz de rotación 3x3 y la matriz de posición 1x3.
Cabe destacar que no es lo mismo rotar y trasladar que trasladar y rotar, y eso se demuestra
matemáticamente ya que la multiplicación de matrices no es conmutativa, de igual manera estos
actos.
o Traslación y rotación.-
Esta dada por:
1 0 0 𝑃𝑥 1 0 0 0 1 0 0 𝑃𝑥
0 1 0 𝑃𝑦 0 cos 𝛼 − sin 𝛼 0 0 cos 𝛼 − sin 𝛼 𝑃𝑦
T(p,(x,α))=T(p)T(x,α)= [ ][ ]=[ ]
0 0 1 𝑃𝑧 0 sin 𝛼 cos 𝛼 0 0 sin 𝛼 cos 𝛼 𝑃𝑧
0 0 0 1 0 0 0 1 0 0 0 1
1 0 0 𝑃𝑥 cos ∅ 0 sin ∅ 0 cos ∅ 0 sin ∅ 𝑃𝑥
0 1 0 𝑃𝑦 0 1 0 0 0 1 0 𝑃𝑦
T(p,(y, ∅))=T(p)T(y, ∅)= [ ][ ]=[ ]
0 0 1 𝑃𝑧 − sin ∅ 0 cos ∅ 0 − sin ∅ 0 cos ∅ 𝑃𝑧
0 0 0 1 0 0 0 1 0 0 0 1
1 0 0 𝑃𝑥 cos θ − sin θ 0 0 cos θ − sin θ 0 𝑃𝑥
0 1 0 𝑃𝑦 sin θ cos θ 0 0 sin θ cos θ 0 𝑃𝑦
T(p,(z, 𝜃))=T(p)T(z, 𝜃)= [ ][ ]=[ ]
0 0 1 𝑃𝑧 0 0 1 0 0 0 1 𝑃𝑧
0 0 0 1 0 0 0 1 0 0 0 1
Ejercicio nº6: Un sistema OUVW ha sido trasladado un vector p(8,-4,12) con respecto al sistema OXYZ
y girado 90º alrededor del eje OX. Calcular las coordenadas (rx, ry ,rz) del vector r con coordenadas
ruvw(-3,4,-1)
Rx 1 0 0 𝑃𝑥 Ru
Ry 0 cos 𝛼 − sin 𝛼 𝑃𝑦 Rv
[ ]= [ ][ ]
Rz 0 sin 𝛼 cos 𝛼 𝑃𝑧 Rw
1 0 0 0 1 1
Rx 1 0 0 8 −3
Ry 0 cos 90 − sin 90 −4 4
[ ]= [ ][ ]
Rz 0 sin 90 cos 90 12 −11
1 0 0 0 1 1
Rx 1 0 0 8 −3 5
Ry 0 0 −1 −4 4 7
[ ]= [ ][ ]=[ ]
Rz 0 1 0 12 −11 16
1 0 0 0 1 1 1
Ejercicio nº7: Un sistema OUVW ha sido trasladado un vector p(-3,4,7) con respecto al sistema OXYZ
y girado -90º alrededor del eje OZ. Calcular las coordenadas (rx, ry ,rz) del vector r con coordenadas
ruvw(13,14,17)
Rx cos θ − sin θ 0 𝑃𝑥 Ru
Ry sin θ cos θ 0 𝑃𝑦 Rv
[ ]= [ ][ ]
Rz 0 0 1 𝑃𝑧 Rw
1 0 0 0 1 1
Rx cos −90 − sin −90 0 −3 13
Ry sin −90 cos −90 0 4 14
[ ]= [ ][ ]
Rz 0 0 1 7 17
1 0 0 0 1 1
Rx 0 1 0 −3 13 11
Ry −1 0 0 4 14 −9
[ ]= [ ][ ] = [ ]
Rz 0 0 1 7 17 24
1 0 0 0 1 1 1
o Rotación y traslación.-
Esta dada por:
1 0 0 0 1 0 0 𝑃𝑥
0 cos 𝛼 − sin 𝛼 0 0 1 0 𝑃𝑦
T((x,α),p)= T(x,α) T(p)=[ ][ ]
0 sin 𝛼 cos 𝛼 0 0 0 1 𝑃𝑧
0 0 0 1 0 0 0 1
1 0 0 𝑃𝑥
0 cos 𝛼 − sin 𝛼 𝑃𝑦 cos 𝛼 − 𝑃𝑧 sin 𝛼
T((x, α), p) = T(x, α) T(p) = [ ]
0 sin 𝛼 cos 𝛼 𝑃𝑦 sin 𝛼 + 𝑃𝑧 cos 𝛼
0 0 0 1
cos ∅ 0 sin ∅ 0 1 0 0 𝑃𝑥
0 1 0 0 0 1 0 𝑃𝑦
T((y, ∅),p)= T(y, ∅)T(p) = [ ][ ]
− sin ∅ 0 cos ∅ 0 0 0 1 𝑃𝑧
0 0 0 1 0 0 0 1
cos ∅ 0 sin ∅ 𝑃𝑥 cos ∅ + 𝑃𝑦 sin ∅
0 1 0 𝑃𝑦
T((y, ∅),p)= T(y, ∅)T(p) = [ ]
− sin ∅ 0 cos ∅ 𝑃𝑧 cos ∅ − 𝑃𝑥 sin ∅
0 0 0 1
cos θ − sin θ 0 0 1 0 0 𝑃𝑥
sin θ cos θ 0 0 0 1 0 𝑃𝑦
T((z, 𝜃),p)= T(z, 𝜃) T(p)= [ ][ ]
0 0 1 0 0 0 1 𝑃𝑧
0 0 0 1 0 0 0 1
cos θ − sin θ 0 𝑃𝑥 cos θ − 𝑃𝑦 sin θ
sin θ cos θ 0 𝑃𝑥 sin θ + 𝑃𝑦 cos θ
T((z, 𝜃), p) = T(z, 𝜃) T(p) = [ ]
0 0 1 𝑃𝑧
0 0 0 1
Ejercicio nº8: Un sistema OUVW ha sido girado 90º alrededor del eje OX y trasladado un vector p(8,-
4,12) con respecto al sistema OXYZ . Calcular las coordenadas (rx, ry ,rz) del vector r con coordenadas
ruvw(-3,4,-1)
Rx 1 0 0 𝑃𝑥 Ru
Ry 0 cos 𝛼 − sin 𝛼 𝑃𝑦 cos 𝛼 − 𝑃𝑧 sin 𝛼 Rv
[ ]= [ ][ ]
Rz 0 sin 𝛼 cos 𝛼 𝑃𝑦 sin 𝛼 + 𝑃𝑧 cos 𝛼 Rw
1 0 0 0 1 1
Rx 1 0 0 8 −3
Ry 0 cos 90 − sin 90 (−4 ∗ cos 90) − (12 ∗ sin 90) 4
[ ]= [ ][ ]
Rz 0 sin 90 cos 90 (−4 ∗ sin 90) + (12 ∗ cos 90) −11
1 0 0 0 1 1
Rx 1 0 0 8 −3
Ry 0 0 −1 (−4 ∗ 0) − (12 ∗ 1) 4
[ ]= [ ][ ]
Rz 0 1 0 (−4 ∗ 1) + (12 ∗ 0) −11
1 0 0 0 1 1
Rx 1 0 0 8 −3 5
Ry 0 0 −1 −12 4 10
[ ]= [ ][ ]=[ ]
Rz 0 1 0 −4 −11 48
1 0 0 0 1 1 1
Ejercicio nº9: Un sistema OUVW ha sido girado -90º alrededor del eje OZ y trasladado un vector p(-
3,4,7) con respecto al sistema OXYZ. Calcular las coordenadas (rx, ry ,rz) del vector r con
coordenadas ruvw(13,14,17)
Rx 0 1 0 4 13 18
Ry −1 0 0 3 14 −10
[ ]= [ ][ ] = [ ]
Rz 0 0 1 7 17 24
1 0 0 0 1 1 1
Composición de matrices homogéneas.-
0 0 1 0 0 1 0 0 1 0 0 −3
0 1 0 0 −1 0 0 0 0 1 0 4
Ta=T(y,90)*T(x,-90)*T(P)=[ ]∗[ ]∗[ ]
−1 0 0 0 0 0 1 0 0 0 1 7
0 0 0 1 0 0 0 1 0 0 0 1
0 0 1 0 1 0 0 −3 0 0 1 7
−1 0 0 0 0 1 0 4 −1 0 0 4
Ta=T(y,90)*T(x,-90)*T(P)=[ ][ ]=[ ]
0 −1 0 0 0 0 1 7 0 −1 0 −4
0 0 0 1 0 0 0 1 0 0 0 1
Rx 0 0 1 7 13 24
Ry −1 0 0 4 14 −9
[ ]= [ ][ ] = [ ]
Rz 0 −1 0 −4 17 −18
1 0 0 0 1 1 1
Conclusiones.-
En conclusión; las matrices de transformación homogénea mejoran la representación de
movimientos ya que permite identificar rápidamente su posición o movimiento y describir el
siguiente punto o movimiento. Pero tiene la dificultad de realizar muchas operaciones matemáticas
secuenciales que en el tema de programación obliga a los sistemas computacionales un trabajo
exigente.