GaitFullBody (AMMR1.5) Squat

Hi,

I’ve been trying to simulate a squat motion but unfortunately the inverse dynamic simulation doesn’t work.

Please find the model attached.

The kinematic optimisation works, but then I get the following errors.

WARNING(OBJ.MCH.KIN7) :   E:/AnyBody/AMMR..Demo/Body/A..n/Arm/Muscle.any  :   deltoideus_scapular_part_4.SPLine  :  Penetration of surface :  art_tub_minus_tub_majusSurf :  Via-point 'Main.Studies.HumanModel.BodyModel.Right.ShoulderArm.Seg.Scapula.O_deltoideus_scapular_part_4' on 'Main.Studies.HumanModel.BodyModel.Right.ShoulderArm.Mus.deltoideus_scapular_part_4.SPLine' is located below the wrapping surface 'Main.Studies.HumanModel.BodyModel.Right.ShoulderArm.Seg.Humerus.art_tub_minus_tub_majus.art_tub_minus_tub_majusSurf
WARNING(OBJ.MCH.KIN7) :   E:/AnyBody/AMMR..Demo/Body/A..n/Arm/Muscle.any  :   deltoideus_scapular_part_4.SPLine  :  Penetration of surface :  art_tub_minus_tub_majusSurf :  Via-point 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Scapula.O_deltoideus_scapular_part_4' on 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Mus.deltoideus_scapular_part_4.SPLine' is located below the wrapping surface 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Humerus.art_tub_minus_tub_majus.art_tub_minus_tub_majusSurf
1.0.0.1) ...Load-time positions have been re-established.
WARNING(OBJ.MCH.KIN7) :   E:/AnyBody/AMMR..Demo/Body/A..n/Arm/Muscle.any  :   Extensor_Carpi_Radialis_Longus.SPLine  :  Penetration of surface :  cyl :  Via-point 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Hand.Ref.I_Extensor_Carpi_Radialis_Longus' on 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Mus.Extensor_Carpi_Radialis_Longus.SPLine' is located below the wrapping surface 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Radius.MedialExtensorCyl.cyl
WARNING(OBJ.MCH.KIN7) :   E:/AnyBody/AMMR..Demo/Body/A..n/Arm/Muscle.any  :   Extensor_Carpi_Radialis_Brevis.SPLine  :  Penetration of surface :  cyl :  Via-point 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Hand.Ref.I_Extensor_Carpi_Radialis_Brevis' on 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Mus.Extensor_Carpi_Radialis_Brevis.SPLine' is located below the wrapping surface 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Radius.MedialExtensorCyl.cyl
1.0.0.2) ...Kinematic analysis completed. The kinematic constraints have been resolved.
WARNING(OBJ.MCH.KIN7) :   E:/AnyBody/AMMR..Demo/Body/A..n/Arm/Muscle.any  :   deltoideus_scapular_part_4.SPLine  :  Penetration of surface :  art_tub_minus_tub_majusSurf :  Via-point 'Main.Studies.HumanModel.BodyModel.Right.ShoulderArm.Seg.Scapula.O_deltoideus_scapular_part_4' on 'Main.Studies.HumanModel.BodyModel.Right.ShoulderArm.Mus.deltoideus_scapular_part_4.SPLine' is located below the wrapping surface 'Main.Studies.HumanModel.BodyModel.Right.ShoulderArm.Seg.Humerus.art_tub_minus_tub_majus.art_tub_minus_tub_majusSurf
WARNING(OBJ.MCH.KIN7) :   E:/AnyBody/AMMR..Demo/Body/A..n/Arm/Muscle.any  :   deltoideus_scapular_part_4.SPLine  :  Penetration of surface :  art_tub_minus_tub_majusSurf :  Via-point 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Scapula.O_deltoideus_scapular_part_4' on 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Mus.deltoideus_scapular_part_4.SPLine' is located below the wrapping surface 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Humerus.art_tub_minus_tub_majus.art_tub_minus_tub_majusSurf
WARNING(OBJ.MCH.KIN7) :   E:/AnyBody/AMMR..Demo/Body/A..n/Arm/Muscle.any  :   Extensor_Carpi_Radialis_Longus.SPLine  :  Penetration of surface :  cyl :  Via-point 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Hand.Ref.I_Extensor_Carpi_Radialis_Longus' on 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Mus.Extensor_Carpi_Radialis_Longus.SPLine' is located below the wrapping surface 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Radius.MedialExtensorCyl.cyl
WARNING(OBJ.MCH.KIN7) :   E:/AnyBody/AMMR..Demo/Body/A..n/Arm/Muscle.any  :   Extensor_Carpi_Radialis_Brevis.SPLine  :  Penetration of surface :  cyl :  Via-point 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Hand.Ref.I_Extensor_Carpi_Radialis_Brevis' on 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Mus.Extensor_Carpi_Radialis_Brevis.SPLine' is located below the wrapping surface 'Main.Studies.HumanModel.BodyModel.Left.ShoulderArm.Seg.Radius.MedialExtensorCyl.cyl
1.0.0.3) ...Initial conditions are fully updated.
1.0) Inverse dynamic analysis...
ERROR(OBJ.MCH.MUS4) :   E:/A..y/A..o/A..n/M..s/G..t/GaitFullBody.main.any  :   InverseDynamicStudy.InverseDynamics  :  Muscle recruitment solver :  solver aborted due to singular KKT matrix

I would be nice if somebody could have a look at this.

Thank you!

Patrick,

I’ll run it and see what’s going on. First impression was that it was scaled strange…

Patrick,

I had a quick look and found some issues:

  1. If you look at the upper extremities (position of arms) after the optimization, you can see that something went wrong there. Looks like the shoulder/humerus marker lead to a rotation of the humerus.

  2. When excluding upper extremities, it runs. However, the scaled head and trunk looks wrong.

Solution: think hard about what marker positions and what parameters to optimize.
I will look further into that, but this might take a little while.

Amir, thank you so far and thanks for looking into it further.

I’m sorry to ask but is the any progress with this problem?

Hey patrick,

yes, I have a model without arms running smooth to the end, just making another check with arms…
Give me until tonight

Hey Patrick,

I uploaded the model here. The error was in the MotionAndParameterOpti. There are two issues:

  1. The head height optimization causes serious trouble. I turned it off and then it runs smooth.
  2. The arms also cause trouble. I included a switch, so you can easily turn them on or off. I turned off some of the marker optimisation in the arms, it seemed that it was too much and AnyBody could not handle it. In order to optimise marker positions, you need severl fixed marker positions. The best is to use the GaitFullBody as template and see what marker positions are optimized. If you want more, turn them on one by one and see how the optimization works out to be!