一起学DH矩阵

1.DH矩阵的由来

已知在三维空间中,体、面、线均是由点构成的。为了对空间物体的进一步了解,我们必然需要描述空间中点的位置。那么我们如何表示点的位置呢?

聪明的小伙伴可能已经想到了,我可以找一个参考呀。就比如说我们把苍蝇看成一个点的话,需要研究点的位置时,我们可以将墙角视为参考,得出苍蝇在墙角上方100cm趴着的结论。对,就是这个道理,这个参考我们可以叫做参考系。因为空间是三维的,那么我们需要三个基构成一个参考系。比如一维空间是直线,我们可以用一个长为1mm的线段作为参考,与原点间隔几个参考长度,目标的位置就是几mm;二维空间的参考是X轴、Y轴,也就是两个彼此正交的长度为1的向量。那类比一下,三维空间的基向量也就是三个彼此正交、长度为1的向量。

建立了参考之后,我们在看下参考系,也就是三个基向量之间的关系。在看这个问题时,需要了解内积的概念。我们把三个基向量记为\vec{i},\vec{j},\vec{k}。由上面提到的三个基向量彼此正交、模为1可以得到以下的式子。

一起学DH矩阵_第1张图片

一起学DH矩阵_第2张图片

 建立好坐标系之后,我们便可以表示空间中某一点的位置了。比如说P=p_{x}\vec{i}+p_{y}\vec{j}+p_{z}\vec{k},其中p_{x},p_{y},p_{z}f分别为该点在三个基向量的投影,P点又可以简化表示为(p_{x},p_{y},p_{z})。由于空间中三个基向量并不是唯一的,类似于你用墙角做参考,他用门框做参考。因此我们还可以选一组基\vec{u},\vec{v},\vec{w},那么类似的,点P也可以在这组基下表示,不过相应的参数会变成(p_{u},p_{v},p_{w})

接下问题来了,重点也来了。如果我已知两组基向量,还有在基\vec{u},\vec{v},\vec{w}下的坐标表示(p_{u},p_{v},p_{w}),我们如何求解在\vec{i},\vec{j},\vec{k}下的坐标表示(p_{x},p_{y},p_{z})呢?

已知在这组基下,p_{x}=\vec{i}*P。上文中提到P=p_{x}\vec{i}+p_{y}\vec{j}+p_{z}\vec{k},又因为各个基向量之间正交,因此结果只剩下p_{x},其余均为0。由于P点是固定的,不同表示方式的结果是相同的。因此我们使用(p_{u},p_{v},p_{w})来表示点P。便可以得到以下的式子。

一起学DH矩阵_第3张图片

 式子为方程组,表示为矩阵运算较为简单,结果如下图所示。其中左侧为\vec{i},\vec{j},\vec{k}基下的表达方式,右侧为旋转矩阵和\vec{u},\vec{v},\vec{w}基下的点的表达方式。

一起学DH矩阵_第4张图片

 通过观察可以发现,每一列分别为\vec{u},\vec{v},\vec{w}的基向量在\vec{i},\vec{j},\vec{k}下的投影。并且如果我们知道了中间3*3的旋转矩阵,便可以实现不同表达方式下点的表达方式的转化。仅依靠投影这一数量关系不利于我们的计算,既然是旋转,那就应尽可能与角度建立关系。旋转矩阵表达的是两个矩阵之间的变换关系。以左图中两矩阵绕X轴旋转为例,我们可以得到新矩阵的三个基坐标在原先矩阵的分解为右图中的矩阵。

一起学DH矩阵_第5张图片一起学DH矩阵_第6张图片

 同理我们可以得到绕Y轴、Z轴的旋转矩阵,如下图所示。

 一起学DH矩阵_第7张图片一起学DH矩阵_第8张图片

 我们将变换矩阵视为绕X、Y、Z轴旋转的组合,因此我们将三个矩阵连乘,就可以得到新矩阵绕旧矩阵的任意多轴、任意角度的旋转矩阵。结果较为繁琐,便不再展示,但是绕单一轴的旋转矩阵是需要记忆的。

往往空间变换不止有旋转还有平移,也就是两个坐标系之间还有平移变换。为了继承旋转变换的结果,我们将旋转变换矩阵作为变换矩阵的一部分。新构造的变换矩阵如下图所示。其中P_{3X1}的含义是指新的坐标系的坐标原点在旧的坐标系中的表达方式。

一起学DH矩阵_第9张图片

 最终,那找到这个变换矩阵的意义在哪里呢?这个变换矩阵可以求得一个点在不同基坐标系下的点的表达方式。假如我们在大地坐标下观察一个点,该点固连在一个动系上,该点相对于动系的表达方式是固定的,加入知道变换矩阵,我们便可以求出该动点在大地坐标系下的坐标表示。

 

 

你可能感兴趣的:(矩阵)