Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
MODELING THE MOTION OF AN ARTICULATED OBJECT
Document Type and Number:
WIPO Patent Application WO/2009/006727
Kind Code:
A1
Abstract:
There is described a method for representing an articulated motion of an object, the method comprising: providing a target position of the object, a proximal end of the object being a base pivot point and a distal end of the object being a tip, the object having n segments and n-1 pivot points, n being greater than or equal to 2, two consecutive n segments being connected via one of the n-1 pivot points, a first pivot point being connected to a segment connected to the base pivot point, and a pivot point n-1 being connected to a segment comprising the tip of the object; generating a major trajectory representing the position of the tip of the object during a motion of the object from an initial position to the target position, the major trajectory being centered at the base pivot point; and for any position of the tip along the major trajectory, determining flexion angles for the base pivot point and each of the n-1 pivot points.

Inventors:
GAUDIN THIBAUT (FR)
Application Number:
PCT/CA2008/001205
Publication Date:
January 15, 2009
Filing Date:
June 27, 2008
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
XTRANORMAL TECHNOLOGIE INC (CA)
GAUDIN THIBAUT (FR)
International Classes:
G06F17/10; G06T13/20
Foreign References:
US6057859A2000-05-02
CA2211858A11998-02-02
US20050125099A12005-06-09
US20050096889A12005-05-05
Attorney, Agent or Firm:
OGILVY RENAULT LLP (1981 McGill College AvenueMontreal, Québec H3A 2Y3, CA)
Download PDF:
Claims:
I /WE CLAIM :

1. A method for representing an articulated motion of an object, the method comprising: providing a target position of the object, a proximal end of the object being a base pivot point and a distal end of the object being a tip, the object having n segments and n-1 pivot points, n being greater than or equal to 2, two consecutive n segments being connected via one of the n-1 pivot points, a first pivot point being connected to a segment connected to the base pivot point, and a pivot point n-1 being connected to a segment comprising the tip of the object; generating a major trajectory representing the position of the tip of the object during a motion of the object from an initial position to the target position, the major trajectory being centered at the base pivot point; and for any position of the tip along the major trajectory, determining flexion angles for the base pivot point and each of the n-1 pivot points.

2. The method as claimed in claim 1, wherein said target position and said initial position are each defined by a set of flexion angles comprising a flexion angle for each one of the base pivot point and the n-1 pivot points.

3. The method as claimed in claim 1, wherein said target position and said initial position are each defined by a set of flexion angles and a spatial position of the tip of the object, the set of flexion angles comprising a flexion angle for each one of the base pivot point and the pivot

points 1 to n- 2 .

4. The method as claimed in any one of claims 2 and 3, further comprising: for n greater than 2, generating n-2 additional trajectories representing the position of the tip during the motion of the object from the initial position to the target position, a first additional trajectory being centered at the first pivot point and an additional trajectory n-2 being centered at a pivot point n-2 when the object comprises n segments, n being greater than 2, and n- 1 pivot points; and for any position of the tip along each of the n-2 additional trajectories, determining the flexion angles for each pivot point .

5. The method as claimed in claim 4, wherein the major trajectory and the additional trajectories each represent a distance between an origin of a coordinate system and the tip of the object as a function of an angle θ between an axis of the coordinate system and a line connecting the origin of the coordinate system to the tip of the object.

6. The method as claimed in claim 5, wherein the angle θ is a closure parameter and has values comprised between 0 and 1.

7. The method as claimed in any one of claims 4 and 6, wherein the major trajectory and the n-2 additional trajectories each comprise a logarithmic spiral.

18424-5PCT

8. The method as claimed in any one of claims 1 to 7, wherein said determining flexion angles comprises calculating the flexion angles using trigonometric relations .

9. A method for animating an articulated physical object comprising: providing a digital representation of the physical object, a proximal end of the physical object being a base pivot point and a distal end of the physical object being a tip, the physical object having n segments and n-1 pivot points, n being greater than or equal to 2, two consecutive n segments being connected via one of the n-1 pivot points, and a first pivot point being connected to a segment connected to the base pivot point and a pivot point n-1 being connected to a segment comprising the tip of the obj ect ; providing a major trajectory and n-2 additional trajectories each describing a position of the tip of the physical object during a motion of the physical object, the major trajectory being centered at the base pivot point, and the additional trajectories 1 to n-2 being centered at the pivot point 1 to n-2, respectively; and moving the object to a target position.

10. The method as claimed in claim 9, wherein said providing a major trajectory and n-2 additional trajectories comprises determining the major trajectory and the n-2 additional trajectories using two different positions of the physical object.

18424-5PCT

11. The method as claimed in claim 10, wherein the two different positions are each defined by a set of flexion angles comprising a flexion angle for each one of the base pivot point and the n-1 pivot points.

12. The method as claimed in claim 10, wherein the two different positions are each defined by a set of flexion angles and a spatial position of the tip of the object, the set of flexion angles comprising a flexion angle for each one of the base pivot point and the pivot points 1 to n-2.

13. The method as claimed in any one of claim 10 to 12, wherein the two different positions are two extreme positions of the physical object between which the physical object is allowed to move.

14. The method as claimed in any one of claim 9 to 13, wherein the major trajectory and the additional trajectories each represent a distance between an origin of a coordinate system and the tip of the object as a function of an angle θ between an axis of the coordinate system and a line connecting the origin of the coordinate system to the tip of the object.

15. The method as claimed in any one of claims 9 and 14, wherein the major trajectory and the n-2 additional trajectories each comprise a logarithmic spiral.

16. The method as claimed in claim 9, wherein the target

18424-5PCT

position is determined according to a target value of a closure parameter.

17. The method as claimed in claim 16, wherein the target position of the physical object is determined using the target value of the closure parameter, the major trajectory, the n-2 additional trajectories and trigonometric relations.

18. The method as claimed in claim 17 wherein the target position is defined by a corresponding set of flexion angles .

19. A system for digitally animating an object, the system comprising : a processor in a computer; and an application coupled to the processor, the application being configured for: providing a target position of the object, a proximal end of the object being a base pivot point and a distal end of the object being a tip, the object having n segments and n-1 pivot points, n being greater than or equal to 2, two consecutive n segments being connected via one of the n-1 pivot points, a first pivot point being connected to a segment connected to the base pivot point, and a pivot point n-1 being connected to a segment comprising the tip of the object; generating a major trajectory representing the position of the tip of the object during a motion of the object from an initial position to the target position, the major trajectory being centered at the base pivot

18424-5PCT

point ; for any position of the tip along the major trajectory, determining flexion angles for the base pivot point and each of the n-1 pivot points,- and moving the object to the target position according to the determined flexion angles.

20. The system as claimed in claim 19, wherein said target position and said initial position are each defined by a set of flexion angles comprising a flexion angle for each one of the base pivot point and the n-1 pivot points.

21. The- system as claimed in claim 19, wherein said target position and said initial position are each defined by a set of flexion angles and a spatial position of the tip of the object, the set of flexion angles comprising a flexion angle for each one of the base pivot point and the pivot points 1 to n-2.

22. The system as claimed in any one of claims 20 and 21, wherein the application is further configured to: for n greater than 2, generate n-2 additional trajectories representing the position of the tip during the motion of the object from the initial position to the target position, a first additional trajectory being centered at the first pivot point and an additional trajectory n-2 being centered at a pivot point n-2 when the object comprises n segments, n being greater than 2, and n- 1 pivot points; and for any position of the tip along each of the n-2 additional trajectories, determine the flexion angles for

18424-5PCT

each pivot point .

23. The system as claimed in claim 22, wherein the major trajectory and the additional trajectories each represent a distance between an origin of a coordinate system and the tip of the object as a function of an angle θ between an axis of the coordinate system and a line connecting the origin of the coordinate system to the tip of the object.

24. The system as claimed in claim 23, wherein the angle θ is a closure parameter and has values comprised between 0 and 1.

25. The system as claimed in any one of claims 22 and 24, wherein the major trajectory and the n-2 additional trajectories each comprise a logarithmic spiral.

26. The system as claimed in any one of claims 19 to 25, wherein the application determines the flexion angles using trigonometric relations.

27. A system for representing an articulated physical object for digital animation, the system comprising: a digital modeling module adapted to create a digital model of the physical object, a proximal end of the physical object being a base pivot point and a distal end of the physical object being a tip, the physical object having n segments and n-1 pivot points, n being greater than or equal to 2, two consecutive ones of the n segments being connected via one of the n-1 pivot points, and a

18424-5PCT

first pivot point being connected to a segment connected to the base pivot point and a pivot point n-1 being connected to a segment comprising the tip of the object; a trajectory generator adapted to generate a major trajectory and n-2 additional trajectories each describing a position of the tip of the physical object during a motion of the physical object, the major trajectory being centered at the base pivot point, and the additional trajectories 1 to n-2 being centered at the pivot point 1 to n-2, respectively; a position determining module adapted to determine a target position of the physical object ; and a display unit for displaying the physical object as it is being displaced from an initial position to the target position.

28. The system as claimed in claim 27, wherein the trajectory generator is adapted to determine the major trajectory and the n-2 additional trajectories using two different positions of the physical object.

29. The system as claimed in claim 28, wherein the two different positions are each defined by a set of flexion angles comprising a flexion angle for each one of the base pivot point and the n-1 pivot points.

30. The system as claimed in claim 28, wherein the two different positions are each defined by a set of flexion angles and a spatial position of the tip of the object, the set of flexion angles comprising a flexion angle for each one of the base pivot point and the pivot points 1 to n-2.

18424-5PCT

31. The system as claimed in any one of claim 28 to 30, wherein the two different positions are two extreme positions of the physical object between which the physical object is allowed to move.

32. The system as claimed in any one of claim 27 to 31, wherein the major trajectory and the additional trajectories each represent a distance between an origin of a coordinate system and the tip of the object as a function of an angle θ between an axis of the coordinate system and a line connecting the origin of the coordinate system to the tip of the object.

33. The system as claimed in any one of claims 27 and 32, wherein the major trajectory and the n-2 additional trajectories each comprise a logarithmic spiral.

34. The system as claimed in claim 27, wherein the position determining module determines the target position according to a target value of a closure parameter

35. The system as claimed in claim 34, wherein the position determining module is adapted to determine the target position using the target value of the closure parameter, the major trajectory, the n-2 additional trajectories and trigonometric relations .

36. The system as claimed in claim 35 wherein the target position is defined by a corresponding set of flexion angles .

18424-5PCT

Description:

MODELING THE MOTION OF AN ARTICULATED OBJECT CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority under 35 USC§ 119 (e) of Provisional Patent Application bearing serial number 60/929,780, filed on July 12, 2007, the contents of which are hereby incorporated by reference .

TECHNICAL FIELD

The present invention relates to the field of digital animation techniques. BACKGROUND OF THE INVENTION

In television or motion picture filming, movement added to static objects, whereby inanimate objects appear to come to life, is known as animation. Animation can be found in a wide variety of applications, such as film, video games, and virtual reality. Cartoons are just one of many examples of a type of animation. The objective is to make the animation appear as realistic or as close to real-life as possible .

The process of giving the illusion of movement to drawings, models, or inanimate objects is a complex one, especially for parts of the human body involving flexion, where articulation motion or movements is governed by principles which are difficult to translate to computers.

In order to translate real-life flexion motion of an articulated object into digital animation, models are built using principles of physics. For example, human hand models have been developed based on various methods such as considering external forces affecting the joints, modeling all principal muscles and degrees of freedom, using kinematics models based on collision detection between ellipsoids representing the skin surface of the ' hand

segments, and using mass-spring system approaches, pseudo and geometric muscles to model muscles and their interaction with the bones and skin. Such muscle models are animated through muscle contraction values given over time. Finger positions in a human hand, for example, are thus calculated based on muscle contraction values, as in the method illustrated in Figure 1.

Other existing methods involve learning approaches such as artificial intelligence, to position the joints and segments of a hand, for example. Finger models using a tendon transmission system based on pulleys, and hand and arm models based on manifold mappings with inter-joint dependencies have also been explored. Complex techniques such as calculating relative muscle lengths, moments of the arms and moment potentials of the hand muscles during motion, or using known joint and movement constraints have also been introduced.

There is therefore a need to provide a way to represent flexion motion in real- life objects for the purposes of digital animation in order to improve the realism of the final product and reduce the complexity of prior art modeling methods.

SUMMARY

There is provided herewith a method of creating a digital representation of the motion of an articulated object and generating a set of modeled trajectories associated with segments of the object in order to digitally animate the object according to a motion.

According to a first broad aspect, there is provided a method for representing an articulated motion of an object, the method comprising: providing a target position of the object, a proximal end of the object being a base pivot

18424-5PCT

point and a distal end of the object being a tip, the object having n segments and n-1 pivot points, n being greater than or equal to 2, two consecutive n segments being connected via one of the n-1 pivot points, a first pivot point being connected to a segment connected to the base pivot point, and a pivot point n-1 being connected to a segment comprising the tip of the object; generating a major trajectory representing the position of the tip of the object during a motion of the object from an initial position to the target position, the major trajectory being centered at the base pivot point; and for any position of the tip along the major trajectory, determining flexion angles for the base pivot point and each of the n-1 pivot points . According to a second broad aspect, there is provided a method for animating an articulated physical object comprising: providing a digital representation of the physical object, a proximal end of the object being a base pivot point and a distal end of the articulated physical object being a tip, the object having n segments and n-1 pivot points, n being greater than or equal to 2, two consecutive n segments being connected via one of the n-1 pivot points, and a first pivot point being connected to a segment connected to the base pivot point and a pivot point n-1 being connected to a segment comprising the tip of the articulated physical object; providing a major trajectory and n-2 additional trajectories each describing a position of the tip of the object during a motion of the object, the major trajectory being centered at the base pivot point, and the additional trajectories 1 to n-2 being centered at the pivot point 1 to n-2, respectively; and moving the object to a target position.

According to a third broad aspect, there is provided a

18424-5PCT

system for digitally animating an object, the system comprising: a processor in a computer; and an application coupled to the processor, the application being configured for: providing a target position of the object, a proximal end of the object being a base pivot point and a distal end of the object being a tip, the object having n segments and n-1 pivot points, n being greater than or equal to 2, two consecutive n segments being connected via one of the n-1 pivot points, a first pivot point being connected to a segment connected to the base pivot point, and a pivot point n-1 being connected to a segment comprising the tip of the object; generating a major trajectory representing the position of the tip of the object during a motion of the object from an initial position to the target position, the major trajectory being centered at the base pivot point; for any position of the tip along the major trajectory, determining flexion angles for the base pivot point and each of the n-1 pivot points; and moving the object to the target position according to the determined flexion angles.

According to a fourth broad aspect, there is provided a system for representing an articulated physical object for digital animation, the system comprising: a digital modeling module adapted to create a digital model of the object, a proximal end of the object being a base pivot point and a distal end of the object being a tip, the object having n segments and n-1 pivot points, n being greater than or equal to 2, two consecutive ones of the n segments being connected via one of the n-1 pivot points, and a first pivot point being connected to a segment connected to the base pivot point and a pivot point n-1 being connected to a segment comprising the tip of the object; a trajectory generator adapted to generate a major

18424-5PCT

trajectory and n-2 additional trajectories each describing a position of the tip of the object during a motion of the object, the major trajectory being centered at the base pivot point, and the additional trajectories 1 to n-2 being centered at the pivot point 1 to n-2, respectively; a position determining module adapted to determine a target position of the object; and a display unit for displaying the object as it is being displaced from an initial position to the target position. As illustrated in figure 2, an object is defined as an articulated object comprising n segments, one base pivot point, and n-1 pivot points, n being greater than or equal to 2. A first of the n segments is connected to the base pivot point, and the n-1 pivot points connect the segments together, the first of the n segments being connected to the first pivot point in addition to the base pivot point and the last segment being only connected to the last pivot point. The part of the object being connected to the base pivot point is called the proximal end of the object and the end of the last segment which is not connected to a pivot point, is called the distal end or tip of the object.

A position of the object is defined by the spatial coordinates of the base pivot point, each pivot point, and the tip of the object. Throughout the following description, the base pivot point is considered to be located at the origin of the coordinate system describing the space and has the following coordinates: (0,0) in a 2D space, and (0,0,0) in a 3D space. Therefore, only the spatial position of each pivot point and the tip of the object are required to determine the spatial position of the object. Numerous geometrical data can be used to determine the position of the object. For example, it is possible to determine the position of the object by

18424-5PCT

knowing: the spatial coordinates of the tip of the object and each pivot points; the flexion angles of the base pivot point and each pivot point; or the vectors associated to each segment of the object. The flexion angle of the base pivot point is defined as the angle between the first segment of the object and an axis of the space (usually the y-axis) , and a flexion angle of a pivot point is defined as the angle between the two segments connected to the pivot point. It should be understood that the position of the object can be defined by a mix of geometrical data of different natures. For example, the position of an object comprising one base pivot point centered at the center of the space, n segments and n-1 pivot points can be defined by the flexion angle of the base pivot point and the flexion angle of each pivot point. Alternatively, it can be defined by the flexion angle of the base pivot, the flexion angle of n-2 pivot point (excluding the flexion angle of the last pivot point) and the spatial coordinates of the tip of the object. A person skilled in the art will understand that other combinations of mixed geometrical data are also possible. While in the following description, reference is made to flexion angles to characterize the position of the object, it should be understood that any geometrical data and methods known to a person skilled in the art can be used to define the geometrical position of the object.

A major trajectory is defined as the position of the tip of the object during the motion of the object when all of the segments are taken into account. The major trajectory is centered at the base pivot point. An additional or secondary trajectory is defined as the position of the tip during the motion of the object when not all of. the segments are taken into account and when the additional

18424-5PCT

trajectory is centered at a pivot point and not at the base pivot point. For an object comprising one base pivot point, n segments and n-1 pivot points, the first segment is defined as being the segment of the object connected to the base pivot point at one end and to the first pivot point at the second end and the segment n is defined as being the segment comprising the tip of the object and being only- connected to the pivot point n-1. If n is equal to 2, only the major trajectory is required to describe the motion of the object. If n is superior to 2, n-2 additional or secondary trajectories are required to determine the position of the object. The first additional trajectory is the trajectory of the tip when only the segments 2 to n are taken into account. The first trajectory is said to be centered at the first pivot point. The second additional trajectory is the trajectory of the tip when only the segments 3 to n are taken into account . The second trajectory is said to be centered at the second pivot point. The additional trajectory n-2 is the trajectory of the tip when only segments n-1 and n are taken into account. The additional trajectory n-2 is said to be centered at the pivot point n-2.

The base pivot point, the n-1 pivot points and the n segments of the object can be represented in a polar coordinate system, the base pivot point usually occupying the origin of the coordinate system. In this case, the major trajectory and the additional trajectory express the distance between the origin of the coordinate system and the position of the tip of the object as a function of a tip flexion angle θ and θ' , respectively (also simply named angles θ and θ' , respectively) . A tip flexion angle or angle θ (or θ' ) is the angle between an. axis of the system coordinate (usually the y-axis) and the line segment from

18424-5PCT

the origin of the coordinate system and the tip of the object. When the major trajectory and the additional trajectory are all expressed as a function of a same tip flexion angle θ, this tip flexion angle θ is called a closure parameter. The closure parameter can be normalized so that its value varies from 0 to 1. For each value of the closure parameter corresponds a single spatial position of the object. Knowing the value of the closure parameter and using the major and additional trajectories and trigonometric relations, it is possible to determine the set of flexion angles corresponding to the spatial position of the object associated with the value of the closure parameter.

BRIEF DESCRIPTION OF THE DRAWINGS Further features and advantages of the present invention will become apparent from the following detailed description, taken in combination with the appended drawings, in which:

Fig. 1 illustrates the steps used for modeling the motion of an articulated object as per the prior art;

Fig. 2 illustrates an articulated object, in accordance with an embodiment;

Fig. 3 illustrates the steps used for modeling the motion of an articulated object in accordance with an embodiment of the present invention.

Fig. 4 illustrates a trajectory model generated in the method illustrated in Fig. 2;

Fig. 5 illustrates another trajectory model generated in the case where the articulated object has more than two segments;

Fig. 6a " illustrates how flexion angles are computed from a

18424-5PCT

secondary trajectory model;

Fig. 6b illustrates how flexion angles are computed from a major trajectory model;

Fig. 7 illustrates a flow chart of a method for animating an object, in accordance with an embodiment of the invention; and

Fig. 8 illustrates an embodiment of a system for animating an object in accordance with an embodiment of the invention. It will be noted that throughout the appended drawings, like features are identified by like reference numerals.

DETAILED DESCRIPTION

By considering that none of the fingers in a human hand is able to rotate around the axis of the segments (no torsion) , finger flexion occurring in a single plane can be oriented to simulate the remaining degree of freedom of abduction and adduction motion.

The tendon driven aspect of human fingers introduces the postulate that the path taken by each fingertip obeys a predefined law and corresponds to a smooth trajectory dictated by the tendon's control of each segment flexion.

Considering the above, a method for modeling natural articulated flexions for digital objects having multiple segments is described. The method is based on the generation of a trajectory of a finger tip that is represented by a mathematical model such as a logarithmic spiral . Animating an anthropomorphic hand using the proposed method allows to readily synthesize the thumb opposition and to develop automatic grasping strategies. It should be understood that the method can be extended to model the motion of any articulated object: a finger

18424-5PCT

flexion, a palm motion, the motion of human body parts, arms, legs, a wrist motion, a growing plant motion, the blooming of a flower, animal motion, or any other motion of an object having a plurality of rigid segments connected together via pivot points.

Referring to Figures 3, in step 30, a digital representation of an articulated object is provided. The object is in an initial position.

Referring to Fig. 4, the object has a proximal end and a distal end, the proximal end defining a base pivot point 10, and the distal end defining a tip 12 of the object.

The object also has a plurality of segments 14, 16, and 18 interconnected via pivot points 20 and 22, respectively. The ba ' se pivot point 10 is connected to the first segment 14 and thus permits the object to move about a tip flexion angle θ , as illustrated in Fig. 4.

Referring to Fig. 3, in step 32, a target position for the object is provided. This target position is defined in a first case as comprising a target position for the tip of the object and target flexion angles between the first two segments and each additional segment when there are at least three segments. The initial position of the object also comprises an initial position for the tip of the object and initial flexion angles between the first two segments and each additional segment when there are at least three segments. It should be understood that a position of the object is defined either by the flexion angles βi, β 2 , and β 3 or by the spatial coordinates of the tip 12 and the pivot points 20 and 22. It should also be understood that a mix a flexion angles and spatial coordinates is also possible in order to know a position of the object. For example, a position of the object can be

18424-5PCT

defined by the spatial coordinates of the tip and by flexion angles P 1 and β 2 .

For example, in Fig. 4, for three segments (n=3), the target position comprises a target position of the tip 12 of segment 18 and the angles β 2 and β 3 as shown in Fig. 5. When the object has more than three segments, then the target position comprises a target position of the tip 12 of the object and the angles βi (i e [2, 3, ... n] , n being the segment number) . Note that segment 1 is attached to the base pivot point 10. If there are only two segments (n=2) , the target position is the target position of the tip 12 of the object.

The target position of the tip of the object is a position at which the tip of the object arrives at a given time during motion and is defined by the coordinates ( X βm ι , yy, α , ) in a Cartesian coordinate system. This point is optionally defined in a polar coordinate system as well, as detailed further below.

In a second case, the target position is defined by all of the target flexion angles in the object, βi (i 6 [1, 2, 3,

... n] , n being the segment number) . Referring to Fig. 4, when the object has three segments (n=3), the set of angles β 1( β 2 and β 3 define the target position of the object.

Hence, in such a case, the target position is a specific object closure position as defined by the set of target flexion angles. For example, a group of target flexion angles are set to correspond to a known hand closure type such as tight, slack, tensed or any other known closure types which are defined by specific sets of target flexion angles of the articulated object.

It should be understood that the initial position comprises

18424-5PCT

an initial position of the tip 12 of segment 18 and angles β 2 and β 3 . Alternatively, the initial position can be defined by a set of angles P 1 , β 2 and β 3 .

In both the first and second case, the target flexion angles for each segment of the object are defined as the target angles β lf β 2 and β 3 (or βi (i e [1, 2, 3, ... n] , n being the segment number from base point 10 to tip 12) , and represent the angles at each pivot point 16. These target angles are illustrated in Figures 4 and 5. Figures 6a and 6b, on the other hand, illustrate flexion angles for any- given point along a trajectory as defined by the target position (further explained in the next steps) .

In one embodiment, the initial and target positions represent the extreme positions between which the object is allowed to move.

In step 34 of Fig. 3, a major trajectory is generated to represent the motion of the tip 12 of the object passing through the target position provided and defined in step 32. The major trajectory is detailed herein below as a mathematical representation of a logarithmic spiral and is illustrated in Fig. 4. The major trajectory is centered at the base pivot point 10 of the object.

Referring to Fig. 4, an example of a major trajectory is a mathematical representation of a logarithmic spiral, which is defined by the following polar equation:

P = K 1 B** where K 1 and K 2 are constants .

In a human hand, for example, the above spiral is considered to be the path followed by the tip of a finger having a plurality of phalanxes which are herein described

18424-5PCT

as segments. For a general articulated object, the major trajectory generated has the target position of the tip of the object along its path.

Applying the above proposition for a three segment object, for example, the initial position of the object is defined by the initial position of the tip 12, namely (xi n itiai=0, where a is the summation of all of the segment lengths (a=ai+a 2 +a 3 , where ai, a 2 , and a 3 are the length of the segments 14, 16, and 18, respectively). Alternatively, the initial position of the object is defined as the flexion angles at this position, namely P 1 =P 2 =Pa=O.

In the embodiment illustrated in figure 4, the initial position can be expressed as (Xinitiai=0, or (p=a, θ=0) . By substituting the second expression of the initial position into the equation of the logarithmic spiral, the constant Ki is determined to be equal to a, and therefore: p = a e Klβ

The target position of the object defining the target position for the tip of the object, (x βnal , y' βml ), or alternatively a set of flexion angles βi (i e [1, 2, 3, ... n] ) , as defined in step 32, is first used to compute the corresponding couple ( p fmal , θ fmal ) using the following plane geometry formulae. A similar formula is used for objects having more than three segments.

X final + Pl) + «3 sill (A + Pl + Pi) y final = °l C0S (A) + a 2 ∞ S (Pl + Pl) + «3 C0S (A + Pl + P 3 )

2 2 2

P final = X fiml + y flml θ fi nal = π l 2 - arctanO^, / x fin j From which the constant K 2 can be calculated as :

18424 - 5PCT

K 2 = \n{p final la)lθ fiml and a = a. \ + a 2 + a 3

From the above, the major spiral associated with the tip of the object or the fingertip of the human hand is thus completely defined as:

The above spiral equation permits the calculation of the couple (p,θ) referred to as any tip flexion position located anywhere along the spiral between the extreme positions. This spiral therefore models the motion of the tip of the object.

Hence, a matrix of power u v in [0,l]x[0,l] permits full analytical control of a tip position in a plane during motion. The matrix is computed just once using the consuming power operation for a chosen step (0.01 for example induces a 101x101 matrix) . To increment the accuracy without increasing the matrix size, a computation of a weighted sum of the four surrounding elements in the matrix is done in real-time. In step 36 of Fig. 3, in the case where the object has more than two segments (n>2) , such as a human finger composed of three segments (refer to segments 14, 16, and 18 in Figure 4) , an additional secondary trajectory is generated for the tip 12 and associated to additional segments located between the pivot point 20 and the tip 12. These additional segments are herein represented as segments 16 and 18. The secondary trajectory as illustrated in Fig. 5 is found using the target flexion angles for each segment i > 1, or In Figures 4 and 5, the pivot point 20 connecting the additional segments 16 and 18 to the first segment 14

18424-5PCT

becomes a center of the secondary trajectory in Fig. 5. The secondary trajectory is therefore associated to segments 2 and 3. As illustrated in Fig. 5, the x-axis and the y-axis of the graph are chosen so that the angle between the y- axis and the segment 16 is equal to β 2

For an object comprising n segments and n pivot points, n-2 additional or secondary trajectories for the tip 12 are required in addition to the major trajectory in order to determine the flexion angles. The major trajectory is associated with the n segments (1,2, ... n) and is centered at the first pivot point. The first additional trajectory is associated with the n-1 segments (segments 2, 3, ... n) and is centered at the second pivot point connecting the second segment to the first segment. The second additional trajectory for the tip 12 is associated with the n-2 segments (segments 3, 4, ... n) and is centered at the third pivot point connecting the third segment to the second segment. The additional trajectory n-2 is associated with the segments n-2, n-1, and n, and is centered at the pivot point n-2 connecting the segment n-2 to the segment n-3.

The secondary trajectory follows a mathematical representation similar to the major trajectory generated in step 34 of Fig. 3.

One secondary trajectory enables the evaluation of two flexion angles. Inversely, a minimum of two target flexion angles are used to define one secondary trajectory. Hence, the total number of trajectories associated with an object having more than two segments 14 equals the number of segments 14 minus one . Since the major trajectory alone does not model each segment's target flexion angle βi (i e [1, 2, 3, ... n] ) when there are more than two segments, the secondary

18424-5PCT

trajectory is generated from the target flexion angle (s) as defined by the object's target position provided in step 32. The secondary trajectory models the motion of the distal segments (illustrated as segments 2 and 3). The following equations are used to generate the secondary spiral :

*' 'final = a 7 sill (A ) + «3 Sill (A + A )

Ϋ fi nal = a 2 ∞s(β 2 ) + α 3 cos(/? 2 + β 3 )

P a fi™< = X 'final* y 'final / x' final )

The point (x' βna i, Ϋ fma ι) is thus computed to correspond to the desired motion type for the distal segments. This point is set by the target flexion angles ( β 2 and β 3 in Fig. 3) as provided in step 32.

The secondary spiral is then defined as: where a' = a 2 + a 3 In step 38 of Fig. 3, each flexion angle βi (i e [1, 2, 3 ... n] ) is determined for any tip flexion position (p,θ) (refer to Fig. 6a and 6b) along either one of the major trajectory generated for the tip 12 and the secondary trajectory (ies) generated and associated to the additional segment 16 and 18.

Hence, the collection of trajectories completely define the object motion towards the object's target position. The flexion angles found in this step are distinct from the target flexion angles provided in step 32. These define the exact position and orientation of each segment during the object's motion along the trajectories.

In the above description, the flexion angles (β ] 2 , β 3 ...

18424-5PCT

β n ) are angles located at the base pivot point 10 and at each pivot point 20, 22. In Figures 4, 5, 6a and 6b, the flexion angles /?, is the flexion angle of segment 14, while β 2 and /T 5 are the angles formed between each pair of segments (14 to 16 and 16 to 18) and associated with pivot points 20 and 22, respectively.

The flexion angles at any position of the tip of the object, along at least the major trajectory and optionally, the secondary trajectory, are determined using the trajectory (ies) as generated in step 34 and optionally in step 36 if there are more than two segments.

In step 40 of Fig. 3, a computer digital animation of the articulated object's motion is performed using the segments' flexion angles as determined in step 38 at any position of the tip of the object along the trajectories.

Since the tip flexion angles θ and θ' are within [0, θ max = max(θ f i na i, θ' f i na i], a single variable or closure parameter, namely θ, can be used to control both the major and the secondary spiral during motion of the object. Fig. 5 illustrates the trajectory of the tip 12 when only segments 16 and 18 are considered. In this representation of segments 16 and 18, the y-axis is chosen so that the angle between the y-axis and segment 16 is equal to β 2 , which results in an angle θ' between the y-axis and the straight line passing by the pivot point 20 and the tip 12. However, the y-axis and the x-axis may be positioned differently. In Fig. 6a, the y-axis is positioned so that the angle between the y-axis and the straight line passing by the center pivot point 20 and the tip 12 be equal to the angle between the y-axis and the straight line passing by the base pivot point 10 and the tip 12, namely θ. Hence, both p and p' can be expressed as a function a same angle θ:

18424-5PCT

p = a KP final ' a ) Eq . 1

„/>

\y final ' " / Eq . 2

In one embodiment, the closure parameter is a floating value in the range [0,1] and is used to control the given position of the tip 12 of the object during motion and along each spiral. The closure parameter is used to parameterize the flexion angle θ from θ m i n to θ max .

In step 38 of the above-described method, for a common control flexion angle θ of a tip controlled by a corresponding closure parameter CP, each spiral has a corresponding p length value. For each spiral, from the secondary traj ectory (ies) to the major trajectory, trigonometric computations are used to determine the flexion angles βi. These angles thus mimic the motion of a fingertip as would be observed on a tendon driven hand.

Figures 6a and 6b, and the following equations provide an example of how the flexion angles are determined from one secondary and one major trajectory generated for a three segment object of which the position is determined by the angle θ. Similar equations can be derived for objects having more than three segments, and thus more than one secondary trajectory.

Now referring to Fig. 6a, the following is derived for the secondary spiral trajectory: a 2 2 = I 1 ' 2 + h' 2 and a 3 2 = I 2 ' 2 + h' 2 with I 2 ' = p' - li' which leads to li' = (p' *ρ' + a 2 *a 2 - a 3 *a 3 )/(2*p') Knowing θ, p' is calculated using Eq. 2. siπ(φ' 1 ) = sin(φ' n+φ' i 2 ) = sin(φ'n) *cσs(φ'i 2 ) + sin(ψ' 12 ) *cos (φ' n)

18424-5PCT

= (I 1 '/a 2 )*(h'/a 3 ) + (l 2 '/a 3 )*(h'/a 2 )

= h' *p' / (a 2 *a 3 ) which is used to determine Then : φ' 2 = (π/2) - φ'n = (π/2) - asin (I 1 ' /a 2 ) β 3 = π - φ'i

2) else, β 3 = φ'i

Thus : φ' 2 = (π/2) - asin((p'*p' + a 2 *a 2 - a 3 *a 3 ) / (2*p' *a 2 ) )

1) if costφ'j) > 0, β 3 = π - asin(h' *p'/(a 2 *a 3 ) ) 2) else, β 3 = asin Ch.' *p' / (a 2 *a 3 ) )

Now referring to Fig. 6b, the following is derived for. the major spiral trajectory: ai 2 = li 2 + h 2 and p' 2 = I 2 2 + h 2 with I 2 = p - Ii

= sin (φn) *cos(φi 2 ) + sin(<pi 2 ) *cos (φn) = (I 1 /a 1 )*(h/p') + (l 2 /p')*(h/ai) Then : -

I 1 = (p*p + a ! *ai - p'*p')/(2*p) φ 2 = (π/2) - (Ji 11 = (π/2) - asiπ(li/ai) else,

18424-5PCT

Thus : β 2 = (π/2) - asin (h*p/ (a x *p' )) + asin( (p'*p' + a 2 *a 2 - a3*a 3 )/(2*ρ'*a 2 ) ) ; 2) else, β 2 = -(π/2) + asin(h*p/(a 1 *p' ) ) + asin{ (p'*p' + a 2 *a 2 - a 3 *a 3 )/(2*p'*a 2 ) ) ; and βi = θ (π/2) + asin( (p*p + a x *a x

Hence, a tendon-driven articulated motion model is built by- determining a collection of trajectories using pre-defined target positions of the object. The target positions of the object define at least target flexion angles for each segment in the object when the tip of the object is at a target tip position. The collection of spirals therefore represent the motion of each segment towards the target position.

Data describing the secondary trajectories may be stored in lookup tables while the major trajectory is computed in real-time as the tip moves towards the target tip position.

Data describing the major trajectory is optionally stored in lookup tables as well .

The flexion angles for a specific closure parameter are then computed in real-time based on the collection of trajectories as defined by their p or p" length values. The power matrix is optionally used in order to avoid computing time-consuming power functions when extracting the p length values . As an example, for a given hand, the major trajectory associated with the target position of the tip of each finger is unique, as are the secondary trajectories when

18424-5PCT

generated using the target flexion angles defined for each segment in the fingers.

Once the collection of trajectories are generated, it is possible to control a specific motion of multiple digital hands each having their own unique characteristics by using a generic closure parameter. The hand motions are thus unique for each digital hand, while the hands are controlled in a similar way and thus have a similar closure type. Generating animation in real time consists in creating a certain number of images per second. This means calling x times per second an algorithm capable of going from image n (state n) to image n+1 (state n+1) . Therefore, an algorithm does not have the notion of time, it only knows what to do to go from state n to state n+1. For the animated object, a state n is characterized by an angle θ n or by a corresponding value of closure parameter between 0 and 1. Knowing θ n , the flexion angles associated with the base pivot point and the pivot points are determined. Taking the example of a finger being in an initial position defined by G 0 , this finger has to be moved to a target position θ n . The motion of the finger to reach the target position occurs during a period of time δt which is divided in three time increments, for example, which means that the finger will make three displacements in order to reach the target position. In state 0, at t=0, the position of the finger is defined by θ 0 . At t=ti, the finger is moved to a next state (state 1) characterized by θi. At t=t 2 , the finger reaches state 2 in which its position is characterized by θ 2 . Finally, at t=t 3 =t n , the finger reaches its target state (state n) in which the finger occupies the position defined by θ n . For each state, the position of the finger is determined by calculating the corresponding

18424-5PCT

flexion angles using the previously described method.

Figure 7 illustrates an embodiment of a method for animating an object made of segments connected by pivot points. The first step of the method consists in providing a digital representation of the object. For example, the object is a finger characterized by three phalanxes having a predefined length, such as the object illustrated in Fig. 6b. Each phalanx is schematized by a segment and the articulations of the finger are each represented by a pivot point. The articulation connecting the finger to the rest of the hand is the base pivot point. Providing at least one trajectory for the tip of the finger is the second step of the method. In the present example, one major trajectory and a secondary trajectory are required in order to determine the position of the finger since the number of segments is equal to 3.

While the trajectories can be provided by a user of the method, it should be understood that they can also be generated by the system creating the animation. In order to generate the trajectories, at least two positions of the object are required. For example, the initial position and a target position of the object can be used to generate the trajectories. Alternately, extreme positions of the object can be used. In the case of a finger, a first extreme position is represented by an entirely stretched finger

(βl=J32=β3=0) and the second extreme position is represented by a closed finger which can be represented by βl=π/2, β2=π/2, and β3= π/3, for example. Using the extreme positions and the above described method, the major and secondary trajectories are determined for the tip of the finger. Any position of the finger between the first and the second extreme position can then be determined knowing a single variable, namely the closure parameter θ which is

18424-5PCT

comprised between θ min (first extreme position) and θ max (second extreme position) . The initial position of the object is also characterized by a value of θ, namely θ 0 which is entered by a user of the method or automatically generated by the animation generator. The initial flexion angles of the object positioned in the initial position are calculated using the initial angle θ 0 , the major and secondary trajectories for the tip of the finger, and trigonometric relations following the above described solving method.

The third step of the method is to provide a target closure parameter θ ta rget • It should be understood that the closure parameter the tip flexion angle θ in order to control the position of the finger. Alternatively, the closure parameter can be normalized and have values between 0 and 1, 0 corresponding to θ min and 1 corresponding to θ max . θ 0 and θ target would also be represented by a corresponding normalized closure parameter value.

Knowing θ tar get and the trajectories for the tip 12 of the object, the position of the object corresponding to θ target is determined by calculating the corresponding flexion angles of the base pivot point and the pivot points. The last step of the method consists in moving the finger from its initial position to its target position. Using the closure parameter, it is possible to control the closure of a finger in a simple manner. The position of each finger of a hand may be controlled by a single and same closure parameter. For example, an entirely open hand corresponds to a closure parameter value of 0, a close fist correspond to a closure parameter value of 1. In this case, each value of the closure parameter corresponds to a particular tip flexion angle for each one of the fingers of the hand.

18424-5PCT

Figure 8 illustrates one embodiment of a system 100 for representing a physical object for digital animation. The system 100 comprises a digital modeling module 102, a trajectories generator 104, a position determining module 106 and a display unit 108. The physical object is an articulated object comprising n segments connected by n pivot points comprising a base pivot point .

The digital modeling module 102 receives model inputs from a user. These model inputs comprise the number n of segments and the respective length of each segment . The digital modeling module 102 creates a digital model from the model inputs.

The trajectories generator receives at least two positions of the object and uses these positions to generate the major and secondary trajectories for the tip of the object. These two positions can be extreme positions between which the object is free to move ' . Alternatively, the two positions can be an initial position and a target position. The two necessary positions are each characterized by flexion angles values, spatial coordinates for the tip of the object and the pivot points excluding the base pivot point, or a mix of flexion angles values and spatial coordinates of the pivot points. The trajectories generator 104 generates the major trajectory and any required secondary trajectory using the above described method. While the trajectories can be mathematically represented by a logarithmic spiral, it should be understood that the trajectories can have any other form such as an elliptical form, for example. In one embodiment, the trajectories generator 104 receives the trajectories from the user of the system 100 and does not have to generate them.

18424-5PCT

The trajectories generator 104 is connected to the position determining module 106. In one embodiment, if the trajectories are generated using the initial position and the target position of the object, the position determining module 106 receives the trajectories generated by the trajectories generator 104 and determines the flexion angles for any position of the object intermediate between the initial position and the target position. These intermediate positions can be stored in a memory. In another embodiment, if the trajectories are generated using extreme positions of the object, the position determining module 106 receives the initial position and the target position under the form of a closure parameter value (or angles θ 0 and θ target , respectively) . The position determining module 106 determines the flexion angles for the initial position, the target position and any required intermediate positions between the initial and target positions. In one embodiment, the position determining module 106 is provided with a memory in which it stores a set of flexion angles for each position between the extreme positions. A set of flexion angles corresponds to a closure parameter value, so that the position determining module 106 retrieves a corresponding set of flexion angles when it receives a closure parameter value. The position determining module 106 transmits to the display unit 108 the flexion angles corresponding to the initial position, the target position and any intermediate position required to create the animation. The display unit 106 displays the object moving from its initial position to its target position and passing by any required intermediate position.

The above-described method applies also to opposition finger flexions, such as the flexion of a thumb for

18424-5PCT

example. The plane of the spiral associated with the thumb is anchored to the thumb base segment and oriented to go though a meeting point located on another finger's major spiral, or in the wrist space. The spiral associated with the thumb is then generated following the above described method. The motion control parameter, or control flexion angle, -of the thumb is therefore mapped by interpolation of the plane orientation.

The above described methods does not depend on a specific hand morphology, and allows the animation according to any motion, gesture and grasping strategy as desired. For example, a grasping motion is done by first opposing fingers to the thumb and then modeling the closing of the fingers, the trajectories of the fingers and thumb being defined by their associated collection of spirals.

The animation can be performed in two dimensions and optionally extended to a three-dimensional animation by orienting various planes together.

Artificial physics concepts can be used to animate the articulated object according to its collection of spirals, such as described in international patent application No. PCT/CA2008/000705 filed April 14, 2008 and entitled "DIGITAL REPRESENTATION AND ANIMATION OF PHYSICAL OBJECTS" , the contents of which are herby incorporated by reference.. In this reference, the notion of an attractor is introduced as a point in space towards which the object is biased to move. Hence, a target position is reached by the tip of the articulated object using the generated spirals.

It should be noted that the present invention can be carried out as a method, can be embodied in a system, a computer readable medium or an electrical or electromagnetic signal.

18424-5PCT

The embodiments of the invention described above are intended to be exemplary only. The scope of the invention is therefore intended to be limited solely by the scope of the appended claims .

18424-5PCT