The present invention generally relates to systems and methods for monitoring activities of a user and, more particularly, relates to terminals and associated methods and computer program products for monitoring and tracking fitness activities of a user.
People follow exercise programs for a variety of reasons. These reasons include maintaining general well-being, assisting a weight loss program and preparation for a particular sporting event, such as a marathon. Such programs need to be carefully formulated and managed if the desired effect is to be achieved, and the exerciser is to avoid injury. It is known, for example from U.S. Pat. No. 6,635,013, to use a computer to provide a user with an exercise program. However, this system merely provides printed static instructions. Consequently, a person who requires more interactive exercise program development must employ a personal fitness trainer, which can be inconvenient and costly.
Systems and apparatuses have been developed to provide a fitness program that is cost-effective and convenient. One such apparatus is disclosed by Great Britain (GB) Patent Application No. 0326387.8, entitled: Apparatus and Method for Providing a User with a Personal Exercise Program, filed Nov. 12, 2003, the contents of which are hereby incorporated by reference in its entirety. As disclosed by GB 0326387.8, an exercise assistance apparatus includes a user interface, which can comprise a wireless communication receiver, and a processor, which can comprise a mobile phone. The apparatus is configured for generating an exercise program based upon physical parameters, such as physiological information (e.g., information relating to aerobic fitness) of a user, where the exercise program can include aerobic fitness and/or strength enhancing exercises. The apparatus can also be configured for controlling the user interface to provide guidance to the user during performance of a generated program.
The apparatus can be configured to generate a program that includes a plurality of exercise definitions, each including a variable exercise duration parameter. The apparatus can set the variable parameter based upon the physiological information, such as the input information relating to aerobic fitness. The apparatus can also be configured to compute an exercise duration by multiplying a base duration by an aerobic fitness value for the user. The aerobic fitness value, in turn, can be determined based upon the input physiological information, and thereafter modified, such as at predetermined times (e.g., intervals of three to eight weeks), based upon physiological information that can be input at the end of an exercise of the generated program. More particularly, for example, the aerobic fitness value can be modified by determining an expected performance, determining actual performance from the physiological information received after exercises, comparing the expected and actual performances, and thereafter increasing or decreasing the aerobic fitness value based upon the comparison.
The apparatus can also be configured to generate a program by selecting a mix of exercises of different intensity classes, where the ratios of the mix of intensities are determined by the aerobic fitness value. If so desired, the ratios can be further determined based upon the number of exercise sessions per week in the generated program. The apparatus can be configured to select a varied selection of exercises in an intensity class from a predetermined list of exercises, such as by selecting exercises for a terminal period of the program that represent a reduction in intensity.
The apparatus can further be configured to generate a program by selecting exercises based upon a strength value, where the strength value can be determined based upon the input physiological information. In such instances, the apparatus can be configured to select exercises for the program that become successively harder during the program. And as indicated above, the apparatus can be configured to determine a varied selection of exercises from a predetermined list of exercises.
Whereas an apparatus such as that disclosed by GB 0326387.8 adequately provides a fitness program that is cost-effective and convenient. It is always desirable to improve upon such apparatuses. Thus, it would be desirable to design an activity monitor capable of deriving physiological information relating to a user performing an exercise, where the activity monitor includes a means for wirelessly communicating the derived physiological information, such as to an exercise assistance apparatus like that disclosed by GB 0326387.8.
In light of the foregoing background, embodiments of the present invention provide a terminal and associated method and computer program product for monitoring at least one activity of a user. Although the user typically comprises a person, in accordance with embodiments of the present invention, the user can alternatively comprise any of a number of entities capable of performing one or more activities. For example, the user can comprise a dog, cat, horse, rabbit, goat or other animal capable of performing one or more activities, many activities being performed much like a person.
Embodiments of the present invention are capable of monitoring the fitness activities of a user, and enabling the user to manage his or her personal fitness goals. In this regard, the terminal is capable of recognizing movements of the terminal, the movements being representative of movements of the terminal user in performing one or more activities. Based upon the movement of the user, the terminal is capable of tracking information regarding the activit(ies) performed by the user. For example, the terminal is capable of tracking the user's calorie consumption based upon personal information and an activity type. The information regarding the activit(ies) performed by the user can then be used, such as to monitor the information relative to personal fitness goals, with the terminal storing the information for subsequent use, if so desired. The terminal is capable of being embodied in a portable package that can be placed in relatively close proximity to the user, such as by being carried, belted, clipped or otherwise attached to or within the immediate proximity of the user.
According to one aspect of the present invention, a terminal is provided for monitoring at least one activity of a user. The terminal includes a connecting means, at least one acceleration sensor and a controller. The connecting means, which can comprise a strap, belt, clip, lanyard or the like, is adapted for attaching the terminal onto a body of the user. The acceleration sensor(s) are capable of measuring and providing acceleration measurement signals representative of movement of the user in performing an activity. The acceleration sensor(s) can be capable of measuring and providing acceleration measurement signals with a given sampling frequency. In various instances, then, an activity detection application, which is capable of being operated by the controller, is capable of dynamically adjusting the sampling frequency of the acceleration sensor(s) to thereby control power consumption of the terminal.
As indicated above, the controller is capable of operating an activity detection application. The activity detection application, in turn, can be capable of receiving a selection of an activity and at least a portion of the measurement signals. The activity detection application can also capable of determining at least one value related to the user performing the selected activity based upon the acceleration measurement signals and possibly the selected activity, at least one value comprising an intensity value representing an intensity with which the user performs the activity. Also, for example, the activity detection application can be capable of determining an energy expended by the user in performing the activity, a duration over which the user performs the activity, and/or a speed of the user in performing the activity. Additionally or alternatively, the activity detection application can be capable of determining a number of steps taken by the user in performing the activity, and/or a distance over which the user performs the activity.
Irrespective of the value(s) determined by the activity detection application, the activity detection application can also be capable of determining a position and/or a posture of the terminal to thereby facilitate identifying when the terminal is operating during at least one period of inactivity of the user. Additionally or alternatively, the activity detection application can be capable of receiving a selection of an activity automatically detectable by the activity detection application. In such instances, the activity detection application can also be capable of automatically detecting an activity performed by the user before determining at least one value. For example, the activity detection application can be capable of automatically detecting one of inactivity, a walking activity and a running activity.
The activity detection application can be capable of identifying a type of activity based upon the selected activity, such as a duration activity, intensity activity or step activity. Thereafter, the activity detection application can determine at least one value based upon the type of activity. For example, the activity detection application can be capable of determining an activity type intensity value based upon the intensity value and an identified type of activity. Additionally or alternatively, the activity detection application can be capable of determining an activity-specific intensity value based upon the activity type intensity value and the selected activity.
Further, for example, when the activity is a duration activity, the activity detection application can be capable of determining an energy expended by the user in performing the selected activity based upon the selected activity and a duration over which the user performs the selected activity. Alternatively, when the activity comprises an intensity activity, the activity detection application can be capable of determining the energy expended by the user in performing the selected activity further based upon an intensity with which the user performs the selected activity. And when the activity comprises a step activity, the activity detection application can be capable of determining the energy expended by the user in performing the selected activity further based upon a speed of the user in performing the selected activity when the activity comprises a step activity.
The terminal can further include a display, which is capable of being driven by the activity detection application to present at least one value and at least one predefined goal associated with the presented value(s). In this regard, the activity detection application can be further capable of comparing the value(s) to at least one predefined goal associated with the value(s). In such instances, the goal(s) can reflect at least one value associated with at least one other user, and/or at least one reference value.
The activity detection application can be capable of driving the display to present the predefined goal(s) and a progress of the user toward the respective predefined goal(s), where the progress is based upon the value(s). More particularly, the activity detection application can be capable of driving the display to present a graphical representation of predefined goal(s), the graphical representation of the goal(s) including a plurality of sections, each section representing a successive percentage of the goal. In such instances, the activity detection application can also drive the display to present a graphical representation of the progress by altering a respective section of the graphical representation of the goal in response to the user meeting the successive percentage.
According to other aspects of the present invention, a method and computer program product are provided for monitoring at least one activity of a user. Therefore, embodiments of the present invention provide a terminal and associated method and computer program product for monitoring activit(ies) of a user. As indicated above and explained below, the terminal, method and computer program product of embodiments of the present invention are capable of monitoring the fitness activities of a user, and enabling the user to manage his or her personal fitness goals. The terminal, method and computer program product can be capable of recognizing movements representative of those of the terminal user in performing one or more activities. Based upon the movements, the terminal is capable of tracking information regarding the activit(ies) performed by the user. In accordance with embodiments of the present invention, the terminal can track information regarding the activit(ies) performed by the user based upon a selection of those activit(ies) to thereby permit the terminal to more particularly determine values such as the calorie consumption of the user. Information such as the calorie consumption of the user can then be used, such as to monitor the information of the user relative to personal fitness goals. Therefore, the system and associated terminal, method and computer program product of embodiments of the present invention solve the problems identified by prior techniques and provide additional advantages.
Having thus described the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
The present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which preferred embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout.
As shown, the terminal 10 includes a processor such as a controller 12. The controller includes the circuitry required for implementing the functions of the terminal in accordance with embodiments of the present invention, as explained in greater detail below. For example, the controller may be comprised of a digital signal processor device, a microprocessor device, and/or various analog to digital converters, digital to analog converters, and other support circuits. The control and signal processing functions of the terminal are allocated between these devices according to their respective capabilities. The controller may also include the functionally to operate one or more software applications. In addition to the controller, the terminal also includes a user interface that may include, for example, a conventional earphone or speaker 14 capable of being driven by the controller to present various audible tones during operation of the terminal. The user interface may also include a display 16 and a user input interface, both of which are also coupled to the controller. The user input interface, which allows the terminal to receive data, can comprise any of a number of devices allowing the terminal to receive data, such as a keypad 18, a touch display (not shown) or other input device. In embodiments including a keypad, the keypad can include one or more keys used for operating the terminal.
The terminal can also include one or more means for sharing and/or obtaining data from electronic devices in accordance with any of a number of different wireline and/or wireless techniques, as also explained below. For example, the terminal can include a radio frequency (RF) transceiver 20 and/or an infrared (IR) transceiver 22 such that the terminal can share and/or obtain data in accordance with radio frequency and/or infrared techniques. Also, for example, the terminal can include a Bluetooth (BT) transceiver 24 such that the terminal can share and/or obtain data in accordance with Bluetooth transfer techniques. Although not shown, the terminal may additionally or alternatively be capable of transmitting and/or receiving data from electronic devices according to a number of different wireline and/or wireless networking techniques, including LAN and/or WLAN techniques.
The terminal 10 can further include memory, such as a volatile memory 26 and/or non-volatile memory 28. The non-volatile memory, for example, can comprise embedded or removable multimedia memory cards (MMC's), Memory Sticks manufactured by Sony Corporation, EEPROM, flash memory, hard disk or the like. The memories can store any of a number of pieces of information, and data, used by the terminal to implement the functions of the terminal. For example, the memories can store activity detection application 30 capable of operating on the terminal to monitor the fitness activities of a user of the terminal, and manage the user's personal fitness goals. In this regard, the memories can also store a database 32 including, for example, personal information regarding a user of the terminal, such as date of birth, gender, height and/or weight, as well as a step length for the user when walking and/or running. In addition, for example, the database can include personal fitness goals of the user, such as a one-time and/or weekly goal for an amount of time performing one or more activities, a number of steps take in performing the activit(ies), a number of calories burned in performing the activit(ies), and/or a distance traveled in performing the activit(ies). Likewise, for example, the database can include an amount of time spent by the user in performing one or more activities for a given time period, a number of steps taken in performing the activit(ies), a number of calories burned in performing the activit(ies), and/or a distance traveled in performing the activit(ies).
The terminal may also have one or more sensors 34 for sensing the ambient conditions of the terminal, where the conditions may be representative of the ambient conditions of the user of the terminal. In this regard, the terminal may include sensors such as, for example, a positioning sensor, a touch sensor, an audio sensor, a compass sensor, an ambient light sensor, and/or an ambient temperature sensor. The positioning sensor can comprise, for example, a global positioning system (GPS) sensor. Additionally, or alternatively, the positioning sensor can comprise, for example, a radio beacon triangulation sensor that determines the location of the wireless device by means of a network of radio beacons, base stations, or access points, as is described for example, in Nokia European patent EP 0 767 594 A3, entitled: Terminal Positioning System, published on May 12, 1999, the contents of which are hereby incorporated by reference in its entirety. Although the terminal can include any of a number of different sensors, in one typical embodiment, at least one of the sensors comprises a two or three-axis acceleration sensor (accelerometer).
As indicated above, and shown in
Operation of the activity detection application 30 will now be described in accordance with embodiments of the present invention. In this regard, as indicated above, the activity detection application can be embodied in software stored in non-volatile memory 28 and operated by the controller 12 of the terminal 10. It should be understood, however, that whereas the activity detection application is typically embodied in software, the activity detection application can alternatively be embodied in firmware, hardware or the like. Generally, and as explained in greater detail below, the activity detection application is capable of interfacing with the sensor(s) 34 of the terminal to receive measurement(s) of the ambient condition(s) of the user, such as to receive acceleration measurements indicative of movement over a distance for one or more periods of time. In this regard, the movement may be representative of the user taking one or more steps while performing one or more activities over those period(s) of time. As the activity detection application receives such measurement(s), the activity detection application can be capable of tracking a duration of activity of the user, the distance moved by the user in performing the activity, the number of steps taken by the user of the distance, and/or the speed of movement of the user. The activity detection application can additionally be capable of computing energy (e.g., calories) expended by the user in performing the activity.
As will be appreciated, measurements received from the sensor(s) 34 may be indicative of the user running or walking while performing one or more of a number of different activities. For example, measurements may be indicative of the user performing activities such as walking, running, dancing, gardening (outdoor housework), performing housework (indoor housework), and/or participating in a sporting activity (e.g., aerobics, badminton, basketball, football, soccer, golf, weight training, hiking, jumping rope, squash, table tennis, tennis, Nordic training, squash, racquet ball, etc.). And as will also be appreciated, a user may expend more or less energy over a given duration, distance and number of steps depending upon the particular activity performed by the user. Thus, as the activity detection application receives measurement(s) of the ambient conditions of the user for each period of time, the activity detection application 30 can be capable of computing the energy expended by the user based upon the activity performed by the user and an intensity level with which the user performed the activity.
More particularly, reference is now to
Irrespective of how the activity detection application 30 receives the user's personal information and selection of activity, the activity detection application can thereafter be operated to monitor the user in performing the selected activity. More particularly, the activity detection application can receive measurements from one or more sensors 34 of the terminal 10, where the sensor(s) are capable of measuring ambient conditions of the user of the terminal. In one typical embodiment shown in block 38 and described hereinbelow for purposes of illustration, the activity detection application receives acceleration measurements, such as down-acceleration (x-axis) and back-acceleration (y-axis) measurements, from an accelerometer. The activity detection application 30 can receive one or more measurements from the sensor(s) 34 at one or more different times during operation. In one embodiment, for example, the activity detection application receives measurements with a 25 Hz sampling frequency. If necessary, each sampled measurement can also be converted from an analog measurement into a digital measurement for subsequent processing by the activity detection application. For example, each sampled measurement can be passed through an analog-to-digital converter that converts the analog sample into a digital sample, such as a 12-bit digital sample representing measurement amplitudes from 0 to 4095.
Although the activity detection application 30 can receive measurements with a given sampling frequency, the activity detection application can be capable of dynamically adjusting the sampling frequency to thereby control power consumption of the terminal 10. For example, the activity detection application can receive measurements from the accelerometer, and if the measurements are below a given threshold, decrease the sampling frequency to thereby reduce power consumption of the terminal. The activity detection application can thereafter increase the sampling frequency if the measurements increase to above the threshold.
As the activity detection application 30 receives measurements from the accelerometer, the activity detection application can preprocess the accelerometer measurements for subsequent use by the activity detection application, as shown in block 40. For example, the activity detection application can limit the measurements to within a given range of measurements, and/or normalize the measurements. More particularly, for example, when the measurements are sampled and converted into 12-bit samples representing amplitudes from 0 to 4095, the activity detection application can limit each measurement, i, to within a range from 1700 to 2500 as follows:
where xi and yi refer to the ith down-acceleration (x-axis) and back-acceleration (y-axis) measurements from the accelerometer, respectively; and {circumflex over (x)}i and ŷi refer to the ith range-limited down-acceleration (x-axis) and back-acceleration (y-axis) measurements, respectively. Generally, as used herein unless otherwise stated, xi and yi refer to measurements input into a processing step, and {circumflex over (x)}i and ŷi refer to measurements output from the respective processing step.
Also, as indicated above, the activity detection application 30 can normalize the measurements. For example, the activity detection application can normalize the measurements about a base of zero by reducing each measurement by the average of all of the measurements. Written notationally, then, each measurement can be normalized as follows:
where N1 equals a number of samples in a sample window block (e.g., 128 samples) (where the mean computation in determining {circumflex over (x)}i and ŷi can be performed once per sample window block); xi and yi refer to the ith measurements for the respective sample window block; and {circumflex over (x)}i and ŷi normalized measurements for the respective sample window block.
Before or after pre-processing the measurements from the accelerometer, the activity detection application can identify a type of the selected activity, as shown in block 42. In this regard, as will be appreciated, different activities can include different dominating attributes defining the basis for computing the energy expended by the user in performing the respective activities. For example, the energy expended in performing activities such as gardening, weight training, housework and jumping rope can typically be determined based upon the duration over which the user performs the respective activities. For other activities such as dancing, aerobics, badminton, basketball, football, soccer, golf, hiking, squash, table tennis, tennis, Nordic training, squash and racquet ball, the energy expended by the user can typically be determined based upon an intensity with which the user performs the respective activities. Still yet, for activities such as walking and running, the energy expended by the user can be determined based upon the speed of the user in performing the respective activities.
The activity selected by the user (see block 36) can therefore have an associated type based upon the technique for computing the energy expended by the user in performing the selected activity. Although each activity can have any of a number of different types, in one typical embodiment, each activity can be identified as either a duration activity, an intensity activity or a step activity. In contrast to the intensity and step activities, as indicated above, energy expended by the user in performing duration activities can be determined based upon the duration over which the user performs the respective activities. Thus, in general, and more particularly for the duration activities, the activity detection application 30 can be capable of tracking the duration over which the user performs the selected activity, as shown in block 44.
For each intensity activity, on the other hand, an intensity value can be determined for the user in performing the activity, as shown in block 46. The intensity value can be determined in any of a number of different manners. In one embodiment, for example, the intensity value can be determined based upon an average acceleration measurement. More particularly, the intensity value, I, can be determined as follows:
where N2 equals a number of samples taken during a given measurement period, which can equal or be different from N1 indicated above. After determining the intensity value, if so desired, the intensity value can be scaled, such as to within a range from 0 to 100.
In contrast to intensity activities, for each step activity, the activity detection application 30 can detect each step of the user in performing the respective activity, as shown in block 48. As the user performs the activity, then, the activity detection application can track the number of steps taken by the user, as well as the speed with which the user takes the steps. Although the activity detection application can detect each step in any of a number of different manners, in one embodiment, the activity detection application detects each step by first bandpass filtering the accelerometer measurements. For example, the activity detection application can finite impulse response (FIR) filter the measurements, normalizing the filtered measurements to avoid overflow, if so desired.
As will be appreciated by those skilled in the art, the activity detection application can detect steps of the user based upon the down-acceleration (x-axis) measurements without the back-acceleration (y-axis) measurements. In various embodiments, however, it may be desirable to detect steps of the user based upon the back-acceleration measurements, particularly in instances when the user moves at a very low walking speed. The following description, therefore, will focus on the down-acceleration measurements, although it should be understood that the activity detection application can equally process the back-acceleration measurements in the same manner as the down-acceleration measurements, if so desired.
In one more particular embodiment, the activity detection application 30 can pass the down-acceleration measurements through the following FIR filter:
where hk comprises each of m (e.g., m=16) filter taps, and C1 comprises a constant (e.g., 2048). The FIR filter can include any of a number of different filter taps to realize the filter. For example, the FIR filter can include a set of filter taps for each step activity, such as one set of filter taps for walking activity and another set for running activity. In this regard, the filter taps for walking activity can realize a bandpass filter with cutoff frequencies at 0.1 and 4 Hz, while the filter taps for running activity can realize a bandpass filter with cutoff frequencies at 0.1 and 2 Hz.
After filtering the measurements, the activity detection application 30 can compute a threshold value from the filtered measurements. More particularly, for example, the activity detection application can determine a threshold, T, in accordance with the following:
where N1, as before, equals a number of samples in a sample window block (e.g., 128 samples), where the mean computation in determining the threshold, T, can be performed once per sample window block. As will be appreciated, if so desired, the threshold can be configured to have a minimum value (e.g., TMIN=25) to eliminate step detection from very low measurements, such as when the terminal 10 is resting on a desk.
After filtering measurements and computing the threshold value, then, the activity detection application 30 can detect steps by comparing the filtered measurements and the threshold value. More particularly, for example, the activity detection application can operate a state machine whereby S0 represents the state when a measurement is greater than a respective threshold value, and S1 represents the state when the measurement is less than the negative threshold value. From the states, then, the activity detection application can detect a step each time the state transitions from S1 to S0, i.e., each time the measurements that are less than the negative threshold value increase to being greater than the threshold value. Because the activity detection application can receive one or more sporadic measurements that can indicate a step when the user has not actually taken a step, if so desired, state S1 can include a timeout (e.g., one second) such that if the measurements are not greater than the threshold within the timeout, state S0 is entered without a corresponding step detection.
In addition to detecting each step, the activity detection application 30, as indicated above, can determine a speed at which the user performs the step activity, as also shown in block 48. For example, the activity detection application can determine a speed by determining the rate at which the activity detection application detects each step. The step rate can then be multiplied by the step length for the user when performing the respective step activity (e.g., walking, running, etc.), where the step length can be input by the user with other personal information (see block 36). Further, the activity detection application can determine the distance over which the user has performed the selected activity. For example, the activity detection application can determine distance by multiplying the number of detected steps by the step length for the respective activity.
As will be appreciated, the activity detection application 30 determines or computes a number of different values for each selected activity, whether an intensity activity, duration activity or step activity. It should be understood, however, that irrespective of the type of selected activity, the activity detection application can determine or compute the values for any one or more of the other activity types, without departing from the spirit and scope of the present invention. For example, irrespective of the activity type, the activity detection application can be capable of determining or computing any one or more of the intensity value, the duration of the activity, the number of detected steps, the speed at which the user performs the activity and/or the distance over which the user performs the activity.
More particularly, for example, the activity detection application 30 can determine or compute an intensity value representing the intensity with which the user performs an activity, regardless of the type of activity or particular selected activity, such as in a manner described above. As will be appreciated, however, the intensity value can be weighted based upon the type of activity and/or selected activity to reflect a relative effort required by the user in performing the type of activity and/or selected activity. In such instances, the intensity value determined as described above is considered a general intensity value. To weight the general intensity value, then, the general intensity value can be multiplied by a first weighting factor, W1, unique to the type of activity to thereby determine an activity type intensity value, such as in accordance with the following:
Iduration, intensity, step=I×W1duration, intensity, step
For example, consider a general intensity value of 27, and a first weighting factor for a step activity of 2.33 (i.e., W1duration=2.33). In such an instance, the activity detection application 30 can determine a duration intensity value, Iduration, equal to 63 (i.e., 27×2.33).
Then, if so desired, the activity type intensity value can be multiplied by a second weighting factor, W2, unique to a selected activity of the respective activity type to thereby determine an activity-specific intensity value, such as in accordance with the following:
Iactivity=Iduration, intensity, step×W2activity
Further, for example, consider a second weighting factor for walking of 1.5 (i.e., W2walking=1.5). The activity detection application can then further determine a walking-specific intensity value, Iwalking, equal to 94.5 (i.e., 63×1.5). As will be appreciated, the first weighting factors and second weighting factors, W1 and W2, can be determined in any of a number of different manners, such as from empirical analysis, studies or the like.
At one or more points in time, as or after the activity detection application 30 determines or computes one or more of the aforementioned values, the activity detection application can also compute the energy expended by the user in performing the selected activity, as shown in block 50. In this regard, as indicated above, the activity detection application can compute the energy expended based upon the activity, and further based upon the type of activity. In addition, the activity detection application can determine the energy expended by the user in performing a duration activity further based upon a basal metabolic rate (BMR) of the user, a metabolic equivalent (MET) and the duration over which the user performed the activity. Although the activity detection application can be configured to determine the energy expended by the user further based upon the user's nutritional intake, the activity detection application typically just determines the energy expended by the user in performing the selected activity, without regard to the user's nutritional intake.
More particularly, the activity detection application can determine the MET based upon the activity, and further based upon the intensity value when the selected activity has an intensity activity type, and further based upon the speed when the selected activity has a step activity type. Written notationally, then, the activity detection application can determine the number of calories expended by the user in accordance with one of the following:
Caloriesduration=BMR×MET(activity)×time
Caloriesintensity=BMR×MET(activity, intensity)×time
Caloriesstep=BMR×MET(activity, speed)×time
The BMR and MET can be determined in any of a number of different manners. For example, the BMR can be determined based upon the gender, age and weight of the user, each of which can be input with other personal information of the user (see block 36). More particularly, the BMR can be determined from World Health Organization equations predicting the BMR based upon the age and weight of the user. For example, for males ages 18-30, the BMR can be determined as follows:
BMR18-30=15.3×weight+679
where weight can be expressed in kilograms.
Like the BMR, the MET can be determined in any of a number of different manners. As will be appreciated MET values are typically defined as the energy cost of an activity, and comprise multiples of the BMR for different activities. The MET values for duration activities, for example, can comprise constant multipliers based upon the respective activity, where the constant can be determined from empirical analysis, studies or the like. For intensity activities, the MET can be determined based upon a relationship between the energy cost and intensity value for the selected activity. Thus, from empirical analysis, studies or the like, a relationship can be determined between MET and intensity, I, for each selectable activity. Although any order relationship can be determined between MET and intensity, I, in one embodiment a linear relationship can be determined that has the following form:
MET(activity, intensity)=C3×I+C4
In the preceding equation, C3 and C4 represent constants for the selected activity that define the linear relationship, both of which, as indicated above, can be determined from empirical analysis, studies or the like. As will be appreciated, in various instances it may be desirable to bound the relationship between MET and I to within minimum and maximum values, i.e., METMAX, METMIN and IMAX, IMIN. In such instances, when the intensity, I, is below IMIN, C3 and C4 can be set equal to zero. And when I exceeds IMAX, C3 can be set equal to zero, while C4 is set equal to METMAX.
In contrast to the MET for intensity activities, the MET for step activities can be determined by weighting the speed of performing the selected activity based upon the selected activity. More particularly, for example, the MET for step activities can be determined as follows:
MET(activity, speed)walking=0.4930×speed
MET(activity, speed)running=1.0×speed
where speed can be expressed in kilometers per hour (km/h).
As the activity detection application 30 operates and determines or computes the various values, the activity detection application can record one or more values, such as in the database 32 of the terminal 10. For example, as shown in block 52, the activity detection application can record the energy expended, duration, distance and/or detected steps for the user in performing the selected activity. As shown in block 54, during operation, the activity detection application can continuously receive measurements from the accelerometer, and determine or compute different values for the user in performing the selected activity.
The values recorded by the activity detection application 30 can thereafter be compared to previous values recorded by the activity detection application, and/or goals of the user. For example, the recorded energy expended, duration, distance and/or detected steps can be compared to previously recorded values and/or goals for energy expended, duration, distance and/or detected steps, respectively. As will be appreciated, the previously recorded values and/or goals can be compared for any of a number of different time periods, such as for a single activity, or one or more activities performed over a day, week, month, year, etc. By comparing the values required by the activity detection to previous values recorded by the activity detection application, the activity detection application can facilitate the user in reaching those goals, and/or in improving the user's technique in performing a given activity. For example, by comparing the intensity value over multiple time periods for the same activity performed over the same distance, the activity detection application can facilitate the user in improving the user's technique in performing the activity by decreasing the intensity value in performing the activity.
To permit the activity detection application 30 to compare the recorded values to goals of the user, either as or after the user inputs, and the activity detection application receives, personal information of the user, the user can input, and the activity detection application can receive, goals of the user relating to one or more selected activities. For example, the activity detection application can receive goals such as a desired amount of energy expended, duration of performing an activity, distance over which to perform the activity and/or number of steps in performing the activity. The goals can reflect any of a number of different goals of the user. For example, the goals can reflect personal goals of the user that can be determined based upon previous performance of the user. Additionally or alternatively, for example, one or more of the goals can reflect values associated with one or more other users. In such instances, for example, the values associated with the other user(s) can be received from other terminals 10, such as in accordance with any of a number of different techniques, as explained below. Additionally or alternatively, one or more of the goals can reflect reference values associated with sports figures or other personalities such as David Beckham (soccer), Jahangir Kahn (squash) or the like.
In addition to the values recorded over a given time period, and/or the goals for the respective values of the given time period, the activity detection application 30 can be capable of presenting the comparison of the goals of the user and the user's progress toward those goals. For example, as shown in
As the activity detection application 30 identifies when user meets each successive percentage of a goal, such as by comparing the goal to the respective recorded values, the activity detection application can drive the display 16 to alter the respective section of the closed loop representation of the goal in response to the user meeting the successive percentage. The activity detection application can alter the respective section in any of a number of different manners. In one embodiment shown in
In addition to presenting a graphical representation of the goal and the user's progression toward a goal for a given time period, the time period can be increased or decreased for different time periods and the user's progression presented relative to those time periods. For example, a user's daily goal to walk 10,000 steps can be converted to a weekly goal by multiplying the daily goal by seven days per week (i.e., 70,000 steps), a monthly goal by multiply the daily goal by thirty days per month (i.e., 300,000 steps), and so forth. Alternatively, for example, a user's daily goal to walk 10,000 steps can be converted to an hourly goal by dividing the daily goal by twenty-four hours per day (i.e., 417 steps), a minute goal by dividing the daily goal by 1440 minutes per day (i.e., 7 steps), and so forth. The values relating to the respective goal can then be recorded and collected over the respective time period(s) and presented in relation to the respective goal(s), such as in a manner shown in
As indicated above, the activity detection application 30 can present, and receive an “automatic detection” selection that, upon being selected, causes the activity detection application to detect an activity as the user performs the activity. In one typical embodiment, for example, when the selected activity comprises “automatic detection,” the activity detection application can detect an activity from the user being inactive, or performing a walking or running activity. In this regard, over a sample window block (e.g., N=50), the mean absolute values for the down-acceleration (x-axis) and back-acceleration (y-axis) measurements can be computed, such as in accordance with the following:
Then, for each pair [xmean, ymean], the activity detection application can determine the squared Euclidian distance, d, to a predefined centroid associated with each of the detectable activities. In this regard, each activity can have an associated coordinate pair of centroid values. The walking activity, for example, can have the following centroid coordinate pair: Cx=120, Cy=70. Written notationally, then, for each detectable activity, the distance d can be determined as follows:
d=(xmean−Cx)2+(ymean−Cy)2
After determining the distance d to the centroid associated with each of the detectable activities, the activity detection application can select the activity having the shortest distance as the detected activity.
As will be appreciated, in various instances, the terminal 10 may be operating (having executed or otherwise initiated the activity detection application 30) at locations other than those proximate to a user performing a selected or detected activity, such as when the terminal is positioned at a storage location. The activity detection application can therefore be configured to determine, from measurements received from the accelerometer, the position of the terminal to thereby facilitate the activity detection application in identifying when the user is performing an activity, and when the terminal is operating during periods of inactivity of the user. From such a determination, then, the activity detection application can further compute the duration of time the user is actually inactive when the terminal is operating.
As indicated above, the terminal 10 can include one or more of the sensors 34 comprising a two or three-axis acceleration sensor (accelerometer). In instances in which the terminal includes a three-axis accelerometer, the activity detection application 30 can further receive measurements from all three axes to thereby determine a posture of the terminal when the terminal is operating. By determining the posture, the activity detection application can determine when the terminal is operating during periods of inactivity of the user independent of the orientation of the terminal. Further, the activity detection application can determine the posture of the user when an attachment position of the terminal to the user is known, such as to also permit the activity detection application can determine when the terminal is operating during periods of inactivity.
As indicated above, the activity detection application 30 can be capable of managing the user's personal fitness goals. In this regard, as also indicated above, the activity detection application can drive the display to present those goals, as well as the user's progression toward such goals. It should be understood, however, that the activity detection application can also dynamically adjust one or more goals of the user based upon the user's progression toward those goals. For example, presume that a user has a weekly goal of walking 70,000 steps that can be subdivided into a daily goal of 10,000 steps. Also, presume that over the first five days of the week the user has only walked a total of 10,000. In such instances, the activity detection application can adjust the daily goal of the user over the remaining two days of the week to 30,000 steps per day. By adjusting the daily goal to 30,000 steps per day, the user can meet the weekly goal of 70,000 steps by meeting the adjusted daily goal over the remaining two days of the week.
Reference is now made to
Also during operation, the user can be capable of selecting one of the soft keys presented by the display 16 (e.g., “Menu” and “Activity”), such as via the user input interface. As shown in
As shown more particularly in
As shown in
As shown briefly in
It should be noted that many of the values measured, determined and/or computed in accordance with embodiments of the present invention have associated units. In this regard, upon selecting the “Settings” function, as shown in
As shown briefly in
Further, as shown briefly in
Referring to
As shown, the terminal 10 is capable of interfacing with a mobile station 60, such as the mobile station disclose by GB 0326387.8, in accordance with techniques such as, for example, radio frequency (RF), Bluetooth (BT), infrared (IrDA) or any of a number of different wireless networking techniques, including WLAN techniques. It should be understood, however, that although the terminal and mobile station are shown and described herein as comprising separate components of the system of
As well known to those skilled in the art, the mobile network may also be referred to as a Base Station/MSC/Interworking function (BMI). In operation, the MSC is capable of routing calls to and from the mobile station when the mobile station is making and receiving calls. The MSC can also provide a connection to landline trunks when the mobile station is involved in a call. In addition, the MSC can be capable of controlling the forwarding of messages to and from the mobile station, and can also control the forwarding of messages for the mobile station to and from a messaging center, such as short messaging service (SMS) messages to and from a SMS center (SMSC).
The MSC 66 can be coupled to a data network, such as a local area network (LAN), a metropolitan area network (MAN), and/or a wide area network (WAN). The MSC can be directly coupled to the data network. In one typical embodiment, however, the MSC is coupled to a GTW 68, and the GTW is coupled to a WAN, such as the Internet 70. In turn, devices such as processing elements (e.g., personal computers, server computers or the like) can be coupled to the mobile station 60, and thus the terminal 10, via the Internet. For example, as explained below, the processing elements can include one or more processing elements associated with an origin server 72 or the like, one of which being illustrated in
The BS 14 can also be coupled to a signaling GPRS (General Packet Radio Service) support node (SGSN) 74. As is well known, the SGSN is typically capable of performing functions similar to the MSC 66 for packet switched services. The SGSN, like the MSC, can be coupled to a data network, such as the Internet 70. The SGSN can be directly coupled to the data network. In a more typical embodiment, however, the SGSN is coupled to a packet-switched core network, such as a GPRS core network 76. The packet-switched core network is then coupled to another GTW, such as a GTW GPRS support node (GGSN) 78, and the GGSN is coupled to the Internet. In addition to the GGSN, the packet-switched core network can also be coupled to a GTW 68. Also, the GGSN can be coupled to a messaging center, such as a multimedia messaging service (MMS) center. In this regard, the GGSN and the SGSN, like the MSC, can be capable of controlling the forwarding of messages, such as MMS messages. The GGSN and SGSN can also be capable of controlling the forwarding of messages for the mobile station, and thus the terminal 10, to and from the messaging center.
In addition, by coupling the SGSN 74 to the GPRS core network 76 and the GGSN 78, devices such as origin servers 72 can be coupled to the mobile station 60, and thus the terminal 10, via the Internet 80, SGSN and GGSN. In this regard, devices such as origin servers can communicate with the mobile station across the SGSN, GPRS and GGSN. For example, origin servers can provide content to the mobile station, such as in accordance with the Multimedia Broadcast Multicast Service (MBMS). For more information on the MBMS, see Third Generation Partnership Project (3GPP) technical specification 3GPP TS 22.146, entitled: Multimedia Broadcast Multicast Service (MBMS), the contents of which are hereby incorporated by reference in its entirety.
Although not every element of every possible mobile network is shown and described herein, it should be appreciated that the mobile station 60, and thus the terminal 10, can be coupled to one or more of any of a number of different networks through the BS 14. In this regard, the network(s) can be capable of supporting communication in accordance with any one or more of a number of first-generation (1G), second-generation (2G), 2.5G and/or third-generation (3G) mobile communication protocols or the like. For example, one or more of the network(s) can be capable of supporting communication in accordance with 2G wireless communication protocols IS-136 (TDMA), GSM, and IS-95 (CDMA). Also, for example, one or more of the network(s) can be capable of supporting communication in accordance with 2.5G wireless communication protocols GPRS, Enhanced Data GSM Environment (EDGE), or the like. Further, for example, one or more of the network(s) can be capable of supporting communication in accordance with 3G wireless communication protocols such as Universal Mobile Telephone System (UMTS) network employing Wideband Code Division Multiple Access (WCDMA) radio access technology. Some narrow-band AMPS (NAMPS), as well as TACS, network(s) may also benefit from embodiments of the present invention, as should dual or higher mode mobile stations (e.g., digital/analog or TDMA/CDMA/analog phones).
In addition to, or in lieu of, interfacing the terminal with a mobile station 60, the terminal 10 can be coupled to one or more wireless access points (APs) 80. The APs can comprise access points configured to communicate with the terminal in accordance with techniques such as, for example, radio frequency (RF), Bluetooth (BT), infrared (IrDA) or any of a number of different wireless networking techniques, including WLAN techniques. Additionally, or alternatively, the terminal can be coupled to one or more user processors 82. Each user processor can comprise a computing system such as personal computers, laptop computers or the like. In this regard, the user processors can be configured to communicate with the mobile station in accordance with techniques such as, for example, RF, BT, IrDA or any of a number of different wireline or wireless communication techniques, including LAN and/or WLAN techniques. One or more of the user processors can additionally, or alternatively, include a removable memory capable of storing content, which can thereafter be transferred to the terminal.
The APs 80 and the user processors 82 may be coupled to the Internet 70. Like with the MSC 66, the APs and user processors can be directly coupled to the Internet. In one advantageous embodiment, however, the APs are indirectly coupled to the Internet via a GTW 68. As will be appreciated, by directly or indirectly connecting the terminals 10 and the origin server 72, as well as any of a number of other devices, to the Internet, the terminals can communicate with one another, the origin server, etc., to thereby carry out various functions of the terminal, such as to transmit data, content or the like to, and/or receive content, data or the like from, the origin server.
According to one aspect of the present invention, all or a portion of the system of the present invention, such as all or portions of the terminal 10 generally operates under control of a computer program product (e.g., activity detection application 30). The computer program product for performing the methods of embodiments of the present invention includes a computer-readable storage medium, such as the non-volatile storage medium, and computer-readable program code portions, such as a series of computer instructions, embodied in the computer-readable storage medium.
In this regard,
Accordingly, blocks or steps of the flowchart supports combinations of means for performing the specified functions, combinations of steps for performing the specified functions and program instruction means for performing the specified functions. It will also be understood that each block or step of the flowchart, and combinations of block(s) or step(s) in the flowchart, can be implemented by special purpose hardware-based computer systems which perform the specified functions or steps, or combinations of special purpose hardware and computer instructions.
Many modifications and other embodiments of the invention will come to mind to one skilled in the art to which this invention pertains having the benefit of the teachings presented in the foregoing descriptions and the associated drawings. Therefore, it is to be understood that the invention is not to be limited to the specific embodiments disclosed and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.
The present application claims priority from U.S. Provisional Patent Application Ser. No. 60/540,607, entitled: SYSTEM AND ASSOCIATED TERMINAL, METHOD AND COMPUTER PROGRAM PRODUCT FOR MONITORING AT LEAST ONE ACTIVITY OF A USER, filed on Jan. 31, 2004, the contents of which are incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60540607 | Jan 2004 | US |