Patent · US10713400B2 · B2 · US
System and method for executing a simulation of a constrained multi-body system
- (11) Publication number
- US10713400B2
- (21) Application number
- 15/959,819
- (22) Filing date
- 2018-04-23
- (30) Priority date
- 2017-04-23
- (43) Publication date
- 2020-07-14
- (45) Date of grant
- 2020-07-14
- (51) IPC
- B25J 9/16; G06F 17/11; G06F 30/20; G09B 23/10; G09B 25/02; G09B 9/042
- (52) CPC
- G06F Electric digital data processing: 30/20, 17/11
- B25J Manipulators; chambers provided with manipulation devices: 9/1605
- G05B Control or regulating systems in general; functional elements of such systems; monitoring or testing arrangements for such systems or elements: 2219/40311
- G09B Educational or demonstration appliances; appliances for teaching, or communicating with, the blind, deaf or mute; models; planetaria; globes; maps; diagrams: 23/10, 25/02, 9/042
- (73) Assignee
- Cmlabs Simulations Inc
- (72) Inventors
- Sheldon Paul ANDREWS; Paul Gregory KRY; Marek Teichmann
- (54) Title
- System and method for executing a simulation of a constrained multi-body system
- (57) Abstract
Methods of and systems for executing a simulation of a constrained multi-body system. The method comprises, using a physics engine, simulating the constrained multi-body system, wherein: the constrained multi-body system comprises articulated constraints, the articulated constraints are associated with a geometric stiffness matrix; the geometric stiffness matrix defining a geometric stiffness; a diagonal approximation of the geometric stiffness matrix is generated; and the diagonal approximation is used as part of a stability analysis in which damping is automatically adjusted so that the damping stabilizes the simulation of the constrained multi-body system.
- Full text
- View on Google Patents
Claims (22)
- A computer-implemented method for executing a simulation of a constrained multi-body system, the method comprising: simulating the constrained multi-body system by using a physics engine, the constrained multi-body system comprising articulated constraints; associating the articulated constraints with a geometric stiffness matrix; the geometric stiffness matrix defining a geometric stiffness, wherein the geometric stiffness defines how a direction of forces in the constrained multi-body system changes due to instantaneous motion of one or more links associated with the constrained multi-body system; and using the geometric stiffness matrix as part of a stability analysis in order to determine damping values, the damping values being calculated at each time step of the simulation, the damping values being determined so as to achieve stability of the simulation of the constrained multi-body system.
- The method of claim 1, wherein determining the damping values is based on a damping coefficient.
- The method of claim 2, wherein the damping coefficient is automatically adjusted so as to be large enough to stabilize transverse oscillations of the simulation of the constrained multi-body system.
- The method of claim 1, wherein the simulation of the constrained multi-body system comprises a dynamical system wherein the geometric stiffness matrix is reinterpreted as a spring and the generated forces are used in combination with a stability criterion for stable simulation.
- The method of claim 4, wherein spring forces define the damping.
- The method of claim 4, wherein the stability criterion comprises a threshold based on a behavior of a simple 1D undamped oscillator.
- The method of claim 6, wherein the geometric stiffness matrix serves as the stability criterion as to whether the dynamical system becomes unstable.
- The method of claim 7, wherein the geometric stiffness matrix is a {tilde over (K)} matrix, wherein the {tilde over (K)} matrix is defined as follows: K ~ = ∂ J T ∂ x λ wherein J is a matrix of constraint Jacobians, λ are constraint forces and x are positions and orientations of bodies in the simulation of the constrained multi-body system.
- The method of claim 1, wherein the instantaneous motion comprises at least one of rotation of the one or more links associated with the constrained multi-body system, translation of the one or more links associated with the constrained multi-body system and relative motion of the one or more links associated with the constrained multi-body system.
- The method of claim 1, wherein a topology of a mechanical structure of the constrained multi-body system remains unmodified during the simulating of the constrained multi-body system.
- The method of claim 1, wherein the damping values comprise parameters which define an interpretation of the geometric stiffness used in the simulation of the constrained multi-body system.
- The method of claim 11, wherein at least one of the parameters define physical behaviour of a transient physical spring that is able to generate forces in directions transverse to transverse oscillations directions.
- The method of claim 12, wherein data encoding parameters of the transient spring models a tensor encoding variations in constraint force directions.
- The method of claim 1, wherein the simulating of the constrained multi-body system is executed in real-time.
- The method of claim 1, wherein stabilizing the simulation of the constrained multi-body system comprises stabilizing the transverse oscillations of the simulation of the constrained multi-body system.
- The method of claim 1, wherein the geometric stiffness matrix is generated by using a low rank update algorithm, the using of the low rank update algorithm comprising constructing a lead matrix of dynamical equations of motion, the lead matrix comprising the geometric stiffness matrix.
- The method of claim 1, wherein the geometric stiffness matrix models the articulated constraints.
- The method of claim 1, wherein using the geometric stiffness matrix comprises generating a diagonal approximation of the geometric stiffness matrix.
- The method of claim 18, wherein the diagonal approximation of the geometric stiffness is calculated in accordance with the following equation: b = h 2 k - 4 α m 2 h wherein k is a stiffness, b is a damping and m is a mass, h is a given time step and a is a positive scalar value that allows control over how close dynamical system may be to the boundary before damping may be required.
- The method of claim 18, wherein the diagonal approximation of the geometric stiffness matrix preserves mechanical work properties associated with the constrained multi-body system.
- A computer-implemented system for executing a simulation of a constrained multi-body system, the system comprising: a processor; a non-transitory computer-readable medium, the non-transitory computer-readable medium comprising control logic which, upon execution by the processor, causes: simulating the constrained multi-body system by using a physics engine, the constrained multi-body system comprising articulated constraints; associating the articulated constraints with a geometric stiffness matrix; the geometric stiffness matrix defining a geometric stiffness, wherein the geometric stiffness defines how a direction of forces in the constrained multi-body system changes due to instantaneous motion of one or more links associated with the constrained multi-body system; and using the geometric stiffness matrix as part of a stability analysis in order to determine damping values, the damping values being calculated at each time step of the simulation, the damping values being determined so as to achieve stability of the simulation of the constrained multi-body system.
- A non-transitory computer-readable medium, the non-transitory computer-readable medium comprising control logic which, upon execution by a processor, causes: simulating the constrained multi-body system by using a physics engine, the constrained multi-body system comprising articulated constraints; associating the articulated constraints with a geometric stiffness matrix; the geometric stiffness matrix defining a geometric stiffness, wherein the geometric stiffness defines how a direction of forces in the constrained multi-body system changes due to instantaneous motion of one or more links associated with the constrained multi-body system; and using the geometric stiffness matrix as part of a stability analysis in order to determine damping values, the damping values being calculated at each time step of the simulation, the damping values being determined so as to achieve stability of the simulation of the constrained multi-body system.
Description
The present technology relates to systems and methods of executing a simulation of a constrained multi-body system. In particular, the systems and methods allow introduction of an adaptive damping scheme to stabilize the simulation of the constrained multi-body system.
Physics engines, by allowing physics simulation, are at a cornerstone of many applications, including, but not limited to, real-time simulations such as video games, character animation tolls, operator training, robotics control and the like. A common thread in at least some of these applications is the need for realistic simulation maintaining stable behavior while limiting the processing power required. Limiting the processing power required may be an important aspect for real-time applications wherein an acceptable frame rate has to be maintained.
Simulation of constrained multi-body system systems is a challenge in computer animation. Fast and/or approximate methods have been a research topic since the early days of computer graphics. In some instances, it may be desirable to formulate and solve articulated systems in a minimal set of coordinates, such as joint coordinates. While a few physics engines implement joint coordinate solvers, physics engines commonly include constrained multi-body system solvers. As time stepping a constrained full body formulation may result in constraint violations, most solvers include either a Baumgarte feedback term as further detailed in Baumgarte (BAUMGARTE J.: Stabilization of constraints and integrals of motion in dynamical systems.
Citations (27)
- US5625575A
- US5835693A
- US20030018455A1
- EP1402503B1
- US7904280B2
- US20040248182A1
- US7493243B2
- US8886501B2
- US7403202B1
- US8786613B2
- US7769571B2
- US8005659B2
- US20120078598A1
- CN102184298A
- US20130116988A1
- KR20130054602A
- JP2013158851A
- CN103742587A
- US20150109289A1
- CN104019998A
- CN104358327A
- CN104182598A
- CN104268326A
- US20160203630A1
- US20160292902A1
- WO2017027957A1
- CN106204697A
Record as JSON
{
"publication_number": "US10713400B2",
"country": "US",
"kind": "B2",
"title": "System and method for executing a simulation of a constrained multi-body system",
"abstract": "Methods of and systems for executing a simulation of a constrained multi-body system. The method comprises, using a physics engine, simulating the constrained multi-body system, wherein: the constrained multi-body system comprises articulated constraints, the articulated constraints are associated with a geometric stiffness matrix; the geometric stiffness matrix defining a geometric stiffness; a diagonal approximation of the geometric stiffness matrix is generated; and the diagonal approximation is used as part of a stability analysis in which damping is automatically adjusted so that the damping stabilizes the simulation of the constrained multi-body system.",
"claims": [
"1. A computer-implemented method for executing a simulation of a constrained multi-body system, the method comprising: simulating the constrained multi-body system by using a physics engine, the constrained multi-body system comprising articulated constraints; associating the articulated constraints with a geometric stiffness matrix; the geometric stiffness matrix defining a geometric stiffness, wherein the geometric stiffness defines how a direction of forces in the constrained multi-body system changes due to instantaneous motion of one or more links associated with the constrained multi-body system; and using the geometric stiffness matrix as part of a stability analysis in order to determine damping values, the damping values being calculated at each time step of the simulation, the damping values being determined so as to achieve stability of the simulation of the constrained multi-body system.",
"2. The method of claim 1, wherein determining the damping values is based on a damping coefficient.",
"3. The method of claim 2, wherein the damping coefficient is automatically adjusted so as to be large enough to stabilize transverse oscillations of the simulation of the constrained multi-body system.",
"4. The method of claim 1, wherein the simulation of the constrained multi-body system comprises a dynamical system wherein the geometric stiffness matrix is reinterpreted as a spring and the generated forces are used in combination with a stability criterion for stable simulation.",
"5. The method of claim 4, wherein spring forces define the damping.",
"6. The method of claim 4, wherein the stability criterion comprises a threshold based on a behavior of a simple 1D undamped oscillator.",
"7. The method of claim 6, wherein the geometric stiffness matrix serves as the stability criterion as to whether the dynamical system becomes unstable.",
"8. The method of claim 7, wherein the geometric stiffness matrix is a {tilde over (K)} matrix, wherein the {tilde over (K)} matrix is defined as follows: K ~ = ∂ J T ∂ x λ wherein J is a matrix of constraint Jacobians, λ are constraint forces and x are positions and orientations of bodies in the simulation of the constrained multi-body system.",
"9. The method of claim 1, wherein the instantaneous motion comprises at least one of rotation of the one or more links associated with the constrained multi-body system, translation of the one or more links associated with the constrained multi-body system and relative motion of the one or more links associated with the constrained multi-body system.",
"10. The method of claim 1, wherein a topology of a mechanical structure of the constrained multi-body system remains unmodified during the simulating of the constrained multi-body system.",
"11. The method of claim 1, wherein the damping values comprise parameters which define an interpretation of the geometric stiffness used in the simulation of the constrained multi-body system.",
"12. The method of claim 11, wherein at least one of the parameters define physical behaviour of a transient physical spring that is able to generate forces in directions transverse to transverse oscillations directions.",
"13. The method of claim 12, wherein data encoding parameters of the transient spring models a tensor encoding variations in constraint force directions.",
"14. The method of claim 1, wherein the simulating of the constrained multi-body system is executed in real-time.",
"15. The method of claim 1, wherein stabilizing the simulation of the constrained multi-body system comprises stabilizing the transverse oscillations of the simulation of the constrained multi-body system.",
"16. The method of claim 1, wherein the geometric stiffness matrix is generated by using a low rank update algorithm, the using of the low rank update algorithm comprising constructing a lead matrix of dynamical equations of motion, the lead matrix comprising the geometric stiffness matrix.",
"17. The method of claim 1, wherein the geometric stiffness matrix models the articulated constraints.",
"18. The method of claim 1, wherein using the geometric stiffness matrix comprises generating a diagonal approximation of the geometric stiffness matrix.",
"19. The method of claim 18, wherein the diagonal approximation of the geometric stiffness is calculated in accordance with the following equation: b = h 2 k - 4 α m 2 h wherein k is a stiffness, b is a damping and m is a mass, h is a given time step and a is a positive scalar value that allows control over how close dynamical system may be to the boundary before damping may be required.",
"20. The method of claim 18, wherein the diagonal approximation of the geometric stiffness matrix preserves mechanical work properties associated with the constrained multi-body system.",
"21. A computer-implemented system for executing a simulation of a constrained multi-body system, the system comprising: a processor; a non-transitory computer-readable medium, the non-transitory computer-readable medium comprising control logic which, upon execution by the processor, causes: simulating the constrained multi-body system by using a physics engine, the constrained multi-body system comprising articulated constraints; associating the articulated constraints with a geometric stiffness matrix; the geometric stiffness matrix defining a geometric stiffness, wherein the geometric stiffness defines how a direction of forces in the constrained multi-body system changes due to instantaneous motion of one or more links associated with the constrained multi-body system; and using the geometric stiffness matrix as part of a stability analysis in order to determine damping values, the damping values being calculated at each time step of the simulation, the damping values being determined so as to achieve stability of the simulation of the constrained multi-body system.",
"22. A non-transitory computer-readable medium, the non-transitory computer-readable medium comprising control logic which, upon execution by a processor, causes: simulating the constrained multi-body system by using a physics engine, the constrained multi-body system comprising articulated constraints; associating the articulated constraints with a geometric stiffness matrix; the geometric stiffness matrix defining a geometric stiffness, wherein the geometric stiffness defines how a direction of forces in the constrained multi-body system changes due to instantaneous motion of one or more links associated with the constrained multi-body system; and using the geometric stiffness matrix as part of a stability analysis in order to determine damping values, the damping values being calculated at each time step of the simulation, the damping values being determined so as to achieve stability of the simulation of the constrained multi-body system."
],
"description_excerpt": "The present technology relates to systems and methods of executing a simulation of a constrained multi-body system. In particular, the systems and methods allow introduction of an adaptive damping scheme to stabilize the simulation of the constrained multi-body system.\n\nPhysics engines, by allowing physics simulation, are at a cornerstone of many applications, including, but not limited to, real-time simulations such as video games, character animation tolls, operator training, robotics control and the like. A common thread in at least some of these applications is the need for realistic simulation maintaining stable behavior while limiting the processing power required. Limiting the processing power required may be an important aspect for real-time applications wherein an acceptable frame rate has to be maintained.\n\nSimulation of constrained multi-body system systems is a challenge in computer animation. Fast and/or approximate methods have been a research topic since the early days of computer graphics. In some instances, it may be desirable to formulate and solve articulated systems in a minimal set of coordinates, such as joint coordinates. While a few physics engines implement joint coordinate solvers, physics engines commonly include constrained multi-body system solvers. As time stepping a constrained full body formulation may result in constraint violations, most solvers include either a Baumgarte feedback term as further detailed in Baumgarte (BAUMGARTE J.: Stabilization of constraints and integrals of motion in dynamical systems.",
"cpc": [
"G06F 30/20",
"B25J 9/1605",
"G05B 2219/40311",
"G06F 17/11",
"G09B 23/10",
"G09B 25/02",
"G09B 9/042"
],
"ipc": [
"B25J 9/16",
"G06F 17/11",
"G06F 30/20",
"G09B 23/10",
"G09B 25/02",
"G09B 9/042"
],
"assignees": [
"Cmlabs Simulations Inc"
],
"inventors": [
"Sheldon Paul ANDREWS",
"Paul Gregory KRY",
"Marek Teichmann"
],
"filing_date": "2018-04-23",
"publication_date": "2020-07-14",
"grant_date": "2020-07-14",
"priority_date": "2017-04-23",
"application_number": "US-201815959819-A",
"family_id": "63854530",
"cited_by_count": 0,
"citations": [
"US5625575A",
"US5835693A",
"US20030018455A1",
"EP1402503B1",
"US7904280B2",
"US20040248182A1",
"US7493243B2",
"US8886501B2",
"US7403202B1",
"US8786613B2",
"US7769571B2",
"US8005659B2",
"US20120078598A1",
"CN102184298A",
"US20130116988A1",
"KR20130054602A",
"JP2013158851A",
"CN103742587A",
"US20150109289A1",
"CN104019998A",
"CN104358327A",
"CN104182598A",
"CN104268326A",
"US20160203630A1",
"US20160292902A1",
"WO2017027957A1",
"CN106204697A"
]
}
Record 2,072 of 8,000 in Patents full text (MLC-0201). Request the full dataset.