Zero Fiber Length Error in Millard2012 Muscle when running CMC with MoBL-Arms Upper Extremity Model

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Kaleb Burch
Posts: 3
Joined: Mon Aug 12, 2019 8:02 am

Zero Fiber Length Error in Millard2012 Muscle when running CMC with MoBL-Arms Upper Extremity Model

Post by Kaleb Burch » Wed Apr 19, 2023 2:53 pm

Hello,

I have been troubleshooting with an error that I keep getting when I run CMC using the MoBL-ARMS Upper Limb model (Saul et al., 2015). The error reads:

Code: Select all

Exception:
  Exception caught in Millard2012EquilibriumMuscle::calcMuscleDynamicsInfo
  from DELT1
  Exception caught in Millard2012EquilibriumMuscle::calcFiberVelocityInfo
  from DELT1
  SimTK Exception thrown at MuscleFixedWidthPennationModel.cpp:169:
  Error detected by Simbody method
  MuscleFixedWidthPennationModel::calcPennationAngularVelocity: Fiber length
  cannot be zero.
  (Required condition 'fiberLength > 0' was not met.)
The motion of interest is a high reach, and I have successfully used CMC with this motion from other subjects. Furthermore, I have successfully ran CMC for other motions with the scaled model for this subject. For some reason this particular trial is not working, and I have been exploring different solutions to address this problem. I have attached the scaled .osim file and the .mot file for reference.

I have looked at other related forum posts (viewtopicPhpbb.php?f=91&t=13307&p=38202&start=0&view=) and attempted the following solutions:
  1. Making the tendon of DELT1 rigid
  2. Reducing the tendon slack length of DELT1
  3. Reducing stiffness properties of BIClong, TRIlong, and DELT1. I attemped this since I noticed some larger passive forces, especially in BIClong
  4. Applying new scaling settings for this subject and then running inverse kinematics and CMC with the new scaled model
  5. Adjusting numerical derivative step size in CMC settings
What other steps can I take to address this problem?

Thank you in advance for any suggestions!

Kaleb
Attachments
S4_Reach_Representative.mot
Motion file
(74.04 KiB) Downloaded 17 times
S4_SS_1DOFTorso.osim
Scaled model
(551.84 KiB) Downloaded 17 times

Tags:

User avatar
Carmichael Ong
Posts: 393
Joined: Fri Feb 24, 2012 11:50 am

Re: Zero Fiber Length Error in Millard2012 Muscle when running CMC with MoBL-Arms Upper Extremity Model

Post by Carmichael Ong » Mon Apr 24, 2023 1:37 pm

These issues can be tricky to isolate, but it looks like you've got a good list to start with. At the core, a muscle tendon may not get shorter than its tendon length (i.e., muscle length is zero), so if the total muscle-tendon unit gets too short then the muscle may become too short.

Considering this, here are some thoughts on a few of the steps you laid out:
Making the tendon of DELT1 rigid
This could help since the tendon can generate as much force as it can without changing length (and thus the muscle can shorten more), but you have to check if this assumption is OK for your research question.
Reducing the tendon slack length of DELT1
Similar to above, this can help since it gives the muscle more room to shorten.
Reducing stiffness properties of BIClong, TRIlong, and DELT1. I attemped this since I noticed some larger passive forces, especially in BIClong
I'm not sure if this might help or not. This could help if you loosen antagonist muscles, as then the agonist muscle of interest doesn't have to stretch the tendon as much to compensate for the extra force. If the agonist muscle of interest needs that passive force, though, that could cause more issues.

One other thing to consider: Muscles can sometimes interact with wrapping surfaces in odd ways. After scaling a model, make sure that the muscle paths are reasonable (since scaling muscle wrapping surfaces is a difficult problem). Two things to consider:
1. You could take the scaled model and move it through different expected coordinate configurations and see if the muscle path "jumps" around a bit. These discontinuities can lead to very sudden changes in muscle-tendon length.
2. With an IK solution, you could use the Analyze tool and MuscleAnalysis to see if muscle-tendon units of interest are shortening too much, which could give you a hint about where to look for issues in the muscle path.

User avatar
Kaleb Burch
Posts: 3
Joined: Mon Aug 12, 2019 8:02 am

Re: Zero Fiber Length Error in Millard2012 Muscle when running CMC with MoBL-Arms Upper Extremity Model

Post by Kaleb Burch » Tue Apr 25, 2023 10:31 am

Hello Carmichael,

Thank you for your reply! After seeing your response, I have looked deeper into the wrapping surfaces. The
simulation was running into wrapping surface issues with the BIClong but not the DELT1. I'm not convinced that the issue was actually directly related to DELT1 since DELT1 never actually approached zero fiber length according to the Muscle Analysis tool.

To be more specific, one of BIClong's wrapping surfaces was a half-ellipsoid located near the humeral head. At a few time instants, BIClong wrapped around this surface entirely before extending to its distal attachment site. I fixed this issue by converting the half-ellipsoid to a full ellipsoid and then scaling it up by 20%. This both eliminated the wrapping surface issue and allowed the simulation to run to completion without errors.

Thanks for encouraging me to look into the wrapping surfaces!

Best,
Kaleb

User avatar
Kaleb Burch
Posts: 3
Joined: Mon Aug 12, 2019 8:02 am

Re: Zero Fiber Length Error in Millard2012 Muscle when running CMC with MoBL-Arms Upper Extremity Model

Post by Kaleb Burch » Tue Apr 25, 2023 11:36 am

Just as a follow-up note, I was also able to fix the wrapping issue by scaling the surface by 20% without making it a full ellipsoid. The results were not different from one condition to the other, but the moments computed by the Muscle Analysis tool were much smaller than normal when a full ellipsoid was used, so I will be keeping the half-ellipsoid surface.

User avatar
Carmichael Ong
Posts: 393
Joined: Fri Feb 24, 2012 11:50 am

Re: Zero Fiber Length Error in Millard2012 Muscle when running CMC with MoBL-Arms Upper Extremity Model

Post by Carmichael Ong » Tue Apr 25, 2023 4:56 pm

Glad you were able to find a solution for your problem.

Just one more thought in case other subjects or trials cause different issues. Sometimes after scaling, a muscle via point may end up inside of a wrapping surface. This can lead to an issue where the muscle won't interact with the wrapping surface correctly (e.g., it may ignore wrapping completely). If in that case you want to preserve the original wrapping surface, you could also move the via point (instead of adjusting the wrapping surface) and manually pull it out of the surface so that it wraps properly. This hopefully would also preserve moment arms better, but of course checking that is a good validation step whether you change the wrapping surface or muscle via points (or both).

POST REPLY