I changed the LocalMarkerCoordinateAndSixe.any and MarkerTopology.any
My marker is ‘Type-2’. The Analog File conclude F1X, F1Y, F1Z, M1X ,
M1Y, M1Z, and same style on plate2.
I don’t know ,how can I change the Environment.any file.
It is very kind of you to reply my question. thank you.
regards
chang woo.
I change some cord in the Environment.any file. (below…)
//This file creates the environment around the human
//It creates the force plates and add the measure load to them
AnyFixedRefFrame GlobalRef ={
Origin={0,0,0};
AnyDrawRefFrame drw={ScaleXYZ=0.4*{1,1,1};};
};
AnyFixedRefFrame Corners={
Axes=…Orientation;
AnyFloat
corners=Main.C3DFileData.Groups.FORCE_PLATFORM.CORNERS.Data;
AnyRefNode c01={
AnyInt i=0;
AnyInt plnr=0;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
//AnyDrawRefFrame drw={ScaleXYZ=0.0001*{1,1,1};RGB={1,0,0};};
};
AnyRefNode c02={
AnyInt i=1;
AnyInt plnr=0;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
//AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={1,0,0};};
};
AnyRefNode c03={
AnyInt i=2;
AnyInt plnr=0;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
//AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={1,0,0};};
};
AnyRefNode c04={
AnyInt i=3;
AnyInt plnr=0;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
//AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={1,0,0};};
};
//plate B
AnyRefNode c0center={
sRel=0.25*(.c01.sRel+.c02.sRel+.c03.sRel+.c04.sRel);
ARel=RotMat(pi,x)RotMat(-0.5pi,z);
//AnyDrawRefFrame drw={ScaleXYZ=0.3*{1,1,1};RGB={0,1,0};};
};
AnyRefNode c11={
AnyInt i=0;
AnyInt plnr=1;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
//AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={0,1,0};};
};
AnyRefNode c12={
AnyInt i=1;
AnyInt plnr=1;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={0,1,0};};
};
AnyRefNode c13={
AnyInt i=2;
AnyInt plnr=1;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={0,1,0};};
};
AnyRefNode c14={
AnyInt i=3;
AnyInt plnr=1;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={0,1,0};};
};
//Plate A
AnyRefNode c1center={
sRel=0.25*(.c11.sRel+.c12.sRel+.c13.sRel+.c14.sRel);
ARel=RotMat(pi,x)RotMat(0.5pi,z); //this one is orientated
differently
// AnyDrawRefFrame drw={ScaleXYZ=0.3*{1,1,1};RGB={0,1,0};};
};
AnyRefNode c21={
AnyInt i=0;
AnyInt plnr=2;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={0,0,1};};
};
AnyRefNode c22={
AnyInt i=1;
AnyInt plnr=2;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={0,0,1};};
};
AnyRefNode c23={
AnyInt i=2;
AnyInt plnr=2;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={0,0,1};};
};
AnyRefNode c24={
AnyInt i=3;
AnyInt plnr=2;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={0,0,1};};
};
//plate C
AnyRefNode c2center={
sRel=0.25*(.c21.sRel+.c22.sRel+.c23.sRel+.c24.sRel);
ARel=RotMat(pi,x)RotMat(0.5pi,z); //orienatated differently
// AnyDrawRefFrame drw={ScaleXYZ=0.3*{1,1,1};RGB={0,0,1};};
};
AnyRefNode c31={
AnyInt i=0;
AnyInt plnr=3;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={1,0,1};};
};
AnyRefNode c32={
AnyInt i=1;
AnyInt plnr=3;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={1,0,1};};
};
AnyRefNode c33={
AnyInt i=2;
AnyInt plnr=3;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={1,0,1};};
};
AnyRefNode c34={
AnyInt i=3;
AnyInt plnr=3;
sRel=0.001*{.corners[plnr][i][0],.corners[plnr][i][1],.corners
[plnr][i][2]};
// AnyDrawRefFrame drw={ScaleXYZ=0.1*{1,1,1};RGB={1,0,1};};
};
//plate D
AnyRefNode c3center={
sRel=0.25*(.c31.sRel+.c32.sRel+.c33.sRel+.c34.sRel);
ARel=RotMat(pi,x)RotMat(-0.5pi,z);
// AnyDrawRefFrame drw={ScaleXYZ=0.3*{1,1,1};RGB={1,0,1};};
};
};
//setup time array for analog data
// StartFrame1/(Main.C3DFileData.Header.VideoFrameRate).
//Og herefter follows all samples with a frquency on
//Main.C3DFileData.Header.VideoFrameRate
//Main.C3DFileData.Header.NoAnalogSamplesPer3DFrame
//So:
//analog sample 1: StartFrame1/
(Main.C3DFileData.Header.VideoFrameRate).
//Analog sample 2: StartFrame1/
(Main.C3DFileData.Header.VideoFrameRate) +
//1/(Main.C3DFileData.Header.VideoFrameRate*
//Main.C3DFileData.Header.NoAnalogSamplesPer3DFrame)
//and so on.
AnyInt StartFrame = Main.C3DFileData.Header.FirstFrameNo;
AnyInt EndFrame =Main.C3DFileData.Header.FirstFrameNo-1+
(Main.C3DFileData.Header.LastFrameNo-
Main.C3DFileData.Header.FirstFrameNo)*
Main.C3DFileData.Header.NoAnalogSamplesPer3DFrame;
AnyFloat Time=
((StartFrameMain.C3DFileData.Header.NoAnalogSamplesPer3DFrame)+iarr
(0,EndFrame-StartFrame))(1/
(Main.C3DFileData.Header.VideoFrameRate*Main.C3DFileData.Header.NoAnal
ogSamplesPer3DFrame));
AnyFolder PlateB={
AnySeg ForcePlate={
Mass=0.0;
Jii={0,0,0};
r0=…Corners.c0center.sRel;
Axes0 =RotMat(pi,z)*RotMat(pi,x)RotMat(-0.5pi,z);
AnyRefNode PlateGraphics ={
sRel={0,0,0.05};
AnyDrawRefFrame drw={
ScaleXYZ=0.25*{1,1,1};
RGB=.Color;
};
AnyVec3 Color=0.45*{1,1,1};
AnyVec3 Size={vnorm(…Corners.c01.sRel-
…Corners.c02.sRel,2),vnorm(…Corners.c02.sRel-
…Corners.c03.sRel,2),0.1};
AnyVar Transparency =0.4;
#include “…/…/…/Body/AAUHuman/Toolbox/DrawObjects/Box.any”
};
AnyFloat Origins=
Main.C3DFileData.Groups.FORCE_PLATFORM.ORIGIN.Data;
AnyVar ydist=Origins[0][0]; //distance from y axis on transducer
to y axis of center of plate
AnyVar xdist=Origins[0][1];//distance from x axis on transducer
to x axis of center of plate
AnyVar zdist=Origins[0][2];//distance from z axis on transducer
to z surface of plate
AnyRefNode P1={
sRel=0.001*{.ydist,.xdist,.zdist};
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P2={
sRel=0.001*{-.ydist,.xdist,.zdist};
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P3={
sRel=0.001*{-.ydist,-.xdist,.zdist};
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P4={
sRel=0.001*{.ydist,-.xdist,.zdist};
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P1P2={
sRel=0.5*(.P1.sRel+.P2.sRel);
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P3P4={
sRel=0.5*(.P3.sRel+.P4.sRel);
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P1P4={
sRel=0.5*(.P1.sRel+.P4.sRel);
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P2P3={
sRel=0.5*(.P2.sRel+.P3.sRel);
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
};
AnyKinEqSimpleDriver ForcePlateDriver ={
AnyKinLinear ForcePlateLin={
AnyRefNode &ref1=…Corners.c0center;
AnySeg &ref2=…ForcePlate;
Ref=0;
};
AnyKinRotational ForcePlateRot={
AnyRefNode &ref1=…Corners.c0center;
AnySeg &ref2=…ForcePlate;
Type=RotAxesAngles;
};
DriverPos={0,0,0,0,0,0};
DriverVel={0,0,0,0,0,0};
Reaction.Type = {Off,Off,Off,Off,Off,Off};
};
AnyReacForce PlateFootReaction={
AnyKinLinear Lin={
Ref=0;
AnySeg &ref2=…ForcePlate;
AnySeg &ref1=…HumanModel.Right.Leg.Seg.Foot;
};
AnyKinRotational Rot={
AnySeg &ref2=…ForcePlate;
AnySeg &ref1=…HumanModel.Right.Leg.Seg.Foot;
Type=RotAxesAngles;
};
};
//This particular data set has a problem with force offsets in the
analog data there is a correction vector for each of the four plates
AnyVector OffsetCorrection={2.4,-6.2,-6.2,-6.8,-25,-25,-25,-27};
AnyForce3D F1X ={
AnyFunInterpol force ={
Type=PiecewiseLinear;
T=…Time;
Data={Main.C3DFileData.Analog.Data.F1X}+…OffsetCorrection[0] ;
};
AnyRefNode &ref1=.ForcePlate.P1P2;
Flocal=.OnOff*{force(t)[0],0,0};
AnyDrawVector DrawSupport2 = {
AnyRefFrame &ref = .ref1;
Vec = 0.0005*.Flocal*.ref1.Axes’;
PointAway = Off;
DrawCoord = Off;
Line.RGB = {0,0,1};
Line.Thickness =0.0075;
Line.End.Thickness = 20.0075;
Line.End.Length = 40.0075;
};
};
// AnyForce3D Fx3_4 ={
// AnyFunInterpol force ={
// Type=PiecewiseLinear;
// T=…Time;
// Data={Main.C3DFileData.Analog.Data.FPBFx3_4}
+…OffsetCorrection[1] ;
// };
// AnyRefNode &ref1=.ForcePlate.P3P4;
//
// Flocal=.OnOff*{force(t)[0],0,0};
//
// #include “DrawSupport.any”
// };
//
AnyForce3D F1Y={
AnyFunInterpol force ={
Type=PiecewiseLinear;
T=…Time;
Data={Main.C3DFileData.Analog.Data.F1Y}+…OffsetCorrection[2] ;
};
AnyRefNode &ref1=.ForcePlate.P1P4;
Flocal=.OnOff*{0,force(t)[0],0};
#include “DrawSupport.any”
};
AnyForce3D F2Y ={
AnyFunInterpol force ={
Type=PiecewiseLinear;
T=…Time;
Data={Main.C3DFileData.Analog.Data.F2Y}+…OffsetCorrection[3] ;
};
AnyRefNode &ref1=.ForcePlate.P2P3;
Flocal=.OnOff*{0,force(t)[0],0};
#include “DrawSupport.any”
};
AnyForce3D F1Z ={
AnyFunInterpol force ={
Type=PiecewiseLinear;
T=…Time;
Data={Main.C3DFileData.Analog.Data.F1Z}+…OffsetCorrection[4] ;
};
AnyRefNode &ref1=.ForcePlate.P1;
Flocal=.OnOff*{0,0,force(t)[0]};
#include “DrawSupport.any”
};
AnyForce3D F2Z ={
AnyFunInterpol force ={
Type=PiecewiseLinear;
T=…Time;
Data={Main.C3DFileData.Analog.Data.F2Z}+…OffsetCorrection[5] ;
};
AnyRefNode &ref1=.ForcePlate.P2;
Flocal=.OnOff*{0,0,force(t)[0]};
#include “DrawSupport.any”
};
// AnyForce3D Fz3 ={
// AnyFunInterpol force ={
// Type=PiecewiseLinear;
// T=…Time;
// Data={Main.C3DFileData.Analog.Data.FPBFz3}+…OffsetCorrection
[6] ;
// };
// AnyRefNode &ref1=.ForcePlate.P3;
// Flocal=.OnOff*{0,0,force(t)[0]};
//
// #include “DrawSupport.any”
// };
//
//
// AnyForce3D Fz4 ={
// AnyFunInterpol force ={
// Type=PiecewiseLinear;
// T=…Time;
// Data={Main.C3DFileData.Analog.Data.FPBFz4}+…OffsetCorrection
[7] ;
// };
// AnyRefNode &ref1=.ForcePlate.P4;
// Flocal=.OnOff*{0,0,force(t)[0]};
//
// #include “DrawSupport.any”
// };
AnyVar FzTotal=F1Z.force(ForcePlate.t)[0]+F2Z.force(ForcePlate.t)
[0]//+Fz3.force(ForcePlate.t)[0]+Fz4.force(ForcePlate.t)[0];
AnyVar OnOff=iffun(gtfun(-FzTotal,15.0),1.0,0.0);
#include “CenterOfPressureVisualization.any”
}; //plateB
AnyFolder PlateA={
AnySeg ForcePlate={
Mass=0.0;
Jii={0,0,0};
r0=…Corners.c1center.sRel;
Axes0 = RotMat(pi,z)*RotMat(pi,x)RotMat(0.5pi,z); //remark
this plate is differently orientated!!!
AnyFloat Origins=
Main.C3DFileData.Groups.FORCE_PLATFORM.ORIGIN.Data;
AnyVar ydist=Origins[1][0]; //distance from y axis on transducer
to y axis of center of plate
AnyVar xdist=Origins[1][1];//distance from x axis on transducer
to x axis of center of plate
AnyVar zdist=Origins[1][2];//distance from z axis on transducer
to z surface of plate
AnyRefNode PlateGraphics ={
sRel={0,0,0.05};
AnyDrawRefFrame drw={
ScaleXYZ=0.25*{1,1,1};
RGB=.Color;
};
AnyVec3 Color=0.55*{1,1,1};
AnyVec3 Size={vnorm(…Corners.c11.sRel-
…Corners.c12.sRel,2),vnorm(…Corners.c12.sRel-
…Corners.c13.sRel,2),0.1};
AnyVar Transparency =0.4;
#include “…/…/…/Body/AAUHuman/Toolbox/DrawObjects/Box.any”
};
AnyRefNode P1={
sRel=0.001*{.ydist,.xdist,.zdist};
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P2={
sRel=0.001*{-.ydist,.xdist,.zdist};
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P3={
sRel=0.001*{-.ydist,-.xdist,.zdist};
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P4={
sRel=0.001*{.ydist,-.xdist,.zdist};
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P1P2={
sRel=0.5*(.P1.sRel+.P2.sRel);
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P3P4={
sRel=0.5*(.P3.sRel+.P4.sRel);
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P1P4={
sRel=0.5*(.P1.sRel+.P4.sRel);
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
AnyRefNode P2P3={
sRel=0.5*(.P2.sRel+.P3.sRel);
AnyDrawNode drw={ScaleXYZ = 0.02*{1,1,0.1}; RGB={1,0,0};};
};
};
AnyKinEqSimpleDriver ForcePlateDriver ={
AnyKinLinear ForcePlateLin={
AnyRefNode &ref1=…Corners.c1center;
AnySeg &ref2=…ForcePlate;
Ref=0;
};
AnyKinRotational ForcePlateRot={
AnyRefNode &ref1=…Corners.c1center;
AnySeg &ref2=…ForcePlate;
Type=RotAxesAngles;
};
DriverPos={0,0,0,0,0,0};
DriverVel={0,0,0,0,0,0};
Reaction.Type = {Off,Off,Off,Off,Off,Off};
};
AnyReacForce PlateFootReaction={
AnyKinLinear Lin={
Ref=0;
AnySeg &ref2=…ForcePlate;
AnySeg &ref1=…HumanModel.Left.Leg.Seg.Foot;
};
AnyKinRotational Rot={
AnySeg &ref2=…ForcePlate;
AnySeg &ref1=…HumanModel.Left.Leg.Seg.Foot;
Type=RotAxesAngles;
};
};
AnyVector OffsetCorrection={-0.25,-0.38,-0.38,-0.51,-6.34,-6.37,-
6.3,-6.3};
AnyForce3D F1X ={
AnyFunInterpol force ={
Type=PiecewiseLinear;
T=…Time;
Data={Main.C3DFileData.Analog.Data.F1X}+…OffsetCorrection[0];
};
AnyRefNode &ref1=.ForcePlate.P1P2;
Flocal=.OnOff*{force(t)[0],0,0};
#include “DrawSupport.any”
};
// AnyForce3D Fx3_4 ={
// AnyFunInterpol force ={
// Type=PiecewiseLinear;
// T=…Time;
// Data={Main.C3DFileData.Analog.Data.FPAFx3_4}
+…OffsetCorrection[1];
// };
// AnyRefNode &ref1=.ForcePlate.P3P4;
//
// Flocal=.OnOff*{force(t)[0],0,0};
//
// #include “DrawSupport.any”
// };
AnyForce3D F1Y ={
AnyFunInterpol force ={
Type=PiecewiseLinear;
T=…Time;
Data={Main.C3DFileData.Analog.Data.F1Y}+…OffsetCorrection[2];
};
AnyRefNode &ref1=.ForcePlate.P1P4;
Flocal=.OnOff*{0,force(t)[0],0};
#include “DrawSupport.any”
};
AnyForce3D F2Y ={
AnyFunInterpol force ={
Type=PiecewiseLinear;
T=…Time;
Data={Main.C3DFileData.Analog.Data.F2Y}+…OffsetCorrection[3];
};
AnyRefNode &ref1=.ForcePlate.P2P3;
Flocal=.OnOff*{0,force(t)[0],0};
#include “DrawSupport.any”
};
AnyForce3D F1Z ={
AnyFunInterpol force ={
Type=PiecewiseLinear;
T=…Time;
Data={Main.C3DFileData.Analog.Data.F1Z}+…OffsetCorrection[4];
};
AnyRefNode &ref1=.ForcePlate.P1;
Flocal=.OnOff*{0,0,force(t)[0]};
#include “DrawSupport.any”
};
AnyForce3D F2Z ={
AnyFunInterpol force ={
Type=PiecewiseLinear;
T=…Time;
Data={Main.C3DFileData.Analog.Data.F2Z}+…OffsetCorrection[5];
};
AnyRefNode &ref1=.ForcePlate.P2;
Flocal=.OnOff*{0,0,force(t)[0]};
#include “DrawSupport.any”
};
// AnyForce3D Fz3 ={
// AnyFunInterpol force ={
// Type=PiecewiseLinear;
// T=…Time;
// Data={Main.C3DFileData.Analog.Data.FPAZ3}+…OffsetCorrection
[6];
// };
// AnyRefNode &ref1=.ForcePlate.P3;
// Flocal=.OnOff*{0,0,force(t)[0]};
//
// #include “DrawSupport.any”
// };
//
//
// AnyForce3D Fz4 ={
// AnyFunInterpol force ={
// Type=PiecewiseLinear;
// T=…Time;
// Data={Main.C3DFileData.Analog.Data.FPAZ4}+…OffsetCorrection
[7];
// };
// AnyRefNode &ref1=.ForcePlate.P4;
// Flocal=.OnOff*{0,0,force(t)[0]};
//
// #include “DrawSupport.any”
//
// };
AnyVar FzTotal=F1Z.force(ForcePlate.t)[0]+F2Z.force(ForcePlate.t)
[0]//+Fz3.force(ForcePlate.t)[0]+Fz4.force(ForcePlate.t)[0];
AnyVar OnOff=iffun(gtfun(-FzTotal,15.0),1.0,0.0);
#include “CenterOfPressureVisualization.any”
};//PlateA