主要内容

underedkinematics.

创建逆运动学求解器

描述

underedkinematics.System Object™创建一个反向运动(IK)求解器,以基于指定的刚体树模型计算所需末端执行器姿势的联合配置。使用该机器人创建一个刚体树模型刚体树类。这个模型定义了求解器执行的所有关节约束。如果解是可能的,则服从机器人模型中指定的关节极限。

要指定末端效应器姿势的更多约束,包括针对目标限制,位置界限或方向目标,请考虑使用generalizedInverseKinematics.该对象允许您计算多约束IK解决方案。金宝搏官方网站

对于封闭式分析IK解决方案,请参阅金宝搏官方网站analyticalInverseKinematics

计算所需的末端效应器姿势的联合配置:

  1. 创建underedkinematics.对象并设置其属性。

  2. 用参数调用对象,就像它是一个函数一样。

要了解更多关于System对象如何工作的信息,请参见什么是系统对象?

创建

描述

例子

本土知识= underedkinematics.创建反向运动学解算器。若要使用解算器,请在中指定刚体树模型刚体树财产。

本土知识=逆线性(名称,值创建具有一个或多个指定的附加选项的逆运动学求解器名称,值配对参数。姓名是一个属性名和价值为对应值。姓名必须出现在单引号内('').您可以以任何顺序指定多个名称值对参数名称1,值1,…,名称,值

特性

展开全部

除非另有说明,否则属性是不能,这意味着您不能在调用对象后更改其值。对象在调用时锁定,并且释放函数打开它们。

如果属性是调节,您可以随时更改它的值。

有关更改属性值的详细信息,请参阅在MATLAB中使用系统对象进行系统设计

刚体树模型,指定为刚体树对象。如果修改刚体树模型,请将刚体树重新分配给这个属性。例如:

创建IK解算器并指定刚体树。

ik=逆线性(“RigidBodyTree”rigidbodytree)

修改刚体树模型。

addBody (rigidbodytree rigidBody ('body1'),“基地”

将刚体树重新分配给IK求解器。如果解算器或者函数在修改刚体树模型之前调用,使用释放允许更改属性。

ik.rigidbodytree =刚性小组特;

求解逆运动学的算法,指定为'bfgsgradient分解'或者“LevenbergMarquardt”. 有关每个算法的详细信息,请参见逆运动学算法

与指定算法关联的参数,指定为结构。结构中的字段特定于该算法。请参阅解算器参数

使用

描述

例子

configsol.solInfo] = IK(Endeffector.构成权重initialguess查找可实现指定末端效应器姿势的关节配置。指定配置的初始猜测,并根据关节六个组件的公差指定所需的权重构成.与算法执行相关的解信息,solInfo,用联合配置解决方案返回,configsol.

输入参数

展开全部

终端效应名称,指定为字符向量。末端效应器必须是身体刚体树指定的对象underedkinematics.系统对象。

末端效应器姿势,指定为4×4均匀的变换。该变换定义了所指定的刚体的所需位置和方向Endeffector.财产。

位姿公差的重量,指定为六元素向量。前三个元素对应于所需姿态的方向误差的权重。最后三个元素对应于误差的权重xyz所需姿势的位置。

机器人配置的初始猜想,指定为结构数组或向量。使用这个初始猜测来帮助求解器找到所需的机器人配置。解决方案不能保证接近这个最初的猜测。

要使用矢量表单,请设置DataFormat属性中指定的对象的刚体树属性到任职“行”或者'柱子'

输出参数

展开全部

机器人配置,作为结构数组返回。结构数组包含以下字段:

  • JointName- 字符向量,用于指定的关节名称刚体树机器人模型

  • 兼职-相应接头的位置

该关节配置是在解公差内实现所需末端执行器姿态的计算解。

请注意

对于旋转关节,如果联合限制超过一系列2 * pi.,关节位置缠绕发生时,返回的关节位置是最接近关节下界的位置。

要使用矢量表单,请设置DataFormat属性中指定的对象的刚体树属性到任职“行”或者'柱子'

解决方案信息,作为结构返回。解决方案信息结构包含这些字段:

  • 迭代—算法运行的迭代次数。

  • numrandomrestarts.-由于算法陷入局部最小值而导致的随机重启次数。

  • poseerronorm.-与期望的末端执行器位姿相比,解的位姿误差的大小。

  • ExitFlag- 在算法执行中提供更多详细信息以及导致它返回的代码。对于每种算法类型的出口标志,请参阅退出标志

  • 状态-描述解决方案是否在公差范围内的字符向量('成功')或算法所能找到的最佳可能解('可以提供的最好的').

对象的功能

要使用对象函数,请指定System对象作为第一个输入参数。例如,释放名为system的对象的系统资源obj,请使用以下语法:

发行版(obj)

展开全部

系统对象算法
释放 释放资源并允许更改系统对象属性值和输入特征
重置 重置的内部状态系统对象

例子

全部折叠

为机器人模型产生关节位置,以实现所需的末端效应位置。的underedkinematics.系统对象使用反向运动学算法来求解有效的关节位置。

机器人负载的例子。的puma1.机器人是一个刚体树具有六个转动关节的六轴机械臂模型。

负载exampleRobots.matshowdetails (puma1)
---------------------------------- ---------- ---------- --------------------------- 1 L1 JNT1旋转碱(0)L2(2)2 L2 JNT2旋转L1(1)L3(3)3 L3 JNT3旋转L2(2)L4(4)4 L4 JNT4旋转L3(3)L5(5)5 L5 JNT5旋转L4(4)L6(6)6 L6 JNT6旋转L5(5)---------------------

生成随机配置。获取从末端效应器(L6)到该随机配置基础的变换。将此变换用作末端效应器的目标姿势。显示此配置。

randConfig=puma1.randomConfiguration;tform=getTransform(puma1,randConfig,'l6'“基地”);展示(Puma1,Randconfig);

图包含轴对象。轴对象包含13个类型的贴片物体,线。这些对象代表基座,L1,L2,L3,L4,L5,L6。

创建一个underedkinematics.对象puma1.模型。为姿势的不同组件指定权重。使用比位置组件更低的方向角大小权重。使用机器人的初始配置作为初始猜测。

ik=逆线性(“RigidBodyTree”, puma1);权重= [0.25 0.25 0.25 1 1 1];initialguess = puma1.homeConfiguration;

计算关节位置使用本土知识对象。

[configsoln,solninfo] = ik('l6',tform,权重,initialGuess);

显示新生成的解决方案配置。该解决方案是略微不同的关节配置,实现相同的末端效应位置。多次调用本土知识对象可以提供类似或非常不同的联合配置。

展示(puma1,configsoln);

图包含轴对象。轴对象包含13个类型的贴片物体,线。这些对象代表基座,L1,L2,L3,L4,L5,L6。

兼容性的考虑

展开全部

未来版本中的行为更改

工具书类

[1] Badreddine,Hassan,Stefan Vandewalle和Johan Meyers。“顺序二次编程(SQP),用于湍流直接控制中的最佳控制。”计算物理学.256(2014): 1 - 16。doi: 10.1016 / j.jcp.2013.08.044。

[2] 贝特塞卡斯,迪米特里P。非线性规划.马萨诸塞州贝尔蒙特:雅典娜科学公司,1999年。

[3] 戈德法布,唐纳德。“将Davidon的变尺度方法推广到线性不等式和等式约束下的最大化。”应用数学暹罗杂志.第17卷第4期(1969):739-64。doi: 10.1137 / 0117067。

[4] Nocedal、Jorge和Stephen Wright。数值优化.纽约,纽约:斯普林斯,2006年。

[5] Sugihara,Tomomichi。“由Levenberg-Marquardt方法的”可溶剂 - 不关心的逆运动学。“IEEE机器人技术交易第27卷第5期(2011):984-91。内政部:10.1109/tro.2011.2148230。

[6]赵,建胜和诺曼I. Badler。“反向运动学定位使用非线性规划进行高度铰接的数字。”美国计算机学会图形汇刊第13卷第4期(1994):313-36。doi: 10.1145/195826.195827。

扩展能力

介绍了R2016b