一、前言
在之前的博文坐标旋转中,简单介绍了平面坐标系以及三维坐标系中的绕坐标轴旋转运动。在机器人运动中,除了坐标系的旋转外,往往还要考虑平移运动,在三维空间中,刚体的旋转运动可以用绕一根轴的螺旋运动来描述。接下来,我们将逐步引出旋量的概念。
二、预备知识
刚体在坐标系中的运动,一般情况下是平移运动与旋转运动的结合,特殊情况是纯平移运动或纯旋转运动。
2.1 平移运动
在上图中,坐标系 $A$ 平移到坐标系 $B$,可以用 $\pmb p_{ab}$ 表示平移关系。假设,$B$ 坐标系中的任一点 $Q$,在 $B$ 系中的坐标可用向量 $\pmb p_b$ 表示,$Q$ 在 $A$ 系中的坐标可以用 $\pmb p_a$ 表示,显然有: $$ \pmb p_a = \pmb p_{ab} + \pmb p_b \tag{2-1} $$
2.2 旋转运动
坐标旋转运动的基本思想在博客坐标旋转中已经有了介绍,这篇文章中只是介绍了绕单轴旋转的情况,对于不是绕单轴的旋转运动,可以由多次绕不同的单轴旋转运动来得到,例如上图中从
A
A
A系(即参考坐标系)到
B
B
B系(即本体坐标系),可以通过先绕
A
A
A的
Z
Z
Z轴旋转得到
C
C
C系(图中未画出),再绕
C
C
C系的
Y
Y
Y轴来旋转得到
B
B
B系(这里只是举例说明,也可以有其他的旋转方式)。那么,
B
B
B系中的点在
A
A
A中的表示方式可为:
p
A
=
A
T
C
⋅
p
C
p
C
=
C
T
B
⋅
p
B
p
A
=
A
T
C
⋅
C
T
B
⋅
p
B
=
A
T
B
⋅
p
B
(2-2)
\pmb p_A = ^A\pmb T_C\cdot\pmb p_C \\ \pmb p_C = ^C\pmb T_B\cdot\pmb p_B \\ \pmb p_A = ^A\pmb T_C \cdot^C\pmb T_B\cdot\pmb p_B = ^A\pmb T_B\cdot\pmb p_B\tag{2-2}
pppA=ATTTC⋅pppCpppC=CTTTB⋅pppBpppA=ATTTC⋅CTTTB⋅pppB=ATTTB⋅pppB(2-2)
上式中,
A
T
B
=
A
T
C
⋅
C
T
B
^A\pmb T_B = ^A\pmb T_C \cdot^C\pmb T_B
ATTTB=ATTTC⋅CTTTB,表示从A系旋转到B系的旋转矩阵
总的来说,旋转运动是通过旋转矩阵来描述的。
2.3 一般运动
在上图中, B B B系可由 A A A系先旋转再平移得到,令 q b \pmb q_b qqqb表示 B B B系中 q q q点的坐标, q a \pmb q_a qqqa表示 q q q在 A A A系中的坐标,根据前两节的知识,有:
q a = p a b + A T B ⋅ q b (2-3) \pmb q_a = \pmb p_{ab} +^A\pmb T_B\cdot\pmb q_b \tag{2-3} qqqa=pppab+ATTTB⋅qqqb(2-3)
将上式表示成矩阵形式,有:
[
q
a
1
]
=
[
A
T
B
p
a
b
0
1
]
[
q
b
1
]
(2-4)
\begin{bmatrix} \pmb q_a \\ 1 \end{bmatrix}=\begin{bmatrix} ^A\pmb T_B & \pmb p_{ab} \\ 0 & 1 \end{bmatrix}\begin{bmatrix} \pmb q_b \\ 1 \end{bmatrix} \tag{2-4}
[qqqa1]=[ATTTB0pppab1][qqqb1](2-4)
即:
q
‾
a
=
a
g
‾
b
⋅
q
‾
b
(2-5)
\overline{\pmb q}_a = ^a\overline{\pmb g}_b\cdot\overline{\pmb q}_b \tag{2-5}
qqqa=agggb⋅qqqb(2-5)
上式中, q ‾ a = [ q a 1 ] T \overline{\pmb q}_a = \begin{bmatrix} \pmb q_a & 1 \end{bmatrix}^\mathbf{T} qqqa=[qqqa1]T, q ‾ b = [ q b 1 ] T \overline{\pmb q}_b = \begin{bmatrix} \pmb q_b & 1 \end{bmatrix}^\mathbf{T} qqqb=[qqqb1]T, a g ‾ b ^a\overline{\pmb g}_b agggb表示从 A A A系到 B B B系的齐次矩阵,同时包含了旋转运动与平移运动。
三、旋量初识
3.1 概念引入
考虑图2.5(a)中的单连杆机构在参考坐标系中运动, q q q为旋转轴上的一点, p p p为连杆上的一点,绕单位角速度 ω \pmb\omega ωωω( ω ∈ R 3 \pmb\omega\in \mathbb{R}^3 ωωω∈R3,且 ∥ ω ∥ = 1 \left \| \pmb\omega \right \|=1 ∥ωωω∥=1)做旋转运动。我们知道,角速度方向的确定方法是:遵循右手法则,四指指向运动方向,大拇指指向即角速度方向。因此,在图2.5(a)中,令 p ( t ) \pmb p(t) ppp(t)表示 p p p 点 t t t 时刻在参考坐标系中的坐标, q \pmb q qqq表示 q q q点在参考坐标系中的坐标,则 p q → = p ( t ) − q \overrightarrow{pq}=\pmb p(t) - \pmb q pq=ppp(t)−qqq。因此,根据向量积的物理意义,有 p p p点的线速度为:
p
˙
(
t
)
=
ω
×
(
p
(
t
)
−
q
)
(3-1)
\pmb{\dot p}(t) = \pmb\omega \times (\pmb p(t) - \pmb q) \tag{3-1}
p˙p˙p˙(t)=ωωω×(ppp(t)−qqq)(3-1)
令
v
=
−
ω
×
q
\pmb v = -\pmb\omega \times \pmb q
vvv=−ωωω×qqq,上式可以写为矩阵形式:
[ p ˙ 0 ] = [ ω ^ v 0 0 ] [ p 1 ] = ξ ^ [ p 1 ] (3-2) \begin{bmatrix} \pmb{\dot p} \\ 0 \end{bmatrix}=\begin{bmatrix} \pmb{\hat \omega} & \pmb v \\ 0 & 0 \end{bmatrix}\begin{bmatrix} \pmb p \\ 1 \end{bmatrix} = \pmb{\hat \xi}\begin{bmatrix} \pmb p \\ 1 \end{bmatrix} \tag{3-2} [p˙p˙p˙0]=[ω^ω^ω^0vvv0][ppp1]=ξ^ξ^ξ^[ppp1](3-2)
式(3-2)中, ω ^ \pmb{\hat \omega} ω^ω^ω^ 表示 ω \pmb\omega ωωω 的反对称矩阵。
在图2.5(b)中,整个单连杆机构以单位速度 v \pmb v vvv做平移运动,那么 p p p 点的速度为:
p ˙ ( t ) = v (3-3) \pmb {\dot p}(t) = \pmb v \tag{3-3} p˙p˙p˙(t)=vvv(3-3)
同样将上式写成矩阵形式,有:
[
p
˙
0
]
=
[
0
v
0
0
]
[
p
1
]
=
ξ
^
v
[
p
1
]
(3-4)
\begin{bmatrix} \pmb{\dot p} \\ 0 \end{bmatrix}=\begin{bmatrix} 0 & \pmb v \\ 0 & 0 \end{bmatrix}\begin{bmatrix} \pmb p \\ 1 \end{bmatrix} = \pmb{\hat \xi}_v\begin{bmatrix} \pmb p \\ 1 \end{bmatrix} \tag{3-4}
[p˙p˙p˙0]=[00vvv0][ppp1]=ξ^ξ^ξ^v[ppp1](3-4)
对比式(3-2)和式(3-4),可以看出,对于平移运动,有 ω = 0 \pmb \omega = \pmb 0 ωωω=000,则有 ξ ^ = ξ ^ v \pmb{\hat\xi} = \pmb{\hat{\xi}}_v ξ^ξ^ξ^=ξ^ξ^ξ^v。因此,我们可以用式(3-5)所示的齐次矩阵同时表示旋转运动与平移运动。
ξ ^ = [ ω ^ v 0 0 ] (3-5) \pmb{\hat \xi}=\begin{bmatrix} \pmb{\hat \omega} & \pmb v \\ 0 & 0 \end{bmatrix} \tag{3-5} ξ^ξ^ξ^=[ω^ω^ω^0vvv0](3-5)
因此,我们可以用微分方程来描述上述运动:
p ‾ ˙ = ξ ^ p ‾ (3-6) \dot{\overline{\pmb p}} = \pmb{\hat \xi} {\overline{\pmb p}} \tag{3-6} ppp˙=ξ^ξ^ξ^ppp(3-6)
式(3-6)中,
p
‾
˙
=
[
p
˙
0
]
T
\dot{\overline{\pmb p}} = \begin{bmatrix} \dot{\pmb p} & 0 \end{bmatrix}^\mathbf{T}
ppp˙=[ppp˙0]T,
p
‾
=
[
p
1
]
T
{\overline{\pmb p}} = \begin{bmatrix} {\pmb p} & 1 \end{bmatrix}^\mathbf{T}
ppp=[ppp1]T。
求解上述微分方程,得:
p
‾
(
t
)
=
e
ξ
^
t
p
‾
(
0
)
(3-7)
\overline{\pmb p}(t)=e^{\pmb{\hat \xi}t}\overline{\pmb p}(0) \tag{3-7}
ppp(t)=eξ^ξ^ξ^tppp(0)(3-7)
式(3-7)中, p ‾ ( 0 ) \overline{\pmb p}(0) ppp(0)是 p ‾ ( t ) \overline{\pmb p}(t) ppp(t) 在零时刻的值。上式中,矩阵 ξ ^ \pmb{\hat\xi} ξ^ξ^ξ^的指数函数如式(3-8)所示。
e ξ ^ t = I + ξ ^ t + ( ξ ^ t ) 2 2 ! + ( ξ ^ t ) 3 3 ! + ⋯ (3-8) e^{\pmb{\hat \xi}t} = \pmb I +\pmb{\hat\xi}t+\frac{(\pmb{\hat\xi}t)^2}{2!} + \frac{(\pmb{\hat\xi}t)^3}{3!}+\cdots \tag{3-8} eξ^ξ^ξ^t=III+ξ^ξ^ξ^t+2!(ξ^ξ^ξ^t)2+3!(ξ^ξ^ξ^t)3+⋯(3-8)
因为 ω \pmb\omega ωωω是单位角速度,因此 θ = t \theta = t θ=t,因此有
e ξ ^ t = e ξ ^ θ (3-9) e^{\pmb{\hat \xi}t} = e^{\pmb{\hat \xi}\theta} \tag{3-9} eξ^ξ^ξ^t=eξ^ξ^ξ^θ(3-9)
因此, e ξ ^ θ e^{\pmb{\hat \xi}\theta} eξ^ξ^ξ^θ是一点从起始位置到旋转 θ \theta θ 弧度后的位置的变换。
定义六维向量 ξ = ( v , ω ) \pmb \xi=(\pmb v, \pmb \omega) ξξξ=(vvv,ωωω)表示 ξ ^ \pmb{\hat\xi} ξ^ξ^ξ^ 的速度旋量(twist),运算规则是:
[ ω ^ v 0 0 ] ∨ = [ v ω ] (3-10) \begin{bmatrix} \pmb{\hat \omega} & \pmb v \\ 0 & 0 \end{bmatrix}^{\vee} = \begin{bmatrix} \pmb v \\ \pmb{ \omega} \end{bmatrix} \tag{3-10} [ω^ω^ω^0vvv0]∨=[vvvωωω](3-10)
OK,到目前为止,总算是引出了旋量[^1]的概念。
3.2 旋量运动
3.1节只是引出了旋量的概念,但是3.1节只是描述了旋转运动与平移运动,如果是旋转加平移呢?图2.7(a)给出了一种类型的刚体运动:先绕空间旋转轴转过 θ \theta θ 角,再沿该轴平移距离 d d d 的刚体运动。这种组合运动称为旋量运动(screw motion)。为了进一步分析方便,我们再定义一个概念,称为旋量的节距 h h h,如式(3-7)所示。
h = ω T v d ∥ ω ∥ 2 (3-11) h = \frac{\pmb{ \omega} ^\mathbf{T} \pmb v_d}{\left \| \pmb \omega \right \|^2} \tag{3-11} h=∥ωωω∥2ωωωTvvvd(3-11)
从上式可以看出, h h h 是平动速度和角速度的比,表示的是平动与转动的比。
对于式(3-7),我们分两种情况来讨论:
1.当
ω
=
0
\pmb \omega = \pmb 0
ωωω=000时,认为节距无穷大,这时只有平移运动,如图2.7(b)所示。因为旋转角度为0,故把过原点方向为
v
\pmb v
vvv的直线作为旋转轴(
v
\pmb v
vvv为一单位矢量)。这时规定,旋量节距为
∞
\infty
∞,大小为沿
v
\pmb v
vvv方向的移动量。
2.当
ω
≠
0
\pmb \omega \neq \pmb 0
ωωω=000时,要求
∥
ω
∥
=
1
\left \| \pmb\omega \right \|=1
∥ωωω∥=1,
v
=
−
ω
×
q
+
h
ω
\pmb v = -\pmb\omega \times \pmb q + h\pmb\omega
vvv=−ωωω×qqq+hωωω。
v
\pmb v
vvv为什么是这样的形式呢?类比式(3-1),同时考虑旋转运动和平动,那么可以有:
p
˙
(
t
)
=
ω
×
(
p
(
t
)
−
q
)
+
h
ω
(3-12)
\pmb{\dot p}(t) = \pmb\omega \times (\pmb p(t)-\pmb q) + h\pmb\omega \tag{3-12}
p˙p˙p˙(t)=ωωω×(ppp(t)−qqq)+hωωω(3-12)
同样将其写成矩阵形式,则有:
[
p
˙
0
]
=
[
ω
^
v
0
0
]
[
p
1
]
=
ξ
^
[
p
1
]
(3-13)
\begin{bmatrix} \pmb{\dot p} \\ 0 \end{bmatrix}=\begin{bmatrix} \pmb{\hat \omega} & \pmb v \\ 0 & 0 \end{bmatrix}\begin{bmatrix} \pmb p \\ 1 \end{bmatrix} = \pmb{\hat \xi}\begin{bmatrix} \pmb p \\ 1 \end{bmatrix} \tag{3-13}
[p˙p˙p˙0]=[ω^ω^ω^0vvv0][ppp1]=ξ^ξ^ξ^[ppp1](3-13)
上式中,
v
=
−
ω
×
q
+
h
ω
\pmb v = -\pmb\omega \times \pmb q + h\pmb\omega
vvv=−ωωω×qqq+hωωω,
v
\pmb v
vvv 由两部分组成,
−
ω
×
q
-\pmb\omega \times \pmb q
−ωωω×qqq是旋转引起的线速度,
h
ω
h\pmb\omega
hωωω 是由平动引起的速度。解上述的微分方程可以得到
p
p
p 点的位置。
综上所述,由旋转轴上的一点 q q q的坐标,单位角速度 ω \pmb\omega ωωω,以及节距 h h h,即可确定旋量 ξ = ( v , ω ) \pmb \xi = (\pmb v,\pmb \omega) ξξξ=(vvv,ωωω)。
参考文献
这篇博客介绍了旋量的概念及其在刚体运动中的应用。旋量是描述刚体平移和旋转运动的一种数学工具,包括旋转运动的角速度和平移运动的速度。文章通过矩阵形式展示了如何用旋量表示点在不同坐标系中的运动状态,并通过微分方程求解运动轨迹。
2150

被折叠的 条评论
为什么被折叠?



