CMC still failing on non-muscular model
Posted: Fri Aug 02, 2024 2:48 am
I have asked this before, also as an opensim issue 3679 , but still no solution. Hopefully this time around someone will find something!
The model, a few trajectories, IK and CMC setups can be found in . Think rower in a rowing boat. The model contains:
To get a feel for the model just simulate it after loading.
Using the IK setup the trajectory.mot can be created.
The problem is that CMC fails immediately with something like:
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 next timesteps,
effectively keeping the model still, everything works! Only very small pErr and vErr's.
What could be wrong? Is there an (undocumented) fundamental flaw/restriction in the CMC system, or
a bug in its implementation?
Is the someone that is familiar with the internals of CMC that can help?
I am willing and able to help, but on my own it is too much to handle.
Regards, Sietse
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.
The model, a few trajectories, IK and CMC setups can be found in . Think rower in a rowing boat. The model contains:
- A custom joint acting as a slider to move the boat
- A number of pinjoints
- Two custom joints acting a balljoints to model the shoulders
- A weldcontraint in the upper leg to close a kinematic loop
To get a feel for the model just simulate it after loading.
Using the IK setup the trajectory.mot can be created.
The problem is that CMC fails immediately with something like:
Code: Select all
[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.
If for example I simplify the trajectory by copying the data of the first step (t=0) to ALL next timesteps,
effectively keeping the model still, everything works! Only very small pErr and vErr's.
What could be wrong? Is there an (undocumented) fundamental flaw/restriction in the CMC system, or
a bug in its implementation?
Is the someone that is familiar with the internals of CMC that can help?
I am willing and able to help, but on my own it is too much to handle.
Regards, Sietse
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.