Feedback for the Brain and Body: A New Freely Available Interface Between MATLAB and OpenSim

Even when we simply stand still on two feet, our brains communicate with our muscles—firing them appropriately to keep us upright against gravity. So when scientists simulate simple or complex biomechanical movements, they need to account for that feedback between brain and body. A new, freely available, software interface now makes that possible. It connects MATLAB/Simulink, a mathematical computing and control software package, with OpenSim, a freely available musculoskeletal software package.
 

“MATLAB is essentially the brain and nervous system, but OpenSim is the person, their bones and muscles, the floor, and gravity pulling them down,” says Jeff Reinbolt, PhD, assistant professor of biomedical engineering at the University of Tennessee. He and Misagh Mansouri, a mechanical engineering graduate student in Reinbolt’s research group, created the interface under a seed grant from Simbios. They published a 2012 paper on the work in the Journal of Biomechanics.
 

OpenSim’s strengths lie in its musculoskeletal models, Reinbolt says, “It has the bone geometry, muscle forces, how the joints move, and all the dynamics provided by the underlying algorithms, including Simbody.” But until now, OpenSim users have had to load a file of controls that tell the model how to excite specified muscles over a certain period of time. To change controls, the user would create a new file. In addition, OpenSim could only function as an open loop, without feedback; users requiring feedback to close the loop would need to write their own software as a plugin to OpenSim. Without feedback, “you can change the model and do ‘what if’ scenarios, but the model has no brain to automatically compensate for it,” Reinbolt says.

 

Meanwhile, MATLAB/Simulink provides great control options in the form of templates and blocks of code that are easily changed on the fly, but it lacks the musculoskeletal modeling capability of OpenSim.
 

Reinbolt and Mansouri’s Simbios seed grant let them bring the two together. “The interface really allows MATLAB to access OpenSim for the muscles and bones it doesn’t have; and allows OpenSim to use MATLAB to control the movement, which OpenSim doesn’t really have built in,” Reinbolt says. “It allows each to get the info needed to create a simulated movement.” And it lets you change things on the fly.

 

To build the interface, Reinbolt and Mansouri took advantage of the way MATLAB calls functions to connect it with OpenSim through a Simulink block. The interface allows MATLAB to call for the OpenSim model’s state derivatives—the time rate of change in joint positions and velocities of the model, as well as lengths and activations of muscles. MATLAB numerically integrates these derivatives to determine new states for the OpenSim model which allows OpenSim to tell MATLAB how gravity, muscles, and other forces are affecting the model, and then MATLAB uses that information to provide feedback:  Are my joint positions at the right place?  How should I adjust the controls to correct the movement?

 

Right now, to use the interface, researchers must join the Simtk.org project. “It's freely available but we want people to use it and give back in return,” Reinbolt says. About 25 people from the US, Canada, UK, Belgium, Poland, Spain, Italy, and Taiwan have already shown interest.

 

Reinbolt’s research group is already using the interface to simulate posture. They’ve added a stretch reflex controller to allow balancing on two feet. Eventually, they would like to create a controller that will reproduce someone walking with stroke gait so they can then test rehabilitation procedures to predict how the patient might walk better. “The point,” Reinbolt says, “is to keep someone from falling over,” which requires the feedback the interface provides.

 

Reinbolt and Mansouri built an interface that lets MATLAB control an OpenSim simulation. As shown here, the reaction forces, initial states, and model (yellow files at the bottom) come from OpenSim while the controls come from MATLAB. Courtesy of Jeff Reinbolt and Misagh Mansouri.

 

DETAILS

The MATLAB/Simulink interface with OpenSim is available to researchers who join the project at http://simtk.org/home/opensim_matlab. The work was published in the Journal of Biomechanics 45:1517-21 (2012).

 



3 Comments

fake rolex

rolex replica replica rolex online Bulova men"s diamond watches are liked by guys all over the world and make excellent presents any time on the 12 months. When purchasing it can be imperative to shop around and take into consideration the numerous alternatives that on the net purchasing provides. replica rolex You may acquire a Bulova men"s diamond observe on the net and pay significantly less than practically all retail jewelry stores rolex replica watches replica rolex watch . Lots of internet sites at the moment are starting to be on the web jewelers www.lakewatches.com fake rolex online; meaning they"re doing all in their sales exclusively on the web replica rolex . For that reason, they may be able to offer shoppers brand new genuine items at key reductions.

nice replica watches at achwatches

Every piece of these the replica watches website .com>replica watches only hundred of dollars, some are even reduced. Suppose you are not a high-end user, purchasing a luxurious is beyond your capability. panerai replica watches Fortunately, replica iwc various kinds of replica watches come to meet the market demand with minimal prices. fine Swiss replica watches If you are looking for the watches with similar appearance using the real ones, replica watches are ideal choices for you.

OpenSim Matlab interface

This is a fantastic new feature for OpenSim and Matlab. It looks like we're finally on the way to having true biomechanics for Matlab. Thanks to Jeff and his team!

Post new comment

The content of this field is kept private and will not be shown publicly.
CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Enter the characters shown in the image.