Hi all,
Problem 1 : I have a hand model with measured small inertial properties (1E-7). I have a problem running CMC during finger flexion. it gives very large position errors. Multiplying the properties by 1000 solves the problem. Why so much positional inaccuracy is coming into picture while solving with low intertial properties problem ? How can I solve this ?
Problem 2: I tried to run the CMC on same hand model above with same very low inertial properties but this time with having passive forces as coordinateLimitForces for the joints. but if I have it for all three joints MCP ,PIP and DIP it doesn't proceed to the next step. having one passive force at MCP make the process very slow. What is the reason behind it ? How can I solve this
I am wondering if it intrinsic to Opensim hat cannot handle small inertial.
P.s: static optimisation works fine.
Thanks in advance,
CMC positional inaccuracy
- Carmichael Ong
- Posts: 401
- Joined: Fri Feb 24, 2012 11:50 am
Re: CMC positional inaccuracy
I'm not sure if it's actually the issue here, but CMC does perform some forward integration steps, and small masses along with (relatively) high forces from the muscles can easily cause problems to become stiff. You likely have to add more mass (as you found) or tighten the integrator tolerance (which will also slow down the simulation). In general, you'll have to tighten tolerances and slow down a simulation the stiffer a problem gets.
CoordinateLimitForces should not inherently prevent a time step to be taken (unless it's the same case as in the first problem, where the masses/inertias are small). It's also possible your CoordinateLimitForces are too high to overcome for the muscles (which may be a downstream issue due to large positional deviations that you saw in problem 1).
Static optimization can get around this since it is simply trying to match the accelerations based on the input kinematic data and does not explicitly perform a forward integration. If static optimization is giving you good results, it might be good to stick with that.
CoordinateLimitForces should not inherently prevent a time step to be taken (unless it's the same case as in the first problem, where the masses/inertias are small). It's also possible your CoordinateLimitForces are too high to overcome for the muscles (which may be a downstream issue due to large positional deviations that you saw in problem 1).
Static optimization can get around this since it is simply trying to match the accelerations based on the input kinematic data and does not explicitly perform a forward integration. If static optimization is giving you good results, it might be good to stick with that.