29
OpenSim Description, Status, and Plans Science Advisor Workshop Science Advisor Workshop June 1-2, 2006 June 1-2, 2006 Clay Anderson, Ayman Habib, Pete Loan, and Scott Delp

OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Embed Size (px)

DESCRIPTION

OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006. Clay Anderson , Ayman Habib, Pete Loan, and Scott Delp. What is OpenSim?. Object-Oriented Framework for the Simulation, Control, and Analysis. OpenSim, Gait Workflow. OpenSim API. CVODE, RootSolve, SQP, SA, - PowerPoint PPT Presentation

Citation preview

Page 1: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

OpenSimDescription, Status, and Plans

Science Advisor WorkshopScience Advisor WorkshopJune 1-2, 2006June 1-2, 2006

Clay Anderson, Ayman Habib, Pete Loan, and Scott Delp

Page 2: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

What is OpenSim?

M o d e l i n gPhysics, mathematics, logic

Ap p l i c a t i o n sProblem solving

Co mpu t a t i o nResource management

SimTK.or g

Developers:Clay Anderson (Framework)Ayman Habib (Applications)Peter Loan (Musculographics / SIMM)

OpenSim API

OpenSim, Gait Workflow

CVODE, RootSolve, SQP, SA,LAPACK, Simbody

Saryn Goldberg, May Liu, Ilse Jonker, Jen Hicks, Chand John, … … … …

Object-Oriented Framework for the Simulation, Control, and Analysis

Page 3: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Original Plan (Nuclear Bomb)

Page 4: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Chief Design Goals

• Speed

• Shareable code

• Extensibility

• Different Entry Levels– Algorithms

– Modeling API

– Scripting

– Graphical User Interface

Matlab!

Page 5: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Simbody

RKF 5-6 CVODE …

OpenSim API

Page 6: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

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

Page 7: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

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)

Page 8: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Making Simulation Accessible- OpenSim GUI

3D Visualization using VTK

Command and Scripting Window

Animation Playback

Data, Model,and Simulation

Navigator

Simulation Progress Plotting

Page 9: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

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

Page 10: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Gait Workflow

Step -1

Preprocess Experimental Data

Page 11: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

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

Page 12: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

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

Page 13: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

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

Page 14: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Acknowledgements

Supported by the National Institutes of Health

through the

NIH Roadmap for Medical Research Grant U54 GM072970.

NIH HD45109, HD38962, HD33929

Page 15: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

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, …

Page 16: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

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

Page 17: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Subject-Specific Simulation

78 kg, 1.78 m

19 DOF, 92 Muscles (Delp, 1990)

~1° Tracking Accuracy

~20 min computer time

3 dofhips

1 dofankles

3 dofback

1 dofknees

6 dofpelvis

1.18 m/s

Page 18: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Simulations Generated with CMC

Each generated with less than 10 minutes of CPU time.

Page 19: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

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.

x Solving for the theoretically most-efficient gait cycle.

• CMC is dependent on the quality of the input data.– Kinematics

– Ground reaction forces

Page 20: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Computed Muscle Control

Step 1: Compute Desired Accelerations (PD Control)

)]()([)]()([)()(* expexpexp tqtqktqtqkTtqTtq pv

velocityerrors

positionerrors

x

Page 21: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

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 .

)(min Ttfmus

)(max Ttfmus

)(* Ttfmus

)(* Ttq

)(* Ttfmus

x

x

Page 22: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Computed Muscle Control

Step 3: Integrate from t to t+T

x

Page 23: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Computed Muscle Control

Repeat Steps 1, 2, and 3, until the final time is reached.

Step 3Step 2Step 1

x

Page 24: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006
Page 25: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Different Causes Suggest Different Treatments

Page 26: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Number of 3D, Muscle-Actuated Simulations of Gait

0

25

50

75

100

1990

1991

1992

1993

1994

1995

1996

1997

1998

1999

2000

2001

2002

2003

2004

2005

2006

Yamaguchi & Zajac(9 Muscles)

Anderson & Pandy(54 Muscles)

Liu, Jonkers, Arnold,Thelen, Anderson, Delp(92 Muscles)Number

Hase et al.,Sellers et at.

(~60 Muscles)

Page 27: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Perturbation analysis

2

( , ) ( , )( ) 2 m m i m i

m i mm

x F F t t x F t tx t F

t F

*Hold other active forces constant

0.020sect

1.0F N

Page 28: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

Comparison of Joint Moments

Page 29: OpenSim Description, Status, and Plans Science Advisor Workshop June 1-2, 2006

All Subjects All Speeds

-6000

-4000

-2000

0

FAST SS SLOW XSLOW

-25

0

25

50

75

100

FAST SS SLOW XSLOW

GRAVITYVELOCITYMUSCLES

% o

f to

tal

Average Knee AccelerationExtension Phase

ext

d

eg/s

2

fle

x

Knee Extension in Early Swing for 6 Subjects at 4 Speeds