速度运动学
参考书目
《机器人建模与控制》[美] Mark W. Spong, Seth Hutchinson, M. Vidyasager
反对称矩阵
定义:满足 \(S^{\top} + S = 0\) 的 \(n\times n\) 矩阵 \(S\) 就是一个反对称矩阵。
所有 \(3\times 3\) 的反对称矩阵构成的集合用 \(so(3)\) 表示。
性质:
\[ S(a) = \begin{bmatrix}0 & -a_3 & a_2\\ a_3 & 0 & -a_1\\ -a_2 & a_1 & 0\end{bmatrix}.\]
- 对于任意三维向量 \(a\) 和 \(p\), 有
\[S(a)p = a\times p.\]
(直接计算即可验证,两边结果都是一个三维向量。)
- 对于三维旋转矩阵 \(R\) 和任意三维向量\(a\),有
\[RS(a)R^{\top} = S(Ra).\]
(从左往右证明,将LHS左乘一个三维向量 \(b\),并利用旋转矩阵性质 \(R(a\times b) = Ra \times Rb\).)
常用例子:三维向量分别为三个坐标轴的单位向量 \(i, j, k\) 时。
\[\begin{aligned}
S(i) &= \begin{bmatrix}0 & 0 & 0\\ 0 & 0 & -1\\ 0 & 1 & 0\end{bmatrix}\\
S(j) &= \begin{bmatrix}0 & 0 & 1\\ 0 & 0 & 0\\ -1 & 0 & 0\end{bmatrix}\\
S(k) &= \begin{bmatrix}0 & -1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 0\end{bmatrix}
\end{aligned}\]
旋转矩阵的导数
我们假设要研究的旋转矩阵 \(R(\theta)\) 是单变量 \(\theta\) 的函数。(绕着某一条轴转了 \(\theta\) 角度。)
旋转矩阵是正交矩阵
所以有 \(R(\theta)R^{\top}(\theta) = I\)。我们将等式两边都对 \(\theta\) 求导,可以得到:
\[\frac{\mathrm{d}R}{\mathrm{d}\theta}R^{\top}(\theta) + R(\theta)\frac{\mathrm{d}R^{\top}}{\mathrm{d}\theta} = 0\]
倘若我们记 \(S(\theta) = \frac{\mathrm{d}R}{\mathrm{d}\theta}R^{\top}(\theta)\),则有 \(S^{\top}(\theta) = R(\theta)\frac{\mathrm{d}R^{\top}}{\mathrm{d}\theta}\),所以得到:
\[ S + S^{\top} = 0 \]
不难看出,\(S(\theta)\) 是一个反对称矩阵。
此外,在 \(S(\theta) = \frac{\mathrm{d}R}{\mathrm{d}\theta}R^{\top}(\theta)\) 等式两边同乘以 \(R\),因为 \(R\) 是一个正交矩阵,所以有:
\[ SR(\theta) = \frac{\mathrm{d}R}{\mathrm{d}\theta}\]
这表明,旋转矩阵求导等同于乘以一个反对称矩阵。
我们接下来讨论一下这个反对称矩阵的形式。
例(基础旋转矩阵)
对于
\[R_{x,\theta} = \begin{bmatrix}
1 & 0 & 0 \\
0 & \cos \theta & -\sin\theta \\
0 & \sin\theta & \cos\theta
\end{bmatrix},\]
可以如下计算反对称矩阵:
\[\begin{aligned}
S(\theta)|_x &= \frac{\mathrm{d}R}{\mathrm{d}\theta}R^{\top}(\theta)\\
&= \begin{bmatrix}0 & 0 & 0\\ 0 & -\sin\theta & -\cos\theta\\ 0 & \cos\theta & -\sin\theta\end{bmatrix} \begin{bmatrix}1 & 0 & 0\\ 0 & \cos\theta & \sin\theta\\ 0 & -\sin\theta & \cos\theta\end{bmatrix}\\
&= \begin{bmatrix}0 & 0 & 0\\ 0 & 0 & -1\\ 0 & 1 & 0\end{bmatrix} = S(i).
\end{aligned}\]
对于
\[R_{y,\theta} = \begin{bmatrix}
\cos\theta & 0 & \sin\theta \\
0 & 1 & 0 \\
-\sin\theta & 0 & \cos\theta
\end{bmatrix},\]
同理计算:
\[\begin{aligned}
S(\theta)|_y &= \begin{bmatrix}-\sin\theta & 0 & \cos\theta\\ 0 & 0 & 0\\ -\cos\theta & 0 & -\sin\theta\end{bmatrix} \begin{bmatrix}\cos\theta & 0 & -\sin\theta\\ 0 & 1 & 0\\ \sin\theta & 0 & \cos\theta\end{bmatrix}\\
&= \begin{bmatrix}
0 & 0 & 1\\ 0 & 0 & 0\\ -1 & 0 & 0
\end{bmatrix} = S(j).
\end{aligned}\]
对于
\[R_{z,\theta} = \begin{bmatrix}
\cos\theta & -\sin \theta & 0 \\
\sin \theta & \cos \theta & 0 \\
0 & 0 & 1
\end{bmatrix},\]
同理计算:
\[\begin{aligned}
S(\theta)|_z &= \begin{bmatrix}
-\sin\theta & -\cos\theta & 0\\ \cos\theta & -\sin\theta & 0\\ 0 & 0 & 0\end{bmatrix} \begin{bmatrix}\cos\theta & \sin\theta & 0\\ -\sin\theta & \cos\theta & 0\\ 0 & 0 & 1\end{bmatrix}\\
&= \begin{bmatrix}
0 & -1 & 0\\ 1 & 0 & 0\\ 0 & 0 & 0\end{bmatrix} = S(k).
\end{aligned}\]
再例(对一般单位向量)
首先,对于一般单位向量 \(k\),有 \(S^3(k) = -S(k)\),证明如下:
\[\begin{aligned}
S^3(k) &= \begin{bmatrix}
0 & -k_3 & k_2\\ k_3 & 0 & -k_1\\ -k_2 & k_1 & 0
\end{bmatrix}\cdot
\begin{bmatrix}
0 & -k_3 & k_2\\ k_3 & 0 & -k_1\\ -k_2 & k_1 & 0
\end{bmatrix}^2\\
&= \begin{bmatrix}
-k_2^2-k_3^2 & k_1k_2 & k_1k_3\\ k_1k_2 & -k_1^2-k_3^2 & k_2k_3\\ k_1k_3 & k_2k_3 & -k_1^2-k_2^2
\end{bmatrix}\cdot
\begin{bmatrix}
0 & -k_3 & k_2\\ k_3 & 0 & -k_1\\ -k_2 & k_1 & 0
\end{bmatrix}\\
&= \begin{bmatrix}
0 & k_3(k_1^2+k_2^2+k_3^2) & -k_2(k_1^2+k_2^2+k_3^2)\\ -k_3(k_1^2+k_2^2+k_3^2) & 0 & k_1(k_1^2+k_2^2+k_3^2)\\ k_2(k_1^2+k_2^2+k_3^2) & -k_1(k_1^2+k_2^2+k_3^2) & 0
\end{bmatrix}\\
&= -S(k)
\end{aligned}\]
由习题4.8有:
\[ R_{k, \theta} = I + S(k)\sin\theta + S^2(k)(1 - \cos\theta) \]
所以
\[\begin{aligned}
\frac{\mathrm{d}R_{k,\theta}}{\mathrm{d}\theta} &= S(k)\cos\theta + S^2(k)\sin\theta\\
S(k)R_{k,\theta} &= S(k) + S^2(k)\sin\theta + S^3(k)(1-\cos\theta)\\
&= S(k) + S^2(k)\sin\theta - S(k) + S(k)\cos\theta\\
&= S(k)\cos\theta + S^2(k)\sin\theta
\end{aligned}\]
即
\[ \frac{\mathrm{d}R_{k,\theta}}{\mathrm{d}\theta} = S(k)R_{k,\theta} \]
这个式子说明,用于表示绕某单位向量转 \(\theta\) 角的旋转矩阵,对 \(\theta\) 求导,相当于左乘一个关于该单位向量的反对称矩阵。
这个反对称矩阵的形式知道了!
时间导数
在上述结论下,我们可以求旋转矩阵的时间导数\(\dot{R}(t)\):
\[\begin{aligned}
\dot{R}(t) &= \frac{\mathrm{d}\theta}{\mathrm{d}t}\frac{\mathrm{d}R}{\mathrm{d}\theta} = \frac{\mathrm{d}\theta}{\mathrm{d}t}S(k)R_{k,\theta}\\
&= \omega_0S(k)R_{k,\theta}
\end{aligned}\]
这里的 \(\omega_0\) 代表旋转坐标系绕着参考坐标系的某单位向量转动的角速度大小,是一个标量值。
角速度是一个向量,方向即轴向量的方向
反对称矩阵是线性的,所以 \(\omega_0S(k) = S(\omega_0k)\). 由上一段的讨论可知,\(\omega_0k\) 就是角速度向量。
所以:\(\dot{R}(t) = S(\omega(t))R(t),\)
也即:\(S(\omega(t)) = \dot{R}(t)\cdot R^{\top}(t).\)
我们还可以从另一个角度来说明\(\omega(t)\)是角速度向量。
考虑一个固定在旋转坐标系上的点 \(p\),其在参考坐标系中的坐标为 \(^0p\),可以如下计算:
\[^0p = (_1^0R)\cdot p .\]
等式两边关于时间求导,有:
\[\begin{aligned}
\frac{\mathrm{d}(^0p)}{\mathrm{d}t} &= (_1^0\dot{R}(t))\cdot p\\
&= S(\omega(t))\cdot (_1^0R(t))\cdot p\\
&= \omega(t) \times (^0p).
\end{aligned}\]
这说明 \(\omega(t)\) 是角速度向量。
Question
Q1:第一行求导为什么只对 \(R\) 求导?
A1:\(p\) 是点 \(p\) 在旋转系下的坐标。由于点 \(p\) 与旋转系固连,所以 \(p\) 是定值,不是时间 \(t\) 的函数;由于旋转系在旋转,其姿态时刻发生变化,所以旋转矩阵 \({}_1^0R\) 是时间 \(t\) 的函数。
Q2:第二行到第三行怎么推的?
A2:反对称矩阵性质3。
Q3:为什么这个结果能说明 \(\omega(t)\) 是角速度向量?
A3:因为该结果符合如下公式:
\[\vec{v} = \vec{\omega} \times \vec{r}.\]
雅可比矩阵
又称几何雅可比矩阵,Geometric Jacobian.
定义
雅可比矩阵 \(J\) 满足
\[\xi = J\dot{q}\]
其中 \(\xi_{6\times 1} = \begin{bmatrix}_n^0v \\ _n^0\omega\end{bmatrix}\),\(J_{6\times n} = \begin{bmatrix}J_v\\ J_{\omega}\end{bmatrix}\),\(\dot{q}_{n\times 1} = \begin{bmatrix}\dot{q_1} & \dot{q_2} & ... & \dot{q_n}\end{bmatrix}^{\top}.\)
为什么 \(J\) 可以被称为雅可比矩阵?
A:数学上“雅可比矩阵”的定义参见矩阵求导,指一个向量函数关于另一个向量函数的导数。现在,我们不是很严谨地推导一下,证明 \(J\) 确实是一个向量函数关于另一个向量函数的导数。(TODO 如果以后有更严谨的思路了,可以补上)
首先,对 \(\xi = J \dot{q}\) 这个式子两边“乘上” \(\mathrm{d}t\),我们有
\[\begin{bmatrix}\mathrm{d}x & \mathrm{d}y & \mathrm{d}z & \mathrm{d}\phi & \mathrm{d}\theta & \mathrm{d}\psi\end{bmatrix}^{\top} = J\begin{bmatrix}\mathrm{d}q_1 & \mathrm{d}q_2 & ... & \mathrm{d}q_n\end{bmatrix}^{\top}.\]
所以,我们可以得到
\[J = \frac{\partial\begin{bmatrix}x & y & z & \phi & \theta & \psi\end{bmatrix}^{\top}}{\partial\begin{bmatrix}q_1 & q_2 & ... & q_n\end{bmatrix}^{\top}} = \begin{bmatrix}\frac{\partial x}{\partial q_1} & \frac{\partial x}{\partial q_2} & ... & \frac{\partial x}{\partial q_n}\\ \frac{\partial y}{\partial q_1} & \frac{\partial y}{\partial q_2} & ... & \frac{\partial y}{\partial q_n}\\ .. & .. & .. & ..\\ \frac{\partial \psi}{\partial q_1} & \frac{\partial \psi}{\partial q_2} & ... & \frac{\partial \psi}{\partial q_n}\end{bmatrix}.\]
这就是一个向量函数关于另一个向量函数的导数,也就是雅可比矩阵。
验证一下:
\[\begin{aligned}v_x &= \frac{\partial x}{\partial q_1}\dot{q}_1 + \frac{\partial x}{\partial q_2}\dot{q}_2 + ... + \frac{\partial x}{\partial q_n}\dot{q}_n\\ &= \frac{\partial x}{\partial q_1}\frac{\mathrm{d}q_1}{\mathrm{d}t} + \frac{\partial x}{\partial q_2}\frac{\mathrm{d}q_2}{\mathrm{d}t} + ... + \frac{\partial x}{\partial q_n}\frac{\mathrm{d}q_n}{\mathrm{d}t}\\ &= \frac{\mathrm{d}x}{\mathrm{d}t}, \end{aligned}\]
这很符合我们的预期。
结论
雅可比矩阵的上半部分具有如下形式:
\[(J_v)_{3\times n} = \begin{bmatrix}(J_{v_1})_{3\times 1} & J_{v_2} & ... & J_{v_n}\end{bmatrix},\]
其中矩阵 \(J_v\) 的第 \(i\) 列向量 \(J_{v_i}\) 如下计算:
\[J_{v_i} = \begin{cases} ^0z_{i-1}\times (o_n - o_{i-1})&,对于转动关节i\\ ^0z_{i-1}&,对于平动关节i \end{cases} \]
雅可比矩阵的下半部分具有如下形式:
\[(J_{\omega})_{3\times n} = \begin{bmatrix}(J_{\omega_1})_{3\times 1} & J_{\omega_2} & ... & J_{\omega_n}\end{bmatrix},\]
其中矩阵\(J_{\omega}\)的第\(i\)列向量\(J_{\omega_i}\)如下计算:
\[ J_{\omega_i} = \begin{cases}^0z_{i-1}&,对于转动关节i\\ 0&,对于平动关节i\end{cases} \]
如果用的是MDH建模,大括号右边的参数就不用减一
理解
证明从略,注重感性理解
我们希望通过雅可比矩阵,在参考坐标系(世界坐标系)下,建立起各个关节变量的时间导数与末端执行器速度/角速度的关系。
显然,在同一坐标系下,速度和角速度都可以线性叠加。(向量求和)
沿这条思路,我们分别求每个关节变量速度与末端执行器速度/角速度的关系,再线性求和。
求某一个关节与末端执行器的关系时,其他所有关节都先固定。
1. 雅可比矩阵的上半部分表示了各个关节变量的时间导数与末端执行器速度的关系:
对于平动关节 \(i\),我们先把其他所有关节固定。
这时候末端执行器的速度大小就是 \(\dot{q_i}\),方向沿 \(z_{i-1}\) 轴。
对于转动关节 \(i\),同样把其他所有关节固定。
这时候末端执行器就绕 \(z_{i-1}\) 轴,以 \(\dot{q_i}\) 的角速度旋转。其线速度就是
\[ \vec{v} = \vec{\omega} \times \vec{r} = \dot{q_i}\vec{z}_{i-1}\times (o_n - o_{i-1}) \]
这里的 \(o_{i-1}\) 理论上可以换成 \(z_{i-1}\) 轴上的任意一点。
2. 雅可比矩阵的下半部分表示了各个关节变量的时间导数与末端执行器角速度的关系:
对于平动关节 \(i\),把其他所有关节固定后,末端执行器没有角速度。
对于转动关节 \(i\),把其他所有关节固定后,末端执行器有一个 \(\dot{q_i}\vec{z}_{i-1}\) 的角速度。
n 个关节,n+1 根连杆。连杆编号 0, 1, ..., n. 第 i 号关节的转动/平移会带动第 i 根连杆。
分析雅可比矩阵(Analytical Jacobian)
背景知识
首先,我们要定义一个末端执行器姿态的最小表示向量:
\[ X = \begin{bmatrix} d(q)\\ \alpha(q) \end{bmatrix} \]
其中,
-
\(d(q)\) 是基座坐标系原点指向末端执行器坐标系原点的向量;
-
\(\alpha(q)\) 是末端执行器坐标系相对于基座坐标系的姿态的最小表示向量,比如 ZYZ 欧拉角向量。
-
\(q\) 是所有关节坐标组成的向量 \(\begin{bmatrix}q_1 & q_2 & ... & q_n\end{bmatrix}^{\top}\)
我们希望找到一个分析雅可比矩阵 \(J_a\),满足:
\[ \dot{X} = J_a\dot{q} \]
推导准备
习题4.13 证明,对于 ZYZ 欧拉角变换 \(R = R_{z,\phi}R_{y,\theta}R_{z,\psi}\),有
\[\dot{R} = S(\omega)R\]
其中角速度向量
\[\begin{aligned}
\omega
= \begin{bmatrix}c_{\psi}s_{\theta}\dot{\phi} - s_{\psi}\dot{\theta}\\ s_{\psi}s_{\theta}\dot{\phi} + c_{\psi}\dot{\theta}\\ c_{\theta}\dot{\phi} + \dot{\psi} \end{bmatrix}
&= \begin{bmatrix}c_{\psi}s_{\theta} & -s_{\psi} & 0\\ s_{\psi}s_{\theta} & c_{\psi} & 0\\ c_{\theta} & 0 & 1\end{bmatrix}\begin{bmatrix}\dot{\phi}\\ \dot{\theta}\\ \dot{\psi}\end{bmatrix}\\
&= B(\alpha)\dot{\alpha}
\end{aligned}\]
推导
首先,根据雅可比矩阵的定义,我们有
\[ \begin{bmatrix}v \\ \omega\end{bmatrix} = J\dot{q} \]
这里的 \(v\) 就是 \(\dot{d}\),这是显然的。
根据推导准备,这里的 \(\omega\) 就是 \(B(\alpha)\dot{\alpha}\)。
所以,我们有
\[\begin{aligned}
\begin{bmatrix}v \\ \omega\end{bmatrix}
= \begin{bmatrix}\dot{d} \\ B(\alpha)\dot{\alpha} \end{bmatrix}
&= \begin{bmatrix}I & 0 \\ 0 & B(\alpha) \end{bmatrix}\begin{bmatrix}\dot{d} \\ \dot{\alpha} \end{bmatrix}\\
&= \begin{bmatrix}I & 0 \\ 0 & B(\alpha) \end{bmatrix} \dot{X}\\
&= \begin{bmatrix}I & 0 \\ 0 & B(\alpha) \end{bmatrix} J_a \dot{q}\\
&= J\dot{q}
\end{aligned}\]
所以
\[ J = \begin{bmatrix}I & 0 \\ 0 & B(\alpha) \end{bmatrix}J_a \]
也即
\[ J_a = \begin{bmatrix}I & 0 \\ 0 & B(\alpha) \end{bmatrix}^{-1}J = \begin{bmatrix}I & 0\\ 0 & B^{-1}(\alpha)\end{bmatrix}J \]
该式成立的前提是
\[ \det B(\alpha) = \det \begin{bmatrix}c_{\psi}s_{\theta} & -s_{\psi} & 0\\ s_{\psi}s_{\theta} & c_{\psi} & 0\\ c_{\theta} & 0 & 1\end{bmatrix} \not = 0 \]
奇点/奇异位形
因为 \(J(q)_{6\times n}\),易知 \(\mathrm{rank} J(q) \le \min\{6, n\}\)。
换言之,\(J(q)\) 的线性无关的列向量个数 \(\le \min\{6, n\}\)。
Important:雅可比矩阵 \(J(q)\) 有6个线性无关的列向量 \(\Longleftrightarrow\) 能任意控制末端执行器速度。
因为末端执行器速度有6个参数(\(v\) 有3个方向,\(\omega\) 也是)需要控制。
6 个线性无关的雅可比矩阵列向量,代表可以通过6个关节的关节变量速度,实现对末端执行器速度 6 参数的任意控制。
使 \(J(q)\) 的秩小于等于 \(\min\{6,n\}\) 的位形 \(q\) 称为奇点或者奇异位形。
静态力/力矩关系
令 \(F = (F_x, F_y, F_z, n_x, n_y, n_z)^{\top}\) 表示末端执行器处的力和力矩,令 \(\tau\) 表示对应的关节力矩向量,则有:
\[ \tau = J^{\top}(q)F \]
其中,\(J^{\top}(q)\) 是机械臂雅可比矩阵的转置。
我对这里的关节力矩向量不是很理解。按照书上的例子,每一个关节的关节力矩只用一个数字就能表示。但是一个力矩也是一个向量,真能直接用一个数字表示吗?
证明要用虚功原理,这里要用的话直接套公式吧。
逆速度
雅可比矩阵定义式:
\[ \xi_{6\times 1} = J_{6\times n}\dot{q}_{n\times 1} \]
给出了一种由关节速度求末端执行器速度的方法。
在这一小节,我们考虑逆问题。即已知 \(\xi_{6\times 1}\)和雅可比矩阵\(J_{6\times n}\),求关节速度 \(\dot{q}_{n\times 1}.\)
当雅可比矩阵可逆时,这个问题可以简单求解:
\[ \dot{q} = J^{-1}\xi \]
但当雅可比矩阵不可逆,或者关节数量 \(n \not = 6\),根本无法讨论可逆性时,需要有点巧思。
一种方法是简单粗暴的高斯消元法,这里不赘述。
另一种方法用到下面的事实:
Theorem
当 \(J \in \mathbb{R} ^{6\times n},n > 6,\mathrm{rank}J = 6\)时,\((JJ^{\top})^{-1}\) 存在。
证明如下:
\(\mathrm{rank}J = 6\) 说明 \(J\) 行满秩,\(J^{\top}\) 列满秩。我们设
\[ J = \begin{bmatrix}(\xi_1)_{1\times n}\\ \xi_2\\ ...\\ \xi_6\end{bmatrix}, J^{\top} = \begin{bmatrix}(\xi_1)^{\top}_{n\times 1} & \xi_2^{\top} & ... & \xi_6^{\top}\end{bmatrix} \]
则可计算
\[JJ^{\top} = \begin{bmatrix}\xi_1\xi_1^{\top} & \xi_1\xi_2^{\top} & ... & \xi_1\xi_6^{\top}\\ \xi_2\xi_1^{\top} & \xi_2\xi_2^{\top} & ... & \xi_2\xi_6^{\top}\\ ... & ... & ... & ...\\ \xi_6\xi_1^{\top} & \xi_6\xi_2^{\top} & ... & \xi_6\xi_6^{\top}\end{bmatrix}\]
假设这个矩阵不是满秩的。不失一般性,我们假设第一列向量可以被其他列向量线性表示,也就是说
\[ \xi_1\xi_1^{\top} = a_2\xi_1\xi_2^{\top} + ... + a_6\xi_1\xi_6^{\top} \]
因为 \(J\) 行满秩,所以 \(\xi_1\) 肯定不是零向量。则有
\[ \xi_1^{\top} = a_2\xi_2^{\top} + ... + a_6\xi_6^{\top} \]
两边同时取转置,有
\[ \xi_1 = a_2\xi_2 + ... + a_6\xi_6 \]
这说明 \(\xi_1\) 可以被其他行向量线性表示,这与 \(J\) 行满秩矛盾。
所以 \(JJ^{\top}\) 是满秩的。所以 \((JJ^{\top})^{-1}\) 存在。
根据上述事实,有 \((JJ^{\top})(JJ^{\top})^{-1} = J\cdot J^{\top}(JJ^{\top})^{-1} = I\)。
我们令 \(J^+ = J^{\top}(JJ^{\top})^{-1}\),作为 \(J\) 的右伪逆矩阵。
有了以上准备,我们直接构造出通解:
\[ \dot{q}_{n\times 1} = J^+_{n\times 6}\xi_{6\times 1} + (I_{n\times n} - J^+_{n\times 6}J_{6\times n})b_{n\times 1} \]
这里的 \(b_{n\times 1} \in \mathbf{R}^{n\times 1}\) 是一个任意向量。
套用控制理论或者微分方程的观点,第一个加数是稳态解,第二个加数是动态解。
需要注意到的点:
-
当 \(\dot{q}_{n\times 1} = (I_{n\times n} - J^+_{n\times 6}J_{6\times n})b_{n\times 1}\) 时,末端执行器是不动的。
-
倘若要求最终的关节速度最小化,我们取 \(b_{n\times 1}\) 为零向量。这句话其实是说,\(J^+_{n\times 6}\xi_{6\times 1}\) 是一个无冗余的关节变量速度控制信号。