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