# 机械臂正运动学-DH参数-Python快速实现 @[toc]

前言:

最近在玩一个非常弱智的机械臂,好多功能都没有,连个配套的仿真环境都没, 虚拟边界和碰撞检测的功能都非常难用。 没办法,我只能自己实现一个简陋的虚拟边界功能,这必须要在已知关节角的情况下,提前计算出每个关节的三维坐标。 这里的问题凝结为输入输出就是: 已知: 机械臂的关节长度,关节构型

输入: 机械臂的关节角度; 输出: 机械臂的关节坐标。 全网好像没有搜到一个简单可用、基于DH参数的Python的正运动学代码(github有一个不能用)。 为了防止以后忘记,以及方便大家学习借鉴。先抛出来,供大家参考

整体思路流程:

搜集机械臂相关配置资料:关节长度、构型、官方设定的坐标系; 通过两个对应关系,找到机械臂的DH参数表; 找到了之后,代入转换矩阵T中; 连乘所有关节的T; 获取关节三维坐标。

学习资料

要想得到上面的输出,需要的基础知识比较多。 有: 1. 刚体的坐标变换; 2. DH参数; 3. 基本上就是上面两个了。

为了弄明白这个过程, 我请教了几位大佬,大佬说可以看看b站台大的机器人学,和《机器人学导论》-斯坦福的那本,自己去网上搜PDF版就好了 然后直接基本概念,大家可以去看看: 台大机器人学之运动学——林沛群(含课件+书籍)

核心概念:

我们将机械臂的每一个关节轴,都建立一个坐标系,那么从关节1到关节0的变化,其实就是做了一次刚体的坐标变换。 而关节7的末端点,则是串着做了好多次的坐标变换。

DH参数的理解。

先挂一个参考链接,这里面的介绍的更详细: https://blog.csdn.net/aic1999/article/details/82490615 上节说到本质是坐标变换,那么我们如何根据已知信息,确定好坐标变换的基本信息? 这里面就得用到一个神奇的DH参数(两位大佬名字的缩写) 来看看课本里的这张经典图。

我们需要知道,决定四个轴的相对位置关系,我们可以用四个变量来描述(虽然可能不唯一,但是够了)。 那么我们需要知道的第一个对应关系:

DH参数的定义:

沿着轴方向,逆时针为正。

这里面我们还差一个东西,如何定义坐标系?

建立坐标系

其实一般如果是靠谱的机器人,这个坐标系应该是给的。

把我这次用的机器人的拿过来,作为例子,有例子,大家理解起来就方便了。

可以看出来一个很有意思的事情, 01关节是放在一起看了,即12坐标系原点重合,这里是将1杆的长度看作0了。下面去计算DH参数的时候也需要注意的。而且我们计算的时候,是无法计算出1轴的坐标。

坐标系和参数对应关系来了,我们就能填好DH表了: 如何填写? 对着坐标轴的图和连杆参数定义,一个一个填。

我们以第一个轴为例,第一行有四个值:$alpha$~1-0~ , $a$~1-0~ , $d$~1-0~ $theta$~1-0~ 这里面的$alpha$~1-0~即$alpha$~0~是绕X~0~正方向, 从Z~0~旋转到Z~1~的角度。从图中可以看出来,没旋转,即为0. $a$~0~沿着X~0~,从Z~0~移动到Z~1~的距离,因为两个Z重合,不存在移动距离,即距离为0; d~1~的话,不一样,沿着Z~1~轴,从X~0~移动到X~1~的距离,可以看出来,移动了0.31米,虽然方向不一样,但是确实是得移动这么多,才能重合。 $theta$的话,就是关节转动的角度了,后面几个关节,可能初始角度得加一个180°才行。 这个DH参数值拿到了之后,就得想办法拿到转换矩阵了。 好在《机器人学导论》这本书里直接给了计算公式:

矩阵变换公式:

这玩意儿还得配套几个公式才行。

总之拿到了DH参数,就把表里的值代入到T中, 然后连乘,就能计算出末端位姿了。

最后直接上代码吧:

from 

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

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

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

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

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

  3. Python知道cos值求角度_先后发布COS!腐团儿魔王正面PK,这艾达王不输李冰冰

    说到如今cos圈非常火的主播,那就肯定少不了腐团儿,凭借其独创的"后退"主播风格吸引了很多的粉丝,再加上傲人身材带来的顶级cos视觉体验,也让她的人气在cos圈居高不下.还有一位经 ...

  4. Python知道cos值求角度_Python——画一棵漂亮的樱花树

    最近用Python(大多是turtle库)绘制的樱花树有点火,感觉很漂亮,我整理了一下,挑了一些我觉得不错的代码分享给大家(这些我都测试过,确实可以生成喔~) one 樱花树 (一) 动态生成樱花 效 ...

  5. 【机器人1】基于POE公式的UR5机械臂正运动学建模求解与matlab仿真

    基于PoE公式的UR5机械臂正运动学建模求解与matlab仿真 基于PoE公式的UR5机械臂正运动学分析 1.1 运动旋量的螺旋释义(理论基础) 1.2 基于PoE公式的UR5机械臂正运动学模型 1. ...

  6. 【机器人】基于指数积的机械臂正运动学算法

    基于指数积的机械臂正运动学算法 1.前言 2.指数积公式建立过程 3.PoE实例 4.PoE与DH对比 1.前言 在学习了刚体运动的指数坐标表示和运动旋量后,我又对使用指数积法(PoE)对机械臂进行正 ...

  7. 中正平和的机器人学笔记——1. 机械臂正运动学(附MATLAB代码)

    中正平和的机器人学笔记--1.正运动学 0. 何为运动学?何为正运动学? 运动学主要研究的就是机械臂的运动特性(位置.速度.加速度等),但是不考虑使机械臂产生运动时施加的力和力矩(这部分是动力学).而 ...

  8. 数值法求六轴机械臂逆运动学解

    问题描述:已知工具坐标系相对于固定坐标系的期望位置和姿态,如何求解满足期望位姿的关节角? 本篇将通过基于雅克比矩阵的牛顿-拉夫森迭代法求运动学逆解. 牛顿 - 拉夫森法(Newton - Raphso ...

  9. 【现代机器人学】基于指数积的机械臂正运动学

    前言:对于一个开链机器人而言,末端执行器的位置和姿态可以通过关节角唯一确定出来.正运动学的问题就是当给定各关节位置,求出附着在末端执行器上的物体坐标系的位姿. 描述正运动学的方法主要是DH参数法,它是 ...

最新文章

  1. 如何将本地项目上传到自己的GitHub上
  2. 《虚拟机深入应用实践》已经出版
  3. lua元表和元方法 《lua程序设计》 13章 读书笔记
  4. LeetCode精讲 03无重复字符的最长子串(滑动窗口)
  5. Sklearn参数详解—LR模型
  6. Asterisk拨号方案语法基础
  7. [机器学习-Sklearn]函数sklearn.feature_extraction.DictVectorizer理解与总结
  8. 小米手环4今日发布:除了大屏彩显 你期待的全都有了
  9. 使用argparse解析命令行参数
  10. 3D游戏学习 案例游戏设计分析——英雄联盟设计浅析
  11. MBR分区表详解(SD卡)
  12. 安焦的caoz和幻影的众人 过招
  13. 入门深度学习?这里有5件你应该知道的事
  14. 【SSH框架/国际物流商综平台】-03 部门、用户、角色、模块 CURD BRAC认证 细粒度权限控制 BaseAction Page struts.xml *.hbm.xml
  15. Linux网易云问题(高分屏)
  16. 大话西游java正版_大话西游网易正版电脑版
  17. 【C语言进阶】带你深度剖析那些常见的字符函数(一)
  18. 数学建模(一)对变化进行建模及其解
  19. er图转换成关系模型的例题_有关数据库系统的练习题 E-R图的关系画图转换,,急需 谢谢了...
  20. MP4转gif得力工具

热门文章

  1. Support for the experimental syntax 'decorators-legacy' isn't currently enabled 异常解决
  2. 等级保护二、三、四级内容及对比
  3. 又来爬小说了,纯原创
  4. 使用telnet来在线调试海思开发板
  5. wps linux 无法输入中文,WPS for linux 中不能切换到中文输入法
  6. iOS获取APP在苹果App Store中的最新版本信息
  7. [篇二章七]_安装卸载 VMware Tools
  8. 适合普通人的竞争策略
  9. Java后端对接微信支付(微信小程序、APP、PC端扫码)非常全,包含查单、退款
  10. 魔域服务器修改和宝宝数据,宝宝属性与真实值之间的公式计算关系