逆运动学

逆运动学(IK)与前向运动学基本上是相反的思想。

解你运动学问题有两种不同的方法。第一种是纯粹的数值方法。从本质上讲,这种方法是猜测和迭代,直到错误足够小,或者直到认为放弃。牛顿 - 拉夫逊算法是一种常见的选择,因为它在概念上简单并且如果初始猜测与解“足够接近”时具有二次收敛速率。但是,不能保证算法会收敛或足够快地满足应用要求,并且只返回一个解决方案。为了针对各种可能的姿势产生解决方案,必须使用不同的初始条件。 数值方法的优点是相同的算法适用于所有串行机械手。

另一种更优选的解决方法是一种称为“分析”“封闭形式”的解决方案。封闭形式解决方案是特定的代数方程,它不需要迭代求解,并且有两个主要优点:通常它们比数值方法更快解决问题,并且更容易制定哪些可能的解决方案是适当的。但是,只有某些类型的机械手可以以封闭形式解决。显而易见的问题是,哪种类型的机械手具有封闭形式的解决方案?研究表明,如果满足以下两个条件中的任何一个,那么串行机械手可以以封闭形式解决。

  • 三个相邻的关节轴在一个点上相交
  • 三个相邻的关节轴是平行的(在技术上这是一个特殊情况,因为平行线在无穷远处相交)

幸运的是,目前在工业中使用的六个自由度串行机械手中的大多数将满足上述条件之一。

通常,机械手中的最后三个关节是满足条件1的旋转关节,这样的设计被称为球形手腕,并且公共交点被称为手腕中心。这种设计的优点在于,它可在运动学上解耦端部执行器的位置和方向。

在数学上,这意味着不用同时求解12个非线性方程(整个齐次变换矩阵的前三行中的每一项一个方程),现在可以独立地解决两个更简单的问题:首先是手腕中心的笛卡尔坐标,然后是旋转的组成以定向末端执行器。从物理上讲,具有球形手腕的六自由度串联机械手将使用前三个关节来控制手腕中心的位置,而最后三个关节将根据需要来定向末端执行器。

我们现在将正式确定带球形手腕的串行机械手的解决方案。考虑这里所示的六自由度机械手,其中关节4,5和6组成球形手腕。腕部中心(WC)和末端执行器(EE)相对于基坐标0的位置分别由以下表达式给出:这里写图片描述这里写图片描述。EE相对于WC的位置由以下表达式给出:这里写图片描述。请注意,所有三个矢量均以基坐标0的形式表示,如前导上标“0”所示。
这里写图片描述

步骤1:完成机械手的DH参数表。 提示:将第4,5和6关节坐标系的原点与WC一致。
步骤2:找到WC相对于基坐标系0的位置。回想一下,基坐标系0和末端执行器之间的变换关系具有以下形式:
这里写图片描述

例如,如果你选择z4平行于z6并且从WC指向EE,那么这个位移是沿着z6的简单平移。这种位移的大小,我们称之为d,将取决于机械手的尺寸,并在URDF文件中定义。此外,由于r13,r23和r33定义了EE相对于基坐标系0的Z轴,所以WC的笛卡尔坐标是:
这里写图片描述

步骤3:找到变量q1,q2和q3,使得WC具有等于方程(3)的坐标。这是艰难的一步。 解决问题的一种方法是反复将连接投影到平面上并使用三角函数来求解关节角度。不幸的是,没有适用于所有操纵器的通用配方,因此您必须进行试验。 下一篇中的示例将为您提供一些有用的指导。

步骤4:一旦前三个变量已知,通过应用变换关系式根据WC来计算这里写图片描述.

步骤5:找到与旋转矩阵对应的一组欧拉角,
这里写图片描述

步骤6:在一组可能的解决方案中选择正确的解决方案

<下一篇>

  • 3
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
MATLAB逆运动学是指使用MATLAB编程语言来实现机器人的逆运动学求解逆运动学是指根据机器人末端执行器的目标位姿(位置和姿态),计算出机器人各个关节的转角或坐标。逆运动学在机器人控制和路径规划中起着重要的作用。 MATLAB提供了机器人工具箱(Robotics Toolbox)来支持逆运动学求解。该工具箱提供了一系列函数和工具,可以用于建立机器人模型、计算雅克比矩阵、进行正向运动学和逆向运动学求解逆运动学求解方法可以有多种,常见的方法包括Pieper法和常规法。Pieper法是一种基于几何推导和解析几何的方法,适用于六自由度机器人。常规法是一种基于数值计算和迭代求解的方法,适用于各种类型的机器人。在MATLAB中,可以根据具体的机器人模型和需求选择合适的逆方法进行编程实现。 要实现MATLAB逆运动学,首先需要建立机器人模型,包括关节类型、关节参数和DH参数等。然后,可以使用逆函数对机器人的逆运动学进行求解,计算出关节的转角或坐标。 通过编写MATLAB逆运动学代码,可以实现对机器人运动的精确控制和路径规划。这样,就可以根据需要设定机器人的目标位姿,自动计算出对应的关节转角或坐标,实现机器人的精确定位和运动控制。 参考文献: : MATLAB机器人工具箱【1】——建模 正逆运动学 雅克比矩阵六轴机器人matlab写运动学函数(改进DH模型) 六轴机器人建模方法、正逆、轨迹规划实例与Matalb Robotic Toolbox 的实现。 : 在博主读研期间,刚开始对机器人运动学不甚了,但在经历一次自己完全去钻研、尝试,独立写出属于自己的运动学后,对机器人的结构有更加深刻的理。因此希望初学机器人的朋友们也能够尝试独立去编写、尝试出自己的逆代码,我相信,当你看到逆出的角度完全符合预期,也能够产生相当的成就感。下面是运动学的正文内容,主要讲述运动学的方式和公式推算,最后进行代码的实现。 : 【Matlab 六自由度机器人】求运动学 往期回顾前言正文一、运动学1. Pieper 法2. 《机器人学》常规求解 二、代码实现1. 机器人模型的建立2. Pieper 法求六自由度机器人逆3. 常规法求六自由度机器人逆 总结参考文献。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [【Matlab 六自由度机器人】运动学(附MATLAB机器人逆代码)](https://blog.csdn.net/AlbertDS/article/details/123679114)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值