Forums Anyscript.org  

Go Back   Forums Anyscript.org > Professional Forum > AnyGait

Notices

Reply
 
Thread Tools Display Modes
  #21  
Old 06-22-2017, 09:56 AM
So_Any So_Any is offline
Member
 
Join Date: May 2015
Posts: 46
Default

Hi,

I had a closer look at hip joints reaction forces for my gait cycle with first right foot strike and then left foot strike.

The shape and values of the curve seems logical for the right hip joint (right foot on plate 1).
However when I consider the left hip joint, curve is constantly increasing until abnormal high values (left foot on plate 2, which I think axes are in the wrong direction: X is OK, Yplate1 = Zplate2, Zplate1 = -Yplate2).

Is there a way to address this problem ?
Reply With Quote
  #22  
Old 06-22-2017, 10:24 AM
toerholm's Avatar
toerholm toerholm is offline
AnyBody Support
 
Join Date: Feb 2009
Posts: 924
Default

Hi ,

Sorry for the slow feedback.

As i understand it, you have an issue with the corner data of the forceplate, and you would like not to alter the .c3d file but the model instead.

I would do the following:
  1. Make a copy of the forceplate class you are having an issue with
  2. include the new class in the top of the main file next to line currently including the forceplate classes.
  3. You need to rename the class in the top so that the name is different than the original
  4. when you apply the class you need to swap the plate to the new one for the plate having the problem
  5. now load the model ... nothing is changed yet... error will be same but you have possibility to modify the class
  6. Manipulate the forceplate class corner section in the top of the class to comply with your data. It can be a little tricky to modify anyscript classes because the usual way to get you to the location of the error will take you only to the location where you have used the class and not to the location inside the class having the problem. So keep this in mind and make gradual changes in the class, so you always will know what could have caused a load error.

Best regards
Søren
__________________
TIP: How to save and load results.
http://wiki.anyscript.org/index.php/All_about_AnyBody_Modeling_System#Save_Load_and_Re play_Results

Subscribe to the forums, click the 'Forum Tools' link above the list of threads then select 'Subscribe to Forum'. You will then have the option to choose the subscription mode for this forum and get an email automatically.
Reply With Quote
  #23  
Old 06-22-2017, 11:00 AM
So_Any So_Any is offline
Member
 
Join Date: May 2015
Posts: 46
Default

No problem at all, this is always a pleasure to receive your answers.

All right, I succeeded in operations 1 to 5, but I am now struggling with number 6.
I don't really understand when you say "Manipulate the forceplate class corner section", I mean, I don't know what to insert because the only information I have is:

ForcePlateAutoDetection Plate2Trial(
PLATE_NO=2,
HeightTolerance = 0.07,
VelThreshold = 2.2,
FORCEPLATE_TYPE = 4
)
={ };


I am a bit confused ...
Reply With Quote
  #24  
Old 06-22-2017, 11:37 AM
toerholm's Avatar
toerholm toerholm is offline
AnyBody Support
 
Join Date: Feb 2009
Posts: 924
Default

Hi

For the plate which you would like to correct you need to write something like this

Code:
ForcePlateAutoDetectionMYOWNVer Plate2Trial(
PLATE_NO=2,
HeightTolerance = 0.07,
VelThreshold = 2.2,
FORCEPLATE_TYPE = 4
)
={ };
This name "ForcePlateAutoDetectionMYOWNVer" also needs to be changed in step 3.

Now again the model should load but still nothing is changed.


Then you need to make the changes inside the new class in the section which creates the corner nodes this is what determines the orientation of the plate... You will need to look at the difference between the data which are ok for some plates and the data which are not.

Best regards
Søren
__________________
TIP: How to save and load results.
http://wiki.anyscript.org/index.php/All_about_AnyBody_Modeling_System#Save_Load_and_Re play_Results

Subscribe to the forums, click the 'Forum Tools' link above the list of threads then select 'Subscribe to Forum'. You will then have the option to choose the subscription mode for this forum and get an email automatically.
Reply With Quote
  #25  
Old 06-22-2017, 11:58 AM
toerholm's Avatar
toerholm toerholm is offline
AnyBody Support
 
Join Date: Feb 2009
Posts: 924
Default

one more comment:

Maybee it will enough to alter around the "i" in the forceplate


Code:
  AnyRefNode c01={
      AnyInt i=0;
      AnyInt plnr=No;
      sRel=0.001*{Folder.Groups.FORCE_PLATFORM.CORNERS.Data[plnr][i][0],Folder.Groups.FORCE_PLATFORM.CORNERS.Data[No][i][1],Folder.Groups.FORCE_PLATFORM.CORNERS.Data[No][i][2]};
      AnyDrawNode drw={ScaleXYZ=0.01*{1,1,1};RGB={1,0,0};};
      AnyDrawVector  DrawName = {
        Vec = {0.0,0,0};  //use zero length
        Line.Thickness = 0.025; //arbitary value
        Text = "1"; //make reference to name
        Line.RGB={1,0,0};//make reference to color
      };
    };

so maybee corner c01 is not i=1 but i=3...in your case...

Best regards
Søren
__________________
TIP: How to save and load results.
http://wiki.anyscript.org/index.php/All_about_AnyBody_Modeling_System#Save_Load_and_Re play_Results

Subscribe to the forums, click the 'Forum Tools' link above the list of threads then select 'Subscribe to Forum'. You will then have the option to choose the subscription mode for this forum and get an email automatically.
Reply With Quote
  #26  
Old 06-22-2017, 12:11 PM
So_Any So_Any is offline
Member
 
Join Date: May 2015
Posts: 46
Default

I am a bit lost, sorry ... but thank you for your kind patience.

Please let me summarise, in ForcePlates.any, this is what I have for the moment:

Main.EnvironmentModel.ForcePlates =
{

ForcePlateAutoDetection Plate1(
PLATE_NO=1,
HeightTolerance = 0.07,
VelThreshold = 2.2,
FORCEPLATE_TYPE = 4
)
={ };

//ForcePlateAutoDetection Plate2(
//PLATE_NO=2,
//HeightTolerance = 0.07,
//VelThreshold = 2.2,
//FORCEPLATE_TYPE = 4
//)
//={ };

};


In the environment model, this is what I currently have:

AnyFolder EnvironmentModel = {

AnyFixedRefFrame
GlobalRef ={
Origin={0,0,0};
AnyDrawRefFrame
drw={ScaleXYZ=0.4*{1,1,1};};
};
AnyFolder ForcePlates = {

ForcePlateAutoDetection Plate2Trial(
PLATE_NO=2,
HeightTolerance = 0.07,
VelThreshold = 2.2,
FORCEPLATE_TYPE = 4
)
={ };
 
#include
"<MOCAP_FORCE_PLATE_FILE>"
};
};


If changing the ForcePlateAutoDetection Plate2Trial to ForcePlateAutoDetectionMYOWNVer Plate2Trial , model is not loadings anymore: '(' unexpected.


By the way, where should I add the previous code you gave me ?
Here: ={ }; am I correct ?
Reply With Quote
  #27  
Old 06-22-2017, 01:05 PM
toerholm's Avatar
toerholm toerholm is offline
AnyBody Support
 
Join Date: Feb 2009
Posts: 924
Default

Hi

I am sorry it looks a bit confusing it would be easier to correct the error in the c3d data ;-)

Below i have listed the description from earlier and i have tried to add some more comments...

When reading your comments i feel that you have not fully understood the steps i proposed so i have taken the description from earlier and added some more information
  • Make a copy of the forceplate class you are having an issue with, copy the AAUHuman/TolBox/ForceplateType2Autodection.any file to AAUHuman/TolBox/ForceplateType2AutodectionModified.any
  • include the new class in the top of the main file next to line currently including the forceplate classes so include AAUHuman/TolBox/ForceplateType2AutodectionModified.any
  • You need to rename the class in the top so that the name is different than the original
    This you need to do inside the file
    AAUHuman/TolBox/ForceplateType2AutodectionModified.any
    So first line to e.g.
    Code:
    #class_template ForcePlateType2AutoDetectionMyVersion (PlateName, Folder,AnySeg &Limb1,AnySeg &Limb2, No,VerticalDirection,HeightTolerance,VelThreshold, Fx, Fy, Fz, Mx,My,Mz,FootPresent){
  • when you apply the class you need to swap the plate to the new one for the plate having the problem
    So in Forceplate.any file write e.g.
    Code:
    ForcePlateAutoDetectionMyVersion Plate2(
    PLATE_NO=2,
    HeightTolerance = 0.07,
    VelThreshold = 2.2,
    FORCEPLATE_TYPE = 4
    )
    ={ };
  • now load the model ... nothing is changed yet... error will be same but you now have possibility to modify the class
  • in the file AAUHuman/TolBox/ForceplateType2AutodectionModified.any , Manipulate the forceplate class corner section in the top of the class to comply with your data. It can be a little tricky to modify anyscript classes because the usual way to get you to the location of the error will take you only to the location where you have used the class and not to the location inside the class having the problem. So keep this in mind and make gradual changes in the class, so you always will know what could have caused a load error.
    Maybe it will be enough to change the i below , so maybee corner c01 is not i=1 but i=3...in your case...;
    Code:
    AnyRefNode c01={
          AnyInt i=0;
          AnyInt plnr=No;
          sRel=0.001*{Folder.Groups.FORCE_PLATFORM.CORNERS.Data[plnr][i][0],Folder.Groups.FORCE_PLATFORM.CORNERS.Data[No][i][1],Folder.Groups.FORCE_PLATFORM.CORNERS.Data[No][i][2]};
          AnyDrawNode drw={ScaleXYZ=0.01*{1,1,1};RGB={1,0,0};};
          AnyDrawVector  DrawName = {
            Vec = {0.0,0,0};  //use zero length
            Line.Thickness = 0.025; //arbitary value
            Text = "1"; //make reference to name
            Line.RGB={1,0,0};//make reference to color
          };
        };
__________________
TIP: How to save and load results.
http://wiki.anyscript.org/index.php/All_about_AnyBody_Modeling_System#Save_Load_and_Re play_Results

Subscribe to the forums, click the 'Forum Tools' link above the list of threads then select 'Subscribe to Forum'. You will then have the option to choose the subscription mode for this forum and get an email automatically.
Reply With Quote
  #28  
Old 06-26-2017, 09:19 AM
So_Any So_Any is offline
Member
 
Join Date: May 2015
Posts: 46
Default

Hi,

Many thanks, that is pretty clear and now I understand the procedure.
I am still getting errors when loading the model but this is because of paths issues, I am working on it, I should manage.

You said it would be easier to correct the C3D ?
Honestly I do not know how to modify such a file, only reading it.
In any case, I remain open to all suggestion if that could be more accessible.
Reply With Quote
  #29  
Old 06-26-2017, 09:56 AM
toerholm's Avatar
toerholm toerholm is offline
AnyBody Support
 
Join Date: Feb 2009
Posts: 924
Default

Hi,

To correct the data i would go the motion lab is possible and re-open the raw data files and do a new export of the c3d file having the proper settings so that the corner nodes of the plates are corrected.

The corner nodes locations will determine the orientation of the plate, this is why the list of changes i suggested is altering the sequence of the corner nodes being used to control the corner of the force plates.

Best regards
Søren
__________________
TIP: How to save and load results.
http://wiki.anyscript.org/index.php/All_about_AnyBody_Modeling_System#Save_Load_and_Re play_Results

Subscribe to the forums, click the 'Forum Tools' link above the list of threads then select 'Subscribe to Forum'. You will then have the option to choose the subscription mode for this forum and get an email automatically.
Reply With Quote
  #30  
Old 06-26-2017, 12:11 PM
So_Any So_Any is offline
Member
 
Join Date: May 2015
Posts: 46
Default

Great, I will have a look in the motion lab, maybe there is something we can do.

However, I am still curious about this procedure on Anybody, and would like you to have a look at the following lines if possible.
In my ForcePlateTypeAutoDetectionTRIAL.any, I have this class template:
#class_template ForcePlateType4AutoDetectionTRIAL (PlateName, Folder, AnyRefFrame &Limb1, AnyRefFrame &Limb2, No, VerticalDirection, HeightTolerance, VelThreshold, Fx, Fy, Fz, Mx, My, Mz, FootPresent){

Hence, in ForcePlates.any for the Plate2 this is what I wrote:
ForcePlateType4AutoDetectionTRIAL Plate2(
No=2,
VerticalDirection="Z",
HeightTolerance = 0.07,
VelThreshold = 2.2,
Limb1 = Main.HumanModel.BodyModel.Right.Leg.Seg.Foot,
Limb2 = Main.HumanModel.BodyModel.Left.Leg.Seg.Foot,
PlateName=Plate2TRIAL,
Folder=Main.ModelSetup.C3DFileData,
Fx=Folder.Analog.DataFiltered.Fx2,
Fy=Folder.Analog.DataFiltered.Fy2,
Fz=Folder.Analog.DataFiltered.Fz2,
Mx=Folder.Analog.DataFiltered.Mx2,
My = Folder.Analog.DataFiltered.My2,
Mz = Folder.Analog.DataFiltered.Mz2,
FootPresent = HumanModelPresent
)
I am having troubles with FootPresent, because HumanModelPresent is an "Unexpected character", but honestly I don't know what should I insert in this location.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 10:50 AM.