Matlab API transformPosition method does not agree with GUI (SOLVED)
Posted: Wed Aug 28, 2019 3:15 am
Hi all,
I'm trying to find a knee ligaments geometry matching literature data from cadaveric knees. Available data are ligament elongation, and ligament angle against the tibial anatomical frame (AF) vertical axis, in both frontal and sagittal plane, during passive FE (with secondary rotations data provided as well).
Said that is consequent that I'll have to transform the position of the ligament's femural insertion to the tibial AF to compute the angles to be compared with literature.
After a few "there's something wrong here" I tried to transform the position of the ligament's femural insertion to the tibial AF both with Matlab API and Opensim GUI, at different flexion degrees and with different ab/adduction and intra/extrarotation configurations: there's a discrepancy in results between GUI and API, with a positioning difference up to 2 mm.
Here below is the part of code where the tranformation is performed.
The model I used is published by Xu and available here:
https://simtk.org/projects/kneeligament
Any thoughts about this discrepancy? 2 mm are a lot for a ligament, in terms of newtons computed trough the force-elongation curve.
Thank You
David
I'm trying to find a knee ligaments geometry matching literature data from cadaveric knees. Available data are ligament elongation, and ligament angle against the tibial anatomical frame (AF) vertical axis, in both frontal and sagittal plane, during passive FE (with secondary rotations data provided as well).
Said that is consequent that I'll have to transform the position of the ligament's femural insertion to the tibial AF to compute the angles to be compared with literature.
After a few "there's something wrong here" I tried to transform the position of the ligament's femural insertion to the tibial AF both with Matlab API and Opensim GUI, at different flexion degrees and with different ab/adduction and intra/extrarotation configurations: there's a discrepancy in results between GUI and API, with a positioning difference up to 2 mm.
Here below is the part of code where the tranformation is performed.
The model I used is published by Xu and available here:
https://simtk.org/projects/kneeligament
Code: Select all
P1=Lig_pathset.get(TibialInsertionName);
P2=Lig_pathset.get(FemuralInsertionName);
% get bodies
tibia=getBody(P1);
femur=getBody(P2);
% get point vectors
PP1 = getLocation(P1);
PP2_f = getLocation(P2);
PP2_t= Vec3(0); % preallocate femural insertion in tibial coordinates
% Transform femural insertion to tibial reference frame coordinates
osimModel.getSimbodyEngine.transformPosition(state, femur, PP2_f, tibia, PP2_t);
Thank You
David