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.