Misplaced Pages

Inverse kinematics

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

This is an old revision of this page, as edited by Prof McCarthy (talk | contribs) at 07:49, 15 January 2012 (added references). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Revision as of 07:49, 15 January 2012 by Prof McCarthy (talk | contribs) (added references)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
This article provides insufficient context for those unfamiliar with the subject. Please help improve the article by providing more context for the reader. (October 2009) (Learn how and when to remove this message)
File:Arc-welding.jpg
An industrial robot performing arc welding. Calculating the position of the welding torch tip from the angles of the robot's joints is a straightforward application of trigonometry. Calculating the joint angles required to move the torch tip to a desired position and how those angles must change over time to move the torch along the weld seam at the proper rate for a good weld is a problem in inverse kinematics.

Inverse kinematics refers to the use of the kinematics equations of a robot to determine the joint parameters that provide a desired position of the end-effector. Specification of the movement of a robot so that its end-effector achieves a desired task is know as motion planning. Inverse kinematics transforms the motion plan into joint servo-motor trajectories for the robot.

Examples of problems that can be solved through inverse kinematics are: How does a robot's arm need to be moved to be able to pick up a specific object? What are the motions required to make it look like an animated character is picking up an object?

Solving these problems is usually more involved than simply moving an object from one location to another. Typically, it requires the translation and rotation of a series of interconnected objects while observing limitations to the range of motions that are physically possible—A robot might damage itself if mechanical limitations are disregarded; An animation looks unrealistic if a character's hand moves through their own body to pick up an object located behind their back.

Physics

Further information: Physics and Kinematics

Kinematics is the formal description of motion. One of the goals of rudimentary mechanics is to identify forces on a point object and then apply kinematics to determine the motion of the object. Ideally the position of the object at all times can be determined. For an extended object, (rigid body or other), along with linear kinematics, rotational motion can be applied to achieve the same objective: Identify the forces, develop the equations of motion, find the position of center of mass and the orientation of the object at all times.

Robotics and 3D animation

Further information: Robotics and Computer animation

Inverse kinematics is the process of determining the parameters of a jointed flexible object (a kinematic chain) in order to achieve a desired pose. Inverse kinematics is a type of motion planning. Inverse kinematics are also relevant to game programming and 3D animation, where a common use is making sure game characters connect physically to the world, such as feet landing firmly on top of terrain.

Inverse kinematics is that branch of robotics which deals with the study and application of the process of determining the parameters of a flexible object in order to achieve a desired pose.

An articulated figure consists of a set of rigid segments connected with joints. Varying angles of the joints yields an indefinite number of configurations. The solution to the forward kinematic animation problem, given these angles, is the pose of the figure. The solution to the more difficult inverse kinematics problem is to find the joint angles given the desired configuration of the figure (i.e., end effector). In the general case there is no analytic solution for the inverse kinematics problem. However, inverse kinematics may be solved via nonlinear programming techniques. Certain special kinematic chains—those with a spherical wrist—permit kinematic decoupling. This treats the end effector's orientation and position independently and permits an efficient closed-form solution.

Inverse kinematics is a tool utilized frequently by 3D artists. It is often easier for an artist to express the desired spatial appearance rather than manipulate joint angles directly. 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.

For example, when one wants to reach for a door handle, their brain must make the necessary calculations to position his limbs and torso such that the hand locates near the door. The main objective is to move the hand but the many complex articulations of several joints must occur to get the hand to the desired location. Similarly with many technological applications, inverse kinematic mathematical calculations must be performed to articulate limbs in the correct ways to meet desired goals. One example where inverse kinematic calculations are often essential is robotics, where an operator wants to position a tool using a robot arm but certainly does not want to manipulate each robot joint individually. Other applications include computer animation where animators may want to operate a computer generated character, but find it impossibly difficult to animate individual joints. The solution is to model the virtual joints of the puppet and allow the animator to move the hands, feet and torso, and the computer automatically generates the required limb positions to accomplish this using inverse kinematics.

Key to the successful implementation of inverse kinematics is animation within constraints: computer characters' limbs must behave within reasonable anthropomorphic limits. Similarly, robotic devices have physical constraints such as the environment they operate in, the limitations of the articulations their joints are capable of, and the finite physical loads and speeds at which they are able to operate.

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.

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

See also

References

  1. Paul, Richard (1981). Robot manipulators: mathematics, programming, and control : the computer control of robot manipulators. MIT Press, Cambridge, MA. ISBN 9780262160827.


External links

Categories: