(57)【特許請求の範囲】
【請求項１】
磁気センサのセンサ出力の基準点を求めるキャリブレーションプログラムであって、コンピュータに、前記磁気センサのセンサ出力を出力順に取り込み、複数のバッファに対し、並列に順次バッファの先頭からセンサ出力をバッファの格納領域に格納する手順と、各バッファに格納された少なくとも４つのセンサ出力を用いて、三次元空間に少なくとも２つの三角形を前記バッファ毎に作成する手順と、前記バッファ毎に前記三角形のそれぞれの外接円を求める手順と、前記バッファ毎にそれぞれの外接円の中心を通る法線ベクトルの交点である仮想球の中心を求めて、前記仮想球の中心群を平均化することにより前記基準点を求める手順と、を実行させるためのキャリブレーションプログラム。
【請求項２】
前記少なくとも４つのセンサ出力は、各センサ出力間の距離が予め定められた距離以上であること、求められた前記仮想球の中心位置からの各センサ出力までの距離が予め定められた範囲内であること、及び前記少なくとも２つの三角形の平面角度が９０°を中心として予め定められた範囲(△θ)以内であることを満足するように求められることを特徴とする請求項１記載のキャリブレーションプログラム。
【請求項３】
磁気センサを有するコンパスモジュールと、前記磁気センサのセンサ出力を用いて磁気センサのセンサ出力の基準点を求める請求項１又は請求項２記載のキャリブレーションプログラム及び前記磁気センサのセンサ出力を用いて方位を求める方位算出プログラムを備えた制御手段と、を具備することを特徴とする電子コンパス。
【請求項４】
前記制御手段は、前記少なくとも４つのセンサ出力を格納できるバッファを複数有し、前記磁気センサからのセンサ出力を所定の条件に基づいて前記複数のバッファに格納できるか判定することを特徴とする請求項３記載の電子コンパス。
【請求項５】
前記制御手段は、前記磁気センサの環境変化に応じて自動的に前記キャリブレーションプログラムを起動することを特徴とする請求項３又は請求項４記載の電子コンパス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地磁気を検出する磁気センサの出力を校正するためのキャリブレーションプログラム及びそれを備えた電子コンパスに関する。
【背景技術】
【０００２】
電子コンパスは、磁気センサの出力を用いて基準方向から方位角を算出するデバイスである。この電子コンパスは、携帯電話などの携帯機器に搭載されるので、携帯機器内の周辺部品の着磁の影響で、正確に方位を算出されないことがある。すなわち、磁気センサが、地磁気に相当する出力のみを発生する場合には方位を正確に求めることができるが、磁気センサの周辺部品などが着磁していると、磁気センサの出力にオフセットが加わり、地磁気量に相当する出力を得ることができなくなる。【０００３】
この磁気センサの出力のオフセットを補正する方法として、電子コンパスを搭載した機器をＸ軸方向、Ｙ軸方向、Ｚ軸方向にそれぞれ回転させ、その出力の最大値と最小値の平均を算出してオフセットを補正する方法がある（特許文献１）。
【特許文献１】特開２００５−２６５４１４号公報（従来技術）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来のオフセット補正方法においては、Ｘ軸、Ｙ軸、Ｚ軸に対してそれぞれ回転させたときの多くのプロットからそれぞれの軸の出力の最大値、最小値を求めるので、演算量が相当多くなり、ＣＰＵの負荷が大きいという問題がある。また、ユーザがＸ軸、Ｙ軸、Ｚ軸の各方向に機器を回転させる必要があるので、オフセット補正操作が煩雑であるという問題がある。【０００５】
本発明の目的は、演算量が少なく、しかもユーザに意識させずに磁気センサの出力を校正することができるキャリブレーションプログラム及び電子コンパスを提供することである。
【課題を解決するための手段】
【０００６】
本発明のキャリブレーションプログラムは、磁気センサのセンサ出力の基準点を求めるキャリブレーションプログラムであって、コンピュータに、前記磁気センサのセンサ出力を出力順に取り込み、複数のバッファに対し、並列に順次バッファの先頭からセンサ出力をバッファの格納領域に格納する手順と、各バッファに格納された少なくとも４つのセンサ出力を用いて、三次元空間に少なくとも２つの三角形を前記バッファ毎に作成する手順と、前記バッファ毎に前記三角形のそれぞれの外接円を求める手順と、前記バッファ毎にそれぞれの外接円の中心を通る法線ベクトルの交点である仮想球の中心を求めて、前記仮想球の中心群を平均化することにより前記基準点を求める手順と、を実行させることを特徴とする。
【０００７】
このプログラムによれば、少ない演算量で磁気センサ出力の基準点（地磁気ベクトルの原点）を求めることができ、オフセット補正を行うことができる。また、前記基準点を求めるための検出データは、コンパスモジュール１１を搭載した機器を±３０°傾けるだけで得ることができるので、ユーザに意識させずに磁気センサの出力を校正することができる。【０００９】
本発明のキャリブレーションプログラムにおいては、前記少なくとも４つのセンサ出力は、各センサ出力間の距離が予め定められた距離以上であること、求められた前記仮想球の中心位置からの各センサ出力までの距離が予め定められた範囲内であること、及び前記少なくとも２つの三角形の平面角度が９０°を中心として予め定められた範囲(△θ)以内であることを満足するように求められることが好ましい。
【００１０】
本発明の電子コンパスは、磁気センサを有するコンパスモジュールと、前記磁気センサのセンサ出力を用いて磁気センサのセンサ出力の基準点を求める上記キャリブレーションプログラム及び前記磁気センサのセンサ出力を用いて方位を求める方位算出プログラムを備えた制御手段と、を具備することを特徴とする。
【００１１】
この構成によれば、少ない演算量で磁気センサ出力の基準点（地磁気ベクトルの原点）を求めることができ、オフセット補正を行うことができる。また、前記基準点を求めるための検出データは、コンパスモジュール１１を搭載した機器を±３０°程度傾けるだけで得ることができるので、ユーザに意識させずに磁気センサの出力を校正して方位を求めることができる。【００１２】
本発明の電子コンパスにおいては、前記制御手段は、前記少なくとも４つのセンサ出力を格納できるバッファを複数有し、前記磁気センサからのセンサ出力を所定の条件に基づいて前記複数のバッファに格納できるか判定することが好ましい。
【００１３】
本発明の電子コンパスにおいては、前記制御手段は、前記磁気センサの環境変化に応じて自動的に前記キャリブレーションプログラムを起動することが好ましい。
【図面の簡単な説明】
【００１４】
【図１】本発明の実施の形態に係る電子コンパスの概略構成を示すブロック図である。
【図２】（ａ）〜（ｄ）は、本発明の実施の形態に係るキャリブレーションの原理を説明するための図である。
【図３】４点を収集する際の手順を説明するためのフロー図である。
【図４】図３に示す手順による４点の収集を説明するための概念図である。
【図５】Ｎ組の４点をバッファ（０）〜バッファ（Ｎ−１）に収集する手順を示すフロー図である。
【図６】Ｎ組の４点をバッファ（０）〜バッファ（Ｎ−１）に収集する手順を示すフロー図である。
【図７】図５及び図６に示す手順による複数組の４点の収集を説明するための概念図である。
【図８】複数組の４点の収集の際のバッファ格納状態を説明するための図である。
【図９】仮想球中心の平均化における密集度を説明するための図である。
【図１０】本発明の実施の形態に係るキャリブレーションプログラムを用いたキャリブレーション方法を説明するためのフロー図である。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態について添付図面を参照して詳細に説明する。
図１は、本発明の実施の形態に係る電子コンパスの概略構成を示すブロック図である。図１に示す電子コンパス１は、コンパスモジュール１１と、制御部１２とから主に構成されている。コンパスモジュール１１は、磁気センサ部１１１を有している。また、制御部１２は、磁気センサ部１１１の出力を用いて方位を求める方位算出プログラム１２１と、磁気センサ部１１１の出力を用いて磁気センサの出力の基準点を求めるキャリブレーションプログラム１２２とを有する。また、制御部１２は、少なくとも４つの出力を格納できる複数のバッファを有する。【００１６】
コンパスモジュール１１の磁気センサ部１１１における磁気センサは、磁気検出用に少なくとも３軸に対応するものが用いられる。磁気センサを構成するセンサ素子の種類については特に制限はない。例えば、センサ素子としては、ＧＭＲ（Giant MagnetoResistance）、ＡＭＲ（Anisotropic MagnetoResistance）、ＴＭＲ（Tunnel MagnetoResistance）などの磁気抵抗効果素子でも良く、ホール素子でも良い。また、コンパスモジュール１１には、磁気センサ部１１１に電圧や磁界を印加するための処理部や磁気センサ部１１１からのアナログ信号をディジタル信号に変換する処理部などが含まれる。【００１７】
制御部１２は、コンパスモジュール１１を駆動するドライバソフトウェアとして少なくとも方位算出プログラム１２１と、キャリブレーションプログラム１２２とを有する。方位算出プログラム１２１については、コンパスモジュール１１からの磁気検出情報に基づいて基準方向に対する方位角を求めることができればその方法については特に制限はない。【００１８】
キャリブレーションプログラム１２２は、磁気センサの出力の基準点を求めるプログラムである。コンパスモジュールが搭載された機器の近傍に着磁された部品が存在すると、磁気センサ部１１１からの出力にオフセットが加わって正確な磁気検出情報が得られない。すなわち、このような状況下であると、地磁気ベクトルの磁気センサ出力に対する関係が不明になるので、キャリブレーションプログラム１２２により磁気センサの出力の基準点（地磁気ベクトルの原点）を求める（オフセット補正）。【００１９】
キャリブレーションプログラム１２２は、コンピュータにより実行可能であり、磁気センサの出力の基準点を求めるキャリブレーションプログラムであって、三次元空間において前記磁気センサの少なくとも４つの出力を用いて少なくとも２つの三角形を作成する第１手順と、前記三角形のそれぞれの外接円を求める第２手順と、それぞれの外接円の中心を通る法線ベクトルの交点を求めて前記基準点とする第３手順と、を含む。【００２０】
図２（ａ）〜（ｄ）は、本発明の実施の形態に係るキャリブレーションの原理を説明するための図である。なお、図２における仮想球は、求める磁気センサの出力の基準点を中心とする球体であり、仮想球に記載されたＸ軸、Ｙ軸、Ｚ軸の交点と、球体の中心との間の距離がオフセットに相当する。したがって、以下の手順により、オフセットが加わった状態の磁気センサ出力の基準点（地磁気ベクトルの原点）を求める。【００２１】
第１手順においては、図２（ａ）に示すように、三次元空間における磁気センサ出力を求める。この磁気センサ出力は、ユーザがコンパスモジュール１１を搭載した機器を動かした際に磁気センサ部１１１において検出される検出データである。この検出データは、後述する２つの三角形を作成するために少なくとも４点必要である。そして、図２（ｂ）に示すように、第１手順で求めた少なくとも４点の検出データを用いて三角形２１，２２を作成する。なお、検出データは、コンパスモジュール１１を搭載した機器を±３０°程度傾けるだけで得ることができる。【００２２】
第２手順においては、図２（ｃ）に示すように、三角形２１，２２のそれぞれの外接円２３，２４を求める。図２（ｃ）において、外接円２３は三角形２１の外接円であり、外接円２４は三角形２２の外接円である。それぞれの外接円２３，２４を求めるのは、前記仮想球の切断面を得るためである。【００２３】
第３手順においては、図２（ｄ）に示すように、それぞれの外接円２３，２４の中心を通る法線ベクトル２５，２６の交点を求めて基準点とする。法線ベクトル２５は外接円２３の法線ベクトルであり、法線ベクトル２６は外接円２４の法線ベクトルである。前述したように、それぞれの外接円２３，２４は仮想球の切断面であり、この切断面の垂線である法線ベクトル２５，２６は仮想球の中心を通る。したがって、それぞれの法線ベクトル２５，２６の交点は仮想球の中心となる。このようにして、仮想球の中心である磁気センサ出力の基準点（地磁気ベクトルの原点）を求める。【００２４】
このように、本実施の形態に係るキャリブレーションプログラムは、少ない演算量で磁気センサ出力の基準点（地磁気ベクトルの原点）を求めることができ、オフセット補正を行うことができる。また、本実施の形態においては、前記基準点を求めるための検出データは、コンパスモジュール１１を搭載した機器を±３０°程度傾けるだけで得ることができるので、ユーザに意識させずに磁気センサの出力を校正することができる。【００２５】
本発明のキャリブレーションプログラムを備えた電子コンパスにおいては、コンパスモジュールが置かれる環境により、例えば温度変化などにより、センサ出力が変動することが考えられる。この場合、電子コンパスにおいて、環境変化による変動を自動的に校正することができるように設定することが好ましい。この場合においては、前述したキャリブレーションプログラムで求められた仮想球の半径（地磁気ベクトルの大きさ）を監視し、地磁気ベクトルが変動したことを検知して、キャリブレーションプログラムを起動させる。例えば、地磁気ベクトルの大きさが数十％変動するかどうかを閾値判定し、その閾値を超えたときにキャリブレーションプログラムを起動させる。このような設定にすることにより、ユーザが意識せずに自動的にキャリブレーションを行うことができ、電子コンパスにおいて常に正確な方位算出を行うことができる。【００２６】
本発明のキャリブレーションプログラムにおいては、２つの三角形を作成するために少なくとも４点を収集する。この４点の収集方法においては、各点間の距離が予め定められた距離以上であること、及び２つの三角形の平面角度が９０°を中心として予め定められた範囲（Δθ）以内であること、の２つの条件を考慮する。【００２７】
図３は、４点を収集する際の手順を説明するためのフロー図である。また、図４は、図３に示す手順による４点の収集を説明するための概念図である。図３及び図４において、任意のセンサ出力値をＰNEWとし、収集する４点のセンサ出力値をＰA，ＰB，ＰC，ＰDとする。図３に示すように、まず、１点目の収集行ってそのセンサ出力値ＰNEWをＰAとする（ＳＴ１１）。次いで、２点目の収集を行ってそのセンサ出力値ＰNEWがＰAと規定距離以上離れているかどうかを判断し（ＳＴ１２）、規定距離以上離れていれば、そのセンサ出力値ＰNEWをＰBとする（ＳＴ１３）。【００２８】
次いで、３点目の収集を行ってそのセンサ出力値ＰNEWがＰAと規定距離以上離れているか、及びＰNEWがＰBと規定距離以上離れているかどうかを判断し（ＳＴ１４）、すべて規定距離以上離れていれば、そのセンサ出力値ＰNEWをＰCとする（ＳＴ１５）。次いで、４点目の収集を行ってそのセンサ出力値ＰNEWがＰAと規定距離以上離れているか、ＰNEWがＰBと規定距離以上離れているか、及びＰNEWがＰCと規定距離以上離れているかどうかを判断し（ＳＴ１６）、すべてが規定距離以上離れていれば、さらに、２つの三角形２１，２２の平面角度（２つの三角形の面のなす角）が９０°±Δθの範囲内であるかどうかを判断する（ＳＴ１７）。そして、平面角度が９０°±Δθの範囲内であれば、そのセンサ出力値ＰNEWをＰDとする（ＳＴ１８）。【００２９】
このような方法においては、ランダムなセンサ出力から上記条件に合致する４点を収集するため、電子コンパスを操作するユーザに対して規定の動作を行わせる必要がなく、キャリブレーションを実行することができる。【００３０】
実際には、電子回路から発生するノイズや、ＡＤ変換などの精度により、磁気センサの出力に誤差が生じる。そこで、このような誤差を除外し、仮想球の中心（基準点）を正確に求めるために、上記のような４点の組を複数収集し、それぞれの４点の組から求められた仮想球の中心群を平均化することが望ましい。この平均化においては、誤差が大きいと想定される密集度の低い仮想球中心群を除外し、密集度の高い仮想球中心群だけを平均化する。【００３１】
この複数組の４点の収集方法においては、各点間の距離が予め定められた距離以上であること、求められた仮想球の中心位置からの各点ＰA，ＰB，ＰC，ＰDまでの距離が予め定められた範囲内であること、及び三角形の平面角度が９０°を中心として予め定められた範囲（Δθ）以内であること、の３つの条件を考慮する。【００３２】
複数組の４点を収集する場合には、各組の４点をすべて独立し、任意のプロット点が複数組で共有されないようにする。すなわち、プロットする点の個数は「４点の組数×４」となる。この場合、複数の４点収集用バッファを用意し、上述した図３に示す手順にしたがってセンサ出力を各バッファに格納する。なお、バッファを均等に巡回するために、前回格納を成功した次のバッファからプロット点を格納する。【００３３】
図５及び図６は、Ｎ組の４点をバッファ（０）〜バッファ（Ｎ−１）に収集する手順を示すフロー図である。なお、この手順を実行する前に、バッファインデクス（ｉ）を０初期化しておく。【００３４】
図５に示すように、バッファ（ｉ）で４点収集が完了しているかどうか判断し（ＳＴ２１）、４点収集が完了してればバッファインデクスを更新し（ＳＴ２３）、４点収集が完了していなければ上記図３に示す手順で４点収集を行う（ＳＴ２２）。次いで、４点収集により得られたセンサ出力のバッファへの格納が完了しているかどうかを判断し（ＳＴ２４）、格納が完了していればバッファインデクスを更新する（ＳＴ２３）。このような処理をＮ回繰り返す。【００３５】
バッファインデクスの更新においては、図６に示すように、バッファ番号ｉを１インクリメントし（ＳＴ３１）、１インクリメントした数がＮ以上であるかどうかを判断し（ＳＴ３２）、１インクリメントした数がＮ以上であればバッファ番号ｉを初期化する（０にする）（ＳＴ３３）。【００３６】
図７は、図５及び図６に示す手順による複数組の４点の収集を説明するための概念図である。また、図８は、複数組の４点の収集の際のバッファ格納状態を説明するための図である。【００３７】
例えば、センサ出力が図７に示すような軌跡を示し、その中での多数のプロット点群から複数組の４点を収集する場合について説明する。ここでは、５組の４点を収集する場合について説明する。まず、予め準備した４点を格納する複数のバッファにつて、図８（ａ）に示すように、最初のプロット点は無条件に格納する。すなわち、最初の５つのプロット点（ＰA1，ＰA2，ＰA3，ＰA4，ＰA5）は、各々のバッファに第１点として格納される。【００３８】
次に収集されたプロット点（ＰA6）について各バッファへの格納を試みる際には、そのプロット点（ＰA6）を格納するバッファを検索する。その検索順は、直前のプロット点を格納したバッファの次のバッファから行う。ここでは、直前のプロット点（ＰA5）をバッファ５に格納しているため、バッファ１から格納を試みる。プロット点（ＰA6）は、各バッファの第１点（ＰA1，ＰA2，ＰA3，ＰA4，ＰA5）からの距離が短いため、上記条件を満足しないので破棄される。プロット点（ＰA7）についても同様の条件で破棄される。【００３９】
次に収集されたプロット点（ＰB1）については、バッファ１の第１点（ＰA1）と規定距離以上離れているため、図８（ｂ）に示すように、バッファ１の第２点として格納される。同様に、プロット点（ＰB2〜ＰB5）及びプロット点（ＰC1〜ＰC5）についても、図８（ｃ）に示すように、距離条件が満たされるバッファヘ第２点〜第３点として順次される。また、各バッファの第４点については、距離条件に加えて、２つの三角形の平面角度条件がチェックされ、条件が満たされれば、図８（ｄ）に示すように格納される。【００４０】
このような複数のバッファ（ここではバッファ１〜５）に対するプロット点（センサ出力）の格納は、個々のバッファに対して一組のプロット点（ここでは４つのプロット点）がすべて格納されてから次のバッファに対して格納する方式ではなく、上記条件を満足する中でプロット点を得られた順に逐次バッファに対して格納する方式で行う。すなわち、図８（ｂ），（ｃ）に示すように、一つのバッファにまだ格納領域が存在する状態で他のバッファに対して格納が行われる。このように、得られたプロット点を全てのバッファに対して上記条件を判断して順次格納することにより、上記条件を満たす４点のプロット点が一組集まってから次のプロット点の収集を行う場合と比べて、より少ない収集回数で複数組のプロット点を収集することが可能となり、より短い時間でユーザに意識させることなくキャリブレーションを完了することが出来る。このような複数のバッファに対するプロット点の格納は、制御部１２により制御される。【００４１】
なお、本実施の形態においては、各バッファに対して均等に第１点〜第４点が順次格納されている場合について説明しているが、各バッファは固有の条件（距離や平面角度）によってプロット点の格納を行うため、各バッファでのプロット点充足率がばらついても良い。例えば、ユーザが装置を回転させるなどのキャリブレーションのための特別な操作を行わない場合には、図７において破線のような軌跡をたどる場合がある。この場合であっても、点ＰＥではバッファ１に格納は出来ないが、バッファ５の格納条件を満たすことが出来る。このように、全てのバッファに対して条件を判断して順次格納することにより、センサによる軌跡が広い範囲に広がらない場合においても効率よくデータ収集を行うことが可能となる。【００４２】
このようにして得られた複数組の４点から、各々仮想球の中心を算出し、これを平均化することにより本来の仮想球中心を求める。仮想球中心の平均化においては、複数の仮想球中心群から、密集度の高い部分だけを平均化する。例えば、図９に示すように、５つの球中心（Ｃ1〜Ｃ5）が算出された場合、密集度の高い部分（Ｃ1〜Ｃ3）の３つの仮想球中心を平均化し、Ｃ4，Ｃ5は、ノイズが大きいとみなして除外する。このように仮想球中心を求めることにより、ノイズが小さい４点の出力の組からのみ仮想球中心を求めることが出来る。このため、複数の仮想球中心を単純平均する場合のみならず、多数の出力から直接行列演算を行って中心を求める方法と比較してもノイズの影響を軽減して精度よく仮想球を求めることが可能となる。【００４３】
密集度の高さは、まず、各仮想球中心において、自位置（Ｃn）から他の仮想球中心への距離の総和（Ｌn）（例えば、Ｃ1の場合の各距離（Ｃ1〜Ｃ2，Ｃ1〜Ｃ3，Ｃ1〜Ｃ4，Ｃ1〜Ｃ5）の総和（Ｌ1））を求め、距離総和の平均（ＬAVE＝（Ｌ1＋Ｌ2＋Ｌ3＋Ｌ4＋Ｌ5）／５）を求め、Ｌnが、距離総和の平均（ＬAVE）より小さいか、等しい場合に、密集度の高い部分の仮想球中心とみなす。【００４４】
次に、上述した電子コンパスにおけるキャリブレーションの方法について説明する。図１０は、本発明の実施の形態に係るキャリブレーションプログラムを用いたキャリブレーション方法を説明するためのフロー図である。【００４５】
まず、電子コンパス１を起動させると（ＳＴ４１）、環境変化があるかどうか、すなわちセンサドリフトが起こっているかどうかを判断する（ＳＴ４２）。ここでは、電子コンパス１が最初に起動されたときには、センサドリフトは起こっていない動作を行う。センサドリフトが起こっていなければ、制御部１２のキャリブレーションプログラム１２２が起動する（ＳＴ４３）。【００４６】
次いで、コンパスモジュール１１における磁気センサ部１１１でキャリブレーション用の少なくとも４点の検出データ（磁気センサ出力）を得る。この場合、検出データを得るためには、ユーザがコンパスモジュール１１を搭載した機器が所定量動くことが必要であるので、例えば機器が所定距離だけ移動したかどうかを判断する（ＳＴ４４）。この判断は、例えば閾値判定などの方法により行う。機器が所定距離だけ移動していれば、４点の検出データを抽出し（ＳＴ４５）、その検出データを用いてキャリブレーションプログラムにより磁気センサの出力の基準点を求める。【００４７】
すなわち、４つの磁気センサ出力を用いて少なくとも２つの三角形２１，２２を作成する（ＳＴ４６）。次いで、これらの三角形２１，２２のそれぞれの外接円２３，２４を求める（ＳＴ４７）。さらに、それぞれの外接円（２３，２４）の中心を通る法線ベクトル（２５，２６）の交点を求めて基準点とする（ＳＴ４８）。求められた基準点は、地磁気ベクトルの原点となるので、この基準点を用いて方位算出プログラム１２１により方位を求める。【００４８】
電子コンパス１の環境変化により、センサドリフトが起こると（ＳＴ４２）、キャリブレーションプログラム１２２で求められた地磁気ベクトルの大きさ（仮想球の半径）が所定量変動したかどうかを判断する（ＳＴ４９）。そして、地磁気ベクトルの大きさが所定量変動したときには、再キャリブレーションが必要であると判断して、自動的に再度キャリブレーションを行う（ＳＴ４３〜ＳＴ４８）。【００４９】
このように、本発明の電子コンパスにおいては、少ない演算量で磁気センサ出力の基準点（地磁気ベクトルの原点）を求めることができ、オフセット補正を行うことができる。また、前記基準点を求めるための検出データは、コンパスモジュールを搭載した機器を±３０°程度傾けるだけで得ることができるので、ユーザに意識させずに磁気センサの出力を校正して方位を求めることができる。さらに、電子コンパスの環境変化に応じて自動的に再校正を行うので、ユーザに意識させることなく、常に正確な方位算出を行うことができる。【００５０】
本発明によれば、三次元空間において前記磁気センサの少なくとも４つの出力を用いて少なくとも２つの三角形を作成し、前記三角形のそれぞれの外接円を求め、それぞれの外接円の中心を通る法線ベクトルの交点を求めて前記基準点とするので、演算量が少なく、しかもユーザに意識させずに磁気センサの出力を校正することができるキャリブレーションプログラム及び電子コンパスを提供することができる。【００５１】
本発明は上記実施の形態に限定されず、種々変更して実施することが可能である。例えば、上記実施の形態では、電子コンパスにおいてコンパスモジュールと制御部とが個別に構成されている場合について説明しているが、本発明においては、電子コンパスにおいてコンパスモジュールと制御部とが一体で構成されていても良い。本発明の目的の範囲を逸脱しない限りにおいて適宜変更することが可能である。
【図１】
0004538071.tif 000002
【図２】
0004538071.tif 000003
【図３】
0004538071.tif 000004
【図４】
0004538071.tif 000005
【図５】
0004538071.tif 000006
【図６】
0004538071.tif 000007
【図７】
0004538071.tif 000008
【図８】
0004538071.tif 000009
【図９】
0004538071.tif 000010
【図１０】
0004538071.tif 000011