概述
刚体姿态运动学(二)姿态的微分形式——角速度、欧拉角导数、四元数导数、旋转矩阵导数
上一篇我们讲了姿态的表达方式及其转换,可以说还是比较简单的。接下来面临的问题是,我们不仅想知道刚体的姿态,还想知道姿态是怎么变化的,也就是刚体的角速度。接下来我们研究一下姿态的各种表达的微分形式该如何转化为角速度。角速度是描述刚体姿态变化的速度,由三个方向的分量 w x w_{x} wx, w y w_{y} wy , w z ,w_{z} ,wz组成。
旋转矩阵导数转角速度
r ( t ) = R ( t ) r 0 mathbf{r}(t)=mathbf{R}(t) mathbf{r}_{0} r(t)=R(t)r0
关于t求导:
r
˙
=
R
˙
r
0
dot{mathbf{r}}=dot{mathbf{R}} mathbf{r}_{0}
r˙=R˙r0
又因:
r
˙
=
ω
×
r
dot{mathbf{r}}=boldsymbol{omega} times mathbf{r}
r˙=ω×r
把叉乘转化为矩阵乘法,得到:
R
˙
=
Ω
R
Ω
=
(
0
−
ω
z
ω
y
ω
z
0
−
ω
x
−
ω
y
ω
x
0
)
begin{array}{c} dot{mathbf{R}}=mathbf{Omega R} \ boldsymbol{Omega}=left(begin{array}{ccc} 0 & -omega_{z} & omega_{y} \ omega_{z} & 0 & -omega_{x} \ -omega_{y} & omega_{x} & 0 end{array}right) end{array}
R˙=ΩRΩ=⎝⎛0ωz−ωy−ωz0ωxωy−ωx0⎠⎞
欧拉角速度转角速度
假设选定RPY欧拉角,当完成了RPY三组旋转后,最后的yaw角速度,其实就等于绕z轴的角速度,因为此时的z轴就是求角速度时的z轴,即:
ω
z
=
[
0
0
d
ψ
d
t
]
omega_{z}=left[begin{array}{c} 0 \ 0 \ frac{d psi}{dt} end{array}right]
ωz=⎣⎡00dtdψ⎦⎤
假设只完成了两组旋转,在求出pitch的角速度后,需要再进行一次yaw角的旋转,猜得到最后的绕y轴的角速度,即:
ω
y
=
R
y
a
w
⋅
[
0
d
θ
d
t
0
]
omega_{y}=R_{yaw} cdotleft[begin{array}{c} 0 \ frac{d theta}{d t} \ 0 end{array}right]
ωy=Ryaw⋅⎣⎡0dtdθ0⎦⎤
同理可得:
ω
x
=
R
p
i
t
c
h
⋅
R
y
a
w
⋅
[
d
ϕ
d
t
0
0
]
omega_{x}=R_{pitch} cdot R_{yaw} cdotleft[begin{array}{c} frac{d phi}{d t} \ 0\ 0 end{array}right]
ωx=Rpitch⋅Ryaw⋅⎣⎡dtdϕ00⎦⎤
三个量相加就得到最后的结果
(
w
x
w
y
w
z
)
=
(
cos
θ
∗
cos
φ
−
sin
φ
0
cos
θ
∗
sin
φ
cos
φ
0
−
sin
θ
0
1
)
(
d
δ
/
d
t
d
θ
/
d
t
d
φ
/
d
t
)
left(begin{array}{l} w x \ w y \ w z end{array}right)=left(begin{array}{ccc} cos theta * cos varphi & -sin varphi & 0 \ cos theta * sin varphi & cos varphi & 0 \ -sin theta & 0 & 1 end{array}right)left(begin{array}{c} d delta / d t \ d theta / d t \ d varphi / d t end{array}right)
⎝⎛wxwywz⎠⎞=⎝⎛cosθ∗cosφcosθ∗sinφ−sinθ−sinφcosφ0001⎠⎞⎝⎛dδ/dtdθ/dtdφ/dt⎠⎞
这里的角速度是相对于固定参考系的,相对于旋转参考系如下:
w
b
=
[
c
r
0
−
s
r
⋅
c
p
0
1
s
p
s
r
0
c
r
⋅
c
p
]
⋅
[
d
p
d
t
d
r
d
t
d
y
d
t
]
w^{b}= left[begin{array}{ccc} c r & 0 & -s r cdot c p \ 0 & 1 & s p \ s r & 0 & c r cdot c p end{array}right] cdotleft[begin{array}{c} frac{d p}{d t} \ frac{d r}{d t} \ frac{d y}{d t} end{array}right]
wb=⎣⎡cr0sr010−sr⋅cpspcr⋅cp⎦⎤⋅⎣⎡dtdpdtdrdtdy⎦⎤
四元数转角速度
四元数方程为
Q
=
cos
θ
2
+
μ
R
sin
θ
2
mathrm{Q}=cos frac{theta}{2}+mu^{R} sin frac{theta}{2}
Q=cos2θ+μRsin2θ
μ
R
mu^{R}
μR为旋转轴。求导,得:
d
Q
d
t
=
−
θ
˙
2
sin
θ
2
+
μ
R
θ
˙
2
cos
θ
2
+
sin
θ
2
d
μ
R
d
t
frac{d Q}{d t}=-frac{dot{theta}}{2} sin frac{theta}{2}+mu^{R} frac{dot{theta}}{2} cos frac{theta}{2}+sin frac{theta}{2} frac{d mu^{R}}{d t}
dtdQ=−2θ˙sin2θ+μR2θ˙cos2θ+sin2θdtdμR
其中,旋转轴对时间的导数为0.两边同时左乘
μ
R
mu^{R}
μR:
θ
˙
2
μ
R
⊗
Q
=
θ
˙
2
μ
R
⊗
(
cos
θ
2
+
μ
R
sin
θ
2
)
=
θ
˙
2
cos
θ
2
μ
R
+
μ
R
⊗
μ
R
θ
˙
2
sin
θ
2
frac{dot{theta}}{2} mu^{R} otimes Q=frac{dot{theta}}{2} mu^{R} otimesleft(cos frac{theta}{2}+mu^{R} sin frac{theta}{2}right)=frac{dot{theta}}{2} cos frac{theta}{2} mu^{R}+mu^{R} otimes mu^{R} frac{dot{theta}}{2} sin frac{theta}{2}
2θ˙μR⊗Q=2θ˙μR⊗(cos2θ+μRsin2θ)=2θ˙cos2θμR+μR⊗μR2θ˙sin2θ
由四元数乘法,得:
μ
R
⊗
μ
R
=
−
1
mu^{R} otimes mu^{R}=-1
μR⊗μR=−1
因此,
d
Q
d
t
=
θ
˙
2
μ
R
⊗
Q
=
1
2
ω
R
b
R
⊗
Q
frac{d Q}{d t}=frac{dot{theta}}{2} mu^{R} otimes Q=frac{1}{2} omega_{R b}^{R} otimes Q
dtdQ=2θ˙μR⊗Q=21ωRbR⊗Q
其中,
ω
R
b
R
omega_{R b}^{R}
ωRbR为在全局坐标系下的角速度。如果要求得刚体在刚体坐标系下的角速度,需要进行转换,
ω
R
b
R
=
Q
⊗
ω
R
b
b
⊗
Q
∗
omega_{R b}^{R}=Q otimes omega_{R b}^{b} otimes Q^{*}
ωRbR=Q⊗ωRbb⊗Q∗
d
Q
d
t
=
1
2
ω
R
b
R
⊗
Q
=
1
2
Q
⊗
ω
R
b
b
⊗
Q
∗
⊗
Q
frac{d Q}{d t}=frac{1}{2} omega_{R b}^{R} otimes Q=frac{1}{2} Q otimes omega_{R b}^{b} otimes Q^{*} otimes Q
dtdQ=21ωRbR⊗Q=21Q⊗ωRbb⊗Q∗⊗Q
d
Q
d
t
=
1
2
Q
⊗
ω
R
b
b
frac{d Q}{d t}=frac{1}{2} Q otimes omega_{R b}^{b}
dtdQ=21Q⊗ωRbb
转换为矩阵形式,为:
[
q
˙
0
q
˙
1
q
˙
2
q
˙
3
]
=
1
2
[
0
−
ω
x
−
ω
y
−
ω
z
ω
x
0
ω
z
−
ω
y
ω
y
−
ω
z
0
ω
x
ω
z
ω
y
−
ω
x
0
]
[
q
0
q
1
q
2
q
3
]
left[begin{array}{c} dot{q}_{0} \ dot{q}_{1} \ dot{q}_{2} \ dot{q}_{3} end{array}right]=frac{1}{2}left[begin{array}{cccc} 0 & -omega_{x} & -omega_{y} & -omega_{z} \ omega_{x} & 0 & omega_{z} & -omega_{y} \ omega_{y} & -omega_{z} & 0 & omega_{x} \ omega_{z} & omega_{y} & -omega_{x} & 0 end{array}right]left[begin{array}{l} q_{0} \ q_{1} \ q_{2} \ q_{3} end{array}right]
⎣⎢⎢⎡q˙0q˙1q˙2q˙3⎦⎥⎥⎤=21⎣⎢⎢⎡0ωxωyωz−ωx0−ωzωy−ωyωz0−ωx−ωz−ωyωx0⎦⎥⎥⎤⎣⎢⎢⎡q0q1q2q3⎦⎥⎥⎤
或为:
[
q
˙
0
q
˙
1
q
˙
2
q
˙
3
]
=
1
2
[
q
0
−
q
1
−
q
2
−
q
3
q
1
q
0
−
q
3
q
2
q
2
q
3
q
0
−
q
1
q
3
−
q
2
q
1
q
0
]
[
0
ω
x
ω
y
ω
z
]
left[begin{array}{c} dot{q}_{0} \ dot{q}_{1} \ dot{q}_{2} \ dot{q}_{3} end{array}right]=frac{1}{2}left[begin{array}{cccc} q_{0} & -q_{1} & -q_{2} & -q_{3} \ q_{1} & q_{0} & -q_{3} & q_{2} \ q_{2} & q_{3} & q_{0} & -q_{1} \ q_{3} & -q_{2} & q_{1} & q_{0} end{array}right]left[begin{array}{c} 0 \ omega_{x} \ omega_{y} \ omega_{z} end{array}right]
⎣⎢⎢⎡q˙0q˙1q˙2q˙3⎦⎥⎥⎤=21⎣⎢⎢⎡q0q1q2q3−q1q0q3−q2−q2−q3q0q1−q3q2−q1q0⎦⎥⎥⎤⎣⎢⎢⎡0ωxωyωz⎦⎥⎥⎤
最后
以上就是暴躁冰淇淋为你收集整理的刚体姿态运动学(二)旋转的微分形式——角速度、欧拉角速度、四元数导数、旋转矩阵导数刚体姿态运动学(二)姿态的微分形式——角速度、欧拉角导数、四元数导数、旋转矩阵导数四元数转角速度的全部内容,希望文章能够帮你解决刚体姿态运动学(二)旋转的微分形式——角速度、欧拉角速度、四元数导数、旋转矩阵导数刚体姿态运动学(二)姿态的微分形式——角速度、欧拉角导数、四元数导数、旋转矩阵导数四元数转角速度所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复