`
`(12) United States Patent
`Kahn et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,653,508 B1
`Jan. 26, 2010
`
`(54)
`
`HUMAN ACTIVITY MONITORING DEVICE
`
`(75)
`
`Inventors: Philippe Kahn, Aptos, CA (US);
`Arthur Kinsolving, Santa Cruz, CA
`(US); Mark Andrew Christensen, Santa
`Cruz, CA (US); Brian Y. Lee, Aptos, CA
`(US); David Vogel, Santa Cruz, CA (US)
`
`(73)
`
`Assignee: DP Technologies, Inc., Scotts Valley, CA
`(US)
`
`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
`
`(22)
`
`Filed:
`
`Dec. 22, 2006
`
`Richardson et al.
`10/2000
`6,135,951 A
`Ebeling et al.
`11/2000
`6,145,389 A
`4/2002 Sakurai et al.
`6,369,794 B1 *
`12/2002 Ohlenbusch et al.
`6,493,652 B1
`2/2003 Fyfe et al.
`6,513,381 B2
`2/2003 Soehren et al.
`6,522,266 B1
`3/2003 Begin et al.
`6,532,419 B1
`3/2003 Vock et al.
`6,539,336 B1
`3/2004 Kubo et al.
`6,700,499 B2 *
`9/2004 Mault et al.
`6,790,178 B1
`11/2004 Levi et al.
`6,813,582 B2
`11/2004 Chen
`6,823,036 B1
`6,826,477 B2 * 11/2004 Ladetto et al.
`6,836,744 B1
`12/2004 Asphahani et al.
`
`345/156
`
`340/686.1
`
`701/217
`
`(51)
`
`Int. Cl.
`GO1B 21/02
`GO1B 7/00
`GO1C 22/00
`G06F 19/00
`G06F 17/40
`(52) U.S. Cl.
`
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
`(2006.01)
` 702/160; 33/700; 377/1;
`377/13; 377/25; 377/24.2; 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.
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`4,285,041 A
`4,578,769 A
`5,446,725 A
`5,446,775 A
`5,593,431 A
`5,955,667 A
`5,976,083 A
`
`8/1981 Smith
`3/1986 Frederick
`8/1995 Ishiwatari
`8/1995 Wright et al.
`1/1997 Sheldon
`9/1999 Fyfe
`11/1999 Richardson 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
`
`Filter
`124
`
`Acceleration
`Measuring
`Logic
`125
`
`Timer
`17.4
`
`Dominant Axis Logic 12Z
`Dominant
`Rolling Average
`Axis Setting
`Logic =
`Logic
`4 t
`144
`Cadence Logic
`
`Measurement
`Selection
`Logic 112
`
`( Cadence (
`
`Window
`1E4
`
`Measurement
`Comparator
`155
`
`Threshold
`Comparator
`154
`
`(Final Step
`
`Count
`1.7.5
`
`-
`
`/ Step Count
`Buffer
`155
`
`\
`
`Mode
`Logic
`19Q
`
`Step Counting Logic IN
`
`Electronic Device 144
`
`HTC v. Uniloc Luxembourg
`
`Page 1 of 19
`
`HTC Ex. 1001
`
`Page 1 of 19
`
`SAMSUNG EXHIBIT 1001
`
`
`
`US 7,653,508 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`4/2005 Oakley et al.
`6,881,191 B2
`4/2005 Vock et al.
`6,885,971 B2
`5/2005 Blackadar et al.
`6,898,550 Bl
`8/2005 Hong et al.
`6,928,382 B2
`9/2005 Unuma et al.
`6,941,239 B2
`10/2005 Vock et al.
`6,959,259 B2
`7/2006 Vock et al.
`7,072,789 B2
`8/2006 Vock et al.
`7,092,846 B2
`12/2006 Albert
`7,148,797 B2
`1/2007 Vock et al.
`7,158,912 B2
`1/2007 Tsuji
`7,169,084 B2 *
`1/2007 Vock et al.
`7,171,331 B2
`4/2007 Darley et al.
`7,200,517 B2
`5/2007 Aoshima et al.
`7,212,943 B2
`5/2007 Stubbs et al.
`7,220,220 B2
`7,297,088 B2 * 11/2007 Tsuji
`7,328,611 B2
`2/2008 Klees et al.
`7,334,472 B2 *
`2/2008 Seo et al.
`7,387,611 B2
`6/2008 Inoue et al.
`7,457,719 Bl * 11/2008 Kahn et al.
`2002/0089425 Al *
`7/2002 Kubo et al.
`2002/0109600 Al
`8/2002 Mault et al.
`2002/0151810 Al
`10/2002 Wong et al.
`2003/0018430 Al *
`1/2003 Ladetto et al.
`2003/0109258 Al
`6/2003 Mantyjarvi et al.
`2004/0225467 Al
`11/2004 Vock et al.
`2005/0033200 Al
`2/2005 Soehren et al.
`2005/0222801 Al
`10/2005 Wulff et al.
`2005/0232388 Al * 10/2005 Tsuji
`
`2005/0238132 Al * 10/2005 Tsuji
`2005/0240375 Al
`10/2005 Sugai
`2005/0248718 Al
`11/2005 Howell et al.
`2006/0020177 Al *
`1/2006 Seo et al.
`2006/0136173 Al
`6/2006 Case, Jr. et al.
`2006/0223547 Al
`10/2006 Chin et al.
`2007/0063850 Al
`3/2007 Devaul et al.
`2007/0067094 Al *
`3/2007 Park et al.
`2007/0142715 Al
`6/2007 Ballet et al.
`2009/0043531 Al *
`2/2009 Kahn et al.
`
`OTHER PUBLICATIONS
`
` 377/24.2
`
` 600/300
`
` 701/200
`
` 702/149
`
`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.
`
`482/8
`
`482/3
`
`73/379.01
`
`702/141
`340/573.1
`
`701/217
`
`377/24.2
`
`* cited by examiner
`
`HTC v. Uniloc Luxembourg
`
`Page 2 of 19
`
`HTC Ex. 1001
`
`Page 2 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 1 of 9
`
`US 7,653,508 B1
`
`Filter
`120
`
`T
`
`Acceleration
`Measuring
`Logic
`105
`
`Timer
`170
`
`Dominant Axis Logic 127
`Dominant
`Rolling Average
`Axis Setting
`Logic 135
`Logic
`11Q
`
`Cadence Logic
`132
`
`Measurement
`Selection
`Logic 145
`
`/ Cadence /
`Window
`150
`
`Measurement
`Comparator
`155
`
`Threshold
`Comparator
`160
`
`4 -
`
`/ Final Step
`Count
`175
`
`\
`
`Step Count /
`Buffer
`165
`
`Mode
`Logic
`190
`
`Step Counting Logic 130
`
`Electronic Device 100
`
`Figure 1
`
`HTC v. Uniloc Luxembourg
`
`Page 3 of 19
`
`HTC Ex. 1001
`
`Page 3 of 19
`
`
`
`wawa °S*9
`
`OtOZ `9Z 'tier
`
`6 JO Z WIN
`
`Ill 80C'ES9`L Sf1
`
`...
`...• %
`
`4
`
`1
`
`. -
`%
`
`;
`
`i g
`•,‘ ,.i,
`
`1.
`
`t #:‘8, .
`
`t
`
`1
`
`0 • .. %
`$
`
`%
`
`Ili
`
`..
`
`. N ..
`
`a
`•
`
`.
`
`I
`16
`9.
`
`.14:: ;_;_
`
`
`
`, +OK*
`
`..4
`
`1' 4, .119
`
`lb.,
`
`.. 1. .
`
`$
`?.4 •.1 .
`..e.:. ....4 -
`
`Irani, -
`
`i
`
`i ..........i
`'S,..<
`
`•
`
`w9 .;
`
`I
`
`I
`
`i
`
`a
`h •
`: 4,0o fit.
`.
`44;.1.9
`
`4:66,
`
`1
`
`•
`4.
`•
`V.
`• If
`
`Figure 2
`
`200
`
`Step
`
`Step
`:4
`
`235
`230
``"1 i Step' 1
`:
`1 ,4
`I
`
`245
`r*
`1 Step
`0
`; t t
`
`o i"
`o
`
`250
`
`Step
`t
`
`Step
`8
`
`'217
`
`215
`
`232
`
`233
`
`..7"
`
`207
`
`t
`
`a
`
`,
`
`*
`0
`*
`
`300
`
`200
`
`100
`
`0
`
`Accelerotion (g)
`
`• t
`;
`t
`$
`i
`
`I
`
`$ .
`
`q•
`
`4 •
`•
`
`•
`
`,
`
`•
`
`.
`
`•
`0
`9
`
`•
`6
`4
`• 9 4. 9.'6 .19
`
`47
`I
`4.
`,
`4 . i ;I.*
`
`.s..
`
`. '2 00
`
`-300
`
`HTC v. Uniloc Luxembourg
`
`Page 4 of 19
`
`HTC Ex. 1001
`
`Page 4 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 3 of 9
`
`US 7,653,508 B1
`
`300
`
`Sleep
`Conditions
`Met
`
`Initial State
`
`Sleep Mode 305
`
`No Activity
`
`Detect Accelerations
`
`Entry Mode 315
`
`No Steps
`
`N Steps in Cadence
`
`Stepping Mode 325
`
`"c\_, Steps in
`Cadence
`
`X Steps in
`C\-- Cadence
`\
`
`Exit Mode 335
`
`No Steps Detected Within
`Cadence Window
`
`Figure 3
`
`HTC v. Uniloc Luxembourg
`
`Page 5 of 19
`
`HTC Ex. 1001
`
`Page 5 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 4 of 9
`
`US 7,653,508 B1
`
`400
`
`Start
`
`Set Sleep Mode Sampling Rate
`405
`4-
`Take Measurement(s) of Acceleration Data
`410
`
`Acceleration Detected?
`415
`
`No
`
`Yes
`
`(Initiate Entry
`Mode 420
`
`Figure 4
`
`HTC v. Uniloc Luxembourg
`
`Page 6 of 19
`
`HTC Ex. 1001
`
`Page 6 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 5 of 9
`
`US 7,653,508 B1
`
`500
`
`)
`
`( Start
`•
`Set Stepping
`Sampling Rate 504
`
`•
`Recognize First Step
`510
`
`Set Default Cadence
`Window 514
`
`Set Buffered Step
`Count to One 520
`IP-11
`•
`
`//' 524
`
`Yes
`
`530
`
`_ --- Still --_
`--- Recognize---- No
`-
`>
`p.--
`In Cadence
`-K-
`- -Additional Step9--
`---Window2--
`---
`
`/
`, ..,
`
`Yes
`
`Add One to Buffered
`Step Count
`560
`
`No
`Reset Buffered
`Step Count to Zero
`534
`
`540
`
`Yes
`
`Acceleration
`Detected?
`
`No
`Initiate Sleep Mode
`544
`
`570
`
`584
`
`%kil Steps in
`No <-' Buffered Step
`Count?
`
`Yes
`
`564
`
`Set New Cadence
`Window
`574
`
`_--Cadenc-e
`Window =
`
`No
`
`No
`
`580
`
`N Steps
`Buffered Step
`Count?
`
`es / Add Buffered Steps to
`
` Actual Step Count and
`\, Initiate Stepping Mode/
`
`Figure 5
`
`HTC v. Uniloc Luxembourg
`
`Page 7 of 19
`
`HTC Ex. 1001
`
`Page 7 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 6 of 9
`
`US 7,653,508 B1
`
`600
`
`C Start
`
`Set New Cadence
`Window 610
`
`615
`
`Recognize Step?
`
`es
`
`V
`Add One to Step
`Count 620
`
`Yes
`
`625
`
`ill In Cadenc
`Window?
`
`C
`
`No
`Initiate Exit Mode
`630
`
`Figure 6
`
`HTC v. Uniloc Luxembourg
`
`Page 8 of 19
`
`HTC Ex. 1001
`
`Page 8 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 7 of 9
`
`US 7,653,508 B1
`
`700
`
`Add Buffered Steps to
`Actual Step Count and
`Return to Stepping Mode
`720
`
`CClear Buffered Step
`
`Count and Initiate
`Entry Mode 730
`
`Start
`
`Initiate (Reset)
`Step Timer
`705
`
`Add One to
`Buffered Step
`Count 710
`
`715
`
`Yes
`
`uffered Step
`Count = X?
`
`725
`
`4
`
`Yes
`
`735
`
`Step Timer
`Elapsed?
`
`Recognize
`dditional Ste
`
`Yes
`
`Figure 7
`
`HTC v. Uniloc Luxembourg
`
`Page 9 of 19
`
`HTC Ex. 1001
`
`Page 9 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 8 of 9
`
`US 7,653,508 B1
`
`800
`
`( Start
`
`Take Measurement(s) of Acceleration Data 805
`
`Filter Measurement(s) 810
`
`Orient Device by Assigning Dominant Axis 812
`
`easurement(s) Within Cadenc
`Window? 815
`
`Yes
`
`cceleration Along Dominant
`reater Than Lower Threshol•?
`
`Yes
`
`820
`
`Acceleration Greater Than
`Previous Measurement(s)?
`
`Yes
`
`Acceleration Lower Than
`Upper Threshold?
`
`1
`
`No
`
`825
`
`Yes
`
`(Count Step 835)
`
`8 0
`
`No Step
`Counted 840
`
`Figure 8
`
`HTC v. Uniloc Luxembourg
`
`Page 10 of 19
`
`HTC Ex. 1001
`
`Page 10 of 19
`
`
`
`U.S. Patent
`
`Jan. 26, 2010
`
`Sheet 9 of 9
`
`US 7,653,508 B1
`
`____-----
`
`900
`
`( Start
`
`Detect Period of Stepping Cadence 910
`
`Create Rolling Averages of Accelerations 915
`
`iv
`Assign Dominant Axis 920
`
`( End
`
`Figure 9
`
`HTC v. Uniloc Luxembourg
`
`Page 11 of 19
`
`HTC Ex. 1001
`
`Page 11 of 19
`
`
`
`US 7,653,508 B1
`
`1
`HUMAN ACTIVITY MONITORING DEVICE
`
`FIELD OF THE INVENTION
`
`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
`
`35
`
`Embodiments of the present invention are designed to
`monitor human activity using an inertial sensor. In one
`10 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
`15 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
`20 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
`25 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
`30 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
`40 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
`45 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
`50 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,
`55 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
`60 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
`65 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
`
`This invention relates to a method of monitoring human 5
`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 individual's
`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.
`
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`The present invention is illustrated by way of example, and
`not by way of limitation, and can be more fully understood
`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
`
`HTC v. Uniloc Luxembourg
`
`Page 12 of 19
`
`HTC Ex. 1001
`
`Page 12 of 19
`
`
`
`US 7,653,508 B1
`
`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
`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-
`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, second axis 205 and third axis 207 to detect a 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.
`A cadence window may be used to facilitate accurate mea-
`surement of a step, or other periodic human motion. A
`cadence window is a window of time since a last step was
`counted that is looked at to detect a new step. A cadence
`
`20
`
`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
`5 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
`10 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.
`15 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
`25 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
`30 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
`35 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
`40 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,
`45 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
`so 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
`55 from the second step 232. Other cadence window minimums
`and maximums are also possible. When motion criteria (e.g.,
`threshold conditions) are met within a 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
`65 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
`
`60
`
`HTC v. Uniloc Luxembourg
`
`Page 13 of 19
`
`HTC Ex. 1001
`
`Page 13 of 19
`
`
`
`US 7,653,508 B1
`
`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-
`5 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
`10 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
`15 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
`20 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
`dominant axis. In alternative embodiments, the dominant axis
`25 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-
`30 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
`35 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-
`40 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-
`45 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,
`50 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
`55 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
`60 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 det