OpenSim is an extensible platform for visualizing, manipulating, simulating, and analyzing neuromusculoskeletal models to study the interaction between Warrior Web technologies and the neuromuscular system. OpenSim provides a graphical user interface (GUI) and an application programming interface (API) for developers. Read more on our About OpenSim page.
The sections below review the resources we’ve created to enable you to develop models of humans and devices, and to analyze simulations of motion with these devices:
1) Register for an Account on Simtk.org
The Simtk.org site hosts the OpenSim project and many other biomedical computing projects. Creating an account will allow you to download the OpenSim software and models, participate in user forums, create your own projects, and more.
2) Download and Install OpenSim 3.2
Download the OpenSim 3.2 application from the Downloads page of the main OpenSim project. The OpenSim graphical user interface (GUI) is compatible with Windows machines. Refer to the Installing OpenSim page for more information on the install process.
Introduction to OpenSim
1) Complete the Tutorials
As a first step, particularly if you are new to biomechanical modeling and simulation, we recommend that you complete our series of three introductory tutorials. The tutorials are included with your installation of OpenSim and are also available online:
2) Review the OpenSim Overview Guide
Our Guide to OpenSim Workflow and Tools includes an overview of the OpenSim workflow, an introduction to each of the OpenSim tools, and hands-on examples to help you get started. As a next step, we recommend that you work through this guide to gain more in-depth knowledge about how OpenSim works and how to use the software in real-world applications.
3) Bookmark the OpenSim Support Site
We have a comprehensive online support site that lists all of the available OpenSim resources. The main support page also features a search box that lets you search all of these resources and see the results in one place. Bookmark this page and use it as a starting point when you need help.
There are a few resources that will be particularly helpful to Warrior Web teams getting started with OpenSim:
- The OpenSim User's Guide, documenting all tools and other features of the OpenSim GUI.
- A Theory and Publications page that links to documents describing OpenSim and its underlying algorithms.
- A page of Examples and Tutorials demonstrating the use of OpenSim’s feature set.
- A guide to Collecting Experimental Data for simulation.
- Teaching Materials, including slides, handouts, and other materials from past workshops and courses.
- Libraries of Musculoskeletal Models and Simulation Data. There are several musculoskeletal models and data sets included with your OpenSim distribution (in the folder "examples" or "Models"). The libraries on Simtk.org include additional models developed by researchers at Stanford and elsewhere.
- A Developer's Guide for getting started with using the OpenSim API. Using the OpenSim API allows you to extend the functionality of OpenSim by adding new model components like custom controllers.
- Doxygen documentation of the OpenSim API. The OpenSim doxygen documents the underlying classes that make up OpenSim (Bodies, Joints, Analyses, etc.). You can browse the doxygen to see the class hierarchy and learn more about all of the existing classes in the OpenSim API.
- If you want to add a new component to an OpenSim model (e.g., a spring or controller), you can use the Available Objects feature in the GUI to find the component's XML representation. Go to Help → Available Objects in the GUI.
4) Review our device design examples:
- Simulation-Based Design to Prevent Ankle Injuries
- Simulation-Based Design to Reduce Metabolic Cost
- Dynamic Walking Challenge: Go the Distance!
Using OpenSim to Model and Analyze Devices
You can use OpenSim to model your devices and understand how they interact with the musculoskeletal system during movement. This section summarizes the current and planned capabilities of OpenSim and describes examples of the types of questions you can answer with OpenSim.
What can you do with OpenSim?
The current capabilities of OpenSim allow you to:
- Calculate and analyze the dynamics of full-body, three-dimensional human motion, including kinematics (joint angles), kinetics (joint torques), and dynamics (force-driven motion).
- Generate muscle-driven simulations of motion. With a simulation driven by muscle forces, you can determine which muscles are active, when they are active, and how much force they are generating.
- Model your device and its interaction with the human musculoskeletal system. In a simulation framework, you can rapidly iterate to optimize your design and perform proofs of concept.
1) Your team would like to reduce metabolic cost during walking and running using a passive spring element at the hip. As an initial proof of concept, you want to understand how the device would affect the psoas, vasti, and soleus—important muscles for locomotion. Following a proof of concept, you want to find the optimum stiffness for the spring.
- There are several existing, published simulations of walking and running. Select the speeds you're interested in and re-run the nominal simulations. Examine psoas, vasti, and soleus activations, forces, and moments over the course of the gait cycle. (This should match the published results.)
- Model your device and add it to the OpenSim musculoskeletal model. To model the passive spring, you can use a linear bushing element in OpenSim. To see an example of a model with a bushing, refer to the "ToyLandingModels" included with the OpenSim distribution (as of OpenSim 3.0.1).
- Re-generate the simulation for the musculoskeletal model with the device. Use the Computed Muscle Control tool in OpenSim to generate a muscle-driven simulation and compare the new activations and forces to the values from the nominal simulation for each locomotion type/speed. Examine how the device is affecting metabolic cost. To learn more see Simulation-Based Design to Reduce Metabolic Cost.
- Perform a design optimization. You can repeat this process to test different spring stiffnesses depending on running speed, subject anthropometry, and load carriage.
2) You've developed a prototype and it isn't improving metabolic cost as much as you expected, particularly at faster walking speeds or when carrying loads. You want to understand why and determine how to improve the device design. You've collected motion data and EMG for a subject walking with and without the device, at fast and slow speeds (see Collecting Experimental Data). You also know the time history of the forces your device is applying to the subject.
- Import your experimental data into OpenSim. (See Preparing Your Data.)
- Generate simulations using the OpenSim workflow. (See Guide to OpenSim Workflow and Tools.) For trials where the subject is wearing the device, use the external loads tool to apply forces. (See External Loads Specification.)
- Examine muscle activations and forces for big muscle groups (e.g., the gluteals, vasti, and plantarflexors). How do the simulated activations compare to previously reported values in the literature? How are the activations different in simulations with and without the device? This will point you to ways the device may be having an unexpected impact on muscle function.
- Examine how the device is affecting metabolic cost. To learn more see Simulation-Based Design to Reduce Metabolic Cost.
- Examine muscle–tendon dynamics using a Muscle Analysis (see Analyses). This could reveal additional information about how the device affects muscle function and point to ways to modify and improve the device.
- Iterate based on your analysis to improve the device design.
3) You've developed a prototype and you want to predict whether it will mitigate musculoskeletal injuries. Examine how the device affects ankle inversion during a drop landing. To see more, look at teh example Simulation-Based Design to Prevent Ankle Injuries.
4) Past studies from our lab, using OpenSim, have examined muscle function and metabolics during walking and running. Review these papers to find out more about how muscles contribute to movement. To find out more about modeling and simulation research methodology, see the Neuromuscular Biomechanics Lab Publications Page.
Limitations and What's Coming Next
As with any modeling and simulation tool, there are limitations. We are working to address many of these over the coming year.
1) Predicting New Motions
For complex, full-body, three-dimensional motions like walking and running, we are currently tied, for the most part, to generating simulations that track experimentally-measured motions. Understanding and modeling the response of the human motor control system to a perturbation or the addition of a device and altering the body's kinematics are challenging and ongoing areas of investigation.
- We are working on developing new predictive controllers for synthesizing motions without experimental data. As part of our Warrior Web effort, we will incorporate novel neuromuscular controls into OpenSim that generate biomechanically accurate human motion such as reflex response, walking, and running in scenarios perturbed from measured motion or synthesized de novo. Phase 1 implements reflex-driven motion synthesis tools. Phase 2 implements central nervous system (CNS) motion synthesis tools.
- In the meantime, you can alter muscle properties (e.g., strength) or add an assistive device (see the examples above) and generate a simulation that tracks an existing experimentally-measured motion. You can then examine how these alterations affect the distribution of forces among muscles and added devices.
- In some cases, you can also make small changes to a simulation and run a short-time-scale perturbation to determine how the change affects the motion. For one example, see Reinbolt et al., 2009. In this study, the researchers used a simulation to understand whether changing pathological muscle activations would improve gait kinematics.
- We also have a simple reflex controller. Refer to the ToyLandingModels for an example.
2) Metabolics Assessment
As part of our development for the Warrior Web project, we are integrating metabolics assessment into the OpenSim GUI on a whole-body and per-muscle basis. These metrics take into account factors like activation-dependent muscle heat generation, in addition to mechanical work. We will validate our metabolics calculators by comparing our estimates to experimentally-measured metabolic cost for a variety of motions. In addition, comparing muscle activations for a simulation with and without an assistive device will give you more insight about how your device is affecting individual muscles (see the examples section above). If you have EMG or muscle activations for walking, you can also use the linear regression model in this paper to estimate metabolic cost: Silder et al., 2012.
- Learn more about the metabolics calculators in the User's Guide section on Probes and through the example Simulation-Based Design to Prevent Ankle Injuries
3) Injury Risk Assessment
We are also adding injury risk metrics to OpenSim as part of our development for the Warrior Web project.
- You can use OpenSim's Joint Reactions Analysis to estimate the loads on a given joint during a simulated motion. Also see our Example - Estimating Joint Reaction Loads.
- Learn more about using OpenSim to assess ankle injury risk through the example Simulation-Based Design to Prevent Ankle Injuries
4) New Models and Simulated Motions
There are many models and simulations already available, developed in our lab and elsewhere. See the Neuromuscular Model Library and Motion and Simulation Data Library to find existing models and data. We are also expanding and improving the available set of models and simulated motions as part of our work for the Warrior Web project. Some of the models and components we've added so far include:
- Models and simulations for assessing ankle injury risk: Simulation-Based Design to Prevent Ankle Injuries
- Models for predicting metabolic cost: Simulation-Based Design to Reduce Metabolic Cost
- A new simplified lower extremity model for fast prototyping: Gait10dof18musc, included in the OpenSim 3.1 distribution
- New modeling components including:
- A spring that acts along a path (PathSpring)
- A clutched path spring (ClutchedPathSpring)
- An expression based bushing that applies torques as a symbolic function of deflections (ExpressionBasedBushing)
- An expression based point to point force that applies forces as a function of deflection and deflection speed (ExpressionBasedPointToPointForce)
- A planar joint (PlanarJoint)
- A gimbal joint (GimbalJoint)
- Read more about these components in the OpenSim Doxygen. The example Dynamic Walking Challenge: Go the Distance! demonstrates how to use many of these components
- Prototypes of additional models (expanded ankle injury model, a new full-body model, a loaded walking model/simulation) are also available for DARPA Warrior Web teams by contacting Jen Hicks at firstname.lastname@example.org. In the future, these models will be made available to the entire OpenSim community.