[足式机器人]Part3 机构运动学与动力学分析与建模 Ch00-3(1) 刚体的位形 Configuration of Rigid Body

本文仅供学习使用,总结很多本现有讲述运动学或动力学书籍后的总结,从矢量的角度进行分析,方法比较传统,但更易理解,并且现有的看似抽象方法,两者本质上并无不同。

2024年底本人学位论文发表后方可摘抄
若有帮助请引用
本文参考:
.

食用方法
如何表达刚体在空间中的位置与姿态
姿态参数如何表达?不同表达方式直接的转换关系?
旋转矩阵?转换矩阵?有什么意义和性质?转置代表什么?
如何表示连续变换?——与RPY有关
齐次坐标的意义——简化公式?
务必自己推导全部公式,并理解每个符号的含义

机构运动学与动力学分析与建模 Ch00-3 刚体的位形 Configuration of Rigid Body Part1

  • 3. 转换矩阵与旋转矩阵——刚体的位置与姿态描述
    • 3.1 轴角变换
    • 3.2 罗德里格变换Rodrigues’ Transform
    • 3.3 方向余弦变换


刚体的位形可以用六个独立(坐标)参数完全描述三个位置参数用于描述运动刚体上运动坐标系 { M } \left\{ M \right\} {M}原点 M M M在固定坐标系 { F } \left\{ F \right\} {F}的投影参数,三个转动参数用于描述运动坐标系 { M } \left\{ M \right\} {M}的基矢量相对于固定坐标系 { F } \left\{ F \right\} {F}的基矢量的姿态,而描述这种姿态的变换,则是需要确定矩阵 [ Q M F ] \left[ Q_{\mathrm{M}}^{F} \right] [QMF]

因此为描述空间坐标系中任意一刚体的运动状态,首先需要描述刚体的位置矢量 R ⃗ M F \vec{R}_{\mathrm{M}}^{F} R MF与姿态矩阵 [ Q M F ] \left[ Q_{\mathrm{M}}^{F} \right] [QMF]

  • 广义参考系坐标 Reference Coordinates:为方便后续动力学方程的建立与推导,常用广义坐标矢量参数 q ⃗ M F \vec{q}_{\mathrm{M}}^{F} q MF来描述运动刚体的形位,其中:
    q ⃗ M F = [ R ⃗ M F , θ ⃗ M F ] \vec{q}_{\mathrm{M}}^{F}=\left[ \vec{R}_{\mathrm{M}}^{F},\vec{\theta}_{\mathrm{M}}^{F} \right] q MF=[R MF,θ MF]
  • θ ⃗ M F \vec{\theta}_{\mathrm{M}}^{F} θ MF可以用多种方法来描述(通常包含3或4个角度参数 ),这些角度参数用于描述矩阵 [ Q M F ] \left[ Q_{\mathrm{M}}^{F} \right] [QMF]

对于刚体的运动状态而言,其运动坐标系的原点 M M M的位置矢量 R ⃗ M F \vec{R}_{\mathrm{M}}^{F} R MF表示与点的运动状态表示相同,因此需要探究如何用角度参数来描述转换矩阵。

3. 转换矩阵与旋转矩阵——刚体的位置与姿态描述

转换矩阵用于表述两个坐标系 { A : ( i ⃗ A , j ⃗ A , k ⃗ A ) } \left\{ A:\left( \vec{i}^A,\vec{j}^A,\vec{k}^A \right) \right\} {A:(i A,j A,k A)} { B : ( i ⃗ B , j ⃗ B , k ⃗ B ) } \left\{ B:\left( \vec{i}^B,\vec{j}^B,\vec{k}^B \right) \right\} {B:(i B,j B,k B)}的基矢量之间的转换关系:
[ i ⃗ B j ⃗ B k ⃗ B ] = [ Q B A ] T [ i ⃗ A j ⃗ A k ⃗ A ] \left[ \begin{array}{c} \vec{i}^B\\ \vec{j}^B\\ \vec{k}^B\\ \end{array} \right] =\left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}}\left[ \begin{array}{c} \vec{i}^A\\ \vec{j}^A\\ \vec{k}^A\\ \end{array} \right] i Bj Bk B =[QBA]T i Aj Ak A
其中,转换矩阵 [ Q B A ] T \left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}} [QBA]T表示坐标系 { B } \left\{ B \right\} {B}的基矢量在坐标系 { A } \left\{ A \right\} {A}中的表达,可将向量在不同的基矢量坐标系下进行表示。特殊的:若将基矢量替换成对应基矢量的向量投影,则可以表示为:两个原点重合的坐标系中,对同一向量的不同表达的转换关系;

上式也可以理解为:对坐标系 { A : ( i ⃗ A , j ⃗ A , k ⃗ A ) } \left\{ A:\left( \vec{i}^A,\vec{j}^A,\vec{k}^A \right) \right\} {A:(i A,j A,k A)}进行了 [ Q B A ] \left[ Q_{\mathrm{B}}^{A} \right] [QBA]的旋转,此时将转换矩阵与向量的运算理解为张量与向量的运算,即得到了旋转后的向量在坐标系 { A } \left\{ A \right\} {A}中的表达,此时实际上,对原始坐标系 { A } \left\{ A \right\} {A}的基矢量同样进行了旋转,形成了新坐标系 { B } \left\{ B \right\} {B}的基矢量,其仍在坐标系 { A } \left\{ A \right\} {A}下表达。

[ r 1 A ′ r 2 A ′ r 3 A ′ ] = [ Q B A ] [ r 1 A r 2 A r 3 A ] \left[ \begin{array}{c} {r_{1}^{A}}^{\prime}\\ {r_{2}^{A}}^{\prime}\\ {r_{3}^{A}}^{\prime}\\ \end{array} \right] =\left[ Q_{\mathrm{B}}^{A} \right] \left[ \begin{array}{c} r_{1}^{A}\\ r_{2}^{A}\\ r_{3}^{A}\\ \end{array} \right] r1Ar2Ar3A =[QBA] r1Ar2Ar3A

目前,人们采用不同的角度参数 θ ⃗ \vec{\theta} θ 来对旋转矩阵进行描述

  • Representing an orientation —— from definition
    将原矢量进行旋转变换,得到该坐标系下新矢量的坐标投影参数:
    R ⃗ p ′ F = [ Q B A ] R ⃗ p F \vec{R}_{\mathrm{p}^{\prime}}^{F}=\left[ Q_{\mathrm{B}}^{A} \right] \vec{R}_{\mathrm{p}}^{F} R pF=[QBA]R pF
  • Changing the reference frame
    对坐标系进行转换,基于坐标系 { B } \left\{ B \right\} {B}中的该矢量的坐标投影参数 R ⃗ p B \vec{R}_{\mathrm{p}}^{B} R pB,得到该矢量在坐标系 { A } \left\{ A \right\} {A}中的坐标投影参数 R ⃗ p A \vec{R}_{\mathrm{p}}^{A} R pA
    R ⃗ p A = [ Q B A ] R ⃗ p B \vec{R}_{\mathrm{p}}^{A}=\left[ Q_{\mathrm{B}}^{A} \right] \vec{R}_{\mathrm{p}}^{B} R pA=[QBA]R pB

3.1 轴角变换

在这里插入图片描述
假设两个坐标系 { A } \left\{ A \right\} {A} { B } \left\{ B \right\} {B}的原点重合,其中坐标系 { B } \left\{ B \right\} {B}为坐标系 { A } \left\{ A \right\} {A}绕轴 v ⃗ F \vec{v}^F v F(单位向量)旋转 θ \theta θ所得到的。因此对于坐标系 { A } \left\{ A \right\} {A}中的点 P P P,经过转换后,得到点 P ′ P^{\prime} P,此时点 P ′ P^{\prime} P在坐标系 { B } \left\{ B \right\} {B}中的矢量投影与点 P P P在坐标系 { A } \left\{ A \right\} {A}中的投影分量相同。而在转换过程中,点 P ′ P^{\prime} P在坐标系 { A } \left\{ A \right\} {A}中的表达发生变化,即有: [ P ′ 1 B , P ′ 2 B , P ′ 2 B ] = [ P 1 A , P 2 A , P 2 A ] \left[ {P^{\prime}}_{1}^{\mathrm{B}},{P^{\prime}}_{2}^{\mathrm{B}},{P^{\prime}}_{2}^{\mathrm{B}} \right] =\left[ P_{1}^{A},P_{2}^{A},P_{2}^{A} \right] [P1B,P2B,P2B]=[P1A,P2A,P2A],因此对式 [ i ⃗ B j ⃗ B k ⃗ B ] = [ Q B A ] T [ i ⃗ A j ⃗ A k ⃗ A ] \left[ \begin{array}{c} \vec{i}^B\\ \vec{j}^B\\ \vec{k}^B\\ \end{array} \right] =\left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}}\left[ \begin{array}{c} \vec{i}^A\\ \vec{j}^A\\ \vec{k}^A\\ \end{array} \right] i Bj Bk B =[QBA]T i Aj Ak A 有:
[ i ⃗ B j ⃗ B k ⃗ B ] T [ P 1 B P 2 B P 3 B ] = [ i ⃗ A j ⃗ A k ⃗ A ] T [ P 1 A P 2 A P 3 A ] ⇒ ( [ Q B A ] T [ i ⃗ A j ⃗ A k ⃗ A ] ) T [ P 1 B P 2 B P 3 B ] = [ i ⃗ A j ⃗ A k ⃗ A ] T [ P 1 A P 2 A P 3 A ] ⇒ [ i ⃗ A j ⃗ A k ⃗ A ] T [ Q B A ] [ P 1 B P 2 B P 3 B ] = [ i ⃗ A j ⃗ A k ⃗ A ] T [ P 1 A P 2 A P 3 A ] ⇒ [ Q B A ] [ P 1 B P 2 B P 3 B ] = [ P 1 A P 2 A P 3 A ] = [ P ′ 1 B P ′ 2 B P ′ 3 B ] \begin{split} &\left[ \begin{array}{c} \vec{i}^B\\ \vec{j}^B\\ \vec{k}^B\\ \end{array} \right] ^{\mathrm{T}}\left[ \begin{array}{c} P_{1}^{\mathrm{B}}\\ P_{2}^{\mathrm{B}}\\ P_{3}^{\mathrm{B}}\\ \end{array} \right] =\left[ \begin{array}{c} \vec{i}^A\\ \vec{j}^A\\ \vec{k}^A\\ \end{array} \right] ^{\mathrm{T}}\left[ \begin{array}{c} P_{1}^{A}\\ P_{2}^{A}\\ P_{3}^{A}\\ \end{array} \right] \\ &\Rightarrow \left( \left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}}\left[ \begin{array}{c} \vec{i}^A\\ \vec{j}^A\\ \vec{k}^A\\ \end{array} \right] \right) ^{\mathrm{T}}\left[ \begin{array}{c} P_{1}^{\mathrm{B}}\\ P_{2}^{\mathrm{B}}\\ P_{3}^{\mathrm{B}}\\ \end{array} \right] =\left[ \begin{array}{c} \vec{i}^A\\ \vec{j}^A\\ \vec{k}^A\\ \end{array} \right] ^{\mathrm{T}}\left[ \begin{array}{c} P_{1}^{A}\\ P_{2}^{A}\\ P_{3}^{A}\\ \end{array} \right] \\ &\Rightarrow \left[ \begin{array}{c} \vec{i}^A\\ \vec{j}^A\\ \vec{k}^A\\ \end{array} \right] ^{\mathrm{T}}\left[ Q_{\mathrm{B}}^{A} \right] \left[ \begin{array}{c} P_{1}^{\mathrm{B}}\\ P_{2}^{\mathrm{B}}\\ P_{3}^{\mathrm{B}}\\ \end{array} \right] =\left[ \begin{array}{c} \vec{i}^A\\ \vec{j}^A\\ \vec{k}^A\\ \end{array} \right] ^{\mathrm{T}}\left[ \begin{array}{c} P_{1}^{A}\\ P_{2}^{A}\\ P_{3}^{A}\\ \end{array} \right] \\ &\Rightarrow \left[ Q_{\mathrm{B}}^{A} \right] \left[ \begin{array}{c} P_{1}^{\mathrm{B}}\\ P_{2}^{\mathrm{B}}\\ P_{3}^{\mathrm{B}}\\ \end{array} \right] =\left[ \begin{array}{c} P_{1}^{A}\\ P_{2}^{A}\\ P_{3}^{A}\\ \end{array} \right] =\left[ \begin{array}{c} {P^{\prime}}_{1}^{\mathrm{B}}\\ {P^{\prime}}_{2}^{\mathrm{B}}\\ {P^{\prime}}_{3}^{\mathrm{B}}\\ \end{array} \right] \end{split} i Bj Bk B T P1BP2BP3B = i Aj Ak A T P1AP2AP3A [QBA]T i Aj Ak A T P1BP2BP3B = i Aj Ak A T P1AP2AP3A i Aj Ak A T[QBA] P1BP2BP3B = i Aj Ak A T P1AP2AP3A [QBA] P1BP2BP3B = P1AP2AP3A = P1BP2BP3B
上式写明:坐标系 { B } \left\{ B \right\} {B}中,点 P P P与点 P ′ P^{\prime} P之间的旋转关系。此时 P ′ P^{\prime} P为运动刚体上的固定点,对点 P P P在坐标系 { B } \left\{ B \right\} {B}下的投影参数进行 [ Q B A ] T \left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}} [QBA]T旋转变化所得到的点 P ′ P^{\prime} P在坐标系 { B } \left\{ B \right\} {B}下的投影参数。同时,对于 P P P P ′ P^{\prime} P而言,其在某坐标系下表达的旋转关系是一致的,因此对于: [ Q B A ] [ P 1 A P 2 A P 3 A ] = [ P ′ 1 A P ′ 2 A P ′ 3 A ] \left[ Q_{\mathrm{B}}^{A} \right] \left[ \begin{array}{c} P_{1}^{A}\\ P_{2}^{A}\\ P_{3}^{A}\\ \end{array} \right] =\left[ \begin{array}{c} {P^{\prime}}_{1}^{A}\\ {P^{\prime}}_{2}^{A}\\ {P^{\prime}}_{3}^{A}\\ \end{array} \right] [QBA] P1AP2AP3A = P1AP2AP3A 同样成立。

同理,利用几何关系对图进行分析,进而求得罗德里格旋转公式Rodrigues’ Rotation Formula
R ⃗ p ′ F = R ⃗ p F + ( v ⃗ F × R ⃗ p ′ F ) sin ⁡ θ + 2 [ v ⃗ F × ( v ⃗ F × R ⃗ p ′ F ) ] sin ⁡ 2 θ 2 = R ⃗ p F + v ⃗ ~ F R ⃗ p ′ F sin ⁡ θ + 2 ( v ⃗ ~ F ) 2 R ⃗ p ′ F sin ⁡ 2 θ 2 ⇒ R ⃗ p ′ F = [ E + v ⃗ ~ F sin ⁡ θ + 2 ( v ⃗ ~ F ) 2 sin ⁡ θ 2 ] R ⃗ p F = [ Q B A ] R ⃗ p F \begin{split} &\vec{R}_{\mathrm{p}^{\prime}}^{F}=\vec{R}_{\mathrm{p}}^{F}+\left( \vec{v}^F\times \vec{R}_{\mathrm{p}^{\prime}}^{F} \right) \sin \theta +2\left[ \vec{v}^F\times \left( \vec{v}^F\times \vec{R}_{\mathrm{p}^{\prime}}^{F} \right) \right] \sin ^2\frac{\theta}{2}=\vec{R}_{\mathrm{p}}^{F}+\tilde{\vec{v}}^F\vec{R}_{\mathrm{p}^{\prime}}^{F}\sin \theta +2\left( \tilde{\vec{v}}^F \right) ^2\vec{R}_{\mathrm{p}^{\prime}}^{F}\sin ^2\frac{\theta}{2} \\ &\Rightarrow \vec{R}_{\mathrm{p}^{\prime}}^{F}=\left[ E+\tilde{\vec{v}}^F\sin \theta +2\left( \tilde{\vec{v}}^F \right) ^2\sin \frac{\theta}{2} \right] \vec{R}_{\mathrm{p}}^{F}=\left[ Q_{\mathrm{B}}^{A} \right] \vec{R}_{\mathrm{p}}^{F} \end{split} R pF=R pF+(v F×R pF)sinθ+2[v F×(v F×R pF)]sin22θ=R pF+v ~FR pFsinθ+2(v ~F)2R pFsin22θR pF=[E+v ~Fsinθ+2(v ~F)2sin2θ]R pF=[QBA]R pF

而上式给出了:坐标系 { A } \left\{ A \right\} {A}中,点 P P P与点 P ′ P^{\prime} P之间的转换关系。此时 P P P为运动刚体上的固定点,对点 P P P在坐标系 { A } \left\{ A \right\} {A}下的投影参数进行 [ Q B A ] \left[ Q_{\mathrm{B}}^{A} \right] [QBA]旋转变化,所得到的点 P ′ P^{\prime} P在坐标系 { A } \left\{ A \right\} {A}下的投影参数。

可见,对于旋转矩阵 [ Q B A ] \left[ Q_{\mathrm{B}}^{A} \right] [QBA]有三种含义:

  • 原矢量进行旋转变换,得到该坐标系下新矢量的坐标投影参数: R ⃗ p ′ F = [ Q B A ] R ⃗ p F \vec{R}_{\mathrm{p}^{\prime}}^{F}=\left[ Q_{\mathrm{B}}^{A} \right] \vec{R}_{\mathrm{p}}^{F} R pF=[QBA]R pF
  • 坐标系进行转换,基于坐标系 { B } \left\{ B \right\} {B}中的该矢量的坐标投影参数 R ⃗ p B \vec{R}_{\mathrm{p}}^{B} R pB,得到该矢量在坐标系 { A } \left\{ A \right\} {A}中的坐标投影参数 R ⃗ p A \vec{R}_{\mathrm{p}}^{A} R pA R ⃗ p A = [ Q B A ] R ⃗ p B \vec{R}_{\mathrm{p}}^{A}=\left[ Q_{\mathrm{B}}^{A} \right] \vec{R}_{\mathrm{p}}^{B} R pA=[QBA]R pB
  • 坐标系 { A } \left\{ A \right\} {A}中的基矢量在坐标系 { B } \left\{ B \right\} {B}中的表达: [ i ⃗ B j ⃗ B k ⃗ B ] = [ Q B A ] T [ i ⃗ A j ⃗ A k ⃗ A ] \left[ \begin{array}{c} \vec{i}^B\\ \vec{j}^B\\ \vec{k}^B\\ \end{array} \right] =\left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}}\left[ \begin{array}{c} \vec{i}^A\\ \vec{j}^A\\ \vec{k}^A\\ \end{array} \right] i Bj Bk B =[QBA]T i Aj Ak A

对罗德里格旋转公式进一步进行变换,将其改写为 [ Q B A ] = E + v ⃗ ~ F sin ⁡ θ + 2 ( v ⃗ ~ F ) 2 ( 1 − cos ⁡ θ ) \left[ Q_{\mathrm{B}}^{A} \right] =E+\tilde{\vec{v}}^F\sin \theta +2\left( \tilde{\vec{v}}^F \right) ^2\left( 1-\cos \theta \right) [QBA]=E+v ~Fsinθ+2(v ~F)2(1cosθ),进而利用泰勒展开式,将旋转矩阵 [ Q B A ] \left[ Q_{\mathrm{B}}^{A} \right] [QBA]进一步改写:
[ Q B A ] = E + θ v ⃗ ~ F + ( θ ) 2 2 ! ( v ⃗ ~ ) 2 + ( θ ) 3 3 ! ( v ⃗ ~ ) 3 + ⋯ + ( θ ) n n ! ( v ⃗ ~ ) n = e θ v ⃗ ~ \left[ Q_{\mathrm{B}}^{A} \right] =E+\theta \tilde{\vec{v}}^F+\frac{\left( \theta \right) ^2}{2!}\left( \tilde{\vec{v}} \right) ^2+\frac{\left( \theta \right) ^3}{3!}\left( \tilde{\vec{v}} \right) ^3+\cdots +\frac{\left( \theta \right) ^n}{n!}\left( \tilde{\vec{v}} \right) ^n=e^{\theta \tilde{\vec{v}}} [QBA]=E+θv ~F+2!(θ)2(v ~)2+3!(θ)3(v ~)3++n!(θ)n(v ~)n=eθv ~
可将轴角变换的转换矩阵写成指数形式

  • 综合上述推导,可得到轴角变换的旋转矩阵 [ Q B A ] \left[ Q_{\mathrm{B}}^{A} \right] [QBA]为:
    [ Q B A ] = [ ( v 1 A ) 2 ( 1 − cos ⁡ θ ) + cos ⁡ θ v 1 A v 2 A ( 1 − cos ⁡ θ ) − v 3 A sin ⁡ θ v 1 A v 3 A ( 1 − cos ⁡ θ ) + v 2 A sin ⁡ θ v 1 A v 2 A ( 1 − cos ⁡ θ ) + v 3 A sin ⁡ θ ( v 2 A ) 2 ( 1 − cos ⁡ θ ) + cos ⁡ θ v 2 A v 3 A ( 1 − cos ⁡ θ ) − v 1 A sin ⁡ θ v 1 A v 3 A ( 1 − cos ⁡ θ ) − v 2 A sin ⁡ θ v 2 A v 3 A ( 1 − cos ⁡ θ ) + v 1 A sin ⁡ θ ( v 3 A ) 2 ( 1 − cos ⁡ θ ) + cos ⁡ θ ] \left[ Q_{\mathrm{B}}^{A} \right] =\left[ \begin{matrix} \left( v_{1}^{A} \right) ^2\left( 1-\cos \theta \right) +\cos \theta& v_{1}^{A}v_{2}^{A}\left( 1-\cos \theta \right) -v_{3}^{A}\sin \theta& v_{1}^{A}v_{3}^{A}\left( 1-\cos \theta \right) +v_{2}^{A}\sin \theta\\ v_{1}^{A}v_{2}^{A}\left( 1-\cos \theta \right) +v_{3}^{A}\sin \theta& \left( v_{2}^{A} \right) ^2\left( 1-\cos \theta \right) +\cos \theta& v_{2}^{A}v_{3}^{A}\left( 1-\cos \theta \right) -v_{1}^{A}\sin \theta\\ v_{1}^{A}v_{3}^{A}\left( 1-\cos \theta \right) -v_{2}^{A}\sin \theta& v_{2}^{A}v_{3}^{A}\left( 1-\cos \theta \right) +v_{1}^{A}\sin \theta& \left( v_{3}^{A} \right) ^2\left( 1-\cos \theta \right) +\cos \theta\\ \end{matrix} \right] [QBA]= (v1A)2(1cosθ)+cosθv1Av2A(1cosθ)+v3Asinθv1Av3A(1cosθ)v2Asinθv1Av2A(1cosθ)v3Asinθ(v2A)2(1cosθ)+cosθv2Av3A(1cosθ)+v1Asinθv1Av3A(1cosθ)+v2Asinθv2Av3A(1cosθ)v1Asinθ(v3A)2(1cosθ)+cosθ

  • 同理对于任意一已知旋转矩阵 [ Q B A ] = [ q 11 q 12 q 13 q 21 q 22 q 23 q 31 q 32 q 33 ] \left[ Q_{\mathrm{B}}^{A} \right] =\left[ \begin{matrix} q_{11}& q_{12}& q_{13}\\ q_{21}& q_{22}& q_{23}\\ q_{31}& q_{32}& q_{33}\\ \end{matrix} \right] [QBA]= q11q21q31q12q22q32q13q23q33 ,可计算出其轴角参数:
    θ = a r c cos ⁡ ( q 11 + q 22 + q 33 − 1 2 ) v ⃗ F = 1 2 sin ⁡ θ [ q 32 − q 23 q 13 − q 31 q 21 − q 12 ] \begin{split} \theta &=\mathrm{arc}\cos \left( \frac{q_{11}+q_{22}+q_{33}-1}{2} \right) \\ \vec{v}^F&=\frac{1}{2\sin \theta}\left[ \begin{array}{c} q_{32}-q_{23}\\ q_{13}-q_{31}\\ q_{21}-q_{12}\\ \end{array} \right] \end{split} θv F=arccos(2q11+q22+q331)=2sinθ1 q32q23q13q31q21q12

3.2 罗德里格变换Rodrigues’ Transform

结合上节所述内容,定义罗德里格参数Rodriguez Paremeters为:
γ ⃗ F = v ⃗ F tan ⁡ θ 2 = [ v 1 F v 2 F v 3 F ] tan ⁡ θ 2 = [ γ 1 F γ 2 F γ 3 F ] \vec{\gamma}^F=\vec{v}^F\tan \frac{\theta}{2}=\left[ \begin{array}{c} v_{1}^{F}\\ v_{2}^{F}\\ v_{3}^{F}\\ \end{array} \right] \tan \frac{\theta}{2}=\left[ \begin{array}{c} \gamma _{1}^{F}\\ \gamma _{2}^{F}\\ \gamma _{3}^{F}\\ \end{array} \right] γ F=v Ftan2θ= v1Fv2Fv3F tan2θ= γ1Fγ2Fγ3F

进而将罗德里格旋转公式改写为:
[ Q M F ] = E + 2 1 + ( γ ) 2 ( γ ⃗ ~ F + ( γ ⃗ ~ F ) 2 ) , γ = ( γ ⃗ ~ F ) T γ ⃗ ~ F = tan ⁡ 2 θ 2 \left[ Q_{\mathrm{M}}^{F} \right] =E+\frac{2}{1+\left( \gamma \right) ^2}\left( \tilde{\vec{\gamma}}^F+\left( \tilde{\vec{\gamma}}^F \right) ^2 \right) ,\gamma =\left( \tilde{\vec{\gamma}}^F \right) ^{\mathrm{T}}\tilde{\vec{\gamma}}^F=\tan ^2\frac{\theta}{2} [QMF]=E+1+(γ)22(γ ~F+(γ ~F)2),γ=(γ ~F)Tγ ~F=tan22θ

而罗德里格变换的旋转矩阵 [ Q B A ] \left[ Q_{\mathrm{B}}^{A} \right] [QBA]为:
[ Q B A ] = [ 1 + ( γ 1 F ) 2 − ( γ 2 F ) 2 − ( γ 3 F ) 2 2 ( γ 1 F γ 2 F − γ 3 F ) 2 ( γ 1 F γ 3 F + γ 2 F ) 2 ( γ 1 F γ 2 F + γ 3 F ) 1 − ( γ 1 F ) 2 + ( γ 2 F ) 2 − ( γ 3 F ) 2 2 ( γ 2 F γ 3 F − γ 1 F ) 2 ( γ 1 F γ 3 F − γ 2 F ) 2 ( γ 2 F γ 3 F + γ 1 F ) 1 − ( γ 1 F ) 2 − ( γ 2 F ) 2 + ( γ 3 F ) 2 ] \left[ Q_{\mathrm{B}}^{A} \right] =\left[ \begin{matrix} 1+\left( \gamma _{1}^{F} \right) ^2-\left( \gamma _{2}^{F} \right) ^2-\left( \gamma _{3}^{F} \right) ^2& 2\left( \gamma _{1}^{F}\gamma _{2}^{F}-\gamma _{3}^{F} \right)& 2\left( \gamma _{1}^{F}\gamma _{3}^{F}+\gamma _{2}^{F} \right)\\ 2\left( \gamma _{1}^{F}\gamma _{2}^{F}+\gamma _{3}^{F} \right)& 1-\left( \gamma _{1}^{F} \right) ^2+\left( \gamma _{2}^{F} \right) ^2-\left( \gamma _{3}^{F} \right) ^2& 2\left( \gamma _{2}^{F}\gamma _{3}^{F}-\gamma _{1}^{F} \right)\\ 2\left( \gamma _{1}^{F}\gamma _{3}^{F}-\gamma _{2}^{F} \right)& 2\left( \gamma _{2}^{F}\gamma _{3}^{F}+\gamma _{1}^{F} \right)& 1-\left( \gamma _{1}^{F} \right) ^2-\left( \gamma _{2}^{F} \right) ^2+\left( \gamma _{3}^{F} \right) ^2\\ \end{matrix} \right] [QBA]= 1+(γ1F)2(γ2F)2(γ3F)22(γ1Fγ2F+γ3F)2(γ1Fγ3Fγ2F)2(γ1Fγ2Fγ3F)1(γ1F)2+(γ2F)2(γ3F)22(γ2Fγ3F+γ1F)2(γ1Fγ3F+γ2F)2(γ2Fγ3Fγ1F)1(γ1F)2(γ2F)2+(γ3F)2

  • 罗德里格参数与欧拉参数的转换
    [ γ 1 F γ 2 F γ 3 F ] = [ q 2 q 1 q 3 q 1 q 4 q 1 ] \left[ \begin{array}{c} {\gamma _1}^F\\ {\gamma _2}^F\\ {\gamma _3}^F\\ \end{array} \right] =\left[ \begin{array}{c} \frac{q_2}{q_1}\\ \frac{q_3}{q_1}\\ \frac{q_4}{q_1}\\ \end{array} \right] γ1Fγ2Fγ3F = q1q2q1q3q1q4

[ q 1 q 2 q 3 q 4 ] = [ 1 1 + γ 2 γ 1 F 1 + γ 2 γ 2 F 1 + γ 2 γ 3 F 1 + γ 2 ] \left[ \begin{array}{c} q_1\\ q_2\\ q_3\\ q_4\\ \end{array} \right] =\left[ \begin{array}{c} \frac{1}{\sqrt{1+\gamma ^2}}\\ \frac{{\gamma _1}^F}{\sqrt{1+\gamma ^2}}\\ \frac{{\gamma _2}^F}{\sqrt{1+\gamma ^2}}\\ \frac{{\gamma _3}^F}{\sqrt{1+\gamma ^2}}\\ \end{array} \right] q1q2q3q4 = 1+γ2 11+γ2 γ1F1+γ2 γ2F1+γ2 γ3F

3.3 方向余弦变换

由上节可知,转换矩阵 [ Q B A ] \left[ Q_{\mathrm{B}}^{A} \right] [QBA]表示坐标系 { B } \left\{ B \right\} {B}中的基矢量在坐标系 { A } \left\{ A \right\} {A}中的表达,即:
[ i ⃗ B j ⃗ B k ⃗ B ] = [ Q B A ] T [ i ⃗ A j ⃗ A k ⃗ A ] = [ q 11 q 12 q 13 q 21 q 22 q 23 q 31 q 32 q 33 ] T [ i ⃗ A j ⃗ A k ⃗ A ] \left[ \begin{array}{c} \vec{i}^B\\ \vec{j}^B\\ \vec{k}^B\\ \end{array} \right] =\left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}}\left[ \begin{array}{c} \vec{i}^A\\ \vec{j}^A\\ \vec{k}^A\\ \end{array} \right] =\left[ \begin{matrix} q_{11}& q_{12}& q_{13}\\ q_{21}& q_{22}& q_{23}\\ q_{31}& q_{32}& q_{33}\\ \end{matrix} \right] ^{\mathrm{T}}\left[ \begin{array}{c} \vec{i}^A\\ \vec{j}^A\\ \vec{k}^A\\ \end{array} \right] i Bj Bk B =[QBA]T i Aj Ak A = q11q21q31q12q22q32q13q23q33 T i Aj Ak A

进而将转换矩阵内的元素展开:
[ Q B A ] T = [ i ⃗ A ⋅ i ⃗ B j ⃗ A ⋅ i ⃗ B k ⃗ A ⋅ i ⃗ B i ⃗ A ⋅ j ⃗ B j ⃗ A ⋅ j ⃗ B k ⃗ A ⋅ j ⃗ B i ⃗ A ⋅ k ⃗ B j ⃗ A ⋅ k ⃗ B k ⃗ A ⋅ k ⃗ B ] \left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}}=\left[ \begin{matrix} \vec{i}^A\cdot \vec{i}^B& \vec{j}^A\cdot \vec{i}^B& \vec{k}^A\cdot \vec{i}^B\\ \vec{i}^A\cdot \vec{j}^B& \vec{j}^A\cdot \vec{j}^B& \vec{k}^A\cdot \vec{j}^B\\ \vec{i}^A\cdot \vec{k}^B& \vec{j}^A\cdot \vec{k}^B& \vec{k}^A\cdot \vec{k}^B\\ \end{matrix} \right] [QBA]T= i Ai Bi Aj Bi Ak Bj Ai Bj Aj Bj Ak Bk Ai Bk Aj Bk Ak B
进一步观察,可以将该矩阵转化为:
[ Q B A ] T = [ i ⃗ A ⋅ i ⃗ B j ⃗ A ⋅ i ⃗ B k ⃗ A ⋅ i ⃗ B i ⃗ A ⋅ j ⃗ B j ⃗ A ⋅ j ⃗ B k ⃗ A ⋅ j ⃗ B i ⃗ A ⋅ k ⃗ B j ⃗ A ⋅ k ⃗ B k ⃗ A ⋅ k ⃗ B ] = [ Q B i A Q B j A Q B k A ] = [ Q A i B Q A j B Q A k B ] \left[ Q_{\mathrm{B}}^{A} \right] ^{\mathrm{T}}=\left[ \begin{matrix} \vec{i}^A\cdot \vec{i}^B& \vec{j}^A\cdot \vec{i}^B& \vec{k}^A\cdot \vec{i}^B\\ \vec{i}^A\cdot \vec{j}^B& \vec{j}^A\cdot \vec{j}^B& \vec{k}^A\cdot \vec{j}^B\\ \vec{i}^A\cdot \vec{k}^B& \vec{j}^A\cdot \vec{k}^B& \vec{k}^A\cdot \vec{k}^B\\ \end{matrix} \right] =\left[ \begin{matrix} Q_{\mathrm{Bi}}^{A}& Q_{\mathrm{Bj}}^{A}& Q_{\mathrm{Bk}}^{A}\\ \end{matrix} \right] =\left[ \begin{array}{c} Q_{\mathrm{Ai}}^{B}\\ Q_{\mathrm{Aj}}^{B}\\ Q_{\mathrm{Ak}}^{B}\\ \end{array} \right] [QBA]T= i Ai Bi Aj Bi Ak Bj Ai Bj Aj Bj Ak Bk Ai Bk Aj Bk Ak B =[QBiAQBjAQBkA]= QAiBQAjBQAkB
其中, [ Q B i A Q B j A Q B k A ] \left[ \begin{matrix} Q_{\mathrm{Bi}}^{A}& Q_{\mathrm{Bj}}^{A}& Q_{\mathrm{Bk}}^{A}\\ \end{matrix} \right] [QBiAQBjAQBkA]中,每一项表示坐标系 { B } \left\{ B \right\} {B}中的基矢量在坐标系 { A } \left\{ A \right\} {A}下的表达,而 [ Q A i B Q A j B Q A k B ] . \left[ \begin{array}{c} Q_{\mathrm{Ai}}^{B}\\ Q_{\mathrm{Aj}}^{B}\\ Q_{\mathrm{Ak}}^{B}\\ \end{array} \right] . QAiBQAjBQAkB .中,每一项表示坐标系 { A } \left\{ A \right\} {A}中的基矢量在坐标系 { B } \left\{ B \right\} {B}下的表达。因此该形式的矩阵被称为方向余弦矩阵Direction Cosine Matrix

1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/612608.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pyqt treeWidget树生成

生成treeWidget树与获取treeWidget树节点的数据 # encodingUTF-8 import sys from PyQt5.QtCore import Qt from PyQt5.QtWidgets import QApplication, QTreeWidgetItem, QLineEdit, QSpinBox, QComboBox from PyQt5.QtWidgets import QWidget from release_test import Ui_F…

SIP-2401VP SIP音频广播模块SIP-2401VP SIP号角音柱音箱解码poe广播播放核心板

SV-2401VP和SV-2403VP网络音频模块是一款通用的独立SIP音频功能模块,可以轻松地嵌入到OEM产品中。该模块对来自网络的SIP协议及RTP音频流进行编解码。 该模块支持多种网络协议和音频编解码协议,可用于VoIP和IP寻呼以及高质量音乐流媒体播放等应用。同时…

pythroch abaconda 安装 cuda、版本确定、pytorch 安装

一、简述 公司有一个深度学习的项目,身上也没有其他项目,恰好乘着个机会学一下pytorch 和YOLOv8. 1、下载abaconda https://repo.anaconda.com/archive/ 2、安装 环境变量要✔ 其他一直下一步 3、测试 (base) C:\Users\alber>conda -V cond…

leaflet学习笔记-带有方位角信息的圆的绘制(七)

前言 项目中有一个需求,就是需要绘制一个圆,并且绘制的时候还要设置方位角,最后返回圆的坐标集合和方位角。本功能使用Leaflet-GeomanTurf.jsleaflet实现。 方位角简介 在陆地导航中,方位角通常表示为 alpha、α,并定…

Java获取时间,自动给创建时间创建人等赋值

ApiOperation("添加")PostMapping()public ApiResult<?> save(RequestBody FeePropertyRoomArea feePropertyRoomArea) {User usergetLoginUser();LocalDateTime localDateTime LocalDateTime.now();feePropertyRoomArea.setCreateTime(localDateTime);feePr…

关于PhpStorm的安装激活与汉化

访问官网下载PhpStorm https://www.jetbrains.com/phpstorm/download/#sectionwindows 点击download 下载好后&#xff0c;双击exe安装程序 点击下一步 选择安装位置 前两个肯定需要勾选&#xff1a; 创建桌面快捷方式&#xff1b;创建关联php&#xff1b; 根据以往经验&am…

【OpenCV学习笔记07】- 【彩蛋】实现轨迹条控制画笔颜色和笔刷半径,并可以正常绘画

彩蛋 实现轨迹条控制画笔颜色和笔刷半径&#xff0c;并可以正常绘画。 直接上彩蛋代码 示例代码&#xff1a; # 彩蛋&#xff0c;创建一个可以调节颜色和笔刷半径的轨迹栏&#xff0c;并且可以通过鼠标进行绘画 import numpy as np import cv2 as cv# 定义全局变量 # 如果 …

React07-路由管理器react-router-dom(v6)

react-router 是一个流行的用于 React 应用程序路由的库。它使我们能够轻松定义应用程序的路由&#xff0c;并将它们映射到特定的组件&#xff0c;这样可以很容易地创建复杂的单页面应用&#xff0c;并管理应用程序的不同视图。 react-router 是基于 React 构建的&#xff0c;…

大模型PEFT技术原理(一):BitFit、Prefix Tuning、Prompt Tuning

随着预训练模型的参数越来越大&#xff0c;尤其是175B参数大小的GPT3发布以来&#xff0c;让很多中小公司和个人研究员对于大模型的全量微调望而却步&#xff0c;近年来研究者们提出了各种各样的参数高效迁移学习方法&#xff08;Parameter-efficient Transfer Learning&#x…

【开源】基于JAVA的婚恋交友网站

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 会员管理模块2.3 新闻管理模块2.4 相亲大会管理模块2.5 留言管理模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 会员信息表3.2.2 新闻表3.2.3 相亲大会表3.2.4 留言表 四、系统展示五、核心代码5.…

lvs+keepalived+nginx双主模式双主热备实现负载均衡

目录 一、原理 二、真实服务器nginx配置 三、lvs的keepalived配置 3.1 配置文件 3.2 开启keepalived服务 四、测试 4.1 测试访问VIP 4.2 模拟lvs01宕机 主机名IPnginx0111.0.1.31nginx0111.0.1.31lvs0111.0.1.33lvs0211.0.1.34VIP111.0.1.29VIP211.0.1.30 一、原理 lvskeepal…

OpenAI推出GPT商店和ChatGPT Team服务

&#x1f989; AI新闻 &#x1f680; OpenAI推出GPT商店和ChatGPT Team服务 摘要&#xff1a;OpenAI正式推出了其GPT商店和ChatGPT Team服务。用户已经创建了超过300万个ChatGPT自定义版本&#xff0c;并分享给其他人使用。GPT商店集结了用户为各种任务创建的定制化ChatGPT&a…

windows10 装docker和docker compose

一.windows环境准备 开启过程中的问题&#xff0c;进入bios修复 二.docker下载安装 1.下载 Docker Desktop: The #1 Containerization Tool for Developers | Docker 下载最新版有问题&#xff0c;下载老版本试试 Docker Desktop release notes | Docker Docs 2.安装 三.do…

系统存储架构升级分享

一、业务背景 系统业务功能&#xff1a;系统内部进行数据处理及整合, 对外部系统提供结果数据的初始化(写)及查询数据结果服务。 系统网络架构: • 部署架构对切量上线的影响 - 内部管理系统上线对其他系统的读业务无影响 •分布式缓存可进行单独扩容, 与存储及查询功能升级…

出版实务 | 出版物的成本及其构成

文章目录 出版物成本的总体构成直接成本开发成本制作成本 间接成本期间费用 本量利分析原则特点和作用变动成本项目固定成本项目本量利分析的基本公式及其应用定价发行折扣率销售数量单位销售收入销售收入总额单位销售税金销售税金总额变动成本总额单位变动成本固定成本总额单位…

CMake入门教程【高级篇】CPack打包项目Linux的deb和windows的msi

😈「CSDN主页」:传送门 😈「Bilibil首页」:传送门 😈「动动你的小手」:点赞👍收藏⭐️评论📝 文章目录 1. 什么是CPack?2. 如何使用CPack?2.1 在CMakeLists.txt中包含CPack模块2.2 设置CPack变量2.3 创建分发包3.CPack命

转专业(UPC练习)

题目描述 根据教育部的规定&#xff0c;大学生进校后符合条件的可申请转专业。在校本科生在完成大学一年级课程&#xff0c;进入二年级之前&#xff0c;符合以下条件之一者&#xff0c;可以申请转专业&#xff1a;&#xff08;1&#xff09;在某一学科方面确有特长的学生&#…

谁将掌控工业界的命脉?揭秘工业互联网巨头的秘密角逐!

大数据产业创新服务媒体 ——聚焦数据 改变商业 在这个快速发展的数字化时代&#xff0c;一个新兴的巨兽——工业互联网&#xff0c;正以惊人的速度崛起&#xff0c;它不仅预示着生产力的飞跃性进步&#xff0c;更是引领着整个工业世界走向一个前所未有的新时代。 然而&#x…

微信小程序中路由跳转的方式有哪些?区别?

面试官&#xff1a;说说微信小程序中路由跳转的方式有哪些&#xff1f;区别&#xff1f; 一、是什么 微信小程序拥有web网页和Application共同的特征&#xff0c;我们的页面都不是孤立存在的&#xff0c;而是通过和其他页面进行交互&#xff0c;来共同完成系统的功能 在微信小…

【FPGA/verilog -入门学习17】vivado 实现串口自发自收程序

1&#xff0c;需求 PC使用串口助手给FPGA板发送9600 波特率的数据&#xff0c;FPGA板接收到数据后&#xff0c;回复同样的数据给PC 2&#xff0c;需求分析 按模块可以划分为&#xff1a; rx接收模块&#xff0c;将输入的8位并行rx 数据转换成[7:0]rx_data 信号&#xff0c;当…