"Grounding" the model

Discussion in 'Simulation' started by jernejc, Mar 8, 2018.

  1. Hi,

    I am a human motor control scientist and I just started using Mujoco to calculate the joint torques during squat to stand movement. I made a simple human model and populated it with data of body masses and inertia with our custom made software. Then I imported the kinematics data to qpos, qvel and qacc (nice smooth, filtered data from a real experiment). First I wanted to check that everything is correctly set by running mj_forward and the model looks good - it does the standing up motion. However, the model was in the air and instead of standing up, it lifted its knees. So I attached a "site" to the toes of the model and subtracted its vertical position from the vertical position of the root joint, to bring the model down to the ground.
    d->qpos[m->jnt_qposadr[rootId] + 2] = d->qpos[m->jnt_qposadr[rootId] + 2] - d->site_xpos[sPinLId * 3 + 2]
    All good now - the model starts from a squat and stands up. I also have ground reaction forces data, so I inputed those to the xfrc_applied and ran the mj_inverse.
    i.e. location of vertical ground reaction force applied to right foot: d->xfrc_applied[6 * footRId + 7]

    Simulation runs well and I get the joint torques. However, the values, seem to be to big. for example in hip joints, I get the maximal values of over 1000Nm and in knee joints over 400Nm. Since the subject was not lifting any additional weight, these values cannot be right.
    I suspect that the problem lies in the way I grounded the model. Can you please also check the model I attached an give some suggestions.
    Thank you!

    Best regrads,
    Jernej
     

    Attached Files:

    Last edited: Mar 9, 2018
    Kyokushin likes this.