PATENT DOCUMENT

Publication Number: US-11051720-B2
Application Number: US-201715611010-A
Country: US
Kind Code: B2

Title: Fitness tracking for constrained-arm usage

Abstract:
A system and method for collecting motion data using a fitness tracking device located on an arm of a user, detecting that the arm is constrained based on the motion data, estimating a stride length of the user based on the motion data and historical step cadence-to-stride length data, calculating fitness data using the estimated stride length, and outputting the fitness data to the user.

Claims:
The invention claimed is: 
     
       1. A method comprising:
 collecting motion data using a motion sensor worn on an arm of a user; 
 calculating using the motion data, by a processor circuit in communication with the motion sensor, a pose angle of the arm of the user; 
 detecting based on the pose angle and the motion data, by the processor circuit in communication with the motion sensor, an indication that the arm is constrained; 
 in response to the detecting, estimating, by the processor circuit, a stride length of the user, the estimating comprising detecting a step cadence indicated by the motion data and selecting a historical stride length from historical step cadence-to-stride length data that matches the detected step cadence indicated by the motion data as the stride length; 
 calculating, by the processor circuit, fitness data using the estimated stride length; and 
 outputting the fitness data to the user. 
 
     
     
       2. The method of  claim 1  wherein the calculating the fitness data comprises calculating at least one of distance traveled, speed, caloric expenditure, or exercise time. 
     
     
       3. The method of  claim 1  wherein the detecting, based on the pose angle and the motion data, the indication that the arm is constrained comprises:
 determining an accelerometer energy based on the motion data; and 
 detecting that the arm is constrained based on the pose angle and the accelerometer energy. 
 
     
     
       4. The method of  claim 3  wherein the detecting that the arm is constrained based on the pose angle and the accelerometer energy comprises detecting that the arm is constrained when the pose angle is within a predetermined range of pose angles. 
     
     
       5. The method of  claim 4  wherein the predetermined range of pose angles corresponds to pose angles greater than −45°. 
     
     
       6. The method of  claim 1  wherein the estimating the stride length of the user comprises:
 obtaining a plurality of step cadence-to-stride length pairs; 
 interpolating the plurality of step cadence-to-stride length pairs to generate a curve; and 
 finding a point on the curve corresponding to a measured step cadence of the user. 
 
     
     
       7. The method of  claim 6  wherein the obtaining the plurality of step cadence-to-stride length pairs comprises obtaining calibration data for the user. 
     
     
       8. The method of  claim 6  wherein the obtaining the plurality of step cadence-to-stride length pairs comprises obtaining data for a general population of users. 
     
     
       9. The method of  claim 1  comprising:
 detecting, by the processor circuit, that the user is pushing an object across a surface based on the motion data; and 
 estimating, by the processor circuit, an increased load due to the object being pushed, 
 wherein the calculating the fitness data comprises calculating the fitness data based on the estimated increased load. 
 
     
     
       10. The method of  claim 9  where the detecting that the user is pushing the object across the surface comprises:
 calculating, by the processor circuit, road noise as a ratio of accelerometer data within a first frequency band to accelerometer energy within a second frequency band; and 
 comparing, by the processor circuit, the road noise to a threshold value. 
 
     
     
       11. The method of  claim 10  wherein the first frequency band comprises frequencies above 20 Hz and the second frequency band comprises frequencies below 4 Hz. 
     
     
       12. The method of  claim 1 , wherein the motion sensor comprises an accelerometer or a gyroscope. 
     
     
       13. A system comprising:
 a motion sensor configured to be located on an appendage of a user and configured to collect motion data; and 
 a processor circuit coupled to the motion sensor and configured to execute instructions causing the processor circuit to:
 calculate, using the motion data, a pose angle of an arm of the user; 
 detect, based on the pose angle and the motion data, an indication that the arm is constrained; 
 in response to detecting the indication that the arm is constrained, estimate a stride length of the user, the estimating comprising detecting a step cadence indicated by the motion data and selecting a historical stride length from historical step cadence-to-stride length data that matches the detected step cadence indicated by the motion data as the stride length; 
 calculate fitness data using the estimated stride length; and 
 output the fitness data to the user. 
 
 
     
     
       14. The system of  claim 13 , wherein the instructions further cause the processor circuit to calculate at least one of distance traveled, speed, caloric expenditure, or exercise time. 
     
     
       15. The system of  claim 13 , wherein the instructions cause the processor circuit to detect, based on the pose angle and the motion data, the indication that the arm is constrained by causing the processor to:
 determine an accelerometer energy based on the motion data; and 
 detect that the arm is constrained based on the pose angle and the accelerometer energy. 
 
     
     
       16. The system of  claim 15  wherein the instructions further cause the processor circuit to detect that the arm is constrained based on the pose angle and the accelerometer energy when the pose angle is within a predetermined range of pose angles. 
     
     
       17. The system of  claim 16  wherein the predetermined range of pose angles corresponds to pose angles greater than −45°. 
     
     
       18. The system of  claim 13  wherein the instructions further cause the processor circuit to:
 obtain a plurality of step cadence-to-stride length pairs; 
 interpolate the plurality of step cadence-to-stride length pairs to generate a curve; and 
 estimate the stride length of the user by finding a point on the curve corresponding to a measured step cadence of the user. 
 
     
     
       19. The system of  claim 18  wherein the instructions further cause the processor circuit to obtain the plurality of step cadence-to-stride length pairs from calibration data for the user. 
     
     
       20. The system of  claim 18  wherein the instructions further cause the processor circuit to obtain the plurality of step cadence-to-stride length pairs from data for a general population of users. 
     
     
       21. The system of  claim 13  wherein the instructions further cause the processor circuit to:
 detect that the user is pushing an object across a surface based on the motion data; and 
 estimate an increased load due to the object being pushed, 
 wherein the instructions further cause the processor circuit to calculate the fitness data based on the estimated increased load. 
 
     
     
       22. The system of  claim 13 , wherein the motion sensor comprises an accelerometer or a gyroscope.

Description:
FIELD 
     The present disclosure relates generally to fitness tracking devices and, more particularly, to wearable devices used in conjunction with human activities in which a user&#39;s arm may be constrained, such as pushing a stroller. 
     BACKGROUND 
     Fitness tracking devices may detect user motion using one or more sensors, such as accelerometers, gyroscopes, barometers, and GPS (Global Positioning Satellite) receivers. Using motion data obtained from these sensors, a fitness tracking device may calculate and output various fitness data of interest to the user, such as number of steps taken, distance traveled, speed, caloric expenditure, and exercise time. 
     Smartwatches and other arm-worn devices may sense arm swing motion to determine the user&#39;s stride length. For example, fitness tracking devices may use accelerometer energy to calculate stride length. Stride length, along with step cadence, may be used to determine the user&#39;s speed among other fitness data. If the user&#39;s arm motion is constrained, some fitness tracking devices may underestimate stride length, leading to inaccurate fitness data being presented to the user. 
     Some fitness tracking devices may estimate the amount of work being performed based on the user&#39;s body mass and speed. Even if the user&#39;s stride length could be accurately determined when the arm is constrained, the calculated fitness data may not account for the increased work performed when pushing a stroller or other substantial load. 
     SUMMARY 
     According to one aspect of the present disclosure, method comprises: collecting motion data using a fitness tracking device located on an arm of a user; detecting, by a processor circuit, that the arm is constrained based on the motion data; estimating, by a processor circuit, a stride length of the user based on the motion data and historical step cadence-to-stride length data; calculating, by a processor circuit, fitness data using the estimated stride length; and outputting the fitness data to the user. 
     In some embodiments, calculating the fitness data comprises calculating at least one of distance traveled, speed, caloric expenditure, or exercise time. In certain embodiments, detecting that the arm is constrained comprises: determining a pose angle based on the motion data; determining an accelerometer energy based on the motion data; and detecting that the arm is constrained based on the pose angle and the accelerometer energy. In particular embodiments, detecting that the arm is constrained based on the pose angle comprises detecting that the arm is constrained if the pose angle is within a predetermined range of pose angles. In some embodiments, the predetermined range of pose angles corresponds to pose angles greater than about −45°. 
     In certain embodiments, estimating the stride length of the user based on historical step cadence-to-stride length data comprises: obtaining a plurality of step cadence-to-stride length pairs; interpolating the plurality of step cadence-to-stride length pairs to generate a curve; and finding a point on the curve corresponding to a measured step cadence of the user. In some embodiments, obtaining the plurality of step cadence-to-stride length pairs comprises obtaining calibration data for the user. In particular embodiments, obtaining the plurality of step cadence-to-stride length pairs comprises obtaining data for a general population of users. 
     In some embodiments, the method comprises: detecting, by a processor circuit, that the user is pushing an object across a surface based on the motion data; and estimating an increased load due to the object being pushed, wherein calculating the fitness data comprises calculating the fitness data based on the estimated increased load. In certain embodiments, detecting that the user is pushing an object across a surface comprises: calculating, by a processor circuit, road noise as a ratio of accelerometer data within a first frequency band to accelerometer energy within a second frequency band; and comparing, by a processor circuit, the road noise to a threshold value. In some embodiments, the first frequency band comprises frequencies above 20 Hz and the second frequency band comprises frequencies below 4 Hz. 
     According to another aspect of the present disclosure, a system comprises: a motion sensor located on an appendage of a user and configured to collect motion data; and a processor circuit coupled to the motion sensor and configured to execute instructions causing the processor circuit to perform embodiments of the method described above. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       Various objectives, features, and advantages of the disclosed subject matter can be more fully appreciated with reference to the following detailed description of the disclosed subject matter when considered in connection with the following drawings, in which like reference numerals identify like elements. 
         FIG. 1  shows an example of a fitness tracking device, according to some embodiments of the present disclosure. 
         FIG. 2  depicts a block diagram of illustrative components that may be found within a fitness tracking device, according to some embodiments of the present disclosure. 
         FIG. 3  shows an example of a companion device, according to some embodiments of the present disclosure. 
         FIG. 4  illustrates a fitness tracking device used with a constrained arm, according to some embodiments of the present disclosure. 
         FIG. 5  illustrates a fitness tracking device used while pushing an object across a surface, according to some embodiments of the present disclosure. 
         FIG. 6  is a graph of pose angle versus accelerometer energy, according to embodiments of the present disclosure. 
         FIG. 7  is a graph of step cadence versus stride length, according to some embodiments of the present disclosure. 
         FIG. 8  is a graph of pose angle versus road noise, according to embodiments of the present disclosure. 
         FIGS. 9 and 10  are flowcharts showing processing that may occur within a fitness tracking device and/or companion device, according to some embodiments of the present disclosure. 
     
    
    
     DETAILED DESCRIPTION 
     Embodiments of the present disclosure may improve the accuracy of fitness tracking in situations where a user&#39;s arm is constrained due to, for example, the user pushing a stroller, holding a beverage or a phone while walking, holding handrails on a treadmill, etc. A constrained-arm condition may be detected by analyzing motion data and, in response, the user&#39;s stride length may be estimated using historical step cadence-to-stride length data. The estimated stride length may be used to improve the accuracy of fitness data, such as distance traveled, speed, caloric expenditure, and exercise time. In some embodiments, the accuracy of fitness data may be further improved by accounting for increased load due to the user pushing a stroller or other object across a surface. Motion data may be used to detect that the user is pushing an object and, in response, increased load due to the object may be inferred and used to improve the accuracy of fitness data. 
       FIG. 1  shows an example of a fitness tracking device  100 , according to some embodiments of the present disclosure. The illustrative fitness tracking device  100  includes band  102  and housing  104 . The band  102  may be used to attach the fitness tracking device  100  to a user&#39;s arm. The housing  104  may include one or more components described below in conjunction with  FIG. 2 . In certain embodiments, the fitness tracking device  100  is designed to be worn on the user&#39;s wrist. 
       FIG. 2  depicts a block diagram of example components that may be found within a fitness tracking device (e.g., fitness tracking device  100  of  FIG. 1 ), according to some embodiments of the present disclosure. These components may include a motion sensing module  220 , a display module  230 , and an interface module  240 . 
     The motion sensing module  220  may include one or more motion sensors, such as an accelerometer or a gyroscope. In some embodiments, the accelerometer may be a three-axis, microelectromechanical system (MEMS) accelerometer, and the gyroscope may be a three-axis MEMS gyroscope. A microprocessor (not shown) or motion coprocessor (not shown) of the fitness tracking device  100  may receive data from the motion sensors of the motion sensing module  220  to track acceleration, rotation, position, or orientation information of the fitness tracking device  100  in six degrees of freedom through three-dimensional space. 
     In some embodiments, the motion sensing module  220  may include other types of sensors in addition to accelerometers and gyroscopes. For example, the motion sensing module  220  may include an altimeter or barometer, or other types of location sensors, such as a GPS sensor. A barometer (also referred to herein as a barometric sensor) can detect pressure changes and correlate the detected pressure changes to an altitude. 
     Display module  230  may be a screen, such as a crystalline (e.g., sapphire) or glass touchscreen, configured to provide output to the user as well as receive input form the user via touch. For example, display module  230  may be configured to display the number of steps the user has taken, distance traveled, speed, caloric expenditure, exercise time, amount other fitness data. Display module  230  may receive input from the user to select, for example, which information should be displayed, or whether the user is beginning a physical activity (e.g., starting a session) or ending a physical activity (e.g., ending a session), such as a running session or a cycling session. In some embodiments, the fitness tracking device  100  may present output to the user in other ways, such as by producing sound with a speaker (not shown), and the fitness tracking device  100  may receive input from the user in other ways, such as by receiving voice commands via a microphone (not shown). 
     In some embodiments, the fitness tracking device  100  may communicate with external devices via interface module  240 , including a configuration to present output to a user or receive input from a user. Interface module  240  may be a wireless interface. The wireless interface may be a standard Bluetooth (IEEE 802.15) interface, such as Bluetooth v4.0, also known as “Bluetooth low energy.” In other embodiments, the interface may operate according to a cellphone network protocol such as LTE or a Wi-Fi (IEEE 802.11) protocol. In other embodiments, interface module  240  may include wired interfaces, such as a headphone jack or bus connector (e.g., Lightning, Thunderbolt, USB, etc.). 
     In certain embodiments, the fitness tracking device  100  may be configured to communicate with a companion device, such as companion device  300  shown in  FIG. 3  and described below in conjunction therewith. In some embodiments, the fitness tracking device  100  may be configured to communicate with other external devices, such as a notebook or desktop computer, tablet, headphones, Bluetooth headset, etc. 
     The modules described above are examples, and embodiments of the fitness tracking device  100  may include other modules not shown. For example, fitness tracking device  100  may include one or more microprocessors (not shown) for processing sensor data, motion data, other information in the fitness tracking device  100 , or executing instructions for firmware or apps stored in a non-transitory processor-readable medium such as a memory module (not shown). Additionally, some embodiments of the fitness tracking device  100  may include a rechargeable battery (e.g., a lithium-ion battery), a microphone or a microphone array, one or more cameras, one or more speakers, a watchband, a crystalline (e.g., sapphire) or glass-covered scratch-resistant display, water-resistant casing or coating, etc. 
       FIG. 3  shows an example of a companion device  300 , according to some embodiments of the present disclosure. The fitness tracking device  100  may be configured to communicate with the companion device  300  via a wired or wireless communication channel (e.g., Bluetooth, Wi-Fi, etc.). In some embodiments, the companion device  300  may be a smartphone, tablet, or similar portable computing device. The companion device  300  may be carried by the user, stored in the user&#39;s pocket, strapped to the user&#39;s arm with an armband or similar device, placed on a table, or otherwise positioned within communicable range of the fitness tracking device  100 . 
     The companion device  300  may include a variety of sensors, such as location and motion sensors (not shown). When the companion device  300  may be optionally available for communication with the fitness tracking device  100 , the fitness tracking device  100  may receive additional data from the companion device  300  to improve or supplement its calibration or calorimetry processes. For example, in some embodiments, the fitness tracking device  100  may not include a GPS sensor as opposed to an alternative embodiment in which the fitness tracking device  100  may include a GPS sensor. In the case where the fitness tracking device  100  may not include a GPS sensor, a GPS sensor of the companion device  300  may collect GPS location information, and the fitness tracking device  100  may receive the GPS location information via interface module  240  ( FIG. 2 ) from the companion device  300 . 
     In another example, the fitness tracking device  100  may not include an altimeter, as opposed to an alternative embodiment in which the fitness tracking device  100  may include an altimeter. In the case where the fitness tracking device  100  may not include an altimeter or barometer, an altimeter or barometer of the companion device  300  may collect altitude or relative altitude information, and the fitness tracking device  100  may receive the altitude or relative altitude information via interface module  240  ( FIG. 2 ) from the companion device  300 . 
     In various embodiments, fitness tracking device  100  may use motion data, such as accelerometer or gyroscope data, to determine if a user is engaging in a constrained-arm activity and/or if the user is pushing an object across a surface. In certain embodiments, fitness tracking device  100  may calculate one or more features of interest from motion data and use such features to detect the aforementioned usages. Non-limiting examples of features that may be used include pose angle, accelerometer energy, and step cadence. 
     As used herein, “pose angle” refers to an angle of the user&#39;s arm with respect to the horizon. In some embodiments, pose angle may be estimated using techniques disclosed in U.S. Pat. No. 9,526,430, entitled “Method and System to Estimate Day-Long Calorie Expenditure Based on Posture,” which his hereby incorporated by reference in its entirety. In some embodiments, the fitness tracking device  100  may be embodied as a smartwatch, and pose angle may be determined as an angle between the watch&#39;s crown and the horizon. 
     Accelerometer energy (or “signal energy”) may be measured using a norm-2 metric. The energy calculation can occur in either time or frequency domains. In the time domain, accelerometer energy can be calculated as the variance over a window of accelerometer samples over one or more axes. In the frequency domain, accelerometer energy can be calculated by selecting a certain frequency range to calculate the accelerometer signal energy, particularly by summing the squared value of the frequency bins of an FFT for one or more axes. 
     The user&#39;s step cadence may be obtained from a motion sensor or otherwise calculated from motion sensor data. In some embodiments, step cadence may be determined using techniques disclosed in U.S. Pat. App. Pub. No. 2015/0088006, entitled “Method for determining aerobic capacity,” which his hereby incorporated by reference in its entirety. 
       FIG. 4  is a diagram  400  showing a fitness tracking device  100  being used with a constrained arm. In this example, user  402  is carrying an object  406  (e.g., a beverage) with an arm  404 , and has a fitness tracking device  100  attached to the same arm  404 . While ambulatory, the user  402  may purposefully constrain movement of arm  404  to prevent the object  406  from tipping or otherwise being displaced. 
       FIG. 5  is a diagram  500  illustrating another constrained-arm scenario. User  402  may wear a fitness tracking device  100  on the same arm  404  used to push an object  502  across a surface  502 . In the example of  FIG. 5 , the object is shown as a stroller  502 , however the present disclosure is applicable to other types of objects that may be pushed across a surface, such as a shopping carriage, a walker, etc. As the user pushes the object  502 , the interaction between the object  502  and the surface  504  may produce vibrations or other disturbances that are detected as relatively high-frequency accelerometer energy by the fitness tracking device  100 . In the case of a stroller or other wheeled object  502 , the high-frequency energy may result from an interaction between wheels  506  (and/or a suspension system coupled thereto) and the surface  504 . The accelerometer may detect both high-frequency energy from the object being pushed, and relatively low-frequency energy (“pedestrian band energy”) from the user&#39;s motion. In certain embodiments, accelerometer energy from the object being pushed has frequency greater than 20 Hz and accelerometer energy from user&#39;s motion may have a frequency less than 4 Hz. 
     Referring to  FIG. 6 , a graph  600  illustrates pose angle (shown along the horizontal axis) and accelerometer energy (shown along the vertical axis) for different scenarios in which a user is wearing a fitness tracking device on an arm. Pose angle may be defined as the angle between the forearm and the horizon, and may be computed in real-time using accelerometer data as described in U.S. Pat. No. 9,526,430, entitled “Method and System to Estimate Day-Long Calorie Expenditure Based on Posture.” If the arm is not constrained, pose angle may tend to be in the range −90° to −45° as the user walks, jogs, or runs. However, if the user&#39;s arm is constrained (e.g., as a result of holding or pushing an object), pose angle may tend to be in the range −45° to +45°. 
     Within the illustrative graph  600 , region  602  may correspond to a scenario where the user is walking at a normal speed with the arm unconstrained; region  604  to a scenario where the user is walking at a relatively fast speed (e.g., speed walking) with the arm unconstrained; region  606  to a scenario where the user is walking at a relatively slow speed with the arm unconstrained; and region  608  to a scenario where the user&#39;s arm is constrained. As can be seen in the figure, using pose angle on its own may be insufficient to differentiate between speed walkers  604  and constrained-arm usage  608 . Likewise, using accelerometer energy on its own may be insufficient to differentiate between slow walkers  606  and a constrained-arm usage  608 . Accordingly, some embodiments of the present disclosure use at least two different features (e.g., pose angle and accelerometer energy) to detect that the arm onto which the fitness tracking device is attached is constrained. In particular embodiments, constrained-arm usage may be detected if pose angle is greater than about −45° and accelerometer energy is less than about 0.25 g 2 . 
     Typically, a fitness tracking device may use accelerometer energy to estimate the user&#39;s stride length. However, if the user&#39;s arm is constrained, accelerometer energy may decrease (as illustrated by region  608 ), which in turn may result in the stride length being underestimated. Thus, in some embodiments, when a constrained-arm condition is detected, stride length may be estimated using historical step cadence-to-stride length data. 
       FIG. 7  shows a graph  700  illustrating historical step cadence-to-stride length data. According to biomechanics, step cadence and stride length are related. Each point in the graph  700  may correspond to a step cadence-to stride length pair that was previously measured or otherwise collected for a user. For example, point  702  may indicate that, during some time epoch, a user averaged 63 steps per minute with an average stride length of about 0.48 meters. Multiple pairs collected for the same user may be plotted and interpolated to generate a curve. For example, as shown in  FIG. 7 , a first curve  704  may correspond to stride data measured for a first user, and a second curve  706  may correspond to stride data measured for a second user. The user&#39;s stride length can be estimated by finding a point on the historical data curve corresponding to a currently measured step cadence. 
     Step cadence and stride length data may be collected by, and stored within, the user&#39;s own fitness tracking device as part of a calibration process. If a constrained-arm is subsequently detected, the stored calibration data may be used to estimate stride length based on currently measured step cadence. If such calibration data is not available, historical step cadence-to-stride length data from a general population of users may be used instead. Such general population data may be configured within the fitness tracking device and/or a companion device. Estimating stride length using historical step cadence-length data may allow the fitness tracking device to provide accurate fitness data (e.g., distance, speed, caloric expenditure, and exercise time) even during constrained-arm usage. 
     Referring to  FIG. 8 , according to an embodiment of the present disclosure, a “road noise” feature may be used detect when the user is pushing an object (e.g., a stroller) across a surface. Road noise may be defined as the ratio of high-frequency energy to low-frequency energy experienced by an accelerometer, where “low” frequency may correspond to a bandwidth of energy produced during typical pedestrian motion, and “high” frequency may correspond to a bandwidth above the pedestrian band. In some embodiments, high-frequency energy is defined as energy having a frequency greater than 20 Hz, and low-frequency energy is defined as energy having a frequency below 4 Hz. 
       FIG. 8  shows a graph  800  illustrating pose angle (horizontal axis) versus road noise (vertical axis) for two scenarios in which the user has a fitness tracking device attached to an arm. Data points generally below line  802  may correspond to a scenario where a user&#39;s arm is constrained but not being used to push an object, whereas data points generally above line  802  may correspond to a scenario where the user is pushing a stroller or other object across a surface using the arm. As can be seen in the example of  FIG. 8 , in the case where the user&#39;s arm is pushing an object, the amount of road noise may be increased and more concentrated (in terms of pose angle) relative to when the arm is not pushing an object. Accordingly, in some embodiments, it may be detected that the user is pushing an object when road noise is above a predetermined threshold (e.g., 10 −1 ). In certain embodiments, only road noise within a certain range of pose angles (e.g., −45° to 0°) is considered when detecting if the user is pushing an object across a surface. 
     In response to detecting that the user is pushing an object, an increased load may be estimated and used to calculate more accurate fitness data (e.g., more accurate caloric expenditure and/or exercise time information). In one embodiment, the increased load may be estimated based on the weight and mechanics of a typical stroller. The increased load may be determined experimentally and configured within the fitness tracking device. Using the above described technique, a fitness tracking device may account for the extra work performed by a user when pushing a stroller or other object without requiring, for example, a heart rate sensor that could measure the increased load more directly. 
     Referring to  FIG. 9 , a method  900  may be used to improve the accuracy of fitness data in the case where a user is wearing a fitness tracking device on an arm that is constrained. At block  902 , motion data is collected using one or more motion sensors, such as an accelerometer, gyroscope, and/or GPS receiver. At block  904 , the motion data is used to detect that the user&#39;s arm is constrained. In some embodiments, a constrained arm is detected using both a pose angle feature and an accelerometer energy feature. At block  906 , the user&#39;s stride length is estimated using the motion data and historical step cadence-to-stride length data. The historical data may correspond to data collected for the user as part of a calibration process, or may correspond to data for a general population of users. At block  908 , fitness data, such as distance, speed, caloric expenditure, and exercise minutes, is calculated using the estimated stride length. At block  910 , the fitness data is output, for example, to a display module. 
     Referring to  FIG. 10 , a method  1000  may improve the accuracy of fitness data in the case where a user is user is pushing an object (e.g., a stroller) across a surface. At block  1002  and  1004 , motion data is collected and used to detect that the user is pushing an object across a surface. In some embodiments, the detection includes using a road noise feature defined in terms of high and low frequency accelerometer energy. At block  1006 , an estimate is made of the increased load due to the object being pushed. In one embodiment, the increased load may be estimated based on the weight and mechanics of a typical stroller. At block  1008 , fitness data may be calculated taking into account the estimated increased load. At block  1010 , the fitness data is output, for example, to a display module. 
     Methods described herein may represent processing that occurs within a fitness tracking (e.g., device  100  of  FIG. 1 ) and/or within a companion device (e.g., device  300  of  FIG. 3 ). The subject matter described herein can be implemented in digital electronic circuitry, or in computer software, firmware, or hardware, including the structural means disclosed in this specification and structural equivalents thereof, or in combinations of them. The subject matter described herein can be implemented as one or more computer program products, such as one or more computer programs tangibly embodied in an information carrier (e.g., in a machine readable storage device), or embodied in a propagated signal, for execution by, or to control the operation of, data processing apparatus (e.g., a programmable processor, a computer, or multiple computers). A computer program (also known as a program, software, software application, or code) can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file. A program can be stored in a portion of a file that holds other programs or data, in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code). A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network. 
     The processes and logic flows described in this specification, including the method steps of the subject matter described herein, can be performed by one or more programmable processors executing one or more computer programs to perform functions of the subject matter described herein by operating on input data and generating output. The processes and logic flows can also be performed by, and apparatus of the subject matter described herein can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application specific integrated circuit). 
     Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processor of any kind of digital computer. Generally, a processor will receive instructions and data from a read only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of nonvolatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, flash memory device, or magnetic disks. The processor and the memory can be supplemented by, or incorporated in, special purpose logic circuitry. 
     It is to be understood that the disclosed subject matter is not limited in its application to the details of construction and to the arrangements of the components set forth in the following description or illustrated in the drawings. The disclosed subject matter is capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purpose of description and should not be regarded as limiting. As such, those skilled in the art will appreciate that the conception, upon which this disclosure is based, may readily be utilized as a basis for the designing of other structures, methods, and systems for carrying out the several purposes of the disclosed subject matter. It is important, therefore, that the claims be regarded as including such equivalent constructions insofar as they do not depart from the spirit and scope of the disclosed subject matter. 
     Although the disclosed subject matter has been described and illustrated in the foregoing exemplary embodiments, it is understood that the present disclosure has been made only by way of example, and that numerous changes in the details of implementation of the disclosed subject matter may be made without departing from the spirit and scope of the disclosed subject matter.

Metadata:
Filing Date: 20170601
Publication Date: 20210706
Grant Date: 20210706
Priority Date: 20170601
Inventors: PERRY, DANIEL J.
ARNOLD, EDITH M.
PHAM, HUNG A.
BEARD, JONATHAN M.
RAGHURAM, KARTHIK JAYARAMAN
MAJJIGI, VINAY R.
Assignee: APPLE INC
CPC Classifications: [{"code": "A61B5/22", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B2560/0223", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B2562/028", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/4866", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B2562/0219", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/02438", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B2562/0247", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B2562/0219", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B2562/028", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/1121", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/4866", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/1118", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/6824", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/112", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/1118", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/22", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/681", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/0004", "inventive": true, "first": false, "tree": "[]"}, {"code": "G01C22/006", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B2560/0223", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B2562/0247", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/02438", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/0002", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/1123", "inventive": true, "first": true, "tree": "[]"}, {"code": "A61B5/6824", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/112", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/1112", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/1121", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/1123", "inventive": true, "first": true, "tree": "[]"}, {"code": "G01C22/006", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/0002", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/1112", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/681", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/0004", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B2562/0247", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B2562/028", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/22", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/1121", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B2560/0223", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/1112", "inventive": false, "first": false, "tree": "[]"}, {"code": "G01C22/006", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/02438", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/0004", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/6824", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/1118", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/112", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/1123", "inventive": true, "first": true, "tree": "[]"}, {"code": "A61B5/681", "inventive": true, "first": false, "tree": "[]"}, {"code": "A61B5/0002", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B2562/0219", "inventive": false, "first": false, "tree": "[]"}, {"code": "A61B5/4866", "inventive": false, "first": false, "tree": "[]"}]
Family ID: 64458494