旋量初识

旋量初识

  • 一、前言
  • 二、预备知识
    • 2.1 平移运动
    • 2.2 旋转运动
    • 2.3 一般运动
  • 三、旋量初识
    • 3.1 概念引入
    • 3.2 旋量运动

一、前言

在之前的博文坐标旋转中,简单介绍了平面坐标系以及三维坐标系中的绕坐标轴旋转运动。在机器人运动中,除了坐标系的旋转外,往往还要考虑平移运动,在三维空间中,刚体的旋转运动可以用绕一根轴的螺旋运动来描述。接下来,我们将逐步引出旋量的概念。

二、预备知识

刚体在坐标系中的运动,一般情况下是平移运动与旋转运动的结合,特殊情况是纯平移运动或纯旋转运动。

2.1 平移运动

旋量初识_第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 旋转运动

旋量初识_第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=ATTTCpppCpppC=CTTTBpppBpppA=ATTTCCTTTBpppB=ATTTBpppB(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=ATTTCCTTTB,表示从A系旋转到B系的旋转矩阵
总的来说,旋转运动是通过旋转矩阵来描述的。

2.3 一般运动

旋量初识_第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+ATTTBqqqb(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=agggbqqqb(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 概念引入

旋量初识_第4张图片

考虑图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 旋量运动

旋量初识_第5张图片

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,ωωω)

参考文献

  1. A mathematical Introduction to robotics manupilation
  2. MODERN ROBOTICS MECHANICS, PLANNING, AND CONTROL

你可能感兴趣的:(机器人)