using joint angles to drive inverse dynamics

Dear AnyBody:

I have a similar question as what brought up in this post:

http://forum.anyscript.org/showthread.php?t=3895

Pavel has kindly pointed out:
"Yes, it is possible to drive your model using the joint angles, but it is not guaranteed that this kinematics will match the dimensions of your model - it might breach some of the kinematic constraints.

But if you scale the model well - it might be possible. If you have the kinematics from the same model and just want to do the inverse dynamics - you just need to run it, forgetting about the motion and parameter optimization (the files will be already there)."

First I want to articulate the problem I want to solve:
Assuming subject A and subject B move in the same way (i.e., the joint angles are the same, but Cartesian coordinates of each joint might be different during the gait cycle since these subjects have different body sizes); and assuming I scaled the GRFs accordingly. I want to use the kinematics from subject A to drive inverse dynamics of subject B.

My questions are:

  1. What do you mean by “scaling the model”? I am planning to scale the GRF so external forces match subject B’s weight. I am not planning to optimize things including subject B’s bony segment lengths, joint positions & orientations etc. using subject A’s c3d data. Can I just “apply” known joint angles to a new model? Theoretically I can imagine a big subject and a small subject walking in the same way (i.e., hip flexion, knee flexion… are the same) without breaking any physics law;
  2. If above statement is correct, any suggestion on how to do it? I am thinking of copying those XXXX-euler-leftarm/leftlegtd/trunk.txt files under subject B’s Input folder.

Thank you!

Hi Phoebe,

The standard mocap models are driven by moving the pelvis in space and then drive all joint angles.

If you have the kinematic measured from one subject and extract and supply the pelvis motion and joint angles to a different sized person, then there is no guarantee that the feet will touch the plate or not go though them. Let’s say the person have different height then this will for sure lead to differences.

Furthermore if you reuse and scale the GRF it may supply the GRF to the foot in a “wrong” location because the kinematics was incorrect… The solution to that problem could be something like done in this paper

http://www.jbiomech.com/article/S0021-9290(14)00251-6/abstract

So in principle then yes you can supply the motion between the subjects and it will start to move like the other subject, but unfortunately it is not that simple to do.

This type of problem is something which requires a deeper approach to be solved correctly.

Best regards
Søren

Thank you Søren, for laying out problems I didn't realize.

Regarding the foot position relative to the plate, I figured it out with your help (http://forum.anyscript.org/showthread.php?t=3925). Let me know if there is something else I missed.

Regarding the GRF applied to a "wrong" location, do you mean if a bigger person and a small person have the same joint angles during gait, they should have different stride length and different walking speed due to body length? and even if I can scale the GRF of c3d based on bw, I cannot change the stride length of the c3d model, thereby inducing errors?

Thanks!
-Phoebe

Hi Phoebe,

Your conclusions are right… different sized persons will not have same stridelength etc… so a scaled GRF may not match … the CoP will be placed wrongly wit respect to the foot.

Best regards
Søren

Thank you, that makes sense.

For the ideal case (e.g., the two subjects have the same body size), how do I use one subject's angular velocity to drive the other one's musculoskeletal model?

To add a little more details if that helps: my goal is to look at the impacts of body size on joint kinetics, assuming big subject and small subject walk in the same way (i.e., same angular angles during gait). Since we are evaluating synthetic subjects, there are no subject-specific motion capture data available. Any suggestion on how to do it will be appreciated!

My initial plan was to use an identical kinematics data set to drive different models, while modifying GRFs according to BW. For kinematics data, I am planning to use the same arm/legtd/trunk.txt for all models, is it reasonable? Also I think I should keep the OptimizedParameters zeros for all bony segments since we wont use markers info to adjust the segment lengths. Thanks for pointing out the CoP problems that I missed, can you direct me to an example to see how it can be done?

Thank you very much!
-Phoebe

Hi Phoebe,

I would look at these two articles

http://www.jbiomech.com/article/S002...251-6/abstract
http://www.gaitposture.com/article/S0966-6362(14)00351-8/abstract

You can supply the motion as it was measured from another subject but you will risk that the feet will not touch the forceplate, so you need some way to control this, in other words you will need to modify the motions between the subjects.

Best regards
Søren

Thank you for the articles! I will take a look.

"supply the motion": how do i do this exactly? I copied arm/legtd/trunk.txt of subject A to subject B, and did inverse dynamics of subject B without LoadParameterOptimization. I imagined this will make subject B move in the same way as A (same joint angles) but it wasn't case.

"risk that the feet will not touch the forceplate": is it a visualization problem? i found the feet not touching the forceplate after scaling/morphing the model, so i moved the forcepates to better locations. Would it solve the problem you mentioned?

"modify the motions between the subjects": can you be a little bit more specific?

Thank you very much!

-Phoebe

Hi Phoebe,

Copying the motion .txt files between the subject should be enough to change the motion.

Are you sure it has actually read the files? or maybe it did read them and the difference was small.

To check you could try to remove the files and check that it does not run.

Concerning the location of the forceplates: if the feet does not touch the plates the loads may be wrongly applied. The further away the larger error. If you are able to move the plates into a better location i guess it helps… but maybe try to evaluate the sensitivity to small changes of the plate location.

Changing the motion: what i meant was that if the forceplate did not move you would need to change the motion to hit the plate, now you change the plate location so you may not need this.

This problem can be done in many ways it is not an easy problem, i like the ideas displayed in the two references, but it might be possible to use the simpler approach you suggest : to copy motion and move the plate, depending on what you are looking for, you should just be ware of the approximations being made.

Best regards
Søren

Thanks! I got my problem solved. At some point I would very much like to try the idea applied in the articles you recommended, at this point I will accept the approximation since this is a completely hypothetical study any way.

Thanks for your help again!

-Phoebe