• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

8. 机器人正运动学—DH坐标系建立技巧

人工智能 hitgavin 2769次浏览 0个评论

目录

1. 引言

2. 建立DH坐标系的技巧

2.1 理清关节和连杆

2.2 画 z 轴

2.3 确定 x 轴

2.3.1 x轴方向

2.3.2 x轴起始点(坐标系原点)

2.4 小结

3. 总结


1. 引言

  关于DH参数上一篇文章介绍了基本概念和物理意义,但是还有一些内容没有提到。这篇文章主要介绍DH坐标系建立的一些技巧。  

2. 建立DH坐标系的技巧

  DH参数本身并不复杂,但是最初我在应用DH参数对机器人建立坐标系时的感受就一个字,乱。乱的原因是比较多的,罗列一下有这么几个点:  

  1. 在机器人上不太容易一一区分出各个连杆,而且连杆编号也容易乱
  2. 无法确定一段距离是连杆偏距 d 还是连杆长度 a
  3. 难以确定坐标系的 x 轴方向
  4. 建立完坐标系后发现通过DH变换无法使坐标系重合

那么建立DH坐标系有没有什么技巧呢?还真有,而且很有效。下面我们来介绍一下如何快速建立机器人的DH坐标系。  

2.1 理清关节和连杆

  第一步至关重要,你得首先搞清楚哪个是关节1,哪个是连杆1,与连杆1固连的坐标系1原点在哪里等等。还是想再次强调DH坐标系是建立在连杆的传动轴也就是远离基座的那个轴。因此对于串联机器人来说关节,连杆,坐标系按照距离基座由近到远排列应该是这样的:首先肯定是关节1,其次是安装在关节1上的连杆1,然后是与连杆1固连的坐标系1,之后是关节2。请注意连杆1的坐标系 
z 轴轴线实际是连杆2的驱动轴。   我们以一个六轴机器人建立DH坐标系为例,为了方便看清楚各个连杆,我把每个连杆涂成了不同的颜色,如下图所示。  
8. 机器人正运动学---DH坐标系建立技巧   想象一下如果没有给各个连杆涂上颜色,你还能一下子看出所有的连杆吗?你还能一下子区分出连杆1的坐标系应该建立在哪里吗?  

2.2 画 z 轴

  第二步我们要确定各个连杆坐标系的 
z 轴,这一步实际上是比较容易的,因为按照规则 
z 轴应该是和关节轴同向的。所以这里你唯一需要搞清楚的是这些 
z 轴分别是固连在哪个连杆上。由于DH参数是在传动轴上建立坐标系的(请原谅我已经无数次在强调这个问题,因为我曾经无数次掉进这个坑里),所以 
z 轴肯定是建立在连杆远离基座一侧的那个轴上的。   以下我们把与连杆固连的坐标系涂成与连杆相近的颜色。请先在自己的脑海中构思一下,看看你建立的 
z 轴与下面的图是一致的吗。  
8. 机器人正运动学---DH坐标系建立技巧  

2.3 确定 x 轴

  第三步我们需要确定 
x 轴,这一步是最关键也是比较困难的一部分。在这里需要确定的有两点,第一点你需要确定 
x 轴的方向第二点你得搞清楚坐标系的原点在哪里,也就是需要确定 
x 轴的起始点。  

2.3.1 x轴方向

  我们先解决第一点。DH坐标系的 
x 轴是连杆的驱动轴和传动轴的公垂线。所以 
x 轴的方向相对而言是比较容易获得的。我们知道两个不平行的向量的叉乘(外积)就是两个向量的公垂线了。所以我们定义:  
8. 机器人正运动学---DH坐标系建立技巧   这样你就可以确定连杆坐标系 
x 轴的轴线了。最终 
x 轴的指向你可以统一让它们指向传动轴。当驱动轴和传动轴平行时也很简单,你只需要画一条与两个轴都垂直且相交的向量,并且这个向量指向传动轴就可以了。  

2.3.2 x轴起始点(坐标系原点)

  接下来解决第二点。怎么确定坐标系 
x 轴的起点(其实就是坐标系原点)。提前说明一下,当连杆的驱动轴和传动轴是异面直线时这个问题是不存在的,因为异面直线的公垂线有且仅有一条,这个时候原点已经随着 
x 轴的确定一起确定下来了(就是 
x 轴和 
z 轴的交点)。   除了异面直线之外,驱动轴和传动轴还有两种关系,一个是平行关系,另一个是相交关系。这两种关系下驱动轴和传动轴的公垂线有无数条。在这个时候要如何确定坐标系的原点呢?   按照DH的规则,两个 
z 轴之间公垂线长度代表的是抽象的连杆长度,两个 
x 轴的公垂线长度代表的相邻两个连杆之间的偏距。你在确定坐标系原点时就需要考虑这些参数物理含义了。由于 
z 轴已经全部确定了, 
x 轴的方向也确定了,所以这个时候各个连杆的长度也就是DH参数中的 
a 已经确定了。那么我们在选择 
x 轴的起点时必须要保证经过上一个连杆 i-1 的坐标系绕 
z_{i-1} 轴旋转和沿 
z_{i-1} 轴平移后能让 
x_{i-1} 和 
x_{i} 重合。当你发现经过这样的变换不能让
x_{i-1}
x_{i}重合时说明你的连杆 i 坐标系选择的原点有问题。   上面这么说还是太晦涩了,我们举个例子。上面的六轴机器人连杆2的驱动轴和传动轴平行,连杆3的驱动轴和传动轴相交,我们就以这两个连杆为例来说明坐标系原点的确定过程。   在这之前我们还是先把基坐标系和连杆1坐标系确定下来,通常基座的 
x 轴指向机器人的正前方。因此基坐标系很容易就确定下来了。连杆1的驱动轴和传动轴是异面直线,因此连杆1的坐标系 
x 轴也可以轻松地根据前面提到的叉乘公式确定。这样基座和连杆1的坐标系就确定完了,如下图所示。  
8. 机器人正运动学---DH坐标系建立技巧   接下来的连杆2和连杆3就比较特殊了。当你试图找到 
z_{1} 和 
z_{2} 的公垂线时你发现又无数条。对于这种平行的连杆怎么确定其 
x 轴呢?其实很简单,你的连杆 1 坐标系不是已经确定好了嘛,只需要过这个坐标系原点作垂线与 
z_{2} 相交就可以了。这其实是最简单的连杆,不要把这个问题想复杂了就好。如果不相信,你可以按照前面说的规则检验一下。连杆 2 的坐标系确定之后如下图所示。  
8. 机器人正运动学---DH坐标系建立技巧   接下来就是连杆3了,你会发现连杆3的驱动轴和传动轴是相交的。连杆3的 
x_{3} 方向是容易确定的,因为只要驱动轴和传动轴不平行我们就可以利用叉乘公式确定确定 
x 轴的方向。但是同样的,这样的 
x 轴有无数个,要怎么选择呢?你可以试一下选 
z_{2} 和 
z_{3}的交点。先告诉各位这是对的。其实可以多找几个点,你会发现无论原点选在除这个点之外的任何地方,你要么需要在某个中间步骤向
y轴平移,要么就是最终你需要在 
z 轴方向再平移一段。这样我们就确定了连杆3的坐标系,如下图所示。观察后你会发现两个坐标系的原点重合,这说明连杆长度和连杆偏距都为0,这就是此类连杆的一个特点。  
8. 机器人正运动学---DH坐标系建立技巧   后面的连杆4也是类似的,驱动轴和传动轴相交,注意图里面的 
z_{3} 很不明显,不要把 
z_{2} 当成 
z_{3} 哦。叉乘后发现 
x_{4} 向下,原点当然也是在 
z_{3} 和 
z_{4} 的交点。后面的连杆也都大同小异。这里我就不一一介绍了。   最后的六轴机器人DH坐标系建立完成后如下图所示。  
8. 机器人正运动学---DH坐标系建立技巧   最后我们写出这个机器人的DH参数表如下表所示。  

连杆编号\thetada\alphaoffset
1\theta_{1}d_{1}a_{1}90^{\circ }0
2\theta_{2}0a_{2}090^{\circ }
3\theta_{3}0090^{\circ }0
4\theta_{4}d_{4}090^{\circ }180^{\circ }
5\theta_{5}0090^{\circ }180^{\circ }
6\theta_{6}0000

  关于offset项是叠加在
\theta上面的偏置量,你可以理解为机器人处于零位时,驱动轴和传动轴依然存在夹角。  

2.4 小结

  前面感觉啰嗦了很多,不知道有没有说清楚,这里简单总结一下:当连杆驱动轴和传动轴是异面直线,公垂线(唯一)就是连杆的 
x 轴;当连杆的驱动轴和传动轴平行时,找到上一个连杆的坐标系原点,向当前连杆的 
z 轴作垂线,垂足就是当前连杆原点,垂线就是 
x 轴;当连杆的驱动轴和传动轴相交时,交点就是连杆坐标系原点,驱动轴和传动轴的叉乘就是 
x 轴方向。   这一块还是需要各位仔细去品味的,相信你经过不断的思考和尝试,一定可以变得通透。写这篇博客挺费力的,作图时间很长,但是我真的在这个过程里受益匪浅,对DH坐标系的理解也更进了一步。如果你一下子还不能完全理解,千万别着急,可以先放着,过几天再看,相信一定会有新的收获。  

3. 总结

  这篇文章我们主要介绍了DH坐标系建立的一些技巧,下一篇文章会介绍修改DH参数以及和标准DH参数之间的差别。由于个人能力有限,所述内容难免存在疏漏,欢迎指出,欢迎讨论。  


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明8. 机器人正运动学—DH坐标系建立技巧
喜欢 (0)

您必须 登录 才能发表评论!

加载中……