JP2017530350A - 要求されたセンサ特性に基づく自動センサ選択 - Google Patents
要求されたセンサ特性に基づく自動センサ選択 Download PDFInfo
- Publication number
- JP2017530350A JP2017530350A JP2017513229A JP2017513229A JP2017530350A JP 2017530350 A JP2017530350 A JP 2017530350A JP 2017513229 A JP2017513229 A JP 2017513229A JP 2017513229 A JP2017513229 A JP 2017513229A JP 2017530350 A JP2017530350 A JP 2017530350A
- Authority
- JP
- Japan
- Prior art keywords
- sensor
- sensors
- computing device
- data
- program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
- G01C21/1654—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with electromagnetic compass
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
- G01C21/1656—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
- G01C21/206—Instruments for performing navigational calculations specially adapted for indoor navigation
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01D—MEASURING NOT SPECIALLY ADAPTED FOR A SPECIFIC VARIABLE; ARRANGEMENTS FOR MEASURING TWO OR MORE VARIABLES NOT COVERED IN A SINGLE OTHER SUBCLASS; TARIFF METERING APPARATUS; MEASURING OR TESTING NOT OTHERWISE PROVIDED FOR
- G01D9/00—Recording measured values
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/18—Handling requests for interconnection or transfer for access to memory bus based on priority control
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
- H04L67/125—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/567—Integrating service provisioning from a plurality of service providers
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Engineering & Computer Science (AREA)
- Electromagnetism (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- User Interface Of Digital Computer (AREA)
- Navigation (AREA)
Abstract
コンピューティングデバイスは、1つ以上のセンサを含むか、又はそれらからデータを受け取ることができる。各センサは、コンピューティングデバイスが置かれている環境又は様態に関するデータを提供する。コンピューティングデバイスは、センサから受け取られたデータを使用する1つ以上のプログラムを更に含む。コンピューティングデバイスのセンサシステムは、プログラムがセンサからの集められたデータを要求することを可能にする検知プライオリティインターフェイスを提示する。プログラムは、優先権を有すべきセンサ特性のインジケーションをインターフェイスのパラメータとして提供する。センサシステムは、コンピューティングデバイスによってサポートされるセンサ及びプログラムによって提供されるインジケーションに基づき、集められたデータを得るためにどのセンサを使用すべきかを決定する。センサシステムは適切なセンサを作動させ、要求された集められたデータを要求元のプログラムへ返す。
Description
コンピューティング・テクノロジが進歩するにつれて、コンピュータは、多数の異なる機能を実施するためにますます頼りにされるようになっている。特に、モバイルコンピュータにおける、1つのそのような機能は、コンピュータの環境又は位置に関する情報を検知することである。この検知は、加速度計、ジャイロスコープ、磁気計、などのような種々のセンサに基づき実施され得る。この検知された情報は、コンピュータ上で様々な異なるプログラムによって異なる様態において使用され得る。しかし、異なるコンピュータは、異なる様態で動作する異なるセンサを有することができるので、プログラム開発者が、プログラムによって使用されることを望まれる検知情報を如何にして取得すべきかを知ることは、ときどき困難でありうる。
この要約は、詳細な説明において以下で更に記載される概念の選択を簡略化された形で紹介するよう与えられている。この要約は、請求される対象の重要な特徴又は必須の特徴を特定するよう意図されず、更には、請求される対象の適用範囲を限定するために使用されるよう意図されない。
1つ以上の態様に従って、検知プライオリティインターフェイスが表され、このインターフェイスは、優先されるべき1つ以上のセンサ特性のインジケーションであるパラメータを有している。検知プライオリティインターフェイスがプログラムによって呼び出されることに応答して、センサデータが集められるべき複数のセンサのうちの1つ以上のセンサは、優先されるべき1つ以上のセンサ特性のインジケーションに基づき特定される。1つ以上のセンサからのセンサデータは集められ、該集められたデータはプログラムへ返される。
1つ以上の態様に従って、コンピューティングデバイスは、1つ以上のプロセッサを有するプロセッシングシステムと、該プロセッシングシステムによって実行される場合に、該プロセッシングシステムに動作を実施させる複数の命令を記憶している1つ以上のコンピュータ可読記憶媒体とを含む。それらの動作は、複数のセンサ特性のうちのどれが優先されるべきかのインジケーションをパラメータとして受ける検知プライオリティインターフェイスを表すことを含む。動作は、検知プライオリティインターフェイスがコンピューティングデバイスのプログラムによって呼び出されることに応答して、複数のセンサ特性のうちのどれが優先されるべきかのインジケーションに基づき複数のセンサのうちの1つ以上のセンサを特定し、該1つ以上のセンサからセンサデータを集め、該集められたデータをプログラムへ返すことを更に含む。
詳細な説明は、添付の図面を参照して記載される。図面において、参照符号の最左の数字は、その参照符号が最初に現れる図を特定する。明細書及び図面における異なるインスタンスでの同じ参照符号の使用は、類似した又は同じアイテムを示してよい。図面に表されているエンティティは、1つ以上のエンティティを示してよく、よって、本議論におけるエンティティの単数形又は複数形に対しては交換可能に言及されてよい。
要求されるセンサ特性に基づく自動センサ選択が本願で議論される。コンピューティングデバイスは、1つ以上のセンサを含むか、それらからデータを受け取ってよい。夫々のセンサは、コンピューティングデバイスが置かれている環境、又はコンピューティングデバイスが環境において位置している若しくは存在している様態(例えば、コンピューティングデバイスの位置(position)又は向き(orientation))に関するデータを供給する。それらのセンサは、電力使用量(データを取得する際にセンサによって使用される電力の量)、レイテンシー(アクティブにされた後にセンサがデータを供給するために要する時間の量)、精度(センサによって供給されるデータの精度)、などのような、様々な異なる特性を有している。
コンピューティングデバイスは、センサから受け取られたデータを使用する1つ以上のプログラムを更に含む。異なるプログラムは、異なるデータをセンサに要求し、且つ、どのセンサ特性が優先権を有すべきかに関して異なる要望を有することができる。例えば、1つプログラムは、正確な位置データを要求するが、位置データを取得するために使用される電力の量又は位置データを取得するために要する時間の量にはあまり関心がなくてよい。他のプログラムは、瞬時に位置データを要求するが、位置データの精度又は位置データを取得するために使用される電力の量にはあまり関心がなくてよい。
コンピューティングデバイスのセンサシステム(例えば、コンピューティングデバイスのオペレーティングシステムの部分)は、集められたデータ(位置又は向きデータ)をプログラムが要求することを可能にする検知プライオリティインターフェイスを提示する。プログラムは、優先権を有すべき1つ以上のセンサ特性のインジケーションをインターフェイスのパラメータとして提供する。センサシステムは、コンピューティングデバイスによってサポートされるセンサ及びプログラムによって提供されるインジケーションに基づき、要求されている集められたデータを得るためにどのセンサを使用すべきか(そして、任意に、センサのどの動作モードを使用すべきか)を決定する。センサシステムは、適切なセンサを作動させ、要求されている集められたデータを要求元のプログラムへ返す。
このように、センサシステムは、有利なことに、プログラムがセンサデータを要求し、プログラムにとって重要であるセンサ特性のインジケーションを提供することを可能にするインターフェイスを提供し、コンピューティングデバイスによってどのセンサがサポートされるか及びそれらのセンサのうちのどれを所望のセンサ特性を満たすために使用すべきかを知っていることをプログラムから取り除く。センサシステムは、有利なことに、プログラムを実行するコンピューティングデバイスによってサポートされるセンサの予備的な又は実行時の知識をプログラムが有さないことを可能にする。本願で論じられている技術は、有利なことに、プログラムにとって重要であるセンサ特性に基づくセンサデータをプログラムが提供されることにより、コンピューティングデバイスにおけるプログラムの使用を改善し、そして、有利なことに、電力使用特性がプログラムによって優先されることを可能にすることによってコンピューティングデバイスでの電力節約を増大させることができる。
図1は、1つ以上の実施形態に従って、要求されるセンサ特性に基づく自動センサ選択を実施する、例となるコンピューティングデバイス100を表すブロック図である。コンピューティングデバイス100は、デスクトップコンピュータ、サーバコンピュータ、ラップトップ又はネットブックコンピュータ、タブレット又はファブレット(phablet)デバイス、ノートパッドコンピュータ、移動局、エンターテイメント機器、表示デバイス、テレビ受信機又は他の表示デバイスへ通信上結合されているセットトップボックス、セルラー又は他のワイヤレス電話、ゲーム機、自動車コンピュータ、などのような、多種多様なデバイスであることができる。このように、コンピューティングデバイス100は、相当量のメモリ及びプロセッサ資源を備えたフルリソースデバイス(例えば、パーソナルコンピュータ、ゲーム機)から、メモリ及び/又はプロセッシング資源が限られている低リソースデバイス(例えば、従来のセットトップボックス、携帯型ゲーム機)まで及んでよい。
コンピューティングデバイス100は、センサシステム102、1つ以上のセンサ104、及び1つ以上のプログラム106を含む。1つ以上の実施形態において、センサシステム102は、コンピューティングデバイス100のオペレーティングシステムの部分として実装される。なお、センサシステム102は、代替的に、コンピューティングデバイス100の他のコンポーネント又はモジュールの部分として実装されてよい。センサシステム102は、センサデータが集められて要求元のプログラムへ返されるべきセンサを自動的に選択する。自動選択は、プログラムによって要求されているセンサ特性に基づく。夫々のセンサ104は、コンピューティングデバイス100が置かれている環境、又はコンピューティングデバイス100が環境において位置している又は存在している様態(例えば、コンピューティングデバイス100の位置又は向き、コンピューティングデバイス100の移動の速度、コンピューティングデバイス100の移動の方向、など)に関するデータを供給する。センサ104のうちの1つ以上は、任意に、コンピューティングデバイス100から物理的に分離している他のデバイスにおいて実装されるが、依然としてセンサデータをコンピューティングデバイス100へ送ることができる。
センサシステム102は、検知プライオリティインターフェイス112、センサ選択モジュール114、及びセンサデータ集合モジュール116を含む。検知プライオリティインターフェイス112は、プログラム106によって呼び出されるか、又は別なふうに発動され得るインターフェイスであり、優先されるべき1つ以上のセンサ特性のインジケーションをパラメータとしてプログラム106から受け取る。優先されるべきそれらの1つ以上のセンサ特性は、プログラム106にとって(例えば、プログラム106の開発者にとって)重要である1つ以上のセンサ特性である。異なるプログラム106は、優先されるべき異なるセンサ特性のインジケーションをパラメータとして提供することができる。
センサ104は、電力使用量(データを取得する際にセンサによって使用される電力の量)、レイテンシー(アクティブにされた後にセンサがデータを供給するために要する時間の量)、精度(センサによって供給されるデータの精度)、などのような、様々な異なる特性を有することができる。センサ選択モジュール114は、プログラム106によって示された1つ以上のセンサ特性に加えて、センサ104の異なるセンサ特性に基づき、アクティブにすべき1つ以上のセンサ104を決定する。
センサデータ集合モジュール116は、センサ104のうちのアクティブにされたセンサからセンサデータを取得し、取得されたセンサデータを集約する。取得されたセンサデータを集約することは、センサデータを結合することを指し、それにより、個々のセンサデータではなく、結合された値がプログラム106へ返される。例えば、集約データは、3次元(3D)空間におけるコンピューティングデバイス100の位置又は向き、コンピューティングデバイス100の移動の速度、コンピューティングデバイス100の移動の方向、などのインジケーションであることができる。
図2は、1つ以上の実施形態に従って、要求されるセンサ特性に基づく自動センサ選択を実施する、例となるプロセス200を表すフローチャートである。プロセス200は、図1のセンサシステム102のような、コンピューティングデバイスのセンサシステムによって実施され、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせにおいて実装され得る。プロセス200は、動作の組として示されており、様々な動作の工程を実施するために示されている順序に制限されない。プロセス200は、要求されるセンサ特性に基づく自動センサ選択を実施するプロセスの例であり、要求されるセンサ特性に基づく自動センサ選択を実施する更なる議論は、別の図を参照して本明細書に含まれる。
プロセス200において、センサシステムは、検知プライオリティインターフェイスを表す(動作202)。この検知プライオリティインターフェイスは、例えば、図1の検知プライオリティインターフェイス112である。1つ以上の実施形態において、検知プライオリティインターフェイスは、優先されるべき1つ以上のセンサ特性のインジケーションをパラメータとしてとるSetSensingPriority()メソッドのような、アプリケーションプログラミングインターフェイス(API;Application Programming Interface)のメソッドである。なお、検知プライオリティインターフェイスは、プログラムがデータを要求し、優先されるべき1つ以上のセンサ特性のインジケーションを提供することを可能にする様々な他の様態のいずれにおいても実施され得ることが留意されるべきである。
表されている検知プライオリティインターフェイスがプログラムによって呼び出されることの部分として、センサシステムは、優先されるべき1つ以上のセンサ特性のインジケーションを受け取る(動作204)。プログラムが検知プライオリティインターフェイスを呼び出すことは、どの特定のセンサを使用すべきかを特定する必要がなく、通常はそうしないことが留意されるべきである。むしろ、プログラムは、優先されるべき1つ以上のセンサ特性を示し、センサシステムに、示された1つ以上のセンサ特性は順位付けされるように適切なセンサシステムを使用することを期待する。
ヘディング(heading)精度、回転速度精度、空間距離精度、カロリー消費効果精度、データ検知のレイテンシー、検知システムの電力インパクト、及び検知システムの中央演算処理装置(CPU;central processing unit)の使用のような、様々な異なるセンサ特性が優先され得る。それらのセンサ特性のうちのいずれか1つ以上が優先されてよい。なお、それらのセンサ特性は、優先され得るセンサ特性の例であり、他のセンサ特性が追加的に又は代替的に優先されてよいことが留意されるべきである。センサ特性が優先されることは、そのセンサ特性の正確な値が望まれていること、又は特定のセンサ特性に適合又は追随する様態での1つ以上のセンサの動作、を指す。
ヘディング精度を優先することは、コンピューティングデバイスが動いている又は向けられているヘディング(例えば、コンパス方位)の正確なインジケーションがプログラムによって望まれていることを指す。回転速度精度を優先することは、回転の速度(及び任意に、1つ以上のデバイス軸のうちのどれに関して回転が起こっているか)の正確なインジケーションがプログラムによって望まれていることを指す。空間距離精度を優先することは、一定量の時間にわたってコンピューティングデバイスによって動かされる距離の正確なインジケーションがプログラムによって望まれていることを指す。
カロリー消費効果精度を優先することは、一定量の時間にわたってコンピューティングデバイスのユーザによって消費されるカロリー量の正確なインジケーションがプログラムによって望まれていることを指す。データ検知のレイテンシーを優先することは、瞬時にセンサデータを受け取ることがプログラムによって望まれていることを指す。検知システムの電力インパクトを優先することは、センサデータを供給する際にセンサによって消費される電力の量が低減されるか又は少ないことがプログラムによって望まれていることを指す。検知システムの中央演算処理装置(CPU)の使用を優先することは、センサデータを供給する際に使用されるCPU処理容量が低減されるか又は少ないことがプログラムによって望まれていることを指す。
一実施形態において、センサシステムは、3D空間におけるコンピューティングデバイスの位置又は向きのインジケーションのような、単一タイプの集約値をサポートする。代替的に、センサシステムは、3D空間におけるコンピューティングデバイスの位置又は向きのインジケーション、コンピューティングデバイスの移動の速度のインジケーション、などのような、複数の異なるタイプの集約値をサポートしてよい。そのような状況において、検知プライオリティインターフェイスは、プログラムによって提供される第2パラメータとして、どのタイプの集約値がプログラムによって望まれているかのインジケーションを更に有することができる。あるいは、センサシステムは、夫々の異なるタイプの集約値について1つの検知プライオリティインターフェイスであるように複数の検知プライオリティインターフェイスを含んでよい。故に、プログラムは、どのタイプの集約値がプログラムによって望まれているかのインジケーションを提供するのではなく、複数の検知プライオリティインターフェイスのうちの適切な1つを呼び出す。
1つ以上の実施形態において、プログラムは、優先されるべきセンサ特性のインジケーションを提供しなくてよい。この状況において、プログラムは、どのセンサ特性が優先されるべきかを決定することをセンサシステムに委ねる。センサシステムは、優先される1つ以上のデフォルトのセンサ特性を有することができ、あるいは、代替的に、どのセンサ特性が優先されるかを決定するために様々な他のルール又は基準を使用することができる。
検知プライオリティインターフェイスが呼び出されることに応答して、センサシステムは、優先されるべき1つ以上のセンサ特性の受け取られたインジケーションに基づき、センサデータが集められるべき1つ以上のセンサを特定して作動させる(動作206)。センサシステム(例えば、センサ選択モジュール)は、コンピューティングデバイスによってサポートされるセンサを知っている。コンピューティングデバイスによってサポートされるセンサは、センサデータがセンサシステムによって受け取られて集約され得るセンサを指す。サポートされる複数のセンサの組み合わせは、センサデータがセンサシステムによって受け取られて集約され得る複数のセンサを指す。それらのセンサは、コンピューティングデバイスに含まれているセンサに加えて、コンピューティングデバイスへ結合されるか又はコンピューティングデバイスがセンサデータを受け取ることができる如何なる他のセンサも含むことができる。センサデータが受け取られて集約され得ないセンサは、コンピューティングデバイスによってサポートされておらず(コンピューティングデバイスはそのようなセンサのサポートを欠いている。)、データが受け取られて集約され得ないセンサの組み合わせは、コンピューティングデバイスによってサポートされていない(コンピューティングデバイスはそのようなセンサの組み合わせのサポートを欠いている。)。センサシステムは、多種多様な様態において、例えば、サポートされるセンサのインジケーションを事前設定されること、コンピューティングデバイスの動作中に動的にセンサを特定すること(例えば、センサ又はデバイスドライバがセンサのオペレーティングシステムに登録するか、又は別なふうにそれに気付かせる場合。)、サポートされるセンサの他のデバイス又はサービスからインジケーションを取得すること、などによって、コンピューティングデバイスによってサポートされるセンサを知ることができる。
センサシステム(例えば、センサ選択モジュール)はまた、夫々のサポートされるセンサの特性を知っている。センサシステムは、多種多様な様態において、例えば、サポートされるセンサのセンサ特性のインジケーションを事前設定されること、サポートされるセンサのセンサ特性をコンピューティングデバイスの動作中に動的に特定すること(例えば、センサ又はデバイスドライバがセンサのオペレーティングシステムに登録するか、又は別なふうにそれに気付かせる場合。)、サポートされるセンサのセンサ特性の他のデバイス又はサービスからインジケーションを取得すること、などによって、サポートされるセンサのセンサ特性を知ることができる。
加速度計、磁気計、ジャイロスコープ、歩数計、気圧計、光センサ、温度計、などのような、様々な異なるセンサが、コンピューティングデバイスによってサポートされ得る。なお、それらのセンサは、コンピューティングデバイスによってサポートされ得るセンサの例であり、他の物理的又は発見的センサが追加的に又は代替的にコンピューティングデバイスによってサポートされてよいことが留意されるべきである。それらのセンサは、電力使用量は少ないがセンサデータの精度が低い低電力モード、及び電力使用量は多いがセンサデータの精度は高い高電力モードのような、2つ以上の異なる動作モードを任意に有することができる。それらの異なるモードは、同じセンサの異なるモードとしてセンサシステムによって扱われ得る。それにより、センサを作動させる特定のモードも動作206において特定される。代替的に、それらの異なるモードは、異なるセンサ(例えば、センサデータの精度は低いが使用電力量が少ない1つのセンサ、及びセンサデータの精度は高いが使用電力量が多い他のセンサ)としてセンサシステムによって扱われ得る。
センサ選択モジュールは、動作206でセンサを特定するために多種多様なルール、基準、マッピング、アルゴリズム、などのいずれも使用することができる。未だ作動していない特定されたセンサは、(任意に、上述されたような適切なモードにおいて)アクティブにされる。センサを作動させることは、電源オンすること、起動すること、又は別なふうに、センサがセンサデータをセンサシステムへ供給することができる状態にセンサを置くことを指す。1つ以上の実施形態において、センサ選択モジュールは、サポートされるセンサ及び優先されるべき示されたセンサ特性の特定の組み合わせについて、どの1つ以上のセンサが動作206で特定されるかを示す所定のマッピングを保持する。
1つ以上の実施形態において、動作206でセンサを特定するために使用されるルール、基準、マッピング、アルゴリズム、などは、どのセンサがコンピューティングデバイスによってサポートされるかに基づき特定されるセンサの1つ以上の可能な組み合わせを有している。可能な組み合わせは順位付けされ、最も高く順位付けされた組み合わせが動作206で組み合わせとして特定される。このように、センサシステムは、第1の選択及び1つ以上の代案を有することができる。例えば、最も高く順位付けされた組み合わせは、加速度計、ジャイロスコープ、及び磁気計センサの組み合わせであってよいが、それら3つのセンサの組み合わせがコンピューティングデバイスによってサポートされていない場合には、代案(次に高く順位付けされた組み合わせ)は、加速度計及び磁気計センサの組み合わせであってよい。
特定されたセンサからのセンサデータは、集約データを生成するよう集約される(動作208)。上述されたように、取得されたセンサデータを集約することは、センサデータを結合することを指し、それにより、個々のセンサデータではなく、結合された値が要求元のプログラムへ返される。なお、単一のセンサが動作206で特定される状況では、集約データは、その単一のセンサからのセンサデータであることができる。
複数のセンサからのセンサデータは、多種多様なルール、基準、マッピング、アルゴリズム、などのいずれかを用いて多種多様な様態において集約され得る。複数のセンサからのセンサデータは、様々な公開及び/又は専有技術のいずれかを用いて集約され得る。単一の集約値へのセンサデータの結合は、センサ融合(fusion)とも呼ばれる。例えば、集約値は、3D空間におけるコンピューティングデバイスの向きのインジケーションであることができ、向きは、3つのセンサ、すなわち、加速度計、ジャイロスコープ、及び磁気計のうちの1つ以上からのセンサデータから生成されたロール(roll)、ピッチ(pitch)及びヨー(yaw)(例えば、3D空間における夫々y軸、x軸及びz軸に関する。)の度において示される。集約値は、コンピューティングデバイスの向きを決定するためにジャイロスコープを使用し、そして、ジャイロスコープによって決定された向きに対して、加速度計又は磁気計から得られたモーションデータに基づくフィードバック制御信号を使用することによって補正係数を適用して、ジャイロスコープから得られたモーションデータにおけるドリフトを低減することで、生成され得る。
集約データは、データを要求したプログラムへ返される(動作210)。検知プライオリティインターフェイスが集約データをプログラムへ返し、プログラムは、次いで、返されたデータを望まれるように使用する。動作204〜210は、望まれるように、例えば、プログラムが集約値を要求するたびに、繰り返され得る。
1つ以上の実施形態において、コンピューティングデバイスが、それが他のデバイスのセンサからデータを取得することができる他のデバイスと物理的に十分に近くに(例えば、閾距離内に)位置している状況が起こり得る。図3は、1つ以上の実施形態に従って、要求されるセンサ特性に基づく自動センサ選択が実装され得る、例となるシステム300を表す。システム300は、複数のコンピューティングデバイス302、304、306及び308を含む。夫々のコンピューティングデバイスは、1つ以上のセンサ312、314、316及び318を夫々含む。コンピューティングデバイス302は、多種多様な無線又は有線通信メカニズムのいずれかを用いてコンピューティングデバイス304、306及び308と通信することができる。例えば、それらの通信メカニズムは、Bluetooth(登録商標)、赤外線、ワイヤレス・ユニバーサルシリアルバス(wireless universal serial bus)(無線USB)、近距離通信(NFC;near field communication)、などを含むことができる。それらの通信メカニズムは、ローカルエリアネットワーク(LAN;local area network)、インターネット、電話(例えば、セルラー)ネットワーク、などのような、1つ以上のネットワークを更に含むことができる。
コンピューティングデバイス302は、コンピューティングデバイス304、306及び308の夫々によってサポートされるセンサのタイプと、それらサポートされるセンサのセンサ特性とを知ることができる。センサシステムは、図2の動作206において、センサデータが集められるべき複数のセンサを特定するときに、それらのセンサタイプ及びセンサ特性を考慮に入れることができる。例えば、センサ314は温度計を含んでよいが、センサ312は温度計を含まなくてよい。この状況において、コンピューティングデバイス302は、コンピューティングデバイス304の温度計からセンサデータを取得することができる。他の例として、センサ316は、センサ312に含まれる歩数計とは異なる特性(例えば、より高い精度)を有する歩数計を含んでよい。この状況において、コンピューティングデバイス302は、コンピューティングデバイス306の歩数計からセンサデータを取得することができる。
図2に戻ると、以下は、3D空間におけるコンピューティングデバイスの位置及び向きのインジケーションである集約データをコンピューティングデバイスにおいて生成する例である。コンピューティングデバイスは、加速度計、ジャイロスコープ、及び磁気計を含む少なくとも3つのセンサをサポートする。優先されるべき1つ以上のセンサ特性のインジケーションは、ヘディング精度、回転速度精度、及び電力効率のうちのいずれか1つ又はいずれかの組み合わせを含む。
ヘディング精度が優先されるべき1つ以上のセンサ特性であるとのインジケーションに応答して、動作206で、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計、ジャイロスコープ、及び磁気計センサを特定する。コンピューティングデバイスが、加速度計、ジャイロスコープ、及び磁気計センサからデータを集めることをサポートしない場合には、動作206において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
回転速度精度が優先されるべき1つ以上のセンサ特性であるとのインジケーションに応答して、動作206で、センサ選択モジュールは、センサデータが集められるべきセンサとして、加速度計、ジャイロスコープ、及び磁気計センサを特定する。コンピューティングデバイスが、加速度計、ジャイロスコープ、及び磁気計センサからデータを集めることをサポートしない場合には、動作206において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及びジャイロスコープセンサを特定する。コンピューティングデバイスが、加速度計及びジャイロスコープセンサからデータを集めることをサポートしない場合には、動作206において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
電力効率が優先されるべき1つ以上のセンサ特性であるとのインジケーションに応答して、動作206で、センサ選択モジュールは、センサデータが集められるべきセンサとして、加速度計及び磁気計センサを特定する。コンピューティングデバイスが、加速度計及び磁気計センサからデータを集めることをサポートしない場合には、動作206において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及びジャイロスコープセンサを特定する。コンピューティングデバイスが、加速度計及びジャイロスコープセンサからデータを集めることをサポートしない場合には、動作206において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計、ジャイロスコープ、及び磁気計センサを特定する。
ヘディング精度及び回転速度精度が優先されるべき1つ以上のセンサ特性であるとのインジケーションに応答して、動作206で、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計、ジャイロスコープ、及び磁気計センサを特定する。コンピューティングデバイスが、加速度計、ジャイロスコープ、及び磁気計センサからデータを集めることをサポートしない場合には、動作206において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
ヘディング精度及び電力効率が優先されるべき1つ以上のセンサ特性であるとのインジケーションに応答して、動作206で、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
回転速度精度及び電力効率が優先されるべき1つ以上のセンサ特性であるとのインジケーションに応答して、動作206で、センサ選択モジュールは、センサデータが集められるべきセンサとして、加速度計及びジャイロスコープセンサを特定する。コンピューティングデバイスが、加速度計及びジャイロスコープセンサからデータを集めることをサポートしない場合には、動作206において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
ヘディング精度、回転速度精度及び電力効率が優先されるべき1つ以上のセンサ特性であるとのインジケーションに応答して、動作206で、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。
優先されるべきセンサ特性でないとのインジケーションに応答して、動作206で、センサ選択モジュールは、センサデータが集められるべきセンサとして、加速度計、ジャイロスコープ、及び磁気計センサを特定する。コンピューティングデバイスが、加速度計、ジャイロスコープ、及び磁気計センサからデータを集めることをサポートしない場合には、動作206において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及び磁気計センサを特定する。コンピューティングデバイスが、加速度計及び磁気計センサからデータを集めることをサポートしない場合には、動作206において、センサ選択モジュールは、センサデータが集められるべきセンサとして加速度計及びジャイロスコープセンサを特定する。
1つ以上の実施形態において、センサデータは、センサデータを使用するためのユーザ承諾を受け取った後にのみ、集約データを生成するために使用される。このユーザ承諾は、ユーザが、センサデータが使用されることを要求する積極的行動(affirmative action)をとるオプトイン(opt-in)承諾であることができる。代替的に、このユーザ承諾は、ユーザが、センサデータが使用されないことを要求する積極的行動をとるオプトアウト(opt-out)承諾であることができる。ユーザがこのセンサデータの利用を見合わせる選択をしない場合には、それは、センサデータを使用するためのユーザによる黙示の承諾である。
図4は、1つ以上の実施形態に従って、センサデータを使用すべきかどうかをユーザが選択することを可能にするようユーザに表示され得るユーザインターフェイスの例を表す。センサ制御ウィンドウ400は、センサデータが収集される理由をユーザに説明する記述402を含むように表示される。個人情報保護方針(privacy statement)へのリンク404も表示される。ユーザがリンク404を選択する場合に、個人情報保護方針が表示され、ユーザの情報が如何にして外部に漏らされないかをユーザに説明する。
加えて、ユーザは、センサ使用を選択するラジオボタン406、又はセンサ使用を見合わせるラジオボタン408を選択することができる。ラジオボタン406又は408が選択されると、ユーザは、選択を保存すべく“OK”ボタン410を選択することができる。当然のことながら、ラジオボタン及び“OK”ボタンは、トラッキングを選択し又は見合わせるためにユーザに提示され得るユーザインターフェイスの単なる例であり、様々な他の従来のユーザインターフェイス技術が代替的に使用されてよい。次いで、センサシステムは、ユーザの選択に従って、センサデータを使用すること又はセンサデータを使用しないことのいずれか一方へ進む。
特定の機能が特定のモジュールを参照してここで論じられているが、ここで論じられている個々のモジュールの機能は複数のモジュールに分けられてよく、且つ/あるいは、複数のモジュールの少なくともいくつかの機能は単一のモジュールにまとめられてよいことが留意されるべきである。加えて、動作を実施するものとしてここで論じられている特定のモジュールは、その特定のモジュール自体が動作を実施すること、あるいは、代替的に、その特定のモジュールが、動作を実施する(又はその特定のモジュールとともに動作を実施する)他のコンポーネント又はモジュールを呼び出すか又は別なふうにそのような他のコンポーネント又はモジュールにアクセスすることを含む。このように、特定のモジュールが動作を実施することは、その特定のモジュール自体が動作を実施すること、及び/又はその特定のモジュールによって呼び出されるか若しくは別なふうにアクセスされた他のモジュールが動作を実施することを含む。
図5は、ここで記載されている様々な技術を実装し得る1つ以上のシステム及び/又はデバイスを表す、例となるコンピューティングデバイス502を含むシステムの例を全体を500として表す。コンピューティングデバイス502は、例えば、サービスプロバイダのサーバ、クライアントに関連するデバイス(例えば、クライアントデバイス)、オンチップ・システム、及び/又はその他の適切なコンピューティングデバイス若しくはコンピューティングシステムであってよい。
表されている例となるコンピューティングデバイス502は、互いに通信上結合されているプロセッシングシステム504、1つ以上のコンピュータ可読媒体506、及び1つ以上のI/Oインターフェイス508を含む。図示されていないが、コンピューティングデバイス502は、様々なコンポーネントを互いに結合するシステムバス又は他のデータ及びコマンド転送システムを更に含んでよい。システムバスは、メモリバス若しくはメモリコントローラ、ペリフェラルバス、ユニバーサルシリアルバス、及び/又は様々なバスアーキテクチャのいずれかを利用するプロセッサ若しくはローカルバスのような、異なるバス構造のいずれか1つ又は組み合わせを含むことができる。様々な他の例、例えば、制御及びデータラインも考えられる。
プロセッシングシステム504は、ハードウェアを用いて1つ以上の演算を実行する機能を表す。然るに、プロセッシングシステム504は、プロセッサ、機能ブロック、などとして構成され得るハードウェア要素510を含むものとして表されている。これは、1つ以上の半導体を用いて形成された特定用途向け集積回路又は他の論理デバイスとしてのハードウェアにおける実施を含んでよい。ハードウェア要素510は、それらが形成される材料又はそれらに用いられるプロセッシングメカニズムに制限されない。例えば、プロセッサは、半導体及び/又はトランジスタ(電子集積回路(IC;integrated circuit(s)))から成ってよい。そのような状況において、プロセッサ実行可能命令は、電子的に実行可能な命令であってよい。
コンピュータ可読媒体506は、メモリ/ストレージ512を含むものとして表されている。メモリ/ストレージ512は、1つ以上のコンピュータ可読媒体に関連するメモリ/ストレージ容量に相当する。メモリ/ストレージ512は、揮発性媒体(例えば、ランダムアクセスメモリ(RAM;random access memory))及び/又は不揮発性媒体(例えば、リードオンリーメモリ(ROM;read only memory)、フラッシュメモリ、光ディスク、磁気ディスク、など)を含んでよい。メモリ/ストレージ512は、固定媒体(例えば、RAM、ROM、固定ハードドライブ、など)及びリムーバブル媒体(例えば、フラッシュメモリ、リムーバブルハードドライブ、光ディスク、など)を含んでよい。コンピュータ可読媒体506は、以下で更に記載されるように、様々な他の方法において構成されてよい。
入力/出力インターフェイス508は、ユーザがコマンド及び情報をコンピューティングデバイス502に入力することを可能にし、更には、情報がユーザ及び/又は他のコンポーネント若しくはデバイスに様々な入力/出力デバイスを用いて提示されることを可能にする機能を表す。入力レバイスの例には、キーボード、カーソル制御デバイス(例えば、マウス)、マイクロホン(例えば、音声入力用)、スキャナ、タッチ機能(例えば、物理的なタッチを検出するよう構成される容量性又は他のセンサ)、カメラ(例えば、タッチを含まない動きをジェスチャとして検出するために、赤外周波数のような可視又は不可視波長を用いてよい。)、などがある。出力デバイスの例には、表示デバイス(例えば、モニタ又はプロジェクタ)、スピーカ、プリンタ、ネットワークカード、触覚応答デバイス、などがある。このように、コンピューティングデバイス502は、ユーザインタラクションをサポートするよう、以下で更に記載されるように、様々な方法で構成されてよい。
コンピューティングデバイス502はセンサシステム514を更に含む。センサシステム514は、上述されたように、プログラムによって要求されているセンサ特性に基づき、センサデータが集められるべきセンサを自動的に選択する。センサシステム514は、例えば、図1のセンサシステム102を実装することができる。
様々な技術が、ソフトウェア、ハードウェア要素、又はプログラムモジュールの一般的状況においてここで記載されてよい。一般に、そのようなモジュールは、特定のタスクを実行するか又は特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、エレメント、コンポーネント、データ構造、などを含む。ここで使用される語「モジュール(module)」、「機能(functionality)」及び「コンポーネント(component)」は、ソフトウェア、ファームウェア、ハードウェア、又はそれらの組み合わせを一般に表す。ここで記載される技術の特徴は、プラットフォームから独立しており、これは、様々なプロセッサを有する様々なコンピューティングプラットフォームにおいて実装されてよいことを意味する。
記載されるモジュール及び技術の実施は、何らかの形のコンピュータ可読媒体に記憶されるか、又はそれにより伝送されてよい。コンピュータ可読媒体は、コンピューティングデバイス502によってアクセスされ得る様々な媒体を含んでよい。一例として、制限なしに、コンピュータ可読媒体は、「コンピュータ可読記憶媒体」及び「コンピュータ可読信号媒体」を含んでよい。
「コンピュータ可読記憶媒体」は、単なる信号伝送、搬送波、又は信号自体とは対照的に、情報の恒久的な記憶及び/又は有形である記憶を可能にする媒体及び/又はデバイスを指す。よって、コンピュータ可読記憶媒体は、非信号保持媒体を指す。コンピュータ可読記憶媒体は、コンピュータ読み出し可能な命令、データ構造、プログラムモジュール、論理要素/回路、又は他のデータのような情報の記憶に適した方法又は技術において実装される揮発性及び不揮発性の、リムーバブル及び非リムーバブルの媒体及び/又は記憶デバイスのようなハードウェアを含む。コンピュータ可読記憶媒体の例は、RAM、ROM、EEPROM、フラッシュメモリ若しくは他のメモリ技術、CD−ROM、デジタルバーサタイルディスク(DVD;Digital Versatile Disc)若しくは他の光学ストレージ、ハードディスク、磁気カセット、磁気テープ、磁気ディスクストレージ若しくは他の磁気記憶デバイス、又は所望の情報を記憶するのに適しており、コンピュータによってアクセスされ得る他の記憶デバイス、有形的媒体若しくは製品を含んでよいが、それらに限られない。
「コンピュータ可読信号媒体」は、例えばネットワークを介してコンピューティングデバイス502のハードウェアへ命令を送信するよう構成される信号保持媒体を指す。信号媒体は、通常、搬送波、データ信号、又は他の伝送メカニズムのような変調データ信号においてコンピュータ読み出し可能な命令、データ構造、プログラムモジュール、又は他のデータを具現してよい。信号媒体はまた、如何なる情報配信媒体も含む。語「変調データ信号」は、信号において情報を符号化するようにその特性の1つ以上を設定又は変更されている信号を意味する。例として、制限なしに、通信媒体は、有線ネットワーク又は直接接続のような有線媒体と、音響、RF、赤外線、及び無線媒体のような無線媒体とを含む。
上述されたように、ハードウェア要素510及びコンピュータ可読媒体506は、ここで記載されている技術の少なくとも幾つかの態様を実装するよういくつかの実施形態において用いられ得るハードウェア形態で実装される命令、モジュール、プログラム可能デバイスロジック及び/又は固定デバイスロジックを表す。ハードウェア要素は、集積回路又はオンチップ・システム、特定用途向け集積回路(ASIC;application-specific integrated circuit)、フィールドプログラマブルゲートアレイ(FPGA;field-programmable gate array)、複合プログラム可能論理デバイス(CPLD;complex programmable logic device)、及びシリコン又は他のハードウェアデバイスにおける他の実装のコンポーネントを含んでよい。これに関して、ハードウェア要素は、ハードウェア要素によって具現される命令、モジュール、及び/又はロジックによって定義されるプログラムタスクを実行するプロセッシングデバイス、並びに実行のための命令を記憶するために利用されるハードウェアデバイス(例えば、上述されたコンピュータ可読記憶媒体)として動作してよい。
上記の組み合わせも、ここで記載される様々な技術及びモジュールを実装するために用いられてよい。然るに、ソフトウェア、ハードウェア、又はプログラムモジュール及び他のプログラムモジュールは、何らかの形のコンピュータ可読記憶媒体において具現される1つ以上の命令及び/又はロジックとして、及び1つ以上のハードウェア要素510によって、実装されてよい。コンピューティングデバイス502は、ソフトウェア及び/又はハードウェアモジュールに対応する特定の命令及び/又は機能を実装するよう構成されてよい。然るに、ソフトウェアとしてコンピューティングデバイス502によって実行可能であるモジュールとしてモジュールの実装は、少なくとも部分的にハードウェアにおいて、例えば、コンピュータ可読記憶媒体及び/又はプロセッシングシステムのハードウェア要素510の使用を通じて、達成されてよい。命令及び/又は機能は、ここで記載される技術、モジュール、及び例を実装するために1つ以上の製品(例えば、1つ以上のコンピューティングデバイス502及び/又はプロセッシングシステム504)によって実行可能/動作可能であってよい。
図5に更に表されているように、例となるシステム500は、パーソナルコンピュータ(PC;personal computer)、テレビジョンデバイス、及び/又はモバイルデバイスでアプリケーションを実行するときに、シームレスなユーザ体験のためのユビキタス環境を可能にする。サービス及びアプリケーションは、アプリケーションを利用している間、ビデオゲームで遊んでいる間、ビデオを鑑賞している間、などに1つのデバイスから次のデバイスへ移るときに、共通のユーザ体験のために3つ全ての環境において実質的に同じように実行される。
例となるシステム500において、複数のデバイスは中央コンピューティングデバイスを通じて相互接続される。中央コンピューティングデバイスは、複数のデバイスの場所にあってよく、あるいは、複数のデバイスから離れて置かれてよい。1つ以上の実施形態において、中央コンピューティングデバイスは、ネットワーク、インターネット、又は他のデータ通信リンクを通じて複数のデバイスへ接続される1つ以上のサーバコンピュータのクラウドであってよい。
1つ以上の実施形態において、この相互接続アーキテクチャは、複数のデバイスにわたって分配される機能が、共通したシームレスな体験を複数のデバイスのユーザに提供することを可能にする。複数のデバイスの夫々は、異なる物理的要件及び機能を有してよく、中央コンピューティングデバイスは、デバイスに合わせされ、その上全てのデバイスに共通であるデバイスへの体験の提供を可能にするプラットフォームを使用する。1つ以上の実施形態において、対象デバイスの分類が作成され、体験はデバイスの包括的分類に合わせられる。デバイスの分類は、デバイスの物理的特徴、使用のタイプ、他の共通の特性によって定義されてよい。
様々な実施において、コンピューティングデバイス502は、コンピュータ516、モバイル518、及びテレビ受信機520の使用のような、多種多様な構成を想定してよい。それらの構成の夫々は、一般的に異なった構成及び機能を有し得るデバイスを含み、よって、コンピューティングデバイス502は、異なるデバイス分類の1つ以上に従って構成されてよい。例えば、コンピューティングデバイス502は、パーソナルコンピュータ、デスクトップコンピュータ、マルチスクリーンコンピュータ、ラップトップコンピュータ、ネットブック、などを含むデバイスのコンピュータ516分類として実装されてよい。
コンピューティングデバイス502はまた、携帯電話機、携帯型音楽プレイヤー、携帯型ゲーム機、タブレットコンピュータ、マルチスクリーンコンピュータ、などのようなモバイルデバイスを含むデバイスのモバイル518分類として実装されてよい。コンピューティングデバイス502はまた、平常通りのビューイング環境において一般的により大きいスクリーンを有しているか又はそのようなスクリーンへ接続されているデバイスを含むデバイスのテレビ受信機520分類として実装されてよい。
ここで記載される技術は、コンピューティングデバイス502のそれらの様々な構成によってサポートされてよく、ここで記載される技術の具体例に制限されない。この機能はまた、完全に又は部分的に、分散型システムの使用を通じて、例えば、以下で記載されるように、プラットフォーム524を介して“クラウド”522上で、実装されてよい。
クラウド522は、リソース526のためのプラットフォーム524を含むか、及び/又はそれを代表する。プラットフォーム524は、クラウド522のハードウェア(例えば、サーバ)及びソフトウェアリソースの基礎的機能を抽象する。リソース526は、コンピューティングデバイス502から離れているサーバ上でコンピュータプロセッシングが実行される間に利用され得るアプリケーション及び/又はデータを含んでよい。リソース526は、インターネット上で及び/又は加入者ネットワーク(例えば、セルラー若しくはWi−Fi(登録商標))を通じて提供されるサービスを更に含むことができる。
プラットフォーム524は、コンピューティングデバイス502を他のコンピューティングデバイスと接続するリソース及び機能を抽象してよい。プラットフォーム524はまた、プラットフォーム524を介して実装されるリソース526の直面された需要に対して対応するレベルのスケールを提供するリソースのスケーリングを抽象するのに役立つことができる。然るに、相互接続されたデバイスの実施形態において、ここで記載される機能の実装は、システム500の全体にわたって分配されてよい。例えば、機能は、コンピューティングデバイス502において部分的に、更には、クラウド522の機能を抽象するプラットフォーム524を介して、実装されてよい。
ここでの議論において、様々な異なる実施形態が記載されている。当然のことながら、ここで記載される夫々の実施形態は、単独で、又はここで記載される1つ以上の他の実施形態と関連して、使用され得る。ここで論じられている技術の更なる態様は、以下の実施形態の1つ以上に関係がある。
コンピューティングデバイスで実装される方法は、優先されるべき1つ以上のセンサ特性のインジケーションであるパラメータを有する検知プライオリティインターフェイスを示すことと、前記検知プライオリティインターフェイスが、優先されるべき1つ以上のセンサ特性の前記インジケーションを提供するプログラムによって呼び出されることに応答して、優先されるべき前記1つ以上のセンサ特性の前記インジケーションに基づき、センサデータが集められるべき複数のセンサのうちの1つ以上のセンサを特定し、前記1つ以上のセンサから前記センサデータを集め、前記集められたデータを前記プログラムへ返すこととを有する。
代替的に、又は上記の方法に加えて、前記複数のセンサは、加速度計、磁気計、及びジャイロスコープを含み、前記集められたデータは、3D空間における前記コンピューティングデバイスの3次元の位置及び向きを有すること、前記1つ以上のセンサ特性は、ヘディング精度、回転速度精度、及び電力効率を含むグループから選択された1つ以上のセンサ特性を有すること、前記特定することは、前記コンピューティングデバイスによってサポートされるセンサに基づき前記1つ以上のセンサを特定することを更に有すること、前記複数のセンサは、加速度計、磁気計、ジャイロスコープ、歩数計、気圧計、光センサ、及び温度計を含むグループから選択された2つ以上のセンサを有すること、前記1つ以上のセンサ特性は、ヘディング精度、回転速度精度、電力効率、空間距離精度、カロリー消費効果精度、データ検知のレイテンシー、及びCPU使用量を含むグループから選択された1つ以上のセンサ特性を有すること、当該方法は、前記コンピューティングデバイスのオペレーティングシステムで実装されること、前記プログラムは、前記コンピューティングデバイスによってサポートされるセンサの予備的(prior)又は実行時(run-time)の知識を有さないこと、前記特定することは、センサの最も高く順位付けされた組み合わせと、前記コンピューティングデバイスがセンサの最も高く順位付けされた組み合わせのためのサポートを欠いていることに応答して特定すべきセンサの代替の組み合わせとを決定することを更に有すること、前記1つ以上のセンサは、前記コンピューティングデバイスから分離した他のデバイスに位置するセンサを含むこと、のいずれか1つ又は組み合わせが提供される。
コンピューティングデバイスは、1つ以上のプロセッサを有するプロセッシングシステムと、前記プロセッシングシステムによって実行される場合に、該プロセッシングシステムに、複数のセンサ特性のうちのどれが優先されるべきかのインジケーションをパラメータとして受ける検知プライオリティインターフェイスを示すことと、前記検知プライオリティインターフェイスが当該コンピューティングデバイスのプログラムによって呼び出されることに応答して、複数のセンサ特性のうちのどれが優先されるべきかの前記インジケーションに基づき、複数のセンサのうちの1つ以上のセンサを特定し、前記1つ以上のセンサからセンサデータを集め、前記集められたデータを前記プログラムへ返すこととを含む動作を実施させる複数の命令を記憶している1つ以上のコンピュータ可読記憶媒体とを有する。
代替的に、又は上記のコンピューティングデバイスに加えて、前記複数のセンサは、加速度計、磁気計、及びジャイロスコープを含み、前記集められたデータは、3D空間における前記コンピューティングデバイスの3次元の位置及び向きを有すること、前記複数のセンサ特性は、ヘディング精度、回転速度精度、及び電力効率を含むこと、前記特定することは、当該コンピューティングデバイスによってサポートされるセンサの組み合わせに基づき前記1つ以上のセンサを特定することを更に有すること、前記複数のセンサは、加速度計、磁気計、ジャイロスコープ、歩数計、気圧計、光センサ、及び温度計を含むグループから選択される2つ以上のセンサを有すること、前記複数のセンサ特性は、ヘディング精度、回転速度精度、電力効率、空間距離精度、カロリー消費効果精度、データ検知のレイテンシー、及びCPU使用量を含むこと、前記複数の命令は、当該コンピューティングデバイスのオペレーティングシステムの部分であること、前記プログラムは、当該コンピューティングデバイスによってサポートされるセンサの予備的又は実行時の知識を有さないこと、前記1つ以上のセンサは、当該コンピューティングデバイスから分離した他のデバイスに位置するセンサを含むこと、のいずれか1つ又は組み合わせが提供される。
コンピューティングデバイスで実装される方法は、優先されるべき1つ以上のセンサ特性のインジケーションであるパラメータを有するAPIメソッドを示し、前記1つ以上のセンサ特性は、ヘディング精度、回転速度精度、及び電力効率を含むグループから選択される1つ以上のセンサ特性を有することと、前記コンピューティングデバイスで実行されるプログラムによって前記APIメソッドが呼び出されることに応答して、前記プログラムは、前記コンピューティングデバイスによってサポートされるセンサの予備的又は実行時の知識を有さず、前記プログラムは、優先されるべき1つ以上のセンサ特性の前記インジケーションを提供し、前記優先されるべき前記1つ以上のセンサ特性の前記インジケーションに基づき、センサデータが集められるべき複数のセンサを特定し、該複数のセンサは、加速度計、磁気計、及びジャイロスコープを含み、前記複数のセンサから前記センサデータを集め、該集められたデータは、3D空間における前記コンピューティングデバイスの3Dの位置及び向きを有し、前記集められたデータを前記プログラムへ返すこととを有する。
構造的特徴及び/又は方法論的動作に特有の言語において対象が記載されてきたが、添付の特許請求の範囲において定義されている対象は、必ずしも、上記の具体的な特徴又は動作に制限されない。むしろ、上記の具体的な特徴及び動作は、特許請求の範囲を実施する例となる形態として開示されている。
Claims (15)
- コンピューティングデバイスで実装される方法であって、
優先されるべき1つ以上のセンサ特性のインジケーションであるパラメータを有する検知プライオリティインターフェイスを示し、
前記検知プライオリティインターフェイスが、優先されるべき1つ以上のセンサ特性の前記インジケーションを提供するプログラムによって呼び出されることに応答して、
優先されるべき前記1つ以上のセンサ特性の前記インジケーションに基づき、センサデータが集められるべき複数のセンサのうちの1つ以上のセンサを特定し、
前記1つ以上のセンサから前記センサデータを集め、
どのセンサが前記複数のセンサに含まれているかの知識を有すべき必要性を前記プログラムから取り除くために、前記集められたデータを前記プログラムへ返す
ことを有する方法。 - 前記複数のセンサは、加速度計、磁気計、及びジャイロスコープを含み、前記集められたデータは、3D空間における前記コンピューティングデバイスの3次元の位置及び向きを有する、
請求項1に記載の方法。 - 前記1つ以上のセンサ特性は、ヘディング精度、回転速度精度、及び電力効率を含むグループから選択された1つ以上のセンサ特性を有する、
請求項1又は2に記載の方法。 - 前記特定することは、前記コンピューティングデバイスによってサポートされるセンサに基づき前記1つ以上のセンサを特定することを更に有する、
請求項1乃至3のうちいずれか一項に記載の方法。 - 前記複数のセンサは、加速度計、磁気計、ジャイロスコープ、歩数計、気圧計、光センサ、及び温度計を含むグループから選択された2つ以上のセンサを有する、
請求項1乃至4のうちいずれか一項に記載の方法。 - 前記1つ以上のセンサ特性は、ヘディング精度、回転速度精度、電力効率、空間距離精度、カロリー消費効果精度、データ検知のレイテンシー、及びCPU使用量を含むグループから選択された1つ以上のセンサ特性を有する、
請求項1乃至5のうちいずれか一項に記載の方法。 - 前記プログラムは、前記コンピューティングデバイスによってサポートされるセンサの予備的又は実行時の知識を有さない、
請求項1乃至6のうちいずれか一項に記載の方法。 - 前記特定することは、センサの最も高く順位付けされた組み合わせと、前記コンピューティングデバイスがセンサの最も高く順位付けされた組み合わせのためのサポートを欠いていることに応答して特定すべきセンサの代替の組み合わせとを決定することを更に有する、
請求項1乃至7のうちいずれか一項に記載の方法。 - コンピューティングデバイスであって、
1つ以上のプロセッサを有するプロセッシングシステムと、
前記プロセッシングシステムによって実行される場合に、該プロセッシングシステムに、
複数のセンサ特性のうちのどれが優先されるべきかのインジケーションをパラメータとして受ける検知プライオリティインターフェイスを示し、
前記検知プライオリティインターフェイスが当該コンピューティングデバイスのプログラムによって呼び出されることに応答して、
複数のセンサ特性のうちのどれが優先されるべきかの前記インジケーションに基づき、複数のセンサのうちの1つ以上のセンサを特定し、
前記1つ以上のセンサからセンサデータを集め、
どのセンサが前記複数のセンサに含まれているかの知識を有すべき必要性を前記プログラムから取り除くために、前記集められたデータを前記プログラムへ返す
ことを含む動作を実施させる複数の命令を記憶している1つ以上のコンピュータ可読記憶媒体と
を有するコンピューティングデバイス。 - 前記複数のセンサは、加速度計、磁気計、及びジャイロスコープを含み、前記集められたデータは、3D空間における前記コンピューティングデバイスの3次元の位置及び向きを有する、
請求項9に記載のコンピューティングデバイス。 - 前記特定することは、当該コンピューティングデバイスによってサポートされるセンサの組み合わせに基づき前記1つ以上のセンサを特定することを更に有する、
請求項9又は10に記載のコンピューティングデバイス。 - 前記複数のセンサ特性は、ヘディング精度、回転速度精度、電力効率、空間距離精度、カロリー消費効果精度、データ検知のレイテンシー、及びCPU使用量を含む、
請求項9乃至11のうちいずれか一項に記載のコンピューティングデバイス。 - 前記複数の命令は、当該コンピューティングデバイスのオペレーティングシステムの部分である、
請求項9乃至12のうちいずれか一項に記載のコンピューティングデバイス。 - 前記プログラムは、当該コンピューティングデバイスによってサポートされるセンサの予備的又は実行時の知識を有さない、
請求項9乃至13のうちいずれか一項に記載のコンピューティングデバイス。 - 前記1つ以上のセンサは、当該コンピューティングデバイスから分離した他のデバイスに位置するセンサを含む、
請求項9乃至14のうちいずれか一項に記載のコンピューティングデバイス。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/485,548 | 2014-09-12 | ||
US14/485,548 US20160077892A1 (en) | 2014-09-12 | 2014-09-12 | Automatic Sensor Selection Based On Requested Sensor Characteristics |
PCT/US2015/048758 WO2016040212A1 (en) | 2014-09-12 | 2015-09-07 | Automatic sensor selection based on requested sensor characteristics |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2017530350A true JP2017530350A (ja) | 2017-10-12 |
Family
ID=54140742
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017513229A Pending JP2017530350A (ja) | 2014-09-12 | 2015-09-07 | 要求されたセンサ特性に基づく自動センサ選択 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20160077892A1 (ja) |
EP (1) | EP3191794A1 (ja) |
JP (1) | JP2017530350A (ja) |
KR (1) | KR20170053702A (ja) |
CN (1) | CN106716063A (ja) |
WO (1) | WO2016040212A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017215199A (ja) * | 2016-05-31 | 2017-12-07 | 株式会社デンソー | 位置推定装置 |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10330796B2 (en) * | 2015-12-14 | 2019-06-25 | Higher Ground Llc | Magnetic compass confirmation for avoidance of interference in wireless communications |
US10924376B2 (en) * | 2016-12-30 | 2021-02-16 | Google Llc | Selective sensor polling |
US20180336045A1 (en) * | 2017-05-17 | 2018-11-22 | Google Inc. | Determining agents for performing actions based at least in part on image data |
US10764406B1 (en) | 2019-03-01 | 2020-09-01 | Bose Corporation | Methods and systems for sending sensor data |
US11619618B2 (en) | 2019-12-09 | 2023-04-04 | International Business Machines Corporation | Sensor tuning—sensor specific selection for IoT—electronic nose application using gradient boosting decision trees |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7146260B2 (en) * | 2001-04-24 | 2006-12-05 | Medius, Inc. | Method and apparatus for dynamic configuration of multiprocessor system |
US7536695B2 (en) * | 2003-03-28 | 2009-05-19 | Microsoft Corporation | Architecture and system for location awareness |
US7970574B2 (en) * | 2005-06-22 | 2011-06-28 | The Board Of Trustees Of The Leland Stanford Jr. University | Scalable sensor localization for wireless sensor networks |
US8472986B2 (en) * | 2005-09-21 | 2013-06-25 | Buckyball Mobile, Inc. | Method and system of optimizing context-data acquisition by a mobile device |
EP2054804B1 (en) * | 2006-04-07 | 2017-05-17 | Qualcomm Incorporated | Sensor interface, and methods and apparatus pertaining to same |
US7933919B2 (en) * | 2007-11-30 | 2011-04-26 | Microsoft Corporation | One-pass sampling of hierarchically organized sensors |
US8214139B2 (en) * | 2008-01-25 | 2012-07-03 | Garmin Switzerland Gmbh | Position source selection |
US8704767B2 (en) * | 2009-01-29 | 2014-04-22 | Microsoft Corporation | Environmental gesture recognition |
US8886980B2 (en) * | 2010-03-29 | 2014-11-11 | Qualcomm Incorporated | Power efficient way of operating motion sensors |
US8947522B1 (en) * | 2011-05-06 | 2015-02-03 | Google Inc. | Systems and methods to adjust actions based on latency levels |
US20130053056A1 (en) * | 2011-08-29 | 2013-02-28 | Qualcomm Incorporated | Facilitating mobile device positioning |
US8180583B1 (en) * | 2011-11-16 | 2012-05-15 | Google Inc. | Methods and systems to determine a context of a device |
US9158383B2 (en) * | 2012-03-02 | 2015-10-13 | Microsoft Technology Licensing, Llc | Force concentrator |
US9215560B1 (en) * | 2012-07-12 | 2015-12-15 | two forty four a.m. LLC | System and method for device-centric location detection and geofencing |
US20160051167A1 (en) * | 2012-10-10 | 2016-02-25 | Invensense, Inc. | System and method for activity classification |
US10133329B2 (en) * | 2012-11-19 | 2018-11-20 | Qualcomm Incorporated | Sequential feature computation for power efficient classification |
US9268399B2 (en) * | 2013-03-01 | 2016-02-23 | Qualcomm Incorporated | Adaptive sensor sampling for power efficient context aware inferences |
US9947198B2 (en) * | 2013-08-26 | 2018-04-17 | EveryFit, Inc. | Systems and methods for context-aware transmission of longitudinal safety and wellness data wearable sensors |
US9843647B2 (en) * | 2014-02-25 | 2017-12-12 | Here Global B.V. | Method and apparatus for providing selection and prioritization of sensor data |
US9497592B2 (en) * | 2014-07-03 | 2016-11-15 | Qualcomm Incorporated | Techniques for determining movements based on sensor measurements from a plurality of mobile devices co-located with a person |
US9602349B2 (en) * | 2014-08-18 | 2017-03-21 | Qualcomm Incorporated | Multi-device sensor subsystem joint optimization |
-
2014
- 2014-09-12 US US14/485,548 patent/US20160077892A1/en not_active Abandoned
-
2015
- 2015-09-07 KR KR1020177009697A patent/KR20170053702A/ko unknown
- 2015-09-07 WO PCT/US2015/048758 patent/WO2016040212A1/en active Application Filing
- 2015-09-07 JP JP2017513229A patent/JP2017530350A/ja active Pending
- 2015-09-07 CN CN201580049118.6A patent/CN106716063A/zh active Pending
- 2015-09-07 EP EP15763797.6A patent/EP3191794A1/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2017215199A (ja) * | 2016-05-31 | 2017-12-07 | 株式会社デンソー | 位置推定装置 |
Also Published As
Publication number | Publication date |
---|---|
EP3191794A1 (en) | 2017-07-19 |
CN106716063A (zh) | 2017-05-24 |
US20160077892A1 (en) | 2016-03-17 |
WO2016040212A1 (en) | 2016-03-17 |
KR20170053702A (ko) | 2017-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11023282B2 (en) | Method and apparatus for migrating virtual machine for improving mobile user experience | |
JP2017530350A (ja) | 要求されたセンサ特性に基づく自動センサ選択 | |
US9146716B2 (en) | Automatic resource balancing for multi-device applications | |
US11526274B2 (en) | Touch control method and apparatus | |
EP3617869A1 (en) | Display method and apparatus | |
AU2022200464B2 (en) | Method for reducing power consumption of terminal, and terminal | |
KR102384872B1 (ko) | 디스플레이를 구비한 휴대 단말기 및 그 휴대 단말기의 동작 방법 | |
EP2743795A2 (en) | Electronic device and method for driving camera module in sleep mode | |
KR20170096408A (ko) | 어플리케이션을 표시하는 방법 및 이를 지원하는 전자 장치 | |
US20150141080A1 (en) | Object Detection and Characterization | |
US10678422B2 (en) | Automatic generation of a client pressure profile for a touch screen device | |
US10646776B2 (en) | Server apparatus, method, and non-transitory computer-readable medium | |
US10175874B2 (en) | Display system with concurrent multi-mode control mechanism and method of operation thereof | |
US10929085B2 (en) | Electronic apparatus for controlling display of virtual input interface in environment of a plurality of output screens and operating method thereof | |
US9065829B2 (en) | Automatic resource balancing for multi-device applications | |
US20160070320A1 (en) | Individual Device Reset and Recovery in a Computer | |
JP2019160287A (ja) | サーバ装置、クライアント端末、情報処理方法およびプログラム | |
US10572691B2 (en) | Operating system privacy mode | |
JP2015501049A (ja) | 制御公開 |