Kin/pot energy & joint reactions from MocoTrajectory in Matlab

OpenSim Moco is a software toolkit to solve optimal control problems with musculoskeletal models defined in OpenSim using the direct collocation method.
User avatar
Nicholas Bianco
Posts: 1082
Joined: Thu Oct 04, 2012 8:09 pm

Re: Kin/pot energy & joint reactions from MocoTrajectory in Matlab

Post by Nicholas Bianco » Wed Jul 27, 2022 1:15 pm

Hi Molly,

It looks like you're using a model with muscles (probably Millard2012EquilibriumMuscles) with tendon compliance enabled, hence they have "/fiber_length" state variables. You probably replaced these muscles with DeGrooteFregly2016Muscles and disable tendon compliance.

When using the "analyze()" utilities, you should provide the exact model you used in your simulation to compute the outputs. If the model doesn't match, you'll get errors like the one you received.

Give that a try and let me know if you have any other questions.

-Nick

User avatar
Molly Shepherd
Posts: 17
Joined: Thu Nov 14, 2019 9:36 am

Re: Kin/pot energy & joint reactions from MocoTrajectory in Matlab

Post by Molly Shepherd » Thu Jul 28, 2022 11:48 am

Thanks Nick!

For some reason even with my original model (which is a variation on the LaiArnold2017 model) that had all of the fiber lengths defined, mocoInverse would still throw an error "java.lang.RuntimeException: No info available for state '/forceset/addlong_r/fiber_length'" if I did not IgnoreTendonCompliance. I ended up using the DeGrooteFregly2016Muscles in my model and specifying the same changes to the modelProcessor that I had used when running mocoInverse when loading the model to be used in the JR code. That allowed the JR code to run without error.

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

Re: Kin/pot energy & joint reactions from MocoTrajectory in Matlab

Post by Nicholas Bianco » Thu Jul 28, 2022 12:06 pm

Hi Molly,

The error message "No info available for state..." means that setStateInfo() for the that state in the MocoProblem was not provided. DeGrooteFregly2016Muscle, we have a way to provide default state info for muscle dynamics states, but this isn't implement for other muscles (e.g., Millard2012EquilibriumMuscle). That's probably why you are seeing the error.

Glad everything is working with the DGF muscle!

-Nick

POST REPLY