最近重新学习机器人方面的知识,想到一年以前在学校选修《机器人学技术基础》这门课的时候,老师虽然讲机器人的各个方面的知识都讲到了,但只是浮光绿影的的提到,并没有真正讲到深处,我的理解也没有更加深入,导致总是知道有这个知识点,但总是用起来不顺手,有时候还会完全迷惑。最近重新看了Graig的《机器人学导论》导论的中文版,里面对D-H参数的讲解比较详细,更重要的是举出了详细的案例。

  其实D—H参数是有两种标定方式的,一种是标准的D-H参数法,还有一种是改进的D—H参数法,大部分书上现在都用到的是改进的D-H法,但也有一些书上用的是标准的D-H法,但是D-H法只是一种对连杆的坐标描述,最后的结果往往相同的参数就会有相同的物理含义在里面。不同的书上使用不同表示方法往往会给看书的人带来不小的迷惑,我就有一段时间非常迷茫,自己后来干脆就不管什么标准的D-H法,就按照大部分书上使用的改进的D-H方法去标定,只要掌握一种方法并清楚里面参数的含义就能方便地列写参数表,进而写出机器人操作臂的运动变换方程。

  首先对连杆做一简单介绍,在机器人运动学中,所谓连杆就是具有一定运动学功能的刚性杆,这和《机械原理》中的构件有相似的性质,就是它是运动的最小单元,而且由于它本身的形状和大小会对运动有影响。至于刚性,就是在运动学阶段我们认为连杆受力不会发生变形(事实上机器人在操作臂在运动过程中受力情况复杂,一定会发生变形)。在机器人操作臂中,研究的内容主要是一系列连杆通过关节连接起来而组成的空间开式运动链。这是最早的现代机器人的模型,也是在工业中应用最广泛的机器人,就是我们常说的工业机械臂。另一个重要的概念就是关节,在这里关节就是将两个机械臂连接起来的部分,而这个连接不是固定连接,而是两个连杆之间只能发生有限的相对运动。比如一个连杆绕一个连杆的转动,或者一个连杆沿着另一个连杆的某一个方向平动,在常见的工业机器人中转动和平动是最基本的也是最常见的运动,基本到基本上没有其它形式的运动了。

  好了,现在开始来研究我们的第一个研究对象---连杆,描述的连杆参数有两个,无论形状多么复杂的连杆,其实它在运动的能提供的运动学功能是可以用两个参数确定的,一个是连杆的长度a,另一个是连杆的转角α,下图为我们详细地解释了这两个参数的意义:

图片来源于《机器人学导论》,如图中所示,一个连杆两端连接着有两个关节,为了描述起来方便,我们规定连杆i左端的关节是i,这样做的好处是从基座为连杆0,而基座和连杆1之间的关节就是关节1,而确实关节1就是机器人的第一个关节,这样描述起来就会方便很多,一个n自由度的机械臂就有n个关节和n+1个连杆,算上基座0,就像我们在《机械原理》中将大地也作为一个构件一样的道理。对于图中的连杆i-1,其左边对应的关节轴i-1,右边对应的是关节轴i,两个关节轴之间的关系便由这个连杆确定,在三维空间中,描述两个关节轴线之间的位置关系用他们之间的距离和角度就可以了,图中ai-1就是两条空间直线的公垂线,在三维空间中总是可以找到两条直线之间的公垂线,如果他们平行则有无数条,如果他们异面,则有一条,如果他们相交,则公垂线就是一个点了,总之,关节轴线i-1和关节轴线i的距离是由连杆i-1来确定的。除了描述两条轴线之间的距离,我们还需要描述这两条轴线之间的夹角,夹角的定义是关节轴i-1绕着公垂线ai-1转动到和关节轴i平行是所转过的角度αi-1(按照右手法则转动,公垂线ai-1方向定义为从轴i-1指向轴i)。注意到在这种描述中,连杆长度a和连杆转角α都是下标为i-1的,这是因为我们连杆也是第i-1根连杆,是一致的。

  上面我使用了两个参数完全地将一个连杆的运动学特殊性描述出来了,接下来就需要思考如何描述相邻两个连杆之间的关系,两个连杆之间是通过一个关节连接的,我们很容易想到描述连杆之间的关系实际上反映的是这个关节轴的一些特性。继续看图说话:

上图中,连杆i-1和连杆i通过关节轴i相互连接,我们规定,沿着关节轴i的轴向,将连杆i-1的长度ai-1移动到和连杆i的长度ai的距离叫做连杆偏距di ,这个参数反映了两个连杆沿着轴i的距离。同时,我们从图中看到连杆i-1和连杆i的长度线并不共线,这说明这两条线之间存在夹角,我们规定绕轴i将长度线ai-1的延长线转动到和长度线ai 转过的角度叫做关节角θi, 关节角反映了两个连杆在关节轴处的夹角。通过连杆偏距和关节角就可以将两个相邻连杆之间的相对位置描述清楚。因此,对于一个连杆,需要有四个参数对其进行描述,两个参数描述连杆本身的特性,另外两个参数描述该连杆和上一个连杆之间的关系。其中连杆偏距di和关节角θi是由关节决定的,反映关节的运动学特性。如果关节i是一个转动关节,那么连杆i-1和连杆i之间沿着关节轴线i的距离di就是一个定值,在设计好机器人中该值不会再改变,而θi会发生改变,因此θi称为关节变量,意思就是机器人在运动过程中它会发生变化。同样的,如果关节i是一个移动关节,那么连杆i-1 和连杆i之间的夹角θi就是一个定值,变化的是两个连杆沿着关节轴线的距离di,此时di被称为关节变量。

  为了在引入数学上的描述,我规定们给连杆上附件上坐标系,我们规定,在每个连杆上固连一个坐标系,对应于连杆i的坐标系就是{i},规定坐标系{i} 的Zi轴沿着关节轴线i,坐标原点在长度线ai和关节轴线的交点处,沿着长度线ai 由关节轴线i指向关节轴线i-1 是Xi的正方向。Yi按照右手螺旋定则确定。连杆坐标系表示在图中如下所示:

  当按照上述的要求定义好坐标系之后,四个连杆参数可以有在坐标系中的描述:

   ai = 沿着Xi 轴从Zi 移动到Zi+1的距离。

  αi = 绕着Xi轴从Zi转到Zi+1的角度。

  di = 沿着Zi轴从Xi-1到Xi的距离。

  θi = 绕着Zi轴从Xi-1到Xi的角度。

  现在,我们可以对一个机器人操作臂进行描述了,首先看一个平面三连杆机械臂。

   

  如上两图所示,对于一个平面三连杆机械臂,规定其Z轴垂直于纸面向外,可以得到如图的坐标表示方法。

  下面列写其D-H参数表:

  

  从上表就可以列写出机器人的运动学方程,可以说机器人(机械臂)的运动分析很大一部分工作是对机械臂进行参数标定。值得注意的是,参数标定方法不唯一,不同的人有不同的参数标定方式。

机械臂——D-H参数标定相关推荐

  1. 睿尔曼超轻量仿人机械臂--Realsense D435手眼标定

    目录 1.环境要求 2.概述 3.开始前准备 4.aruco_ros配置 5.easy_handeye配置 6.启动相关launch文件开始标定 1.环境要求 本教程主要介绍RM机械臂与Realsen ...

  2. 基于API激光跟踪仪测量的具有平行关节(考虑平行度误差)的串联臂MDH运动学参数标定

    本文主要用于归纳整理近期做SCARA运动学标定涉及到的数学原理以及MATLAB编程实现,并阐述标定原理. 更新:20200610 相关流程.原理.公式如下: 看图说话,最终结果如下: 仅展示总体思路和 ...

  3. ROS+UR机械臂+Moveit+ 仿真与实体机械臂的使用+realsense相机+eye_handeye手眼标定(亲测有效)下

    ** 1参考链接 ** (1)UR5.realsense手眼标定 (2)优遨机器人UR5与RealSense深度摄像头D435的手眼标定 (3)UR5.realsense手眼标定**** (4)标定所 ...

  4. python 机械臂控制_机械臂正运动学-DH参数-Python快速实现

    机械臂正运动学-DH参数-Python快速实现 前言: 最近在玩一个非常弱智的机械臂,好多功能都没有,连个配套的仿真环境都没, 虚拟边界和碰撞检测的功能都非常难用. 没办法,我只能自己实现一个简陋的虚 ...

  5. Python知道cos值求角度_机械臂正运动学-DH参数-Python快速实现

    # 机械臂正运动学-DH参数-Python快速实现 @[toc] 前言: 最近在玩一个非常弱智的机械臂,好多功能都没有,连个配套的仿真环境都没, 虚拟边界和碰撞检测的功能都非常难用. 没办法,我只能 ...

  6. 用VISP+Opencv做相机到机械臂的标定

    用VISP+Opencv做相机到机械臂的标定(hand eye calibration) 首先要解决的问题如下图,需要知道的是camera到robot base(world)的变换矩阵: 然后可以简化 ...

  7. 机械臂正运动学-DH参数-Python快速实现

    机械臂正运动学-DH参数-Python快速实现 文章目录 机械臂正运动学-DH参数-Python快速实现 前言: 更新:是我自己憨批了,说明书上有现成的计算方式,我没细看... 整体思路流程: 学习资 ...

  8. 四自由度机械臂标定问题

    四自由度机械臂标定问题 鱼香ROS介绍: 鱼香ROS是由机器人爱好者共同组成的社区,欢迎一起参与机器人技术交流. 进群加V:fishros2048 文章信息: 标题:四自由度机械臂标定问题 原文地址: ...

  9. 机械臂避障与轨迹规划仿真

    本篇目录 一.机械臂模型及参数 二.路径生成 2.1 RRT算法简介 2.2 初始化 2.3 Sample.Steer.Near 2.5 碰撞检测 2.6 退出循环条件 2.7 RRT算法整体代码 三 ...

  10. 实验一 机械臂正逆运动学

    实验一 机械臂正逆运动学 一.实验目的 1.巩固正逆运动学基础概念. 2.了解正逆运动学在机械臂控制中的实际用途. 二.实验内容 1.机械臂模型DH参数的计算. 2.机械臂正运动学的计算. 3.机械臂 ...

最新文章

  1. C++——重载运算符和重载函数
  2. JavaScript 页面跳转的几种方式
  3. python 清空文件夹_Python初学者请注意!别这样直接运行python命令,否则电脑等于“裸奔”...
  4. vue循环中的v-show
  5. 【ArcGIS遇上Python】Python使用栅格数据
  6. org.xml.sax.SAXParseException; lineNumber: 11; columnNumber: 110; schema_reference.4: 无法读取方案文档
  7. weblogic 文件打开数_WebLogic任意文件上传漏洞(CVE20192618)复现
  8. 关于libusb-win32开发的经验
  9. Ubuntu帮大忙了
  10. 【LGR-050】洛谷8月月赛
  11. 如果你被这个视频深深地震撼!那你一定是幸运的!
  12. paip.数据挖掘--导出词库 清理太长的iptcode
  13. java毕业设计大学生体检管理系统Mybatis+系统+数据库+调试部署
  14. 不吹不黑,这5款浏览器安全无广告无弹窗,亲测好用
  15. 浅析三点SEO理论到底带给了我们什么
  16. Nginx-配置大全
  17. java chmod 777_java中 执行shell中的chmod 777命令,出现Caused by: java.io.IOException: Permission denied???...
  18. 华为——策略路由(校园网配置)
  19. 流行和声(2)Major6和弦
  20. 微信小程序开发(三)入门之创建打卡活动

热门文章

  1. NDoc 用户指南(转)
  2. 重复工作到底有没有意义
  3. 单模光电转换器怎么接_光纤收发器及其连接方式图解!
  4. 计算机网络语音传输杂音回音,QQ语音时,怎么消除麦克风回音、噪音、杂音
  5. Markdown语法大全
  6. spring boot 接入xxl-job手册
  7. fluent入门学习(一):三维卡门涡街算例
  8. Android开发-高德地图导航
  9. 将unity地形转换为mesh
  10. C++ 判断某个年份的生肖