Pre-Processing Delaware Data
- These are Eran's notes so far...
- Chand John also has a lot of notes on this which hopefully can be incorporated here.
- To transform between coordinate systems, use e.g.
transform_trcFile('SS_walking1_smoothed.trc', 'delaware3_ss_walking1.trc', delaware_lcs);
Processing Marker Data in EVaRT
- Data is on bioengcomplab.stanford.edu svn server
- There are 2 projects, one for static trial (e.g. SIMTK2.prj) and one for dynamic trials (e.g. SIMTK2_Dynamic.prj). Dynamic trial uses fewer markers.
- Basic steps (process may take a few hours):
- Pick a frame where see all the markers
- Use Quick ID to identify markers
- Create linkages
- Go through and correct bad/missing data (identify mislabeled markers; join & smooth curves)
- Note: Make sure there are no gaps in the data otherwise it won't load correctly in OpenSim
- Write out as trc file
- Note: Make sure to export trc files with no unnamed markers.
- Also write out anc (from original trb)
Force Plate Data
- The main matlab script I used here is
read_anc.mto do the low-level reading and conversion of the anc file.
- Force plate 1 = right foot
- Force plate 2 = left foot
- I added some info on how anc files are converted to forces/moments in
read_anc.mwhich is currently in my matlab scripts in my repository: https://simtk.org/home/erang. It also explains the FORCEPLA.CAL format.
- Also see: ForcePlateManual.pdf
- Notes regarding Allison's matlab scripts:
- process_emgChannel -> band (bandpass filter), rect (rectify), low (lowpass filter), nrect (normalized rect), nlow (normalized low)
- extract_emgCycleData -> separates out cycles into individual arrays, possibly of different lengths
- resample_emgEnvCycle -> resamples to be of equal length each
- get_emgEnsambleAve -> averages across all files and cycles, result is sized to a single cycle (corresp to 0:0.2:100 %)
Misc. Notes from Gillette Preprocessing/Allison's Scripts
- In the preprocessing plots:
- top is: (plot_emgEnsambleAve) envAve, envAve+envSD, envAve-envSD plotted against
- middle is: (plot_emgEnvCycle) of TOI_emgCyc (which is selected output from extract_emgCycleData -- i.e. not resampled), nrect and nlow
- The remaining issue is that resample_emgEnvTime seems to create a spline of a fixed number of control points (regardless of how many datapoints your function has) so if you try to get more cycles in you get a very coarse looking curve
- Gillette has marker data at 120 Hz whereas Delaware has it at 60 Hz
- Allison plots the joint angles using gait lab conventions. use transform_jntanglesToModelCS to transform to SIMM convention
- Allison wanted to get joint angles herself rather than trust IK to get good angles from motion capture data, because by itself IK would not have given her a good solution.
- note that the hip angle is not measured relative to horizontal plane but rather is set so that it's zero when you stand up straight