Hi,
Are passive muscle forces taken into consideration while doing inverse dynamics in OpenSim GUI?
Here is the process I followed when I found a problem:
1. In the Arm26 model and using the given trajectory (of elbow flexion), I did inverse dynamics in OpenSim GUI and calculated the amount of torque required at elbow and shoulder to attain that trajectory.
2. A .mot file was created which contained the torque required at time instances separated by 0.008333.
3. In the Matlab-OpenSim interface using API, I imported the Arm26 model, attached a torque actuator at the elbow joint and gave a series of control signals to it from the torque values stored in the .mot file and integrated everytime for a duration of 0.008333.
So, this is a kind of forward dynamics which I did by assigning the torque at elbow.
What I observed is:
When I add an extra load of at least 1kg near the wrist in the Arm26 model, and then do the whole process, it is able to track the exact input trajectory. But when the load value is zero, result is invalid.
Reason for this is, the passive muscle forces. For higher load values, the torque to be assigned at the elbow joint is higher so that passive muscle forces becomes negligible compared to it. But when there is no extra load, these passive muscle forces creates hindrance in the forward simulation.
So, how can I take these passive muscle forces into consideration, and how to calculate them?
Thanks,
Ratna
Consideration of passive muscle forces in the inverse dynamics
- Ratna Sambhav
- Posts: 42
- Joined: Sat Jan 12, 2019 10:16 am
- Dimitar Stanev
- Posts: 1096
- Joined: Fri Jan 31, 2014 5:14 am
Re: Consideration of passive muscle forces in the inverse dynamics
Hi Ratna,
When inverse dynamics executes, it excludes the muscles from the analysis. This means, that the passive forces are neglected in the calculations.
When inverse dynamics executes, it excludes the muscles from the analysis. This means, that the passive forces are neglected in the calculations.
About your problem, how do you add the 1kg of load?I add an extra load of at least 1kg near the wrist in the Arm26 model
- Ratna Sambhav
- Posts: 42
- Joined: Sat Jan 12, 2019 10:16 am
Re: Consideration of passive muscle forces in the inverse dynamics
Hi Dimitar,
Okay, I'll try to calculate passive muscle force separately. I think using PassiveForceMultiplier * MaxIsometricForce in the API, passive muscle force of each muscle can be calculated.
I added the extra load in the GUI, by defining a body of 1kg and negligible inertia (so that it can act as a point mass) and then using the WeldJoint, attached it at a location with respect to coordinate frame of the forearm body, so that the body appears near the palm of the hand. After that I finalized the connection, loaded the model and run the inverse dynamics with the already defined trajectory. That gave the required elbow torque values.
InverseDynamicsSolver in the API also does the same work, once muscles are removed.
Thanks,
Ratna
Okay, I'll try to calculate passive muscle force separately. I think using PassiveForceMultiplier * MaxIsometricForce in the API, passive muscle force of each muscle can be calculated.
I added the extra load in the GUI, by defining a body of 1kg and negligible inertia (so that it can act as a point mass) and then using the WeldJoint, attached it at a location with respect to coordinate frame of the forearm body, so that the body appears near the palm of the hand. After that I finalized the connection, loaded the model and run the inverse dynamics with the already defined trajectory. That gave the required elbow torque values.
InverseDynamicsSolver in the API also does the same work, once muscles are removed.
Thanks,
Ratna