Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Facultad de Ingeniería
Escuela Profesional de Ingeniería Mecatrónica
MATRIZ DE ROTACIÓN
Informe de Laboratorio
Robótica
CICLO : IX
Trujillo, Perú
16 de Abril de 2019
Resumen
Palabras clave:
This report consists of the reinforcement with respect to the matrices of rotation, translation
and transformation, as well as the composition of these to find the relative matrices between
coordinate systems. For this, the theory is contrasted with the practice using the MATLAB R2018a
software, in which a script that condenses the solution of the proposed exercises of this laboratory
will be made.
Keywords:
Resumen .....................................................................................................................................2
Abstract ......................................................................................................................................3
Capítulo1 ....................................................................................................................................6
Introducción ................................................................................................................................6
Objetivos .................................................................................................................................6
Materiales ...............................................................................................................................6
Capítulo 2 ...................................................................................................................................7
Marco Teórico.............................................................................................................................7
Capítulo 3 ................................................................................................................................. 10
Metodología .............................................................................................................................. 10
Capítulo 4 ................................................................................................................................. 23
Conclusiones ............................................................................................................................. 23
Referencias Bibliográficas......................................................................................................... 24
Tabla de Figuras
Introducción
Objetivos
Objetivo General.
Objetivos Específicos.
Materiales
- Computadora personal
- Software MATLAB R2018a
Capítulo 2
Marco Teórico
Las matrices de rotación son el método más extendido para la descripción de orientaciones,
En álgebra lineal, una matriz de rotación es la matriz que representa una rotación en el
espacio euclídeo. Por ejemplo, la matriz.
cos 𝜃 − sin 𝜃
𝑅 (𝜃 ) = [ ]
sin 𝜃 cos 𝜃
representa la rotación de θ grados del plano en sentido antihorario. En tres dimensiones, las
matrices de rotación representan las rotaciones de manera concisa y se usan frecuentemente en
geometría, física e informática.
𝑅𝑇 = 𝑅−1 𝑦 𝑅=1
Las matrices de rotación son cuadradas y con valores reales. Sin embargo, se pueden definir
sobre otros cuerpos. El conjunto de todas las matrices de rotación de dimensión n × n forma un
grupo que se conoce como grupo de rotaciones (o grupo ortogonal especial).
cos 𝜃 − sin 𝜃
𝑅 (𝜃 ) = [ ]
sin 𝜃 cos 𝜃
𝑥′ cos 𝜃 − sin 𝜃 𝑥
[ ]=[ ][ ]
𝑦′ sin 𝜃 cos 𝜃 𝑦
Así las coordenadas (x',y') del punto (x,y) después de la rotación son:
𝑥 ′ = 𝑥 cos 𝜃 − 𝑦 sin 𝜃
𝑦 ′ = 𝑥 sin 𝜃 + 𝑦 cos 𝜃
En tres dimensiones:
Las siguientes matrices de rotación realizan rotaciones de vectores alrededor de los ejes x,
y, o z, en el espacio de tres dimensiones:
1 0 0
𝑅𝑥 (𝜃) = [0 cos 𝜃 − sin 𝜃 ]
0 sin 𝜃 cos 𝜃
cos 𝜃 0 sin 𝜃
𝑅𝑥 (𝜃) = [ 0 1 0 ]
− sin 𝜃 0 cos 𝜃
cos 𝜃 −sin 𝜃 0
𝑅𝑥 (𝜃) = [ sin 𝜃 cos 𝜃 0]
0 0 1
Cada una de estas tres rotaciones básicas se realiza en sentido antihorario alrededor del eje
y considerando un sistema de coordenadas con la regla de la mano derecha.
𝑥
𝑦
𝑝 = [𝑧 ]
𝑒
En robotica:
𝑓 = [0 0 0]
𝑒=1
𝑃𝑥
𝑅3𝑥3 𝑃𝑦
𝑇=[ ]
𝑃𝑧
0 0 0 1
𝑃𝑥𝑦𝑧 = 𝑇 𝑃𝑢𝑣𝑤
𝑃𝑢𝑣𝑤 = 𝑇 −1 𝑃𝑢𝑣𝑤
Capítulo 3
Metodología
Programación
1. Escribir 3 funciones en MATLAB llamadas rotx, roty, rotz que permitan obtener las matrices
de rotación canónicas alrededor del eje x, y, z, respectivamente. La entrada a cada función debe
ser un ángulo y la salida debe ser la respectiva matriz de rotación. Presentar los tres archivos
.m en un archivo comprimido (zip).
Solución:
Se crean los scripts de tal forma que en la entrada de la función el ángulo sea sexagesimal, y
retornara una matriz de rotación.
Ejercicios
% Matriz dada.
M = [0.3536 -0.61240 0.7071;
0.92680 0.1268 -0.3536;
0.12680 0.78030 0.6124]
I = M.'*M
I = round(M'*M)
if I == eye(3)
disp('Respuesta: Sí constrituye una matriz de rotación');
else
disp('Respuesta: No constrituye una matriz de rotación');
end
Solución:
Solución:
a) Se realiza una post-multiplicación para poder hallar la matriz de rotación resultante
ya que las rotaciones se hacen respecto a ejes móviles.
𝐵
𝐴𝑅 = 𝑟𝑜𝑡𝑥(𝛼) ∙ 𝑟𝑜𝑡𝑦(𝛽)
syms a b
R_BA = rotx1(a*180/pi)*roty1(b*180/pi)
Y se obtiene la matriz
cos 𝛼 cos 𝛽 − cos 𝛼 sin 𝛽 sin 𝛼
𝐵
𝑅𝐴 = [ sin 𝛽 1 0 ]
0 0 cos 𝛼
R_AB = simplify(R_BA.')
Se obtiene
1 0 0
𝐴
𝑅𝐵 = [0 0.6 0.8]
0 −0.8 0.6
P_B = [3;5;2]
% Matriz de rotacion de A respecto a B
R_BA = [1 0 0;
0 0.6 0.8;
0 -0.8 0.6]
% Vector posición respecto a A
P_A = R_BA.'*(P_B)
P_B = R_BA*P_A
Solución:
R_AB = [1 0 0;
0 1/2 sqrt(3)/2;
0 -sqrt(3)/2 1/2]
R_AC = [1 0 0;
0 0.6 0.8;
0 -0.8 0.6]
% Primero hallamos la matriz de rotación de A respecto a B
R_BA = R_AB.'
% Finalmente hallamos la matriz de rotación de C conrrespecto a B
% multiplicando en cadena.
R_BC = R_BA*R_AC
Solución:
Obteniéndose la equivalencia
0 − sin θ cos θ 0 0.866 −0.5
𝑅 = [−1 0 0 ] = [−1 0 0 ]
0 − cos θ − sin θ 0 0.5 0.866
theta1 = round(solve(R2(1,2)-R(1,2)))
theta2 = round(solve(R2(1,3)-R(1,3)))
Se obtiene:
𝜃 = 240°
Solución:
Se determinan por inspección las rotaciones y traslaciones de cada uno de los sistemas
respecto al sistema fijo agrupándolos en una matriz de transformación homogénea 4x4
que representa la transformación total en rotación y traslación.
Para i=1
𝑅1 𝑃1
𝑅1 = 𝑟𝑜𝑡𝑦(−180°) 𝑟𝑜𝑡𝑥(90), 𝑃1 = [0 𝑐 + 𝑒 𝑎 − 𝑑 ]𝑇 , 𝑇1 = [ ]
0 0 0 1
% Matriz A_O1
R1 = roty(-180)*rotx(90)
P1 = [0; c+e; a-d]
T1 = [R1 P1;
0 0 0 1]
Obteniéndose
−1 0 0 0
−1 0 0 0
𝑅1 = [ 0 0 0 −1 𝑐 + 𝑒]
0 −1], 𝑃1 = [ 𝑐 + 𝑒 ], 𝑇1 = [ 0 −1 0
𝑎−𝑑
0 −1 0 𝑎−𝑑
0 0 0 1
Para i=2
𝑅2 𝑃2
𝑅2 = 𝑟𝑜𝑡𝑧(−90°), 𝑃2 = [−𝑏 𝑐+𝑒 0]𝑇 , 𝑇2 = [ ]
0 0 0 1
% Matriz A_O2
R2 = rotz(-90)
P2 = [-b; c+e; 0]
T2 = [R2 P2;
0 0 0 1]
Obteniéndose
0 1 0 −𝑏
0 1 0 −𝑏
𝑅2 = [−1 −1 0 0 𝑐 + 𝑒]
0 0], 𝑃2 = [𝑐 + 𝑒], 𝑇2 = [ 0 0 1 0
0 0 1 0 0 0 0 1
Para i=3
𝑅3 𝑃3
𝑅3 = 𝑟𝑜𝑡𝑥(90°) 𝑟𝑜𝑡𝑧(−90), 𝑃2 = [0 𝑐 𝑎 ]𝑇 , 𝑇1 = [ ]
0 0 0 1
% Matriz A_O3
R3 = rotx(90)*rotz(-90)
P3 = [-b; c; a]
T3 = [R3 P3;
0 0 0 1]
Obteniéndose
0 1 0 −𝑏
0 1 0 −𝑏
𝑅3 = [ 0 0 0 −1 𝑐
0 −1], 𝑃3 = [ 𝑐 ], 𝑇3 = [−1 𝑎]
0 0
−1 0 0 𝑎 1
0 0 0
Para i=4
En este caso claramente el sistema no gira por ello se considera un matriz de rotación
igual a la matriz identidad.
1 0 0
𝐼 = [0 1 0]
0 0 1
𝑅4 𝑃4
𝑅4 = 𝐼, 𝑃4 = [−𝑏 0 𝑎 − 𝑑 ]𝑇 , 𝑇4 = [ ]
0 0 0 1
% Matriz A_O4
R4 = eye(3)
P4 = [-b; 0; a-d]
T4 = [R4 P4;
0 0 0 1]
Obteniéndose
1 0 0 −𝑏
1 0 0 −𝑏
0], 𝑃4 = [ 0 ], 𝑇4 = [0
𝑅4 = [0 1 1 0 0 ]
0 0 1 𝑎−𝑑
0 0 1 𝑎−𝑑 0 0 0 1
Para i=5
𝑅5 𝑃5
𝑅5 = 𝑟𝑜𝑡𝑦(−90°) 𝑟𝑜𝑡𝑧(90), 𝑃5 = [0 0 𝑎]𝑇 , 𝑇5 = [ ]
0 0 0 1
% Matriz A_O5
R5 = roty(-90)*rotz(90)
P5 = [0; 0; a]
T5 = [R5 P5;
0 0 0 1]
Obteniéndose
0 0 −1 0
0 0 −1 0
0 ], 𝑃1 = [0], 𝑇1 = [1
𝑅5 = [1 0 0 0]
0 𝑎
0 −1 0
0 −1 0 𝑎 1
0 0 0
Para verificar si son correctos los resultados se procedió a realizar un código en Matlab
para graficar los sistemas de coordenadas de tal forma que la figura resultante sea
equivalente a la del problema dado. Este código se encuentra dentro del script incluido
dentro del código que nos resuelve los cálculos de las matrices.
Figura 4. Verificación del ejercicio 7.
Figura 5. Ejercicio 8.
a) Determinar las matrices de rotación 2𝑅1, 0𝑅3, 0𝑅1
b) Usando la composición de las matrices anteriores encontrar 2R3 y verificar el
resultado por inspección (usando el significado de las columnas de la matriz).
Solución:
% Ángulo de rotación
alpha = atan(4/3)*180/pi
% Matriz R_21:
R_12 = rotx(-alpha)*rotz(180)
R_21 = R_12.'
% Matriz R_O3
R_03 = rotz(-alpha)*roty(-90)*rotx(-90)
% Matriz R_O1
R_01 = rotz(90)*roty(-90)
Obteniéndose
−1 0 0 0 0.6 0.8 0 −1 0
2 0 0
𝑅1 = [ 0 −0.6 0.8], 𝑅3 = [0 −0.8 0.6], 𝑅1 = [0 0 −1]
0 0.8 0.6 1 0 0 1 0 0
b) Para poder hallar 2R3 con composición de matrices primero hallamos 1R0
1 𝑇
𝑅0 = 0𝑅1
2
𝑅3 = 2𝑅1 1𝑅0 0𝑅3
R_10 = R_01.'
% Matriz R_23: Por composición
R_23 = R_21*R_10*R_03
−1 0 0
2
𝑅3 = [ 0 1 0]
0 0 −1
Y para poder verificar por inspección este resultado comparamos la matriz anterior
con la que hallamos por inspección
2
𝑅3 = 𝑟𝑜𝑡𝑦(180°)
−1 0 0
2
𝑅3 = [ 0 1 0]
0 0 −1
Conclusiones
[1] Barrientos, A. (2da Edición). (2007). Fundamentos de Robótica. Madrid, España: McGraw-
Hill/Interamericana.
[2] Reyes, F. (1era Edición). (2011). Robótica, control de robots manipuladores. C. V., México:
Alfaomega Grupo Editor.
[3] Corke, P. (2da Edición). (2017). Robotics, Vision and Control. Berlín, Alemania: Springer