逆运动学算法
的inverseKinematics
和generalizedInverseKinematics
类给你访问的逆运动学(IK)算法。您可以使用这些算法来生成一个机器人配置达到指定目标和约束的机器人。这个机器人关节位置的配置是一个列表的位置范围内的机器人模型和不违反任何约束机器人。
选择一种算法
MATLAB®金宝app支持两种算法实现一个反向的解决方案:bfg投影算法和Levenberg-Marquardt算法。基于两种算法是迭代,梯度优化方法,从一个初始猜测解决方案,寻求特定的成本函数最小化。如果算法收敛于一个配置的成本接近于零在指定的宽容,它找到了一个解决逆运动学问题。然而,对于一些组合的初始猜测和所需的终端执行器构成,该算法可能退出且不找到理想的机器人配置。处理这个问题,算法利用随机重新启动机制。如果启用,随机重启重启机制的迭代搜索从一个随机的机器人配置时,未能找到一个配置,达到所需的终端执行器构成。这些随机重启继续下去,直到找到符合条件的本土知识解决方案,最大时间运行,或达到迭代限制。
设置你的算法,指定SolverAlgorithm
属性是“BFGSGradientProjection”
或“LevenbergMarquardt”
。
蓄热梯度投影
Broyden-Fletcher-Goldfarb-Shanno(高炉煤气)梯度投影算法是一个拟牛顿方法,使用成本函数的梯度从过去的迭代生成近似二阶导数信息。该算法利用二阶导数信息在确定当前迭代的一步。梯度投影方法用于处理边界限制的成本函数联合限制机器人模型的创建。修改方向计算,这样搜索方向总是有效的。
这个方法是默认的算法和比Levenberg-Marquardt更健壮的在寻找解决方案的方法。金宝搏官方网站更有效配置联合限制或附近当初始猜测不接近的解决方案。如果你的初始猜测是接近解决方案和更快的解决方案是必要的,考虑的Levenberg-Marquardt方法。
Levenberg-Marquardt
Levenberg-Marquardt (LM)中使用的算法的变体InverseKinematics
类是一个error-damped最小二乘法。error-damped因素有助于防止算法逃离局部最小值。LM优化算法收敛更快,如果初始猜测是接近的解决方案。然而该算法没有很好的处理任意初始猜测。考虑使用这个算法寻找本土知识解决方案、千姿百态的期望轨迹的末端执行器。金宝搏官方网站一旦发现一个机器人配置一个姿势,配置通常是一个很好的初始估计在一个反向的解决方案中的下一个姿势的轨迹。在这种情况下,LM算法可能产生更快的结果。否则,使用蓄热梯度投影代替。
解算器参数
每个算法都有特定的可调参数来改进解决方案。金宝搏官方网站这些参数中指定SolverParameters
对象的属性。
蓄热梯度投影
高炉煤气的解算器参数算法有以下字段:
MaxIterations
——允许最大迭代数。默认值是1500。MaxTime
——最大的秒数算法运行超时之前。默认值是10。GradientTolerance
——成本函数的梯度阈值。该算法停止如果梯度的大小低于这个阈值。必须是一个积极的标量。SolutionTolerance
——阈值之间的误差的大小产生的末端执行器构成解决方案和所需的姿势。指定的重量为每个组件构成的对象都包含在这个计算。必须是一个积极的标量。EnforceJointLimits
——指标如果联合限制被认为是在计算解决方案。JointLimits
是机器人模型的属性rigidBodyTree
。默认情况下,联合限制执行。AllowRandomRestarts
如果允许随机重启——指标。随机重启时触发算法方法不满足约束的解决方案。使用一个随机生成的初始估计。MaxIteration
和MaxTime
仍然遵守。默认情况下,启用随机重新启动。StepTolerance
——最小步长所允许的解决者。较小的步骤大小通常意味着解决方案接近收敛。默认值是10-14年。
Levenberg-Marquardt
LM算法的解算器参数有以下除了什么额外的字段蓄热梯度投影方法需要:
ErrorChangeTolerance
——阈值变化之间的末端执行器位姿误差迭代。算法返回的所有元素的变化造成误差小于这个阈值。必须是一个积极的标量。DampingBias
——一个阻尼常数项。LM算法具有阻尼特性控制的这个常数与成本函数来控制收敛速度。要禁用阻尼,可以使用UseErrorDamping
参数。UseErrorDamping
- 1(默认),指示是否使用阻尼。设置这个参数假
禁用抑制。
解决方案信息
在使用逆运动学算法,每个调用的对象返回关于执行的算法解决方案信息。提供了解决方案信息结构与以下字段:
迭代
——由算法的迭代次数。NumRandomRestarts
——数量的随机重启是因为算法陷入局部最小值。PoseErrorNorm
——解决方案的姿势错误的大小相比,所需的终端执行器构成。ExitFlag
-代码更多细节算法执行什么导致它回来。每个算法类型退出的旗帜,明白了出口标志。状态
字向量描述解决方案是否在公差(“成功”
),或者能找到的最好的可能的解决方案的算法(“最好的”
)。
出口标志
解决方案信息,退出旗给更多细节的执行特定的算法。看一下状态
对象的属性是否该算法是成功的。每个出口标志代码定义了描述。
“BFGSGradientProjection”
算法退出标志:
1
——局部最小值。2
——最大迭代次数达到了。3
——算法在操作超时。4
——最小步长。下面的步骤大小StepToleranceSize
场的SolverParameters
财产。5
——没有出口标志。有关“LevenbergMarquardt”
算法。6
——无效的搜索方向。7
——黑森不是半正定。
“LevenbergMarquardt”
算法退出标志:
1
——局部最小值。2
——最大迭代次数达到了。3
——算法在操作超时。4
——最小步长。下面的步骤大小StepToleranceSize
场的SolverParameters
财产。5
——改变末端执行器位姿误差低于ErrorChangeTolerance
场的SolverParameters
财产。
引用
[1]Badreddine,哈桑,斯蒂芬·范德维尔和约翰·迈耶斯。“序贯二次规划(SQP)湍流的直接数值模拟的最优控制。”计算物理学杂志。256 (2014):1 - 16。doi: 10.1016 / j.jcp.2013.08.044。
[2]Bertsekas,迪米特里P。非线性规划。贝尔蒙特,MA:雅典娜科学,1999。
[3]戈德法布,唐纳德。“延长Davidon变量度量方法在线性不等式和等式约束下最大化。”暹罗在应用数学》杂志上。17卷,4号(1969):739 - 64。doi: 10.1137 / 0117067。
[4]Nocedal,豪尔赫和斯蒂芬·莱特。数值优化。纽约:施普林格出版社,2006年。
[5]苏吉哈拉,Tomomichi。“Levenberg-Marquardt Solvability-Unconcerned逆运动学的方法。”IEEE机器人27卷,5号(2011):984 - 91。doi: 10.1109 / tro.2011.2148230。
[6]赵、健民,诺曼。Badler。“逆运动学定位使用非线性规划高度灵活的数字。”ACM交易图片13卷,4号(1994):313 - 36。doi: 10.1145/195826.195827。
另请参阅
rigidBodyTree
|generalizedInverseKinematics
|inverseKinematics