四元数的微分形式

四元数微分形式的推导

关于四元数表示旋转的一些知识

1.四元数表示向量旋转
定义pv=[pxpypz]Tp_v=\left[\begin{array}{ccc}{p_{x}} & {p_{y}} & {p_{z}}\end{array}\right]^Tpv=[pxpypz]T为三维空间中的一点,将其转换成纯四元数形式即:p=[0pv]Tp=\left[\begin{array}{cc}0 & {p_{v}}\end{array}\right]^Tp=[0pv]T,令q=[cos(θ2)vsin(θ2)]Tq=\left[\begin{array}{cc}{cos(\frac{\theta}{2})} & {v sin(\frac{\theta}{2})}\end{array}\right]^Tq=[cos(2θ)vsin(2θ)]T为单位四元数,则有p′=q⋅p⋅q−1=[0pv′]Tp^{\prime} =q \cdot p \cdot q^{-1}=\left[\begin{array}{cc}0 & {p^{\prime}_{v}}\end{array}\right]^Tp=qpq1=[0pv]T其中pv′=[px′py′pz′]Tp^{\prime}_{v}=\left[\begin{array}{ccc}{p^{\prime}_{x}} & {p^{\prime}_{y}} & {p^{\prime}_{z}}\end{array}\right]^Tpv=[pxpypz]T表示pvp_vpv绕旋转轴vvv旋转θ\thetaθ角度后得到的新向量在原三维空间中的坐标表示。

2.四元数表示坐标系旋转
定义向量v0v_0v0oxyzoxyzoxyz坐标系中的表示为v1=[vxvyvz]Tv_1=\left[\begin{array}{ccc}{v_{x}} & {v_{y}} & {v_{z}}\end{array}\right]^Tv1=[vxvyvz]T,令坐标系oxyzoxyzoxyz绕单位旋转轴vvv旋转θ\thetaθ角度,得到新坐标系o′x′y′z′o^{\prime}x^{\prime}y^{\prime}z^{\prime}oxyz,此时v0v_0v0在新坐标系中的坐标表示为v1′=[vx′vy′vz′]Tv^{\prime}_1=\left[\begin{array}{ccc}{v^{\prime}_{x}} & {v^{\prime}_{y}} & {v^{\prime}_{z}}\end{array}\right]^Tv1=[vxvyvz]T。那么,向量v0v_0v0在两个坐标系之间的坐标转换关系为:
[0v1′]T=q−1⋅[0v1]T⋅q\left[\begin{array}{cc}0 & {v^{\prime}_{1}}\end{array}\right]^T=q^{-1} \cdot \left[\begin{array}{cc}0 & {v_{1}}\end{array}\right]^T \cdot q[0v1]T=q1[0v1]Tq
其中
q=[cos(θ2)vsin(θ2)]Tq=\left[\begin{array}{cc}{cos(\frac{\theta}{2})} & {v sin(\frac{\theta}{2})}\end{array}\right]^Tq=[cos(2θ)vsin(2θ)]T
值得注意的是,上述两种四元数表示旋转的方式得到的四元数旋转关系是不同的,这是因为1.表示向量在同一个坐标系中的旋转,而2.中旋转的是坐标系

以1.为例,先做q1q_1q1旋转,再做q2q_2q2旋转之后向量xxx在新坐标系中的表示为x′x^{\prime}x,则有:
xtemp=q1⋅x⋅q1−1x_{temp} = q_1 \cdot x \cdot {q_1}^{-1}xtemp=q1xq11
x′=q2⋅xtemp⋅q2−1x^{\prime} = q_2 \cdot x_{temp} \cdot {q_2}^{-1}x=q2xtempq21
x′=q2q1⋅xtemp⋅q2q1−1x^{\prime} = {q_2 q_1} \cdot x_{temp} \cdot {q_2 q_1}^{-1}x=q2q1xtempq2q11

四元数q2q1q_2 q_1q2q1表示了连续两次的旋转。

以2.为例,先做q1q_1q1旋转,再做q2q_2q2旋转之后向量xxx在新坐标系中的表示为x′x^{\prime}x,则有:
xtemp=q1−1⋅x⋅q1x_{temp} = q_1^{-1} \cdot x \cdot {q_1}xtemp=q11xq1
x′=q2−1⋅xtemp⋅q2x^{\prime} = q_2^{-1} \cdot x_{temp} \cdot {q_2}x=q21xtempq2
x′=q1q2−1⋅xtemp⋅q1q2x^{\prime} = {q_1 q_2}^{-1} \cdot x_{temp} \cdot {q_1 q_2}x=q1q21xtempq1q2

四元数q1q2q_1 q_2q1q2表示了连续两次的旋转。

四元数微分形式推导

以无人机的姿态表示为例子,我们定义单位四元数q(t)q(t)q(t)来表示从无人机的地理系E到机体系B的旋转关系。在t+Δtt+\Delta tt+Δt时刻,旋转可表示为q(t+Δt)q(t+\Delta t)q(t+Δt);即在Δt\Delta tΔt过程中,机体坐标系又经过了一个微小旋转,这个微小旋转的瞬时旋转角速度为www;接着对瞬时旋转轴做单位化处理w^=w/∣∣w∣∣\hat{w}=w/||w||w^=w/wΔt\Delta tΔt时刻转过的角度为Δθ=Δt∣∣w∣∣\Delta \theta =\Delta t||w||Δθ=Δtw则这次的微小旋转可由如下形式的单位四元数表示:

Δq=cos⁡Δθ2+sin⁡Δθ2w^=cos⁡∣∣w∣∣2Δt+sin⁡∣∣w∣∣2Δtw^\Delta q=\cos \frac{\Delta \theta}{2}+\sin \frac{\Delta \theta}{2} \hat{w} = \cos \frac{||w||}{2} \Delta t + \sin \frac{||w||}{2} \Delta t \hat{w}Δq=cos2Δθ+sin2Δθw^=cos2wΔt+sin2wΔtw^

假定地理系到机体系的旋转四元数为qeb=[q0q1q2q3]Tq^b_e =\left[\begin{array}{cccc}q_0 & q_1 & q_2 & q_3 \end{array}\right]^Tqeb=[q0q1q2q3]T
则根据上述2.有
[0er]T=(qbe)−1[0br]Tqbe\left[\begin{array}{cc}0 & ^er \end{array}\right]^T=(q^e_b)^{-1} \left[\begin{array}{cc}0 & ^br \end{array}\right]^T q^e_b \\ [0er]T=(qbe)1[0br]Tqbe
即(注意:此处转化为与1.相同的表示形式,但两者的物理意义不同):
[0er]T=(qeb)[0br]T(qeb)−1\left[\begin{array}{cc}0 & ^er \end{array}\right]^T=(q^b_e) \left[\begin{array}{cc}0 & ^br \end{array}\right]^T (q^b_e)^{-1} [0er]T=(qeb)[0br]T(qeb)1

那么根据上面的推导,连续两次的旋转可以表示为:q(t+Δt)=Δq⋅qq(t+\Delta t)=\Delta q \cdot qq(t+Δt)=Δqq;则有:

q(t+Δt)−q(t)=(cos⁡∣∣w∣∣2Δt+sin⁡∣∣w∣∣2Δtw^)q(t)−q(t)=−2sin⁡2∣∣w∣∣2Δtq(t)+w^sin⁡∣∣w∣∣2Δtq(t)q(t+\Delta t)-q(t)=(\cos \frac{||w||}{2} \Delta t + \sin \frac{||w||}{2} \Delta t \hat{w})q(t)-q(t) \\ =-2{\sin ^2 \frac{||w||}{2}} \Delta t q(t) + \hat{w} \sin \frac{||w||}{2} \Delta t q(t)q(t+Δt)q(t)=(cos2wΔt+sin2wΔtw^)q(t)q(t)=2sin22wΔtq(t)+w^sin2wΔtq(t)

略去高阶项可得:
q(t+Δt)−q(t)=w^sin⁡∣∣w∣∣2Δtq(t)q(t+\Delta t)-q(t)= \hat{w} \sin \frac{||w||}{2} \Delta t q(t)q(t+Δt)q(t)=w^sin2wΔtq(t)
q(t)˙=lim⁡Δt→0q(t+Δt)−q(t)Δt=lim⁡Δt→0w^sin⁡∣∣w∣∣2Δt⋅q(t)=12w^⋅∥w∥⋅q(t)=12⋅w⋅q(t)\dot{q(t)}=\lim _{\Delta t \rightarrow 0} \frac{q(t+\Delta t)-q(t)}{\Delta t} =\lim _{\Delta t \rightarrow 0} \frac{\hat{w} \sin \frac{||w||}{2}}{\Delta t}\cdot q(t) \\ =\frac{1}{2} \hat{w} \cdot\|w\| \cdot q(t) \\ = \frac{1}{2} \cdot w \cdot q(t)q(t)˙=Δt0limΔtq(t+Δt)q(t)=Δt0limΔtw^sin2wq(t)=21w^wq(t)=21wq(t)

注意:此处的⋅\cdot表示四元数乘法;www为角速度的纯四元数表示,w=[0wxwywz]Tw=\left[\begin{array}{cccc}{0} & {w_{x}} & {w_{y}} & {w_{z}}\end{array}\right]^Tw=[0wxwywz]T;

由于实际工程中我们都是通过固连在机体上的陀螺仪等传感器来获知机体角速度wbw^bwb它与地理坐标系下的角速度表示有如下关系w=q(t)wbq(t)−1w=q(t)w^bq(t)^{-1}w=q(t)wbq(t)1带入上式即可得到姿态解算过程中常用的四元数的微分形式q˙(t)=12q(t)wb\dot q(t)=\frac {1} {2}q(t)w^bq˙(t)=21q(t)wb
可以看出,通过一次四元数乘法运算便可得到四元数的微分。
上式可以写成如下的矩阵形式:

[q˙0q˙1q˙2q˙3]=12[q0−q1−q2−q3q1q0−q3q2q2q3q0−q1q3−q2q1q0][0ωxbωybωzb]\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}^{b}} \\ {\omega_{y}^{b}} \\ {\omega_{z}^{b}}\end{array}\right]q˙0q˙1q˙2q˙3=21q0q1q2q3q1q0q3q2q2q3q0q1q3q2q1q00ωxbωybωzb

或者:

[q˙0q˙1q˙2q˙3]=12[0−ωxb−ωyb−ωzbωxb0ωzb−ωybωyb−ωzb0ωxbωzbωyb−ωxb0][q0q1q2q3]\left[\begin{array}{l}{\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}^{b}} & {-\omega_{y}^{b}} & {-\omega_{z}^{b}} \\ {\omega_{x}^{b}} & {0} & {\omega_{z}^{b}} & {-\omega_{y}^{b}} \\ {\omega_{y}^{b}} & {-\omega_{z}^{b}} & {0} & {\omega_{x}^{b}} \\ {\omega_{z}^{b}} & {\omega_{y}^{b}} & {-\omega_{x}^{b}} & {0}\end{array}\right]\left[\begin{array}{l}{q_{0}} \\ {q_{1}} \\ {q_{2}} \\ {q_{3}}\end{array}\right]q˙0q˙1q˙2q˙3=210ωxbωybωzbωxb0ωzbωybωybωzb0ωxbωzbωybωxb0q0q1q2q3

四元数与旋转矩阵的关系

我们知道,从地理坐标系到机体坐标系的旋转矩阵可以有如下形式表示:(一般均为zyx顺序旋转)

Reb=RX⋅RY⋅Rz=[cos⁡θcos⁡ψcos⁡θsin⁡ψ−sin⁡θsin⁡ϕsin⁡θcos⁡ψ−cos⁡ϕsin⁡ψsin⁡ϕsin⁡θsin⁡ψ+cos⁡ϕcos⁡ψsin⁡ϕcos⁡θcos⁡ϕsin⁡θcos⁡ψ+sin⁡ϕsin⁡ψcos⁡ϕsin⁡θsin⁡ψ−sin⁡ϕcos⁡ψcos⁡ϕcos⁡θ] R^b_e=R_{X} \cdot R_{Y} \cdot R_{z}=\left[ \begin{array}{cc}{\cos \theta \cos \psi} & {\cos \theta \sin \psi} & {-\sin \theta} \\ {\sin \phi \sin \theta \cos \psi-\cos \phi \sin \psi} & {\sin \phi \sin \theta \sin \psi+\cos \phi \cos \psi} & {\sin \phi \cos \theta} \\ {\cos \phi \sin \theta \cos \psi+\sin \phi \sin \psi} & {\cos \phi \sin \theta \sin \psi-\sin \phi \cos \psi} & {\cos \phi \cos \theta}\end{array}\right] Reb=RXRYRz=cosθcosψsinϕsinθcosψcosϕsinψcosϕsinθcosψ+sinϕsinψcosθsinψsinϕsinθsinψ+cosϕcosψcosϕsinθsinψsinϕcosψsinθsinϕcosθcosϕcosθ

从机体系到地理系的由四元数表示的旋转矩阵为

Rbe=[1−2q22−2q322q1q2−2q0q32q1q3+2q0q22q1q2+2q0q31−2q12−2q322q2q3−2q0q12q1q3−2q0q22q2q3+2q0q11−2q12−2q22]R^e_b=\left[ \begin{array}{lll}{1-2 q_{2}^{2}-2 q_{3}^{2}} & {2 q_{1} q_{2}-2 q_{0} q_{3}} & {2 q_{1} q_{3}+2 q_{0} q_{2}} \\ {2 q_{1} q_{2}+2 q_{0} q_{3}} & {1-2 q_{1}^{2}-2 q_{3}^{2}} & {2 q_{2} q_{3}-2 q_{0} q_{1}} \\ {2 q_{1} q_{3}-2 q_{0} q_{2}} & {2 q_{2} q_{3}+2 q_{0} q_{1}} & {1-2 q_{1}^{2}-2 q_{2}^{2}}\end{array}\right]Rbe=12q222q322q1q2+2q0q32q1q32q0q22q1q22q0q312q122q322q2q3+2q0q12q1q3+2q0q22q2q32q0q112q122q22
则有Rbe=RebTR^e_b={R^b_e} ^TRbe=RebT再根据对应项相等,即可求出由四元数表示的欧拉角

ϕ=arctan⁡2(2(q2q3+q0q1),(1−2(q12+q22))) \phi=\arctan 2\left(2\left(q_{2} q_{3}+q_{0} q_{1}\right),\left(1-2\left(q_{1}^{2}+q_{2}^{2}\right)\right)\right) ϕ=arctan2(2(q2q3+q0q1),(12(q12+q22)))

θ=−arcsin⁡(2(q1q3−q0q2)) \theta=-\arcsin \left(2\left(q_{1} q_{3}-q_{0} q_{2}\right)\right) θ=arcsin(2(q1q3q0q2))

ψ=arctan⁡2(2(q1q2+q0q3),(1−2(q22+q32))) \psi=\arctan 2\left(2\left(q_{1} q_{2}+q_{0} q_{3}\right),\left(1-2\left(q_{2}^{2}+q_{3}^{2}\right)\right)\right) ψ=arctan2(2(q1q2+q0q3),(12(q22+q32)))

同样的,由欧拉角表示的四元数如下:

q==[cos⁡ϕ2cos⁡θ2cos⁡ψ2+sin⁡ϕ2sin⁡θ2sin⁡ψ2sin⁡ψ2cos⁡ψ2−cos⁡ϕ2sin⁡θ2sin⁡ψ2cos⁡ϕ2sin⁡θ2cos⁡ψ2+sin⁡ϕ2cos⁡θ2sin⁡ψ2cos⁡ϕ2cos⁡θ2sin⁡ψ2−sin⁡ϕ2sin⁡θ2cos⁡ψ2] q==\left[\begin{array}{c}{\cos \frac{\phi }{2} \cos \frac{\theta }{2} \cos \frac{\psi}{2}+\sin \frac{\phi }{2} \sin \frac{\theta }{2} \sin \frac{\psi}{2}} \\ {\sin \frac{\psi}{2} \cos \frac{\psi}{2}-\cos \frac{\phi }{2} \sin \frac{\theta }{2} \sin \frac{\psi}{2}} \\ {\cos \frac{\phi }{2} \sin \frac{\theta }{2} \cos \frac{\psi}{2}+\sin \frac{\phi }{2} \cos \frac{\theta }{2} \sin \frac{\psi}{2}} \\ {\cos \frac{\phi }{2} \cos \frac{\theta }{2} \sin \frac{\psi}{2}-\sin \frac{\phi }{2} \sin \frac{\theta }{2} \cos \frac{\psi}{2}}\end{array}\right] q==cos2ϕcos2θcos2ψ+sin2ϕsin2θsin2ψsin2ψcos2ψcos2ϕsin2θsin2ψcos2ϕsin2θcos2ψ+sin2ϕcos2θsin2ψcos2ϕcos2θsin2ψsin2ϕsin2θcos2ψ

上式中ϕ,θ,ψ\phi ,\theta , \psi ϕ,θ,ψ分别表示绕机体三轴转动的欧拉角;

欧拉角表示法的弊端

欧拉角速率与机体角速度之间的关系如下式所示:

[ϕ˙θ˙ψ˙]=[1sin⁡ϕtan⁡θcos⁡ϕtan⁡θ0cos⁡ϕ−sin⁡ϕ0sin⁡ϕ/cos⁡θcos⁡ϕ/cos⁡θ][pqr] \left[\begin{array}{c}{\dot{\phi}} \\ {\dot{\theta}} \\ {\dot{\psi}}\end{array}\right]=\left[\begin{array}{ccc}{1} & {\sin \phi \tan \theta} & {\cos \phi \tan \theta} \\ {0} & {\cos \phi} & {-\sin \phi} \\ {0} & {\sin \phi / \cos \theta} & {\cos \phi / \cos \theta}\end{array}\right]\left[\begin{array}{l}{\boldsymbol{p}} \\ {\boldsymbol{q}} \\ {\boldsymbol{r}}\end{array}\right] ϕ˙θ˙ψ˙=100sinϕtanθcosϕsinϕ/cosθcosϕtanθsinϕcosϕ/cosθpqr

可以看到,当θ=90。\theta =90^。θ=90这时0出现在分母上,也就是我们所说的解不存在的情况,此时无法实现有效控制。这就是常说的“万向节锁死”;这也是不用旋转矩阵来进行姿态递推的原因。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值