1. Field
The embodiments described below relate to the generation and presentation of activity-related graphics. Some embodiments relate to the generation and presentation of graphical indicators conforming to a personalized display scale.
2. Description
The benefits of monitoring fitness-related information are well-known. A conventional stationary exercise device may include a display which graphically presents information such as time elapsed, heart rate, calories burned, etc. Wearable/portable fitness monitors also display fitness-related information to users. This information provides motivation, immediate feedback, and a better understanding of progress toward fitness goals.
Fitness-related information is typically presented using alphanumeric characters (e.g., “110 BPM”) or graphical visualizations. For example, a bar chart may present a heart rate over time. Such a bar chart may include several bars, each associated with a different time interval, where the length of a bar represents a heart rate during its associated time interval.
Graphical visualizations may provide an intuitive understanding of underlying fitness-related information. However, improvements to such graphical visualizations are desired, which may result in improved understanding of the underlying information, utilization of display screen area, and/or other benefits.
Some embodiments relate to a device, method, and/or computer-readable medium storing processor-executable process steps to receive from a user, via a sensor, first data indicative of activity of the user, determine one or more values of a metric based on the first data, determine a display scale based on the one or more values, receive from the user, via the sensor, second data indicative of activity of the user over a time interval, determine a second value of the metric based on the second data, generate a graphical indicator representing the second value based on the display scale and the second value, and display the graphical indicator on a display.
Some aspects further include reception from the user, via the sensor, third data indicative of activity of the user over a second time interval, determination of a third value of the metric based on the third data, generation of a second graphical indicator representing the third value based on the display scale and the third value, and display of the second graphical indicator on the display.
In some aspects, the value of the metric associated with a respective time interval is indicative of physical activity during the respective time interval. For example, the metric may be step count, heart rate, distance traveled, activity level, altitude ascended, altitude descended, floors climbed, or calories burned.
According to some aspects, the display scale indicates a length per N units of the metric. The display scale may also or alternatively indicate a number of icons per N units of the metric.
In some aspects, a position of the displayed graphical indicator on the display indicates the time interval. The position may be along an arc of a circle, wherein arcs of the circle represent a plurality of time intervals.
According to some aspects, first data indicative of activity of a user is received, one or more values of a metric are determined based on the first data, a display scale is determined based on the one or more values, second data indicative of activity of the user over a time interval is received, a second value of the metric is determined based on the second data, a graphical indicator representing the second value is generated based on the display scale and the second value, and data representing the graphical indicator is transmitted to a display device.
Further aspects include reception of third data indicative of activity of the user over a second time interval, determination of a third value of the metric based on the third data, generation of a second graphical indicator representing the third value based on the display scale and the third value, and transmission of the second graphical indicator to the display device.
According to some aspects, the display scale indicates a length per N units of the metric. The display scale may also or alternatively indicate a number of icons per N units of the metric.
A more complete understanding of some embodiments can be obtained by referring to the following detailed description and to the drawings appended hereto.
The construction and usage of embodiments will become readily apparent from consideration of the following specification as illustrated in the accompanying drawings, in which like reference numerals designate like parts, and wherein:
The following description is provided to enable any person in the art to make and use the described embodiments. Various modifications, however, will remain readily apparent to those in the art.
A brief example will now be described with reference to
Monitoring device 100 receives data 110 from user 120. Data 110 is received via sensor 105, and is indicative of activity of user 120. Data 110 may be received over any suitable time interval. According to some embodiments, sensor 105 is a heart rate sensor and data 110 comprises signals detected from user 120 by sensor 105.
One or more values of a metric are determined based on data 110. Continuing the example, sensor 105, alone or in conjunction with other elements of monitoring device 100 determines a heart rate of user 120 based on data 110. According to some embodiments, the determined heart rate may comprise an average heart rate during the time interval over which data 110 was received, a maximum heart rate over the time interval, an average heart rate over each of several sub-intervals of the time interval, and/or any other measure of heart rate.
Next, a display scale is determined based on the determined value or values. The display scale associates units (e.g., BPM) of the metric (e.g., heart rate) with a characteristic of a graphical indicators which will be used to represent future values of the metric. In a specific example, a determined maximum heart rate is 150 BPM and a display area is 3.2 cm in height. Accordingly, the determined display scale may be 50 BPM/1 cm. A corresponding graphical indicator representing 150 BPM is 3 cm in length, and is therefore able to fit in the display area. Moreover, additional display height (i.e., 0.2 cm) is available if the heart rate exceeds 150 BPM. If the determined maximum heart rate is 180 BPM, the determined display scale may be 60 BPM/1 cm.
After the display scale is determined, second data indicative of user activity is received over a time interval. Again, the second data may be received from user 120 by sensor 105. A second value of the metric is determined based on the second data, and a graphical indicator representing the second value is generated based on the display scale and the second value.
For example, it will be assumed that a value of 125 BPM is determined based on the second data. Based on the previously-determined display scale of 50 BPM/1 cm, a graphical indicator having a length of 2.5 cm is generated.
The graphical indicator is then displayed.
As described, the display scale used to generate indicators 130 is determined based on metric values which were determined from signals received from user 120. Accordingly, the display scale may optimize a usage of a display area of display 140 based on the user's prior activity.
Embodiments are not limited to the graphical indicators of
In the present disclosure, the term “activity” includes sedentary and nonsedentary activities. As such, the metric may be associated with activities related to sleeping, lying, sitting, and standing stationary (for example, time asleep, the onset, duration, and number of awakenings while attempting to sleep, the time spent in various stages of sleep, sleep latency, sleep efficiency and other sleep quality parameters, the presence of sleep apnea and other diagnostic measures, time spent in a prone non-standing state, and resting heart rate).
Display interface 230 provides communication with display 240, which may comprise any system for visual presentation of information that is or becomes known. Display 240 may comprise a touch screen for receiving user input into system 200 according to some embodiments.
One or more processing units 210 may therefore execute processor-executable program code stored in memory 220 to cause system 200 to receive first data indicative of activity of a user, to determine one or more values of a metric based on the first data, to determine a display scale based on the one or more values, to receive second data indicative of activity of the user over a time interval, to determine a second value of the metric based on the second data, to generate a graphical indicator representing the second value based on the display scale and the second value, and to display the graphical indicator on display 240.
According to some embodiments, system 200 comprises an integrated device such as, but not limited to, a wearable unit (e.g., around wrist, around neck) or an otherwise portable unit (e.g., a smartphone, a dedicated music player, a fob). In some embodiments, elements of system 200 may be embodied in separate devices, such as a server device (e.g., a desktop computer) including elements 210, 220 and 330, and a terminal device (e.g., a watch) including display 240. System 200 may perform functions other than those attributed thereto herein, and may include any elements which are necessary for the operation thereof
Some embodiments of system 200 include a portable monitoring device having a physical size and shape adapted to couple to the body of a user, which allows the user to perform normal or typical user activities (including, for example, exercise of all kinds and type) without hindering the user from performing such activities. The portable monitoring device may include a mechanism (for example, a clip, strap and/or tie) that facilitates coupling or affixing the device to the user during such normal or typical user activities.
For example, during operation, an altitude sensor generates data which is representative of the altitude and/or changes in altitude of the user. A motion sensor generates data which is representative of motion of the user. The data which is representative of the altitude and/or changes in altitude and the data which is representative of the motion of the user, is used to determine energy and/or calorie “burn” of the user.
The data may also be used to determine other activity-related metrics including, for example, (i) in the context of running/walking on level, substantially level, or relatively level ground, (a) number of steps, which may be categorized according to the number of steps associated with a user state, for example, walking, jogging and/or running, (b) distance traveled and/or (c) pace, (ii) in the context of running/jogging/walking/jumping on stairs, hills or ground having a grade of greater than, for example, about 3%, (a) number of stair and/or hill steps, which may be categorized, correlated or organized/arranged according to the number of stair and/or hill steps pertaining to, for example, the speed, pace and/or user state of the user (for example, walking, jogging and/or running), (b) number of flights of stairs, (c) ascent/descent distance on stairs and/or hills, (d) pace, (e) ascent/descent on elevators and/or escalators, (f) number of calories burned or expended by walking/running on stairs and/or hills and/or (g) quantify/compare the additional calories expended or burnt from stairs/hills relative to, versus or over level ground, (iii) in the context of swimming, number of strokes, time between strokes, leg kicks and similar metrics (variance of stroke time, mean stroke time, etc.), depth underwater, strokes per lap, lap time, pace and/or distance, (iv) in the context of using a bicycle, wheelchair, skateboard, skis, snowboard, ladder, etc., (a) ascent/descent distance traversed, (b) number of additional calories expended, (c) time of a downward “run” or upward “climb”, (d) number of calories expended, (e) number of pedal rotations, (f) arm or wheel rotation, (g) the grade of the surface, (h) pushes, kicks and/or steps. This list of activities (if applicable to the particular embodiment) is merely exemplary and is not intended to be exhaustive or limiting.
Elements 310 through 340 of device 300 may operate as described above with respect to similarly-numbered elements of system 200. Device 300 further includes sensor interface 350 for exchanging data with one or more sensors 360.
Sensors 360 may comprise any sensors for acquiring data based on which metric values may be determined. Examples of sensors 360 include, but are not limited to, an accelerometer, a light sensor, a blood oxygen sensor, a gyroscope, a magnetometer, a Global Positioning System device, a proximity sensor, an altimeter, and a heart rate sensor. One or more of sensors 360 may share common hardware and/or software components.
A value of a metric may be determined based on data acquired by one or more of sensors 360. For example, a value of a “distance traveled” metric may be determined based on the outputs of a Global Positioning System device and an altimeter. An “activity level” metric may be determined based on the outputs of a blood oxygen sensor and a heart rate sensor.
User 370 is pictured to indicate that, according to some embodiments, data received by sensors 360 is indicative of activity of user 370. For example, the one or more sensors 360 may receive data based on physical activity of user 370. Moreover, one or more of sensors 360 may receive data via direct contact with the user, for example during heart rate, skin temperature, and/or blood oxygen monitoring.
In some embodiments, calorie expenditure and activity level may be determined based on or using, partially or entirely, the ambulatory speed of user 370. The speed of the user may be calculated, determined and/or estimated as the user's step count over a time epoch multiplied by one or more step lengths of the user (which may be programmed, predetermined and/or estimated (for example, based on attributes of the user (for example, height, weight, age, leg length, and/or gender))). Representative energy expenditure rates expressed as metabolic equivalents per minute (MET/min) may then be estimated, obtained (for example, from a look-up table or database) and/or interpolated from a MET table which provides metabolic equivalents per minute for different user speeds. In some embodiments, step length may be one of two values that are indicative of a walking step length and a running step length dependent on the step frequency and/or acceleration characteristics of the user. In some embodiments, step length may be described as a linear function of step frequency: step length=A+B*step frequency, where A and B are parameters that may be associated with or calibrated to the user. Such parameters may be stored in memory in device 300.
In some embodiments, the speed value may be converted to calorie expenditure by multiplying the corresponding MET value by the user's Body Mass Ratio (BMR). BMR may be obtained through any of a number of well-known equations based on height, weight, gender, age, and/or athletic ability or through designated BMR measurement devices. For example, a user may have a running step length of 57 inches and take 180 running steps during 1 min. Using the method described above, the user's speed estimate is 9.8 miles per hour, which may be linearly interpolated to provide a BMR value of 15.8 MET from the MET table above. Assuming the user's BMR to be 1.10 kcal/MET, the calorie burn of the user in the preceding minute is 17.4 kcal.
An intermediate MET calculation step is not required in this and similar methods. Calorie expenditure may be calculated directly based on speed and one or more physiological parameters of the user such as age, gender, height, weight, and/or athletic ability. Speed may also be filtered over time rather than accepted as a “raw” measurement for a given time epoch. All forms of speed estimation, and mechanisms to implement such techniques, whether now known and/or later developed, may be implemented in some embodiments
Calorie consumption, burn and/or expenditure may be determined using data which is representative of the intensity of user motion for example, as provided or determined by one or more single axis or multi-axis accelerometers, based on a heart rate, based on altitude-related information (for example, from an altimeter disposed on the portable monitoring device), and/or based on any combination of factors described herein.
Initially, at S610, first data is received from a user. The first data is received via a sensor and is indicative of physical activity of the user. The first data may comprise signals acquired from any number of sensors. According to some embodiments, sensor 510 of device 400 acquires heart rate-related signals via contact with a user over a time interval. In some embodiments, an accelerometer of device 400 generates movement data due to user movement over several time intervals.
One or more values of a metric are determined at S620 based on the received data. The metric may comprise any metric described herein or that is (or becomes) known. As described with respect to
The received data is stored in respective ones of memory buffers 722, 724 and 726. The stored data may be raw data or data processed to any output format supported by its respective sensor. For example, according to some embodiments, sensor 714 is a heart rate sensor and outputs a current heart rate to buffer 724 at ten second intervals. Each output heart rate is stored in a memory location of buffer 724.
In some embodiments, application processors 732, 734 and 736 comprise execution threads, processor cores or other processing units for determining metric values based on the data of memory buffers 722, 724 and 726. Application processors 732, 734 and 736 may subscribe to updates of one or more of memory buffers 722, 724 and 726, and determine metric values based on data received according to the subscription. Each of application processors 732, 734 and 736 is associated with a respective metric. That is, each of application processors 732, 734 and 736 determines one or more values of a single metric and also determines a display scale associated with that metric.
In this regard, a display scale is determined at S630 based on the determined value or values. As described above, the display scale associates units of the metric with a characteristic of a graphical indicator which will be used to represent future values of the metric. Any one or more previously-determined metric values may be used to determine the display scale according to some embodiments. For example, application processor 732 may operate to determine the display scale based on metric values associated with a previous week. Values may be additionally or otherwise filtered, using any known filter, for inclusion in the determination of the display scale. Values which are several standard deviations from a mean value may be excluded, for example.
As described above, determination of the display scale may take into account a maximum display area, for example of display 750. An application processor 732, 734, and/or 736 may therefore communicate with display interface 740 at 5630 to determine a size of an available display area.
According to some embodiments, a display scale may specify an area per number of units of the metric (e.g., 2 cm2/5 steps). A display scale may specify a number of icons per number of units of the metric (e.g., 2 icons/50 ft. in elevation). Embodiments of a display scale may specify any graphical characteristic per number of units of the metric
Next, at S640, second data indicative of user activity is received from the user over a time interval. According to some embodiments, any amount of time may pass between S630 and S640. For example, S610 through S630 may be executed during a calibration period, and flow may pause thereafter until a user operates input controls (e.g., buttons 480 and/or touch screen display 440) to enter a monitoring mode at S640.
With respect to the example of
A graphical indicator representing the second value is generated at S660 based on the display scale and the second value. One of application processors 722, 724 and 726 may generate the graphical indicators at S660. Reiterating an example described above, a display scale of 50 BPM/1 cm is determined at S630 and a value of 125 BPM is determined at S650 based on the second data. Accordingly, a graphical indicator having a length of 2.5 cm is generated at S660.
The graphical indicator is displayed at S670. Display of the graphical indicator may comprise transmitting a visualization including the graphical indicator to another device for display, or displaying the graphical indicators on an on-board display. According to some embodiments, one of application processors 722, 724 and 726 transmits the graphical indicator to display interface 740 at S670, and display interface 740 controls display 750 to display the graphical interface thereon.
A position of graphical indicator 810 indicates the time interval associated with the graphical indicator. In the present example, graphical indicator 810 is positioned at the ‘0’ minute position of a traditional analog clock layout, therefore graphical indicator 810 is associated with the 60th minute of the prior hour. More specifically, graphical indicator 810 indicates a heart rate of 90 BPM over the 60th minute of the prior hour. Accordingly, some embodiments efficiently convey values associated with respective time intervals in an intuitive manner which can be quickly grasped by a user.
Returning to process 600, flow continues from S670 to S640 to receive additional data from the user. Accordingly, flow cycles between S640 and S670 to receive new data indicative of physical activity, to determine new matric values based on the data, and to generate and display new graphical indicators based on the values and on the previously-determined display scale.
The new graphical indicators may be displayed along with previously-generated and displayed indicators so as to convey changes in metric values over time.
More specifically, distal ends 1215 of graphical indicators 1210A through 1210D are located on arc 1220 at the :00, :01, :02 and :03 positions of an analog clock, respectively. These positions correspond to time intervals which are one minute in length. The time intervals associated with each graphical indicator may exhibit any duration. For example, each position of an end 1215 may correspond to a five minute interval, a ten minute interval, or an interval of any duration. In a case that a complete circle includes sixty graphical indicators and corresponds to twelve hours, each graphical indicator is associated with a twelve minute interval. Similarly, in a case that a complete circle includes sixty graphical indicators and corresponds to twenty-four hours, each graphical indicator is associated with a twenty-four minute interval.
Visualization 1500 of
Embodiments are not limited to the graphical indicators described herein. A visualization according to some embodiments may include two or more types of graphical indicators. A visualization according to some embodiments may also include displayed elements in addition to the graphical indicators and other elements shown herein.
According to some embodiments, flow may occasionally return to S630 to determine a new display scale. For example, the display scale may be determined based on data which was received after the original determination of the display scale. This re-determination may occur daily, weekly, monthly, or in response to any condition, such as a determination that the determined metric values consistently meet (or fail to meet) a threshold. Such a feature may account for changes in the user's fitness and/or physiology.
Process 600 may pause or terminate at any time according to some embodiments. For example, a user may input an instruction to switch a monitoring mode, causing termination of process 600. Data may continue to be received from the user as described herein despite termination of process 600, and that data may be used to determine a display scale upon resumption of process 600.
Prior to process 1600, it will be assumed that a device embodying process 1600 is activated (i.e., powered on, woken from sleep, etc.) or otherwise instructed to enter a mode for displaying a visualization according to some embodiments.
S1605 through S1615 may be executed as described above with respect to S610 through S630 of process 600, but implementations are not limited thereto. After execution of S630, a display scale has been determined which associates units of a metric with a characteristic of a graphical indicator which will be used to represent future values of the metric. In the present example, the metric is step count and the display scale associates a length of a graphical indicator with a number of steps.
Next, at S1620, a value of the metric is determined for each of a plurality of time intervals of the current hour. The value for each time interval is determined based on second data indicative of physical activity of the user over that time interval. The current time may be determined from a network to which the device is connected (i.e., wired or wirelessly), from an on-board clock, or by other means. For example, if a current time of 12:43 pm is determined, so a value of the metric is determined for each completed minute of the current hour (i.e., for each of forty-two completed minutes). Time intervals are not limited to single minutes in some implementations, as described above. It will be assumed that the metric in the current example is step count, therefore forty step count values are determined at S1620.
For each of the plurality of time intervals, a graphical indicator associated with the time interval is generated at S1625. The length of a graphical indicator is determined based on the display scale and on the value of the metric for the time interval associated with the graphical indicator.
The plurality of graphical indicators are displayed at S1630. According to some embodiments, a position of each of the displayed plurality of graphical indicators indicates a time interval associated with each graphical indicator.
Next, at S1640, a signal indicative of physical activity over a next time interval is detected. In the present example, the next time interval is the forty-third minute of the hour, since values have been determined for the initial forty-two minutes of the hour. The signal may be detected by a sensor such as those already described. More than one signal from more than one sensor may be detected at S1640, depending on the information needed to determine a value of the particular metric being evaluated. In this regard, a next value of the metric is determined at S1645 and, as described with respect to S650 and S660, a graphical indicator representing the next value and associated with the next time interval is determined at S1650. The length of the graphical indicator is determined based on the display scale and on the next value of the metric.
As illustrated by graphical indicator 1810 of
At S1660, it is then determined whether the metric of interest has changed. According to some embodiments, the metric of interest may change to another metric based on a schedule, in which case S1660 consists of confirming the schedule. In some embodiments, a user may issue a command to change the schedule. The command may be issued via buttons such as buttons 480, or by performing a touch screen gesture, such as a swipe, upon display 440. Any suitable input modality may be used to issue such a command.
If it is not determined to change the metric at S1660, it is determined whether the current time has entered a new hour. If not, flow continues to S1640 and to determine a new value, to generate a new graphical indicator based on the value and the display scale, and to display the new graphical indicator at an appropriate position on the arc of the circle.
Upon determining at S1660 that the metric is to be changed, flow returns to the beginning of process 1600 to determine a display scale, and to generate and display a plurality of graphical indicators based on the display scale and on values of the new metric for each time interval of the current hour.
On the other hand, if it is determined at S1665 that a new hour has arrived, flow returns to S1620 to determine a plurality of values of the new metric for a plurality of time intervals of the new hour (S1620), to generate a graphical indicator for each of the values based on the display scale (S1625), and to display the graphical indicators (S1630), where a position of a displayed graphical indicator indicates a time interval associated with the graphical representation.
Upon returning to S1620 from S1665 during the first minute of the hour, no time intervals of the new hour will have elapsed, so the first value and graphical indicator of the current hour are determined at S1645 and S1650. The graphical indicator is displayed at S1655 as part of a new visualization, as illustrated by visualization 2100 of
The foregoing diagrams represent logical architectures for describing processes according to some embodiments, and actual implementations may include more or different components arranged in other manners. Other topologies may be used in conjunction with other embodiments. Moreover, each system described herein may be implemented by any number of devices in communication via any number of other public and/or private networks. Two or more of such computing devices may be located remote from one another and may communicate with one another via any known manner of network(s) and/or a dedicated connection. Each device may include any number of hardware and/or software elements suitable to provide the functions described herein as well as any other functions. For example, any computing device used in an implementation of some embodiments may include a processor to execute program code such that the computing device operates as described herein.
All systems and processes discussed herein may be embodied in program code stored on one or more non-transitory computer-readable media. Such media may include, for example, a floppy disk, a CD-ROM, a DVD-ROM, a Flash drive, magnetic tape, and solid state Random Access Memory (RAM) or Read Only Memory (ROM) storage units. Embodiments are therefore not limited to any specific combination of hardware and software.
Those in the art will appreciate that various adaptations and modifications of the above-described embodiments can be configured without departing from the scope and spirit of the claims. Therefore, it is to be understood that the claims may be practiced other than as specifically described herein.
This is a continuation of co-pending prior U.S. patent application Ser. No. 14/250,635, filed on Apr. 11, 2014, entitled “PERSONALIZED SCALING OF GRAPHICAL INDICATORS”, which is incorporated herein by reference in its entirety for all purposes.
Number | Date | Country | |
---|---|---|---|
Parent | 14250635 | Apr 2014 | US |
Child | 15189245 | US |