Impossible human-exoskeleton configuration allowed in inverse dynamics study


I am working on connecting a standing lower body exoskeleton to the human model and succeeded kinematically with all reactions set to off.

I have created virtual ground reaction forces by using AnyGeneralMuscle acting on X, Y and Z linear measures between the Global Reference Frame and 2 nodes on each exoskeleton foot (one near the toes and one near the heel).

I have also created virtual straps at the pelvis, shank, and thighs using AnyGeneralMuscle acting on X, Y, and Z linear and rotational measures between nodes on the exoskeleton and on the human.

I have two questions:

[li]When I make the human-exoskeleton lean forward, so that the model’s COM is further forward than the toe nodes where the virtual GRF muscles are acting, the Inverse Dynamics Study does not fail.
[/li] Should it not fail since the vertical force needed at the toes to maintain this forward lean would be greater than the weight of the human-exoskeleton thus requiring an upward acceleration? (the vertical ground reaction muscles at the toes do not exceed this weight). I am wondering why the inverse dynamics is not failing.
[li]If an AnyGeneralMuscle is acting in one linear measure between two nodes that are not coincident where does the force from the muscle act?

Thank you!!


Hi Brandon,

Regarding your questions, it depends on a couple of things:

  1. If the model that you are using has a hand of God generalized force?
  2. The choice of strengths you have for the AnyGeneralMuscle elements.

Lastly, if you can send us your model, we will be able to help more specifically and efficiently.

Mohammad S. Shourijeh, PhD
AnyBody Team

Hi Mohammad,

Thanks for the quick reply!

Since I sent those questions I created an AnyOptKinStudy to make sure the nodes of the exoskeleton and the human that were being used in the AnyGeneralMuscle virtual strap forces were coincident, this effectively solved the impossible physical configuration.

I tried static human-exo positions where if the COM was just within the base of support the inverse dynamics would succeed and if the COM was just outside the base of support the inverse dynamics would fail.

Now I have a new problem: I am not sure how to force these nodes to be coincident during a dynamic simulation. I do not want to use these nodes as kinematic constraints I just want them to be coincident, so ideally one of the nodes would have its sRel values changed during a dynamic motion to stay coincident with the other.

I have attached the model.

Thank you!



Hi again,

I solved the problem by making the linear measure between the foot strap muscles use the exoskeleton reference frame instead of the global reference frame.

Although I’m still not sure why this was creating an external moment. I thought using the global reference frame to measure the linear distance used in the AnyGeneralMuscle would only result in changing the acting direction of the force, not the points where the force is acting.



Hi Brandon,

Sorry for my belated response.

Glad to hear that you have resolved the issues. What you have done seem to be correct.

The connection must be formed between the human body and the exoskeleton (EXO). Therefore, using a node that is fixed in the global ref frame was invalid (if this is what you meant). When you use such a node, which is WRONG, it is obvious that external forces and moments (other than the ground reaction forces/moments and those possible ones acting at the 6-dof pelvis-ground joint) will be exerted from the fixed node to the human body.
If you however define the kinematic measures between the body and the EXO nodes, which is CORRECT, there will be external moments and forces from the EXO to the body. Furthermore, in that case, if you consider both the human body and the EXO as one dynamic system, then there would not be any external forces/moments to the system except the ground reaction forces/moments and 6-dof pelvis/ground reaction (hand of god forces) and all those strap interaction forces/moments will count as internal quantities.

Hope it helps,