I am trying to apply a <CoordinateActuator> with a large optimal force to the Crouch Severity Simulation data set available on the SimTK website. At this point, I have added one <CoordinateActuator> acting on the right and left "ankle_angle" joints (see sample code at the end of the post). Simulations with unbounded actuators seem to return reasonable results when compared to simulations without additional actuators. Using bounded [0,-Inf) actuators in Static Optimization (SO) returns the following error message at every time point:
Code: Select all
StaticOptimization.record: WARN- The optimizer could not find a solution at time = 1.623
The model appears too weak for static optimization.
Try increasing the strength and/or range of the following force(s):
Active_AFO_r approaching upper bound of 0
Active_AFO_l approaching upper bound of 0
time = 1.623 Performance =68.3113 Constraint violation = 0.00675597
SimTK Exception thrown at InteriorPointOptimizer.cpp:261:
Optimizer failed: Ipopt: Restoration failed (status -2)
OPTIMIZATION FAILED...
This all surprises me, because the models run in SO without error messages if I remove the additional actuators. Similarly, adding unbounded actuators does not cause problems. Can anybody explain to me why these bounded actuators might be causing error messages and "jumps" in my results?
Thanks,
Michael
Code: Select all
<CoordinateActuator name="Active_AFO_r">
<!--Name of the generalized coordinate to which the actuator applies.-->
<coordinate>ankle_angle_r</coordinate>
<!--The maximum generalized force produced by this actuator.-->
<min_control>-100000</min_control>
<!--Maximum allowed value for control signal. Used primarily when solving for control values.-->
<max_control>0</max_control>
<optimal_force>100000</optimal_force>
</CoordinateActuator>