U.S. patent application number 15/017477 was filed with the patent office on 2016-08-18 for fitness and wellness system with dynamically adjusting guidance.
The applicant listed for this patent is PEAR Sports LLC. Invention is credited to Robert G. Allison, Shimon Gersten, Kari Kristian Rauhala, Joseph Rzepiejewski, Simon Sollberger.
Application Number | 20160240100 15/017477 |
Document ID | / |
Family ID | 56622252 |
Filed Date | 2016-08-18 |
United States Patent
Application |
20160240100 |
Kind Code |
A1 |
Rauhala; Kari Kristian ; et
al. |
August 18, 2016 |
Fitness and Wellness System with Dynamically Adjusting Guidance
Abstract
A system is provided that provides guidance (e.g., audio
content) to a user while exercising. This audio content is tailored
to the particular user and is aimed at increasing the effectiveness
of the exercising. In some cases, the audio content conveyed to the
user can be based on one or more sensors providing various metrics
(e.g., heart rate, cadence, breathing rate, galvanic skin response,
temperature etc.) regarding the real-time performance of the user.
In some cases, the guidance to a user may be downloaded dynamically
to the device by a specialized server or wireless connection. In
addition, the guidance can be dynamically adjusted based on a
variety of factors including data obtained from the sensors.
Related apparatus, systems, techniques and articles are also
described.
Inventors: |
Rauhala; Kari Kristian;
(Solana Beach, CA) ; Allison; Robert G.; (Corona
Del Mar, CA) ; Sollberger; Simon; (San Francisco,
CA) ; Rzepiejewski; Joseph; (Dana Point, CA) ;
Gersten; Shimon; (San Diego, CA) |
|
Applicant: |
Name |
City |
State |
Country |
Type |
PEAR Sports LLC |
Solana Beach |
CA |
US |
|
|
Family ID: |
56622252 |
Appl. No.: |
15/017477 |
Filed: |
February 5, 2016 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
13720936 |
Dec 19, 2012 |
|
|
|
15017477 |
|
|
|
|
61580569 |
Dec 27, 2011 |
|
|
|
Current U.S.
Class: |
1/1 |
Current CPC
Class: |
G09B 5/04 20130101; G06F
3/167 20130101; G09B 19/00 20130101; G06F 3/165 20130101; G09B
19/0038 20130101 |
International
Class: |
G09B 19/00 20060101
G09B019/00; G09B 5/04 20060101 G09B005/04 |
Claims
1. A system comprising: a portable device having a data processor
and a memory, the memory storing data for access and processing by
the data processor, the data comprising a training plan, the
training plan specifying at least one workout, each of the least
one workout specifying at least one physical exercise and
performance parameters associated with the at least one physical
exercise, the portable device being configured to be worn by a user
during the at least one physical exercise specified by the at least
one workout; one or more sensors worn by the user and in
communication with the portable device, each of the one or more
sensors sensing performance data about the user during the at least
one physical exercise in relation to the performance parameters
associated with the at least one physical exercise, the performance
data characterizing at least one of a physiological measurement of
the user, a position of the user, and an environment of the user,
the one or more sensors transmitting the performance data to the
portable device for processing by the data processor to determine
guidance data associated with the training plan; and an audio
feedback device configured to be worn by the user, the audio
feedback device receiving performance feedback from the portable
device and providing training content audio to the user that is
generated by the portable device, the training content audio being
based in part on the performance data sensed by the one or more
sensors and comprising guidance audio for the user based on the
guidance data to invoke the user to adjust the at least one
physical exercise specified by the at least one workout.
2. The system in accordance with claim 1, wherein the portable
device includes a media player for providing entertainment audio to
the user via the audio feedback device.
3. The system in accordance with claim 2, wherein the guidance
audio is overlaid with the entertainment audio by the data
processor and provided to the user via the audio feedback
device.
4. The system in accordance with claim 2, wherein the guidance
audio is interposed in time with a halt of the entertainment
audio.
5. The system in accordance with claim 1, wherein the audio
feedback device includes headphones.
6. The system in accordance with claim 1, wherein the portable
device is a smartphone.
7. The system in accordance with claim 1, wherein the portable
device is a music player.
8. The system in accordance with claim 1, wherein the one or more
sensors are in wireless communication with the portable device.
9. A system comprising: one or more sensors for being worn by a
user, each of the one or more sensors sensing performance data
about the user during at least one physical exercise specified by
at least one workout that is specified by a training plan stored in
a memory, the performance data characterizing at least one of a
physiological measurement of the user, a position of the user, and
an environment of the user, the performance data being related to
performance parameters associated with the at least one physical
exercise; a portable device being configured to be worn by a user
during the at least one physical exercise specified by the at least
one workout, the portable device having a data processor in
communication with the memory, the memory storing data for access
and processing by the data processor, the data comprising the
training plan and the performance parameters associated with the at
least one physical exercise, the portable device being in
communication with the one or more sensors to receive the
performance data related to the at least one physical exercise
being executed by the user, the data processor using the
performance data to determine guidance data associated with the
training plan and to generate training content audio based on the
guidance data; and an audio feedback device configured to be worn
by the user, the audio feedback device receiving audio signals from
the portable device and providing the training content audio to the
user, the training content audio being based in part on the
performance data sensed by the one or more sensors and comprising
guidance audio for the user based on the guidance data to invoke
the user to adjust the at least one physical exercise specified by
the at least one workout.
10. The system in accordance with claim 9, wherein the portable
device includes a media player for providing entertainment audio to
the user via the audio feedback device.
11. The system in accordance with claim 10, wherein the
entertainment audio is selected from the group of entertainment
audio that consists of: music, a digital audio book.
12. The system in accordance with claim 10, wherein the guidance
audio is overlaid with the entertainment audio by the data
processor and provided to the user via the audio feedback
device.
13. The system in accordance with claim 10, wherein the guidance
audio is interposed in time with a halt of the entertainment
audio.
16. The system in accordance with claim 9, wherein the audio
feedback device includes headphones.
17. The system in accordance with claim 9, wherein the portable
device is a smartphone.
18. The system in accordance with claim 9, wherein the portable
device is a music player.
19. The system in accordance with claim 1, wherein the one or more
sensors are in wireless communication with the portable device.
20. A system comprising: a portable device having a data processor
and a memory, the memory storing data for access and processing by
the data processor, the data comprising one or more music files and
a training plan, the training plan specifying at least one workout,
each of the least one workout specifying at least one physical
exercise and performance parameters associated with the at least
one physical exercise, the portable device being configured to be
worn by a user during the at least one physical exercise specified
by the at least one workout; one or more sensors worn by the user
and in communication with the portable device, each of the one or
more sensors sensing performance data about the user during the at
least one physical exercise in relation to the performance
parameters associated with the at least one physical exercise, the
performance data characterizing at least one of a physiological
measurement of the user, a position of the user, and an environment
of the user, the one or more sensors transmitting the performance
data to the portable device for processing by the data processor to
determine guidance data associated with the training plan; and an
audio feedback device configured to be worn by the user, the audio
feedback device providing audio signals representing the one or
more music files, the audio feedback device further receiving
performance feedback from the portable device and providing
training content audio to the user in combination with the audio
signals representing the one or more music files, the training
content audio being based in part on the performance data sensed by
the one or more sensors and comprising guidance audio for the user
based on the guidance data to invoke the user to adjust the at
least one physical exercise specified by the at least one workout.
Description
CROSS REFERENCE TO RELATED APPLICATION
[0001] The present application is a continuation of U.S. patent
application Ser. No. 13/720,936, entitled, "Fitness and Wellness
System with Dynamically Adjusting Guidance," filed Dec. 19, 2012,
that in turn claims the benefit of priority under 35 U.S.C.
.sctn.119 to U.S. Provisional Application Ser. No. 61/580,569,
filed Dec. 27, 2011, entitled "FITNESS AND WELLNESS SYSTEM WITH
DYNAMICALLY ADJUSTING GUIDANCE," the disclosure of which is
incorporated herein by reference
TECHNICAL FIELD
[0002] The subject matter described herein relates to a system that
provides real-time and dynamically adjustable guidance to a user
undergoing physical exercise/training and/or wellness routines
based on the performance of the user as monitored by one or more
sensors.
BACKGROUND
[0003] Athletes and non-athletes are increasingly using training
plans for their workouts. These training plans specify certain
exercises/routines and corresponding goals and, in some cases, can
include areas for the user to record his or her results (e.g.,
finished, times, weight levels, etc.). A training plan can include
one or more individual workouts. Current training plans are
typically offered as a hard copy/print out plan. With written
training plans, the user can see all the workouts assigned to him
or her and the dates when they need to be done. With a static audio
plan the user is getting instruction but without any real-time
guidance related to form, time or performance. With video plans,
the user sees the workout but is limited to exercising in an area
where there is access to a video monitor. In all cases, the user is
without the benefit of feedback and without the benefit of a coach
who can monitor and adjust the workout intensity or other relevant
features of the workout. Without a personal coach, it is the
responsibility of the user to understand and remember the workout
and how to execute it properly per the plan. It can be very
difficult to remember the details of complex workouts and keep
track of such timing and efforts without distractions of reading
the training plan (and recording entries in the training plan such
as heart rate). In addition, such training plans can also be
difficult for the casual or occasional user to accurately follow
and to understand if the intensity of the effort is in line with
the plan.
[0004] Training plans (and workouts) often specify heart rate (HR)
zones in order to define the intensity and the stress on the body
of a user. However, it can be very difficult to know/understand the
relative HR for the user and to perform the workouts within certain
HR zones to make them most effective. As a result, most people who
casually exercise or exercise without a coach are likely to perform
their workouts ineffectively or incorrectly. Such poor performance
result in limited or very slow progress towards their
exercise/fitness goal and can be un-motivating and undermine the
goal.
SUMMARY
[0005] Systems and techniques are described that provide guidance
(e.g., audio-based guidance, etc.) and biometric feedback to a user
undergoing physical exercise and/or wellness routines to
maximize/optimize the effect of the physical exercise (sometimes
according to a pre-defined training plan or other training
content). The audio guidance can be triggered based on pre-defined
criteria such as time intervals and/or it can be triggered based on
measured performance metrics from one or more sensors coupled to
and/or characterizing a user. The guidance can be triggered by an
action of a user (e.g., pressing a button, etc.).
[0006] In one aspect, data is accessed that comprises a training
plan that specifies at least one workout. Each workout specifies at
least one physical exercise and associated performance parameters
relating to the at least one physical exercise. Thereafter, data is
received during a workout by a user according to the training plan
that characterizes at least one of a physiological measurement of
the user, a position of the user, and an environment of the user.
Next, guidance to provide to the user is determined, based on the
received data and using the training plan, for the user to comply
with the training plan and the associated performance parameters.
Subsequently, provision of the guidance to the user is initiated in
real-time during the workout to allow the user to adjust his or her
workout accordingly.
[0007] At least a portion of the received data can be generated by
at least one sensor. The at least one sensor can include at least
one biometric sensor characterizing at least one physiological
measurement taken from the user during the workout. The at least
one biometric sensor can characterize a variety of attributes
including, for example one or more of: a heart rate of the user, a
distance travelled by the user during the workout, a current speed
of the user during the workout, a power metric relating to the
workout, a cadence of the user during the workout, a number of
calories burned by the user, a breathing rate of the user, a
galvanic skin response of the user, and body temperature of the
user. The data from the at least one biometric sensor can be
received continuously and in real-time during the workout such that
the guidance adapts based on the data received from the at least
one biometric sensor, the training plan, and the associated
performance parameters.
[0008] The guidance can take a variety of forms, including, for
example, audio guidance and video guidance. The training plan can
comprise a plurality of workouts each having different training
criteria. At least two of the workouts can have differing
associated performance parameters. The training plan can be
selected based on performance of the user during historical
workouts.
[0009] The accessing, receiving, and determining can be performed
by a portable device worn by the user comprising at least one data
processor and memory. The portable device can include at least one
of headphones and a display interface. The portable device and the
headphones can, in some variations, be integrated. The portable
device can wirelessly communicate with at least one sensor
characterizing performance of the user during the workout. The
portable device can be a mobile phone.
[0010] The training plan can be selected among a plurality of
training plans by the user via an online portal. Each training plan
can include metadata characterizing one or more attributes of the
training plan such that the metadata is searchable by the user via
the online portal. Each workout can include metadata characterizing
one or more attributes of the workout such that the metadata is
searchable by the user via the online portal.
[0011] The guidance can include information characterizing at least
one of: elapsed time of the workout, a distance travelled by the
user during the workout, a current speed of the user during the
workout, a power metric relating to the workout, a cadence of the
user during the workout, a number of calories burned by the user, a
breathing rate of the user, a galvanic skin response of the user,
and body temperature of the user. In addition or in the
alternative, the guidance can include at least one of: a current
time, a current altitude of the user, a current location of the
user, weather at the current location of the user, messages from
third parties to the user, hydration prompts to the user, and food
prompts to the user.
[0012] The training plan can include two or more concatenated
workouts. The training plan can include training content that
coaches the user follow to an exercise routine. The training
content can be used to provide adjustable guidance to the user in
real-time based on the performance of the user. The guidance can be
variable based on criteria specified by the training content. The
criteria can include one or more of calories burned by the user
during the workout, weight loss of the user during the workout, and
temperature of the user during workout. The training content can be
broadcasted to a plurality of users concurrently engaging in the
workout. The training content can be stored on a training content
server that is accessible by at least one computer network. The
training content server can store a profile for the user that
includes performance data regarding historical workouts and
associated training plans.
[0013] The training plan can be generated using a training content
generator platform. The training content generator plan can provide
a graphical user interface for generating training plans. The
training content generator can allow a user to specify, for a
workout, one or more of: activity intensities, nutrition
guidelines, and hydration guidelines.
[0014] The guidance can be provided in response to the user
activating an element on a portable device worn by the user during
the workout. The guidance is pushed to the user during the workout
based on the received data.
[0015] The training plan can be selected based on a heart rate test
previously executed by the user. The heart rate test can provide
guidance to the user requiring various levels of exertion while, at
the same time, monitoring a heart rate of the user.
[0016] In some cases, advertisements are provided to the user
during the workout and/or when selecting and/or configuring the
training plan.
[0017] The current subject matter can be implemented using a
variety of devices and architectures ranging from a fully
integrated single device without network connectivity to a
distributed device communicating with various components such as
the biometric sensors via directed paired connections and to a
hybrid combination of both with (continual or periodic) access to a
computer network.
[0018] In one variation, the accessing, receiving, and determining
are performed by a portable device worn by the user that includes
at least one data processor and memory. The portable device can
include at least one of headphones and a display interface in order
to provide the guidance. In some cases, the headphones are
integrated into the portable device while in other implementations
the headphones are connected via an audio jack and/or are
wirelessly paired to the portable device. The portable device can
be a dedicated hardware device or some or more of the aspects of
the portable device can be provided by a smart phone (e.g., an
IPHONE or a phone compatible with the ANDROID or WINDOWS operating
systems, etc.).
[0019] In an interrelated aspect, data comprising a training plan
that specifies at least one physical exercise and associated
performance parameters is accessed. Thereafter, data is received
from at least one exercise machine characterizing interaction by a
user with the exercise machine during a workout. It is then
determined, based on the received data and using the training plan,
guidance to provide to the user during the workout in order to
comply with the training plan. Subsequently, provision of the
guidance is initiated to the user in real-time during the workout
to allow the user to adjust his or workout accordingly. Biometric
sensors can also be employed that are used to determine guidance to
provide to the user when using the exercise machine.
[0020] In an interrelated aspect, a virtual race is initiated
amongst a plurality of portable device. Each portable device is
used by a different single user of a plurality of users and ach
portable device includes data characterizing a training plan
associated with the virtual race. Thereafter, the portable device
monitors performance of each user while engaging in the virtual
race. It is determined, based on the monitored performance and
using the training plan, guidance to provide to each user during
the workout in order to comply with the training plan.
Subsequently, guidance to the user is initiated in real-time during
the virtual race to allow each user to adjust his or performance
accordingly.
[0021] In a further interrelated aspect, data is received that is
generated from at least one biometric sensor characterizing
performance of a user in connection with each of a plurality of a
plurality of workouts in relation to respective training plans.
Thereafter, data is generated including at least one analytic
characterizing the performance of the user in relation to the
training plans. Data is then generated that includes at least one
report based on the generated at least one analytic that provides a
view of the at least one analytic. The report can be provided in a
variety of manners including displaying, loading, storing, and
transmitting to a remote computing device.
[0022] Computer program products are also described that comprise
non-transitory computer readable media storing instructions, which
when executed one or more data processor of one or more computing
systems, causes at least one data processor to perform operations
herein. Similarly, computer systems are also described that may
include one or more data processors and a memory coupled to the one
or more data processors. The memory may temporarily or permanently
store instructions that cause at least one processor to perform one
or more of the operations described herein. In addition, methods
can be implemented by one or more data processors either within a
single computing system or distributed among two or more computing
systems. Such computing systems can be connected and can exchange
data and/or commands or other instructions or the like via one or
more connections, including but not limited to a connection over a
network (e.g. the Internet, a wireless wide area network, a local
area network, a wide area network, a wired network, or the like),
via a direct connection between one or more of the multiple
computing systems, etc.
[0023] The subject matter described herein provides many
advantages. For example, by utilizing real-time sensor data, the
current subject matter can give real-time guidance and performance
correcting instruction to a user exercising to help optimize his or
her workout. This real-time guidance is also advantageous in that
it dynamically adjusts based on the sensor data and is conveyed to
the user through an auditor prompt (which obviates the need for the
user to check a written training plan and/or consult a handheld or
wrist worn/mounted device, etc.). In addition, the current subject
matter can be used to identify an appropriate training program
(warmup, workout intensity, recover, etc.) for a particular user
based on his or her historical and/or real-time performance.
[0024] The details of one or more variations of the subject matter
described herein are set forth in the accompanying drawings and the
description below. Other features and advantages of the subject
matter described herein will be apparent from the description and
drawings, and from the claims.
DESCRIPTION OF DRAWINGS
[0025] FIG. 1 is a diagram illustrating an integrated training
system;
[0026] FIG. 2 is a diagram illustrating various implementations of
an integrated training system;
[0027] FIG. 3 is a diagram illustrating another implementation of
an integrated training system;
[0028] FIG. 4 is a diagram illustrating various operational states
of an integrated training system;
[0029] FIG. 5 is a first view of a portal providing various
training plans;
[0030] FIG. 6 is a second view of a portal providing various
training plans;
[0031] FIG. 7 is a view of a dashboard characterizing various
workout metrics relating to a user;
[0032] FIG. 8 is a view illustrating a training log for a user and
performance analytics regarding one or more workouts;
[0033] FIG. 9 is a view illustrating scheduled workouts specified
by a training plan for a user;
[0034] FIG. 10 is a view of an interface for generating
workouts;
[0035] FIG. 11 is a view of metadata being specified/attached to a
workout;
[0036] FIG. 12 is a process flow diagram illustrating monitoring
performance of a user during a workout and providing feedback
according to a training plan;
[0037] FIG. 13 is a process flow diagram illustrating monitoring
performance of a user during a workout using an exercise machine
and providing feedback according to a training plan;
[0038] FIG. 14 is a process flow diagram illustrating initiating a
virtual race amongst a plurality of users of portable devices and
providing feedback to the users according to one or more training
plans during the virtual race; and
[0039] FIG. 15 is a process flow diagram illustrating analytics
relating to the performance of users during workouts according to
training plans.
DETAILED DESCRIPTION
[0040] FIG. 1 is diagram 100 illustrating a user wearing one or
more sensors and utilizing a portable device (PD) (as will be
further described below). The PD downloads content (either
wirelessly or via a removable wired connection directly or via a
remote computer) from a Training Content Server (TCS) (further
defined below). The user carries the PD while exercising (e.g.,
coupled to a waistline of the user, strapped to an arm of the user,
etc.). The PD can output audio to the user (either via a built-in
speaker or via wired/wireless headphones). The PD can receive and
measure user performance data via the different sensors. While the
diagram 100 of FIG. 1 illustrates the use of two sensors, it will
be appreciated that any number of sensors that characterize the
performance of the user while exercising can be used (including a
single sensor). Such sensors may be wirelessly connected to the PD
and/or physically integrated with the PD. As will be described in
further detail below, the PD can be integrated into the headphone
fully or partially (see the diagram 200 of FIG. 2, configurations
3, 4), be in-line with the audio/media source (see diagram 200 of
FIG. 2, configuration 2) or it can be integrated to a media source
(e.g., a music player such as an IPOD, etc.). PD can also act as a
performance storage device that record one or more sessions of
workout which can then be uploaded to TCS for review.
[0041] FIG. 2 is a diagram 200 that illustrates four sample
configurations of the PD (it will be appreciated that other
configurations consistent with the current description can also be
implemented). With the first configuration, the PD is part of a
media source (e.g., smart phone hardware platform such as an
IPHONE, an ANDROID-based phone, etc.). Audio delivered by the media
source can be commingled with commands/data from the PD. With the
second configuration, the PD is in-line with a media source and
headphones. For example, the PD can be coupled/connected to the
audio jack of a media source (e.g., IPHONE, etc.) and additionally
has headphones extending therefrom (the PD can have integrated
headphones or it can have an audio jack). With a third
configuration, the PD is integrated into headphones (or integral
with the headphones) and connected to a media source. With this
variation, the media source does not have any special client
software relating to the PD. With a fourth configuration, the PD is
built into the headphones and additionally, the media source has
resident client software to implement some of the aspects described
herein.
[0042] In other implementations, the PD can communicate with
Fitness Equipment (FE) such as a treadmill, elliptical trainer,
rowing machine, etc. either directly or via a network (e.g.,
Internet, local network, etc.). The PD can receive sensor feedback
from FE sensors, communicate to the TCS via the FE and/or the FE
can have training content (TC as defined below) available for the
PD. With such arrangements, the FE can act as one of the sensors
characterizing the performance of the use. In addition, the PD can
send workout results to the FE for display and further to the TCS
(i.e., the FE is almost acting like a laptop/PC). The PD can also
connect to the FE and the FE can be used as a display for the
measurements/routines/guidance, etc. of the user.
[0043] In other implementations, the PDs can connect to other PDs
directly or via TCS (and a network, etc.) to create a virtual race
(i.e., the PDs can all use the same TC and the linked PDs or the
TCS compare the results). The user can hear that `You are 2nd in
the race, keep it up`--this could be done real-time with other PDs
or non-realtime based on results that had been logged by other PDs
to the TCS.
[0044] Portable Device (PD).
[0045] The PD can have a variety of interfaces for acquiring data
from the sensors, providing guidance to users, devising training
plans, and for characterizing post-workout performance. The PD can
have an acoustic interface that provides, for example, voice
prompts and voice/speech recognition for setup, operation and
control of the PD. The PD can have a gestural interface such that
certain modes and functions might be accessed with specific head
movements (e.g., nodding, etc.). The gestural interface can require
one or more accelerometers or other sensors to characterize
relative body movement of the user (i.e. the PD can be controlled
by the sensors worn or used by the user).
[0046] The guidance provided by the PD can interrupt content being
played by the media source and/or it can overlay such content (with
the volume of the media source content being temporarily reduced
such that the PD guidance can be heard). In some cases in which the
PD is integrated with the media source and/or the PD includes a
two-way communication interface to a media source, the PD can use
and select appropriate music tempo matched to desired TC stride
rate/cadence. The user can also select which songs to play at any
given time (and in some cases, the available songs can be grouped
according to their tempo, intensity, etc.). With such an
arrangement, tempo information for various songs can be stored on
the media source and accessed by the PD.
[0047] The PD can bridge ANT+ and Bluetooth to enable use of
different sensors operating in ANT+, BT low energy or BT for music
(see diagram 200 FIG. 2, configuration 4). Currently there are few
wireless protocols for reporting sensor data (ANT, Blue Tooth (BT),
BT_Low_Energy (BT_LE), and others). This causes several
interoperability issues. With the use of the PD, the PD can be
built to bridge and receive different wireless protocols and make
them interoperable. For example, a ANT HR monitor may report data
over ANT+ radio, but a smart phone may transmit BT. The PD may
receive the ANT data and send it to the media source (for example,
via BT, etc.) where some of PD processing is done. WiFi can be
employed by the PD for automatically syncing with one or more
remote services.
[0048] The PD can also include a removable media card slot (such as
SD card). The media card can be used to provide TC and other media.
The media card can also include user settings, such as age, heart
rate zones, max heart rate, etc. The media card may also include
music to be played for the user. In one arrangement, the media card
can receive workout performance data or other data recorded by the
PD. In addition, the media card can be connected (either directly
or indirectly) to a computer/cell phone/etc. to download new TC and
to upload workout results to TCS
[0049] The PD and sensors can be made waterproof to be suitable for
swimming training which enables audio feedback during the swim
without the need to stop to listen to the coach. In addition, PD
can have built in circuit to harvest kinetic energy from user
movement and/or from solar cells. This energy may be used to charge
the internal battery. In addition, the PD can have various sensors
(e.g., position sensors, etc.) which can be used to provide
training content (TC) which is based on the position of the user
and/or the position information can be used to identify when a
certain portion of a workout (e.g., swimming prior to cycling,
etc.)
[0050] Training Content (TC).
[0051] TC can be characterized as a workout routine that coaches
the user to follow an exercise routine (as specified, for example,
in a training plan, etc.). The TC can be adjusted real-time while
the user performs the routine based on the intelligence the PD has
(or as it receives real-time performance date from sensors or
statistics from history, past performance, weather conditions, from
a remote coach, etc.). The TC can comprise audio
feedback/coaching/or non-coaching contextual segments that
instructs the user to perform the workout routine, soothing audio,
technique tips, etc. Each audio segment of TC can have an audio
title that describe the TC content--such as `1 h Interval run`. The
user can listen to each title before selecting a TC on the PD. In
addition to dynamic guidance--the TC can provide (on demand)
performance information (time, distance, speed, power, cadence,
calories) and contextual information (actual time, altitude,
location, weather, messages from friends, hydration and food
prompts) and training information (book on tape) "most runners make
the mistake of going too hard but not frequent enough".
[0052] TC can be constructed of steps that are measured in time,
distance, calories burned, etc. The TC can also recommend hydration
and calorie intake during user performance. These can be calculated
based on burned calories and measure weight loss (sweat), user
temperature, and the like (as measured by or derived from one or
more of the sensors). For each step, TC can have intensity targets
such as HR, Speed, Power, Cadence. Each TC can have associated
coaching audio files to cover each coaching scenario. The audio
files can be indexed in a way that the PD knows what audio file
needs to be played at any given time or intensity. The TC can be
adapted during the exercise based on external feedback (i.e. remote
coach can send the PD new audio prompts wirelessly) or based on
current sensor readings, such as environmental factors. The PD can
calculate appropriate coaching to the user depending on user's
performance (or expected performance, predicted outcome, or past
performance, or statistics on other users performing the same TC)
during the steps relative to the targets and will play the related
audio file or may instruct the user to choose a different workout
or Training Plan (TP).
[0053] Several TC files can be used in combination to construct an
audio-based TP (which results in a series of performance-related
milestones, etc.). For example, the TP can adjust dynamically
(based on two or more TC files) based on user performance. In
addition, the TC files can be connected to reflect a
multi-event/routine exercise such as swim--cycle--run, etc. The PD
can detect when each of the events/routines are completed so that
the next event/routine can be automatically initiated. TP can be
characterized as a longer-term progress to improve fitness, lose
weight, etc. A user performs the workout and follows the TC and a
log file can be generated to record the performance. This log file
can be uploaded to the TCS for further analysis.
[0054] As stated above, the TC can be a description of the workout
in steps. One of several steps joined together construct the
workout. The steps can include coaching points dispersed in
time/distance/calories, that link to certain audio files. The
coaching points can comprise a static pre-recorded audio file to be
played to the user based on current time/distance/calories burned
and/or one or more coaching messages. The coaching messages can be
played based on the sensor readings such as bio-metric HR
information/environmental sensors feedback or based on history of
past events/statistics of the user or other users.
[0055] The TC file or structure can also include workout metadata
that may describe the workout's attributes and information related
to the workout. The metadata is part of the TC file structure. The
attributes of the workout can be the sport (such as running,
cycling, yoga, etc.), overall difficulty level, workout intensity,
the terrain it is suitable for (i.e. for hills), what equipment may
be needed to perform the workout, etc. The TC metadata can be used
by the PC or TCS to select and recommend workouts to the user. The
metadata can be used to filter TC from the TCS based on a user's
current fitness level or profile, based on location, based on
equipment available (i.e. RFID recognized workout equipment).
Further the TC metadata can include author information, commercial
information (price, sponsor, etc.). The TC may also include audio
files that are advertising messages. FIG. 11 is a view 1100 that
illustrates an interface for specifying metadata so that it can be
associated with a workout/training plan. As noted above, the
metadata can include difficulty, coach name, type of workout, title
of workout, duration, distance, advertising info, and more.
[0056] Training Content Server (TCS).
[0057] The TCS can be a remote or on premise server that is
accessible by the PD directly, wirelessly or accessible via the
media source (e.g., IPHONE, etc.) over a communications network
such as the Internet. In addition, or alternatively the
functionality of the TCS can be provided locally on a smartphone or
table computer app (e.g., IPAD app, etc.). In addition, a user can
connect to the TCS via a standard PC (e.g., the TCS can be accessed
via a website or it can form part of resident client software,
etc.) The TCS can be coupled to a plurality of PDs so that
real-time guidance/coaching can be provided to each user. In some
cases, the guidance of a first user can be based on the performance
of a second user. For example, in competitive situations in which
the first user seeks to have a better time than the second user or
when the first and second users are working out together. In
addition, for certain applications such as wellness or gym-based
workouts, the TC can be broadcasted to PDs of users (which the
users can accept). Examples include a spin class, a group beach
workout, cross-country trail running, etc.
[0058] The TCS can store/host a user profile for the user, TC,
fitness statistics, training plans (TPs), and other information
relating to the user for the PD to access such as maps, etc. The
TCS can authenticate each user (e.g., by measured heart rate, voice
recognition, etc.) and device to be able to offer new TC for
download and upload executed TC log files. In addition, TCS is a
platform for coaches that can enable coaches to create and publish
TC and as well, `manage` athletes and measure and recommend new TC
(i.e., the coaches can define new TPs via a website which are
downloaded (automatically or on-demand) to the PDs of their various
athletes). In addition, TCS can also have built-in intelligence to
analyze user profile, TC log files to assess users' fitness level,
recommend new TC, alert the user/doctor/coach of health issues,
etc. In addition, TCS can have a commerce option that enables users
to buy TC, coaching services, etc. The TCS can also send targeted
advertising to users in the system based on analysis of their
workouts/profile/etc.
[0059] FIG. 5 is a view 500 of the TCS that shows various training
plans which are available. A user can select one or more of these
training plans so that they can be downloaded to or otherwise
associated with the PD for the user. The presented training plans
can be filtered based on various criteria including fitness goals
of the user, activity types, and particular coaches. FIG. 6 is a
further view 600 showing further available training plans on the
TCS and additional attributes/features which can be used to
categorize or otherwise sort/filter the training plans presented to
the user. In some cases, individual workouts can be displayed as
opposed to training plans which include multiple workouts. The TCS
portal views can include advertising relating to training plans or
other wellness/fitness products or services.
[0060] The TCS can be configured so that a user can be rewarded
based on the TC performance with `points` or other incentives.
Points could be used to buy new TCs, TPs, or other product in lieu
of money or they can be given to charitable causes. In addition,
TCS can allow a user share TC log files and TC results with others
(e.g., post on FACEBOOK, TWITTER, etc.). On the TCS, the user can
see what TC is downloaded to the PD and be able to sync up to get
most recent TC files (or new versions of the PD firmware). The user
can also view the upcoming TP or TC in a form of a calendar and
arrange the TC for any given day. The upcoming TCs and schedule can
be emailed, messaged (SMS, MMS), etc. to the user. The calendar can
also be synced with other electronic calendar such as GOOGLE
Calendar. The TCS can generate a log characterizing each TC user
has executed (i.e., used in a workout) and if the user had uploaded
the log file, the TCS can plot the performance to the user for any
given TC. TCS can also measure user performance relative to other
users and have them compete or just compare to averages of other
similar users.
[0061] Various analytics and graphical representations can be
generated by the TCS (either directly via a web service) or as part
of client software on a media source or on the PD. For example,
users can overlay graphically different TC to see variances and
changes or improvements. The TCS can also recommend nutrition
recommendations based on the users calorie burn and fitness
objectives (i.e. weight loss). TCS can be linked to other external
nutrition systems (e.g., via web services, etc.) that read TC log
files. The TCS can be configured to host competitions of users to
execute a TC or TP and compare performances based on uploaded TC
log files. Moreover, the TCS can be configured so that users can
connect and follow other users and challenge other users to perform
TC, etc.
[0062] FIGS. 7 and 8 are views 700, 800 characterizing various
performance metrics in relation to a user. Such analytics can be
based on a user's performance in a single workout and/or they can
be based on a user's performance across multiple workouts/training
plans. The view 700 of FIG. 7 shows profile information for a user
as well as a score for a workout, and various stats regarding the
workout (e.g., total time, distance travelled, calories burned, and
average pace). The view 800 of FIG. 8 shows a user's performance in
relation to specific zones (i.e., segments) of a workout having
differing performance parameters/guidelines. These analytics can be
generated, for example, by analyzing a training log of a user (that
characterizes his or her performance during a workout) for
compliance within the parameters specified by the training
plan/workout.
[0063] Training Content Generator (TCG).
[0064] The TCG is a platform for coaches and users to create and
publish new TC. The TCG can be a software application resident on
the PD or a client computer (laptop, PC, smart phone, media player,
etc.) or it can be a software application on a remote or on premise
computer accessible via, for example, the Internet. FIG. 10 is a
view 1000 of a sample interface for specifying zones/times for a
workout, associated performance parameters, and corresponding
guidance. Using this interface, a coach can design a workout,
associated prompts, training zones, timing and the like. Fields can
include notes that characterize certain aspects of the workout.
[0065] The platform executing/interfacing with the TCG can have an
audio input (to allow for voice-based instructions and other
interaction). The TCG can offer an easy visual way to building and
publishing (drag and drop) TC steps, assigning activity
intensities/set and workout goals/nutrition tips/hydration notes
for each step within the workout. The TCG can assign coaching audio
files for each performance scenario. These audio files can be
selected based on predetermined logic, or based on dynamic modeling
based on events that have happened during the exercise. TCG can
also allow inserting of commercial messages.
[0066] The TCG can also offer the coach a method to record the
personal coaching audio files for the TC. The TCG can also compress
such audio files to be more suitable for the PD. The TCG can also
be configured to provide a user-friendly ability for a coach to
upload to allow for the publishing of the TC for any give user and
add it to the user's TC library, TP or calendar (FIG. 9 shows a
view 900 of various scheduled workouts for a user based on one or
more training plans). Via the TCG or TCS users and coaches can
interact via instant messaging, email, TWITTER, FACEBOOK, etc.
Moreover, the TCG can also be configured to include premium content
which must be purchased by users. For example, a coach can assign a
price to the content and charge users for the use/download of this
content. The TC can be posted on the TCS where users can see it,
buy it and download it to their PD. The user can preview the TC by
listening samples of the audio.
[0067] As mentioned above, the PD delivers audio information to a
user in any of the configurations illustrated in the diagram 200 of
FIG. 2. This audio information is advantageous because most Heart
Rate Monitors (HRM) are watch/wrist mounted devices. This limits
the practical size of the display. Furthermore, the amount and type
of information that can be displayed is limited. Very small
type/font is not practical to read while exercising (i.e. running).
With older age, it is likely that a person is not able to read such
a display without reading glasses. Some HRMs have added beeps to
alert the user for certain actions. Such beeps are also limited and
possibly hard to hear during a run, especially if the person is
listening to music via headphones (this is very typical).
[0068] The PD can be characterized as an extension of the LCD
display of HRMs for athletes. The audio feature can be described as
an Audio Based Display (ABD) system that is/can be integrated to
the headphones. With reference to the diagram 300 of FIG. 3, the
ADB can automatically connect wirelessly (e.g. ANT+) to the HRM and
related sensors (e.g., accelerometers, pace sensor, etc.). The ADB
can switch to HRM messages (or other audio guidance) and not play
music to speakers during HRM messages, or the volume of the music
can be temporarily lowered and the messages/guidance can be played
over the music. The HRM message/guidance can be delivered in a push
fashion (automatically sent to the user based on performance data
obtained from the sensors and/or based on time intervals) or it can
be delivered in a pull fashion (e.g., a user can activate a button
on the PD to get stats relate to the workout including HR, miles
travelled, calories burned, etc.).
[0069] The ADB can have buttons for a user to initiate the ADB
settings, or request information from the HRM. The ADB can also
include a microphone for receiving voice input from the user much
like car navigation systems--and the PD may give all information
via audio. The user can, for example, request, on-the fly,
different TC content and/or request data from the sensors (e.g.,
heart rate).
[0070] In addition, HRMs are increasingly complex to set up and
most users do not pay attention to the complicated setup or manuals
for the HRM. The ADB can enable voice guides/user guide for the HRM
use and settings.
[0071] Automatic HR Training Zone Setup.
[0072] It can also be difficult for a user to understand the HR
values and certain HR training zones. Each person's heart is
different and the heart muscle changes over fitness and age (the HR
zones are described as a % of max HR or % of Lactate Threshold HR).
Most users do now know their max heart rate (or LTHR) to be able to
calculate and determine accurate HR training zones.
[0073] Many formulas (such as 220-age) have been developed to
average and estimate HR Max and then a % of the Max is used to
determine different zones. Even this is still cumbersome and
requires math and good memory to remember each 5-7 zones start and
end values. The current subject matter can use a protocol involving
a HR test workout to receive the user's HR values that are then
used automatically to adjust the correct training zones. To do
this, the user can download the HR test TC to his/her PD and start
the workout. The workout can guide the user to increase intensity
gradually until a certain LT HR is reached. This protocol is
carefully drafted to guide the user accurately and consistently to
a certain Perceived Rate of Exertion level (RPE). It has been
demonstrated that this method is reliable to assess users LTHR.
During this process the user does not need to hear or know anything
about his/her HR values. Everything is calculated automatically.
The PD and TCS (or other server) can receive the log file of this
workout and determine the HR value (while eliminating obvious error
readings) from the second last step of this workout (the Max HR
during the second last segment will be a close approximation of
user's LTHR.) The values can then be checked against the known
formulas (e.g. 220-age) to further verify that the measurement data
is accurate and no gross errors are made. The PD and TCS can then
store the user's zones under his/her fitness profile and scale all
future workouts to these zones.
[0074] A user need not get their HR to max values (dangerous for
unfit people) and user need not know their HR values--everything
relating to target HR and monitoring of same can be done
automatically. Also, as the user's fitness improves the zones are
likely to change. The TCS and PD can enable the user to repeat this
test multiple times to keep the HR training zones current.
[0075] Combination of Audio Files and Workouts.
[0076] In order for a user to get appropriate feedback during a
workout (WO), certain audio files need to be available at the PD
that are associated with the WO. As described above, the TCS can
combine the authentic coaching prompts with the WO. In addition
certain non-coaching system prompts can be used to alert the
user.
[0077] To get most authentic training, the PD is not using a
generic prompts to guide the user. Instead, each WO is combined
with relevant coaching audio that is interacting with the HR or
other sensor values. The coach can construct the WO by describing
each step of the WO and what are the coaching parameters during
this step--and what are the desired coaching prompts. The coach can
then be asked to record the prompts with the TCG (or alternatively
the coach can select pre-recorded coaching guidance).
[0078] The coaching prompts can be played at any given time,
distance, pace/speed, cadence, calorie burned. In addition, effort
level coaching can be set (in-range, above range and below range)
to help guide the user to either maintain, decrease or increase
his/her effort during the step of the WO. As stated above, the
benefit of the current subject matter is that it allows more
authentic personalized coaching that is more motivating vs. generic
`answering machine` voice and can be much more accurate because it
is interacting with actual user performance . . . . In addition,
the current subject matter also enables easy use of languages as
the coach can record with any language.
[0079] Use of Modeling to Teach User from Others/Examples--Running
Form Guidance--Real-Time.
[0080] The current options for running form training in real-time
is to have a coach next to you to only visually observe and coach
the User. This is not practical in many cases and would be very
expensive for the user to hire a coach for each run. The
alternative is to have someone take a video of the user running and
then post analyze it by coach. The post analysis does not result in
effective feedback and it is not done in real-time and with instant
feedback.
[0081] The TCS can enable people to learn running form and get
real-time instant feedback of running form that can effectively
improve the runners economy and injury prevention. The PD can
measure user running cadence (with the use of a foot pod as one of
the sensors in communication with the PD) and recommend a higher
cadence to promote mid-foot striking vs. slow cadence and possible
heel striking. Further other sensors can be worn by or coupled to
the user to detect his or her form while performing/undergoing
fitness and/or wellness movements. For example, sensors such as
gyro, position sensors for other sports measuring acceleration,
position, swing, repetition, force, etc. can be utilized and such
sensors can be embedded in compatible sporting goods like apparel,
bikes, rackets, clubs, straps, etc. The sensors can monitor both
large movements of the user--but also fine movements (especially as
it relates to resistance training/weight training, etc.).
[0082] By modeling good runners (recording vast amount of runner
data and their related sensor readings and correlating it with User
profile), the TCS can be trained to compare the user to others and
suggest improvements to the running form. The use of modeling data
can also be used to identify more optimal/economical movements for
activities such as running and swimming.
[0083] PD Architecture.
[0084] The PD behavior can be defined in terms of states,
transitions and events. The PD firmware can be in one and only one
defined state at any given time. While in a specific state, PD
software follows a sequence of activities and upon completion,
transitions to another state. Some transitions depend on events
such as timer expiration or user button press. A summary of these
states, transitions and events is depicted in the state diagram 400
of FIG. 4.
[0085] STATE_POWER. This is the state that the PD finds itself upon
transitioning from no power to when power is provided to the PD
device. The device goes through this state only once after
power-up. Hardware initialization that needs to be done once and is
common to the rest of the states is implemented here.
[0086] STATE_DORMANT. To conserve battery and extend the use of PD,
a special power save mode is developed. In this state the PD
requires the minimum amount of power. The main purpose of this
state is to draw minimum power between usages of the device. A
transition out of this state is required before any use.
[0087] STATE_INIT. This state is where the PD hardware is verified.
Battery status, radio and sound logic is tested.
[0088] STATE_CONNECT. In this state, the PD is trying to connect to
near-by sensors.
[0089] STATE_FAULT. This state is reached after failed hardware
test or pairing in STATE_INIT.
[0090] STATE_DWELL. This is the normal active state, while is use
and with functional hardware. In this state, the MCU draws minimal
power while still responding to the user buttons, to internally
generated timer events and to external interrupts.
[0091] Upon entering this state from STATE_CONNECT, the volume is
adjusted to "soft start". This way the user is not blasted by too
loud volume.
[0092] STATE_PROMPT. This state is reached when the user wishes to
hear prompts. Output audio is rerouted from the external source to
the internal prompts.
[0093] Data previously stored during STATE_SENSE is used to index
the corresponding "number prompt". It can be heart rate or distance
based on workout type and paired sensors.
[0094] When a transition to this state is from [info] transition,
then the current voice routing is toggled between outputting to the
headphone from prompts or from the 3.5 mm input jack.
[0095] STATE_SENSE. This state is reached periodically when a
predetermined timer expires or at any given time as determined by
the workout file. Sensed data is gathered from connected sensor
devices, formatted and stored.
[0096] STATE_COACH. This state is reached periodically when a
predetermined timer expires. Coaching is active or not based on
inputs from the [play] button. While coaching is active a [play]
push will toggle to the passive state.
[0097] STATE_USB. This state is reached when user plugs the PD into
an active USB host port. When a user unplugged the PD from the USB
host, a transition to STATE_DORMANT takes place.
[0098] In this USB state, the PD battery is charged by on-board
power circuitry. The status of charge progress is conveyed to the
user via the LEDs. USB data interface is supported in this
state.
[0099] STATE_VOLUME. This state is reached when the user presses
the [Volume] button. The device volume will increment one level per
press and will back to minimum volume after the maximum volume is
reached. For every [volume] press the prompt "volume" will be
played once.
[0100] STATE_WORKOUT. This state is reached when a user presses the
[WO-up] or [WO-down] buttons. The workout selected is the next
workout that was current before entering this state or the previous
workout--based on up or down push. When done with this state PD
transitions to STATE_DWELL. A voice prompt is announcing the
current workout title.
[0101] Actual workout is selected when a user presses the [Play]
button. When a workout is already selected the [Play] button is
used to control the prompts or [pause/stop] the workout.
[0102] STATE_LOG. This state logs the current workout activity data
into non-volatile memory.
[0103] When [pause] key is pressed, a special marker is recorded
and then logging is suspended. Logging resumes when [play] key is
pressed (also a special marker can be added to the log file).
[0104] System transitions. Transitions among states are one
directional arrow between two states. These arrows have two
type--named and un-named. Un-named arrow depicts a natural
transition from one state to the next state upon normal exiting out
of the current state.
[0105] Named transitions are based on events described in more
details for each such named transition below: [0106] TRAN_BAD This
is an exit from STATE_INIT or STATE_CONNECT with testing resulting
in errors. [0107] TRAN_KEY_VOLUME This is a single short press of
the [Volume] key. [0108] TRAN_KEY_POWER [0109] This is a single
short press of the [Power] key. The press needs to be longer than
[0.5] seconds to be a valid press. [0110] TRAN_KEY_INFO This is a
single short press of the [Info] key [0111] TRAN_KEY_WORKOUT This
is a single short press of the [WO-up] or [WO-down] key [0112]
TRAN_KEY_PLAY This is a single short press of the [Play] key.
[0113] TRAN_KEY_INFO This is a single short press of the [Info]
key. [0114] TRAN_T1 This is timer generated transition to generate
voice prompts. [0115] TRAN_T2 This is an ANT radio interrupt
indicating new data from a sensor. [0116] TRAN_T3 [0117] This is
the expiration of a timer set to, periodically, store activity data
from sensors into non-volatile memory. [0118] TRAN_T4 This is the
expiration of a timer set to, periodically, enter execution of
coaching [0119] TRAN_USB This is a transition from when PD is
connected to USB to when PD is not connected to USB.
[0120] FIGS. 12-15 illustrate various process flow diagrams for
implementing the subject matter described herein. FIG. 12 is a
diagram 1200 in which, at 1210, data is accessing data that
includes a training plan specifying at least one workout. Each
workout in turn specifies at least one physical exercise and
associated performance parameters relating to the at least one
physical exercise. In addition, at 1220, data is received, during a
workout by a user according to the training plan, that
characterizes at least one of a physiological measurement of the
user, a position of the user, and an environment of the user.
Thereafter, at 1230, it is determined based on the received data
and using the training plan, guidance to provide to the user during
the workout in order to comply with the training plan and the
associated performance parameters. Guidance is then provided, at
1240, in real-time to the user during the workout to allow the user
to adjust his or her workout accordingly.
[0121] FIG. 13 is a diagram 1300 in which, at 1310, data is
accessed that comprises a training plan specifying at least one
physical exercise and associated performance parameters. In
addition, at 1320, data is received from at least one exercise
machine characterizing interaction by a user with the exercise
machine during a workout. It is determined, at 1330, based on the
received data and using the training plan, guidance to provide to
the user during the workout in order to comply with the training
plan. Guidance is then provided, at 1340, to the user in real-time
during the workout to allow the user to adjust his or her workout
accordingly.
[0122] FIG. 14 is a diagram 1400 in which, at 1410, a virtual race
is initiated amongst a plurality of portable devices. Each portable
device is used by a different single user of a plurality of users
and includes data characterizing a training plan associated with
the virtual race. Thereafter, at 1420, performance of each user is
monitored while engaging in the virtual race using the respective
portable devices. It is determined, at 1430, based on the monitored
performance and using the training plan, guidance to provide to
each user during the workout in order to comply with the training
plan. Guidance is then provided, at 1440, to the user in real-time
during the virtual race to allow each user to adjust his or her
performance accordingly.
[0123] FIG. 15 is a diagram 1500 in which, at 1510, data is
received that is generated from at least one biometric sensor
characterizing performance of a user in connection with each of a
plurality of a plurality of workouts in relation to respective
training plans. Data is generated, at 1520, that comprises at least
one analytic characterizing the performance of the user in relation
to the training plans. Thereafter, at 1530, data is generated and
provided that comprises at least one report based on the generated
at least one analytic and that provides a view of the at least one
analytic.
[0124] One or more aspects or features of the subject matter
described herein may be realized in digital electronic circuitry,
integrated circuitry, specially designed ASICs (application
specific integrated circuits), computer hardware, firmware,
software, and/or combinations thereof. These various
implementations may include implementation in one or more computer
programs that are executable and/or interpretable on a programmable
system including at least one programmable processor, which may be
special or general purpose, coupled to receive data and
instructions from, and to transmit data and instructions to, a
storage system, at least one input device (e.g., mouse, touch
screen, etc.), and at least one output device.
[0125] These computer programs, which can also be referred to
programs, software, software applications, applications,
components, or code, include machine instructions for a
programmable processor, and can be implemented in a high-level
procedural and/or object-oriented programming language, and/or in
assembly/machine language. As used herein, the term
"machine-readable medium" refers to any computer program product,
apparatus and/or device, such as for example magnetic discs,
optical disks, memory, and Programmable Logic Devices (PLDs), used
to provide machine instructions and/or data to a programmable
processor, including a machine-readable medium that receives
machine instructions as a machine-readable signal. The term
"machine-readable signal" refers to any signal used to provide
machine instructions and/or data to a programmable processor. The
machine-readable medium can store such machine instructions
non-transitorily, such as for example as would a non-transient
solid state memory or a magnetic hard drive or any equivalent
storage medium. The machine-readable medium can alternatively or
additionally store such machine instructions in a transient manner,
such as for example as would a processor cache or other random
access memory associated with one or more physical processor
cores.
[0126] These computer programs, which can also be referred to
programs, software, software applications, applications,
components, or code, include machine instructions for a
programmable processor, and can be implemented in a high-level
procedural language, an object-oriented programming language, a
functional programming language, a logical programming language,
and/or in assembly/machine language. As used herein, the term
"machine-readable medium" refers to any computer program product,
apparatus and/or device, such as for example magnetic discs,
optical disks, memory, and Programmable Logic Devices (PLDs), used
to provide machine instructions and/or data to a programmable
processor, including a machine-readable medium that receives
machine instructions as a machine-readable signal. The term
"machine-readable signal" refers to any signal used to provide
machine instructions and/or data to a programmable processor. The
machine-readable medium can store such machine instructions
non-transitorily, such as for example as would a non-transient
solid state memory or a magnetic hard drive or any equivalent
storage medium. The machine-readable medium can alternatively or
additionally store such machine instructions in a transient manner,
such as for example as would a processor cache or other random
access memory associated with one or more physical processor
cores.
[0127] To provide for interaction with a user, the subject matter
described herein can be implemented on a computer having a display
device, such as for example a cathode ray tube (CRT) or a liquid
crystal display (LCD) monitor for displaying information to the
user and a keyboard and a pointing device, such as for example a
mouse or a trackball, by which the user may provide input to the
computer. Other kinds of devices can be used to provide for
interaction with a user as well. For example, feedback provided to
the user can be any form of sensory feedback, such as for example
visual feedback, auditory feedback, or tactile feedback; and input
from the user may be received in any form, including, but not
limited to, acoustic, speech, or tactile input. Other possible
input devices include, but are not limited to, touch screens or
other touch-sensitive devices such as single or multi-point
resistive or capacitive trackpads, voice recognition hardware and
software, optical scanners, optical pointers, digital image capture
devices and associated interpretation software, and the like.
[0128] The subject matter described herein may be implemented in a
computing system that includes a back-end component (e.g., as a
data server), or that includes a middleware component (e.g., an
application server), or that includes a front-end component (e.g.,
a client computer having a graphical user interface or a Web
browser through which a user may interact with an implementation of
the subject matter described herein), or any combination of such
back-end, middleware, or front-end components. The components of
the system may be interconnected by any form or medium of digital
data communication (e.g., a communication network). Examples of
communication networks include a local area network ("LAN"), a wide
area network ("WAN"), and the Internet.
[0129] The computing system may include clients and servers. A
client and server are generally remote from each other and
typically interact through a communication network. The
relationship of client and server arises by virtue of computer
programs running on the respective computers and having a
client-server relationship to each other.
[0130] The subject matter described herein can be embodied in
systems, apparatus, methods, and/or articles depending on the
desired configuration. The implementations set forth in the
foregoing description do not represent all implementations
consistent with the subject matter described herein. Instead, they
are merely some examples consistent with aspects related to the
described subject matter. Although a few variations have been
described in detail above, other modifications or additions are
possible. In particular, further features and/or variations can be
provided in addition to those set forth herein. For example, the
implementations described above can be directed to various
combinations and subcombinations of the disclosed features and/or
combinations and subcombinations of several further features
disclosed above. In addition, the logic flow(s) depicted in the
accompanying figures and/or described herein do not necessarily
require the particular order shown, or sequential order, to achieve
desirable results. Other implementations may be within the scope of
the following claims.
* * * * *