DH table

DH参数可以说是机器人学中最最基础的部分,SDH和MDH虽说殊途同归,但是在阅读一些论文的时候却发现有时候作者不直接指明是那种DH这样对论文的阅读和仿真就会带来一些问题,虽说MDH相较于SDH有很多优点,但是目前发现仍有很多论文在对串联机器人分析时使用SDH。
在这里直接指出机器人学的两大神书:

  • 《机器人学导论》使用的时MDH,但是书中没有说明自己使用的就是MDH。
  • 《机器人动力学与控制》使用的是SDH并且对MDH做出了说明,实属点赞👍。

参考

  • 《机器人动力学与控制》 霍伟
  • 《机器人学导论》John J. Craig

MDH

目前国内大多数用的都是修改DH,一般来说也比较熟悉,这里直接给出截图。

修改DH对应的齐次方程一般表达式:

SDH

标准DH虽说有一定缺陷,但是在国外的一些论文中仍然十分常见。
首先看一下杆和关节的规定:(这里sdh和mdh都一样当)

再看坐标系的建立方法:

其齐次变换矩阵为:

用例子更好的理解标准dh:

在论文验证及仿真过程中要搞清楚是哪一种dh。

齐次变换矩阵

结合例子就更好理解:
rotz(45)=

0.7071   -0.7071         0
0.7071    0.7071         0
     0         0    1.0000

rotz(90) =

 0    -1     0
 1     0     0
 0     0     1

其中投影就是在其上的坐标。

左乘、右乘

很多人搞不清矩阵左乘、右乘对旋转的影响。而且很多博客给出的都是错误的结论,鱼龙混杂。
在这直接给出仿真结果:
设有R_world=E(世界坐标系)和R_my(在世界坐标系下的 描述),蓝线是Z轴,红线是X轴,绿线是Y轴

  • 左乘:R_my=rotx(t)*R_my
    可以看出R_my坐标系先对于自己的x轴发生旋转(并且是顺时针,这是因为R_my相对于rotx(t)旋转了,rotx(t)是逆时针旋转)。
  • 右乘:R_my=R_my*rotx(t)
    可以看出R_my坐标系先对于R_world的x轴发生旋转。

左右乘与DH参数

欧拉角

这里一般就指常用的RPY角度

欧拉角的奇异性

欧拉角的奇异性实际上就是在从旋转矩阵逆解旋转角度过程中,由于三角函数的性质导致出现退化解的现象,详细见:

《机器人学建模、规划与控制》西西里安诺 P36

其中需要注意公式 (2.23)第二个式子符号有误。

欧拉角万向节死锁

例子正在研究中。

四元数

理论部分的解释见Quaternions for Computer Graphics. 其中的链接用safari或谷歌打开比较快。

齐次变换矩阵、欧拉角、轴角和四元数之间的转化关系

在机器人控制中,由于不同机器人之间的接口不甚相同,因此常常需要将他们之间进行相互转换。
matlab在实践过程中总是有问题,但是eigen完全没问题,所以这里用eigen:

机器人pieper准则

很好理解->《机器人动力学与控制》霍伟著

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐