CMC fails with enough actuators.
Posted: Wed Nov 09, 2022 12:17 am
We are working on CMC using a modified model of the thoracoscapular shoulder model developed by Seth et al(2019).
CMC using the smooth motion generated by IK runs fine when only sufficient reserve actuators are used (choose "Replace model's force set"). However, strangely enough, when actuators and muscles are used (choose "Append to model's force set"), the analysis fails with the following error. There is no difference between the two other than whether or not the muscles are used.
We have verified that the three issues mentioned in the error message do not exist (they should not, since the analysis is completed with actuators only).
What else should I consider to complete the CMC?
Also, as indicated before the error message, the muscle "TrapeziusScapula_I" seems to be too short to exert force for a while before the analysis fails, and the analysis fails almost as soon as the muscle starts to stretch and exert force. I do not know if this is the cause of the failure.
My understanding is that a solution can be found whether the muscle can exert force or not, as long as there are enough actuators present.
CMC using the smooth motion generated by IK runs fine when only sufficient reserve actuators are used (choose "Replace model's force set"). However, strangely enough, when actuators and muscles are used (choose "Append to model's force set"), the analysis fails with the following error. There is no difference between the two other than whether or not the muscles are used.
Code: Select all
CMC::computeControls, t = 6.03
CMC::computeControls: small force range for TrapeziusScapula_I (0.0 to 0.0)
CMC::computeControls: small force range for DeltoideusClavicle_A (0.0 to 0.0)
CMC::computeControls: small force range for DeltoideusScapula_M (0.0 to 0.0)
CMC::computeControls, t = 6.04
CMC::computeControls: small force range for TrapeziusScapula_I (0.0 to 0.0)
CMC::computeControls: small force range for DeltoideusClavicle_A (0.0 to 0.0)
CMC::computeControls: small force range for DeltoideusScapula_M (0.0 to 0.0)
CMC::computeControls, t = 6.05
CMC::computeControls: small force range for TrapeziusScapula_I (0.0 to 0.0)
CMC::computeControls: small force range for DeltoideusClavicle_A (0.0 to 0.0)
CMC::computeControls: small force range for DeltoideusScapula_M (0.0 to 0.556131)
CMC::computeControls, t = 6.06
CMC::computeControls: small force range for TrapeziusScapula_I (1.19317 to 1.19322)
CMC::computeControls: small force range for DeltoideusClavicle_A (0.0 to 0.0)
SimTK Exception thrown at InteriorPointOptimizer.cpp:264:
Optimizer failed: Ipopt: Search direction becomes too small (status 3)
OPTIMIZATION FAILED...
CMC::computeControls: Optimizer could not find a solution.
Unable to find a feasible solution at time = 6.06.
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.
What else should I consider to complete the CMC?
Also, as indicated before the error message, the muscle "TrapeziusScapula_I" seems to be too short to exert force for a while before the analysis fails, and the analysis fails almost as soon as the muscle starts to stretch and exert force. I do not know if this is the cause of the failure.
My understanding is that a solution can be found whether the muscle can exert force or not, as long as there are enough actuators present.