Helical Axes Instructions (beta; not fully tested and validated)
Note: you need the Matlab Helical axes scripts in addition to XrayProject and the Maya helical scripts which are included in XROMM_Maya_Tools_2.0.7 and higher.
WARNING: Your digitized data cannot contain Nans. Edit your xyz points file accordingly. Remove any Nans at the start and end. If there are large sections with Nans, consider analyzing a smaller section of data. Be sure to use this edited xyz points file to make an AbsTforms file for a Maya animation. Otherwise, your animation and the helical axes will not match.
- After adding the helical axes scripts to your Matlab script path, type "helicalMaya" to start the process. You will need xyz points and CT marker locations.
- Select your xyz points file.
- If you wish to down sample your data, enter the amount you want to down sample. For example, if you want to use 1/10th of the frames, enter 10. If you do not want to down sample, leave the input as 1. If you do choose to down sample, you must also down sample the file you use to create the animation.
- Select your CT maker coordinate file.
- Select the markers in the first bone, then the markers in the second bone, as you would when creating an AbsTforms file. Note that you can only create helical axes to compare the motion of one bone relative to another. If you have multiple pairs of bones to compare, you will need to do this process for each pair. The distal bone's helical axes are calculated relative to the proximal bone.
- Enter a velocity window size. Helical axes are calculated based on the instantaneous velocity of the object. The instantaneous velocity for each point is calculated by averaging before and after the current point, based on the window size. If your motion is cyclical, try a velocity window equal to the number of frames in one cycle. If not, start with 1/10th the frame rate. By increasing the velocity window size, you will eliminate some of the smaller movements, which may remove noise, but could also remove data.
- Save the helical data file.
- In Maya, open your animation scene and click the impdata button.
- Enter your helical data file and select helical as the data type option.
- Click the import button. You will be asked to name the axis. Once you do, the helical axis, represented by two cylinders will be created and animated. The yellow cylinder represents the sliding velocity. The purple cylinder represents the location and orientation of the helical axis. See image below.
If you want to know more about how the helical axes are calculated and interpreted, read the following references.
The matlab scripts are modified from Dan Keefe's helical axis visualization program explained in the following paper, which is also available on the XROMM website:
Keefe D.F., O'Brien T.M., Baier D.B., Gatesy S.M., Brainerd E.L., Laidlaw D.H. 2008. Exploratory Visualization of Animal Kinematics Using Instantaneous Helical Axes. IEEE-VGTC Symposium on Visualization. 27(3): 863-870.
The mathematical calculations were based on the following papers:
Sommer H.J., and Buczeck F.L. 1990. Experimental determination of the instant screw axis and angular acceleration axis. Proceedings of the 1990 16th Annual Northeast Bioengineering Conference, 141-142.
Sommer III H.J. 1992. Determination of the first and second order instant screw parameters from landmark trajectories. Journal of Mechanical Design 114, 274-282.
For a brief discussion of what the matlab and Maya scripts do: