操作臂运动学研究操作臂的运动特性,而不考虑使操作臂产生运动时施加的力。一般是位置、速度、加速度以及位置变量的所有高阶导数(不一定是时间)。
二、连杆的描述 2.1 连杆和运动链操作臂是由一系列刚体通过关节连接起来的运动链,刚体也称为连杆。连杆之间的相对运动如果是相对滑动,那么这个连接方式称为低副,常见的低副有:
上述低副的自由度都为1,进行机器人结构设计时应该优先选用低副作为连杆的连接方式,大部分的机器人连接都会采用低副中的旋转关节或移动关节。作为机械设计人员则需要关注单个连杆的许多特性:材料特性、强度、刚度、关节轴承和安装位置、外形、重量、转动惯量。
2.2 中心轴关系轴可以使用一个向量来表示,对于两个轴之间的关系,其实就是向量之间的关系。向量之间的距离和夹角是固定的,所以我们常常用这两个参数来描述,两个轴中心轴的关系。前者叫做连杆长度(Link Length),用字母 a a a表示,后者叫做连杆转角(Twist angle),用字母 α \alpha α表示。
两向量之间的距离是一个定值,无论它们之间的关系是平行、相交或异面。平行虽有无数条公垂线,但是距离固定,异面直线有且仅有一条公垂线,距离是一个定值,相交直线可以认为共垂线的距离为0,也是一个定值。
注意!向量之间的夹角范围是 [ 0 − 180 ] [0-180] [0−180],角度始终是正数,这是在描述向量关系的;从一个向量到另一个向量角度正负,其实是在描述过程(顺时针负数,逆时针为正)。
2.3 连杆关系前面讨论了中心轴之间的关系,中心轴向量之间的距离在物理上对应连杆长度( a a a),轴夹角对应转角转角( α \alpha α)。连杆就是连接中心轴的一个抽象杆,抽象杆之间的关系称为连杆关系,显然,一般是一个中心轴会对应两个连杆,分两种情况讨论:
-
中间位置,相邻连杆由一个公共轴连接,此时连杆之间的距离称为连杆偏距(Joint Offset),字母 d d d表示;连杆之间的夹角称为关节角(Joint Angle),字母 θ \theta θ表示。
-
首尾位置。首尾轴没有与之对应的后前轴,自然就没有 a a a和 α \alpha α概念,如果非要设置的话,规定为 a 0 = a n = 0 a_0=a_n=0 a0=an=0和 α 0 = α n = 0 \alpha_0=\alpha_n=0 α0=αn=0。关节1若是旋转的,规定 d 0 = 0 d_0=0 d0=0,零位 θ 1 = 0 \theta_1=0 θ1=0任意;关节1若是移动的,规定 θ 1 = 0 \theta_1=0 θ1=0,零位 d 1 d_1 d1是任意的。
从上述讨论可知:机器人每个连杆都可以用四个运动学参数表示。通常对于旋转关节, θ i \theta_i θi为关节变量,其他三个参数是固定不变的;对于移动关节, d i d_i di为关节变量,其他三个参数是固定不变的。这种描述机构运动关系的规则称之为Denavit-Hartenberg。
2.5 重要!连杆附加坐标系规定连杆除了长度外还有方向,确定方向之前需要确定坐标轴,我们规定
Z
Z
Z轴为旋转轴或移动方向,共垂线方向为
X
X
X。对于共垂线的处理就有了标准DH和改进DH的两种表示方法,他们之间的根本区别在于
X
X
X的位置,是在连杆的首部还是尾部,前者在尾部,后者在首部。
X
X
X的位置决定了坐标轴原点的位置,下面是改进DH表示方法: 下面是标准DH表示方法:
这里重点来说说改进DH参数:
连杆编号规定:基座开始为连杆编号,固定基座一般规定为杆0,往后是杆1 杆2 杆3 …。
中间连杆的规定:固连在连杆 i i i上的固连坐标称为坐标系 { i } \{i\} {i},坐标系 { i } \{i\} {i}的Z轴为 Z i Z_i Zi,坐标系 { i } \{i\} {i}的原点位于公垂线与关节轴 i i i的交点处, X X X轴方向由 i i i轴指向 i + 1 i+1 i+1轴,如果 a i = 0 a_i=0 ai=0,那么 X X X轴垂直于 Z i Z_i Zi和 Z i + 1 Z_{i+1} Zi+1的平面,和平常一样逆时针为正。
首尾连杆的规定:固连在机器人基座(即连杆0)上的坐标系为坐标系 { 0 } \{0\} {0}。这个坐标系是一个固定不动的坐标系,因此在研究机器人运动学问题时,常该坐标系作为参考坐标系。在这个参考坐标系中描述所有其他连杆坐标系的位置。
虽然,参考坐标系 { 0 } \{0\} {0}可以任意设定,但是为了使问题简化,通常设定 Z ^ 0 \hat Z_0 Z^0轴沿关节轴1的方向,并且当关节变量1为0时与参考坐标 { 1 } \{1\} {1}重合。按照这样的规定,总有 a 0 = 0.0 a_0=0.0 a0=0.0和 α 0 = 0.0 \alpha_0=0.0 α0=0.0。此外,当关节1为转动关节时, d 1 = 0.0 d_1=0.0 d1=0.0;当关节1为移动关节时, θ 1 = 0.0 \theta_1=0.0 θ1=0.0。
对于转动关节 n n n,设定 θ 0 = 0.0 \theta_0=0.0 θ0=0.0,此时 X ^ N \hat X_N X^N与 X ^ N − 1 \hat X_{N-1} X^N−1的方向相同,选取坐标系 { N } \{N\} {N}的原点位置使之满足 d n = 0.0 d_n=0.0 dn=0.0。对于移动关节 n n n,设定 X ^ N \hat X_N X^N轴方向使之满足 θ n = 0.0 \theta_n=0.0 θn=0.0。当 d n = 0.0 d_n=0.0 dn=0.0时,选取坐标 { N } \{N\} {N}的原点位于 X ^ N − 1 \hat X_{N-1} X^N−1轴与关节轴 n n n的交点位置。
Tips:若一个运动链有N个轴,那么杆个数有N+1个,坐标系也有N+1个。
运动学分析最终归结到一个坐标系里,这个坐标系的原点位于最后一个关节轴上。
三、坐标系中的连杆参数a i : {a_i}: ai:沿着 X i {X_i} Xi轴从 Z i {Z_i} Zi移动到 Z i + 1 {Z_{i+1}} Zi+1的距离; α i \alpha_i αi:绕着 X i {X_i} Xi轴从 Z i {Z_i} Zi旋转到 Z i + 1 {Z_{i+1}} Zi+1的角度; d i d_i di:沿着 Z i {Z_i} Zi轴,从 X i − 1 X_{i-1} Xi−1移动到 X i X_i Xi的距离; θ i \theta_i θi:绕 Z i Z_i Zi轴,从 X i − 1 X_{i-1} Xi−1旋转到 X i X_i Xi的角度;
对于一个新机构,可以按照下面的步骤正确的建立连杆坐标系。
- 找出各关节轴,并标出(或画出)轴线的延长线。在下面2-5步骤中,仅考虑相邻的轴线(关节 i i i和 i + 1 i+1 i+1);
- 找出关节轴 i i i和 i + 1 i+1 i+1之间的公垂线或者关节轴 i i i和 i + 1 i+1 i+1的交点,以关节轴 i i i和 i + 1 i+1 i+1的交点或公垂线与关节轴交点作为连杆坐标系{i}的原点;
- 规定 Z i Z_i Zi沿关节轴 i i i的指向;
- 规定 X i X_i Xi沿着公垂线的指向,如果关节轴 i i i和 i + 1 i+1 i+1相交,则规定 X i X_i Xi垂直于关节轴 i i i和 i + 1 i+1 i+1所在的平面
- 按照右手定则确定 Y i Y_i Yi
- 当一个关节变量为0时,规定坐标轴{0}{1}重合。对于坐标系{N},其原点与 X N X_N XN的方向可以任意选取。但是选取时尽量使连杆参数为0。
从运动结果来看,旋转关节 θ i \theta_i θi为关节变量,其他参数保持不变;移动关节 d i d_i di为关节变量,其他参数都是固定的。
一个典型的MDH参数表:
i i i α i − 1 \alpha_{i-1} αi−1 a i − 1 a_{i-1} ai−1 d i d_i di θ i \theta_i θi1000 θ 1 \theta_1 θ12900 d 2 d2 d20300 L 2 L2 L2 θ 3 \theta_3 θ3注意到前两个参数使用的标号是 i − 1 i-1 i−1,后两个是 i i i。这是因为 α i − 1 \alpha_{i-1} αi−1、 a i − 1 a_{i-1} ai−1是发生在连杆编号为 i − 1 i-1 i−1的杆上的,而 d i d_i di、 θ i \theta_i θi则是发生在关节 i i i上的。
四、MDH改进了什么?[1] https://blog.csdn.net/qq_21834027/article/details/85206561 [2] John J. Craig, 贠超. 机器人学导论[M]. 机械工业出版社, 2006.