throbber

`
`
`
`111111111111111111111111111ps1J111J18111J111111111111111111111111111111
`
`(12) United States Patent
`Kahn et al.
`
`(10) Patent No.:
`(45) Date of Patent:
`
`US 7,881,902 B1
`Feb. 1, 2011
`
`(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 0 days.
`
`(21)
`
`Appl. No.: 12/694,135
`
`(22)
`
`Filed:
`
`Jan. 26, 2010
`
`Related U.S. Application Data
`
`(63)
`
`Continuation of application No. 11/644,455, filed on
`Dec. 22, 2006, now Pat. No. 7,653,508.
`
`(51)
`
`(52)
`(58)
`
`Int. Cl.
`(2006.01)
`GO1C 22/00
`(2006.01)
`G06F 19/00
` 702/160; 377/24.2; 702/97
`U.S. Cl.
`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
`
`8/1981 Smith
`3/1986 Frederick
`8/1995 Ishiwatari
`8/1995 Wright et al.
`1/1997 Sheldon
`9/1999 Fyfe
`
`5,976,083 A
`6,013,007 A
`6,135,951 A
`6,145,389 A
`6,369,794 B1
`6,493,652 B1
`6,513,381 B2
`6,522,266 B1
`6,532,419 B1
`6,539,336 B1
`6,611,789 B1*
`6,700,499 B2
`6,790,178 B1
`6,813,582 B2
`
`Richardson et al.
`11/1999
`Root et al.
`1/2000
`10/2000 Richardson et al.
`11/2000 Ebeling et al.
`4/2002 Sakurai et al.
`12/2002 Ohlenbusch et al.
`2/2003 Fyfe et al.
`2/2003 Soehren et al.
`3/2003 Begin et al.
`3/2003 Vock et al.
`8/2003 Darley
`3/2004 Kubo et al.
`9/2004 Mault et al.
`11/2004 Levi et al.
`
`702/160
`
`(Continued)
`
`OTHER PUBLICATIONS
`
`"Wearable Health Reports," Technology Review, Feb. 28, 2006,
`http://www.techreview.com/
`printer friendly article aspx?id+16431, Mar. 22, 2007, 3 pages.
`
`(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.
`
`11 Claims, 9 Drawing Sheets
`
`500
`
`(scan
`
`)
`•
`Set Stepping
`Samplingcate 52¢
`
`Recognize First Step
`514
`
`Set IZ a,noltwCadence
` 514
`
`
`
` ore,'-' ,. %2L'
`
`t
`
`CounSet
`441* No
`
`524
`
`Add One to Buffered
`Step Count
`5124
`
`No
`
`Reset Suffered
`Step Count to Zero
`53.1
`
`594
`
`564
`
`41—
`
`Set New Cadence
`Window
`5li
`
`DAM
`
`580
`
`Add Buffered Step 10)
`Actual Step Count end
`Initiate Stepping Alb
`
`HTC v. Uniloc
`
`Page 1 of 19
`
`HTC Ex. 1001
`
`

`

`US 7,881,902 B1
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`6,823,036 Bl
`6,826,477 B2
`6,836,744 Bl
`6,881,191 B2
`6,885,971 B2
`6,898,550 Bl
`6,928,382 B2
`6,941,239 B2
`6,959,259 B2
`6,975,959 B2
`7,010,332 Bl
`7,072,789 B2
`7,092,846 B2
`7,148,797 B2
`7,158,912 B2
`7,169,084 B2
`7,171,331 B2
`7,200,517 B2
`7,212,943 B2
`7,220,220 B2
`7,297,088 B2
`7,328,611 B2 *
`7,334,472 B2
`7,353,112 B2
`7,387,611 B2
`7,457,719 Bl
`7,526,402 B2
`7,647,196 B2 *
`7,653,508 Bl *
`7,753,861 Bl *
`2002/0089425 Al
`2002/0109600 Al
`2002/0151810 Al
`2003/0018430 Al
`2003/0109258 Al
`2003/0139692 Al
`2004/0225467 Al
`2005/0033200 Al
`2005/0222801 Al
`2005/0232388 Al
`2005/0232404 Al
`2005/0238132 Al
`
`11/2004 Chen
`11/2004 Ladetto et al.
`12/2004 Asphahani et al.
`4/2005 Oakley et al.
`4/2005 Vock et al.
`5/2005 Blackadar et al.
`8/2005 Hong et al.
`9/2005 Unuma et al.
`10/2005 Vock et al.
`12/2005 Dietrich et al.
`3/2006 Irvin et al.
`7/2006 Vock et al.
`8/2006 Vock et al.
`12/2006 Albert
`1/2007 Vock et al.
`1/2007 Tsuji
`1/2007 Vock et al.
`4/2007 Darley et al.
`5/2007 Aoshima et al.
`5/2007 Stubbs et al.
`11/2007 Tsuji
`2/2008 Klees et al.
`2/2008 Seo et al.
`4/2008 Choi et al.
`6/2008 Inoue et al.
`11/2008 Kahn et al.
`4/2009 Tenanhaus et al.
`1/2010 Kahn et al.
`1/2010 Kahn et al.
`7/2010 Kahn et al.
`7/2002 Kubo et al.
`8/2002 Mault et al.
`10/2002 Wong et al.
`1/2003 Ladetto et al.
`6/2003 Mantyjarvi et al.
`7/2003 Barrey et al.
`11/2004 Vock et al.
`2/2005 Soehren et al.
`10/2005 Wulff et al.
`10/2005 Tsuji
`10/2005 Gaskill
`10/2005 Tsuji
`
`10/2005 Sugai
`2005/0240375 Al
`11/2005 Howell et al.
`2005/0248718 Al
`1/2006 Seo et al.
`2006/0020177 Al
`5/2006 Silk
`2006/0100546 Al
`6/2006 Case et al.
`2006/0136173 Al
`10/2006 Chin et al.
`2006/0223547 Al
`3/2007 Darley et al.
`2007/0061105 Al *
`3/2007 Devaul et al.
`2007/0063850 Al
`3/2007 Park et al.
`2007/0067094 Al
`4/2007 Nissila et al.
`2007/0082789 Al
`6/2007 Rosenberg
`2007/0125852 Al
`6/2007 Ballet et al.
`2007/0142715 Al
`9/2007 Darley et al.
`2007/0208531 Al *
`2/2009 Kahn et al.
`2009/0043531 Al
`9/2009 Kahn et al.
`2009/0234614 Al *
`2009/0319221 Al * 12/2009 Kahn et al.
`2010/0056872 Al * 3/2010 Kahn et al.
`2010/0057398 Al * 3/2010 Darley et al.
`
` 702/182
`
` 702/142
`
` 702/141
` 702/141
` 600/300
` 702/160
`
`OTHER PUBLICATIONS
`
`Dao, Ricardo, "Inclination Sensing with Thermal Accelerometers",
`MEMSIC, May 2002, 3 pages.
`Lee, Seon-Woo, et al., "Recognition ofWalking Behaviors for Pedes-
`trian Navigation," ATR Media Integration & Communications
`Research Laboratories, Kyoto, Japan, 4 pages.
`Margaria, Rodolfo, "Biomechanics and Energetics of Muscular
`Exercise", Chapter 3, pp. 105-125, Oxford: Clarendon Press 1976.
`Mizell, David, "Using Gravity to Estimate Accelerometer Orienta-
`tion", Seventh IEEE International Symposium on Wearable Comput-
`ers, 2003, 2 pages.
`Ormoneit, D., et al., "Learning and Tracking Cyclic Human Motion,"
`Encyclopedia of Library and Information Science, vol. 53, supple-
`ment 16, 2001, 7 pages.
`PCT International Search Report and Written Opinion for Interna-
`tional Application No. PCT/US2008/072537, mailed Oct. 22, 2008,
`10 pages.
`PCT International Search Report and Written Opinion for PCT/
`US2009/48523, mailed Aug. 27, 2009, 8 pages.
`Weinberg, Harvey, "MEMS Motion Sensors Boost Handset Reliabil-
`ity"
`Jun.
`2006,
`http://www.mwd.com/Articles/Print.
`cfm?ArticleID=12740, Feb. 21, 2007, 4 pages.
`
`* cited by examiner
`
`73/290 V
`
`702/149
`702/160
`600/595
`
`HTC v. Uniloc
`
`Page 2 of 19
`
`HTC Ex. 1001
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 1 of 9
`
`US 7,881,902 B1
`
`Filter
`120
`
`Acceleration
`Measuring
`Logic
`105
`
`Timer
`170
`
`Dominant Axis Logic 127
`Dominant
`Rolling Average
`il-
`Axis Setting
`Logic 135
`Logic
`+4
`140
`Cadence Logic
`132
`
`'Jr
`
`•
`/ Cadence
`Window
`150
`
`t
`
`Threshold
`Comparator
`160
`
`Measurement
`Selection
`Logic 145
`
`• +
`Measurement
`Comparator
`155
`
`/Final Step/
`Count
`
`175
`
`i Step Count /
`Buffer
`4
`165
`
`Mode
`Logic
`190
`
`Step Counting Logic 130
`
`Electronic Device 100
`
`Figure 1
`
`HTC v. Uniloc
`
`Page 3 of 19
`
`HTC Ex. 1001
`
`

`

`wawa °S*9
`
`6 JO Z WIN
`
`Ill Z06`188`L Sf1
`
`7--207
`
`.---- 205
`
`via
`
`Time (s)
`203
`
`• %
`%
`
`1
`
`I
`
`,t
`
`•
`
`0
`
`0
`
`I
`
`3
`
`•_I
`
`1 I ... %
`
`../
`
`..
`
`•
`
`•
`•
`•
`
`•
`
`I
`
`•
`
`i.
`•
`2. '
`•
`. i,.
`♦
`.
`.
`r#:
`1
`__._.
`
`1
`
`•
`•
`•
`
`I
`.
`
`:
`.
`
`t a.
`
`1
`I
`I
`
`1
`
`200
`
`Step
`
`Step
`
`230
``-'\
`
`235
`Step
`
`-1
`
`245
`Step
`1' *
`
`250
`
`Step
`
`Step
`
`217_x+
`
`t
`
`215
`
`P 2 /
`
`r
`
`233
`
`300
`
`200
`
`100
`
`0
`
`Acceleration (g)
`
`-100
`
`•1
`i.
`.
`
`..
`... ,
`
`I
`
`i
`
`e
`, o
`I
`0
`
`.1 1
`,
`1
`t
`1
`, .
`%
`.. ..
`..
`•• .
`•
`..
`1
`_
`
`a
`
`i
`
`'•.11..4.!4.40...
`
`i
`i
`
`
`
`.
`•
`-200 :-.;,—
`
`-....
`
`.....- — - — ----
`
`-300
`
`- f--.—"
`'
`1 2 1,,,
`•
`-
`..:,.
`
`t• .1
`•
`
`i j
`a.
`
`.......
`t
`
`1
`
`
`'
`... .
`1 't.
`s
`t .
`
`, 1 1
`,
`i
`%...%..
`--!:' .;
`
`•
`.
`•
`
`9
`.4
`"
`
`' i....*.e . s. ,
`I ' ..
`
`.
`
`I
`
`.
`
`t.,...4,
`......_,...,..
`1:..
`t..
`
`.44
`4••• I
`
`.
`
`.....`, .
`
`I
`
`.•'.
`
`•
`
`I.
`
`I .
`-4----1-
`I
`I
`
`240
`
`255
`
`Figure 2
`
`HTC v. Uniloc
`
`Page 4 of 19
`
`HTC Ex. 1001
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 3 of 9
`
`US 7,881,902 B1
`
`300
`
`----
`
`A
`
`Sleep
`Conditions
`Met
`
`0 ,- --- Initial State
`Thr,
`n-- No Activity
`
`Sleep Mode 305
`
`1
`'\___ Detect Accelerations
`
`No Steps
`
`Entry Mode 315
`__..1
`N Steps in Cadence
`
`Stepping Mode 325
`
`Steps in
`Cadence
`
` No Steps Detected Within
`Cadence Window
`
`X Steps in
`Cadence
`
`e•-----...........s.....
`
`
`
`Exit Mode 335
`
`Figure 3
`
`HTC v. Uniloc
`
`Page 5 of 19
`
`HTC Ex. 1001
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 4 of 9
`
`US 7,881,902 B1
`
`_,--- --''‘
`
`400
`
`C Start )
`
`•
`Set Sleep Mode Sampling Rate
`405
`
`•
`Take Measurement(s) of Acceleration Data
`410
`
`Acceleration
`Detected?
`415
`
`Yes
`
`(-Initiate Entry
`
`Mode 420 _}
`
`Figure 4
`
`HTC v. Uniloc
`
`Page 6 of 19
`
`HTC Ex. 1001
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 5 of 9
`
`US 7,881,902 B1
`
`500
`
`C Start
`
`•
`Set Stepping
`Sampling_ Rate 504
`I
`•
`Recognize First Step
`510
`•
`Set Default Cadence
`Window 514
`
`•
`Set Buffered Step
`Count to One 520
`
`524
`
`Recognize
`Additional
`Step?
`
`Yes
`•
`Add One to Buffered
`Step Count
`560
`
`Yes
`
`530
`
`Still
`In Cadence
`Window?
`No
`•
`Reset Buffered
`Step Count to Zero
`534
`
`M Steps
`in Buffered Step
`Count?
`
`Yes
`
`564
`
`570
`
`Set New Cadence
`Window
`574
`
`Yes
`
`Cadence
`Window =
`Default?
`
`540
`
`Yes
`
`Acceleration
`Detected?
`
`No
`
`•
`Initiate Sleep Mod
`544
`
`584
`
`Steps in
`Buffered Step
`Count?
`
`Yes Add Buffered Steps to
`Actual Step Count and
`Initiate Stepping Mode
`
`580
`
`Figure 5
`
`HTC v. Uniloc
`
`Page 7 of 19
`
`HTC Ex. 1001
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 6 of 9
`
`US 7,881,902 B1
`
`Start
`
`600
`
`Thk
`
`Set New Cadence
`Window 610
`
`615
`
`Recognize Step?
`
`es
`
`Add One to Step
`Count 620
`
`Yes
`
`625
`
`Still
`In Cadence
`Window?
`
`No
`
`C
`
`Initiate Exit Mode
`630
`
`Figure 6
`
`HTC v. Uniloc
`
`Page 8 of 19
`
`HTC Ex. 1001
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 7 of 9
`
`US 7,881,902 B1
`
`_/--
`
`700
`
`( Start
`•
`Initiate (Reset)
`Step Timer
`705
`
`Add One to
`Buffered Step
`Count 710
`
`ok-cld Buffered Stepstc
`Actual Step Count and
`Return to Stepping Mode
`720
`
`4
`
`Yes
`
`Buffered Step
`Count = X?
`
`715
`
`725
`
`(Clear Buffered Ste
`Yes Yes
`Count and Initiate
`4
`rltry Mode 73(1)
`
`Step Timer
`Elapsed?
`
`735
`
`Recognize
`Additional
`Step?
`
`Yes
`
`Figure 7
`
`HTC v. Uniloc
`
`Page 9 of 19
`
`HTC Ex. 1001
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 8 of 9
`
`US 7,881,902 B1
`
`C Start )
`
`.7 -----' 800
`
`Take Measurement(s) of Acceleration Data 805
`
`Filter Measurement(s) 810
`
`Orient Device by Assigning Dominant Axis 812
`
`Measurement(s) Within Cadence
`Window? 815
`
`Yes
`
`Acceleration Along Dominant Axis
`Greater Than Lower Threshold?
`
`Yes
`
`Acceleration Greater Than
`Previous Measurement(s)?
`
`Yes
`
`Acceleration Lower Than
`Upper Threshold?
`
`No
`
`820
`
`No
`
`825
`
`Yes
`
`830
`
`CCount Step 835
`
`•
`No Step
`Counted 840
`
`Figure 8
`
`HTC v. Uniloc
`
`Page 10 of 19
`
`HTC Ex. 1001
`
`

`

`U.S. Patent
`
`Feb. 1, 2011
`
`Sheet 9 of 9
`
`US 7,881,902 B1
`
`900 -----------
`
`C Start
`
`Detect Period of Stepping Cadence 910
`
`Create Rolling Averages of Accelerations 915
`
`Assign Dominant Axis
`
`920
`
`-1-
`( End
`
`Figure 9
`
`HTC v. Uniloc
`
`Page 11 of 19
`
`HTC Ex. 1001
`
`

`

`1
`HUMAN ACTIVITY MONITORING DEVICE
`
`US 7,881,902 B1
`
`The present patent application is a continuation of U.S.
`application Ser. No. 11/644,455, filed on Dec. 22, 2006, now
`U.S. Pat. No. 7,653,508.
`
`5
`
`FIELD OF THE INVENTION
`
`2
`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
`FIG. 9 illustrates a flow diagram for a method of orienting
`an inertial sensor, in accordance with one embodiment of the
`present 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 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;
`
`DETAILED DESCRIPTION
`
`10
`
`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
`15 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
`20 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
`25 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
`30 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-
`35 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
`40 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
`45 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
`50 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
`55 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
`6o 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
`
`65
`
`HTC v. Uniloc
`
`Page 12 of 19
`
`HTC Ex. 1001
`
`

`

`US 7,881,902 B1
`
`3
`logic 132, a rolling average logic 135, and a dominant axis
`setting logic 140. In an alternative embodiment, more or
`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 the inertial sensor, a
`second axis 205 of the inertial sensor, and a third axis 207 of
`the inertial sensor. 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 deter-
`mined. FIG. 2 shows an exemplary period of a motion cycle
`215 for the third axis 207, the period being approximately 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 correspond-
`ing 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
`
`5
`
`4
`counted that is looked at to detect a new step. A cadence
`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
`io 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-
`15 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
`20 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
`25 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
`30 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-
`35 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-
`40 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
`45 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
`so 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
`55 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 within a cadence window, a step
`is detected, whereas when motion criteria are met outside of
`60 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,
`65 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-
`
`HTC v. Uniloc
`
`Page 13 of 19
`
`HTC Ex. 1001
`
`

`

`US 7,881,902 B1
`
`5
`mum of around 1000 ms. Once enough steps have been
`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
`
`6
`registry can than be updated with a new rolling average value.
`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
`5 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
`10 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-
`15 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
`20 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
`25 dominant axis. 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
`30 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
`35 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-
`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 o

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket