Bm_joint_type_knee_right _joint_type_bony_landmark_

Hi everyone,

I tried to implement a joint definition based on bony landmarks using some of the default body parameters.

I tried to include the statements:

#define BM_JOINT_TYPE_KNEE_RIGHT _JOINT_TYPE_BONY_LANDMARK_
#define BM_JOINT_TYPE_KNEE_LEFT _JOINT_TYPE_BONY_LANDMARK_

in both the Standing model and in the Simple MOCAP-driven Gait Model of the AMMR demos.

I get the following error:
ERROR(SCR.PRS9) : Leg.root.any(32) : 'Knee' : Unresolved object
Model loading skipped

referring to this part of the code:

  AnyKinMeasureOrg JntDOF = {

    #if BM_JOINT_TYPE_KNEE_RIGHT != _JOINT_TYPE_USERDEFINED_
    AnyRevoluteJoint &Knee = .Jnt.Knee;
    #endif  
  }; 

Now I managed to run the modified model anyway, by inverting the two if statements,

    #if JOINT_TYPE_KNEE == _JOINT_TYPE_BONY_LANDMARK_
    #if JOINT_TYPE_KNEE == _JOINT_TYPE_DEFAULT_

in
Main.HumanModel.BodyModel.Right.Leg.Seg.Shank.KneeJoint and in Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.KneeJoint, so that the definition based on the bony landmark becomes the default one.

So I don't know if this is a bug, or I did something wrong on my side.

However I'm wondering which one would be best to use to investigate joint contact forces in an anatomically meaningful tibial reference way.

Should I:
(1) leave the standard default joint definition to define the knee axis of rotation, and then just project the reaction forces on the KneeJointAnatomicalFrame in the Shank segment with AnyForceMomentMeasure2?

Or
(2) would it be better to use the bony_landmark_based joint definition, and then again extract the forces on the node KneeJoint (== KneeJointAnatomicalFrame) for the tibia with AnyForceMomentMeasure2? In this case I would use the bony_landmark definition of the knee joint in both shank and thigh segments.

So I guess the real questions are:
Is the default axis definition better than the bony_landmark based one?

Would there be any conceptual issue in calculating the kinematics based on one joint definition and then extract joint contact forces in a reference frame which doesn't match the kinematic definition (1)?

Thank you!
Enrico

Hi Enrico!

Sadly this was a bug in how the knee joint was enabled when using other than default joint types.

Thanks a lot for reporting it!
We already made the fix and added it to our test system in a PR and you can check it out here to see if it resolves all your issues.

Let us know if you run into more trouble with this

Best regards,
Bjørn