对于具有所有旋转关节的6DoF机器人,雅可比矩阵的公式为:
$$
\ mathbf {J} =
\ begin {bmatrix}
\ hat {z_0} \ times (\ vec {o_6}-\ vec {o_0})&\ ldots和\ hat {z_5} \ times(\ vec {o_6}-\ vec {o_5})\\
\ hat {z_0}&\ ldots&\ hat {z_5}
\ end {bmatrix}
$$
其中$ z_i $是关节$ i + 1 $的单位z轴(使用DH参数),$ o_i $是连接到关节$ i + 1 $的坐标系的原点,而$ o_6 $是末端执行器的原点。雅可比矩阵是笛卡尔速度矢量和关节速度矢量之间的关系:
$$
\ dot {\ mathbf {X}} =
\ begin {bmatrix}
\ dot {x} \\
\ dot {y} \\
\ dot {z} \\
\ dot {r_x} \\
\ dot {r_y} \ \
\ dot {r_z}
\ end {bmatrix}
=
\ mathbf {J}
\ begin {bmatrix}
\ dot {\ theta_1} \\
\ dot {\ theta_2} \\
\ dot {\ theta_3} \\
\ dot {\ theta_4} \\
\ dot {\ theta_5} \\
\ dot {\ theta_6} \\
\ end {bmatrix}
=
\ mathbf {J} \ dot {\ mathbf {\ Theta}}
$$

这是Staubli TX90XL 6DoF机器人的奇异位置:



$$
\ mathbf {J } =
\ begin {bmatrix}
-50&-425&-750&0&-100&0 \\
0&-562.92&0&0&0&0 \\
0&0&0& 0&0&0 \\
0&1&1&0&1&0 \\
1&0&0&-1&0&-1
\ end {bmatrix}
$$

您可以轻松地看到与$ \ dot {r_x} $对应的第四行全为零,这恰好是该位置失去的自由度。

然而,其他情况并非如此。


$$
\ begin {bmatrix}
-50&-324.52&-649.52&0&-86.603&0 \\
987.92&0&0&0&0&0 \\
0&-937.92&-375&0&- 50&0 \\
0&0&0&0.5&0&0.5 \\
0&1&1&0&1&0 \\
1&0&0&- 0.866&0&-0.866
\ end {bmatrix}
$$

在这里您可以清楚地看到关节4和关节6是对齐的,因为第4列和第6列是相同。但是尚不清楚哪个笛卡尔的自由度会丢失(它应该是围绕末端执行器x轴的红色旋转)。

在工作空间极限处的奇异性要简单得多。



$$
\ mathbf {J} =
\ begin {bmatrix}
-50&650&325&0&0&0 \\
0&-1225.8&-662.92&0&-100&0 \\
0&0&0&0.86603&0 &1 \\
0&1&1&0&1&0 \\
1&0&0&0.5&0&0
\ end {bmatrix}
$ $

在这种情况下,机器人可以旋转$ \ dot {-r_y} $,但不能旋转$ \ dot {+ r_y} $。没有充满零的行或相等的列,也没有任何明确的线性相关列/行。

有没有办法通过观察雅各派而确定失去了哪些自由度?

#1 楼

不仅通过查看雅可比行列,还通过查看雅可比行列式的奇异值分解,可以看到失去的自由度,如果失去的话。当然,从技术上讲,它某种程度上会找到空空间,但是我想它有点熟悉和容易。

例如让Jacobian为:

$$ J =
\开始{bmatrix}
-50&650&325&0&0&0 \\
0& -1225.8&-662.92&0&-100&0 \\
0&0&0&0.86603&0&1 \\
0&1&1&0&1&0 \\
1&0&0&0&0.5&0&0
\ end {bmatrix} $$
奇异值分解由
$ J = U \ Sigma V ^ T给出$,其中

$$ U = \ left [\ begin {matrix} -0.46&0.01&-0.89&0.0&0.0&-0.02 \\\\ 0.03&-1.0&-0.03&0.0 &0.0&0.0 \\\\\ 0.89&0.05&-0.46&0.0& 0.0&-0.01 \\\\ 0.0&0.0&0.0&-0.97&0.24&0.0 \\\\ 0.0&0.0&0.02&-0.02&-0.07&-1.0 \\\\\ 0.0&0.0&0.0&-0.24 &-0.97&0.07 \ end {matrix} \ right] $$

$$ \ Sigma = \ left [\ begin {matrix} 1574.54&0.0&0.0&0.0&0.0&0.0&0.0 \\\\ \ 0.0&1277.15&0.0&0.0&0.0&0.0&\\\\ 0.0&0.0&50.59&0.0&0.0&0.0 \ 0.0 \ 0.0&0.0&0.0&1.36&0.0&0.0 \\\\\ 0.0&0.0& 0.0&0.0&0.34&0.0 \\\\ 0.0&0.0&0.0&0.0&0.0&0.0 \ 0.0 \ end {matrix} \ right] $$

$$ V ^ T = \ left [\ begin {matrix} 0.04&-0.88&-0.47&0.0&-0.06&0.0 \\\\-1.0&-0.04&-0.02&-0.04&0.0&0.0 \\\\ \ 0.0&-0.24&0.34&-0.03&0.91&0.0 \\\\ 0.03&0.01&-0.01&-0.7&-0.02&-0.72 \\\\ 0.03&0.01&-0.01&-0.71&-0.02& 0.7 \\\\ 0.0&-0.41&0.82&0.0&-0.41&0.0 \ end {matrix} \ right] $$

现在,可以看到$ \的第六个奇异值Sigma $为零。因此,$ U $的对应(第六个)行是$$ \ left [\ begin {matrix} 0.0&0.0&0.0&-0.24&-0.97&0.07 \ end {matrix} \ right] $$,奇异的方向。这意味着在Jacobian的这一刻,末端执行器无法朝这个方向移动。换句话说,关于矢量$ \ hat {n} =-0.24 \ hat {i} -0.97 \ hat {j} +0.07 \ hat {k} $的末端执行器的角速度$ω$是不可能的此时

$ V ^ T $的对应第(6)列为
$$ \ left [\ begin {matrix} 0.0 \\\\ 0.0 \\\\ 0.0 \\\-0.72 \\\\\ 0.7 \\\\ 0.0 \ end {matrix} \ right] $$,这是关节空间中上述奇点的方向,这意味着上述奇点是在末端当$ \ dot {\ theta_1} = 0,\ dot {\ theta_2} = 0,\ dot {\ theta_3} = 0,\ dot {\ theta_4} =-0.72 $个单位,$ \ dot {\ theta_5} = 0.7 $个单位和$ \ dot {\ theta_6} = 0 $。

#2 楼

您需要找到空空间,而不仅仅是查找零行或整列。我并不是说任何特定的jacobian的零空间,而是指给定闭合形式的Jacobian的所有奇异配置的解析空间。通常,这是由于万向节锁定(而不是无法访问的状态空间)而发生的。

以封闭形式进行此操作非常非常困难。但是有时您可以稍微减少空间。

#3 楼

如果我错了,请纠正我。让我们检查一下雅可比矩阵是否失去其秩(例如,使用Matlab或Octave)。这应该表明奇点。然后,我们尝试检查Jacobian子矩阵的等级,以找出失去了哪个自由度。