IP Library Granted Patent US 10,089,763
Granted Patent B2
US 10,089,763 · App. 15/694,705 · Granted Oct 2, 2018

Systems and methods for real-time data quantification, acquisition, analysis and feedback

Inventors: John Douglas (Potomac, MD); Frank Fornari (Naples, FL)
Assignee: BioMech Sensor LLC
G06T11/206A63B24/0006A63B60/46A63B71/0622G06F3/0346G06F3/04845G06F3/14G06T7/20A63B2024/0012A63B2071/0647G06F3/016G06F3/16G06T2207/30241
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,089,763
App. No.
15/694,705
Granted
Oct 2, 2018
Kind
B2
Abstract

This disclosure relates to systems, media, and methods for quantifying and monitoring exercise parameters and/or motion parameters, including performing data acquisition, analysis, and providing scientifically valid, clinically relevant, and/or actionable diagnostic feedback. Disclosed embodiments may receive real-time sensor data from a motion sensor or sensors mounted on a user and/or equipment while a user performs a test motion. Disclosed embodiments may also calculate a test motion profile based on the real-time sensor data, the test motion profile describing a multi-dimensional representation of the test motion performed by the user or computed motion profiles. Disclosed embodiments may include comparing the test motion profile to a template motion profile to determine a deviation amount for the test motion profile indicating how the test motion deviated from the template motion profile. Still further embodiments may correlate test motion profiles over time with health indicators.

Claims (93)

1. A method for monitoring motion parameters and providing near-instantaneous user feedback from real-time motion sensor data comprising:

loading a template motion profile, the template motion profile describing a multi-dimensional representation of acceleration and orientation over time;

receiving, from one or more inertial measurement units, real-time sensor data from a motion sensor while a user performs a test motion, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculating a test motion profile based on the real-time sensor data from the one or more inertial measurement units, the test motion profile describing a multi-dimensional representation of the test motion performed by the user;

comparing the template motion profile to the test motion profile to determine a deviation amount for the test motion profile indicating how the test motion deviated from the template motion profile by calculating the aggregate difference between the test motion profile and template motion profile over a predefined period of time using the real-time sensor data from the one or more inertial measurement units;

providing to the user, responsive to determining the calculated aggregate difference between the test motion profile and template motion profile exceeds a predetermined threshold aggregate difference amount, feedback based on a magnitude of the calculated aggregate difference, wherein the user receives the feedback between 5 and 20 milliseconds after receiving the real-time sensor data from the motion sensor;

receiving, from the one or more inertial measurement units, a plurality of sets of motion sensor data from a motion sensor, each of the plurality of sets of sensor data being captured while the user performs the test motion at chronologically distinct time periods, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculating a plurality of test motion profiles corresponding to the received plurality of sets of motion sensor data at the chronologically distinct time periods, the test motion profiles describing position and orientation of the motion sensor over time while the user performs the test motion;

comparing the plurality of test motion profiles to the template motion profile to determine a change in deviation from the template motion profile over time and an average deviation between each of the plurality of the test motion profiles at the chronologically distinct time periods; and

if it is determined that the change in deviation over time decreases at a rate that is greater than a pre-determined threshold rate or determined that the average deviation is less than a pre-determined deviation threshold, then generating an updated template motion profile and generating instructions for the user to perform an updated motion corresponding to the updated template motion profile.

2. The method of claim 1 , wherein comparing the template motion profile to the test motion profile further comprises determining the magnitude of the differences between the template motion profile and the test motion profile.

3. The method of claim 1 , wherein comparing the template motion profile to the test motion profile further comprises determining whether the test motion profile differs from the template motion profile by more than a threshold amount at a predefined set of points in time.

4. The method of claim 1 , wherein comparing the template motion profile to the test motion profile further comprises processing the test motion profile against an event model that includes performing a least squares difference calculation.

5. The method of claim 1 , further comprising:

transmitting the updated template motion profile, the updated motion corresponding to the updated motion profile, and the change in deviation over time or the average deviation to a computing device of a third party; and

responsive to receiving approval from the computing device of the third party, providing to the user the generated updated template motion profile and the generated instructions for the user to perform the updated motion.

6. The method of claim 1 , wherein the template motion profile corresponds to a first exercise, the updated template motion profile corresponds to a second exercise, and the second exercise is an alternative to the first exercise.

7. A method for monitoring motion parameters and providing near-instantaneous user feedback from real-time motion sensor data comprising:

loading a template motion profile, the template motion profile describing a multi-dimensional representation of acceleration and orientation over time;

receiving, from one or more inertial measurement units, real-time sensor data from a motion sensor while a user performs a test motion, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculating a test motion profile based on the real-time sensor data from the one or more inertial measurement units, the test motion profile describing a multi-dimensional representation of the test motion performed by the user;

comparing the template motion profile to the test motion profile to determine a deviation amount for the test motion profile indicating how the test motion deviated from the template motion profile by calculating the aggregate difference between the test motion profile and template motion profile over a predefined period of time using the real-time sensor data from the one or more inertial measurement units;

providing to the user, responsive to determining the calculated aggregate difference between the test motion profile and template motion profile exceeds a predetermined threshold aggregate difference amount, feedback based on a magnitude of the calculated aggregate difference, wherein the user receives the feedback between 5 and 20 milliseconds after receiving the real-time sensor data from the motion sensor;

receiving, from the one or more inertial measurement units, a plurality of sets of motion sensor data from a motion sensor, each of the plurality of sets of sensor data being captured while the user performs the test motion, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculating a plurality of test motion profiles corresponding to the received plurality of sets of motion sensor data, the test motion profiles describing position and orientation of the motion sensor over time while the user performs the test motion;

comparing the plurality of test motion profiles to the template motion profile to determine a deviation from the template motion profile over time and an average deviation;

providing to a third party, using a graphical user interface and in real-time, a visual indication of the plurality of test motion profiles in relation to the template motion profile, the deviation from the template motion profile over time, and the average deviation, the graphical user interface including a selection area for the third party to provide feedback to the user, including selecting a feedback mechanism to provide the feedback and an output pattern for the selected feedback mechanism; and

responsive to receiving a selection from the third party at the selection area of the graphical user interface, generating a signal to provide real-time feedback to the user based on the selected feedback mechanism and the selected output pattern for the selected feedback mechanism.

8. The method of claim 7 , wherein responsive to receiving a selection from the third party at a second selection area of the graphical user interface, generating a signal to set one or more threshold levels for the deviation that, when the deviation exceeds at least one of the one or more threshold levels, feedback is automatically provided to the user.

9. A system for monitoring motion parameters and providing near-instantaneous user feedback from real-time motion sensor data comprising:

a motion sensor that includes one or more inertial measurement units;

a non-transitory computer readable storage medium configured to store instructions; and

one or more processors programmed to execute the stored instructions to:

load a template motion profile, the template motion profile describing a multi-dimensional representation of acceleration and orientation over time;

receive, from the one or more inertial measurement units, real-time sensor data from a motion sensor while a user performs a test motion, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculate a test motion profile based on the real-time sensor data from the one or more inertial measurement units, the test motion profile describing a multi-dimensional representation of the test motion performed by the user;

compare the template motion profile to the test motion profile to determine a deviation amount for the test motion profile indicating how the test motion deviated from the template motion profile by calculating the aggregate difference between the test motion profile and template motion profile over a predefined period of time using the real-time sensor data from the one or more inertial measurement units;

provide to the user, responsive to determining the calculated aggregate difference between the test motion profile and template motion profile exceeds a predetermined threshold aggregate difference amount, feedback based on a magnitude of the calculated aggregate difference, wherein the user receives the feedback between 5 and 20 milliseconds after receiving the real-time sensor data from the motion sensor;

receive, from the one or more inertial measurement units, a plurality of sets of motion sensor data from a motion sensor, each of the plurality of sets of sensor data being captured while the user performs the test motion at chronologically distinct time periods, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculate a plurality of test motion profiles corresponding to the received plurality of sets of motion sensor data at the chronologically distinct time periods, the test motion profiles describing position and orientation of the motion sensor over time while the user performs the test motion;

compare the plurality of test motion profiles to the template motion profile to determine a change in deviation from the template motion profile over time and an average deviation between each of the plurality of the test motion profiles at the chronologically distinct time periods; and

if it is determined that the change in deviation over time decreases at a rate that is greater than a pre-determined threshold rate or determined that the average deviation is less than a pre-determined deviation threshold, then generating an updated template motion profile and generating instructions for the user to perform an updated motion corresponding to the updated template motion profile.

10. The system of claim 9 , wherein comparing the template motion profile to the test motion profile further comprises determining the magnitude of the differences between the template motion profile and the test motion profile.

11. The system of claim 9 , wherein comparing the template motion profile to the test motion profile further comprises determining whether the test motion profile differs from the template motion profile by more than a threshold amount at a predefined set of points in time.

12. The system of claim 9 , wherein comparing the template motion profile to the test motion profile further comprises processing the test motion profile against an event model that includes performing a least squares difference calculation.

13. The system of claim 9 , wherein the one or more processors are programmed to execute the stored instructions further to:

transmitting the updated template motion profile, the updated motion corresponding to the updated motion profile, and the change in deviation over time or the average deviation to a computing device of a third party; and

responsive to receiving approval from the computing device of the third party, providing to the user the generated updated template motion profile and the generated instructions for the user to perform the updated motion.

14. The system of claim 9 , wherein the template motion profile corresponds to a first exercise, the updated template motion profile corresponds to a second exercise, and the second exercise is an alternative to the first exercise.

15. A system for monitoring motion parameters and providing near-instantaneous user feedback from real-time motion sensor data comprising:

a motion sensor that includes one or more inertial measurement units;

a non-transitory computer readable storage medium configured to store instructions; and

one or more processors programmed to execute the stored instructions to:

load a template motion profile, the template motion profile describing a multi-dimensional representation of acceleration and orientation over time;

receive, from the one or more inertial measurement units, real-time sensor data from a motion sensor while a user performs a test motion, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculate a test motion profile based on the real-time sensor data from the one or more inertial measurement units, the test motion profile describing a multi-dimensional representation of the test motion performed by the user;

compare the template motion profile to the test motion profile to determine a deviation amount for the test motion profile indicating how the test motion deviated from the template motion profile by calculating the aggregate difference between the test motion profile and template motion profile over a predefined period of time using the real-time sensor data from the one or more inertial measurement units;

provide to the user, responsive to determining the calculated aggregate difference between the test motion profile and template motion profile exceeds a predetermined threshold aggregate difference amount, feedback based on a magnitude of the calculated aggregate difference, wherein the user receives the feedback between 5 and 20 milliseconds after receiving the real-time sensor data from the motion sensor;

receive, from one or more inertial measurement units, a plurality of sets of motion sensor data from a motion sensor, each of the plurality of sets of sensor data being captured while the user performs the test motion, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculate a plurality of test motion profiles corresponding to the received plurality of sets of motion sensor data, the test motion profiles describing position and orientation of the motion sensor over time while the user performs the test motion;

compare the plurality of test motion profiles to the template motion profile to determine a deviation from the template motion profile over time and an average deviation;

provide to a third party, using a graphical user interface and in real-time, a visual indication of the plurality of test motion profiles in relation to the template motion profile, the deviation from the template motion profile over time, and the average deviation, the graphical user interface including a selection area for the third party to provide feedback to the user, including selecting a feedback mechanism to provide the feedback and an output pattern for the selected feedback mechanism; and

responsive to receiving a selection from the third party at the selection area of the graphical user interface, generate a signal to provide real-time feedback to the user based on the selected feedback mechanism and the selected output pattern for the selected feedback mechanism.

16. The system of claim 15 , wherein responsive to receiving a selection from the third party at a second selection area of the graphical user interface, generating a signal to set one or more threshold levels for the deviation that, when the deviation exceeds at least one of the one or more threshold levels, feedback is automatically provided to the user.

17. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

loading a template motion profile, the template motion profile describing a multi-dimensional representation of acceleration and orientation over time;

receiving, from one or more inertial measurement units, real-time sensor data from a motion sensor while a user performs a test motion, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculating a test motion profile based on the real-time sensor data from the one or more inertial measurement units, the test motion profile describing a multi-dimensional representation of the test motion performed by the user;

comparing the template motion profile to the test motion profile to determine a deviation amount for the test motion profile indicating how the test motion deviated from the template motion profile by calculating the aggregate difference between the test motion profile and template motion profile over a predefined period of time using the real-time sensor data from the one or more inertial measurement units;

providing to the user, responsive to determining the calculated aggregate difference between the test motion profile and template motion profile exceeds a predetermined threshold aggregate difference amount, feedback based on a magnitude of the calculated aggregate difference, wherein the user receives the feedback between 5 and 20 milliseconds after receiving the real-time sensor data from the motion sensor;

receiving, from the one or more inertial measurement units, a plurality of sets of motion sensor data from a motion sensor, each of the plurality of sets of sensor data being captured while the user performs the test motion at chronologically distinct time periods, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculating a plurality of test motion profiles corresponding to the received plurality of sets of motion sensor data at the chronologically distinct time periods, the test motion profiles describing position and orientation of the motion sensor over time while the user performs the test motion;

comparing the plurality of test motion profiles to the template motion profile to determine a change in deviation from the template motion profile over time and an average deviation between each of the plurality of the test motion profiles at the chronologically distinct time periods; and

if it is determined that the change in deviation over time decreases at a rate that is greater than a pre-determined threshold rate or determined that the average deviation is less than a pre-determined deviation threshold, then generating an updated template motion profile and generating instructions for the user to perform an updated motion corresponding to the updated template motion profile.

18. The medium of claim 17 , wherein comparing the template motion profile to the test motion profile further comprises determining the magnitude of the differences between the template motion profile and the test motion profile.

19. The medium of claim 17 , wherein comparing the template motion profile to the test motion profile further comprises determining whether the test motion profile differs from the template motion profile by more than a threshold amount at a predefined set of points in time.

20. The medium of claim 17 , wherein comparing the template motion profile to the test motion profile further comprises processing the test motion profile against an event model that includes performing a least squares difference calculation.

21. The medium of claim 17 , the operations further comprising:

transmitting the updated template motion profile, the updated motion corresponding to the updated motion profile, and the change in deviation over time or the average deviation to a computing device of a third party; and

responsive to receiving approval from the computing device of the third party, providing to the user the generated updated template motion profile and the generated instructions for the user to perform the updated motion.

22. The medium of claim 17 , wherein the template motion profile corresponds to a first exercise, the updated template motion profile corresponds to a second exercise, and the second exercise is an alternative to the first exercise.

23. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to perform operations comprising:

loading a template motion profile, the template motion profile describing a multi-dimensional representation of acceleration and orientation over time;

receiving, from one or more inertial measurement units, real-time sensor data from a motion sensor while a user performs a test motion, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculating a test motion profile based on the real-time sensor data from the one or more inertial measurement units, the test motion profile describing a multi-dimensional representation of the test motion performed by the user;

comparing the template motion profile to the test motion profile to determine a deviation amount for the test motion profile indicating how the test motion deviated from the template motion profile by calculating the aggregate difference between the test motion profile and template motion profile over a predefined period of time using the real-time sensor data from the one or more inertial measurement units;

providing to the user, responsive to determining the calculated aggregate difference between the test motion profile and template motion profile exceeds a predetermined threshold aggregate difference amount, feedback based on a magnitude of the calculated aggregate difference, wherein the user receives the feedback between 5 and 20 milliseconds after receiving the real-time sensor data from the motion sensor;

receiving, from the one or more inertial measurement units, a plurality of sets of motion sensor data from a motion sensor, each of the plurality of sets of sensor data being captured while the user performs the test motion, the motion sensor being attached to the user or equipment operated by the user with which the user performs the test motion;

calculating a plurality of test motion profiles corresponding to the received plurality of sets of motion sensor data, the test motion profiles describing position and orientation of the motion sensor over time while the user performs the test motion;

comparing the plurality of test motion profiles to the template motion profile to determine a deviation from the template motion profile over time and an average deviation;

providing to a third party, using a graphical user interface and in real-time, a visual indication of the plurality of test motion profiles in relation to the template motion profile, the deviation from the template motion profile over time, and the average deviation, the graphical user interface including a selection area for the third party to provide feedback to the user, including selecting a feedback mechanism to provide the feedback and an output pattern for the selected feedback mechanism; and

responsive to receiving a selection from the third party at the selection area of the graphical user interface, generating a signal to provide real-time feedback to the user based on the selected feedback mechanism and the selected output pattern for the selected feedback mechanism.

24. The medium of claim 23 , wherein responsive to receiving a selection from the third party at a second selection area of the graphical user interface, generating a signal to set one or more threshold levels for the deviation that, when the deviation exceeds at least one of the one or more threshold levels, feedback is automatically provided to the user.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 1, 2024
From: BIOMECH SENSOR LLC
To: BIOMECH HEALTH, LLC
Reel/Frame 069105/0370 →
SECURITY INTEREST Recorded Jul 7, 2021
From: BIOMECH SENSOR, LLC; BIOMECH GOLF, LLC
To: FORNARI, FRANK; BAUER, GWEN
Reel/Frame 056771/0355 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE OF INCORPORATION PREVIOUSLY RECORDED AT REEL: 43475 FRAME: 522. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 8, 2021
From: DOUGLAS, JOHN; FORNARI, FRANK
To: BIOMECH SENSOR, LLC
Reel/Frame 056676/0064 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2017
From: DOUGLAS, JOHN; FORNARI, FRANK
To: BIOMECH SENSOR LLC
Reel/Frame 043475/0522 →
Continuity (2)
Continuation 15394779 · Dec 29, 2016
Related Publication 20180189989A1 · Jul 5, 2018