T矩阵中一共有12个有效参数,然而我们只需要6个量来获取位姿,感觉很不划算,而且有些参数根本用不上。因此有两位大佬,D大佬和H大佬提出了DH法。
写这部分的时候,我拿出了两本书Introduction to Robotics, Mechanics and Control Third Edition, John J. Craig和Introduction to Robotics, Analysis, Systems, Applications, Saeed B. Niku。看完之后,我很混乱。
经过我的调查,Saeed为大家所说的SDH法(Standard DH),Craig为大家所说的MDH法(Modified DH)。还有另外一个MDH,指的是在DH法4个参数的基础上新引入一个参数,在精度标定是会使用,此法本篇暂时不进行说明。
对于以上两种建模方法,我将在下面同时对比说明。
D-H法的简化方式很明确,就是将y轴位移和旋转的2个自由度干掉了,仅考虑x和z轴的位移与旋转。这样,6个自由度的位姿变成由4个参数来表示了。其中参数采用关节角(Joint Angle) 、连杆偏移(Link Offset) 、连杆扭转角(Link Twist) 、连杆长度(Link Length) 共4个参数来表述相邻两个坐标系的关系。
这4个参数可以分为两组。在移动关节下可变参数 是关节参数(Joint Variable)(移动关节的话,可变参数是)。另一组是系统固有参数连杆参数(Link Parameters) 、和。
具体表示方法和参数意义下面会写到。
建立步骤:
- 列表
2. 建模
1)确定初始位置并给连杆和关节标号。一般机械臂初始位置被认为是整体伸直朝上,横向关节朝向为x轴。下图右边是连杆结构图。
2)确认各关节轴线和z轴。
轴线为各关节旋转或移动的轴线。z轴为当前轴线,方向任意(此处选择电机旋转反方向)。此处两种方法将有不同,要注意下角标的符号。z轴的下标就代表了第几坐标系了。
3)建立各关节坐标系。
首先找第i个坐标系{i}的原点。再确定x_i轴。
在SDH中,{i}的轴线和{i-1}的轴线,如果相交,则交点为原点,x_i轴在两轴线所在平面的垂线上,方向任意;如果不相交,两轴线公垂线和当前关节i轴线的交点为原点,x_i为在公垂线上,方向任意。
在MDH中,{i}的轴线和{i+1}的轴线,如果相交,则交点为原点,x_i轴在两轴线所在平面的垂线上,方向任意;如果不相交,两轴线公垂线和当前关节i轴线的交点为原点,x_i为在公垂线上,方向任意。
由于会有两轴线平行,公垂线有无数条;x轴z轴方向可任意设置,所以会导致参数模型会有很多版本。
添加首尾坐标系。
SDH中已经标注好{0}了,所以在尾端添加{6}。MDH中已经标注好{6}了,所以在首端添加{0}。首尾端的坐标系设置是要根据实际情况和个人喜好的。
下面是建系过程。
*注,由于选择z轴,x轴和原点有很大的自由性,所以以上只是建系的一种选择,怎么建系需要根据自身情况来判断。
3. 确定D-H的4个参数
拿出第一步列的表,挨个进行填写。先不要在意参数下角标,因为会混淆。SDH和MDH两种方法的坐标变换都是从前面的坐标系往下一个坐标系变换,写第i行时只要关注{i-1}和{i}之间的关系就好。但是参数顺序是有差别的。
此处将对表的第2行进行举例。i=2时,利用{1}的坐标系变换到{2}。
SDH的顺序是。
1)先将坐标系i-1的x_i-1轴绕z_i轴转到与坐标系i的x_i轴平行,转过的角度为,右手准则拇指指向为z正方向为正;
2)再将x_i-1轴沿z_i-1轴平移到x_i轴,平移的距离为。
3)接着刚才变换的结果,将坐标系i-1的z_i-1轴绕x_i-1轴转到和坐标系的z_i轴平行,转过的角度为,右手准则拇指指向为x正方向为正;
4)再将z_i-1轴沿x_i-1轴平移到z_i轴,平移的距离为,直到两坐标系重合。
根据SDH的规则可以得出下表。在上图theta_2=-90,但由于是可变参数theta设为q2。
MDH的顺序是。
1)先将坐标系i-1的z_i-1轴绕x_i-1轴转到与坐标系i的z_i轴平行,转过的角度为,右手准则拇指指向为z正方向为正;
2)再将z_i-1轴沿x_i-1轴平移到z_i轴,平移的距离为。
3)接着刚才变换的结果,将坐标系i-1的x_i-1轴绕z_i-1轴转到和坐标系的x_i轴平行,转过的角度为,右手准则拇指指向为x正方向为正;
4)再将x_i-1轴沿z_i-1轴平移到x_i轴,平移的距离为,直到两坐标系重合。
根据MDH的规则可以得出下表。在上图theta_2=90,但由于是可变参数theta设为q2。
由于书本和网页是二维的缘故,使得无法很好的表现三维空间的变换,会变得很抽象难理解。如果还是看不太懂,可以去观看下面的动画,可以在空间中直观的理解。此动画时维基百科的D-H法推荐。
4. 完整表
根据DH法模型和工程图纸,将表填好。(官方给的二维图纸和三维模型尺寸不一致。由于主要使用三维模型,所以自己重新量了一下三维图纸)
总结
SDH和MDH的建模方法区别在于1)固连坐标系位置,2)x轴确定方向,3)四参数顺序。
可以从连杆结构图中看出来:SDH是连杆i和关节i共同建系;MDH是连杆i-1和关节i共同建系。最后坐标系变换时都是将关节重合。
回忆起机械原理在对连杆机构进行运动分析时,步骤就是将各连杆拆开,再分别分析关节在各个连杆的运动。只不过是二维平面分析,坐标变换比较简单,所以都在分析中包含了。
这两种方法都是比较常用的,还是要自己亲手推一下才能深刻理解。但是由于建模方式很自由,无法确定是否建模正确。可以利用Matlab-robotics-toolbox建模,来和市面上类似机械臂做对比。比如innfos的这款6轴机械臂和UR机械臂是类似的,所以找到UR的机械臂详细数据和DH参数,在此链接
根据UR的参数再建一个SDH的模型如下:
接下来都会使用这个模型。
评论(0)
您还未登录,请登录后发表或查看评论