Clay Anderson, Ayman Habib, Pete Loan, and Scott Delp OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006 Clay Anderson, Ayman Habib, Pete Loan, and Scott Delp
Object-Oriented Framework for the Simulation, Control, and Analysis What is OpenSim? Object-Oriented Framework for the Simulation, Control, and Analysis OpenSim, Gait Workflow OpenSim API CVODE, RootSolve, SQP, SA, LAPACK, Simbody Developers: Clay Anderson (Framework) Ayman Habib (Applications) Peter Loan (Musculographics / SIMM) Saryn Goldberg, May Liu, Ilse Jonker, Jen Hicks, Chand John, … … … …
Original Plan (Nuclear Bomb)
Chief Design Goals Speed Shareable code Extensibility Different Entry Levels Algorithms Modeling API Scripting Graphical User Interface Matlab!
OpenSim API RKF 5-6 CVODE … Simbody
Some Code Like SIMM Dynamics Pipeline but using C++. Platform independent Windows Mac Linux Other Unix flavors CMake is a cross-platform compile system (www.cmake.org) Swig is an automated wrapper generation facility Java
Lowering the barrier for developers and users Examples Sample code Templates for extending OpenSim (analyses, actuators, controllers) Documentation OpenSim Developer’s Guide OpenSim API Reference (Doxygen) Streamlined installation Training Workshops directed at solving your problems Graphical User Interface (GUI)
Making Simulation Accessible- OpenSim GUI Animation Playback Data, Model, and Simulation Navigator 3D Visualization using VTK Plotting Simulation Progress Command and Scripting Window
Investigations and Workflows Investigation- equivalent to something you’d normally write in a main routine Optimization study Inverse dynamics study Workflow- a set of investigations Gait Workflow Subject-specific Simulation Workflow
Preprocess Experimental Data Gait Workflow Step -1 Preprocess Experimental Data
Execution of the Gait Workflow currently % scale –Setup 900045_setup_scale.xml (seconds) % ik –Setup 900045_setup_ik.xml (minute) % rra –Setup 900045_setup_rra.xml (10 minutes) % cmc –Setup 900045_setup_cmc.xml (10 minutes) % perturb –Setup 900045_setup_perturb.xml (hours) Should we develop facilities for executing workflows in a GUI? Main OpenSim GUI Stand-alone wizard
Preliminary Release Schedule April 2006 OpenSim 0.5 (alpha) June 2006 OpenSim 0.6 (alpha) Use of OpenSim name space Consistency in class names and file storage Dependent on SIMM and SDFast Sept 2006 OpenSim 0.7 (alpha) API supports SIMM modeling features, switching dynamics engines and integrators SIMM muscles native GUI for visualizing models with muscles Wizard for executing the gait workflow Dec 2006 OpenSim 0.8 (alpha) Simbody and CVODE available in OpenSim 80% of SIMM modeling features in GUI No more dependence on SIMM / SDFast documenting and testing Mar 2007 OpenSim 0.9 (beta) Streamlined installation documenting and broader testing June 2007 OpenSim 1.0 80% SIMM functionality Simbody, CVODE Gait Workflow Documentation Examples and pre-made simulations Materials for a short course August 2007 Dissemination Event Tutorials adjunct to ASBAnnual Meeting
Some Questions… Do we need additional concepts in OpenSim? sensors, contact, … How important is interfacing with Matlab? What SIMM features are priorities? What new things would be most compelling to you? control, dynamic optimization, speed, … When should we engage users? Who? Are we being too ambitious? Are there some simple wins, killer apps? What should we be thinking about beyond the next year? “Directed Reductionism” and Sherm’s Modeling Layer
Acknowledgements Supported by the National Institutes of Health through the NIH Roadmap for Medical Research Grant U54 GM072970. NIH HD45109, HD38962, HD33929
Why use OpenSim? Many of the capabilities of SIMM Choice of dynamics engines SD/Fast (proven, but costs and requires compile step) Simbody (free, no compile step, everything but loop joints) Choice of integrators RKF, CVODE, … Pipeline for creating simulations from MoCap CMC, … Analyses Extensible (plugins) New actuators, controllers, analyses, …
Clinical Importance Movement disorders are a challenging problem. The causes are not well understood. Muscles are the targets of treatments. Treatments are often unsuccessful. Asakawa et al. (2004) J Bone Jnt Surg
Subject-Specific Simulation 1.18 m/s 3 dof back 6 dof pelvis 3 dof hips 1 dof knees 1 dof ankles 78 kg, 1.78 m 19 DOF, 92 Muscles (Delp, 1990) ~1° Tracking Accuracy ~20 min computer time
Simulations Generated with CMC Each generated with less than 10 minutes of CPU time.
Limitations of CMC CMC is a tracking algorithm, not well suited for predicting emergent behavior. Generating a simulation that replicates a subject’s gait cycle. Solving for the theoretically most-efficient gait cycle. CMC is dependent on the quality of the input data. Kinematics Ground reaction forces
Computed Muscle Control Step 1: Compute Desired Accelerations (PD Control) velocity errors position errors
Computed Muscle Control Step 2: Solve for Muscle Excitations a) Integrate forward by T (0.010) to compute and . b) Solve static optimization problem to find to achieve . c) Root solve to find the muscle excitations that will generate .
Computed Muscle Control Step 3: Integrate from t to t+T
Computed Muscle Control Step 1 Step 2 Step 3 Repeat Steps 1, 2, and 3, until the final time is reached.
Different Causes Suggest Different Treatments
Number of 3D, Muscle-Actuated Simulations of Gait Liu, Jonkers, Arnold, Thelen, Anderson, Delp (92 Muscles) Number Hase et al., Sellers et at. (~60 Muscles) Yamaguchi & Zajac (9 Muscles) Anderson & Pandy (54 Muscles)
Perturbation analysis *Hold other active forces constant
Comparison of Joint Moments
Knee Extension in Early Swing for 6 Subjects at 4 Speeds Average Knee Acceleration Extension Phase ext deg/s2 flex All Subjects All Speeds % of total