六、雅克比:已知连杆位形,会用几何法求雅可比矩阵
在机器人学中,通常使用雅可比将关节速度与操作臂末端的笛卡尔速度联系起来,关节角速度左乘雅可比矩阵可得到机械臂末端的笛卡尔速度矢量。
Exp.1:如图5-8所示是具有两个关节的操作臂,计算出操作臂末端的速度,将它表达成关节速度的函数,给出两种形式的解答,一种是用坐标系{3}表示的,另一种是用坐标系{0}表示的。
如图5-9所示,坐标系{3}固连于操作臂末端,求用坐标系{3}表示的该原点的速度,第二部分我们我们用坐标系{0}表示这些速度。
首先将坐标系固连在连杆上,如图5-9所示。
基坐标系的速度为0,从基坐标系{0}开始依次计算出每个坐标系原点的速度,连杆的坐标变换矩阵为
1
0
T
=
[
c
1
−
s
1
0
0
s
1
c
1
0
0
0
0
1
0
0
0
0
1
]
2
1
T
=
[
c
2
−
s
2
0
l
1
s
2
c
2
0
0
0
0
1
0
0
0
0
1
]
3
2
T
=
[
1
0
0
l
2
0
1
0
0
0
0
1
0
0
0
0
1
]
\begin{aligned} { }_{1}^{0} T &=\left[\begin{array}{cccc} c_{1} & -s_{1} & 0 & 0 \\ s_{1} & c_{1} & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right] \\ { }_{2}^{1} T &=\left[\begin{array}{cccc} c_{2} & -s_{2} & 0 & l_{1} \\ s_{2} & c_{2} & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right] \\ { }_{3}^{2} T &=\left[\begin{array}{llll} 1 & 0 & 0 & l_{2} \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right] \end{aligned}
10T21T32T=⎣⎢⎢⎡c1s100−s1c10000100001⎦⎥⎥⎤=⎣⎢⎢⎡c2s200−s2c2000010l1001⎦⎥⎥⎤=⎣⎢⎢⎡100001000010l2001⎦⎥⎥⎤
从坐标系{0}到坐标系{1}为旋转映射,坐标系{2}到坐标系{1}的映射为平移加旋转,从坐标系{3}到坐标系{2}只有平移,所以关节3的转角恒为0度。
i
+
1
ω
i
+
1
=
i
i
+
1
R
i
ω
i
+
θ
˙
i
+
1
i
+
1
Z
^
i
+
1
{ }^{i+1} \omega_{i+1}={ }_{i}^{i+1} R^{i} \omega_{i}+\dot{\theta}_{i+1}{ }^{i+1} \hat{Z}_{i+1}
i+1ωi+1=ii+1Riωi+θ˙i+1i+1Z^i+1
i + 1 v i + 1 = i i + 1 R ( i v i + i ω i × i P i + 1 ) { }^{i+1} v_{i+1}={ }^{i+1}_{i} R\left({ }^{i} v_{i}+{ }^{i} \omega_{i} \times{ }^{i} P_{i+1}\right) i+1vi+1=ii+1R(ivi+iωi×iPi+1)
这是从基座往末端推导的推导方向。
1
ω
1
=
[
0
0
θ
˙
1
]
1
v
1
=
[
0
0
0
]
2
ω
2
=
[
0
0
θ
˙
1
+
θ
˙
2
]
2
v
2
=
[
c
2
s
2
0
−
s
2
c
2
0
0
0
1
]
[
0
l
1
θ
˙
1
0
]
=
[
l
1
s
2
θ
˙
1
l
1
c
2
θ
1
0
]
3
ω
3
=
2
ω
2
3
v
3
=
[
l
1
s
2
θ
˙
1
l
1
c
2
θ
˙
1
+
l
2
(
θ
˙
1
+
θ
˙
2
)
0
]
\begin{gathered} { }^{1} \omega_{1}=\left[\begin{array}{c} 0 \\ 0 \\ \dot{\theta}_{1} \end{array}\right] \\ { }^{1} v_{1}=\left[\begin{array}{c} 0 \\ 0 \\ 0 \end{array}\right] \\ { }^{2} \omega_{2}=\left[\begin{array}{c} 0 \\ 0 \\ \dot{\theta}_{1}+\dot{\theta}_{2} \end{array}\right] \\ { }^{2} v_{2}=\left[\begin{array}{ccc} c_{2} & s_{2} & 0 \\ -s_{2} & c_{2} & 0 \\ 0 & 0 & 1 \end{array}\right]\left[\begin{array}{c} 0 \\ l_{1} \dot{\theta}_{1} \\ 0 \end{array}\right]=\left[\begin{array}{c} l_{1} s_{2} \dot{\theta}_{1} \\ l_{1} c_{2} \theta_{1} \\ 0 \end{array}\right] \\ { }^{3} \omega_{3}={ }^{2} \omega_{2} \\ {}^{3}v_{3}=\left[\begin{array}{c} l_{1} s_{2} \dot{\theta}_{1} \\ l_{1} c_{2} \dot{\theta}_{1}+l_{2}\left(\dot\theta_{1}+\dot{\theta}_{2}\right) \\ 0 \end{array}\right] \end{gathered}
1ω1=⎣⎡00θ˙1⎦⎤1v1=⎣⎡000⎦⎤2ω2=⎣⎡00θ˙1+θ˙2⎦⎤2v2=⎣⎡c2−s20s2c20001⎦⎤⎣⎡0l1θ˙10⎦⎤=⎣⎡l1s2θ˙1l1c2θ10⎦⎤3ω3=2ω23v3=⎣⎢⎡l1s2θ˙1l1c2θ˙1+l2(θ˙1+θ˙2)0⎦⎥⎤
这就是在坐标系{3}中表示坐标系{3}的原点的线速度,为了得到这些速度相对于固定基坐标系的表达,用旋转矩阵
3
0
{}^{0}_{3}
30对它们作旋转变换,即
3
0
R
=
1
0
R
2
1
R
3
2
R
=
[
c
12
−
s
12
0
s
12
c
12
0
0
0
1
]
{ }_{3}^{0} R={ }_{1}^{0} R_{2}^{1} R_{3}^{2} R=\left[\begin{array}{ccc} c_{12} & -s_{12} & 0 \\ s_{12} & c_{12} & 0 \\ 0 & 0 & 1 \end{array}\right]
30R=10R21R32R=⎣⎡c12s120−s12c120001⎦⎤
0 v 3 = 3 0 R 3 v 3 {}^{0}v_{3}={ }_{3}^{0} R{}^{3}v_{3} 0v3=30R3v3
通过这个变换可以得到
0
v
3
=
[
−
l
1
s
1
θ
˙
1
−
l
2
s
12
(
θ
˙
1
+
θ
˙
2
)
l
1
c
1
θ
˙
1
+
l
2
c
12
(
θ
˙
1
+
θ
˙
2
)
0
]
{ }^{0} v_{3}=\left[\begin{array}{c} -l_{1} s_{1} \dot{\theta}_{1}-l_{2} s_{12}\left(\dot{\theta}_{1}+\dot{\theta}_{2}\right) \\ l_{1} c_{1} \dot{\theta}_{1}+l_{2} c_{12}\left(\dot{\theta}_{1}+\dot{\theta}_{2}\right) \\ 0 \end{array}\right]
0v3=⎣⎢⎢⎡−l1s1θ˙1−l2s12(θ˙1+θ˙2)l1c1θ˙1+l2c12(θ˙1+θ˙2)0⎦⎥⎥⎤
雅克比矩阵的行数等于操作臂在笛卡尔空间的自由度的数量,雅可比矩阵的列数等于操作臂的关节数量,对于两连杆的操作臂,可以写出一个
2
×
2
2\times2
2×2的雅可比矩阵,该矩阵将关节速度和末端执行器的速度联系起来,坐标系{3}中的雅可比表达式为
3
J
(
Θ
)
=
[
l
1
s
2
0
l
1
c
2
+
l
2
l
2
]
{ }^{3} J(\Theta)=\left[\begin{array}{cc} l_{1} s_{2} & 0 \\ l_{1} c_{2}+l_{2} & l_{2} \end{array}\right]
3J(Θ)=[l1s2l1c2+l20l2]
坐标系{0}的雅可比矩阵为
0
J
(
Θ
)
=
[
−
l
1
s
1
−
l
2
s
12
−
l
2
s
12
l
1
c
1
+
l
2
c
12
l
2
c
12
]
{ }^{0} J(\Theta)=\left[\begin{array}{cc} -l_{1} s_{1}-l_{2} s_{12} & -l_{2} s_{12} \\ l_{1} c_{1}+l_{2} c_{12} & l_{2} c_{12} \end{array}\right]
0J(Θ)=[−l1s1−l2s12l1c1+l2c12−l2s12l2c12]
出自:机器人学复习必看