主要内容

逆运动学算法

inverseKinematicsgeneralizedInverseKinematics类可以让您访问逆运动学(IK)算法。您可以使用这些算法生成机器人配置,以实现机器人的指定目标和约束。这个机器人配置是一个关节位置列表,这些关节位置在机器人模型的位置限制范围内,并且不违反机器人的任何约束。

选择一种算法

MATLAB®万博1manbetx支持两种实现IK解决方案的算法:BFGS投影算法和Levenberg-Marquardt算法。这两种算法都是迭代的、基于梯度的优化方法,从对解的初始猜测开始,并寻求最小化特定的成本函数。如果任一算法收敛到在指定公差内代价接近于零的配置,它就找到了逆运动学问题的解。然而,对于一些初始猜测和期望的末端执行器位姿的组合,算法可能会在没有找到理想机器人配置的情况下退出。为了处理这个问题,该算法使用了一个随机重启机制。如果启用,随机重新启动机制将重新启动从一个随机机器人配置的迭代搜索,只要搜索未能找到一个配置,以实现所需的末端执行器姿态。这些随机重启将继续进行,直到找到合格的IK解决方案、超过最大时间或达到迭代限制。

要设置算法,请指定SolverAlgorithm属性是“BFGSGradientProjection”“LevenbergMarquardt”

蓄热梯度投影

Broyden-Fletcher-Goldfarb-Shanno (BFGS)梯度投影算法是一种准牛顿方法,使用过去迭代的代价函数的梯度来生成近似的二阶导数信息。该算法使用这个二阶导数信息来确定当前迭代中要采取的步骤。采用梯度投影法对机器人模型的关节极限所建立的代价函数的边界极限进行处理。修改计算的方向,使搜索方向始终有效。

这种方法是默认算法,在寻找解决方案方面比Levenberg-Marquardt方法更健壮。万博 尤文图斯对于接近关节极限的构型或初始猜想与解不接近的构型,该方法更为有效。如果您最初的猜测接近解决方案,并且需要一个更快的解决方案,考虑Levenberg-Marquardt方法。

Levenberg-Marquardt

Levenberg-Marquardt (LM)算法在InverseKinematics类是一种误差阻尼最小二乘法。误差阻尼因子有助于防止算法脱离局部最小值。对LM算法进行优化,使其在初始猜想接近解的情况下收敛得更快。然而,该算法不能很好地处理任意的初始猜测。考虑使用这种算法来寻找沿着期望的末端执行器轨迹的一系列姿态的IK解。万博 尤文图斯一旦一个机器人的构型被发现,这个构型通常是一个很好的初始猜测的IK解决方案下一个姿态的轨迹。在这种情况下,LM算法可能产生更快的结果。否则,使用蓄热梯度投影代替。

解算器参数

每个算法都有特定的可调参数来改进解决方案。万博 尤文图斯这些参数在SolverParameters对象的属性。

蓄热梯度投影

BFGS算法的求解器参数有以下字段:

  • MaxIterations—允许的最大迭代次数。默认值是1500。

  • MaxTime—算法在超时前运行的最大秒数。默认值是10。

  • GradientTolerance-成本函数梯度上的阈值。如果梯度的大小低于此阈值,则该算法停止。必须是正标量。

  • SolutionTolerance-由解生成的末端执行器位姿与期望位姿之间误差的阈值。在这个计算中包括为对象中每个姿态组件指定的权重。必须是正的标量。

  • 实施联合限制-指示在计算解决方案时是否考虑关节限制。联合限制机器人模型的属性在吗rigidBodyTree.默认情况下,执行联合限制。

  • AllowRandomRestarts—允许随机重启的指示灯。当算法逼近不满足约束条件的解时,会触发随机重启。使用随机生成的初始猜测。MaxIterationMaxTime仍然遵守。缺省情况下,开启随机重启功能。

  • StepTolerance-解算器允许的最小步长。较小的步长通常意味着解接近收敛。默认值为10-14年

Levenberg-Marquardt

LM算法的求解器参数有以下额外的字段蓄热梯度投影方法需要:

  • ErrorChangeTolerance-末端执行器位姿误差变化的阈值。如果姿态误差的所有元素的变化都小于这个阈值,则算法返回。必须是正的标量。

  • DampingBias-阻尼的常数项。LM算法有一个阻尼特性,由这个常数控制,与代价函数一起工作,以控制收敛速度。要禁用阻尼,请使用UseErrorDamping参数。

  • UseErrorDamping- 1(默认),是否使用阻尼指示器。将该参数设置为禁用抑制。

解决方案信息

在使用逆运动学算法时,对对象的每次调用都返回关于算法如何执行的解决方案信息。解决方案信息以结构形式提供,包含以下字段:

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

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

  • 波塞罗范数-与期望的末端执行器姿态相比,解的位姿误差的大小。

  • ExitFlag-提供算法执行和返回原因的更多细节的代码。有关每种算法类型的退出标志,请参见出口标志

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

出口标志

在解决方案信息中,退出标志给出了具体算法执行的更多细节。看一下状态属性来判断算法是否成功。每个出口标志码都有一个定义好的描述。

“BFGSGradientProjection”算法退出标志:

  • 1-找到局部最小值。

  • 2—达到的最大迭代次数。

  • 3.—算法运行超时。

  • 4-最小步长。步长小于StepToleranceSize场的SolverParameters财产。

  • 5-没有退出标志。有关“LevenbergMarquardt”算法。

  • 6—搜索方向无效。

  • 7- Hessian不是正半定的。

“LevenbergMarquardt”算法退出标志:

  • 1-找到局部最小值。

  • 2—达到的最大迭代次数。

  • 3.—算法运行超时。

  • 4-最小步长。步长小于StepToleranceSize场的SolverParameters财产。

  • 5末端执行器位姿误差的变化小于ErrorChangeTolerance场的SolverParameters财产。

工具书类

Badreddine, Hassan, Stefan Vandewalle和Johan Meyers。湍流直接数值模拟中最优控制的顺序二次规划(SQP)。计算物理学杂志.256(2014): 1 - 16。doi: 10.1016 / j.jcp.2013.08.044。

Dimitri P. Bertsekas非线性规划.马萨诸塞州贝尔蒙特:雅典娜科学公司,1999年。

[3]戈德法布,唐纳德。大卫东变度量法在线性不等式和等式约束下最大化的推广应用数学杂志.第17卷第4期(1969):739-64。doi: 10.1137 / 0117067。

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

[5]苏吉哈拉,Tomomichi。由Levenberg-Marquardt方法求解的无关逆运动学。IEEE机器人学报Vol. 27, No. 5(2011): 984-91。doi: 10.1109 / tro.2011.2148230。

赵建民,诺曼·i·巴德勒高度铰接图形的非线性规划逆运动学定位美国计算机学会图形汇刊第13卷第4期(1994):313-36。doi: 10.1145/195826.195827。

另请参阅

||

相关话题