R. Bowen Loftin, Ph.D., Professor, UH
James C. Maida, JSC
Jian Yang, Ph.D., Post-Doctoral Fellow, UH
VIRTUAL ENVIRONMENT SYSTEMS provide immersive visual displays of computer
graphics, which offer a novel approach to the solution of many problems in the aerospace
domain. In these systems, a participant/user is connected to a synthetic human agent
through appropriate sensors. Through a real-time association between user joint or
end-effector positions and orientations, the corresponding parts of the synthetic agent
are made to move in synchrony.
In computer graphics, a human body or its parts are modeled as an articulated figure--a structure that consists of a series of rigid links connected at joints. The number of degrees of freedom of an articulated figure is the number of joint angles necessary to specify the state of the structure. If all the joint angles are known or specified, the coordinates of the end of a limb, called the end-effector (such as the hands and feet), can be easily computed (forward kinematics). What usually interests us, however, is finding the joint angles from the end-effector's coordinates. Goal-directed movement, such as moving a hand to open a door or placing a foot at a specified location on the ground, requires the computation of inverse kinematics, which solves for the set of joint angles from the end-effector's location and orientation. Usually the forward kinematics function is highly nonlinear, rapidly becoming more and more complex as the number of links increases; thus, the inversion of the function soon becomes impossible to perform analytically.
Above. Kurt Bush in the NASA Graphics Research and Analysis Facility executes space-oriented activities through computer simulation.
The simplest, yet very important inverse kinematics problem, occurs in human arm modeling. The human arm can be modeled as a seven-degree-of-freedom mechanism consisting of a spherical joint for the shoulder, a revolute joint for the elbow, and a spherical joint for the wrist. The inverse kinematics problem of the human arm can be stated as follows: given the position and the orientation of the hand, find the seven joint angles. Since the given position and the orientation of the hand specify six, rather than seven, independent quantities, the arm is a redundant system, and there are an infinite number of solutions for the joint angles. Therefore, a good algorithm for solving the inverse kinematics problem needs to have two characteristics. On the one hand, it has to be fast, given the requirement of interactivity. On the other hand, since the system is redundant, it should be able to find a sensible solution that makes the arm posture look natural. The objective of this study is to develop an algorithm to meet these two requirements.
Two proposed inverse kinematics algorithms have recently been written specifically for the human arm. Tolani and Badler[1] proposed an analytic approach. The basic strategy of their approach is to reduce the degrees-of-freedom of the arm by one, so that we can obtain the closed-form equations that solve the inverse kinematics. The reduction of the degrees-of-freedom is done by fixing one joint angle at its previous value. In other words, when the goal position changes, one of the joint angles still retains its previous value so that the other six joint angles can be obtained analytically. Among other shortcomings, this method, as pointed out by the authors, does not have a well-defined theory for generating and evaluating realistic looking postures.
An inverse kinematics approach developed by Koga et al.[2] focuses on generating natural looking arm postures. They use the sensorimotor transformation model proposed by Soechting and Flander[3-5] to guess a posture for the arm that matches physiological observations of humans. Because the solutions are not exact, the wrist position of the guessed posture may not be what is desired. Therefore, a pseudoinverse iteration procedure has to be carried out to tune the joint angles till the correct wrist position is obtained. Although Koga's approach can produce a natural looking arm posture, it is computationally expensive, because the pseudoinverse calculation is required for every iteration.
Recently, we proposed a new algorithm which incorporates the physiological observation into the inverse kinematics problem to produce natural looking arm postures without invoking the pseudoinverse Jacobian iterations.
It is known in neurophysiology[3] that arm and hand postures are, for the most part, independent of each other. This means that one can find the forearm and upper arm posture to match the wrist position and then determine the joint angles for the wrist to match the hand orientation. On the other hand, the arm posture is mainly determined by a simple sensorimotor transformation model.[4,5] In this model, given the wrist position, the four posture angles which specify the arm posture can be computed. The four angles, however, are not independent; only one angle is free to take any value. The direct use of these angles will result in an incorrect wrist position because the sensorimotor transformation is but an approximation. This is the reason Koga et al.[2] have to use the pseudoinverse Jacobian iteration procedure to adjust joint angles.
In our approach, instead of using the arm posture angles directly, we use the swivel angle computed from these arm posture angles. The swivel angle is an angle which measures a rotation of the elbow around the shoulder-to-wrist axis. With this swivel angle, we can always obtain a solution with correct wrist position, avoiding the need to use the pseudoinverse Jacobian iteration procedure to adjust joint angles. Since all the inverse kinematic approaches may produce joint angles which violate their limits, the joint angles corresponding to the swivel angle obtained from the sensorimotor transformation sometimes extend beyond their legal ranges.
To solve this problem, we have developed a new mathematical formulation for our approach. In this formulation, the wrist joint angles can be obtained directly from the given swivel angle without knowing the shoulder joint angles. This is especially beneficial if we use the constraint on the swivel angle to take care of shoulder joint angle limits, and the values of the shoulder joint angles do not have to be known before the final solutions are obtained. This understanding allows us to compute the joint angles from the obtained swivel angle and to check whether they violate their limits. If a limit violation occurs, we need to adjust the swivel angle such that the joint angle with violation goes back within its limit. A straightforward way of modeling this movement is to use the increment procedure. Basically, what it does is to incrementally change (increase or decrease) the current swivel angle until the joint angle with violation hits its limit. While one can certainly obtain the legal swivel angle by the above procedure, it may require many iterations for each joint angle violation. By carefully examining the procedure stated above, one can find that the increment (or decrement) procedure is unnecessary, based on the observation that whenever a joint angle violates its limit, the increment (or decrement) procedure will stop when the joint angle reaches the limit. Therefore, instead of using the above procedure to obtain the new swivel angle when the joint angle hits the limit, we obtain the new swivel angle directly by setting the violation joint angle to its limit value. This simplification is attributed to the other more important aspect of our mathematical formulation: given one of six joint angles (three from the shoulder joint and three from the wrist joint), the corresponding swivel angle can be obtained analytically. It should be pointed out that although one may use the mathematical formulation given by Tolani and Badler[1] to handle the joint angle limit violations in our algorithm, unnecessary computations would have to be taken. Therefore, our new mathematical formulation has an obvious advantage over theirs for use in the inverse kinematics algorithm developed in this work.
The new algorithm we propose can be summarized as follows:
Since our new approach is based on the neurophysiology study and explicit formulae are given analytically for the total computation, our algorithm is not only capable of producing natural looking arm postures but can produce fast responses.
To illustrate how this
algorithm works, we apply it to an example. In this example, the hand starts from the side
and then moves to the front. We divide the whole motion into 100 steps, which means we are
given 100 wrist positions and hand orientations; we need to find the corresponding 100 arm
postures. This requires us to compute the corresponding 100 swivel angles using the above
algorithm. In Fig. 1, we plot the original swivel angle obtained directly from the
sensorimotor transformation and the final swivel angle with appropriate adjustments as a
function of step number j. We see that the swivel angle is adjusted for j
<_ 3 and j _> 30, and that no adjustment is made in between. The adjustment
is necessary because the original swivel angle leads to the limit violation of a wrist
joint angle, which measures the hand rotation around an axis pointing out of the back side
of the hand, when j <_ 3 and j _> 30.
Figure 1. The original and adjusted swivel angles vs. the step number j.
The other characterization one may notice is that there is a sudden change in the slope of the adjusted value curves around j = 93 in the figure. This change is caused by the limit violation of another wrist joint angle, which measures the rotation of the hand around an axis pointing opposite to the stretched finger direction. In other words, this wrist joint angle would go out of its legal limit if we let the swivel angle go continuously up after j = 93 without pulling it down. Once the adjusted value of the swivel angle is known, the arm posture can be determined uniquely by using the formulation developed in this work.
One area of future research is to evaluate the performance of the algorithm proposed in this work, i.e., how natural are the arm postures produced by our algorithm. This confirmation can be made by drawing a comparison between the arm postures generated by our algorithm and other algorithms with respect to the arm postures of real humans. The success of the research not only allows us to evaluate the performance of our algorithm, but also provides a means for validating the sensorimotor transformation in neurophysiology on which our algorithm is based.
References
[1]D. Tolani and N. Badler. "Real-Time Inverse Kinematics of the Human Arm," Presence
5.4 (1996): 393-401.
[2]Y. Koga, K. Kondo, J. Kuffner, and J. Latombe. "Planning Motions with
Intentions," Proc., SIGGRAPH'94, Orlando, FL, July 24-29, 1994. 395-407.
[3]F. Lacquaniti and J. F. Soechting. "Coordination of Arm and Wrist Motion During a
Reaching Task," J. of Neuroscience 2.2 (1982): 339-408.
[4]J. F. Soechting and M. Flanders. "Sensorimotor Representations for Pointing to
Targets in Three Dimensional Space," J. of Neurophysiology 62.2 (1989):
582-94.
[5]J. F. Soechting and M. Flanders. "Errors in Pointing are Due to Approximations in
Sensorimotor Transformation," J. of Neurophysiology 62.2 (1989): 595-608.
Contents
|
|