Using metabolics probe with DeGrooteFregly2016Muscle

OpenSim Moco is a software toolkit to solve optimal control problems with musculoskeletal models defined in OpenSim using the direct collocation method.
User avatar
Ross Miller
Posts: 371
Joined: Tue Sep 22, 2009 2:02 pm

Re: Using metabolics probe with DeGrooteFregly2016Muscle

Post by Ross Miller » Sun Sep 06, 2020 4:29 am

Hi Kathick,

I've never calculated metabolic cost for that model, but you are probably not doing anything wrong. Tracking simulations that don't try to minimize metabolic cost itself often will have high costs.

Ross

User avatar
Karthick Ganesan
Posts: 118
Joined: Thu Oct 10, 2013 12:11 am

Re: Using metabolics probe with DeGrooteFregly2016Muscle

Post by Karthick Ganesan » Mon Sep 07, 2020 11:57 am

Thank you Ross Miller.
Could you please suggest me some literature for this, if possible. I may need to justify this in my writing.
I managed to get a reasonable cost by increasing the weight on the effort term at the price of tracking. I got some oscillations in the HGRF. I am wondering how to fix this.

Karthick.

User avatar
Ross Miller
Posts: 371
Joined: Tue Sep 22, 2009 2:02 pm

Re: Using metabolics probe with DeGrooteFregly2016Muscle

Post by Ross Miller » Tue Sep 08, 2020 5:19 am

Moco currently cannot minimize metabolic cost within the available MocoGoals (I think Chris said recently that is coming in the next release?) so you'd have to approximate it with something. Minimizing muscle activations should get closer than minimizing muscle controls, and minimizing both muscle activations and fiber velocities or fiber power should get pretty close.

For literature you could look at any of the various muscle energy models, which are all functions of (mostly) activation and fiber velocity.

Ross

User avatar
Nicholas Bianco
Posts: 963
Joined: Thu Oct 04, 2012 8:09 pm

Re: Using metabolics probe with DeGrooteFregly2016Muscle

Post by Nicholas Bianco » Tue Sep 08, 2020 8:55 am

Ross, that's correct, a metabolic cost MocoGoal will be in the next Moco release. Karthick, in the meantime, you can use MocoOutputGoal to minimize any Output quantities on DeGrooteFregly2016Muscle, including fiber velocity, fiber power, etc.

User avatar
Ross Miller
Posts: 371
Joined: Tue Sep 22, 2009 2:02 pm

Re: Using metabolics probe with DeGrooteFregly2016Muscle

Post by Ross Miller » Tue Sep 08, 2020 12:05 pm

Hi Karthick,

I'm interested in what value you had to change the control effort weight to to get a normal metabolic cost, and what muscle energy model did you use?

Ross

User avatar
Karthick Ganesan
Posts: 118
Joined: Thu Oct 10, 2013 12:11 am

Re: Using metabolics probe with DeGrooteFregly2016Muscle

Post by Karthick Ganesan » Wed Sep 09, 2020 7:46 am

Thanks Ross and Nick for your suggestions.
Ross,
I normalized the weights by the number of terms. I used 1/22 for states and contact tracking terms and 13/28 for control effort term. However tracking was not so good, especially oscillations in HGRF. I used Umberger's model (Umberger2010MetabolicsProbe).
Nick,
If I use output goal, should I add one output goal for each muscle? I tried output goal some time back . I think it was not accepting the '.*' to specify all muscles. Fiber power can be both positive and negative. Since we can not modify an output , integrating it, likely will give wrong results .
I had asked another question regarding using analysis tool for metabolics. Probably it is not noticed because now it is in the previous page. So I am asking it again.
What is the difference between adding a prescribed controller to a model and just including the controls .sto file under controller set in the analysis setup file? Both seems to give the same result. When using the prescribed controller ( i.e, PrescribedController('controls.sto'), should one still include the controls file in the analysis setup also? If done so gives different result. Please let me know.

Thanks,
Karthick.

User avatar
Ross Miller
Posts: 371
Joined: Tue Sep 22, 2009 2:02 pm

Re: Using metabolics probe with DeGrooteFregly2016Muscle

Post by Ross Miller » Wed Sep 09, 2020 9:48 am

Thanks Karthick

For a tracking simulation of walking at 1.45 m/s with my 3-D model (similar to the one posted in the UMocoD project on SimTK but some small revisions; I keep meaning to post an update), I calculated metabolic cost using the Minetti & Alexander (1997) muscle energy model and an assumed basal metabolic rate of 1.0 W/kg, and got 5.83 J/m/kg. A little high, but not super-high. This was for a simulation with fairly good tracking (result is attached). With looser tracking and/or the metabolic cost itself in the cost function I think it would be close to the expected 3-4 J/m/kg. It may also help to weight the controls by muscle masses. In my cost function all controls had the same weight.

I like the Minetti & Alexander model because it's simple and smooth and seems to produce reasonable results compared to more complex models. Anne Koelewijn also recently published a smoothed-out version of Brian Umberger's model:

https://www.tandfonline.com/doi/abs/10. ... 18.1490954

Ross
Screen Shot 2020-09-09 at 12.53.54 PM.png
Screen Shot 2020-09-09 at 12.53.54 PM.png (436.51 KiB) Viewed 771 times

User avatar
Karthick Ganesan
Posts: 118
Joined: Thu Oct 10, 2013 12:11 am

Re: Using metabolics probe with DeGrooteFregly2016Muscle

Post by Karthick Ganesan » Wed Sep 09, 2020 10:15 am

Thank you Ross Miller for sharing your results and experience.

Karthick.

User avatar
Nicholas Bianco
Posts: 963
Joined: Thu Oct 04, 2012 8:09 pm

Re: Using metabolics probe with DeGrooteFregly2016Muscle

Post by Nicholas Bianco » Wed Sep 09, 2020 12:34 pm

Karthick,
If I use output goal, should I add one output goal for each muscle? I tried output goal some time back . I think it was not accepting the '.*' to specify all muscles. Fiber power can be both positive and negative.
Yes, you need one MocoOutputGoal for each output you want to minimize. Currently, you cannot multiple minimize outputs with one goal.
Since we can not modify an output , integrating it, likely will give wrong results .
I'm not sure what you mean. The output in MocoOutputGoal is included in the integrated cost function.
What is the difference between adding a prescribed controller to a model and just including the controls .sto file under controller set in the analysis setup file? Both seems to give the same result. When using the prescribed controller ( i.e, PrescribedController('controls.sto'), should one still include the controls file in the analysis setup also? If done so gives different result. Please let me know.
You're referring to a typical OpenSim analysis? I think you just need to make sure the PrescribedController can find the controls file, which might mean including it in the setup file.

User avatar
Ross Miller
Posts: 371
Joined: Tue Sep 22, 2009 2:02 pm

Re: Using metabolics probe with DeGrooteFregly2016Muscle

Post by Ross Miller » Thu Sep 10, 2020 11:30 am

Another question on analyze(): is there a way to output or compute the active force-length multipliers (f_act in the DGF muscle model)? E.g. I have 84 muscles and 101 timesteps and want a 101x84 matrix of f_act values.

Ross

POST REPLY