六、雅克比:已知连杆位形,会用几何法求雅可比矩阵

在机器人学中,通常使用雅可比将关节速度与操作臂末端的笛卡尔速度联系起来,关节角速度左乘雅可比矩阵可得到机械臂末端的笛卡尔速度矢量。

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} 10​T21​T32​T​=⎣⎢⎢⎡​c1​s1​00​−s1​c1​00​0010​0001​⎦⎥⎥⎤​=⎣⎢⎢⎡​c2​s2​00​−s2​c2​00​0010​l1​001​⎦⎥⎥⎤​=⎣⎢⎢⎡​1000​0100​0010​l2​001​⎦⎥⎥⎤​​
从坐标系{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+1​Riωi​+θ˙i+1​i+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+1​R(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​−s2​0​s2​c2​0​001​⎦⎤​⎣⎡​0l1​θ˙1​0​⎦⎤​=⎣⎡​l1​s2​θ˙1​l1​c2​θ1​0​⎦⎤​3ω3​=2ω2​3v3​=⎣⎢⎡​l1​s2​θ˙1​l1​c2​θ˙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] 30​R=10​R21​R32​R=⎣⎡​c12​s12​0​−s12​c12​0​001​⎦⎤​

0 v 3 = 3 0 R 3 v 3 {}^{0}v_{3}={ }_{3}^{0} R{}^{3}v_{3} 0v3​=30​R3v3​

通过这个变换可以得到
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​=⎣⎢⎢⎡​−l1​s1​θ˙1​−l2​s12​(θ˙1​+θ˙2​)l1​c1​θ˙1​+l2​c12​(θ˙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(Θ)=[l1​s2​l1​c2​+l2​​0l2​​]
坐标系{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(Θ)=[−l1​s1​−l2​s12​l1​c1​+l2​c12​​−l2​s12​l2​c12​​]
出自:机器人学复习必看

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐