shouldler model (Bergmann) and version 6.0

Hi !
I requested i trial of the version 6.0 to evaluate it with the shoulder model. I also downloaded the AMMR v 1.6 to fit with this new version.

My question would be related to the remanipulated model : I’m unable to understand how to set the shoulder rhythm or how to choose the muscle type. Of what I found, I think it’s included in the HumanModel.any and probably in BodyModel.BodyPartsSetup.any, but I’m really not sure…

Could you help me to understand that point ?
Thank you !

Regards,
Lauranne

Hi Lauranne,

You can now control what needs to be included by using BM (Body Model) statements before the inclusion of HumanModel.any. I would recommend to have a glance at the tutorials and read a little how it works: default settings, the table with all parameters, constants, etc. Intention was to use as few parameters as possible to configure your model as compared to the previous BodyPartsSetup files. Now almost everything has a default value, so you just need to set something that differs from the default. It may also be a good idea to have a look at the similar/related examples in the Applications folder.

But to switch on the rhythm and detailed hands you would now need to use the following statements:

#define BM_ARM_DETAIL_HAND_LEFT ON
#define BM_ARM_SHOULDER_RHYTHM_LEFT ON
#define BM_ARM_DETAIL_HAND_RIGHT ON
#define BM_ARM_SHOULDER_RHYTHM_RIGHT ON

And the information regarding how to set up the muscles you will find in the tutorials too. As well as that each example now has a commented section:

  // ----------------------------------------------------------
  // Model configuration:
  // For more info on body model configuration options please load the model and double click on: 
  // #include "<ANYBODY_PATH_BODY>\Documentation\BodyModel.parameters.any"
  // ----------------------------------------------------------

By double-clicking on the commented include line you will navigate to a file, which shows the default values and what parameters are out there.

I think you are now officially the first user to try it. So let us know if you have more questions, but we hope this concept is straightforward.

Best regards,
Pavel

Hi Pavel,
Thank you for your so quick and clear reply !! Great and hard task to know I’m the first user trying that ! :wink:

I’m currently testing it and would have some comments and questions.

I have an error about the fingers in the HandSeg.any file (first error : line611). I changed nothing compared to the repository AMMR1.6, except adding these lines before the #inclue “Model/BMSettings.any”

  #define BM_ARM_SHOULDER_RHYTHM_RIGHT ON
  #define BM_ARM_DETAIL_HAND_RIGHT ON
  #define BM_ARM_MUSCLES_RIGHT CONST_MUSCLES_3E_HILL

I think I understood the core of the parameters and constants, after reading the tutorial. I woulds have 2 questions :
1/ I was not able to find the lines that you wrote in the Bergmann model ; where should it be ?? At the begin of the main? Of another file ?
2/ The tutorial page listing the parameters is empty at this time ; where could I find all customizable parameters ?? Is the list in the <ANYBODY_PATH_BODY>\Documentation\BodyModel.parameters.any file absolutely complete or is it something missing or listed in another file ?

Best regards,
Lauranne

Hi Lauranne,

I believe you have looked for this table on the website - it appeared that the table was not aligned well and you could find by scrolling down. But we have made a small (probably not final) fix to bring it up. As well as that you could find it in the Turorials that come with the AMS.

Regarding the first problem - i should have been a little more clear: we have added these lines to all Examples models in the Application folder, but not for validation studies (maybe something that will be added in the next patch). So please have a look at Application/Examples/ArmCurl, for example. And yes, this file should be complete - it is just a commented version of all possible options, values, and default values.

The second problem is a little more interesting. Originally this validation study did not use the detailed hand configuration and, thus, does not have default values for the finger positions and so on. This is why it cannot find finger positions, when you use: BM_ARM_DETAIL_HAND_RIGHT ON. You could add some values if you want from the Mannequin file in the FreePosture model, something like:


AnyFolder Mannequin = {
  
  AnyFolder Posture = {
    ...
    AnyFolder Right = {
      //Hand
      AnyFolder Finger1 ={
        AnyVar CMCDeviation=-20;
        AnyVar CMCFlexion=20;
        AnyVar MCPFlexion= 20;
        AnyVar MCPDeviation=0;
        AnyVar DIPFlexion=20;
      };
      
      AnyFolder Finger2 ={
        AnyVar MCPFlexion=20;
        AnyVar PIPFlexion=20;
        AnyVar DIPFlexion=20;
      };
      
      AnyFolder Finger3 ={
        AnyVar MCPFlexion=20;
        AnyVar PIPFlexion=20;
        AnyVar DIPFlexion=20;
      };
      
      AnyFolder Finger4 ={
        AnyVar MCPFlexion=20;
        AnyVar PIPFlexion=20;
        AnyVar DIPFlexion=20;
      };
      
      AnyFolder Finger5 ={
        AnyVar MCPFlexion=20;
        AnyVar PIPFlexion=20;
        AnyVar DIPFlexion=20;
      };
    ...
    };
    
    AnyFolder Left = {
      //Hand
      AnyFolder Finger1 ={
        AnyVar CMCDeviation= ..Right.Finger1.CMCDeviation;
        AnyVar CMCFlexion= ..Right.Finger1.CMCFlexion;
        AnyVar MCPFlexion= ..Right.Finger1.MCPFlexion;
        AnyVar MCPDeviation= ..Right.Finger1.MCPDeviation;
        AnyVar DIPFlexion= ..Right.Finger1.DIPFlexion;
      };
      
      AnyFolder Finger2 ={
        AnyVar MCPFlexion= ..Right.Finger2.MCPFlexion;
        AnyVar PIPFlexion= ..Right.Finger2.PIPFlexion;
        AnyVar DIPFlexion= ..Right.Finger2.DIPFlexion;
      };
      
      AnyFolder Finger3 ={
        AnyVar MCPFlexion= ..Right.Finger3.MCPFlexion;
        AnyVar PIPFlexion= ..Right.Finger3.PIPFlexion;
        AnyVar DIPFlexion= ..Right.Finger3.DIPFlexion;
      };
      
      AnyFolder Finger4 ={
        AnyVar MCPFlexion= ..Right.Finger4.MCPFlexion;
        AnyVar PIPFlexion= ..Right.Finger4.PIPFlexion;
        AnyVar DIPFlexion= ..Right.Finger4.DIPFlexion;
      };
      
      AnyFolder Finger5 ={
        AnyVar MCPFlexion= ..Right.Finger5.MCPFlexion;
        AnyVar PIPFlexion= ..Right.Finger5.PIPFlexion;
        AnyVar DIPFlexion= ..Right.Finger5.DIPFlexion;
      };
};      


Best regards,
Pavel

Hi Pavel !
Thank you for the clarification regarding the parameters table. It’s right, I had a look on the website and, I don’t know why, I was not able to scrowl down to see the table. But tutorial with the AMS is ok.

Regarding the problem about fingers: your explanations are clear for me :wink: thank you again !

I would have 2 more questions about the shoulder model :
1/ did you change or adjust some parameters ?? If yes, is there any changelog about the model or only about the software version ?

2/ have you made some comparison between the old (v5.2 or 5.3) and the new version (v6.0) ? If yes, did you noticed some significant changes in muscular or reaction forces ?

Thank you !

Best regards,
Lauranne

Hi Lauranne,

I could actually scroll in all 4 of my browsers (IE, Chrome, Firefox, Opera) - not sure what the problem might be.

The repository has been restructured a little, and the model was restructured to use the BM statements, but the latter was supposed to stay exactly the same functionally. Some improvements in the repository may have changed the results. You could check the release notes in the repository to see what has been changed.

We have run functional comparisons and approved whatever changes happened in the results as compared to version 5.3. But I can’t remember what exactly the verdict was on this particular model - I could check on Monday. However, we have only tested the unchanged configurations - if you observe something irrational in your customized model please report for our further investigation.

Kind regards,
Pavel

Hi Lauranne,

Just an update - the differences were very small, under 2% in the max muscle activation. And it might be due some minor improvements in the model or in the system.

Regards,
Pavel

Hi Pavel,
Thanks for your feedback about the differences ! I ran my models and it’s approximately the same differences in my side.

Regarding the problem of scrolling : I don’t think it’s a problem relatde to your website but rather my computer ; I often have the same kind of behaviour :wink:

Best regards,
Lauranne

Hi !
I’m still adapting my old model to fit with new conventions of the version 6. I recently upgraded to the version 6 64bits.

In my model I used a python function to check the filename for an output file. This function worked well with 5.2, 5.3, 6.0 32 bits but unfortunately does not work anymore with the version 6 64bits. Here is the error message :

ERROR(SCR.EXP.FUN.EXT4) : D:/S…e/4…y/A…6/A…n/V…n/B…H/O…t/Output_CheckName.any(6) : name : AnyBody.Python extension module is not installed or does not match installed version of Python.

Have I to do an upgrade of my python library or something like that ??
Thank you in advance for you help !

Lauranne

Hi Lauranne,

the 64 bit version of AnyBody also requires a 64bit version of Python. Did you install a 64bit version? With our experiences it should work fine to have 32 and 64 bit versions of Python installed parallel to each other.

Best regards
Daniel

Hi Daniel,
Thank you for your return !

I checked and you’re right, I hadn’t the version 64bit of python installed. I did it and unfortunately this does not solve my problem… I installed the version 3.3.1 of python ; is it the same than yours ? Do you know any problems with this version ? Should I install the version 2.7 (the same than my 32bit version) ?

Regards,
Lauranne

Hi Lauranne,

I doubt that Python 3.x will work with AnyBody. There are .dll files for Python 2.6 and 2.7, so I think these are the supported versions. And as far as I know, there are quite a few changes between Python 2.x and 3.x, so I think that is another reason to stay with Python 2.7.

Best regards
Daniel

Hi Daniel !
GREAT ! Everythings ok !

Regards,
Lauranne