Hi,
I am trying to make CMC simulations for normal walking, with an external force applied on the pelvis, which would eventually vary within the gait cycle. To simplify for now, I apply a constant vertical force 300 N on the pelvis COM. Ultimately, I wish to compute the metabolic cost using different assistive strategies using the metabolic probes (i.e. different force profiles applied on the pelvis).
I started from experimental data from this project: https://simtk.org/projects/assistloadwalk with opensim 3.3. More specifically, I took a model scaled for a given subject, with IK already done and first. Also, the model inertial parameters was first adjusted from a first RRA pass. I ran a second RRA to adjust the kinematics and then CMC on the normal walking data and using the measured ground reaction forces and successfully reproduce the original CMC results with very low residuals forces.
For the 300 N vertical force applied on the pelvis, I modified the experimentally measured ground reaction forces to account for this new 300 N vertical force applied on the pelvis such that :
Sum measured GRFs (normal walking) = Sum simulated GRFs + pelvis force (Simulation with new external force).
I used a smooth transition assumption to distribute the total force during double support phase (Whole Body Inverse Dynamics over a Complete Gait Cycle Based Only on Measured Kinematics. https://doi.org/10.1016/j.jbiomech.2008.06.001 .):
In the end, the above equation is respected.
When I run RRA with the 300 N simulation and modified GRFs, I get the following residuals:
FX = -0.3 N, FY = 100.0 N, FZ = -4.1 N, MX = -9.0 Nm. MY = -0.04 Nm, MZ = 19.0 Nm.
Are the residuals too large? Maybe the FY = 100N is particularly problematic if I rely on the good/ok tables in the troubleshooting guide? Also, there is a large drift on the vertical position of the pelvis (~10-20 cm dependably on the weight of pelvis vertical translation). One hypothesis for the observed discrepancy is that I should also modify the ground reaction moments and/or cop just like I did with the ground reaction force (Much harder to figure out), would this be a mandatory step? I believe that this would mostly affect the MZ residual, which is not the most problematic here, I am right?
Is it even possible to achieve reliable results for what I intend to do with my approach and Opensim?
Thank you so much for your help !
Charles
Apply new external force over measured kinematics and GRFs
- Charles Khazoom
- Posts: 14
- Joined: Sat Mar 10, 2018 2:07 pm
- Charles Khazoom
- Posts: 14
- Joined: Sat Mar 10, 2018 2:07 pm
Re: Apply new external force over measured kinematics and GRFs
Edit to the previous post :
There was a mistake in my external loads file. I solved the pelvic drift and the FY residual is now small. However the MZ residuals is still large (average of 15 Nm, range +-50 Nm). One hypothesis for the somewhat large MZ residual is that I should also modify the ground reaction moments and/or COP just like I did with the ground reaction force (Much harder to figure out), would this be a mandatory step ?
Also, when running CMC, I get high activations (very close to 1) and thus metabolic power in the semimembranous biarticular muscle during push off when applying the pelvis force, which does not seem realistic. As it can be expected, there is some use of reserve actuators (about 2 Nm) at the same time. I tried to change the optimal fiber length and the tendon slack length of the semimembranous muscles (as suggested in the user guide), but this did help. How can I mitigate these surprisingly high muscle activations?
Thank you very much!
There was a mistake in my external loads file. I solved the pelvic drift and the FY residual is now small. However the MZ residuals is still large (average of 15 Nm, range +-50 Nm). One hypothesis for the somewhat large MZ residual is that I should also modify the ground reaction moments and/or COP just like I did with the ground reaction force (Much harder to figure out), would this be a mandatory step ?
Also, when running CMC, I get high activations (very close to 1) and thus metabolic power in the semimembranous biarticular muscle during push off when applying the pelvis force, which does not seem realistic. As it can be expected, there is some use of reserve actuators (about 2 Nm) at the same time. I tried to change the optimal fiber length and the tendon slack length of the semimembranous muscles (as suggested in the user guide), but this did help. How can I mitigate these surprisingly high muscle activations?
Thank you very much!
- Carmichael Ong
- Posts: 401
- Joined: Fri Feb 24, 2012 11:50 am
Re: Apply new external force over measured kinematics and GRFs
Trying to predict how the GRF changes due to an external perturbation is really difficult. You're taking a very interesting approach, but as you see this leads to some big residuals because it's hard to know how to change the COP. You might be able to do some of this through trial-and-error or trying to wrap the process with an optimizer to find the point that reduces the residuals the most.
I would be wary of trying to analyze the exact activations until the issues with the residuals are resolved.
Since it seems like you're a good way down the path of adjusting the GRF by hand and using CMC to simulate, I think it might be worth still trying to move the COP and seeing what the results look like.
That being said, there are other tools being developed that are aimed at predicting how muscle activity / motions change under new conditions. Since it seems like you're trying to track measured kinematics but change an external force, if your current method is not working well enough, you may want to look into direct collocation methods. A couple of developers for OpenSim have worked on a project called OpenSim Moco to make it easier to use direct collocation with OpenSim (https://opensim-org.github.io/opensim-moco-site/)
I would be wary of trying to analyze the exact activations until the issues with the residuals are resolved.
Since it seems like you're a good way down the path of adjusting the GRF by hand and using CMC to simulate, I think it might be worth still trying to move the COP and seeing what the results look like.
That being said, there are other tools being developed that are aimed at predicting how muscle activity / motions change under new conditions. Since it seems like you're trying to track measured kinematics but change an external force, if your current method is not working well enough, you may want to look into direct collocation methods. A couple of developers for OpenSim have worked on a project called OpenSim Moco to make it easier to use direct collocation with OpenSim (https://opensim-org.github.io/opensim-moco-site/)
- Charles Khazoom
- Posts: 14
- Joined: Sat Mar 10, 2018 2:07 pm
Re: Apply new external force over measured kinematics and GRFs
Hi,
Thank you very much for pointing out this Moco project, which is extremely relevant for my problem. I easily got started with it and the results are highly promising ! I will continue with Moco for my project.
Thank you very much for pointing out this Moco project, which is extremely relevant for my problem. I easily got started with it and the results are highly promising ! I will continue with Moco for my project.
- Sepehr Ramezani
- Posts: 35
- Joined: Tue Nov 05, 2019 2:02 pm
Re: Apply new external force over measured kinematics and GRFs
Hi Charles,
I have tried something similar before, I had certain kinematic which I wanted to change external forces. I found that all of the external components (Forces, Momentum, Cop) would change in all directions even force only applied in the lateral direction. This problem becomes more complex when the model is in the double support phase (because of redundancy). I have tried to calculate the new GRF with an optimization solution which I define IK error as cost-function and GRF component as variables. Still working on that.
If you want to see how much residual actuators effect on your results you can solve forward dynamic without considering residual actuators and compare IK results.
I have tried something similar before, I had certain kinematic which I wanted to change external forces. I found that all of the external components (Forces, Momentum, Cop) would change in all directions even force only applied in the lateral direction. This problem becomes more complex when the model is in the double support phase (because of redundancy). I have tried to calculate the new GRF with an optimization solution which I define IK error as cost-function and GRF component as variables. Still working on that.
If you want to see how much residual actuators effect on your results you can solve forward dynamic without considering residual actuators and compare IK results.
- Charles Khazoom
- Posts: 14
- Joined: Sat Mar 10, 2018 2:07 pm
Re: Apply new external force over measured kinematics and GRFs
Hi Sepehr,
I have completely abandoned trying to generate new GRF's by myself and using RRA and/or CMC. Instead, I have started using OpenSim Moco which does just what you suggest : minimize a cost function based on kinematics as well as GRF. This is achieved by using direct collocation optimization, which ensures the the motion is dynamically consistent. Thus the residuals are 0 in the solutions. And Moco can do also so much more! You should have a look !
Charles
I have completely abandoned trying to generate new GRF's by myself and using RRA and/or CMC. Instead, I have started using OpenSim Moco which does just what you suggest : minimize a cost function based on kinematics as well as GRF. This is achieved by using direct collocation optimization, which ensures the the motion is dynamically consistent. Thus the residuals are 0 in the solutions. And Moco can do also so much more! You should have a look !
Charles