初步规则
Denavit-Hartenberg方法的第一步是为运动学图表分配坐标系。在开始查看Denavit-Hartenberg坐标系规则之前,有几个初步规则。首先,记住每个关节至少需要一个坐标系,末端执行器也需要一个坐标系。注意,坐标系可以多于这个数量,有时多一些坐标系会非常有用,但不能少于这个数量。例如,如果运动学图表有三个关节,您需要至少四个坐标系;如果有五个关节,则需要至少六个坐标系,等等。
第二条初步规则与我们绘制坐标轴的方式有关,以便他人能够理解我们的图纸。这个规则是,我们可以用六种方式绘制坐标轴:向上、向下、向右、向左、第一象限对角线,以及第三象限对角线。当我们在第一象限绘制轴时,表示轴进入页面或屏幕;当我们在第三象限绘制轴时,表示轴从页面或屏幕出来。我们不能在第二或第四象限绘制轴,因为那样就不清楚它们的方向。

Denavit-Hartenberg规则
在为这些坐标系分配时,您需要遵循四个Denavit-Hartenberg规则。我将先告诉您所有四个规则,然后给您一些例子来帮助理解它们的含义。以下是四个规则:
- Z轴必须是旋转关节的旋转轴或移动关节的运动方向。
- X轴必须垂直于前一个坐标系的Z轴。
- X轴必须与前一个坐标系的Z轴相交。
- Y轴必须按照右手法则绘制。
这就是全部内容。我们有一个关于Z轴的规则,两个关于X轴的规则,以及一个关于Y轴的规则。让我们看一些例子。
例子
假设您有一个运动学图表,看起来像这样:

首先,我们可以看到这个图表上至少需要四个坐标系,因为每个关节需要一个坐标系,末端执行器也需要一个。现在,让我们应用规则1:对于旋转关节,Z轴必须是旋转轴,即关节旋转的轴。请记住,方向没有关系,换句话说,我可以将Z0向下画,也可以向上画,我可以将Z1画进页面,也可以画出页面。对于移动关节,Z轴必须是关节移动的方向。对于移动关节,这个方向由立方体旁边的方块位置指示,所以Z轴必须是向右或向左的方向。

现在,如何在末端执行器上绘制Z轴?随着我们逐步应用这些规则,我们会发现有些情况下规则并不适用。在这些情况下,轴的方向是我们自由选择的。所以这里我可以将Z轴画成任何方向。如果我将其画成与最后一个Z轴相同的方向,我的数学计算会在以后的步骤中简化,但这不是一个实际的规则,您可以在这里将Z轴画成任何方向。

好了,我们完成了规则1,即Z轴必须是旋转轴或运动方向。让我们继续规则2,X轴必须垂直于前一个坐标系的Z轴。当我们将这个规则应用于零坐标系时,这是另一个规则不适用的情况,因为没有前一个坐标系。所以我可以将X轴画成任何允许的方向,向右、向左、进页面或出页面。当然,我不能让X轴向上或向下,因为那样就不会垂直于它自己的Z轴。所以我选择将其画成向右。

现在,当我们绘制第一个坐标系的X轴时,我们没有太多自由。我需要遵循规则2,规则2告诉我,X轴必须垂直于前一个坐标系的Z轴。换句话说,X1必须垂直于Z0。所以我不能将X画成向上或向下,因为那样不会垂直于Z0。当然,我也不能将X画成进页面或出页面,因为在坐标系中所有轴必须彼此垂直,而Z1已经从页面出来了。所以我只有两个选择,可以将X画成向右或向左,这里方向无所谓,我将其画成向右。

现在,让我们将规则2应用于第二个坐标系,规则2告诉我,X2必须垂直于Z1,即前一个坐标系的Z轴,这意味着X2不能画成进页面或出页面,因为那样会与Z1平行,而不是垂直。我也不能将X画成向右或向左,因为那样会与它自己的Z轴平行。所以我只有两个选择,向上或向下,选择哪个无所谓,我选择向上。

最后,让我们将规则2应用于第三个坐标系,我必须画X3,使其垂直于Z2,所以我可以选择向上、向下、进页面或出页面,我选择向上,因为我知道每次我能保持轴方向与上一个坐标系相同时,最终的数学计算会更简单。

好了,现在我们已经通过了两个规则,一是Z轴必须是旋转轴或运动方向,二是X轴必须垂直于前一个坐标系的Z轴。现在我们来看规则三,也与X轴有关,X轴必须与前一个坐标系的Z轴相交。这是最难的规则,所以我会花点时间解释这个规则,然后应用到这个机械臂。
在我们绘制坐标系的轴时,我们将轴绘制成短棍,末端有一个箭头,但实际上轴在两个方向上无限延伸,就像数轴一样。现在,如果我们在平面上绘制二维线条,只有一种方式让两条无限线不相交,那就是它们平行。如果两条线不平行,它们会在某处相交。但当我们在三维空间绘制线条时,情况就不一样了。我们可以有不平行但仍不相交的线条,那会发生在一条线高于或低于另一条线的情况。实际上,在三维空间中,两条线甚至可以彼此垂直,但仍不相交,因为两条线不在同一个平面上。这就是为什么我们需要第三个规则,除了第二个规则外。第二个规则告诉我们,每个X轴必须垂直于前一个坐标系的Z轴,第三个规则说,X轴还必须与前一个坐标系的Z轴相交。
现在假设您有两条线在三维空间中,并且假设这两条线彼此垂直,但它们不相交,因为一条线在另一条线的上方或下方。我们如何更改线条,使它们保持垂直但也相交呢?事实证明有两种方法可以做到这一点。一种方法是旋转或更改其中一条线的方向,直到它碰到另一条线。第二种方法是平移其中一条线,直到它碰到另一条线。
当我们将这个规则应用到我们的机器人运动学图表时,我们总是会尝试使用第一种方法,即先旋转线条。如果我们无法通过旋转使线条相交,那么我们会尝试第二种方法,平移线条。
让我们将这个规则应用到我们的运动学图表中。对于零坐标系,规则三不适用,因为没有前一个坐标系,所以这里没问题。让我们继续看第一个坐标系,规则三说X1必须与Z0相交。这里是X1,这里是Z0,如果X1在两个方向上无限延伸,它会与Z0相交吗?会的,所以这里遵循了规则3。

Z0与X1相交
那么对于第二个坐标系呢?如果X2在两个方向上延伸,它会与Z1相交吗?不会,它会在Z1前方经过。

Z1与X2不相交
所以我们如何解决这个问题呢?我们之前学到过有两种方法,我们可以更改X1的方向,或者我们可以移动整个线条,这意味着我们必须移动整个坐标系。我们总是先尝试更改X的角度或方向,我们可以在这里这样做吗?可以的,如果我们像这样旋转整个坐标系。但是如果我们这样做,我们会违反第一个关于Z方向的规则(Z方向必须在运动方向)所以在这个情况下,我们无法通过旋转坐标系来遵循第三个规则。

旋转90°后X2与Z1相交,但是Z2轴方向也发生改变
所以我们继续第二种解决问题的方法,移动坐标系。我们应该朝哪个方向移动坐标系呢?事实证明,有一个简单的方法可以找出答案,我们从Z1轴绘制一条线到X2轴,这条线与Z1和X2都垂直,然后我们沿着这条线移动整个2坐标系,直到X2与Z1相交。

平移X2与Z1相交
现在,重要的是要记住,坐标系2仍然附着在移动关节上,即使我们已经将坐标系移动到第二个旋转关节上方的位置。我们并没有改变坐标系与机械臂的连接方式。例如,当第二个旋转关节旋转时,2坐标系也会旋转。随着移动关节旋转并在空间中移动,第一个坐标系不会随着第二个关节旋转,但第二个坐标系会旋转,因为即使它在空间中的位置不同,它仍然物理上附着在第三个关节上。
现在我们还需要检查末端执行器的坐标系。确保所有的坐标系,即使是末端执行器上的坐标系,也要遵循所有适用的规则。那么X3与Z2相交吗?相交,所以我们完成了规则三。

X3与Z2相交
规则四比规则三容易得多。这个规则说,我们必须绘制Y轴,使整个坐标系遵循右手法则。右手法则可以用多种方式表达,但这是我认为最容易使用的一种。将您的右手完全摊开,拇指直指,像这样,把食指指向X方向,把拇指指向Z方向,那么您的手掌方向就是Y方向。

让我们在图纸上添加Y轴。

到此我们完成了D-H坐标系的创建。我们将继续下一个讲座,创建D-H参数表。