Technical SectionA projected back-tracking line-search for constrained interactive inverse kinematics☆
Graphical abstract
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 asWe 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, , and a desired goal state for the end-effector, . The corresponding initial state of the end-effector is given byWritingwhere is the change in joint parameter values. Our task is now to compute such thatWe perform a Taylor series expansion of the right-hand sideWe introduce the notationand call the matrix 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)
- 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....
- et al.
Selectively damped least squares for inverse kinematics
Journal of Graphics Tools
(2005) - CGgenie. Cg genie. web page, 〈http://cgenie.com/〉;...
- et al.
A closed-loop Jacobian transpose scheme for solving the inverse kinematics of nonredundant and redundant wrists
Journal of Robotic Systems
(1989) Introduction to robotics: mechanics and control
(1989)- et al.
Efficient synthesis of physically valid human motion
ACM Transactions on Graphics (TOG)
(2003) Application of inverse kinematics for skeleton manipulation in real-time
Computational modeling for the computer animation of legged figures
Three dimensional monocular human motion analysis in end-effector space
Automatic determination of shoulder joint limits using quaternion field boundaries
International Journal of Robotics Research
Computing inverse kinematics with linear programming
New inverse kinematic algorithms for redundant robots
Journal of Robotic Systems
Spherical blend skinning: a real-time deformation of articulated models
Learning physics-based motion style with nonlinear inverse optimization
ACM Transactions on Graphics
Cited by (0)
- ☆
This article was recommended for publication by O. Staadt.