Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Dron Latex Post Entrega PDF
Dron Latex Post Entrega PDF
28 de Marzo de 2016
1. Preliminares 1
3. Traslación y Rotación 15
Bibliografı́a 16
i
Capı́tulo 1
Preliminares
En este trabajo usaremos distintos sistemas de referencia y asociados a ellos, distintas bases
ordenadas, las cuales suponemos ortonormales para facilitar los cálculos.
Denotaremos por {e1 , e2 , e3 } a la base canónica de R3 .
En ocasiones usaremos la abreviación b.o.n. para referirnos a base ortonormal.
Si {g1 , g2 , g3 } es una b.o.n. ordenada e imaginemos que giramos g1 y g2 de forma que coincidan con
e1 y e2 , respectivamente. Si g3 coincide con e3 decimos que {g1 , g2 , g3 } y {e1 , e2 , e3 } tienen la misma
orientación. Si, en cambio, g3 tiene igual dirección y sentido opuesto que e3 decimos que las bases
tienen orientación opuesta. Gráficamente {g1 , g2 , g3 } es una base de mano derecha o dextrógira si los
vectores g1 , g2 y g3 adoptan las mismas direcciones y sentidos que los dedos pulgar, ı́ndice y medio
de la mano derecha (en cuyo caso también decimos que la base está bien orientada); si no, decimos
que la base es un sistema de mano izquierda o levógira.
Dada β = {a, b, c} base ortonormal de R3 , si v es un vector de R3 entonces sus coordenadas están
dadas por:
< v, a >
[v]β = < v, b >
< v, c >
Donde < x, y > representa el producto interno usual de x e y en R3 .
1
Capı́tulo 2
2.1. Modelo
Los sistemas de referencia incluyen el world frame, W, y el cuerpo del robot o body frame, B.
(Ver figura 2.1). También uitilzaremos un sistema de referencia auxiliar, C.
Hélice 1 −→ xB > 0
Hélice 2 −→ yB > 0
Hélice 3 −→ xB < 0
Hélice 4 −→ yB < 0
Denotaremos:
βB = {x∗B , yB∗ , zB∗ } base ordenada ortonormal que determina un vector v en el sistema de
referencia B como v =< v, x∗B > x∗B + < v, yB∗ > yB∗ + < v, zB∗ > zB∗ . El sistema B también se
denomina body frame.
2
CAPÍTULO 2. ROTACIÓN DE UNA POSICIÓN ARBITRARIA A OTRA 3
βC = {x∗C , yC∗ , zC∗ } base ordenada ortonormal que determina un vector v en el sistema coorde-
nado auxiliar C como v =< v, x∗C > x∗C + < v, yC∗ > yC∗ + < v, zC∗ > zC∗ . La construcción de este
sistema se verá más adelante.
Por otro lado, vamos a suponer que las bases βW , βB y βC están bien orientadas.
Observación 2.1.1 Si utilizamos notación fı́sica, los versores de las bases mencionadas también
pueden escribirse como sigue:
RB C representa los efectos de roll y pitch sintetizados en un sólo movimiento: rotación de ángulo
β que transforma zB∗ en e3 . Determinaremos β con los vectores mencionados. Observemos que
β ∈ [0, π]. (Ver figura 2.4).
x∗C = RB C (x∗B )
yC∗ = RB C (yB∗ )
zC∗ = RB C (zB∗ ) = e3
Observación 2.2.1 Siempre arc cos < e3 , zB∗ >∈ [0, π], y si observamos la figura 2.6 no hay posibi-
lidad de que β pudiera caer en el intervalo [π, 2π] (esto implica que no vamos a dividir en dos casos).
Por lo tanto β está bien definido por la ecuación 2.1.
Buscamos una transformación RB C tal que RB C (zB∗ ) = e3 . Para ello debemos rotar el sistema B un
ángulo β de forma tal que zB∗ coincida con e3 . Una vez que apliquemos RB C , el sistema B se transforma
en el sistema auxiliar C.
No obstante, en primer lugar necesitamos determinar el eje de rotación, y en segundo lugar, para
determinar la forma de la matriz de rotación, debemos tener una base ortonormal bien orientada γ
de modo tal que uno de sus vectores sea el eje de rotación.
Como queremos realizar la rotación en el plano π2 proponemos como vector eje de rotación a e3 ˆzB∗ .
Denominamos u3 = e3 ˆzB∗ . Buscamos u1 y u2 tal que γ = {u1 , u2 , u3 } sea una base ortonormal bien
orientada que verifique que la rotación en sentido negativo respecto del eje u3 lleve el sistema B al
sistema auxiliar C (en el que imponemos que RB C (zB∗ ) = e3 ).
Sabemos que e3 es ortogonal a e3 ˆzB∗ , luego tomamos u2 = e3 .
| {z }
u3
Para que γ sea bien orientada, elegimos u1 = e3 ˆ (e3 ˆzB∗ ).
Luego γ = {e3 ˆ (e3 ˆzB∗ ), e3 , e3 ˆzB∗ } base ortonormal bien orientada.
| {z } |{z} | {z }
u1 u2 u3
Observemos que u1 se encuentra en el plano π2 (ver figura 2.7).
De este modo, la matriz de rotación respecto del eje u3 de la base ortonormal en sentido positivo
(antihorario) es de la forma:
cos β − sin β 0
[RB C ]γ = [Rβ ]γ = sin β cos β 0 (2.2)
0 0 1
CAPÍTULO 2. ROTACIÓN DE UNA POSICIÓN ARBITRARIA A OTRA 6
lo que equivale a
[RB C ]γ = cos β(I) + (1 − cos β)(u3 ⊗ u3 ) + sin βu3 ˆ
donde I es la matriz identidad de R3 y u3 ˆ es la función que aplica u 7→ u3 ˆu.
RB C = Aγ→βW RB C γ
| | | cos β − sin β 0
= [u1 ]βW [u2 ]βW [u3 ]βW sin β cos β 0
| | | 0 0 1
< u1 , e1 > < u2 , e1 > < u3 , e1 > cos β − sin β 0
= < u1 , e2 > < u2 , e2 > < u3 , e2 > sin β cos β 0
< u1 , e3 > < u2 , e3 > < u3 , e3 > 0 0 1
RB C = Aγ→βW RB C γ
< u1 , e1 > 0 < u3 , e1 > cos β − sin β 0
= < u1 , e2 > 0 < u3 , e2 > sin β cos β 0
< u1 , e3 > 1 < u3 , e3 > 0 0 1
luego
| | 0 | | 0 0 0 0
RC W = cos ψ x∗C yC∗ 0 + sin ψ −yC∗ x∗C 0 + 0 0 0
| | 0 | | 0 0 0 1
En forma tensorial:
RC W = cos ψ RB C (x∗B ) ⊗ e1 + RB C (yB∗ ) ⊗ e2 +sin ψ −RB C (yB∗ ) ⊗ e1 + RB C (x∗B ) ⊗ e2 +e3 ⊗e3 (2.6)
Digresión: no necesariamente ψ está determinado por ψ = arc cos < e1 , x∗C >, pues esta función
nos devuelve un ángulo que se encuentra entre 0 y π, luego para rotar un ángulo ψ en sentido horario
el vector x∗C hacia e3 debemos distinguir dos casos: por una parte, el caso ψ ∈ [0, π], y por otro lado,
el caso ψ ∈ [π, 2π].
Caso 1: ψ ∈ [0, π]
En este caso, ψ está determinado por
4. Si arc cos < e1 , Rδ (x∗C ) >= 1 entonces δ es el ángulo que hay que girar al vector x∗C en sentido
horario para que coincida con e1 . Es decir que δ es el ángulo ψ del primer caso. Ver figura 2.10.
5. Si arc cos < e1 , Rδ (x∗C ) >6= 1 significa que Rδ (x∗C ) no coincide con e1 , es decir que estamos en
el segundo caso. Por lo que debemos tomar ψ = 2π − δ para la rotación Rψ de la ecuación 2.5.
Ver figura 2.11.
CAPÍTULO 2. ROTACIÓN DE UNA POSICIÓN ARBITRARIA A OTRA 10
Figura 2.10: arc cos < e1 , Rδ (x∗C ) >= 1 si y sólo si δ ∈ [0, π].
m = x∗C ⊗ e1 + yC∗ ⊗ e2
n = −yC∗ ⊗ e1 + x∗C ⊗ e2
r = e3 ⊗ e3
p = f ⊗ e1 + e3 ⊗ e2
q = e3 ⊗ e1 − f ⊗ e2
t = g ⊗ e3
De este modo:
RB W = [(cos ψ)m + (sin ψ)n + r] [(cos β)p + (sin β)q + t]
RB W = (cos ψ cos β)mp + (cos ψ sin β)mq + (cos ψ)mt+
(2.10)
+ (sin ψ cos β)np + (sin ψ sin β)nq + (sin ψ)nt+
+ (cos β)rp + (sin β)rq + rt
mp = (x∗C ⊗ e1 + yC∗ ⊗ e2 ) (f ⊗ e1 + e3 ⊗ e2 )
= (x∗C ⊗ e1 )(f ⊗ e1 ) + (x∗C ⊗ e1 )(e3 ⊗ e2 ) + (yC∗ ⊗ e2 )(f ⊗ e1 ) + (yC∗ ⊗ e2 )(e3 ⊗ e2 )
| {z } | {z } | {z } | {z }
<e1 ,f >(x∗C ⊗e1 ) <e1 ,e3 >(x∗C ⊗e2 ) ∗ ⊗e )
<e2 ,f >(yC 1
∗ ⊗e )
<e2 ,e3 >(yC 2
Como {e1 , e2 , e3 } es b.o.n., tenemos que < e1 , e3 >= 0 y < e2 , e3 >= 0, luego:
mt = (x∗C ⊗ e1 + yC∗ ⊗ e2 ) (g ⊗ e3 )
= (x∗C ⊗ e1 ) (g ⊗ e3 ) + (yC∗ ⊗ e2 ) (g ⊗ e3 ) (2.13)
=< e1 , g > (x∗C ⊗ e3 )+ < e2 , g > (yC∗ ⊗ e3 )
np = (x∗C ⊗ e2 − yC∗ ⊗ e1 ) (f ⊗ e1 + e3 ⊗ e2 )
= (x∗C ⊗ e2 ) (f ⊗ e1 ) + (x∗C ⊗ e2 ) (e3 ⊗ e2 ) − (yC∗ ⊗ e1 ) (f ⊗ e1 ) − (yC∗ ⊗ e1 ) (e3 ⊗ e2 )
| {z } | {z } | {z } | {z }
<e2 ,f >(x∗C ⊗e1 ) <e2 ,e3 >(x∗C ⊗e2 ) ∗ ⊗e )
<e1 ,f >(yC 1
∗ ⊗e )
<e1 ,e3 >(yC 2
nt = (x∗C ⊗ e2 − yC∗ ⊗ e1 ) (g ⊗ e3 )
= (x∗C ⊗ e2 ) (g ⊗ e3 ) − (yC∗ ⊗ e1 ) (g ⊗ e3 ) (2.16)
=< e2 , g > (x∗C ⊗ e3 )− < e1 , g > (yC∗ ⊗ e3 )
rp = (e3 ⊗ e3 ) (f ⊗ e1 + e3 ⊗ e2 )
= (e3 ⊗ e3 ) (f ⊗ e1 ) + (e3 ⊗ e3 ) (e3 ⊗ e2 )
=< e3 , f > (e3 ⊗ e1 ) + < e3 , e3 > (e3 ⊗ e2 ) (2.17)
| {z }
=1
=< e3 , f > (e3 ⊗ e1 ) + e3 ⊗ e2
CAPÍTULO 2. ROTACIÓN DE UNA POSICIÓN ARBITRARIA A OTRA 13
rq = (e3 ⊗ e3 ) (e3 ⊗ e1 − f ⊗ e2 )
= (e3 ⊗ e3 ) (e3 ⊗ e1 ) − (e3 ⊗ e3 ) (f ⊗ e2 )
= < e3 , e3 > (e3 ⊗ e1 ) − < e3 , f > (e3 ⊗ e2 ) (2.18)
| {z }
=1
= e3 ⊗ e1 − < e3 , f > (e3 ⊗ e2 )
rt = (e3 ⊗ e3 ) (g ⊗ e3 )
(2.19)
=< e3 , g > (e3 ⊗ e3 )
Reemplazando las ecuaciones (2.11), (2.12), (2.13), (2.14), (2.15), (2.16), (2.17), (2.18) y (2.19) en
(2.10) y agrupando por productos internos, tenemos que:
RB W =< e1 , f > [cos ψ cos β (x∗C ⊗ e1 ) − cos ψ sin β (x∗C ⊗ e2 ) + sin ψ cos β (yC∗ ⊗ e1 ) + sin ψ sin β (yC∗ ⊗ e2 )] +
+ < e2 , f > [cos ψ cos β (yC∗ ⊗ e1 ) − cos ψ sin β (yC∗ ⊗ e2 ) + sin ψ cos β (x∗C ⊗ e1 ) − sin ψ sin β (x∗C ⊗ e2 )] +
+ < e1 , g > (cos ψ (x∗C ⊗ e3 ) − sin ψ (yC∗ ⊗ e3 )) +
+ < e2 , g > (cos ψ (yC∗ ⊗ e3 ) − sin ψ (x∗C ⊗ e3 )) +
+ < e3 , f > (cos β (e3 ⊗ e1 ) − sin β (e3 ⊗ e2 )) +
+ < e3 , g > (e3 ⊗ e3 ) +
+ cos β (e3 ⊗ e2 ) + sin β (e3 ⊗ e1 )
(2.20)
u1 = e3 ˆ (e3 ˆzB∗ )
u2 = e3
u3 = e3 ˆzB∗
β = arc cos < e3 , zB∗ >
si resolvemos
reemplazando < e1 , f >, < e2 , f >, < e3 , f >, < e1 , g >, < e2 , g > y < e3 , g > en (2.20) tenemos
que:
Traslación y Rotación
Hasta ahora trabajamos bajo la hipótesis de que los sistemas B y W están centrados en el mismo
punto de R3 y, bajo este supuesto, la transformación para rotar el sistema B a W es RB W .
Ahora, si suponemos que el sistema B se encuentra centrado en el punto P0 = (x0 , y0 , z0 ) de R3 (ver
figura 3.1) la tranformación será:
15
Bibliografı́a
[2] Mellinger, D. y Kumar, V. Minimum Snap Trajectory Generation and Control for Quadrotors
http://www-personal.acfr.usyd.edu.au/spns/cdm/papers/Mellinger.pdf (Último acceso: mar-
zo de 2016).
[3] Serrano, E., Sirne, O. y La Mura, G. Rotaciones, secuencia aeroespacial y cuaterniones. Una
revisión de las relaciones fundamentales
https://dspace.palermo.edu/ojs/index.php/cyt/article/view/221/108 (Último acceso: marzo
de 2016).
16