Detailed description |
|
Hi OpenSim Gurus. In a conversation with Matt and Ayman during the Opensim workshop (08/14/09) we talked about having a method in Opensim that could be called on a body that would return all the forces, moments, and points of applications for those forces/moments for that body. Those forces would include joint reaction forces, muscle forces, applied forces, and anything else that enters Euler's equations.
The goal for me is I would like to take that information and use it in an FE model. I have attached a picture that illustrates at a single time step what I mean.
I have been able to do this for another musculoskeletal simulation package, and some of the things to consider are:
1. At each time step, the number of forces applied to a body may be different from previous or subsequent time steps (i.e. potentially caused by muscle wrapping)
2. The point of application of a force may also change in the body coordinate ref frame (i.e. moving muscle points)
3. It definitely helps if all the forces/moments that are outputted have some documentation related to what muscle/joint reaction they are associated to
3. I would like to be able to create the following text file for each body:
Gravity=1.000000000000000e-005;-9.810000000000001e+000;1.000000000000000e-005;
t=9.699999999999999e-003
step_no=1
Segment[2]: Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh
m=3.498500000000000e+000
Jmatrix=1.011674504015467e-001,-3.246548497451500e-002,4.380164381957772e-003;-3.246548497451500e-002,1.457890474433133e-002,1.193458953532019e-002;4.380164381957772e-003,1.193458953532019e-002,1.098502694524887e-001;
rCoM=1.380761255940763e-001;5.639645458308420e-002;9.773869969665089e-002;
r=1.900928671961407e-001;2.610083228007962e-002;1.151990503925363e-001;
Axes=1.331001569667838e-001,-9.909513872893123e-001,1.731173719777303e-002;9.900053690344237e-001,1.337542060401460e-001,4.471220917807987e-002;-4.662314337785198e-002,1.118751071317415e-002,9.988498996874407e-001;
rDot=1.059751259072959e-002;1.192501187512656e-001;2.373549929396086e-002;
Omega=7.959563043392713e-002;-1.348697033930398e-001;6.420641192812364e-001;
rDDot=-6.032191121262985e-001;-4.001698178136812e+000;1.174498334319106e-001;
OmegaDot=7.028652300985315e-001;-6.487705588957810e-001;-2.094698811572465e+001;
Force[650]:
Name=Main.HumanModel.BodyModel.Trunk.MusclesSpineRight.PsoasMajor.PMT12I_TM
Class=ThelenMuscle2003
Segment=Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh
SegmentID=2
Pos=7.468919605013304e-002;4.229879449158833e-002;1.085954013894660e-001;
RefFrame=Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.IliopsoasNode
NumComponents=1
F[0]=-0.000000000000000e+000;0.000000000000000e+000;-0.000000000000000e+000;
M[0]=-0.000000000000000e+000;-0.000000000000000e+000;-0.000000000000000e+000;
Force[651]:
Name=Main.HumanModel.BodyModel.Trunk.MusclesSpineRight.PsoasMajor.PML1I_TM
Class=ThelenMuscle2003
Segment=Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh
SegmentID=2
Pos=7.468919605013304e-002;4.229879449158833e-002;1.085954013894660e-001;
RefFrame=Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.IliopsoasNode
NumComponents=1
F[0]=-0.000000000000000e+000;0.000000000000000e+000;-0.000000000000000e+000;
M[0]=-0.000000000000000e+000;-0.000000000000000e+000;-0.000000000000000e+000;
Force[652]:
Name=Main.HumanModel.BodyModel.Trunk.MusclesSpineRight.PsoasMajor.PML1T_TM
Class=ThelenMuscle2003
Segment=Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh
SegmentID=2
Pos=7.468919605013304e-002;4.229879449158833e-002;1.085954013894660e-001;
RefFrame=Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.IliopsoasNode
NumComponents=1
F[0]=-1.700134087468800e+000;5.449117198259570e+000;-5.911568785718314e+000;
M[0]=-0.000000000000000e+000;-0.000000000000000e+000;-0.000000000000000e+000;
Force[653]:
Name=Main.HumanModel.BodyModel.Trunk.MusclesSpineRight.PsoasMajor.PML2I_TM
Class=ThelenMuscle2003
Segment=Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh
SegmentID=2
Pos=7.468919605013304e-002;4.229879449158833e-002;1.085954013894660e-001;
RefFrame=Main.HumanModel.BodyModel.Right.Leg.Seg.Thigh.IliopsoasNode
NumComponents=1
F[0]=-5.149849621604685e-001;1.224920213318544e+001;-1.789175799569011e+001;
M[0]=-0.000000000000000e+000;-0.000000000000000e+000;-0.000000000000000e+000;
I hope this helps and please let me know if I can help make this happen. |
|