Abstract:
A method, system and a computer program product for accurately predicting an output motion from a database of motion data based upon an input motion scenario are provided. A motion database is searched to find relevant existing motions. The selected motions, referred to as “root motions,” most likely do not meet exactly the input motion scenario, and therefore, they need to be modified by an algorithm. This algorithm derives a parametric representation of possible variants of the root motion in a GMP-like manner, and adjusts the parameter values such that the new modified motion satisfies the input motion scenario, while retaining the root motion&#39;s overall angular movement pattern and inter-joint coordination. The embodiment of the invention can accurately predict various human motions with errors comparable to the inherent variability in human motions when repeated under identical task conditions. The motions may be human or non-human such as other living creatures or robot motions.

Description:
CROSS-REFERENCE TO RELATED APPLICATION  
       [0001]     This application claims the benefit of U.S. provisional application Ser. No. 60/473,183, filed May 23, 2003. 
     
    
     BACKGROUND OF THE INVENTION  
       [0002]     1. Field of the Invention  
         [0003]     The present invention relates to methods, systems and computer program products for predicting an output motion from a database of motion data.  
         [0004]     2. Background Art  
         [0005]     The following references are noted herein: 
        [1] D. B. Chaffin, “Digital Human Modeling for Vehicle and Workplace Design,” Warrendale, Pa.: SAE, 2001.     [2] G. D. Jimmerson, “Digital Human Modeling for Improved Product and Process Feasibility Studies,” in DIGITAL HUMAN MODELING FOR VEHICLE AND WORKPLACE DESIGN, D. B. Chaffin, Ed. Warrendale, Pa.: SAE, 2001.     [3] J. W. McDaniel, “Models for Ergonomic Analysis and Design: COMBIMAN and CREWCHIEF,” in COMPUTER-AIDED ERGONOMICS, W. Karowowski et al., Eds. New York: Taylor &amp; Francis, 1990.     [4] J. M. Porter et al., “Computer-aided Ergonomics Design of Automobiles,” in AUTOMOTIVE ERGONOMICS, B. Peacock et al., Eds. New York: Taylor &amp; Francis, 1993.     [5] G. Salvendy, Ed., HANDBOOK OF INDUSTRIAL ENGINEERING. New York: Wiley, 2001. U. Raschke et al., “Simulating Humans: Ergonomic Analysis in Digital Environments.”    [6] D. Bowman, “Using Digital Human Modeling in a Virtual Heavy Vehicle Development Environment,” in DIGITAL HUMAN MODELING FOR VEHICLE AND WORKPLACE DESIGN, D. B. Chaffin, Ed. Warrendale, Pa.: SAE, 2001.     [7] S. M. Hsiang et al., “Development of Methodology in Biomechanical Simulation of Manual Lifting,” INT. J. INDUST. ERGON., vol. 19, pp. 59-74, 1994.     [8] J. D. Ianni, “Human Model Evaluations of Air Force System Designs,” in DIGITAL HUMAN MODELING FOR VEHICLE AND WORKPLACE DESIGN, D. B. Chaffin, Ed. Warrendale, Pa.: SAE, 2001.     [9] E. S. Jung and J. Choe, “Human Reach Posture Prediction Based on Psychophysical Discomfort,” INT. J. INDUST. ERGON., vol. 18, pp. 173-179, 1996.     [10] E. S. Jung et al., “Upperbody Reach Posture Prediction For Ergonomics Evaluation Models,” INT. J. INDUST. ERGON., vol. 16, pp. 95-107, 1995.     [11] C. Nelson, “Anthropometrie Analyzes of Crew Interfaces and Component Accessibility for the International Space Station,” in DIGITAL HUMAN MODELING FOR VEHICLE AND WORKPLACE DESIGN, D. B. Chaffin, Ed. Warrendale, Pa.: SAE, 2001.     [12] D. D. Thompson, “The Determination of the Human Factors/occupant Packaging Requirements for Adjustable Pedal Systems,” in DIGITAL HUMAN MODELING FOR VEHICLE AND WORKPLACE DESIGN, D. B. Chaffin, Ed. Warrendale, Pa.: SAE, 2001.     [13] T. Flash, “The Organization of Human Arm Trajectory Control,” in MULTIPLE MUSCLE SYSTEMS: BIOMECHANICS AND MOVEMENT ORGANIZATION, J. Winters and S. Woo, Eds. New York: Springer-Verlag, 1990.     [14] M. Kawato, “Trajectory Formation in Arm Movements: Minimization Principles and Procedures,” in ADVANCES IN MOTOR LEARNING AND CONTRL, H. N. Zelaznik, Ed. Champaign, Ill.: Human Kinetics, 1996.     [15] W. Abend et al., “Human Arm Trajectory Formation,” BRAIN, vol. 105, pp. 331-348, 1982.     [16] R. M. Alexander, “A Minimum Energy Cost Hypothesis for Human Arm Trajectory,” BIOL. CYBERN., vol. 76, pp. 97-105, 1997.     [17] T. Flash et al., “The Coordination of Arm Movements: an Experimentally Confirmed Mathematical Model,” J. NEUROSCI., vol. 5, pp. 1688-1703, 1985.     [18] M. I. Jordan, “Motor Learning and the Degrees of Freedom Problem,” in ATTENTION AND PERFORMANCE XIII, M. Jeannerod, Ed. Hillsdale, N.J.: Lawrence Erlbaum, 1990.     [19] M. Kawato, “Optimization and Learning in Neural Networks for Formation And Control of Coordinate Movement,” in ATTENTION AND PERFORMANCE, XIV: SYNERGIES IN EXPERIMENTAL PSYCHOLOGY, ARTIFICIAL INTELLIGENCE, AND COGNITIVE NEUROSCIENCE—A SILVER JUBILEE, D. Meyer and S. Kornblum, Eds. Cambridge, Mass.: MIT Press, 1992.     [20] D. A. Rosenbaum et al., “Coordination of Reaching and Grasping by Capitalizing on Obstacle Avoidance and Other Constraints,” EXPER. BRAIN RES., vol. 128, pp. 92-100, 1999.     [21] D. A. Rosenbaum et al., “Planning Reaches by Evaluating Stored Postures,” PSYCHOL. REV., vol. 102, pp. 28-67, 1995.     [22] D. A. Rosenbaum et al., “Posture-based Motion Planning: Applications to Grasping,” PSYCHOL. REV., vol. 108, pp. 709-734, 2001.     [23] J. E Soechting et al., “Moving Effortlessly in Three Dimensions: Does Donders Law Apply to Arm Movements?,” J. NEUROSCI., vol. 15, pp. 6271-6280, 1995.     [24] Y. Uno et al. “Formation and Control of Optimal Trajectory in Human Multijoint Arm Movement—Minimum Torque-change Model,” BIOL. CYBERN., vol. 61, pp. 89-101, 1989.     [25] C. Chang et al., “Biomechanical Simulation of Manual Lifting Using Spacetime Optimization,” J. BIOMEC., vol. 34, pp. 527-532, 2001.     [26] C. J. Lin et al., “Computer Motion Simulation For Sagittal Plane Lifting Activities,” INT. J. INDUST. ERGON., vol. 24, pp. 141-155, 1999.     [27] X. Zhang et al., “A Three-dimensional Dynamic Posture Prediction Model for In-vehicle Seated Reaching Movements: Development And Validation,” ERGONOMICS, vol. 43, pp. 1314-1330, 2000.     [28] X. Zhang et al., “Optimization-based Differential Kinematic Modeling Exhibits a Velocity-control Strategy for Dynamic Posture Determination in Seated Reaching Movements,” J. BIOMECH., vol. 31, pp. 1035-1042, 1998.     [29] J. J. Faraway, “Regression Analysis for Functional Response,” TECHNOMETRICS, vol. 3, pp. 254-261, 1997.     [30] R. A. Schmidt et al., “Motor Control and Learning: a Behavioral Emphasis,” Champaign, Ill.: Human Kinetics, 1999.     [31] A. Bruderlin et al., “Motion Signal Processing,” in PROC. SIGGRAPH CONF., 1995, pp. 97-104.     [32] M. Gleicher, “Retargeting Motion to New Characters,” in PROC. CONF. SIGGRAPH, 1998, pp. 33-42.     [33] M. Gleicher et al., “Constraint-based Motion Adaptation,” J. Vis. COMPUT. ANIMAT., vol. 9, pp. 65-94, 1998.     [34] J. Lee et al., “A Hierarchical Approach to Interactive Motion Editing for Human-like Figures,” in PROC. SIGGRAPH CONF., 1998.     [35] A. Witkin et al., “Motion Warping,” in PROC. SIGGRAPH CONF., 1995.        
 
         [0041]     Human CAD systems bring digital humans to the traditional CAD world in order to improve human-machine/environment interactions. Designers can create initial prototypes of products and workcells, and test their ergonomic correctness prior to building hardware prototypes. Such human CAD systems are reported to reduce product development cycles and enhance the number and quality of design options [1]-[5].  
         [0042]     One of the most desired functions of human CAD systems is accurate simulation/prediction of human motions [1], [2], [6]-[12], as it is a basis of many virtual ergonomic analyses, such as biomechanical low back stress, reachability, visibility, discomfort, and clearance analyses. Redundancy, caused by the large degrees of freedom inherent in the human body, is the critical problem in predicting realistic human motions (see [13], [14] for review). The way in which a given posture or a pattern of joint motion trajectories is determined to perform a goal-directed movement task is not clearly understood. Simulation modeling of motions helps gain insights into human motion planning, and is extensively utilized as a research methodology for testing various biological hypotheses [13]-[24].  
         [0043]     Several approaches have been proposed for ergonomic human motion simulation. Space-time optimization models were developed to predict two-dimensional (2-D) human lifting motions by minimizing biomechanical joint stresses given initial and final postures [7], [25], [26]. Differential inverse kinematic methods have been utilized to predict upperbody reach motions [9], [10], [27], [28]. The primary goal of these studies was to model how the movement of the hand (or end-effector) in the Cartesian space translates into the rotational movements of body segments. Faraway [29] developed a statistical method for predicting human reach motions based on regression models fitted to large sets of real motions. Given an ensemble of parameters, including the performer&#39;s stature, age, gender, etc., and the reach target location, the regression models predict the “average” joint angle trajectories and the corresponding confidence envelopes. In addition to ergonomic simulation models, various models have been developed to understand human motor planning and control [14], [16]-[19], [21], [22], [24]. These models were used to study relatively simple motions of two/three-link systems or planar motions.  
         [0044]     Despite some success, the previous models are limited, as they do not account for some fundamental human motor capabilities. 
        1) Generality: How to predict motions of different categories (lifting, reaching, load transferring, etc.) with a single, unified model.     2) Accommodation of movement alternatives: How to simulate stylistically different motions associated with a single task goal (e.g., stoop and squat techniques for lifting).     3) Expandability: How to expand the motion repertoire by adding new motor skills.        
 
         [0048]     Hence, there is a need for a model structure that has the above capabilities to enhance the utility of digital humans as an engineering design tool, and also will further the understanding of human motion planning.  
       SUMMARY OF THE INVENTION  
       [0049]     An object of the present invention is to provide a method, system and a computer program product for predicting an output motion from a database of motion data having at least one of the above capabilities, and preferably, all of the above capabilities.  
         [0050]     In carrying out the above object and other objects of the present invention, a method for predicting an output motion from a database of motion data is provided. The method includes receiving inputs which represent an input motion scenario and receiving motion data retrieved from the database. The motion data represents an existing motion of an existing motion scenario similar to the input motion scenario. The method further includes modifying the motion data based on the inputs to predict the output motion. The output motion substantially satisfies the input motion scenario and also substantially retains at least one property of the existing motion.  
         [0051]     The at least one property may be overall angular movement pattern of the existing motion.  
         [0052]     The at least one property may be inter-joint coordination of the existing motion.  
         [0053]     The existing motion may be represented as a set of joint angle trajectories.  
         [0054]     The step of modifying may include the step of resolving each joint angle trajectory into geometric primitive segments.  
         [0055]     Motions may be human motions.  
         [0056]     The step of modifying may be performed in the angle-time domain.  
         [0057]     The input motion scenario may include a set of attributes which describe a performer and a task.  
         [0058]     The set of attributes which describe the performer may include at least one of stature, body weight, age and gender.  
         [0059]     The set of attributes which describe the task may include at least one of motion type, goals of the motion and hand-held object characteristics.  
         [0060]     The goals of the motion may be represented as a set of locations and orientations.  
         [0061]     Each joint angle trajectory may be resolved to obtain a plurality of segments and segment boundary points, and the step of resolving may include the step of relocating the segment boundary points in the angle-time domain to obtain a new set of segment boundary points. The step of resolving may further include the steps of shifting and proportionately rescaling the segments to obtain new segments and fitting the new segments through the new set of segment boundary points.  
         [0062]     The method may further include searching the database based on the inputs to retrieve the motion data.  
         [0063]     Further in carrying out the above object and other objects of the present invention, a system for predicting an output motion from a database of motion data is provided. The system includes means for receiving inputs which represent an input motion scenario, and means for receiving motion data retrieved from the database. The motion data represents an existing motion of an existing motion scenario similar to the input motion scenario. The system further includes means for modifying the motion data based on the inputs to predict the output motion. The output motion substantially satisfies the input motion scenario and also substantially retains at least one property of the existing motion.  
         [0064]     The means for modifying may be performed in the angle-time domain.  
         [0065]     Each joint angle trajectory may be resolved to obtain a plurality of segments and segment boundary points, and the means for resolving may include means for relocating the segment boundary points in the angle-time domain to obtain a new set of segment boundary points. The means for resolving may further include means for shifting and proportionately resealing the segments to obtain new segments and means for fitting the new segments through the new set of segment boundary points.  
         [0066]     The system may further include means for searching the database based on the inputs to retrieve the motion data.  
         [0067]     Still further in carrying out the above object and other objects of the present invention, a computer program product includes a computer-readable medium, having thereon computer program code means, when the program is loaded, to make the computer execute procedure: a) to receive inputs which represent an input motion scenario; b) to receive motion data retrieved from a database wherein the motion data represents an existing motion of an existing motion scenario similar to the input motion scenario; and c) to modify the motion data based on the inputs to predict the output motion wherein the output motion substantially satisfies the input motion scenario and also substantially retains at least one property of the existing motion.  
         [0068]     The code means may further make the computer execute procedure to search the database based on the inputs to retrieve the motion data.  
         [0069]     The above object and other objects, features, and advantages of the present invention are readily apparent from the following detailed description of the best mode for carrying out the invention when taken in connection with the accompanying drawings. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0070]      FIG. 1  is a schematic block diagram flow chart of one embodiment of a memory-based motion simulation system of the present invention;  
         [0071]      FIGS. 2   a  and  2   b  are graphs of a root motion containing two joint angles and showing segmentation of the joint angles; the hollow squares represent the identified segment boundary points; the shapes of joint angle trajectories are represented by the strings “UDS” (top) and “DUD” (bottom);  
         [0072]      FIG. 3  are graphs showing a variant of a root motion obtained by relocating segment boundary points and deforming the root motion accordingly; the joint angle trajectories are represented by solid and dashed lines for the root and the modified motion, respectively; empty squares and circles represent the segment boundary points of the root and modified motion, respectively; and  
         [0073]      FIGS. 4   a  and  4   b  are graphs showing a root motion ( FIG. 4   a ) and a modified motion for the new target ( FIG. 4   b ) wherein the Figures collectively show an example of standing reach-and-grasp motion modification (Oblique View); the kinematic linkage system was composed of 45 degrees-of-freedom; only the final postures are shown for the clarity of the illustration. 
     
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0074]     The generalized motor program (GMP) theory [30] states that movement patterns, called motor programs, are stored in human memory and are utilized as templates for motion planning. Parameters such as movement duration and amplitude can be modified to adjust a selected motor program as a function of the task to perform. The GMP theory seems to provide the plasticity necessary to address the issues stated above, namely, generality, accommodation of movement alternatives, and repertoire expansion, as the human memory can be thought of as capable of storing motor programs of various motion types and styles, as well as continually updating them. The theory therefore seems to provide a desirable model structure for developing useful ergonomic human motion simulation models.  
         [0075]     Recent studies in the computer graphics field also support the feasibility of GMP-based human motion prediction models. Motion editing/adaptation/retargeting methods, developed for computer game animation and digital movie making, alter existing motion samples using signal processing techniques and spline interpolations to bring about certain visual effects, and fit motions to newly given via-points in a motion trajectory [31]-[35]. Although these methods neither have biological bases nor intend to predict human motions accurately, they demonstrated that utilizing existing motion patterns to generate visually convincing new motions is feasible.  
         [0076]     Inspired by the GMP theory, one embodiment of the present invention utilizes a memory-based motion simulation (MBMS) approach. An MBMS system may be composed of three basic elements: a motion database, a motion finder, and a motion modification algorithm. As shown in  FIG. 1 , another embodiment of the present invention may also include a motion style classifier. However, the present invention need not include such a classifier. The database is a collection of real human motions obtained from a large array of motion capture experiments. Each motion is represented by a set of joint angle “trajectories” associated with a specific motion scenario. A motion scenario includes attributes describing the performer (stature, body weight, age, gender, etc.) and the task (motion type, goal, initial and final hand positions, object in the hand, etc.).  
         [0077]     When a novel motion scenario is input to the system, the motion finder searches the motion database to find existing similar motions, using rules based on measures of similarities between the input motion scenario and the scenarios of the existing motions. These existing motions, termed root motions, are adapted or modified by the algorithm to meet the simulation scenario.  
         [0078]     One embodiment of the present invention aims to: 
        1) provide an accurate human motion prediction tool for computer-aided ergonomic task design; and     2) provide a new computer model of human motion planning based on the GMP theory.        
 
         [0081]     Three types of input data are assumed to be given to predict or simulate a motion via motion modification: 
        1) anthropometric body segment dimensions, L=[l 1 , . . . l L ];     2) the description of the task goals in terms of initial (E 0 ) and final (E T ) location and orientation of the end-effector; and     3) a root motion represented as a set of joint angle trajectories, {tilde over (θ)}(t)=[{tilde over (θ)} l (t) . . . {tilde over (θ)} j (t) . . . {tilde over (θ)} J (t)] T , where j is the index for J body joint degrees of freedom (j=1, . . . , J) and t represents time in [0, T].        
 
         [0085]     The output motion to be generated is a modification of {tilde over (θ)}(t) denoted as {circumflex over (θ)}(t)=[{circumflex over (θ)} l (t) . . . {circumflex over (θ)} j (t) . . . {circumflex over (θ)} J (t)] T , and must satisfy the initial and final postural constraints 
 
 F ({circumflex over (θ)}(0),  L )= E   0   (1) 
 
 F ({circumflex over (θ)}( T ),  L )= E   T   (2) 
 
 where F represents the forward kinematics equation of the linkage system L being moved. 
 
         [0087]     Motion modification is intended to alter a root motion according to numerous new simulation scenarios. To do so, certain parameters are required to control changes imposed to the root motion. Therefore, for the proposed modification algorithm, a parameterization scheme was developed to modify root motions in the angle-time domain. Here, joint angle trajectories of a root motion are first processed by a segmentation algorithm, as described in detail in the Appendix hereto. This algorithm resolves each joint angle trajectory into geometric primitive segments labeled “U” (monotonically increasing segment), “D” (monotonically decreasing segment), or “S” (stationary segment). Hence, the overall shape of a joint angle trajectory is described by a string of characters, and a motion is represented by a set of strings; one for each joint angle trajectory.  FIGS. 2   a  and  2   b  illustrate the concept, with the segment boundary points shown as squares.  
         [0088]     The segment boundary points identified on each joint angle trajectory are utilized as control parameters for modification. To derive a variant of the root motion, the segment boundary points are first relocated in the angle-time space. The original and the new locations of the segment boundary points are denoted as (T i   j , B i   i ), and (τ i   j , β i   j ), respectively, where j is the index of the segment boundary points (i=1, . . . , I j ) 
 
τ i   j   =T   i   j   +ΔT   i   j  and 
 
β i   j   =B   i   j   +ΔB   i   j .  (3) 
 
         [0089]     A modified motion can be generated by shifting and proportionally resealing individual segments of the joint angle trajectories of the root motion and then fitting the trajectories through the new sets of segment boundary points. This local proportional scaling preserves Cl-continuities of joint angle trajectories of a root motion in deriving its variants, since: 1) within a motion segment, proportional scaling does not breach existing Cl-continuity; and 2) proportional-scaling does not change zero time-derivative values at segment boundary points. Thus, smooth transitions between adjacent segments are ensured.  
         [0090]     The new motion trajectory {circumflex over (θ)}(t) at a given time t (τ i   j ≦t≦τ i+1   j ) can be represented by:  
                         θ   j     ^     ⁡     (   t   )       =       β   i   j     +           β     i   +   1     j     -     β   i   j           B     i   +   1     j     -     B   i   j         ×                           ⁢     (         θ   ~     ⁡     (       T   i   j     +           T     i   +   1     j     -     T   i   j           τ     i   +   1     j     -     τ   i   j         ⁢     (     t   -     τ   i   j       )         )       -     B   i   j       )               when                   B     i   +   1     j     -     B   i   j       ≠   0     ,             and                     θ   ^     j     ⁡     (   t   )       =     β   i   j       ,             when                 B     i   +   1     j     -     B   i   j       =   0.                 (   4   )             
 
         [0091]     An example of variant from a root motion is illustrated in  FIG. 3 .  
         [0092]     Possible new locations of segment boundary points (τ i   j , β i   j ) are bound by the following constraints:  
         [0093]     The new segment boundary points should not: 
        1) change the order of events in time: τ i+1   j &gt;τ i   j  for all j and i (order of event constraint);     2) change the shape of joint angle trajectories. In other words, the shape-representing alphabetic string should remain the same (angle trajectory shape constraint);     3) violate the joint range of motion constraints (joint range of motion constraint).        
 
         [0097]     Also, the duration of the movements is normalized to [0, T], hence, τ i   j =0 and τ l     j     j =T for all j.  
         [0098]     The parameterization scheme maps a root motion into a motion family constituted by the root motion&#39;s possible variants. The variants retain the root motion&#39;s properties such as the smoothness and the spatial-temporal movement patterns commonly known as invariant features of GMPs [30].  
         [0099]     To solve a particular motion modification problem, the new segment boundary point locations (τ i   j , β i   j ) should be set so that the modified motion satisfies the task goal constraints stated in (1) and (2). Each of (1) and (2) provides at most six constraints (three for hand position and three for hand orientation). However, the number of parameters to be determined (coordinates of all segment boundary points) exceeds the number of constraints and allows an infinite number of possible solutions. To resolve the redundancy problem, a minimum dissimilarity principle is proposed. Among all possible variants of the root motion that satisfy (1) and (2), one that resembles the root motion the is selected.  
         [0100]     In essence, the proposed motion modification scheme consists of a two-step iteration; the initial and final postures are iteratively modified to satisfy (1) and (2), and the joint angle trajectories are then modified to link the modified initial and final postures. This process is repeated until all constraints are satisfied. The following describe each step.  
         [0101]     1) In-Between Trajectory Modification Given New Initial and Final Postures: The in-between trajectory modification uses a root motion and a pair of new initial and final postures as input data and modifies the root motion to fit the new terminal postures. The determination of the new initial and final postures in a way that (1) and (2) are satisfied is described in the section.  
         [0102]     Each joint angle trajectory of the root motion {tilde over (θ)} j (t) is modified individually to obtain a new joint angle trajectory, {tilde over (θ)} j (t), that links {tilde over (θ)} j (0) and {tilde over (θ)} j (T), the given initial and final joint angle values of the j-th joint angle trajectory of the new motion.  
         [0103]     The parameterization scheme described in the previous section allows the problem to be defined in terms of segment boundary point location parameters. Since the new locations of the initial and final segment boundary points, (τ l   j , β l   j ) and (τ l     j     j , β l     j     j ), are given as τ l   j =0, β l   j ={circumflex over (θ)} j (0), τ l     j     j =T, and β l     j     j ={circumflex over (θ)} j (T), our goal is to determine the new locations of the nonterminal segment boundary points, (τ i   j , β i   j ) s for i=2, . . . , (I j −1).  
         [0104]     When I j =2, {circumflex over (θ)} j (t) is completely determined by (4) from β l   j  and β l     j     j . However, when I j &gt;2, the locations of the nonterminal segment boundary points become indeterminate. To resolve this indeterminacy, the following minimization problem is solved:  
                   Minimize   ⁢           ⁢       ∫   0   T     ⁢         (             θ   ^     .     j     ⁡     (   t   )       -           θ   ~     .     j     ⁡     (   t   )         )     2     ⁢     ⅆ   t                     s   .   t   .                     θ   ^     j     ⁡     (   0   )       ⁢           ⁢   and   ⁢           ⁢         θ   ^     j     ⁡     (   T   )       ⁢           ⁢   are   ⁢           ⁢   given   ⁢           ⁢   as   ⁢           ⁢     constants   .                   (   5   )             
 
         [0105]     In (5), {circumflex over ({dot over (θ)})} j (t), and {tilde over ({dot over (θ)})} j (t) denote the first time derivatives of the new and the root joint angle trajectories, respectively. By solving (5), a new joint angle trajectory {circumflex over (θ)} j (t) is found that links {circumflex over (θ)} j (0) and {circumflex over (θ)} j (T) smoothly and also resembles {circumflex over (θ)} j (t) in the angular velocity domain.  
         [0106]     Equation (5) can be restated as a function of segment boundary point parameters, β i   j  s and τ i   j  s. The optimization problem is simplified by setting the occurrence times of the new segment boundary points equal to those of the segment boundary points of the root angle trajectory: 
 
τ i   j   =T   i   j  for all  i   (6) 
 
         [0107]     The above simplification follows the minimum dissimilarity principle as it forces the timing of events in the modified and root joint angle trajectories to be identical. Hence, the inter-joint coordination of the root motion is retained in the new motion. With this simplification, the objective function in (5) can rewritten as:  
                       ∫   0   T     ⁢         (             θ   j     ^     .     ⁡     (   t   )       -           θ   j     ~     .     ⁡     (   t   )         )     2     ⁢     ⅆ   t         ≈       ⁢       ∑     i   =   1         I   j     -   1       ⁢     (         (           υ   i     ^     j     -         υ   i     ~     j       )     2     ·     duration   i       )                   =       ⁢       ∑     i   =   1         I   j     -   1       ⁢     (         (           β     i   +   1     j     -     β   i   j           T     i   +   1     j     -     T     i   +   1     j         -         B     i   +   1     j     -     B   i   j           T     i   +   1     j     -     T   i   j           )     2     ×                         ⁢     (       T     i   +   1     j     -     T   i   j       )     )                 (   7   )             
 
 where {circumflex over (υ)} i   j  and {tilde over (υ)} i   j  denote the average joint angular velocity during the i-th segment, and duration i  denotes the time-duration of the i-th segment. 
 
         [0109]     The optimal solution (β i   j  s) that minimizes the above objective function was found using calculus  
               β   i   j     =       B   i   j     +       (       β   1   j     -     B   1   j       )     ⁢       (     T   -     T   i   j       )     T       +       (       β     I   j     j     -     B     I   j     j       )     ⁢         T   i   j     T     .                 (   8   )             
 
         [0110]     The above solution does not guarantee maintenance of the shape of “S” segments, as it could rescale “S” segments. To prevent “S” segments from being rescaled, the solution was slightly modified to:  
               β   i   j     =       B   i   j     +       (       β   1   j     -     B   1   j       )     ⁢       (       T   *     -     T   i     j   *         )       T   *         +       (       β     I   j     j     -     B     I   j     j       )     ⁢       T   i     j   *         T   *                   (   9   )             
 
 where T* denotes the sum of durations of all the “U” and “D” segments, and T i   j*  denotes the sum of durations of all the “U” and “D” segments included in [0, T i   j ]. This solution rescales only “U” and “D” segments, and all “S” segments in a root motion remain the same after modification. The optimal β i   j  s from (9) completely determine {tilde over (θ)} j (t) for 0≦t≦T with (4). 
 
         [0112]     2) Initial and Final Posture Modification: The initial and final postures of the modified motion, β l  and β l  (or equivalently, {circumflex over (θ)}(0) and {circumflex over (θ)}(T)), must satisfy (1) and (2). Equations (1) and (2) can be rewritten as: 
 
 G   l (β l )=∥ F (β l   , L )− E   0 ∥=0  (10) 
 
 G   l (β l )=∥ F (β l   , L )− E   T ∥=0.  (11) 
 
         [0113]     Each of the above equality constraints represents an inverse kinematics problem with redundant degrees of freedom. In order to resolve the redundancy, the minimum dissimilarity principle is adopted: The new initial (or final) posture should be chosen such that it resembles the initial (or final) posture of the root motion as much as possible while satisfying the constraints. Such new initial and final postures can be found by modifying the corresponding postures of the root motion using the following iterative update scheme:  
               β   new     =       β   prev     -     α   ⁢         ∇   G     ⁢           ⁢     (     β   prev     )                ∇   G     ⁢           ⁢     (     β   prev     )                          (   12   )             
 
 where ∇G represents the gradient of the function G (either G l  or G l ) and α represents a step-length parameter for each update. In (12), −∇G/∥∇G∥ indicates the direction of infinitesimal postural change that reduces the function G the greatest, and thus approaches the state of satisfying (10) or (11) with minimum infinitesimal postural change. 
 
         [0115]     Equation (12) was further modified to take into consideration the fact that different body joints may have different degrees of motility. The joint with more motility in the root motion are modified more during the posture update. This assumption is implemented by introducing weighting factors  
               β   new     =       β   prev     -     α   ⁢         W   ·     ∇   G       ⁢           ⁢     (     β   prev     )                W   ·     ∇   G       ⁢           ⁢     (     β   prev     )                          (   13   )             
 
 where W=[w l  . . . w j  . . . w J ] represents weighting factors for each joint. The weighting factors are estimated by: 
 
 w   j   =MAX ({tilde over (θ)} j ( t ))− MIN ({tilde over (θ)} j ( t )) where  tε[ 0,  T].   (14) 
 
         [0117]     The initial and final posture updates continue simultaneously until both (10) and (11) are satisfied (until G l  and G l  become smaller than a small user-defined threshold). For each iteration, the entire motion can be recalculated using (4) and (9). If the rent update of the initial and final postures and the recalculated motion from (4) and (9) violate any shape maintenance or joint range of motion constraint for a particular joint, the algorithm undoes the update at that particular joint so as to ensure the satisfaction of constraints and proceeds to the next iteration.  
         [0118]      FIGS. 4   a  and  4   b  show an example of a human reach motion modification using the above-described embodiment of the present invention. In particular, a standing reach-and-grasp motion was modified to predict or generate a new motion for a new target position approximately 45 cm away from that of the root motion. The kinematic linkage has 45 degrees-of-freedom in this example.  
         [0119]     The above-described embodiment of the present invention bears some similarities to the computer animation techniques known as motion editing/adaptation/retargeting methods [31]-[35] in that it reuses existing motion samples to create new ones. However, the proposed method differs from these animation techniques and provides unique benefits, mainly in two aspects. First, the method is intended to predict human motions accurately. The animation techniques, on the contrary, aimed to create visually convincing animations and visual effects for computer game development and digital movie making and their prediction capabilities have not been tested empirically through a comparison with actual human motions. The prediction accuracy of the embodiment of the present invention makes the method qualified for use in computer-aided ergonomic analyses, such as biomechanical low back stress, reachability, visibility, discomfort and clearance analyses.  
         [0120]     Second, the method of the present invention is a human performance model based on a biological theory that helps test hypotheses on human motion planning while animation techniques are based on the esthetic of a visual perception. These different methods are not meant to compete but rather should be understood as solving different research problems while collectively suggesting a fundamental principle involved in human or human-like motion planning.  
         [0121]     While embodiments of the invention have been illustrated and described, it is not intended that these embodiments illustrate and describe all possible forms of the invention. Rather, the words used in the specification are words of description rather than limitation, and it is understood that various changes may be made without departing from the spirit and scope of the invention.  
       APPENDIX  
     Symbolic Structure Representation of Human Motions  
       [heading-0122]     Symbolic Structure Representation of Human Motions  
         [0123]     Raw motion data are normally represented as time-series. The structure of a time-series is revealed when segmentation of the time-series is performed to meet the following conditions: 
        Each segment represents monotonically increasing, monotonically decreasing, or stationary time trajectory, and     The number of segments is at minimum.        
 
         [0126]     The term ‘structure’ of a time-series refers to segments determined according to the above conditions, their shape (monotonically increasing, decreasing, or stationary over time), and their arrangement in time. A human motion is normally described as multi-dimensional time-series, as there are multiple degrees of freedom varying over time (e.g. a number of joint angle trajectories, a number of joint center location trajectories, etc.). Human motions are described as multiple joint angle trajectories herein. The structure of a human motion then can be defined as a collection of the structures of individual joint angle trajectories.  
         [0127]     Given the above definitions of structure, symbols are used to designate the structure of human motions. The logic is: 
        To divide a time-series into segments according to the definition (given above) of structure, and     To assign a symbol (‘U’: up, ‘D’: down, or ‘S’: stationary) to each segment of the time-series to describe its shape.        
 
         [0130]     When a kinematic/kinetic motion trajectory is indexed as a string, each symbol in a string would correspond to a meaningful unit of motor activity. For example, a string “UDUD” representing the structure of an elbow joint angle trajectory means a sequence of primitive elbow joint motions “flexion-extension-flexion-extension.”Also, a string of symbols can be regarded as an abstraction of the overall shape of a time-series, which is presented in a parsimonious and understandable manner.  
         [heading-0131]     A Computer Algorithm for Symbolically Encoding Joint Angle Time Trajectories  
         [0132]     In order for the symbolic structure coding scheme to be useful in dealing with voluminous motion data, the segmenting and coding tasks must be automated. Implementing such a computer algorithm, however, required consideration of the following issues: 1) experimentally collected time-series always contain ambiguities due to random noise which hinder the determination of segment boundaries, and 2) symbol assignment to resulting segments can be ambiguous as it is not clear how to determine whether a segment represents a significant motion (‘U’ or ‘D’) or a stationary state (‘S’).  
         [0133]     The following is the detailed description of the algorithm.  
         [heading-0134]     Find Landmarks in the Time-Series (Step 1)  
         [0135]     It is assumed that a uni-dimensional time-series x t  (t=1, . . . , T) is given as the input data for the algorithm. Any appropriate filtering or smoothing operation can be applied to the time-series beforehand.  
         [0136]     The algorithm begins by detecting all data points in the time-series which may be used to form segments. These data points are called landmarks. Landmarks are only candidates for segment boundaries in the subsequent segmentation procedure. In order for a data point in the time-series to be a possible segment boundary (landmark), one of the six types of transitions should occur at the data point: ‘U’ to ‘D’, ‘U’ to ‘S’, ‘D’ to ‘U’, ‘D’ to ‘S’, ‘S’ to ‘U’, and ‘S’ to ‘D’. ‘U’ to ‘D’ and ‘D’ to ‘U’ transitions occur at the extremes of the time-series x t . Therefore, initially all the extremes are classified as landmarks by the algorithm. At each time t, whether or not the data point x t  is an extreme can be tested by multiplying the leftward slope by the rightward slope: (x t −x t−1 )×(x t+1 −x t ). A negative sign indicates that x t  is an extreme. Transitions involving ‘S’ can be detected again by checking the leftward and the rightward slopes. If and only if one of the two slopes is zero or its absolute value is small enough (less than a user specified threshold ε slope ) to be considered as a possible start or end of a stationary segment, x t  is classified as a landmark by the algorithm. ε slope  was set at 1 deg/min in dealing with joint angle trajectories. A logic describing the landmark detection procedure is as follows:  
                                                                                           l I  = 1           i = 2           FOR iter=2 TO (T − 1)                IF ((x iter  − x iter−1 ) x (x iter+1  − x iter ) &lt;0) OR                 (|x iter  − x iter−1 | ≦ ε slope ) AND (|x iter+1  − x iter | ≧ ε slope ) OR                 (|x iter+1  − x iter | ≦ ε slope ) AND (|x iter  − x iter−1 | ≧ ε slope )                THEN                l i  = iter           i=i+1                ENDIF           ENDFOR           l i  = T           I = i (= The number of landmarks in x t )                      
 
         [0137]     The procedure outputs the occurrence times of landmarks. The landmark detection algorithm was applied to the example time-series with the threshold value of 1 deg/min.  
         [heading-0138]     Segment Boundary Selection (Step 2)  
         [0139]     Once landmarks are identified, the algorithm proceeds to divide the time-series into segments. Each landmark is a potential segment boundary at which a segment begins or ends. However, not all of the landmarks might be segment boundaries in the presence of transient, insignificant fluctuations, noises, or ambiguities.  
         [0140]     In order to select major segment boundaries, whether or not each landmark meets the following conditions is examined: 
        The landmark is located farther than a predetermined threshold ε time  from at least one of the adjacent landmarks in the time axis.     The landmark is located farther than a predetermined threshold ε time  from the nearest segment boundary (which has been found up to that point) in the time axis.        
 
         [0143]     The first condition ensures that the landmark adjoins at least one segment. The second condition ensures that no two segment boundaries are too close to each other in time. If a landmark satisfies the above conditions, it is determined as a segment boundary. The first and the last data point of a time-series are segment boundaries by definition. ε time  be set at ⅙ sec for discrete goal oriented movements such as reach or lifting, since 6 Hz is a widely used cut-off frequency for analyzing various forms of natural human movement data. A logic describing the segment boundary selection procedure is as follows:  
                                                                                                                                   B = [1]           FOR iter = 2 TO (I−1)                p = l iter  − l iter−1             q = l iter+1  − l iter             u = l iter  − b end             IF (((p≧ε time ) OR (q≧ε time )) AND (u≧ε time ))           THEN                ADD(B, l iter )                ENDIF                ENDFOR           p = l I  − b end             IF (p≧ε time )           THEN                ADD(B,I)                ELSE                DELETE_LAST(B)           ADD(B,I)                ENDIF           J= (the number of elements in B)−1                      
 
         [0144]     The procedure outputs the occurrence times of segment boundaries.  
         [heading-0145]     Assign a Symbol to Each Segment to Describe its Shape (Step 3):  
         [0146]     After the time-series is divided into major segments, the algorithm will assign symbols to segments to describe their shape. A symbol among three (‘U’, ‘D’, and ‘S’) will be chosen and given to each segment, according to the displacement of the time-series during each segment: If the displacement is greater than or equal to a user-defined threshold ε Δx   U , the symbol ‘U’ is assigned to the segment. If the displacement is less than or equal to ε Δx   D , the symbol ‘D’ is assigned to the segment. Finally, the symbol ‘S’ will be given, if the displacement value is less than ε Δx   U , and greater than ε Δx   D ·ε Δx   U , and ε Δx   D , are set as 0.3˜0.7 degrees. A logic description of the symbol assignment procedure is as follows:  
                                                                                                                                   C = [ ]           FOR iter = 1 TO J                Δx = x b     iter+1    − x b     iter               IF (Δx ≧ ε Δx   U )           THEN                ADD(C, ‘U’)                ELSEIF (Δx ≦ ε Δx   D )           THEN                ADD(C,‘D’)                ELSE           THEN                ADD(C,‘S’)                ENDIF                ENDFOR                      
 
 Eliminate Possible Redundancies in the Symbolic Representation (Step 4): 
 
         [0148]     The symbolic representation produced from Steps 1, 2 and 3 may contain redundancies, i.e., consecutive segments with identical symbols: For example, our example time-series was described as ‘S DD SDUSU’ which can be further simplified as ‘SDSDUSU.’ Possible redundancies are eliminated in the segmentation by merging consecutive segments with identical symbols. A logic description of the redundancy elimination procedure is as follows:  
                                                                                           B* =[b 1 ]           C* =[c 1 ]           FOR iter = 2 TO J                IF (c iter  ≠ c* end )           THEN                ADD(B*,b iter )           ADD(C*,c iter )                ENDIF                ENDFOR           ADD(B*,T)           OUTPUT B* AND C*