机器人运动学中的D-H变换

机器人运动学中的D-H变换

机器人中前向运动学主要关心机械臂中各关节变量与机械臂末段机构位置与方向的关系。关节变量在转动副中表示转动角度,在移动副中表示移动距离。

在机械臂中通常使用的一种坐标表示方法为D-H 变换。在D-H变换中,每一个同胚变换Ai均可以表示为四个基本变化的乘积形式。

其中\theta_i,a_i,d_i,\alpha_i分别为与关节i和连杆i相关联的参数。分别表示关节角度、连杆长度、连杆偏移、连杆弯曲度。由于在实际机械臂中A_i为单变量矩阵,因而,上述四个变量中三个参数在实际应用中为常数,而仅有关节变量\theta_i为变量。

我们知道,任意两个3为坐标系之间的关系可以使用一个6个变量的矩阵表示。但是,在上述D-H变换中,我们看到仅存在四个变量,那么这是如何实现的呢?答案在于,虽然我们要求坐标系i固定在连杆i上,但是,我们通过选择坐标系原点和方向减少上述变换矩阵中的参数。

很显然,并不是任意两个坐标系之间的变换均可以使用4个变量表示,接下来我们将确定使用四个变量表示变换矩阵的条件。

满足DH变换矩阵的两个条件

假设有两个坐标系,分别使用坐标系0和坐标系1表示。那么,这里将存在一个同胚矩阵A,可以将坐标系1中的表示转换到坐标系0中的表示。那么变换矩阵A可以使用四个参数表示的条件在于:

1. 坐标系1中的坐标轴x_1垂直于坐标系0中的坐标轴z_0

2. 坐标系1中的坐标轴x_1与坐标系0中的坐标轴z_0相交。

上述条件如上图所示。在上述条件下,存在四个独立的参数\theta,a,d,\alpha使得:

A=Rot_{z,\theta}Trans_{z,d}Trans_{x,a}Rot_{x,\alpha}

这里,将矩阵A写作:

因而,如果其满足DH条件,那么坐标系1中的坐标轴x_1垂直于坐标系0中的坐标轴z_0,因而x_1z_0上的投影x_1{\cdot}z_0=0,由于旋转矩阵R^0_1中的第一行为单位向量x_1在坐标系0中的投影,因而:

由于r_{31}=0,因而,接下来我们仅需要证明存在两个独立的变量\theta,\alpha使得:


根据旋转矩阵的条件,旋转矩阵每行和每列平方和为1,因而:

因而,存在两个独立的变量\theta,\alpha使得:

进一步的,可以根据旋转矩阵的条件确定其余参数。

上述条件2意味着坐标原点o_0,o_1之间的偏移可以表示为向量z_0x_1线性表示的形式。即:


通过上面两个条件,可以看到,同胚变换矩阵A可以表示为DH变换矩阵的形式。

其中,各个参数的意义如下:

a表示坐标轴z_0z_1沿坐标轴x_1的距离;

\alpha表示坐标轴z_0z_1在与坐标轴x_1垂直平面内的夹角;其中,\alpha的方向根据右手定则确定,由坐标轴z_0指向坐标轴z_1;

d表示从坐标原点o_0到坐标系1中的坐标轴x_1与坐标系0中的坐标轴z_0交点沿着坐标轴z_0方向的距离;

\theta表示坐标轴x_0x_1在与坐标轴z_0垂直平面内的夹角;

\alpha\theta的方向

编辑于 2016-05-22

文章被以下专栏收录