# generalizedInverseKinematics

Create multiconstraint inverse kinematics solver

## Description

The `generalizedInverseKinematics`

System object™ uses a set of kinematic constraints to compute a joint configuration for
the rigid body tree model specified by a `rigidBodyTree`

object. The `generalizedInverseKinematics`

object uses a nonlinear solver to satisfy
the constraints or reach the best approximation.

Specify the constraint types, `ConstraintInputs`

, before calling
the object. To change constraint inputs after calling the object, call
`release(`

.`gik`

)

Specify the constraint inputs as constraint objects and call `generalizedInverseKinematics`

with these objects passed into it. To create
constraint objects, use the following objects:

If your only constraint is the end-effector position and orientation, consider using
`inverseKinematics`

as your solver
instead.

For closed-form analytical inverse kinematics solutions, see `analyticalInverseKinematics`

.

To solve the generalized inverse kinematics constraints:

Create the

`generalizedInverseKinematics`

object and set its properties.Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?

## Creation

### Syntax

### Description

returns a generalized inverse kinematics solver with no rigid body tree model
specified. Specify a `gik`

= generalizedInverseKinematics`rigidBodyTree`

model and the
`ConstraintInputs`

property before using this
solver.

returns a generalized inverse kinematics solver with the rigid body tree model
and the expected constraint inputs specified.`gik`

= generalizedInverseKinematics('`RigidBodyTree`

',rigidbodytree,'`ConstraintInputs`

',inputTypes)

returns a generalized inverse kinematics solver with each specified property
name set to the specified value by one or more `gik`

= generalizedInverseKinematics(`Name,Value`

)`Name,Value`

pair arguments. `Name`

must appear inside single quotes
(`''`

). You can specify several name-value pair arguments
in any order as `Name1,Value1,...,NameN,ValueN`

.

## Properties

## Usage

### Description

`[`

finds a joint configuration, `configSol`

,`solInfo`

]
= gik(`initialguess`

,`constraintObj,...,constraintObjN`

)`configSol`

, based on the
initial guess and a comma-separated list of constraint description objects. The
number of constraint descriptions depends on the
`ConstraintInputs`

property.

### 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 named `obj`

, use
this syntax:

release(obj)

## Examples

## Extended Capabilities

## Version History

**Introduced in R2017a**