`Kahn et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,653,508 B1
`Jan. 26, 2010
`
`USOO7653508B1
`
`(54) HUMAN ACTIVITY MONITORING DEVICE
`O O
`(75) Inventors: Reft AES AS)CA
`t"MEE, Christic, Santa
`Cruz, CA (US); Brian Y. Lee, Aptos, CA
`(US); David Vogel, Santa Cruz, CA (US)
`
`(73) Assignee: prechnologie. Inc., Scotts Valley, CA
`
`(*) Notice:
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 556 days.
`(21) Appl. No.: 11/644,455
`
`Dec. 22, 2006
`
`(22) Filed:
`(51) Int. Cl.
`(2006.01)
`G0IB 21/02
`(2006.01)
`G0IB 700
`(2006.01)
`GOIC 22/00
`(2006.01)
`G06F 9/00
`(2006.01)
`G06F 7/40
`(52) U.S. Cl. ............................. 702160. 33,700; 377/1.
`377/13; 377/25; 377/242; 702/1; 702/127;
`702/155; 702/158; 702/187; 702/189
`(58) Field of Classification Search ................... 33/700,
`33/701; 73/1.01, 1.37, 1.38, 1.75, 1.76, 1.77,
`73/1.78, 1.79, 1.81; 377/1, 13, 15, 17, 20,
`377/24, 24.1, 24.2: 702/1, 85,97, 127, 141,
`702/150, 155, 158, 160, 187, 189
`See application file for complete search history.
`References Cited
`
`(56)
`
`U.S. PATENT DOCUMENTS
`
`4,285,041
`4,578,769
`5,446,725
`5,446,775
`5,593,431
`5,955,667
`5,976,083
`
`8, 1981
`3, 1986
`8, 1995
`8, 1995
`1/1997
`9, 1999
`11, 1999
`
`Smith
`Frederick
`Ishiwatari
`Wright et al.
`Sheldon
`Fyfe
`Richardson et al.
`
`Filter
`120
`A. t
`i
`Acceleration
`Measuring
`logic
`105
`
`Final Step
`Count ---or
`S
`
`6,135,951 A 10/2000 Richardson et al.
`6,145,389 A 1 1/2000 Ebeling et al.
`6,369,794 B1 * 4/2002 Sakurai et al. .............. 345,156
`6,493,652 B1
`12/2002 Ohlenbusch et al.
`6,513.381 B2
`2/2003 Fyfe et al.
`6,522,266 B1
`2/2003 Soehren et al.
`6,532,419 B1
`3/2003 Begin et al.
`6,539,336 B1
`3/2003 Vocket al.
`6,700,499 B2 * 3/2004 Kubo et al. .............. 340,686.1
`6,790, 178 B1
`9, 2004 Mault et al.
`6,813,582 B2 11/2004 Levi et al.
`6,823,036 B1
`1 1/2004 Chen
`6.826477 B2 * 1 1/2004 Ladetto et al. .............. 701. 217
`6,836,744 B1
`12/2004 Asphahani et al.
`
`(Continued)
`
`OTHER PUBLICATIONS
`
`Margaria, Rodolfo, "Biomechanics and Energetics of Muscular
`Exercise", Chapter 3, pp. 105-125, Oxford. Clarendon Press 1976.
`(Continued)
`
`Primary Examiner Edward R Cosimano
`(74) Attorney, Agent, or Firm Blakely, Sokoloff, Taylor &
`Zafman, LLP: Judith A. Szepesi
`
`(57)
`
`ABSTRACT
`
`A method for monitoring human activity using an inertial
`sensor includes continuously determining an orientation of
`the inertial sensor, assigning a dominant axis, updating the
`dominant axis as the orientation of the inertial sensor
`changes, and counting periodic human motions by monitor
`ing accelerations relative to the dominant axis.
`
`20 Claims, 9 Drawing Sheets
`
`Dominant Axis logic27
`Dominant
`Rolling Average
`Axis Setting
`Logic 135
`logic
`-
`140
`Cadence Logic
`132
`
`------->
`
`i
`
`Measurement
`Selection
`Logic 145
`
`Cadence
`
`Measurement
`Comparator
`SS
`
`resh
`Comparator k---
`160
`
`Mice
`Logic
`190
`
`Step Count
`Buffet
`S5
`Step Counting logic 130
`
`---
`
`Electronic device
`
`SAMSUNG EXHIBIT 1001
`
`Page 1 of 19
`
`
`
`US 7.653.508 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`4/2005 Oakley et al.
`6,881,191 B2
`4/2005 Vocket al.
`6,885,971 B2
`5/2005 Blackadar et al.
`6,898,550 B1
`8/2005 Hong et al.
`6,928,382 B2
`9/2005 Unuma et al.
`6,941,239 B2
`6.959,259 B2 10/2005 Vocket al.
`7,072,789 B2
`7/2006 Vocket al.
`7,092,846 B2
`8/2006 Vocket al.
`7,148,797 B2 12/2006 Albert
`7,158,912 B2
`1/2007 Vocket al.
`7,169,084 B2* 1/2007 Tsuji ............................. 482/8
`7,171,331 B2
`1/2007 Vocket al.
`7,200,517 B2
`4/2007 Darley et al.
`7.212,943 B2
`5, 2007 Aoshima et al.
`7,220,220 B2
`5, 2007 Stubbs et al.
`7,297,088 B2 * 1 1/2007 Tsuji ............................. 482/3
`7,328,611 B2
`2/2008 Klees et al.
`7.334,472 B2 * 2/2008 Seo et al. ................. 73/37901
`7,387,611 B2
`6, 2008 Inoue et al.
`7,457.719 B1 * 1 1/2008 Kahn et al. ................. TO2/141
`2002/00894.25 A1
`7/2002 Kubo et al. .............. 340,573.1
`2002/0109600 A1
`8, 2002 Mault et al.
`2002/0151810 A1 10/2002 Wong et al.
`2003/0018430 A1
`1/2003 Ladetto et al. .............. 701. 217
`2003.0109258 A1
`6/2003 Mantyjarvi et al.
`2004/0225467 A1 11, 2004 Vocket al.
`2005, OO33200 A1
`2/2005 Soehren et al.
`2005/02228O1 A1 10, 2005 Wulff et al.
`2005/0232388 A1* 10/2005 Tsuji ......................... 377,242
`
`2005/0238 132 A1* 10/2005 Tsuji ......................... 377,242
`2005/0240375 A1 10/2005 Sugai
`2005/0248718 A1 11/2005 Howell et al.
`2006/0020177 A1
`1/2006 Seo et al. .................... 600/300
`2006/0136.173 Al
`6/2006 Case, Jr. et al.
`2006/0223547 A1 10, 2006 Chin et al.
`2007, OO63850 A1
`3, 2007 Devaul et al.
`2007/0067094 A1
`3/2007 Park et al. ................... TO1,200
`2007. O142715 A1
`6, 2007 Banet et al.
`2009.0043531 A1
`2/2009 Kahn et al. ................. TO2/149
`
`OTHER PUBLICATIONS
`
`PCT International Search Report and Written Opinion for Interna
`tional Application No. PCT/US2008/072537, mailed Oct. 22, 2008,
`10 pages.
`Lee, Seon-Woo, et al., “Recognition of Walking Behaviors for Pedes
`trian Navigation.” ATR Media Integration & Communications
`Research Laboratories, Kyoto, Japan, 4 pages.
`Ormoneit, D., et al., “Learning and Tracking Cyclic Human Motion.”
`7 pages.
`Dao, Ricardo, “Inclination Sensing with Thermal Accelerometers'.
`MEMSIC, May 2002, 3 pages.
`Mizell, David, “Using Gravity to Estimate Accelerometer Orienta
`tion'. Seventh IEEE International Symposium on Wearable Comput
`ers, 2003, 2 pages.
`Weinberg, Harvey, “MEMS Motion Sensors Boost Handset Reliabil
`ity”, Jun. 2006, mwrf.com/Articles/Print.cfm?ArticleID=12740,
`Feb. 21, 2007, 4 pages.
`
`* cited by examiner
`
`Page 2 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 1 of 9
`
`US 7,653,508 B1
`
`
`
`
`
`
`
`Dominant Axis Logic 127
`Dominant
`Rolling Average
`Axis Setting
`Logic 135
`3.
`
`:
`
`Measurement
`
`Logic 145
`
`Measurement
`Comparator
`155
`
`Threshold
`Comparator K--
`160
`
`
`
`
`
`
`
`Fifter
`
`
`
`
`
`Acceleration
`Measuring
`Logic
`
`
`
`
`
`
`
`
`
`Final Step
`Count
`175
`
`man-
`
`
`
`:
`
`Mode
`
`Logic
`190
`
`Step Count
`Buffer
`165
`Step Counting Logic 130
`
`Electronic Device 100
`
`Figure 1
`
`Page 3 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 2 of 9
`
`US 7,653,508 B1
`
`c
`
`O.
`O)
`
`
`
`wax wit air w it
`
`was aw
`
`(6) uOOJeepov
`
`Z elnõ|-
`
`Page 4 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 3 of 9
`
`US 7,653,508 B1
`
`300 -1 N.
`
`O- Initial State
`
`-- Sleep Mode 305) Y- No Activity
`—-1 M
`?\u Detect ACCelerations
`
`Sleep ^U
`Congons
`
`6
`
`
`
`
`
`?\- N Steps in Cadence
`- ru Steps in
`Cadence
`
`-> Stepping Mode 325
`
`X Steps in
`i
`(Y Cadence N No Steps Detected Within
`w N. N.
`Cadence Window
`
`...
`
`Y
`
`1
`
`Figure 3
`
`Page 5 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 4 of 9
`
`US 7,653,508 B1
`
`400 1
`
`et Sleep Mode Sampling Rate
`405
`---...---
`ake Measurement(S) of Acceleration Data
`41 O
`
`
`
`
`
`ACCeleration Detected?
`415
`
`Yes
`initiate Entry
`Mode 420
`
`Figure 4
`
`Page 6 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 5 Of 9
`
`US 7,653,508 B1
`
`5OO
`
`u - ( Start )
`
`—V Set Stepping
`Sampling Rate 504
`
`Y-
`
`-X
`
`t
`V
`Recognize First Step
`51O
`
`YeS
`
`V
`Set Default Cadence
`WindoW 514
`V
`Set Buffered Step
`Count to One 520
`b
`v / 524
`st -
`-Recognizes Nou u- Still is
`/
`In Cadence >
`Additional Step?
`is Window?-
`
`Y
`
`-
`
`-
`
`-
`
`.
`
`Add One to Buffered
`Step Count
`
`ReSet Buffered
`Step Count to Zero
`
`f
`
`540
`YeS
`8 A
`--
`- -
`- AC celerations
`D
`>
`
`- - -
`
`NO
`( Initiate Sleep Mode
`x
`544
`u/
`
`y
`M Steps in
`No
`Buffered step
`>
`2 u
`-
`Count
`
`Yu-
`
`Yes
`
`
`
`×
`
`564
`u-
`---
`- -
`?
`Set New Cadence YeS u-Cadence N
`Window
`s
`Window = >
`574
`Default?
`NO
`- N Steps in
`NO
`Buffered Step
`580 SS Count?
`2 -
`-
`N -
`Y
`
`--
`
`570
`
`- 584
`
`/
`
`-
`N
`Add Buffered Steps to \
`Yes
`Actual Step Count and
`\Initiate Stepping Mode/
`
`>
`
`Y
`
`Y.
`
`Page 7 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 6 of 9
`
`US 7,653,508 B1
`
`Set New Cadence
`Window 610
`-
`
`61 5
`
`
`
`
`
`Recognize Step?
`
`Yes
`
`625
`u/
`
`Add One to Step
`Count 620
`
`Initiate Exit Mode
`630
`
`Figure 6
`
`Page 8 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 7 Of 9
`
`US 7,653,508 B1
`
`700 1 \
`
`Initiate (Reset)
`Step Timer
`705
`
`Add One to
`Buffered Step
`Count 710
`
`
`
`
`
`
`
`Add Buffered Steps to
`Actual Step Count and
`Return to Stepping Mode
`720
`
`Yes
`
`Buffered Step
`
`
`
`715
`
`
`
`
`
`
`
`Count and initiate
`Entry Mode 730
`
`
`
`
`
`Step Timer
`Elapsed?
`
`735
`
`Recognize
`Agditional Step
`
`
`
`Figure 7
`
`Page 9 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 8 of 9
`
`US 7,653,508 B1
`
`-
`
`800
`
`Take Measurement(s) of Acceleration Data 805
`
`Filter Measurement(s) 810
`
`Orient Device by Assigning Dominant Axis 812
`
`
`
`
`
`
`
`
`
`
`
`
`
`Weasurement(s) Within Cadence
`Window? 815
`
`Yes |
`
`
`
`Acceleration Along Dominant Axi
`reater Than LOWer Threshold
`
`Yes.
`
`820
`
`
`
`Acceleration Greater Than
`Previous Measurement(s)?
`Yes |
`ACCeleration LOWer Than
`Upper Threshold?
`Yes |
`Count Step 835
`
`Figure 8
`
`No Step
`Counted 840
`
`Page 10 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 9 Of 9
`
`US 7,653,508 B1
`
`900 - S.
`
`Detect Period of Stepping Cadence 910
`
`y
`Create Rolling Averages of Accelerations 915
`
`Assign Dominant Axis 920
`
`Figure 9
`
`Page 11 of 19
`
`
`
`1.
`HUMAN ACTIVITY MONITORING DEVICE
`
`FIELD OF THE INVENTION
`
`This invention relates to a method of monitoring human
`activity, and more particularly to counting periodic human
`motions such as steps.
`
`BACKGROUND
`
`The development of Micro-Electro-Mechanical Systems
`(MEMS) technology has enabled manufacturers to produce
`inertial sensors (e.g., accelerometers) of Sufficient size, cost,
`and power consumption to fit into portable electronic devices.
`Such inertial sensors can be found in a limited number of
`commercial electronic devices such as cellular phones, por
`table music players, pedometers, game controllers, and por
`table computers.
`Step counting devices are used to monitor an individuals
`daily activity by keeping track of the number of steps that he
`or she takes. Generally, step counting devices that utilize an
`inertial sensor to measure motion to detect steps require the
`user to first position the device in a limited set of orientations.
`In some devices, the required orientations are dictated to the
`user by the device. In other devices, the beginning orientation
`is not critical, so long as this orientation can be maintained.
`Step counting devices are often confused by motion noise
`experienced by the device throughout a user's daily routine.
`This noise causes false steps to be measured and actual steps
`to be missed in conventional step counting devices. Conven
`tional step counting devices also fail to accurately measure
`steps for individuals who walk at a slow pace. Such step
`counting devices can fail to operate for seniors and others
`walking at a slow pace.
`
`10
`
`15
`
`25
`
`30
`
`35
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`45
`
`The present invention is illustrated by way of example, and
`not by way of limitation, and can be more fully understood
`40
`with reference to the following detailed description when
`considered in connection with the following figures:
`FIG. 1 is a block diagram illustrating one embodiment of
`an electronic device;
`FIG. 2 illustrates an exemplary cadence of motion graph
`that measures time versus acceleration, in accordance with
`one embodiment of the present invention:
`FIG.3 shows a state diagram for the behavior of a system
`of monitoring human activity using an inertial sensor, in
`accordance with one embodiment of the present invention;
`FIG. 4 illustrates a flow diagram for a method of operating
`an electronic device in sleep mode, in accordance with one
`embodiment of the present invention;
`FIG. 5 illustrates a flow diagram for a method of operating
`an electronic device in entry mode, in accordance with one
`embodiment of the present invention;
`FIG. 6 illustrates a flow diagram for a method of operating
`an electronic device in stepping mode, in accordance with one
`embodiment of the present invention;
`FIG. 7 illustrates a flow diagram for a method of operating
`an electronic device in exit mode, in accordance with one
`embodiment of the present invention;
`FIG. 8 illustrates a flow diagram for a method of recogniz
`ing a step in accordance with one embodiment of the present
`invention, in accordance with one embodiment of the present
`invention; and
`
`50
`
`55
`
`60
`
`65
`
`US 7,653,508 B1
`
`2
`FIG. 9 illustrates a flow diagram for a method of orienting
`an inertial sensor, in accordance with one embodiment of the
`present invention.
`
`DETAILED DESCRIPTION
`
`Embodiments of the present invention are designed to
`monitor human activity using an inertial sensor. In one
`embodiment, a dominant axis is assigned after determining an
`orientation of an inertial sensor. The orientation of the inertial
`sensor is continuously determined, and the dominant axis is
`updated as the orientation of the inertial sensor changes. In
`one embodiment, periodic human motions are counted by
`monitoring accelerations relative to the dominant axis.
`FIG. 1 is a block diagram illustrating an electronic device
`100, in accordance with one embodiment of the present
`invention. The electronic device 100 in one embodiment
`comprises an acceleration measuring logic 105, a filter 120, a
`dominant axis logic 127, a step counting logic 130, a timer
`170, and a final step count 175. In one embodiment, the
`electronic device 100 is a portable electronic device that
`includes one or more inertial sensors. The inertial sensors
`may measure accelerations along a single axis or multiple
`axes. The inertial sensors may measure linear as well as
`rotational (angular) accelerations. The electronic device 100
`may be used to count steps or other periodic human motions.
`Steps may be accurately counted regardless of the placement
`and/or orientation of the device on a user. Steps may be
`accurately counted whether the electronic device 100 main
`tains a fixed orientation or changes orientation during opera
`tion. The electronic device 100 may be carried in a backpack,
`pocket, purse, hand, or elsewhere, and accurate steps may still
`be counted.
`The acceleration measuring logic 105 measures accelera
`tion data at a sampling rate. The sampling rate may be fixed or
`variable. In one embodiment, the acceleration measuring
`logic 105 receives a timing signal from the timer 170 in order
`to take measurements at the sampling rate. The acceleration
`measuring logic 105 may be an inertial sensor.
`In one embodiment, measurement data is processed by the
`filter 120 to remove noise. The filter 120 may be implemented
`in hardware, software, or both hardware and software. The
`filter 120 may include a high pass filter, a low pass filter, a
`bandpass filter, a bandstop filter and/or additional filters. The
`filter 120 may include a digital filter and/or an analog filter. In
`one embodiment, a hardware digital filter includes at least one
`of a finite impulse response (FIR) filter and an infinite impulse
`response (IIR) filter. In one embodiment, an N-tap hardware
`digital FIR filter is used. The use of a hardware FIR filter may
`reduce power consumption by reducing and/or eliminating
`Software digital filtering.
`In one embodiment, the filter 120 includes multiple filters,
`and a determination of which filters to apply to the measure
`ment data is made based upon an operating mode of the
`electronic device 100. In one embodiment, the selection of
`which filters to use is determined by the type of user activity
`detected. For example, a low pass filter may be used to remove
`high frequency noise that would interfere with step counting
`when a user is walking. In contrast, a high pass filter may be
`used when quick motions are to be monitored.
`Filtered measurement data may be passed on to the domi
`nant axis logic 127 and the step counting logic 130. In one
`embodiment, the dominant axis logic 127 includes a cadence
`logic 132, a rolling average logic 135, and a dominant axis
`setting logic 140. In an alternative embodiment, more or
`
`Page 12 of 19
`
`
`
`US 7,653,508 B1
`
`10
`
`15
`
`30
`
`35
`
`3
`fewer logics may be used to determine a dominant axis.
`Alternative means of identifying a dominant axis may be used
`in other embodiments.
`In one embodiment, the dominant axis logic 127 is used to
`determine an orientation of the electronic device 100 and/or 5
`an inertial sensor within the electronic device 100. In alter
`native embodiments, other logics may be used to determine
`an orientation of the electronic device 100.
`Referring to FIG. 1, the cadence logic 132 may determine
`one or more sample periods to be used by the rolling average
`logic 135, and may determine a cadence window 150 to be
`used by the step counting logic 130. In one embodiment, the
`cadence logic 135 detects a period and/or cadence of a motion
`cycle. The period and/or cadence of the motion cycle may be
`based upon user activity (e.g. rollerblading, biking, running,
`walking, etc).
`Many types of motions that are useful to keep track of have
`a periodic set of movements. Specific periodic human
`motions may be characteristic of different types of user activ
`ity. For example, to walk, an individual must lift a first leg,
`move it forward, plant it, then repeat the same series of
`motions with a second leg. In contrast, a person rollerblading
`performs a repeated sequence of pushing, coasting and liftoff
`for each leg. For a particular individual, the series of walking
`motions will usually occur in about the same amount of time,
`and the series of rollerblading motions will usually occur in
`the same amount of time. The repeated set of motions can be
`considered a unit, and defines the motion cycle. The amount
`of time that it takes to complete one motion cycle defines the
`motion cycle's period, and the number of motion cycles that
`occur in a given unit of time define the motion cycle's
`cadence. For simplicity, the term “step” is used in this appli
`cation to describe the user activity being evaluated. However,
`in the context of this application, the term “step’ should be
`taken to mean any user activity having a periodic set of
`repeated movements.
`FIG. 2 illustrates an exemplary motion cycle graph 200 that
`measures time versus acceleration, in accordance with one
`embodiment of the present invention. The exemplary motion
`40
`cycle graph 200 shows acceleration data taken with a single
`tri-axis inertial sensor. The acceleration at a given period of
`time is represented for a first axis 203 of an inertial sensor(s),
`a second axis 205 of the inertial sensor(s), and a third axis 207
`of the inertial sensor(s). In one embodiment, the cadence
`logic 132 of FIG. 1 analyzes the acceleration along the first
`axis 203, secondaxis 205 and third axis 207 to detecta motion
`cycle. Once a motion cycle is detected, a period of the motion
`cycle is determined, and a cadence of the motion cycle is
`determined. FIG. 2 shows an exemplary period of a motion
`cycle 215 for the third axis 207, the period being approxi
`mately 0.6 seconds. The same period can also be seen to a
`lesser degree in the second axis 205 and the first axis 203. The
`corresponding cadence to the motion cycle is approximately
`one hundred motion cycles per minute.
`In one embodiment, once a stepping period (or other
`motion cycle period) is determined, that period may be used
`to set the cadence window (the allowable time window for
`steps to occur). In one embodiment, the period is updated
`after each step. The current stepping period may be a rolling
`average of the stepping periods over previous steps, as dis
`cussed in more detail with reference to the rolling average
`logic 135 of FIG. 1.
`Acadence window may be used to facilitate accurate mea
`Surement of a step, or other periodic human motion. A
`65
`cadence window is a window of time since a last step was
`counted that is looked at to detect a new step. A cadence
`
`50
`
`45
`
`55
`
`60
`
`4
`window may be set based on the period and/or cadence of the
`actual motion cycle (e.g., a stepping period), on set limits,
`and/or on other determiners.
`Referring to FIG. 2, an exemplary first cadence window
`240 and second cadence window 255 are shown. The first
`cadence window 240 may be defined by a first cadence win
`dow minimum 230 and a first cadence window maximum
`235. The second cadence window 255 may be defined by a
`second cadence window minimum 245 and a second cadence
`window maximum 250. In one embodiment, the cadence
`window minimums 230 and 245 and cadence window maxi
`mums 235 and 250 are determined by measuring lengths of
`time since the most recent step was counted. In one embodi
`ment, this length of time is measured via the timer 170 of FIG.
`1. In other embodiments, other variables may be used to set
`the cadence window. For example, cadence windows may be
`determined by measuring cumulative amounts of accelera
`tion that have been measured since the previous step was
`counted.
`Returning to FIG. 2, cadence windows may be used to
`count steps until an expected Step is not encountered. In one
`embodiment, new cadence windows are determined periodi
`cally. In one embodiment, the cadence window is a dynamic
`cadence window that continuously updates as a user's
`cadence changes. For example, using a dynamic cadence
`window, a new cadence window length may be set after each
`step. The cadence window minimums may be determined by
`Subtracting a value from the stepping period, and the cadence
`window maximums may be determined by adding a value to
`the stepping period. In one embodiment, the cadence window
`maximums are preset, and the cadence window minimums
`are updated after each step is counted. In one embodiment, the
`cadence window minimums are preset, and the cadence win
`dow maximums are updated after each step is counted. In one
`embodiment, both the cadence window minimums and
`cadence window maximums are updated when a step is
`counted. In one embodiment, the current cadence window
`minimum is determined by subtracting 200 ms from the cur
`rent stepping cadence period. In one embodiment, the
`cadence window minimum has a minimum value of 240 ms.
`In the illustrated embodiment of FIG. 2, a first step 217 is
`counted at 0.65 seconds, and a second step 232 is counted at
`approximately 1.15 seconds. The first cadence window 240
`opens at approximately 0.4 seconds from the first step 217,
`and closes at approximately 0.8 seconds from the first step
`217. As shown, the second step 232 falls within the first
`dynamic cadence window 240. A third step 233 falls within
`the second dynamic cadence window 255, which may have a
`second cadence window minimum 245 and second cadence
`window maximum 250 that are different from the first
`cadence window minimum 230 and first cadence window
`maximum 235. The illustrated second cadence window mini
`mum is about 0.35 seconds from the second step 232, and the
`second cadence window maximum 250 is about 0.75 seconds
`from the second step 232. Other cadence window minimums
`and maximums are also possible. When motion criteria (e.g.,
`threshold conditions) are met withina cadence window, a step
`is detected, whereas when motion criteria are met outside of
`the cadence windows no step is detected.
`If no previous steps have been detected, there is no cadence
`minimum, and a step may be detected at any time that motion
`criteria are met. If fewer than the required number of steps to
`determine a dynamic cadence window have been detected,
`then the cadence window may have a default minimum and
`maximum value. In one embodiment, the cadence window
`has a default minimum of around 325 ms and a default maxi
`mum of around 1000 ms. Once enough steps have been
`
`Page 13 of 19
`
`
`
`US 7,653,508 B1
`
`10
`
`15
`
`5
`detected to determine a dynamic stepping cadence or period,
`the cadence window may be set to the determined stepping
`period plus or minus an error factor. In one embodiment, a
`count of between about two to about ten periodic human
`motions is sufficient to set a dynamic cadence window.
`The cadence of any periodic human motion will generally
`not change more than a certain amount in a given time period.
`In one embodiment, the cadence window may be sufficiently
`wide to continue counting periodic human motions even
`when a stepping cadence changes. In one embodiment, the
`cadence window is narrower, and steps may not be counted
`when a stepping cadence changes. So as not to miss steps,
`once a new stepping cadence is detected, previous measure
`ments may be examined to determine whether they register as
`steps under the new stepping cadence and a new cadence
`window. Therefore, steps may be counted even if they did not
`occur in the original cadence window. The cadence window
`may update dynamically to a user's actual cadence. Human
`cadences change within a known window of rates, and so
`steps can be differentiated from other noise. This may ame
`liorate and/or eliminate missed step counts due to changes in
`cadence.
`In one embodiment, when steps repeatedly occur at a time
`different from the current stepping period, a new stepping
`period and a new cadence window are set. For example, when
`the stepping period is 0.7 seconds, and a step occurs about
`every 0.6 seconds enough times in a row, then the stepping
`period is changed to 0.6 seconds and a new cadence window
`is set based on the changed stepping period.
`Returning to FIG. 1, once the stepping period is detected,
`the cadence logic 132 may set one or more sample periods for
`the rolling average logic 135 to use based upon the stepping
`period. In one embodiment, the sample period(s) are set Such
`that at least one sample period is approximately the length of
`or longer than, the stepping period. In one embodiment, a
`sample period is set such that it is a multiple of the stepping
`period.
`The rolling average logic 135 creates one or more rolling
`averages of accelerations as measured by the inertial sensor
`(s) over the sample period(s) set by the cadence logic 132. The
`rolling averages of accelerations may be used for determining
`an orientation of the electronic device, for determining
`thresholds to compare acceleration measurements against,
`and/or for other purposes. In one embodiment, the rolling
`average logic 135 creates a rolling average of accelerations
`for determining an orientation of the electronic device 100,
`the rolling average having a period that is at least the stepping
`period. In one embodiment, the rolling average logic creates
`a rolling average of accelerations for determining a lower
`threshold to compare acceleration measurements against, the
`rolling average having a sample period that is at least twice
`the stepping period.
`The rolling average logic 135 may create one or more
`rolling averages of data other than accelerations. In one
`embodiment, the rolling average logic 135 creates a rolling
`average of stepping periods, where the rolling average is the
`rolling average time between steps. In one embodiment, the
`rolling average of stepping periods is calculated over the past
`four counted steps. The rolling average of the stepping peri
`ods may be used by the cadence logic 132 to determine a
`cadence window and a current stepping cadence.
`In one embodiment, rolling averages may be maintained in
`registries that keep track of rolling average values and the
`number of samples that were used to calculate current rolling
`average values. When a new measurement is taken, it can be
`incorporated into the previous rolling average value, and the
`registry can than be updated with a new rolling average value.
`
`6
`Alternatively, the rolling averages may be maintained by
`buffering the measurements used to calculate the rolling aver
`ages. As the buffers fill, oldest measurement data can be
`discarded and replaced by new measurement data. The mea
`Surements in the buffer can be averaged after each measure
`ment to determine a new rolling average.
`In one embodiment, the dominant axis setting logic 140
`determines an orientation of the electronic device 100 and/or
`the inertial sensor(s) within the electronic device 100. The
`orientation may be determined based upon the rolling aver
`ages of accelerations created by the rolling average logic 135.
`In one embodiment, once the orientation is determined, a
`dominant axis is assigned based upon the orientation. Deter
`mining an orientation of the electronic device 100 may
`include identifying a gravitational influence. The axis with
`the largest absolute rolling average may be the axis most
`influenced by gravity, which may change over time (e.g. as
`the electronic device is rotated). Therefore, a new dominant
`axis may be assigned when the orientation of the electronic
`device 100 and/or the inertial sensor(s) attached to or embed
`ded in the electronic device 100 changes.
`In one embodiment, the actual axis with the largest abso
`lute rolling average over the sample period is assigned as the
`dominantaxis. In alternative embodiments, the dominant axis
`does not correspond to one of the actual axes of the inertial
`sensor(s) in a current orientation, but rather to an axis that is
`defined as approximately aligned to gravity. In one embodi
`ment, the dominant axis corresponds to a virtual axis that is a
`component of a virtual coordinate system. In one embodi
`ment, the dominant axis setting logic 140 assigns the domi
`nant axis by performing a true gravity assessment, such as by
`doing trigonometric calculations on the actual axes based on
`the gravitational influence. In one embodiment, the dominant
`axis setting logic 140 assigns the dominant axis by comparing
`the gravitational influence to a data structure Such as a lookup
`table, associative array, hash table, adjacency matrix, etc.
`Returning to FIG. 1, the step counting logic 130 may
`include a measurement selection logic 145, a cadence win
`dow 150, a measurement comparator 155, a threshold com
`parator 160, a step count buffer 165, and a mode logic 190.
`The measurement selection logic 145 may determine which
`measurements from the measurement buffer to use to deter
`mine if a step has occurred. In one embodiment, the measure
`ment selection logic 145 may monitor accelerations relative
`to the dominant axis, and select only those measurements
`with specific relations to the dominant axis for measurement.
`For example, only accelerations that are approximately par
`allel to the dominant axis may be selected, or alternatively,
`only accelerations that are approximately perpendicular to
`the dominant axis may be selected. In one embodiment, the
`measurement selection logic 145 selects only measurements
`of acceleration data along the dominant axis. In alternative
`embodiments, measurements of acceleration data along other
`axes may also be used. In one embodiment, measurements of
`acceleration along only the other axes are used.
`Selected measurements may be forwarded to the measure
`ment comparator 155 and the threshold comparator 160 to
`determine whether a step has occurred. The measurement
`comparator 155 may compare a current measurement to pre
`vious measurements. Based on this comparison, a current
`measurement may qualify as a step if it has met certain com
`parison criteria, as discussed in more detail with reference to
`FIG 8.
`In one embodiment, a motion cycle graph is maintained,
`and the current measurement is compared to the motion cycle
`graph. If the motion cycle graph indicates that the current
`
`25
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Page 14 of 19
`
`
`
`US 7,653,508 B1
`
`15
`
`25
`
`30
`
`7
`measurement in relation to preceding measurements fits the
`profile of a step, then a step may be counted. Otherwise a step
`may not be counted.
`Returning to FIG. 1, the threshold comparator 160 dis
`qualifies measurements from being counted as steps for fail
`ure to meet certain thresholds. In one embodiment, measure
`ments must be larger than a lower threshold to qualify as a
`step. In one embodiment, the threshold comparator 160 com
`pares measurements to an upper threshold. In one embodi
`ment, only a measurement having a smaller absolute value of 10
`acceleration than the upper threshold and a higher absolute
`value than the lower threshold is counted as a step. The upper
`threshold and the lower threshold are discussed in more detail
`below with reference to FIG. 8.
`In one embodiment, the threshold comparator 160 and the
`measurement comparator 155 are combined into a single
`comparator. In on