正向运动学所解决的问题是:在给定关节角θ的情况下,求出末端坐标系{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)
由此对于基于基座标的正向运动学总结:
- 当机器人处于初始位置时,确定其
- 当机器人处于零位时,确定相对于坐标系的螺旋轴
,参考坐标系为{s}
- 各关节变量
基于物体坐标系
相同于基于基座坐标系的方法,我们从距离物体坐标系最远的关节开始计算。还是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)
相同于基于基座坐标系,将其总结为:
- 当机器人处于初始位置时,确定其
- 当机器人处于初始位置时,确定相对于物体坐标系的螺旋轴
,参考坐标系为{b}
- 各关节变量
比较两者:
两者均是从距离基于(空间/物体)坐标系最远的关节开始变换,其变换并不会影响距离基于(空间/物体)坐标系更近的关节的螺旋轴的表达(=机器人零位时的表达);
选取的基于(空间/物体)坐标系的不同,并不会影响最终位姿。
评论(0)
您还未登录,请登录后发表或查看评论