calculating muscle data via API

Provide easy-to-use, extensible software for modeling, simulating, controlling, and analyzing the neuromusculoskeletal system.
POST REPLY
User avatar
Marc Carmichael
Posts: 45
Joined: Thu Jul 16, 2009 2:50 am

calculating muscle data via API

Post by Marc Carmichael » Tue Sep 07, 2010 2:27 am

Hey everyone, I have some questions about using the API to calculate muscle state. I am putting the model into a state, and then calculating muscle parameters such as length, passive force, max active force, etc.

I was just hoping to confirm the steps I am taking, since I am a little unsure about the terms and the procedure in calculating these quantities. Here are the steps I take:

1) put model into pose (setValue and SetSpeedValue for all coordinates)
2) I cycle through each muscle, doing the following:
2.1) I set max activation level using setActivation(state,1)
2.2) I find muscle state using computeEquilibrium(state)
2.3) I get muscle length using getLength(state)
2.4) I get passive muscle force using getPassiveFibreForceAlongTendon(state)
2.5) I get active muscle force using getActiveFibreForceAlongTendon(state)
2.6) I get pennation angle using getPennationAngle(state)
2.7) I get ... what ever else I am interested in, then cycle to the next muscle.


I have just a few questions about what I am doing. Firstly, is it correct? :)

What is the difference between getActiveFibreForce() and getActiveFibreForceAlongTendon()? is it that along tendon takes pennation angle into account?

What is the difference between computeEquilibrium(state) and equilibriate(state)? The results I get are quite different.

If I am only interested in static poses, should I use computeIsometricForce() instead of getActiveFibreForceAlongTendon()? I compared the two, and I get different results. When I multiply the computeIsometricForce results by cos(pennation angle) I get closer results, but still not identical.

Does FibreLengthAlongTendon = FibreLength+TendonLength (in equilibrium)? If I want to find the musculo-tendon path length, should I use FibreLengthAlongTendon() or just getLength()?


Sorry for all the questions at once. I really appreciate the help.

Cheers, Marc

POST REPLY