Robotic Mechanics and Modeling/Inverse Kinematics
Inverse Position Kinematics (Copied and edited from Link)
The inverse kinematics problem is the opposite of the forward kinematics problem and can be summarized as follows: given the desired position of the end effector, what combinations of joint angles (or prismatic displacements) can be used to achieve this position?

Two types of solutions can be considered: a closed-form solution and a numerical solution. Closed-form or analytical solutions are sets of equations that fully describe the connection between the end-effector position and the joint angles. Numerical solutions are found through the use of numerical algorithms, and can exist even when no closed-form solution is available. There may also be multiple solutions, or no solution at all.
Kinematic Equations for a Planar Three-Link Manipulator
The inverse kinematics problem for this 2D manipulator can be solved algebraically. The solution to the forward kinematics problem is:
To find the kinematic equations, we can use the following relationship:
Thus, the resulting kinematic equations are:
Inverse Kinematic Equations for a Planar Two-Link Manipulator
For simplicity in looking at the inverse problem of the three-link manipulator now modeled as a two-link manipulator, the displacement over the distance is set to zero. An appropriate 4x4 homogeneous transform (in 3D) including the orientation of the third body with in the above figure is the following:
Now assume a given end-effector orientation in the following form:
Equating the two previous expressions results in:
As:
- ,
squaring both the expressions for and and adding them, leads to:
Solving for leads to:
- ,
while equals:
- ,
and, finally, :
Note: The choice of the sign for corresponds with one of the two solutions in the figure above.
The expressions for and may now be solved for . In order to do so, write them like this:
where , and .
Let:
Then:
Applying these to the above equations for and :
- ,
or:
Thus:
Hence:
Note: If , actually becomes arbitrary.
may now be solved from the first two equations for and :
Inverse Kinematics Related to Jacobian Matrix
The inverse velocity problem seeks the joint rates that provide a specified end-effector twist. This is solved by inverting the Jacobian matrix. It can happen that the robot is in a configuration where the Jacobian does not have an inverse. These are termed singular configurations of the robot.
Inverse Velocity Kinematics
This problem can easily be solved by inverting the Jacobian...
Singularities
If the Jacobian is invertible, inverting it can be used to easily calculate the joint velocities if the (Cartesian) end-effector velocity is given. Locations (combinations of where the Jacobian is not invertible are called singularities. Setting the determinant of equal to zero and solving for allows for finding these singularities. These positions correspond to the loss of a degree of freedom.
Template:Short description Template:Calculus
In vector calculus, the Jacobian matrix (Template:IPAc-en,[1][2][3] Template:IPAc-en) of a vector-valued function in several variables is the matrix of all its first-order partial derivatives. When this matrix is square, that is, when the function takes the same number of variables as input as the number of vector components of its output, its determinant is referred to as the Jacobian determinant. Both the matrix and (if applicable) the determinant are often referred to simply as the Jacobian in literature.[4]
Suppose Template:Math is a function such that each of its first-order partial derivatives exist on Template:Math. This function takes a point Template:Math as input and produces the vector Template:Math as output. Then the Jacobian matrix of Template:Math is defined to be an Template:Math matrix, denoted by Template:Math, whose Template:Mathth entry is , or explicitly
This matrix, whose entries are functions of Template:Math, is also denoted variously by Template:Math, Template:Math, and Template:Sfrac. (However, some literature defines the Jacobian as the transpose of the matrix given above.)
The Jacobian matrix represents the differential of Template:Math at every point where Template:Math is differentiable. In detail, if Template:Math is a displacement vector represented by a column matrix, the matrix product Template:Math is another displacement vector, that is the best approximation of the change of Template:Math in a neighborhood of Template:Math, if Template:Math is differentiable at Template:Math.Template:Efn This means that the function that maps Template:Math to Template:Math is the best linear approximation of Template:Math for points close to Template:Math. This linear function is known as the derivative or the differential of Template:Math at Template:Math.
When Template:Math = Template:Math, the Jacobian matrix is square, so its determinant is a well-defined function of Template:Math, known as the Jacobian determinant of Template:Math. It carries important information about the local behavior of Template:Math. In particular, the function Template:Math has locally in the neighborhood of a point Template:Math an inverse function that is differentiable if and only if the Jacobian determinant is nonzero at Template:Math (see Jacobian conjecture). The Jacobian determinant also appears when changing the variables in multiple integrals (see substitution rule for multiple variables).
When Template:Math = 1, that is when Template:Math is a scalar-valued function, the Jacobian matrix reduces to a row vector. This row vector of all first-order partial derivatives of Template:Math is the transpose of the gradient of Template:Math, i.e. . Here we are adopting the convention that the gradient vector is a column vector. Specialising further, when Template:Math = Template:Math = 1, that is when Template:Math is a scalar-valued function of a single variable, the Jacobian matrix has a single entry. This entry is the derivative of the function Template:Math.
These concepts are named after the mathematician Carl Gustav Jacob Jacobi (1804β1851).
Inverse
According to the inverse function theorem, the matrix inverse of the Jacobian matrix of an invertible function is the Jacobian matrix of the inverse function. That is, if the Jacobian of the function Template:Math is continuous and nonsingular at the point Template:Math in Template:Math, then Template:Math is invertible when restricted to some neighborhood of Template:Math and
Conversely, if the Jacobian determinant is not zero at a point, then the function is locally invertible near this point, that is, there is a neighbourhood of this point in which the function is invertible.
The (unproved) Jacobian conjecture is related to global invertibility in the case of a polynomial function, that is a function defined by n polynomials in n variables. It asserts that, if the Jacobian determinant is a non-zero constant (or, equivalently, that it does not have any complex zero), then the function is invertible and its inverse is a polynomial function.