inverseKinematics
Create inverse kinematic solver
Description
TheinverseKinematics
System object™ creates an inverse kinematic (IK) solver to calculate joint configurations for a desired end-effector pose based on a specified rigid body tree model. Create a rigid body tree model for your robot using therigidBodyTree
class. This model defines all the joint constraints that the solver enforces. If a solution is possible, the joint limits specified in the robot model are obeyed.
To specify more constraints besides the end-effector pose, including aiming constraints, position bounds, or orientation targets, consider usinggeneralizedInverseKinematics
. This object allows you to compute multiconstraint IK solutions.
For closed-form analytical IK solutions, seeanalyticalInverseKinematics
.
To compute joint configurations for a desired end-effector pose:
Create the
inverseKinematics
object and set its properties.Call the object with arguments, as if it were a function.
To learn more about how System objects work, seeWhat Are System Objects?
Creation
Description
creates an inverse kinematic solver. To use the solver, specify a rigid body tree model in theik
= inverseKinematicsRigidBodyTree
property.
creates an inverse kinematic solver with additional options specified by one or moreik
= inverseKinematics(Name,Value
)Name,Value
pair arguments.Name
is a property name andValue
is the corresponding value.Name
must appear inside single quotes (''
). You can specify several name-value pair arguments in any order asName1,Value1,...,NameN,ValueN
.
Properties
Usage
Description
[
发现联合配置,达到规范ified end-effector pose. Specify an initial guess for the configuration and your desired weights on the tolerances for the six components ofconfigSol
,solInfo
] = ik(endeffector
,pose
,weights
,initialguess
)pose
. Solution information related to execution of the algorithm,solInfo
, is returned with the joint configuration solution,configSol
.
Input Arguments
Output Arguments
Object Functions
To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object namedobj
, use this syntax:
release(obj)
Examples
References
[1] Badreddine, Hassan, Stefan Vandewalle, and Johan Meyers. "Sequential Quadratic Programming (SQP) for Optimal Control in Direct Numerical Simulation of Turbulent Flow."Journal of Computational Physics. 256 (2014): 1–16. doi:10.1016/j.jcp.2013.08.044.
[2] Bertsekas, Dimitri P.Nonlinear Programming. Belmont, MA: Athena Scientific, 1999.
[3] Goldfarb, Donald. "Extension of Davidon’s Variable Metric Method to Maximization Under Linear Inequality and Equality Constraints."SIAM Journal on Applied Mathematics. Vol. 17, No. 4 (1969): 739–64. doi:10.1137/0117067.
[4] Nocedal, Jorge, and Stephen Wright.Numerical Optimization. New York, NY: Springer, 2006.
[5] Sugihara, Tomomichi. "Solvability-Unconcerned Inverse Kinematics by the Levenberg–Marquardt Method."IEEE Transactions on RoboticsVol. 27, No. 5 (2011): 984–91. doi:10.1109/tro.2011.2148230.
[6] Zhao, Jianmin, and Norman I. Badler. "Inverse Kinematics Positioning Using Nonlinear Programming for Highly Articulated Figures."ACM Transactions on GraphicsVol. 13, No. 4 (1994): 313–36. doi:10.1145/195826.195827.