Elsevier

Computers & Graphics

Volume 35, Issue 2, April 2011, Pages 288-298
Computers & Graphics

Technical Section
A projected back-tracking line-search for constrained interactive inverse kinematics

https://doi.org/10.1016/j.cag.2010.12.011Get rights and content

Abstract

Inverse kinematics is the problem of manipulating the pose of an articulated figure in order to achieve a desired goal disregarding inertia and forces. One can approach the problem as a non-linear optimization problem or as non-linear equation solving. The former approach is superior in its generality and ability to generate realistic poses, whereas the latter approach is recognized for its low iteration cost. Therefore, many prefer equation solving over optimization for interactive applications. In this paper we present a projected-gradient method for solving an inverse kinematics problem interactively, which exhibit good performance and precision. The method is compared to existing work in terms of visual quality and accuracy. Our method shows good convergence properties and deals with joint constraints in a simple and elegant manner. Our main contribution lies in an explicit incorporation of joint limits in an interactive solver. This makes it possible to compute the pose in each frame without the discontinuities exhibited by existing key frame animation techniques.

Research highlights

► We present a robust and an efficient method for solving the inverse kinematics problem for general branched constrained skeletons. ► Solving inverse kinematics with optimization-based approach gives more smooth animations. ► The presented method compares well with professional 3D animation software.

Introduction

Inverse kinematics is used for a wide range of applications such as robot simulation or motion planning, creation of digital content for movies or commercials, or for synthesizing motion in an interactive applications such as computer games and other types of virtual worlds. In Fig. 1, we have illustrated animations created with our own interactive inverse kinematics method.

Inverse kinematics is a standard tool in many applications like Maya, 3D Studio Max [1] or Blender [2]. Recently inverse kinematics have been employed as a dimensionality reduction tool in a tracker of human motion [11]. In short, it is a well known and wide-spread technique, and better numerical methods will, therefore, be valuable to a large community. A generally applicable method should be easy to use and thus minimize the number and complexity of user-defined parameters, while giving as realistic a pose as possible. Furthermore, speed is essential whether the method is used interactively to pose a figure, or to simulate movement in a virtual world. Most applications have chosen one of two avenues. Either, they are specialized closed-form solutions for specific low-dimensional manipulators, the approach often taken in Robotics, or they are general type methods. Even though inverse kinematics has been around for quite some time, there seems to be very little work done in exploring methods which can bridge the gap between the two extremes, perhaps because the animation industry has not felt the need for further improving their methods, and the design of robots have followed the same line of thought. However, with the development of more and more humanoid robots and the move towards more physics-based animations in media, the need for interactive general purpose inverse kinematics methods is again topical. Our focus is on the underlying method of solving the inverse kinematics problem. This can be extended to handle more user control, but that is not our interest.

Section snippets

The problem

We focus on a general, interactive method which includes joint limits. To state the problem more formally: Given a serial mechanism, we can set up a coordinate transformation from one joint frame to the next. Thus, we can find one transformation that takes a point specified in the frame of the end-effector into the root frame of the mechanism. We write it in general asy=F(θ).We can change the values of the joint-parameter θ and gain explicit control over the position and orientation of the

The traditional approach

Initially, we know the value of the joint-parameters, θk, and a desired goal state for the end-effector, g. The corresponding initial state of the end-effector is given byyk=F(θk).Writingθ=θk+Δθk,where Δθk is the change in joint parameter values. Our task is now to compute Δθk such thatg=F(θk+Δθk).We perform a Taylor series expansion of the right-hand sideg=F(θk)+F(θk)θΔθk+O(Δθk2).We introduce the notationJ(θk)=F(θk)θ,and call the matrix J the Jacobian. Next, we ignore the remainder term

A non-linear optimization approach

We use a squared weighted norm formulation measuring the distance between the goal positions and the end-effector positions. This formulation is similar to Zhao and Badler [34], and like them we can support numerous goal types including both position and orientation goals. The main difference being that we have agglomerated all goals and introduced a general weighting matrix instead of dealing with K square weighted summation terms. This formulation is well suited for calculation of the

Projected gradient

The simplest idea for a projected line-search method is to use the gradient descent as a basis. This method is called gradient projection or the projected gradient method. It is very well suited for non-linear optimization with box constraints and is robust. In fact, it is not even necessary to assume feasibility of the previous iterate to ensure feasibility of the current iterate, since the method relies on projection. The unprojected search direction of the gradient descent is orthogonal to

Performance of projected back-tracking line-search

The projected line-search developed in this paper has been tested with two different methods: the Jacobian Transpose method, which is the same as a Steepest Descent method using a fixed step-length, and a projected line-search method with the projected Armijo back-tracking line-search we described in Section 4.3. We have compared our results with the results from the SVD based Jacobian Inverse method used in the Blender Software package.

Discussion and conclusion

The non-linear optimization approach has shown beneficial behavior as a stronger mathematical formulation of the inverse kinematics problem. We have presented an efficient and robust numerical approach for solving the problem. We believe our approach is simple and elegant and easy to implement, even for non-specialist in numerical optimization. Further, we have demonstrated that our approach is sufficiently exact and responsive for interactive manipulation of multiple end-effectors while

Acknowledgment

The Motion capture data used in this project was obtained from mocap.cs.cmu.edu.

References (35)

  • W. Maurel et al.

    Human shoulder modeling including scapulo-thoracic constraint and joint sinus cones

    Computers & Graphics

    (2000)
  • Autodesk. web page, 〈http://usa.autodesk.com〉;...
  • Blender. The blender foundation, web page, 〈http://www.blender.org〉;...
  • Buss SR. Introduction to inverse kinematics with Jacobian transpose, pseudo-inverse and damped least squares methods....
  • S.R. Buss et al.

    Selectively damped least squares for inverse kinematics

    Journal of Graphics Tools

    (2005)
  • CGgenie. Cg genie. web page, 〈http://cgenie.com/〉;...
  • P. Chiacchio et al.

    A closed-loop Jacobian transpose scheme for solving the inverse kinematics of nonredundant and redundant wrists

    Journal of Robotic Systems

    (1989)
  • J.J. Craig

    Introduction to robotics: mechanics and control

    (1989)
  • A.C. Fang et al.

    Efficient synthesis of physically valid human motion

    ACM Transactions on Graphics (TOG)

    (2003)
  • M. Fêdor

    Application of inverse kinematics for skeleton manipulation in real-time

  • M. Girard et al.

    Computational modeling for the computer animation of legged figures

  • S. Hauberg et al.

    Three dimensional monocular human motion analysis in end-effector space

  • L. Herda et al.

    Automatic determination of shoulder joint limits using quaternion field boundaries

    International Journal of Robotics Research

    (2003)
  • E.S.L. Ho et al.

    Computing inverse kinematics with linear programming

  • T.C. Hsia et al.

    New inverse kinematic algorithms for redundant robots

    Journal of Robotic Systems

    (1991)
  • L. Kavan et al.

    Spherical blend skinning: a real-time deformation of articulated models

  • C.K. Liu et al.

    Learning physics-based motion style with nonlinear inverse optimization

    ACM Transactions on Graphics

    (2005)
  • Cited by (0)

    This article was recommended for publication by O. Staadt.

    View full text