Finding Heelstrike and Toe-off with only Ground Reaction Force Data

15 views (last 30 days)
Hi all,
Is there anyone out there who has developed a really robust algorithm for detecting heelstrike and toe-off using only Ground Reaction Force (GRF) data?
I have made my own program that uses a threshold of 300 newtons (locates where force drops below and then where it goes above). From there I normalize that data on the y-axis and can use a threshold of 0.05 above the minimum. The issue comes from the use of a split-belt treadmill i.e. two force sensitive treadmill strips side-by-side with one for each leg. This allows for independent speed control.
Anyways, with perfect data the process is pretty simple. The problem is when the data does not drop back below 300N. This sort of thing happens if the person steps over the center line and onto the other belt.
In the attached file, the black vertical lines are the located Heelstrikes and red are Toe-offs. You can see that problems arise when the data is not uniform. Using a threshold is inconsistent between patients and using something like a derivative is really hard when it comes to the noise level at the top and bottom of the force curves.
Any ideas or directions to existing toolboxes would be very much appreciated.
  4 Comments
NGR MNFD
NGR MNFD on 1 Oct 2021
Edited: NGR MNFD on 1 Oct 2021
hello dear Tom Ruopp and dear Douglas Powell
I also work on the left and right foot cycle signals. I have a problem. To draw the signal, I took the data from the Physion site, and the shape it gave me was its y-axis in terms of the amount of voltage (which varies from -2000 to 2000) and its x-axis in terms of the number of samples. I want to know how can I change the y-axis from the voltage of the force signal to give me the shape you loaded so that I can clearly see the toeoff, the healstrike?please help me . thanks very much
Frederik Mellemkjær
Frederik Mellemkjær on 16 May 2022
Hi Tom,
Is it possible for you to share your program for detecting heelstrike and toeoff? I'm stuck with some data processing and looking at your plot, I think your program could be a great help.
Thanks a lot.
Bh
Frederik

Sign in to comment.

Answers (1)

NGR MNFD
NGR MNFD on 1 Oct 2021
and How can I check the checksum of the force signal binary file? This force signal is measured by a 12-bit adc. I was able to display it through the following method.
fileID1=fopen('control1.let','r');
A= fread(fileID1, [3, 45000], 'uint8')'; % matrix with 3 rows, each 8 bits long, = 2*12bit
fclose(fileID1);
M2H= bitshift(A(:,2), -4);
M1H= bitand(A(:,2), 15);
PRL=bitshift(bitand(A(:,2),8),9); % sign-bit
PRR=bitshift(bitand(A(:,2),128),5); % sign-bit
M( : , 1)= bitshift(M1H,8)+ A(:,1)-PRL;
M( : , 2)= bitshift(M2H,8)+ A(:,3)-PRR;
N1 = reshape(M',[90000,1]); plot(N1);
Can I also check to see if it is correct or not? I do not know what code to use in MATLAB to calculate checksum? Please show me. Thank you.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!