(57)【特許請求の範囲】
【請求項１】
動き状態を監視する方法において、
慣性センサを使用して電子装置により加速度を監視するステップと、
前記加速度に基づき現在動き状態を前記電子装置により識別するステップと、
動き状態識別サービスと契約するアプリケーションを契約リストに基づいて決定するステップであって、前記契約は、動き状態の識別に用いられ、前記アプリケーションに送信すべき動きデータを示し、前記契約は、前記アプリケーションに動きデータを送信するタイミングを少なくとも表す、前記アプリケーションに関連する通知基準を含んでいる、ステップと、
前記現在動き状態が前記アプリケーションに関連付けされている前記通知基準を満たすか否かを決定するステップと、
前記現在動き状態が前記アプリケーションに関連する前記通知基準を満たす場合、前記アプリケーションに前記現在動き状態を通知するステップと、
を備えた方法。
【請求項２】
前記現在動き状態が以前の動き状態と異なるかどうか決定するステップと、
前記現在動き状態が以前の動き状態と異なる場合には前記アプリケーションの１つ以上の設定を変更するステップと、
を更に備えた請求項１に記載の方法。
【請求項３】
前記現在動き状態は、複数の潜在的な動き状態の１つであり、前記方法は、更に、前記現在動き状態が前記電子装置の現在ユーザの実際の動き状態に対応する確率を示す前記現在動き状態の確信度評価を決定するステップを備えた、請求項１に記載の方法。
【請求項４】
複数の潜在的な現在動き状態を識別するステップと、
その識別された潜在的な現在動き状態各々の確信度評価を識別するステップと、
を更に備えた請求項１に記載の方法。
【請求項５】
前記加速度の測定値から付加的な動き情報を決定するステップであって、その付加的な動き情報は、ユーザの現在ケイデンス、加速度についてのユーザの現在ローリング平均、現在優性軸、及びカウントされた周期的な人間の動きカウントのうちの少なくとも１つを含むものであるステップと、
前記アプリケーションが受け取るように構成された特定の付加的な動き情報を識別するステップと、
その特定の付加的な動き情報を前記アプリケーションへ送るステップと、
を更に備えた請求項１に記載の方法。
【請求項６】
前記アプリケーションに関連した前記通知基準を識別するステップと、
その識別された通知基準が満足されたときに前記現在動き状態を前記アプリケーションに通知するステップと、
を更に備えた請求項１に記載の方法。
【請求項７】
プロセッサにより実行されたときに、そのプロセッサが、
慣性センサを使用して電子装置により加速度を監視すること、
前記加速度に基づき現在動き状態を前記電子装置により識別すること、
動き状態識別サービスと契約する１以上のアプリケーションを契約リストに基づいて決定し、前記契約は、動き状態の識別に用いられ、前記１以上のアプリケーションに送信すべき動きデータと示し、前記契約は、前記アプリケーションに動きデータを送信するタイミングを少なくとも表す、前記アプリケーションに関連する通知基準を含んでいること、
前記１以上のアプリケーションのそれぞれについて、
前記現在動き状態が前記アプリケーションに関連付けされている通知基準を満たすか否かを決定すること、及び
前記現在動き状態が前記通知基準を満たす場合、前記アプリケーションに前記現在動き状態を通知すること、
を含む方法を遂行するようにさせるインストラクションを含むコンピュータ読み取り可能な記憶媒体。
【請求項８】
前記方法は、更に、
前記現在動き状態が以前の動き状態と異なるかどうか決定すること、及び
前記現在動き状態が以前の動き状態と異なる場合には前記アプリケーションの１つ以上の設定を変更すること、
を更に含む請求項７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項９】
前記現在動き状態は、複数の潜在的な動き状態の１つであり、前記方法は、更に、前記現在動き状態が前記電子装置の現在ユーザの実際の動き状態に対応する確率を示す前記現在動き状態の確信度評価を決定することを含む、請求項７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１０】
前記方法は、更に、
複数の潜在的な現在動き状態を識別すること、及び
その識別された潜在的な現在動き状態各々の確信度評価を識別すること、
を含む請求項７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１１】
前記方法は、更に、
前記加速度の測定値から付加的な動き情報を決定することを含み、該付加的な動き情報は、ユーザの現在ケイデンス、加速度についてのユーザの現在ローリング平均、現在優性軸、及びカウントされた周期的な人間の動きカウントのうちの少なくとも１つを含むものであり、更に、
前記アプリケーションが受け取るように構成された特定の付加的な動き情報を識別すること、及び
その特定の付加的な動き情報を前記アプリケーションへ送ること、
を含む請求項７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１２】
前記方法は、更に、
前記アプリケーションに関連した前記通知基準を識別すること、及び
その識別された通知基準が満足されたときに前記現在動き状態を前記アプリケーションに通知すること、
を含む請求項７に記載のコンピュータ読み取り可能な記憶媒体。
【請求項１３】
電子装置で実行される複数のアプリケーションと、
電子装置が経験する加速度を監視するための慣性センサと、
動きプロセッサとを、
備え、前記動きプロセッサは、
前記加速度に基づき現在動き状態を識別する動き状態識別システムと、
前記アプリケーションの１以上が動き状態識別サービスと契約することを契約リストに基づいて決定する契約ロジックであって、
前記契約は、動き状態の識別に用いられ、前記アプリケーションに送信すべき動きデータを示し、前記契約は、前記アプリケーションに動きデータを送信するタイミングを少なくとも表す通知基準であって、前記アプリケーションに関連する通知基準を含んでいる、契約ロジックとを有し、
前記動き状態が前記アプリケーションに関連付けされている前記通知基準を満たす場合、前記動きプロセッサは、前記１以上のアプリケーションから前記アプリケーションに現在動き状態を通知する、電子装置。
【請求項１４】
前記動き状態識別システムは、現在動き状態が以前の動き状態と異なるかどうか決定し、そして現在動き状態が以前の動き状態と異なる場合には前記電子装置が前記アプリケーションの１つ以上の設定を変更するようにさせる、請求項１３に記載の電子装置。
【請求項１５】
前記現在動き状態は、複数の潜在的な動き状態の１つであり、前記電子装置では、更に、前記現在動き状態が前記電子装置の現在ユーザの実際の動き状態に対応する確率を示す現在動き状態の確信度評価を前記動き状態識別システムが決定するようにした、請求項１３に記載の電子装置。
【請求項１６】
前記動き状態識別システムは、複数の潜在的な現在動き状態を識別し、その識別された潜在的な現在動き状態各々の確信度評価を識別する、請求項１３に記載の電子装置。
【請求項１７】
前記動き状態識別システムは、前記加速度の測定値から付加的な動き情報を決定し、該付加的な動き情報は、ユーザの現在ケイデンス、加速度についてのユーザの現在ローリング平均、現在優性軸、及びカウントされた周期的な人間の動きカウントのうちの少なくとも１つを含む、請求項１３に記載の電子装置。
【請求項１８】
前記動き状態識別システムは、前記アプリケーションが受け取るよう構成された特定の付加的な動き情報を識別し、そしてその特定の付加的な動き情報を前記アプリケーションへ送る、請求項１７に記載の電子装置。
【請求項１９】
前記動き状態識別システムは、前記アプリケーションに関連した前記通知基準を識別し、そしてその識別された通知基準が満足されたときに前記アプリケーションに現在動き状態を通知する、請求項１３に記載の電子装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人間の活動を監視する方法に係り、より詳細には、ユーザの動き状態を識別し、ユーザの動き状態に基づいてプログラム設定を調整することに係る。
【０００２】
関連出願：この特許出願は、参考としてここに援用する２００８年６月２４日に出願された米国プロビジョナル特許出願第６１／０７５，３３０号の３５Ｕ．Ｓ．Ｃ．§１１９（ｅ）のもとでの利益を主張する。
【背景技術】
【０００３】
マイクロエレクトロメカニカルシステム（ＭＥＭＳ）技術の開発で、製造者は、ポータブル電子装置に適合するに充分な小さなサイズ、低コスト、及び低消費電力の慣性センサ（例えば、加速度計）を製造できるようになった。このような慣性センサは、セルラー電話、ポータブル音楽プレーヤ、歩数計、ゲームコントローラ及びポータブルコンピュータのような限定された数の市販の電子装置に見ることができる。
【０００４】
歩数カウント装置（例えば、歩数計）は、個人が得た歩数を追跡することにより個人の毎日の活動を監視するのに使用される。歩数は、ユーザの動きで生じた加速度を感知することによりカウントされる。歩数カウント装置は、歩数以外の動きを検出又はカウントすることができない。又、歩数カウント装置は、異なるユーザ活動間を区別することもできない。
【０００５】
ある歩数カウント装置は、歩数以外の動きを検出するために外部センサ（例えば、自転車のケイデンスセンサ）に取り付けて、そこから入力を受けることができる。しかしながら、このような歩数カウント装置は、このような監視能力について外部センサに依存している。これらの装置は、外部センサからの入力なしに歩数以外の動きを検出又はカウントすることができない。
【０００６】
本発明は、一例として説明するが、これに限定されず、添付図面を参照した以下の詳細な説明から、より完全に理解されよう。
【図面の簡単な説明】
【０００７】
【図１】本発明の一実施形態による電子装置を示すブロック図である。
【図２】本発明の一実施形態による動き識別システムを示すブロック図である。
【図３Ａ】第１のユーザ活動に関与するユーザを示す第１の規範的動きサイクルグラフを示す。
【図３Ｂ】第２のユーザ活動に関与するユーザを示す第２の規範的動きサイクルグラフ３５０を示す。
【図４Ａ】本発明の一実施形態により、慣性センサでユーザ動き状態を監視する方法のフローチャートである。
【図４Ｂ】本発明の一実施形態により、動き状態を記録する方法のフローチャートである。
【図５】本発明の一実施形態により、ユーザの動き状態を監視するシステムの振舞いの状態図である。
【図６】本発明の一実施形態により、電子装置をスリープモードで動作する方法のフローチャートである。
【図７Ａ】本発明の一実施形態により、電子装置を導入モードで動作する方法のフローチャートである。
【図７Ｂ】本発明の別の実施形態により、電子装置を導入モードで動作する方法のフローチャートである。
【図８】本発明の一実施形態により、電子装置をアクティブモードで動作する方法のフローチャートである。
【図９】本発明の一実施形態により、電子装置を退出モードで動作する方法のフローチャートである。
【図１０】本発明の一実施形態により、ユーザの動き状態を認識する方法のフローチャートである。
【図１１】本発明の一実施形態により、慣性センサを使用してユーザの動き状態を監視する方法のフローチャートである。
【図１２】ユーザの動き状態に関連した情報を使用してプログラム設定を返送する方法のフローチャートである。
【図１３】本発明の一実施形態によりインストラクションのセットを実行する規範的な形態のコンピュータシステム内のマシンを示すブロック図である。
【発明を実施するための形態】
【０００８】
本発明の実施形態は、慣性センサを使用してユーザの動き状態を監視するように設計される。一実施形態では、加速度が監視され、そしてその加速度に基づき複数の認識可能なユーザ動き状態から現在のユーザ動き状態が識別される。これらの動き状態は、例えば、歩行、ランニング、インラインスケート、自転車乗り、エリプティカルマシンでの運動、ローイングマシンでの運動及びクロスカントリースキーを含む周期的な人間の動き、並びに車、列車、エスカレータ、等に乗るような他の形式の動きに基づく活動を含む。一実施形態では、現在ユーザ活動に適した周期的な人間の動きがカウントされる。一実施形態では、システムは、行われた各活動に関するユーザデータを与える。このようにして、ユーザは、１日を通しての自分の全体的な活動レベル、及び個々の活動を監視することができる。
【０００９】
図１は、本発明の一実施形態による特定のマシン又は電子装置１００を示すブロック図である。一実施形態において、電子装置１００は、１つ以上の慣性センサを含むポータブル電子装置である。慣性センサは、単一の軸又は複数の軸に沿った加速度を測定する。又、慣性センサは、直線加速度及び回転（角）加速度を測定する。一実施形態において、慣性センサ２軸又は３軸加速度計である。一実施形態において、慣性センサは、ジャイロスコープ又は他のセンサである。
【００１０】
電子装置１００は、ユーザの動き状態を識別し、そしてその識別されたユーザの活動に適した周期的な人間の動きをカウントするのに使用することができる。一実施形態において、電子装置１００は、ユーザの動き状態を識別しそして周期的な人間の動きをカウントするためにサーバー（図示せず）に関連して動作する。一実施形態において、周期的な人間の動きは、ユーザに対する装置１００の配置及び／又は向きに関わらず正確にカウントすることができる。例えば、電子装置１００は、背負い袋、ポケット、ハンドバック、手又はどこかに携帯され、正確な動き状態を識別することができる。更に、周期的な人間の動きを正確にカウントすることができる。一実施形態において、装置１００は、ユーザの動き状態の検出及び周期的な動きのカウントを容易にするために、特定形式の動きに対し人間の複数の場所のうちの特定の１つに最適に配置される。例えば、電子装置１００は、自転車に乗る間にペダルの動きをカウントする上で最大の精度を保証するためにポケットに入れるのが最適である。しかしながら、電子装置１００は、どこに配置されても、ユーザの動き状態を正しく検出し、周期的な動きをカウントすることができる。電子装置１００が使用中に固定の向きを維持するか又は向きを変えるかに関わらず、周期的な人間の動きを正確にカウントすることができる。
【００１１】
一実施形態において、電子装置１００は、加速度測定ロジック１０５と、動き状態識別エンジン１１０と、動きプロセッサ１２０と、動きログ１２５とを備えている。加速度測定ロジック１０５は、慣性センサ又は他の加速度感知器具である。又、加速度測定ロジック１０５は、加速度データの測定を連続的に行うことができる。加速度データの測定は、固定又は可変のサンプリングレートで行われる。一実施形態において、加速度測定ロジック１０５は、サンプリングレートで測定を行うためにタイマー（図示せず）からタイミング信号を受け取る。一実施形態において、加速度測定ロジック１０５は、活動識別エンジン１１０及び動きプロセッサ１２０に結合され、加速度測定データは、処理のために活動識別エンジン１１０及び動きプロセッサ１２０へ送られる。
【００１２】
一実施形態において、測定データは、ユーザの動き状態を識別するために動き状態識別エンジン１１０により処理される。動き状態識別エンジン１１０は、動きデータを使用して、複数の識別可能な動き状態からユーザの動き状態を識別する。動き状態識別エンジン１１０は、動き状態の形式を各々表す異なる事象を監視することにより動き状態を識別する。一実施形態において、特定の動き状態を表す充分な事象が、禁忌なしに検出されるときには、動き状態識別エンジン１１０は、ユーザが識別された動き状態にあることを動きプロセッサ１２０に通知する。例えば、停止又は他の動き形式を介在せずに多数のランニング歩数が検出された場合には、動き状態識別エンジン１１０は、ユーザがランニングの動き状態にあると識別する。
【００１３】
動きプロセッサ１２０は、加速度測定データを処理して、周期的な人間の動きを検出する。一実施形態において、加速度測定データに一連の動き基準が適用される。動き基準の各々が満足される場合には、周期的な人間の動きが識別され、カウントされる。一実施形態において、ユーザ活動ごとに、動き基準の異なるセットが適用される。一実施形態において、この基準は、肯定的基準（ある仕方で動きを分類するために満足しなければならないもの）及び否定的基準（ある仕方で動きを分類するために満足できないもの）を含む。動き状態識別エンジン１１０がユーザ活動を識別すると、動きプロセッサ１２０は、その識別された活動に特有の動き基準のセットを適用して、その活動に適した周期的な人間の動きを検出する。適当な周期的な人間の動きが検出されると、それが動きログ１２５に記録される。一実施形態において、２００８年２月８日に出願された“Human Activity Monitoring Device With Activity Identification”と題する米国特許出願第１２／０６９，２６７号に述べられた方法を使用して、活動を識別する。この特許出願は、参考としてここに援用する。
【００１４】
動き状態識別エンジン１１０により動き状態が識別されなかった場合には、一実施形態では、考えられる周期的な人間の動きが、動きプロセッサ１２０により、メモリ（図示せず）にバッファされる。動き状態識別エンジン１１０がユーザの動き状態を識別すると、それらのバッファされた周期的な人間の動きは、識別されたユーザの動き状態に適した周期的な人間の動きとして動きログ１２５に記憶される。例えば、ユーザがジョギングをスタートした場合には、システムがジョギングを識別することを保証するために最初の幾つかの歩数カウントがバッファされる。ユーザの動き状態−ジョギング−が肯定的に識別されると、バッファされた歩数カウントが歩数カウンタに追加される。これは、ユーザの動き状態の肯定的な識別に時間がかかったとしても、その識別期間中に行われた活動も追跡されることを保証する。
【００１５】
動きログ１２５は、周期的な人間の動きの形式ごとに個別のデータセットを維持する。例えば、動きログ１２５は、１日に歩いた歩数の第１レコードと、ユーザが１日にインラインスケートしたストライド数の第２レコードとを有する。又、動きログ１２５は、異なる周期的な人間の動きに対する付加的な統計値、例えば、平均歩行速度、特定の活動を行った１日の時間長さ及び時刻、等も含む。一実施形態において、ユーザは、行った種々の活動に基づいて全活動レベル評価も与えられる。
【００１６】
一実施形態において、電子装置１００は、アプリケーション、システムマネージャー、等を含む１つ以上のプログラム又はモジュール１３０を含む。アプリケーションは、加速度測定データを使用するアプリケーション（例えば、歩数計アプリケーション、ジェスチャー認識アプリケーション、動き感知ゲーム、等）、及び／又は加速度測定データを直接使用しないアプリケーション（例えば、電話アプリケーション、音楽プレーヤアプリケーション、ビデオアプリケーション、等）を含む。システムマネージャーは、電力マネージャー、スクリーンコントローラ、ボリュームコントローラ、及び他のシステムを含む。プログラム１３０は、動き状態識別エンジン１１０から現在のユーザ動き状態の識別を受け取る。一実施形態では、プログラム１３０は、プログラムが最初にアクチベートされるときに現在のユーザの動き状態の識別を受け取る。又、一実施形態では、プログラム１３０は、ユーザの動き状態の更新を周期的に（例えば、毎秒１回、１０秒ごとに１回、毎分１回、等）又は連続的に受け取る。又、一実施形態では、プログラム１３０は、動き状態が変化したときにユーザの動き状態の更新を受け取る。次いで、プログラム１３０は、動き状態に基づいて１つ以上の設定を変更する。
【００１７】
図２は、本発明の一実施形態による動き状態識別システム２００のブロック図である。一実施形態における動き状態識別システム２００は、電子装置を含む。一実施形態において、電子装置は、１つ以上の慣性センサを含むポータブル電子装置である。別の実施形態では、動き状態識別システム２００は、サーバーに結合された電子装置を含む。ポータブル装置とサーバーとの間の機能の配分は、変化してもよい。一実施形態では、データ収集がポータブル装置により取り扱われるが、サーバー及びポータブル装置がデータの処理を分担する。一実施形態において、一時的なデータ記憶は、ポータブル装置により取り扱われるが、経歴データは、サーバーに記憶される。一実施形態において、動き状態識別システム２００は、フィルタ２２０と、ケイデンスロジック２３２と、ローリング平均ロジック２３５と、優性軸ロジック２２７と、動き状態識別エンジン２８０と、動きプロセッサ２３０と、動きログ２７５とを備えている。
【００１８】
加速度測定ロジック２０５は、慣性センサ又は他の加速度感知器具である。加速度測定ロジック２０５は、固定又は可変のサンプリングレートで加速度データの測定を連続的に行う。一実施形態において、加速度測定ロジック２０５は、サンプリングレートで測定を行うためにタイマー（図示せず）からタイミング信号を受け取る。又、一実施形態において、加速度測定ロジック２０５は、３次元加速度計である。一実施形態において、加速度測定ロジック２０５のサンプリングレートは、検出された活動のレベルに基づく。一実施形態において、ゆっくりした動きの場合、サンプリングレートが減少される。
【００１９】
一実施形態において、加速度測定ロジック２０５は、フィルタ２２０に結合される。測定データは、ノイズを除去するためにフィルタ２２０により処理される。フィルタ２２０は、ハードウェア、ソフトウェア、又はハードウェア及びソフトウェアの両方で実施される。一実施形態において、フィルタ２２０は、複数のフィルタを含み、測定データにどのフィルタを適用するかの決定は、検出されたユーザ活動の形式に基づいて行われる。例えば、ユーザが歩行するときに歩数カウントの妨げとなる高周波数ノイズを除去するためにローパスフィルタが使用される。対照的に、迅速な動きを監視すべきときには、ハイパスフィルタが使用される。フィルタは、一実施形態において、ハイパスフィルタ、ローパスフィルタ、バンドパスフィルタ、及びバンドギャップフィルタの１つ以上を含む。一実施形態において、フィルタは、調整可能な周波数範囲を有する。一実施形態において、１つ以上のフィルタが異なるデータセットに適用される。例えば、ユーザがジョギングしている間に慣性データからジッターデータを除去するためにローパスフィルタが使用される。同時に、一実施形態において、ユーザに再生されているオーディオストリームにローパスフィルタが適用される。
【００２０】
追跡するのに有用な動きの多数の形式が、動きの周期的セットを有する。特定の周期的な人間の動きは、異なる形式のユーザ活動の特性である。例えば、歩くために、個人は、第１の脚を持ち上げ、それを前方に移動し、それを下し、次いで、第２の脚で同じ一連の動きを繰り返さねばならない。対照的に、インラインスケートをしている個人は、各脚に対してプッシュ、滑走及びリフトオフの繰り返しシーケンスを行う。特定の個人の場合、歩行運動のシーケンスは、通常、ほぼ同じ時間量で行われ、又、スケート運動のシーケンスも、通常、ほぼ同じ時間量で行われる。動きの繰り返しセットは、単位と考えることができ、動きサイクルを定義する。１つの動きサイクルを完了するのに要する時間量は、動きサイクルの周期を定義し、所与の時間単位で生じる動きサイクルの数は、動きサイクルの頻度又はケイデンスを定義する。
【００２１】
一実施形態において、フィルタされた測定データは、ケイデンスロジック２３２へ通される。ケイデンスロジック２３２は、動きサイクルの周期及び／又はケイデンスを決定する。動きサイクルの周期及び／又はケイデンスは、ユーザ活動（例えば、インラインスケート、自転車乗り、ランニング、歩行、等）に基づく。一実施形態において、動きサイクルの周期は、各周期的な人間の動きの後に検証され又は更新される。一実施形態における現在動きサイクル周期は、同じ活動形式の最近の動きセットに基づく動きサイクル周期のローリング平均である。このローリング平均データは、以下で詳細に述べるように、ローリング平均ロジック２３５から受け取られる。
【００２２】
一実施形態において、ケイデンスロジック２３２は、１つ以上のケイデンスウインドウを維持する。ケイデンスウインドウとは、最後の周期的な人間の動きがカウントされて以来、新たな周期的な人間の動きを検出するために見られた時間のウインドウである。動きの基準（例えば、スレッシュホールド条件）がケイデンスウインドウ内で満足されたときには、周期的な人間の動きが検出されるが、動きの基準がケイデンスウインドウ内で満足されないときには、周期的な人間の動きが検出されない。ケイデンスウインドウは、周期的な人間の動き（例えば、一歩、インラインスケートのストライド、自転車のペダル、ローイングストローク、等）の正確な測定を容易にするために使用される。
【００２３】
ケイデンスウインドウは、実際の動きサイクルの周期及び／又はケイデンス（例えば、歩行周期）、設定限界、及び／又は他のファクタに基づいてセットされる。一実施形態において、ケイデンスウインドウは、現在の周期的な人間の動きの周期を使用することにより決定される。一実施形態において、ケイデンスウインドウは、現在周期の倍数である（例えば、ユーザが、毎分１８０歩、例えば、毎秒３歩でジョギングする場合には、ケイデンスウインドウは、０．６６秒、例えば、一歩と一歩との間の予想周期の２倍である）。一実施形態において、ケイデンスウインドウは、特定の活動中ユーザのケイデンスが変化するときに常時更新される動的なケイデンスウインドウである。例えば、動的なケイデンスウインドウを使用して、各周期的な人間の動きの後にケイデンスウインドウ長さを変更又は調整することができる。以前の周期的な人間の動きが検出されない場合、又は動的なケイデンスウインドウを決定するための設定数未満の周期的な人間の動きしか検出されない場合には、デフォールトのケイデンスウインドウが使用される。動的な動きサイクルケイデンス又は周期を決定するに充分な周期的な人間の動きが検出されると、ケイデンスウインドウは、その決定された動きサイクル周期±エラー係数にセットされる。一実施形態において、動的なケイデンスウインドウをセットするのに、約２ないし約１０カウントの周期的な人間の動きで充分である。
【００２４】
一実施形態において、識別可能なユーザ活動ごとに個別のデフォールトケイデンスウインドウが維持される。一実施形態において、識別可能なユーザ活動ごとに各ユーザに対して個別のデフォールトケイデンスウインドウが維持される。識別可能な各ユーザ活動は、例えば、独特のデフォールトケイデンスウインドウを有する。特定の現在ユーザ活動がまだ識別されないときには、実際のユーザの動き状態を正しく識別するために、これら個別のケイデンスウインドウが、考えられるユーザ活動ごとに同時に維持される。デフォールトケイデンスウインドウの外側で生じる周期的な人間の動きは、ユーザの動き状態が変化したことを指示する。
【００２５】
動きサイクルの周期が検出されると、ケイデンスロジック２３２は、その動きサイクルの周期に基づいて、ローリング平均ロジック２３５が使用する１つ以上のサンプル周期をセットする。サンプル周期は、得られた測定値を使用して計算を行うところの特定の時間フレームを含むことができる。一実施形態において、サンプル周期は、ほぼ動きサイクル周期の長さである。一実施形態において、サンプル周期は、動きサイクル周期の倍数となるようにセットされる。
【００２６】
一実施形態において、ローリング平均ロジック２３５は、フィルタ２２０からフィルタされた測定データを、そしてケイデンスロジック２３２から１つ以上のサンプル周期を受け取る。ローリング平均ロジック２３５は、ケイデンスロジック２３２によりセットされたサンプル周期（１つ又は複数）にわたり慣性センサ（１つ又は複数）により測定される加速度の１つ以上のローリング平均を生成する。加速度のローリング平均は、電子装置の向きを決定し、加速度測定値と比較するためのスレッシュホールドを決定し、及び／又は他の目的のために使用される。一実施形態において、ローリング平均ロジック２３５は、電子装置２００の向きを決定するための加速度の１つ以上のローリング平均を生成し、少なくとも１つのローリング平均は、その周期が、少なくとも動きサイクルの周期である。一実施形態において、ローリング平均ロジック２３５は、加速度測定値と比較する下限スレッシュホールドを決定するために加速度のローリング平均を生成し、そのローリング平均は、サンプル周期が歩行周期の少なくとも２倍である。
【００２７】
ローリング平均ロジック２３５は、加速度以外のデータの１つ以上のローリング平均を生成する。一実施形態において、ローリング平均ロジック２３５は、動きサイクル周期のローリング平均を生成し、このローリング平均は、周期的な人間の動きのローリング平均である。一実施形態において、動きサイクル周期のローリング平均は、過去４つのカウントされた周期的な人間の動きにわたって計算される。動きサイクル周期のローリング平均は、ケイデンスウインドウ及び現在動きサイクルケイデンスを動的に決定するためにケイデンスロジック２３２により使用される。
【００２８】
一実施形態において、ローリング平均値と、現在ローリング平均値を計算するのに使用したサンプル数とを追跡するメモリレジスタにローリング平均が維持される。新たな測定値が得られると、それをローリング平均値に合体することができると共に、新たなローリング平均値でレジスタを更新することができる。或いは又、ローリング平均を計算するのに使用した測定値をバッファすることによりローリング平均が維持されてもよい。一実施形態では、ＦＩＦＯバッファが使用され、このバッファがいっぱいになると、最も古い測定データが破棄され、新たな測定データに置き換えられる。バッファ内の測定値を各測定の後に平均化して、新たなローリング平均を決定することができる。
【００２９】
一実施形態において、優性軸ロジック２２７は、少なくともフィルタされた加速度データをフィルタ２２０から受け取ると共に、加速度の平均値をローリング平均ロジック２３５から受け取る。一実施形態において、優性軸ロジック２２７は、ローリング平均ロジック２３５から加速度のローリング平均のみを受け取る。優性軸ロジック２２７は、受け取った情報に基づいて優性軸を指定する。
【００３０】
一実施形態において、優性軸ロジック２２７は、電子装置及び／又は動き状態識別システム２００内の慣性センサの向きを決定する。向きは、ローリング平均ロジック２３５により生成された加速度のローリング平均に基づいて決定される。一実施形態では、向きが決定されると、その向きに基づいて優性軸が指定される。電子装置の向きの決定は、重力の影響を識別することを含む。絶対的ローリング平均が最大の軸は、時間と共に変化する重力により最も影響される軸である（例えば、電子装置が回転されるとき）。それ故、電子装置の向き及び／又は電子装置に取り付けられるか又は埋め込まれた慣性センサ（１つ又は複数）の向きが変化するときに新たな優性軸が指定される。
【００３１】
一実施形態において、サンプル周期にわたって絶対的ローリング平均が最大の軸が優性軸として指定される。一実施形態において、優性軸は、現在の向きにおける慣性センサの実際の軸の１つに対応せず、重力に対してほぼ整列すると定義された軸に対応する。一実施形態において、優性軸は、バーチャル座標システムのコンポーネントであるバーチャル軸に対応する。一実施形態において、優性軸設定ロジック２４０は、真の重力指定を遂行することにより、例えば、重力の影響に基づいて実際の軸において三角法計算を行うことにより、優性軸を指定する。一実施形態において、優性軸設定ロジック２４０は、重力の影響を、ルックアップテーブル、連想アレイ、ハッシュテーブル、隣接マトリクス、等のデータ構造と比較することにより、優性軸を指定する。
【００３２】
一実施形態において、優性軸は、重力に対する装置の向きではなく基準に基づいて決定される。例えば、優性軸は、動きサイクル内のピーク・ピーク変化が最も大きい軸に基づいて決定されてもよい。一実施形態において、異なるユーザ活動に各々関連した複数の優性軸が指定される。優性軸は、関連するユーザ活動に特有の基準に基づいて指定されてもよい。例えば、第１の優性軸は、重力により最も影響される軸に基づいて歩行というユーザ活動に指定され、そして第２の優性軸は、ピーク・ピーク変化が最も大きい軸に基づいて自転車乗りというユーザ活動に指定される。
【００３３】
動き状態識別エンジン２８０は、フィルタ２２０からフィルタされた加速度測定データを入力として受け取る。又、動き状態識別エンジン２８０は、ケイデンスロジック２３２から現在動きサイクルのケイデンス及び／又は周期並びに現在ケイデンスウインドウを、ローリング平均ロジック２３５から（例えば、加速度の）ローリング平均を、そして優性軸ロジック２２７から１つ以上の優性軸を受け取る。
【００３４】
一実施形態において、動き状態識別エンジン２８０は、複数の動き状態識別ロジック２８５を含む。一実施形態において、動き状態識別ロジック２８５の各々は、現在加速度データが特定の活動、動き又は他の形式の動き状態を定義するかどうか決定するように設定される。或いは又、動き状態識別ロジック２８５は、２つ以上の考えられる動き状態を識別できてもよい。一実施形態において、動き状態識別エンジン２８０は、全ての識別可能なユーザの動き状態を識別するのに使用される単一の動き状態識別ロジック２８５しか含まない。或いは又、活動ごとに個別の動き状態識別ロジック２８５があってもよく、活動形式ごとに個別の動き状態識別ロジック２８５あってもよく、又は他の基準に基づいて個別の動き状態識別ロジック２８５があってもよい。一実施形態において、周期的な人間の動きに関連した動き状態（例えば、歩行、ランニング、自転車乗り、等）、及びそのような動きに関連しない動き状態（例えば、車、エスカレータ、エレベータに乗る、等）に対して個別の動き状態識別ロジック２８５が存在する。
【００３５】
動き状態識別ロジック２８５は、その形式の動き状態を表す加速度データを監視することにより特定のユーザ動き状態を識別する。加速度データが分析され、動き状態識別ロジック２８５は、受け取った加速度データ、動きサイクルケイデンス、動きサイクル周期、ケイデンスウインドウ、ローリング平均、及び優性軸のうちの１つ以上に基づいてその決定を行うことができる。一実施形態において、特定のユーザ動き状態を表す充分な事象が動き状態識別ロジック２８５により検出されると、動き状態識別エンジン２８０は、ユーザが識別された動き状態であることを動きプロセッサ２３０に通知する。一実施形態において、動き状態識別ロジック２８５が特定形式の動きを表す事象を検出するたびに、その事象が動きプロセッサ２３０へ転送される。動きプロセッサ２３０は、次いで、ユーザがその受け取った事象（１つ又は複数）に関連した活動を遂行するかどうか決定する。又、一実施形態において、動き状態識別ロジック２８５は、ユーザが特定のユーザ活動を遂行しないか又は特定の動き状態にないことを指示する否定的事象も監視する。これらの否定的事象も、現在のユーザ動き状態を識別するために、動き状態識別エンジン２８０及び／又は動きプロセッサ２３０により使用される。
【００３６】
一実施形態において、動き状態識別エンジン２８０は、ユーザが特定の動き状態である確率を決定する。例えば、動き状態識別エンジン２８０は、ユーザがランニングしている確信度が９５％であると決定する。同時に、動き状態識別エンジン２８０は、ユーザが自転車乗りしている確信度が２５％であることも決定する。一実施形態において、これは、２０個の指示子のうちの１９個が、ユーザの動き状態がランニングであることを示唆し、一方、４個の指示子のうちの１個が、ユーザの動きが自転車乗りであることを示唆する。活動をランニング以外の何かであると識別した１つのカウンタ指示子又は１つの他の動き状態識別エンジン２８０がある。ユーザが特定の動き状態であるという確信度／確率は、そのユーザ動き状態に対して満足される肯定的及び／又は否定的事象の数に基づいて決定される。又、確信度／確率は、加速度測定値が肯定的又は否定的事象のスレッシュホールドにどれほど接近しているかに基づき決定されてもよい。例えば、歩行の肯定的事象が３ｍ／ｓ2の上限加速度スレッシュホールドを含み、そして肯定的事象が２．９９ｍ／ｓ2の読みで満足された場合には、確信度評価は、その肯定的事象が２．６ｍ／ｓ2の読みで満足された場合より低い。
【００３７】
図３Ａ及び３Ｂは、本発明の実施形態により、自転車乗りに関連した肯定的及び否定的動き事象を監視することにより自転車乗りを識別する動き状態識別ロジックにより使用される動きデータを例示している。図３Ａは、本発明の一実施形態により、自転車乗りを識別する動き状態識別ロジックにより分析される第１のユーザ活動に関与するユーザを示す第１の規範的動きサイクルグラフ３００である。この規範的動きサイクルグラフ３００は、単一の３軸慣性センサで得られた加速度データを示す。所与の時間周期における加速度は、第１の軸３０３、第２の軸３０５及び第３の軸３０７について表される。
【００３８】
自転車乗り識別ロジックと称される自転車乗り識別に関連した動き状態識別エンジンは、ある動き基準を満足したときに生じる肯定的事象及び否定的事象を監視する。一実施形態において、自転車乗り識別ロジックは、ピーク・ピーク差が最大の軸を測定することにより定義される優性軸を使用する。これは、自転車乗りでは、ユーザの脚がペダルの軸の周りで円運動し、下向きの動きが最大のピーク・ピーク差を表すためである。図中、第１の軸３０３は、最大のピーク・ピーク差を有するので、優性軸である。一実施形態において、自転車乗り識別ロジックは、優性軸に沿った加速度データしか調査しない。
【００３９】
一実施形態において、自転車乗り識別ロジックは、優性軸に対する加速度のローリング平均３１０を使用して、第１のスレッシュホールド３１５及び第２のスレッシュホールド３２０をセットする。第１のスレッシュホールド３１５及び第２のスレッシュホールド３２０は、加速度のローリング平均３１０からのオフセットに基づいてセットされる。或いは又、第１のスレッシュホールド３１５及び第２のスレッシュホールド３２０は、ピーク・ピーク差のパーセンテージ、ピーク・ピーク差の平均のパーセンテージ、ピーク・ピーク差の半分のパーセンテージ、又は他の基準に基づいてセットされる。例えば、第１のスレッシュホールド３１５は、ピーク・ピーク差の２５％にセットされ、第２のスレッシュホールド３２０は、ピーク・ピーク差の７５％にセットされる。
【００４０】
第１の周期的な人間の動きは、（ゼロから離れるように進んで）第１のスレッシュホールド３１５に最初に交差３２５したときに検出される。これは、肯定的な自転車乗り事象をトリガーする。第２の周期的な人間の動きは、（ゼロから離れるように進んで）第１のスレッシュホールド３１５に２回目に交差３３０したときに検出される。一実施形態において、ケイデンスウインドウ３４５内にある間に第１のスレッシュホールド３１５に２回目に交差３３０した場合には、肯定的な自転車乗り事象がトリガーされる。ケイデンスウインドウ３４５内にある間に第１のスレッシュホールド３１５に交差３３０しない場合には、否定的な自転車乗り事象がトリガーされる。ケイデンスウインドウ３４５は、第１のスレッシュホールド３１５に最初に交差３２５したある時間周期後にケイデンスウインドウ３４５を開くケイデンスウインドウ最小値３４３と、ある時間周期後にケイデンスウインドウ３４５を閉じるケイデンスウインドウ最大値３４７とを有する。ここに示す例では、ケイデンスウインドウ３４５内で第１のスレッシュホールド３１５に交差し、肯定的な自転車乗り事象をトリガーする。
【００４１】
第２のスレッシュホールド３２０は、第１の軸３０３に沿った加速度測定のためのピーク形状を決定するために自転車乗り識別ロジックにより使用される。一実施形態では、自転車乗り識別ロジックは、第２のスレッシュホールド３２０に交差するたびに注目する。一実施形態では、第２のスレッシュホールド３２０に最初に交差３３５するときと、２回目に交差３４０するときとの間の時間がピークウインドウ３５０より短い場合には、否定的な自転車乗り事象がトリガーされる。一実施形態において、第２のスレッシュホールド３２０に最初に交差３３５するときと、２回目に交差３４０するときとの間の時間がピークウインドウ３５０以上でない限り、否定的な自転車乗り事象がトリガーされる。一実施形態において、第２のスレッシュホールド３２０に動きサイクル周期の平均の２５−３５％または６５−７５％以内で交差する場合には、ピークが急峻であり過ぎ、そして否定的事象がトリガーされる。一実施形態において、第２のスレッシュホールド３２０に動きサイクルのケイデンスの平均のあるパーセンテージ以内に交差する場合には、否定的な事象がトリガーされる。ここに示す例では、否定的な自転車乗り事象がトリガーされない。更に、ここに示す例は、現在のユーザ活動を自転車乗りと識別するに充分な数の肯定的事象がトリガーされる実施形態を示している。
【００４２】
図３Ｂは、本発明の一実施形態により、自転車乗りを識別する動き状態識別ロジックにより分析される第２のユーザ活動に関与するユーザを示す第２の規範的動きサイクルグラフ３５０である。この規範的動きサイクルグラフ３５０は、単一の３軸慣性センサで得られた加速度データを示す。所与の時間周期における加速度は、第１の軸３５３、第２の軸３５５及び第３の軸３５７について表される。
【００４３】
自転車乗り識別ロジックは、ある動き基準を満足したときに生じる肯定的事象及び否定的事象を監視する。一実施形態において、自転車乗り識別ロジックは、ピーク・ピーク差が最大の軸を測定することにより定義される優性軸を使用する。図中、第２の軸３５５は、最大のピーク・ピーク差を有するので、優性軸である。
【００４４】
一実施形態において、自転車乗り識別ロジックは、優性軸に対する加速度のローリング平均３６０を使用して、第１のスレッシュホールド３６５及び第２のスレッシュホールド３７０をセットする。第１の周期的な人間の動きは、（ゼロから離れるように進んで）第１のスレッシュホールド３６５に最初に交差３７５したときに検出される。これは、肯定的な自転車乗り事象をトリガーする。第２の周期的な人間の動きは、（ゼロから離れるように進んで）第１のスレッシュホールド３６５に２回目に交差３８０したときに検出される。一実施形態において、ケイデンスウインドウ３９８内にある間に第１のスレッシュホールド３２０に２回目に交差３８０した場合には、肯定的な自転車乗り事象がトリガーされる。ケイデンスウインドウ３９８内にある間に第１のスレッシュホールド３６５に交差３８０しない場合には、否定的な自転車乗り事象がトリガーされる。ここに示す例では、ケイデンスウインドウ３９８内で第１のスレッシュホールド３６５に交差し、肯定的な自転車乗り事象をトリガーする。
【００４５】
第２のスレッシュホールド３７０は、第２の軸３５５に沿った加速度測定のためのピーク形状を決定するために自転車乗り識別ロジックにより使用される。一実施形態では、自転車乗り識別ロジックは、第２のスレッシュホールド３７０に交差するたびに注目する。第２のスレッシュホールド３７０に最初に交差３８５するときと、２回目に交差３８８するときとの間の時間は、ピークウインドウ３９０より短く、否定的な自転車乗り事象をトリガーする。否定的な自転車乗り事象は、肯定的な自転車乗り事象の数をカウントするカウンタをリセットする。示された各ピークは、否定的な自転車乗り事象をトリガーする。それ故、現在のユーザ活動を自転車乗りと識別するに充分な肯定的な自転車乗り事象がトリガーされない。図３Ａ及び３Ｂは、自転車乗り識別ロジックにより遂行される分析を示す。他の形式の動きについても、同様の分析が遂行される。
【００４６】
図２に戻ると、動きセンサ２３０は、動き状態識別エンジン２８０の動き状態識別ロジック２８５から肯定的及び否定的な事象を受け取る。又、動きプロセッサ２３０は、優性軸ロジック２２７から優性軸データを、ローリング平均ロジック２３５からローリング平均データを、ケイデンスロジック２３２から現在動きサイクルのケイデンス及び周期を、ケイデンスロジック２３２からケイデンスウインドウを、そしてフィルタ２２０からフィルタされた加速度データを受け取る。動きプロセッサ２３０は、カウントロジック２６０、モードロジック２５５、及び１つ以上のカウントバッファ２６５を含む。
【００４７】
一実施形態において、モードロジック２５５は、動き状態識別ロジック２８５から肯定的及び否定的事象を受け取る。モードロジック２５５は、次いで、受け取った事象に基づいて、カウントロジック２６０のための適当なモードを決定する。又、モードロジック２５５は、この決定をなすのにカウントバッファ２６５も使用する。カウントバッファは、動き状態が正しく識別される間にカウントが維持されるよう保証するために周期的な人間の動きを追跡する。一実施形態において、潜在的に識別される各動き状態は、個別のカウントバッファを有する。一実施形態において、導入モードにある間に、所定値に到達するための第１のカウントバッファは、どのアクティブモードを開始すべきか決定する。一実施形態において、モードロジック２５５は、異なる活動に各々対応する複数のアクティブモードを含む。一実施形態において、モードロジック２５５は、導入モード、退出モード及びスリープモードを含む。これら動作モードは、図５を参照して以下に詳細に述べる。
【００４８】
カウントロジック２６０は、優性軸ロジック２２７、ローリング平均ロジック２３５、ケイデンスロジック２３２及びフィルタ２２０からデータを受け取る。カウントロジック２６０は、このデータを使用して、周期的な人間の動きをカウントする。一実施形態において、カウントロジック２６０の振舞いは、その現在動作モードにより決定される。
【００４９】
カウントロジック２６０は、周期的な人間の動きが生じたかどうか決定するためにどの測定を使用すべきか決定する。一実施形態において、カウントロジック２６０は、優性軸に対する加速度を監視し、そして測定のために優性軸に対して特定の関係をもつ測定だけを選択する。例えば、優性軸に沿った加速度だけが選択されてもよいし（例えば、歩行アクティブモードにおいて）、或いは優性軸に対してほぼ垂直な加速度だけが選択されてもよい（例えば、ローイングアクティブモードにおいて）。一実施形態では、カウントロジック２６０は、優性軸に沿った加速度データの測定値しか使用しない。別の実施形態では、他の軸に沿った加速度データの測定値も使用される。
【００５０】
選択された測定値を動き基準と比較して、周期的な人間の動きが生じたかどうか決定すると共に、どの形式の周期的な人間の動きが生じたか決定することができる。動き基準は、例えば、現在測定値を以前の測定値と比較すること、現在測定値をスレッシュホールド値と比較すること、傾斜の分析、曲線適合分析、ピーク分析、等を含む。一実施形態において、活動識別ロジックにより事象を識別するのに使用される同じ基準が、周期的な人間の動きをカウントするのにも使用される。或いは又、異なる基準を使用してもよい。一実施形態では、動きの交差スレッシュホールドを使用してカウントが行われる。又、一実施形態では、使用する動き基準は、カウントロジック２６０の現在動作モードに依存する。
【００５１】
カウントバッファ２６５は、周期的な人間の動きのあり得るカウントを追跡する。一実施形態において、動きプロセッサ２３０は、異なるユーザ活動に各々関連した複数のカウントバッファ２６５を含む。或いは又、２つ以上のユーザ活動に対して単一のカウントバッファを使用して周期的な人間の動きをバッファしてもよい。一実施形態において、単一のカウントバッファ２６５が、全てのユーザ活動に対するバッファを維持する。
【００５２】
カウントバッファ２６５の振舞いは、カウントロジック２６０の動作モードに依存する。例えば、導入モードでは、考えられるユーザ活動ごとに個別のカウントバッファが維持されてもよい。システムが、特定のユーザ活動の基準を満足する周期的な人間の動きを識別するときには、そのユーザ活動に対応するカウントバッファがインクリメントされる。検出された周期的な人間の動きが多数の異なるユーザ活動の基準を満足することがある。現在ユーザアクティビティが識別されるまで、一実施形態では、このような動きが各々の対応するカウントバッファ２６５によりカウントされることになる。
【００５３】
現在モードに基づき、カウントバッファ２６５の１つがある数に到達すると、動きログ２７５は、カウントバッファからのカウントで更新される。これは、カウントバッファに関連したユーザ動き状態に対し、動きロジック２５５がカウントロジック２６０をアクティブモードに入れるようにさせる。一実施形態では、次いで、全てのカウントバッファ２６５がリセットされる。従って、他のカウントバッファ２６５によりカウントされた「偽の動き」が破棄される。カウントバッファによりカウントされ、動きログ２７５へ移動される前の周期的な人間の動きの数は、現在動作モードに基づき、２から１０又はそれ以上に変化し得る。更に、一実施形態では、異なるユーザ活動に対応するカウントバッファは、異なるカウント要件を有する。
【００５４】
動きログ２７５は、発生した周期的な人間の動きの合計数、及びそれに関連した活動を追跡する。一実施形態では、このデータが、サーバー又はリモートデータベースへ送られる。動きログ２７５の出力は、一実施形態では、ユーザに利用できるようにされる。一実施形態において、ユーザは、種々の活動及びそれに関連したデータを、ウェブページを通して見ることができる。又、一実施形態において、ユーザは、全体的な活動レベルを含む個々の活動を見ることができるのに加えて、毎時間、毎日、毎週又は他のベースで全体的な活動レベルを見ることもできる。
【００５５】
一実施形態において、１つ以上のプログラム２９０が動き状態識別システム２００に結合される。１つ以上のプログラム２９０は、動き状態識別システム２００から現在ユーザ動き状態の識別を受け取る。一実施形態において、プログラム２９０は、動き状態識別エンジン２８０から動き状態識別情報を受け取る。別の実施形態では、プログラム２９０は、動きプロセッサ２３０から動き状態識別情報を受け取る。一実施形態において、現在ユーザ動き状態の識別は、現在ユーザ動き状態に対する確信度評価と共に受け取られる。例えば、プログラムは、ユーザが歩行している見込みが９８％であることを指示する情報を受け取る。別の実施形態では、複数の考えられる現在ユーザ動き状態の識別が、考えられる各ユーザ動き状態に対する確信度評価と共に受け取られる。例えば、プログラムは、ユーザがランニングしている確信度が７０％で、ユーザが自転車乗りしている確信度が３０％であるという指示を受け取る。
【００５６】
一実施形態において、プログラム２９０は、動き識別システム２００から付加的な情報を受け取る。この付加的な情報は、加速度測定から導出される情報である（以下、動き関連情報と称される）。例えば、プログラム２９０は、ユーザの現在ケイデンス、ユーザの現在ローリング平均、現在優性軸、カウントされた周期的な人間の動き、等に関する情報を受け取る。
【００５７】
一実施形態において、プログラム２９０は、現在のユーザ動き状態及び／又は付加的なユーザ動き関連情報を決定するために動き識別システム２００をポーリングする。プログラム２９０は、動き識別システム２００を連続的に、周期的に、又は規定事象の発生時に（例えば、音楽プレーヤアプリケーションが新たな歌の再生を開始するときに）ポーリングする。或いは又、現在の動き関連情報は、現在動き関連情報キャッシュ（図示せず）へ送り込まれてもよい。一実施形態において、動き関連情報キャッシュは、動き識別システム２００により現在の最新情報が維持される。プログラム２９０は、次いで、現在ケイデンス、現在優性軸、等を含む現在のユーザ動き状態を決定するためにキャッシュからデータを得ることができる。
【００５８】
一実施形態において、プログラムは、契約(subscription)ロジック２９２を通して１つ以上の動き関連情報サービスに契約する。各契約エントリーは、動き識別システム２００の契約ロジック２９２がプログラム２９０へどんな形式の動き関連情報を送信するか識別する。又、各契約エントリーは、更新された動き関連情報をプログラム２９０へいつ送信するかも識別する。例えば、契約は、動き状態識別システム２００がケイデンスの更新を１０秒ごとに、そしてユーザ活動の更新を５秒ごとに送信するようにさせる。或いは又、契約は、現在のユーザ動き状態が変化するときに、契約システム２９２が現在ユーザ活動の更新を送信するようにさせる。
【００５９】
一実施形態において、プログラム２９０は、受け取ったユーザ動き状態情報を使用して、プログラム２９０の設定を調整する。例えば、プログラム２９０が音楽プレーヤアプリケーションである場合には、検出されたユーザ動き状態に基づいてボリュームレベル及び／又は音楽のテンポを調整する。例えば、ユーザがランニングしていると検出された場合には、ボリューム及び／又は音楽のテンポが上げられる。別の例では、プログラムが電話アプリケーションである場合には、呼び出し音及び／又は話のボリュームが、検出されたユーザ動き状態に基づいて上げ下げされる。コマンドとして使用されるユーザのジェスチャーのような他の設定も、検出されたユーザ動き状態に基づいて調整することができる。
【００６０】
別の実施形態では、プログラムは、受け取った動き状態情報を使用して、プログラム２９０の設定を調整する。例えば、音楽プレーヤアプリケーションは、検出されたユーザのケイデンスに一致するように音楽のテンポを調整する。別の例では、音楽アプリケーションは、ユーザの現在ケイデンスに一致する歌の曲目リストを発生する。これは、ユーザが音楽のテンポを一致させることによってケイデンスを維持するのを容易にさせる。更に、音楽アプリケーションは、ユーザがユーザの現在ケイデンスよりテンポの速い又は遅い歌を選択することで速度を上げたり下げたりすることを指示するユーザフィットネスアプリケーションと一体化されてもよい。
【００６１】
図４Ａは、本発明の一実施形態により動き状態を決定する方法４００のフローチャートである。この方法は、ハードウェア（例えば、回路、専用ロジック、プログラム可能なロジック、マイクロコード、等）、ソフトウェア（処理装置で実行されるインストラクションのような）、又はその組み合わせを含む処理ロジックにより遂行される。一実施形態では、この方法４００は、図１の電子装置１００により遂行される。一実施形態では、この方法４００は、図２の動き識別システム２００により遂行される。
【００６２】
図４Ａを参照すれば、方法４００は、加速度を監視することで始まる（ブロック４０５）。加速度は、慣性センサ又は他の加速度監視装置で監視される。監視された加速度は、上述したように、フィルタされ処理された加速度データを含む。ブロック４１０において、動きは、加速度に基づき複数の動き状態の１つに対応するものとして識別される。動き状態は、周期的な人間の動き、又はユーザが周期的な人間の動きを行うことを必要としない他の動き状態を伴うユーザの活動を含む。ブロック４１５において、このプロセスは、動き状態が、周期的な人間の動きを含む活動に対応するかどうか決定する。もしそうであれば、ブロック４２０において、識別された活動に適した周期的な人間の動きがカウントされる。識別可能なユーザ活動は、例えば、歩行、ランニング、インラインスケート、ローイング、エリプティカルマシンでの運動、及び自転車乗りを含む。又、他のユーザ活動が識別されてもよい。このプロセスは、次いで、ブロック４１０へ戻り、加速度の監視を続ける。動き状態が、周期的な動きでの活動に対応しない場合には、プロセスは、ブロック４１０へ戻り、加速度の監視を続ける。
【００６３】
複数の異なる所定のユーザ活動に対応する周期的な人間の動きは、本発明の実施形態において識別される。更に、一実施形態において、認識された周期的な人間の動きのリストに新たなユーザ活動が追加される。このような周期的な人間の動きを所定のユーザ活動に追加するために、ユーザは、新たなユーザ活動を記録する。
【００６４】
図４Ｂは、本発明の一実施形態により動きプロフィールを記録する方法４５０のフローチャートである。この方法４５０は、新たなユーザ動き状態又は活動を記録するか或いは特定のユーザに対して既存の活動を校正するのに使用される。既存のユーザ活動の校正は、カウント精度を改善することができる。校正は、ユーザの活動が異常な仕方で行われるときに有用である。例えば、ユーザがリカンベント自転車に乗る場合には、動きが慣習的な「自転車乗り」の動きサイクルグラフに一致しない。この方法４５０は、ハードウェア（例えば、回路、専用ロジック、プログラム可能なロジック、マイクロコード、等）、ソフトウェア（処理装置で実行されるインストラクションのような）、又はその組み合わせを含む処理ロジックにより遂行される。この方法４００は、図１の電子装置１００、及び図２の動き識別システム２００により遂行される。
【００６５】
図４Ｂを参照すれば、方法４５０は、動きプロフィールを記録するコマンドを受け取ることにより開始する（ブロック４５５）。ブロック４６０において、動きプロフィールが記憶されるユーザ活動を指示する入力が受け取られる。一実施形態において、システムは、ユーザが、既存のユーザ活動の表示リストの１つを選択できるようにする。一実施形態において、ユーザは、表示されたユーザ活動の１つを選択するか、又は動きプロフィールに関連付けられるべき新たなユーザ活動を識別することを選択する。新たなユーザ活動に対して動きプロフィールを記録すべき場合には、ユーザは、新たなユーザ活動の名前を入力するよう促される。
【００６６】
ブロック４６５において、記録を開始するためのコマンドが受け取られる。ブロック４７０において、加速度の測定値が記録される。加速度の測定値は、動きプロフィールを記録すべきユーザの活動をユーザが行う間に記録される。
【００６７】
ブロック４７５において、このプロセスは、記録された測定値が独特のパターンを定義するかどうか決定する。一実施形態において、加速度の測定値は、独特のパターンを決定できるまで記録される。独特のパターンは、記録されたパターンを他の動きプロフィールから区別する。
【００６８】
独特のパターンがまだ識別されない場合には、プロセスは、ブロック４８０において、ユーザが記録及び／又は動きを停止したかどうか決定する。一実施形態では、そのような独特のパターンが識別される前にユーザが記録を停止した場合には、システムは、ブロック４８５において、ユーザが記録を継続するように促す。次いで、プロセスは、ブロック４７０へ戻り、動きデータの記録を続ける。ユーザが記録を停止しなかった場合には、プロセスは、ブロック４７０へ直接続く。パターンを決定する時間は、単一の動きサイクルを記録することから、多数の記録サイクルを記録するまでの範囲であり、１秒ないし数分又はそれ以上にわたって生じる。一実施形態では、現在の動きサイクルの周期を指定するためにユーザの入力が受け取られる。例えば、ユーザは、新たな周期的な人間の動きが終わるたびに（例えば、一歩が完了するたびに）ボタンをプッシュするか、ある動きを行うか、大きなノイズを発する、等を行う。これは、記録された測定値からパターンを決定するために記録する必要のある動きサイクルの数を減少する。或いは又、ユーザの入力なしに動きサイクルの周期が決定される。一実施形態では、システムは、少なくとも２つの全動きサイクルを使用して、パターンを識別する。周期又は動き形式に関してユーザの入力がないと、パターンを識別するのに、おそらく、３つ以上の動きサイクルが必要になるであろう。
【００６９】
ブロック４７５において、独特のパターンが識別された場合には、プロセスは、ブロック４９０へと続く。一実施形態において、ユーザは、新たな活動パターンが首尾良く識別されたことが通知される。ブロック４９０において、一実施形態では、活動に対して動きサイクルの平均が決定される。活動に対して加速度の独特のパターンが決定されると、ブロック４９５において、既存のユーザ活動又は新たなユーザ活動のいずれかに動きプロフィールが追加される。
【００７０】
又、加速度の独特のパターンを使用して、活動に対する肯定的及び／又は否定的事象を決定（セット）することもできる。例えば、加速度の独特のパターンが、優性軸に沿った繰り返しの先鋭な加速度ピークを示す場合には、優性軸に沿った先鋭な加速度ピークが新たな肯定的事象として追加され、及び／又は優性軸に沿った緩やかなピークが新たな否定的事象として追加される。既存のユーザプロフィールを校正するために方法４５０が開始される場合には、校正は、既存の肯定的及び／又は否定的事象に新たな肯定的及び／又は否定的事象を追加することを含む。新たな活動を記録するために方法４５０が開始される場合には、新たな活動の将来の識別を容易にするために新たな肯定的及び／又は否定的事象が指定される。動きの記録は、著しい時間の後であっても独特のパターンを定義するものでないと考えられる。一実施形態において、ある周期の後に、システムは、動きサイクルが既存の活動に一致することをユーザに指示する。ユーザは、既存の活動が、試みられた新たな動きサイクルパターンに一致することに同意する。この場合に、動きサイクルパターンは、識別された活動に関連した動きサイクルを調整するのに使用される。或いは又、一実施形態において、記録プロセスがフェイルしてもよい。
【００７１】
図５は、本発明の一実施形態によりユーザの動き状態を監視するためのシステムの振舞い５００の状態図である。システムは、ハードウェア（例えば、回路、専用ロジック、プログラム可能なロジック、マイクロコード、等）、ソフトウェア（処理装置で実行されるインストラクションのような）、又はその組み合わせを含む処理ロジックによりナビゲートされる複数の動作モード（状態）を有する。一実施形態において、振舞い５００は、図１に示す電子装置１００又は装置のサブセットの振舞いである。一実施形態において、振舞い５００は、図２の動き識別システム２００内の電子装置又は慣性センサ（１つ又は複数）の振舞いである。
【００７２】
振舞い５００は、人間の活動を監視するための複数動作モード、即ちスリープモード、導入モード、１つ以上のアクティブモード、及び退出モードを含む。別の実施形態では、より多くの又はより少数のモードが使用されてもよい。一実施形態では、２つのモード、即ちアクティブモード及びノンアクティブモードだけが使用される。アクティブモードは、周期的な人間の動きが検出されたときに入り、一方、ノンアクティブモードは、他の全ての状態に使用される。別の実施形態では、複数のインアクティブモード及び／又はアクティブモードが使用される。モード間をナビゲートするために、幾つかの条件を満足しなければならない。これらの条件は、アクティブモードを終了するための退出条件と、インアクティブモードを開始するための導入条件とを含む。各モードは、１つ以上の退出及び導入条件を有する。
【００７３】
異なる動作モードに対して異なる条件を使用することで、人間の活動を監視する装置の信頼性が高まる。例えば、対象（例えば、個人）が移動すると、停止するより移動を保つ見込みが高い。同様に、個人が移動しない場合には、移動を開始するより移動しない見込みが高い。更に、個人がランニングする場合には、自転車乗りを開始するよりランニングを続ける見込みが高い。これらの原理は、装置がアクティブなモードを続けるよりアクティブなモードを開始するためには、より厳格な条件を満足しなければならなくすることにより、適用することができる。異なるモードは、各々、その後の測定に対しておそらく起きることを反映するルールを有する。これは、カウントされない周期的な人間の動きの数及び／又は偽の周期的な人間の動きのカウントを減少し又は排除する。
【００７４】
図５を参照すれば、一実施形態における動作モードは、スリープモード５０５、導入モード５１５、アクティブモード５２５、及び退出モード５３５を含む。一実施形態では、システム又は装置の電力レベルがこれらのモードにリンクされる。
【００７５】
第１のモードは、スリープモード５０５である。活動（加速度）が検出されないときには、システムは、スリープモード５０５に留まる。加速度が検出されると、導入モード５１５が開始される。一実施形態では、スリープモード５０５において、慣性センサは、ゆっくりしたサンプルレートを有し、従って、システムの消費電力を下げる。一実施形態では、スリープモード５０５において、加速度計を監視するのに必要なプロセッサの部分だけが目覚めており、プロセッサの残り部分は、スリープモードに入れられる。
【００７６】
導入モード５１５に入ると、一実施形態では、加速度を監視して周期的な人間の動きを検出するよう確保するために、慣性センサのサンプリングレートが上げられる。導入モード５１５では、識別可能な全てのユーザ活動に適した周期的な人間の動きが監視される。それ故、一実施形態では、サンプリングレートは、考えられる最も早い活動を適切に検出するに充分なほど高い。別の実施形態では、サンプリングレートは、実際に観察される動きレベルに基づいて調整される。例えば、ユーザが散歩するときには、サンプリングレートは、ユーザがジェスチャーコマンドを使用するか又は自転車の乗るときほど高くなくてよい。
【００７７】
特定のユーザ活動に対して導入条件が満足されると、適当なアクティブモード５２５が開始される。次いで、サンプリングレートは、一実施形態では、検出される活動について適当であるように調整される。一実施形態では、識別可能なユーザ活動のいずれに対する導入条件も、ある時間周期内に満足されない場合には、スリープモード５０５が再開される。別の実施形態では、スリープモード５０５は、動きが検出されない場合にのみ開始される。
【００７８】
適当なアクティブモード５２５に入ると、上述したように規定セットのルール又は運動基準に基づいて周期的な人間の動きをカウントするために加速度データが監視される。これら基準の１つによれば、周期的な人間の動きは、設定インターバル内に（例えば、ケイデンスウインドウ内に）生じると予想される。周期的な人間の動きが設定インターバル内にカウントされると、現在アクティブモード５２５が続けられる。周期的な人間の動きが設定インターバル内に検出されないときには、予想される周期的な人間の動きが生じず、退出モード５３５が開始される。
【００７９】
退出モード５３５において、処理ロジックは、再導入条件が満足されるかどうか決定する。再導入条件は、最後のアクティブモードと一貫したその後の周期的な人間の動きが観察されるときに満足される。退出モードを使用して活動が中止したことを検証することにより、システムは、ユーザによる１回のつまずきで動きの完全な再分析がトリガーされる機会を減少する。再導入条件が満足されると、適当なアクティブモード５２５が再開される。ある時間フレーム内に再導入条件が満足されない場合には、プロセスは、導入モード５１５を再開する。導入モード５１５から、ある導入条件が満足される場合には、適当なアクティブモード５２５に再び入るか、又はプロセスは、スリープモード５０５へ戻る。
【００８０】
図６は、本発明の一実施形態により、電子装置をスリープモードで動作する方法６００のフローチャートである。一実施形態において、この方法６００は、図５のスリープモード５０５に対応する。一実施形態において、この方法６００は、当該加速度が所定の時間インターバル中検出されないか、或いは周期的な人間の動きが所定の時間インターバル中検出されないときに開始する。一実施形態において、スレッシュホールド値より高い加速度が設定期間中に検出されないときには、スリープ機能が開始される。別の実施形態では、監視する必要のない活動を表す動きのシグネチャしか検出されないときには、スリープ機能が開始される。例えば、乗車中の動きシグネチャが検出されたときは、スリープ機能が開始される。スリープモードが開始される前に経過する期間は、固定されてもよいし、或いは処理ロジックにより自動的に又はユーザ入力に基づき調整されてもよい（例えば、希望のバッテリ寿命対希望の性能のユーザ選択に応答して、又は最後に測定されたケイデンスウインドウに基づいて）。
【００８１】
図６を参照すれば、方法６００は、スリープモードのサンプリングレートを設定することで開始する（ブロック６０５）。一実施形態において、低いサンプリングレートがセットされる。これは、消費電力を減少し、バッテリ寿命を延ばす。一実施形態において、スリープモードのサンプリングレートは、固定値である。別の実施形態では、１日の時刻、ユーザの振舞いパターン、等のある基準に基づき、又はユーザの入力に基づいて、スリープモードのサンプリングレートを処理ロジックにより自動的に変更することができる。
【００８２】
一実施形態において、サンプリング機能がスリープモードにおいて周期的に実行され、サンプリング機能は、加速度データを設定サンプリングレートで設定時間中にサンプリングする。例えば、サンプリング機能は、１０秒ごとに１秒の期間中実行され、そしてその１秒の動作に対して毎秒５０回の測定というサンプリングレートが設定される。一実施形態では、サンプリング機能は、比較的ゆっくりしたレート（例えば、１０秒に一度）で繰り返し、そしてサンプリング機能内のサンプリングレートは、比較的高い（例えば、５０Ｈｚ）。サンプリング機能は、望ましからぬ動きシグネチャを検出するか、又は例えば、ユーザが車に乗っている間に装置を低電力スリープモードに維持するために使用される。
【００８３】
一実施形態において、スリープモードのサンプリングレートは、ゼロにセットされる。スリープモードのサンプリングレートは、例えば、慣性センサが「慣性目覚め」機能を有するときに、ゼロにセットされる。慣性目覚め機能は、設定スレッシュホールドを越える加速度が検出されたときに処理ロジックをスリープモードから導入モードへ切り換えることができる。慣性目覚めは、スリープモードを退出すると同時に付加的な機能をパワーアップするのに使用される。
【００８４】
ブロック６１０において、加速度データの測定が行われる。ブロック６１５において、処理ロジックは、当該加速度が検出されるかどうか決定する。当該加速度は、ある基準を満足する加速度を含む。一実施形態において、基準は、下限スレッシュホールド及び上限スレッシュホールドを含む。別の実施形態では、プリセット期間中に加速度を測定し続けるという要件のような他の基準を使用してもよい。
【００８５】
当該加速度が検出されないか、又は「慣性目覚め」ピンがトリガーしない（「慣性目覚め機能」を有する慣性センサに対して）ときには、スリープモードが続き、加速度データの更なる測定が設定スリープモードサンプリングレートで行われる（ブロック６１０）。加速度が検出されると、スリープモードが終了し、導入モードが開始される（ブロック６２０）。一実施形態において、検出される加速度及びその変化率は、スリープモードを終了するためのある基準を満足しなければならない。
【００８６】
図７Ａは、本発明の一実施形態により、電子装置を導入モードで動作する方法７００のフローチャートである。一実施形態において、方法７００は、図５の導入モード５１５に対応する。この導入モードは、周期的な人間の動きが検出される活動をユーザが最初に開始するときに、開始される。一実施形態において、方法７００は、当該加速度が検出されたときに開始される。一実施形態において、ある基準を満足する加速度の測定値が検出されたときに、導入モードが開始される。一実施形態において、方法７００は、スリープモードが終了したときに開始される。一実施形態において、方法７００は、電子装置の動き識別システム２００及び／又はカウントロジック２６０が導入モードにあるときに図２の活動識別ロジック２８５の各々により同時に遂行される。
【００８７】
図７Ａを参照すれば、方法７００は、サンプリングレートをアクティブなサンプリングレートにセットすることにより開始する（ブロック７０４）。アクティブなサンプリングレートは、動き状態及び周期的な人間の動きの正確な測定を容易にするためにセットされ、固定レートでもよいし、又は動的に可変のレートでもよい。可変のサンプリングレートは、検出された動き頻度／レベル、検出された動きサイクルのケイデンスの周期に基づいて自動的に調整されてもよいし、ユーザにより調整されてもよいし、処理ロジックにより実行されるアプリケーション、或いは動きデータ又は装置状態の他の観点に基づいて調整されてもよい。アクティブなサンプリングレートは、一実施形態では、約１０Ｈｚと約２００Ｈｚとの間のどこかにセットされる。一実施形態において、アクティブなサンプリングレートは、約１５から４０Ｈｚにセットされる。
【００８８】
ブロック７１０において、第１の周期的な人間の動きが認識される。周期的な人間の動きは、一実施形態では、少なくとも１つが反復するものである少なくとも２つの認識された状態を含む動きサイクルである。例えば、動きサイクルは、動きＡ、Ｂ、Ｃの繰り返しである。周期的な人間の動きは、一実施形態では、動きＡ、Ｂ、Ｃ、Ａ（又はＢ、Ｃ、Ａ、Ｂ）が識別されたときに認識される。以前の周期的な人間の動きが測定されておらず、ケイデンスウインドウがないので、第１の周期的な人間の動きは、いつでも認識される。第１の周期的な人間の動きが認識されると、デフォールトケイデンスウインドウがセットされる（ブロック７１４）。デフォールトケイデンスウインドウは、ほとんどの又は全ての考えられる動きサイクルケイデンスに対して周期的な人間の動きがカウントされるところの最小値及び最大値を有する。活動ごとに異なるデフォールトケイデンスウインドウがセットされてもよい。一実施形態では、活動識別ロジックのインスタンスごとに方法７００の個別のインスタンスが実行される。
【００８９】
一実施形態において、ケイデンスウインドウの初期デフォールト値が、全てのユーザを受け容れるに充分な広さでセットされる。一実施形態において、デフォールトケイデンスウインドウは、次いで、特定のユーザに一致するように動的に調整される。処理ロジックは、特定のユーザを「学習」し（それに適応し）、そして周期的な人間の動きがカウントされるときに、より正確なものとなる。異なるユーザを学習し又はそれに適応する能力を有する処理ロジックは、ユーザごとに個人的プロフィールを生成する。ユーザごとに複数のプロフィールを生成してもよく、異なるプロフィールは、異なるユーザ活動を反映する。例えば、第１のプロフィールは、ユーザのランニングに対して生成され、そして第２のプロフィールは、ユーザの歩行に対して生成される。処理ロジックは、異なるプロフィール間を自動的に又はユーザ入力に基づき手動でスイッチすることができる。一実施形態において、処理ロジックは、現在ケイデンス及び／又は動きサイクルパターンを、記憶されたプロフィールと比較する。現在ケイデンス又は動きサイクルパターンが、記憶されたプロフィールのものと一致するときには、そのプロフィールがアクチベートされる。
【００９０】
ブロック７２０において、バッファされたカウントが１にセットされる。ブロック７２４において、処理ロジックは、付加的な周期的な人間の動きが認識されたかどうか決定する。付加的な周期的な人間の動きは、動きサイクルが全ての必要な基準を満足する場合に認識される。ユーザの異なる活動ごとに異なる基準が使用される。図１０を参照して、これら基準の一実施形態を以下に説明する。
【００９１】
図７Ａに戻ると、付加的な周期的な人間の動きが認識された場合には、方法７００は、ブロック７４４へ続く。付加的な周期的な人間の動きが認識されない場合には、処理ロジックは、時間がまだケイデンスウインドウ内であるかどうか決定する（ブロック７３０）。時間がまだケイデンスウインドウ内である場合には、プロセスがブロック７２４へ戻り、付加的な周期的な人間の動きが認識されたかどうか決定する。ケイデンスウインドウが閉じた場合には、バッファされたカウントがゼロにリセットされる（ブロック７３４）。次いで、プロセスは、ブロック７４０へ続く。
【００９２】
ブロック７４０において、処理ロジックは、当該加速度が検出されたかどうか決定する。当該加速度が検出されない場合は、スリープモードが開始される（ブロック７４２）。何らかの当該加速度が検出された場合は、処理ロジックは、ブロック７１０へ戻り、加速度データを監視すると共に、周期的な人間の動きを識別するよう試みる。
【００９３】
ブロック７２４において、付加的な周期的な人間の動きが認識された場合は、プロセスは、ブロック７４４へ続く。ブロック７４４において、付加的な周期的な人間の動きが、バッファされたカウントに追加される。処理ロジックは、次いで、否定的な事象が認識されたかどうかチェックする（ブロック７４５）。否定的な事象は、動きが、テストされている活動分類に属さないという指示子である。否定的な事象が認識された場合には、プロセスは、ブロック７３４へ続き、バッファされたカウントがゼロにリセットされる。否定的な事象が認識されない場合には、プロセスは、ブロック７４６へ続く。
【００９４】
ブロック７４６において、プロセスは、方法７００の異なるインスタンスに関連した別のユーザ活動が識別されたかどうか決定する。即ち、別の活動が最終的に識別されたかどうか決定する。別のユーザ活動が識別された場合には、バッファが空にされ、プロセスが終了となる。他のユーザ活動がまだ識別されない場合には、プロセスは、ブロック７４８へ続く。
【００９５】
ブロック７４８において、処理ロジックは、バッファされたカウントにＮ個の周期的な人間の動きがあるかどうかチェックする。Ｎは、プリセットされてもよいし、又は検出される確信度インターバルに基づくものでもよい。もしそうでなければ、プロセスは、ブロック７２４へ戻り、導入モードを続ける。バッファされたカウントにおける周期的な人間の動きの数がＮに到達すると、バッファされた周期的な人間の動きが動きログに追加され、適当なアクティブモードに入る（ブロック７４９）。次いで、導入モードが終了となり、全てのバッファがゼロにリセットされる。
【００９６】
図７Ｂは、本発明の別の実施形態により、電子装置を導入モードで動作する方法７５０のフローチャートである。一実施形態において、方法７５０は、図５の導入モード５１５に対応する。この導入モードは、周期的な人間の動きが検出される活動をユーザが最初に開始するときに、開始される。一実施形態において、方法７５０は、当該加速度が検出されたときに開始される。一実施形態において、ある基準を満足する加速度の測定値が検出されたときに、導入モードが開始される。一実施形態において、方法７５０は、スリープモードが終了したときに開始される。
【００９７】
図７Ｂを参照すれば、方法７５０は、サンプリングレートをアクティブなサンプリングレートにセットすることによって開始する（ブロック７５４）。サンプリングレートは、一実施形態では、潜在的に認識可能な活動により要求される最も高いサンプリングレートに依存する。
【００９８】
ブロック７５７において、識別可能なユーザ活動ごとに、第１の周期的な人間の動きが認識される。以前の周期的な人間の動きが測定されておらず、ケイデンスウインドウがないので、第１の周期的な人間の動きは、いつでも認識される。第１の周期的な人間の動きが認識されると、デフォールトケイデンスウインドウがセットされる（ブロック７６０）。識別可能なユーザ活動の形式ごとに、デフォールトケイデンスウインドウがセットされる。
【００９９】
ブロック７６３において、識別可能なユーザ活動ごとに、バッファされたカウントが１にセットされる。ブロック７６５において、処理ロジックは、識別可能なユーザ活動ごとに、付加的な周期的な人間の動きが認識されるかどうか決定する。ユーザ活動ごとに付加的な周期的な人間の動きが認識されるかどうか別々に決定するために異なる基準が使用される。
【０１００】
付加的な周期的な人間の動きが認識されるユーザ活動に対して、方法７５０は、ブロック７８３へ続く。同時に、付加的な周期的な人間の動きが認識されないユーザ活動に対して、プロセスは、ブロック７７０へ続く。ブロック７７０において、プロセスは、適当なユーザ活動ごとに、時間がまだ適当なケイデンスウインドウ内であるかどうか決定する。適当なケイデンスウインドウ内にまだ時間がある場合には、プロセスは、そのユーザ活動に対してブロック７６５へ戻る。ケイデンスウインドウが閉じた場合には、適当なバッファされたカウントがゼロにリセットされる（ブロック７７５）。次いで、プロセスは、ブロック７７７へ続く。
【０１０１】
ブロック７７７において、処理ロジックは、当該加速度が検出されたかどうか決定する。ユーザ活動のいずれについても当該加速度が検出されない場合には、スリープモードが開始される（ブロック７７９）。いずれかのユーザ活動について何らかの当該加速度が検出された場合は、処理ロジックは、ブロック７５７へ戻り、適当なユーザ活動について別の第１の周期的な人間の動きが認識されるのを待機する。
【０１０２】
ブロック７６５において、付加的な周期的な人間の動きが認識された場合には、プロセスは、適当なユーザ活動についてブロック７８３へ続き、適当な周期的な人間の動きが、適当なバッファカウントに追加される。
【０１０３】
ブロック７８８において、処理ロジックは、適当なユーザ活動ごとに否定的な事象が認識されたかどうかチェックする。否定的な事象が認識されるユーザ活動については、プロセスがブロック７７５へ続き、適当なバッファされたカウントがゼロにリセットされる。否定的な事象が認識されないユーザ活動については、プロセスがブロック７９０へ続く。
【０１０４】
ブロック７９０において、プロセスは、現在ユーザ活動を識別するのに充分な周期的な人間の動きが認識されたかどうか決定する。特定のユーザ活動について充分な周期的な人間の動きが認識された場合には、プロセスは、ブロック７９５へ続く。ブロック７９５において、適当なバッファされたカウントにおけるエントリーが動きログへ追加されると共に、識別された活動についてアクティブモードが開始される。
【０１０５】
図８は、本発明の一実施形態により、電子装置をアクティブモードで動作する方法８００のフローチャートである。一実施形態において、方法８００は、図５の適当なアクティブモード５２５に対応する。アクティブモードは、特定の動き状態が識別されたときに開始される。一実施形態において、方法８００は、導入モードが終了されたとき及び／又は退出モードが終了されたときに開始される。
【０１０６】
図８を参照すれば、方法８００は、ケイデンスウインドウをセットすることにより開始する（ブロック８１０）。ケイデンスウインドウは、以前の測定データに基づいてセットされる。一実施形態において、ケイデンスウインドウは、動きサイクル周期のローリング平均に基づいてセットされる。一実施形態において、ケイデンスウインドウは、導入モード中に使用された適当なケイデンスウインドウと同じである。ケイデンスウインドウがセットされると、付加的な周期的な人間の動きが認識されるかどうか決定するために測定データがチェックされる（ブロック８１５）。付加的な周期的な人間の動きが認識される場合には、それが動きログに追加される（ブロック８２０）。付加的な周期的な人間の動きが認識されない場合には、プロセスは、否定的な事象が認識されたかどうか決定する（８２２）。否定的な事象が認識された場合には、プロセスは、ブロック８３０へ続き、退出モードが開始される。否定的な事象が認識されない場合には、プロセスは、ブロック８２５へ続く。
【０１０７】
ブロック８２５において、プロセスは、現在測定がケイデンスウインドウ内で得られたかどうか決定する。ケイデンスウインドウがまだオープンしている場合には、プロセスは、ブロック８１５へ戻る。ケイデンスウインドウが経過した場合には、予想される周期的な人間の動きが識別されず、退出モードが開始される（ブロック８３０）。
【０１０８】
図９は、本発明の一実施形態により、電子装置を退出モードで動作する方法９００のフローチャートである。一実施形態において、方法９００は、図５の適当な退出モード５３５に対応する。退出モードには、予想される周期的な人間の動きがアクティブモードにおいて識別されなかったときに入る。
【０１０９】
一実施形態において、退出モードからアクティブモードへ切り換える要求は、導入モードからアクティブモードへ切り換える要求よりも厳格でない。処理ロジックは、ユーザが周期的な人間の動きを最近行ったときに、ユーザは、同じ周期的な人間の動きを繰り返す見込みが高いと仮定する。例えば、インラインスケートを行うユーザは、ジョギングを始めるよりスケート運動を続ける見込みが非常に高い。更に、人々がつまずいたり、歩調を誤ったり、又はその他、基礎的な活動を続ける間に予期せぬことを行ったときには、活動の瞬間的な中断が生じる。処理ロジックは、ユーザが現在無活動である場合には、おそらく、ユーザが無活動のままであるとも仮定する。これらの仮定は、退出モードからアクティブモードへの変化より導入モードからアクティブモードへの切り換えにより厳格な要求を課することにより具現化される。アクティブモードに留まる要求は、導入モードからであるか退出モードからであるかに関わらずアクティブモードを開始する要求より厳格さがずっと低い。
【０１１０】
予想される周期的な人間の動きは、例えば、ユーザが動きを停止するとき、周期的な人間の動きのカウントを妨げるジェスチャーのような無関係の動きがなされたとき、或いは周期的な人間の動きが生じるときに装置の向きが変化したときには、識別されないことがある。一実施形態において、退出モードは、周期的な人間の動きが抜けたと仮定し、従って、ユーザがまだ同じ活動を続けていると退出モードが決定する場合には、元々カウントされなかった周期的な人間の動きが抜けないようにする。
【０１１１】
プロセスは、タイマーを開始することにより始まる（ブロック９０５）。タイマーは、周期的な人間の動きが識別されて以来経過した時間量を測定する。一実施形態において、タイマーは、それがゼロに到達したときに退出モードを終了するカウントダウンタイマーである。一実施形態において、タイマーは、ケイデンスウインドウの最小値に到達したときにカウントを開始し、そしてケイデンスウインドウの最大値に到達したときにカウントを停止する。別の実施形態では、タイマーは、退出モードが開始するや否やカウントを開始し、そしてケイデンスウインドウの最大値に到達したときにカウントを停止する。
【０１１２】
ブロック９１０において、周期的な人間の動きが、バッファされたカウントに追加される。ブロック９１５において、処理ロジックは、バッファされたカウントがＸに等しいかどうか決定する。但し、Ｘは、識別された周期的な人間の動きの数で、これに到達すると、処理ロジックを適当なアクティブモードに戻す。一実施形態において、Ｘは、３ないし８である。一実施形態において、Ｘの値は、退出モードが開始されたところの特定のアクティブモードに依存する。バッファされたカウントがＸに等しい場合には、バッファされた周期的な人間の動きが動きログに追加され、以前の（適当な）アクティブモードが再開される（ブロック９２０）。バッファされたカウントがＸに等しくない場合には、処理ロジックは、ブロック９２５へ進む。
【０１１３】
ブロック９２５において、処理ロジックは、タイマーが時間切れしたか（割り当てられた時間が経過したか）どうか決定する。一実施形態において、タイマーは、ケイデンスウインドウ内で周期的な人間の動きがカウントされないときに時間切れする。一実施形態において、タイマーは、２つ以上のケイデンスウインドウにおいて周期的な人間の動きがカウントされないときに時間切れする。割り当てられた時間が経過した場合には、バッファされたカウントがクリアされ、導入モードが開始される（ブロック９３０）。割り当てられた時間が経過しない場合には、処理ロジックは、否定的な事象が発生したかどうか決定する（ブロック９３２）。否定的な事象が発生した場合には、この方法は、ブロック９３０へ戻る。否定的な事象が発生しない場合には、この方法は、ブロック９３５へ進む。
【０１１４】
ブロック９３５において、処理ロジックは、付加的な周期的な人間の動きが認識されたかどうか決定する。付加的な周期的な人間の動きが認識された場合には、タイマーがリセットされ（ブロック９０５）、バッファされたカウントが１だけインクリメントされ（ブロック９１０）、プロセスは、ブロック９１５へ続く。周期的な人間の動きが認識されない場合には、処理ロジックは、ブロック９２５へ戻り、タイマーが経過したかどうか決定する。
【０１１５】
図１０は、本発明の一実施形態により、周期的な人間の動きを認識する方法１０００のフローチャートである。一実施形態において、この方法１０００は、図７Ａのブロック７１０及び７２４、図７Ｂのブロック７５７及び７６５、図８のブロック８１５及び図９のブロック９３５の１つ以上によって実行される。一実施形態において、この方法１０００は、図１の電子装置１００又は図２の動き識別システム２００により遂行される。
【０１１６】
図１０を参照すれば、このプロセスは、加速度データの測定値が受け取られることで開始する（ブロック１００５）。測定は、変化するサンプリングレートに基づいて行われる。一実施形態において、サンプリングレートは、使用する動作モードに基づき、毎秒１回の測定から、毎秒何回もの測定までの範囲である。
【０１１７】
処理ブロック１０１０において、一実施形態では、測定値がフィルタリングされる。測定値は、高周波数データ及び／又は低周波数データを除去するためにフィルタリングすることができる。一実施形態において、どんなデータをフィルタリングすべきかは、検出されるユーザ活動の形式に基づく。処理ブロック１０１２において、一実施形態では、優性軸を指定することにより慣性センサが方向付けされる。優性軸を指定することは、加速度のローリング平均を計算し、そして加速度のローリング平均に基づいて優性軸を指定することを含む。又、優性軸を指定することは、どの軸が最も大きなピーク・ピーク差を有するか決定することも含む。一実施形態において、フィルタリングは、優性軸に沿ったものではない加速度データを単純に除去する。
【０１１８】
ブロック１０１５において、処理ロジックは、測定値がケイデンスウインドウ内にあるかどうか決定する。測定値がケイデンスウインドウ内にない場合には、その測定値に対して周期的な人間の動きが認識又はカウントされない（ブロック１０４０）。測定値がケイデンスウインドウ内にある場合には、プロセスは、ブロック１０１７へ続く。
【０１１９】
ブロック１０１７において、処理ロジックは、動き基準を満足するかどうか決定する。例えば、一実施形態では、プロセスは、優性軸に沿った加速度が下限スレッシュホールドより大きいかどうか決定する。一実施形態では、プロセスは、測定値がローリング平均を設定余裕だけ越えるかどうか決定する。又、一実施形態では、処理ロジックは、優性軸に沿った加速度が以前の測定値より大きいかどうか決定する。又、ここに述べる以外の基準を使用してもよい。
【０１２０】
必要とされる全ての動き基準を満足する場合には、適当な周期的な人間の動きがカウントされる（ブロック１０３５）。一実施形態では、検出された動きからのデータが、上述したように、ローリング平均にも追加される。更に、上述したように、このプロセスは、装置が周期的な人間の動きを監視する間続けられる。
【０１２１】
図１１は、本発明の一実施形態により、慣性センサを使用して動き状態を決定しそして利用する方法１１００のフローチャートである。この方法は、ハードウェア（例えば、回路、専用ロジック、プログラム可能なロジック、マイクロコード、等）、ソフトウェア（処理装置で実行されるインストラクションのような）、又はその組み合わせを含む処理ロジックにより遂行される。一実施形態では、この方法１１００は、図１の電子装置１００により遂行される。一実施形態では、この方法１１００は、図２の動き識別システム２００により遂行される。
【０１２２】
図１１を参照すれば、方法１１００は、加速度を監視することで始まる（ブロック１１０５）。加速度は、慣性センサ又は他の加速度監視装置で監視される。監視される加速度は、上述したように、フィルタされ処理された加速度データを含む。ブロック１１１０において、動きは、加速度に基づき複数の考えられる動き状態の１つ以上に対応するものとして識別される。一実施形態において、単一の動き状態が識別される。別の実施形態では、確信度評価を各々伴う複数の考えられる動き状態が識別される。例えば、ユーザが歩行している確信度が９０％であり且つユーザが跳び歩いている確信度が１０％であると決定される。動き状態は、ユーザの活動（例えば、歩行、自転車乗り、インラインスケート、エリプティカルマシンの使用、ローイングマシンの使用、ランニング、跳び歩き、階段登り、等）、及び非活動の動き状態（例えば、立っている、座っている、乗物に乗っている、エレベータに乗っている、エスカレータに乗っている、等）を含む。
【０１２３】
ブロック１１１５において、ユーザ動き状態識別サービスの契約リストをスキャニングして、いずれかのプログラムが動き関連情報サービスと契約しているかどうか決定する。１つ以上のプログラムがサービスと契約している場合には、この方法は、ブロック１１２０へ続く。さもなければ、この方法は、ブロック１１０５へ戻り、動き状態の監視を続ける。
【０１２４】
ブロック１１２０において、ユーザ動き状態サービスの契約リストにおけるエントリーをスキャニングして、通知基準を決定する。通知基準は、例えば、ユーザ動き状態の変化、所定の時間インターバル、等を含む。エントリーの基準を満足する場合には、この方法は、ブロック１１２５へ続く。さもなければ、この方法は、ブロック１１０５へ戻る。
【０１２５】
ブロック１１２５において、ユーザ動き状態契約リストのエントリーに対応するプログラムには、識別されたユーザ動き状態が通知される。次いで、この方法は、ブロック１１０５へ戻る。
【０１２６】
図１２は、動き関連情報を使用してプログラム設定を変更する方法１２００のフローチャートである。この方法は、ハードウェア（例えば、回路、専用ロジック、プログラム可能なロジック、マイクロコード、等）、ソフトウェア（処理装置で実行されるインストラクションのような）、又はその組み合わせを含む処理ロジックにより遂行される。一実施形態では、この方法１２００は、図１の電子装置１００により遂行される。一実施形態では、この方法１２００は、図２の動き識別システム２００に結合されたプログラム２９０により遂行される。
【０１２７】
図１２を参照すれば、方法１２００は、プログラムが現在のユーザ動き状態情報を受け取ることで始まる（ブロック１２０５）。一実施形態において、プログラムは、動き状態データを受け取るために動き識別システム及び／又はキャッシュをポーリングする。別の実施形態では、動き状態識別システムが、ポーリングなしに、動き状態データをプログラムへ送る。一実施形態において、プログラムは、ユーザ動き状態識別サービス又は他の動き関連情報サービスと契約する。動き識別システムは、既定の条件が満足されると、サービスと契約する全てのプログラムにユーザ動き状態識別を送る。例えば、動き識別システムは、現在ユーザ動き状態が変化するときに現在ユーザ動き状態の更新を送るか、又は他の契約基準に基づいて更新を送る。
【０１２８】
一実施形態では、単一のユーザ動き状態が識別される。別の実施形態では、確信度評価を各々伴う複数の異なる動き状態が識別される。例えば、ユーザが歩行している確信度が９０％であり且つユーザが車に乗っている確信度が１０％であると決定される。
【０１２９】
一実施形態では、付加的な動き関連情報が動き識別システムから受け取られる。例えば、プログラムは、ケイデンス情報、優性軸情報、等を受け取る。
【０１３０】
ブロック１２１５において、プログラムは、動き状態が変化したかどうか決定する。現在動き状態が変化しない場合には、この方法は、終了となる。現在動き状態が変化した場合には、この方法は、ブロック１２２０へ続く。
【０１３１】
ブロック１２２０において、プログラムは、現在動き状態に基づきその設定の１つ以上を変更すべきかどうか決定する。又、付加的な動き関連情報に基づいて１つ以上の設定が調整されてもよい。変更される設定は、プログラムの形式及び動き状態の変化に基づく。例えば、音楽アプリケーション又は電話アプリケーションが、識別された動き状態に基づきボリュームを調整するか、ジェスチャーアプリケーションが利用可能な動きを変更するか、スクリーンがターンオフされるか、ノイズ減少システムがイネーブルされるか、等々である。新たな動き状態が設定の変化を招く場合には、ブロック１２３０において、適当な設定がプログラムにおいて変更される。次いで、プロセスは、終了となる。設定の変化が適用されない場合には、この方法は、終了となる。
【０１３２】
図１３は、本発明を具現化する規範的形態のコンピュータシステム１３００内の特定のマシンを示す規範的ブロック図である。この規範的なコンピュータシステム１３００は、処理装置（プロセッサ）１３０５と、メモリ１３１０（例えば、リードオンリメモリ（ＲＯＭ）、フラッシュメモリ、記憶装置、スタティックメモリ、等）と、バス１３２０を経て互いに通信する入力／出力１３１５とを備えている。本発明の実施形態は、コンピュータシステム１３００及び／又は付加的なハードウェアコンポーネント（図示せず）により遂行されるか、或いはインストラクションでプログラムされたときにプロセッサ１３０５が上述した方法を遂行するようにさせるのに使用されるマシン実行可能なインストラクションで実施される。或いは又、この方法は、ハードウェア及びソフトウェアの組み合わせで遂行されてもよい。
【０１３３】
プロセッサ１３０５は、マイクロプロセッサ、中央処理ユニット、等の１つ以上の汎用処理装置を表す。より詳細には、プロセッサ１３０５は、複合インストラクションセットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、簡略化インストラクションセットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長インストラクションワード（ＶＬＩＷ）マイクロプロセッサ、或いは他のインストラクションセットを具現化するプロセッサ、又はインストラクションセットの組み合わせを具現化するプロセッサである。又、プロセッサ１３０５は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、ネットワークプロセッサ、等の１つ以上の特殊目的処理装置でもよい。
【０１３４】
本発明は、メモリ１３１０に記憶されるコンピュータプログラム製品又はソフトウェアとして提供されてもよい。メモリ１３１０は、本発明によるプロセスを遂行するように規範的なコンピュータシステム１３００（又は他の電子装置）をプログラムするのに使用されるインストラクションが記憶されたマシン読み取り可能な媒体を含んでもよい。規範的なコンピュータシステム１３００（又は他の電子装置）をプログラムするためのインストラクションが記憶される他のマシン読み取り可能な媒体は、フロッピーディスケット、光学的ディスク、ＣＤ−ＲＯＭ、磁気−光学ディスク、ＲＯＭ、ＲＡＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気又は光学的カード、フラッシュメモリ、或いは電子的インストラクションを記憶するのに適した他の形式の媒体又はマシン読み取り可能な媒体を含むが、これらに限定されない。
【０１３５】
入力／出力１３１５は、付加的な装置及び／又はコンポーネントとの通信を行うことができる。一実施形態において、入力／出力１３１５は、例えば、ネットワークコンピュータ、サーバー、移動装置、等へデータを送信し及びそこからデータを受信する。入力／出力１３１５は、スクリーン、スピーカ、又はユーザと通信する他のメカニズム、及びボタン、キー、タッチ感知エリア、又はユーザが装置へ入力を与えることができるようにする他の手段を含む。一実施形態において、装置は、更に、装置がサーバー（図示せず）又は別のコンピュータと通信できるようにするネットワーキング１３２０を備えている。一実施形態において、装置は、ユーザインターフェイス特徴を含まず、入力／出力１３１５は、装置が接続できるローカル又はリモートのコンピュータシステムと対話するように設計される。例えば、ユーザは、ウェブインターフェイス又はローカルコンピュータプログラムを経て装置の構成及び装置との対話を遂行することができる。
【０１３６】
以上の説明において、本発明を充分に理解するために、例えば、特定のシステム、言語、コンポーネント、等の多数の特定の細部について述べた。しかしながら、当業者であれば、本発明を実施するためにこれら特定の細部を使用する必要がないことが明らかであろう。他の点について、本発明を不必要に不明瞭にしないために、良く知られた材料や方法は詳細に述べなかった。本発明は、特定の規範的な実施形態を参照して説明した。しかしながら、特許請求の範囲に規定された本発明の広い精神及び範囲から逸脱せずに種々の変更や置き換えがなされ得ることが明らかであろう。従って、本明細書及び図面は、これに限定するのではなく、例示とみなすべきである。
【符号の説明】
【０１３７】
１００：電子装置
１０５：加速度測定ロジック
１１０：動き状態識別エンジン
１２０：動きプロセッサ
１２５：動きログ
１３０：プログラム
２００：動き状態識別システム
２０５：加速度測定ロジック
２２０：フィルタ
２２７：優性軸ロジック
２３０：動きプロセッサ
２３２：ケイデンスロジック
２３５：ローリング平均ロジック
２５５：モードロジック
２６０：カウントロジック
２６５：カウントバッファ
２７５：動きログ
２８０：動き状態ＩＤエンジン
２８５：動き状態識別ロジック
２９０：プログラム
２９２：契約ロジック
１３０５：プロセッサ
１３１０：メモリ
１３１５：入力／出力
１３２０：バス
【図１】
0005669317.tif 000002
【図２】
0005669317.tif 000003
【図３Ａ】
0005669317.tif 000004
【図３Ｂ】
0005669317.tif 000005
【図４Ａ】
0005669317.tif 000006
【図４Ｂ】
0005669317.tif 000007
【図５】
0005669317.tif 000008
【図６】
0005669317.tif 000009
【図７Ａ】
0005669317.tif 000010
【図７Ｂ】
0005669317.tif 000011
【図８】
0005669317.tif 000012
【図９】
0005669317.tif 000013
【図１０】
0005669317.tif 000014
【図１１】
0005669317.tif 000015
【図１２】
0005669317.tif 000016
【図１３】
0005669317.tif 000017