多轴机械人运动学正逆解,简单粗暴!!!!!!
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组值,好像只有四组值是对的。一直还没理解到底是怎么回事,仔细检查了算法和程序好像都没有错阿,不知道是哪里出了问题。网上也没有找到答案,如果哪位大神知道,望不吝赐教!
扣扣 :1553171313
转:https://www.cnblogs.com/mightycode/p/9095059.html
多轴机械人运动学正逆解,简单粗暴!!!!!!相关推荐
- 工业机械人运动学正逆解,简单粗暴!!!!!!
ur机械臂是六自由度机械臂,由D-H参数法确定它的运动学模型,连杆坐标系的建立如上图所示. 转动关节θi是关节变量,连杆偏移di是常数. 关节编号 α(绕x轴) a(沿x轴) θ(绕z轴) d(沿z轴 ...
- 【机器人原理与实践(三)】六轴机械臂正逆解控制
文章目录 3.1 空间转换矩阵的理解 3.1.1平移变换 3.1.2旋转变换 3.2 D-H参数法 3.3 建立机械臂模型 3.3.1 机械臂模型介绍 3.3.2 使用Matlab进行示教仿真 3.4 ...
- 多自由度机械臂运动学正-逆解|空间轨迹规划控制|MATLAB仿真+实际机器调试
多自由度机械臂运动学正-逆解|空间轨迹规划控制|MATLAB仿真+实际机器调试 ) DH建模法可以参考这个博客: 还有<机器人>这本书,一定要理论实践相结合,理解后可以用几何法建模也可以用 ...
- 6轴机械臂正逆解运算实现
6轴机械臂正逆解运算实现 利用Gluon-6L3机械臂模型的参数,对机械臂进行运动学分析. 这里采用标准DH坐标系,并将d6设置为0,方便后续计算. 首先,SDH的变换矩阵为: ii−1T=Ai=^{ ...
- MATLAB机器人机械臂运动学正逆解、动力学建模仿真与轨迹规划
MATLAB机器人机械臂运动学正逆解.动力学建模仿真与轨迹规划,雅克比矩阵求解.蒙特卡洛采样画出末端执行器工作空间 基于时间最优的改进粒子群优化算法机械臂轨迹规划设计 ID:4610679190520 ...
- 基于Robotics toolbox的定制/非标机构的运动学正逆解
建立坐标系 这一步很重要,如果发现DH参数无法确定,可能是坐标系的建立有问题,返回来重新建立. 我发现网上基本都是六自由度全转动机器人,很少有定制机构的机器人建模,特别是移动+转动的,这也给我DH参数 ...
- Puma560机器人运动学正逆解
puma560机器人D-H参数 puma560采用的是改进D-H参数,其DH参数表如下: i αi ai di θi 1 0 0 0 t1 2 -90 0 0 t2 3 0 r2 d3 t3 4 -9 ...
- 六轴机械臂正逆解计算
一.机械臂运动学 机械臂运动学就是根据未端执行器与所选参考坐标系之间的几何关系,确定末端执行器的空间位置和姿态与各关节变量之间的数学关系.包括正运动学 (Forward Kinematics)和逆运动 ...
- 6轴机器人运动学逆解matlab,六轴机器人建模方法、正逆解、轨迹规划实例与Matalb Robotic Toolbox 的实现...
摘要 本文主要是给大家一个系统的概念,如何用Matlab实现六轴机器人的建模和实现轨迹规划.以后将会给大家讲解如何手写正逆解以及轨迹插补的程序.程序是基于Matlab2016a,工具箱版本为Robot ...
- 如何实现六轴机械臂的逆解计算?
1. 机械臂运动学介绍 机械臂运动学 机器人运动学就是根据末端执行器与所选参考坐标系之间的几何关系,确定末端执行器的空间位置和姿态与各关节变量之间的数学关系.包括正运动学(Forward Kinema ...
最新文章
- Glide 源码分析与面试提问
- 封装数据库一系列操作,包括打开/新建数据库,增删改查
- 怎么在ASP.NET 2.0中使用Membership
- 程序员笔试网上查答案,HR吐槽,网友:你们公司断网开发吗?
- SQL:postgreSQL借助日期函数Extract按照时间区分查询结果
- 拓端tecdat|R语言分类回归决策树交互式修剪和更美观地可视化分析细胞图像分割数据集
- 佳易王收银管理软件和扫码通M800大部分扫码支付平台对接步骤:
- matlab 0x000007b,windows应用程序无法正常启动(0x000007b)怎么办_windows应用程序无法正常启动(0x000007b)解决办法_飞翔教程...
- C语言(求最小公倍数的3种方法)
- 【Nvidia AGX Xavier】AGX Xavier使用记录
- 螺栓、螺柱、螺钉的分类
- 十五数码难题 A*算法及深度优先算法实现
- chrome 多窗口 android,谷歌提前放出安卓7.0开发者预览版:多窗口+画中画
- 基于PHP+小程序(MINA框架)+Mysql数据库的校园二手书交易小程序系统设计与实现
- 原来在SOLIDWORKS中,把马鞍面填充为实体这么简单!
- matlab距离变换,距离变换的图像分割和Watershed算法
- springcloud使用RestTemplate进行接口调用
- scanf函数用%s参数时的注意事项
- PHP 支付宝 “(单笔转账接口)转账到支付宝账号”
- “50份简历没获得面试”也正常
热门文章
- 【面试题】单链表的操作2
- 基于ESP32与phyphox的DIS实验制作(4)-使用超声波位移传感器研究弹簧振子的运动
- uniapp中uni.navigateTo传递变量
- java 图书馆系统_JAVA 图书馆管理系统
- School Regional Team Contest, Saratov, 2011-F. Spiders-求树直径
- 计算机提示无法识别优盘,U盘插入电脑提示无法识别的解决方法
- 虚拟服务器钟楼古城微博,最无聊中外钟楼微博走红
- 关于使用克莱姆法则和矩阵消元法解线性方程组的效率的比较
- windows命令提示符及其操作的相关命令
- 3D NAND“大连造”