An Inverse Kinematics Method Based on Muscle Dynamics Taku Komura Image Information Division, RIKEN 2-1 Hirosawa Wako-shi, Saitama, 351-0198 Japan Email:
[email protected] Yoshihisa Shinagawa Department of Information Science, Graduate School of Science, University of Tokyo 7-3-1 Hongo Bunkyo-ku, Tokyo, 113-0011 Japan Email:
[email protected] Tosiyasu L. Kunii Hosei University 3-7-2 Kajino-cho, Koganei-shi, Tokyo 184-8584 Japan Email:
[email protected]
Abstract Inverse kinmatics is one of the most popular method in computer graphics to control 3D multi-joint characters. In this paper, we propose an inverse kinematics algorithm that takes the characteristics of human bodies into account. The mausculoskeletal model is used to solve the redundancy of the human body. Using our method, feasible human body motion can be obtained simply by specifying the motion of several end effectors or body segments. Since muscle dynamics is taken into account, the configuration space of the human body is automatically calculated, and unrealistic postures can be avoided. It is also possible to tune the motion by changing the external load applied to the muscles. Using our method, the amount of work by the animators is reduced to create natural human animation.
1
Introduction
Inverse kinematics is a well-known technique for creating human animation. Since the human body has many DOFs, a great number of parameters must be determined to specify the actual posture. It is a tiresome work because all the parameters must be specified throughout the motion. Using inverse kinematics, the animators just specify a limited number of intuitive parameters, such as the positions of the end effectors (hands
and feet) to control the body. For this reason, their work is greatly reduced, and that is why this technique is adapted in 3D animation software today. Inverse kinematics is an old problem in robotics for controlling robot manipulators. However, their work was limited on particular linkage geometry. Researchers in computer graphics tried to solve inverse kinematic problems for tree-structured multibody figures such as human and animal bodies. Phillips et al [12] have created an interactive inverse kinematics system which can handle multiple constraints. Their work has been extended in [11], which enabled the control of bipedal articulated figures. Zhao and Badler [20] proposed a numerical method for determining the posture of a human figure, which can also be applied to any tree structured systems. Mas et al [8] and Boulic et al [1] have proposed an inverse kinematics method which allows the control of the center of mass. Koga et al [5] created a motion planning system of the arms that can move objects from one position to another. It can change the configuration of the object by regrasping it while transferring the object to the goal. They also used an inverse kinematics algorithm based on neurophysiology to determine the joint angles of the arms and shoulders from the position of the hands. These methods, as most other inverse kinematics algorithms used in computer graphics, do not take dynamics into account. Since inverse kinematics has been considered as a tool for creating human animation manually, timeconsuming calculations have been mostly avoided.
However, there are several researches which combine inverse kinematics with dynamics. Lee et al [7] controlled the arms of a human body model by determining the direction of the hand movements according to the comfort level of the motions. Comfort level of each joint was calculated using the following equation at each moment: cl =
lower half of the body is composed of the pelvis, and the femur, tibia, patella, talus, calcaneous, and toes in each leg. The joints of the legs are assumed to be either a 3-DOF gimbal joint (hip joint) or a 1-DOF joint (knee, ankle, and calcaneous joint). The front and back views of the body
τ τmax
where cl is the comfort level of the body, τ is the torque exerted by the joint, and τmax is the maximum torque exertable by the joint which is obtained from the ergonomics data. τ is obtained using inverse dynamics, which is a method to calculate torque and force exerted at the joints from the trajectory of the joint angles. In [4], inverse kinematics problems of robot manipulators were solved by torque optimization. Several researchers in biomechanical engineering have proposed inverse kinematics methods as control models of human bodies. In [14, 15], musculoskeletal models were used to solve redundancy. Muscle impedance was used to calculate the amount of change by the joint angles according to the displacement of the end-effector. In their work, however, the moment arm of the muscles were kept constant, experiments were done only in 2D space, joint torques were calculated only using statistics, and the effect of velocities were ignored. Even though the musculoskeletal model is full of physiological information for creating human animation, there has been no research in computer graphics that uses it to solve the redundancy problem of inverse kinematics. In this paper, we propose an inverse kinematics algorithm that takes the characteristics of a human body. The musculoskeletal model is used to solve the redundancy of the human body. Using our method, feasible human body motion can be obtained by just specifying the motion of several end effectors or body segments. Since muscle dynamics is taken into account, the configuration space of the human body is automatically calculated, and therefore, unrealistic postures are avoided. Our method is used to control mainly the lower half of the body. Several experimental results are shown in Section 5.
Figure 1. The frontal (left) and rear (right) views of the human body model
model with muscles are shown in Figure 2.
3
The Muscle Model
Each musculotendon is based on Hill’s three component model (Figure 3). There are many muscle models which derive from Hill’s model [17]. The model used here is that of Delp et al [2]. The model is composed of three elements: the contractile element (CE, muscle fibers), the parallel elastic element (PEE, connective tissue around the fibers and fiber bundles), and the series elastic element (SEE, muscle tendon). Precise description of Hill’s muscle model can
Figure 2. The muscle model by Hill used in this study
be found in references such as [2, 6]. A muscle exerts its maximum force f max when the muscle activation level a is 1 and the minimum force f min when a is 0. Therefore, the musculotendon force, f t , is limited by: f min (a = 0) ≤ f t ≤ f max (a = 1).
2
(1)
Musculoskeletal Model
The musculoskeletal model by Delp [2] has been used in this research 1 . This data includes the attachment sites of 43 muscles on each leg and physiological parameters such as the length of tendons, range of joint angles, etc. The 1 The data can be downloaded http://isb.ri.ccf.org/isb/data/delp
from
4 Inverse Kinematics by the Musculoskeletal Model Let us specify the posture of the human body model by the vector of the DOF of the model: θ = (θ1 , θ2 , . . . , θm )
(2)
where m is the DOF of the human body. Let us also represent the position and rotation of the body segment is by (Pis , Θis ).
(3)
where Pis is a three dimension vector for segment is ’s position, and Θis is the euler angle vector. Suppose the state of the body is θ0 = (θ01 , θ02 , . . . , θ0m ),
(4)
and the state of segment is is (Pi0s , Θ0is ).
(5)
Obviously, the state of segment is is determined by the values of the DOF of the body: (Pi0s , Θ0is ) = g(θ01 , θ02 , . . . , θ0m ).
(6)
The inverse kinematics problem to be solved here is as follows: Problem: When segment is moves from (Pi0s , Θ0is ) to (Pi0s + ∆Pis , Θ0is + ∆Θis ), how the values of the DOF vector (∆θ01 , ∆θ02 , . . . , ∆θ0m ) change? This problem is redundant, because m is larger than the dimension of (∆Pis , ∆Θis ), which is six. The relationship between the state of segment is and the DOF vector can be written in the following form: ∆P = J∆θ. (7) ∆Θ The collection of ∆θ that satisfies equation (7) can be written in the following form: ∆P + (I − J + J)k (8) ∆θ = J + ∆Θ where k is an arbitrary vector, and J + is called the pseudo inverse matrix of J, which can be calculated by J + = (J T J)−1 J T .
(9)
Whitney [16] proposed a method to solve the inverse kinematics problems by optimizing a quadratic form which can be written as: Q(∆θ) = ∆θT W ∆θ. ∆θ that optimizes this form can be obtained by ∆P ∆θ = W −1 J T (JW −1 J T )−1 . ∆Θ
(10)
(11)
Therefore, ∆θ = J +
∆P ∆Θ
(12)
gives a solution that minimizes the norm of ∆θ. Many researchers in bioengineering have proposed methods to calculate the human motion by minimizing some physical values, such as the jerk [3], torquechange [18, 10], muscle force change [19], muscle signal change [9], and potential energy by the joints [14, 15]. The method proposed here uses optimization for solving this problem. In this research, we have used the minimum muscle force change model to solve inverse kinematics problems. The minimum muscle-force change criterion can be written by the following form: CF =
1 2
Z tf m d ft ( i )2 dt 0
∑
i=1
dt
(13)
while fit is the muscle force of the i-th muscle. Here, the human body model keeps a static configuration. It means the velocity and acceleration of the joint angles are all considered to be zero. Therefore, using inverse dynamics, the joint torque can be calculated from the joint angles. The muscle forces are determined from the static joint torques using the algorithm proposed by Crowningshield [13], that solves the following quadratic programming problem to obtain the musculotendon force: nm ft min u = ∑ ( i )2 ft i=1 Ai s.t. τ = B f t
(14) (15)
where nm is the number of muscles, and Ai is the average cross-sectional area of muscle i, and B is the matrix that converts the muscle force f t to the joint torque τ. Therefore, as θ is determined, first the external force such as that from the ground are calculated, and next the joint torques are obtained using inverse dynamics, and finally, muscle forces are determined. When θ changes to θ + ∆θ, f t changes to f t + ∆ f t . The relation between ∆θ and ∆ f t is linear: ∆ft =
∂ft (∆θ). ∂θ
(16)
When the motion of segment is is (∆Pis , ∆θis ), the minimum muscle-force change motion can be obtained by minimizing the following criterion: 2
∆ f t = ∆θT (
∂ft T ∂ft ) ( )∆θ. ∂θ ∂θ
(17)
This is a quadratic programming problem. This kind of problem can be solved in real time using conventional methods.
Since it is also necessary to take into account the balance of the body, the position of the center of gravity must satisfy the following form: S
⊇ G
(18)
where S is the support area of the body by the feet, and G is the position of the center of gravity projected to the ground. The new position of G after moving segment is must also satisfy this condition. Since the support area is considered to be the same, S
⊇ G + ∆G.
(19)
To summarize, the problem solved here can be written in the following form: ∂ft T ∂ft 2 )∆θ min ∆ f t = ∆θT ( ) ( ∂θ ∂θ ∆θ
(20)
where
∆P ∆Θ
References [1] Ronan Boulic, Ramon Mas-Sanso, and Daniel Thalmann. Complex character positioning based on a compatible flow model of multiple supports. IEEE Transactions on Visualization and Computer Graphics, 3(3):245–261, 1997. [2] S. Delp, P. Loan, M. Hoy, F. Zajac, S. Fisher, and J. Rosen. An interactive graphics-based model of the lower extremity to study orthopaedic surgical procedures. IEEE Transactions on Biomedical Engineering, 37(8):757–767, August 1990. (Special issue on interaction with and visualization of biomedical data). [3] Tamar Flash and Neville Hogan. The coordination of arm movements: An experimentally confirmed mathematical model. The Journal of Neuroscience, 5(7):1688–1703, 1985.
ft +∆ft ft +∆ft S
= J∆θ
(21)
≤ f t max + ∆ f t max ≥ f t min + ∆ f t min ⊇ G + ∆G.
(22) (23) (24)
5 Experimental Results Several results of the inverse kinematics calculation are shown in this section. First, several motions have been created by moving the pelvis. An example of a squat motion by moving the pelvis downward is shown in Figure 3. The results are compared with the squat motion by a real human body. The heels of the feet raise as the pelvis is moved downward. This can also be observed in the real motion. Next, the mass of the chest of the human body model was increased 40kg. Again, the squat motion was created the same way. The results are shown in Figure 4. This time, the heels of the feet are not raised. The chest segment is too heavy this time so that the heels cannot be raised. Instead, the center of gravity of the body is transfered toward the heels, to keep the gastrocnemius and soleus muscles from being stretched too much. Another motion of controlling the pelvis is shown in Figure 5. This time, the pelvis is pulled to the front. Again, the results are compared with the real human motion.
6 Conclusions and Future Work In this paper, we have proposed a method to use the musculoskeletal human body model for inverse kinematics. We have shown that feasible motion by the legs can be obtained using our method. We are now extending the model to enable the inverse kinematics control of the whole body.
[4] John M. Hollerbach and Ki C. Suh. Redundancy resolution of manipulators through torque optimization. IEEE Journal of Robotics and Automation, 3:308– 316, 1987. [5] Yoshihito Koga, Koichi Kondo, James Kuffner, and Jean-Claude Latombe. Planning motions with intentions. Computer Graphics, 28:395–408, 1994. [6] Taku Komura, Yoshihisa Shinagawa, and Tosiyasu L. Kunii. Creating and retargetting motion by the musculoskeletal human body model. The Visual Computer, (5):254–270, 2000. [7] Philip Lee, Susanna Wei, Jianmin Zhao, and Norman I. Badler. Strength guided motion. Computer Graphics (Proceedings of SIGGRAPH 90), 24:253– 262, 1990. [8] R. Mas, R. Boulic, and D.Thalmann. A robust approach for the control of the center of mass with inverse kinetics. Computers and Graphics, 20(5):693– 701, 199. [9] M.Kawato. Optimization and learning in neural networks for formation and control of coordinated movement. Attention and Performance XIV, pages 821– 849, 1992. [10] M.Kawato, Y.Maeda Y.Uno, and R.Suzuki. Trajectory formation of arm movement by cascade neural network model based on minimum torque-change criterion. Biological Cybernetics, 62:275–288, 1990. [11] Cary B. Phillips and Norman I. Badeler. Interactive behaviors for bipedal articulated figures. Computer Graphics, 25(4):359–362, 1991.
Figure 3. The squat motion created using inverse kinematics(left), compared with the real human squat(right)
Figure 4. The squat motion by a heavy chest segment, created using inverse kinematics(left), compared with the real human squat(right)
Figure 5. Moving the pelvis to the front using inverse kinematics(left), compared with the real human motion(right)
[12] Cary B. Phillips, Jianmin Zhao, and Norman I. Badler. Interactive real-time articulated figure manipulation using multiple kinematic constraints. Computer Graphics, 24(2):245–250, 1990. [13] R.D.Crowninshield and Richard A. Brand. A physiologically based criterion of muscle force prediction in locomotion. Journal of Biomechanics, 14:793–800, 1981. [14] Toshio Tsuji, Takashi Ikemotio, Koji Ito, and Mitsuo Nagamachi. Impedance transformations in multijoint arm movements with redundant degrees of freedom. Transactions on IEE Japan(in Japanese), 108C(7):471–476, 1988. [15] Toshio Tsuji, Koji Ito, Mitsuo Nagamachi, and Takashi Ikemotio. Impedance regulations in musculomotor control system and the manipulation ability of the end-point. Journal of SICE(in japanese), 24(4):63–70, 1988. [16] D. E. Whitney. Resolved motion rate control of manipulators and human prostheses. IEEE Transactions on Man-Machine Systems, 10:47–53, 1969. [17] Jack M. Winters. Hill-based muscle models: A systems engineering perspective. In Jack M. Winters and Savio L-Y. Woo, editors, Multiple muscle systems: Biomechanics and movement organization, chapter 5, pages 69–93. Springer-Verlag, 1990.
[18] Y.Uno, M.Kawato, and R.Suzuki. Formation and control of optimal trajectory in human multijoint arm movement. Biological Cybernetics, 61:89–101, 1989. [19] Y.Uno, R.Suzuki, and M.Kawato. The control model that establish trajectories similar to those by the brain - the minimum muscle-force-change model. The 4th symposium on biological and physiological engineering, pages 299–302, 1989. [20] Jianmin Zhao and Norman I. Badler. Inverse kinematics positioning using nonlinear programming for highly articulated figures. ACM Transactions on Graphics, 13(4):313–336, 1994.