前面的推文 https://blog.csdn.net/2301_78660208/article/details/139247482?spm=1001.2014.3001.5501 我们是将位置和姿态分开讨论了几种不同的表达方式,但是在机器人的空间位置和姿态往往是合并在一起进行表达的。刚体的位置和姿态简称为位姿。上述我们讨论了几种姿态的表示方法,我们需要将他们与平移交换相结合,创造出一个完整的相对位姿表示方法。两种最实用的表示方法为:四元数向量对和4*4齐次变换矩阵。
四元数向量对
对于向量-四元数的情况,有KaTeX parse error: Got function '\left' with no arguments as argument to '\~' at position 8: \xi ~\~\̲l̲e̲f̲t̲( {t,\mathop q\…,其中$\mathop q\limits^ \circ \in Q $是坐标原点相对于参考坐标系的笛卡尔位置, 是坐标系相对于参考坐标系的姿态。加法定义如下:
ξ
1
⊕
ξ
2
=
(
t
1
+
q
∘
1
t
2
,
q
∘
1
⊕
q
∘
2
)
{\xi _1} \oplus {\xi _2} = \left( {{t_1} + {{\mathop q\limits^ \circ }_1}{t_2},{{\mathop q\limits^ \circ }_1} \oplus {{\mathop q\limits^ \circ }_2}} \right)
ξ1⊕ξ2=(t1+q∘1t2,q∘1⊕q∘2)
一个点坐标向量通过下式在坐标系之间变换:
X p = X ξ Y Y p = q ∘ Y p + t {}^Xp{ = ^X}{\xi _Y}{^Y}p = \mathop q\limits^ \circ {^Y}p + t Xp=XξYYp=q∘Yp+t
齐次变换矩阵
综上所述,通过对空间刚体的位置和姿态的描述。则相对于参考坐标系{A},坐标系{B}的原点位置和坐标轴的方位可以由位置矢量和旋转矩阵描述。空间任意刚体B在参考坐标系{A}中的位姿利用坐标系{B}描述为:
值得注意的是:
- 坐标系之间的变换是按照**“右乘联体左乘基”**;
- 纯平移变换与变换次序无关,旋转变换和复合变换与变换次序有关,复合变换与变换次序有关。
-
平移坐标变换时,坐标系{B}与坐标系{A}的各个坐标轴平行,但坐标系的原点不相同。点p在坐标系{B}与坐标系{A}的位置矢量之间的变换,称为平移坐标变换。点p在坐标系{A}中的位置是 A p ^Ap Ap,可由点p在坐标系{B}中位置矢量 B p ^Bp Bp与坐标系{B}中的原点在坐标系{A}中位置矢量 A p B ^A{p_B} ApB相加获得。
-
旋转坐标变换时,坐标系{B}与坐标系{A}的原点相同,但两个坐标系的各自坐标轴方向不同。点p在坐标系{B}与坐标系{A}的位置矢量之间的变换,称作旋转坐标变换。点p在坐标系{A}的位置矢量 A p ^Ap Ap,可由点p在坐标系{B}中的位置矢量 B p ^Bp Bp与坐标系{B}在坐标系{A}中姿态矩阵 A R B ^A{R_B} ARB相乘获得。
-
复合坐标变换是由平移和旋转构成的。坐标系{A}经过平移后成为坐标系{C},坐标系{C}经过旋转后成为坐标系{B},坐标系{B}与坐标系{A}之间构成复合变换。由上表可知,点p在坐标系{A}中的位置矢量 A p ^Ap Ap,可由点p在坐标系{B}中的位置矢量 B p ^Bp Bp与坐标系{B}的原点在坐标系{A}中的位置矢量 A R B ^A{R_B} ARB相加获得。
-
连体坐标系变换是指在多个坐标系{A}{B}{C}下,假设坐标系{A}为参考坐标系,则{B}相对{A}的变换以及{C}相对{B}的变换称作联体坐标变换。 T 1 {T_1} T1为{B}在{A}中的表示, T 2 {T_2} T2为{C}在{B}中的表示,刚体在{C}中表示为 T 3 {T_3} T3,刚体在{A}中表示为T。
将位姿矢量使用齐次坐标表示,可写为:
通用旋转变换是姿态表示的一种方法,它是将姿态表示为f和𝜃, f是一个单位矢量,𝜃是绕f的旋转角度。刚体的任何姿态均可以利用一个单位矢量f和绕f的旋转角𝜃表示,𝜃的范围为[0,𝜋]。设坐标系{B}在基坐标系{A}下的描述为 ,设f为坐标系{B}的Z轴的单位矢量,根据上式,显然,绕矢量f旋转等价于绕坐标系{B}的Z轴旋转。MATLAB中的机器人工具箱中的运用:
>> T=transl(1,0,0)*trotx(90)*transl(0,1,0)
T =
1 0 0 1
0 0 -1 0
0 1 0 1
0 0 0 1
MATLAB中工具箱中位姿的各种具体描述法总结和各旋转描述法之间的转换。