You are on page 1of 7

PRÁCTICA I: ÁNGULOS DE EULER

González Chávez Rolando

MARCO TEÓRICO

1. Transformaciones

A grandes rasgos, una
transformación consiste en una
aplicación que hace corresponder a
cada punto P (x,y,z) a otro punto P’
(x’,y’,z’). En consecuencia, cualquier
conjunto de puntos F se puede
transformar en otro conjunto de punto
F’.

Las transformaciones más usuales
son las de traslación, simetría y
rotación. La primera consiste en el
desplazamiento de un conjunto de
puntos según un vector fijo no nulo, la
segunda consiste en la reflexión de
un conjunto de puntos respecto a una
recta dada (eje de simetría), y la
última consiste en la rotación de un
conjunto de puntos respecto a un
punto fijo.

1.1. Transformación matricial de
rotación

Suponga que cada punto de R
2
se
rota en sentido contrario a las
manecillas del reloj, en un ángulo ϕ
respecto del origen de un sistema de
coordenadas rectangulares, en
consecuencia, si el punto P tiene
coordenadas (x,y) y después de la
rotación tenemos un P’ (x’,y’). Para
obtener una relación entre las
coordenadas de P’ y las de P,
tomamos como u el vector [

], que se
representa por medio del segmento
de recta que va del origen a P(x,y) y
sea θ el ángulo formado entre el eje
x y en vector u, esto se muestra en la
fig. 1.

Figura 1 Rotación

Denotando como r la longitud del
segmento de recta dirigido de 0 a P,
de acuerdo con la fig. 1 vemos que

() () … (1)

( )

( ) … (2)

Por medio de las fórmulas para el
seno y el coseno de una suma de
ángulos, las ecuaciones (2) se
transforman en

() () () ()

() () () ()

Sustituyendo la expresión (1) en las
últimas dos ecuaciones se tienen

() ()

() () … (3)

Al despejar x y y en (3) tenemos

() ()
() () … (4)

La ecuación (3) proporciona las
coordenadas de P’ en términos de las
de P, y (4) expresa las coordenadas
de P en términos de las de P’, con
ello puede deducirse que el vector
f(u) está representado por el
segmento de recta que va de 0 a P’ y
que la trasformación matricial de
rotación es la siguiente

() [


] [

] [

]

[

] [


] [

] … (5)

Sin embargo, la expresión (5)
determina la rotación en R
2
, para
obtener la expresión para R
3
, por
inspección, se sabe que la rotación
es exclusiva alrededor del eje z, por
lo que las coordenadas z se
mantienen constantes, por lo tanto, la
rotación alrededor de z es

[

] [



] [

] … (6)

Siguiendo un procedimiento
semejante se deduce la rotación
alrededor del eje x

[

] [



] [

] … (7)

Y otra para la rotación alrededor del
eje y

[

] [



] [

] … (8)



Algo importante a considerar en las
transformaciones matriciales de
rotación es que no son conmutativas.

2. Ángulos de Euler

La orientación de un cuerpo rígido se
puede especificar considerando un
sistema de coordenadas fijo en él, sin
embargo, hay que especificar la
relación entre un sistema de ejes fijo
en el espacio y uno fijo en el cuerpo:
Se pueden construir la transformación
entre estos dos sistemas con tres
rotaciones virtuales sucesivas del
cuerpo rígido, esto se realiza con los
ángulos de Euler.

Existen muchas convenciones para el
orden de rotación de los ejes, las más
utilizadas es la de rotación alrededor
del eje z, luego, el nuevo sistema de
ejes se rota alrededor del nuevo eje x
y por último se realiza rotación sobre
el nuevo eje z, este movimiento de
ejes se conoce como la “convención
x” (Ver fig. 2). Todas las rotaciones
(sin importar la convención a utilizar)
se realizan en el sentido contrario de
las manecillas del reloj y todas las
rotaciones posteriores se harán sobre
los nuevos ejes resultantes de cada
rotación.

Los ángulos de Euler ϕ, θ y ψ
especifican la orientación del sistema
fijo al cuerpo relativo al sistema fijo al
espacio, y por lo tanto actúan como
tres coordenadas generalizadas.

Figura 2 Ángulos de Euler.
PRÁCTICA I: ÁNGULOS DE EULER

González Chávez Rolando


Por lo tanto, la transformación de los
ángulos de Euler se representa por la
siguiente expresión

[

]
[



] *
[



] *
[



]
[

] … (9)

2.1. Aplicaciones

Una aplicación de los ángulos de
Euler es en la aeronáutica, ya que
asignan un ángulo de inclinación cero
a un avión en horizontal, los ángulos
definen una rotación de forma única
alrededor de cada uno de los ejes
intrínsecos del objeto, los ángulos
empleados en la aeronáutica son
mejor conocidos como la convención
de Tait – Bryan.

Puede emplearse también para
realizar descripciones de orientación
empleando giroscopios para
mantener constante el eje de
rotación, ángulos medidos en un
marco giroscopio son equivalentes a
ángulos medidos en el marco del
laboratorio. Por lo tanto giroscopios
se utilizan para conocer la orientación
real de mover una nave espacial, y
los ángulos de Euler son
directamente mensurables.

Al estudiar los cuerpos rígidos en
general, que se llama el sistema de
coordenadas en el espacio xyz, y el
cuerpo del sistema de coordenadas
XYZ. Las coordenadas espaciales se
tratan como inmóvil, mientras que las
coordenadas del cuerpo se
consideran incrustadas en el cuerpo
en movimiento. Cálculos con la
aceleración, la aceleración angular,
velocidad angular, momento angular
y la energía cinética son a menudo
más fáciles de calcular en las
coordenadas del cuerpo, porque
entonces el momento de inercia no
cambia en el tiempo.

Los ángulos de Euler, normalmente
en la convención de Tait-Bryan,
también se utilizan en robótica para
hablar acerca de los grados de
libertad de una muñeca. También se
utilizan en el control electrónico de
estabilidad de una manera similar.

DESARROLLO

Se implementa una simulación en
Matlab
®
para mostrar la rotación
sobre ejes xyz de referencia iniciales,
para ello se realizará una rotación
similar a la expresión de los ángulos
de Euler mostrado en (9), con la
diferencia de que en la simulación se
realiza primero la rotación sobre el
eje x, posteriormente se realiza una
rotación sobre el nuevo eje y y por
último una rotación sobre el nuevo eje
z, utilizando las expresiones (7), (8) y
(6) respectivamente, por lo que la
matriz de rotación puede expresarse
en (10).
[

]
[



] *
[



] *
[



]
*
[

] … (10)



Para mostrar la simulación se
comienza estableciendo el área de
trabajo, es decir, se establece una
figura de 2 X 2 X 2 unidades, en
medio se establece la coordenada
(0,0,0) y a partir de ahí se generan
los ejes de referencia que serán
mostrados en rojo y que
permanecerán fijos para visualizar
mejor el movimiento de los ejes que
se grafican posteriormente sobre
estos en color verde (Ver fig. 3)










Figura 3 Inicio de la simulación






Se establece un ciclo para realizar la
rotación de los ejes actuales, los ejes
graficados en verde rotarán sobre
cada eje x, y y z nuevo que se genere
tras cada rotación. En la fig. 4 se
muestra la primera rotación de 45°
sobre el eje x.



Figura 4 Rotación sobre el eje x

Posteriormente se realiza otra
rotación de 45° sobre el nuevo eje y,
mostrando la rotación en la fig. 5.



Figura 5 Rotación sobre el nuevo eje y, las líneas
azules muestran el eje z y el eje x anterior.


PRÁCTICA I: ÁNGULOS DE EULER

González Chávez Rolando

Por último se realiza una rotación
sobre el nuevo eje z, esto se observa
en la figura 6.



Figura 6 Rotación sobre el nuevo eje z, las líneas
azules representan el eje x y al eje y anterior.


FUENTES DE CONSULTA

Gavilán, M. E. y Muñóz J. D.
Simulación por dinámica molecular
del movimiento de un trompo pesado.
Revista Colombiana de Física, Vol.
38, No.1. Colombia: 2006.

Matrices y transformaciones.
Fascículo 21. Fundación Polar.
Venezuela: 2006.

Kolman, B. y Hill, D. R. Álgebra
Lineal. Pearson Education, México,
2006.

Ángulos de Euler. En Línea.
Consultado el 21 de Agosto, 2013.
Disponible en:
<http://es.wikipedia.org/wiki/%C3%81
ngulos_de_Euler >



ANEXOS

Se muestra el código empleado en
Matlab
®
:

function movEje %
(theta,alpha,gamma)

close all;
clear all;
clc;

% Generación de los ejes de
referencia iniciales.
Eje=[0;1];
Ref=zeros(2,1);

X=Eje;
RefY1=Ref;
RefZ1=Ref;

RefX2=Ref;
Y=Eje;
RefZ2=Ref;

RefX3=Ref;
RefY3=Ref;
Z=Eje;

% % Graficación de los ejes de
referencia iniciales.
figure;
plot3(Eje,Ref,Ref,'r','LineWidth'
,2);
hold on;
grid on;
xlabel('X');
ylabel('Y');
zlabel('Z');
axis([-1,1,-1,1,-1,1])
plot3(Ref,Eje,Ref,'r','LineWidth'
,2);
plot3(Ref,Ref,Eje,'r','LineWidth'
,2);pause;
A=plot3(Eje,Ref,Ref,'g','LineWidt
h',2);
B=plot3(Ref,Eje,Ref,'g','LineWidt
h',2);
C=plot3(Ref,Ref,Eje,'g','LineWidt
h',2);
D=1;

% Establecer las matrices de
rotación con los valores de los
ángulos rotar
% en cada eje.
while D==1

theta=round(input(['Elija los
grados de rotación del eje\n'...
'X(valor
entero): ']));
if theta<0
rX=[1,0,0;0,cosd(-1),-
sind(-1);0,sind(-1),cosd(-1)];
else
rX=[1,0,0;0,cosd(1),-
sind(1);0,sind(1),cosd(1)];
end

% Rotación de eje X.
for i=1:abs(theta)


YRef=rX*[RefX2(2);Y(2);RefZ2(2)];
RefX2(2)=YRef(1);
Y(2)=YRef(2);
RefZ2(2)=YRef(3);


ZRef=rX*[RefX3(2);RefY3(2);Z(2)];
RefX3(2)=ZRef(1);
RefY3(2)=ZRef(2);
Z(2)=ZRef(3);

delete(A)
delete(B)
delete(C)


A=plot3(X,RefY1,RefZ1,'g','LineWi
dth',2);

B=plot3(RefX2,Y,RefZ2,'g','LineWi
dth',2);

C=plot3(RefX3,RefY3,Z,'g','LineWi
dth',2);
pause(0.001);
end

alpha=round(input(['\nElija
los grados de rotación del eje
Y\n'...
'(valor
entero): ']));

if alpha<0
rY=[cosd(-1),0,sind(-
1);0,1,0;-sind(-1),0,cosd(-1)];
else

rY=[cosd(1),0,sind(1);0,1,0;-
sind(1),0,cosd(1)];
end

% Rotación de eje Y.
for i=1:abs(alpha)

XRef=rY*[X(2);RefY1(2);RefZ1(2)];
X(2)=XRef(1);
RefY1(2)=XRef(2);
RefZ1(2)=XRef(3);


ZRef=rY*[RefX3(2);RefY3(2);Z(2)];
RefX3(2)=ZRef(1);
RefY3(2)=ZRef(2);
Z(2)=ZRef(3);

delete(A)
delete(B)
delete(C)


A=plot3(X,RefY1,RefZ1,'g','LineWi
dth',2);

B=plot3(RefX2,Y,RefZ2,'g','LineWi
dth',2);

C=plot3(RefX3,RefY3,Z,'g','LineWi
dth',2);
pause(0.001);
end

gamma=round(input(['\nElija
los grados de rotación del eje
Z\n'...
'(valor
entero): ']));

if gamma<0
rZ=[cosd(-1),-sind(-
1),0;sind(-1),cosd(-1),0;0,0,1];
else
rZ=[cosd(1),-
sind(1),0;sind(1),cosd(1),0;0,0,1
];
end
PRÁCTICA I: ÁNGULOS DE EULER

González Chávez Rolando


% Rotación de eje Z.
for i=1:abs(gamma)

XRef=rZ*[X(2);RefY1(2);RefZ1(2)];
X(2)=XRef(1);
RefY1(2)=XRef(2);
RefZ1(2)=XRef(3);


YRef=rZ*[RefX2(2);Y(2);RefZ2(2)];
RefX2(2)=YRef(1);
Y(2)=YRef(2);
RefZ2(2)=YRef(3);

delete(A)
delete(B)
delete(C)


A=plot3(X,RefY1,RefZ1,'g','LineWi
dth',2);

B=plot3(RefX2,Y,RefZ2,'g','LineWi
dth',2);

C=plot3(RefX3,RefY3,Z,'g','LineWi
dth',2);
pause(0.001);
end

D=input(['\n¿Rotar de nuevo
los ejes desde\nla posición
actual? 1=Sí'...
' 2 = No\n\n¿Su
desición? ']);
clc;
end