机械手末端速度计算(实例)
上一篇博文已经推导了相邻连杆i和连杆i+1间速度的传递
- 连杆i+1为旋转关节时有
i+1wi+1=ii+1R iwi+θ˙i+1 i+1Z^i+1(5-45) ^{i+1}w_{i+1}=^{i+1}_iR \ ^iw_i+\dot\theta{i+1}\ ^{i+1}\widehat Z{i+1} \tag{5-45} i+1wi+1=ii+1R iwi+θ˙i+1 i+1Zi+1(5-45)
i+1vi+1=ii+1R(ivi+iwi×iPi+1)(5-47) ^{i+1}v_{i+1}=^{i+1}_iR(^iv_i+^iw_i\times^iP_{i+1}) \tag{5-47} i+1vi+1=ii+1R(ivi+iwi×iPi+1)(5-47)
- 连杆i+1为移动关节时有
i+1wi+1=ii+1R iwii+1vi+1=ii+1R(ivi+iwi×iPi+1)+d˙i+1 i+1Z^i+1(5-48) ^{i+1}w_{i+1}=^{i+1}_iR\ ^iw_i \\ ^{i+1}v_{i+1}=^{i+1}_iR(^iv_i+^iw_i\times ^iP_{i+1})+\dot d_{i+1}\ ^{i+1}\widehat Z_{i+1} \tag{5-48} i+1wi+1=ii+1R iwii+1vi+1=ii+1R(ivi+iwi×iPi+1)+d˙i+1 i+1Zi+1(5-48)
例子
如下图所示,计算出操作臂末端的速度,将它表达成关节速度的函数。给出两种形式的解答,一种是用坐标系{3}表示,另一种是用坐标系{0}表示。

连杆间的旋转变换矩阵为
10R=[cosθ1−sinθ10sinθ1cosθ10001]21R=[cosθ2−sinθ20sinθ2cosθ20001]32R=[100010001]
^0_1R=
\left [ \begin{matrix}
\cos\theta_1 & -\sin\theta_1 & 0\\
\sin\theta_1 & \cos\theta1 & 0 \\
0 & 0 & 1
\end {matrix} \right]
\\
^1_2R=
\left [ \begin{matrix}
\cos\theta_2 & -\sin\theta_2 & 0\\
\sin\theta_2 & \cos\theta2 & 0 \\
0 & 0 & 1
\end {matrix} \right]
\\
^2_3R=
\left [ \begin{matrix}
1 & 0 & 0\\
0 & 1 & 0 \\
0 & 0 & 1
\end {matrix} \right]
10R=⎣⎡cosθ1sinθ10−sinθ1cosθ10001⎦⎤21R=⎣⎡cosθ2sinθ20−sinθ2cosθ20001⎦⎤32R=⎣⎡100010001⎦⎤
对连杆依次使用上一篇博文中的式(5-45)和(5-47),就有
1w1=[00θ˙1](5-50)
^1w_1=\left [ \begin {matrix}
0 \\
0 \\
\dot \theta_1
\end {matrix} \right ] \tag{5-50}
1w1=⎣⎡00θ˙1⎦⎤(5-50)
1v1=[000](5-51) ^1v_1=\left [ \begin{matrix} 0 \\ 0 \\ 0 \end {matrix}\right] \tag{5-51} 1v1=⎣⎡000⎦⎤(5-51)
2w2=12R 1w1+θ˙2 2Z^2=[00θ˙1+θ˙2](5-52) ^2w_2=^2_1R\ ^1w_1+\dot \theta_2\ ^2\widehat Z_2=\left [ \begin {matrix} 0 \\ 0 \\ \dot\theta_1+\dot \theta_2 \end {matrix}\right ] \tag{5-52} 2w2=12R 1w1+θ˙2 2Z2=⎣⎡00θ˙1+θ˙2⎦⎤(5-52)
2v2=12R(1v1+1w1×1P2)=[c2s20−s2c20001]([000]+[00θ˙1]×[0l10])=[l1s2θ˙1l1c2θ10](5-53) ^2v_2=^2_1R(^1v_1+^1w_1\times ^1P_2) =\left [\begin{matrix} c_2 &s_2& 0 \\ -s_2& c_2 &0 \\ 0 & 0& 1 \end {matrix}\right] \left ( \left[ \begin{matrix} 0\\ 0 \\ 0 \end{matrix} \right] +\left[ \begin{matrix} 0\\ 0 \\ \dot\theta_1 \end{matrix} \right] \times \left[ \begin{matrix} 0\\ l_1\\ 0 \end{matrix} \right] \right)\\ =\left [ \begin{matrix} l_1s_2\dot \theta_1 \\ l_1c_2\theta_1 \\ 0 \end{matrix}\right] \tag{5-53} 2v2=12R(1v1+1w1×1P2)=⎣⎡c2−s20s2c20001⎦⎤⎝⎛⎣⎡000⎦⎤+⎣⎡00θ˙1⎦⎤×⎣⎡0l10⎦⎤⎠⎞=⎣⎡l1s2θ˙1l1c2θ10⎦⎤(5-53)
3w3=23R2w2+θ˙2 2Z^2=2w2(5-54) ^3w_3=^3_2R ^2w_2+\dot \theta_2\ ^2\widehat Z_2=^2w_2 \tag{5-54} 3w3=23R2w2+θ˙2 2Z2=2w2(5-54)
3v3=23R(2v2+2w2×2P3)=[l1s2θ˙1l1c2θ˙1+l2(θ˙1+θ˙2)0](5-55) ^3v_3=^3_2R(^2v_2+^2w_2\times ^2P_3)=\left [ \begin{matrix} l_1s_2\dot \theta_1 \\ l_1c_2\dot\theta_1+l_2(\dot\theta_1+\dot\theta_2) \\ 0 \end{matrix} \right]\tag{5-55} 3v3=23R(2v2+2w2×2P3)=⎣⎡l1s2θ˙1l1c2θ˙1+l2(θ˙1+θ˙2)0⎦⎤(5-55)
求速度相对于固定极坐标系的变换
30R=10R 21R 32R=[c12−s120s12c120001](5-56)
^0_3R=^0_1R\ ^1_2R\ ^2_3R=\left[\begin{matrix}
c_{12} &-s_{12} &0\\
s_{12} &c_{12} &0 \\
0 & 0& 1
\end{matrix}\right]\tag{5-56}
30R=10R 21R 32R=⎣⎡c12s120−s12c120001⎦⎤(5-56)
通过这个变换得到
0v3=[−l1s1θ˙1−l2s12(θ˙1+θ˙2)l1c1θ˙1+l2c12(θ˙1+θ˙2)0](5-57)
^0v_3=\left[\begin{matrix}
-l_1s_1\dot\theta_1-l_2s_{12}(\dot\theta_1+\dot\theta_2)
\\ l_1c_1\dot\theta_1+l_2c_{12}(\dot\theta_1+\dot\theta_2)
\\0
\end{matrix}\right]\tag{5-57}
0v3=⎣⎡−l1s1θ˙1−l2s12(θ˙1+θ˙2)l1c1θ˙1+l2c12(θ˙1+θ˙2)0⎦⎤(5-57)
参考文献
[1] JOHN J.CRAIG. 机器人学导论: 第3版[M]. 机械工业出版社, 2006.
本文详细解析了一个机械手末端速度的计算实例,利用相邻连杆间的速度传递公式,逐步推导出了操作臂末端速度的两种表达形式:一种是相对于末端坐标系的表示,另一种则是相对于基坐标系的表示。
2196

被折叠的 条评论
为什么被折叠?



