(57)【要約】コンピューティングデバイスは、１つ以上のセンサを含むか、又はそれらからデータを受け取ることができる。各センサは、コンピューティングデバイスが置かれている環境又は様態に関するデータを提供する。コンピューティングデバイスは、センサから受け取られたデータを使用する１つ以上のプログラムを更に含む。コンピューティングデバイスのセンサシステムは、プログラムがセンサからの集められたデータを要求することを可能にする検知プライオリティインターフェイスを提示する。プログラムは、優先権を有すべきセンサ特性のインジケーションをインターフェイスのパラメータとして提供する。センサシステムは、コンピューティングデバイスによってサポートされるセンサ及びプログラムによって提供されるインジケーションに基づき、集められたデータを得るためにどのセンサを使用すべきかを決定する。センサシステムは適切なセンサを作動させ、要求された集められたデータを要求元のプログラムへ返す。
2017530350.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティングデバイスで実装される方法であって、
優先されるべき１つ以上のセンサ特性のインジケーションであるパラメータを有する検知プライオリティインターフェイスを示し、
前記検知プライオリティインターフェイスが、優先されるべき１つ以上のセンサ特性の前記インジケーションを提供するプログラムによって呼び出されることに応答して、
優先されるべき前記１つ以上のセンサ特性の前記インジケーションに基づき、センサデータが集められるべき複数のセンサのうちの１つ以上のセンサを特定し、
前記１つ以上のセンサから前記センサデータを集め、
どのセンサが前記複数のセンサに含まれているかの知識を有すべき必要性を前記プログラムから取り除くために、前記集められたデータを前記プログラムへ返す
ことを有する方法。
【請求項２】
前記複数のセンサは、加速度計、磁気計、及びジャイロスコープを含み、前記集められたデータは、３Ｄ空間における前記コンピューティングデバイスの３次元の位置及び向きを有する、
請求項１に記載の方法。
【請求項３】
前記１つ以上のセンサ特性は、ヘディング精度、回転速度精度、及び電力効率を含むグループから選択された１つ以上のセンサ特性を有する、
請求項１又は２に記載の方法。
【請求項４】
前記特定することは、前記コンピューティングデバイスによってサポートされるセンサに基づき前記１つ以上のセンサを特定することを更に有する、
請求項１乃至３のうちいずれか一項に記載の方法。
【請求項５】
前記複数のセンサは、加速度計、磁気計、ジャイロスコープ、歩数計、気圧計、光センサ、及び温度計を含むグループから選択された２つ以上のセンサを有する、
請求項１乃至４のうちいずれか一項に記載の方法。
【請求項６】
前記１つ以上のセンサ特性は、ヘディング精度、回転速度精度、電力効率、空間距離精度、カロリー消費効果精度、データ検知のレイテンシー、及びＣＰＵ使用量を含むグループから選択された１つ以上のセンサ特性を有する、
請求項１乃至５のうちいずれか一項に記載の方法。
【請求項７】
前記プログラムは、前記コンピューティングデバイスによってサポートされるセンサの予備的又は実行時の知識を有さない、
請求項１乃至６のうちいずれか一項に記載の方法。
【請求項８】
前記特定することは、センサの最も高く順位付けされた組み合わせと、前記コンピューティングデバイスがセンサの最も高く順位付けされた組み合わせのためのサポートを欠いていることに応答して特定すべきセンサの代替の組み合わせとを決定することを更に有する、
請求項１乃至７のうちいずれか一項に記載の方法。
【請求項９】
コンピューティングデバイスであって、
１つ以上のプロセッサを有するプロセッシングシステムと、
前記プロセッシングシステムによって実行される場合に、該プロセッシングシステムに、
複数のセンサ特性のうちのどれが優先されるべきかのインジケーションをパラメータとして受ける検知プライオリティインターフェイスを示し、
前記検知プライオリティインターフェイスが当該コンピューティングデバイスのプログラムによって呼び出されることに応答して、
複数のセンサ特性のうちのどれが優先されるべきかの前記インジケーションに基づき、複数のセンサのうちの１つ以上のセンサを特定し、
前記１つ以上のセンサからセンサデータを集め、
どのセンサが前記複数のセンサに含まれているかの知識を有すべき必要性を前記プログラムから取り除くために、前記集められたデータを前記プログラムへ返す
ことを含む動作を実施させる複数の命令を記憶している１つ以上のコンピュータ可読記憶媒体と
を有するコンピューティングデバイス。
【請求項１０】
前記複数のセンサは、加速度計、磁気計、及びジャイロスコープを含み、前記集められたデータは、３Ｄ空間における前記コンピューティングデバイスの３次元の位置及び向きを有する、
請求項９に記載のコンピューティングデバイス。
【請求項１１】
前記特定することは、当該コンピューティングデバイスによってサポートされるセンサの組み合わせに基づき前記１つ以上のセンサを特定することを更に有する、
請求項９又は１０に記載のコンピューティングデバイス。
【請求項１２】
前記複数のセンサ特性は、ヘディング精度、回転速度精度、電力効率、空間距離精度、カロリー消費効果精度、データ検知のレイテンシー、及びＣＰＵ使用量を含む、
請求項９乃至１１のうちいずれか一項に記載のコンピューティングデバイス。
【請求項１３】
前記複数の命令は、当該コンピューティングデバイスのオペレーティングシステムの部分である、
請求項９乃至１２のうちいずれか一項に記載のコンピューティングデバイス。
【請求項１４】
前記プログラムは、当該コンピューティングデバイスによってサポートされるセンサの予備的又は実行時の知識を有さない、
請求項９乃至１３のうちいずれか一項に記載のコンピューティングデバイス。
【請求項１５】
前記１つ以上のセンサは、当該コンピューティングデバイスから分離した他のデバイスに位置するセンサを含む、
請求項９乃至１４のうちいずれか一項に記載のコンピューティングデバイス。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピューティング・テクノロジが進歩するにつれて、コンピュータは、多数の異なる機能を実施するためにますます頼りにされるようになっている。特に、モバイルコンピュータにおける、１つのそのような機能は、コンピュータの環境又は位置に関する情報を検知することである。この検知は、加速度計、ジャイロスコープ、磁気計、などのような種々のセンサに基づき実施され得る。この検知された情報は、コンピュータ上で様々な異なるプログラムによって異なる様態において使用され得る。しかし、異なるコンピュータは、異なる様態で動作する異なるセンサを有することができるので、プログラム開発者が、プログラムによって使用されることを望まれる検知情報を如何にして取得すべきかを知ることは、ときどき困難でありうる。
【発明の概要】
【０００２】
この要約は、詳細な説明において以下で更に記載される概念の選択を簡略化された形で紹介するよう与えられている。この要約は、請求される対象の重要な特徴又は必須の特徴を特定するよう意図されず、更には、請求される対象の適用範囲を限定するために使用されるよう意図されない。
【０００３】
１つ以上の態様に従って、検知プライオリティインターフェイスが表され、このインターフェイスは、優先されるべき１つ以上のセンサ特性のインジケーションであるパラメータを有している。検知プライオリティインターフェイスがプログラムによって呼び出されることに応答して、センサデータが集められるべき複数のセンサのうちの１つ以上のセンサは、優先されるべき１つ以上のセンサ特性のインジケーションに基づき特定される。１つ以上のセンサからのセンサデータは集められ、該集められたデータはプログラムへ返される。
【０００４】
１つ以上の態様に従って、コンピューティングデバイスは、１つ以上のプロセッサを有するプロセッシングシステムと、該プロセッシングシステムによって実行される場合に、該プロセッシングシステムに動作を実施させる複数の命令を記憶している１つ以上のコンピュータ可読記憶媒体とを含む。それらの動作は、複数のセンサ特性のうちのどれが優先されるべきかのインジケーションをパラメータとして受ける検知プライオリティインターフェイスを表すことを含む。動作は、検知プライオリティインターフェイスがコンピューティングデバイスのプログラムによって呼び出されることに応答して、複数のセンサ特性のうちのどれが優先されるべきかのインジケーションに基づき複数のセンサのうちの１つ以上のセンサを特定し、該１つ以上のセンサからセンサデータを集め、該集められたデータをプログラムへ返すことを更に含む。
【図面の簡単な説明】
【０００５】
詳細な説明は、添付の図面を参照して記載される。図面において、参照符号の最左の数字は、その参照符号が最初に現れる図を特定する。明細書及び図面における異なるインスタンスでの同じ参照符号の使用は、類似した又は同じアイテムを示してよい。図面に表されているエンティティは、１つ以上のエンティティを示してよく、よって、本議論におけるエンティティの単数形又は複数形に対しては交換可能に言及されてよい。
【０００６】
【図１】１つ以上の実施形態に従って、要求されるセンサ特性に基づく自動センサ選択を実施するコンピューティングデバイスの例を表すブロック図である。
【０００７】
【図２】１つ以上の実施形態に従って、要求されるセンサ特性に基づく自動センサ選択を実施するプロセスの例を表すフローチャートである。
【０００８】
【図３】１つ以上の実施形態に従って、要求されるセンサ特性に基づく自動センサ選択が実施され得るシステムの例を表す。
【０００９】
【図４】１つ以上の実施形態に従って、センサデータを使用すべきかどうかをユーザが選択することを可能にするようユーザに表示され得るユーザインターフェイスの例を表す。
【００１０】
【図５】本願で記載される様々な技術を実装し得る１つ以上のシステム及び／又はデバイスを表すコンピューティングデバイスの例を含むシステムの例を表す。
【発明を実施するための形態】
【００１１】
要求されるセンサ特性に基づく自動センサ選択が本願で議論される。コンピューティングデバイスは、１つ以上のセンサを含むか、それらからデータを受け取ってよい。夫々のセンサは、コンピューティングデバイスが置かれている環境、又はコンピューティングデバイスが環境において位置している若しくは存在している様態（例えば、コンピューティングデバイスの位置（position）又は向き（orientation））に関するデータを供給する。それらのセンサは、電力使用量（データを取得する際にセンサによって使用される電力の量）、レイテンシー（アクティブにされた後にセンサがデータを供給するために要する時間の量）、精度（センサによって供給されるデータの精度）、などのような、様々な異なる特性を有している。
【００１２】
コンピューティングデバイスは、センサから受け取られたデータを使用する１つ以上のプログラムを更に含む。異なるプログラムは、異なるデータをセンサに要求し、且つ、どのセンサ特性が優先権を有すべきかに関して異なる要望を有することができる。例えば、１つプログラムは、正確な位置データを要求するが、位置データを取得するために使用される電力の量又は位置データを取得するために要する時間の量にはあまり関心がなくてよい。他のプログラムは、瞬時に位置データを要求するが、位置データの精度又は位置データを取得するために使用される電力の量にはあまり関心がなくてよい。
【００１３】
コンピューティングデバイスのセンサシステム（例えば、コンピューティングデバイスのオペレーティングシステムの部分）は、集められたデータ（位置又は向きデータ）をプログラムが要求することを可能にする検知プライオリティインターフェイスを提示する。プログラムは、優先権を有すべき１つ以上のセンサ特性のインジケーションをインターフェイスのパラメータとして提供する。センサシステムは、コンピューティングデバイスによってサポートされるセンサ及びプログラムによって提供されるインジケーションに基づき、要求されている集められたデータを得るためにどのセンサを使用すべきか（そして、任意に、センサのどの動作モードを使用すべきか）を決定する。センサシステムは、適切なセンサを作動させ、要求されている集められたデータを要求元のプログラムへ返す。
【００１４】
このように、センサシステムは、有利なことに、プログラムがセンサデータを要求し、プログラムにとって重要であるセンサ特性のインジケーションを提供することを可能にするインターフェイスを提供し、コンピューティングデバイスによってどのセンサがサポートされるか及びそれらのセンサのうちのどれを所望のセンサ特性を満たすために使用すべきかを知っていることをプログラムから取り除く。センサシステムは、有利なことに、プログラムを実行するコンピューティングデバイスによってサポートされるセンサの予備的な又は実行時の知識をプログラムが有さないことを可能にする。本願で論じられている技術は、有利なことに、プログラムにとって重要であるセンサ特性に基づくセンサデータをプログラムが提供されることにより、コンピューティングデバイスにおけるプログラムの使用を改善し、そして、有利なことに、電力使用特性がプログラムによって優先されることを可能にすることによってコンピューティングデバイスでの電力節約を増大させることができる。
【００１５】
図１は、１つ以上の実施形態に従って、要求されるセンサ特性に基づく自動センサ選択を実施する、例となるコンピューティングデバイス１００を表すブロック図である。コンピューティングデバイス１００は、デスクトップコンピュータ、サーバコンピュータ、ラップトップ又はネットブックコンピュータ、タブレット又はファブレット（phablet）デバイス、ノートパッドコンピュータ、移動局、エンターテイメント機器、表示デバイス、テレビ受信機又は他の表示デバイスへ通信上結合されているセットトップボックス、セルラー又は他のワイヤレス電話、ゲーム機、自動車コンピュータ、などのような、多種多様なデバイスであることができる。このように、コンピューティングデバイス１００は、相当量のメモリ及びプロセッサ資源を備えたフルリソースデバイス（例えば、パーソナルコンピュータ、ゲーム機）から、メモリ及び／又はプロセッシング資源が限られている低リソースデバイス（例えば、従来のセットトップボックス、携帯型ゲーム機）まで及んでよい。
【００１６】
コンピューティングデバイス１００は、センサシステム１０２、１つ以上のセンサ１０４、及び１つ以上のプログラム１０６を含む。１つ以上の実施形態において、センサシステム１０２は、コンピューティングデバイス１００のオペレーティングシステムの部分として実装される。なお、センサシステム１０２は、代替的に、コンピューティングデバイス１００の他のコンポーネント又はモジュールの部分として実装されてよい。センサシステム１０２は、センサデータが集められて要求元のプログラムへ返されるべきセンサを自動的に選択する。自動選択は、プログラムによって要求されているセンサ特性に基づく。夫々のセンサ１０４は、コンピューティングデバイス１００が置かれている環境、又はコンピューティングデバイス１００が環境において位置している又は存在している様態（例えば、コンピューティングデバイス１００の位置又は向き、コンピューティングデバイス１００の移動の速度、コンピューティングデバイス１００の移動の方向、など）に関するデータを供給する。センサ１０４のうちの１つ以上は、任意に、コンピューティングデバイス１００から物理的に分離している他のデバイスにおいて実装されるが、依然としてセンサデータをコンピューティングデバイス１００へ送ることができる。
【００１７】
センサシステム１０２は、検知プライオリティインターフェイス１１２、センサ選択モジュール１１４、及びセンサデータ集合モジュール１１６を含む。検知プライオリティインターフェイス１１２は、プログラム１０６によって呼び出されるか、又は別なふうに発動され得るインターフェイスであり、優先されるべき１つ以上のセンサ特性のインジケーションをパラメータとしてプログラム１０６から受け取る。優先されるべきそれらの１つ以上のセンサ特性は、プログラム１０６にとって（例えば、プログラム１０６の開発者にとって）重要である１つ以上のセンサ特性である。異なるプログラム１０６は、優先されるべき異なるセンサ特性のインジケーションをパラメータとして提供することができる。
【００１８】
センサ１０４は、電力使用量（データを取得する際にセンサによって使用される電力の量）、レイテンシー（アクティブにされた後にセンサがデータを供給するために要する時間の量）、精度（センサによって供給されるデータの精度）、などのような、様々な異なる特性を有することができる。センサ選択モジュール１１４は、プログラム１０６によって示された１つ以上のセンサ特性に加えて、センサ１０４の異なるセンサ特性に基づき、アクティブにすべき１つ以上のセンサ１０４を決定する。
【００１９】
センサデータ集合モジュール１１６は、センサ１０４のうちのアクティブにされたセンサからセンサデータを取得し、取得されたセンサデータを集約する。取得されたセンサデータを集約することは、センサデータを結合することを指し、それにより、個々のセンサデータではなく、結合された値がプログラム１０６へ返される。例えば、集約データは、３次元（３Ｄ）空間におけるコンピューティングデバイス１００の位置又は向き、コンピューティングデバイス１００の移動の速度、コンピューティングデバイス１００の移動の方向、などのインジケーションであることができる。
【００２０】
図２は、１つ以上の実施形態に従って、要求されるセンサ特性に基づく自動センサ選択を実施する、例となるプロセス２００を表すフローチャートである。プロセス２００は、図１のセンサシステム１０２のような、コンピューティングデバイスのセンサシステムによって実施され、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせにおいて実装され得る。プロセス２００は、動作の組として示されており、様々な動作の工程を実施するために示されている順序に制限されない。プロセス２００は、要求されるセンサ特性に基づく自動センサ選択を実施するプロセスの例であり、要求されるセンサ特性に基づく自動センサ選択を実施する更なる議論は、別の図を参照して本明細書に含まれる。
【００２１】
プロセス２００において、センサシステムは、検知プライオリティインターフェイスを表す（動作２０２）。この検知プライオリティインターフェイスは、例えば、図１の検知プライオリティインターフェイス１１２である。１つ以上の実施形態において、検知プライオリティインターフェイスは、優先されるべき１つ以上のセンサ特性のインジケーションをパラメータとしてとるSetSensingPriority()メソッドのような、アプリケーションプログラミングインターフェイス（ＡＰＩ；Application  Programming  Interface）のメソッドである。なお、検知プライオリティインターフェイスは、プログラムがデータを要求し、優先されるべき１つ以上のセンサ特性のインジケーションを提供することを可能にする様々な他の様態のいずれにおいても実施され得ることが留意されるべきである。
【００２２】
表されている検知プライオリティインターフェイスがプログラムによって呼び出されることの部分として、センサシステムは、優先されるべき１つ以上のセンサ特性のインジケーションを受け取る（動作２０４）。プログラムが検知プライオリティインターフェイスを呼び出すことは、どの特定のセンサを使用すべきかを特定する必要がなく、通常はそうしないことが留意されるべきである。むしろ、プログラムは、優先されるべき１つ以上のセンサ特性を示し、センサシステムに、示された１つ以上のセンサ特性は順位付けされるように適切なセンサシステムを使用することを期待する。
【００２３】
ヘディング（heading）精度、回転速度精度、空間距離精度、カロリー消費効果精度、データ検知のレイテンシー、検知システムの電力インパクト、及び検知システムの中央演算処理装置（ＣＰＵ；central  processing  unit）の使用のような、様々な異なるセンサ特性が優先され得る。それらのセンサ特性のうちのいずれか１つ以上が優先されてよい。なお、それらのセンサ特性は、優先され得るセンサ特性の例であり、他のセンサ特性が追加的に又は代替的に優先されてよいことが留意されるべきである。センサ特性が優先されることは、そのセンサ特性の正確な値が望まれていること、又は特定のセンサ特性に適合又は追随する様態での１つ以上のセンサの動作、を指す。
【００２４】
ヘディング精度を優先することは、コンピューティングデバイスが動いている又は向けられているヘディング（例えば、コンパス方位）の正確なインジケーションがプログラムによって望まれていることを指す。回転速度精度を優先することは、回転の速度（及び任意に、１つ以上のデバイス軸のうちのどれに関して回転が起こっているか）の正確なインジケーションがプログラムによって望まれていることを指す。空間距離精度を優先することは、一定量の時間にわたってコンピューティングデバイスによって動かされる距離の正確なインジケーションがプログラムによって望まれていることを指す。
【００２５】
カロリー消費効果精度を優先することは、一定量の時間にわたってコンピューティングデバイスのユーザによって消費されるカロリー量の正確なインジケーションがプログラムによって望まれていることを指す。データ検知のレイテンシーを優先することは、瞬時にセンサデータを受け取ることがプログラムによって望まれていることを指す。検知システムの電力インパクトを優先することは、センサデータを供給する際にセンサによって消費される電力の量が低減されるか又は少ないことがプログラムによって望まれていることを指す。検知システムの中央演算処理装置（ＣＰＵ）の使用を優先することは、センサデータを供給する際に使用されるＣＰＵ処理容量が低減されるか又は少ないことがプログラムによって望まれていることを指す。
【００２６】
一実施形態において、センサシステムは、３Ｄ空間におけるコンピューティングデバイスの位置又は向きのインジケーションのような、単一タイプの集約値をサポートする。代替的に、センサシステムは、３Ｄ空間におけるコンピューティングデバイスの位置又は向きのインジケーション、コンピューティングデバイスの移動の速度のインジケーション、などのような、複数の異なるタイプの集約値をサポートしてよい。そのような状況において、検知プライオリティインターフェイスは、プログラムによって提供される第２パラメータとして、どのタイプの集約値がプログラムによって望まれているかのインジケーションを更に有することができる。あるいは、センサシステムは、夫々の異なるタイプの集約値について１つの検知プライオリティインターフェイスであるように複数の検知プライオリティインターフェイスを含んでよい。故に、プログラムは、どのタイプの集約値がプログラムによって望まれているかのインジケーションを提供するのではなく、複数の検知プライオリティインターフェイスのうちの適切な１つを呼び出す。
【００２７】
１つ以上の実施形態において、プログラムは、優先されるべきセンサ特性のインジケーションを提供しなくてよい。この状況において、プログラムは、どのセンサ特性が優先されるべきかを決定することをセンサシステムに委ねる。センサシステムは、優先される１つ以上のデフォルトのセンサ特性を有することができ、あるいは、代替的に、どのセンサ特性が優先されるかを決定するために様々な他のルール又は基準を使用することができる。
【００２８】
検知プライオリティインターフェイスが呼び出されることに応答して、センサシステムは、優先されるべき１つ以上のセンサ特性の受け取られたインジケーションに基づき、センサデータが集められるべき１つ以上のセンサを特定して作動させる（動作２０６）。センサシステム（例えば、センサ選択モジュール）は、コンピューティングデバイスによってサポートされるセンサを知っている。コンピューティングデバイスによってサポートされるセンサは、センサデータがセンサシステムによって受け取られて集約され得るセンサを指す。サポートされる複数のセンサの組み合わせは、センサデータがセンサシステムによって受け取られて集約され得る複数のセンサを指す。それらのセンサは、コンピューティングデバイスに含まれているセンサに加えて、コンピューティングデバイスへ結合されるか又はコンピューティングデバイスがセンサデータを受け取ることができる如何なる他のセンサも含むことができる。センサデータが受け取られて集約され得ないセンサは、コンピューティングデバイスによってサポートされておらず（コンピューティングデバイスはそのようなセンサのサポートを欠いている。）、データが受け取られて集約され得ないセンサの組み合わせは、コンピューティングデバイスによってサポートされていない（コンピューティングデバイスはそのようなセンサの組み合わせのサポートを欠いている。）。センサシステムは、多種多様な様態において、例えば、サポートされるセンサのインジケーションを事前設定されること、コンピューティングデバイスの動作中に動的にセンサを特定すること（例えば、センサ又はデバイスドライバがセンサのオペレーティングシステムに登録するか、又は別なふうにそれに気付かせる場合。）、サポートされるセンサの他のデバイス又はサービスからインジケーションを取得すること、などによって、コンピューティングデバイスによってサポートされるセンサを知ることができる。
【００２９】
センサシステム（例えば、センサ選択モジュール）はまた、夫々のサポートされるセンサの特性を知っている。センサシステムは、多種多様な様態において、例えば、サポートされるセンサのセンサ特性のインジケーションを事前設定されること、サポートされるセンサのセンサ特性をコンピューティングデバイスの動作中に動的に特定すること（例えば、センサ又はデバイスドライバがセンサのオペレーティングシステムに登録するか、又は別なふうにそれに気付かせる場合。）、サポートされるセンサのセンサ特性の他のデバイス又はサービスからインジケーションを取得すること、などによって、サポートされるセンサのセンサ特性を知ることができる。
【００３０】
加速度計、磁気計、ジャイロスコープ、歩数計、気圧計、光センサ、温度計、などのような、様々な異なるセンサが、コンピューティングデバイスによってサポートされ得る。なお、それらのセンサは、コンピューティングデバイスによってサポートされ得るセンサの例であり、他の物理的又は発見的センサが追加的に又は代替的にコンピューティングデバイスによってサポートされてよいことが留意されるべきである。それらのセンサは、電力使用量は少ないがセンサデータの精度が低い低電力モード、及び電力使用量は多いがセンサデータの精度は高い高電力モードのような、２つ以上の異なる動作モードを任意に有することができる。それらの異なるモードは、同じセンサの異なるモードとしてセンサシステムによって扱われ得る。それにより、センサを作動させる特定のモードも動作２０６において特定される。代替的に、それらの異なるモードは、異なるセンサ（例えば、センサデータの精度は低いが使用電力量が少ない１つのセンサ、及びセンサデータの精度は高いが使用電力量が多い他のセンサ）としてセンサシステムによって扱われ得る。
【００３１】
センサ選択モジュールは、動作２０６でセンサを特定するために多種多様なルール、基準、マッピング、アルゴリズム、などのいずれも使用することができる。未だ作動していない特定されたセンサは、（任意に、上述されたような適切なモードにおいて）アクティブにされる。センサを作動させることは、電源オンすること、起動すること、又は別なふうに、センサがセンサデータをセンサシステムへ供給することができる状態にセンサを置くことを指す。１つ以上の実施形態において、センサ選択モジュールは、サポートされるセンサ及び優先されるべき示されたセンサ特性の特定の組み合わせについて、どの１つ以上のセンサが動作２０６で特定されるかを示す所定のマッピングを保持する。
【００３２】
１つ以上の実施形態において、動作２０６でセンサを特定するために使用されるルール、基準、マッピング、アルゴリズム、などは、どのセンサがコンピューティングデバイスによってサポートされるかに基づき特定されるセンサの１つ以上の可能な組み合わせを有している。可能な組み合わせは順位付けされ、最も高く順位付けされた組み合わせが動作２０６で組み合わせとして特定される。このように、センサシステムは、第１の選択及び１つ以上の代案を有することができる。例えば、最も高く順位付けされた組み合わせは、加速度計、ジャイロスコープ、及び磁気計センサの組み合わせであってよいが、それら３つのセンサの組み合わせがコンピューティングデバイスによってサポートされていない場合には、代案（次に高く順位付けされた組み合わせ）は、加速度計及び磁気計センサの組み合わせであってよい。
【００３３】
特定されたセンサからのセンサデータは、集約データを生成するよう集約される（動作２０８）。上述されたように、取得されたセンサデータを集約することは、センサデータを結合することを指し、それにより、個々のセンサデータではなく、結合された値が要求元のプログラムへ返される。なお、単一のセンサが動作２０６で特定される状況では、集約データは、その単一のセンサからのセンサデータであることができる。
【００３４】
複数のセンサからのセンサデータは、多種多様なルール、基準、マッピング、アルゴリズム、などのいずれかを用いて多種多様な様態において集約され得る。複数のセンサからのセンサデータは、様々な公開及び／又は専有技術のいずれかを用いて集約され得る。単一の集約値へのセンサデータの結合は、センサ融合（fusion）とも呼ばれる。例えば、集約値は、３Ｄ空間におけるコンピューティングデバイスの向きのインジケーションであることができ、向きは、３つのセンサ、すなわち、加速度計、ジャイロスコープ、及び磁気計のうちの１つ以上からのセンサデータから生成されたロール（roll）、ピッチ（pitch）及びヨー（yaw）（例えば、３Ｄ空間における夫々ｙ軸、ｘ軸及びｚ軸に関する。）の度において示される。集約値は、コンピューティングデバイスの向きを決定するためにジャイロスコープを使用し、そして、ジャイロスコープによって決定された向きに対して、加速度計又は磁気計から得られたモーションデータに基づくフィードバック制御信号を使用することによって補正係数を適用して、ジャイロスコープから得られたモーションデータにおけるドリフトを低減することで、生成され得る。
【００３５】
集約データは、データを要求したプログラムへ返される（動作２１０）。検知プライオリティインターフェイスが集約データをプログラムへ返し、プログラムは、次いで、返されたデータを望まれるように使用する。動作２０４〜２１０は、望まれるように、例えば、プログラムが集約値を要求するたびに、繰り返され得る。
【００３６】
１つ以上の実施形態において、コンピューティングデバイスが、それが他のデバイスのセンサからデータを取得することができる他のデバイスと物理的に十分に近くに（例えば、閾距離内に）位置している状況が起こり得る。図３は、１つ以上の実施形態に従って、要求されるセンサ特性に基づく自動センサ選択が実装され得る、例となるシステム３００を表す。システム３００は、複数のコンピューティングデバイス３０２、３０４、３０６及び３０８を含む。夫々のコンピューティングデバイスは、１つ以上のセンサ３１２、３１４、３１６及び３１８を夫々含む。コンピューティングデバイス３０２は、多種多様な無線又は有線通信メカニズムのいずれかを用いてコンピューティングデバイス３０４、３０６及び３０８と通信することができる。例えば、それらの通信メカニズムは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、赤外線、ワイヤレス・ユニバーサルシリアルバス（wireless  universal  serial  bus）（無線ＵＳＢ）、近距離通信（ＮＦＣ；near  field  communication）、などを含むことができる。それらの通信メカニズムは、ローカルエリアネットワーク（ＬＡＮ；local  area  network）、インターネット、電話（例えば、セルラー）ネットワーク、などのような、１つ以上のネットワークを更に含むことができる。
【００３７】
コンピューティングデバイス３０２は、コンピューティングデバイス３０４、３０６及び３０８の夫々によってサポートされるセンサのタイプと、それらサポートされるセンサのセンサ特性とを知ることができる。センサシステムは、図２の動作２０６において、センサデータが集められるべき複数のセンサを特定するときに、それらのセンサタイプ及びセンサ特性を考慮に入れることができる。例えば、センサ３１４は温度計を含んでよいが、センサ３１２は温度計を含まなくてよい。この状況において、コンピューティングデバイス３０２は、コンピューティングデバイス３０４の温度計からセンサデータを取得することができる。他の例として、センサ３１６は、センサ３１２に含まれる歩数計とは異なる特性（例えば、より高い精度）を有する歩数計を含んでよい。この状況において、コンピューティングデバイス３０２は、コンピューティングデバイス３０６の歩数計からセンサデータを取得することができる。
【００３８】
図２に戻ると、以下は、３Ｄ空間におけるコンピューティングデバイスの位置及び向きのインジケーションである集約データをコンピューティングデバイスにおいて生成する例である。コンピューティングデバイスは、加速度計、ジャイロスコープ、及び磁気計を含む少なくとも３つのセンサをサポートする。優先されるべき１つ以上のセンサ特性のインジケーションは、ヘディング精度、回転速度精度、及び電力効率のうちのいずれか１つ又はいずれかの組み合わせを含む。
【００３９】
ヘディング精度が優先されるべき１つ以上のセンサ特性であるとのインジケーションに応答して、動作２０６で、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計、ジャイロスコープ、及び磁気計センサを特定する。コンピューティングデバイスが、加速度計、ジャイロスコープ、及び磁気計センサからデータを集めることをサポートしない場合には、動作２０６において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
【００４０】
回転速度精度が優先されるべき１つ以上のセンサ特性であるとのインジケーションに応答して、動作２０６で、センサ選択モジュールは、センサデータが集められるべきセンサとして、加速度計、ジャイロスコープ、及び磁気計センサを特定する。コンピューティングデバイスが、加速度計、ジャイロスコープ、及び磁気計センサからデータを集めることをサポートしない場合には、動作２０６において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及びジャイロスコープセンサを特定する。コンピューティングデバイスが、加速度計及びジャイロスコープセンサからデータを集めることをサポートしない場合には、動作２０６において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
【００４１】
電力効率が優先されるべき１つ以上のセンサ特性であるとのインジケーションに応答して、動作２０６で、センサ選択モジュールは、センサデータが集められるべきセンサとして、加速度計及び磁気計センサを特定する。コンピューティングデバイスが、加速度計及び磁気計センサからデータを集めることをサポートしない場合には、動作２０６において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及びジャイロスコープセンサを特定する。コンピューティングデバイスが、加速度計及びジャイロスコープセンサからデータを集めることをサポートしない場合には、動作２０６において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計、ジャイロスコープ、及び磁気計センサを特定する。
【００４２】
ヘディング精度及び回転速度精度が優先されるべき１つ以上のセンサ特性であるとのインジケーションに応答して、動作２０６で、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計、ジャイロスコープ、及び磁気計センサを特定する。コンピューティングデバイスが、加速度計、ジャイロスコープ、及び磁気計センサからデータを集めることをサポートしない場合には、動作２０６において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
【００４３】
ヘディング精度及び電力効率が優先されるべき１つ以上のセンサ特性であるとのインジケーションに応答して、動作２０６で、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
【００４４】
回転速度精度及び電力効率が優先されるべき１つ以上のセンサ特性であるとのインジケーションに応答して、動作２０６で、センサ選択モジュールは、センサデータが集められるべきセンサとして、加速度計及びジャイロスコープセンサを特定する。コンピューティングデバイスが、加速度計及びジャイロスコープセンサからデータを集めることをサポートしない場合には、動作２０６において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
【００４５】
ヘディング精度、回転速度精度及び電力効率が優先されるべき１つ以上のセンサ特性であるとのインジケーションに応答して、動作２０６で、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
【００４６】
優先されるべきセンサ特性でないとのインジケーションに応答して、動作２０６で、センサ選択モジュールは、センサデータが集められるべきセンサとして、加速度計、ジャイロスコープ、及び磁気計センサを特定する。コンピューティングデバイスが、加速度計、ジャイロスコープ、及び磁気計センサからデータを集めることをサポートしない場合には、動作２０６において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。コンピューティングデバイスが、加速度計及び磁気計センサからデータを集めることをサポートしない場合には、動作２０６において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及びジャイロスコープセンサを特定する。
【００４７】
１つ以上の実施形態において、センサデータは、センサデータを使用するためのユーザ承諾を受け取った後にのみ、集約データを生成するために使用される。このユーザ承諾は、ユーザが、センサデータが使用されることを要求する積極的行動（affirmative  action）をとるオプトイン（opt-in）承諾であることができる。代替的に、このユーザ承諾は、ユーザが、センサデータが使用されないことを要求する積極的行動をとるオプトアウト（opt-out）承諾であることができる。ユーザがこのセンサデータの利用を見合わせる選択をしない場合には、それは、センサデータを使用するためのユーザによる黙示の承諾である。
【００４８】
図４は、１つ以上の実施形態に従って、センサデータを使用すべきかどうかをユーザが選択することを可能にするようユーザに表示され得るユーザインターフェイスの例を表す。センサ制御ウィンドウ４００は、センサデータが収集される理由をユーザに説明する記述４０２を含むように表示される。個人情報保護方針（privacy  statement）へのリンク４０４も表示される。ユーザがリンク４０４を選択する場合に、個人情報保護方針が表示され、ユーザの情報が如何にして外部に漏らされないかをユーザに説明する。
【００４９】
加えて、ユーザは、センサ使用を選択するラジオボタン４０６、又はセンサ使用を見合わせるラジオボタン４０８を選択することができる。ラジオボタン４０６又は４０８が選択されると、ユーザは、選択を保存すべく“ＯＫ”ボタン４１０を選択することができる。当然のことながら、ラジオボタン及び“ＯＫ”ボタンは、トラッキングを選択し又は見合わせるためにユーザに提示され得るユーザインターフェイスの単なる例であり、様々な他の従来のユーザインターフェイス技術が代替的に使用されてよい。次いで、センサシステムは、ユーザの選択に従って、センサデータを使用すること又はセンサデータを使用しないことのいずれか一方へ進む。
【００５０】
特定の機能が特定のモジュールを参照してここで論じられているが、ここで論じられている個々のモジュールの機能は複数のモジュールに分けられてよく、且つ／あるいは、複数のモジュールの少なくともいくつかの機能は単一のモジュールにまとめられてよいことが留意されるべきである。加えて、動作を実施するものとしてここで論じられている特定のモジュールは、その特定のモジュール自体が動作を実施すること、あるいは、代替的に、その特定のモジュールが、動作を実施する（又はその特定のモジュールとともに動作を実施する）他のコンポーネント又はモジュールを呼び出すか又は別なふうにそのような他のコンポーネント又はモジュールにアクセスすることを含む。このように、特定のモジュールが動作を実施することは、その特定のモジュール自体が動作を実施すること、及び／又はその特定のモジュールによって呼び出されるか若しくは別なふうにアクセスされた他のモジュールが動作を実施することを含む。
【００５１】
図５は、ここで記載されている様々な技術を実装し得る１つ以上のシステム及び／又はデバイスを表す、例となるコンピューティングデバイス５０２を含むシステムの例を全体を５００として表す。コンピューティングデバイス５０２は、例えば、サービスプロバイダのサーバ、クライアントに関連するデバイス（例えば、クライアントデバイス）、オンチップ・システム、及び／又はその他の適切なコンピューティングデバイス若しくはコンピューティングシステムであってよい。
【００５２】
表されている例となるコンピューティングデバイス５０２は、互いに通信上結合されているプロセッシングシステム５０４、１つ以上のコンピュータ可読媒体５０６、及び１つ以上のＩ／Ｏインターフェイス５０８を含む。図示されていないが、コンピューティングデバイス５０２は、様々なコンポーネントを互いに結合するシステムバス又は他のデータ及びコマンド転送システムを更に含んでよい。システムバスは、メモリバス若しくはメモリコントローラ、ペリフェラルバス、ユニバーサルシリアルバス、及び／又は様々なバスアーキテクチャのいずれかを利用するプロセッサ若しくはローカルバスのような、異なるバス構造のいずれか１つ又は組み合わせを含むことができる。様々な他の例、例えば、制御及びデータラインも考えられる。
【００５３】
プロセッシングシステム５０４は、ハードウェアを用いて１つ以上の演算を実行する機能を表す。然るに、プロセッシングシステム５０４は、プロセッサ、機能ブロック、などとして構成され得るハードウェア要素５１０を含むものとして表されている。これは、１つ以上の半導体を用いて形成された特定用途向け集積回路又は他の論理デバイスとしてのハードウェアにおける実施を含んでよい。ハードウェア要素５１０は、それらが形成される材料又はそれらに用いられるプロセッシングメカニズムに制限されない。例えば、プロセッサは、半導体及び／又はトランジスタ（電子集積回路（ＩＣ；integrated  circuit(s)））から成ってよい。そのような状況において、プロセッサ実行可能命令は、電子的に実行可能な命令であってよい。
【００５４】
コンピュータ可読媒体５０６は、メモリ／ストレージ５１２を含むものとして表されている。メモリ／ストレージ５１２は、１つ以上のコンピュータ可読媒体に関連するメモリ／ストレージ容量に相当する。メモリ／ストレージ５１２は、揮発性媒体（例えば、ランダムアクセスメモリ（ＲＡＭ；random  access  memory））及び／又は不揮発性媒体（例えば、リードオンリーメモリ（ＲＯＭ；read  only  memory）、フラッシュメモリ、光ディスク、磁気ディスク、など）を含んでよい。メモリ／ストレージ５１２は、固定媒体（例えば、ＲＡＭ、ＲＯＭ、固定ハードドライブ、など）及びリムーバブル媒体（例えば、フラッシュメモリ、リムーバブルハードドライブ、光ディスク、など）を含んでよい。コンピュータ可読媒体５０６は、以下で更に記載されるように、様々な他の方法において構成されてよい。
【００５５】
入力／出力インターフェイス５０８は、ユーザがコマンド及び情報をコンピューティングデバイス５０２に入力することを可能にし、更には、情報がユーザ及び／又は他のコンポーネント若しくはデバイスに様々な入力／出力デバイスを用いて提示されることを可能にする機能を表す。入力レバイスの例には、キーボード、カーソル制御デバイス（例えば、マウス）、マイクロホン（例えば、音声入力用）、スキャナ、タッチ機能（例えば、物理的なタッチを検出するよう構成される容量性又は他のセンサ）、カメラ（例えば、タッチを含まない動きをジェスチャとして検出するために、赤外周波数のような可視又は不可視波長を用いてよい。）、などがある。出力デバイスの例には、表示デバイス（例えば、モニタ又はプロジェクタ）、スピーカ、プリンタ、ネットワークカード、触覚応答デバイス、などがある。このように、コンピューティングデバイス５０２は、ユーザインタラクションをサポートするよう、以下で更に記載されるように、様々な方法で構成されてよい。
【００５６】
コンピューティングデバイス５０２はセンサシステム５１４を更に含む。センサシステム５１４は、上述されたように、プログラムによって要求されているセンサ特性に基づき、センサデータが集められるべきセンサを自動的に選択する。センサシステム５１４は、例えば、図１のセンサシステム１０２を実装することができる。
【００５７】
様々な技術が、ソフトウェア、ハードウェア要素、又はプログラムモジュールの一般的状況においてここで記載されてよい。一般に、そのようなモジュールは、特定のタスクを実行するか又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、エレメント、コンポーネント、データ構造、などを含む。ここで使用される語「モジュール（module）」、「機能（functionality）」及び「コンポーネント（component）」は、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせを一般に表す。ここで記載される技術の特徴は、プラットフォームから独立しており、これは、様々なプロセッサを有する様々なコンピューティングプラットフォームにおいて実装されてよいことを意味する。
【００５８】
記載されるモジュール及び技術の実施は、何らかの形のコンピュータ可読媒体に記憶されるか、又はそれにより伝送されてよい。コンピュータ可読媒体は、コンピューティングデバイス５０２によってアクセスされ得る様々な媒体を含んでよい。一例として、制限なしに、コンピュータ可読媒体は、「コンピュータ可読記憶媒体」及び「コンピュータ可読信号媒体」を含んでよい。
【００５９】
「コンピュータ可読記憶媒体」は、単なる信号伝送、搬送波、又は信号自体とは対照的に、情報の恒久的な記憶及び／又は有形である記憶を可能にする媒体及び／又はデバイスを指す。よって、コンピュータ可読記憶媒体は、非信号保持媒体を指す。コンピュータ可読記憶媒体は、コンピュータ読み出し可能な命令、データ構造、プログラムモジュール、論理要素／回路、又は他のデータのような情報の記憶に適した方法又は技術において実装される揮発性及び不揮発性の、リムーバブル及び非リムーバブルの媒体及び／又は記憶デバイスのようなハードウェアを含む。コンピュータ可読記憶媒体の例は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリ若しくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタルバーサタイルディスク（ＤＶＤ；Digital  Versatile  Disc）若しくは他の光学ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、又は所望の情報を記憶するのに適しており、コンピュータによってアクセスされ得る他の記憶デバイス、有形的媒体若しくは製品を含んでよいが、それらに限られない。
【００６０】
「コンピュータ可読信号媒体」は、例えばネットワークを介してコンピューティングデバイス５０２のハードウェアへ命令を送信するよう構成される信号保持媒体を指す。信号媒体は、通常、搬送波、データ信号、又は他の伝送メカニズムのような変調データ信号においてコンピュータ読み出し可能な命令、データ構造、プログラムモジュール、又は他のデータを具現してよい。信号媒体はまた、如何なる情報配信媒体も含む。語「変調データ信号」は、信号において情報を符号化するようにその特性の１つ以上を設定又は変更されている信号を意味する。例として、制限なしに、通信媒体は、有線ネットワーク又は直接接続のような有線媒体と、音響、ＲＦ、赤外線、及び無線媒体のような無線媒体とを含む。
【００６１】
上述されたように、ハードウェア要素５１０及びコンピュータ可読媒体５０６は、ここで記載されている技術の少なくとも幾つかの態様を実装するよういくつかの実施形態において用いられ得るハードウェア形態で実装される命令、モジュール、プログラム可能デバイスロジック及び／又は固定デバイスロジックを表す。ハードウェア要素は、集積回路又はオンチップ・システム、特定用途向け集積回路（ＡＳＩＣ；application-specific  integrated  circuit）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ；field-programmable  gate  array）、複合プログラム可能論理デバイス（ＣＰＬＤ；complex  programmable  logic  device）、及びシリコン又は他のハードウェアデバイスにおける他の実装のコンポーネントを含んでよい。これに関して、ハードウェア要素は、ハードウェア要素によって具現される命令、モジュール、及び／又はロジックによって定義されるプログラムタスクを実行するプロセッシングデバイス、並びに実行のための命令を記憶するために利用されるハードウェアデバイス（例えば、上述されたコンピュータ可読記憶媒体）として動作してよい。
【００６２】
上記の組み合わせも、ここで記載される様々な技術及びモジュールを実装するために用いられてよい。然るに、ソフトウェア、ハードウェア、又はプログラムモジュール及び他のプログラムモジュールは、何らかの形のコンピュータ可読記憶媒体において具現される１つ以上の命令及び／又はロジックとして、及び１つ以上のハードウェア要素５１０によって、実装されてよい。コンピューティングデバイス５０２は、ソフトウェア及び／又はハードウェアモジュールに対応する特定の命令及び／又は機能を実装するよう構成されてよい。然るに、ソフトウェアとしてコンピューティングデバイス５０２によって実行可能であるモジュールとしてモジュールの実装は、少なくとも部分的にハードウェアにおいて、例えば、コンピュータ可読記憶媒体及び／又はプロセッシングシステムのハードウェア要素５１０の使用を通じて、達成されてよい。命令及び／又は機能は、ここで記載される技術、モジュール、及び例を実装するために１つ以上の製品（例えば、１つ以上のコンピューティングデバイス５０２及び／又はプロセッシングシステム５０４）によって実行可能／動作可能であってよい。
【００６３】
図５に更に表されているように、例となるシステム５００は、パーソナルコンピュータ（ＰＣ；personal  computer）、テレビジョンデバイス、及び／又はモバイルデバイスでアプリケーションを実行するときに、シームレスなユーザ体験のためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用している間、ビデオゲームで遊んでいる間、ビデオを鑑賞している間、などに１つのデバイスから次のデバイスへ移るときに、共通のユーザ体験のために３つ全ての環境において実質的に同じように実行される。
【００６４】
例となるシステム５００において、複数のデバイスは中央コンピューティングデバイスを通じて相互接続される。中央コンピューティングデバイスは、複数のデバイスの場所にあってよく、あるいは、複数のデバイスから離れて置かれてよい。１つ以上の実施形態において、中央コンピューティングデバイスは、ネットワーク、インターネット、又は他のデータ通信リンクを通じて複数のデバイスへ接続される１つ以上のサーバコンピュータのクラウドであってよい。
【００６５】
１つ以上の実施形態において、この相互接続アーキテクチャは、複数のデバイスにわたって分配される機能が、共通したシームレスな体験を複数のデバイスのユーザに提供することを可能にする。複数のデバイスの夫々は、異なる物理的要件及び機能を有してよく、中央コンピューティングデバイスは、デバイスに合わせされ、その上全てのデバイスに共通であるデバイスへの体験の提供を可能にするプラットフォームを使用する。１つ以上の実施形態において、対象デバイスの分類が作成され、体験はデバイスの包括的分類に合わせられる。デバイスの分類は、デバイスの物理的特徴、使用のタイプ、他の共通の特性によって定義されてよい。
【００６６】
様々な実施において、コンピューティングデバイス５０２は、コンピュータ５１６、モバイル５１８、及びテレビ受信機５２０の使用のような、多種多様な構成を想定してよい。それらの構成の夫々は、一般的に異なった構成及び機能を有し得るデバイスを含み、よって、コンピューティングデバイス５０２は、異なるデバイス分類の１つ以上に従って構成されてよい。例えば、コンピューティングデバイス５０２は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック、などを含むデバイスのコンピュータ５１６分類として実装されてよい。
【００６７】
コンピューティングデバイス５０２はまた、携帯電話機、携帯型音楽プレイヤー、携帯型ゲーム機、タブレットコンピュータ、マルチスクリーンコンピュータ、などのようなモバイルデバイスを含むデバイスのモバイル５１８分類として実装されてよい。コンピューティングデバイス５０２はまた、平常通りのビューイング環境において一般的により大きいスクリーンを有しているか又はそのようなスクリーンへ接続されているデバイスを含むデバイスのテレビ受信機５２０分類として実装されてよい。
【００６８】
ここで記載される技術は、コンピューティングデバイス５０２のそれらの様々な構成によってサポートされてよく、ここで記載される技術の具体例に制限されない。この機能はまた、完全に又は部分的に、分散型システムの使用を通じて、例えば、以下で記載されるように、プラットフォーム５２４を介して“クラウド”５２２上で、実装されてよい。
【００６９】
クラウド５２２は、リソース５２６のためのプラットフォーム５２４を含むか、及び／又はそれを代表する。プラットフォーム５２４は、クラウド５２２のハードウェア（例えば、サーバ）及びソフトウェアリソースの基礎的機能を抽象する。リソース５２６は、コンピューティングデバイス５０２から離れているサーバ上でコンピュータプロセッシングが実行される間に利用され得るアプリケーション及び／又はデータを含んでよい。リソース５２６は、インターネット上で及び／又は加入者ネットワーク（例えば、セルラー若しくはＷｉ−Ｆｉ（登録商標））を通じて提供されるサービスを更に含むことができる。
【００７０】
プラットフォーム５２４は、コンピューティングデバイス５０２を他のコンピューティングデバイスと接続するリソース及び機能を抽象してよい。プラットフォーム５２４はまた、プラットフォーム５２４を介して実装されるリソース５２６の直面された需要に対して対応するレベルのスケールを提供するリソースのスケーリングを抽象するのに役立つことができる。然るに、相互接続されたデバイスの実施形態において、ここで記載される機能の実装は、システム５００の全体にわたって分配されてよい。例えば、機能は、コンピューティングデバイス５０２において部分的に、更には、クラウド５２２の機能を抽象するプラットフォーム５２４を介して、実装されてよい。
【００７１】
ここでの議論において、様々な異なる実施形態が記載されている。当然のことながら、ここで記載される夫々の実施形態は、単独で、又はここで記載される１つ以上の他の実施形態と関連して、使用され得る。ここで論じられている技術の更なる態様は、以下の実施形態の１つ以上に関係がある。
【００７２】
コンピューティングデバイスで実装される方法は、優先されるべき１つ以上のセンサ特性のインジケーションであるパラメータを有する検知プライオリティインターフェイスを示すことと、前記検知プライオリティインターフェイスが、優先されるべき１つ以上のセンサ特性の前記インジケーションを提供するプログラムによって呼び出されることに応答して、優先されるべき前記１つ以上のセンサ特性の前記インジケーションに基づき、センサデータが集められるべき複数のセンサのうちの１つ以上のセンサを特定し、前記１つ以上のセンサから前記センサデータを集め、前記集められたデータを前記プログラムへ返すこととを有する。
【００７３】
代替的に、又は上記の方法に加えて、前記複数のセンサは、加速度計、磁気計、及びジャイロスコープを含み、前記集められたデータは、３Ｄ空間における前記コンピューティングデバイスの３次元の位置及び向きを有すること、前記１つ以上のセンサ特性は、ヘディング精度、回転速度精度、及び電力効率を含むグループから選択された１つ以上のセンサ特性を有すること、前記特定することは、前記コンピューティングデバイスによってサポートされるセンサに基づき前記１つ以上のセンサを特定することを更に有すること、前記複数のセンサは、加速度計、磁気計、ジャイロスコープ、歩数計、気圧計、光センサ、及び温度計を含むグループから選択された２つ以上のセンサを有すること、前記１つ以上のセンサ特性は、ヘディング精度、回転速度精度、電力効率、空間距離精度、カロリー消費効果精度、データ検知のレイテンシー、及びＣＰＵ使用量を含むグループから選択された１つ以上のセンサ特性を有すること、当該方法は、前記コンピューティングデバイスのオペレーティングシステムで実装されること、前記プログラムは、前記コンピューティングデバイスによってサポートされるセンサの予備的（prior）又は実行時（run-time）の知識を有さないこと、前記特定することは、センサの最も高く順位付けされた組み合わせと、前記コンピューティングデバイスがセンサの最も高く順位付けされた組み合わせのためのサポートを欠いていることに応答して特定すべきセンサの代替の組み合わせとを決定することを更に有すること、前記１つ以上のセンサは、前記コンピューティングデバイスから分離した他のデバイスに位置するセンサを含むこと、のいずれか１つ又は組み合わせが提供される。
【００７４】
コンピューティングデバイスは、１つ以上のプロセッサを有するプロセッシングシステムと、前記プロセッシングシステムによって実行される場合に、該プロセッシングシステムに、複数のセンサ特性のうちのどれが優先されるべきかのインジケーションをパラメータとして受ける検知プライオリティインターフェイスを示すことと、前記検知プライオリティインターフェイスが当該コンピューティングデバイスのプログラムによって呼び出されることに応答して、複数のセンサ特性のうちのどれが優先されるべきかの前記インジケーションに基づき、複数のセンサのうちの１つ以上のセンサを特定し、前記１つ以上のセンサからセンサデータを集め、前記集められたデータを前記プログラムへ返すこととを含む動作を実施させる複数の命令を記憶している１つ以上のコンピュータ可読記憶媒体とを有する。
【００７５】
代替的に、又は上記のコンピューティングデバイスに加えて、前記複数のセンサは、加速度計、磁気計、及びジャイロスコープを含み、前記集められたデータは、３Ｄ空間における前記コンピューティングデバイスの３次元の位置及び向きを有すること、前記複数のセンサ特性は、ヘディング精度、回転速度精度、及び電力効率を含むこと、前記特定することは、当該コンピューティングデバイスによってサポートされるセンサの組み合わせに基づき前記１つ以上のセンサを特定することを更に有すること、前記複数のセンサは、加速度計、磁気計、ジャイロスコープ、歩数計、気圧計、光センサ、及び温度計を含むグループから選択される２つ以上のセンサを有すること、前記複数のセンサ特性は、ヘディング精度、回転速度精度、電力効率、空間距離精度、カロリー消費効果精度、データ検知のレイテンシー、及びＣＰＵ使用量を含むこと、前記複数の命令は、当該コンピューティングデバイスのオペレーティングシステムの部分であること、前記プログラムは、当該コンピューティングデバイスによってサポートされるセンサの予備的又は実行時の知識を有さないこと、前記１つ以上のセンサは、当該コンピューティングデバイスから分離した他のデバイスに位置するセンサを含むこと、のいずれか１つ又は組み合わせが提供される。
【００７６】
コンピューティングデバイスで実装される方法は、優先されるべき１つ以上のセンサ特性のインジケーションであるパラメータを有するＡＰＩメソッドを示し、前記１つ以上のセンサ特性は、ヘディング精度、回転速度精度、及び電力効率を含むグループから選択される１つ以上のセンサ特性を有することと、前記コンピューティングデバイスで実行されるプログラムによって前記ＡＰＩメソッドが呼び出されることに応答して、前記プログラムは、前記コンピューティングデバイスによってサポートされるセンサの予備的又は実行時の知識を有さず、前記プログラムは、優先されるべき１つ以上のセンサ特性の前記インジケーションを提供し、前記優先されるべき前記１つ以上のセンサ特性の前記インジケーションに基づき、センサデータが集められるべき複数のセンサを特定し、該複数のセンサは、加速度計、磁気計、及びジャイロスコープを含み、前記複数のセンサから前記センサデータを集め、該集められたデータは、３Ｄ空間における前記コンピューティングデバイスの３Ｄの位置及び向きを有し、前記集められたデータを前記プログラムへ返すこととを有する。
【００７７】
構造的特徴及び／又は方法論的動作に特有の言語において対象が記載されてきたが、添付の特許請求の範囲において定義されている対象は、必ずしも、上記の具体的な特徴又は動作に制限されない。むしろ、上記の具体的な特徴及び動作は、特許請求の範囲を実施する例となる形態として開示されている。
【図１】
2017530350.tif 000003
【図２】
2017530350.tif 000004
【図３】
2017530350.tif 000005
【図４】
2017530350.tif 000006
【図５】
2017530350.tif 000007
【国際調査報告】
2017530350.tif 000008
2017530350.tif 000009