EP2179401A1 - Modeling the motion of an articulated object - Google Patents
Modeling the motion of an articulated objectInfo
- Publication number
- EP2179401A1 EP2179401A1 EP08772858A EP08772858A EP2179401A1 EP 2179401 A1 EP2179401 A1 EP 2179401A1 EP 08772858 A EP08772858 A EP 08772858A EP 08772858 A EP08772858 A EP 08772858A EP 2179401 A1 EP2179401 A1 EP 2179401A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- pivot point
- tip
- trajectory
- flexion
- segments
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T13/00—Animation
- G06T13/20—3D [Three Dimensional] animation
Definitions
- the present invention relates to the field of digital animation techniques. BACKGROUND OF THE INVENTION
- Animation 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 .
- models are built using principles of physics.
- 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.
- a method for representing an articulated motion of an object comprising: providing a target position of the object, a proximal end of the object being a base pivot
- 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.
- 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.
- a system for representing an articulated physical object for digital animation 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
- 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.
- 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
- 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)
- 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.
- 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.
- 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
- the 18424-5PCT trajectory is centered at a pivot point and not at the base pivot point.
- 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.
- 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
- 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.
- 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
- 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.
- 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.
- 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.
- 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
- step 30 a digital representation of an articulated object is provided.
- the object is in an initial position.
- 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.
- 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.
- 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.
- a position of the object can be
- 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.
- 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) .
- 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.
- the target position is defined by all of the target flexion angles in the object, ⁇ i (i 6 [1, 2, 3,
- n being the segment number
- the target position is a specific object closure position as defined by the set of target flexion angles.
- 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.
- the initial position comprises
- the initial position can be defined by a set of angles P 1 , ⁇ 2 and ⁇ 3 .
- 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 illustrate flexion angles for any- given point along a trajectory as defined by the target position (further explained in the next steps) .
- the initial and target positions represent the extreme positions between which the object is allowed to move.
- 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.
- an example of a major trajectory is a mathematical representation of a logarithmic spiral, which is defined by the following polar equation:
- K 1 B** K 1 B** where K 1 and K 2 are constants .
- 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
- the major trajectory generated has the target position of the tip of the object along its path.
- Ki the constant Ki
- 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.
- 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) .
- a computation of a weighted sum of the four surrounding elements in the matrix is done in real-time.
- 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
- 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 :
- ⁇ fi nal a 2 ⁇ s( ⁇ 2 ) + ⁇ 3 cos(/? 2 + ⁇ 3 )
- 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.
- 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.
- 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.
- 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.
- 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.
- Fig. 5 illustrates the trajectory of the tip 12 when only segments 16 and 18 are considered.
- 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.
- the y-axis and the x-axis may be positioned differently. In Fig.
- 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 ⁇ .
- both p and p' can be expressed as a function a same angle ⁇ :
- 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 .
- each spiral has a corresponding p length value.
- 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.
- p' is calculated using Eq. 2.
- ⁇ ' 2 ( ⁇ /2) - asin((p'*p' + a 2 *a 2 - a 3 *a 3 ) / (2*p' *a 2 ) )
- 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 .
- the major trajectory associated with the target position of the tip of each finger is unique, as are the secondary trajectories when
- 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.
- ⁇ t the position of the finger
- the finger is moved to a next state (state 1) characterized by ⁇ i.
- the finger reaches state 2 in which its position is characterized by ⁇ 2 .
- the finger reaches its target state (state n) in which the finger occupies the position defined by ⁇ n .
- the position of the finger is determined by calculating the corresponding
- 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.
- 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.
- 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.
- at least two positions of the object are required.
- the initial position and a target position of the object can be used to generate the trajectories.
- extreme positions of the object can be used.
- a first extreme position is represented by an entirely stretched finger
- 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
- 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 •
- the closure parameter the tip flexion angle ⁇ in order to control the position of the finger.
- 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.
- 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.
- 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.
- 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.
- 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.
- the trajectories generator 104 receives the trajectories from the user of the system 100 and does not have to generate them.
- the trajectories generator 104 is connected to the position determining module 106.
- 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.
- 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.
- 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 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.
- 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.
- 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.
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Processing Or Creating Images (AREA)
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.
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 P1 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 P1 , β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 = K1B** where K1 and K2 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 (xinitiai=0,
where a is the summation of all of the segment lengths (a=ai+a2+a3, where ai, a2, and a3 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 P1=P2=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 eKlβ
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 ( pfmal , θ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) + a2 ∞S(Pl + Pl) + «3 C0S(A + Pl + P3)
2 2 2
P final = Xfiml + yflml θ final = π l 2 - arctanO^, / xfinj From which the constant K2 can be calculated as :
18424 - 5PCT
K2 = \n{pfinal la)lθfiml and a = a.\ + a2 + a3
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 uv 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 = a7 sill(A ) + «3 Sill(A + A )
Ϋ final = a 2 ∞s(β2 ) + α3 cos(/?2 + β3 )
Pafi™< = X 'final* y 'final
/ x'final )
The point (x'βnai, Ϋ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' = a2 + a3 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 /T5 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(θfinai, θ'finai], 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 θmin 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: a2 2 = I1'2 + h'2 and a3 2 = I2'2 + h'2 with I2' = p' - li' which leads to li' = (p' *ρ' + a2*a2 - a3*a3)/(2*p') Knowing θ, p' is calculated using Eq. 2. siπ(φ'1) = sin(φ' n+φ' i2) = sin(φ'n) *cσs(φ'i2) + sin(ψ' 12) *cos (φ' n)
18424-5PCT
= (I1'/a2)*(h'/a3) + (l2'/a3)*(h'/a2)
= h' *p' / (a2*a3) which is used to determine
Then : φ'2 = (π/2) - φ'n = (π/2) - asin (I1' /a2)
β3 = π - φ'i
2) else, β3 = φ'i
Thus : φ'2 = (π/2) - asin((p'*p' + a2*a2 - a3*a3) / (2*p' *a2) )
1) if costφ'j) > 0, β3 = π - asin(h' *p'/(a2*a3) ) 2) else, β3 = asin Ch.' *p' / (a2*a3) )
Now referring to Fig. 6b, the following is derived for. the major spiral trajectory: ai2 = li2 + h2 and p'2 = I2 2 + h2 with I2 = p - Ii
= sin (φn) *cos(φi2) + sin(<pi2) *cos (φn) = (I1/a1)*(h/p') + (l2/p')*(h/ai)
Then : -
I1 = (p*p + a!*ai - p'*p')/(2*p) φ2 = (π/2) - (Ji11 = (π/2) - asiπ(li/ai)
else,
18424-5PCT
Thus :
β2 = (π/2) - asin (h*p/ (ax*p' )) + asin( (p'*p' + a2*a2 - a3*a3)/(2*ρ'*a2) ) ; 2) else, β2 = -(π/2) + asin(h*p/(a1*p' ) ) + asin{ (p'*p' + a2*a2 - a3*a3)/(2*p'*a2) ) ; and βi = θ (π/2) + asin( (p*p + ax*ax
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 G0, 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=t2, the finger reaches state 2 in which its position is characterized by θ2. Finally, at t=t3=tn, 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 θtarget • 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 θtarget 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
Claims
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
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US92978007P | 2007-07-12 | 2007-07-12 | |
PCT/CA2008/001205 WO2009006727A1 (en) | 2007-07-12 | 2008-06-27 | Modeling the motion of an articulated object |
Publications (1)
Publication Number | Publication Date |
---|---|
EP2179401A1 true EP2179401A1 (en) | 2010-04-28 |
Family
ID=40228134
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP08772858A Withdrawn EP2179401A1 (en) | 2007-07-12 | 2008-06-27 | Modeling the motion of an articulated object |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP2179401A1 (en) |
JP (1) | JP2010532895A (en) |
WO (1) | WO2009006727A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102385761B (en) * | 2010-09-03 | 2013-12-25 | 中国航天员科研训练中心 | Logical reasoning-based rapid collision detection method in virtual operation simulation |
CN103903294B (en) * | 2014-03-28 | 2017-06-23 | 西北工业大学 | The implementation method of three-dimensional virtual human mouth motion |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5889532A (en) * | 1996-08-02 | 1999-03-30 | Avid Technology, Inc. | Control solutions for the resolution plane of inverse kinematic chains |
US6057859A (en) * | 1997-03-31 | 2000-05-02 | Katrix, Inc. | Limb coordination system for interactive computer animation of articulated characters with blended motion data |
JP4592276B2 (en) * | 2003-10-24 | 2010-12-01 | ソニー株式会社 | Motion editing apparatus, motion editing method, and computer program for robot apparatus |
FR2861858B1 (en) * | 2003-10-29 | 2014-09-05 | Snecma Moteurs | MOVING A VIRTUAL ARTICULATED OBJECT INTO A VIRTUAL ENVIRONMENT BY AVOIDING COLLISIONS BETWEEN ARTICULATED OBJECT AND THE ENVIRONMENT |
-
2008
- 2008-06-27 EP EP08772858A patent/EP2179401A1/en not_active Withdrawn
- 2008-06-27 JP JP2010515328A patent/JP2010532895A/en active Pending
- 2008-06-27 WO PCT/CA2008/001205 patent/WO2009006727A1/en active Application Filing
Non-Patent Citations (1)
Title |
---|
See references of WO2009006727A1 * |
Also Published As
Publication number | Publication date |
---|---|
WO2009006727A1 (en) | 2009-01-15 |
JP2010532895A (en) | 2010-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kuch et al. | Vision based hand modeling and tracking for virtual teleconferencing and telecollaboration | |
Sanso et al. | A hand control and automatic grasping system for synthetic actors | |
Kennaway | Synthetic animation of deaf signing gestures | |
Aristidou et al. | Inverse kinematics: a review of existing techniques and introduction of a new fast iterative solver | |
Popescu et al. | Virtual reality simulation modeling for a haptic glove | |
Feng et al. | An example-based motion synthesis technique for locomotion and object manipulation | |
Unzueta et al. | Full-body performance animation with sequential inverse kinematics | |
Aristidou | Hand tracking with physiological constraints | |
Nölker et al. | GREFIT: Visual recognition of hand postures | |
Kuch et al. | Human computer interaction via the human hand: a hand model | |
CN115018963B (en) | Human-type intelligent body posture generation method based on physical simulation | |
Tao et al. | Human modeling and real-time motion reconstruction for micro-sensor motion capture | |
WO2008124941A1 (en) | Digital representation and animation of physical objects | |
WO2009006727A1 (en) | Modeling the motion of an articulated object | |
Lee et al. | Realistic human hand deformation | |
Sibille et al. | Interactive simulation of the human hand | |
Huang et al. | Interactive human motion control using a closed-form of direct and inverse dynamics | |
Xu et al. | Hand gesture interaction for virtual training of SPG | |
Ip et al. | Animation of hand motion from target posture images using an anatomy-based hierarchical model | |
Tsai et al. | Two-phase optimized inverse kinematics for motion replication of real human models | |
Battaglia et al. | chand: Open source hand posture visualization in chai3d | |
Aristidou | Tracking and modelling motion for biomechanical analysis | |
Ip et al. | Hand gesture animation from static postures using an anatomy-based model | |
Skopowski | Immersive articulation of the human upper body in a virtual environment | |
KR100478721B1 (en) | On-line locomotion generation based on motion blending |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 20100212 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MT NL NO PL PT RO SE SI SK TR |
|
AX | Request for extension of the european patent |
Extension state: AL BA MK RS |
|
RIN1 | Information on inventor provided before grant (corrected) |
Inventor name: GAUDIN, THIBAUT |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20110104 |