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