Dear colleagues,
I'm studying the upper limb's joint reaction forces with inverse dynamics model. I've found some 'problems' when the glenohumeral joint rotation center is estimated with the regression equations, proposed by Meskers et al (1998). During the movement that is being analyzed, the scapula doesn't move (or at least, has a minimal movement). So, it's not a 'problem' of relative movement between the scapula and the reflexive markers. Specifically, the problem is the coordinate values in the 'z axis'. The glenohumeral joint rotation center, in that axis, is 8 centimeters away. It seems to be overstimated. The matlab routine, I believe, has no problems. The reflexive markers position, in relation to the anatomical references, seems to be right.
Does someone, ever had a 'problem' similar to that? Or these values seems to be right? I would welcome any suggestion.
Daniel Cury Ribeiro
regression equation Meskers
It hs been a while since I used that equation, so this is all from memory:
first: all distances should be in mm, but you will probably do that already,
second: i assume that your z-direction will be the former x-direction. We had some difficulties in calculating the distances in the x-direction before and I seem to remember that there was a corrected .m version available.
This is an older one:
function gh=ghestnew(pc,ac,aa,ts,ai)
% GHESTNEW. Calculates GH from regression equations
% according to Meskers et al 1997. juli 1996. C. Meskers.
%disp(['Warning in ghestnew: data must be provided in millimeters!!'])
Rsca=asscap96(ac,ts,ai);
% definition local coordinate system based on AC!
Osca=(ac);
pc=Rsca'*(pc-Osca);
ac=Rsca'*(ac-Osca);
aa=Rsca'*(aa-Osca);
ts=Rsca'*(ts-Osca);
ai=Rsca'*(ai-Osca);
lacaa=norm(ac-aa);
ltspc=norm(ts-pc);
laiaa=norm(ai-aa);
lacpc=norm(ac-pc);
scx=[1 pc(1) ai(1) laiaa pc(2)]';
scy=[1 lacpc pc(2) lacaa ai(1) ]';
scz=[1 pc(2) pc(3) ltspc ]';
thx=[18.9743 0.2434 0.2341 0.1590 0.0558];
thy=[-3.8791 -0.1002 0.1732 -0.3940 0.1205];
thz=[-9.2629 -0.2403 1.0255 0.1720];
%previous version: thz=[ 9.2629 -0.2403 1.0255 0.1720];
GHx = thx*scx;
GHy = thy*scy;
GHz = thz*scz;
%%%%%%%%%%%%%%%%%%%%
where the local coordinate system of the scapula was calculated as:
function S = asscap96(ac,ts,ai)
xs = (ac-ts) / norm(ac-ts);
zhulp = cross(xs,(ac-ai));
zhulp = zhulp/norm(zhulp);
ys = cross(zhulp,xs);
zs = cross(xs,ys);
S=[xs,ys,zs];
%%%%%%%%%%%%%%%
is this what you used? If not, let me know. If I find the time, I will check Magermans' archive for possibly different, corrected versions.
yours,
DirkJan
Regression Equations Meskers
Dear Chadwick and DirkJan,
I'm really grateful for your suggestions. Sorry for my delay on answering you. Well, the 'z axis' is that one used in Meskers et al. work. So it is the antero-posterior axis. I should have specified better.
Dear DirkJan, my matlab routine is very similar with yours. So, I do not know what could be wrong. The only thing that could be wrong is the reflexive markers position. But we positioned them very carefully, so I am not sure this could be the problem.
Dear Chadwick, I used the AC as the origin of the scapula coordinate system.
Well, I will keep trying to find where is the mistake.
I would like to thank you, again, for your suggestion. They were really helpful.
Yours
Daniel Cury Ribeiro
Alternative solution
What you could try as an alternative method is to either fit a sphere on the humerus position data (relative to the scapula) if you have a reasonable set of motion data. If you have anteflexion data you could also fit a circle, which would give some feeling for the accuracy of your regression.
A second method would be the estimation of helical axes and a pivot point as I did in my 1997 paper. I have the matlab equations for you, if you need those.
DirkJan
Problems with glenohumeral joint rotation center
Dear DirkJan and Chadwick,
Well, after all your suggestion, I realized that there could be a mistake with the reflexive markers identification. So, we did it again. Now, the glenohumeral joint rotation center seems to be right, with values similar with other researches. I really don't know what to say... it was a silly mistake.
I would like to thank you, again, for your suggestions. I'm really gratefull.
Dear DirkJan, I intend to estimate the glenohumeral joint rotation center with the Instantaneous Helical Axes too. I haven't done, yet, my matlab routines for that. But in a few days, they will be ready. Are your matlab routines the same that are avaiable in the 'software section'. If so, I've already seen them. If not, I wonder if you mind to show me your matlab equations.
DirkJan, thank's a lot for your patience and kindness
Yours
Daniel
The value does seem high
The value does seem high. Perhaps there is some confusion over axes definitions or origin location. The current standard recommends that the medio-lateral axis be labelled 'z', but this was not the case when Meskers carried out the work. Did you use AA as the origin of your scapular coordinate system?