SimTK Simbody™
High speed multibody dynamics for
biosimulation
Michael Sherman (Sherm)
OpenSim Science Advisor Workshop, 2 June 2006
2
Topics
• Motivation: DBPs
• Multibody mechanics
• Several S’s of SimTK Simulation
• Where does Simbody fit in?
• Simbody features
• Simbody release schedule
3
RNA structure prediction
4
Myosin dynamics
5
Neuromuscular dynamics
F.C. Anderson, M. Pandy
6
What do these have in common?
• Biological structures
• Dynamics well described by classical
physics — that is, F=ma
• They’re “chunky”
7
Multibody systems
• Rigid parts …
• … mobilized by Joints
• … influenced by Forces
• … and restricted by Constraints.
• Key feature: motion is localized.
8
Multibody mechanics
9
Abstractions for classical physics
• Matter
• Energy
• Um …
10
Matter
• Mass
• Spatial distribution
• Motion
11
Abstract matter
• The rigid body
• What is a rigid body?
Bi
• Mass distribution: 10 constants
• Decorate w/geom & other props
• Ground is a (heavy) rigid body
12
Abstract motion (1)
• The joint. What is it?
• Defines relative mobility btw 2 rigid bodies
• Examples
Ball
Slider
Pin
• Defines topology & mechanical
coordinates q
13
Multibody system (1)
• Tree of bodies interconnected by joints
14
Abstract motion (2)
• Oops! That’s a little too floppy …
• Restrict with constraints.
• Algebraic invariant relating q’s: g(q)=0
• Restricts allowable motion
15
Multibody system (2)
• Constraints permit loops
g(q)= 0
16
That’s it for rigid matter
• Rigid bodies + mobility – restrictions
• Solve for (response)
• Integrate for trajectory
• Still need forces …
but that’s another matter.
17
Summary
• Rigid body mechanics is a solved problem
– Everything else is much harder and more
interesting
• But … the implementation is a bit tricky
• Simbody addresses that problem.
18
Simbody in context
19
Terminology: modeling creates a
“System”
System
Physical world
Modeling
• We’re not talking about modeling today
• A “System” is a computational embodiment of a
mathematical model
20
Properties of a System
System
• Defines its
parametrization
• But … it is stateless.
• Given a State, performs
useful computations
State
21
Studying a system
• System+State+Study  Simulation
Study
State
System
Results
states
22
Under the hood: subsystems
• Interlocking computations
• System provides the “edge pieces”
Study
State
System
subsystem
23
What’s in a multibody system?
• Matter and energy
• Simbody deals with matter
Forces
(User supplied)
Simbody
Multibody System
State
24
Software stack
Lapack/Blas
Simmatrix
Simbody Forces
CVODE
Root finding
Spatial
operators
State
Multibody system Time
stepper
Projection
Study Results
25
Software stack
(where’s Waldo?)
OpenSim
26
Simbody™
a SimTK toolset for internal coordinate
(torsion angle) mechanics
27
SimTK Core
GUI Tools | Documentation Tools | Installation
Modeling
Linear
Algebra
Multi
Body
Dynamics
Simbody
TAO
•
Integrator
ODE
DAE
Contact
Rigid
Penalty
•
Optimize
Sim Anneal
Genetic
SQ Prog Control
PD
PDEs
Solids
Fluids
Meshing
Monte
Carlo
Force
Fields
28
Ancestry
IVM (Charles
Schweiters, NIH)
TAO (Chang,
Ruspini, Arachi Corp.)
Simbody
Spatial operator algebra,
Jain & Rodriguez, JPL
Feathersone, Australian
Natl. U.
Khatib lab, Stanford
Rosenthal &
Sherman,
Symbolic Dynamics,
Protein Mechanics
Linda Petzold,
UCSB
SD/FAST,
Pro/Mechanica, Imagiro
Thomas Kane,
Stanford
William Gear,
UIUC
29
Simbody vs. SD/FAST
• All numerical – no compiler needed
• No dealing with, um, (a company)
– Completely open source, not GPL (MIT/BSD license)
– But can I <whatever>? Yes.
• O(N) all the time; targeted at 1000 bodies + 100 constraints
– Goal: within 2X of sd/fast O(n) on small problems, faster on big ones
• Structured as a set of O(N) operators
– Including Operational Space Control
• No internal state
• Shareable subsystems, systems & studies
– Mechanical models
– Forces, constraints, custom joints
– Numerical methods
• Coordinate projection instead of Baumgarte stabilization
• Advanced numerical integration (implicit/explicit/multistep)
30
Simbody basic features
• A linkable library with nice API
• Solid theory; not a “game engine”
• Technology is internal coordinate mechanics
• Open & closed-chain models
• Forward/inverse kinematics & dynamics
• Parametrization/design studies
• Easily extensible (e.g., new joint types)
• Multiplatform binaries (Windows,Mac,Linux) & easily
portable to more
• Agnostic about forces & numerical methods, but …
• … will come with some good ones.
31
Schedule
• Simbody 0.5 available now
– Very rough; brave souls only
– Basic functions; C++ only; lightly tested
– Everything will change before 1.0
• Simbody 1.0 (March 2007)
– Complete functionality; SD/FAST replacement
– Extensive testing & good documentation
– Stable API: C++, C, Fortran, SD/FAST compatible
– Integrated into several GUIs (OpenSim, ToRNAdo)
• Simbody 2.0 (~ +1 year)
– Analytic Jacobian in O(n2)
– High level modeling support
– Matlab/Java/Python wrapping
– (Even) faster
– Extensive libraries of force, constraint, joint, studies, reporters, etc.
Simbody info & downloads:
https://simtk.org/home/simbody
32
Acknowledgments (software)
• Charles Schwieters
• Arachi Corp. (K.C. Chang & D. Ruspini)
• Paul Mitiguy
• Bryan Keller
• Jack Middleton
Simbody info & downloads:
https://simtk.org/home/simbody

High speed multibody dynamics _ sherman_Simbody _ 2006.ppt

  • 1.
    SimTK Simbody™ High speedmultibody dynamics for biosimulation Michael Sherman (Sherm) OpenSim Science Advisor Workshop, 2 June 2006
  • 2.
    2 Topics • Motivation: DBPs •Multibody mechanics • Several S’s of SimTK Simulation • Where does Simbody fit in? • Simbody features • Simbody release schedule
  • 3.
  • 4.
  • 5.
  • 6.
    6 What do thesehave in common? • Biological structures • Dynamics well described by classical physics — that is, F=ma • They’re “chunky”
  • 7.
    7 Multibody systems • Rigidparts … • … mobilized by Joints • … influenced by Forces • … and restricted by Constraints. • Key feature: motion is localized.
  • 8.
  • 9.
    9 Abstractions for classicalphysics • Matter • Energy • Um …
  • 10.
    10 Matter • Mass • Spatialdistribution • Motion
  • 11.
    11 Abstract matter • Therigid body • What is a rigid body? Bi • Mass distribution: 10 constants • Decorate w/geom & other props • Ground is a (heavy) rigid body
  • 12.
    12 Abstract motion (1) •The joint. What is it? • Defines relative mobility btw 2 rigid bodies • Examples Ball Slider Pin • Defines topology & mechanical coordinates q
  • 13.
    13 Multibody system (1) •Tree of bodies interconnected by joints
  • 14.
    14 Abstract motion (2) •Oops! That’s a little too floppy … • Restrict with constraints. • Algebraic invariant relating q’s: g(q)=0 • Restricts allowable motion
  • 15.
    15 Multibody system (2) •Constraints permit loops g(q)= 0
  • 16.
    16 That’s it forrigid matter • Rigid bodies + mobility – restrictions • Solve for (response) • Integrate for trajectory • Still need forces … but that’s another matter.
  • 17.
    17 Summary • Rigid bodymechanics is a solved problem – Everything else is much harder and more interesting • But … the implementation is a bit tricky • Simbody addresses that problem.
  • 18.
  • 19.
    19 Terminology: modeling createsa “System” System Physical world Modeling • We’re not talking about modeling today • A “System” is a computational embodiment of a mathematical model
  • 20.
    20 Properties of aSystem System • Defines its parametrization • But … it is stateless. • Given a State, performs useful computations State
  • 21.
    21 Studying a system •System+State+Study  Simulation Study State System Results states
  • 22.
    22 Under the hood:subsystems • Interlocking computations • System provides the “edge pieces” Study State System subsystem
  • 23.
    23 What’s in amultibody system? • Matter and energy • Simbody deals with matter Forces (User supplied) Simbody Multibody System State
  • 24.
    24 Software stack Lapack/Blas Simmatrix Simbody Forces CVODE Rootfinding Spatial operators State Multibody system Time stepper Projection Study Results
  • 25.
  • 26.
    26 Simbody™ a SimTK toolsetfor internal coordinate (torsion angle) mechanics
  • 27.
    27 SimTK Core GUI Tools| Documentation Tools | Installation Modeling Linear Algebra Multi Body Dynamics Simbody TAO • Integrator ODE DAE Contact Rigid Penalty • Optimize Sim Anneal Genetic SQ Prog Control PD PDEs Solids Fluids Meshing Monte Carlo Force Fields
  • 28.
    28 Ancestry IVM (Charles Schweiters, NIH) TAO(Chang, Ruspini, Arachi Corp.) Simbody Spatial operator algebra, Jain & Rodriguez, JPL Feathersone, Australian Natl. U. Khatib lab, Stanford Rosenthal & Sherman, Symbolic Dynamics, Protein Mechanics Linda Petzold, UCSB SD/FAST, Pro/Mechanica, Imagiro Thomas Kane, Stanford William Gear, UIUC
  • 29.
    29 Simbody vs. SD/FAST •All numerical – no compiler needed • No dealing with, um, (a company) – Completely open source, not GPL (MIT/BSD license) – But can I <whatever>? Yes. • O(N) all the time; targeted at 1000 bodies + 100 constraints – Goal: within 2X of sd/fast O(n) on small problems, faster on big ones • Structured as a set of O(N) operators – Including Operational Space Control • No internal state • Shareable subsystems, systems & studies – Mechanical models – Forces, constraints, custom joints – Numerical methods • Coordinate projection instead of Baumgarte stabilization • Advanced numerical integration (implicit/explicit/multistep)
  • 30.
    30 Simbody basic features •A linkable library with nice API • Solid theory; not a “game engine” • Technology is internal coordinate mechanics • Open & closed-chain models • Forward/inverse kinematics & dynamics • Parametrization/design studies • Easily extensible (e.g., new joint types) • Multiplatform binaries (Windows,Mac,Linux) & easily portable to more • Agnostic about forces & numerical methods, but … • … will come with some good ones.
  • 31.
    31 Schedule • Simbody 0.5available now – Very rough; brave souls only – Basic functions; C++ only; lightly tested – Everything will change before 1.0 • Simbody 1.0 (March 2007) – Complete functionality; SD/FAST replacement – Extensive testing & good documentation – Stable API: C++, C, Fortran, SD/FAST compatible – Integrated into several GUIs (OpenSim, ToRNAdo) • Simbody 2.0 (~ +1 year) – Analytic Jacobian in O(n2) – High level modeling support – Matlab/Java/Python wrapping – (Even) faster – Extensive libraries of force, constraint, joint, studies, reporters, etc. Simbody info & downloads: https://simtk.org/home/simbody
  • 32.
    32 Acknowledgments (software) • CharlesSchwieters • Arachi Corp. (K.C. Chang & D. Ruspini) • Paul Mitiguy • Bryan Keller • Jack Middleton Simbody info & downloads: https://simtk.org/home/simbody