squat model

Hi,

I am trying to create a squat model using the data from the examples in the tutorial. The model seems to be loading fine but when I tried to run it, it says that it is kinematically indeterminate

WARNING(OBJ.MCH.KIN1) : C:/U…s/atiq/A…1/A…1/A…n/E…s/n…l/newmodel.Main.any : Study : Model is kinematically indeterminate : Position analysis failed : 3 unsolvable constraint(s) found
WARNING(OBJ.MCH.KIN1) : C:/U…s/atiq/A…1/A…1/A…n/E…s/n…l/newmodel.Main.any : Study : Model is kinematically indeterminate : Position analysis failed : 81 independent constraints and 84 unknowns

Can I know which driver and constraint that needed to be add or subtract since I am still new to AnyBody software. Or, the problem comes from a different factor?

Thank you.

Hi,

Welcome to this forum.

To make your own squat models and for your easy understanding,
I would recommend you to use ‘FreePostureMove’ example in the repository.
This will be a good template for your next model development.

In the ‘JointsAndDrivers.any’ file of the example you can see all necessary kinematic drivers.

If you comment out this ‘JointsAndDrivers.any’ file then you can see that there are 42 degrees of freedom in the human model.

As you know, there is very simple principle in the AnyBody Modeling System.
Number of DOFs(Degrees of freedom) = Number of Constraints(including joints, constraints and drivers)

In this FreePostureMove example, all human joints have their own individual drivers.

When you consider to make your own squat model, then you have to remove or modify some existing drivers.

When we think the squat movement, we may assume that the motion of upper body joints will not change much.

You may have to add or modify some more constraints:
-> Modify the drivers of upper body joints as constant
-> Add some drivers to make both of feet to contact to the ground
-> Modify knee drivers to follow the knee flex motion
-> Add some reaction forces(or artificial muscles forces) between the foot and the ground(<-Please refer to ‘StandingLift’ example)

For making some constraints about foot contact to ground,
then you can refer the ‘StandingLift’ example in the repository.
In the JointsAndDrivers.any file of this StandingLift example,
you cans see some AnyScript code for contact between the foot and the ground.

Please try it and ask again if you have more questions.

I hope this may help you.

Best regards,
Moonki

Hi Moonki,

Thank you for your reply.

I have a few question.
1.In the FreePostureMove file, there are functions and drivers file. Can I know what are the difference and usage of those? Because I tried to change the type of function in the driver but it could not be done.
2.When you say modify the upper body points as constant, do I need to add joints between the upper body segment and regard it as one segment and drives it?
3. How do I modify the knee to follow the knee flex motion?

Thank you for your help.

Hi,

  1. In ‘Mannequin.any’ file, there are some vectors of joint angles.
    ->Using these values, in the ‘InterpolationFunctions.any’ file there are several interpolation functions using AnyFunInterpol object.
    ->Using these interpolation functions, in the ‘InitialPositionValues.any’ file we can calculate the initial position values of all joint angles.
    So if you want to change the kinematics of the human model,
    then you should modify the values in the ‘Mannequin.any’ file.
    Different from other Mannequin.any files in other examples,
    this Mannequin.any contains the vectors, not just constant.

  2. If you want to modify the upper body joints to have constant values,
    then you can set the vectors of the upper body joints to have the constant values.
    For instance, if you want to make the elbow flexion as constant, then you can do it like this in :

      AnyVector ElbowFlexionTime=.TimeSerie2;
      AnyVector ElbowFlexion ={ 0,0};
  1. Also you can modify the knee flexion angle, then also you can change it in the Mannequin.any file.

I hope this may help you.

Best regards,
Moonki