Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMC and failing IPOPT #3679

Open
SietseAchterop opened this issue Jan 14, 2024 · 2 comments
Open

CMC and failing IPOPT #3679

SietseAchterop opened this issue Jan 14, 2024 · 2 comments

Comments

@SietseAchterop
Copy link

I have a model that fails with CMC in a way I don't understand.
The model is not too complicated:

  • Joints: 1 slider, 4 pin, 2 custom (doing the task of BallJoints) and a few weldjoints.
  • 1 weldconstraint to close a kinematic loop.
  • contactmesh and electricfoundationforce to let the model "rest on the floor"

cmc_simple_2
Think rower in a rowing boat.
The model, a few trajectories, IK and CMC setups and opensim.log can be found in
CMCerror.zip

The problem is that CMC fails immediately with the intended trajectory (tr_org.mot) with:

[2024-01-14 16:56:45.428] [error] SimTK Exception thrown at InteriorPointOptimizer.cpp:264:
  Optimizer failed: Ipopt: Infeasible problem detected (status 2)
[2024-01-14 16:56:45.428] [error] OPTIMIZATION FAILED...
[2024-01-14 16:56:45.428] [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.

I don't think the given possible issues are relevant here because I can easily make it to work.
If for example I simplify the trajectory by copying the data of the first step (t=0) to ALL lines below,
effectively keeping the model still, everything works! Only very small pErr and vErr's.

tr1.csv is a trajectory that keeps the model still and slowly starts moving the model after 0.31 seconds.
If fails almost immediately at that point. Up to that point also only small pErr and vErr's.
I can't find anything in the way of "control theory" that could explain this.

Again, please help.
Sietse

@SietseAchterop
Copy link
Author

I'm getting a bit desperate, still no solution found.
I cannot continue with my project without solving this issue:(
Strange that CMC works with many much more complicated models but fails with these simple ones.

Is there nobody that can point me in the right direction with this problem?
As far as I can see, this is a problem with CMC. In an earlier attempt (issue #3522) I learned
that BallJoints cannot be used with CMC. After changing that to a CustomJoint it worked perfectly.
Then I made my model a little bit more complicated, the current model.
But it now fails immediately. This both on linux and windows.

Can somebody please confirm that this fails and what I am doing wrong?

@SietseAchterop
Copy link
Author

Still no luck!
From the OpenSim forum, subject "CMC still failing" I learned that the contact mesh and elastic foundation force are not relevant here.
I removed them, but the problem remains the same, see
CMCerror_2.zip

Now the model is even simpler!
Please help! Sietse

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant