You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
subject = nimble.biomechanics.SubjectOnDisk(subject_path)
frames: nimble.biomechanics.FrameList = subject.readFrames(trial_index, 0, trial_length,
includeSensorData=False,
includeProcessingPasses=True)
try:
first_passes: List[nimble.biomechanics.FramePass] = [frame.processingPasses[0] for frame in frames]
except IndexError:
print(f'{subject_name}, {trial_index} has no processing passes, skipping')
continue
forces = [frame.groundContactForce for frame in first_passes]
if (forces[0] == 0).all():
print(f'{subject_name}, {trial_index} has 0 GRF at the first frame.', end='')
Then the (forces[0] == 0).all() returns True for every trial of all the datasets I processed. Forces show up starting at index 1.
The text was updated successfully, but these errors were encountered:
Tian-A-Tan
changed the title
GRF of the first frame of each trial is always 0
GRF of the first frame of all the trials are always 0
Apr 9, 2024
As discussed in person, we lose a time point when finite differencing the inverse kinematics trajectories, and this lost time point might be getting propagated to the forces when aligning time points during preprocessing. Since there is no acceleration at this time point the forces might be getting assigned zeros by default.
@TheOne-1, how is this specifically impacting your workflow? Is it not sufficient to trim off the first time step in each trial?
I load subject GRF data as follows:
Then the (forces[0] == 0).all() returns True for every trial of all the datasets I processed. Forces show up starting at index 1.
The text was updated successfully, but these errors were encountered: