"磁気コンパス120を較正するためのプログラム製品であって、プログラム命令がその上に具体化されるプロセッサ可読媒体130を含み、前記プログラム命令は、前記磁気コンパスに結合される少なくとも1つのプログラム可能プロセッサ102によって実行されるとき、前記磁気コンパスに複数の磁場サンプル252-1から252-8を採取するステップと、前記複数の磁場サンプルを検査するステップ430と較正係数で前記磁気コンパスを較正するステップを行わせるように動作可能であり、前記検査するステップは、磁場サンプルが前に検査された全ての磁場サンプルから少なくとも最小分離角度離れていることを確実にするために、前記磁場サンプルと前に検査された全ての磁場サンプルとの間の角度を繰返し比較することにより前記磁場サンプルを検査し、前記検査した磁場サンプルから前記較正係数を計算することを含む、プログラム製品。前記プログラム命令は、前記磁気コンパスに最初の磁場サンプルを検査するステップと、次の磁場サンプルと前記最初の磁場サンプルとの間の前記角度、および前記次の磁場サンプルと第2の磁場サンプルとの間の前記角度が、どちらも前記最小分離角度以上であるとき、前記次の磁場サンプルを検査するステップと、を行わせるようにさらに動作可能である、請求項1に記載のプログラム製品。磁場の測定を行うための磁気計122と、前記磁気コンパスを較正する処理ユニット102と、を含む磁気コンパス120であって、前記処理ユニットは、所定数の磁場サンプル252-1から252-8を検査するステップ430と、前記検査した磁場サンプルから較正係数を計算するステップ450と、を行わせるように構成され、前記検査されるそれぞれの磁場サンプルは、検査される他の全ての磁場サンプルから少なくとも最小分離角度離れている、磁気コンパス120。0002一実施形態は、磁場の測定を行うための磁気計と、磁気コンパスを較正する処理ユニットとを含む、磁気コンパスを対象とする。その処理ユニットは、所定数の磁場サンプルを検査し、検査された磁場サンプルから較正係数を計算するように構成される。検査されるそれぞれの磁場サンプルは、検査される他の全ての磁場サンプルから少なくとも最小分離角度離れている。0008様々な図面の中の同様の参照番号および記号表示は、同様の要素を示す。0009本明細書に記載する諸実施形態は、磁気コンパスと一体化したデバイスおよびコンポーネントに起因する、地球の磁場における硬化鉄擾乱を補償するように磁気コンパスを較正する。一部の実施形態では、補償係数を計算するために、他の全てのサンプルから少なくとも最小分離角度離れた磁場のサンプルが使用される。一部の実施形態では、磁場の三次元スパンを確保するよう、最小分離角度およびサンプルの総数が予め定められる。0010図1は、デバイス100内に統合された磁気コンパス120の一実施形態のブロック図である。磁気コンパス120は、自らがさらされる磁場の測定を行い、デバイス100に方向情報を提供する、少なくとも1つの磁気計122を含む。磁気コンパス120は、処理ユニット102およびメモリ104をさらに含む。図1に示す実施形態では、磁気コンパス120は、少なくとも1つの加速度計124も含む。デバイス100は、機能回路142および表示デバイス110を含む。デバイス100は、例えばナビゲーションデバイス、車両、他の任意の機器など、方向情報を使用する任意のシステムまたは機器である。機能回路142は、例えばナビゲーションや照準付けのために方向情報を使用する任意の回路である。デバイス100の各コンポーネントは、適切なインターフェイスおよび相互接続を使用し、必要に応じて互いに通信結合される。0011表示デバイス110は、例えば磁気コンパスの測定値を表示し、またはユーザ入力を要求する。表示デバイス110の諸実施形態には、デジタルディスプレイ、LCDモニタ、LEDディスプレイ等が含まれる。ユーザインターフェイス140が、表示デバイス110と一体化し、ユーザ入力用の物理ボタンまたは論理ボタンを備える。0012図1に示す実施形態では、処理ユニット102によって実行されるソフトウェア132内に、較正ルーチン134および計算ルーチン133が実装される。ソフトウェア132は、適切な記憶デバイスまたは記憶媒体130上に記憶されるプログラム命令を含む。適切な記憶デバイスまたは記憶媒体130には、例として半導体メモリデバイス消去可能プログラム可能読取り専用メモリEPROM、電気的消去可能プログラム可能読取り専用メモリEEPROM、フラッシュメモリデバイスなど、磁気ディスクローカルハードディスクやリムーバブルディスクなど、および光ディスクコンパクトディスク-読取り専用メモリCD-ROMディスクなどが含まれる、例えば不揮発性メモリの諸形態が含まれる。さらに、この記憶デバイスまたは記憶媒体130は、デバイス100にとってローカルである必要はない。一実施形態では、記憶デバイスまたは記憶媒体130が磁気コンパス120内に統合される。典型的には、処理ユニット102によって実行されるソフトウェア132の一部分、および実行中にソフトウェア132によって使用される1つまたは複数のデータ構造がメモリ104内に記憶される。そのような実施形態の一実装形態では、メモリ104には、ダイナミックランダムアクセスメモリDRAMなど、現在知られているまたは後に開発される任意の適切な形態のランダムアクセスメモリRAMが含まれる。他の実施形態では、他の種類のメモリが使用される。0013計算ルーチン133は、磁気コンパスの測定値から方向を計算する。他の実施形態では、計算ルーチン133は、デバイス100のロールおよびピッチも計算する。正確なコンパス測定値は、統合磁気コンパス120の動作環境の、変化する磁場を補償することを伴う。例えば、たとえ最大限の精度を得るように磁気コンパス120を工場で較正することができても、その磁気コンパス120が他のコンポーネントと一体化すると、周辺環境によってもたらされる擾乱が磁気コンパス120に影響を与える。較正ルーチン134は、磁気コンパス120の動作環境に対する磁気擾乱を補償する。0014較正ルーチン134は、選択ルーチン136および補償ルーチン138を含む。選択ルーチン136は、少なくとも最小分離角度互いに離れたいくつかの磁場サンプルを検査する。磁場サンプルを検査することは、磁気コンパスを較正する際に使用するサンプルを選択し、そのサンプルはメモリ104内に記憶される一方、無効にされる磁場サンプルは破棄される。最小分離角度とは、ある磁場サンプルと検査される磁場サンプルそれぞれとの間の角度を検査するために必要な最小角度値である。補償ルーチン138は、硬化鉄擾乱を補償するために、検査される磁場サンプルから補償係数を計算する。補償ルーチン138は、例えば数値探索や最小二乗法を含む、任意の現在知られているまたは後に開発される方法により計算される。0015硬化鉄擾乱は、コンパスプラットフォーム上の永久磁石および磁化材料から生じる。これらの擾乱は一定のままであり、所与の設置先に関するあらゆる向きの方位にわたり、磁気コンパス120に対して不変である。非擾乱磁場では、地球の場が一定の大きさを有する。3Dでプロットすると、非擾乱場は原点を中心とする球である。硬化鉄擾乱があることは、その球の中心をシフトする一定の大きさの場成分を追加する。軟化鉄擾乱は、地球の磁場とコンパス近くの磁気的に柔らかい材料との相互作用から生じる。軟化鉄擾乱は、球を楕円体へと変形させ、コンパス120の方位に依拠する。軟化鉄擾乱と硬化鉄擾乱との組合せは、中心が原点から離れてシフトされる楕円体をもたらす。この楕円体は、擾乱の性質に応じて回転させることもできる。較正ルーチン134は、楕円体の擾乱磁場を原点に位置する球へと変形させる。0016図2Aは、磁場に対する硬化鉄擾乱を示すグラフ200である。簡潔にするために、グラフ200は三次元3D磁場の二次元2D投影として図示し、本明細書で論じる原理は3Dに拡張可能である。原点を中心とする半径Hmの非擾乱磁場210を示す。一実施形態では、この非擾乱場210は地球の磁場である。この例では、硬化鉄擾乱が、非擾乱磁場210を正のx方向にHx、正のy方向にHyだけシフトさせる。非擾乱磁場210が硬化鉄擾乱によって擾乱されるとき、球の中心はシフトするが、擾乱磁場220の形状は、半径Hmの球のままである。硬化鉄擾乱が取り込まれた磁気コンパスは、Hx,Hyを中心とする擾乱磁場220を測定する。0017x軸から測定される、原点と擾乱磁場220のy軸上の最高点および最低点との間の角度は、それぞれθmax222およびθmin224である。これらの角度は、次式のように示される。0018N個のサンプルを採取するために、最小分離角度Δθは、次式の最大値にあることができる。0019一実施形態では、サンプルは最高N-1Δθに至るまで、0、Δθ、2Δθ、3Δθ、等にあり、他の実施形態では、各サンプルは少なくともΔθ離れている。等式3に示すことができるように、NおよびΔθの値は、較正ルーチン136を満たすように選択される。NおよびΔθを選択するための基準には、利用可能メモリ、計算能力、および3D空間のデータスパンに基づく考察が含まれる。0020図2Bは、擾乱磁場250を示すグラフ240である。擾乱磁場250について、1組の例示的サンプルベクトル252-1から252-8が検査されている。この例では、選択ルーチンがサンプルを採取し、Δθ=20度の最小分離角度を有する、N=8個のサンプルを必要とする。一実施形態では、磁場サンプルが単一面の外部で採取されることを確実にし、故に3Dに及ぶように、ΔθおよびNが選択される。0021図3は、磁場サンプルを検査する方法300の一実施形態の流れ図である。選択ルーチンが開始されるブロック302。開始時に、テストベクトルVtと呼ばれる、最初の磁場サンプルが採取される。この磁場サンプルは、採取される最初のテストベクトルなので、自動的に検査され、v0として保存され、サンプルカウントnが1に設定されるブロック304。この実施形態では、較正係数を計算するためにΔθの最小分離角度を有する合計N個の磁場サンプルが検査され、保存される。一実施形態では、n=1のとき、採取される最初のサンプルv0は常に適格である。0022この方法300は、サンプルの総数Nが採取されているかどうか、言い換えればn=Nかどうかを問い合わせるブロック310。サンプルの総数Nが検査されている場合、較正係数を計算する補償ルーチンが開始するブロック312。n≠Nの場合、もう1つの磁気コンパス測定値Vtが採取されるブロック320。0023テストベクトルの検査は、磁気ベクトルの全ての、最小角度分離に基づく。したがって、テストベクトルVtと検査されるサンプルviとの間の、Φiと呼ばれる角度がΔθ以上であることを確実にするために、Vtは、前に検査された全ての磁場サンプル例えばv0、v1等と比較される。テストベクトルVtが、他の全てのサンプルviに関して適格であることを確実にするために、適格とされた前のサンプルを最初から最後までカウントするために使用されたインデックスiが0に設定されて、検査プロセスが開始されるブロック322。0024この方法300は、i<Nかどうかを判定するブロック324。iがN未満の場合、テストベクトルVtと検査されるサンプルviとの間の角度Φiが、Δθ以上かどうかが判定されるブロック330。viについて、Φi<Δθの場合、そのサンプルは不適格とされ、もう1つのサンプルが採取されるブロック320。テストベクトルが不適格である場合、そのテストベクトルは、較正係数を計算するために使用されるメモリ内に記憶されない。viについて、Φi≧Δθの場合、そのサンプルはviに関して適格とされるが、依然として他の全ての記憶済み磁場サンプルviに関して適格とされる必要がある。したがって、Vtと次に検査されるサンプルとを比較するために、iが1だけインクリメントされブロック332、テストベクトルとviとの間の比較を行うためのループが再び開始するブロック324。0025一実施形態では、角度分離Φiは、磁気サンプルVtおよびviと同じ方向を指す、単位ベクトルVとUiとの間の内積を使用することによって計算される。前に検査された磁気ベクトルのサンプルvi例えばv0、v1、等ごとに、対応する1組の単位ベクトルが、Ui,I=1,...,kとして記憶される。テストベクトルは、次式が成立するときかつそのときに限ってのみ、検査され、記憶される。acos<V,Ui>≧Δθforalli=1,...,k40026i=nになると、テストベクトルと前に検査された全てのサンプルとの間の角度Φiが比較されている。言い換えれば、等式4が真の場合、Uk1=Vであり、磁気サンプルのテストベクトルVtが有効なデータ点として記憶される。つまり、iがn未満でない場合ブロック324、Vtがvnとして記憶されるブロック340。次いで、nが1だけインクリメントされブロック342、n=Nが成立するかどうかを比較することにより、サンプルの最大数Nが記憶されているかどうかが判定されるブロック310。検査されるサンプルの数が所望のサンプル数Nに等しくなると、データ収集が完了し、較正係数を計算するために計算ルーチンが開始するブロック312。0027図4は、磁気コンパス120を較正する方法400の一実施形態の流れ図である。例えばユーザコマンド時にまたは磁気コンパスへの電源投入時に、較正ルーチン134が開始されるブロック410。一実施形態では、選択ルーチン136が実行されているという指示が行われる。別の実施形態では、統合磁気コンパス120にとってのユーザに対して指示が行われる。さらに別の実施形態では、サンプルの総数N、およびどんな最小分離角度Δθを取るべきかをユーザが選択する。一部の例示的実施形態では、Nは6から24に等しいが、任意の適切な数とすることができる。0028較正ルーチンが開始すると、選択ルーチン412が開始する。この選択ルーチンは、磁場サンプルを採取する間、磁気コンパス120を回転させることを含むブロック420。選択ルーチン412は、他の全てのサンプルから最小分離角度Δθ離れている、採取されるそれぞれの磁場サンプルを検査することをさらに含むブロック430。一実施形態では、最初の磁場サンプルは自動的に検査される。磁場サンプルが前に検査された全ての磁場サンプルから少なくとも最小分離角度離れていることを確実にするために、磁場サンプルは、その磁場サンプルと前に検査された全ての磁場サンプルとの間の角度を繰返し比較することによって検査される。0029磁場サンプルが検査されると、その磁場サンプルはメモリ104内に記憶されるブロック440。別の実施形態では、最初のサンプルが検査され記憶されたことを指示するメッセージが表示デバイス110上に表示される。サンプルの総数Nに到達するまで磁場サンプルは検査され、記憶される。一実施形態では、N個のサンプルが収集されたという指示が表示デバイス110上に表示される。別の実施形態では、所定の時間内にN個のサンプルが検査されるようにデバイス100が回転されない場合、表示デバイス110上にタイムアウトメッセージが表示され、選択ルーチン136が終了する。0030全てのサンプルNが検査され、記憶されると、選択ルーチン412が完了する。補償ルーチン138が較正係数を計算し始めるブロック450。この補償ルーチン138は、擾乱磁場220を、原点を中心とする球にマップする変換行列を生成する。その較正係数を使い、磁気コンパス120が較正されるブロック460。つまり、磁場の擾乱を補償するように、将来の磁場サンプルに較正係数が適用される。別の実施形態では、結果として生じる較正係数を使い、磁気コンパスの方向が計算される。0031一実施形態では、表示デバイス110は、較正係数が決められたことを指示するメッセージを表示し、その較正係数を使用すべきかどうかについてユーザに問い合わせる。その較正係数を使用すべきであるとユーザが入力する場合、デバイス110は、その較正係数をメモリ104などのメモリに書き込む。0032方法400の一実装形態では、ユーザによるどんな介入もなしに、サンプルが自律的に採取される。別の実施形態では、ユーザはいつでも較正ルーチン134を中断することができる。さらに別の実施形態では、デバイス100は、較正ルーチン134の進捗に関するメッセージを表示しない。一実施形態では、この方法400は、磁気コンパス120が別のデバイス100上に装着されるたびに、または磁気擾乱の発生源がデバイス100に追加され、もしくはデバイス100から除去されるたびに完了する。0033本明細書に記載した諸実施形態は、これだけに限定されないが、ナビゲーション、ポインティングアプリケーション、および銃が装備される用途を含む、磁気コンパスのデータを使用するどんな用途にも適用される。本明細書に示した諸実施形態は、必要とされるユーザ入力の数を減らし、より少ないデータ点が記憶されるので、データを記憶するために必要なメモリを減らす。ハンドヘルド用途など、メモリに余裕がなく、ユーザ入力が厄介かつ複雑であり得る埋め込み用途において、磁気コンパス較正の一実施形態が使用される。3D磁場の幅広いスパンを確保する、データ収集を自動化するためのアルゴリズムが開発される。0034特許請求の範囲によって定義する本発明のいくつかの実施形態について記載してきた。それでも、特許請求する本発明の趣旨および範囲から逸脱することなく、記載した諸実施形態に対して様々な修正を加えてもよいことが理解されよう。よって、他の実施形態も特許請求の範囲に記載の範囲に含まれる。"