Problems with glenohumeral joint rotation center

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?