I'm running the static optimization toolbox on MoBL upper extremity dynamic model (https://simtk.org/projects/upexdyn). It runs to the end of my IK data, but the output is nonsense. I tried including residual actuators at the thorax to ground and coordinate actuators at each coordinate in the same format as CMC (low optimal force, high control range, etc.), and the muscle activation output is still nonsense. The model relies almost exclusively on the coordinate actuators to complete the task when they are present. The motion I'm attempting to simulate is well within the bounds of the model.
In addition, the model came with a tutorial, walking the user through each of the toolboxes with the preloaded data provided by the authors. However, even when I follow the tutorial and attempt to use their data to complete the static optimization, the output is still nonsense.
Is anybody familiar with the model or recognize this problem and could provide some insight?
Static optimization returning incorrect info
- Tom Augenstein
- Posts: 38
- Joined: Thu May 03, 2018 8:19 am
- Dimitar Stanev
- Posts: 1096
- Joined: Fri Jan 31, 2014 5:14 am
Re: Static optimization returning incorrect info
MoBL is not appropriate for SO, only for CMC because the model contain constraints. If you look at the files provided they use CMC and not SO. Hope this helps.
- Tom Augenstein
- Posts: 38
- Joined: Thu May 03, 2018 8:19 am
Re: Static optimization returning incorrect info
Thanks for the reply, and I noticed that, but static optimization is a part of the CMC loop, so how could it be capable of running CMC without being able to run static optimization on its own?
- Dimitar Stanev
- Posts: 1096
- Joined: Fri Jan 31, 2014 5:14 am
Re: Static optimization returning incorrect info
You can append reserve actuators and SO will probably run. Unfortunately, if you look at the activations for this particular model you may not be very satisfied. You can give it a try and let us know.
- Tom Augenstein
- Posts: 38
- Joined: Thu May 03, 2018 8:19 am
Re: Static optimization returning incorrect info
Yes I did try appending reserve actuators to the SO and you're right, the output was very chaotic, although the tool did run until completion.
But going back to my question: How can CMC run correctly if static optimization does not run correctly for a given model?
But going back to my question: How can CMC run correctly if static optimization does not run correctly for a given model?
- Dimitar Stanev
- Posts: 1096
- Joined: Fri Jan 31, 2014 5:14 am
Re: Static optimization returning incorrect info
While SO is part of CMC, its main purpose is to calculate the muscle activations that satisfy the movement. Note that CMC is a forward dynamic method, thus it can handle models that have coordinates. Moreover, corrections are made by tracking the simulated and desired motion. In essence the two methods are different.
- Daniel Iordanov
- Posts: 6
- Joined: Mon Sep 03, 2018 7:17 am
Re: Static optimization returning incorrect info
Hello Dimitar,
So what will happen if I remove all the CoordinateLimitForces and the ConstraintSet from the model? If the problem is in those elements and I remove them SO should work.
After removing them with Notepad I can open the model, block all the coordinates that are not interesting for me and perform the simulation. For example if I am interested only in a simple arm elevation I would block all the coordinates except shoulder_elv, elv_angle and shoulder_rot, specify actuators for these 3 DOF and specify the external loads application (on the han for example, simulating a tool) and SO should work. I am right? Or maybe I am simplifying to much the existing problem?
Do you think that SO will work for this model in that way?
Thank you very much.
So what will happen if I remove all the CoordinateLimitForces and the ConstraintSet from the model? If the problem is in those elements and I remove them SO should work.
After removing them with Notepad I can open the model, block all the coordinates that are not interesting for me and perform the simulation. For example if I am interested only in a simple arm elevation I would block all the coordinates except shoulder_elv, elv_angle and shoulder_rot, specify actuators for these 3 DOF and specify the external loads application (on the han for example, simulating a tool) and SO should work. I am right? Or maybe I am simplifying to much the existing problem?
Do you think that SO will work for this model in that way?
Thank you very much.