工业机械人运动学正逆解,简单粗暴!!!!!!

 

ur机械臂是六自由度机械臂,由D-H参数法确定它的运动学模型,连杆坐标系的建立如上图所示。

转动关节θi是关节变量,连杆偏移di是常数。

关节编号

α(绕x轴)

a(沿x轴)

θ(绕z轴)

d(沿z轴)

1

α1=90

0

θ1

d1=89.2

2

0

a2=-425

θ2

0

3

0

a3=-392

θ3

0

4

α4=90

0

θ4

d4=109.3

5

α5=-90

0

θ5

d5=94.75

6

0

0

θ6

d6=82.5

由此可以建立坐标系i在坐标系i-1的齐次变换矩阵,注意每次不管平移还是旋转是相对于当前的运动坐标系变换,矩阵右乘

那么把DH参数代入就可以得到所有相邻坐标系的变换矩阵

所以末端坐标系6到基座固定坐标系0的变换矩阵。那么求正解就很简单了,只要输入六个关节角度θi,就得到末端坐标在基坐标系的变换矩阵T。ur机械臂的视教板上末端点的坐标是用六个值[x, y, z, rx, ry, rz]表示的。前三个值[x, y, z]是三维笛卡尔坐标,表示空间位置,后三个值[rx, ry, rz]是坐标旋转向量,表示空间姿态。我们得到的变换矩阵T怎么变成六值坐标[x, y, z, rx, ry, rz]呢?设

T的左上角的3x3矩阵是旋转矩阵,旋转矩阵和旋转向量之间可以通过罗德里格斯(Rodrigues)变换进行转换。opencv里有相应的函数调用。算法也比较简单,不用opencv的函数自己写代码也不难。T的右上角3x1就是空间位置[x, y, z]。这样有变换矩阵T得到六值坐标,完成了正解。

逆解相对要复杂一些,由末端的空间位置和姿态,计算可能的关节角度。逆解的方法有解析法,迭代法和几何法。其中解析法用数学推导,可以得到全部根,但是计算复杂。有的机械臂可以得到无穷解,比如7轴机械臂。而ur的6轴机械臂是有有限解的。这里推导一下ur的逆解。

首先计算求变换矩阵T过程其中的一些中间矩阵。

,其中c23=cos(θ2+θ3),s23=sin(θ2+θ3)。

得到。计算

,得到

等式两边矩阵的行列应该分别相等,由第三行第四列得到,可解得,有两个解。这里注意写程序的时候,求解这里的反正切是用atan2()这类的函数,返回之在(-π,+π]。而反余弦的返回值在[0,π],从而保证在2π范围每个解是唯一的。

由第三行第三列得,可解得,两个解。由第三行第二列得到,可解得

接着由

计算

,得出等式左边等于

,两边平方,令

同样由,令

两式相加得到,则,有两个解。

把θ3带入,得,其中t2=tanθ2。两式消去c2,得到

最后得到,从而得到θ4。

综合有两个解的情况,ur机械臂逆解总共由2x2x2=8组解。

按照上面的算法,用python写了两个程序,一个正解一个逆解验证一下。工作手边是ur3的机械臂,上面的图和表都是ur5的,换成ur3的参数。正解算出来都没有问题,可以和实际机械臂的空间位姿对应。可是逆解算出来8组值,好像只有四组值是对的。一直还没理解到底是怎么回事,仔细检查了算法和程序好像都没有错阿,不知道是哪里出了问题。网上也没有找到答案,如果哪位大神知道,望不吝赐教!

转:https://www.cnblogs.com/mightycode/p/9095059.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/251997.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python opencv立体测距 立体匹配BM算法

立体标定应用标定数据转换成深度图标定 在开始之前,需要准备的当然是两个摄相头,根据你的需求将两个摄像头进行相对位置的固定,我是按平行来进行固定的(如果为了追求两个双目图像更高的生命度,也可以将其按一定钝角固…

Vue基础学习(一)------内部指令

一.v-if v-else v-show 指令 1.v-if v-if:是vue 的一个内部指令,指令用在我们的html中,用来判断是否加载html的DOM 现在举个栗子,判断用户的登录操作,用isLogin作为一个判断字段,登录成功,就显示用户的名称 代码&…

StereoRectify()函数定义及用法畸变矫正与立体校正

畸变矫正是上一篇博文的遗留问题,当畸变系数和内外参数矩阵标定完成后,就应该进行畸变的矫正,以达到消除畸变的目的,此其一。 在该系列第一部分的博文中介绍的立体成像原理中提到,要通过两幅图像估计物点的深度信息&a…

死磕 java集合之TreeMap源码分析(三)- 内含红黑树分析全过程

2019独角兽企业重金招聘Python工程师标准>>> 欢迎关注我的公众号“彤哥读源码”,查看更多源码系列文章, 与彤哥一起畅游源码的海洋。 删除元素 删除元素本身比较简单,就是采用二叉树的删除规则。 (1)如果删除的位置有两…

四元素理解

旋转变换_四元数 2017年03月29日 11:59:38 csxiaoshui 阅读数:5686 1.简介 四元数是另一种描述三维旋转的方式,四元数使用4个分量来描述旋转,四元数的描述方式如下: qsxiyjzk,(s,x,y,z∈ℝ)i2j2k2ijk−1 四元数的由…

31、SAM文件中flag含义解释工具--转载

转载:http://www.cnblogs.com/nkwy2012/p/6362996.html SAM是Sequence Alignment/Map 的缩写。像bwa等软件序列比对结果都会输出这样的文件。samtools网站上有专门的文档介绍SAM文件。具体地址:http://samtools.sourceforge.net/SAM1.pdf很多人困惑SAM文…

《Head First设计模式》批注系列(一)——观察者设计模式

最近在读《Head First设计模式》一书,此系列会引用源书内容,但文章内容会更加直接,以及加入一些自己的理解。 观察者模式(有时又被称为模型-视图(View)模式、源-收听者(Listener)模式或从属者模式&#xff…

PYPL 4 月排行:Python 最流行,Java 还行不行?

开发四年只会写业务代码,分布式高并发都不会还做程序员? PYPL 发布了 4 月份的编程语言排行榜。 前五的分别是:Python、Java、Javascript、C# 和 PHP。可以看到,榜单没有什么大变化,但是相比去年 4 月份,…

顺序表

一、数据是如何在内存中存储的? 32位系统中char,int型数据在内存中的存储方式: char占1byte(8bit)int占4byte(32bit)假设我们有一个int类型的值,它从0x01开始,一个int占据…

四元素的真面目..........简单粗暴

作者:Yang Eninala 链接:https://www.zhihu.com/question/23005815/answer/33971127 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 根据我的理解,大多数人用汉密尔顿四元数就只…

Linemod;理解

Linemod 代码笔记 2019年03月11日 16:18:30 haithink 阅读数:197 最近了解到 Linemod 这个模板匹配算法,印象不错 准备仔细学习一下,先做点代码笔记,免得后面不好回顾 目前的笔记基本上把 核心流程都分析得比较清楚了&#xff0…

手眼标定

Eye-in-hand和Eye-to-hand问题求解和实验 2018年12月07日 00:00:40 百川木易 阅读数 3018 2018/12/5 By Yang Yang(yangyangipp.ac.cn) 本文所有源码和仿真场景文件全部公开,点击Gitee仓库链接。 文章目录 问题描述Eye-in-hand问题求解公式…

RNN总结

RNN既可以表述为循环神 经网络(recurrent neural network),也可以表述为递归神经网络(recursive neural network),前者一般用于处理以时间序列为输入的问题(比如把一个句子看成词组成的序列&…

linux硬链接与软链接

Linux 系统中有软链接和硬链接两种特殊的“文件”。 软链接可以看作是Windows中的快捷方式,可以让你快速链接到目标档案或目录。 硬链接则透过文件系统的inode来产生新档名,而不是产生新档案。 创建方法都很简单: 软链接(符号链接…

企业级区块链现状研究报告:小企业的投资总额是大企业的28倍

根据企业级区块链现状研究报告表明,当前企业采用区块链技术的势头正在逐步增强。参与该报告的企业表示,区块链投资今年共增长了 62% ,预计到 2025 年区块链将成为主流技术。其中,有 28% 的企业正在积极开展区块链发展计划。现在看…

特征匹配

Python 使用Opencv实现图像特征检测与匹配 2018-06-13 11:36:58 Xy-Huang 阅读数 19203更多 分类专栏: Python 人工智能 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接…

bzoj 1015 并查集

代码&#xff1a; //这题可以反着想&#xff0c;把要去掉的点倒着处理变成往图中一个一个的加点&#xff0c;然后用并查集处理联通快就好了。 #include<iostream> #include<cstdio> #include<cstring> #include<vector> using namespace std; const in…

画极线

OpenCV学习日记5 2017-05-27 10:44:35 1000sprites 阅读数 2339更多 分类专栏&#xff1a; 计算机视觉 版权声明&#xff1a;本文为博主原创文章&#xff0c;遵循 CC 4.0 BY-SA 版权协议&#xff0c;转载请附上原文出处链接和本声明。 本文链接&#xff1a;https://blog.cs…

最近很火的MySQL:抛开复杂的架构设计,MySQL优化思想基本都在这

优化一览图 优化 笔者将优化分为了两大类&#xff1a;软优化和硬优化。软优化一般是操作数据库即可&#xff1b;而硬优化则是操作服务器硬件及参数设置。 1、软优化 1&#xff09;查询语句优化 首先我们可以用EXPLAIN或DESCRIBE(简写:DESC)命令分析一条查询语句的执行信息。 例…

《JAVA与模式》之桥梁模式

在阎宏博士的《JAVA与模式》一书中开头是这样描述桥梁&#xff08;Bridge&#xff09;模式的&#xff1a; 桥梁模式是对象的结构模式。又称为柄体(Handle and Body)模式或接口(Interface)模式。桥梁模式的用意是“将抽象化(Abstraction)与实现化(Implementation)脱耦&#xff0…