All,
I have an issue with trying perform a static optimization on a motion. I have collected motion capture and force data during a squat exercise, and have used the gait2354 model sucessfully with scaling, inverse kinematics, and inverse dynamics. I am now interested in obtaining muscle forces. I have tried to run a static optimization, but OpenSim appears to hang.
I performed the procedure successfully with the gait2354 data, so I am unsure why my data is not working given succesful IK and ID runs.
Here is the initial message that I receive:
Loaded model subject5555_scale_normal from file \\Bac-ifs-01\HACO\Exercise Countermeasures Program\Engineering\Biomechanics\ARED Ground Evaluation\data\OpenSim Files\Final scaled models\ARED_Ground_S5555_scaled_IH.osim
Updating Model file to latest format...
Loaded model subject1111_scale from file D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\ARED_Ground_S1111_scaled_IH.osim
Loading coordinates from file D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\S1111_NS_ik.sto.
Storage: file=D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\S1111_NS_ik.sto (nr=1047 nc=156)
Low-pass filtering coordinates data with a cutoff frequency of 6...
Found 2093 state vectors with time stamps ranging from -2.092 to 6.276.
Loading external loads kinematics from file D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\S1111_NS_ik.sto ...
Storage: file=D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\S1111_NS_ik.sto (nr=1047 nc=156)
Low-pass filtering external load kinematics with a cutoff frequency of 6...
Storage: file=D:\Documents and Settings\jdewitt\Desktop\S111 Forward Dynamics\S1111NS.mot (nr=1047 nc=19)
Executing the analyses from 2.5 to 4.1...
SimTK Exception thrown at InteriorPointOptimizer.cpp:262:
Optimizer failed: Ipopt: Infeasible problem detected (status 2)
OPTIMIZATION FAILED...
StaticOptimization.record: WARN- The optimizer could not find a solution at time = 2.5
The model appears too weak for static optimization.
Try increasing the strength and/or range of the following force(s):
sar_r approaching upper bound of 1
pect_r approaching upper bound of 1
glut_max3_r approaching upper bound of 1
quad_fem_r approaching upper bound of 1
gem_r approaching upper bound of 1
rect_fem_r approaching upper bound of 1
bifemlh_l approaching upper bound of 1
sar_l approaching upper bound of 1
pect_l approaching upper bound of 1
glut_max3_l approaching upper bound of 1
quad_fem_l approaching upper bound of 1
gem_l approaching upper bound of 1
rect_fem_l approaching upper bound of 1
ercspn_l approaching upper bound of 1
time = 2.5 Performance =15.8874 Constraint violation = 216.094
Static Optimization Problem
RE: Static Optimization Problem
During ID the model can generate potentially huge torques at the joints, whereas during static optimization the model is limited by the capacity of muscle actuators, unless you add ideal actuators. The message above indicates the model is not strong enough since the muscles are reaching maximum activation and are still unable to match the acceleration. You can append CoordinateActuators to the model to see how much "reserve" actuation is required and then strengthen your model accordingly.
- Sylvia Wan
- Posts: 18
- Joined: Thu Oct 07, 2010 6:43 am
RE: Static Optimization Problem
Hi,
I got very high outcome from ID as well. Did you have any luck strengthening the model. How do you determine how much reserve actuation is required?
Also, should static optimisation be run straight after ID or after RRA since RRA would give a more reliable model file?
Cheers.
Sylvia
I got very high outcome from ID as well. Did you have any luck strengthening the model. How do you determine how much reserve actuation is required?
Also, should static optimisation be run straight after ID or after RRA since RRA would give a more reliable model file?
Cheers.
Sylvia
- Ayman Habib
- Posts: 2248
- Joined: Fri Apr 01, 2005 12:24 pm
RE: Static Optimization Problem
Hi Sylvia,
I'd use ID as a diagnostic tool to help zoom in on potential problems (e.g. GRF not applied correctly would lead to huge ID solution). If ID outcome (or RRA which is basically a variation of ID applied over a whole trajectory) shows a degree of freedom with large torque and you don't have muscles actuating this degree of freedom or can't provide enough torque then you'll have to provide reserves to compensate for the difference between the ID solution and what the model can generate.
Hope this helps,
-Ayman
I'd use ID as a diagnostic tool to help zoom in on potential problems (e.g. GRF not applied correctly would lead to huge ID solution). If ID outcome (or RRA which is basically a variation of ID applied over a whole trajectory) shows a degree of freedom with large torque and you don't have muscles actuating this degree of freedom or can't provide enough torque then you'll have to provide reserves to compensate for the difference between the ID solution and what the model can generate.
Hope this helps,
-Ayman
- Hossein Mokhtarzadeh
- Posts: 37
- Joined: Sun Dec 13, 2009 9:44 pm
RE: Static Optimization Problem
HI Ayman,
How big this reserve can be? I figure out that in high impact loads(such as jumping
and landing) I need very big reserves in which this reserve not muscles actually providing the
torque from RRA(I am talking about CMC).
CMC can not be solved if I provide small reserve forces and high MIF(max isometric
force), I have also changed tendon slack length to let normalized fiber length of
muscles be around 1. ACtually, the problem with large reserves can be solved which
is not correct I suppose.
When I try SO(static opt) using higher MIF, changed slack length , it cannot be
solved. Constraint violation is big.
My understanding to solve SO and CMC is as follows: please correct me if I am
wrong.
- if torques from RRA ,ID are correct so we need to look at reserve(reserve
actuator should be small but big reserve excitation ) that are needed to strengthen
that joint. In order to do that we would increase MIF(I don't know how much)
- if this is not solving the problem, muscles may not work on their effective
length, So we would change tendon slack length to provide normalized fiber length
around 1(for instance, one plus minus 0.5 or 0.25) during the motion.
- I don't know if changing the cost function would be helpful.(e.g. in SO changing power 2 to 3 or so)
In general, it seems we can change MIF, tendon slack length, adding reserves to be
able to solve CMC and SO.
I wonder if there are any other issues to be considered in order to know why SO or CMC can not solve the problem.
Regards
How big this reserve can be? I figure out that in high impact loads(such as jumping
and landing) I need very big reserves in which this reserve not muscles actually providing the
torque from RRA(I am talking about CMC).
CMC can not be solved if I provide small reserve forces and high MIF(max isometric
force), I have also changed tendon slack length to let normalized fiber length of
muscles be around 1. ACtually, the problem with large reserves can be solved which
is not correct I suppose.
When I try SO(static opt) using higher MIF, changed slack length , it cannot be
solved. Constraint violation is big.
My understanding to solve SO and CMC is as follows: please correct me if I am
wrong.
- if torques from RRA ,ID are correct so we need to look at reserve(reserve
actuator should be small but big reserve excitation ) that are needed to strengthen
that joint. In order to do that we would increase MIF(I don't know how much)
- if this is not solving the problem, muscles may not work on their effective
length, So we would change tendon slack length to provide normalized fiber length
around 1(for instance, one plus minus 0.5 or 0.25) during the motion.
- I don't know if changing the cost function would be helpful.(e.g. in SO changing power 2 to 3 or so)
In general, it seems we can change MIF, tendon slack length, adding reserves to be
able to solve CMC and SO.
I wonder if there are any other issues to be considered in order to know why SO or CMC can not solve the problem.
Regards