![FWDvsINV Kinematics HighResTransp](https://upload.wikimedia.org/wikipedia/commons/f/f4/FWDvsINV_Kinematics_HighResTransp.png)
In
computer animation
Computer animation is the process used for digitally generating animations. The more general term computer-generated imagery (CGI) encompasses both static scenes (still images) and dynamic images (moving images), while computer animation refe ...
and
robotics
Robotics is an interdisciplinary branch of computer science and engineering. Robotics involves design, construction, operation, and use of robots. The goal of robotics is to design machines that can help and assist humans. Robotics integrat ...
, inverse kinematics is the mathematical process of calculating the variable
joint
A joint or articulation (or articular surface) is the connection made between bones, ossicles, or other hard structures in the body which link an animal's skeletal system into a functional whole.Saladin, Ken. Anatomy & Physiology. 7th ed. McGraw ...
parameters needed to place the end of a
kinematic chain
In mechanical engineering, a kinematic chain is an assembly of rigid bodies connected by joints to provide constrained (or desired) motion that is the mathematical model for a mechanical system. Reuleaux, F., 187''The Kinematics of Machinery, ...
, such as a robot
manipulator or
animation character's skeleton, in a given position and orientation relative to the start of the chain. Given joint parameters, the position and orientation of the chain's end, e.g. the hand of the character or robot, can typically be calculated directly using multiple applications of trigonometric formulas, a process known as
forward kinematics
In robot kinematics, forward kinematics refers to the use of the kinematic equations of a robot to compute the position of the end-effector from specified values for the joint parameters.
The kinematics equations of the robot are used in roboti ...
. However, the reverse operation is, in general, much more challenging.
Inverse kinematics is also used to recover the movements of an object in the world from some other data, such as a film of those movements, or a film of the world as seen by a camera which is itself making those movements. This occurs, for example, where a human actor's filmed movements are to be
duplicated by an animated character.
Robotics
In robotics, inverse kinematics makes use of the
kinematics
Kinematics is a subfield of physics, developed in classical mechanics, that describes the Motion (physics), motion of points, Physical object, bodies (objects), and systems of bodies (groups of objects) without considering the forces that cause ...
equations to determine the joint parameters that provide a desired configuration (position and rotation) for each of the robot's
end-effectors. Determining the movement of a robot so that its end-effectors move from an initial configuration to a desired configuration is known as
motion planning
Motion planning, also path planning (also known as the navigation problem or the piano mover's problem) is a computational problem to find a sequence of valid configurations that moves the object from the source to destination. The term is used ...
. Inverse kinematics transforms the motion plan into joint
actuator
An actuator is a component of a machine that is responsible for moving and controlling a mechanism or system, for example by opening a valve. In simple terms, it is a "mover".
An actuator requires a control device (controlled by control signal) a ...
trajectories for the robot. Similar formulae determine the positions of the skeleton of an
animated character
Character animation is a specialized area of the animation process, which involves bringing animated s to life. The role of a character animator is analogous to that of a film or stage actor and character animators are often said to be "actors wit ...
that is to move in a particular way in a film, or of a vehicle such as a car or boat containing the camera which is shooting a scene of a film. Once a vehicle's motions are known, they can be used to determine the constantly-changing viewpoint for computer-generated imagery of objects in the landscape such as buildings, so that these objects change in
perspective while themselves not appearing to move as the vehicle-borne camera goes past them.
The movement of a
kinematic chain
In mechanical engineering, a kinematic chain is an assembly of rigid bodies connected by joints to provide constrained (or desired) motion that is the mathematical model for a mechanical system. Reuleaux, F., 187''The Kinematics of Machinery, ...
, whether it is a robot or an animated character, is modeled by the kinematics equations of the chain. These equations define the configuration of the chain in terms of its joint parameters.
Forward kinematics
In robot kinematics, forward kinematics refers to the use of the kinematic equations of a robot to compute the position of the end-effector from specified values for the joint parameters.
The kinematics equations of the robot are used in roboti ...
uses the joint parameters to compute the configuration of the chain, and inverse kinematics reverses this calculation to determine the joint parameters that achieve a desired configuration.
[J. J. Uicker, G. R. Pennock, and J. E. Shigley, 2003, Theory of Machines and Mechanisms, Oxford University Press, New York.][J. M. McCarthy and G. S. Soh, 2010]
''Geometric Design of Linkages,''
Springer, New York.
Kinematic analysis
![Modele cinematique corps humain](https://upload.wikimedia.org/wikipedia/commons/2/2c/Modele_cinematique_corps_humain.svg)
Kinematic analysis is one of the first steps in the design of most industrial robots. Kinematic analysis allows the designer to obtain information on the position of each component within the mechanical system. This information is necessary for subsequent dynamic analysis along with control paths.
Inverse kinematics is an example of the kinematic analysis of a constrained system of rigid bodies, or
kinematic chain
In mechanical engineering, a kinematic chain is an assembly of rigid bodies connected by joints to provide constrained (or desired) motion that is the mathematical model for a mechanical system. Reuleaux, F., 187''The Kinematics of Machinery, ...
. The
kinematic equations
Kinematics equations are the constraint equations of a mechanical system such as a robot manipulator that define how input movement at one or more joints specifies the configuration of the device, in order to achieve a task position or end-effect ...
of a robot can be used to define the loop equations of a complex articulated system. These loop equations are non-linear constraints on the configuration parameters of the system. The independent parameters in these equations are known as the
degrees of freedom
Degrees of freedom (often abbreviated df or DOF) refers to the number of independent variables or parameters of a thermodynamic system. In various scientific fields, the word "freedom" is used to describe the limits to which physical movement or ...
of the system.
While analytical solutions to the inverse kinematics problem exist for a wide range of kinematic chains, computer modeling and animation tools often use
Newton's method
In numerical analysis, Newton's method, also known as the Newton–Raphson method, named after Isaac Newton and Joseph Raphson, is a root-finding algorithm which produces successively better approximations to the roots (or zeroes) of a real-valu ...
to solve the non-linear kinematics equations.
Other applications of inverse kinematic algorithms include
interactive manipulation,
animation control
Animation is a method by which still figures are manipulated to appear as moving images. In traditional animation, images are drawn or painted by hand on transparent celluloid sheets to be photographed and exhibited on film. Today, most anim ...
and
collision avoidance
In transportation, collision avoidance is the maintenance of systems and practices designed to prevent vehicles (such as aircraft, motor vehicles, ships, cranes and trains) from colliding with each other. Examples include:
* Airborne collision avo ...
.
Inverse kinematics and 3D animation
Inverse kinematics is important to
game programming
Game programming, a subset of game development, is the software development of video games. Game programming requires substantial skill in software engineering and computer programming in a given language, as well as specialization in one or mor ...
and
3D animation
Animation is a method by which still figures are manipulated to appear as moving images. In traditional animation, images are drawn or painted by hand on transparent celluloid sheets to be photographed and exhibited on film. Today, most anima ...
, where it is used to connect
game characters physically to the world, such as feet landing firmly on top of terrain (see for a comprehensive survey o
Inverse Kinematics Techniques in Computer Graphics.
An animated figure is modeled with a skeleton of rigid segments connected with joints, called a
kinematic chain
In mechanical engineering, a kinematic chain is an assembly of rigid bodies connected by joints to provide constrained (or desired) motion that is the mathematical model for a mechanical system. Reuleaux, F., 187''The Kinematics of Machinery, ...
. The kinematics equations of the figure define the relationship between the joint angles of the figure and its pose or configuration. The
forward kinematic animation
In robot kinematics, forward kinematics refers to the use of the kinematic equations of a robot to compute the position of the end-effector from specified values for the joint parameters.
The kinematics equations of the robot are used in roboti ...
problem uses the kinematics equations to determine the pose given the joint angles. The ''inverse kinematics problem'' computes the joint angles for a desired pose of the figure.
It is often easier for computer-based designers, artists, and animators to define the spatial configuration of an assembly or figure by moving parts, or arms and legs, rather than directly manipulating joint angles. Therefore, inverse kinematics is used in computer-aided design systems to animate assemblies and by computer-based artists and animators to position figures and characters.
The assembly is modeled as rigid links connected by joints that are defined as mates, or geometric constraints. Movement of one element requires the computation of the joint angles for the other elements to maintain the
joint constraints Joint constraints are rotational constraints on the joints of an artificial system. They are used in an inverse kinematics chain, in fields including 3D animation or robotics. Joint constraints can be implemented in a number of ways, but the most ...
. For example, inverse kinematics allows an artist to move the hand of a 3D human model to a desired position and orientation and have an algorithm select the proper angles of the wrist, elbow, and shoulder joints. Successful implementation of computer
animation
Animation is a method by which image, still figures are manipulated to appear as Motion picture, moving images. In traditional animation, images are drawn or painted by hand on transparent cel, celluloid sheets to be photographed and exhibited ...
usually also requires that the figure move within reasonable
anthropomorphic
Anthropomorphism is the attribution of human traits, emotions, or intentions to non-human entities. It is considered to be an innate tendency of human psychology.
Personification is the related attribution of human form and characteristics t ...
limits.
A method of comparing both forward and inverse kinematics for the animation of a character can be defined by the advantages inherent to each. For instance, blocking animation where large motion arcs are used is often more advantageous in forward kinematics. However, more delicate animation and positioning of the target end-effector in relation to other models might be easier using inverted kinematics. Modern digital creation packages (DCC) offer methods to apply both forward and inverse kinematics to models.
Analytical solutions to inverse kinematics
In some, but not all cases, there exist analytical solutions to inverse kinematic problems. One such example is for a 6-DoF robot (for example, 6 revolute joints) moving in 3D space (with 3 position degrees of freedom, and 3 rotational degrees of freedom). If the degrees of freedom of the robot exceeds the degrees of freedom of the end-effector, for example with a 7 DoF robot with 7 revolute joints, then there exist infinitely many solutions to the IK problem, and an analytical solution does not exist. Further extending this example, it is possible to fix one joint and analytically solve for the other joints, but perhaps a better solution is offered by numerical methods (next section), which can instead optimize a solution given additional preferences (costs in an optimization problem).
An analytic solution to an inverse kinematics problem is a closed-form expression that takes the end-effector pose as input and gives joint positions as output,
. Analytical inverse kinematics solvers can be significantly faster than numerical solvers and provide more than one solution, but only a finite number of solutions, for a given end-effector pose.
Many different software products (Such as
FOSS
Fos or FOSS may refer to:
Companies
*Foss A/S, a Danish analytical instrument company
* Foss Brewery, a former brewery in Oslo, Norway
*Foss Maritime, a tugboat and shipping company
Historic houses
* Foss House (New Brighton, Minnesota), United ...
programs
IKFast
Open Robotics Automation Virtual Environment (OpenRAVE) provides an environment for testing, developing, and deploying motion planning algorithms in real-world robotics applications. The main focus is on simulation and analysis of kinematic and ge ...
an
Inverse Kinematics Library are able to solve these problems quickly and efficiently using different algorithms such as the
FABRIK solver. One issue with these solvers, is that they are known to not necessarily give locally smooth solutions between two adjacent configurations, which can cause instability if iterative solutions to inverse kinematics are required, such as if the IK is solved inside a high-rate control loop.
Numerical solutions to IK problems
There are many methods of modelling and solving inverse kinematics problems. The most flexible of these methods typically rely on
iterative optimization to seek out an approximate solution, due to the difficulty of inverting the forward kinematics equation and the possibility of an empty
solution space
In mathematical optimization, a feasible region, feasible set, search space, or solution space is the set of all possible points (sets of values of the choice variables) of an optimization problem that satisfy the problem's constraints, poten ...
. The core idea behind several of these methods is to model the forward kinematics equation using a
Taylor series
In mathematics, the Taylor series or Taylor expansion of a function is an infinite sum of terms that are expressed in terms of the function's derivatives at a single point. For most common functions, the function and the sum of its Taylor serie ...
expansion, which can be simpler to invert and solve than the original system.
The Jacobian inverse technique
The
Jacobian
In mathematics, a Jacobian, named for Carl Gustav Jacob Jacobi, may refer to:
*Jacobian matrix and determinant
*Jacobian elliptic functions
*Jacobian variety
*Intermediate Jacobian
In mathematics, the intermediate Jacobian of a compact Kähler m ...
inverse technique is a simple yet effective way of implementing inverse kinematics. Let there be
variables that govern the forward-kinematics equation, i.e. the position function. These variables may be joint angles, lengths, or other arbitrary real values. If the IK system lives in a 3-dimensional space, the position function can be viewed as a mapping
. Let
give the initial position of the system, and
:
be the goal position of the system. The Jacobian inverse technique iteratively computes an estimate of
that minimizes the error given by
.
For small
-vectors, the series expansion of the position function gives
:
,
where
is the (3 × m)
Jacobian matrix
In vector calculus, the Jacobian matrix (, ) of a vector-valued function of 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 ...
of the position function at
.
Note that the (i, k)-th entry of the Jacobian matrix can be approximated numerically
:
,
where
gives the i-th component of the position function,
is simply
with a small delta added to its k-th component, and
is a reasonably small positive value.
Taking the
Moore–Penrose pseudoinverse of the Jacobian (computable using a
singular value decomposition
In linear algebra, the singular value decomposition (SVD) is a factorization of a real or complex matrix. It generalizes the eigendecomposition of a square normal matrix with an orthonormal eigenbasis to any \ m \times n\ matrix. It is related ...
) and re-arranging terms results in
:
,
where
.
Applying the inverse Jacobian method once will result in a very rough estimate of the desired
-vector. A
line search
In optimization, the line search strategy is one of two basic iterative approaches to find a local minimum \mathbf^* of an objective function f:\mathbb R^n\to\mathbb R. The other approach is trust region.
The line search approach first finds a d ...
should be used to scale this
to an acceptable value. The estimate for
can be improved via the following algorithm (known as the
Newton–Raphson method
In numerical analysis, Newton's method, also known as the Newton–Raphson method, named after Isaac Newton and Joseph Raphson, is a root-finding algorithm which produces successively better approximations to the roots (or zeroes) of a real-valu ...
):
:
Once some
-vector has caused the error to drop close to zero, the algorithm should terminate. Existing methods based on the
Hessian matrix
In mathematics, the Hessian matrix or Hessian is a square matrix of second-order partial derivatives of a scalar-valued function, or scalar field. It describes the local curvature of a function of many variables. The Hessian matrix was developed ...
of the system have been reported to converge to desired
values using fewer iterations, though, in some cases more computational resources.
Heuristic methods
The inverse kinematics problem can also be approximated using heuristic methods. These methods perform simple, iterative operations to gradually lead to an approximation of the solution. The heuristic algorithms have low computational cost (return the final pose very quickly), and usually support joint constraints. The most popular heuristic algorithms are cyclic coordinate descent (CCD) an
forward and backward reaching inverse kinematics(FABRIK).
[A. Aristidou, and J. Lasenby. 2011]
FABRIK: A fast, iterative solver for the inverse kinematics problem
Graph. Models 73, 5, 243–260.
See also
*
321 kinematic structure
321 kinematic structure is a design method for robotic arms (serial manipulators), invented by Donald L. Pieper and used in most commercially produced robotic arms. The inverse kinematics of serial manipulators with six revolute joints, and with t ...
*
Arm solution
In the engineering field of robotics, an arm solution is a set of calculations that allow the real-time computation of the control commands needed to place the end of a robotic arm at a desired position and orientation in space.
A typical industr ...
*
Forward kinematic animation
In robot kinematics, forward kinematics refers to the use of the kinematic equations of a robot to compute the position of the end-effector from specified values for the joint parameters.
The kinematics equations of the robot are used in roboti ...
*
Forward kinematics
In robot kinematics, forward kinematics refers to the use of the kinematic equations of a robot to compute the position of the end-effector from specified values for the joint parameters.
The kinematics equations of the robot are used in roboti ...
*
Jacobian matrix and determinant
In vector calculus, the Jacobian matrix (, ) of a vector-valued function of 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 ...
*
Joint constraints Joint constraints are rotational constraints on the joints of an artificial system. They are used in an inverse kinematics chain, in fields including 3D animation or robotics. Joint constraints can be implemented in a number of ways, but the most ...
*
Kinematic synthesis
In mechanical engineering, kinematic synthesis (also known as mechanism synthesis) determines the size and configuration of mechanisms that shape the flow of power through a mechanical system, or machine, to achieve a desired performance. The wo ...
*
Kinemation
Kinemation was one of the first inverse kinematics packages for 3D computer animation, created for Wavefront Technologies' package The Advanced Visualizer (TAV). In 1995, Wired described Kinemation as "a huge breakthrough in motion animation". I ...
*
Levenberg–Marquardt algorithm
In mathematics and computing, the Levenberg–Marquardt algorithm (LMA or just LM), also known as the damped least-squares (DLS) method, is used to solve non-linear least squares problems. These minimization problems arise especially in least sq ...
*
Motion capture
Motion capture (sometimes referred as mo-cap or mocap, for short) is the process of recording the movement of objects or people. It is used in military, entertainment, sports, medical applications, and for validation of computer vision and robo ...
*
Physics engine
A physics engine is computer software that provides an approximate simulation of certain physical systems, such as rigid body dynamics (including collision detection), soft body dynamics, and fluid dynamics, of use in the domains of computer gr ...
*
Pseudoinverse
In mathematics, and in particular, algebra, a generalized inverse (or, g-inverse) of an element ''x'' is an element ''y'' that has some properties of an inverse element but not necessarily all of them. The purpose of constructing a generalized inv ...
*
Ragdoll physics
Ragdoll physics is a type of procedural animation used by physics engines, which is often used as a replacement for traditional static death animations in video games and animated films. As computers increased in power, it became possible to do ...
*
Robot kinematics
In robotics, robot kinematics applies geometry to the study of the movement of multi-degree of freedom kinematic chains that form the structure of robotic systems. The emphasis on geometry means that the links of the robot are modeled as rigid ...
*
Denavit–Hartenberg parameters
In mechanical engineering, the Denavit–Hartenberg parameters (also called DH parameters) are the four parameters associated with a particular convention for attaching reference frames to the links of a spatial kinematic chain, or robot manip ...
References
External links
Forward And Backward Reaching Inverse Kinematics (FABRIK)Robotics and 3D Animation in FreeBasic{{in lang, es
Analytical Inverse Kinematics Solver- Given an OpenRAVE robot kinematics description, generates a C++ file that analytically solves for the complete IK.
with an explanation of inverse kinematics
3D animations of the calculation of the geometric inverse kinematics of an industrial robotProtein Inverse KinematicsSimple Inverse Kinematics example with source code using Jacobian*
ttp://www.autodesk.com/products/humanik Autodesk HumanIKA 3D visualization of an analytical solution of an industrial robot
3D computer graphics
Computational physics
Robot kinematics
Virtual reality
Inverse problems