今天,我们要把目光收回到机器人身上,看看我们怎样用一系列坐标系来描述一个链式机械臂,机器人学常说的DH参数(Denavit–Hartenberg parameters)又是什么。
1 相邻关节的坐标变换
在以往的一篇文章()中,链式机器人可以由关节-连杆-关节-连杆-……-连杆-末端执行器(joint - link - joint - link - …… - link - end effector )这样的结构来描述。这就需要知道由连杆相连的两个关节,怎么描述它们的位置/朝向(position/orientation)关系?
假设一个关节固定,另一个关节在自由空间中相对于这个固定关节将会有六个自由度;若将每个关节固连一个坐标系,则可以由上一篇文章所讲的齐次变换来描述关节间的位置关系。但是这样做既无法很好地描述一个独特结构而非简单自由刚体的链式机械臂系统、很难将坐标变换与关节本身的参数(旋转关节的旋转角度、平移关节的平移距离)联系起来。
直接使用齐次坐标变换不顾机械臂本省的结构限制,这种表达方式是冗余低效的。如果根据关节的轴之间的关系限制坐标系的选择,可以得到更高效的表达方法。
2 DH参数与坐标系确定(frame attachment)
2.1 含义
DH参数指的是用四个参数表达两对关节连杆之间位置角度关系的机械臂数学模型和坐标系确定系统。它通过限制原点位置与X轴的方向,人为地减少两个自由度,因此它只需要用四个参数即可表达关节之间原本是六个自由度地坐标变换。它是很通用的convention(惯例),而不是一个知识点。
DH中四个参数的物理含义:
- link length(连杆长度):两个关节的轴(旋转关节的旋转轴、平移关节的平移轴)之间的公共法线长度
- link twist (连杆扭转):一个关节的轴相对于另一关节的轴绕它们的公共法线旋转的角度
- link offset (连杆偏移):一个关节与下一个关节的公共法线和它与上一个关节的公共法线沿这个关节轴的距离
- joint angle (关节转角):一个关节与下一个关节的公共法线和它与上一个关节的公共法线绕这个关节轴的转角
结合坐标系进行理解,会清楚很多。
首先最重要的两条”线“:一个关节的轴(axis)、一个关节的轴与相邻关节轴之间的公共法线(common normal)。在DH参数体系中,将axis定为Z轴;common normal定为X轴,且X轴的方向为从本关节指向下一个关节。
2.2 示例
以RPRR机器人为例
Ⅰ.确定原点
首先无论是确定原点还是坐标轴,都是从第一个关节开始逐一确定的。
原点为本关节与下一关节公法线和本关节轴的交点,如果是最后一个关节则为前一个关节与本关节公共法线与本关节轴的交点。该规则看似简单,但实际应用中需要注意,如下图的 $ O_2$,这里第二个关节与第三个关节的轴相交了,所以它们的公共法线就在轴的交点上。
Ⅱ.确定Z轴
Z轴从原点出发,与关节轴重合。显然,每个关节的Z轴都可以有两个选择(如上图一二四关节可以选择上或下,三关节可以选择往外或往内),由自己自由决定;但在地面坐标系和末端执行器坐标系已知的情况下,我们通常希望当前Z轴的夹角与上一个已经确定Z轴的夹角能是0°就不要是180°,最后一个关节的Z轴若能与end effector的Z轴重合则选择让它们重合。则Z轴标注如下:
注意图中的Z3既可以选择指向屏幕外,也可以选择指向屏幕内。
Ⅲ.确定X轴
如上文所说,X轴为本关节指向下一关节轴的公共法线,与两个关节轴都垂直。对于大部分情况这是非常清楚的,但两个Z轴相交时无法确定X轴的方向,这时候由一个公约(convention)确定:选择X轴的方向使得当前Z轴与下一个Z轴的夹角(即当前关节与下一个关节的link twist)为正且小于180°(只对Z轴相交时使用,角度的正负由右手规则确定,大拇指指向方向为X轴正向)。而当两个Z轴平行或重合时,X轴的选择比较随意,通常尽量让它与前或后一致。对于最后一个关节,尽量选择与end effecor更接近的坐标系。
一旦原点、Z轴和X轴都确定,我们可以根据右手定则确定Y轴,所有关节的坐标系也就唯一确定了。
3 DH参数表
确定坐标系以后,我们可以用更简洁的方法来表示上面很绕口的四个参数:
对照上面RPRR机械臂的图,把每一个关节的各项参数找出来。通常我们把这些参数做成一个表(注意绕某个轴旋转的角度我们采用右手定则确定正方向):
除了$\theta_1, \ d_2, \ \theta_2, \ \theta_4 $为关节自身变量外,其他对应变量如下图所示
4 小结
通过这篇文章,可以弄清楚以下问题:
-
DH参数如何通过限制坐标轴的选择,用四个参数表示六个自由度的空间变换?
-
什么样的坐标变换是DH参数无法表达的?
如:一个坐标系的X轴与另一个坐标系的Z轴平行
-
确定每个关节坐标系和DH参数的步骤是什么?