Animation of Articulated Figure Using Interpolation of Position and Orientation

Ran Hee Lee, Ji Hyung Lee, In Ho Lee
Motion Information Team, Virtual Reality Center, ETRI, Korea

Chil Woo Lee
Dept. of Computer Engineering, Chonnam National Univ., Korea



Motion capture is widely used method of animation for generation realistic motions. This paper presents an animation algorithm for generating natural motions of human-like character by using minimal seven magnetic sensors. The feature of this method is that position and orientation information of a feature point of human body are applied to inverse kinematics, and orientation of joints is expressed with a normal vector of the feature point, consequently the motions of the entire human body can be animated with data of minimal sensors. The method can be implemented in simple motion-capturing environment even with personal computer, so it can be used to make low-cost multimedia application systems.

Keywords : motion capture, Inverse Kinematics,

normal vector

1. Introduction

The most important goal of character animation research is to generate lively and realistic motion for living characters. It is very difficult, however, to generate very natural motions for the characters, like humans or animals, with complicated structure of multi-articulation, and that should have a variety of behaviors.

The Key-frame based animation technique has been widely used for expressing natural motion of the living characters. Adopting the method, we first choose the major frames, key frames, that include principal motion of motion chain, and then describe each motion between the key frames with means of interpolation, so that total animation is generated through sequence of every frame.

The virtue of the key frame animation is that its principles are so plain, as the results, it is possible to make animation only with simple graphic tools. However, because most procedures are conducted manually, it takes a great deal of time and has a disadvantage of a lack of reality if delicate motions and different expressions are needed. In addition, the quality of the animation is deeply dependent on animator�s ability. And either, it is impossible to reuse motion data gained from the procedure of reproduction for different animation.

Recently, the motion capture technique has been developed aimed at solving these problems and applied to the procedure of various animation, and it has become one of the most promising technologies in the field of commercial ads and movies. Since the technique is also used to capture motion data with sensors directly attached to the body of human or animal, motions that are almost real can be introduced in multimedia works. And also, because it is possible to store the motion data once gained in a form of a file, it can be used in various ways for different applications. The systems and devices that are used for motion capturing, however, cost highly, they not only lay an economical burden on trying to gain data on special movements separately, but also need high techniques. Recently, in order to solve these problems, motion editing approaches that modify and combine fragmentary motion information, clip motion, for dynamic changes of virtual environment has been developed.

Motion editing, the technique to improve motion segments for the purposes of a user, can be divided into two parts, one is a numerical method, and the other an analytical method. The numerical method is that since solution of dynamic equations is gained by putting data of motion segments in, the exact results can be obtained. However, the method bear too great deal of calculation burden and would be very complicated to solve problems of a boundary condition. The analytical method is, rather than conducting complicated calculation for real description, that characteristics of geometric structures and features of movements of a character are looked into in depth, data on motions given is changed analytically to reproduce the most optimal motions. So, it is appropriate to real-time animation of a character that has high degree of freedom.

Concrete examples of motion editing include ways of using the motion warping [5], multi-target interpolation [6], Fourier transform, and linear Interpolation [7]. Such are the methods treated appropriately for the purpose of making it possible to use motion data, gained from the sensors attached onto several major parts of a character, to express motions thoroughly. But, since data enough to be used to express movements cannot be gained in a simple animating environment, it is necessary to study to make it possible to reproduce more realistic motions using a minimal sensor data.

Concerning this, Badler, Hollick, and Granieri created a system, "Jack", that makes it possible to animate using only the data gained by 4 sensors attached onto the head, palms, and waist [1]. In the system, joints and four major points that these joints in the upper part of a human body are connected to were used to make a modeling, and movements between these joints were estimated using Inverse Kinematics Algorithm. Since this method was focused on the upper part of the body and linear inverse kinematics theory was applied, that maybe a lack of naturalism in the animating, but it is worth in the way that motions of a complicated articulated character have been reproduced using a few sensor data. As an improved approach, Zhao and Badler suggested nonlinear inverse kinematics in order to express flexibility of movements [3].

In this paper, an animation algorithm is described in a way that makes it possible not only to reduce economic and technical burdens but also to express realistic motions of all parts of the body using minimal sensors. Seven sensors were attached onto the hip, chest, head, wrists, and ankles to capture motions of each joint of a human body, and the motions were reproduced with constraints between captured motion data and the hierarchy structure and inverse kinematics algorithm. Our goal is to reproduce the realistic movements by means of a minimal motion data considering the case in which the motion-capturing technique would be generalized on the basis of a personal computer system in the future.

In section 2, we design the process of creating motion data and expressing hierarchical models, In section 3, we describe the algorithm creating animation of an articulated character. In Section 4, we show the experiment results. Finally, we conclude this paper in Section 5.

2. The Structure of Character Model and Motion Data

The Human body can modeling that body segment is connected each joint approximated from rigid body by articulated figure. And each joint will be has physical constraint such as degree of freedom.

Figure 1 shows the model of a human body used in this study and the positions of the sensors used to gain motion data of the human body are marked.

This model has the hierarchical structure that is widely utilized to animate a human body, and when a joint deforms, all connected child joints below would change along. Motions of the entire model are expressed as positions of joints and rotating angles of limb linkage. So, when the value of a joint changes, positions of its connected joints and rotating angles can be estimated with continuous matrix calculation.

The motion data used in the study, as seen in Figure 1, can be gained through 7 magnetic sensors attached onto the hip, chest, head, wrists, and ankles. The data includes rotating angles of an articulated character on the basis axis and three-dimensional positions (x, y, z) on a basic point of each joint. Moreover, because it is possible to capture data more than 30 frames per second, it is possible to express enough movements if it is applied to the model.

Figure 1. The standing posture as initial posture and the location of seven attached sensors

Since it can possibly happen, when motion capturing is carried out, that the magnetic field of a transmitter can be affected by materials, such as steel, and signal can be distorted, extreme care must be taken to environments around the capturing system. Besides, since the captured data includes sensor noise and unwanted jerky motions would be inserted, it must undergo the filtering process. And also calibration process is necessary to consider the virtual character used in the system to the actor that conducts motion with reality.

The virtual character should keep a standing posture as a default start posture, as seen in Figure 1, for smooth gaining of the data, and should gain data from sensor 1 to 7 continuously and keep it in a file

3. Motion Generation with Inverse Kinematics

Motions or postures of an articulated character are decided with sequential positions of each joint and its rotating angles of limb linkages. As mentioned above, joints must be connected to one another hierarchically, and rotating angles must have anatomic angles, as constraints, and it is appropriate to the body structure and physical exercise. Positions of joints are represented using a three-dimensional vector, and the rotation of each joint is expressed with quaternion. In the following, contents of the system and animation algorithm suggested in the study are described in order.

3.1. Calibration Process.

There are a great difference in physical magnitude and structure between the character reproducing movements in virtual world and the actor who provides motion data with sensors attached onto it. Therefore, if the data gained in such a way is mapped on the character, it probably produces an unnatural animation. Calibration process should be necessary to reduce the difference between the character and actor.

First, the coordinate system of the motion capturing devices and virtual space of the character must come in accordance with each other. Namely, the data should be transformed to the one whose basis point is the origin of virtual space. Second, the differences of lengths of joints between the actor and the virtual character are calibrated.

3.2. Character Animation

3.2.1. Translation
The desired animation can be gained if the data captured through the above process is applied to the character. Animation is divided into translation and rotation of each joint. Translation of the character can be simply carried out by changing the value of the position of hip that is the root of the entire structure. Translation of root is generated from motion data of root.

The character being composed of hierarchical structures, if the root translates, all the joints below will be in accordance with the root.

3.2.2. Calculation of Joint Angle
The posture of the character in three-dimensional space is determined according to rotation angle of the joints that decide on the structure of the character. After all the positions of the character have been determined by translation, various movements can be expressed by calculating the rotation angles of each joint and changing a certain amount of it over the prescribed time.

We apply the inverse kinematics theory to the character model to calculate joint angles. It is mainly used in gaining a rotating angle of an intermediate joint in the case that the position and posture of end-effector on the basis coordinate system of the manipulator technically. Now that the data captured from the motion-capturing device includes information on orientation and positions of the head, wrists and ankles on the basis of the origin, the data can be used to obtain joint angles with inverse kinematics.

Let us assume that, as in Figure 2, an object is consisted of the upper and the lower segments, and these two segments is linked by an intermediate joint. Limbs of a human body can be modeled in such a structure, and an intermediate joint angle can be also gained from the position and orientation of the segments. Surely, calculation might become complicated according to the degree of freedom of the joint. In the paper, feature point, that is the positions of head, wrists and ankles are applied in sequence over time and motion of the joint onto which sensors are not attached according to the axis and radius of actions of end-effector are obtained.



Figure 2. Modeling of the articulated object with two segments and one joint in the three dimensional space.

As seen in Figure 2, let us assume that the shoulder positions are given. Let , and be defined as follows

= the length of the upper segment,

= the length of the lower segment ,

= the length from the origin of the upper segment to

end point of the lower segment .

In this case, the joint angle between two segments can be calculated from equation (1).

In addition, the interval angle between the basic axis and the upper and the lower segments is obtained as in equation (2).

The amount of the rotating angle of the lower segment, as in equation (3), is decided on anatomically within the possible range.

Considering the case of arms, for example, and supposing that the positions of shoulders are fixed, and positions of wrists can be obtained from the motion data, joint angles of elbows can also be obtained from those equations above. Then, comes to change over time according to motion of the actor, and the movements of arms can be obtained when mapping is completed to the character in virtual space after gaining joint angles . Considering the possible constraints of all joints, it is feasible to express motion of the entire human body if the same method is applied to it.

3.3. Normal Vectors Computation

If the method explained in the above is used, a joint angle of an articulated character with the one degree of freedom can be easily obtained. However, because of the structure of an upper joint, even though it has one degree as in an elbow, we have different case in which the joint angles are the same but the positions of wrists are mismatched. In that case, if only the position of the feature point is used we cannot estimate the joint position. So, we use extra information about the orientation of feature point, like a wrist cross product of two vectors and quaternion are used to obtain information about orientation of each joint. A normal vector of plane should be gained using cross products of a vector creating a new vertical vector to two given vectors.

Figure 3. Calculation of normal vector

Translating positions of end-effector from to , as seen in Figure 3, when joint angles were gained, the angle , that the basic vector of an segment and the axis Y would make, creates the vector that has the same element as the equation (4) has using cross product between the normal vector of rotation and the axis Y.

When a joint angle is applied via a newly created vector, orientation of an intermediate joint in the rotated form can be obtained. Therefore, the above problems can be solved.

3.4 Experimental Results

To evaluate the efficiency of the algorithm described in this paper, we have constructed an animation system on personal computer of Pentium III. And, graphic accelerator FireGL2 was used to improve graphic efficiency of the PC system. Motion Star Wired™ by Ascension technology Inc. was used as a motion data-capturing device, and data of the position of each sensor can gain 30 frames per second.

The system, where sensor numbers and a joint of character are in accordance in order to decode the data, is divided into the part in which animation is created and the one displaying the path of motion data. The path of data, as seen in Figure 4, consists of the part where the paths for each value X, Y, Z of coordinates for each joint�s position are expressed(a), and the one where the path of position in three-dimensional space is displayed(b). Figure 5 shows the final results of the animation created by interpolation of motion data and an each joint.

(a)Transition of joint position

(b) The trajectory of motion in three-dimensional space

Figure 4. The trajectory of left hand motion

Figure 5. Animation examples of walking human

4. Conclusion

In this paper, we present an algorithm that can animate motions of human-like character with minimal seven sensors. The aim of our research is to develop motion-capturing technique that can be implemented in PC environment with low cost. Even though some improvements for reality are needed, feasibility for fundamental algorithm has been checked out. The feature of the algorithm is that position and orientation of the feature points are combined in inverse kinematics and then seven minimal sensors are sufficient to generate whole body animation of a human-like character.

We are now planning to introduce more complex situation into the animation theory, such as dynamic interference of user interaction and rough terrain in virtual space. With the improvement we will be able to construct more useful animation system with personal computer.


  1. N. Badler, M. Hollick, and J. Granieri. "Real-time control of a virtual human using minimal sensors." Presence, 2(1):82--86, 1993.
  2. D.Tolani and N.I.Badler. "Real-time inverse kinematics of the human arm", Presence, 5(4) : 393-401, 1996
  3. J. Zhao and N. Badler, "Inverse Kinematics positioning using nonlinear programming for highly articulated figures", ACM Transactions on Graphics, 13(4), 313-316,1994
  4. Jehee Lee and Sung Yong Shin, "A Hierarchical Approach to Interactive Motion Editing for Human-like Figures", Proceedings of SIGGRAPH '99
  5. A.Witkin and Z.Popovic, "Motion warping", Computer Graphics(Proceedings of SOGGRAPH 95),29:105-108, August 1995
  6. C.Rose, M.F.Cohen and B.Bodenheimer, "Verbs and Adverbs : Multidimensional motion interpolation", IEEE CG&A, 18(5):32-40 October 1998
  7. D.J.Wiley and K.Hahn."Interpolation synthesis for articulated figure motion". In Proceedings of IEEE Computer Society Press, 1997
  8. Vladimir M.Zatsiorsky , "Kinematics of Human Motion", 1998
  9. Donald Hearn, M.Pauline Baker, "Computer Graphics" Second Edition, 1997