# US 10,482,647 B2 · Computer-implemented method for simulating a body taking a posture

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 10,482,647 B2
- Document ID: US10482647B2
- Status: Granted
- Kind: B2
- Application number: 15/812,789
- Filed: 2017-11-14
- Published: 2018-05-24
- Granted: 2019-11-19
- Earliest claimed: 2016-11-22
- Assignees: Dassault Systemes
- Applicants: Dassault Systemes
- Inventors: Mickaël Brossard
- Web page: https://patentgrep.com/patent/US10482647B2

## CPC

- G06T 13/40: of characters, e.g. humans, animals or virtual beings
- G06T 19/20: Editing of three-dimensional [3D] images, e.g. changing shapes or colours, aligning objects or positioning parts
- G06T 2200/24: involving graphical user interfaces [GUIs]
- G06T 2219/2016: Rotation, translation, scaling
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL

## Abstract

Computer-implemented method, system, and apparatus simulate a human/animal body taking a posture. Implementation includes: a) providing a body model (AV), having a skeleton with plurality of bones (b0-b4) articulated by rotational joints (A-D) forming at least one kinematic chain; b) defining a starting position and a starting rotational state for each rotational joint of the skeleton, and a target point position (T), called effector (EF), of an active kinematic chain; c) for at least one rotational axis of each joint of the active kinematic chain, defining: an actuation order, a maximal fractional contribution to a target rotation, and a maximal rotation angle; and d) iteratively applying, to the joints of the active kinematic chain, taken in actuation order, rotations around rotational axes in order to approach the effector to a target position (T). Each rotation of a joint is bounded by corresponding maximal rotation angle or corresponding maximal fractional contribution to the target rotation minimizing the distance between the effector and its target position.

## Claims

### Claim 1

A computer-implemented method for simulating a human or animal body taking a posture, comprising the steps of:
a) providing in computer memory a model of said human or animal body, including a skeleton comprising a plurality of bones articulated by rotational joints to form at least one kinematic chain, each rotational joint connecting two bones and having a number of rotational axes comprised between one and three;
b) defining a starting position and a starting rotational state for each rotational joint of the skeleton, and a target position for a point, called effector, of a kinematic chain, called active kinematic chain;
c) for at least one rotational axis of each one of a plurality of rotational joints of the active kinematic chain, defining:
an actuation order;
a maximal fractional rotation contribution about the axis to a target rotation; and
a maximal rotation angle about the axis; and
d) automatically by a processor, iteratively applying, to the rotational joints of the active kinematic chain, taken in their actuation order, rotations around their rotational axes in order to approach the effector to its target position, wherein each rotation of a rotational joint about a rotational axis is bounded by one among the corresponding maximal rotation angle about the axis and of the corresponding maximal fractional rotation contribution about the axis to the target rotation which would minimize the distance between the effector and its target position, said iteratively applying resulting in the model simulating said human or animal body taking the target position.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1 further comprising the following step, carried out after step d):
e) applying a cyclic coordinate descent algorithm to make the effector converge to the target position, unless convergence has already been achieved at the end of step d).

### Claim 3 (depends on 1)

The computer-implemented method of claim 1 wherein each rotation of a rotational joint about a rotational axis is bounded by the largest among the corresponding maximal rotation angle about the axis and of the corresponding maximal fractional rotation contribution about the axis to the target rotation which would minimize the distance between the effector and its target position.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1 wherein in step d) at least one rotation is bounded by at least one constraint modeling a physiological constraint of the human or animal body.

### Claim 5 (depends on 1)

The computer-implemented method of claim 1 wherein step c) comprises creating an ordered list of elements, each element of the list comprising at least:
an identifier of a rotational joint and of a rotational axis thereof;
a numerical value indicative of the corresponding maximal fractional rotation contribution about the axis to a target rotation; and
a numerical value indicative of the corresponding maximal rotation angle about the axis.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1 wherein said target position is moving in a three-dimensional scene containing the model of said human or animal body, and wherein step d) is repeatedly carried out, in real time, for a plurality of successive locations of the target position.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1 further comprising displaying a graphical representation of said human or animal body.

### Claim 8 (depends on 1)

The computer-implemented method of claim 1, wherein the effector corresponds to an element chosen among a hand, a finger, a foot, a toe, a head or a portion thereof of said human or animal body.

### Claim 9

A computer program product, comprising:
a non-transitory computer-readable data-storage medium having computer-executable instructions stored thereon, the instructions causing a computer system to:
a) provide in computer memory a model of a human or animal body, including a skeleton comprising a plurality of bones articulated by rotational joints to form at least one kinematic chain, each rotational joint connecting two bones and having a number of rotational axes comprised between one and three;
b) define a starting position and a starting rotational state for each rotational joint of the skeleton, and a target position for a point, called effector, of a kinematic chain, called active kinematic chain;
c) for at least one rotational axis of each one of a plurality of rotational joints of the active kinematic chain, define:
an actuation order;
a maximal fractional rotation contribution about the axis to a target rotation; and
a maximal rotation angle about the axis; and
d) automatically iteratively apply, to the rotational joints of the active kinematic chain, taken in their actuation order, rotations around their rotational axes in order to approach the effector to its target position, wherein each rotation of a rotational joint about a rotational axis is bounded by one among the corresponding maximal rotation angle about the axis and of the corresponding maximal fractional rotation contribution about the axis to the target rotation which would minimize the distance between the effector and its target position, said iteratively applying resulting in the model simulating said human or animal body taking the target position.

### Claim 10

A non-transitory computer-readable data-storage medium comprising:
a memory area containing computer-executable instructions that cause a computer system to:
a) provide in computer memory a model of a human or animal body, including a skeleton comprising a plurality of bones articulated by rotational joints to form at least one kinematic chain, each rotational joint connecting two bones and having a number of rotational axes comprised between one and three;
b) define a starting position and a starting rotational state for each rotational joint of the skeleton, and a target position for a point, called effector, of a kinematic chain, called active kinematic chain;
c) for at least one rotational axis of each one of a plurality of rotational joints of the active kinematic chain, define:
an actuation order;
a maximal fractional rotation contribution about the axis to a target rotation; and
a maximal rotation angle about the axis; and
d) automatically iteratively apply, to the rotational joints of the active kinematic chain, taken in their actuation order, rotations around their rotational axes in order to approach the effector to its target position, wherein each rotation of a rotational joint about a rotational axis is bounded by one among the corresponding maximal rotation angle about the axis and of the corresponding maximal fractional rotation contribution about the axis to the target rotation which would minimize the distance between the effector and its target position, said iteratively applying resulting in the model simulating said human or animal body taking the target position.

### Claim 11

A computer system comprising:
a processor coupled to a memory and a graphical user interface;
the memory storing computer-executable instructions that cause the computer system to:
a) provide in computer memory a model of a human or animal body, including a skeleton comprising a plurality of bones articulated by rotational joints to form at least one kinematic chain, each rotational joint connecting two bones and having a number of rotational axes comprised between one and three;
b) define a starting position and a starting rotational state for each rotational joint of the skeleton, and a target position for a point, called effector, of a kinematic chain, called active kinematic chain;
c) for at least one rotational axis of each one of a plurality of rotational joints of the active kinematic chain, define:
an actuation order;
a maximal fractional rotation contribution about the axis to a target rotation; and
a maximal rotation angle about the axis; and
d) automatically iteratively apply, to the rotational joints of the active kinematic chain, taken in their actuation order, rotations around their rotational axes in order to approach the effector to its target position, wherein each rotation of a rotational joint about a rotational axis is bounded by one among the corresponding maximal rotation angle about the axis and of the corresponding maximal fractional rotation contribution about the axis to the target rotation which would minimize the distance between the effector and its target position, said iteratively applying resulting in the model simulating said human or animal body taking the target position.

### Claim 12

A computer-based model of a human or animal body comprising:
a simulator coupled to a computer-implemented model of a human or animal body, the model of said human or animal body, including a skeleton comprising a plurality of bones articulated by rotational joints to form at least one kinematic chain, each rotational joint connecting two bones and having a number of rotational axes comprised between one and three, the simulator executable by a processor; and
a posture simulating portion of the simulator causing the model to simulate the modeled human or animal body taking a posture of interest by:
defining a starting position and a starting rotational state for each rotational joint of the skeleton, and a target position for a point, called effector, of a kinematic chain, called active kinematic chain;
for at least one rotational axis of each one of a plurality of rotational joints of the active kinematic chain, defining:
an actuation order;
a maximal fractional rotation contribution about the axis to a target rotation; and
a maximal rotation angle about the axis; and
automatically iteratively applying, to the rotational joints of the active kinematic chain, taken in their actuation order, rotations around their rotational axes in order to approach the effector to its target position, wherein each rotation of a rotational joint about a rotational axis is bounded by one among the corresponding maximal rotation angle about the axis and of the corresponding maximal fractional rotation contribution about the axis to the target rotation which would minimize the distance between the effector and its target position, said iteratively applying resulting in the model simulating said modeled human or animal body taking the target position as the posture of interest.
