
由欧拉旋转定理可得:刚体在三位空间里的一般运动可以分解为刚体上某一点的平移,以及绕过该点旋转轴的转动;
只考虑旋转:
三维空间中的点p在坐标系
(
e
1
,
e
2
,
e
3
)
(e_1, e_2, e_3)
(e1,e2,e3)中的坐标为
(
a
1
,
a
2
,
a
3
)
(a_1, a_2, a_3)
(a1,a2,a3),当坐标系
(
e
1
,
e
2
,
e
3
)
(e_1, e_2, e_3)
(e1,e2,e3)旋转到坐标系
(
e
1
′
,
e
2
′
,
e
3
′
)
(e_1^{\prime}, e_2^{\prime}, e_3^{\prime})
(e1′,e2′,e3′),点p的坐标为
(
a
1
′
,
a
2
′
,
a
3
′
)
(a_1^{\prime}, a_2^{\prime}, a_3^{\prime})
(a1′,a2′,a3′),如式1所示:
[
e
1
,
e
2
,
e
3
]
[
a
1
a
2
a
3
]
=
[
e
1
′
,
e
2
′
,
e
3
′
]
[
a
1
′
a
2
′
a
3
′
]
(1)
\left[\boldsymbol{e}_{1}, \boldsymbol{e}_{2}, \boldsymbol{e}_{3}\right]\left[\begin{array}{l} a_{1} \\ a_{2} \\ a_{3} \end{array}\right]=\left[\boldsymbol{e}_{1}^{\prime}, \boldsymbol{e}_{2}^{\prime}, \boldsymbol{e}_{3}^{\prime}\right]\left[\begin{array}{c} a_{1}^{\prime} \\ a_{2}^{\prime} \\ a_{3}^{\prime} \end{array}\right]\tag1
[e1,e2,e3]
a1a2a3
=[e1′,e2′,e3′]
a1′a2′a3′
(1)
等式两边同乘
[
e
1
,
e
2
,
e
3
]
T
\left[\boldsymbol{e}_{1}, \boldsymbol{e}_{2}, \boldsymbol{e}_{3}\right]^T
[e1,e2,e3]T,由于
e
1
,
e
2
,
e
3
\boldsymbol{e}_{1}, \boldsymbol{e}_{2}, \boldsymbol{e}_{3}
e1,e2,e3为正交向量有:
[
a
1
a
2
a
3
]
=
[
e
1
T
e
1
′
e
1
T
e
2
′
e
1
T
e
3
′
e
2
T
e
1
′
e
2
T
e
2
′
e
2
T
e
3
′
e
3
T
e
1
′
e
3
T
e
2
′
e
3
T
e
3
′
]
[
a
1
′
a
2
′
a
3
′
]
≜
R
a
′
(2)
\left[\begin{array}{c} a_{1} \\ a_{2} \\ a_{3} \end{array}\right]=\left[\begin{array}{ccc} \boldsymbol{e}_{1}^{T} \boldsymbol{e}_{1}^{\prime} & \boldsymbol{e}_{1}^{T} \boldsymbol{e}_{2}^{\prime} & \boldsymbol{e}_{1}^{T} \boldsymbol{e}_{3}^{\prime} \\ \boldsymbol{e}_{2}^{T} \boldsymbol{e}_{1}^{\prime} & \boldsymbol{e}_{2}^{T} \boldsymbol{e}_{2}^{\prime} & \boldsymbol{e}_{2}^{T} \boldsymbol{e}_{3}^{\prime} \\ \boldsymbol{e}_{3}^{T} \boldsymbol{e}_{1}^{\prime} & \boldsymbol{e}_{3}^{T} \boldsymbol{e}_{2}^{\prime} & \boldsymbol{e}_{3}^{T} \boldsymbol{e}_{3}^{\prime} \end{array}\right]\left[\begin{array}{c} a_{1}^{\prime} \\ a_{2}^{\prime} \\ a_{3}^{\prime} \end{array}\right] \triangleq \boldsymbol{R} \boldsymbol{a}^{\prime}\tag2
a1a2a3
=
e1Te1′e2Te1′e3Te1′e1Te2′e2Te2′e3Te2′e1Te3′e2Te3′e3Te3′
a1′a2′a3′
≜Ra′(2)
则称 R R R 为旋转矩阵,其包含以下性质:
将所有满足式3的矩阵称为 Special Orthognal Group (特殊正交群),下面只考虑三维空间中的特殊正交群,坐标系1到坐标系2的之间的旋转关系可由式4来表示:
a
1
=
R
12
a
2
a
2
=
R
21
a
1
(4)
a_1 = R_{12}a_2\\ a_2 = R_{21}a1\tag4
a1=R12a2a2=R21a1(4)
其中
R
21
=
R
12
−
1
=
R
12
T
R_{21}=R_{12}^{-1}=R_{12}^{T}
R21=R12−1=R12T,若一个旋转矩阵取转置或取逆,则表示一个相反方向的旋转;
旋转+平移:
若同时考虑平移,则两个坐标系下p点的坐标关系如式5所示:
a
′
=
R
a
+
t
(5)
a^{\prime} = Ra+t\tag5
a′=Ra+t(5)
具体表示形式为:
a
2
=
R
21
⋅
a
1
+
t
21
a
1
=
R
12
⋅
a
2
+
t
12
a_{2}=R_{21} \cdot a_{1}+t_{21} \\ a_{1}=R_{12} \cdot a_{2}+t_{12}
a2=R21⋅a1+t21a1=R12⋅a2+t12
注:
t
12
≠
−
t
21
t_{12}\neq -t_{21}
t12=−t21
齐次坐标表示:
由于刚体在三维空间中可能发生多次旋转与平移,如式6所示:
b
=
R
1
a
+
t
1
,
c
=
R
2
b
+
t
2
.
⟹
c
=
R
2
(
R
1
a
+
t
1
)
+
t
2
.
(6)
\boldsymbol{b}=\boldsymbol{R}_{1} a+t_{1}, \quad c=\boldsymbol{R}_{2} b+t_{2} . \quad \Longrightarrow \quad c=\boldsymbol{R}_{2}\left(\boldsymbol{R}_{1} a+t_{1}\right)+t_{2} .\tag6
b=R1a+t1,c=R2b+t2.⟹c=R2(R1a+t1)+t2.(6)
为了方便表达这种运动,引入了其次坐标表示形式如式7所示:
[
a
′
1
]
=
[
R
t
0
T
1
]
[
a
1
]
≜
T
[
a
1
]
\left[\begin{array}{l} \boldsymbol{a}^{\prime} \\ 1 \end{array}\right]=\left[\begin{array}{ll} \boldsymbol{R} & \boldsymbol{t} \\ \mathbf{0}^{T} & 1 \end{array}\right]\left[\begin{array}{l} \boldsymbol{a} \\ 1 \end{array}\right] \triangleq \boldsymbol{T}\left[\begin{array}{l} \boldsymbol{a} \\ 1 \end{array}\right]
[a′1]=[R0Tt1][a1]≜T[a1]
其中
T
=
[
R
t
0
T
1
]
T = \left[\begin{array}{ll} \boldsymbol{R} & \boldsymbol{t} \\ \mathbf{0}^{T} & 1 \end{array}\right]
T=[R0Tt1] 为变换矩阵(同时包含旋转与平移),变换矩阵的逆
T
−
1
\boldsymbol{T}^{-1}
T−1为:
T
−
1
=
[
R
T
−
R
T
t
0
T
1
]
\boldsymbol{T}^{-1}=\left[\begin{array}{cc} \boldsymbol{R}^{T} & -\boldsymbol{R}^{T} t \\ \mathbf{0}^{T} & 1 \end{array}\right]
T−1=[RT0T−RTt1]
将变换矩阵的集合称为特殊欧式群SE(3) (Special Euclidean Group):
S
E
(
3
)
=
{
T
=
[
R
t
0
T
1
]
∈
R
4
×
4
∣
R
∈
S
O
(
3
)
,
t
∈
R
3
}
(7)
\mathrm{SE}(3)=\left\{\boldsymbol{T}=\left[\begin{array}{cc} \boldsymbol{R} & \boldsymbol{t} \\ \mathbf{0}^{\mathrm{T}} & 1 \end{array}\right] \in \mathbb{R}^{4 \times 4} \mid \boldsymbol{R} \in \mathrm{SO}(3), \boldsymbol{t} \in \mathbb{R}^{3}\right\}\tag7
SE(3)={T=[R0Tt1]∈R4×4∣R∈SO(3),t∈R3}(7)
其中
[
a
′
1
]
\left[\begin{array}{l} \boldsymbol{a}^{\prime} \\ 1\end{array}\right]
[a′1] 为齐次坐标,齐次坐标乘以任意非零常熟仍然表示三维空间中的同一个坐标:
a
~
=
[
a
1
]
=
k
[
a
1
]
(8)
\tilde{a}=\left[\begin{array}{l} a \\ 1 \end{array}\right]=k\left[\begin{array}{l} a \\ 1 \end{array}\right]\tag8
a~=[a1]=k[a1](8)
则多次的旋转与平移可以如式9所示:
b
~
=
T
1
a
~
,
c
~
=
T
2
b
~
⇒
c
~
=
T
2
T
1
a
~
(9)
\tilde{b}=\boldsymbol{T}_{1} \tilde{\boldsymbol{a}}, \tilde{\boldsymbol{c}}=\boldsymbol{T}_{2} \tilde{\boldsymbol{b}} \quad \Rightarrow \tilde{\boldsymbol{c}}=\boldsymbol{T}_{2} \boldsymbol{T}_{\mathbf{1}} \tilde{\boldsymbol{a}}\tag9
b~=T1a~,c~=T2b~⇒c~=T2T1a~(9)
旋转矩阵用9个元素的旋转矩阵仅仅表示3个自由度的信息,表达形式过于复杂,不节省内存空间。从直观上看,旋转可以表示为绕某个轴
n
n
n 旋转一定的角度
θ
\theta
θ,为此引入了旋转向量(Rotation Vector) 或角轴/轴角(Angle Axis), 旋转矩阵与旋转向量是等价的,可以互相转换:
旋转向量到旋转矩阵的变换: 罗德里格斯公式(Rodrigus’s Formula):
R
=
cos
θ
I
+
(
1
−
cos
θ
)
n
n
T
+
sin
θ
n
∧
(10)
\boldsymbol{R}=\cos \theta \boldsymbol{I}+(1-\cos \theta) \boldsymbol{n} \boldsymbol{n}^{T}+\sin \theta \boldsymbol{n}^{\wedge}\tag{10}
R=cosθI+(1−cosθ)nnT+sinθn∧(10)
其中
cos
θ
I
\cos \theta \boldsymbol{I}
cosθI 为3x3矩阵,
(
1
−
cos
θ
)
n
n
T
(1-\cos \theta) \boldsymbol{n} \boldsymbol{n}^{T}
(1−cosθ)nnT也为3x3的矩阵,
n
∧
\boldsymbol{n}^{\wedge}
n∧表示旋转向量
n
n
n 的叉积。
旋转矩阵到旋转向量:
θ
=
arccos
(
tr
(
R
)
−
1
2
)
R
n
=
n
(11)
\theta=\arccos \left(\frac{\operatorname{tr}(\boldsymbol{R})-1}{2}\right)\\ Rn = n\tag{11}
θ=arccos(2tr(R)−1)Rn=n(11)
n
n
n 为
R
R
R 矩阵对应特征值为1的特征向量;
旋转向量表示的旋转方式不够直观,无法从旋转向量中直接看出旋转轴的位置,欧拉角将旋转分解为三个方向上的旋转(如Z-Y-X)方向,轴可以为定轴或者动轴,轴的顺序也可以改变,如最常用绕动轴的Z-Y-X旋转方式:

万向锁(Gimbal Lock):欧拉角在某些旋转情况下,旋转自由度会减1,存在奇异性;由于万向锁的存在,欧拉角不适合做插值或迭代,应用不广泛;
四元数是一种既节省空间,又不存在奇异性的刚体旋转表示方式;
在复数平面坐标系下,可以用单位复数来表达旋转操作:
z
=
x
+
i
y
=
ρ
e
i
θ
(12)
z=x+i y=\rho e^{i \theta}\tag{12}
z=x+iy=ρeiθ(12)
当
z
z
z 乘以一个纯虚数
i
i
i 表示原来的向量旋转90度:
z
i
=
(
x
+
i
y
)
i
=
ρ
e
i
(
θ
+
π
2
)
(13)
zi=(x+i y)i=\rho e^{i (\theta+\frac{\pi}{2})}\tag{13}
zi=(x+iy)i=ρei(θ+2π)(13)
在三维情况下, 四元数可以作为复数的扩充:
q
=
q
0
+
q
1
i
+
q
2
j
+
q
3
k
(14)
\boldsymbol{q}=q_{0}+q_{1} i+q_{2} j+q_{3} k\tag{14}
q=q0+q1i+q2j+q3k(14)
四元数包含1个实部与3个虚部,虚部之间满足以下的关系(自己与自己运算像复数运算,自己与别人运算像叉乘):
{
i
2
=
j
2
=
k
2
=
−
1
i
j
=
k
,
j
i
=
−
k
j
k
=
i
,
k
j
=
−
i
k
i
=
j
,
i
k
=
−
j
(15)
\left\{\begin{array}{l} i^{2}=j^{2}=k^{2}=-1 \\ i j=k, j i=-k \\ j k=i, k j=-i \\ k i=j, i k=-j \end{array}\right.\tag{15}
⎩
⎨
⎧i2=j2=k2=−1ij=k,ji=−kjk=i,kj=−iki=j,ik=−j(15)
单位四元数可以表达旋转:
q
=
q
0
+
q
1
i
+
q
2
j
+
q
3
k
,
q
=
[
s
,
v
]
,
s
=
q
0
∈
R
,
v
=
[
q
1
,
q
2
,
q
3
]
T
∈
R
3
(16)
\boldsymbol{q}=q_{0}+q_{1} i+q_{2} j+q_{3} k, \quad \boldsymbol{q}=[s, \boldsymbol{v}], \quad s=q_{0} \in \mathbb{R}, \boldsymbol{v}=\left[q_{1}, q_{2}, q_{3}\right]^{T} \in \mathbb{R}^{3}\tag{16}
q=q0+q1i+q2j+q3k,q=[s,v],s=q0∈R,v=[q1,q2,q3]T∈R3(16)
基本运算如下所示:
加减法:
q
a
±
q
b
=
[
s
a
±
s
b
,
v
a
±
v
b
]
\begin{aligned} \boldsymbol{q}_{a} \pm \boldsymbol{q}_{b}=& {\left[s_{a} \pm s_{b}, \boldsymbol{v}_{a} \pm \boldsymbol{v}_{b}\right] }\end{aligned}
qa±qb=[sa±sb,va±vb]
乘法:
q
a
q
b
=
s
a
s
b
−
x
a
x
b
−
y
a
y
b
−
z
a
z
b
+
(
s
a
x
b
+
x
a
s
b
+
y
a
z
b
−
z
a
y
b
)
i
+
(
s
a
y
b
−
x
a
z
b
+
y
a
s
b
+
z
a
x
b
)
j
+
(
s
a
z
b
+
x
a
y
b
−
y
b
x
a
+
z
a
s
b
)
k
\begin{aligned}\boldsymbol{q}_{a} \boldsymbol{q}_{b}=& s_{a} s_{b}-x_{a} x_{b}-y_{a} y_{b}-z_{a} z_{b} \\ &+\left(s_{a} x_{b}+x_{a} s_{b}+y_{a} z_{b}-z_{a} y_{b}\right) i \\ &+\left(s_{a} y_{b}-x_{a} z_{b}+y_{a} s_{b}+z_{a} x_{b}\right) j \\ &+\left(s_{a} z_{b}+x_{a} y_{b}-y_{b} x_{a}+z_{a} s_{b}\right) k \end{aligned}
qaqb=sasb−xaxb−yayb−zazb+(saxb+xasb+yazb−zayb)i+(sayb−xazb+yasb+zaxb)j+(sazb+xayb−ybxa+zasb)k
q
a
q
b
=
[
s
a
s
b
−
v
a
T
v
b
,
s
a
v
b
+
s
b
v
a
+
v
a
×
v
b
]
\begin{aligned}\boldsymbol{q}_{a} \boldsymbol{q}_{b}=\left[s_{a} s_{b}-\boldsymbol{v}_{a}^{T} \boldsymbol{v}_{b}, s_{a} \boldsymbol{v}_{b}+s_{b} \boldsymbol{v}_{a}+\boldsymbol{v}_{a} \times \boldsymbol{v}_{b}\right] \end{aligned}
qaqb=[sasb−vaTvb,savb+sbva+va×vb]
共轭:
q
a
∗
=
s
a
−
x
a
i
−
y
a
j
−
z
a
k
=
[
s
a
,
−
v
a
]
\boldsymbol{q}_{a}^{*}=s_{a}-x_{a} i-y_{a} j-z_{a} k=\left[s_{a},-\boldsymbol{v}_{a}\right]
qa∗=sa−xai−yaj−zak=[sa,−va]
取模长:
∥
q
a
∥
=
s
a
2
+
x
a
2
+
y
a
2
+
z
a
2
\left\|\boldsymbol{q}_{a}\right\|=\sqrt{s_{a}^{2}+x_{a}^{2}+y_{a}^{2}+z_{a}^{2}}
∥qa∥=sa2+xa2+ya2+za2
取逆:
q
−
1
=
q
∗
/
∥
q
∥
2
\boldsymbol{q}^{-1}=\boldsymbol{q}^{*} /\|\boldsymbol{q}\|^{2}
q−1=q∗/∥q∥2
数乘:
k
q
=
[
k
s
,
k
v
]
k \boldsymbol{q}=[k s, k \boldsymbol{v}]
kq=[ks,kv]
点乘:
q
a
⋅
q
b
=
s
a
s
b
+
x
a
x
b
i
+
y
a
y
b
j
+
z
a
z
b
k
\boldsymbol{q}_a \cdot \boldsymbol{q}_{b}=s_{a} s_{b}+x_{a} x_{b} i+y_{a} y_{b} j+z_{a} z_{b} k
qa⋅qb=sasb+xaxbi+yaybj+zazbk
旋转角转换为四元数:
q
=
[
cos
θ
2
,
n
x
sin
θ
2
,
n
y
sin
θ
2
,
n
z
sin
θ
2
]
T
(17)
\boldsymbol{q}=\left[\cos \frac{\theta}{2}, n_{x} \sin \frac{\theta}{2}, n_{y} \sin \frac{\theta}{2}, n_{z} \sin \frac{\theta}{2}\right]^{T}\tag{17}
q=[cos2θ,nxsin2θ,nysin2θ,nzsin2θ]T(17)
四元数转为旋转向量:
{
θ
=
2
arccos
q
0
[
n
x
,
n
y
,
n
z
]
T
=
[
q
1
,
q
2
,
q
3
]
T
/
sin
θ
2
(18)
\left\{\begin{array}{l} \theta=2 \arccos q_{0} \\ {\left[n_{x}, n_{y}, n_{z}\right]^{T}=\left[q_{1}, q_{2}, q_{3}\right]^{T} / \sin \frac{\theta}{2}} \end{array}\right.\tag{18}
{θ=2arccosq0[nx,ny,nz]T=[q1,q2,q3]T/sin2θ(18)
若点 p p p 经过一次以四元数 q q q 表示的旋转后得 p ′ p^{\prime} p′ ,包含以下两个步骤:
点向量坐标矩阵的几何意义介绍旋转矩阵的几何含义之前,先介绍一下点向量坐标矩阵的几何含义点:在一维空间下就是一个标量,如同一条直线上,以任意某一个位置为0点,以一定的尺度间隔为1,2,3...,相反方向为-1,-2,-3...;如此就形成了一维坐标系,这时候任何一个点都可以用一个数值表示,如点p1=5,即即从原点出发沿着x轴正方向移动5个尺度;点p2=-3,负方向移动3个尺度; 在一维坐标系上过原点做垂直于一维坐标系的直线,则形成了二维坐标系,此时描述一个点需要两个数值来表示点p3=(3,2),即从原点出发沿着x轴正方向移动3个尺度,在此基础上沿着y轴正方向移动两个尺度的位置就是点p3。
Unity自动旋转动画1.开门需要门把手先动,门再动2.关门需要门先动,门把手再动3.中途播放过程中不可以再次进行操作觉得太复杂?查看我的文章开关门简易进阶版效果:如果这个门可以直接打开的话,就不需要放置"门把手"如果门把手还有钥匙需要旋转,那就可以把钥匙放在门把手的"门把手",理论上是可以无限套娃的可调整参数有:角度,反向,轴向,速度运行时点击Test进行测试自己写的代码比较垃圾,命名与结构比较拉,高手轻点喷,新手有类似的需求可以拿去做参考上代码usingSystem.Collections;usingSystem.Collections.Generic;usingUnityEngine;u
我们目前正在为ROR3.2开发自定义cms引擎。在这个过程中,我们希望成为我们的rails应用程序中的一等公民的几个类类型起源,这意味着它们应该驻留在应用程序的app文件夹下,它是插件。目前我们有以下类型:数据源数据类型查看我在app文件夹下创建了多个目录来保存这些:应用/数据源应用/数据类型应用/View更多类型将随之而来,我有点担心应用程序文件夹被这么多目录污染。因此,我想将它们移动到一个子目录/模块中,该子目录/模块包含cms定义的所有类型。所有类都应位于MyCms命名空间内,目录布局应如下所示:应用程序/my_cms/data_source应用程序/my_cms/data_ty
所有题目均有五种语言实现。C实现目录、C++实现目录、Python实现目录、Java实现目录、JavaScript实现目录题目n行m列的矩阵,每个位置上有一个元素你可以上下左右行走,代价是前后两个位置元素值差的绝对值.另外,你最多可以使用一次传送阵(只能从一个数跳到另外一个相同的数)求从走上角走到右下角最少需要多少时间。输入描述:第一行两个整数n,m,分别代表矩阵的行和列。后面n行,每行m个整数,分别代表矩阵中的元素。输出描述:一个整数,表示最少需要多少时间。
在我的应用程序中我有classUserincludeUser::FooendUser::Foo定义在app/models/user/foo.rb现在我正在使用一个定义了自己的Foo类的库。我收到此错误:warning:toplevelconstantFooreferencedbyUser::FooUser仅引用具有完整路径的Foo,User::Foo,而Foo实际上从来没有指的是Foo。这是怎么回事?更新:才想起我之前遇到过同样的问题,在问题1中看到这里:HowdoIrefertoasubmodule's"fullpath"inruby? 最佳答案
考虑Ruby类Foo::Bar。惯例是将“Foo”命名空间作为一个模块,但它也可以很容易地作为一个类:moduleFoo;classBar;end;end对比:classFoo;classBar;end;end在第二种情况下,Bar不是Foo的内部类,它只是在Foo的单例上定义的另一个常量。在这两种情况下,父类(superclass)都是Object并且它们只包含Kernel模块。它们的祖先链是相同的。因此,除了您可以根据其类使用Foo进行的操作(如果是类则实例化,如果是模块则扩展/包含),命名空间的性质是否对有任何影响酒吧?是否有令人信服的理由选择其中一个名称间距而不是另一个?我看到
我在将模块包含在命名空间类中时遇到问题。下面的示例抛出错误uninitializedconstantBar::Foo::Baz(NameError)。我在这里缺少哪些基本的Ruby知识?moduleFoomoduleBazdefhelloputs'hello'endendendmoduleBarclassFooincludeFoo::Bazendendfoo=Bar::Foo.new 最佳答案 使用::强制查找到顶层:moduleBarclassFooinclude::Foo::Bazendend
我想为类定义Fabricator,其命名空间类似于“Foo::Bar”。告诉我它的工作方式。这是我的代码。模型/foo.rbclassFooincludeMongoid::Documentembedded_in:foo_container,polymorphic:truefield:xxx....end模型/foo/bar.rbclassFoo::Bar数据/制造商/foo_bar_fabricator.rbFabricator(:foo_bar,class_name:'Foo::Bar')doyyy'MyString'zzz'MyString'end当我尝试在parino控制台上创建
一、习惯约定图片来自PSINS(高精度捷联惯导算法)PSINS工具箱入门与详解.pptx二、基本旋转矩阵绕x轴逆时钟旋转α\alphaα角度Rx(α)=[ 1000cosαsinα0−sinαcosα]R_x(\alpha)=\begin{bmatrix}\1&0&0\\0&\cos\alpha&\sin\alpha\\0&-\sin\alpha&\cos\alpha\end{bmatrix}Rx(α)= 1000cosα−sinα0sinαcosα绕y轴逆时钟旋转α\alphaα角度Ry(α)=[ cosα0−sinα010sinα0cosα]R_y(\alpha
欧拉角、旋转矩阵及四元数1.简介2.欧拉角2.1欧拉角定义2.2右手系和左手系2.3转换流程3.旋转矩阵4.四元数4.1四元数与欧拉角和旋转矩阵之间等效变换4.2测试Matlab代码5.总结1.简介常用姿态参数表达方式包括方向余弦矩阵、欧拉轴/角参数、欧拉角、四元数以及罗德里格参数等。高分辨率光学遥感卫星主要采用欧拉角与四元数对姿态参数进行描述。这里着重讲解欧拉角、旋转矩阵和四元数。2.欧拉角2.1欧拉角定义欧拉角是表征刚体旋转的一种方法之一,由莱昂哈德·欧拉引入的三个角度,用于描述刚体相对于固定坐标系的方向。在摄影测量、空间科学或其它技术领域,一般用一组(三个)欧拉角描述两个空间坐标之间的旋