正向运动学所解决的问题是:在给定关节角θ的情况下,求出末端坐标系{b}相对于空间坐标系{s}的位形。

有两种表达形式:基于基座标系和基于末端坐标系。

基于基座坐标系

以一个RPR机械臂为例:

 [公式] 时,我们将其称为机器人的零位(初始位置),并使用 [公式] 来此时末端坐标系{b}相对于空间坐标系{s}的位形。对于该RPR机械臂有[公式]

[公式]

首先转动轴3,角度为 [公式] 由于其为旋转轴,故 [公式] ,[公式] 。( [公式] 表示绕旋转轴3旋转时,坐标系{s}原点处的速度)

[公式] 也可以使用 [公式] 计算。

此时 [公式]  [公式] 

然后沿着移动关节2移动0.5个单位长度。其角速度为零,故其线速度必为单位向量:

[公式]  [公式] 

这里需要提及的是关节3的动作并不会影响螺旋轴 [公式] 的表达。(3并不在坐标系{s}和螺旋轴[公式]之间)

在使关节1转动 [公式] ,此时 [公式]

[公式] (因为螺旋轴与原点重合,故该点线速度为0)

[公式]

同理,关节2、3的动作并不会影响螺旋轴 [公式] 的表达

clear
clc
M=[1 0 0 3;0 1 0 0;0 0 1 0;0 0 0 1]
S_1=[0 0 1 0 0 0]'
S_2=[0 0 0 1 0 0]'
S_3=[0 0 1 0 -2 0]'
Slist=[S_1 S_2 S_3]
thetalist=[pi/6;0.5;pi/4]
T=FKinSpace(M,Slist,thetalist)

由此对于基于基座标的正向运动学总结:

  1. 当机器人处于初始位置时确定其 [公式]
  2. 当机器人处于零位时,确定相对于坐标系的螺旋轴 [公式] ,参考坐标系为{s}
  3. 各关节变量 [公式]
  4. [公式]

基于物体坐标系

相同于基于基座坐标系的方法,我们从距离物体坐标系最远的关节开始计算。还是RPR机械臂的例子。

M依旧表示当机器人处于初始位置时,末端坐标系相对于基座坐标系的初始位形。

关节1旋转 [公式]。为了区分将螺旋轴用 [公式] 表示。此时,[公式]  [公式] 表示的时在{b}原点处的线速度。 [公式] (这里是右乘)。

同理 [公式]  [公式] 

最终的位形 [公式] 

clear
clc
M=[1 0 0 3;0 1 0 0;0 0 1 0;0 0 0 1]
B_1=[0 0 1 0 3 0]'
B_2=[0 0 0 1 0 0]'
B_3=[0 0 1 0 1 0]'
Blist=[B_1 B_2 B_3]
thetalist=[pi/6;0.5;pi/4]
T=FKinBody(M,Blist,thetalist)

相同于基于基座坐标系,将其总结为:

  1. 当机器人处于初始位置时确定其 [公式]
  2. 当机器人处于初始位置时,确定相对于物体坐标系的螺旋轴 [公式] ,参考坐标系为{b}
  3. 各关节变量 [公式]
  4. [公式]

比较两者:

两者均是从距离基于(空间/物体)坐标系最远的关节开始变换,其变换并不会影响距离基于(空间/物体)坐标系更近的关节的螺旋轴的表达(=机器人零位时的表达);

选取的基于(空间/物体)坐标系的不同,并不会影响最终位姿。