U.S. patent application number 15/814901 was filed with the patent office on 2018-05-17 for system and method for personalized exercise training and coaching.
The applicant listed for this patent is Lumo BodyTech, Inc. Invention is credited to Samir Akre, Andrew Robert Chang, Ray Franklin Cowan, Daniel Le Ly, Rebecca Shultz, Chung-Che Charles Wang.
Application Number | 20180133551 15/814901 |
Document ID | / |
Family ID | 62106481 |
Filed Date | 2018-05-17 |
United States Patent
Application |
20180133551 |
Kind Code |
A1 |
Chang; Andrew Robert ; et
al. |
May 17, 2018 |
SYSTEM AND METHOD FOR PERSONALIZED EXERCISE TRAINING AND
COACHING
Abstract
A system and method that includes collecting kinematic data at
an activity monitoring system coupled to a user; selecting a
training activity of the user, the training activity selected from
a plurality of training activity options; and processing the
kinematic data in a processing mode of the selected training
activity and thereby generating a set of training metrics that
comprises at least one training metric.
Inventors: |
Chang; Andrew Robert;
(Sunnyvale, CA) ; Wang; Chung-Che Charles; (Palo
Alto, CA) ; Ly; Daniel Le; (Mountain View, CA)
; Cowan; Ray Franklin; (Mountain View, CA) ;
Shultz; Rebecca; (Mountain View, CA) ; Akre;
Samir; (Santa Clara, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
Lumo BodyTech, Inc |
Mountain View |
CA |
US |
|
|
Family ID: |
62106481 |
Appl. No.: |
15/814901 |
Filed: |
November 16, 2017 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
62423100 |
Nov 16, 2016 |
|
|
|
62522015 |
Jun 19, 2017 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
A63B 24/0075 20130101;
A63B 24/0062 20130101; G16H 20/30 20180101; A63B 71/0622 20130101;
A63B 2230/04 20130101; A63B 2225/50 20130101; A63B 24/0003
20130101 |
International
Class: |
A63B 24/00 20060101
A63B024/00; A63B 71/06 20060101 A63B071/06 |
Claims
1. A method comprising: collecting kinematic data at an activity
monitoring system coupled to a user; selecting a training activity
of the user, the training activity selected from a plurality of
training activity options; and processing the kinematic data in a
processing mode of the selected training activity and thereby
generating a set of training metrics that comprises at least one
training metric.
2. The method of claim 1, wherein the plurality of training
activity options comprises at least pushups, lunges, squats, and
planks.
3. The method of claim 2, wherein the plurality of training
activity options further comprises at least bicep curls,
deadlifting, jumping jacks, sit ups, and pull ups.
4. The method of claim 1, wherein the plurality of training
activity options comprises at least pushups.
5. The method of claim 4, wherein processing the kinematic data
further comprises processing in a pushup processing mode that
comprises of segmenting pushup repetitions from the kinematic data
and extracting push training metrics from pushup repetitions.
6. The method of claim 5, wherein processing in a pushup processing
mode further comprises detecting a style of pushups from a set of
pushup styles.
7. The method of claim 1, wherein the plurality of training
activity options comprises at least lunges; and wherein processing
the kinematic data further comprises processing in a lunge
processing mode that comprises classifying lunge foot, counting
lunges by foot, and classifying at least one aspect of lunge
form.
8. The method of claim 1, wherein the plurality of training
activity options comprises at least squats; and wherein processing
the kinematic data further comprises processing in a squat
processing mode that comprises counting squats and classifying at
least one aspect of squat form.
9. The method of claim 1, wherein the plurality of training
activity options comprises at least planks; and wherein processing
the kinematic data further comprises processing in a plank
processing mode that comprises generating the training metrics of
plank duration, pelvic tilt, core stability, and plank style
classification.
10. The method of claim 1, wherein the plurality of training
activity options comprises at least one asymmetric training
activity; and wherein processing the kinematic data comprises, in
an asymmetric processing mode, detecting training activity side
through the kinematic data and generating training metrics for
right and left sides of a training activity.
11. The method of claim 10, further comprising generating a
comparison of training metrics of the left and right sides of a
training activity.
12. The method of claim 1, wherein selecting a training activity of
the user, further comprises processing the kinematic data in a
classification mode and thereby identifying a current training
activity.
13. The method of claim 1, further comprising monitoring the
training metrics compared to at least one training condition and
generating feedback.
14. The method of claim 1, further comprising generating an
exercise plan from the training metrics.
15. The method of claim 1, wherein processing of the kinematic data
and generating at least one training metric comprises classifying
form of performing a training activity through the kinematic
data.
16. The method of claim 1, wherein processing of the kinematic data
and generating at least one training metric comprises detecting a
fatigue state in kinematic data during performance of a training
activity.
17. The method of claim 1, further comprising collecting an
electromyography signal from the user, predicting muscle usage from
the electromyography signal during a training activity, and
generating a form classification training metric classifying on
muscle usage and at least a subset of the training metrics of the
training activity.
18. A system comprising: an inertial measurement unit configured to
collect kinematic data when coupled to a user; a processing system
configured to: select a training activity from a plurality of
training activity options, and process the kinematic data in a
processing mode of the selected training activity and thereby
generate a set of training metrics.
19. The system of claim 18, wherein the plurality of training
activity options comprises at least pushups, lunges, squats, and
planks.
20. The system of claim 18, further comprising at least one
feedback interface activated in response to the training metrics.
Description
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This Application claims the benefit of U.S. Provisional
Application No. 62/423,100, filed on 16 Nov. 2016, and U.S.
Provisional Application No. 62/522,015, filed on 19 Jun. 2017 both
of which are incorporated in their entireties by this
reference.
TECHNICAL FIELD
[0002] This invention relates generally to the field of activity
tracking, and more specifically to a new and useful system and
method for personalized exercise training and coaching.
BACKGROUND
[0003] Athletes that exercise and work out to stay physically fit
can work with a personal trainer who prescribes a customized set of
exercises based on their goals, teaches the exercise and then
monitors their form while doing the exercise. However, working with
a personal trainer can be quite expensive and, because of the
one-on-one relationship, personal training is difficult to scale
because a personal trainer can only watch so many individuals
simultaneously.
[0004] On the other hand, smartphone and internet-based
applications have been developed to provide more education around
exercises and training plans that can reach millions of people with
a single app. While these applications can provide education,
coaching and track progress, users need to manually enter in the
exercises they have done and the number of repetitions of the
exercises. For example, if the user did 10 squats, he would enter
in 10 squats manually. This requires a lot of additional user
input. These applications also do not provide the coaching and
feedback on form and progress that can be obtained via a personal
trainer. Thus, there is a need in the activity tracking field to
create a new and useful system and method for personalized exercise
training and coaching. This invention provides such a new and
useful system and method.
BRIEF DESCRIPTION OF THE FIGURES
[0005] FIG. 1 is a schematic representation of a system of a
preferred embodiment;
[0006] FIG. 2 is a flowchart representation of a method of a
preferred embodiment;
[0007] FIG. 3 is a schematic representation of an exemplary bicep
curl and the corresponding motion paths;
[0008] FIG. 4 is a diagram representation of training metric
analysis applied to different ways of performing a bicep curl;
[0009] FIG. 5 is a flowchart representation of a variation for
using biometric sensing;
[0010] FIG. 6 is a schematic representation of an application used
in monitoring a training activity;
[0011] FIG. 7 is a schematic representation of processing kinematic
data in a pushup processing mode;
[0012] FIG. 8 is an exemplary model chart classifying standard and
knee pushups;
[0013] FIG. 9 is a schematic representation of motion paths during
standard and knee pushups;
[0014] FIG. 10 is an exemplary model chart classifying pelvic sag
in pushups;
[0015] FIG. 11 is an exemplary model chart classifying pelvic rise
in pushups;
[0016] FIG. 12 is a schematic representation of processing
kinematic data in a lunge processing mode;
[0017] FIGS. 13 and 14 are exemplary model charts classifying lunge
form quality;
[0018] FIG. 15 is a schematic representation of processing
kinematic data in a squat processing mode;
[0019] FIG. 16 is an exemplary model chart classifying squat
quality;
[0020] FIG. 17 is an exemplary model chart classifying squat knee
properties;
[0021] FIG. 18 is a schematic representation of motion paths during
good squats and squats where knees are bent over toes; and
[0022] FIG. 19 is a schematic representation of a good plank and
bad plank.
DESCRIPTION OF THE EMBODIMENTS
[0023] The following description of the embodiments of the
invention is not intended to limit the invention to these
embodiments but rather to enable a person skilled in the art to
make and use this invention.
1. Overview
[0024] A system and method for personalized exercise training and
coaching of a preferred embodiment functions to use biomechanical
and/or biometric sensing to track various exercise training
activities. Compared to a personal trainer, the system and method
can provide a scalable fitness training and coaching system that
can be more widely accessed by users yet retaining the detailed
feedback that may be provided by a personal trainer. Furthermore,
through using sensing technology, the system and method can provide
higher quality and consistent analysis of exercise training
activities.
[0025] The system and method preferably include hardware, software
processing modules, user applications, and/or other services that
provide an exercise training platform that may provide education,
measuring, tracking, and coaching. The system and method may be
used for a user to gain a personal view into their training
progress, but may additionally or alternatively be used to
communicate the metrics with coaches, friends, or training
teams.
[0026] In particular, the system and method leverage the use of at
least one wearable activity monitoring system that tracks at least
one form of kinematic data. That kinematic data can be selectively
processed across a set of different exercise activities and used in
tracking one or more training metrics.
[0027] Activity detection and tracking of the system and method can
be done with a user performing various exercises alone with a
standalone activity monitoring system or with a companion software
application that can sit on a smart phone, smart watch, or other
separate computing device. The companion application can educate a
user about the exercises, create a personalized training plan for
the user and work with the wearable device to increase the
biomechanical analysis accuracy.
[0028] In one preferred implementation, the companion application
(or more generally the system and method) can coach a user in
real-time to perform specific exercises and the parameters of
performing the exercise (e.g., number of repetitions/sets or
duration). The application will send a notification to the wearable
device to detect and analyze the specific exercise. The wearable
device will then count the number of repetitions (i.e., the number
of instances of an exercise is performed), measure the quality of
the repetition and let the application know when the user is done
with the specific exercise so that the application can move on to
the next one automatically without user input.
[0029] In some implementations, the system and method may provide
detection of the biomechanical qualities of the exercise as
performed by the user. The biomechanical quality of an exercise can
be characterized by the smoothness of the displacement path or the
wobbliness of the path, the velocity, velocity consistency and
length of the path, orientation angle of device (depending on where
it is mounted to the user), frequency or intensity as the device
shakes while performing the activity.
[0030] The biomechanical quality of the motion can be quantified
algorithmically using a logic-and-heuristics approach with error
correction that calculates the vertical, forward and lateral
displacements and velocities in physical space from the
accelerations and angular velocities. The biomechanical quality of
the motion may additionally or alternatively be quantified using a
machine learning or algorithmic approach. For example, good and bad
form could be classifications trained in a machine learning model
and used for classifying quality of performing a training activity.
The angle of the device is oriented with gravity, calibrated to the
body, and then calculated throughout the entire movement from
beginning to end as an additional or alternative metric for
exercise quality.
[0031] The system and method preferably use an activity monitoring
system which can be a standalone device or may be integrated into
another product such as a smart phone, smart watch, smart glasses
and the like. The system and method can analyze exercises such as
squats, pushups, lunges, weight lifting (e.g., curls, etc.),
deadlifting, jumping jacks, boxing, sit ups, planks (e.g., side
and/or straight planks), pull ups, pilates, yoga, and/or other
suitable types of exercises.
[0032] As one potential benefit, the system and method may enable
real-time coaching and/or feedback based on sensor-detected
exercise activity. The user may be alleviated from counting
progress during an exercise; recording and tracking history of
exercise performance; and/or determining the right rate of progress
or sets of exercises to perform.
[0033] As a related benefit, the system and method may provide
qualitative analysis based on detection of biomechanical
performance of the exercise activities. In one variation, exercise
form can be detected. For example, improper lifting form may be
detected and an alert signaled to prevent possible injury. In
another variation, the qualitative change in exercise performance
during an exercise session can be used to detect possible states of
fatigue, injury, or other causes for performance changes.
[0034] As a related benefit, the system and method may be used to
assess the qualitative progress in exercise performance. This can
be used in measuring recovery progress such as after an injury.
[0035] The system and method may have additional or alternative
benefits such as using the training metrics to predict calorie
burn, to enable remote monitoring of training progress by a coach,
and/or to enable other features.
[0036] In an exemplary usage scenario, the system may walk a user
through performing 10 squats in a workout. The system is notified
to count and analyze the squats. During each squat, the system
analyzes squat motion path displacement in the vertical, forward,
and lateral planes, the smoothness and shakiness of the squatting
motion path, the velocity and consistency of velocity throughout
the motion path, and the angle and stability of the pelvis. The
pelvic angle can be measured to detect if the user is overly bent
during a squat. The system can automatically count and compare the
consistency of a set of squats to each other, to previous training
workouts, or to other users. If the user is doing the squat
incorrectly, the sensor can provide haptic or audio feedback, or
the software application can provide real-time guidance to the user
on how to correct the specific issue. Once the user hits their 10
squat goal, the application will automatically congratulate the
user and move on to the next exercise. The system and method could
additionally use the training metrics to generate a training plan
that may be updated based on performance, triggering alerts based
on fatigue/injury detection, performance comparison to other users,
and/or other applications of the training metrics.
2. System
[0037] As shown in FIG. 1, a system for personalized exercise
training and coaching of a preferred embodiment can include an
activity monitoring system 110, biomechanical processing modules
for a set of exercise training activities 120, and at least one
feedback interface 130. In one implementation, the system can
include an application 140 communicatively coupled to that of the
activity monitoring system 110. The activity monitoring system 110
and the application 140 can operate cooperatively in configured
processing of collected kinematic data and generation of resulting
interactions. The system may additionally include other biometric
sensors 150 such as an electromyography (EMG), a temperature
sensor, a heart rate sensor, and/or any suitable biometric
sensor.
[0038] The system preferably includes at least one device component
including the activity monitoring system 110 that is physically
coupled to the body of the user. Depending on the specific workout
activity, the device can be worn on the waist, upper body, shoes,
thigh, arms, wrists or head. The device can be clipped onto the
waist of a pair of shorts, embedded into a pocket in a garment,
sport band, arm and wrist bands, or an adhesive patch. The device
can also be embedded into any other form factor that lets the
device sit securely on a user.
[0039] An activity monitoring system 110 of a preferred embodiment
functions to collect kinematic data that is then transformed to one
or more training activity signals such as biomechanical signals.
The biomechanical signals sometimes in combination with other
inputs can be used to trigger or direct interactions of the system.
The activity monitoring system 110 can include an inertial
measurement unit 112, a processor 114, and optionally a
communication module 116. The activity monitoring system 110 can
additionally include any suitable components to support
computational operation such as a processor, data storage, RAM, an
EEPROM, user input elements (e.g., buttons, switches, capacitive
sensors, touch screens, and the like), user output elements (e.g.,
status indicator lights, graphical display, speaker, audio jack,
vibrational motor, and the like), communication components (e.g.,
Bluetooth LE, Zigbee, NFC, Wi-Fi, cellular data, and the like),
and/or other suitable components.
[0040] The activity monitoring system 110 may serve as a standalone
device where operation is fully contained in one device. The
activity monitoring system 110 may additionally or alternatively
communicate with at least one secondary system such as an
application operating on a computing device; a remote activity data
platform (e.g., a cloud-hosted platform); a secondary device (e.g.,
a mobile phone, a smart watch, computer, TV, augmented/virtual
reality system, etc.); or any suitable external system.
[0041] In one variation, the system uses a multi-point sensing
approach, wherein a set of inertial measurement units 112 measure
motion at multiple points. The inertial measurement units 112 can
be integrated into distinct devices wherein the system includes
multiple communicatively coupled devices that can be mounted to
different body locations. The points of measurement may be in the
waist region, the upper leg, the lower leg, the foot, and/or any
suitable location. Other points of measurement can include the
upper body, the head, or portions of the arms. Various
configurations of multi-point sensing can be used for sensing
biomechanical signals. Different configurations may offer increased
resolution, more robust sensing of one or more signals, and for
detection of additional or alternative biomechanical signals. A
foot activity monitor variation could be attached to or embedded in
a shoe. A shank or thigh activity monitor could be strapped to the
leg, embedded in an article of clothing, or positioned with any
suitable approach. In a preferred implementation, the system
includes a pelvic monitoring device that serves as a base sensor as
many aspects of exercise activities can be interpreted from pelvic
activity. A second monitoring device may be positioned on an arm or
leg. The second monitoring device may additionally be expected to
be movable such that it can be moved to different parts of the body
depending on the activity.
[0042] Multiple points of sensing can be used to obtain motion data
that provides unique motion information that may be less prevalent
or undetectable from just a single sensing point. Multiple points
can be used in distinguishing alternative biomechanical aspects
and/or to detect particular biomechanical attributes with more
resolution or consistency. Multiple points may be used for
detecting foot gait attributes, knee flex angle, and/or
distinguishing between right and left leg or arm actions. Single
point sensing may additionally be applied to right and left leg or
arm attributes, upper core body or arms. The multiple points can be
used to obtain clearer signals for particular actions such as when
a user bends to pick up a heavy object or rotates his body left or
right. Multiple points can additionally be used in providing
relative kinematics between different points of the body. The
relative angular orientation and displacement can be detected
between the foot, thigh, pelvic, thoracic and neck region.
Similarly, relative velocities between a set of activity monitor
systems can be used to generate particular biomechanical
signals.
[0043] The inertial measurement unit 112 functions to measure
multiple kinematic properties of an activity. An inertial
measurement unit 112 can include at least one accelerometer,
gyroscope, magnetometer, and/or other suitable inertial sensor. The
inertial measurement unit 112 preferably includes a set of sensors
aligned for detection of kinematic properties along three
perpendicular axes. In one preferred variation, the inertial
measurement unit 112 is a 9-axis motion-tracking device that
includes a 3-axis gyroscope, a 3-axis accelerometer, and a 3-axis
magnetometer. The sensor device can additionally include an
integrated processor that provides sensor fusion. Sensor fusion can
combine kinematic data from the various sensors to reduce
uncertainty. In this application, it may be used to estimate
orientation with respect to gravity and may be used in separating
forces or sensed dynamics for data from a sensor. The on-device
sensor fusion may provide other suitable sensor conveniences.
Alternatively, multiple distinct sensors can be combined to provide
a set of kinematic measurements.
[0044] An inertial measurement unit 112 and/or the activity
monitoring system 110 can additionally include other sensors such
as an altimeter, GPS, or any suitable sensor. Additionally, the
system can include a communication channel via the communication
module 116 to one or more computing devices with one or more
sensors. For example, an inertial measurement unit can include a
Bluetooth communication channel to a smart phone, and the smart
phone can track and retrieve data on geolocation, distance covered,
elevation changes, land speed, topographical incline at current
location, and/or other data.
[0045] The processor 114 functions to transform sensor data
generated by the inertial measurement unit 112. The processor 114
can include a calibration module and a set of processing modules
used in interpreting training activities from the kinematic data.
The processing can take place on the activity monitoring system 110
or be wirelessly transmitted to a smartphone, computer, web server,
and/or other computing system that processes the biomechanical
signals.
[0046] The processor 114 used in applying signal processing on the
kinematic data can be integrated with the activity monitoring
system 110. The processor 114 may alternatively be application
logic operable on a secondary device such as a smart phone. In this
variation, the processor 114 can be integrated with the user
application. In yet another variation, the processor 114 can be a
remote processor accessible over the network. Remote processing may
enable large datasets to be more readily leveraged when analyzing
kinematic data.
[0047] The communication module 116 functions to relay data between
the activity monitoring system no and at least one other system.
The communication module 116 may use Bluetooth, Wi-Fi, cellular
data, and/or any suitable medium of communication. For example, the
communication module 116 can be a Bluetooth chip with RF antenna
built into the device. As discussed, the system may be a standalone
device where there is no communication module 116.
[0048] The system can additionally include one or more feedback
elements, which function to provide a medium for delivering
real-time feedback to the user. A feedback element can include a
haptic feedback element (e.g., a vibrational motor), audio
speakers, a display, or other mechanisms for delivering feedback.
Other user interface elements for input and/or output can
additionally be incorporated into the device such as audio output
elements, buttons, touch sensors, and the like.
[0049] In some variations, the system may include one or more
biometric sensor 150. Preferably, the biometric sensor includes an
electromyography (EMG) sensor. Detection of electrical activity of
the muscles can be used in interpreting muscle activity. Muscle
activity combined with biometric modeling can be used to understand
the effectiveness of an exercise and if the correct muscles are
being activated properly.
[0050] The biomechanical processing modules 120 of the system
function to characterize user motion and activity metrics for a set
of different exercise training activities. The system is preferably
usable across a set of distinct exercises, but the system may
alternatively include biomechanical processing modules for a single
type of exercise. The exercises can include squats, pushups,
lunges, weight lifting (e.g., curls, etc.), deadlifting, jumping
jacks, boxing, sit ups, planks (e.g., side and/or straight planks),
pull ups, pilates, yoga, and/or other suitable types of exercises.
The different processing modules 120 are preferably used during
different processing modes of the system.
[0051] A biomechanical processing module is preferably configured
to process and transform sensed kinematic data into metrics
reflecting the performance of the exercise. Types of training
activities can include count, cadence/interval, cadence
consistency, displacements (e.g., linear and/or angular),
displacement consistency, biomechanical orientations such as core
stability, motion path, performance classification (e.g., detecting
smoothness, jerkiness, tremors, etc.), and/or other types of
metrics. Different training activities may have different sets of
training metrics. A biomechanical processing module may
additionally include a training activity classifier, which may be
used in automatic or semi-automatic selection of a training
activity. In some variations, different training activities may
benefit from different sensor positioning. The device of the
activity monitoring system 110 may be repositioned during different
training activities. Alternatively, a multi-sensor variation may
activate or use different sensors in different locations.
[0052] Count training metric characterizes a count of iterations of
the training activity. The count preferably counts repetitions. A
count metric may additionally segment repetitions as sets so that a
count of sets and reps can be collected. A set count here
characterizes a count of the number of groupings of repetitions of
a training activity. For example, a count metric could count 3 sets
of 20, 15, and 10 repetitions. For training activities that don't
have the concept of a repetition, such as a plank, a count metric
may alternatively be used to measure the duration of the training
activity.
[0053] A cadence or interval metric characterizes the time between
repetitions. Frequency may alternatively be used as another way of
representing cadence metrics. Cadence metrics may function to give
insight into the difficulty level and/or the level of fatigue of
the user.
[0054] Cadence consistency characterizes the amount of consistency
in the cadence. Cadence changes can be a sign of fatigue. For
example, as a user gets tired, cadence may increase (often with a
decrease in form quality) to finish a set quicker or slow down to
hold a resting position longer.
[0055] Displacements (e.g., linear and/or angular) can characterize
different translations that happen during a training activity. The
type of displacement metric depends on the training activity.
Linear translations like vertical distance between the maximum and
minimum height can be measured for pushups, squats, lunges, and
other training activities. Angular rotations may additionally or
alternatively be measured for different training activities such as
bicep curls. Displacements can be used in classifying different
aspects of a training activity as form as discussed herein.
[0056] Displacement consistency characterizes the amount of
consistency for repeated displacements. Well-performed repetitions
of a training activity ideally have high level of displacement
consistency.
[0057] Biomechanical orientations can characterize any suitable
form of orientation, position, or posture measurements during the
training activity or during portions of a training activity. Core
stability may be derived from biomechanical orientation
measurements that function to characterize the movement of the core
in three planes. Core stability may also include the consistency of
the orientation metrics over time. For example, if a user is stable
while performing the activity, the core stability orientation may
not vary, but if the user was fatigued and muscles were shaking,
the orientation measurements may vary widely. Core stability may
function to indirectly measure the degree to which the core is
engaged during an exercise.
[0058] Motion path metrics may characterize the overall movement
pattern of one or more points of the body during a training
activity. These paths can be two dimensional or three dimensional.
Inconsistency of a motion path may be a sign of fatigue.
Additionally particular training activities may have particular
motion path properties that can be monitored for good or bad
performance patterns.
[0059] Performance classification (e.g., detecting smoothness,
jerkiness, tremors, etc.) metrics may be classifiers or labels that
can be detected for different properties of performing the training
activity. Shakiness and tremors could be detected during
performance. Shakiness and tremors may be achieved through signal
processing on the motion during an instance of a training
activity.
[0060] A training activity classifier is preferably an activity
processing module used in detecting and classifying kinematic data
according to the predicted training activity. This classifier can
be used for detecting what activities are being performed. Upon
selecting a current training activity, specific training activity
processing modules can be selected and used in processing the
kinematic data.
[0061] A feedback interface 130 functions to provide some form of
feedback to the user. The feedback interface 130 may be integrated
with the activity monitoring system 110, the application 140,
and/or any suitable device. The feedback interface is preferably
activated in response to at least one training metric. A feedback
interface 130 preferably enables activation of one or more feedback
outlets such as a display, an audio system, haptic feedback, and
the like. In one variation, the system can enable optional use of
an application 140. In one example, the user can also use the
wearable device without the companion app. During this use case,
the wearable device will track the activities done, count the reps
and calories burned, and store the data for upload in the future.
If fatigue is detected, the device may alert the user via haptic,
visual or audio feedback.
[0062] The application 140 functions as one potential outlet of the
biomechanical signal output. The application 140 is preferably used
in combination with the activity monitoring system 110 to
facilitate interactions with the user and/or coordinate processing
and synchronization of data. The user application 140 can be any
suitable type of user interface component. An application 140 is
preferably user accessible on a personal computing device as a
native application or as an internet application. Preferably, the
user application 140 is a graphical user interface operable on a
user computing device. The user computing device can be a smart
phone, a desktop computer, a TV-based computing device, a wearable
computing device (e.g., a watch, glasses, etc.), or any suitable
computing device. The user application 150 can alternatively be a
website accessed through a client browsing device.
[0063] The application 140 may allow the user to sync data from the
device, configure the device and settings, and view the data from
the device. The application 140 may also process the raw signals
from the device and communicate with a remote data platform that
can sync data, send firmware updates, or additional context such as
social comparisons with other users to create a more compelling
user experience.
[0064] In addition, the application 140 can connect to a cloud
database of a data platform where user data can be uploaded. The
uploaded data can then be analyzed to measure progress, share with
coaches and teammates or compare with other similar users currently
training. In one variation, the cloud database can have an
interface that allows coaches, personal trainers and others access
to the user training data. Personal coaches can use this data to
provide individual feedback to the user and help personalize
training plans, direct the coach to focus on a particular weakness,
or notify the coach if a user may be fatigued or at risk of injury.
In another variation, an automated coaching program can leverage
the data to create specific training plan. Performance clustering
algorithms can help provide more a specific training programs based
on progress and demographic information. In addition, relative
comparisons of data between similar demographics or training levels
can be used to create benchmarks.
[0065] The new data generated from the wearable device and system
can help identify issues at the individual, team or entire
population level and help all users train better and more
effectively while limiting injury risk.
3. Method
[0066] As shown in FIG. 2, a system for personalized exercise
training and coaching of a preferred embodiment can include
collecting kinematic data at an activity monitoring system coupled
to a user S110, selecting a training activity of the user S120;
processing the kinematic data in a processing mode of the selected
training activity and thereby generating a set of training metrics
that comprises at least one metric S130. The method can
additionally include applying the generated set of training metrics
S140 for generating real-time feedback on user performance of a
training activity, generating a personalized training plan, or
other suitable applications. Some alternative embodiments of the
method may be applied to the collection of training metrics for a
single type of training activity.
[0067] Block S110, which includes collecting kinematic data at an
activity monitoring system coupled to a user, functions to sense,
detect, or otherwise obtain sensor data relating to motion of a
user. The kinematic data can be collected with an inertial
measurement system that may include an accelerometer system, a
gyroscope system, and/or a magnetometer. Preferably, the inertial
measurement system includes a three-axis accelerometer and
gyroscope. The kinematic data is preferably a stream of kinematic
data collected over periods of time when a training activity is
performed. The kinematic data may be collected continuously but may
alternatively be selectively activated prior to a task.
[0068] Monitoring the kinematic and biomechanical properties of a
training activity may involve different approaches of collecting
kinematic data depending on the training activity. Some
biomechanical measurements of a training activity may be tracked
and detected by monitoring at least one metric of an inertial
measurement system over time. Other biomechanical measurements of a
training activity may be generated through processing of two or
more metrics of a single inertial measurement system. In other
variations, a biomechanical measurement of a training activity may
be generated through processing metrics from two or more activity
monitoring systems on an athlete (e.g., one on the pelvis and one
on the knee).
[0069] In one variation, the training activity can be continuously
tracked over an exercise session including multiple training
activities. In another variation, kinematic data may be collected
during discrete training activities. Accordingly, the method may
include triggering collection of kinematic data.
[0070] In one variation, data of the kinematic data is raw,
unprocessed sensor data as detected from a sensor device. Raw
sensor data can be collected directly from the sensing device, but
the raw sensor data may alternatively be collected from an
intermediary data source. In another variation, the data can be
pre-processed. For example, data can be filtered, error corrected,
or otherwise transformed. In one variation, in-hardware sensor
fusion is performed by an on-device processor of the inertial
measurement unit. The kinematic data is preferably calibrated to
some reference orientation. In one variation, automatic calibration
may be used as described in U.S. patent application Ser. No.
15/454,514 filed on 9 Mar. 2017, which is hereby incorporated in
its entirety by this reference.
[0071] Any suitable pre-processing may additionally be applied to
the data during the method. In one variation, collecting kinematic
data can include calibrating orientation and normalizing the
kinematic data.
[0072] An individual kinematic data stream preferably corresponds
to distinct kinematic measurements along a defined axis. The
kinematic measurements are preferably along a set of orthonormal
axes (e.g., an x, y, z coordinate plane). As described below, the
axis of measurements may not be physically restrained to be aligned
with a preferred or assumed coordinate system of the activity.
Accordingly, the axis of measurement by one or more sensor(s) may
be calibrated. One, two, or all three axes may share some or all
features of the calibration, or be calibrated independently. The
kinematic measurements can include acceleration, velocity,
displacement, force, rotational acceleration, rotational
displacement, tilt/angle, and/or any suitable metric corresponding
to a kinematic property of an activity. Preferably, a sensing
device provides acceleration as detected by an accelerometer and
angular velocity as detected by a gyroscope along three orthonormal
axes. Velocity and displacement metrics can be generated from these
measured kinematic data streams in block S130. The set of kinematic
data streams preferably includes acceleration in any orthonormal
set of axes in three-dimensional space, herein denoted as x, y, z
axes, and angular velocity about the x, y, and z axes.
Additionally, the sensing device may detect magnetic field through
a three-axis magnetometer.
[0073] Calibrating the kinematic data can involve standardizing the
kinematic data and calibrating the kinematic data to a reference
orientation such as a coordinate system of the participant. The
nature of calibration can be customized depending on the task
and/or kinematic activity. For example, in some training
activities, normalizing the set of kinematic data streams may
include adapting the orientation of kinematic data sensing to one
or more positions of the training activity. Alternatively,
calibration may be made relative to the user. In one variation,
calibration can be triggered when the user is walking in between
training activities. This may include detecting walking patterns in
the kinematic data and triggering calibration. The inertial
measurement unit is preferably part of a device that can be
attached or otherwise fixed into a certain position during an
activity. That position can be static during the activity but may
also be perturbed and change. Preferably, the inertial measurement
unit is positioned in the waist/pelvic region and more specifically
in the lumbar or sacral region of the back. Additional inertial
measurement units can be positioned at varying points to provide
kinematic data streams for other portions of the body. Sensor
fusion can additionally be applied across a set of kinematic data
streams to account for motion and other contributing factors and to
approximate real-world motion measurements.
[0074] Block S120, which includes selecting a training activity of
the user, functions to determine the processing mode used in
translating the kinematic data to training metrics. The training
activity is preferably selected from a plurality of training
activity options such as squats, pushups, lunges, weight lifting
(e.g., curls, etc.), deadlifting, jumping jacks, boxing, sit ups,
planks (e.g., side and/or straight planks), pull ups, pilates,
yoga, and/or other suitable types of exercises.
[0075] The method is preferably implemented in connection with an
application such as one with a user interface accessible on a smart
phone or smart watch. The selection of the training activity is
preferably represented within the user interface of the
application.
[0076] In one variation, the selection of a training activity can
be manually made. For example, a user may select a training
activity to track as shown in the exemplary application interface
flow in FIG. 6. An application on a smart phone or other suitable
computable device may be used to make a selection of a current
training activity. Similarly, the training activity may be
directed, where the application directs the user to perform a
particular training activity. In variations where a personalized
training program is generated for the user, a sequence of training
activities may be generated and the user follows the prescribed
sequence.
[0077] In another variation, the selection of a training activity
may be automatically performed. In this variation, selecting a
training activity can include processing the kinematic data in a
classification mode and thereby identifying a current training
activity. The current training activity is automatically selected
and the kinematic data can be processed using a processing mode of
the current training activity. Additionally, prior kinematic data
may be retroactively processed with the processing mode of the
current training activity to extract the training metrics. For
example, a user may start performing pushups. The training activity
of pushups may be detected after a one to three pushups, which
thereby initiates a pushup processing mode. The kinematic data that
was collected and used in classifying the activity can additionally
be processed such that the pushups performed before the activity
was detected can be included in the training metrics.
[0078] In some alternative embodiments, the method may be
preconfigured for the monitoring and collection of training metrics
for one type of training activity such that there is no selection
of a training activity.
[0079] Blocks S120 and S130 are preferably performed iteratively
during an exercise session such that the method captures and
collects training metrics for the performed training activities. It
can additionally function across multiple sets and alternating sets
of different exercises. In an automatic selection variation, a user
may be enabled to do multiple sets of pushups, squats, and lunges,
and the method can generate metrics automatically for each set and
for each side of the squats and lunges.
[0080] Block S130, which includes processing the kinematic data in
a processing mode of the selected training activity and thereby
generating a set of training metrics that comprises at least one
metric, functions to interpret motion of the user as signals
relating to measuring an exercise training activity.
[0081] Processing a biomechanical processing module preferably
analyzes and transforms sensed kinematic data into one or more
metrics reflecting the performance of the exercise. The type and
number of resulting training metrics can vary depending on the
training activity, and the training metrics are preferably recorded
and tracked in association with the appropriate training activity.
For example, after finishing a training session where a user
performs multiple sets of different training activities, the user
can be presented with a data report on their training session.
[0082] Types of training activities can include count,
cadence/interval, cadence consistency, displacements (e.g., linear
and/or angular), displacement consistency, biomechanical
orientations such as core stability, motion path, performance
classification (e.g., detecting smoothness, jerkiness, tremors,
etc.), and/or other types of metrics. These various training
metrics can be used in measuring progress (e.g., count), form,
and/or classifying performance (e.g., detecting fatigue, injury,
proper form, etc.).
[0083] In the variation of training activity stats relating to
progress, processing the kinematic data in a processing mode may
include classifying at least one training metric by measuring
performance of the training activity. The progress-related training
metrics may include repetition count, set count, cadence,
displacements, and/or other training metrics. These can preferably
be used in tracking progress, which may be presented in various
forms of reports or dashboards. Progress related training metrics
may additionally be used in generating user guidance/coaching
and/or other forms of user feedback. The feedback can preferably be
used in promoting better fitness. The feedback can be tailored to
different goals such as strength, stamina, overall fitness,
flexibility, injury recovery and the like.
[0084] In the variation of training activity metrics relating to
form detection, processing the kinematic data in a processing mode
may include classifying form or quality of performing the training
activity. The classification is preferably an analysis of the
kinematic data, based on one or more properties. The form-related
training metrics may relate to quantifying training activity form
and/or classification/detection. In some cases, the classification
can be based on generated training metrics such as displacement or
pelvic tilt. Various aspects of form can be detected such as
detecting proper posture at different points of an exercise and/or
detecting various motion patterns when performing a training
activity.
[0085] In a similar variation of training activity metrics relating
to fatigue detection, processing the kinematic data and generating
a training metric may include detecting a fatigue state in
kinematic data during performance of a training activity. A
training metric that classifies fatigue state may be used in
interpreting exertion by a user, which can be used for generating
and/or guiding exercise routines.
[0086] As a user trains, their muscles may begin fatiguing over
time. Too much fatigue without enough rest or with improper
technique may lead to injury. The method can identify fatigue with
a number of biomechanical indicators including the shaking or
wobbliness throughout an exercise motion, the velocity and length
of the motion, or angular velocity and angle range, as well as the
inconsistency of the movement path between each discrete rep or set
of reps. Fatigue can usually be detected over time as the
inconsistency or stability of the motion path becomes worse and
worse, enabling the sensor or application to notify the user to
take a break or stop the workout. The consistency of the repetition
cadence may begin to vary.
[0087] For example, fatigue can be detected from the motion path
throughout a set of bicep curls as the user progresses through his
sets. If the beginning of a set of bicep curls exercises had smooth
and controlled motion paths and then began to wobble and shake
progressively throughout the workout set, then fatigue may be
detected and the application may ask the user to stop prematurely
before injury occurs or to take a rest.
[0088] In another variation, the processing of kinematic data may
be applied to asymmetrical training activities where a user
exercises a right side and a left side independently. For
asymmetrical exercises, the processing of kinematic data when in a
processing mode of an asymmetric training activity can include
detecting training activity of the specific side and generating
training metric for that side, which functions to track metrics for
each side individually. The processing of asymmetrical exercises
can preferably handle extracting training metrics when the
different sides are exercised in batches (e.g., doing one side and
then the other), alternating, and/or any suitable sequencing of
sides. The various metrics relating to performance form and fatigue
could similarly be applied to each side. Comparisons of the two
sides could additionally be used in forming metrics relating to
side balance. Accordingly, the processing of the kinematic data may
include generating a side comparison metric comparing at least one
right training metric and left training metric. Such right-left
analysis may be used for generating customized training
recommendations for different sides. For example, the method can
automatically focus on one particular side if that side is detected
to be weaker or to fatigue quicker.
[0089] For repetition-based training activities, the processing of
the kinematic data can generally include segmenting the training
activities, possibly error correcting through application of
identifying a consistent biomechanic state of the training
activity, and generating displacement-based training metrics.
Repetition-based activities can generate a quasi-periodic signal,
and the consistent segmentation of these signals is critical in
computing accurate exercise metrics. Segmenting generally involves
the integration of acceleration data in the global reference frame
and identifying a segmentation pattern. One challenge in working
with kinematic data from accelerometer data may be that while the
most appropriate biomechanic state may be best defined using
velocities or displacements, computing these signals via basic
integration may be error prone due to sensor drift. For example,
errors in sensing can be accumulated over time as a form of sensor
drift, and compounded through mathematical transformations such as
integration, rendering the signal inaccurate if proper error
correction is not made. As discovered by the applicants, some
implementations can leverage the analysis of particular signals and
parts of a kinematic data stream to identify the desired
biomechanic state, referred to as the biomechanical base state
herein. The biomechanical base state preferably defines the phase
of the quasiperiodic actions such that it is reliably consistent
across repetitions. Base state error correction can then be applied
by leveraging two biomechanical base states to compute the
accumulated sensor drift between base states. The accumulated
integration error can preferably be removed or reduced. For
example, an assumption can be made that velocity and displacement
maps to zero when the user is in the biomechanical base state, and
then any drift that occurs across a single quasiperiod of the
signal can be accounted for as error and corrected by using methods
such as linear interpolation. In other words, an integrated signal
can be error corrected by adjusting the signal within one period so
that the signal is adjusted to have a fixed biomechanical base
state. Substantially, accurate velocity and displacement metrics
can then be used for form analysis and/or other forms of
classifications.
[0090] In a variation wherein the plurality of training activity
options includes at least a set of pushups, processing the
kinematic data in a pushup processing mode and generating a set of
pushup training metrics can include the generating of training
metrics such as pushup count, pushup cadence, cadence consistency,
vertical displacement, tilt angle, core engagement classification,
motion path, core stability, pushup style classifications, form
classification and/or other suitable training metrics. The pushup
processing mode preferably involves the segmenting of pushups. The
individual pushups can then be processed and analyzed either
individually (e.g., detecting displacement for each pushup) or as a
group (e.g., detecting pushup patterns across a set of pushup
iterations).
[0091] Count, cadence, and cadence consistency characterize pushup
metrics as generally described above. Pushups are preferably
segmented through detecting local extremas in various forms of
kinematic data approximations derived from the kinematic data. In a
preferred implementation, smoothed vertical acceleration can be
used for segmentation. Pushup performance metrics may additionally
include metrics relating to duty cycle or, more specifically,
top-period and bottom-period measurements. A top-period measurement
characterizes the amount of time the user spends at the top of a
pushup, and a bottom-period measurement characterizes the amount of
time the user spends at the bottom of a pushup. There could also be
a motion-period measurement characterizing time of motion up and/or
down, and such metrics may additionally be represented as ratios,
percentages, or any suitable format.
[0092] In one preferred implementation, processing in a pushup
processing mode preferably includes smoothing vertical acceleration
data; segmenting the smoothed vertical acceleration data stream
through pushup segmentation pattern analysis; assigning a pushup
biomechanical base state to a pushup segment; and generating error
corrected vertical displacement data for a pushup segment using
error correction based on the biomechanical base states. The
vertical acceleration data is preferably smoothed or filtered to
remove signal noise that complicates detection of pushup
segmentation pattern analysis. Smoothing in one implementation can
use an exponentially weighted moving average filter to reduce lag.
Other suitable filters could alternatively be used.
[0093] The pushup segmentation pattern preferably includes
detecting a local minimum in the smoothed acceleration data stream
(avr) as shown in FIG. 7. The smoothed acceleration data stream is
based on a globally oriented accelerometer data stream from sensor
fusion (avs). Pushups generally have a sinusoidal vertical
displacement pattern during normal performance. Accordingly, the
maximum displacement of a pushup will correspond to a minimum in
acceleration. This segmentation position will correspond to the top
position of a pushup, which can be used as a pushup biomechanical
base state. Alternative pushup segmentation patterns could also be
used. Vertical velocity (vvs) and displacement (dvs) can then be
generated using error correction that corrects the generated
velocity and/or displacement signals assuming each repetition has
the same position at the pushup biomechanical base state. A pushup
count metric may only be counted if the error corrected vertical
displacement is above a particular threshold. The displacement is
preferably normalized to account for the dimensions of the
user.
[0094] Vertical displacement preferably characterizes the absolute
displacement from the maximum height of the movement to the minimum
height of the pushup motion. Similar to vertical displacement,
velocity, acceleration and/or other kinematic properties derived
from motion measurements can be used. Vertical displacement along
with cranial/caudal or lateral displacement and velocity can
preferably be calculated by applying the biomechanical base state
error correction. Generating corrected biomechanical training
metrics can include integrating the globally oriented vertical
acceleration data stream, performing biomechanical base state error
correction on the integrated accelerometer data (resulting in
corrected vertical velocity data), integrating the corrected
velocity data, and performing biomechanical base state error
correction on the integrated velocity data (resulting in corrected
vertical displacement).
[0095] Collection of user's height or arm length may be used to
interpret displacement measurements at the point of the activity
monitoring system to that of the actual body. For example, the
method could include translating generated displacement
measurements in the pelvic region to upper body displacement based
on an arm length measurement. In another example, height or arm
length information can be used to normalize a satisfactory
displacement from a shallow displacement across different body
types.
[0096] Consistency of vertical displacement or other kinematic
properties can be used to quantify consistency of pushup
performance. For example, each pushup should see substantially
consistent vertical displacement. The velocity consistency can also
reflect higher rate of control.
[0097] Tilt angle when the activity monitoring system is in a
pelvic region can characterize the pelvic tilt. The angle of the
pelvic hinge during a pushup may signal if the core is engaged
throughout the entire pushup. Muscular contraction of the core,
preferably keeps the body (pelvis, trunk) static during the
exercise. Similarly, the stability and shaking during the pushup
can be reflected through the pelvic tilt/orientation. For example,
when the core is not engaged, the hips/pelvis dip and this causes a
lot of stress on the athlete's lower back. When the core is
engaged, the athlete is pivoting from their toes and only their
arms are moving the body up and down.
[0098] Movement of the core in all three planes (coronal, sagittal,
and transverse) can similarly be applied. This approach can serve
as an indirect measure of the core to determine if it is engaged
(and strong enough to hold the load of the body) or not. If the
core is engaged, there should be zero movement in the pelvis area.
Pelvic rotation, or angular change of the pelvis in the transverse
plane, could be a result of compensating for asymmetries in arm and
chest strength. Pelvic tilt, or angular change of the pelvis in the
sagittal plane, in some instance may indicate a weak or non-engaged
core. It could similarly be an indicator to poor form. Pelvic drop,
or angular change in the coronal plane, is likely a compensation
mechanism for weak arms or overall systemic fatigue.
[0099] Motion path metrics can be used for form analysis,
consistency analysis, training activity classification, and/or as a
general measurement.
[0100] Various forms of pushup classifying metrics can additionally
be used. Form classifying preferably includes segmenting pushup
repetitions from the kinematic data and extracting pushup training
metrics of a pushup repetition. This can additionally include
classifying form across pushup repetitions. Pushup classifiers may
generally classify the quality of a pushup, which functions to
evaluate or measure form quality. Another pushup classifier
variation can detect the type of pushup, which can include
detecting a pushup style from kinematic data during pushup
repetitions. In one variation, analyzing pelvic tilt properties
during pushup repetitions includes classifying from a set of pushup
style variations such as knee pushups, standard pushups, inclined
pushups, and the like. For example, a discriminator between knee
pushups and standard pushups can discriminate between vertical
displacement and horizontal displacement. A discriminator can be a
heuristic based set of conditions or rules, a machine learning
model, an algorithmic model, and/or any suitable approach for data
classification.
[0101] More specific classifiers can act as discriminators for
various aspects of a pushup. Generally, a classifier can be trained
to classify the training metrics based on two or more properties of
displacement, velocity, user properties (e.g., like height, arm
length, etc.). Classifiers in one variation can be generated
through a data analysis of implementations of the training activity
with the various classifications. A discriminator may be generated
using machine learning or other techniques
[0102] A pushup depth discriminator can classify pushup repetitions
by vertical displacement and height to detect good form from a
repetition that is not low enough.
[0103] The type of pushup can additionally be classified through
various forms of training metric analysis. In one variation, knee
pushups and standard pushups can be classified by comparing
vertical to longitudinal displacements as shown in FIG. 8. As shown
in FIG. 9, the detected motion path at the pelvis will exhibit such
patterns where there is more longitudinal displacement relative to
the amount of vertical displacement for knee pushups.
[0104] A pelvic sag discriminator can classify pushup repetitions
by vertical displacement and height as shown in FIG. 10. Increased
vertical displacement range can be an indicator of pelvic sag.
[0105] A pelvic rise discriminator can classify pushup repetitions
by tilt angle range and vertical displacement as shown in FIG. 11.
Pelvic raise during a pushup can cause a large shift in angle that
results in an increased angle range.
[0106] In a variation wherein the plurality of training activity
options includes at least lunges and/or squats, processing the
kinematic data in a lunge processing mode and/or a squat processing
mode and generating a set of pushup training metrics can include
generating training metrics such as count, cadence, cadence
consistency, vertical distance, vertical distance consistency,
sagittal tilt, core stability, motion paths, horizontal distance,
horizontal distance consistency and/or other suitable training
metrics. The training metrics for squats and lunges are
substantially similar approach to those described above from
pushups but may include variations in the approach as detailed
below. For example, squats and lunges may both include longitudinal
and/or lateral displacement metrics.
[0107] A lunge processing mode can include classifying lunge foot,
lunge foot count, classifying at least one aspect of lunge form,
and/or generating any of the above metrics.
[0108] In one preferred implementation, processing in a lunge
processing mode will generally initially involve segmenting lunges
from which various motion properties can be extracted as with
pushups, squats, and other training activities. Processing in a
lunge processing mode preferably includes integrating vertical
acceleration data and thereby generating a raw vertical velocity
data stream; segmenting the raw vertical velocity data stream
through lunge pattern analysis; assigning a consistent lunge
biomechanical base state to a lunge segment; and generating error
corrected vertical displacement data for a lunge segment through
biomechanical base state error correction. Herein, the raw vertical
velocity data stream is characterized as raw as it is not error
corrected and primarily functions to serve as a signal that can be
used to facilitate segmentation and biomechanical base state
detection. The lunge segmentation pattern preferably includes
detecting a local minimum after a local maximum. Biomechanical base
state error correction can then be used by integrating the
accelerometer data stream, performing biomechanical base state
error correction on integrated accelerometer (resulting in
corrected vertical velocity data), integrating the corrected
velocity data, and performing biomechanical base state error
correction on the integrated velocity data (resulting in corrected
vertical displacement). As shown in FIG. 12, the raw vertical
velocity signal (vvr) can be used in detecting the local minimum
after a maximum to segment lunges. That point preferably
corresponds to a user returning to their rest state by standing
upright with the legs fully extended. This biomechanical base state
can be used to generate a corrected vertical velocity signal (vvs)
and displacement signal (dvs). If the vertical displacement
surpasses some displacement threshold within an individual segment,
the method preferably counts it as a lunge.
[0109] Lunges include forward motion in addition to vertical
motion. In a related preferred implementation, the processing of a
lunge processing mode may additionally or alternatively make use of
anterior/posterior acceleration (i.e., acceleration forward or
backwards in longitudinal direction). The anterior/posterior
acceleration can similarly be analyzed to generate an error
corrected longitudinal displacement. Processing in a lunge
processing mode can additionally or alternatively include
integrating anterior/posterior acceleration data and thereby
generating a raw longitudinal velocity data stream; segmenting the
raw vertical velocity data stream through lunge pattern analysis;
assigning a biomechanical base state to a lunge segment; and
generating error corrected anterior/posterior displacement data for
a lunge segment through biomechanical base state error correction.
Forward lunges and backward lunges can be distinguished by looking
at the directionality of movement during the lunge segments. Side
lunges can also be analyzed by looking at lateral acceleration to
generate lateral displacement. Right and left side lunges can be
individually counted by looking at the direction of displacement,
as well as the change in pelvis orientation during the
exercise.
[0110] Processing a lunge processing mode can include applying
discriminators such as lunge depth to distinguish good form from
lunges not sufficiently low. As shown in the exemplary lunge form
quality discriminator model of FIG. 13, vertical displacement and
height can be used to classify lunges. Lunges may additionally
include a discriminator for lunge stride that discriminates between
good form and excessively long or short lunge strides. Vertical and
horizontal displacements can be used in this variation. In one
alternative, discriminating via longitudinal displacement and
vertical displacement can be used in combination to classify as
good, too short, too long, too low, and failure (e.g., not counting
as a lunge) as shown in the height normalized discriminator graphic
for lunges of FIG. 14. Different types of lunges such as front
lunges, side lunges, rear lunges, and the like may have different
processing modes but may generally apply similar processes.
[0111] The lunge foot can additionally be determined by looking at
biases towards different directions. In one preferred
implementation, a classifier based on pelvic orientation during a
lunge segment can be used in classifying an individual lunge as
right or left footed.
[0112] A squat processing mode can include counting squats,
classifying at least one aspect of squat form, and/or generating
any of the above metrics. Generating the basic performance metrics
can be substantially similar to processing of vertical acceleration
for a lunge. Accordingly, in one preferred implementation,
processing in a squat processing mode preferably includes
integrating vertical acceleration data and thereby generating a raw
vertical velocity data stream; segmenting the raw vertical velocity
data stream through squat pattern analysis; assigning a
biomechanical base state to a squat segment; and generating error
corrected vertical displacement data for a squat segment through
biomechanical base state error correction. The squat segmentation
pattern analysis preferably includes detecting a local minimum
after a local maximum. As shown in FIG. 15, the raw vertical
velocity signal (vvr) can be used in detecting the local minimum
after a maximum when segmenting squats. That point preferably
corresponds to a user returning to rest at the top of a squat. This
biomechanical base state can be used to generate a corrected
vertical velocity signal (vvs) and displacement signal (dvs). If
the vertical displacement surpasses some displacement threshold
within an individual segment, the method preferably counts it as a
squat.
[0113] Processing a squat processing mode can include applying
discriminators for squat depth that functions similar to lunge
depth but applying different classification of vertical
displacement and height metrics. As shown in an exemplary form
quality discriminator model of FIG. 16, user height and vertical
displacement may be used to classify squats as having good form,
bad form, or as a failure mode (e.g., not counting as a squat).
[0114] Squats may additionally include a discriminator for knee
motion during a squat that leverages vertical displacement and
horizontal displacement to classify good form vs. form where knees
are over the toes, which leads to increased injury risk to the knee
due to improper loading. As shown in an exemplary squat knee form
quality discriminator model of FIG. 17, vertical displacement
(e.g., normalized or as a percentage of user height) can be
compared to anterior/posterior displacement. This discriminator
detects a trend in low anterior/posterior displacements correlating
to knees over toes. As shown in FIG. 18, such a discriminator can
detect such occurrences when a user's knees are over their
toes.
[0115] Squats can additionally include a discriminator based on
pelvic tilt properties during segments of a repetition. Changes in
pelvic tilt may be characteristics of improper form that can be
detected through the method. Lateral displacement discriminators,
tremor/shaking discriminators, and/or other suitable types of
discriminators may additionally or alternatively be used.
[0116] In a variation where the plurality of training activity
options includes planks, processing the kinematic data in a plank
processing mode and generating a set of plank training metrics can
include generating training metrics such as plank duration, pelvic
tilt, core stability, plank style classification, and/or other
training metrics. Plank duration can be achieved through detecting
the plank training activity initiation and termination and
measuring duration between the two events. Pelvic tilt metrics may
differ for different types of planks. A straight plank can measure
sagittal tilt. A side plank may measure pelvic coronal tilt. Core
stability can classify movement of the core in one to three plans
(e.g., coronal, sagittal, and transverse). Side planks may
additionally include a side classifier such that right and left
side versions of a side plank can be detected and individually
measured. For example, the stable state orientation can be used in
classifying a good plank (e.g., no pelvis bend) and a bad plank
(e.g., bottom lifted in the air or sagging to the ground) as shown
in FIG. 19. Shaking can be used to measure fatigue. Overtime,
progress can be identified not just by the amount of time a user
can hold a plank, but how well the user can hold a plank before the
body begins fatiguing and losing good form.
[0117] In a variation where the plurality of training activity
options includes weight lifting, processing the kinematic data can
include processing the kinematic data in a weight lifting
processing mode and generating a set of weight lifting training
metrics. Weight lifting training metrics may be customized to the
different types of weight lifting exercises but can include
training metrics such as displacements, rotations, movement
consistency, motion form classification, posture or orientation
classification, and/or other suitable training metrics. Some weight
lifting training activities may include measuring kinematic data in
a different region from other exercises which may include
activating at least a second activity monitoring system coupled to
the user in a distinct location. For example, if the sensor is worn
on the forearm, wrist, or even the weights themselves, the sensor
and system can measure exercises such as bicep curls, boxing, and
bench pressing.
[0118] During a bicep curl, the entire path of a bicep curl can be
traced and analyzed. If the bicep curl is controlled a smooth
displacement arc will be mapped. As shown in FIG. 3, kinematic data
can be processed to characterize biomechanical motion during the
first half of the bicep curl on the way up and the second half of
the curl on the way down. As with squats, lunges, and pushups,
curls or other weight lifting actions can be processed in a similar
manner by segmenting and generating error corrected velocity and/or
displacement metrics through integration.
[0119] Processing in a weight lifting processing mode preferably
includes integrating vertical acceleration data and thereby
generating a raw vertical velocity data stream; segmenting the raw
vertical velocity data stream through weight lifting pattern
analysis; assigning a consistent lifting biomechanical base state
to a lifting segment; and generating error corrected vertical
displacement data for a lifting segment through biomechanical base
state error correction. Additionally or alternatively, horizontal
data may be used. The lifting pattern analysis may include
detecting the return to the start position of a lifting repetition
(e.g., the bottom or the top of a lift depending on the lift type).
This in some cases can be a local minimum within the raw vertical
velocity data. This approach could be used for bicep curls,
deadlifts, and/or other types of lifting actions. Different
discriminators can additionally be defined for each of the
different lifting activities. For example, a discriminator on
vertical displacement could be used to differentiate between good
and bad lifting actions like a curl or deadlift. A discriminator on
horizontal displacement may be used to detect and classify
particular aspects of bad form like swinging arms back and forth
too much during a lift.
[0120] If there is weakness in the bicep curl, then some
wobbly-ness that resembles over and undershooting in the forward
and lateral planes, or shaky-ness can be analyzed during the motion
path. As shown in FIG. 4, properties of a motion path of a bicep
curl may be detected and interpreted as signals of different
factors such as excessive weight, fatigue, injury, and the like.
Inconsistency in curl velocity and/or patterns of wobbliness or
shakiness may trigger feedback to a user. Feedback can be given to
the user in real-time. For example, if a user has consistent wobbly
motion paths from the beginning of the set, the application may
recommend using lighter weights.
[0121] Similarly, exercises like deadlifting can also be analyzed
to ensure proper form throughout the entire lift to avoid injury.
The angle of the back can be measured throughout the vertical,
forward and lateral displacement of the motion path. Any
instability, such as shaking or weight imbalance can be
detected.
[0122] In one variation, the method may include collecting an
electromyography (EMG) signal from the user, predicting muscle
usage during training activities, and generating a form
classification training metric classifying on muscle usage and
biomechanical-based training metrics as shown in FIG. 5. A machine
learning model, a heuristics model, or any suitable model may be
used. Muscle activation and usage patterns should have a signal
pattern that maps to corresponding motions of the body that are
reflected through one or more biomechanical-based training metrics
such as displacement measurements, motion paths, and the like. EMG
sensors can be used to verify that the correct muscles are firing
at the right times for each specific exercise. Real-time coaching
can then be provided to guide the user into exercising the correct
muscle groups. For instance, if the biomechanics of the bicep curl
are not correct, then a smart coaching program can analyze whether
the correct muscles are firing at the right time. The smart
coaching program can provide personalized feedback to guide the
user's form into proper form and technique that optimizes for the
proper muscle group firing (at the right time) for each specific
exercise--enabling the user to train effectively and efficiently.
The same EMG sensors can help to detect if a muscle group is
nearing fatigue from overwork.
[0123] Combining EMG sensors with kinematic data from an IMU can
function to provide a deeper understanding of biomechanical signal
data. In particular, EMG sensors provide more context of why some
movements occur the way they do. It lets the user know which
muscles are most likely responsible for the incorrect behavior, and
therefore empowers the user, personal trainer or coach to focus on
a specific muscle group during a training exercise or to retrain a
habit that was previously incorrect. This data can also be compared
to a baseline. EMG sensors can be worn anywhere on the body and
specifically on the muscles of the body that are important for the
specific exercise being analyzed, or specific muscle group the user
is weak in.
[0124] For example, if a user usually has difficulty engaging his
core, EMG sensors can be placed on his core to ensure his core is
engaged during the entire planking exercise. During squats, the EMG
sensors can be placed on the quadriceps to ensure they fire at the
right time, or can provide more information on any asymmetry
between left and right quad. This system can also be used in gait
retraining for users who have a physical injury and are re-learning
how to walk again.
[0125] The method preferably includes applying the generated set of
training metrics S140 preferably to alter the training of a user
such as by: generating real-time feedback on a user's performance
of a training activity, generating a personalized training plan, or
other suitable applications.
[0126] Generating real-time feedback on a user's performance of a
training activity can include presenting training metrics through
some interface. The feedback is preferably driven at least in part
on the generated training metrics which may relate to performance
status (e.g., number of repetitions), performance quality (e.g.,
form classification), or other aspects. In one implementation,
audio feedback can be generated to help a user keep track of the
number of repetitions the user is on and to hear reminders when
form starts to degrade. Generating feedback will preferably include
monitoring a set of training metrics as compared to at least one
training condition and generating feedback in response to the
training conditions. For example, various training metric
thresholds and/or patterns may be monitored as a training
condition. In one example, the number of repetitions can be
monitored and audio alerts can be used to count repetitions and/or
announce when a target number repetitions is reached or is close.
In another example, the various discriminators described above may
be used to trigger feedback when particular form classifications
are identified. For example, generating real-time feedback may
include triggering feedback on performance quality such as
indicating good form, bad form, recommending form adjustments, and
the like.
[0127] Training conditions may be automatically set by the method.
A user could additionally or alternatively customize training
conditions. Training conditions may be used to detect positive
conditions such as a long streak of good form or satisfying some
threshold of repetitions, negatively associated conditions such as
bad form, and/or neutral conditions.
[0128] Generating a personalized training plan can function on
generating recommendations on training goals, such as weight loss,
power, or hypertrophy (i.e., enlarging muscles) exercise programs.
These different goals may alter the coaching when training. Weight
loss mode may prioritize coaching performing a high number of
repetitions at low intensity. Hypertrophy mode may target a
moderate number of repetitions at moderate intensity. A power mode
may target a lower number of repetitions but maximizing intensity.
The generated training plan can be presented within an app or be
used in setting training conditions. For example, the number of
targeted repetitions for a particular training activity may be set
based on previous progress and the quality of form. The next time
the user can be guided to satisfy the updated exercise repetition
count. The personalized coaching program can additionally monitor
fatigue, detect possible injury states, and/or other aspects of
training to moderate the exercise program.
[0129] The collection of training data can additionally be
synchronized for group analysis, performance comparison/rating,
generation of training plans, and/or other applications. In one
variation, data synchronized with the cloud database can be used to
provide relative comparisons to other users on the platform. In
another variation, data can also be leveraged back into creating
better training plans (i.e. some training plans can be successful
for certain user groups, and not successful for others). Benchmarks
can be created across the user group to provide a more relevant
comparison as users progress throughout their training program.
Synchronization of data can additionally enable data sharing. For
example, coaches and personal trainers can access a web interface
to monitor the performance of clients, which can then be used by
the coaches or personal trainers to influence the training
plans.
[0130] The systems and methods of the embodiments can be embodied
and/or implemented at least in part as a machine configured to
receive a computer-readable medium storing computer-readable
instructions. The instructions can be executed by
computer-executable components integrated with the application,
applet, host, server, network, website, communication service,
communication interface, hardware/firmware/software elements of a
user computer or mobile device, wristband, smartphone, or any
suitable combination thereof. Other systems and methods of the
embodiment can be embodied and/or implemented at least in part as a
machine configured to receive a computer-readable medium storing
computer-readable instructions. The instructions can be executed by
computer-executable components integrated with apparatuses and
networks of the type described above. The computer-readable medium
can be stored on any suitable computer readable media such as RAMs,
ROMs, flash memory, EEPROMs, optical devices (CD or DVD), hard
drives, floppy drives, or any suitable device. The
computer-executable component can be a processor but any suitable
dedicated hardware device can (alternatively or additionally)
execute the instructions.
[0131] As a person skilled in the art will recognize from the
previous detailed description and from the figures and claims,
modifications and changes can be made to the embodiments of the
invention without departing from the scope of this invention as
defined in the following claims.
* * * * *