(57)【特許請求の範囲】
【請求項１】
磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する３方向の磁気成分をそれぞれ検出する３次元磁気センサと、
前記機器の姿勢を変化させた場合に前記３次元磁気センサから順次出力される磁気データを蓄積する蓄積手段と、
前記蓄積手段に蓄積された複数の磁気データで示される座標が、球面と曲面とを重ね合わせることで得られる非球面の立体の表面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される座標と前記立体の表面との誤差を表す目的関数を用いて、前記目的関数の表す誤差の値を最小化するときの、前記目的関数における前記曲面を表す成分に基づく第１評価値を算出し、前記第１評価値が所定の大きさ以下であるか否かを判定する歪判定手段と、
前記歪判定手段の判定結果が肯定である場合に、前記磁気データのうち前記部品の発生する磁界の成分を表す３軸の座標であるオフセットを更新するオフセット更新手段と、
を備える地磁気測定装置。
【請求項２】
前記第１評価値が前記所定の大きさよりも大きな値となる場合に、利用者に前記機器の位置を変化させずに前記機器の姿勢を変化させるように促す手段を備える
ことを特徴とする請求項１に記載の地磁気測定装置。
【請求項３】
前記地磁気測定装置は、
前記蓄積手段に蓄積された前記複数の磁気データで示される座標が、中心点算出用球面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される３軸の座標と前記中心点算出用球面との誤差を最小化するように、前記中心点算出用球面の中心点を算出する中心点算出手段を、
更に備え、
前記目的関数における前記曲面を表す成分は、前記複数の磁気データの各々に対応する各要素からなるベクトルであり、
前記各要素は、第１評価行列を係数行列とする３変数の二次形式により表現される関数に対して、前記中心点を原点とする座標系において前記磁気データを表す３軸の値を代入することで得られる値であり、
前記第１評価値は、前記第１評価行列のノルムであり、
前記オフセットは、前記中心点である、
ことを特徴とする請求項１または２に記載の地磁気測定装置。
【請求項４】
前記中心点算出手段は、
前記複数の磁気データで示される座標が、３次元的な広がりを持って分布していることを評価する第２評価値を算出し、前記第２評価値が所定の大きさ以上の場合に、前記中心点を算出する
ことを特徴とする請求項１乃至３のうちいずれか１項に記載の地磁気測定装置。
【請求項５】
前記中心点算出手段は、下記の第２目的関数ｆ１（ｘ）の値を最小にするｘを、前記中心点として算出する
ことを特徴とする請求項１乃至４のうちいずれか１項に記載の地磁気測定装置。
【数１】
0005641236.tif 000025
【請求項６】
前記目的関数は、前記第１評価行列をＥとし、前記中心点をｘ０としたとき、Ｅを変数とするｆ２（Ｅ、ｘ）で表され、
前記第１評価値は、ｆ２（Ｅ、ｘ）を最小化するＥのノルムである
ことを特徴とする請求項５に記載の地磁気測定装置。
【数２】
0005641236.tif 000026
【請求項７】
前記第２評価値は、下記の行列Ａの最小固有値である
ことを特徴とする請求項５または６に記載の地磁気測定装置。
【数３】
0005641236.tif 000027
【請求項８】
磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する２方向の磁気成分をそれぞれ検出する２次元磁気センサと、
前記機器の姿勢を変化させた場合に前記２次元磁気センサから順次出力される磁気データを蓄積する蓄積手段と、
前記蓄積手段に蓄積された前記複数の磁気データで示される座標が、前記部品の発生する磁界の成分を示す座標を中心点とする円周近傍に確率的に分布すると仮定して、前記複数の磁気データで示される２軸の座標と前記円周との誤差を最小化するように、前記円周の中心点を算出する中心点算出手段と、
前記複数の磁気データで示される座標が、円周と第１曲線とを重ね合わせることで得られる円周以外の形状の第２曲線の近傍に確率的に分布すると仮定して、前記複数の磁気データで示される座標と前記第２曲線との誤差を表す第３目的関数を用いて、前記第３目的関数の表す誤差の値を最小化するときの、前記第３目的関数における前記第１曲線を表す成分に基づく第３評価値を算出し、前記第３評価値が所定の大きさ以下の場合に、前記中心点を、前記２次元磁気センサのオフセットとして採用する、歪判定手段と
を備える地磁気測定装置。
【請求項９】
磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する３方向の磁気成分をそれぞれ検出する３次元磁気センサと、
前記機器の姿勢を変化させた場合に前記３次元磁気センサから順次出力される磁気データを蓄積する蓄積手段と、
を備える地磁気測定装置に用いられるオフセット決定方法であって、
前記蓄積手段に蓄積された前記複数の磁気データで示される座標が、前記部品の発生する磁界の成分を示す座標を中心点とする中心点算出用球面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される３軸の座標と前記中心点算出用球面との誤差を最小化するように、前記中心点算出用球面の中心点を算出し、
前記複数の磁気データで示される座標が、球面と曲面とを重ね合わせることで得られる非球面の立体の表面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される座標と前記立体の表面との誤差を表す目的関数を用いて、前記目的関数の表す誤差の値を最小化するときの、前記目的関数における前記曲面を表す成分に基づく第１評価値を算出し、前記第１評価値が所定の大きさ以下の場合に、前記中心点を、前記３次元磁気センサのオフセットとして採用する、
ことを特徴とする、オフセット決定方法。
【請求項１０】
磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する３方向の磁気成分をそれぞれ検出する３次元磁気センサと、
前記機器の姿勢を変化させた場合に前記３次元磁気センサから順次出力される磁気データを蓄積する蓄積手段と、
を備える地磁気測定装置に用いられるオフセット決定プログラムであって、
前記蓄積手段に蓄積された前記複数の磁気データで示される座標が、前記部品の発生する磁界の成分を示す座標を中心点とする中心点算出用球面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される３軸の座標と前記中心点算出用球面との誤差を最小化するように、前記中心点算出用球面の中心点を算出する処理と、
前記複数の磁気データで示される座標が、球面と曲面とを重ね合わせることで得られる非球面の立体の表面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される座標と前記立体の表面との誤差を表す目的関数を用いて、前記目的関数の表す誤差の値を最小化するときの、前記目的関数における前記曲面を表す成分に基づく第１評価値を算出し、前記第１評価値が所定の大きさ以下の場合に、前記中心点を、前記３次元磁気センサのオフセットとして採用する処理とを、
コンピュータに実行させるオフセット決定プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地磁気測定装置、オフセット決定方法、及びオフセット決定プログラムに関する。
【背景技術】
【０００２】
近年、携帯電話等の携帯機器や、自動車等の移動体に搭載され、地磁気を検出する３次元磁気センサが開発されている。一般に、３次元磁気センサは、磁界のベクトルを互いに直交する３方向の成分に分解してスカラー量を検知するための３つの磁気センサモジュールを備え、３つの磁気センサモジュールが各々出力するスカラー量を３つの成分とする３次元のベクトルデータを出力する。
【０００３】
ところで、３次元磁気センサが搭載される携帯電話等の機器は、着磁性を有する各種金属や、電気回路等、磁界を発生させる部品が備えられることが多い。この場合、３次元磁気センサが出力するベクトルデータは、地磁気を表すベクトルの他に、機器に搭載された部品が発する磁界等を表すベクトルも含む値となる。
従って、地磁気の値を正確に知るためには、３次元磁気センサが出力するベクトルデータから、機器の部品が発する内部磁界等の外乱成分を表すベクトルを取り除く補正処理が必要となる。
このように、検出対象である地磁気の正確な値を得るために、補正処理において、３次元磁気センサから出力されるデータから取り除かれる外乱成分の値をオフセットと呼ぶ。
【０００４】
内部磁界は、機器の部品が発する磁界である。すなわち、内部磁界は、機器に対して一定の方向を向き、一定の大きさを有する磁界である。このような内部磁界は、機器に搭載された３次元磁気センサから見た場合には、機器をどのような姿勢に変化させた場合であっても、一定の方向と一定の大きさを有するベクトルとして表される。
一方、地磁気は、磁極北に向かう水平成分と伏角方向の鉛直成分とを有する磁界であり、地面に対して、一定の方向と、一定の大きさとを有する、一様な磁界である。従って、地面に対して機器の姿勢を変化させる場合には、機器から見た地磁気の方向も変化することになる。すなわち、機器に搭載された３次元磁気センサから見た場合、地磁気は、機器の姿勢の変化に伴い向きが変化する一定の大きさを持ったベクトルとして表される。
特許文献１には、このような地磁気及び内部磁界の性質を利用することで、３次元磁気センサの姿勢を変化させつつ取得した複数の磁気データに基づいて、内部磁界を表す一定の向き及び大きさを有するベクトルを算出し、この内部磁界を表すベクトルをオフセットとして出力データから取り除く補正処理を行うことで、正確な地磁気の値を得る方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００７−２４０２７０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、３次元磁気センサが搭載される携帯電話等の機器の近くに、スピーカやパソコン等の磁界を発生させる物体が存在する場合、３次元磁気センサは、前述した地磁気及び内部磁界の他に、機器の外部の物体が発する外部磁界も検出する。一般的に、外部磁界は、外部磁界を発生させる物体と３次元磁気センサとの相対的位置関係等によって、向き及び大きさが変化する不均一な磁界である。
【０００７】
従来の方法では、このような不均一な外部磁界の存在の有無や、不均一な外部磁界による影響の大きさを知ることは出来なかった。従って、従来の方法では、不均一な外部磁界が存在する環境下で算出された内部磁界のベクトルが大きな誤差を持つ場合であっても、外部磁界が存在しない環境下で計算された正しい値であると判断し、これをオフセットとして採用してしまうため、オフセットに大きな誤差を含むことがあるという問題が存在した。
同様に、磁界のベクトルを互いに直交する２方向の成分に分解してスカラー量を検知するための２つの磁気センサモジュールを備え、２つの磁気センサモジュールが各々出力するスカラー量を２つの成分とする２次元のベクトルデータを出力する２次元磁気センサにおいても、オフセットに大きな誤差を含む場合があるという問題が存在した。
そこで、本発明は上述した事情を鑑み、外部磁界の影響の程度を評価することにより、オフセット値の採用の可否を決定することを解決課題とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決するため、本発明に係る地磁気測定装置は、磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する３方向の磁気成分をそれぞれ検出する３次元磁気センサと、前記機器の姿勢を変化させた場合に前記３次元磁気センサから順次出力される磁気データを蓄積する蓄積手段と、前記蓄積手段に蓄積された複数の磁気データで示される座標が、球面と曲面とを重ね合わせることで得られる非球面の立体の表面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される座標と前記立体の表面との誤差を表す目的関数を用いて、前記目的関数の表す誤差の値を最小化するときの、前記目的関数における前記曲面を表す成分に基づく第１評価値を算出し、前記第１評価値が所定の大きさ以下であるか否かを判定する歪判定手段と、前記歪判定手段の判定結果が肯定である場合に、前記磁気データのうち前記部品の発生する磁界の成分を表す３軸の座標であるオフセットを更新するオフセット更新手段と、を備えることを特徴とする。
【０００９】
この発明によれば、歪判定手段において、複数の磁気データで示される座標が、球面と曲面とを重ね合わせて得られる球面以外の歪んだ形状を有する立体の表面近傍に確率的に分布すると仮定して、複数の磁気データで示される座標と立体の表面との誤差を表す目的関数を導入する。この目的関数は、球面を表す成分と、曲面を表す成分とから形成される。そして、目的関数のうち曲面を表す成分による影響を評価する第１評価値によって、複数の磁気データで示される座標が、目的関数のうち球面を表す成分で表される球面の表面からどの程度離れているかを評価することができる。すなわち、第１評価値により、立体の形状が、球面の形状からどの程度の差異を有するものであるか（つまり、どの程度の歪を有するか）についての評価することができる。
このような、歪判定手段を備えることにより、複数の磁気データが立体の表面近傍に分布するときに、立体が球面と実質的に同一の形状を有するほど近似している場合には、複数の磁気データで示される座標が球面近傍にも分布すると看做すことができる。複数の磁気データで示される座標が球面近傍に分布する場合、複数の磁気データで示される座標を近傍に有する球面の中心点が内部磁界を表すベクトルの示す座標であるため、複数の磁気データで示される座標を近傍に有する球面の中心点をオフセットとして採用する。一方、立体が球面とは大きく異なる歪んだ形状を有する場合には、複数の磁気データで示される座標が球面近傍に分布するとは看做せないため、複数の磁気データで示される座標を近傍に有する球面の中心点をオフセットとして採用することを防止することが可能になる。すなわち、上述した地磁気測定装置は、適切な値のみをオフセットとして採用することが可能であるという利点を有する。この結果、大きな誤差が含まれる値を、オフセットとして採用しないので、誤った地磁気を検出することを防止できる。
【００１０】
また、上述した地磁気測定装置において、前記第１評価値が前記所定の大きさよりも大きな値となる場合に、利用者に前記機器の位置を変化させずに前記機器の姿勢を変化させるように促す手段を備えることが好ましい。
【００１１】
この発明によれば、上述した地磁気測定装置は、歪判定手段において第１評価値が所定の大きさよりも大きいと判定される場合、すなわち、３次元磁気センサから出力される複数の磁気データの示す座標が立体の表面近傍に分布するときに立体の形状が球面から大きな歪を有する場合、利用者に対して機器の位置を変化させずに機器の姿勢を変化させるように促す手段を備える。
３次元磁気センサは、測定対象である地磁気の他に、機器に備えられた部品の発する内部磁界と、外部の物体の発する外部磁界とを検出する。外部磁界は、外部の物体と３次元磁気センサとの相互位置関係に依存して、方向及び大きさを変化させる不均一な磁界である。そして、この不均一な外部磁界の影響が大きい場合には、複数の磁気データは、球面とは大きく異なる歪んだ形状を有する立体の表面近傍に分布することになり、複数の磁気データで示される座標が球面近傍に分布するとは看做せないため、球面の中心点をオフセットとして採用することができなくなる。
しかし、このような不均一な外部磁界も、外部磁界を発生させる外部の物体との相互位置関係が変化しない場合には、一定の方向を向いた一定の大きさの磁界にすぎない。つまり、３次元磁気センサの位置を変化させずに姿勢を変化させる場合、外部磁界は、３次元磁気センサによって、一定の大きさを有し方向のみを変化させる磁界として検出される。この場合、３次元磁気センサから出力される複数の磁気データで示される座標は、ある球面近傍に分布することになる。そして、この球面の中心点は、機器に備えられた部品の発する磁界（内部磁界）の成分を示す座標とほぼ同一の座標となるため、複数の磁気データで示される座標を近傍に有する球面の中心点をオフセットとして採用することが可能となる。
従って、上述した地磁気測定装置は、利用者に機器の位置を変化させずに機器の姿勢を変化させるように促す手段を備えることにより、不均一な外部磁界が存在する場所でも、適切なオフセットを算出することができるような動作を利用者に促すことが可能となる。
【００１２】
また、上述した地磁気測定装置は、前記蓄積手段に蓄積された前記複数の磁気データで示される座標が、中心点算出用球面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される３軸の座標と前記中心点算出用球面との誤差を最小化するように、前記中心点算出用球面の中心点を算出する中心点算出手段を、更に備え、前記目的関数における前記曲面を表す成分は、前記複数の磁気データの各々に対応する各要素からなるベクトルであり、前記各要素は、第１評価行列を係数行列とする３変数の二次形式により表現される関数に対して、前記中心点を原点とする座標系において前記磁気データを表す３軸の値を代入することで得られる値であり、前記第１評価値は、前記第１評価行列のノルムであり、前記オフセットは、前記中心点であることが好ましい。
【００１３】
この発明によれば、歪判定手段で用いる目的関数における曲面を表す成分は、二次形式で表される関数に対して複数の磁気データで示される座標の各々に対応する値を代入して得た値を要素とするベクトルにより表現される。
すなわち、曲面を表す成分は、複数の磁気データで示される座標の各々と球面との誤差の各々が、二次形式で表される同一の関数が示す曲面上に存在するという制約の下、誤差を表現するベクトルである。この曲面を表す成分によって、複数の磁気データで示される座標と、球面との誤差を、二次形式で表される関数が示す曲面によって吸収することができる。
仮に、複数の磁気データで示される座標と球面との誤差を、何ら制約の無い変数を要素とするベクトルで表す場合、ベクトルの各要素、すなわち、複数の磁気データに対応する誤差の各々は、互いに独立なものとして表現される。そして、複数の磁気データで示される座標と球面との誤差を最小化した場合、このベクトルにより表される複数の誤差は、全体として対称性を有し、方向依存性の無い、ホワイトノイズとなる。
これに対して、歪判定手段で用いる目的関数は、曲面を表す成分を導入することで、このようなホワイトノイズとは別に、曲面を表す成分に起因する誤差を表現することが可能となり、これまで一律にホワイトノイズとみなしていた誤差から、ホワイトノイズではない曲面を表す成分に起因する誤差を分離することが可能となった。
従って、上述した地磁気測定装置は、複数の磁気データで示される座標と球面との誤差のうち、曲面を表す成分に起因する誤差を分離することにより、曲面を表す成分による影響を評価することが可能となり、地磁気測定装置が検出する磁気データに含まれる誤差が単なるホワイトノイズであるのか、それとも、ホワイトノイズ以外の何らかの外乱成分を含むのかを判断することができるのと同時に、そのホワイトノイズ以外の外乱成分の影響の大きさを評価することができるという利点を有する。
【００１４】
また、上述した地磁気測定装置において、前記中心点算出手段は、前記複数の磁気データで示される座標が、３次元的な広がりを持って分布していることを評価する第２評価値を算出し、前記第２評価値が所定の大きさ以上の場合に、前記中心点を算出することが好ましい。
【００１５】
この発明によれば、第２評価値により、複数の磁気データで示される座標の３次元的な広がりの大きさを評価することにより、正確な中心点を導出することができないような複数の磁気データに基づく中心点算出処理を行うことを防止することができる。
これにより、不適切な中心点をオフセットとして採用することを避け、誤差の大きな地磁気の値を検出することを防止することができるという利点を有すると共に、不適切な磁気データに基づいた不適切な中心点を導出する中心点算出処理を行うことを未然に防止することで、正しいオフセットを採用するまでの時間を短縮することができるという利点を有する。
【００１６】
また、上述した地磁気測定装置において、前記中心点算出手段は、下記の第２目的関数ｆ１（ｘ）の値を最小にするｘを、前記中心点として算出することが好ましい。
【数１】
0005641236.tif 000002
【００１７】
この発明によれば、簡単な計算によりオフセットの候補となる中心点を導出することができる。従って、上述した地磁気測定装置は、処理速度の向上という利点を有する。
【００１８】
また、上述した地磁気測定装置において、前記目的関数は、前記第１評価行列をＥとし、前記中心点をｘ０としたとき、Ｅを変数とするｆ２（Ｅ、ｘ）で表され、前記第１評価値は、ｆ２（Ｅ、ｘ）を最小化するＥのノルムであることが好ましい。
【数２】
0005641236.tif 000003
【００１９】
この発明によれば、目的関数及び第１評価値を、簡単な計算によって求めることが可能である。
従って、上述した地磁気測定装置は、短時間で適切なオフセットを採用することが可能であり、正確な地磁気の値を、地磁気測定装置の組み込まれた機器のＣＰＵに過大な負荷を与えることなく、常時正確な地磁気を測定することができるという利点を有する。
【００２０】
また、上述した地磁気測定装置において、前記第２評価値は、下記の行列Ａの最小固有値であることが好ましい。
【数３】
0005641236.tif 000004
【００２１】
この発明によれば、上述した地磁気測定装置は、簡単な計算により複数の磁気データで示される座標の３次元的な広がりの大きさを評価する第２評価値を算出することが可能である。従って、上述した地磁気測定装置は、処理速度の向上という利点を有する。
【００２２】
次に、本発明に係る地磁気測定装置は、
磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する２方向の磁気成分をそれぞれ検出する２次元磁気センサと、
前記機器の姿勢を変化させた場合に前記２次元磁気センサから順次出力される磁気データを蓄積する蓄積手段と、
前記蓄積手段に蓄積された前記複数の磁気データで示される座標が、前記部品の発生する磁界の成分を示す座標を中心点とする円周近傍に確率的に分布すると仮定して、前記複数の磁気データで示される２軸の座標と前記円周との誤差を最小化するように、前記円周の中心点を算出する中心点算出手段と、
前記複数の磁気データで示される座標が、円周と第１曲線とを重ね合わせることで得られる円周以外の形状の第２曲線の近傍に確率的に分布すると仮定して、前記複数の磁気データで示される座標と前記第２曲線との誤差を表す第３目的関数を用いて、前記第３目的関数の表す誤差の値を最小化するときの、前記第３目的関数における前記第１曲線を表す成分に基づく第３評価値を算出し、前記第３評価値が所定の大きさ以下の場合に、前記中心点を、前記２次元磁気センサのオフセットとして採用する、歪判定手段とを備えることを特徴とする。
【００２３】
この発明によれば、２次元磁気センサから出力される複数の磁気データが円周とは異なる形状の第２曲線の近傍に分布するとき、この第２曲線の形状がどの程度、円周に近いかによって、円周の中心点をオフセットとして採用するか否を判定するので、算出された円周の中心点の値に大きな誤差が含まれる場合に、これをオフセットとして採用することを防止し、誤った地磁気を検出することを防止できる。
【００２４】
次に、本発明に係る地磁気測定装置に用いられるオフセット決定方法は、
磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する３方向の磁気成分をそれぞれ検出する３次元磁気センサと、前記機器の姿勢を変化させた場合に前記３次元磁気センサから順次出力される磁気データを蓄積する蓄積手段と、を備える地磁気測定装置に用いられるオフセット決定方法であって、
前記蓄積手段に蓄積された前記複数の磁気データで示される座標が、前記部品の発生する磁界の成分を示す座標を中心点とする中心点算出用球面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される３軸の座標と前記中心点算出用球面との誤差を最小化するように、前記中心点算出用球面の中心点を算出し、
前記複数の磁気データで示される座標が、球面と曲面とを重ね合わせることで得られる非球面の立体の表面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される座標と前記立体の表面との誤差を表す目的関数を用いて、前記目的関数の表す誤差の値を最小化するときの、前記目的関数における前記曲面を表す成分に基づく第１評価値を算出し、前記第１評価値が所定の大きさ以下の場合に、前記中心点を、前記３次元磁気センサのオフセットとして採用する、ことを特徴とする。
【００２５】
この発明によれば、複数の磁気データが立体の表面近傍に分布するとき、この立体の形状がどの程度、球面に近いかによって、中心点算出用球面の中心点をオフセットとして採用するか否を判定するので、中心点算出用球面の中心点の値に大きな誤差が含まれる場合にこれをオフセットとして採用することを防止し、誤った地磁気を検出することを防止できる。
【００２６】
次に、本発明に係る地磁気測定装置に用いられるオフセット決定プログラムは、
磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する３方向の磁気成分をそれぞれ検出する３次元磁気センサと、前記機器の姿勢を変化させた場合に前記３次元磁気センサから順次出力される磁気データを蓄積する蓄積手段と、を備える地磁気測定装置に用いられるオフセット決定プログラムであって、
前記蓄積手段に蓄積された前記複数の磁気データで示される座標が、前記部品の発生する磁界の成分を示す座標を中心点とする中心点算出用球面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される３軸の座標と前記中心点算出用球面との誤差を最小化するように、前記中心点算出用球面の中心点を算出する処理と、
前記複数の磁気データで示される座標が、球面と曲面とを重ね合わせることで得られる非球面の立体の表面近傍に確率的に分布すると仮定して、前記複数の磁気データで示される座標と前記立体の表面との誤差を表す目的関数を用いて、前記目的関数の表す誤差の値を最小化するときの、前記目的関数における前記曲面を表す成分に基づく第１評価値を算出し、前記第１評価値が所定の大きさ以下の場合に、前記中心点を、前記３次元磁気センサのオフセットとして採用する処理とを、コンピュータに実行させることを特徴とする。
【００２７】
この発明によれば、複数の磁気データが立体の表面近傍に分布するとき、この立体の形状がどの程度、球面に近いかによって、中心点算出用球面の中心点をオフセットとして採用するか否を判定するので、中心点算出用球面の中心点の値に大きな誤差が含まれる場合にこれをオフセットとして採用することを防止し、誤った地磁気を検出することを防止できる。
【図面の簡単な説明】
【００２８】
【図１】本発明の実施形態に係る３次元磁気センサが検出する磁界の概要を説明する概念図である。
【図２】本発明の実施形態に係る３次元磁気センサが検出する地磁気と内部磁界とについて説明する概念図である。
【図３】本発明の実施形態に係る３次元磁気センサが検出する地磁気、内部磁界、及び外部磁界について説明する概念図である。
【図４】本発明の実施形態に係る３次元磁気センサが検出する地磁気、内部磁界、及び外部磁界について説明する概念図である。
【図５】本発明の実施形態に係る３次元磁気センサが搭載される機器の構成を示すブロック図である。
【図６】本発明の実施形態に係る処理の流れを示したフローチャートである。
【図７】本発明の実施形態に係る中心点算出処理の処理を説明する概念図である。
【図８】本発明の実施形態に係る磁気データ分布判定処理の必要性を説明する概念図である。
【図９】本発明の実施形態に係る磁気データ分布判定処理を説明する概念図である。
【図１０】本発明の実施形態に係る歪み判定処理を説明する概念図である。
【図１１】本発明の実施形態に係る歪み判定処理を説明する概念図である。
【図１２】本発明のシミュレーションで使用されたデータについて説明する図である。
【図１３】本発明のシミュレーション結果表である。
【発明を実施するための形態】
【００２９】
以下、本発明の実施の形態を説明する。
【００３０】
［１．  ３次元磁気センサが検出する磁界の概要］
本実施形態では、３次元磁気センサが検出する磁界として、検出対象である地磁気の他に、３次元磁気センサが搭載される機器の部品が発する磁界である内部磁界、及び機器の外部の物体が発する外部磁界の存在を想定している。
これらの３種類の磁界は、磁界の向き、大きさ、及び均一性において、各々異なる性質を有するものである。つまり、これらの磁界を３次元磁気センサで検出する場合、３次元磁気センサの位置、姿勢が変化すると、３次元磁気センサから出力される磁界を示すベクトルデータの向き及び大きさも変化するが、この出力データの変化の仕方は、３種類の磁界の各々で差異を有する。
以下、図１乃至図４を用いて、本実施形態において想定するこれら３種類の磁界の概要、及び、これらの磁界を３次元磁気センサが検出した場合に出力されるベクトルデータについて説明する。
【００３１】
図１は、機器１に搭載された３次元磁気センサ６０の周囲に存在する磁界の種類及び性質について説明する図である。
３次元磁気センサ６０の周囲に存在する磁界には、計測対象である地磁気Ｂｇの他に、３次元磁気センサ６０の搭載された機器１の部品が発する内部磁界Ｂｉ、及び機器１の周囲に存在する物体２が発する外部磁界Ｂｘが存在する。
【００３２】
地磁気Ｂｇは、磁極北に向かう方向を持つベクトルであり、一様な向き及び大きさを有する磁界である。厳密には、地磁気Ｂｇの向き及び大きさは、地域によって異なるが、例えば、異なる都市に移動する等の大きな移動をしない場合には、一様な向き及び大きさを有する。
内部磁界Ｂｉは、機器１の部品が発する磁界であり、内部磁界Ｂｉの向きは、機器１から見て一定の方向を有する。すなわち、機器１上に搭載された３次元磁気センサ６０から見た場合、機器１の姿勢を変化させても、内部磁界Ｂｉは、一定の方向及び大きさを有する磁界として検知される。例えば、利用者が機器１を手で持って手首を回すと、機器１の姿勢が変化する。このとき、地磁気Ｂｇは磁極北を向いているので、３次元磁気センサ６０で検出される地磁気Ｂｇの３軸各々の成分は変化する。一方、３次元磁気センサ６０において３次元磁気センサ６０と内部磁界を発生する部品との相対的な位置関係は固定であるから、機器１の姿勢を変化させても、内部磁界Ｂｉの３軸各々の成分は一定である。
外部磁界Ｂｘは、外部の物体２の発する磁界であり、物体２からの距離及び方向によって、磁界の向き及び大きさが変化する不均一な磁界である。すなわち、機器１上に搭載された３次元磁気センサ６０から見た場合、外部磁界Ｂｘは、物体２と３次元磁気センサ６０との相互位置関係に依存して、方向及び大きさを変化させる磁界として検知される。
【００３３】
説明の便宜上、図１に示すような地上座標系ΣＧ及びセンサ座標系ΣＳを導入する。図１に記載された各ベクトルの左上に付された添字Ｇは、当該ベクトルが地上座標系ΣＧにおいて表現されたベクトルであることを意味する。
地上座標系ΣＧは、地上に固定された座標系であり、地上の任意の一点を原点とし、互いに直交する３つの方向、例えば、東、北、及び鉛直上向きを、それぞれｘ軸、ｙ軸、及びｚ軸とする座標系である。ここで、地上座標系ΣＧから見たときの３次元磁気センサ６０の位置及び姿勢を、それぞれ、位置Ｐｓ、及び姿勢θｓと表現することにする。
センサ座標系ΣＳは３次元磁気センサ６０に固定された座標系であり、３次元磁気センサ６０の有する３つの各々のセンサモジュールの出力する値を、それぞれ、ｘ軸、ｙ軸、ｚ軸上にプロットするように設けられた座標系である。すなわち、３次元磁気センサ６０が出力する磁気データは、センサ座標系ΣＳのベクトルデータとして表現される。
なお、地上座標系ΣＧから見た場合、センサ座標系ΣＳの原点は位置Ｐｓであり、姿勢は姿勢θｓである。
【００３４】
図２は、地磁気Ｂｇ及び内部磁界Ｂｉが、３次元磁気センサ６０によってどのような値として検知されるかについて示す図である。すなわち、図２は、３次元磁気センサ６０の地上座標系ΣＧから見た姿勢θｓをθ１〜θＮと変化させつつ磁界を測定した場合に、３次元磁気センサ６０が出力するＮ個の磁気データｑ１〜ｑＮを、センサ座標系ΣＳにおいてプロットした図である（Ｎは５以上の自然数）。なお、図２では、地磁気Ｂｇ及び内部磁界Ｂｉのみが存在し、外部磁界Ｂｘは存在しない場合を想定している。また、図２に記載された各ベクトルの左上に付された添字Ｓは、当該ベクトルがセンサ座標系ΣＳにおいて表されたベクトルであることを意味する。
内部磁界Ｂｉは、センサ座標系ΣＳにおいて、３次元磁気センサ６０の位置Ｐｓ及び姿勢θｓに依存しない、一定の方向及び大きさを持つベクトルＳＢｉ（センサ座標系ΣＳの原点から中心点ｘ０Ｇへと向かうベクトル）として表現される。
一方、地磁気Ｂｇは、センサ座標系ΣＳにおいて、大きさは一定であるが、向きは３次元磁気センサ６０の姿勢θｓに伴い変化する。つまり、地磁気Ｂｇは、センサ座標系ΣＳにおいて、３次元磁気センサ６０の姿勢θｓに依存した向きを有する、一定の大きさのベクトルＳＢｇ（θｓ）として表現され、θｓを変化させた場合には、中心点ｘ０Ｇを中心とする球面上に位置することになる。
従って、３次元磁気センサ６０が出力する磁気データｑ１〜ｑＮは、センサ座標系ΣＳにおいて、中心点ｘ０Ｇを中心点とし、地磁気Ｂｇの大きさを半径とする、球面ＳＧ上に分布することになる。仮に、内部磁界Ｂｉの大きさが０の場合には、中心点ｘ０Ｇと、センサ座標系ΣＳの原点とは一致することになる。
なお、３次元磁気センサ６０は、測定誤差を有するため、磁気データｑ１〜ｑＮは、厳密には、球面ＳＧの近傍に確率的に分布する。
【００３５】
このような磁気データｑ１〜ｑＮから、球面ＳＧの中心点ｘ０Ｇの座標を計算することで、内部磁界を表すベクトルＳＢｉを求めることができ、３次元磁気センサ６０の出力値である磁気データｑ１〜ｑＮから内部磁界ＳＢｉを引き算することにより、地磁気ＳＢｇを計算することが可能となる。すなわち、３次元磁気センサ６０で検出される磁気が地磁気Ｂｇ及び内部磁界Ｂｉである場合、球面ＳＧの中心点ｘ０Ｇは、３次元磁気センサ６０のオフセットｃに対応する。
【００３６】
図３は、外部磁界Ｂｘが存在する場合に、３次元磁気センサ６０の位置ＰｓをＰ１〜ＰＮと変化させると共に、姿勢θｓをθ１〜θＮと変化させて磁界を測定したときの、３次元磁気センサ６０が出力する磁気データｑ１〜ｑＮを、センサ座標系ΣＳにおいてプロットした図である。
外部磁界Ｂｘは不均一な磁界であり、地上座標系ΣＧにおける位置に応じて、向き及び大きさが変化する。従って、３次元磁気センサ６０の位置Ｐｓを変化させた場合には、３次元磁気センサ６０が検知する外部磁界Ｂｘの向き及び大きさも変化する。このような外部磁界Ｂｘは、センサ座標系ΣＳにおいて、３次元磁気センサ６０の姿勢θｓ及び位置Ｐｓに依存して方向及び大きさの両方を変化させるベクトルＳＢｘ（θｓ、Ｐｓ）として表現される。
そして、３次元磁気センサ６０の姿勢θｓ及び位置Ｐｓを変化させつつ測定した磁気データｑ１〜ｑＮは、内部磁界ＳＢｉ、地磁気ＳＢｇ（θｓ）、及び外部磁界ＳＢｘ（θｓ、Ｐｓ）のそれぞれのベクトルの和として出力される。従って、磁気データｑ１〜ｑＮは、センサ座標系ΣＳにおいて、中心点ｘ０Ｇを中心とする球面ＳＧと、球面とは異なる歪んだ形状を有する曲面ＳＸとを重ね合わせた立体ＳＤの表面近傍に分布することになる。ここで、曲面ＳＸは、センサ空間ΣＳにおいて外部磁界ＳＢｘ（θｓ、Ｐｓ）を表す曲面であり、３次元磁気センサ６０が出力する磁気データｑ１〜ｑＮのうち、内部磁界ＳＢｉと、外部磁界ＳＢｘ（θｓ、Ｐｓ）との和を表す。
【００３７】
立体ＳＤは、球面とは異なる形状を有するため、このような立体ＳＤの表面近傍に分布する磁気データｑ１〜ｑＮから、内部磁界ＳＢｉの値を示す中心点ｘ０Ｇのベクトルを求めることは困難である。
但し、外部磁界Ｂｘが微弱である場合には、立体ＳＤは球面に近い形状となる。
図４（Ａ）は、外部磁界Ｂｘが微弱である場合に、３次元磁気センサ６０が出力する磁気データｑ１〜ｑＮを、センサ座標系ΣＳにおいてプロットした図である。外部磁界Ｂｘが微弱である場合、３次元磁気センサ６０が出力する磁気データｑ１〜ｑＮは、地磁気を表すベクトルＳＢｇ（θｓ）の描く中心点ｘ０Ｇを中心とする球面ＳＧと、外部磁界を表すベクトルＳＢｘ（θｓ、Ｐｓ）の描く曲面ＳＸとの重ね合わせである、球面に近い形状の立体ＳＤの表面近傍に分布することになる。この場合、磁気データｑ１〜ｑＮから、中心点ｘ０Ｇとほぼ一致するベクトルを求めることが可能である。
【００３８】
なお、不均一な外部磁界Ｂｘは、３次元磁気センサ６０によって、均一な磁界として検出される場合がある。例えば、不均一な外部磁界Ｂｘが存在する場合であっても、Ｎ個の磁気データｑ１〜ｑＮを取得する際に、利用者が機器１を手で握って回転させるのではなく、機器１の位置（厳密には、３次元磁気センサ６０の位置）を固定したままその姿勢のみを変化させる場合には、外部磁界Ｂｘは、センサ空間ΣＳにおいて、３次元磁気センサ６０の姿勢θｓに基づいて、その方向のみを変化させる一定の大きさのベクトルＳＢｘ（θｓ）として表現される。この場合、３次元磁気センサ６０から出力されるＮ個の磁気データｑ１〜ｑＮは、図４（Ｂ）に示すように、センサ空間ΣＳにおいて、ほぼ球面の形状を有する立体ＳＤの表面近傍に分布する。そして、立体ＳＤの形状がほぼ球面となる場合、その中心点は、球面ＳＧの中心点ｘ０Ｇ（すなわち、内部磁界ＳＢｉを表す座標）とほぼ等しくなる。この場合、磁気データｑ１〜ｑＮから、中心点ｘ０Ｇとほぼ一致するベクトルを求めることが可能である。
【００３９】
そこで、本実施形態では、磁気データｑ１〜ｑＮに基づいて、外部磁界Ｂｘの及ぼす影響の大きさ、すなわち、立体ＳＤがどの程度球面に近い形状を有するものであるかについて評価し、評価結果に基づいて、当該球面の中心点をオフセットｃとして採用するか否かを判定する。以下、具体的な方法について説明する。
【００４０】
［２．  機器構成及びソフトウェア構成］
図５は、本発明の実施形態に係る機器１の構成を示すブロック図である。
機器１は、各種の構成要素とバスを介して接続され装置全体を制御するＣＰＵ１０、ＣＰＵ１０の作業領域として機能するＲＡＭ２０、各種のプログラムやデータを記憶したＲＯＭ３０、通信を実行する通信部４０、画像を表示する表示部５０、地磁気を検出して地磁気データを出力する３次元磁気センサ６０、を備える。
３次元磁気センサ６０は、Ｘ軸地磁気センサ６１、Ｙ軸地磁気センサ６２、及びＺ軸地磁気センサ６３を備える。各センサは、ＭＩ素子（磁気インピーダンス素子）、ＭＲ素子（磁気抵抗効果素子）などを用いて構成することができる。地磁気センサＩ／Ｆ６４は、各センサから出力信号をＡＤ変換して磁気データを出力する。この磁気データは、Ｘ軸地磁気センサ６１、Ｙ軸地磁気センサ６２、及びＺ軸地磁気センサ６３からの出力を、センサ座標系ΣＳにおけるベクトルデータとして、センサ座標系ΣＳの、ｘ軸、ｙ軸およびｚ軸の３成分によって示される。
ＣＰＵ１０は、ＲＯＭ３０に格納されている磁気データ処理プログラム７０を実行することによって、３次元磁気センサ６０の出力からオフセットを導出するとともに、正確な地磁気の向き及び大きさの出力を行う。
表示部５０は、磁気データ処理プログラム７０により出力された地磁気の向きを示す方位情報を、矢印等によって表示する。なお、磁気データ処理プログラム７０は、地図アプリケーション等との連携を想定し、地磁気の向きを示す方位情報である矢印等を地図上に表示しても良い。
ＣＰＵ１０、ＲＡＭ２０、３次元磁気センサ６０、及び磁気データ処理プログラム７０は、３次元磁気センサ６０が検出する磁気データに基づき、正確な地磁気の向き及び大きさを示す地磁気データを算出する、地磁気測定装置として機能する。この地磁気データは、地上座標系ΣＧにおいて磁極北に向かう方向を持つベクトルを、センサ座標系ΣＳから見たベクトルデータとして、ｘ軸、ｙ軸およびｚ軸の３成分によって示される。
【００４１】
磁気データ処理プログラム７０は、バッファ管理モジュール７１、オフセット導出モジュール７２、及び方位導出モジュール７３等のモジュール群で構成される。
バッファ管理モジュール７１は、３次元磁気センサ６０から順次出力される磁気データをバッファに蓄積する。これら複数の磁気データの蓄積手段としては、ＲＡＭ２０を用いる。
オフセット導出モジュール７２は、バッファ管理モジュール７１に蓄積されている複数の磁気データを用いて、オフセットを導出し、導出したオフセットを保持する。オフセットの保持手段としては、ＲＡＭ２０を用いる。
方位導出モジュール７３は、３次元磁気センサから順次出力される磁気データを、オフセット導出モジュール７２によって保持されるオフセットにより補正して、正確な方位情報を生成する。なお、方位導出モジュール７３は、適当な周期でバッファ管理モジュール７１及びオフセット導出モジュール７２を呼び出し、オフセット更新の指示を与える。
【００４２】
［３．  処理の流れ］
図６は、オフセット導出処理の流れを示すフローチャートである。このフローチャートは、方位導出モジュール７３が、バッファ管理モジュール７１及びオフセット導出モジュール７２を呼び出しオフセット更新の指示を与えた場合に実行される。
方位導出モジュール７３は、周期的にオフセット更新を指示する。これは、外部磁界や内部磁界が変化する場合があるからである。内部磁界は、機器１の内部状態が変化した場合、例えば、機器１に搭載された部品を流れる電流の大きさが変化した場合や、機器１に搭載された部品の着磁状況等の変化に伴い変化する。外部磁界は、不均一な磁界であるから、機器１が移動すれば、変化する。従って、オフセット更新を周期的に実行することによって、正確な地磁気を測定することが可能となる。
【００４３】
ステップＳ１００では、初期化処理及び磁気データ取得処理を行う。初期化処理では、バッファ管理モジュール７１が呼び出され、ＲＡＭ２０に記憶した磁気データが廃棄される。なお、本実施形態では、磁気データの全部を廃棄するが、ＲＡＭ２０に蓄積されたデータのうち古い方から一定割合のデータのみを廃棄しても良い。そして、磁気データ取得処理において、３次元磁気センサ６０から出力されるＮ個の磁気データｑ１〜ｑＮを、ＲＡＭ２０に格納する（Ｎは精度よくオフセットを導出するために必要な磁気データの規定測定回数を表す５以上の自然数）。
ステップＳ１０１では、磁気データ分布判定処理を行う。磁気データ分布判定処理は、ステップＳ１００でＲＡＭ２０等に蓄積されたＮ個の磁気データｑ１〜ｑＮが、後続するステップＳ１０２で実施される中心点算出処理において使用するデータとして適切なものであるか、すなわち、中心点算出のために適切な分布を有するものであるかを判定する。そして、判定結果が適切である場合にはステップＳ１０２に進み、適切でない場合には終了する。
【００４４】
ステップＳ１０２では、中心点算出処理を行う。中心点算出処理は、Ｎ個の磁気データｑ１〜ｑＮがある球面（中心点算出用球面）Ｓの近傍に確率的に分布すると仮定して、当該球面Ｓの中心点ｘ０をオフセットの候補として算出する。
ステップＳ１０３では、歪判定処理を行う。歪判定処理は、Ｎ個の磁気データｑ１〜ｑＮに基づいて、Ｎ個のデータの分布の形状が、前述した図２及び図４のような、ある点を中心とする球面の近傍に分布するものであるかについて判定する。具体的には、歪判定処理は、Ｎ個の磁気データｑ１〜ｑＮが、中心点算出処理において算出した中心点ｘ０を中心とする球面Ｓの近傍に分布するものであるかについて判定する。そして、磁気データｑ１〜ｑＮが中心点ｘ０を中心とする球面Ｓの近傍に分布するものであると判断した場合、すなわち、磁気データｑ１〜ｑＮが図２及び図４に示すような球面に近い形状の立体の表面近傍に分布すると判断した場合には、中心点ｘ０をオフセットｃとして採用する。一方、磁気データｑ１〜ｑＮが図３に示すような球面以外の歪のある形状の立体の表面近傍に分布すると判断した場合には、中心点ｘ０をオフセットｃとして採用せず、終了する。
【００４５】
なお、本実施形態では、ステップＳ１０１またはＳ１０３において、適切でないと判断された場合、処理を終了するが、本発明はこれに限定されるものではない。
例えば、ステップＳ１０１またはＳ１０３において、適切でないと判定された場合、処理をステップＳ１００に戻しても良いし、何らかのメッセージを表示部５０に出力した上で処理を一旦停止させ、ユーザからの指示を待ってステップＳ１００から処理を再開させても良い。
Ｎ個の磁気データｑ１〜ｑＮを取得する際に、利用者が機器１を手で握って回転させるのではなく、機器１の位置を固定したままその姿勢のみを変化させるようにすると、外部磁界Ｂｘの影響を低く抑えることができる（図４（Ｂ）参照）。そのため、ステップＳ１０３において適切でないと判定された場合には、機器１の位置を固定したまま回転させることを、利用者に対して指示しても良い。利用者に対する指示は、機器１の表示部５０に画像や動画等を表示したり、音声等を用いたりすることで、行っても良い。
【００４６】
以下において、これら、ステップＳ１０１〜Ｓ１０３において行う、磁気データ分布判定処理、中心点算出処理、及び歪判定処理の詳細について説明する。
なお、説明の便宜上、まずステップＳ１０２の中心点算出処理について説明し、次に、ステップＳ１０１の磁気データ分布判定処理について説明する。
【００４７】
［３．１．  中心点算出処理］
図７を参照しながら、ステップＳ１０２の中心点算出処理について説明する。
中心点算出処理では、３次元磁気センサ６０が出力する磁気データｑ１〜ｑＮが、地磁気Ｂｇ及び内部磁界Ｂｉのみを検知し、不均一な外部磁界Ｂｘの影響は受けないか、極めて小さいと仮定して処理を行う。具体的には、中心点算出処理は、センサ座標系ΣＳにおいて、複数の磁気データｑ１〜ｑＮが、半径ｒの球面Ｓの近傍に確率的に分布すると仮定して、球面Ｓの中心点ｘ０を算出する処理である。
なお、不均一な外部磁界Ｂｘの影響を受けていない場合、または外部磁界Ｂｘの影響が小さい場合には、半径ｒは地磁気Ｂｇの大きさを表し、球面Ｓ及びその中心点ｘ０は、地磁気Ｂｇを表す球面ＳＧ及びその中心点ｘ０Ｇと等しくなる。
また、不均一な外部磁界Ｂｘが存在する場合であっても、機器１の位置（厳密には、３次元磁気センサ６０の位置）を固定して姿勢のみを変化させつつ複数の磁気データｑ１〜ｑＮを測定した場合には、半径ｒは地磁気Ｂｇを表すベクトルと外部磁界Ｂｘを表すベクトルとを足し算したベクトルの大きさを表し、球面Ｓの中心点ｘ０は、地磁気Ｂｇを表す球面ＳＧの中心点ｘ０Ｇとほぼ等しくなる。
以下では、特に断りの無い限り、ベクトルや座標等は、センサ空間ΣＳにおいて表現されたものであるとする。
【００４８】
複数の磁気データｑ１〜ｑＮが、半径ｒの球面Ｓ上に存在すると仮定する場合、各磁気データｑｉと、球面Ｓの中心点ｘ０との距離はｒであるため、以下の式（１）〜（３）が成立する。
【数４】
0005641236.tif 000005
【００４９】
ここで、複数の磁気データｑ１〜ｑＮの重心をｑｃとする。重心ｑｃは、式（４）で表される。
また、重心ｑｃを原点とする重心座標系ΣＣを導入する。この場合、センサ座標系ΣＳにおいて表現された磁気データｑｉ及び中心点ｘ０と、重心座標系ΣＣにおいて表現された磁気データＣｑｉ及び中心点Ｃｘ０との間に、以下の式（６）及び式（７）の関係が成立する。
【数５】
0005641236.tif 000006
【００５０】
センサ座標系ΣＳにおける球面Ｓの方程式（１）は、重心座標系ΣＣにおいて式（８）として表現される。そして、式（８）に対して、式（６）及び（７）を代入することで、式（９）が得られる。
【数６】
0005641236.tif 000007
【００５１】
式（９）のｑｉに対して、磁気データｑ１〜ｑＮの各々を代入した結果を、磁気データの個数Ｎで割り算することにより、以下の式（１０）を得ることができる。そして、式（１０）と、式（９）を展開した式（１１）との差分を取ることで、変数ｑｉに依存しない項を消去し、式（１２）を得ることができる。
【数７】
0005641236.tif 000008
【００５２】
このように、磁気データである変数ｑｉが、球面Ｓ上に存在することを示す球面の公式である式（１）は、磁気データｑｉ、重心ｑｃ、及び中心点ｘ０から構成される式（１２）に変形された。この式（１２）の変数ｑｉに対して、Ｎ個の磁気データｑ１〜ｑＮをそれぞれ代入することで得られるＮ個の方程式は、行列Ｘを用いて式（１３）として表現される。
【数８】
0005641236.tif 000009
【００５３】
式（１３）は、全ての磁気データｑ１〜ｑＮの座標が、中心点ｘ０を中心とする球面Ｓ上に完全に一致する場合には解を有する。しかし、３次元磁気センサ６０の測定誤差等を考慮すると、全ての磁気データｑ１〜ｑＮの座標が、球面Ｓと完全に一致する位置に存在することは無いため、式（１３）は解を持たない。
そこで、統計的な手法により尤もらしい解を得るために、式（１７）で表される誤差を吸収するベクトルδ１を導入する。
【数９】
0005641236.tif 000010
【００５４】
このようなベクトルδ１のノルムを最小にするベクトルｘ、換言すれば、(δ１)Ｔ(δ１)を最小化するようなベクトルｘが、球面Ｓの中心点ｘ０として尤もらしいものであるといえる。
ここで、以下の式（１９）で示される目的関数ｆ１（ｘ）を定義すると、目的関数ｆ１（ｘ）を最小化するｘが、球面Ｓの中心点ｘ０として尤もらしい値となる。中心点ｘ０は、式（２１）において示される行列Ａが正則である場合には、式（２０）により求めることができる。
【数１０】
0005641236.tif 000011
このように、球面近傍に磁気データｑ１〜ｑＮが確率的に分布すると仮定して、複数の磁気データｑ１〜ｑＮで示される３軸の座標と球面との誤差を最小化することで算出された球面Ｓの中心点ｘ０が、オフセットｃの候補となる。
【００５５】
［３．２．  磁気データ分布判定処理］  
次に、ステップＳ１０１における、磁気データ分布判定処理について説明する。
前述した、中心点算出処理において中心点ｘ０を求める方法は、磁気データｑ１〜ｑＮがセンサ座標系ΣＳにおいて十分に３次元的な広がりを有することを前提とする。しかし、３次元磁気センサ６０の姿勢θｓは、ユーザが手で機器１を動かすことにより変化するものであるため、機器１の動かし方が不適切な場合には、磁気データｑ１〜ｑＮがセンサ座標系ΣＳにおいて３次元的な広がりを有さない場合がある。
例えば、図８に示すように、磁気データｑ１〜ｑＮがセンサ座標系ΣＳの平面π上に２次元的に分布する場合には、中心点ｘ０を算出することはできない。平面π上の円πＣの近傍に磁気データｑ１〜ｑＮが存在する場合、球面Ｓの中心点ｘ０は球面Ｓπ１の中心点ｘ０１であるかもしれないし、球面Ｓπ２の中心点ｘ０２であるかもしれず、中心点ｘ０が直線πＬ上のどの位置であるか特定することが出来ないからである。
【００５６】
従って、中心点ｘ０を算出するためには、図９に示すように、磁気データｑ１〜ｑＮがセンサ座標系ΣＳにおいて、３次元的に広がりを持って分布していることが必要となる。磁気データｑ１〜ｑＮがどの程度３次元的に分布しているかについての判定は、式（２１）に示される行列Ａを用いて行うことができる。
行列Ａは、磁気データｑ１〜ｑＮの分散共分散行列のＮ倍に相当する行列である。行列Ａの固有値を大きい順番にλ１、λ２、λ３とし、それぞれの固有値に対応する大きさ１の固有ベクトルをｕ１、ｕ２、ｕ３とする。また、磁気データｑｉを、前述した重心ｑＣを原点とする重心座標系ΣＣにおいて表したベクトルをＣｑｉと表す。このとき、固有値λｊ（ｊ＝１、２、３）は、固有ベクトルｕｊ方向の分散σ２ｊに等しい。
図９に示すように、各固有ベクトルｕ１〜ｕ３を重心座標系ΣＣの原点ｑＣを起点となるように配置する。このとき、例えばｊ＝１の場合について考える。固有値λ１は、ベクトルＣｑｉを、固有ベクトルｕ１へ射影した長さＬｉ１の二乗（Ｌｉ１）２を、Ｎ個の磁気データＣｑｉ（ｉ＝１、２、…Ｎ）について平均した値に等しくなる。つまり、磁気データｑ１〜ｑＮが、重心ｑＣを原点とした場合に、固有ベクトルｕｊの方向に対してどの程度の広がり有するかについては、対応する固有値λｊの大きさにより判断できる。
【００５７】
最小の固有値λ３に対応する固有ベクトルｕ３の方向が、最も広がりが小さい方向であるため、磁気データｑ１〜ｑＮが３次元的に分布しているといえるためには、最小固有値λ３の値が、一定の閾値λ０以上であればよい。
磁気データ分布判定処理では、式（２１）に示される行列Ａの最小固有値λ３を磁気データの分布を評価する評価値とし、その値が閾値λ０以上であれば、磁気データｑ１〜ｑＮの分布が十分に３次元的であると判断し、ステップＳ１０２へと進み、前述した中心点算出処理を行う。一方、最小固有値λ３が、閾値λ０未満である場合には、磁気データｑ１〜ｑＮの分布は３次元的な広がりを有さない２次元的な分布であると判断する。この場合は、処理を終了する。
【００５８】
［３．３．  歪判定処理］  
次に、ステップＳ１０３の歪判定処理について説明する。
図３に示したように、外部磁界Ｂｘが一様ではなく、かつ、外部磁界Ｂｘの影響が大きい場合には、３次元磁気センサ６０の出力する磁気データｑ１〜ｑＮは、ステップＳ１０２で算出された中心点ｘ０を中心とする球面Ｓの近傍には分布せず、球面とは異なる歪んだ形状の立体ＳＤの表面近傍に分布することになる。この場合、ステップＳ１０２の中心点算出処理で算出された球面Ｓの中心点ｘ０は、地磁気Ｂｇを表す球面ＳＧの中心点ｘ０Ｇとは異なる座標となるため、オフセットとしての意味を有さず、球面Ｓの中心点ｘ０をオフセットｃとして採用することを避ける必要がある（図１０参照）。
【００５９】
但し、立体ＳＤの形状が、球面の形状に十分に近い場合には、球面Ｓの中心点ｘ０をオフセットｃとして採用することができる。例えば、図４（Ａ）に示すように、外部磁界Ｂｘの影響が小さい場合には、センサ座標系ΣＳにおいて、３次元磁気センサ６０の出力する磁気データｑ１〜ｑＮが、ステップＳ１０２で算出された中心点ｘ０を中心とする球面Ｓの近傍に分布することになり、且つ、当該球面Ｓ及びその中心点ｘ０は、地磁気Ｂｇを表す球面ＳＧ及びその中心点ｘ０Ｇとほぼ等しくなる（図１１（Ｃ）参照）。
また、図４（Ｂ）に示すように、機器１の位置（厳密には、３次元磁気センサ６０）を固定したままその姿勢のみを変化させて磁気データｑ１〜ｑＮを取得する等、外部磁界Ｂｘが３次元磁気センサ６０によってほぼ一様な磁界として検出される場合には、磁気データｑ１〜ｑＮが、ステップＳ１０２で算出された中心点ｘ０を中心とする球面Ｓの近傍に分布することになる。そして、この場合、球面Ｓは地磁気Ｂｇを表す球面ＳＧとは異なるが、球面Ｓの中心点ｘ０は、球面ＳＧの中心点ｘ０Ｇとほぼ等しくなる（図１１（Ｂ）参照）。
歪判定処理は、磁気データｑ１〜ｑＮが立体ＳＤの表面近傍に分布すると仮定した場合に、立体ＳＤの形状が球面の形状とどの程度近いものであるかを評価し、立体ＳＤの形状が球面の形状に十分に近いと評価された場合に、球面Ｓの中心点ｘ０をオフセットｃとして採用する処理である。
【００６０】
上述した中心点算出処理では、磁気データｑ１〜ｑＮが球面Ｓの近傍に分布するとした場合の磁気データｑ１〜ｑＮの座標と球面Ｓとの誤差を目的関数ｆ１を用いて評価した。
これに対して歪判定処理では、まず、磁気データｑ１〜ｑＮが、球面とは異なる歪んだ形状の立体ＳＤの表面近傍に分布すると仮定し、式（２２）に示す、磁気データｑ１〜ｑＮと立体ＳＤとの誤差を表す目的関数ｆ２（Ｅ、ｘ）を導入する。
この、目的関数ｆ２（Ｅ、ｘ）は、球面を表す成分「Ｘ（ｘ−ｑｃ）−ｊ」の他に、式（２３）に示す曲面を表す成分ｋ（Ｅ）を有する。つまり、立体ＳＤは、球面と、曲面を表す成分ｋ（Ｅ）との重ね合わせであり、曲面を表す成分ｋ（Ｅ）の影響を評価することにより、立体ＳＤの形状が球面の形状とどの程度近いものであるかを評価することができる。
なお、曲面を表す成分ｋ（Ｅ）による影響の大きさ（すなわち、立体ＳＤの形状が球面の形状とどの程度近いものであるか）については、後述する式（２８）及び（２９）で示される評価値ｆ３（Ｅ）に基づいて評価することができる。そして、評価値ｆ３（Ｅ）が閾値以下であれば、立体ＳＤの形状は球面Ｓと看做せる範囲内であり、中心点算出処理で算出した中心点ｘ０をオフセットｃとして採用する。一方、評価値ｆ３（Ｅ）が閾値を上回る場合には、中心点ｘ０をオフセットｃとして採用しない。
【数１１】
0005641236.tif 000012
【００６１】
式（２３）に示した通り、曲面を表す成分ｋ（Ｅ）はｎ次元のベクトルである。曲面を表す成分ｋ（Ｅ）の第ｉ行目の要素ｋｅ(ｑｉ−ｘ０)は、以下の式（２５）で表される関数ｋｅ（ｐ）に対して、中心点ｘ０を原点とする座標系から見た磁気データｑｉを表すベクトル（ｑｉ−ｘ０）を代入することにより与えられる値である。関数ｋｅ（ｐ）は、式（２４）に示す評価行列Ｅを係数行列とし、式（２６）に示される３変数ｐ＝（ｐｘ、ｐｙ、ｐｚ）の二次形式で表される関数である。なお、評価行列Ｅは、式（２４）に示したように、対称行列である。
【数１２】
0005641236.tif 000013
【００６２】
前述した式（１７）乃至式（１９）では、磁気データｑ１〜ｑＮの座標と、球面Ｓとの誤差を、ベクトルδ１によって吸収しようとした。ベクトルδ１を構成する１行目〜Ｎ行目の各要素は、それぞれ独立した変数である。従って、ベクトルδ１によって誤差を吸収する場合には、各磁気データｑ１〜ｑＮと、球面Ｓとの誤差の各々は、互いに制約の無い独立した値となる。つまり、ベクトルδ１によって表されるＮ個の誤差は、それぞれが独立に確率的に定められるものであることを前提として表現されたものであり、Ｎ個の誤差は全体として、対称性を有し、かつ方向依存性の無いホワイトノイズであった。
従って、式（１７）及び式（１９）においては、磁気データｑ１〜ｑＮの座標と、球面Ｓとの誤差を、対称性を持ち方向依存性の無いホワイトノイズとみなし、そのホワイトノイズである誤差を最小化するような解を求めるものであった。
【００６３】
一方、式（２２）が示す目的関数ｆ２（Ｅ、ｘ）は、磁気データｑ１〜ｑＮの座標と、球面との誤差を、式（２５）で示した二次形式で表される関数ｋｅ（ｐ）を各成分とするベクトルである曲面を表す成分ｋ（Ｅ）によって吸収しようとするものである。３変数の二次形式は、変数が２次の項から構成される関数であり、このような関数により、３次元空間上の様々な曲面、例えば、直線、平面、柱面、球面、楕円面、錐面、１葉双曲面、２葉双曲面、及び各種放物面等を描くことができる。すなわち、式（２２）は、磁気データｑ１〜ｑＮの座標と、球面との誤差を、二次形式によって表される３次元空間上の曲面により吸収するものである。
従って、各磁気データｑ１〜ｑＮと、球面との誤差の各々は、互いに独立したものではなく、各磁気データｑ１〜ｑＮに対応するＮ個の誤差の全てが同一の関数ｋｅ（ｐ）により表される曲面上に存在するという制約を持った値として表現される。
目的関数ｆ２（Ｅ、ｘ）により、各磁気データｑ１〜ｑＮに対応するＮ個の誤差が、それぞれ独立に確率的に定められるホワイトノイズの場合とは別に、滑らかな曲面を表す成分ｋ（Ｅ）による球面からの歪という性質を有する誤差についても表現することが可能となった。すなわち、目的関数ｆ２（Ｅ、ｘ）を導入することで、各磁気データｑ１〜ｑＮと球面との誤差を、ホワイトノイズに起因する誤差と、曲面を表す成分ｋ（Ｅ）による歪に起因する誤差とに分離することが可能となった。
【００６４】
なお、式（１９）が示す目的関数ｆ１（ｘ）及び、式（２２）が示す目的関数ｆ２（Ｅ、ｘ）は、純粋にセンサ座標系ΣＳにおける幾何的な形状を表す方程式ではない。式（１９）は、純粋に幾何的な意味を持つ球面の方程式である式（１）に対して、複数の磁気データｑ１〜ｑＮの値を代入して得た平均値である式（１０）等により操作された結果として得られた式であり、幾何的な意味と共に、統計的な意味も有した式である。従って、式（２２）についても、幾何的な意味と共に、統計的な意味も有する式であり、式（２２）において現れる曲面を表す成分ｋ（Ｅ）の要素である関数ｋｅ（ｐ）は、センサ座標系ΣＳにおける曲面をそのまま表現するものではない。
しかし、式（１９）及び式（２２）は、球面の方程式に基づいた演算により導出されたものに過ぎないため、これらの式から純粋に幾何的な形状を表す方程式を再現することが可能である。すなわち、関数ｋｅ（ｐ）は、センサ座標系ΣＳにおける曲面を表すものと看做すことができる。
【００６５】
目的関数ｆ２（Ｅ、ｘ）の値が０となる場合、すなわち、下記の式（２７）が成立する場合、磁気データｑ１〜ｑＮは、立体ＳＤの表面と完全に一致するように分布する。
【数１３】
0005641236.tif 000014
ここで、図１０及び図１１を参照しながら、磁気データｑ１〜ｑＮが立体ＳＤの表面と完全に一致することを示す式（２７）が成立する場合と、磁気データｑ１〜ｑＮが球面Ｓと完全に一致することを示す式（１３）が成立する場合とについて検討する。
【００６６】
式（２７）が成立する場合、磁気データｑ１〜ｑＮは、図１０に示すように、立体ＳＤの表面に完全に一致するように分布する。そして、外部磁界Ｂｘが不均一で且つその影響が大きい場合には、地磁気Ｂｇを表す球面ＳＧと外部磁界Ｂｘを表す曲面ＳＸとの重ね合わせである立体ＳＤは、球面とは大きく異なる形状を有することになるため、立体ＳＤの形状と球面Ｓの形状とは大きく異なり、式（２７）のうち曲面を表す成分ｋ（Ｅ）の影響が大きくなる。
このような場合には、立体ＳＤ上に分布する磁気データｑ１〜ｑＮが球面Ｓ上に分布していると看做すことはできず、球面Ｓの中心点ｘ０の値は、意味の無い値となる。さらに、このような場合には、球面Ｓと球面ＳＧとは異なるものである可能性が高ため、球面Ｓの中心点ｘ０と球面ＳＧの中心点ｘ０Ｇとが一致しない可能性が高い。
このように、式（２７）が成立し、且つ、曲面を表す成分ｋ（Ｅ）の影響が大きい場合には、球面Ｓの中心点ｘ０と球面ＳＧの中心点ｘ０Ｇとが一致しない可能性が高く、球面Ｓの中心点ｘ０をオフセットｃとして採用することを避ける必要がある。
【００６７】
一方、式（２７）が成立する場合であっても、式（１３）も同時に成立する場合、すなわち、式（２７）のうち曲面を表す成分ｋ（Ｅ）が「０」となる場合には、球面Ｓの中心点ｘ０をオフセットｃとして採用することができる。
例えば、図１１（Ａ）に示すような、外部磁界Ｂｘが存在しない場合を検討する。この例では、外部磁界Ｂｘを表す曲面ＳＸが存在しないため、地磁気Ｂｇを表す球面ＳＧと外部磁界Ｂｘを表す曲面ＳＸとの重ね合わせである立体ＳＤは、球面ＳＧと等しくなり、その形状は球面となる。従って、式（２７）のうち曲面を表す成分ｋ（Ｅ）が「０」となり、式（１３）と式（２７）とが等しくなる。つまり、球面Ｓ及び立体ＳＤは、地磁気Ｂｇを表す球面ＳＧと等しくなる。
このような場合、球面Ｓの中心点ｘ０と球面ＳＧの中心点ｘ０Ｇとが一致するため、球面Ｓの中心点ｘ０をオフセットｃとして採用することができる。
【００６８】
また、式（２７）が成立する場合であっても、式（１３）も同時に成立すると看做すことができる場合、すなわち、曲面を表す成分ｋ（Ｅ）が小さい場合（曲面を表す成分ｋ（Ｅ）≒０となる場合）には、球面Ｓの中心点ｘ０をオフセットｃと看做して採用することができる。
例えば、図１１（Ｂ）に示すように、外部磁界Ｂｘが３次元磁気センサ６０によってほぼ一様な磁界として検出される場合を検討する。この例では、外部磁界Ｂｘを表す曲面ＳＸの形状を、中心点ｘ０Ｇを中心とする球面と看做すことができるため、球面ＳＧと曲面ＳＸとの重ね合わせである立体ＳＤの形状もほぼ球面となる。そのため、立体ＳＤを表す式（２７）のうち曲面を表す成分ｋ（Ｅ）による影響は小さくなる。つまり、式（２７）と同時に式（１３）も同時に成立すると看做すことができ、立体ＳＤと球面Ｓとがほぼ等しいものとなる。
よって、立体ＳＤ上に分布する磁気データｑ１〜ｑＮは、球面Ｓ上にも分布していると看做せるため、球面Ｓの中心点ｘ０の値は意味を持つ値となる。また、球面Ｓと中心点ｘ０Ｇを中心とする球面に近い形状の立体ＳＤとは、ほぼ等しいものとなるため、球面Ｓの中心点ｘ０と、球面ＳＧの中心点ｘ０Ｇとは、ほぼ同一の座標になる。
従って、図１１（Ｂ）に示すような場合にも、球面Ｓの中心点ｘ０をオフセットｃとして採用することができる。
【００６９】
また、式（２７）が成立する場合であっても、式（１３）も同時に成立すると看做すことができる場合として、図１１（Ｃ）に示すような、３次元磁気センサ６０によって検出される不均一な外部磁界Ｂｘの大きさが十分に小さい場合について検討する。
この例では、外部磁界Ｂｘを表す曲面ＳＸの影響を無視することができる。つまり、地磁気Ｂｇを表す球面ＳＧと外部磁界Ｂｘを表す曲面ＳＸとの重ね合わせである立体ＳＤは、地磁気Ｂｇを表す球面ＳＧとほぼ等しいと看做すことができるため、立体ＳＤの形状は球面に近くなる。そのため、立体ＳＤを表す式（２７）のうち曲面を表す成分ｋ（Ｅ）による影響は小さくなる。つまり、式（２７）と同時に式（１３）も同時に成立すると看做すことができ、立体ＳＤと球面Ｓとがほぼ等しいものとなる。
よって、立体ＳＤ上に分布する磁気データｑ１〜ｑＮは、球面Ｓ上にも分布していると看做せるため、球面Ｓの中心点ｘ０の値は意味を持つ値となる。また、球面Ｓと中心点ｘ０Ｇを中心とする球面ＳＧとは、ほぼ等しいものとなるため、球面Ｓの中心点ｘ０と、球面ＳＧの中心点ｘ０Ｇとは、ほぼ同一の座標になる。
従って、図１１（Ｃ）に示すような場合にも、球面Ｓの中心点ｘ０をオフセットｃとして採用することができる。
【００７０】
このように、曲面を表す成分ｋ（Ｅ）による影響が小さい場合、立体ＳＤ上に分布する磁気データｑ１〜ｑＮは、球面Ｓ上にも分布すると看做すことができ、球面Ｓの中心点ｘ０をオフセットｃとして採用することができる。以下では、曲面を表す成分ｋ（Ｅ）の影響の大きさを評価する方法について述べる。
【００７１】
ここで、以下の式（２８）及び（２９）に示す評価値ｆ３（Ｅ）を、曲面を表す成分ｋ（Ｅ）による影響の大きさを評価する評価値として定義する。
評価値ｆ３（Ｅ）の値が０となる場合には、式（２７）は式（１３）と一致し、立体ＳＤが球面Ｓと等しくなる。また、評価値ｆ３（Ｅ）の値が０とならない場合であっても、一定の閾値δｅ以下であれば、立体ＳＤが球面Ｓに近い形状を有するものであると判断できる。これらの場合には、磁気データｑ１〜ｑＮが球面Ｓの近傍に分布するため、前述した中心点算出処理により求められた球面Ｓの中心点ｘ０をオフセットｃとして採用することができる。
なお、評価値ｆ３（Ｅ）の値が、閾値δｅ以下である場合、目的関数ｆ２（Ｅ、ｘ）を最小化する解ｘ＝ｘ０２は、球面Ｓの中心点ｘ０とほぼ同一の値となるため、中心点ｘ０をオフセットｃとして採用する代わりに、目的関数ｆ２（Ｅ、ｘ）を最小化する解ｘ＝ｘ０２をオフセットｃとして採用しても良い。
【数１４】
0005641236.tif 000015
【００７２】
以下に、評価値ｆ３（Ｅ）を求める方法について説明する。
まず、式（２５）に示した関数ｋｅ（ｐ）は、二次形式で表される関数であるため、以下の式（３０）のように、ベクトルの内積として表現できる。
また、ｎ次元のベクトルである曲面を表す成分ｋ（Ｅ）の第ｉ行目の要素ｋｅ(ｑｉ−ｘ０)は、式（３０）の変数ｐに対して、ベクトル(ｑｉ−ｘ０)を代入した値であるため、式（３２）によって示されるベクトルｋｅ２（ｉ）、及び、式（３３）によって表される評価行列Ｅの各成分を並べたベクトルｅを用いて、式（３１）のように表せる。
【数１５】
0005641236.tif 000016
【００７３】
ここで、式（３４）で示す行列Ｘ２を導入する。行列Ｘ２は、第ｉ行目に、式（３２）によって示されるベクトルｋｅ２（ｉ）を転置したものと、ベクトル(ｑｉ−ｘ０)を転置したものを並べた行列である。
【数１６】
0005641236.tif 000017
【００７４】
式（３４）で表される行列Ｘ２を用いることで、式（２２）に示される目的関数ｆ２（Ｅ、ｘ）を、式（３５）で表される目的関数ｆ４（ｅ）に変形することができる。
なお、式（３５）におけるベクトルｅは、式（３３）に示したベクトルｅ２と、式（３７）に示したベクトルｅ３とを並べたベクトルである。また、式（３７）のベクトルｅ３は、式（１８）に示す変数ｘから、式（４）に示した重心ｑｃを引いたものである。
【数１７】
0005641236.tif 000018
【００７５】
式（３５）で表される目的関数ｆ４（ｅ）を最小化する解ｅ０は、以下の式（３８）式で表現される連立方程式に対して、ガウス消去法や、コレスキー分解法などを適用することで、によって求められる。
【数１８】
0005641236.tif 000019
【００７６】
このようにして得た解ｅ０に基づき、式（２４）により評価行列Ｅを復元する。そして、式（２８）に示した評価値ｆ３（Ｅ）の値、即ち、評価行列Ｅのノルムを求める。評価行列Ｅのノルムは、評価行列Ｅの固有値の絶対値の最大値に等しいため、ヤコビ法や、冪乗法により求めることができる。
前述の通り、評価値ｆ３（Ｅ）の値が閾値δｅ以下である場合には、中心点算出処理により求められた球面Ｓの中心点ｘ０、または、目的関数ｆ２（Ｅ、ｘ）を最小化する解ｘ＝ｘ０２のいずれも、オフセットｃとして採用することができる。解ｘ０２は、解ｅ０のうち、式（３６）のｅ３に相当する部分を、式（３７）に代入することにより求められる。
【００７７】
［４．  シミュレーション］  
中心点算出処理、及び歪判定処理の有効性を検証するために、シミュレーションを実施した。以下に、シミュレーションの前提条件及びその結果について述べる。
なお、シミュレーションは、前述した３次元磁気センサ６０の代わりに、２次元磁気センサを用いて行う。２次元磁気センサは、前述した地磁気Ｂｇ、外部磁界Ｂｘ、及び内部磁界Ｂｉの磁界のベクトルを、互いに直交する２方向の成分に分解してスカラー量を検知するための２つの磁気センサモジュールを備え、２つの磁気センサモジュールが各々出力するスカラー量を２つの成分とする２次元のベクトルデータを出力するものであり、Ｚ軸センサ６３を備えない点を除いて、３次元磁気センサ６０と同様に構成される。
【００７８】
［４．１．  ２次元での中心点算出処理及び歪判定処理］  
２次元磁気センサを用いる場合のオフセット導出処理（初期化処理、磁気データ取得処理、磁気データ分布判定処理、中心点算出処理、及び歪判定処理）は、３次元のベクトルデータの代わりに２次元のベクトルデータを用いる点を除いて、前述したオフセット導出処理と同様である。すなわち、２次元磁気センサを用いる場合のオフセット導出処理は、前述の式（１）〜式（３８）において、ｚ軸成分を除外した２次元のセンサ座標系ΣＳ２における演算処理となる。
この場合、中心点算出処理は、２次元のベクトルデータである磁気データｑ１〜ｑＮが、２次元平面内の円周Ｓの近傍に分布すると仮定して、円周Ｓの中心点ｘ０を算出する処理である。また、歪判定処理は、２次元のベクトルデータである磁気データｑ１〜ｑＮが、２次元平面内の曲線ＳＤの近傍に分布すると仮定した場合、曲線ＳＤの形状が円周の形状からどの程度相違するかを判定する処理である。さらに、磁気データ分布判定処理は、磁気データｑ１〜ｑＮの分散を表す行列Ａが２行２列の行列となるため、行列Ａが有する２つの固有値のうち、小さい方の固有値が閾値未満である場合には、磁気データｑ１〜ｑＮの分布が２次元的な広がりを有さない１次元的な分布であると判断する処理である。
以下では、前述の式（１）〜式（３８）を、２次元に適用するために必要な式の変形について述べる。
【００７９】
まず、中心点算出処理において、目的関数ｆ１（ｘ）を表した式（１９）、及び円周Ｓの中心点ｘ０を求める式（２０）において使用される、磁気データｑｉ、磁気データの重心ｑｃ、及び中心点ｘ０は、２次元空間においては、以下の式（４０）乃至（４２）となる。なお、ここで変数ｘは、ｘ＝（ｘ、ｙ）Ｔで表される２次元のベクトルである。
【数１９】
0005641236.tif 000020
【００８０】
また、歪判定処理において、目的関数ｆ２（Ｅ，ｘ）を表した式（２２）において使用される評価行列Ｅは、２次元空間においては、以下の式（４３）となる。
【数２０】
0005641236.tif 000021
【００８１】
そして、式（２８）の評価値ｆ３（Ｅ）、及び式（３５）の目的関数ｆ４（ｅ）を導出する過程で使用する、関数ｋｅ（ｐ）、ベクトルｋｅ２（ｉ）、行列Ｘ２、及びベクトルｅは、２次元空間においては、以下の式（４４）〜式（４９）となる。
【数２１】
0005641236.tif 000022
【００８２】
［４．２．  シミュレーションデータ］  
図１２を参照しつつ、シミュレーションで使用する磁気データｑ１〜ｑＮの生成方法、及びその前提条件について説明する。
まず、ケースＡとして、図１２（１）に示すように、観測誤差が存在せず、外部磁界Ｂｘによる磁界の不均一性も存在しない場合を想定した、磁気データｑ１Ａ〜ｑＮＡを準備した。具体的には、中心点をｃｓｉｍ＝（０，０）Ｔとする半径ｒｓｉｍの円周Ｓｓｉｍ上に、ｘ軸からの角度φが１度刻みとなるように、磁気データｑ１Ａ〜ｑＮＡが観測された場合を想定した。なお、データ数Ｎは、Ｎ＝１８１（すなわち、角度φは、０≦φ≦１８０）とし、磁気データｑ１Ａ〜ｑＮＡが円周Ｓｓｉｍ上の上半分に均等に分布することとした。
中心点ｃｓｉｍは、真のオフセット、つまり、センサの測定誤差が存在せず、外部磁界Ｂｘが一切存在しないか完全に一様であるという、シミュレーション上の前提条件として与えられた値である。このような中心点ｃｓｉｍは、実際の観測によって得られる磁気データから算出することは不可能であるが、シミュレーションにおける前提条件として設定している。なお、中心点ｃｓｉｍは、内部磁界Ｂｉを表すベクトルの座標値を意味するものであるが、シミュレーションでは便宜上、中心点ｃｓｉｍの座標を（０，０）Ｔとしている。
【００８３】
次に、ケースＢとして、図１２（２）に示すように、ケースＡで準備された磁気データｑ１Ａ〜ｑＮＡの各々の座標に対して、ｘ軸方向及びｙ軸方向にそれぞれ正規乱数値を重畳させた磁気データｑ１Ｂ〜ｑＮＢを準備した。この磁気データｑ１Ｂ〜ｑＮＢは、磁気データｑ１Ａ〜ｑＮＡに対して観測誤差であるホワイトノイズが加えられた場合を想定している。
【００８４】
また、ケースＣとして、図１２（３）に示すように、ケースＡで準備された磁気データｑ１Ａ〜ｑＮＡの各々の座標を半径方向に適当にずらすことにより、円周Ｓｓｉｍ上とは異なる滑らかに歪んだ曲線ＳＤを描くような磁気データｑ１Ｃ〜ｑＮＣを準備した。
【００８５】
［４．３．  指標の算出］
ケースＡ乃至Ｃにおいて設定した複数の磁気データに対して、前述した中心点算出処理及び歪判定処理を行った。具体的には、ケースＡ乃至Ｃの各々に対して、まず、複数の磁気データが、ある円周Ｓ上に存在すると仮定し、式（２０）を用いて円周Ｓの中心点ｘ０を算出し、次に、式（２８）で与えられる評価値ｆ３（Ｅ）の値を算出した。
【００８６】
また、比較のために、本出願人が特開２００７−１０７９２１号公報で開示している式（５１）に表される評価値ｆ５の値を算出した。評価値ｆ５は、磁気データｑ１〜ｑＮが、中心点をｘ０とする半径ｒの円周（または球面）からどの程度の誤差を有するかについて、判定するものである。なお、この評価値ｆ５において使用される半径ｒは、前述した中心点ｘ０と、各磁気データｑ１〜ｑＮとの距離に基づいて、式（５２）により算出する。
【数２２】
0005641236.tif 000023
【００８７】
更に、中心点算出手段により算出された中心点ｘ０と、シミュレーションの前提条件として与えられた真のオフセットを表す中心点ｃｓｉｍ＝（０，０）Ｔとの距離を表す、誤差δｘを、式（５３）に基づいて算出した。
なお、この誤差δｘは、真のオフセットである中心点ｃｓｉｍが既知であるシミュレーションにおいてのみ算出可能な値である。誤差δｘにより、本実施形態における評価値ｆ３（Ｅ）及び公知の評価値ｆ５のそれぞれが示す評価値の妥当性について、判断する。
【数２３】
0005641236.tif 000024
【００８８】
［４．４．  シミュレーション結果］
図１３のシミュレーション結果表を参照しつつ、シミュレーション結果について以下に述べる。
まず、シミュレーション結果表の第１列に記載した、ケースＡ乃至Ｃにおける誤差δｘについて説明する。誤差δｘは、ケースＡでは０．００％となり、ケースＢでは２．７９％となるのに対して、ケースＣでは７．７８％という、ケースＢと比較して大きな値となった。これは、ケースＣにおいて、中心点算出処理により算出した中心点ｘ０が、真のオフセットである中心点ｃｓｉｍから大きな誤差を有するものであることを意味している一方、ケースＢでは、中心点ｘ０と真のオフセットである中心点ｃｓｉｍとの誤差が、ケースＣに比べて小さいことを意味している。
すなわち、ケースＣの場合、中心点ｘ０は誤差が大きく、オフセットとして採用することを避ける必要があるのに対して、ケースＢの場合は、中心点ｘ０の誤差は小さく、オフセットとして採用しても構わないことを意味している。
【００８９】
次に、シミュレーション結果表の第２列に記載された、ケースＡ乃至Ｃにおける評価値ｆ３（Ｅ）の値について説明する。評価値ｆ３（Ｅ）の値は、ケースＡでは４．３６×１０−１４となり、ケースＢでは６．０７×１０−２となるのに対して、ケースＣでは２．４２×１０−１というケースＢと比較して大きな値となった。つまり、誤差δｘが大きいケースＣでは、評価値ｆ３（Ｅ）も大きな値を示し、誤差δｘが小さいケースＢでは、評価値ｆ３（Ｅ）の値も小さい値を示すこととなった。すなわち、評価値ｆ３（Ｅ）に基づいて、中心点ｘ０と、真のオフセットである中心点ｃｓｉｍとの誤差δｘを評価することができた。
【００９０】
シミュレーション結果表の第３列に記載された、ケースＡ乃至Ｃにおける公知の評価値ｆ５の値について説明する。評価値ｆ５の値は、ケースＡでは７．２５×１０−１４となり、ケースＢでは３．１４×１０−３となるのに対して、ケースＣでは３．０１×１０−３となった。
誤差δｘが大きな値を示すケースＣよりも、誤差δｘが小さな値を示すケースＢの方が、評価値ｆ５の値は大きい値を示した。すなわち、評価値ｆ５によっては、中心点ｘ０と真のオフセットである中心点ｃｓｉｍとの誤差δｘを評価することは不可能である。
【００９１】
このように、誤差δｘが大きな値を示すケースＣでは、評価値ｆ３（Ｅ）及び評価値ｆ５の双方が大きな値を示したのに対して、誤差δｘが小さな値を示すケースＢでは、評価値ｆ３（Ｅ）は小さな値を示したのに対して、評価値ｆ５の値は大きな値を示した。
このことから、評価値ｆ３（Ｅ）が、中心点ｘ０と真のオフセットである中心点ｃｓｉｍとの誤差δｘを評価し得る関数であることが分かった。
換言すれば、評価値ｆ３（Ｅ）は、磁気データｑ１〜ｑＮが、円周からノイズを有して分布する場合と、円周とは異なる歪んだ形状を有する曲線上に分布するものである場合とを、判断することができる関数であることが分かった。
【００９２】
［５．  結論］  
以上に示したように、本実施形態では、オフセット導出処理として、複数の磁気データｑ１〜ｑＮが適切な分布を有するかを判定する磁気データ分布判定処理、複数の磁気データｑ１〜ｑＮからオフセットの候補である中心点ｘ０を算出する中心点算出処理、及び、複数の磁気データｑ１〜ｑＮから算出された中心点ｘ０をオフセットとして採用することが妥当であるかを判断する歪判定処理、の３つの処理を設けることにより、不適切なオフセットを採用することを防止して、内部磁界Ｂｉに近い値を示す適切な中心点ｘ０のみをオフセットとして採用することを可能とした。
すなわち、本実施形態のオフセット導出処理は、正確なオフセットによる、正確な地磁気の値の算出が可能になるという利点を有する。
【００９３】
また、中心点算出処理では、複数の磁気データｑ１〜ｑＮが、中心点ｘ０を中心とした球面Ｓの近傍に分布すると仮定することで、複数の磁気データｑ１〜ｑＮより中心点ｘ０を算出し、これをオフセットの候補とした。
このような中心点算出処理は、オフセットの候補を簡単な演算により算出できるという利点を有し、処理速度の向上という利点を有するものである。
【００９４】
また、中心点算出処理では、中心点ｘ０の算出にあたり、複数の磁気データｑ１〜ｑＮの重心ｑｃを原点とする重心座標系ΣＣにおいて、複数の磁気データｑ１〜ｑＮの値を表現することで計算を行った。
これにより、３次元磁気センサ６０の出力値である、センサ座標系ΣＳにおける磁気データｑ１〜ｑＮの値をそのまま用いて計算する場合に比べて、データのサイズを小さくすることができ、処理に必要なメモリのサイズの節約をすると共に、処理速度を向上させるという利点を有する。
【００９５】
また、磁気データ分布判定処理において、行列Ａの最小固有値λ３を求め、その値が閾値λ０以上であることを判定することにより、磁気データｑ１〜ｑＮがセンサ座標系ΣＳにおいて十分に３次元的な広がりを有することを判断することで、正確な中心点ｘ０を導出することができないような磁気データｑ１〜ｑＮに基づく中心点算出処理を行うことを防止することを可能とした。
これにより、不適切な中心点ｘ０をオフセットとして採用することを避けることで、誤差の大きな地磁気の値を検出することを防止することができるという利点を有すると共に、不適切な磁気データｑ１〜ｑＮに基づいた不適切な中心点ｘ０を導出する中心点算出処理を行うことを未然に防止することで、正しいオフセットを採用するまでの時間を短縮することができるという利点を有する。
【００９６】
また、歪判定処理では、評価値ｆ３（Ｅ）を導入することで、磁気データｑ１〜ｑＮを表面近傍に有する立体ＳＤの形状が、球面の形状にどの程度近いものであるかについて評価することができた。これにより、中心点算出処理において、磁気データｑ１〜ｑＮが球面Ｓの近傍に分布すると仮定して導出された中心点ｘ０を、オフセットとして採用することの妥当性を評価することが可能となり、不適切なオフセットが採用されることを有効に防止することが可能となった。
【００９７】
なお、評価値ｆ３（Ｅ）は、磁気データｑ１〜ｑＮが、ある球面から、単にホワイトノイズに相当する誤差を有して分布する場合と、球面とは異なる歪んだ形状の立体ＳＤの表面近傍に分布する場合とを、区別することを可能としたという意義も有する。
例えば、従来の評価値ｆ５では、磁気データｑ１〜ｑＮが球面Ｓから誤差を有して分布する場合に、その誤差が、ホワイトノイズによるものであるのか、それとも、不均一な外部磁界Ｂｘによるものであるのかを判断できなかった。つまり、磁気データｑ１〜ｑＮが球面から大きく歪んだ形状を有する立体ＳＤの表面近傍に分布している場合であっても、単純に球面からのホワイトノイズとしての誤差として評価するにとどまっていた。
これに対して、本実施形態の評価値ｆ３（Ｅ）は、ホワイトノイズによる誤差と、不均一な外部磁界Ｂｘの影響による誤差とを区別することが可能である。従って、誤差が単なるホワイトノイズである場合に算出された中心点ｘ０は、内部磁界Ｂｉを表すベクトルとの誤差が小さいためオフセットとして採用される。一方、不均一な外部磁界Ｂｘによる誤差が存在する場合に算出された中心点ｘ０は、内部磁界Ｂｉを表すベクトルＳＢｉとの誤差が大きいためオフセットとしての採用を防止することができる。
これにより、本実施形態のオフセット導出処理は、正しいオフセット算出までの測定回数の低減化を可能とすると共に、不正確な値をオフセットとして採用することを未然に防止することが可能になるという利点を有する。
【００９８】
また、歪判定処理では、目的関数ｆ２（Ｅ、ｘ）にｎ次元のベクトルである曲面を表す成分ｋ（Ｅ）を導入した。曲面を表す成分ｋ（Ｅ）の第ｉ行目の要素は、二次形式である関数ｋｅ（ｐ）に対して、磁気データｑｉから中心点ｘ０を引き算したベクトル（ｑｉ−ｘ０）を代入することにより与えられる値である。
従来は、磁気データｑ１〜ｑＮの座標と、球面Ｓとの誤差を、式（１７）に示すようなベクトルδ１によって吸収していた。ベクトルδ１を構成する１行目〜Ｎ行目の各要素は、それぞれ独立した変数であるため、ベクトルδ１によって表現されるＮ個の誤差の各々は、互いに制約の無い独立した値となる。つまり、ベクトルδ１によっては表されるＮ個の誤差は、それぞれが独立に確率的に定められるものであり、Ｎ個の誤差は全体として、対称性を有し、かつ方向依存性の無いホワイトノイズであった。
これに対して、本実施形態では、二次形式である関数ｋｅ（ｐ）を要素とするｎ次元のベクトルである曲面を表す成分ｋ（Ｅ）により、各磁気データｑ１〜ｑＮと、球面との誤差の各々を表現することにより、各磁気データｑ１〜ｑＮに対応するＮ個の誤差の各々が、関数ｋｅ（ｐ）により表される曲面上に存在するという制約を持った値として表現される。つまり、各磁気データｑ１〜ｑＮに対応するＮ個の誤差が、それぞれが独立に確率的に定められるホワイトノイズの場合とは別に、滑らかな曲面による球面からの歪という性質を有する誤差である場合についても表現することが可能となった。これにより、球面からの誤差から、ホワイトノイズに起因する部分と、曲面による歪に起因する部分とを分離することが可能となった。
従って、本実施形態のオフセット導出処理は、磁気データｑ１〜ｑＮと球面との誤差のうち、外部磁界Ｂｘによる歪による影響の大きさを判断することができ、中心点算出処理において算出された中心点ｘ０をオフセットとして採用することができない外部磁界Ｂｘによる歪が存在する場合を、的確に判断することが可能になった。
【符号の説明】
【００９９】
１…機器、２…物体、１０…ＣＰＵ、６０…３次元磁気センサ、Ｂｇ…地磁気、Ｂｉ…内部磁界、Ｂｘ…外部磁界、ΣＧ…地上座標系、ΣＳ…センサ座標系、ｑｉ…磁気データ、ｘ０…中心点、ｘ０Ｇ…中心点（地磁気）、Ｅ…評価行列、Ｐｓ…位置、θｓ…姿勢、Ｓ…球面、ＳＧ…球面（地磁気）、ＳＸ…曲面、ＳＤ…立体、ｒ…球面の半径、ｆ１（ｘ）…目的関数、ｆ２（Ｅ、ｘ）…目的関数、ｆ３（Ｅ）…評価値、ｋ（Ｅ）…曲面を表す成分。
【図１】
0005641236.tif 000028
【図２】
0005641236.tif 000029
【図３】
0005641236.tif 000030
【図４】
0005641236.tif 000031
【図５】
0005641236.tif 000032
【図６】
0005641236.tif 000033
【図７】
0005641236.tif 000034
【図８】
0005641236.tif 000035
【図９】
0005641236.tif 000036
【図１０】
0005641236.tif 000037
【図１１】
0005641236.tif 000038
【図１２】
0005641236.tif 000039
【図１３】
0005641236.tif 000040