Hi,
thank you for your offer, to help if there are any problems.
I have a problem with the Inverse Dynamic at the full instep push.
This is my source text:
// Todo: Write a small description of your model here
Main = {
// The actual body model goes in this folder
AnyFolder BeinModel = {
// Global Reference Frame
AnyFixedRefFrame GlobalRef = {
AnyDrawRefFrame DrwGlobalRef = {
ScaleXYZ = {0.1, 0.1, 0.1};
RGB = {0,1,0};
};
AnyRefNode Huefte = {
sRel = {0,0,0};
};
AnyRefNode BeugerNode = {
sRel = {0,-0.03,0};
};
}; // Global reference frame
// Segments
AnyFolder Segs = {
AnySeg Oberschenkel = {
r0 = {0, 0, -0.15};
Mass = 3;
Jii = {0.01, 0.01, 0.001};
AnyDrawSeg drw = {};
AnyRefNode HuefteNode = {
sRel = {0,0,0.13};
};
AnyRefNode KnieNode = {
sRel = {0,0,-0.135};
};
AnyRefNode HKreuzbandNode = {
sRel = {0,-0.03,-0.1};
};
AnyRefNode VKreuzbandNode = {
sRel = {0,0.03,-0.1};
};
AnyRefNode Quadriceps = {
sRel = {0,0.04,0.1};
};
AnyRefNode Wadenmuskel = {
sRel = {0,-0.035,-0.135};
};
}; //Oberschenkel
AnySeg Unterschenkel = {
r0 = {0, 0, -0.50};
Mass = 4;
Jii = {0.01, 0.01, 0.001};
AnyRefNode KnieNode = {
sRel = {0,0,0.13};
};
AnyRefNode KnoechelNode = {
sRel = {0,0,-0.13};
};
AnyRefNode HKreuzbandNode = {
sRel = {0,-0.03,0.1};
};
AnyRefNode VKreuzbandNode = {
sRel = {0,0.03,0.1};
};
AnyRefNode BeugerNode = {
sRel = {0,-0.05,0.1};
};
AnyRefNode Achilles = {
sRel = {0,-0.02,-0.1};
};
AnyRefNode Sehne = {
sRel = {0,0.02,-0.1};
};
AnyRefNode Quadriceps = {
sRel = {0,0.025,0.13};
};
AnyDrawSeg drw = {};
}; //Unterschenkel
AnySeg Fuss = {
r0 = {0,0.05,-0.715};
Mass = 2;
Jii = {0.001, 0.0002, 0.001};
AnyDrawSeg DrwSeg = {};
AnyRefNode KnoechelNode = {
sRel = {0,-0.05,0.025};
};
AnyRefNode Achilles = {
sRel = {0,-0.06,-0.005};
};
AnyRefNode Sehne = {
sRel = {0,-0.015,0.02};
};
AnyRefNode Wadenmuskel = {
sRel = {0,-0.065,-0.005};
};
AnyRefNode FusNode = {
sRel = {0,0.045,0.05};
ARel = RotMat(90*pi/180, y);
AnyDrawSTL DrwSTL = {
FileName = "ballaballa.stl";
ScaleXYZ = {0.01, 0.01, 0.01};
RGB = {0.2,0.4,0.5};
};
};
}; //Fuss
}; // Segments
AnyFolder Jnts = {
//---------------------------------
AnyRevoluteJoint Huefte= {
Axis = x;
AnyRefNode &GroundNode = ..GlobalRef.Huefte;
AnyRefNode &OberschenkelNode = ..Segs.Oberschenkel.HuefteNode;
}; // Huefte joint
AnyRevoluteJoint Knie = {
Axis = x;
AnyRefNode &OberschenkelNode = Main.BeinModel.Segs.Oberschenkel.KnieNode;
AnyRefNode &UnterschenkelNode = Main.BeinModel.Segs.Unterschenkel.KnieNode;
}; // Knie joint
AnyRevoluteJoint Knoechel = {
Axis = x;
AnyRefNode &UnterschenkelNode = Main.BeinModel.Segs.Unterschenkel.KnoechelNode;
AnyRefNode &FussNode = Main.BeinModel.Segs.Fuss.KnoechelNode;
}; // Knoechel joint
}; // Jnts folder
AnyFolder Drivers = {
//---------------------------------
AnyKinEqSimpleDriver HuefteMotion = {
AnyRevoluteJoint &Jnt = ..Jnts.Huefte;
DriverPos = {-45*pi/180};
DriverVel = {75*pi/180};
Reaction.Type = {Off};
}; // Huefte driver
//---------------------------------
AnyKinEqSimpleDriver KnieMotion = {
AnyRevoluteJoint &Jnt = ..Jnts.Knie;
DriverPos = {-90*pi/180};
DriverVel = {80*pi/180};
Reaction.Type = {Off};
}; // Knie driver
//---------------------------------
AnyKinEqSimpleDriver KnoechelMotion = {
AnyRevoluteJoint &Jnt = ..Jnts.Knoechel;
DriverPos = {-45*pi/180};
DriverVel = {25*pi/180};
Reaction.Type = {Off};
}; // Knoechel driver
}; // Driver folder
AnyFolder Muscles = {
// Simple muscle model with constant strength = 300 Newton
AnyMuscleModel MusMdl = {
F0 = 250;
};
//---------------------------------
AnyViaPointMuscle HKreuzband = { // Name
AnyMuscleModel &MusMdl = ..Muscles.MusMdl; //verweis auf die F0=250
AnyRefNode &Org = ..Segs.Oberschenkel.VKreuzbandNode; //Ursprung
AnyRefNode &Ins = ..Segs.Unterschenkel.HKreuzbandNode; //Angriff
AnyDrawMuscle DrwMus = {
MaxStress = 1000000; //definiert den Querschnitt der Muskeln
};
};//Hinteres Kreuzband
//---------------------------------
AnyViaPointMuscle VKreuzband = {
AnyMuscleModel &MusMdl = ..Muscles.MusMdl;
AnyRefNode &Org = ..Segs.Oberschenkel.HKreuzbandNode;
AnyRefNode &Ins = ..Segs.Unterschenkel.VKreuzbandNode;
AnyDrawMuscle DrwMus = {
MaxStress = 1000000;
};
};//Vorderes Kreuzband
//---------------------------------
AnyViaPointMuscle Beuger = {
AnyMuscleModel &MusMdl = ..Muscles.MusMdl;
AnyRefNode &Org = ..GlobalRef.BeugerNode;
AnyRefNode &Ins = ..Segs.Unterschenkel.BeugerNode;
AnyDrawMuscle DrwMus = {};
};//Beuger (Flexor)
//---------------------------------
AnyViaPointMuscle Quadriceps = {
AnyMuscleModel &MusMdl = ..Muscles.MusMdl;
AnyRefNode &Org = ..Segs.Oberschenkel.Quadriceps;
AnyRefNode &Ins = ..Segs.Unterschenkel.Quadriceps;
AnyDrawMuscle DrwMus = {};
};//Quadriceps
//---------------------------------
AnyViaPointMuscle Achilles = {
AnyMuscleModel &MusMdl = ..Muscles.MusMdl;
AnyRefNode &Org = ..Segs.Unterschenkel.Achilles;
AnyRefNode &Ins = ..Segs.Fuss.Achilles;
AnyDrawMuscle DrwMus = {
MaxStress = 1000000;
};
};//Achillessehne
//---------------------------------
AnyViaPointMuscle Sehne = {
AnyMuscleModel &MusMdl = ..Muscles.MusMdl;
AnyRefNode &Org = ..Segs.Unterschenkel.Sehne;
AnyRefNode &Ins = ..Segs.Fuss.Sehne;
AnyDrawMuscle DrwMus = {
MaxStress = 1000000;
};
};//vordere sehne
//---------------------------------
AnyViaPointMuscle Wadenmuskulatur = {
AnyMuscleModel &MusMdl = ..Muscles.MusMdl;
AnyRefNode &Org = ..Segs.Oberschenkel.Wadenmuskel;
AnyRefNode &Ins = ..Segs.Fuss.Wadenmuskel;
AnyDrawMuscle DrwMus = {};
};//Wadenmuskulatur
}; // Muscles folder
AnyFolder Loads = {
//---------------------------------
AnyForce3D ballaballa = {
AnyRefNode &FusNode = ..Segs.Fuss.FusNode;
F = {0,-40.4,0}; // Force in Newton
};
}; // Loads folder
}; // BeinModel
// The study: Operations to be performed on the model
AnyBodyStudy BeinModelStudy = {
AnyFolder &Model = .BeinModel;
// RecruitmentSolver = MinMaxSimplex;
// tStart = 0;
// tEnd = 1;
// nStep = 100;
Gravity = {0.0, -9.81, 0.0};
};
}; // Main
I would be very thankfull, if you can help me, to make the inverse dynamics run.
Best Regards,
seak88