140 likes | 263 Views
We wish to estimate segment rotation and translation, relative to a reference position. . Initial marker positions. Markers observed after movement. Estimating Body Segment Motion by Tracking Markers Bill Rose & Jim Richards. We wish to estimate rotation matrix R
E N D
We wish to estimate segment rotation and translation, relative to a reference position. Initial marker positions Markers observed after movement Estimating Body Segment Motion by Tracking Markers Bill Rose & Jim Richards We wish to estimate rotation matrix R and translation vector v, such that
Note added after this presentation was completed: Subsequent analysis shows that the odd behavior seen in the following slides is due to the fact that Matlab return eigenvalues sorted from smallest to largest, which is the opposite of the order required by Spoor & Veldpaus. It is also due to the fact that Matlab sometimes returns eigenvectors that form a left-handed set. This violates an unstated assumption of the S&V algorithm. These problems are worse for non-planar marker sets. Labview has similar behavior to Matlab in these regards.
Define centroids of markers before & after movement: Compute matrix M, which is always 3x3: Turns out that Where j=marker number (columns of a and p)
Compute 3x3 matrices V and D2 by eigenvector analysis of MTM: S & V say: Rotation matrix R which gives best fit (in a least squares sense) is where m1, m2 are columns 1 and 2 of 3x3 matrix MV: , d1, d2= square roots of eigenvalues d12, d22.
Our modified S & V algorithm: Risk: This will blow up if d3=0. With both S&V and modified algorithm,
Simulations with 4 random markers per trial. cond(A) is a measure of planarity; 1 indicates maximum non-planarity; >1000 indicates nearly planar. Some random marker arrangements are nearly planar, i.e. high cond(A). Left panel is magnified view of top right panel. Data in left and top right plots shows that when the points are non-planar (low cond(A)), some trials result in “failed” fits, i.e. fits in which RMSE>0.05, when the Spoor & Veldpaus routine is used to estimate R and v. Bottom right panel shows that the odds of a successful fit are only 40%-50% when cond(A)<20. However, the modified routine always works. Why?
Experimental data from Kota T. 4 markers, cond(a)=31. Bottom right plot shows that both algorithms (S&V and modified) give same low RMSE at all time points.
Experimental data from Jim R. 4 non-planar markers; cond(a)=1.78. Bottom right plot shows that both algorithms (S&V and modified) give same low RMSE at all time points.
Experimental data from Jim R. 4 planar markers; cond(a)=129. Bottom right plot shows that algorithm 1 (S&V) sometimes fails to fit the markers as well as algorithm 2 (modified S&V).
Simulated data: example 23. 4 non-planar markers; cond(a)=1.32. Rotate +-20 about each axis. Bottom right plot shows that algorithm 1 (S&V) fails (i.e. gives high RMSE) at all times, but alg.2 (modified) succeeds. Why?
Simulated data: example 23 4 planar markers; cond(a)=1249. Rotate +-20 about each axis. Good results from both algorithms when the marekersareplanar, but sometimes the RMSE is slightly higher with S&V than with modified. Why?
Questions and answers Simulations with random markers and random angles show that S&V fails ~50% of the time when cond(a) <3, i.e. with non—planar markers. Why? Because Matlabsometimes returns left handed eigenvectors. S&V algorithm only works with right handed eigenvector set. Why doesn’t modified S&V fail when n=3 (see next figure)? Not sure.
Minor comment/question Why did Spoor & Veldpaus choose to make a rotation R about the coordinate system origin, instead of rotating about the marker centroid? Since R is about origin, the estimated translation v is not from centroid (before) to centroid (after): The following seems more logical: This would require