Hi, I was interested in running Static Optimization, but from the beginning I noticed that it takes too long time , so I understand that the muscles of my model are weak(the message show me that "The model appears too weak for static optimization") so, I was wandering, what I have to do now, I have to increase muscle force by the editor? (And in that case, by using what criteria?) or should I “append Coordinate Actuators to the model at the joints in the model”, and in that case, how can I do that?… there is a particular section where I have to go to work about this (and about residual actuators?)
I went to "Actuators and external loads" tab in the Static optimisation Tool, but I don't know if it is the right place, neither what exactly put inside, since I have just my data that I got from my laboratory, and the output of IK and ID.
(I can add that I'm using the gait2354 Opensim model with my data, in a walk trial)
________
Hi, I found a file that I tried to use "gait2354_RRA_Actuators.xml" in the Static Optimization tool after checking Append data force's, it seems to suit my data, but I'm not sure if it is the correct file, since I had to use it without changing because I don’t know exactly how to change it... anyway in this way the SO finished and gave me results! However the messages show me some Violation Constraint, and I don’t know if they are small enough so that I can ignore them, or if that is not correct and I have to change something…
(The bigger error is e-008)
time = 0.79 Performance =4710.77 Constraint violation = 1.02528e-008
time = 0.795 Performance =1642.82 Constraint violation = 4.19798e-009
time = 0.8 Performance =1192.27 Constraint violation = 3.79363e-009
time = 0.805 Performance =1192.43 Constraint violation = 8.58634e-011
Thank you very much in advace if someone can help me
Caterina
Static Optimization & RRA_Actuators file
- Caterina Passini
- Posts: 23
- Joined: Fri Feb 24, 2012 11:48 am
- Pierre Lamouri
- Posts: 13
- Joined: Tue Oct 16, 2012 4:09 am
Re: Static Optimization & RRA_Actuators file
Hi Caterina and everybody,
I think I have exactly the same problem. Did you manage to find a solution? I am using the Vasavada’s neck model, and I am trying to perform Static Optimization (SO). Nevertheless, in most cases, the optimization does not succeed because the muscles are weak, and that’s why my SO takes always a very long time to converge (or sometimes never converge at all). Moreover, SO failed on each frame. This is an extract of the error message I showed:
-----------------------------------------------------------------------------------------------------------------------------------------------
time = 3 Performance =7.92019 Constraint violation = 7.3747
SimTK Exception thrown at InteriorPointOptimizer.cpp:261:
Optimizer failed: Ipopt: Infeasible problem detected (status 2)
OPTIMIZATION FAILED...
StaticOptimization.record: WARN- The optimizer could not find a solution at time = 3.1
The model appears too weak for static optimization.
Try increasing the strength and/or range of the following force(s):
long_cap_sklc4 approaching upper bound of 1
long_cap_sklc4_l approaching upper bound of 1
-----------------------------------------------------------------------------------------------------------------------------------------------
When I checked the Opensim Userguide on “Getting Started with Static Optimization”, I found this paragraph; I believe my problem matches with this description (because my ID results did not show large torques)
" 1. If the residual actuators are weak, increase the maximum control value of a residual, while lowering its maximum force. This allows the optimizer to generate a large force (if necessary) to match accelerations, but large control values are penalized more heavily. In static optimization, ideal actuator excitations are treated as activations in the cost function.
2. If the muscles are weak, append Coordinate Actuators to the model at the joints in the model. This will allow you to see how much "reserve" actuation is required at a given joint and then strengthen the muscles in your model accordingly.
3. If troubleshooting a weak model and optimization is slow each time, try reducing the parameter that defines the maximum number of iterations. "
In the light of this description, I believe I am involved by the points 1 and 2, even if I am not sure. I didn’t know how to formulate my question, and then I thought it may be better to number them:
1) Do the muscle are actuators? Because on the Opensim’s GUI, the navigator’s tree cannot extend “actuator”, but when I run a simulation (SO or FD for example) I can read on the message box: “ACTUATORS (78) actuator[0] = stern_mast actuator[1] = cleid_mast actuator[2] = cleid_occ etc.”
2) Does anybody know how can I append “Coordinate Actuator” on my model? Must I add this on my osim model or in my xml settings? I am sorry but I do not figure out this point.
3) I have two different motions for the same movement (neck’s extension-flexion): the first one has been obtained by several frames with fixed value of coordinates. I got the other one with the traditional method with markers and IK. With these two motions, I get two ID results clearly different. The first one gives me constant torques (I had always a warning on the messagebox : WARNING- Did not find column <name of the joint> in storage object.) whereas the second seems OK (I attached the results on this post). Does it means that my first motion must not be used on SO?
4) As I failed to perform a SO on Opensim with the Neck Model, I tried to do exactly the same thing with the Gait2354_Simbody tutorial’s model. But once more, it didn’t work. The only thing I did was to input the motion “subject01_walk1_ik”, exactly how I do with my neck model (with the motion appropriate of course) May I have miss a step in both cases?
I am sorry if my problem has been shown several times but I did not manage to fix it myself. Thank for people who could give me some advices!!
Happy holidays,
Pierre
I think I have exactly the same problem. Did you manage to find a solution? I am using the Vasavada’s neck model, and I am trying to perform Static Optimization (SO). Nevertheless, in most cases, the optimization does not succeed because the muscles are weak, and that’s why my SO takes always a very long time to converge (or sometimes never converge at all). Moreover, SO failed on each frame. This is an extract of the error message I showed:
-----------------------------------------------------------------------------------------------------------------------------------------------
time = 3 Performance =7.92019 Constraint violation = 7.3747
SimTK Exception thrown at InteriorPointOptimizer.cpp:261:
Optimizer failed: Ipopt: Infeasible problem detected (status 2)
OPTIMIZATION FAILED...
StaticOptimization.record: WARN- The optimizer could not find a solution at time = 3.1
The model appears too weak for static optimization.
Try increasing the strength and/or range of the following force(s):
long_cap_sklc4 approaching upper bound of 1
long_cap_sklc4_l approaching upper bound of 1
-----------------------------------------------------------------------------------------------------------------------------------------------
When I checked the Opensim Userguide on “Getting Started with Static Optimization”, I found this paragraph; I believe my problem matches with this description (because my ID results did not show large torques)
" 1. If the residual actuators are weak, increase the maximum control value of a residual, while lowering its maximum force. This allows the optimizer to generate a large force (if necessary) to match accelerations, but large control values are penalized more heavily. In static optimization, ideal actuator excitations are treated as activations in the cost function.
2. If the muscles are weak, append Coordinate Actuators to the model at the joints in the model. This will allow you to see how much "reserve" actuation is required at a given joint and then strengthen the muscles in your model accordingly.
3. If troubleshooting a weak model and optimization is slow each time, try reducing the parameter that defines the maximum number of iterations. "
In the light of this description, I believe I am involved by the points 1 and 2, even if I am not sure. I didn’t know how to formulate my question, and then I thought it may be better to number them:
1) Do the muscle are actuators? Because on the Opensim’s GUI, the navigator’s tree cannot extend “actuator”, but when I run a simulation (SO or FD for example) I can read on the message box: “ACTUATORS (78) actuator[0] = stern_mast actuator[1] = cleid_mast actuator[2] = cleid_occ etc.”
2) Does anybody know how can I append “Coordinate Actuator” on my model? Must I add this on my osim model or in my xml settings? I am sorry but I do not figure out this point.
3) I have two different motions for the same movement (neck’s extension-flexion): the first one has been obtained by several frames with fixed value of coordinates. I got the other one with the traditional method with markers and IK. With these two motions, I get two ID results clearly different. The first one gives me constant torques (I had always a warning on the messagebox : WARNING- Did not find column <name of the joint> in storage object.) whereas the second seems OK (I attached the results on this post). Does it means that my first motion must not be used on SO?
4) As I failed to perform a SO on Opensim with the Neck Model, I tried to do exactly the same thing with the Gait2354_Simbody tutorial’s model. But once more, it didn’t work. The only thing I did was to input the motion “subject01_walk1_ik”, exactly how I do with my neck model (with the motion appropriate of course) May I have miss a step in both cases?
I am sorry if my problem has been shown several times but I did not manage to fix it myself. Thank for people who could give me some advices!!
Happy holidays,
Pierre
- Attachments
-
- Neck model ID results.xlsx
- (38.08 KiB) Downloaded 52 times