CMC-tool failing/crashing with more complicated model.
Posted: Tue Dec 21, 2021 8:46 am
Hello List,
I created a model of a "rower" in a "rowing boat".
After using the CMC-tool with a simpler example (3 joints) I now am trying to get it to work with this more complicated example (26 joints/33 actuators), but the tool is failing/hanging/crashing in the first step with the following (opensim 4.3):
The code can be found in https://github.com/SietseAchterop/Rowing-simulator in subdirectory BootBaan.
The model is created from bootbaan.py.
And note that this is pure simulation where the trajectory is calculated in the script trajectory.py.
To avoid the problem above I made the prescribed movement very slow, to avoid large accelerations. I learned that from the simpler model (Pusher) that does work.
The above can easily be replicated using BootBaan.osim, and trajectory.trc from the repo.
The IK-tool works, there is a webm-video in the repo that shows that.
It fails, in the CMC-tool, in the first timestep at t = 0.02. It takes a fairly long time to crash, say 20 seconds.
Does the ipopt error status 2 means CPUTIME_EXCEEDED? (from ipopt enum)
1. All model degrees-of-freedom (33) have actuators. There are no muscles used, only CoordinateActuators.
2. There is no locking. I do use clamping to avoid unwanted solutions.
3. There are only 3 WeldContraints to make the model complete.
So I don't know what I am doing wrong here.
Or is this model too complicated for opensim?
There is one thing in the CMC_Tasks.xml file. I had to set the name-value as in:
to the coordinate, and not the jointname as I first thought.
I get errors when I use the relevant joint.
I am at a loss here, what could be problem?
Help would be very much appreciated!
Sietse
I created a model of a "rower" in a "rowing boat".
After using the CMC-tool with a simpler example (3 joints) I now am trying to get it to work with this more complicated example (26 joints/33 actuators), but the tool is failing/hanging/crashing in the first step with the following (opensim 4.3):
Code: Select all
info] CMC::computeControls, t = 0.02
[error] SimTK Exception thrown at InteriorPointOptimizer.cpp:264:
Optimizer failed: Ipopt: Infeasible problem detected (status 2)
[error] OPTIMIZATION FAILED...
[error] CMC::computeControls: Optimizer could not find a solution.
Unable to find a feasible solution at time = 0.02.
Model cannot generate the forces necessary to achieve the target acceleration.
Possible issues: 1. not all model degrees-of-freedom are actuated,
2. there are tracking tasks for locked coordinates, and/or
3. there are unnecessary control constraints on reserve/residual actuators.
The model is created from bootbaan.py.
And note that this is pure simulation where the trajectory is calculated in the script trajectory.py.
To avoid the problem above I made the prescribed movement very slow, to avoid large accelerations. I learned that from the simpler model (Pusher) that does work.
The above can easily be replicated using BootBaan.osim, and trajectory.trc from the repo.
The IK-tool works, there is a webm-video in the repo that shows that.
It fails, in the CMC-tool, in the first timestep at t = 0.02. It takes a fairly long time to crash, say 20 seconds.
Does the ipopt error status 2 means CPUTIME_EXCEEDED? (from ipopt enum)
1. All model degrees-of-freedom (33) have actuators. There are no muscles used, only CoordinateActuators.
2. There is no locking. I do use clamping to avoid unwanted solutions.
3. There are only 3 WeldContraints to make the model complete.
So I don't know what I am doing wrong here.
Or is this model too complicated for opensim?
There is one thing in the CMC_Tasks.xml file. I had to set the name-value as in:
Code: Select all
<CMC_Joint name='bJoint_1'> <coordinate>bJoint_1</coordinate> </CMC_Joint>
I get errors when I use the relevant joint.
I am at a loss here, what could be problem?
Help would be very much appreciated!
Sietse