SDH与MDH参数法对比

MDH 与 SDH 参数法对比

DH (Denavit- Hartenberg) 法在matlab robotics toolbox中有SDH和MDH之分。

我先看的Craig的书,我自己一般习惯用MDH,但是后来上课的时候又是讲的SDH法,整得我很分裂,现在看Bruno Siciliano的Robotics也是用的SDH法,两种DH参数法用起来容易混,在这里进行一下区分。

其实两种方法的区别主要在于{0}的选择,从而导致了后面坐标系的小区别,link parameters的意义都是相同的。 两种方法大同小异,结果都是相同的,凭个人喜好选择即可。

Modified DH (MDH)

在这里插入图片描述

这种DH法是John J. Craig. Introduction to Robotics: Mechanics and Control 上面讲的。他自己也说这个方法和别的书不太一样,所以可能才叫Modified DH吧?

Note that many related conventions go by the name Denavit–Hartenberg, but differ in a few details. For example, the version used in this book differs from some of the robotic literature in the manner of frame numbering. Unlike some other conventions, in this book frame {i} is attached to link i and has its origin lying on joint axis i.

Link parameters表示frame{i-1}到frame{i}的变换 T i − 1 i T_{i-1}^i Ti1i。从base{0}开始到6轴{6}结束,也可以到工具坐标系{T}结束。

连杆参数的定义 Link parameters

连杆参数说明
连杆长度 a i − 1 a_{i-1} ai1轴i-1和轴i之间的公垂线长度
扭转角 α i − 1 \alpha_{i-1} αi1轴 i-1 绕 a i − 1 a_{i-1} ai1转向 轴 i 的角度
偏距 d i d_i di a i − 1 a_{i-1} ai1与轴 i 的交点 指向 a i a_{i} ai与 轴 i 的交点 的长度
关节角 θ i \theta_i θi a i − 1 a_{i-1} ai1 a i a_{i} ai 绕轴 i 的夹角

其中连杆长度 a a a和扭转角 α \alpha α反应了轴 i-1 和 轴 i 的关系,偏距 d d d 反应了连杆 i-1 和 连杆 i 的关系。

连杆坐标系的选择 Rules of link-frame attachment

以6轴机械臂为例,Frame {i} 由{i}和{i+1}确定(i=0, 1, 2, 3, 4, 5),下面是确定 frame {i}的步骤。

  1. 确定Z轴。确定各关节轴线(Axis 1~6),每个轴线对应一个Z轴,比如 axis 1 对应 Z 1 Z_1 Z1, axis 6 对应 Z 6 Z_6 Z6
  2. 确定原点。要根据相邻的两个Z轴 Z i Z_i Zi Z i + 1 Z_{i+1} Zi+1确定 O i O_i Oi
    • 如果 Z i Z_i Zi Z i + 1 Z_{i+1} Zi+1 相交, 那么原点 O i O_i Oi在交点。
    • 如果 Z i Z_i Zi Z i + 1 Z_{i+1} Zi+1不相交(异面、平行),那么 O i O_i Oi Z i Z_i Zi Z i + 1 Z_{i+1} Zi+1 的公垂线在 Z i Z_i Zi 的垂足。
  3. 确定X轴。X轴的确定也和上面原点的确定类似,需要根据相邻两Z轴的情况来确定。
    • 如果相交,那么 X i X_i Xi沿两轴相交形成的平面的垂线, X ⃗ i = Z ⃗ i × Z ⃗ i + 1 \vec X_i=\vec Z_i\times \vec Z_{i+1} X i=Z i×Z i+1
    • 如果不相交, X i X_i Xi沿公垂线。

根据上述规则确定了frame{1} ~ {6},我们可以把frame {0}设为与{1}重合,以便让尽可能多的DH参数为0。确定了{0}~{6}之后,便可以写DH参数了。

注意{6}并不是工具坐标系{T},而是6轴所在的坐标系,可以再加一个{6} -> {T}的DH参数,一般末端到工具坐标系的变换为一个固定的刚体变换。

定义了关节坐标系之后,我们再来看连杆参数在坐标系中的含义。

注意:我这里的下标都统一改成i了,和表1中的下标不一致。这是因为我一般在写某个关节坐标系{i}的DH参数时,我希望下标统一,而不是有的i-1有的是i,我这里手动修改了下标看起来更加顺眼。

DH parameters意义
a i a_i ai Z i − 1 Z_{i-1} Zi1沿 X i X_i Xi Z i Z_i Zi的空间距离
α i \alpha_i αi X i − 1 X_{i-1} Xi1为轴由 Z i − 1 Z_{i-1} Zi1 Z i Z_i Zi转过的角度
d i d_i di X i − 1 X_{i-1} Xi1沿 Z i Z_i Zi X i X_i Xi的空间距离
θ i \theta_i θi Z i Z_i Zi为轴由 X i − 1 X_{i-1} Xi1 X i X_i Xi转过的角度

下面是{i}到{i+1}的变换矩阵
T i i + 1 = [ c o s θ − s i n θ 0 a s i n θ c o s α c o s θ c o s α − s i n α − d s i n α s i n θ s i n α c o s θ s i n α c o s α d c o s α 0 0 0 1 ] T_i^{i+1} = \begin{bmatrix} cos\theta & -sin\theta & 0 & a \\ sin\theta cos\alpha & cos\theta cos\alpha & -sin\alpha & -dsin\alpha \\ sin\theta sin\alpha & cos\theta sin\alpha & cos\alpha & dcos\alpha \\ 0 & 0 & 0 & 1 \end{bmatrix} Tii+1=cosθsinθcosαsinθsinα0sinθcosθcosαcosθsinα00sinαcosα0adsinαdcosα1

Standard DH (SDH)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZVr11fGL-1623574983358)(DH%E5%8F%82%E6%95%B0%E6%B3%95%E5%AF%B9%E6%AF%94.assets/51Rz-cclsaL._SY291_BO1,204,203,200_QL40_FMwebp_.jpg)]

这个方法是Bruno Siciliano. Robotics Modelling, Planning and Control 里面讲的。因为两种方法其实很相似,SDH我就不讲太详细了。

  1. 确定Z轴。i+1 轴确定 Z i Z_i Zi
  2. O i O_i Oi Z i − 1 Z_{i-1} Zi1 Z i Z_i Zi的公垂线与 Z i Z_i Zi的交点
  3. X i X_i Xi沿 Z i − 1 Z_{i-1} Zi1 Z i Z_i Zi公垂线,由i轴指向i+1轴。

下面是{i}到{i+1}的变换矩阵
T i i + 1 = [ c o s θ − c o s α s i n θ s i n α s i n θ a c o s θ s i n θ c o s θ c o s α − s i n α c o s θ − a s i n θ 0 s i n α c o s α d 0 0 0 1 ] T_i^{i+1} = \begin{bmatrix} cos\theta & -cos\alpha sin\theta & sin\alpha sin\theta & acos\theta \\ sin\theta & cos\theta cos\alpha & -sin\alpha cos\theta & -asin\theta \\ 0 & sin\alpha & cos\alpha & d \\ 0 & 0 & 0 & 1 \end{bmatrix} Tii+1=cosθsinθ00cosαsinθcosθcosαsinα0sinαsinθsinαcosθcosα0acosθasinθd1

案例:拟人臂(Anthropomorphic arm ) 两种DH参数法对比

我直接从Bruno Siciliano的书上截下来了一页。SDH方法的结果见左图。

SDHMDH
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-si5Os56l-1623574983360)(DH%E5%8F%82%E6%95%B0.assets/image-20210613113134531.png)]

右图为 MDH方法,结果如下图所示。可以看到两种方法最终求得的刚体变换是相同(废话)。

DH parameter a a a α \alpha α d d d θ \theta θ
1000 v 1 v_1 v1
20 π / 2 \pi/2 π/20 v 2 v_2 v2
3 a 2 a_2 a200 v 3 v_3 v3
4 a 3 a_3 a3000


第4组其实是到末端单独的一组变换,这样算出来结果跟SDH法是相同的

通过对比可以发现,SDH比MDH领先一个轴,主要是因为MDH的{0}与{1}是重合的,而SDH的{0}是1轴,{1}是2轴,所以形式上SDH比MDH更加简洁一点点。

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值