(57)【要約】モーションデータを圧縮して送信するシステム、方法、および装置である。この方法は、モーションセンシング装置から、複数のモーションデータサンプルを含む高忠実度モーションデータを受信する工程と、高忠実度モーションデータをサーバに送信する工程と、高忠実度モーションデータを圧縮する工程であって、モーションデータサンプルのサブセットを識別することと、モーションデータサンプルのサブセットに基づいて、アクティビティの要約を表す値を生成することとを含む、工程と、圧縮された高忠実度モーションデータをサーバに送信する工程とを含む。
2020502833.tif 000002
【特許請求の範囲】
【請求項１】
モーションデータを圧縮して送信する方法において、
モーションセンシング装置から、複数のモーションデータサンプルを含む高忠実度モーションデータを受信する工程と、
前記高忠実度モーションデータをサーバに送信する工程と、
前記高忠実度モーションデータを圧縮する工程であって、前記モーションデータサンプルのサブセットを識別することと、前記モーションデータサンプルの前記サブセットに基づいて、アクティビティの要約を表す値を生成することとを含む、工程と、
前記圧縮された高忠実度モーションデータをサーバに送信する工程と
を含むことを特徴とする方法。
【請求項２】
前記モーションセンシング装置から前記高忠実度モーションデータを受信する前記工程が、１以上の加速度計から前記高忠実度モーションデータを受信することを含む、請求項１記載の方法。
【請求項３】
前記高忠実度モーションデータが、少なくとも１つの軸について収集された加速度データを含む、請求項２記載の方法。
【請求項４】
前記モーションセンシング装置から前記高忠実度モーションデータを受信する前記工程が、所定の間隔に従って前記高忠実度モーションデータを受信することを含む、請求項１記載の方法。
【請求項５】
前記高忠実度モーションデータを前記サーバに送信する前記工程が、Ｗｉ−ＦｉまたはＢｌｕｅｔｏｏｔｈネットワークが使用可能であることを決定した後で、前記高忠実度モーションデータを前記サーバに送信することを含む、請求項１記載の方法。
【請求項６】
前記高忠実度モーションデータを前記サーバに送信する前記工程が、システムのリセット、ジオフェンスが侵されたこと、手動での押下、またはタイマーの終了から成る群から選択されるトリガ条件が満たされたことを決定した後で、前記高忠実度モーションデータを前記サーバに送信することを含む、請求項１記載の方法。
【請求項７】
前記高忠実度モーションデータを圧縮する前記工程が、
複数の軸についての複数のデータ点を含む前記高忠実度モーションデータのサブセットを識別する工程と、
前記複数の軸のうちの１以上を選択する工程と、
前記選択された軸についての変化率を算出する工程と、
前記選択された軸について算出された前記変化率に基づいて、アクティビティの要約を算出する工程と
を含む、請求項１記載の方法。
【請求項８】
前記圧縮された高忠実度モーションデータに基づいて、複数のアクティビティ視覚化表現を生成する工程を更に含む、請求項１記載の方法。
【請求項９】
前記圧縮された高忠実度モーションデータに対応する前記高忠実度モーションデータを送信した後で、前記複数のアクティビティ視覚化表現を更新する工程を更に含む、請求項８記載の方法。
【請求項１０】
モーションデータを圧縮して送信する装置において、
プロセッサと、
コンピュータが実行可能な指示を格納した非一過性のメモリと
を含み、
前記指示が、前記プロセッサによって実行されたときに、前記装置に、
モーションセンシング装置から、複数のモーションデータサンプルを含む高忠実度モーションデータを受信する工程と、
前記高忠実度モーションデータを前記サーバに送信する工程と、
前記高忠実度モーションデータを圧縮する工程であって、前記モーションデータサンプルのサブセットを識別することと、前記モーションデータサンプルの前記サブセットに基づいて、アクティビティの要約を表す値を生成することとを含む、工程と、
前記圧縮された高忠実度モーションデータをサーバに送信する工程と
を行わせることを特徴とする装置。
【請求項１１】
前記モーションセンシング装置から前記高忠実度モーションデータを受信する前記工程が、１以上の加速度計から前記高忠実度モーションデータを受信することを含む、請求項１０記載の装置。
【請求項１２】
前記高忠実度モーションデータが、少なくとも１つの軸について収集された加速度データを含む、請求項１１記載の装置。
【請求項１３】
前記モーションセンシング装置から前記高忠実度モーションデータを受信する前記工程が、所定の間隔に従って前記高忠実度モーションデータを受信することを含む、請求項１０記載の装置。
【請求項１４】
前記高忠実度モーションデータを前記サーバに送信する前記工程が、Ｗｉ−ＦｉまたはＢｌｕｅｔｏｏｔｈネットワークが使用可能であることを決定した後で、前記高忠実度モーションデータを前記サーバに送信することを含む、請求項１０記載の装置。
【請求項１５】
前記高忠実度モーションデータを前記サーバに送信する前記工程が、システムのリセット、ジオフェンスが侵されたこと、手動での押下、またはタイマーの終了から成る群から選択されるトリガ条件が満たされたことを決定した後で、前記高忠実度モーションデータを前記サーバに送信することを含む、請求項１０記載の装置。
【請求項１６】
前記高忠実度モーションデータを圧縮する前記工程が、
複数の軸についての複数のデータ点を含む前記高忠実度モーションデータのサブセットを識別する工程と、
前記複数の軸のうちの１以上を選択する工程と、
前記選択された軸についての変化率を算出する工程と、
前記選択された軸について算出された前記変化率に基づいて、アクティビティの要約を算出する工程と
を含む、請求項１０記載の装置。
【請求項１７】
前記非一過性のメモリが、コンピュータが実行可能な指示が前記プロセッサによって実行されたときに、前記装置に、前記圧縮された高忠実度モーションデータに基づいて、複数のアクティビティ視覚化表現を生成させる、コンピュータが実行可能な指示を更に格納した、請求項１０記載の装置。
【請求項１８】
前記非一過性のメモリが、コンピュータが実行可能な指示が前記プロセッサによって実行されたときに、前記装置に、前記圧縮された高忠実度モーションデータに対応する前記高忠実度モーションデータを送信した後で、前記複数のアクティビティ視覚化表現を更新させる、コンピュータが実行可能な指示を更に格納した、請求項１７記載の装置。
【請求項１９】
モーションデータを圧縮して送信するシステムにおいて、
ネットワークに接続されたトラッキング装置と、
前記ネットワークに接続されたサーバと
を含み、
前記トラッキング装置が、
モーションセンシング装置から、複数のモーションデータサンプルを含む高忠実度モーションデータを受信する工程と、
前記高忠実度モーションデータをサーバに送信する工程と、
前記高忠実度モーションデータを圧縮する工程であって、前記モーションデータサンプルのサブセットを識別することと、前記モーションデータサンプルの前記サブセットに基づいて、アクティビティの要約を表す値を生成することとを含む、工程と、
前記圧縮された高忠実度モーションデータをサーバに送信する工程と
を行うよう構成され、
前記サーバが、
前記トラッキング装置から高忠実度および低忠実度モーションデータを受信する工程と、
前記受信された高忠実度および低忠実度モーションデータに基づいて、１以上の視覚化表現を生成する工程と、
前記１以上の視覚化表現をモバイル装置に送信する工程と
を行うよう構成された
ことを特徴とするシステム。
【請求項２０】
前記高忠実度モーションデータを圧縮する前記工程が
複数の軸についての複数のデータ点を含む前記高忠実度モーションデータのサブセットを識別する工程と、
前記複数の軸のうちの１以上を選択する工程と、
前記選択された軸についての変化率を算出する工程と、
前記選択された軸について算出された前記変化率に基づいて、アクティビティの要約を算出する工程と
を含む、請求項１９記載のシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は、２０１６年１０月６日に出願された米国特許出願第１５／２８７，５４４号による優先権を主張するものであり、その全体を参照して本明細書に組み込む。
【技術分野】
【０００２】
本開示に記載される実施形態は、アクティビティまたは位置に基づくトラッキングの分野に関し、具体的には、当該分野において帯域幅の使用を最適化することに関する。
【背景技術】
【０００３】
ウェアラブルデバイス（例えば、スマートウォッチ、位置トラッカー等）の使用の増加と共に、現在では、かなりの量のデータがウェアラブルデバイスによってリアルタイムで収集されている。これらの装置の多くは、収集された生データを処理し、解析し、その視覚化表現を呈示するために、収集されたデータをサーバに送信することを必要とする。
【０００４】
リアルタイムデータ（例えば、加速度計データ）の収集および解析は、ウェアラブルデバイスのユーザに大きな利益（例えば、動きをモニタリングし、進捗を追跡し、ゴールに到達する能力）を提供するが、そのような利益は、ユーザが費用を負担することでもたらされる。具体的には、正確で網羅的な視覚化表現を提供するために、多くの現行のシステムは、ウェアラブルデバイスから、キャプチャされたデータの全てまたは略全てを、サーバに基づく処理システムに送信することを必要とする。一部のタイプのデータ（例えば、動きデータ）については、これはかなりの量のデータになり得る。例えば、ウェアラブルデバイスが毎秒１キロバイトのデータを収集する場合には、ウェアラブルデバイスは、理論上、毎時約３メガバイトを転送し得る。更に、ウェアラブルデバイスが、このデータを、無線ネットワーク（例えば、セルラーネットワーク）を介して送信する場合には、ユーザは、そのようなデータを送信するためにかなりの費用を負担し得る。
【０００５】
そのような問題は、人間以外の存在物と共に用いられるシステムについては、増大する。例えば、人間は、データの送信を手動で制御できる場合があり、または、長時間にわたって静止している場合があるが、人間以外の存在物（例えば、ペット）に装着されたウェアラブルデバイスは、そのような介入を受けない。例えば、ペット上に存在するウェアラブルトラッキング装置は、ペットのアクティビティを正確にモニタリングするために、データを途切れることなく常時連続的に送信し得る。
【０００６】
従って、現在、当該技術分野においては、ウェアラブルデバイス技術における上述の不備を改善する必要性が存在する。具体的には、当該技術分野においては、低減されたデータの有用性を保ちつつ、法外にコストがかかるネットワーク（例えば、セルラーネットワーク）を介して送信されるデータの量を低減する必要性が存在する。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
上述の不備を改善するために、本開示は、帯域幅が限られたまたはコストが高いネットワーク（例えば、セルラーネットワーク等）を介した送信のために高忠実度モーションデータを圧縮するシステム、方法、および装置を呈示する。
【課題を解決するための手段】
【０００８】
一実施形態において、本開示は、モーションデータを圧縮して送信する方法を記載する。本方法は、モーションセンシング装置から、複数のモーションデータサンプルを含む高忠実度モーションデータを受信する工程と、高忠実度転送事象が生じている場合に、高忠実度モーションデータをサーバに送信する工程と、高忠実度モーションデータを圧縮する工程であって、モーションデータサンプルのサブセットを識別することと、モーションデータサンプルのサブセットに基づいて、アクティビティの要約を表す値を生成することとを含む、工程と、圧縮された高忠実度モーションデータをサーバに送信する工程とを含む。
【０００９】
一実施形態において、本開示は、モーションデータを圧縮して送信する装置を記載する。本装置は、プロセッサと、コンピュータが実行可能な指示を格納した非一過性のメモリとを含む。コンピュータが実行可能な指示は、プロセッサによって実行されたときに、装置に、モーションセンシング装置から、複数のモーションデータサンプルを含む高忠実度モーションデータを受信する工程と、高忠実度転送事象が生じている場合に、高忠実度モーションデータをサーバに送信する工程と、高忠実度モーションデータを圧縮する工程であって、モーションデータサンプルのサブセットを識別することと、モーションデータサンプルのサブセットに基づいて、アクティビティの要約を表す値を生成することとを含む、工程と、圧縮された高忠実度モーションデータをサーバに送信する工程とを行わせる。
【００１０】
一実施形態において、本開示は、モーションデータを圧縮して送信するシステムを記載する。本システムは、ネットワークに接続されたトラッキング装置を含み、トラッキング装置は、モーションセンシング装置から、複数のモーションデータサンプルを含む高忠実度モーションデータを受信する工程と、高忠実度転送事象が生じているか否かを決定する工程と、高忠実度転送事象が生じている場合に、高忠実度モーションデータをサーバに送信する工程と、高忠実度転送事象が生じていない場合に、高忠実度モーションデータを圧縮する工程であって、モーションデータサンプルのサブセットを識別することと、モーションデータサンプルのサブセットに基づいて、アクティビティの要約を表す値を生成することとを含む、工程と、圧縮された高忠実度モーションデータをサーバに送信する工程とを行うよう構成される。本システムは、ネットワークに接続されたサーバを更に含み、サーバは、トラッキング装置から高忠実度および低忠実度モーションデータを受信する工程と、受信された高忠実度および低忠実度モーションデータに基づいて、１以上の視覚化表現を生成する工程と、１以上の視覚化表現をモバイル装置に送信する工程とを行うよう構成される。
【００１１】
本開示の上記および他の目的、特徴、および長所は、添付の図面に示されているような実施形態の以下の説明から自明であり、様々な図面を通して、参照番号はそれぞれ同じ部分を参照している。図面は必ずしも縮尺通りではなく、むしろ、本開示の原理を示すことを重視したものである。
【図面の簡単な説明】
【００１２】
【図１】本開示の幾つかの実施形態による、圧縮されたモーションデータを送信するシステムを示すネットワーク図
【図２】本開示の幾つかの実施形態による、圧縮されたモーションデータを送信するトラッキング装置を示す物理的な図
【図３】本開示の幾つかの実施形態による、圧縮されたモーションデータを送信するトラッキング装置を示す論理的なブロック図
【図４Ａ】本開示の幾つかの実施形態による、モーションデータを圧縮して格納する方法を示すフロー図
【図４Ｂ】本開示の幾つかの実施形態による、格納されているモーションデータを送信する方法を示すフロー図
【図５】本開示の幾つかの実施形態による、モーションデータを圧縮する方法を示すフロー図
【図６】本開示の幾つかの実施形態による、高忠実度転送事象を検出する方法を示すフロー図
【図７】本開示の幾つかの実施形態による、アクティビティデータを表示するためのユーザインターフェースを示す
【発明を実施するための形態】
【００１３】
以下、本明細書において、本明細書の一部をなし、説明のための特定の例示的な実施形態を示している添付の図面を参照し、本開示をより完全に説明する。しかし、主題は、様々な異なる形態で具現化され得るものであり、従って、カバーされているまたは特許請求される主題は、本明細書において述べられるいずれの例示的な実施形態にも限定されないものと解釈されることが意図され、例示的な実施形態は、単に、説明を目的として提供されるものである。同様に、特許請求されるまたはカバーされている主題については、妥当に広い範囲が意図される。とりわけ、例えば、主題は、方法、装置、コンポーネント、またはシステムとして具現化され得る。従って、実施形態は、例えば、（ソフトウェア自体ではなく）ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せの形態をとってもよい。従って、以下の詳細な説明は、限定する意味で解釈されることは意図されない。
【００１４】
本明細書および請求項を通して、用語は、明示的に述べられている意味を超えた、文脈において示唆または暗示されるニュアンス的な意味を含み得る。同様に、本明細書において用いられる「一実施形態において」という語句は、必ずしも同じ実施形態を指すものではないく、本明細書において用いられる「別の実施形態では」という語句は、必ずしも異なる実施形態を指すものではない。例えば、特許請求される主題は、例示的な実施形態の全体的または部分的な組合せを含むことが意図される。
【００１５】
一般的に、用語は、少なくとも部分的に、文脈における使用法から理解され得る。例えば、例えば、本明細書において用いられる「および」、「または」、または「および／または」等の用語は、そのような用語が用いられている文脈に少なくとも部分的に依存し得る様々な意味を含み得る。典型的には、「または」が、例えば、「Ａ、Ｂ、またはＣ」のように、リストを関連付けるために用いられる場合には、これは、ここでは排他的な意味で用いている「Ａ、Ｂ、またはＣ」だけでなく、ここでは包含的な意味で用いている「Ａ、Ｂ、およびＣ」も意味することが意図される。それに加えて、本明細書において用いられる「１以上」という用語は、文脈に少なくとも部分的に依存して、単数の意味で、任意の特徴、構造、または特性を記述するために用いられ得ると共に、複数の意味で、特徴、構造、または特性の組合せを記述するために用いられ得る。同様に、例えば、名詞は、文脈に少なくとも部分的に依存して、単数の対象を指すものとして、または複数の対象を指すものとして理解され得る。それに加えて、「に基づいて」という用語は、文脈に少なくとも部分的に依存して、排他的な１組の要因を伝えることは必ずしも意図せず、むしろ、必ずしも明示的に記載されていない更なる要因の存在を認めるものと理解され得る。
【００１６】
以下に、本開示を、方法および装置のブロック図および動作的な図を参照して説明する。ブロック図または動作的な図の各ブロック、および、ブロック図または動作的な図の複数のブロックの組合せは、アナログまたはデジタルハードウェアおよびコンピュータプログラム指示を用いて実装され得ることが理解される。これらのコンピュータプログラム指示は、汎用コンピュータに供給されて、その機能を、本明細書において詳細を述べられるように変えてもよく、専用コンピュータ、ＡＳＩＣ、または他のプログラム可能データ処理装置のプロセッサに供給されてもよく、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される指示が、ブロック図または動作的な１もしくは複数のブロックにおいて指定されている機能／動作を実装するようになっている。幾つかの別の実装例では、ブロックに記されている機能／動作は、動作的な図に記されている順序から外れて生じ得る。例えば、続けて示されている２つのブロックが、実際には略同時に実行されてもよく、または、それらのブロックが、含まれる機能／動作に応じて、逆の順序で実行される場合もあり得る。
【００１７】
これらのコンピュータプログラム指示は、汎用コンピュータ（その機能を専用に変えるために）、専用コンピュータ、ＡＳＩＣ、または他のプログラム可能デジタルデータ処理装置のプロセッサに供給されて、コンピュータまたは他のプログラム可能データ処理装置のプロセッサによって実行される指示が、ブロック図または動作的な１もしくは複数のブロックにおいて指定されている機能／動作を実装することにより、それらの機能を、本明細書における実施形態に従って変換し得る。
【００１８】
本開示の目的で、コンピュータ可読媒体（またはコンピュータ可読ストレージ媒体）は、コンピュータデータを格納しており、このデータは、コンピュータによって実行可能な機械可読形態のコンピュータプログラムコード（またはコンピュータが実行可能な指示）を含み得る。限定するものではない例として、コンピュータ可読媒体は、データの有形のもしくは固定されたストレージのためのコンピュータ可読ストレージ媒体、または、コードを含む信号の過渡的な解釈のための通信媒体を含み得る。本明細書において用いられるコンピュータ可読ストレージ媒体は、（信号ではなく）物理的なまたは有形のストレージを指し、情報（例えば、コンピュータ可読指示、データ構造、プログラムモジュール、または他のデータ等）の有形のストレージのための任意の方法または技術で実装される揮発性および不揮発性のリムーバブルおよび非リムーバブル媒体を含むが、それらに限定されない。コンピュータ可読ストレージ媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のソリッドステートメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ、もしくは他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージ、もしくは他の磁気ストレージ装置、または、所望の情報、データ、もしくは指示を有形で格納するために使用可能であり、コンピュータもしくはプロセッサによってアクセス可能な他の任意の物理的もしくは材料媒体を含むが、それらに限定されない。
【００１９】
本開示の目的で、「サーバ」という用語は、処理機能、データベース機能、および通信機能を提供するサービスポイントを指すものとして理解されるべきである。限定するものではない例として、「サーバ」という用語は、通信機能、データストレージ機能、およびデータベース機能と関連付けられた単一の物理的プロセッサを指してもよく、または、ネットワーク化またはクラスタ化されたプロセッサの複合体、それに関連付けられたネットワーク装置およびストレージ装置、並びに、サーバによって提供されるサービスをサポートするオペレーテイングソフトウェア、１以上のデータベースシステム、およびアプリケーションソフトウェアを指してもよい。サーバは、構成または機能において様々であり得るが、一般的に、サーバは、１以上の中央処理装置およびメモリを含み得る。サーバは、１以上のマスストレージ装置、１以上の電源、１以上の有線または無線ネットワークインターフェース、１以上の入出力インターフェース、または１以上のオペレーティングシステム（例えば、Ｗｉｎｄｏｗｓサーバ、ＭａｃＯＳ Ｘ、Ｕｎｉｘ、Ｌｉｎｕｘ、ＦｒｅｅＢＳＤ等）も含み得る。
【００２０】
本開示の目的で、「ネットワーク」は、例えば、サーバとクライアント装置または他のタイプの装置との間（例えば、無線ネットワークを介して結合された無線装置間を含む）において通信が交換され得るように装置を結合するネットワークを指すものとして理解されるべきである。ネットワークは、例えば、ネットワーク接続ストレージ（ＮＡＳ）、ストレージエリアネットワーク（ＳＡＮ）、または他の形態のコンピュータもしくは機械可読媒体等のマスストレージも含み得る。ネットワークは、インターネット、１以上のローカルエリアネットワーク（ＬＡＮ）、１以上のワイドエリアネットワーク（ＷＡＮ）、有線タイプ接続、無線タイプ接続、セルラー、またはそれらの任意の組合せを含み得る。同様に、異なるアーキテクチャを用い得るまたは異なるプロトコルに準拠もしくは適合し得る複数のサブネットワークが、より大きなネットワーク内で相互運用され得る。様々なタイプの装置は、例えば、異なるアーキテクチャまたはプロトコルのための相互運用可能な機能を提供するために使用可能にされ得る。説明的な一例として、ルータは、別様では別々の独立したＬＡＮ間において、リンクを提供し得る。
【００２１】
通信リンクまたはチャネルは、例えば、ツイストペア線等のアナログ電話回線、同軸ケーブル、Ｔ１、Ｔ２、Ｔ３、もしくはＴ４タイプ回線を含む完全なまたは部分的デジタル回線、デジタル総合サービス網（ＩＳＤＮ）、デジタル加入者回線（ＤＳＬ）、衛星リンクを含む無線リンク、または当業者に知られているような他の通信リンクもしくはチャネルを含み得る。更に、コンピューティング装置または他の関連電子機器は、例えば、有線または無線回線またはリンク等を介して、ネットワークにリモートで結合され得る。
【００２２】
本開示の目的で、「無線ネットワーク」は、クライアント装置をネットワークと結合するものと理解されるべきである。無線ネットワークは、スタンドアロンのアドホックネットワーク、メッシュネットワーク、無線ＬＡＮ（ＷＬＡＮ）ネットワーク、セルラーネットワーク等を用い得る。無線ネットワークは、折に触れてより急速にネットワークトポロジーが変化し得るように、自由に、ランダムに、または自発的に組織化して動き得る、無線リンク等によって結合された端末、ゲートウェイ、ルータ等のシステムを更に含み得る。
【００２３】
無線ネットワークは、更に、Ｗｉ−Ｆｉ、ロング・ターム・エボリューション（ＬＴＥ）、ＷＬＡＮ、無線ルータ（ＷＲ）メッシュ、または、第二世代、第三世代、もしくは第四世代（２Ｇ、３Ｇ、もしくは４Ｇ）セルラー技術等を含む複数のネットワークアクセス技術を用い得る。ネットワークアクセス技術は、例えば、様々な程度のモビリティを有するクライアント装置等の装置のための広域のサービス区域を可能にし得る。
【００２４】
例えば、ネットワークは、１以上のネットワークアクセス技術（例えば、モバイル通信用グローバルシステム（ＧＳＭ）、ユニバーサルモバイル通信システム（ＵＭＴＳ）、汎用パケット無線サービス（ＧＰＲＳ）、拡張データＧＳＭ環境（ＥＤＧＥ）、３ＧＰＰロング・ターム・エボリューション（ＬＴＥ）、ＬＴＥアドバンスト、広帯域符号分割多元接続（ＷＣＤＭＡ）、Ｂｌｕｅｔｏｏｔｈ、８０２．１１ｂ／ｇ／ｎ等）を用いたＲＦまたは無線タイプの通信を可能にし得る。無線ネットワークは、装置間（例えば、クライアント装置またはコンピューティング装置等）、ネットワーク間、またはネットワーク内等において信号が通信され得る実質的に任意のタイプの無線通信機構を含み得る。
【００２５】
コンピューティング装置は、例えば、有線または無線ネットワーク等を介して信号を送信または受信する機能を有し得るものであり、信号を処理または格納（例えば、メモリ内等に物理的なメモリ状態として）する機能を有し得るものであり、従って、サーバとして動作し得る。従って、サーバとして動作可能な装置は、例として、専用のラックマウント型サーバ、デスクトップコンピュータ、ラップトップコンピュータ、セットトップボックス、様々な機能（例えば、上述の装置の２以上の機能）を組み合わせた統合型装置等を含み得る。サーバは、構成または機能において非常に様々であり得るが、一般的に、サーバは、１以上の中央処理装置およびメモリを含み得る。サーバは、１以上のマスストレージ装置、１以上の電源、１以上の有線もしくは無線ネットワークインターフェース、１以上の入出力インターフェース、または１以上のオペレーティングシステム（例えば、Ｗｉｎｄｏｗｓサーバ、ＭａｃＯＳ Ｘ、Ｕｎｉｘ、Ｌｉｎｕｘ、ＦｒｅｅＢＳＤ等）も含み得る。
【００２６】
図１は、本開示の幾つかの実施形態による、圧縮されたモーションデータを送信するシステムを示すネットワーク図である。図１に示されているように、システム１００は、トラッキング装置１０２、モバイル装置１０４、サーバ１０６、およびネットワーク１０８を含む。
【００２７】
図１に示されているように、トラッキング装置１０２は、ユーザまたは他の存在物（例えば、動物等）によって着用または別様で携帯されるよう設計されたコンピューティング装置を含み得る。一実施形態において、トラッキング装置１０２は、図２に示されている、ハードウェアを含み得る。トラッキング装置１０２は、トラッキング装置１０２内に存在する様々なハードウェアコンポーネント（例えば、加速度計、ジャイロスコープ、または、トラッキング装置１０２の動きまたはアクティビティに関するモーションデータを記録する能力がある他の装置等）によって生成されたデータを収集するよう構成され得る。
【００２８】
本明細書においてより詳細に述べるように、トラッキング装置１０２は、モーションデータを受信して処理する能力がある処理論理（例えば、ＣＰＵ）を更に含み得る。幾つかの実施形態では、トラッキング装置１０２は、具体的には、モーションデータを受信して、そのモーションデータを送信前に前処理するよう構成され得る。モーションデータを記録および処理することに加えて、トラッキング装置１０２は、更に、モーションデータを含むデータを、ネットワーク１０８を介して他の装置に送信するよう構成され得る。モーションデータの処理および送信の特定の実施形態は、図４〜図６に関してより完全に説明される。
【００２９】
ネットワーク１０８は、単一のネットワークとして図示されているが、装置間における通信を容易にする複数のネットワークを含み得る。一実施形態において、ネットワーク１０８は、ＩＥＥＥ８０２．１１標準または同等の標準によって定義されるワイヤレス・フィディリティー（「Ｗｉ−Ｆｉ」）ネットワークを含み得る。この実施形態では、ネットワーク１０８は、トラッキング装置１０２からサーバ１０６へのモーションデータの転送を可能にし得る。それに加えて、ネットワーク１０８は、トラッキング装置１０２とモバイル装置１０４との間におけるデータの転送を容易にし得る。別の実施形態では、ネットワーク１０８は、例えば、セルラーネットワーク等のモバイルネットワークを含み得る。この実施形態では、データは、図示されている装置間において、ネットワーク１０８がＷｉ−Ｆｉネットワークである実施形態と類似の方法で転送され得る。しかし、ネットワーク１０８がモバイルネットワークを含む場合には、データ転送は、狭められ得る、即ち、ネットワークの帯域幅を減らす干渉を受け得ることに留意されたい。最後に、一実施形態において、ネットワーク１０８は、Ｂｌｕｅｔｏｏｔｈネットワークを含み得る。この実施形態では、トラッキング装置１０２およびモバイル装置１０４は、それらの間でデータを転送する能力を有し得る。しかし、サーバ１０６は、トラッキング装置１０２およびモバイル装置１０４と通信できない場合がある。別々に記載したが、ネットワーク１０８は複数のネットワークを含み得る。例えば、ネットワーク１０８は、データトラッキング装置１０２とモバイル装置１０４との間における転送を容易にするＢｌｕｅｔｏｏｔｈネットワークと、Ｗｉ−Ｆｉネットワークと、モバイルネットワークとを含み得る。
【００３０】
システム１００は、モバイル装置１０４を更に含み得る。一実施形態において、モバイル装置１０４は、携帯電話またはタブレット装置を含み得る。別の実施形態では、システム１００は、更に、モバイル装置１０４に関して記載される機能の一部を行うためのラップトップコンピュータ、デスクトップコンピュータ、または他のパーソナルコンピューティング装置を含み得る。先に述べたように、モバイル装置１０４は、Ｗｉ−ＦｉネットワークまたはＢｌｕｅｔｏｏｔｈネットワークを介して、トラッキング装置１０２と通信し得る。これらの実施形態では、モバイル装置１０４は、本明細書においてより詳細に説明するように、トラッキング装置１０２からモーションデータを受信し得る。それに加えて、トラッキング装置１０２は、モバイル装置１０４からデータを受信し得る。一実施形態において、トラッキング装置１０２は、トラッキング装置１０２に対するモバイル装置１０４の近さに関するデータ、またはモバイル装置１０４と関連付けられたユーザのＩＤに関するデータを受信し得る。
【００３１】
それに加えて、モバイル装置１０４（または非モバイル装置）は、サーバ１０６と通信して、サーバ１０６からデータを受信し得る。例えば、サーバ１０６は、ネットワーク化アプリケーションまたはアプリケーションプログラミングインターフェース（ＡＰＩ）を提供する１以上のアプリケーションサーバを含み得る。一実施形態において、モバイル装置１０４には、ＡＰＩを介してサーバ１０６と通信して、データを読み出してアプリケーション内において呈示するアプリケーションが設けられ得る。一実施形態において、サーバ１０６は、トラッキング装置１０２から受信されたモーションデータの視覚化表現を提供し得る。例えば、視覚化データは、トラッキング装置１０２から受信されたデータのグラフ、チャート、または他の表現を含み得る。サーバ１０６からデータを受信するモバイルアプリケーションの例が図７に示されている。
【００３２】
図２は、本開示の幾つかの実施形態による、圧縮されたモーションデータを送信するトラッキング装置を示す物理的な図である。装置２００は、ＣＰＵ２０２、メモリ２０４、不揮発性ストレージ２０６、加速度計２０８、ＧＰＳ受信器２１０、セルラートランシーバ２１２、Ｂｌｕｅｔｏｏｔｈトランシーバ２１６、および無線トランシーバ２１４を含む。
【００３３】
図１に関して述べたように、装置２００は、ユーザまたは他の存在物（例えば、動物等）によって着用または別様で携帯されるよう設計されたコンピューティング装置を含み得る。装置２００は、加速度計２０８およびＧＰＳ受信器２１０を含み、これらは、装置２００をモニタリングしてその位置（ＧＰＳトランシーバ２１０を用いて）およびその加速度（加速度計２０８を用いて）を識別する。加速度計２０８およびＧＰＳトランシーバ２１０は、単一の構成要素として図示されているが、その代わりに、各々は、類似の機能を提供する複数の構成要素を含んでいてもよい。
【００３４】
速度計２０８は、本明細書においてより詳細に説明するように、モーションデータを生成し、そのモーションデータを、ＣＰＵ２０２を介して他の構成要素に送信する。一実施形態において、加速度計２０８は、図４〜図６に関してより詳細に説明するようにモーションデータを処理するために、モーションデータをＣＰＵ２０２に送信し得る。その代わりに、または上記に関して、加速度計２０８は、モーションデータを、短期ストレージのために、ＣＰＵ２０２を介してメモリ２０４に送信し得る。一実施形態において、メモリ２０４は、ランダムアクセスメモリ装置または類似の揮発性ストレージ装置を含み得る。その代わりに、または上記に関して、加速度計２０８は、モーションデータを不揮発性ストレージ２０６に直に送信し得る。この実施形態では、ＣＰＵ２０２は、メモリ２０４からのモーションデータに直にアクセスし得る。幾つかの実施形態では、不揮発性ストレージ２０６は、ソリッドステートストレージ装置（例えば、「フラッシュ」ストレージ装置）または従来のストレージ装置（例えば、ハードディスク）を含み得る。同様に、ＧＰＳ受信器２１０は、位置データ（例えば、緯度、経度等）を、類似の方法でＣＰＵ２０２、（ＣＰＵ２０２を介して）メモリ２０４、または（ＣＰＵ２０２を介して）不揮発性ストレージ２０６に送信し得る。幾つかの実施形態では、ＣＰＵ２０２は、フィールドプログラマブルゲートアレイまたはカスタマイズされた特定用途向け集積回路を含み得る。
【００３５】
図２に示されているように、装置２００は、セルラートランシーバ２１２、無線トランシーバ２１４、およびＢｌｕｅｔｏｏｔｈトランシーバ２１６を含む複数のネットワークインターフェースを含む。図１に関して述べたように、セルラートランシーバ２１２は、装置２００が、加速度計２０８によって生成されＣＰＵ２０２によって処理されたモーションデータを、モバイルネットワークまたは無線ネットワークを介してサーバに送信することを可能にする。図６に関してより完全に述べるように、セルラートランシーバ２１２、無線トランシーバ２１４、およびＢｌｕｅｔｏｏｔｈトランシーバ２１６を用いたデータの送信は、ＣＰＵ２０２によって、検出されたネットワーク条件に基づいて制御され得る。それに加えて、ＣＰＵ２０２は、セルラートランシーバ２１２、無線トランシーバ２１４、およびＢｌｕｅｔｏｏｔｈトランシーバ２１６を用いて転送されるデータの形式およびコンテンツを、検出されたネットワーク条件に基づいて決定し得る。
【００３６】
図３は、本開示の幾つかの実施形態による、圧縮されたモーションデータを送信するトラッキング装置を示す論理的ブロック図である。図３に示されているように、装置３００は、ＧＰＳ受信器３０２、加速度計３０４、圧縮部３０６、ストレージ３０８、ＣＰＵ３１０、およびネットワークインターフェース３１２を含む。
【００３７】
図示されている実施形態では、加速度計３０４は、装置３００と関連付けられたモーションデータを所定の頻度（例えば、５０Ｈｚ）で記録する。モーションデータは、装置３００の様々な軸（例えば、ｘ軸、ｙ軸、およびｚ軸）に沿った動きを表す多数のデータ点を含み得ると共に、更に、それらの軸に関する装置の加速度を表し得る。
【００３８】
加速度計３０４は、モーションデータを、圧縮部３０６およびストレージ３０８に送信し得る。幾つかの実施形態では、加速度計３０４は、データを圧縮部３０６およびストレージ３０８に能動的に送信、即ちプッシュし得る。その代わりに、加速度計３０４は、（例えば、ＣＰＵ３１０からの）加速度計データを求める要求に応答してのみ、データを圧縮部３０６およびストレージ３０８に送信してもよい。
【００３９】
加速度計３０４とストレージ３０８との間において送信されるデータは、変更のない（例えば、「生」または「高忠実度」の）モーションデータを含み得る。例えば、装置３００は、加速度計３０４によって生成された全てのモーションデータがストレージ３０８に自動的に格納されるよう構成され得る。ストレージ３０８は、図２に関してより詳細に説明したように、揮発性および不揮発性ストレージ装置の組合せを含み得る。その代わりに、または上記に関して、ＣＰＵ３１０は、ストレージ３０８のストレージ容量をモニタリングして、ストレージ３０８が余剰容量を含んでいる場合にのみ、加速度計３０４からストレージ３０８へのモーションデータの転送を許可し得る。或いは、ＣＰＵ３１０は、余剰容量の可用性を確実にするために、ストレージ３０８の余剰容量を能動的に管理してもよい。例えば、ＣＰＵ３１０は、高帯域幅ネットワーク接続を検出した際には、ストレージ３０８に格納されているデータを積極的に「流し」得る。このようにして、ＣＰＵ３１０は、ストレージ３０８を、高帯域幅接続を使用できる期間の間におけるキャッシュとして運用し得る。別の実施形態では、加速度計３０４およびＧＰＳ受信器３０２は、ＣＰＵ３１０と直に通信し得る（ストレージ３０８を介して通信するのではなく）。この実施形態では、加速度計３０４およびＧＰＳ受信器３０２からのデータは、ＣＰＵ３１０に直に送信され、ＣＰＵ３１０によって処理され、ストレージ３０８（例えば、フラッシュメモリのストレージエリア）に格納され得る。
【００４０】
上記に加えて、加速度計３０４は、モーションデータを圧縮部３０６に送信するよう構成され得る。次に、圧縮部３０６は、受信されたモーションデータを圧縮して、圧縮された（即ち「低忠実度」）モーションデータを生成し得る。次に、圧縮部３０６は、低忠実度モーションデータをストレージ３０８に格納する。モーションデータの圧縮については、図４および図５に関してより完全に説明し、その議論の全体を本明細書に完全に組み込む。一実施形態において、圧縮部３０６は、ＣＰＵ３１０内において実装され得る。例えば、圧縮部３０６は、ＣＰＵ３１０によって実行されるソフトウェアモジュールを含み得る。この実施形態では、加速度計３０４によって生成された加速度計データは、ＣＰＵ３１０に直に送信されてもよく、ＣＰＵ３１０上で実行される圧縮部３０６が、本明細書において述べるように、加速度計データを圧縮し得る。
【００４１】
別の実施形態では、装置３００は、高忠実度データおよび低忠実度データの両方を格納するのではなく、高忠実度データまたは低忠実度データの一方のみを格納する。例えば、装置３００は、低帯域幅ネットワークに接続されているときには、低忠実度モーションデータをネットワークインターフェース３１２を介してネットワークを介して「ストリーミング」しながら、高忠実度モーションデータを保存するために、高忠実度モーションデータのみを格納するよう構成され得る。同様に、装置３００は、高帯域幅ネットワークに接続されている場合には、高忠実度モーションデータを格納せずに、単に、ネットワークインターフェース３１２を介してネットワークを介して高忠実度モーションデータを送信し得る。
【００４２】
ＣＰＵ３１０は、ストレージ３０８へのアクセスを制御し、ストレージ３０８からデータを読み出し、データを、ネットワークに接続された装置にネットワークインターフェース３１２を介して送信する能力がある。それに加えて、ＣＰＵ３１０は、ネットワークの帯域幅条件をモニタリングし、ネットワーク帯域幅の制約に応答して、高忠実度モーションデータまたは低忠実度モーションデータのいずれを送信するかを動的に選択することを司る。それに加えて、ＣＰＵ３１０は、低帯域幅ネットワークを介した高忠実度モーションデータの転送を可にするトリガ条件またはトリガ事象を識別することを司る。一実施形態において、ＣＰＵ３１０は、ＧＰＳ受信器３０２から受信されたデータをモニタリングして、装置３００がジオフェンスで囲まれた領域から出たことを識別し得る。それに応答して、ＣＰＵ３１０は、ローカルに格納されている高忠実度モーションデータを読み出し、低帯域幅ネットワーク（例えば、セルラーネットワーク）を介した高忠実度モーションデータの送信を開始し得る。トリガ条件またはトリガ事象の識別については、図６に関してより完全に説明し、その議論の全体を本明細書に完全に組み込む。
【００４３】
例えば、装置３００が動物の首輪上にあるトラッキング装置として実装される状況においては、ユーザは、ユーザの土地またはそのサブセットの境界線に対応するジオフェンスを設計し得る。或いは、ジオフェンスは、所定の位置（例えば、ユーザの家）におけるＷｉ−Ｆｉネットワークの強度のモニタリングに基づいて、自動的に生成されてもよい。装置３００がジオフェンスで囲まれた領域内にある間は、無線ネットワークが（セルラーネットワークと比較して）余計なサービスコストを生じずに高速ブロードバンドアクセスを提供するので、装置３００はその無線インターフェースを介して高忠実度モーションデータを送信し得る。しかし、或る時点で、装置３００を装着している動物が、ジオフェンスで囲まれた領域から出る場合がある。一実施形態において、ＣＰＵ３１０は、ＧＰＳ受信器３０２から受信された装置の経緯度をモニタリングし、その座標をジオフェンス座標と比較することにより、出たことを識別し得る。或いは、ＣＰＵ３１０は、Ｗｉ−Ｆｉ信号が見失われたことを検出することにより、出たことを識別してもよい。それに応答して、ＣＰＵ３１０は、Ｗｉ−Ｆｉインターフェースを用いたデータの送信をやめ、セルラーインターフェースを介したデータの送信を開始し得る。それに加えて、ＣＰＵ３１０は、セルラーインターフェースを介して低忠実度モーションデータのみを送信してもよく、そのような送信が行われる頻度を絞ってもよい。このようにして、ＣＰＵ３１０は、送信されるデータの量を制限し、それにより、装置３００によって発生するコストを制限する。最後に、ＣＰＵ３１０は、その後、装置がジオフェンスで囲まれた領域に再び入ったことを検出し得る。出たことの検出と同様に、ＣＰＵ３１０は、既知のＷｉ−Ｆｉネットワークの存在を検出することにより、または、装置のＧＰＳ座標を解析することにより、再び入ったことを検出し得る。再び入ったことに応答して、ＣＰＵ３１０は、無線ネットワークまたはＢｌｕｅｔｏｏｔｈネットワークを介した高忠実度モーションデータの送信に復帰し得る。
【００４４】
二者択一として示されているが、一実施形態では、装置３００は、高帯域幅ネットワークに接続されたときに、高忠実度モーションデータおよび低忠実度モーションデータの両方を送信するよう更に構成されてもよい。この実施形態では、高忠実度モーションデータおよび低忠実度モーションデータの両方を送信することにより、圧縮部３０６によって用いられる圧縮技術を改善するためのサーバ側処理ルーチンが可能になる。
【００４５】
図４Ａは、本開示の幾つかの実施形態による、モーションデータを圧縮して格納する方法を示すフロー図である。
【００４６】
工程４０２において、方法４００ａは、加速度計データを受信する。一実施形態において、加速度計データは、加速度計装置によって所定の頻度で生成された多次元の１組のデータ点を含む。例えば、加速度計データは、加速度計装置を収容している装置の動きに対応する三次元データを含み得る。即ち、加速度計データは、ｘ軸、ｙ軸、およびｚ軸上のデータ点を含み得る。具体的には、各軸について、加速度計データは、各軸に沿った装置の加速度を、浮動点の値として示し得る。幾つかの実施形態では、加速度計データは、各軸周りの回転を測定するジャイロスコープデータを更に含み得る。先に述べたように、加速度計データは、１以上の加速度計によって生成され、データバスを介してプロセッサまたは他の装置に送信され得る。一実施形態において、方法４００ａは、加速度計の頻度率に基づく所定の間隔で、加速度計データを受信し得る（例えば、加速度計は、ＣＰＵまたは他の装置によってポーリングされ得る）。或いは、方法４００ａは、加速度計データを、データ点のストリーム（または「ファイアホース」）として受信し得る。
【００４７】
工程４０４において、方法４００ａは、高忠実度モーションデータを圧縮する。一実施形態において、高忠実度モーションデータを圧縮することは、１組の個々のモーションデータ点を解析し、１組の個々の点を、１組の個々の点によって表わされるアクティビティの要約を表す単一の値（またはデータ構造）に変換することを含み得る。例えば、工程４０２において受信されたモーションデータが１分間の期間にわたってサンプリングされたものであり、３つの方向（例えば、ｘ、ｙ、およびｚ）における（例えば、５０Ｈｚでの）３０００個のデータ点（合計で９０００個のデータ点）を含む場合には、方法４００ａは、これらの９０００個のデータ点を、その期間中のアクティビティの要約を表す単一の値に圧縮し得る。例えば、全ての９０００個のデータ点がほとんどまたは全く変化を示していない場合には、方法４００ａは、元のデータを顕著に圧縮する０のアクティビティレベル（数字（例えば、０）を含み得る）および／または他の値（例えば、「休息中」等のテキスト表現）を示すことにより、それらのデータ点を圧縮し得る。逆に、９０００個のデータ点が、ｘ軸またはｙ軸に沿った加速度を示している場合には、方法４００ａは、これらのデータ点を、速度の統合的な表現に圧縮し得る。例えば、速度の変化は、アクティビティのレベルを示す１〜１０のスケール上でランク付けされてもよく、および／または、短い記述（例えば、「走行」、「歩行」、もしくはｚ軸の変化については「跳躍」）を含んでもよい。工程４０４において行われる圧縮は、図５に関してより完全に説明されており、明確のために本明細書では繰り返さない。
【００４８】
工程４０６において高忠実度モーションデータを圧縮した後、方法４００ａは、圧縮されたデータを格納する。先に述べたように、圧縮されたデータを格納することは、圧縮されたデータを揮発性メモリおよび／または不揮発性ストレージに格納することを含み得る。一実施形態において、方法４００ａは、ネットワークアクセスが無いことを検出した際に、圧縮されたデータを不揮発性ストレージに格納し得る。或いは、方法４００ａは、ネットワークアクセスを検出した際に、低忠実度データの格納を見送り得る。
【００４９】
工程４０８において、方法４００ａは、必要に応じて、高忠実度データを格納する。高忠実度モーションデータは、複数の軸に沿った生加速度計データを含み得る。別の実施形態では、高忠実度モーションは、圧縮された加速度計データを含んでもよく、この場合、生加速度計データは、可逆または略可逆圧縮アルゴリズムを用いて圧縮される。一実施形態において、方法４００ａは、工程４０２において受信された全てのデータをメモリまたは不揮発性ストレージに格納する。別の実施形態では、方法４００ａは、単に高忠実度モーションデータをメモリに格納し、長期ストレージは見送り得る。例えば、高帯域幅ネットワーク接続（例えば、Ｗｉ−Ｆｉ）が使用可能であることが検出された場合には、方法４００ａは、高忠実度モーションデータの格納をバイパスしてもよい。或いは、方法４００ａは、更に、各高忠実度モーションデータ点のための十分な容量が存在することが決定された際にのみ、高忠実度モーションデータを格納し得る。別の実施形態では、方法４００ａは、受信されたデータを、格納前にクリーニングし得る。例えば、方法４００ａは、受信されたデータに対して、異常なデータ点をフィルタリングしてもよく、または、他のクリーニング処理を行ってもよい。
【００５０】
図４Ｂは、本開示の幾つかの実施形態による、格納されているモーションデータを送信する方法を示すフロー図である。
【００５１】
工程４１０において、方法４００ｂは、モーションデータを読み出す。一実施形態において、方法４００ｂは、図４Ａに示されている処理に従って生成されたモーションデータを読み出し得る。一実施形態において、高忠実度モーションデータの読み出しは、ストリーミングまたはバッチで行われ得る。例えば、方法４００ｂは、送信前に、所定の量のデータがスプールされるまで、高忠実度モーションデータをスプールし得る。一実施形態において、方法４００ｂは、方法４００ａと同時に実行され得る。或いは、方法４００ｂは、方法４００ａと直列で実行され得る。
【００５２】
工程４１２において、方法４００ｂは、高帯域幅ネットワークが使用可能であるか否かを検出する。一実施形態において、工程４１２は、図４Ｂに示されている方法４００ｂを実施している装置が高帯域幅ネットワーク（例えば、Ｗｉ−Ｆｉ）に接続されていることの指標を受信することを含み得る。即ち、工程４１２は、無線ネットワークアダプタのステータスをクエリして、そのアダプタが無線またはＢｌｕｅｔｏｏｔｈネットワークに接続されているか否かを決定することを含み得る。
【００５３】
工程４１４において、方法４００ｂが、高帯域幅ネットワークが使用可能であることを決定した場合には、方法４００ｂは、例えばサーバ装置に、高忠実度モーションデータを送信し得る。
【００５４】
上記に示したように、方法４００ｂが、現在のネットワークが制約のあるネットワーク（即ち、限られた帯域幅を提供する、および／または、単位転送当たりのコストが高いネットワーク）であることを決定した場合には、工程４１２は、高忠実度（従って、大容量）モーションデータの送信を防ぐ。しかし、方法４００ｂは、特定の状況下では、たとえ低帯域幅ネットワークに接続されていても、高忠実度モーションデータの転送を継続し得る。具体的には、工程４１６において、方法４００ｂは、トリガ条件が生じているか否かを決定する。図示されている実施形態では、トリガ条件は、方法４００ｂが低帯域幅ネットワークを介して高忠実度モーションデータを送信することを強制する事象または妨害である。例えば、ユーザは、方法４００ｂが低帯域幅ネットワークを介して高忠実度モーションデータを転送することを、明示的に要求し得る。その代わりに、または上記に関して、プリセットタイマーが自動的に、タイマーの時間が経過した後に（ストレージのオーバーフローを防ぐために）、格納されている高忠実度モーションデータ（あれば）を低帯域幅ネットワークを介して送信し得る。更なるトリガ条件については、図６に関してより完全に述べられており、明確のために本明細書においては繰り返さない。
【００５５】
トリガ条件が生じている場合に、方法４００ｂは、工程４１４に関して先に述べたように、高忠実度モーションデータを送信する。或いは、方法４００ｂが工程４１６においてトリガ条件の発生を検出しなかった場合には、方法４００ｂは、工程４１８において、圧縮されたデータを送信する。
【００５６】
工程４１８において、方法４００ｂは、圧縮されたデータを送信する。一実施形態において、圧縮されたデータを送信することは、圧縮されたデータ（例えば、数値）を所定の間隔に従って（例えば、毎分１回）送信することを含み得る。先に述べたように、方法４００ｂは、低帯域幅ネットワークに接続されているときにのみ、圧縮されたデータを送信し得る。別の実施形態では、それに加えて、方法４００ｂは、先に述べたように図４Ａの工程４０４を改善するために、高帯域幅ネットワークに接続されているときに、データを送信し得る。
【００５７】
図５は、本開示の幾つかの実施形態による、モーションデータを圧縮する方法を示すフロー図である。
【００５８】
工程５０２において、方法５００は、加速度計データを受信する。図示されている実施形態では、方法５００は、所定の間隔に対応する１組のデータ点を受信し得る。例えば、方法５００は、毎分１回呼び出され得る。一実施形態において、方法５００は、先に述べたように、ストレージ装置（例えば、メモリまたは不揮発性ストレージ装置等）から加速度計データを受信する。
【００５９】
工程５０４において、方法５００は、加速度計データにおいて識別された或る軸を選択する。先に述べたように、加速度計データは、複数の軸（例えば、ｘ軸、ｙ軸、およびｚ軸）についての所与の期間（例えば、１分間）にわたる加速度データを含み得る。
【００６０】
工程５０６において、方法５００は、選択された軸と関連付けられたデータについての変化率を計算する。所与の軸についてのデータは、時系列の加速度データ点を含むので、方法５００は、データ点の勾配および／または大きさを決定することによって変化率を計算し得る。一例として、方法５００は、所与の軸に沿った全てのデータ点について、加速度が０であることを決定し、従って、速度が一定であったことを示す０の変化率を計算し得る。第２の例として、方法５００は、所与の軸に沿った全てのデータ点について、加速度が一定の値であったことを決定し、従って、平均加速度に等しい変化率を示し得る。第３の例として、方法５００は、受信されたデータ点を積分して速度を計算し、この速度を変化率として記録し得る。なお、先に挙げた例は、網羅的であることを意図したものではなく、加速度データ点のリストを、装置の動きを表す値に変換するための他の技術が存在し得ることを留意されたい。
【００６１】
工程５０６において変化率を計算した後、方法５００は、工程５０８において、いずれかの軸が残っているか否かを決定し、残りの各軸についての変化率を計算する。一実施形態において、方法５００は、別の軸の変化率に基づいて動きを決定したら、残りの軸を単に無視してもよい。即ち、方法５００は、ｘ軸に沿った動きを決定したら、ｙ軸およびｚ軸を無視してもよい。
【００６２】
工程５１０において、方法は、計算された変化率に基づいて、アクティビティの要約を計算する。例えば、方法５００は、変化率を組み合わせて、全ての軸にわたる変化率の集合にしてもよい。或いは、方法５００は、各軸にわたる変化率を平均して、全ての軸にわたる平均変化率を決定してもよい。それに加えて、方法５００は、算出された変化率を正規化して、所定の範囲内に収められたアクティビティの要約を取得してもよい。例えば、方法５００は、変化率を正規化し、その変化率を０〜１０のスケール（例えば、０は動きがないことを表し、１０は激しい動きを表す）に従って分類してもよい。
【００６３】
工程５１２において、方法５００は、必要に応じて、アクティビティをカテゴリーに分類し得る。一実施形態において、方法５００は、１つの軸に沿った動きが或るタイプのアクティビティを表し、他の軸に沿った動きが他のアクティビティを表すことを決定し得る。例えば、方法５００は、ｘ軸およびｙ軸上において動きがほとんどないことと、ｚ軸上において顕著な動きがあることと組み合わせて、それが「跳躍」アクティビティを表し得ることを決定し得る。その代わりに、または上記に関して、方法５００は、アクティビティにテキストラベル（例えば、「走行」、「歩行」等）を割り当てて、それらのテキストラベルを、算出されたアクティビティの要約と組み合わせてもよい。
【００６４】
図５の上記説明が示しているように、方法５００は、モーションデータに関する利用可能な情報を保持しつつ、モーションデータの顕著な圧縮を可能にする。先に述べたように、データを収集する際に、加速度計データは、所与の時間（分）にわたって、かなりの量のデータを生じ得る。例えば、所与の軸上のデータ点が４バイトの浮動点の値によって表される場合には、単一のサンプルは、少なくとも１２バイトの情報を含む。５０Ｈｚでキャプチャされる場合、これは、毎秒６００バイトの情報を生じ、これは約３６キロバイト／分、２メガバイト／時、５２メガバイト／日、および１．５ギガバイト／月に相当する。たとえ生モーションデータのサンプリング期間を毎分１回に低減しても、１日当たり約１メガバイトの高忠実度モーションデータが生じる。それとは対照的に、ウェアラブルデバイスと共に提供されている多くのセルラーデータプランは、それよりかなり低いデータ制限を有し、しばしば５００キロバイト／月のデータ転送量という低さである。
【００６５】
図５に示されている圧縮技術を実装することにより、顕著な圧縮を得ることができ、過剰な料金を発生させずに、セルラーネットワークを介してデータを送信できる。例えば、圧縮されたデータパケットが、毎分送信される単一の４バイトのアクティビティの要約の値を含む場合には、毎月のデータ転送量は約１７３キロバイトとなり、何桁か低減される。圧縮されたデータのサイズを（例えば、追加情報に充てるために）１０キロバイト／分まで増加したとしても、毎月の転送量は約４３２キロバイトである。
【００６６】
しかし、圧縮されたデータのみを送信すると、必ず、粒度の損失を生じることに留意されたい。従って、本明細書において開示される実施形態は、図６に関してより詳細に説明されるように、低忠実度データの転送と高忠実度データの転送とをインテリジェントにトグルするための技術を記載する。
【００６７】
図６は、本開示の幾つかの実施形態による、高忠実度転送事象を検出する方法を示すフロー図である。
【００６８】
工程６０２において、方法６００はタイマーを開始させ、工程６０４において、高忠実度モーションデータを格納する。図示されている実施形態では、格納されている高忠実度モーションデータは、先に述べたように、加速度計から受信された生データを含む。工程６０２および工程６０４は、順次行われる工程として図示されているが、異なる処理において明示的に同時に実行されてもよく、タイマーの終了の通信も同時に行われ得る。
【００６９】
工程６０６〜工程６１４において、方法６００は、工程６１６における高忠実度モーションデータの送信を要求する何らかの条件が存在するか否かを決定する。先に述べたように、方法６００が（工程６１４において）条件が存在しないことを決定する間、方法６００は、高忠実度モーションデータの格納を継続し得る。同時に、図４および図５に関してより詳細に説明したように、格納されているモーションデータに対応する圧縮されたデータが転送され得る。後述するように、工程６０６〜工程６１４における各トリガまたは条件は、方法６００に、高忠実度データを送信させ得る。それに加えて、トリガが発生すると、または、条件が満たされると、図６には示されていないが先に述べた更なるアクションをトリガし得る。例えば、工程６１６におけるデータの送信に加えて、方法６００は、更に、ストレージ容量を管理するために、高忠実度モーションデータのストレージを流し得る。その代わりに、または上記に関して、方法６００は、更に、工程６１６において、高忠実度モーションデータと共に、圧縮されたデータを送信し得る。
【００７０】
工程６０６において、方法６００は、高帯域幅ネットワークが使用可能であるか否かを決定する。肯定された場合には、方法６００は、工程６１６において、格納されている高忠実度モーションデータを送信し、否定された場合には、方法６００は工程６０８へと続く。一実施形態において、高帯域幅ネットワークが使用可能であるか否かを決定することは、無線トランシーバのステータスをモニタリングして、トランシーバが既知の（または公衆）無線ネットワークに接続されているか否かを決定することを含み得る。別の実施形態では、高帯域幅ネットワークが使用可能であるか否かを決定することは、トラッキング装置とモバイル装置との間においてＢｌｕｅｔｏｏｔｈ接続が使用可能であるか否かを決定することを含み得る。
【００７１】
工程６０８において、方法６００は、システムのリセット事象がトリガされたか否かを決定する。肯定された場合には、方法６００は、工程６１６において、格納されている高忠実度モーションデータを送信し、否定された場合には、方法６００は工程６１０へと続く。一実施形態において、システムのリセットは、方法６００を実施している装置を再起動することを含み得る。例えば、方法６００は、方法６００を実施している装置のオペレーティングシステムがクリーンでない方法で再起動されたことを検出したら、高忠実度モーションデータの送信を自動的に試みてもよい。この例では、方法６００は、装置が改悪されることまたはデータが失われることを見越して、高忠実度モーションデータを送信し得る。幾つかの実施形態では、システムのリセット事象は、装置が（例えば、更新によって、または不意に）次に再起動され得ることを示す事象を含み得る。これらの実施形態では、方法６００は、データが失われることまたは改悪されることを防ぐために、または、更新のためのストレージ容量を増加させるために、高忠実度モーションデータを送信し得る。
【００７２】
工程６１０において、方法６００は、ジオフェンスが侵されたか否かを決定する。肯定された場合には、方法６００は、工程６１６において、格納されている高忠実度モーションデータを送信し、否定された場合には、方法６００は工程６１２へと続く。先に述べたように、幾つかの実施形態では、方法６００は、Ｗｉ−Ｆｉ信号が見失われたことを検出することによって、または、ＧＰＳ位置を用いて、方法６００を実施している装置がジオフェンスを侵したことを決定し得る。これらの実施形態では、ジオフェンスが侵されたことは、方法６００を実施している装置の位置および動きをモニタリングするために、より高忠実度のモーションデータを必要とする緊急条件（例えば、動物が迷子になったこと）を示し得る。従って、方法６００は、装置がジオフェンスを侵した際には、高忠実度モーションデータの送信を可にし、その後、ジオフェンスで囲まれた領域に再び入った際には、高忠実度モーションデータの転送を不可にし得る。
【００７３】
工程６１２において、方法６００は、ユーザが高忠実度モーションデータの手動アップロードを要求したか否かを決定する。肯定された場合には、方法６００は、工程６１６において、格納されている高忠実度モーションデータを送信し、否定された場合には、方法６００は工程６１４へと続く。工程６１２に示されているように、ユーザは、高忠実度モーションデータの送信を積極的に要求し得る。例えば、リモートのユーザが、ペットの動きに関する、より高忠実度のデータを見ることを所望する場合があり、従って、たとえ無線ネットワークを介した高忠実度モーションデータの転送にかかるコストが増加しても、高忠実度モーションデータの送信を要求する場合がある。
【００７４】
工程６１４において、方法６００は、タイマーが終了したか否かを決定する。肯定された場合には、方法６００は、工程６１６において、格納されている高忠実度モーションデータを送信し、否定された場合には、方法６００は、工程６０４において、高忠実度モーションデータの格納を継続する。先行するトリガまたは条件のいずれも満たされていない場合には、方法６００は、所定の量の時間が経過したら、高忠実度モーションデータを自動的に送信し得る。一実施形態において、ストレージ容量をモニタリングする代わりに、方法６００は、高忠実度モーションデータのために既知の量のストレージ空間を割り当ててもよい。（例えば、別個のフラッシュストレージ装置内における）決まった量のストレージ空間を割り当てることにより、方法６００は、セルラー送信時間の最大量を計算し、それに従って、ローカルのストレージを流すためのタイマーを設定できる。
【００７５】
なお、上述のトリガおよび条件６０６〜６１４は、実際の必要性に応じて、様々な組合せで、一緒にまたは別々に用いられ得る。それに加えて、環境的、技術的、またはユーザの必要性に従って、更なるトリガおよび条件が用いられ得る。従って、上述のトリガまたは条件は、方法６００によって用いられるトリガおよび条件の範囲の限定としての役割ではなく、方法６００によって用いられるトリガおよび条件の例としての役割を意図したものである。
【００７６】
図７は、本開示の幾つかの実施形態による、アクティビティデータを表示するためのユーザインターフェースを示す。
【００７７】
画面７０２は、様々な実施形態において開示されると共に先に述べられた方法を実施するトラッキング装置を装着したペットのアクティビティの時系列のビューを表示するユーザインターフェースを示す。画面７０２に示されているように、１日を通した動きの量を示す、アクティビティのグラフィカルタイムライン７０２ａが呈示されている。上述のように、タイムライン７０２ａは、サーバによって受信された圧縮されたデータに基づいて生成され得る。具体的には、アクティビティの要約の値はタイムライン７０２ａにおけるｙ軸を表し、一方、時間はｘ軸を表し得る。先に述べたように、高忠実度モーションデータは、タイムライン７０２ａを更に洗練するために用いられ得る。
【００７８】
それに加えて、画面７０２は、詳細な事象７０２ｂおよび７０２ｃを示す。具体的には、事象７０２ｂは「散歩」事象を示し、事象７０２ｃは「遊び」事象を示す。先に述べたように、サーバに送信された圧縮されたデータは、高忠実度モーションデータから導出されたアクティビティの分類を示し得る。例えば、散歩事象７０２ｂは、中程度の速度での連続的な動きによって、そのように分類され得る。それとは対照的に、遊び事象７０２ｃは、高い加速度に続く短い期間の不活発な状態によって、そのように分類され得る。一方、トラッキング装置がアクティビティの要約の値のみを送信する実施形態では、事象７０２ｂおよび７０２ｃは、高忠実度モーションデータを受信した際にのみ決定され得る。この実施形態では、事象７０２ｂおよび７０２ｃはタイムスタンプおよび持続時間のみを含んでいてもよく、事象のタイプは高忠実度モーションデータを受信するまで含まなくてもよい。
【００７９】
本開示の目的で、モジュールは、本明細書に記載された（人による介入または増強を含むまたは含まない）処理、特徴、および／または機能を行うまたは容易にする、ソフトウェア、ハードウェア、またはファームウェア（またはそれらの組合せ）のシステム、処理もしくは機能、またはそれらの構成要素である。モジュールは複数のサブモジュールを含み得る。モジュールの複数のソフトウェアコンポーネントは、プロセッサによって実行されるためにコンピュータ可読媒体に格納され得る。モジュールは、１以上のサーバの不可欠な要素であるか、または、１以上のサーバによってロードされて実行され得る。１以上のモジュールは、エンジンまたはアプリケーションとしてグループ化され得る。
【００８０】
本開示の目的で、「ユーザ」、「加入者」「消費者」、または「顧客」という用語は、本明細書に記載される１または複数のアプリケーションのユーザ、および／または、データプロバイダによって供給されるデータの消費者を指すものとして理解されるべきである。限定するものではない例として、「ユーザ」または「加入者」という用語は、データプロバイダまたはサービスプロバイダによってインターネットを介してブラウザのセッションにおいて提供されるデータを受け取る人を指し得るか、または、データを受信し、そのデータを格納または処理する自動化されたソフトウェアアプリケーションを指し得る。
【００８１】
本開示の方法およびシステムは、多くのやり方で実装され得るものであり、従って、上述の例示的な実施形態および例によって限定されないことが、当業者には認識されよう。換言すれば、ハードウェアおよびソフトウェアまたはファームウェアの様々な組合せで、単一または複数の構成要素によって行われる機能的要素、および個々の機能は、クライアントレベル、サーバレベル、またはそれらの両方で、ソフトウェアアプリケーションに分配され得る。この点に関して、本明細書に記載される複数の異なる実施形態の任意の数の特徴は、単一または複数の実施形態として組み合わされ得るものであり、本明細書に記載された特徴の全てより少ないまたは多い特徴を有する別の実施形態も可能である。
【００８２】
また、機能は、全体的にまたは部分的に、現在知られているまたはこれから知られる方法で、複数の構成要素に分配され得る。従って、本明細書に記載された機能、特徴、インターフェース、および優先選択を達成する際に、多数のソフトウェア／ハードウェア／ファームウェアの組合せが可能である。更に、本開示の範囲は、記載された特徴、機能、およびインターフェースを実施するための従来公知の方法、並びに、現在および今後において当業者によって理解される、本明細書に記載されたハードウェアコンポーネント、ソフトウェアコンポーネント、またはファームウェアコンポーネントに対して行われ得る変形および変更をカバーするものである。
【００８３】
更に、本開示においてフローチャートとして呈示および記載された方法の実施形態は、本技術のより完全な理解を提供するために例として提供されたものである。本開示の方法は、本明細書において呈示された動作および論理的フローに限定されない。様々な動作の順序が変えられた別の実施形態、および、より大きな動作の一部として記述されたサブ動作が、それぞれ独立して行われる別の実施形態が考えられる。
【００８４】
本開示の目的で様々な実施形態を説明したが、そのような実施形態は、本開示の教示をそれらの実施形態に限定するものであると見なされるべきではない。本開示において記載されたシステムおよび処理の範囲内に留まる結果を得るために、上述の要素および動作に対して様々な変更および変形が行われ得る。
【００８５】
著作権表示
本願は、著作権保護の対象となり得る材料を含む。本著作権者は、米国特許商標庁のファイルまたは記録内において現れる本開示の複製に対しては異議を唱えないが、それ以外については無断複写・転載を禁じる。
【符号の説明】
【００８６】
１００  システム
１０２  トラッキング装置
１０４  モバイル装置
１０６  サーバ
１０８  ネットワーク
２００  トラッキング装置
２０２  ＣＰＵ
２０４  メモリ
２０６  不揮発性ストレージ
２０８  加速度計
２１０  ＧＰＳ受信器
２１２  セルラートランシーバ
２１６  Ｂｌｕｅｔｏｏｔｈトランシーバ
２１４  無線トランシーバ
３００  トラッキング装置
３０２  ＧＰＳ受信器
３０４  加速度計
３０６  圧縮部
３０８  ストレージ
３１０  ＣＰＵ
３１２  ネットワークインターフェース
【図１】
2020502833.tif 000003
【図２】
2020502833.tif 000004
【図３】
2020502833.tif 000005
【図４Ａ】
2020502833.tif 000006
【図４Ｂ】
2020502833.tif 000007
【図５】
2020502833.tif 000008
【図６】
2020502833.tif 000009
【図７】
2020502833.tif 000010
【国際調査報告】
2020502833.tif 000011
2020502833.tif 000012