赞
踩
运动学问题是在不考虑引起运动的力和力矩的情况下,描述机械臂的运动。这篇文章是我翻过了几本机器人教材再参考网上各种博客的总结,先说看资料过程中的感想/结论:网上的博客基本不完整,要详细地了解DH建模法还是直接看书比较好。教材中《机器人建模与控制》把标准DH建模法讲得比较清楚,主要是它的坐标系建模方法比较简单、直接,因此这篇文章总结一下《机器人建模与控制》里DH建模法的整个过程。
1.关节、连杆等物理量的描述
不同的教材这个部分的描述不一样,一定要先理清楚再看下面的核心内容,最好自己画一个示意图。
关节&连杆:(见图1)
1)关节i连接连杆i-1和连杆i
2)关节i被驱动时,连杆i发生转动
关节&坐标系:
是第i+1个关节的驱动轴
以上约束条件保证了关节i被驱动时,连杆i以及相连坐标系Oi都将经历一个相应的运动。
表达两个坐标系之间的转换关系,通常需要一个旋转矩阵R和位移矩阵P,一共12个参数。但是对于常规的机械臂来说,只要满足如下两个约束条件,即可以用4个参数表达清楚坐标系的转换关系,即 。(4个参数的存在唯一性证明参考《机器人建模与控制》)
DH法的这两个约束条件是:
后一个关节坐标系 的 x轴要垂直于前一个坐标系 的z 轴。
后一个关节坐标系 的 x轴要和前一个坐标系 的 z 轴相交,见图2。
建立坐标轴的步骤如下:
1)确定Zi轴
作为第i+1个关节的驱动轴,其方向和关节轴线方向保持一致。例如Z0是第1个关节的驱动轴,Z1是第2个关节的驱动轴。可能看上去有点混乱,但是符合规则的,这保证了:当关节i被驱动时,连杆i以及与其相连的坐标系 OiXiYiZi,将会经历一个对应的运动。
另外 Zi轴的方向符合右手定则,注意和关节的转动方向对应!
2)确定基础坐标系
由前面的讨论可知,满足DH建模约束条件的坐标变换可以用 四个参数得到!
基础坐标系的选择近乎是任意的,我们可以选择将基础坐标系的原点 Oo放置在Z0 轴上任何一点。然后,可以通过任意方便的方式来选择X0轴和Y0轴。但是建立0坐标系时,要尽可能使得最后的DH
3)确定 Xi方向
a.轴 Zi-1和轴Zi不共面
那么轴Zi-1和轴Zi的公垂线定义了Xi轴,并且它于轴Zi的交点即为原点Oi。
b.轴Zi-1平行于轴Zi
这种情况下,轴Zi-1和轴Zi之间存在无穷多个共同法线。将穿过原点Oi-1的法线选作Xi轴, Oi是该法线和Zi轴的交点。
c.轴Zi-1和轴Zi相交
选择Xi垂直于由Zi-1和Zi组成的平面。原点Oi一般设为Zi-1和Zi的交点。不过,轴线Zi上的任意一点都可以被选作原点。
4)确定坐标系N
以上的三个步骤适用于坐标系0,…N-1。最终的坐标系通常被称为末端执行器或者工具坐标系。最常见的是,将原点Oi以对称方式布置在夹具的中间, Zi轴方向沿着末端移动方向(最后一个关节伸缩的方向)。Xi轴方向沿着夹具的上下开合方向。
因为有很多情况可以随意选择坐标系 Xi轴的方向,这就导致了不同的DH参数。为了规范DH建模方法,总结“使得DH参数简单”的一些法则。
1、确定Xi轴方向时,如果有很多种选择,尽可能选择与Xi-1相同的方向
2、确定坐标系0时,使得关节变量1的取值为零。如果是转动关节,关节变量就是 ;如果是平动关节,关节变量是d
3、符合人的习惯
例1
例2
根据图3确定DH参数。
对于转动关节的关节变量 来说,不同的位姿会有不同的关节角度,所以在很多教材上直接把这个变量写成 。这容易产生一个误解,只要是转动关节,不用参考图3对 的定义(不计算),直接在DH参数表中写变量 。这样的误解忽略了初始位型,求出来的转移矩阵肯定会有问题。
看一个实际的例子:
图4为球型手腕的基本结构示意图,三个转动关节的原点相同。根据坐标轴建模的顺序,如果轴 Zi-1和轴Zi相交,选择Xi垂直于由Zi-1和Zi组成的平面,轴Xi的方向可以任意选择。根据这一点,上图X4的方向有两种可能的结果。如果直接把关节变量理解成一个待确认的变量,那么可算出以下DH参数:
表1 图4(左)DH参数
表2 图4(右)DH参数
很明显两个图算出来的变化矩阵是不一样的,问题就出在关节角度应该考虑初始位型。如果计算一下左图和右图的初始关节角度,就会发现关节角度是不一样的。因此实际的DH参数应该表达为:
表3 图4(左)DH参数
表4 图4(右)DH参数
随意代入 值,计算结果相同,符合DH建模法的描述。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。