// Demo example for general muscles. Main = { // The actual body model goes in this folder AnyFolder ArmModel = { // Global Reference Frame AnyFixedRefFrame GlobalRef = { AnyRefNode Shoulder = { sRel = {0,0,0}; }; }; // Global reference frame // Segments AnyFolder Segs = { AnySeg UpperArm = { r0 = {0,-0.15,0}; Axes0 = {{0,1,0},{-1,0,0},{0,0,1}}; Mass = 2.0; Jii = {0.005,0.01,0.01}; AnyDrawSeg DrwSeg = {}; AnyRefNode ShoulderNode = { sRel = {-0.2,0,0}; }; AnyRefNode ElbowNode = { sRel = {0.2,0,0}; }; }; // UpperArm AnySeg LowerArm = { r0 = {0.25,-0.3,0}; Mass = 2.0; Jii = {0.005,0.01,0.01}; AnyRefNode ElbowNode = { sRel = {-0.2,0,0}; }; AnyRefNode HandNode = { sRel = {0.2,0,0}; }; AnyRefNode PalmNode = { sRel = {0.27,0,0}; ARel = {{0,0,1},{0,1,0},{-1,0,0}}; }; AnyDrawSeg DrwSeg = {}; }; // LowerArm }; // Segs folder AnyFolder Jnts = { //--------------------------------- AnyRevoluteJoint Shoulder = { Axis = z; AnyRefNode &GroundNode = ..GlobalRef.Shoulder; AnyRefNode &UpperArmNode = ..Segs.UpperArm.ShoulderNode; }; // Shoulder joint AnyRevoluteJoint Elbow = { Axis = z; AnyRefNode &UpperArmNode = ..Segs.UpperArm.ElbowNode; AnyRefNode &LowerArmNode = ..Segs.LowerArm.ElbowNode; }; // Elbow joint }; // Jnts folder AnyFolder Drivers = { //--------------------------------- AnyKinEqSimpleDriver ShoulderMotion = { AnyRevoluteJoint &Jnt = ..Jnts.Shoulder; DriverPos = {-1.7}; DriverVel = {0.4}; Reaction.Type = {0}; }; // Shoulder driver //--------------------------------- AnyKinEqSimpleDriver ElbowMotion = { AnyRevoluteJoint &Jnt = ..Jnts.Elbow; DriverPos = {1.5}; DriverVel = {0.7}; Reaction.Type = {0}; }; // Elbow driver }; // Driver folder AnyFolder Loads = { //--------------------------------- AnyForce3D Dumbbell = { AnyRefNode &PalmNode = ..Segs.LowerArm.PalmNode; F = {0,-100,0}; // Force in Newton }; }; // Loads folder // Todo. Add the model elements such as // segments, joints, and muscles here. }; // ArmModel // The study: Operations to be performed on the model AnyBodyStudy ArmStudy = { AnyFolder &Model = .ArmModel; // InverseDynamics.Criterion.Type = MR_MinMaxStrict; InverseDynamics.Criterion.Type = MR_Quadratic; Gravity = {0.0, -9.81, 0.0}; }; }; // Main