(57)【特許請求の範囲】
【請求項１】
互いに直交するＸ軸とＹ軸およびＺ軸が決められた磁気検知部と、演算部とを有し、
前記磁気検知部に、Ｘ軸方向の磁界の強度を検知するＸ軸センサと、Ｙ軸方向の磁界の強度を検知するＹ軸センサ、およびＺ軸方向の磁界の強度を検知するＺ軸センサが設けられ、
前記演算部では、前記Ｘ軸センサと前記Ｙ軸センサおよび前記Ｚ軸センサからの検知出力に基づいて、磁気ベクトルの向きが、三次元座標に基準原点を有する球面座標上の座標点データとして求められ、
第１の基準原点Ｏａと第１の半径Ｒａを有する球面座標Ｇａから所定距離以上外れた複数のシフト座標点データＤｘ，Ｄｙ，Ｄｚが得られたときに、
（ａ）第１の基準原点Ｏａと２つのシフト座標点データＤｘ，Ｄｙとを含む平面において、２つのシフト座標点データＤｘ，Ｄｙの双方から第１の原点Ｏａに向けて第１の半径Ｒａだけ離れた仮想原点Ｉ１を求め、他の組み合わせの２つのシフト座標点データＤｙ，Ｄｚから同様にして仮想原点Ｉ２を求め、２つの仮想原点Ｉ１，Ｉ２の間の第１の距離ｄ１を求め、
（ｂ）第１の半径Ｒａよりも所定寸法だけ長い第２の半径（Ｒａ＋１）を用いて、前記（ａ）と同様に２つの仮想原点Ｉ３，Ｉ４を求めて、２つの仮想原点Ｉ３，Ｉ４の間の第２の距離ｄ２を求め、前記第２の距離ｄ２が前記第１の距離ｄ１よりも短かったら、新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも長いと判断し、前記第２の距離ｄ２が前記第１の距離ｄ１よりも長かったら、新たな球面座標の半径Ｒｂが第１の半径Ｒａよりも短いと判断し、
（ｃ）または、第１の半径Ｒａよりも所定寸法だけ短い第２の半径（Ｒａ−１）を用いて、前記（ａ）と同様に２つの仮想原点Ｉ５，Ｉ６を求めて、２つの仮想原点Ｉ５，Ｉ６の間の第２の距離ｄ２を求め、前記第２の距離ｄ２が前記第１の距離ｄ１よりも短かったら、新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも短いと判断し、前記第２の距離ｄ２が前記第１の距離ｄ１よりも長かったら、新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも長いと判断し、
（ｄ）前記（ｂ）または前記（ｃ）において新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも長いと判断したら、第２の半径よりも所定寸法だけ長い第３の半径を用いて前記（ｂ）の処理を行い、
（ｅ）前記（ｂ）または前記（ｃ）において新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも短いと判断したら、第２の半径よりも所定寸法だけ短い第３の半径を用いて前記（ｃ）の処理を行い、
これを繰り返して、２つの仮想原点が収束した位置を新たな球面座標Ｇｂの基準原点Ｏｂとすることを特徴とする磁界検知装置。
【請求項２】
前記（ｄ）の処理の結果、２つの仮想原点の間の距離が広がったら、そのときの２つの仮想原点の近傍、またはひとつ前の処理で得られた２つの仮想原点の近傍に新たな球面座標Ｇｂの基準原点Ｏｂを設定する請求項１記載の磁界検知装置。
【請求項３】
前記（ｅ）の処理の結果、２つの仮想原点の間の距離が広がったら、そのときの２つの仮想原点の近傍、またはひとつ前の処理で得られた２つの仮想原点の近傍に新たな球面座標Ｇｂの基準原点Ｏｂを設定する請求項１記載の磁界検知装置。
【請求項４】
前記（ａ）において、２つの仮想原点Ｉ１，Ｉ２の間の第１の距離ｄ１が所定値以下であったら、２つの仮想原点Ｉ１，Ｉ２の近傍に新たな球面座標Ｇｂの基準原点Ｏｂを設定する請求項１記載の磁界検知装置。
【請求項５】
前記（ａ）における２つの仮想原点Ｉ１，Ｉ２は、それぞれ次のようにして求められる請求項１ないし４のいずれかに記載の磁界検知装置。
（ｆ）一方のシフト座標点データＤｘと第１の基準原点Ｏａとの間に直線を引き、この直線上で一方の座標点データＤｘから第１の半径Ｒａだけ離れた収束点を求め、
（ｇ）他方のシフト座標点データＤｙと得られた収束点との間に直線を引き、この直線上で他のシフト座標点データＤｙから第１の半径Ｒａだけ離れた新たな収束点を求め、
（ｈ）一方のシフト座標点データＤｘと得られた収束点との間に直線を引き、この直線上で一方のシフト座標点データＤｘから第１の半径Ｒａだけ離れた新たな収束点を求め、
前記（ｇ）と（ｈ）を所定回数繰り返して得られる収束点を、仮想原点とする。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３方向に向けられた磁気センサの検知出力に基づいて磁気ベクトルの向きが球面座標上の座標点データとして求められる磁界検知装置に係り、特に、外部磁界などの影響で検知出力が変動しさらに磁気ベクトルの大きさが変化しても、新たな基準原点を求めることができる磁界検知装置に関する。
【背景技術】
【０００２】
互いに直交する３方向の磁界強度を検知する３軸の磁気センサを使用した磁界検知装置は、地磁気を検知する方位センサやジャイロ装置などに適用される。
【０００３】
特許文献１に記載された方位センサは、互いに直交するＸ軸とＹ軸およびＺ軸に向けて配置された磁気センサによって地磁気が検知される。３軸方向に向けられたそれぞれの磁気センサで検知された検知出力により、地磁気の方位が三次元座標上の座標点として認識される。
【０００４】
この種の磁界検知装置は、使用時に意識的に回転させて、磁気センサと地磁気ベクトルとを相対的に回転させ、地磁気ベクトルの検知出力の回転軌跡から少なくとも２つの回転円を作成し、２つの回転円の中心軸の交点を検知基準の原点とするなどのキャリブレーションが行われる。しかし、その後に作用する地磁気以外の外部磁界の影響や磁気センサの動作誤差あるいは回路に重畳するノイズなどの要因によって、磁気センサにオフセット磁界が印加されると、三次元座標上で検知基準が動いてしまい、その後の方位の検知や角速度の検知などに誤差が発生する。
【０００５】
これを防止するためには、何度もキャリブレーションをやり直すことが必要になる。しかし、使用者に頻繁にキャリブレーションを行なわせることは煩雑であり実用的ではない。
【０００６】
以下の特許文献１には、オフセットの補正方法に関する発明が開示されている。この補正方法は、地磁気ベクトルを検知して３つの座標点が得られたときに、３つの座標点から等距離の点を求め、この点を新たなキャリブレーションの検知基準点とするというものである。
【０００７】
しかし、座標点は、三次元座標上に現れるために、特許文献１に記載されたオフセットの補正方法を行なおうとすると、３つの座標点を、Ｘ−Ｙ座標とＹ−Ｚ座標およびＸ−Ｚ座標の３つの平面座標に投影し、それぞれの平面座標で投影された３つの座標点から等距離の点を求め、それぞれの平面座標で得られた等距離の点から、三次元座標上の点を求めるというきわめて複雑な演算が必要になる。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００７−１６３３８９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
本発明は上記従来の課題を解決するものであり、検知出力にオフセットが現れたときに、比較的簡単な演算によって、新たな検知基準の原点を求めることができ、しかも磁気ベクトルの絶対値が変化しても対応することができる磁界検知装置を提供することを目的としている。
【課題を解決するための手段】
【００１０】
本発明は、互いに直交するＸ軸とＹ軸およびＺ軸が決められた磁気検知部と、演算部とを有し、
前記磁気検知部に、Ｘ軸方向の磁界の強度を検知するＸ軸センサと、Ｙ軸方向の磁界の強度を検知するＹ軸センサ、およびＺ軸方向の磁界の強度を検知するＺ軸センサが設けられ、
前記演算部では、前記Ｘ軸センサと前記Ｙ軸センサおよび前記Ｚ軸センサからの検知出力に基づいて、磁気ベクトルの向きが、三次元座標に基準原点を有する球面座標上の座標点データとして求められ、
第１の基準原点Ｏａと第１の半径Ｒａを有する球面座標Ｇａから所定距離以上外れた複数のシフト座標点データＤｘ，Ｄｙ，Ｄｚが得られたときに、
（ａ）第１の基準原点Ｏａと２つのシフト座標点データＤｘ，Ｄｙとを含む平面において、２つのシフト座標点データＤｘ，Ｄｙの双方から第１の原点Ｏａに向けて第１の半径Ｒａだけ離れた仮想原点Ｉ１を求め、他の組み合わせの２つのシフト座標点データＤｙ，Ｄｚから同様にして仮想原点Ｉ２を求め、２つの仮想原点Ｉ１，Ｉ２の間の第１の距離ｄ１を求め、
（ｂ）第１の半径Ｒａよりも所定寸法だけ長い第２の半径（Ｒａ＋１）を用いて、前記（ａ）と同様に２つの仮想原点Ｉ３，Ｉ４を求めて、２つの仮想原点Ｉ３，Ｉ４の間の第２の距離ｄ２を求め、前記第２の距離ｄ２が前記第１の距離ｄ１よりも短かったら、新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも長いと判断し、前記第２の距離ｄ２が前記第１の距離ｄ１よりも長かったら、新たな球面座標の半径Ｒｂが第１の半径Ｒａよりも短いと判断し、
（ｃ）または、第１の半径Ｒａよりも所定寸法だけ短い第２の半径（Ｒａ−１）を用いて、前記（ａ）と同様に２つの仮想原点Ｉ５，Ｉ６を求めて、２つの仮想原点Ｉ５，Ｉ６の間の第２の距離ｄ２を求め、前記第２の距離ｄ２が前記第１の距離ｄ１よりも短かったら、新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも短いと判断し、前記第２の距離ｄ２が前記第１の距離ｄ１よりも長かったら、新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも長いと判断し、
（ｄ）前記（ｂ）または前記（ｃ）において新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも長いと判断したら、第２の半径よりも所定寸法だけ長い第３の半径を用いて前記（ｂ）の処理を行い、
（ｅ）前記（ｂ）または前記（ｃ）において新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも短いと判断したら、第２の半径よりも所定寸法だけ短い第３の半径を用いて前記（ｃ）の処理を行い、
これを繰り返して、２つの仮想原点が収束した位置を新たな球面座標Ｇｂの基準原点Ｏｂとすることを特徴とするものである。
【００１１】
本発明では、前記（ｄ）の処理の結果、２つの仮想原点の間の距離が広がったら、そのときの２つの仮想原点の近傍、またはひとつ前の処理で得られた２つの仮想原点の近傍に新たな球面座標Ｇｂの基準原点Ｏｂを設定する。
【００１２】
または、前記（ｅ）の処理の結果、２つの仮想原点の間の距離が広がったら、そのときの２つの仮想原点の近傍、またはひとつ前の処理で得られた２つの仮想原点の近傍に新たな球面座標Ｇｂの基準原点Ｏｂを設定する。
【００１３】
また、前記（ａ）において、２つの仮想原点Ｉ１，Ｉ２の間の第１の距離ｄ１が所定値以下であったら、２つの仮想原点Ｉ１，Ｉ２の近傍に新たな球面座標Ｇｂの基準原点Ｏｂを設定する。
【００１４】
本発明は、前記（ａ）における２つの仮想原点Ｉ１，Ｉ２を、それぞれ次のようにして求めることができる。
【００１５】
（ｆ）一方のシフト座標点データＤｘと第１の基準原点Ｏａとの間に直線を引き、この直線上で一方の座標点データＤｘから第１の半径Ｒａだけ離れた収束点を求め、
（ｇ）他方のシフト座標点データＤｙと得られた収束点との間に直線を引き、この直線上で他のシフト座標点データＤｙから第１の半径Ｒａだけ離れた新たな収束点を求め、
（ｈ）一方のシフト座標点データＤｘと得られた収束点との間に直線を引き、この直線上で一方のシフト座標点データＤｘから第１の半径Ｒａだけ離れた新たな収束点を求め、
前記（ｇ）と（ｈ）を所定回数繰り返して得られる収束点を、仮想原点とする。
【発明の効果】
【００１６】
本発明は、オフセット磁界によって球面座標の基準原点が移動したときに、比較的簡単な演算によって新たな基準原点を得ることができる。また、磁気ベクトルの絶対値が変化しても、基準原点を補正できる。
【図面の簡単な説明】
【００１７】
【図１】本発明の実施の形態の磁界検知装置の回路ブロック図、
【図２】データバッファの処理動作を示す説明図、
【図３】磁気検知部に設けられたＸ軸センサとＹ軸センサおよびＺ軸センサの説明図、
【図４】地磁気ベクトルの検知動作を示す三次元座標の説明図、
【図５】磁気ベクトルを検知する球面座標の原点の位置および半径が変化した状態を示す説明図、
【図６】基準原点の補正の第１の方法を説明する説明図、
【図７】基準原点の補正の第２の方法を説明する説明図、
【図８】仮想原点の求め方の一例を示す説明図、
【発明を実施するための形態】
【００１８】
図１に示す本発明の実施の形態の磁界検知装置１は、地磁気を検知する磁気検知部２を有している。図４に示すように、磁気検知部２は、互いに直交する基準軸であるＸ軸とＹ軸およびＺ軸が固定軸として決められている。磁界検知装置１は携帯用機器などに搭載されており、磁気検知部２は、Ｘ軸とＹ軸およびＺ軸の直交関係を維持したまま、空間内で自由に動くことができる。
【００１９】
図３に示すように、磁気検知部２には、Ｘ軸センサ３がＸ軸に沿って固定され、Ｙ軸センサ４がＹ軸に沿って固定され、Ｚ軸センサ５がＺ軸に沿って固定されている。Ｘ軸センサ３とＹ軸センサ４およびＺ軸センサ５は、いずれもＧＭＲ素子で構成されている。ＧＭＲ素子は、Ｎｉ−Ｃｏ合金やＮｉ−Ｆｅ合金などの軟磁性材料で形成された固定磁性層および自由磁性層と、固定磁性層と自由磁性層との間に挟まれた銅などの非磁性導電層とを有している。固定磁性層の下に反強磁性層が積層され、反強磁性層と固定磁性層との反強結合により、固定磁性層の磁化が固定されている。
【００２０】
Ｘ軸センサ３は、地磁気のＸ方向に向く成分を検知するものであり、固定磁性層の磁化の向きがＸ軸に沿うＰＸ方向に固定されている。自由磁性層の磁化の向きは地磁気の向きに反応する。自由磁性層の磁化の向きがＰＸ方向と平行になるとＸ軸センサ３の抵抗値が極小になり、自由磁性層の磁化の向きがＰＸ方向と逆向きになるとＸ軸センサ３の抵抗値が極大になる。また、自由磁性層の磁化の向きがＰＸ方向と直交すると、抵抗値が前記極大値と極小値との平均値となる。
【００２１】
図１に示す磁場データ検知部６では、Ｘ軸センサ３と固定抵抗とが直列に接続され、Ｘ軸センサ３と固定抵抗との直列回路に電圧が与えられており、Ｘ軸センサ３と固定抵抗との間の電圧がＸ軸の検知出力として取り出される。Ｘ軸センサ３にＸ方向に向く磁界が与えられていないとき、またはＰＸに対して直交する磁界が与えられているときに、Ｘ軸の検知出力が中点電位となる。
【００２２】
磁気検知部２の全体を傾け、Ｘ軸センサ３の固定磁性層の磁化の固定方向ＰＸを地磁気ベクトルＶと同じ向きにするとＸ軸センサ３に与えられる磁界成分が極大値となる。このときのＸ軸の検知出力は、前記中点電位に対してプラス側の極大値となる。逆に、Ｘ軸センサ３の固定磁性層の磁化の固定方向ＰＸを地磁気ベクトルＶと反対に向けると、Ｘ軸センサ３に与えられる逆向きの磁界成分が極大値となる。このときのＸ軸の検知出力は、前記中点電位に対してマイナス側の極大値となる。
【００２３】
Ｙ軸センサ４とＺ軸センサ５も、それぞれ固定抵抗とが直列に接続され、Ｙ軸センサ４またはＺ軸センサ５と固定抵抗との直列回路に電圧が与えられており、各センサと固定抵抗との間の電圧がＹ軸またはＺ軸の検知出力として取り出される。
【００２４】
Ｙ軸センサ４の固定磁性層の磁化の固定方向ＰＹを地磁気ベクトルＶと同じ向きにすると、Ｙ軸の検知出力は、中点電位に対してプラス側の極大値になる。Ｙ軸センサ４の固定磁性層の磁化の固定方向ＰＹを地磁気ベクトルＶと反対に向けると、Ｙ軸の検知出力は、中点電位に対してマイナス側の極大値となる。同様に、Ｚ軸センサ５の固定磁性層の磁化の固定方向ＰＺを地磁気ベクトルＶと同じ向きにすると、Ｚ軸の検知出力は、中点電位に対してプラス側の極大値になる。Ｚ軸センサ５の固定磁性層の磁化の固定方向ＰＺを地磁気ベクトルＶと反対に向けると、Ｚ軸の検知出力は、中点電位に対してマイナス側の極大値となる。
【００２５】
地磁気ベクトルＶの大きさが一定であれば、Ｘ軸センサ３とＹ軸センサ４およびＺ軸センサ５からの検知出力は、いずれもプラス側の極大値の絶対値と、マイナス側の極大値の絶対値とが同じである。
【００２６】
Ｘ軸センサ３としては、地磁気ベクトルの向きによってプラス側の検知出力とマイナス側の検知出力が得られ、プラス側の検知出力の極大値とマイナス側の検知出力の極大値とで絶対値が同じになれば、ＧＭＲ素子以外の磁気センサで構成することもできる。例えば、Ｘ軸に沿ってプラス側の磁界強度のみを検知できるホール素子またはＭＲ素子と、マイナス側の磁界強度のみを検知できるホール素子またはＭＲ素子を組み合わせて、Ｘ軸センサ３として使用してもよい。これは、Ｙ軸センサ４とＺ軸センサ５においても同じである。
【００２７】
図１に示すように、磁場データ検知部６で検知されたＸ軸とＹ軸およびＺ軸の検知出力は、演算部１０に与えられる。演算部１０は、Ａ／Ｄ変換部とＣＰＵおよびクロック回路などから構成されている。演算部１０のクロック回路の計測時間に応じて、磁場データ検知部６で検知されたＸ軸とＹ軸およびＺ軸の検知出力が、短いサイクルで間欠的にサンプリングされて演算部１０に読み出される。それぞれの検知出力は、演算部内に設けられた前記Ａ／Ｄ変換部によってディジタル値に変換される。
【００２８】
演算部１０を構成するＣＰＵにはメモリ７が接続されている。メモリ７には、演算処理のためのソフトウエアがプログラミングされて格納されている。演算部１０の演算処理は前記ソフトウエアによって実行される。
【００２９】
ディジタルデータに変換されたＸ軸の検知出力とＹ軸の検知出力およびＺ軸の検知出力は、演算部１０で演算処理され、図４に示すＸ−Ｙ−Ｚの三次元座標上の座標点データＤ（ｘｂ，ｙｂ，ｚｂ）に変換されて、演算部１０に設けられたデータバッファ（バッファメモリ）１１に格納される。クロック回路と同期して短いサイクルでサンプリングされて演算された前記座標点データＤは、図２に示すデータバッファ１１の格納部１１ａに与えられる。座標点データＤが格納部１１ａに与えられる毎に、座標点データＤが格納部１１ａから１１ｍまで順に送り出され、最終段の格納部１１ｍの最も古い座標点データＤが捨てられる。磁界検知装置１が動作している間は、磁場データ検知部６から最新の座標点データＤが一定時間毎に読み出され続けてデータバッファ１１に順番に格納されていく。
【００３０】
図４に示すように、演算部１０には、Ｘ−Ｙ−Ｚの三次元座標が設定されている。演算部１０に設定されたＸ−Ｙ−Ｚの各軸は、図３に示す磁界検知装置１に固定されて設定されたＸ−Ｙ−Ｚの各軸とその向きが一致している。
【００３１】
図４に示すように、磁気検知部２が地球上のいずれかの場所に置かれると、磁気検知部２のＸ軸センサ３から検知出力ｘｂが得られ、Ｙ軸センサ４から検知出力ｙｂが得られ、Ｚ軸センサ５から検知出力ｚｂが得られる。演算部１０では、各検知出力から座標点データＤ（ｘｂ，ｙｂ，ｚｂ）が演算される。座標点データＤ（ｘｂ，ｙｂ，ｚｂ）はサンプリング周期毎に次々と得られ、データバッファ１１に順に格納されていく。
【００３２】
磁界検知装置１は、電源が投入された直後または使用開始時にキャリブレーションが行われる。キャリブレーションは、磁界検知装置１を搭載した携帯機器のディスプレイの表示などに指示され、使用者がその指示にしたがって実行する。
【００３３】
キャリブレーションは、磁界検知装置１を搭載した携帯機器などを任意の方向へ数回だけ回転させることで行われる。演算部１０では、キャリブレーションにおいて次々に得られる座標点データＤのいくつかをサンプリングする。少なくとも３個の座標点データＤを得ることで、その時点での座標点データＤの回転軌跡に一致する円を特定できる。この円が少なくとも２個求められ、それぞれの円の中心を通り且つ円を含む面に垂直な中心線が求められ、さらに中心線の交点が演算される。演算部１０では、キャリブレーションの結果として得られた前記交点が、Ｘ−Ｙ−Ｚの三次元座標の基準原点Ｏとなるように補正される。
【００３４】
図４には、キャリブレーションにより基準原点Ｏが補正された三次元座標が示されている。キャリブレーション後に、磁場データ検知部６の検知出力から演算される座標点データＤ（ｘｂ，ｙｂ，ｚｂ）は、三次元座標上の基準原点Ｏを中心とする球面座標Ｇ上の点として求められる。球面座標Ｇの半径Ｒは、Ｘ軸センサ３とＹ軸センサ４およびＺ軸センサ５の検知出力の極大値の絶対値に比例する。球面座標Ｇの半径Ｒは、地磁気ベクトルＶを検知したときの検知出力に比例して変化する。
【００３５】
図４は、キャリブレーション後の磁界検知装置１のＺ軸が重力方向に向けられたときの検知出力を示している。この場合、座標点データＤ（ｘｂ，ｙｂ，ｚｂ）と、三次元座標の基準原点Ｏを結ぶ線が地磁気ベクトルＶである。磁界検知装置１のＺ軸が重力方向に向けられていれば、地磁気ベクトルＶとＸ−Ｙ座標面との成す角度が地磁気の伏角である。またＸ−Ｙ座標のデータ（ｘｂ，ｙｂ）が地磁気と磁界検知装置１との方位角である。
【００３６】
携帯機器などに磁界検知装置１と共に加速度センサなどが搭載されて、重力の加速度の向きを検知できるものでは、キャリブレーションで基準原点Ｏが補正された三次元座標のＺ軸を重力の向きと一致させるように、ソフトウエア上で補正できる。その結果、磁界検知装置１を方位センサとして使用することができる。
【００３７】
また、磁界検知装置１をＺ軸を中心として（重力方向に向く軸を中心として）回転させると、次々とサンプリングされていく座標点データＤ（ｘｂ，ｙｂ，ｚｂ）が、Ｚ軸を中心とし且つＸ−Ｙ軸と平行な水平緯度線Ｈａに沿って移動する。水平緯度線Ｈａ上に位置する２つの座標点データの開き角度を、２つの座標点データのサンプル時間で微分することで、角速度を検出できる。
【００３８】
磁界検知装置１には、地磁気以外の外部磁界が作用しやすい。磁界検知装置１を搭載した携帯機器などが、他の電子機器に接近したり大きな金属に接近すると磁界検知装置１に作用する外部磁界が変化する。また、磁界検知装置１と共に携帯機器などに搭載されている電子回路からも磁界が与えられることがある。磁界検知装置１に外部磁界が与えられると、実際に検知される地磁気ベクトルと、先のキャリブレーションで設定された基準原点Ｏとの間にオフセットが生じる。また、それぞれの磁気センサ３，４，５の検知誤差や温度特性による感度の変動、検知回路の温度特性などによっても、実際に検知される磁気ベクトルと、先のキャリブレーションで設定された基準原点Ｏとの間にオフセットが生じることがある。
【００３９】
また、磁場データ検知部６で演算される座標点データＤと、三次元座標の基準原点Ｏとの距離、すなわち球面座標Ｇの半径も変動しやすい。この変動は、磁界検知装置１を搭載した携帯機器が屋内から屋外に移動したときのように、磁気検知部２に作用する地磁気の大きさが変化したときに発生する。あるいは、磁気センサ３，４，５の感度の温度特性などによっても発生する。
【００４０】
図５は、先のキャリブレーションで補正された第１の基準原点がＯａで示され、基準原点Ｏａを中心とする第１の半径Ｒａの第１の球面座標がＧａで示されている。またオフセット後の新たな基準原点がＯｂで示され、基準原点Ｏｂを中心とする半径Ｒｂの新たな球面座標がＧｂで示されている。基準原点がＯａからＯｂにシフトし、さらに半径Ｒａよりも半径Ｒｂは大きくなっている。
【００４１】
この場合に、新たなキャリブレーション動作を行って、三次元座標上で新たな基準原点Ｏｂの位置を特定する補正が可能である。しかし、使用者に頻繁にキャリブレーションを行わせることは実用的ではない。
【００４２】
そこで、演算部１０では、補正用のソフトウエアが実行され、オフセットされ、さらに半径が変化した新たな球面座標の基準原点が計算で求められる。
【００４３】
演算部１０で算出される座標点データＤは、図２に示すデータバッファ１１に順に格納される。演算部１０では、次々に得られる座標点データＤと、キャリブレーションで補正された第１の基準原点Ｏａとの距離が監視され、その距離が第１の半径Ｒａから所定距離以上離れていないか否か、あるいは第１の半径Ｒａに対して所定の比率以上に離れていないか否かを監視する。
【００４４】
図５に示す座標点データＤａ，Ｄｂ，Ｄｃ，・・・Ｄｍは、第１の基準原点Ｏａから大きく離れておらず、第１の球面座標Ｇａ上に位置していると判断できる。演算部１０は、座標点データＤａ，Ｄｂ，Ｄｃ，・・・Ｄｍを正常なデータとして取り扱い、これら座標点データに基づいて方位計算や角速度の計算などが行われる。
【００４５】
図５に示す座標点データＤ１，Ｄ２，Ｄ３，・・・Ｄ７は、第１の基準原点Ｏａからの距離が、第１の半径Ｒａに対して所定の距離以上に離れ、または所定の比率以上に離れている。この座標点データが所定の数以上に連続して発生したときに、演算部１０では、これらデータを、第１の球面座標Ｇａ上に位置していないデータであると判断する。本明細書ではこのデータをシフト座標点データと呼ぶ。
【００４６】
このとき、演算部１０は、座標点データＤ１，Ｄ２，Ｄ３，・・・Ｄ７から２つのシフト座標点データを１組として２組のシフト座標点データを選択する。図６と図７では、第１の組のシフト座標点データＤｘ，Ｄｙと、第２の組のシフト座標点データＤｙ，Ｄｚが選ばれており、２つの組が共通のシフト座標点データＤｙを共有している。ただし、２つの組で共通のシフト座標点データを共有していなくてもよい。
【００４７】
図６と図７に示すように、第１の基準原点Ｏａと２つのシフト座標点データＤｘ，Ｄｙとを含む平面において、２つのシフト座標点データＤｘ，Ｄｙの双方から第１の原点Ｏａに向けて第１の半径Ｒａだけ離れた仮想原点Ｉ１を求める。同様にして、他の組の２つのシフト座標点データＤｙ，Ｄｚの双方からから同様にして第１の原点Ｏａに向けて第１の半径Ｒａだけ離れた仮想原点Ｉ２を求める。
【００４８】
図８は、仮想原点Ｉ１の演算方法を示している。仮想原点Ｉ２も同様にして算出される。
【００４９】
まず、一方のシフト座標点データＤｘと第１の基準原点Ｏａとの間に直線Ｌ１を引き、直線Ｌ１上で一方の座標点データＤｘから第１の半径Ｒａだけ離れた第１の収束点Ｍ１を求める。他方のシフト座標点データＤｙと第１の収束点Ｍ１との間に直線Ｌ２を引き、直線Ｌ２上で他のシフト座標点データＤｙから第１の半径Ｒａだけ離れた第２の収束点Ｍ２を求める。次に、一方のシフト座標点データＤｘと第２の収束点Ｍ２との間に直線Ｌ３を引き、直線Ｌ３上で一方のシフト座標点データＤｘから第１の半径Ｒａだけ離れた第３の収束点Ｍ３を求める。さらに、他方のシフト座標点データＤｙと第３の収束点Ｍ３を結ぶ直線Ｌ４を引き、直線Ｌ４上で他方のシフト座標点データＤｙから第１の半径Ｒａだけ離れた第４の収束点Ｍ４を求める。
【００５０】
上記の計算を所定回数、例えば１０回程繰り返すと、収束点Ｍ１０は、第１の基準原点Ｏａと２つのシフト座標点データＤｘ，Ｄｙを含む平面内において、２つのシフト座標点データＤｘ，Ｄｙの双方から第１の半径Ｒａだけ離れた仮想原点Ｉ１に収束する。このときの収束点Ｍ１０を仮想原点Ｉ１とする。
【００５１】
他の２つの仮想原点ＤｙとＤｚを用いて上記と同じ演算を繰り返し、その収束点を仮想原点Ｉ２とする。
【００５２】
図６に示す演算方法では、前記仮想原点Ｉ１，Ｉ２を求めた後に、第１の半径Ｒａよりも所定寸法だけ長い第２の半径（Ｒａ＋１）を設定し、図８に示したのと同じ演算を行って、２つの仮想原点Ｉ３，Ｉ４を求める。先に演算された２つの仮想原点Ｉ１，Ｉ２の直線距離を第１の距離ｄ１とし、後で演算された２つの仮想原点Ｉ３，Ｉ４の直線距離を第２の距離ｄ２とする。前記第２の距離ｄ２が前記第１の距離ｄ１よりも短かったら、新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも長いと判断し、前記第２の距離ｄ２が前記第１の距離ｄ１よりも長かったら、新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも短いと判断する。
【００５３】
新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも長いと判断したら、第２の半径よりもさらに所定寸法だけ長い第３の半径（Ｒａ＋２）を用いて、さらに仮想原点を求めて、２つの仮想原点の直線距離を第３の距離として求める。第３の距離と第２の距離ｄ２を比較し、新たな球面座標Ｇｂの半径Ｒｂが第２の半径（Ｒａ＋１）よりも長いか否かを判断する。新たな球面座標Ｇの半径Ｒｂがさらに長いと判断したら、さらに半径を所定寸法だけ長くして次の２つの可動原点を求める。
【００５４】
一方において、球面座標Ｇｂの半径Ｒｂが現在計算で使用されている半径よりも短いと判断したら、その半径よりも所定寸法だけ短い半径を用いて、２つの仮想原点を求め、その仮想原点の距離を、その前に得られた２つの仮想原点の距離と比較する。
【００５５】
これを繰り返して、２つの仮想原点が収束した位置を新たな球面座標Ｇｂの基準原点Ｏｂとする。例えば、前記演算を所定回数（例えば１０回程度）繰り返して、その時点で得られている２つの仮想原点の近傍で、例えば２つの仮想原点の中間点を新たな球面座標Ｇｂの基準原点Ｏｂとする。
【００５６】
前記演算では、算出したときの半径よりも新たな球面座標Ｇｂの半径Ｒｂが長いと判断されると、さらに所定寸法だけ長い半径が計算に使用されて次の２つの仮想原点が計算される。これを繰り返すと、２つの仮想原点の間の距離が段階的に狭まっていくが、ある時点で２つの仮想原点の距離が広がる。このとき、２つの仮想原点が、新たな球面座標Ｇｂの基準原点Ｏｂを追い越したことになる。この場合は、基準原点Ｏｂを追い越した２つの仮想原点の近傍で、例えば２つの仮想原点の中間点を新たな座標球面Ｇｂの基準原点Ｏｂに設定する。または、基準原点Ｏｂを追い越した２つの仮想原点よりもひとつ前の処理で得られた２つの仮想原点の近傍で、立てばその２つの仮想原点の中間点を新たな球面座標Ｇｂの基準原点Ｏｂに設定する。
【００５７】
逆に、前記演算において、算出したときの半径よりも新たな球面座標Ｇｂの半径Ｒｂが短いと判断されると、さらに所定寸法だけ短い半径が計算に使用されて次の２つの仮想原点が計算される。この場合も、演算を繰り返すことで２つの仮想原点の間の距離が段階的に狭まっていくが、ある時点で２つの仮想原点の距離が広がる。このときも、新たな球面座標Ｇｂの基準原点Ｏｂを追い越した２つの仮想原点の近傍で、例えばその中間点が新たな座標球面Ｇｂの基準原点Ｏｂとして設定される。または、ひとつ前の処理で得られた２つの仮想原点の近傍で、例えばその２つの仮想原点の中間点が新たな球面座標Ｇｂの基準原点Ｏｂに設定される。
【００５８】
図６に示す演算方法では、仮想原点Ｉ１，Ｉ２が得られたときに、第１の半径Ｒａよりも所定寸法だけ長い半径（Ｒａ＋１）を第２の半径として次の可動原点Ｉ３，Ｉ４を求めたが、図７に示す演算方法では、仮想原点Ｉ１，Ｉ２が得られた後に、第１の半径Ｒａよりも所定寸法だけ短い第２の半径（Ｒａ−１）を用いて、２つの仮想原点Ｉ５，Ｉ６を求めてている。この場合も、２つの仮想原点Ｉ５，Ｉ６の間の第２の距離ｄ２を求め、前記第２の距離ｄ２が前記第１の距離ｄ１よりも短かったら、新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも短いと判断し、前記第２の距離ｄ２が前記第１の距離ｄ１よりも長かったら、新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも長いと判断する。
【００５９】
新たな球面座標Ｇｂの半径Ｒｂが第１の半径Ｒａよりも短いと判断したら、さらに所定距離だけ短い半径を計算に用いて新たな２つの仮想原点を求め、前記第２の距離ｄ２が前記第１の距離ｄ１よりも長いと判断したら、さらに所定距離だけ長い半径を計算に用いて新たな２つの仮想原点を求める。そして、前記演算を所定回数（例えば１０回程度）繰り返して、その時点で得られている２つの仮想原点の中間点を新たな球面座標Ｇｂの基準原点Ｏｂとする。または、２つの仮想原点の距離が広がった時点で、そのときの２つの仮想原点の中間点を新たな座標球面Ｇｂの基準原点Ｏｂに設定する。または、ひとつ前の処理で得られた２つの仮想原点中間点を新たな球面座標Ｇｂの基準原点Ｏｂに設定する。
【００６０】
上記演算を行うことで、新たにキャリブレーションを行うことなく、オフセットされた基準原点を求めることができ、また球面座標の半径が変化したときも、基準原点を求めることが可能である。
【産業上の利用可能性】
【００６１】
本発明の磁界検知装置は、方位センサ、ジャイロに応用でき、携帯用のゲーム装置やゲーム装置の入力装置に使用することもできる。またロボットの腕や関節などの姿勢の変化を検知する検知部として使用することもできる。
【００６２】
さらに、本発明の磁界検知装置は、地磁気以外の外部磁界の磁気ベクトルの向きや動きを検知する装置として使用可能である。例えば磁気検知装置を固定し、外部の磁気ベクトルがどの方向からどのような運動で接近してきているかの検知も可能である。
【符号の説明】
【００６３】
１  磁界検知装置
２  磁気検知部
３  Ｘ軸センサ
４  Ｙ軸センサ
５  Ｚ軸センサ
６  磁場データ検知部
７  メモリ
１０  演算部
１１  データバッファ
Ｇａ  第１の球面座標
Ｇｂ  新たな球面座標
Ｒａ  第１の半径
Ｒｂ  新たな球面座標の半径
Ｏａ  第１の基準原点
Ｏｂ  第２の基準原点
Ｄｘ，Ｄｙ，Ｄｚ  シフト座標点データ
Ｉ１，Ｉ２，Ｉ３，Ｉ４，Ｉ５，Ｉ６  仮想原点
ｄ１  第１の距離
ｄ２  第２の距離
【図１】
0005425671.tif 000002
【図２】
0005425671.tif 000003
【図３】
0005425671.tif 000004
【図４】
0005425671.tif 000005
【図５】
0005425671.tif 000006
【図６】
0005425671.tif 000007
【図７】
0005425671.tif 000008
【図８】
0005425671.tif 000009