Inverse kinematics




An industrial robot performing arc welding. Inverse kinematics computes the joint trajectories needed for the robot to guide the welding tip along the part.


Inverse kinematics is the mathematical process of recovering 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 is useful in robotics and in film animation.


In robotics, inverse kinematics makes use of the kinematics equations to determine the joint parameters that provide a desired position for each of the robot's end-effectors.[1] Specification of the movement of a robot so that its end-effectors achieve the desired tasks is known as motion planning. Inverse kinematics transforms the motion plan into joint actuator trajectories for the robot. Similar formulae determine the positions of the skeleton of an animated character 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 not themselves appearing to move as the vehicle-borne camera goes past them.


The movement of a kinematic chain, 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 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.[2][3][4]




Contents





  • 1 Kinematic analysis


  • 2 Inverse kinematics and 3D animation


  • 3 Analytical solutions to inverse kinematics


  • 4 Approximating solutions to IK systems

    • 4.1 The Jacobian inverse technique


    • 4.2 Heuristic Methods



  • 5 See also


  • 6 References


  • 7 External links




Kinematic analysis




A model of the human skeleton as a kinematic chain allows positioning using inverse kinematics.


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. The kinematic equations 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 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 to solve the non-linear kinematics equations.


Other applications of inverse kinematic algorithms include interactive manipulation, animation control and collision avoidance.



Inverse kinematics and 3D animation



Inverse kinematics is important to game programming and 3D animation, where it is used to connect game characters physically to the world, such as feet landing firmly on top of terrain (see [5] for a comprehensive survey on Inverse Kinematics methods used in Computer Graphics).


An animated figure is modeled with a skeleton of rigid segments connected with joints, called a kinematic chain. 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 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. 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 usually also requires that the figure move within reasonable anthropomorphic limits.



Analytical solutions to inverse kinematics


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, q=f(x)displaystyle q=f(x)displaystyle q=f(x). Analytical inverse kinematics solvers can be significantly faster than numerical solvers and provide more than one solution for a given end-effector pose.


The IKFast open-source program can solve for the complete analytical solutions of most common robot manipulators and generate C++ code for them. The generated solvers cover most degenerate cases and can finish in microseconds on recent computers.[promotional language]



Approximating solutions to IK systems


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. The core idea behind several of these methods is to model the forward kinematics equation using a Taylor series expansion, which can be simpler to invert and solve than the original system.



The Jacobian inverse technique


The Jacobian inverse technique is a simple yet effective way of implementing inverse kinematics. Let there be mdisplaystyle mm 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 p(x):ℜm→ℜ3displaystyle p(x):Re ^mrightarrow Re ^3p(x):Re ^mrightarrow Re ^3. Let p0=p(x0)displaystyle p_0=p(x_0)p_0=p(x_0) give the initial position of the system, and


p1=p(x0+Δx)displaystyle p_1=p(x_0+Delta x)p_1=p(x_0+Delta x)


be the goal position of the system. The Jacobian inverse technique iteratively computes an estimate of Δxdisplaystyle Delta xDelta x that minimizes the error given by ||p(x0+Δx)−p0||p(x_0+Delta x)-p_0p(x_0+Delta x)-p_0.


For small Δxdisplaystyle Delta xDelta x-vectors, the series expansion of the position function gives:


p(x1)≈p(x0)+Jp(x0)Δxdisplaystyle p(x_1)approx p(x_0)+J_p(x_0)Delta xdisplaystyle p(x_1)approx p(x_0)+J_p(x_0)Delta x


Where Jp(x0)displaystyle J_p(x_0)J_p(x_0) is the (3 x m) Jacobian matrix of the position function at x0displaystyle x_0x_0.


Note that the (i, k)-th entry of the Jacobian matrix can be determined numerically:


∂pi∂xk≈pi(x0,k+h)−pi(x0)hdisplaystyle frac partial p_ipartial x_kapprox frac p_i(x_0,k+h)-p_i(x_0)hfrac partial p_ipartial x_kapprox frac p_i(x_0,k+h)-p_i(x_0)h


Where pi(x)displaystyle p_i(x)p_i(x) gives the i-th component of the position function, x0,k+hdisplaystyle x_0,k+hx_0,k+h is simply x0displaystyle x_0x_0 with a small delta added to its k-th component, and hdisplaystyle hh is a reasonably small positive value.


Taking the Moore-Penrose pseudoinverse of the Jacobian (computable using a singular value decomposition) and re-arranging terms results in:


Δx≈Jp+(x0)Δpdisplaystyle Delta xapprox J_p^+(x_0)Delta pDelta xapprox J_p^+(x_0)Delta p


Where Δp=p(x0+Δx)−p(x0)displaystyle Delta p=p(x_0+Delta x)-p(x_0)Delta p=p(x_0+Delta x)-p(x_0).


Applying the inverse Jacobian method once will result in a very rough estimate of the desired Δxdisplaystyle Delta xDelta x-vector. A line search should be used to scale this Δxdisplaystyle Delta xDelta x to an acceptable value. The estimate for Δxdisplaystyle Delta xDelta x can be improved via the following algorithm (known as the Newton-Raphson method):


Δxk+1=Jp+(xk)Δpkdisplaystyle Delta x_k+1=J_p^+(x_k)Delta p_kDelta x_k+1=J_p^+(x_k)Delta p_k


Once some Δxdisplaystyle Delta xDelta x-vector has caused the error to drop close to zero, the algorithm should terminate. Existing methods based on the Hessian matrix of the system have been reported to converge to desired Δxdisplaystyle Delta xDelta x 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)[6], and Forward And Backward Reaching Inverse Kinematics (FABRIK)[7].



See also




  • 321 kinematic structure

  • Arm solution

  • Forward kinematic animation

  • Forward kinematics

  • Kinemation

  • Jacobian matrix and determinant

  • Joint constraints

  • Levenberg–Marquardt algorithm

  • Physics engine

  • Pseudoinverse

  • Ragdoll physics

  • Robot kinematics

  • Denavit–Hartenberg parameters

  • Motion capture



References




  1. ^ Paul, Richard (1981). Robot manipulators: mathematics, programming, and control : the computer control of robot manipulators. MIT Press, Cambridge, MA. ISBN 978-0-262-16082-7. 


  2. ^ J. M. McCarthy, 1990, Introduction to Theoretical Kinematics, MIT Press, Cambridge, MA.


  3. ^ J. J. Uicker, G. R. Pennock, and J. E. Shigley, 2003, Theory of Machines and Mechanisms, Oxford University Press, New York.


  4. ^ J. M. McCarthy and G. S. Soh, 2010, Geometric Design of Linkages, Springer, New York.


  5. ^ A. Aristidou, J. Lasenby, Y. Chrysanthou, A. Shamir. Inverse Kinematics Techniques in Computer Graphics: A Survey. Computer Graphics Forum, 37(6): 35-58, 2018.


  6. ^ D. G. Luenberger. 1989. Linear and Nonlinear Programming. Addison Wesley.


  7. ^ A. Aristidou, and J. Lasenby. 2011. FABRIK: A fast, iterative solver for the inverse kinematics problem. Graph. Models 73, 5, 243–260.




External links


  • Forward And Backward Reaching Inverse Kinematics (FABRIK)


  • Robotics and 3D Animation in FreeBasic (in Spanish)


  • Analytical Inverse Kinematics Solver - Given an OpenRAVE robot kinematics description, generates a C++ file that analytically solves for the complete IK.

  • Inverse Kinematics algorithms

  • Robot Inverse solution for a common robot geometry


  • HowStuffWorks.com article How do the characters in video games move so fluidly? with an explanation of inverse kinematics

  • 3D animations of the calculation of the geometric inverse kinematics of an industrial robot

  • 3D Theory Kinematics

  • Protein Inverse Kinematics

  • Simple Inverse Kinematics example with source code using Jacobian

  • Detailed description of Jacobian and CCD solutions for inverse kinematics

  • Autodesk HumanIK

  • A 3D visualization of an analytical solution of an industrial robot


The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP

Popular posts from this blog

Top Tejano songwriter Luis Silva dead of heart attack at 64

ReactJS Fetched API data displays live - need Data displayed static

Evgeni Malkin