(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】特表2016-522389(P2016-522389A)
(43)【公表日】2016年7月28日
(54)【発明の名称】磁気ヘディングの計算
(51)【国際特許分類】
G01C 17/38 20060101AFI20160701BHJP
G01R 33/02 20060101ALI20160701BHJP
【FI】
G01C17/38 J
G01R33/02 L
【審査請求】有
【予備審査請求】未請求
【全頁数】21
(21)【出願番号】特願2016-501039(P2016-501039)
(86)(22)【出願日】2014年3月10日
(85)【翻訳文提出日】2015年9月14日
(86)【国際出願番号】US2014022703
(87)【国際公開番号】WO2014150243
(87)【国際公開日】20140925
(31)【優先権主張番号】13/834,675
(32)【優先日】2013年3月15日
(33)【優先権主張国】US
(81)【指定国】
AP(BW,GH,GM,KE,LR,LS,MW,MZ,NA,RW,SD,SL,SZ,TZ,UG,ZM,ZW),EA(AM,AZ,BY,KG,KZ,RU,TJ,TM),EP(AL,AT,BE,BG,CH,CY,CZ,DE,DK,EE,ES,FI,FR,GB,GR,HR,HU,IE,IS,IT,LT,LU,LV,MC,MK,MT,NL,NO,PL,PT,RO,RS,SE,SI,SK,SM,TR),OA(BF,BJ,CF,CG,CI,CM,GA,GN,GQ,GW,KM,ML,MR,NE,SN,TD,TG),AE,AG,AL,AM,AO,AT,AU,AZ,BA,BB,BG,BH,BN,BR,BW,BY,BZ,CA,CH,CL,CN,CO,CR,CU,CZ,DE,DK,DM,DO,DZ,EC,EE,EG,ES,FI,GB,GD,GE,GH,GM,GT,HN,HR,HU,ID,IL,IN,IR,IS,JP,KE,KG,KN,KP,KR,KZ,LA,LC,LK,LR,LS,LT,LU,LY,MA,MD,ME,MG,MK,MN,MW,MX,MY,MZ,NA,NG,NI,NO,NZ,OM,PA,PE,PG,PH,PL,PT,QA,RO,RS,RU,RW,SA,SC,SD,SE,SG,SK,SL,SM,ST,SV,SY,TH,TJ,TM,TN,TR,TT,TZ,UA,UG,US
(71)【出願人】
【識別番号】593096712
【氏名又は名称】インテル コーポレイション
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ブリスト,ゲイリー エー.
(72)【発明者】
【氏名】ダニエル,ケヴィン ジェイ.
【テーマコード(参考)】
2G017
【Fターム(参考)】
2G017AA03
2G017AB02
2G017BA15
(57)【要約】
センサデータに基づき磁気ヘディングを計算する手法をここに説明する。本手法によるデバイスの一例は、センサ出力データを収集する磁気センサと、センサ出力データに基づき磁気ヘディングを計算するヘディング計算エンジンとを含む。ヘディング計算エンジンは、センサ出力データのノイズレベルを測定するロジックを含む。また、ヘディング計算エンジンは、ノイズレベルに少なくとも部分的に基づいて、センサ出力データを平均化するか決定するロジックを含む。また、ヘディング計算エンジンは、センサ出力データに基づいて適用センサ出力を決定するロジックを含む。また、ヘディング計算エンジンは、適用センサ出力に少なくとも部分的に基づいて磁気ヘディングを計算するロジックとを有する。
【特許請求の範囲】
【請求項1】
計算デバイスであって、
センサ出力データを収集する磁気センサと、
前記センサ出力データに基づき磁気ヘディングを計算するヘディング計算エンジンとを有し、
前記ヘディング計算エンジンは、
前記センサ出力データのノイズレベルを測定するロジックと、
前記ノイズレベルに少なくとも部分的に基づいて、前記センサ出力データを平均化するか決定するロジックと、
前記センサ出力データに基づいて適用センサ出力を決定するロジックと、
前記適用センサ出力に少なくとも部分的に基づいて磁気ヘディングを計算するロジックとを有する、
計算デバイス。
【請求項2】
前記センサ出力データを平均化するか決定するロジックは、所望のヘディング精度に少なくとも部分的に基づいて前記センサ出力データを平均化するか決定する、
請求項1に記載の計算デバイス。
【請求項3】
前記センサ出力データを平均化するか決定するロジックは、前記センサ出力データを平均化しないこと、及び前記適用センサ出力が前記センサ出力データの単一のサンプルであることを決定する、請求項1に記載の計算デバイス。
【請求項4】
前記センサ出力データを平均化するか決定するロジックは、所望のヘディング精度に基づき閾値ノイズを計算し、前記ノイズレベルが前記ノイズ閾値より低いか決定する、
請求項1に記載の計算デバイス。
【請求項5】
前記センサ出力データを平均化するか決定するロジックは、前記ノイズレベルと所望のヘディング精度とに基づいて信号の大きさの閾値を計算し、前記センサ出力データの信号の大きさが前記信号の大きさの閾値より高いか決定する、
請求項1に記載の計算デバイス。
【請求項6】
前記磁気センサが静止しているか決定する動きセンサを有し、前記センサ出力データのノイズレベルを測定するロジックは、前記磁気センサが静止している時に前記ノイズレベルを測定する、請求項1に記載の計算デバイス。
【請求項7】
前記センサ出力データを平均化するか決定するロジックは、前記センサ出力データを平均化することを決定し、前記適用センサ出力を決定するロジックは、前記ノイズレベルに少なくとも部分的に基づいて前記センサ出力データのサンプルサイズを決定する、
請求項1に記載の計算デバイス。
【請求項8】
前記適用センサ出力を決定するロジックは、前記ノイズレベル、所望のヘディング精度、及び信頼水準に基づいてサンプルサイズを決定する、
請求項7に記載の計算デバイス。
【請求項9】
所望のヘディング精度をユーザが指定できるようにするユーザインタフェースを有する、請求項2に記載の計算デバイス。
【請求項10】
前記所望のヘディング精度は前記計算デバイスのアプリケーションにより指定される、請求項2に記載の計算デバイス。
【請求項11】
磁気センサからセンサ出力データを受け取るステップと、
前記センサ出力データのノイズレベルを測定するステップと、
前記ノイズレベルに少なくとも部分的に基づいて、前記センサ出力データを平均化するか決定するステップと、
前記センサ出力データに基づいて適用センサ出力を決定するステップと、
前記適用センサ出力に少なくとも部分的に基づいて磁気ヘディングを計算するステップと、
アプリケーションによる使用のために計算デバイスのコンポーネントに前記磁気ヘディングを送るステップとを有する、方法。
【請求項12】
前記センサ出力データを平均化するか決定するステップは、所望のヘディング精度に少なくとも部分的に基づいて前記センサ出力データを平均化するか決定するステップを有する、請求項11に記載の方法。
【請求項13】
前記センサ出力データを平均化しないことを決定したとき、前記適用センサ出力を前記センサ出力データの単一のサンプルとして設定するステップを有する、
請求項11に記載の方法。
【請求項14】
前記センサ出力データを平均化するか決定するステップは、所望のヘディング精度に基づき閾値ノイズを計算し、前記ノイズレベルが前記ノイズ閾値より低いか決定するステップを有する、請求項11に記載の方法。
【請求項15】
前記センサ出力データを平均化するか決定するステップは、前記ノイズレベルと所望のヘディング精度とに基づいて信号の大きさの閾値を計算し、前記センサ出力データの信号の大きさが前記信号の大きさの閾値より高いか決定するステップを有する、
請求項11に記載の方法。
【請求項16】
前記センサ出力データのノイズレベルを測定するステップは、前記磁気センサが静止している時に前記ノイズレベルを測定するステップを有する、
請求項11に記載の方法。
【請求項17】
前記センサ出力データを平均化すると決定したとき、前記ノイズレベルに少なくとも部分的に基づいて前記センサ出力データのサンプルサイズを決定するステップを有する、請求項11に記載の方法。
【請求項18】
前記サンプルサイズは前記ノイズレベル、所望のヘディング精度、及び信頼水準に基づき決定される、請求項17に記載の方法。
【請求項19】
ユーザにより指定された所望のヘディング精度を受け取るステップを有する、
請求項12に記載の方法。
【請求項20】
前記計算デバイスのアプリケーションから所望の精度を受け取るステップを有する、
請求項12に記載の方法。
【請求項21】
インストラクションを格納した非一時的かつ有体の機械読み取り可能媒体であって、
前記インストラクションは、プロセッサにより実行された時、前記プロセッサに、
磁気センサからセンサ出力データを受け取り、
前記センサ出力データのノイズレベルを測定し、
前記ノイズレベルに少なくとも部分的に基づいて、前記センサ出力データを平均化するか決定し、
前記センサ出力データに基づいて適用センサ出力を決定し、
前記適用センサ出力に少なくとも部分的に基づいて磁気ヘディングを計算するように命令する、
機械読み取り可能媒体。
【請求項22】
前記プロセッサに前記センサ出力データを平均化するか決定するよう命令するインストラクションは、所望のヘディング精度に少なくとも部分的に基づいて前記センサ出力データを平均化するか決定する、請求項21に記載の機械読み取り可能媒体。
【請求項23】
前記センサ出力データを平均化しないと決定したとき、前記プロセッサに、前記センサ出力データの単一のサンプルを前記適用センサ出力として用いるように命令するインストラクションを有する、請求項21に記載の機械読み取り可能媒体。
【請求項24】
前記プロセッサに、所望のヘディング精度に基づき閾値ノイズを計算し、前記ノイズレベルが前記ノイズ閾値より低いか決定して、前記センサ出力データを平均化するか決定するように命令するインストラクションを有する、
請求項21に記載の機械読み取り可能媒体。
【請求項25】
前記プロセッサに、前記ノイズレベルと所望のヘディング精度とに基づいて信号の大きさの閾値を計算し、前記センサ出力データの信号の大きさが前記信号の大きさの閾値より高いか決定して、前記センサ出力データを平均化するか決定するように命令するインストラクションを有する、請求項21に記載の機械読み取り可能媒体。
【請求項26】
前記プロセッサに、前記磁気センサが静止しているか決定し、前記磁気センサが静止しているときにのみ前記センサ出力データのノイズレベルを測定するように命令するインストラクションを有する、請求項21に記載の機械読み取り可能媒体。
【請求項27】
前記プロセッサに、前記センサ出力データを平均化すると決定したとき、前記ノイズレベルに少なくとも部分的に基づいて前記センサ出力データのサンプルサイズを決定するように命令するインストラクションを有する、
請求項21に記載の機械読み取り可能媒体。
【請求項28】
前記プロセッサに、前記ノイズレベル、所望のヘディング精度、及び信頼水準に基づいて前記サンプルサイズを決定するように命令するインストラクションを有する、
請求項27に記載の機械読み取り可能媒体。
【請求項29】
前記プロセッサに、ユーザから前記所望のヘディング精度を受け取るよう命令するインストラクションを有する、請求項22に記載の機械読み取り可能媒体。
【請求項30】
前記プロセッサに、計算デバイスにおいて実行されるアプリケーションから前記所望の精度を受け取るよう命令するインストラクションを有する、請求項22に記載の機械読み取り可能媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して磁気センサを用いて磁気ヘディングを計算する手法に関する。より具体的に、本開示は概して磁気センサにより受け取られた時間変動磁気ノイズを緩和する手法
【背景技術】
【0002】
磁気センサは、計算デバイスのプラットフォーム中に集積され、ヘディング情報、例えば計算デバイスが向いている方向に関する情報を測定又は検出するコンパスとして用いられることが多い。かかるヘディング情報はナビゲーションアプリケーション、知覚計算(perceptual computing)アプリケーション、ゲームアプリケーションなどに用いることができる。しかし、計算デバイスのプラットフォームにより生じる干渉は、磁気センサの正しい動作を妨げ、ヘディング測定値(heading measurements)が不正確になる。ヘディングとデジタルコンパスの精度は、デバイスが操作されている環境と、そのデジタルコンパスを含むプラットフォームのシステム状態との両方により動的に影響され得る。ヘディングと精度を決定するアルゴリズムは複雑であり、多数のセンサ測定を要することがある。
【図面の簡単な説明】
【0003】
【図1】一定磁場におけるすべての磁気センサ方位にわたる磁場センサの出力を示す図である。
【図2】定常状態プラットフォームノイズと時間変動ノイズ源により影響された磁気センサの出力を示すグラフである。
【図3】ここに説明する磁気ヘディングを計算する手法を実装できる計算デバイスを示すブロック図である。
【図4】センサ出力平均を用いて磁気ヘディングを計算するか決定する手法を示す図である。
【図5】測定センサの大きさと測定ノイズレベルとを、あるヘディング精度と信頼水準のためのセンサ出力平均化に用いられるサンプルサイズに関連付けるサンプルテーブルである。
【図6】磁気センサ出力を用いて磁気ヘディングを計算する方法を示すプロセスフロー図である。
【図7】磁気ヘディングを計算するコードを記憶した有体かつ非一時的機械読み取り可能媒体を示すブロック図である。 本開示と図面を通して同じ番号を用いて同じコンポーネントとフィーチャを参照する。100番台の数字は最初に図1に現れるフィーチャを指し、200番台の数字は最初に図2に現れるフィーチャを指し、以下同様である。
【発明を実施するための形態】
【0004】
磁気センサにより受け取られた時間変動磁気ノイズを緩和する計算効率が高い手法を説明する。の通り、磁気センサにより受け取られる磁気ノイズは、磁気センサの入力において、プラットフォームにより誘導される磁場をシフトすることにより、計算デバイス内の磁気センサの正常な動作を阻害することがある。時間変動磁気ノイズはセンサ測定値を平均化することにより緩和できる。
【0005】
平均化プロセスの計算効率を向上するため、センサ測定値を計算するのに用いるサンプル数は、センサにより受け取られるノイズレベルなどのシステム情報と、ユースケースについて望まれるヘディング精度と信頼水準などのその他要因とに基づき決めることができる。さらに、サンプルサイズは、ノイズレベル、所望のヘディング精度、及び所望の信頼水準の変化に基づき動的に調整できる。ノイズレベルに基づいてサンプルサイズを調整することにより、計算デバイスは、数を減らしたサンプルを用いて、所望の精度と信頼水準を満足する磁気ヘディングを計算できる。磁気ヘディングを計算するのに用いられるサンプル数を低減することにより、平均化プロセスの計算効率が上がる。
【0006】
幾つかの場合には、磁気ヘディングを計算するのに用いるアルゴリズムの複雑性も低減できる。例えば、ノイズレベルが十分に低ければ、所望の精度を満たす磁気ヘディングを、単一のセンサ測定値を用いて計算でき、平均化プロセスはスキップできる。平均化プロセスをスキップすることにより、さらに、磁気ヘディング計算の計算効率が向上する。磁気ヘディング計算の計算効率が向上すれば、デバイスは、より少ない処理ステップで磁気ヘディングを計算でき、計算が速くなり、パワー消費が少なくなる。
【0007】
図1は、一定磁場におけるすべての磁気センサ方位にわたる磁場センサの出力を示す図である。グラフを参照数字100で指す。磁気センサの出力102はスカラー数であり、ここではカウントと呼び、カウントが大きいと磁場強度が大きいことを示す。グラフ100のx軸104は、x方向のカウント数を表し、グラフ100のy軸106はy方向のカウントを表す。図1に示したように、磁気センサは、一定磁場中で磁気センサのz軸の周りに回転したとき、セントロイド(centroid)108は原点すなわちx−y座標(0,0)になる。磁気ヘディングは、セントロイド中心(centroid center)に対するセントロイドに沿ってセンサ出力の位置の関数として計算できる。
【0008】
計算デバイスのプラットフォームの磁気センサにより測定された磁場、例えばB
sensorは、回転による歪みが無視できるので、3つの磁場のベクトル和とそれらの各座標系として、式1に示すように表せる。3つの磁場は、プラットフォームにより生じる磁場、例えばB
platform、地球の磁場、例えばB
earth、及びプラットフォーム外部の磁場源からの貢献、例えばB
ambientを含む。
【0009】
【数1】
式1において、
[外1]
はプラットフォーム/センサ座標に等しく、
[外2]
は世界座標に等しい。また、
[外3]
はプラットフォーム/センサ座標と世界座標の回転変換行列である。各ベクトルの絶対値は、磁力の強さと、世界座標系及びプラットフォーム/センサ座標系における境界への近さとの両方の関数である。
【0010】
プラットフォームの真のヘディングは式2により決定できる。
【0011】
【数2】
の式はセントロイド108が原点を中心としていることに基づく。しかし、プラットフォームのコンポーネントにより生じる定常状態ノイズにより、セントロイドのシフトが起こる傾向があり得る。式2に示したarctan関数から角度を正確に計算するため、図2を参照してさらに詳しく説明するように、磁気センサにおけるプラットフォーム誘導磁場に対応(account for)するため磁気センサ出力を調整することができる。
【0012】
図2は定常状態プラットフォームノイズと時間変動ノイズ源により影響された磁気センサの出力を示すグラフである。グラフ200において、グラフ200のx軸202はx方向のカウント数を表し、グラフ200のy軸204はy方向のカウント数を表す。グラフ200は磁気センサの出力206を示し、プラットフォームが磁場センサと同じ基準フレーム内に固定され、すべての方位にわたり一定のシフトを生じる磁場源を含む場合のものである。一定シフトは、矢印208により示したように、原点からのセントロイド中心(centroid center)のシフトとして示されている。セントロイド中心のシフトは、例えば、磁気センサの工場校正の時に決定され得る。
【0013】
出力206は時間変動ノイズも示す。これはセンサ出力においてランダムノイズを生じる時間変動電流によるものであってもよい。時間変動ノイズは外部ノイズ源によるものであってもよい。センサにおける時間変動ノイズによりセンサ出力206にノイズが加わる。これは、セントロイドに沿ったセンサ出力位置及びセントロイド中心を決定するプロセス及び信頼性に影響する。センサの一定方位における出力レンジを方形210で示した。センサの方位が一定であるとき、センサ出力とセントロイド中心のノイズ誘導変化(noise−induced changes)は一組となり、すなわちノイズによりセンサ出力206が示すのと同じ量と方向で真のセントロイド中心がシフトする。時間変動ノイズによるセントロイド中心の範囲を方形212で示す。センサ出力206を平均化することにより、平均センサ出力を決定し、それを用いて磁気ヘディング214を計算できる。さらに、センサが静止しているときは、平均センサ出力を用いてセントロイド中心の位置におけるノイズの効果を推定できる。推定されたセントロイド中心は、その後ヘディング計算においても使える。
【0014】
平均センサ出力は、センサ出力サンプルをいくつ使って計算してもよい。センサ出力サンプルの数は、ここではサンプルサイズと呼ぶ。幾つかの実施形態では、サンプルサイズは、センサが経験した検出ノイズレベルに基づき、自動的に選択できる。検出されたノイズレベルが所望のヘディング精度により決まる(dictated)閾値ノイズレベルより低い場合、単一のサンプルを用いてヘディング214を計算してもよい。この場合、平均化プロセスはスキップされてもよく、実際のセンサ出力を用いてヘディングを計算できる。ヘディング計算に実際に用いられるセンサ出力データは、ここでは適用センサ出力と呼んでも良く、実際のセンサ出力(サンプルサイズ=1)又は平均センサ出力(サンプルサイズ>1)を含み得る。
【0015】
図3は、ここに説明する磁気ヘディングを計算する手法を実装できる計算デバイスを示すブロック図である。計算デバイス300は、例えば、ラップトップコンピュータ、デスクトップコンピュータ、タブレットコンピュータ、モバイルデバイス、サーバ、又はセルラ電話などであってもよい。計算デバイス300は、記憶された命令を実行するように構成されたプロセッサ302と、そのプロセッサ302により実行可能な命令を記憶するメモリデバイス304とを含み得る。プロセッサ302は、シングルコアプロセッサ、マルチコアプロセッサ、計算クラスタ、又はその他の構成であり得る。プロセッサ302は、複数命令セットコンピュータ(CISC)プロセッサ、縮小命令セットコンピュータ(RISC)プロセッサ、x86命令セット互換プロセッサ、マルチコア、またはその他の任意のマイクロプロセッサまたは中央処理装置(CPU)として実装できる。幾つかの実施形態では、プロセッサ302は、デュアルコアプロセッサ、デュアルコアモバイルプロセッサなどを含む。
【0016】
メモリデバイス304は、ランダムアクセスメモリ(例えば、SRAM,DRAM,ゼロキャパシタRAM,SONOS,eDRAM,EDORAM,DDRRAM,RRAM,PRAMなど)、リードオンリーメモリ(例えば、MaskROM,PROM,EPROM,EEPROMなど)、フラッシュメモリ、又はその他の好適なメモリシステムを含み得る。メモリデバイス304は、磁気センサ306から受け取ったデータに少なくとも部分的に基づいて、磁気ヘディングを計算する、プロセッサ302により実行可能な命令を記憶する。
【0017】
プロセッサ302は、システムバス308(例えば、PCI,ISA,PCI−Express,HyperTransport(登録商標),NuBusなど)を通して、計算デバイス300を一以上のI/Oデバイス312に入出力(I/O)デバイスインタフェース310に接続され得る。I/Oデバイス312は、例えば、キーボード、ポインティングデバイスなどを含み得る。ポインティングデバイスは、タッチパッドやタッチスクリーンなどを含み得る。I/Oデバイス312は、計算デバイス300の組み込みコンポーネントであってもよく、又は計算デバイス300に外部接続されたデバイスであってもよい。
【0018】
プロセッサ302は、システムバス308を通して、計算デバイス300をディスプレイデバイス316に接続するように構成されたディスプレイデバイスインタフェース314にリンクされてもよい。ディスプレイデバイス316は、計算デバイス300の組み込みコンポーネントであるディスプレイスクリーンを含み得る。ディスプレイデバイス316は、コンピュータモニタ、テレビジョン、又はプロジェクタなども含み得る。これらは計算デバイス300に外部接続される。
【0019】
プロセッサ302は、バス308を通してネットワークインタフェースコントローラ(NIC)318にもリンクされ得る。NIC308は、プロセッサ302を、バス308を通してネットワーク320に接続するように構成され得る。ネットワーク320はワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、又はインターネットなどであり得る。
【0020】
計算デバイス300はストレージデバイス322を含んでいてもよい。ストレージデバイス322は、ハードドライブ、光ドライブ、フラッシュドライブ、ドライブアレイなどの物理的メモリを含み得る。ストレージデバイス322は、リモートストレージドライブも含み得る。ストレージデバイス322は、計算デバイス300のシステム状態に基づき磁気ヘディングを計算するサポート(support)を提供する命令を記憶し得る。
【0021】
ストレージデバイス322はオペレーティングシステム324を含み得る。オペレーティングシステム324は一以上のドライバをインストールしている。ドライバにより、ハードウェア又はオペレーティングシステム324上にインストールされストレージデバイス322内にある一以上のアプリケーション105は、計算デバイス300のオペレーティングシステム324又は(磁気センサ306を含む)その他のハードウェアと通信できる。ドライバを用いて、ヘディング計算エンジン328はセンサデータを、磁気センサ306から、オペレーティングシステム324にインストールされている一以上のアプリケーション326のどれかに通信できる。
【0022】
さまざまな実施形態では、磁気センサ306はプロセッサ302にバス308を介して接続される。磁気センサ306は、プライベートバス又はセンサインタフェース(図示せず)を介してプロセッサ302に直接接続してもよい。さらに、さまざまな実施形態では、磁気センサ306はセンサインタフェースを介してヘディング計算エンジン328に通信可能に結合している。ヘディング計算エンジン328は、磁気センサ306からセンサ出力を収集するように構成されている。幾つかの実施形態では、計算デバイス300内の一以上のマイクロコントローラは、磁気センサ306を介して収集されたセンサ出力をヘディング計算エンジン328に提供する。また、計算デバイス300は、計算デバイス300の動きを検出するように構成された一以上の動きセンサ330も含み得る。動きセンサ330の例には、ジャイロスコープ、加速度計などを含む。ヘディング計算エンジン328は、動きセンサ330から計算デバイス300の動きに関するデータを受け取ることができる。これは、磁気センサ306が静止しているか示すために用い得る。
【0023】
ヘディング計算エンジン328は、ハードウェアで、又はハードウェアとプログラミングコードの組み合わせで実装される。幾つかの実施形態では、ヘディング計算エンジン328はカーネルレベルで動作し、計算デバイス100のオペレーティングシステム324を介して実装される。他の実施形態では、ヘディング計算エンジン328は、プロセッサレベルで動作し、プロセッサ302や計算デバイス100内にある任意数のその他のハードウェアを介して実装される。さらに、さまざまな実施形態では、ヘディング計算エンジン328は、オペレーティングシステム324とプロセッサ302との両方を介して同時に実装される。また、幾つかの実施形態では、ヘディング計算エンジン328はファームウェアを含む。例えば、ヘディング計算エンジン328は、レジスタ・トランジスタロジック(RTL)又はカーネルレベル及び/又はプロセッサレベルにあるその他の任意の好適なタイプのロジックを含んでもよい。
【0024】
ヘディング計算エンジン328は、磁気センサ306からセンサ出力を受け取り、磁気ヘディングを計算するように構成されている。以下さらに説明するように、ヘディング計算エンジン328は、磁気センサ306から受け取ったセンサ出力に基づいて、ノイズレベルを決定できる。その後、決定されたノイズレベルを用いて、平均化を用いて適用センサ出力を計算するか決定できる。平均化を用いる場合、ノイズレベルも用いて適用センサ出力を計算するのに用いるサンプルサイズを決定できる。幾つかの実施形態では、磁気センサ306が静止している時にノイズレベルを決定する。ヘディング計算エンジン328は、磁気センサ306が静止していることを、動きセンサ330から受け取るデータに基づいて決定できる。
【0025】
ヘディング計算エンジン328は、所望のヘディング精度(heading accuracy)と信頼水準(confidence level)に関するデータを受け取れる。これらのヘディング精度と信頼水準は、適用センサ出力の計算において、ヘディング計算エンジン328により用いられてもよい。例えば、所望のヘディング精度と信頼水準を用いて、適用センサ出力を計算するのに平均化を用いるか決定するために用いられる閾値ノイズレベルを計算できる。平均化を用いるとき、所望のヘディング精度と信頼水準を用いて、測定ノイズレベルに基づく平均化プロセスにおいて用いるサンプルサイズを決定できる。信頼水準(confidence level)は、計算されたヘディングが指定された精度のレベルにより決まる範囲内にある確実性のレベルを記述する値である。
【0026】
幾つかの実施形態では、所望の精度と信頼水準は、例えば、磁気ヘディングを計算するのに使われるコードにプログラムされた固定値であってもよい。幾つかの実施形態では、所望の精度と信頼水準は動的に調整可能である。例えば、所望の精度と信頼水準は、計算デバイス300のユーザインタフェースを通して、ユーザにより設定及び/又はリセットできる。幾つかの実施形態では、所望の精度と信頼水準はアプリケーションにより指定可能である。例えば、アプリケーション326の一つがアクティブになり、又は計算デバイス300の焦点的アプリケーションになると、アプリケーション326は、ヘディング計算エンジン328に、ヘディングの計算において用いられる具体的な精度と信頼水準を特定する信号その他のデータを送る。磁気ヘディングを計算する手法を、図4−6を参照して以下にさらに詳しく説明する。
【0027】
言うまでもなく、図3のブロック図は、計算デバイス300が図3に示したすべてのコンポーネントを含むことを示すことを意図したものではない。さらに、計算デバイス300は、具体的な実装の詳細に応じて、図3に示していない別のコンポーネントをいくつ含んでいてもよい。
【0028】
図4は、センサ出力平均を用いて磁気ヘディングを計算するか決定する手法を示す図である。ここに説明するプロセスは、例えば、図3のヘディング計算エンジン328により実装できる。平均化を用いるかを決定するため、センサ出力の大きさ(magnitude)とセンサ出力中のノイズの大きさ(magnitude)を測定できる。センサ出力の大きさは式1により計算され得る。
【0029】
【数3】
式1中、Sxはx方向のカウント数であり、Syはy方向のカウント数であり、Szはz方向のカウント数である。センサ出力中のノイズの大きさは、磁気センサが静止している間は、磁気センサ出力の最大バリエーションとして計算できる。ノイズの測定値をセンサ値により割ると、磁気センサ出力の信号対雑音比である。
【0030】
ノイズ閾値は、計算された磁気ヘディングの所望の精度に基づき計算できる。センサノイズがノイズ閾値より大きいとき、平均化を用いて磁気ヘディング計算の確実性を向上してもよい。センサノイズがノイズ閾値より小さいとき、平均化をスキップし、ヘディング計算を処理していないセンサ出力に基づいて行える。ノイズ閾値は式2により計算できる。
【0031】
【数4】
式2において、θは度単位の所望のヘディング精度である。このように、例えば、所望のヘディング精度がプラスマイナス4度である場合、ノイズ閾値は信号の強さの約14パーセントになる。所望のヘディング精度がプラスマイナス0.3度である場合、ノイズ閾値は信号の強さの約1パーセントになる。所望のヘディング精度は、図3を参照して説明したように指定されてもよく、具体的なユースケースに対するナビゲーション要求のタイプに依存してもよい。幾つかの実施形態では、ノイズレベルは、定期的に測定され、平均化を用いるか決定するため、閾値ノイズと比較される。
【0032】
センサが静止している時にのみセンサノイズが計算される場合、センサ出力の大きさは、センサノイズの大きさよりも頻繁に更新されてもよい。このように、幾つかの実施形態では、測定されたノイズレンジを用いて閾値信号の大きさを計算できる。閾値信号の大きさは、平均化を用いるか決定するため、測定信号の大きさと比較してもよい。閾値信号の大きさは式3により計算できる。
【0033】
【数5】
の手法は図4に示した。図4では、x軸402は信号の大きさを表し、y軸404はノイズの大きさを表す。図4に示したように、所望の精度θによりラジアルライン406により囲まれたセクタが決まる。垂直ライン408の高さは測定ノイズを表す。ライン408は、信号の大きさの閾値を確定し、ライン408の端がラジアルライン406に交わる信号の強さのところに位置している。測定信号の大きさが矢印410で示したように信号の大きさの閾値より小さいとき、平均化を用いて磁気ヘディングを計算するのに用いる適用信号出力を決定する。測定信号の大きさが矢印412で示したように信号の大きさの閾値より大きいとき、平均化を用いずに、処理していないセンサ出力を適用信号出力として用いる。平均化を用いて適用センサ出力を決定する場合、センサ出力を平均化するのに用いるサンプルサイズは、図5を参照して以下に説明するように決定できる。
【0034】
図5は、測定センサの大きさと測定ノイズレベルとを、あるヘディング精度と信頼水準のためのセンサ出力平均化に用いられるサンプルサイズに関連付けるサンプルテーブルである。テーブル500は2度のヘディング精度に対して95%の信頼水準で計算したサンプルサイズを示す。テーブル502は1度のヘディング精度に対して90%の信頼水準で計算したサンプルサイズを示す。テーブル500と502に示したサンプルサイズは式4により計算され得る。
【0035】
【数6】
式4中、Nはサンプル数であり、αは信頼水準であり、これは1マイナス信頼性パーセンテージに等しい(例えば、95パーセントの信頼性の場合、αは0.05である)。一例として、磁気ヘディングの計算について2度のヘディング精度と95%の信頼水準が指定された場合、適用センサ出力を計算するのに用いるサンプル数はテーブル502に与えられている。ヘディング精度と信頼水準によりノイズ閾値が決まる。これはテーブル500と502では許容ノイズと呼んでいる。センサの大きさと測定ノイズの交わりは適用可能サンプルサイズである。
【0036】
幾つかの実施形態では、サンプル数はの式を用いてヘディング計算エンジン328により計算され得る。幾つかの実施形態では、式を用いたルックアップテーブルを作成して、図3の電子デバイス300に格納してもよい。例えば、テーブル500及び502と同様のルックアップテーブルを、ヘディング計算エンジン328のメモリデバイス、ストレージデバイス322、又はヘディング計算エンジン328がアクセス可能な電子デバイス300のその他のメモリデバイスに格納してもよい。異なるヘディング精度と信頼水準に対し構成し格納するルックアップテーブルの数はいくつでもよい。
【0037】
図6は、磁気センサ出力を用いて磁気ヘディングを計算する方法を示すプロセスフロー図である。ここに説明するプロセスは、例えば、図3のヘディング計算エンジン328により実装できる。該方法はブロック602で始まってもよく、センサが静止しているかに関して判断する。この判断は、例えば、加速度計、ジャイロスコープ、その他の好適な動き検出デバイスなどの動きセンサから受け取るデータに基づいて判断することができる。センサが静止している場合、プロセスフローはブロック604に進むことができる。
【0038】
ブロック604において、磁気センサ出力のノイズレベルを測定する。ノイズレベルの測定は、磁気センサ出力のサンプル数を受け取り、センサ出力レンジを決定することにより行い得る。測定ノイズレベルは、センサ出力データのサンプルの最大バリエーションの大きさとして特徴付けできる。測定ノイズレベルは、磁気センサが静止していると判断された時はいつでも、定期的に更新できる。磁気センサが静止していない場合、ブロック604はスキップされ、以下のプロセスステップには、前の測定ノイズレベルが用いられる。その後、プロセスフローはブロック606に進むことができる。
【0039】
ブロック606において、磁気ヘディングを計算するのに平均化を用いるか判断する。この判断は、図4を参照して説明したように、測定ノイズレベルと所望のヘディング精度との基づいて行い得る。平均化を用いる場合、プロセスフローはブロック608からブロック610に進み得る。
【0040】
ブロック610において、平均化プロセスで用いるサンプルサイズを決定する。幾つかの実施形態では、サンプルサイズは、図5を参照して上で説明したように、測定ノイズレベル、所望のヘディング精度、及び所望の信頼水準に基づき計算される。例えば、サンプルサイズは式4を用いて計算でき、又は電子デバイスに格納されたルックアップテーブルから取得できる。
【0041】
ブロック612において、処理していないセンサ出力をサンプルサイズに基づいて平均化できる。平均センサ出力は適用センサ出力として後で用いる。の通り、適用センサ出力は磁気ヘディングを計算するのに用いるセンサデータを指す。幾つかの実施形態では、平均センサ出力はセンサ出力の和をサンプルサイズで割ったものとして計算される。幾つかの実施形態では、平均センサ出力の計算は、最大センサ出力と最小センサ出力を合計してその結果を2で割ることにより行う。
【0042】
ブロック606に戻り、平均化を用いないと判断した場合、プロセスフローはブロック608からブロック614に進み得る。ブロック614において、適用センサ出力を処理していない(raw)センサ出力に設定する。従って、磁気センサの各出力を用いて、磁気ヘディングを計算してもよく、平均化プロセスをスキップできる。ブロック612又はブロック614から、プロセスフローはブロック616に進み得る。
【0043】
ブロック616において、推定されたセントロイド中心と適用センサ出力に基づき、磁気ヘディングを計算する。磁気ヘディングは図1と図2を参照して上で説明したように計算できる。例えば、推定されたセントロイド中心を用いて、センサ出力データを再中心化(re−center)できる。再中心化されたセントロイドに沿った適用センサ出力の位置により磁気ヘディングが決まる。
【0044】
ブロック618において、磁気ヘディングは計算デバイスの他のコンポーネントに送信できる。例えば、磁気ヘディングは、マッピングアプリケーション、コンパスアプリケーション、位置発見アプリケーション、又はその他の磁気ヘディングを用いるアプリケーションに送信できる。幾つかの実施形態では、磁気ヘディングは電子デバイスのユーザに表示してもよい。幾つかの実施形態では、磁気ヘディングは別の計算で用いることもできる。例えば、磁気ヘディングは、電子デバイスの位置を計算する計算ルーチンの一部として用いても良い。
【0045】
図7は、磁気ヘディングを計算するコードを記憶した有体かつ非一時的機械読み取り可能媒体を示すブロック図である。有体かつ非一時的機械読み取り可能媒体700は、コンピュータバス704によりプロセッサ702によりアクセスされ得る。さらに、有体かつ非一時的機械読み取り可能媒体700は、プロセッサ702にここに説明した方法を実行するように命令するように構成されたコードを含んでいてもよい。
【0046】
ここに説明したさまざまなソフトウェアコンポーネントは、図7に示すように、有体かつ非一時的機械読み取り可能媒体700に記憶されてもよい。例えば、ノイズ測定モジュール706は、磁気センサ出力データ中にある時間変動ノイズのレベルを測定できる。平均化モジュール708を用いて適用センサ出力を計算できるが、これは決定されたサンプルサイズを用いてセンサ出力データの平均を計算することにより行える。平均化モジュールは、センサ出力データ、所望の精度、及び所望の信頼水準に基づき好適なサンプルサイズを決定することもできる。ヘディング計算モジュール710を用いてセンサ出力に基づき磁気ヘディングを計算できる。ヘディング計算モジュール710は、磁気ヘディングの計算に処理していないセンサ出力を用いるか、センサ出力データに平均化を適用するか決定することもできる。
【0047】
言うまでもなく、図7のブロック図は、有体かつ非一時的機械読み取り可能媒体700が図7に示したすべてのコンポーネントを含むことを示すことを意図したものではない。さらに、具体的な実装の詳細に応じて、図7に示していない別のコンポーネントをいくつでも、有体かつ非一時的機械読み取り可能媒体700に含むこともできる。
【0048】
実施例1
磁気ヘディングを計算する計算デバイスの一例をここで説明する。本計算デバイスは、センサ出力データを収集する磁気センサと、前記センサ出力データに基づき磁気ヘディングを計算するヘディング計算エンジンとを含む。前記ヘディング計算エンジンは、前記センサ出力データのノイズレベルを測定するロジックを含む。また、前記ヘディング計算エンジンは、前記ノイズレベルに少なくとも部分的に基づいて、前記センサ出力データを平均化するか決定するロジックを含む。また、前記ヘディング計算エンジンは、前記センサ出力データに基づいて適用センサ出力を決定するロジックを含む。また、前記ヘディング計算エンジンは、前記適用センサ出力に少なくとも部分的に基づいて磁気ヘディングを計算するロジックとを有する、計算デバイスを含む。
【0049】
前記センサ出力データを平均化するか決定するロジックは、所望のヘディング精度に少なくとも部分的に基づいて前記センサ出力データを平均化するか決定できる。幾つかの実施形態では、前記センサ出力データを平均化するか決定するロジックは、前記センサ出力データを平均化しないこと、及び前記適用センサ出力が前記センサ出力データの単一のサンプルであることを決定する。幾つかの実施形態では、前記センサ出力データを平均化するか決定するロジックは、所望のヘディング精度に基づき閾値ノイズを計算し、前記ノイズレベルが前記ノイズ閾値より低いか決定する。幾つかの実施形態では、前記センサ出力データを平均化するか決定するロジックは、前記ノイズレベルと所望のヘディング精度とに基づいて信号の大きさの閾値を計算し、前記センサ出力データの信号の大きさが前記信号の大きさの閾値より高いか決定する。
【0050】
また、計算デバイスは、前記磁気センサが静止しているか決定する動きセンサであって、前記センサ出力データのノイズレベルを測定するロジックは、前記磁気センサが静止している時に前記ノイズレベルを測定するものを含んでもよい。幾つかの実施形態では、前記センサ出力データを平均化するか決定するロジックは、前記センサ出力データを平均化することを決定し、前記適用センサ出力を決定するロジックは、前記ノイズレベルに少なくとも部分的に基づいて前記センサ出力のサンプルサイズを決定する。幾つかの実施形態では、前記適用センサ出力を決定するロジックは、前記ノイズレベル、所望のヘディング精度、及び信頼水準に基づいてサンプルサイズを決定する。幾つかの実施形態では、計算デバイスは、所望のヘディング精度をユーザが指定できるようにするユーザインタフェースも含む。幾つかの実施形態では、前記所望のヘディング精度は前記計算デバイスのアプリケーションにより指定される。
【0051】
実施例2
磁気ヘディングを計算する方法の一例をここで説明する。該方法は、磁気センサからセンサ出力データを受け取るステップと、前記センサ出力データのノイズレベルを測定するステップとを含む。また、該方法は、前記ノイズレベルに少なくとも部分的に基づいて、前記センサ出力データを平均化するか決定するステップを含む。また、該方法は、前記センサ出力データに基づいて適用センサ出力を決定するステップを含む。また、該方法は、前記適用センサ出力に少なくとも部分的に基づいて磁気ヘディングを計算するステップを含む。また、該方法は、アプリケーションによる使用のために計算デバイスのコンポーネントに前記磁気ヘディングを送るステップを含む。
【0052】
前記センサ出力データを平均化するか決定するステップは、所望のヘディング精度に少なくとも部分的に基づいて前記センサ出力データを平均化するか決定するステップを含んでもよい。また、本方法は、前記センサ出力データを平均化しないことを決定したとき、前記適用センサ出力を前記センサ出力データの単一のサンプルとして設定するステップを含んでいてもよい。幾つかの実施形態では、前記センサ出力データを平均化するか決定するステップは、所望のヘディング精度に基づき閾値ノイズを計算し、前記ノイズレベルが前記ノイズ閾値より低いか決定するステップを含む。幾つかの実施形態では、前記センサ出力データを平均化するか決定するステップは、前記ノイズレベルと所望のヘディング精度とに基づいて信号の大きさの閾値を計算し、前記センサ出力データの信号の大きさが前記信号の大きさの閾値より高いか決定するステップを含む。
【0053】
前記センサ出力データのノイズレベルを測定するステップは、前記磁気センサが静止している時に前記ノイズレベルを測定するステップを含んでもよい。また、本方法は、前記センサ出力データを平均化すると決定したとき、前記ノイズレベルに少なくとも部分的に基づいて前記センサ出力データのサンプルサイズを決定するステップを含んでいてもよい。 前記サンプルサイズは前記ノイズレベル、所望のヘディング精度、及び信頼水準に基づき決定され得る。幾つかの実施形態では、本方法は、ユーザにより指定された所望のヘディング精度を受け取るステップを含む。幾つかの実施形態では、本方法は、前記計算デバイスのアプリケーションから所望の精度を受け取るステップを含む。
【0054】
実施例3
磁気ヘディングを計算するインストラクションを格納した非一時的かつ有体な機械読み取り可能媒体の一例をここで説明する。インストラクションは、プロセッサにより実行されると、前記プロセッサに、磁気センサからセンサ出力データを受け取り、前記センサ出力データのノイズレベルを測定するように命令する。また、該インストラクションは、プロセッサに、前記ノイズレベルに少なくとも部分的に基づいて、前記センサ出力データを平均化するか決定するように命令する。また、該インストラクションは、プロセッサに、前記センサ出力データに基づいて適用センサ出力を決定するように命令する。また、該インストラクションは、プロセッサに、前記適用センサ出力に少なくとも部分的に基づいて磁気ヘディングを計算するように命令する。
【0055】
前記プロセッサに前記センサ出力データを平均化するか決定するよう命令するインストラクションは、所望のヘディング精度に少なくとも部分的に基づいて前記センサ出力データを平均化するか決定する。該インストラクションは、前記センサ出力データを平均化しないと決定したとき、前記プロセッサに、前記センサ出力データの単一のサンプルを前記適用センサ出力として用いるように命令できる。幾つかの実施形態では、該インストラクションは、前記プロセッサに、所望のヘディング精度に基づき閾値ノイズを計算し、前記ノイズレベルが前記ノイズ閾値より低いか決定して、前記センサ出力データを平均化するか決定するように命令する。幾つかの実施形態では、該インストラクションは、前記プロセッサに、前記ノイズレベルと所望のヘディング精度とに基づいて信号の大きさの閾値を計算し、前記センサ出力データの信号の大きさが前記信号の大きさの閾値より高いか決定して、前記センサ出力データを平均化するか決定するように命令する。
【0056】
また、該インストラクションは、前記プロセッサに、前記磁気センサが静止しているか決定し、前記磁気センサが静止しているときにのみ前記センサ出力データのノイズレベルを測定するように命令できる。また、該インストラクションは、プロセッサに、前記センサ出力データを平均化すると決定したとき、前記ノイズレベルに少なくとも部分的に基づいて前記センサ出力データのサンプルサイズを決定できる。幾つかの実施形態では、該インストラクションは、前記プロセッサに、前記ノイズレベル、所望のヘディング精度、及び信頼水準に基づいて前記サンプルサイズを決定するように命令する。幾つかの実施形態では、該インストラクションは、前記プロセッサに、ユーザから前記所望のヘディング精度を受け取るよう命令する。幾つかの実施形態では、該インストラクションは、前記プロセッサに、計算デバイスにおいて実行されるアプリケーションから前記所望の精度を受け取るよう命令する。
【0057】
また、の説明及び請求項において、「coupled」と「connected」との用語及びその変化形を用いることがある。言うまでもなく、これらの用語は互いに同意語として使用したものではない。例えば、一部の実施形態では、「接続された」という用語を用いて、2以上の要素が互いに物理的または電気的に直接的に接触していることを示している。「結合された」という用語は、2つ以上の要素が物理的または電気的に直接的に接触していることを示している。しかし、「結合された」という用語は、複数の要素が互いに直接的には接触してないが、互いに協働または相互作用することを示している。
【0058】
あるハードウェア、ファームウェア、及びソフトウェアの1つまたはその組合せで実施することができる。ある機械読み取り可能媒体に格納された命令として実施することもできる。コンピューティングプラットフォームがこの命令を読み出し、実行して、ここに説明した動作を実行する。機械読み取り可能媒体には、機械、例えばコンピュータによる読み取りが可能な形式で情報を格納または伝送する任意のメカニズムが含まれる。例えば、機械読み取り可能媒体には、読出専用メモリ(ROM)、ランダムアクセスメモリ(RAM);磁気ディスク記憶媒体;光記憶媒体;フラッシュメモリデバイス;電子的、光学的、音響的その他の形式の伝送信号、例えば搬送波、赤外線信号、デジタル信号、信号を送受信するインタフェース等、などが含まれる。
【0059】
実施形態は実装又は実施例である。本明細書において「一実施形態」、「ある実施形態」、「さまざまな実施形態」、「他の実施形態」とは、その実施形態に関して説明する機能、構造、特徴がここに説明した少なくともある実施形態に含まれるが、必ずしもすべての実施形態には含まれないことを意味している。「一実施形態」や「ある実施形態」と言っても、必ずしも同じ実施形態を指しているとは限らない。
【0060】
ここに説明し図示したコンポーネント、フィーチャ、構造、又は特徴のすべてが、すべての場合にある具体的な実施形態に含まれる必要はない。例えば、明細書において、コンポーネント、フィーチャ、構造又は特徴が、含まれ「得る」、含まれることが「できる」と言った場合、その具体的なコンポーネント、フィーチャ、構造又は特徴がすべての場合に含まれなくてもよい。明細書又は特許請求の範囲で「一」要素と言う場合、これはその要素が1つだけあることを意味するのではない。明細書又は特許請求の範囲で「一追加」要素と言う場合、これはその追加要素が1つより多くあることを排除するものではない。
【0061】
留意点として、具体的なインプリメンテーションを参照して実施形態を説明したが、ある実施形態では他のインプリメンテーションが可能である。また、図面に示し及び/又はここに説明した、回路要素の構成及び/又は順序、又はその他の特徴は、図示して説明した具体的な方法で構成されなくてもよい。ある実施形態では、他の多くの構成が可能である。
【0062】
図に示した各システムでは、ある場合の要素は、それぞれ同じ参照数字又は異なる参照数字を有し、表示された要素が異なる及び/又は同じことを示唆している。しかし、要素は、フレキシブルであり、異なるインプリメンテーションを有し、ここに示し説明したシステムの一部又は全部と機能する。図面に示した様々な要素は同じもの又は違うものである。どれを第1の要素と呼び、どれを第2の要素と呼ぶかは任意的である。
【0063】
言うまでもなく、実施例の細目は一以上の実施形態のどこで用いても良い。例えば、の計算デバイスのすべての任意的フィーチャは、ここに説明した方法や機械読み取り可能媒体に対して実装されてもよい。さらに、ここで実施形態を説明するためにフロー図及び/又は状態図を使ったが、本発明はこれらの図や対応するここでの説明に限定されない。例えば、フローは、例示された各ボックスや状態を通って、図示し説明したのと同じ順序で動く必要はない。
【0064】
本発明は、ここに列記した具体的な詳細事項に限定されない。実際、本開示の利益を享受する当業者には、の説明と図面から、本発明の範囲内で、多数の変形を行うことができるだろう。したがって、本発明の範囲を画定するのは、補正も含めた以下の請求項である。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【国際調査報告】