(58)【調査した分野】(Int.Cl.,DB名)
前記磁気データを前記中心点算出用球面の中心点を原点とする座標系で表した3軸のベクトルと、当該3軸のベクトルを対称行列である歪評価行列により変換したベクトルとの内積を、前記複数の磁気データの各々について算出し、複数の算出結果を要素とするベクトルを歪誤差ベクトルとし、
前記複数の磁気データの各々で示される3軸の座標により特定されるそれぞれの位置と前記歪判定用球面との誤差を表すベクトルを、歪判定用球面誤差ベクトルとし、
前記歪誤差ベクトルと、前記歪判定用球面誤差ベクトルとの和を立体誤差ベクトルとし、
前記共分散行列の前記最小固有値に対応する正規化された固有ベクトルと、前記旧オフセットから前記歪判定用球面の中心点を示す歪判定用更新ベクトルとの内積に、第1係数を乗じた値を、第1誤差とし、
前記歪評価行列と、前記固有ベクトルとの積に、第2係数を乗じた値を第2誤差とし、
前記立体誤差ベクトル、前記第1誤差、及び前記第2誤差を要素とするベクトルを、歪評価ベクトルとしたとき、
前記歪評価値は、
前記歪評価行列の各々の成分と、前記歪判定用球面の中心点を表す3軸のベクトルの各々の要素とを変数とし、前記歪評価ベクトルの大きさを表す歪評価関数を最小化するときの、前記歪評価行列のノルムであることを特徴とする、
請求項4に記載の地磁気測定装置。
前記複数の磁気データの各々で示される3軸の座標として特定されるそれぞれの位置が、前記中心点算出用球面近傍に確率的に分布すると仮定した場合の、前記複数の磁気データで示される3軸の座標により特定されるそれぞれの位置と前記中心点算出用球面との誤差を表すベクトルを、中心点算出用球面誤差ベクトルとし、
前記共分散行列の前記最小固有値に対応する正規化された固有ベクトルと、前記旧オフセットから前記中心点算出用球面の中心点を示す中心点算出用更新ベクトルとの内積に、第1係数を乗じた値を、第3誤差とし、
前記中心点算出用球面の中心点は、中心点算出関数の値を最小化する3次元のベクトルで与えられ、
前記中心点算出関数は、前記3次元のベクトルを変数とし、且つ、前記中心点算出用球面誤差ベクトルと前記第3誤差とを要素とする中心点算出ベクトルの大きさを表すことを特徴とする、
請求項5に記載の地磁気測定装置。
前記磁気データを前記中心点算出用球面の中心点を原点とする座標系で表した3軸のベクトルと、当該3軸のベクトルを対称行列である歪評価行列により変換したベクトルとの内積を、前記複数の磁気データの各々について算出し、複数の算出結果を要素とするベクトルを歪誤差ベクトルとし、
前記複数の磁気データの各々で示される3軸の座標として特定されるそれぞれの位置と前記歪判定用球面との誤差を表すベクトルを、歪判定用球面誤差ベクトルとし、
前記歪誤差ベクトルと、前記歪判定用球面誤差ベクトルとの和を、立体誤差ベクトルとし、
前記歪評価行列の各々の成分と、前記歪判定用球面の中心点を表す3軸のベクトルの各々の要素とを変数とし、前記立体誤差ベクトルの大きさを表す関数を、立体歪評価関数とし、
前記共分散行列の前記最小固有値に対応する正規化された固有ベクトルと、前記旧オフセットから前記歪判定用球面の中心点を示す歪判定用更新ベクトルとが直交する条件を、第1の制約条件とし、
前記歪評価行列と、前記固有ベクトルとの積が、零ベクトルとなる条件を、第2の制約条件としたとき、
前記最小固有値が閾値よりも小さい値である場合、
前記歪評価値は、
前記第1の制約条件及び前記第2の制約条件を充足したうえで前記立体歪評価関数を最小化するときの、前記歪評価行列のノルムであることを特徴とする、
請求項4に記載の地磁気測定装置。
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、3次元磁気センサが搭載される携帯電話等の機器の近くに、スピーカやパソコン等の磁界を発生させる物体が存在する場合、3次元磁気センサは、前述した地磁気及び内部磁界の他に、機器の外部の物体が発する外部磁界も検出する。一般的に、外部磁界は、外部磁界を発生させる物体と3次元磁気センサとの相対的位置関係等によって、向き及び大きさが変化する不均一な磁界である。
【0008】
従来の方法では、このような不均一な外部磁界の存在の有無や、不均一な外部磁界による影響の大きさを知ることは出来なかった。従って、従来の方法では、不均一な外部磁界が存在する環境下で算出された内部磁界のベクトルが大きな誤差を持つ場合であっても、外部磁界が存在しない環境下で計算された正しい値であると判断し、これをオフセットとして採用してしまうため、オフセットに大きな誤差を含むことがあるという問題が存在した。
【0009】
また、特許文献1に開示されているような、機器の姿勢変化が不十分な場合に、3次元磁気センサを姿勢変化させつつ取得した複数の磁気データと、過去に算出したオフセットとを用いることによりオフセットを算出する方法も、不均一な外部磁界の存在を考慮するものではなく、不均一な外部磁界が存在する環境では、外部磁界の影響を受けた誤差を含むオフセットを、正確なオフセットであると判断してしまうという問題が存在した。
【0010】
そこで、本発明は上述した事情を鑑み、機器の姿勢変化が不十分な場合にも、外部磁界の影響の程度を評価することより、算出したオフセット値が誤差を含まない正確な値であるかを判断し、算出したオフセットの値の採否を決定することを解決課題とする。
【課題を解決するための手段】
【0011】
以下、本発明について説明する。なお、本発明の理解を容易にするために本実施形態、変形例、及び添付図面の参照符号を括弧書きにて付記するが、それにより本発明が本実施形態に限定されるものではない。
【0012】
上述した課題を解決するため、本発明に係る地磁気測定装置は、磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する3方向の磁気成分をそれぞれ検出する3次元磁気センサと、前記3次元磁気センサから、3軸の座標系において表現される3次元のベクトルデータとして順次出力される磁気データ(q
i)を蓄積する蓄積手段と、前記蓄積手段に蓄積された前記複数の磁気データ(q
1〜q
N)で示される複数の座標の分布の3次元的な広がりの程度を示す分散評価値を算出する、分布指標算出手段と、前記複数の磁気データの各々が示す3軸の座標が、歪判定用球面(S
2)を歪ませた形状の立体(SD)の表面近傍に確率的に分布すると仮定して、前記複数の磁気データと、前記分散評価値とに基づいて、前記立体(SD)と、前記歪判定用球面(S
2)との形状の相違の程度を示す歪評価値(g
D(E))を算出し、前記歪評価値(g
D(E))が歪許容値(δ
0)以下であるか否かを判定する、歪判定手段と、前記歪判定手段の判定結果が肯定である場合に、前記磁気データのうち前記部品の発生する磁界の成分を表す3軸の座標であるオフセット(c)を更新する、オフセット更新手段と、を備えることを特徴とする。
【0013】
磁界を発生させる部品を備えた機器に組み込まれる3次元磁気センサは、測定対象である地磁気の他に、部品が発生させる内部磁界を検出する。磁極北に向かう水平成分と伏角方向の鉛直成分とを有する地磁気は、機器の姿勢が変化する場合、3次元磁気センサによって、大きさは一定で方向のみを変化させる磁界として検出される。一方、内部磁界は、機器に対して一定の方向を向き一定の大きさを有する。従って、3次元磁気センサが、地磁気と内部磁界とを検出する場合、3次元磁気センサから出力される複数の磁気データは、内部磁界の方向及び大きさを表す座標を中心点とし、地磁気の大きさを表す半径を有する球面近傍に分布することになる。
正確な地磁気を算出するためには、内部磁界をキャンセルするために3次元磁気センサから出力される磁気データにオフセットを用いた補正を施す。前述の通り、球面の中心点は内部磁界の方向及び大きさを表す座標であるため、これをオフセットとして採用することができる。しかしながら、機器の近くに磁界を発生させる物体が存在する場合、3次元磁気センサが物体の発生させる磁界(外部磁界)を検出する場合がある。外部磁界が、物体と3次元磁気センサとの相対位置関係によって向きや大きさを変化させる不均一な磁界の場合、3次元磁気センサの出力する複数の磁気データは球面近傍には分布せず、球面とは異なる歪んだ形状を有する立体の表面近傍に分布する。
この発明によれば、3次元磁気センサが出力する複数の磁気データが示す3軸の座標が、歪判定用球面を歪ませた形状を有する立体の表面近傍に分布すると仮定し、立体と歪判定用球面との形状の相違の程度を示す歪評価値を算出する。
歪評価値が、歪許容値以下の値を示し、立体と歪判定用球面とがほぼ同一の形状を有していると看做すことができる場合、立体の表面近傍に分布する複数の磁気データの示す座標が、歪判定用球面近傍に分布すると看做すことができる。つまり、複数の磁気データの示す座標は、球面の形状となるように分布する。従って、歪評価値が歪許容値以下の値を示す場合、複数の磁気データの示す座標を近傍に有する球面の中心点を算出し、当該中心点を用いてオフセットを更新することができる。
一方、歪評価値が、歪許容値よりも大きな値を示し、立体が歪判定用球面とは異なる歪んだ形状を有する場合、立体の表面近傍に分布する複数の磁気データの示す座標は、歪判定用球面近傍に分布すると看做すことはできない。つまり、複数の磁気データの示す座標の分布の形状は、球面とは異なる形状になる。この場合、複数の磁気データの示す座標が、ある球面近傍に分布すると看做したうえで、当該球面の中心点をオフセットとして算出することは困難である。また、この場合、3次元磁気センサから出力される磁気データは、地磁気及び内部磁界の他に、不均一な外部磁界の含んだ値である可能性が高いため、このような磁気データに基づいて算出されたオフセットは、不均一な外部磁界の影響による誤差を含んだ不正確な値となる可能性が高い。従って、歪評価値が歪許容値よりも大きな値を示す場合には、オフセットの更新を避ける必要がある。
このように、本発明は、歪評価値を算出することにより、オフセットの更新可否を判定し、オフセットを更新することが可能であると判定された場合に限り、オフセットを更新する。これにより、正確な地磁気の算出が可能となった。
【0014】
前述の通り、不均一な外部磁界の影響が大きい場合、複数の磁気データの示す座標は、球面とは異なる歪んだ形状を有する立体の表面近傍に分布する。そして、立体と球面との形状の相違の程度を評価することにより、不均一な外部磁界の影響により誤差を含んだ不適切な中心点をオフセットとして採用することを防止することができる。
しかし、機器の動かし方が不十分で複数の磁気データの示す座標がある平面上に2次元的に分布する場合には、立体の3次元的な形状を把握することは不可能である。つまり、立体の3次元的な形状と球面の形状との相違の程度を評価することはできない。この場合には、立体を平面で切断した切断面を表す曲線と、球面を平面で切断した切断面を表す円周との形状の相違の程度を評価することで、外部磁界の影響の大きさを判断することが必要となる。
この発明によれば、複数の磁気データが示す座標の分布の3次元的な広がりの程度を示す分散評価値を算出し、複数の磁気データと分散評価値とに基づいて、立体と歪判定用球面との形状の相違の程度を示す歪評価値を算出する。従って、複数の磁気データの示す座標が3次元的に分布する場合、及び2次元的に分布する場合の双方について、立体と歪判定用球面との形状の相違の程度を評価して、外部磁界の影響の大きさを判断することが可能となる。
【0015】
上述した課題を解決するため、本発明に係る地磁気測定装置は、前記複数の磁気データの各々が示す3軸の座標が、中心点算出用球面(S)の近傍に確率的に分布すると仮定して、前記複数の磁気データに基づいて前記中心点算出用球面の中心点(x
0)を算出する、中心点算出手段をさらに備え、前記オフセット更新手段は、前記歪判定手段の判定結果が肯定である場合に、前記オフセット(c)を、旧オフセット(c
0)から前記中心点算出用球面の中心点(x
0)に更新する、ことを特徴とする。
【0016】
この発明によれば、3次元磁気センサが出力する複数の磁気データが示す3軸の座標が、歪判定用球面を歪ませた形状を有する立体の表面近傍に分布すると仮定し、立体と歪判定用球面との形状の相違の程度を示す歪評価値を算出する。歪評価値が、歪許容値以下の値を示し、立体と歪判定用球面とがほぼ同一の形状を有していると看做すことができる場合、複数の磁気データの示す座標が歪判定用球面近傍に分布すると看做すことができる。つまり、複数の磁気データの示す座標は、球面の形状となるように分布する。また、中心点算出用球面は、複数の磁気データの示す座標が中心点算出用球面の近傍に分布することを仮定して定められる。従って、複数の磁気データの示す座標が球面の形状となるように分布する場合、複数の磁気データの示す座標は、中心点算出用球面近傍にも分布すると看做すことができる。このとき、複数の磁気データが示す3軸の座標が、中心点算出用球面近傍に確率的に分布すると仮定して算出される中心点算出用球面の中心点をオフセットとして採用することができる。一方、歪評価値が、歪許容値よりも大きな値を示し、立体が歪判定用球面とは異なる歪んだ形状を有する場合、複数の磁気データの示す座標が歪判定用球面近傍に分布すると看做すことはできない。つまり、複数の磁気データの示す座標の分布の形状は、球面とは異なる形状になる。従って、複数の磁気データの示す座標は、中心点算出用球面近傍に分布すると看做すこともできない。このとき、中心点算出用球面の中心点をオフセットとして採用することを防止する。
このように、本発明は、歪評価値を算出することにより、中心点算出用球面の中心点をオフセットとして採用することが適当でない場合を判定し、中心点算出用球面の中心点がオフセットとして適切であると判定された場合に限り、中心点算出用球面の中心点をオフセットに採用する。これにより、正確な地磁気の算出が可能となった。
【0017】
また、この発明によれば、複数の磁気データが示す座標の分布の3次元的な広がりの程度を示す、分散評価値を算出する。そして、複数の磁気データと、分散評価値とに基づいて、中心点算出用球面の中心点を算出する。
前述の通り、球面の中心点を算出するためには、複数の磁気データが3次元的に球面近傍に分布するように機器を動かすことが望ましい。しかし、機器の動かし方が不十分な場合、複数の磁気データの示す座標が2次元的に分布することがある。すなわち、機器の動かし方が不十分な場合、複数の磁気データの示す座標は、球面をある平面で切断した切断面を表す円周の近傍に分布する。この場合、複数の磁気データより、円周の中心を通り平面に垂直な直線を算出することはできるが、複数の磁気データの示す座標が3次元に分布する場合に算出されるはずの球面の中心点を特定することはできない。すなわち、複数の磁気データの示す座標が2次元的に分布するにも関わらず、複数の磁気データの示す座標が3次元的に分布すると想定して球面の中心点を算出した場合、球面の中心点の座標は、複数の磁気データが分布する平面に垂直な方向について不正確となる。従って、複数の磁気データの示す座標が2次元的に分布する場合には、球面の中心点の座標が有する情報のうち、不正確な情報を排除する必要がある。
この発明によれば、複数の磁気データと、分散評価値とに基づいて、中心点算出用球面の中心点を算出する。すなわち、複数の磁気データの示す座標が2次元的に分布する場合には、そのことを把握したうえで、中心点算出用球面の中心点を算出する。従って、中心点算出用球面の中心点が有する情報のうち、不正確な情報を排除して、オフセットを算出することができる。これにより、複数の磁気データの示す座標が2次元的に分布する場合であっても、不正確な値をオフセットとして採用することを防止することが可能となる。
【0018】
また、上述した地磁気測定装置において、前記歪判定手段の判定結果が否定である場合に、利用者に前記機器の位置を変化させずに前記機器の姿勢を変化させるように促す手段を備えることが好ましい。
【0019】
この発明によれば、上述した地磁気測定装置は、歪判定手段において歪評価値が歪許容値よりも大きいと判定される場合、すなわち、3次元磁気センサから出力される複数の磁気データの示す座標が立体の表面近傍に分布し、且つ、立体の形状が球面から大きな歪を有する場合、利用者に対して機器の位置を変化させずに機器の姿勢を変化させるように促す手段を備える。
3次元磁気センサは、測定対象である地磁気の他に、機器に備えられた部品の発する内部磁界と、外部の物体の発する不均一な外部磁界とを検出する。そして、この不均一な外部磁界の影響が大きい場合には、複数の磁気データの示す座標は、球面とは大きく異なる歪んだ形状を有する立体の表面近傍に分布することになり、中心点算出手段により算出された中心点をオフセットとして採用することができなくなる。
しかし、このような不均一な外部磁界も、外部磁界を発生させる外部の物体との相互位置関係が変化しない場合には、一定の大きさの磁界にすぎない。つまり、3次元磁気センサの位置を変化させずに姿勢を変化させる場合、外部磁界は、3次元磁気センサによって、一定の大きさを有し方向のみを変化させる磁界として検出される。この場合、3次元磁気センサから出力される複数の磁気データで示される座標は、ある球面近傍に分布することになる。そして、この球面の中心点は、機器に備えられた部品の発する磁界(内部磁界)の成分を示す座標とほぼ同一の座標となる。また、中心点算出用球面は、複数の磁気データの示す座標が中心点算出用球面の近傍に分布することを仮定して定められる。よって、複数の磁気データの示す座標が球面の形状となるように分布する場合、複数の磁気データの示す座標は、中心点算出手段によって算出された中心点を中心とする中心点算出用球面近傍にも分布すると看做すことができる。従って、中心点算出用球面の中心点は内部磁界の成分を示す座標とほぼ同一の座標となり、中心点算出用球面の中心点をオフセットとして採用することが可能となる。
このように、上述した地磁気測定装置は、利用者に機器の位置を変化させずに機器の姿勢を変化させるように促す手段を備えることにより、不均一な外部磁界が存在する場所において複数の磁気データを検出する場合であっても、適切なオフセットを算出することができるような動作を利用者に促すことが可能となる。
【0020】
また、上述した地磁気測定装置において、前記分散評価値は、前記複数の磁気データの分散を表す共分散行列(A)の最小固有値(λ
3)であることが好ましい。
【0021】
この発明によれば、複数の磁気データの分散を表す共分散行列の最小固有値の値を、分散評価値として用いている。
磁気データは3軸の座標を示すので、複数の磁気データの分散を表す共分散行列は、3行3列の行列となる。この共分散行列から3つの固有ベクトルと3つの固有値が得られる。3つの固有ベクトルの一つは、複数の磁気データが最も大きく分布する方向を表している。この固有ベクトルに対応する固有値は最大固有値となり、逆に、複数の磁気データが最も小さく分布する方向の固有ベクトルに対応する固有値が最小固有値となる。複数の磁気データが理想的に2次元的に分布する場合、最小固有値の値は0に限りなく近い値を有し、複数の磁気データが3次元的に分布する場合、最小固有値の値は、複数の磁気データの分布の3次元的な広がりの程度に従って大きな値を有する。従って、共分散行列の最小固有値を、分散評価値として用いることにより、複数の磁気データの分布の3次元的な広がりの程度を的確に把握することが可能となる。
【0022】
また、上述した地磁気測定装置において、前記磁気データを前記中心点算出用球面の中心点(x
0)を原点とする座標系で表した3軸のベクトル(q
i−x
0)と、当該3軸のベクトルを対称行列である歪評価行列(E)により変換したベクトル(E(q
i−x
0))との内積を、前記複数の磁気データの各々について算出し、複数の算出結果を要素とするベクトルを歪誤差ベクトル(k(E))とし、前記複数の磁気データの各々で示される3軸の座標により特定されるそれぞれの位置と前記歪判定用球面(S
2)との誤差を表すベクトルを、歪判定用球面誤差ベクトル(δ
S2)とし、前記歪誤差ベクトル(k(E))と、前記歪判定用球面誤差ベクトル(δ
S2)との和を立体誤差ベクトル(δ
SD)とし、前記共分散行列の前記最小固有値(λ
3)に対応する正規化された固有ベクトル(u
3)と、前記旧オフセットから前記歪判定用球面の中心点(x
02)を示す歪判定用更新ベクトル(k
2)との内積に、第1係数(α)を乗じた値を、第1誤差(δ
U2)とし、前記歪評価行列と、前記固有ベクトル(u
3)との積に、第2係数(β)を乗じた値を第2誤差(δ
E)とし、
前記立体誤差ベクトル、前記第1誤差、及び前記第2誤差を要素とするベクトルを、歪評価ベクトル(δ
SD2)としたとき、前記歪評価値(g
D(E))は、前記歪評価行列の各々の成分(e
11〜e
33)と、前記歪判定用球面の中心点(x
02)を表す3軸のベクトルの各々の要素とを変数とし、前記歪評価ベクトルの大きさを表す歪評価関数(g
SD2(e))を最小化するときの、前記歪評価行列のノルムであることを特徴とする、ことが好ましい。
【0023】
この発明によれば、立体誤差ベクトルを要素として含む歪評価ベクトルの大きさを最小化することで、歪評価行列、及び歪判定用球面の中心点を算出する。立体誤差ベクトルは、歪判定用球面誤差ベクトルと、歪誤差ベクトルとの和で与えられる。
ここで、歪判定用球面誤差ベクトルは、複数の磁気データで示される座標と歪判定用球面との誤差を、任意の値を取り得る制約の無い変数で表した値を各要素とするベクトルである。従って、歪判定用球面誤差ベクトルの各要素、すなわち、複数の磁気データに対応する誤差の各々は、互いに独立なものである。その結果、複数の磁気データで示される座標と歪判定用球面との誤差を最小化するように歪判定用球面を定めた場合、歪判定用球面誤差ベクトルにより表される複数の誤差は、全体として対称性を有し、方向依存性の無い、ホワイトノイズとなる。
一方、歪誤差ベクトルは、中心点算出用球面の中心点から見た磁気データの示す座標を表すベクトルと、当該ベクトルを歪評価行列により変換したベクトルとの内積を、複数の磁気データの各々について並べたベクトルである。歪評価行列は対称行列であるため、歪誤差ベクトルの各要素は、対称行列である歪評価行列を係数行列とし、中心点から見た磁気データの座標を表すベクトルの3つの要素の各々を変数とする、3変数二次形式となる。すなわち、歪誤差ベクトルは、複数の磁気データで示される座標と歪判定用球面との誤差の各々を、二次形式で表される同一の関数に基づく曲面上に存在するという制約の下で表現するベクトルである。このような歪誤差ベクトルを用いて、複数の磁気データと歪判定用球面との誤差を表現することにより、ホワイトノイズとは別に、二次形式の関数に基づく曲面で表される誤差(すなわち、球面からの歪)を表現することが可能となり、これまで一律にホワイトノイズとみなしていた誤差から、ホワイトノイズとは異なる球面からの歪による誤差を分離することが可能となる。
歪判定用球面誤差ベクトルと歪誤差ベクトルとを加算して得られる立体誤差ベクトルは、複数の磁気データを表面近傍に有し、球面とは異なる形状の立体を表現する。そして、立体誤差ベクトルのうち、歪誤差ベクトルの大きさ評価することで、立体の形状が、歪判定用球面の形状からどの程度の差異(歪)を有するか(つまり、ホワイトノイズとは異なる球面からの歪による誤差の大きさ)を、評価することが可能となる。その結果、立体と歪判定用球面とが実質的に同一の形状を有するほど近似していると評価される場合には、複数の磁気データの示す座標が歪判定用球面近傍にも分布すると看做すことができる。前述の通り、複数の磁気データの示す座標が、球面の形状となるように分布する場合、複数の磁気データの示す座標は、中心点算出用球面近傍にも分布すると看做すことができる。従って、立体と歪判定用球面とが実質的に同一の形状を有するほど近似していると評価される場合には、中心点算出用球面の中心点をオフセットとして採用する。一方、立体が歪判定用球面とは大きく異なる歪んだ形状を有すると評価される場合には、複数の磁気データで示される座標が歪判定用球面近傍に分布すると看做すことはできないため、中心点算出用球面の中心点をオフセットとして採用することを防止する。
すなわち、上述した地磁気測定装置は、中心点算出手段によって算出された中心点のうち、不均一な外部磁界の影響を受けていない複数の磁気データより算出された、適切な中心点のみをオフセットとして採用することが可能であるという利点を有する。この結果、正確な地磁気を検出することが可能となる。
【0024】
本発明は、立体と球面との形状の相違の程度を示す歪評価値を、歪評価行列のノルムとして定めている。歪評価行列は、3行3列の対称行列であり、3つの固有値と、互いに直交する3つの固有ベクトルとを有する。歪評価行列のノルムは、歪評価行列が有する3つの固有値のうち、絶対値が最大となる固有値に基づいて定められる。
ところで、歪評価関数を最小化することで算出される歪評価行列は、複数の磁気データの示す座標を表面近傍に有する立体と歪判定用球面との形状の相違を表す歪誤差ベクトルを定める行列である。
ここで、歪誤差ベクトルは、複数の磁気データの示す座標と歪判定用球面との誤差のうちホワイトノイズとして吸収しきれない誤差、すなわち、立体と歪判定用球面との形状の相違を表すベクトルである。つまり、歪誤差ベクトルを構成する複数の要素のうち、ある要素の絶対値は、当該要素に対応する磁気データの座標と歪判定用球面との誤差が大きい場合には大きな値に定められ、当該要素に対応する磁気データの座標と歪判定用球面との誤差が小さい場合には小さな値に定められる。従って、歪評価行列の各成分は、歪誤差ベクトルを構成する複数の要素が全体として、複数の磁気データの座標と歪判定用球面との誤差の大きさを正確に表現することができるように定められる。
ところで、歪誤差ベクトルの各要素は、中心点算出用球面の中心点から見た磁気データの示す座標を表すベクトルと、当該ベクトルを歪評価行列により変換したベクトルとの内積として与えられる。つまり、歪誤差ベクトルを構成する複数の要素のうち、ある要素の絶対値は、当該要素に対応する磁気データの示す座標を中心点算出用球面の中心点から表したベクトルと、歪評価行列が有する3つの固有値のうち絶対値の大きさが最大となる固有値に対応する固有ベクトルとが平行となる場合には、大きな値となる。従って、歪評価行列が有する3つの固有値のうち絶対値が最大となる固有値に対応する固有ベクトルが、歪判定用球面からの距離が大きな位置に存在する磁気データが多く存在する領域を示すように、歪評価行列の各成分を定める場合、歪誤差ベクトルは、複数の磁気データの示す座標と歪判定用球面との誤差の大きさを正確に表現できることになる。
このように、歪評価行列の各成分は、絶対値の大きさが最大となる固有値に対応する固有ベクトルの方向と、歪判定用球面からの誤差が大きな磁気データが多く存在する領域を中心点算出用球面の中心点を起点として表したベクトルの方向とが、近づくように定められる。そして、歪評価行列が有する3つの固有値のうち、絶対値の大きさが最大となる固有値は、立体の表面近傍に存在する磁気データの座標と球面との誤差が大きい場合に、その誤差の大きさを表現する値となる。
本発明は、立体と球面との形状の相違の程度を示す歪評価値を、歪評価行列の有する3つの固有値のうち絶対値が最大となる固有値の値に基づいて定めている。従って、歪評価値は、立体と球面との誤差の程度の大きさを評価することが可能となる。
【0025】
前述の通り、機器の動かし方が不十分で複数の磁気データの示す座標がある平面上に2次元的に分布する場合には、立体の3次元的な形状を把握することは出来ない。この場合には、立体を平面で切断した切断面を表す曲線と、球面を平面で切断した切断面を表す円周との形状の相違の程度を判断することで、外部磁界の影響の大きさを判断することが必要となる。
この発明によれば、第2誤差を要素として含む歪評価ベクトルの大きさを最小化することで、歪評価行列を算出する。歪評価ベクトルの大きさを最小化して0に近づける場合、第2誤差も最小化されて0に近づく。第2誤差は、共分散行列が有する3つの固有値のうち最小の固有値(最小固有値)に対応する固有ベクトルを歪評価行列により変換したベクトルに対して、第2係数を乗じたベクトルである。従って、第2誤差を最小化して0に近づける場合、共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルの大きさ、または、第2係数のうち、少なくともいずれか一方が最小化されて0に近づく。
ここで、共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルの大きさが最小化されて0に近づく場合を検討する。共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルの大きさが最小化されて0に近づくという条件の下で、歪評価行列を算出する場合、歪評価行列の有する3つの固有値のうち、絶対値が最小の固有値は0または0に近い値となる。同時に、歪評価行列の有する3つの固有値のうち、絶対値が最小の固有値に対応する固有ベクトルは、共分散行列の最小固有値に対応する固有ベクトルと平行になる。
複数の磁気データがある平面上に2次元的に分布する場合、共分散行列の最小固有値に対応する固有ベクトルは、磁気データが分布する平面に直交する。従って、歪評価行列の有する3つの固有ベクトルのうち、絶対値が最小の固有値に対応する固有ベクトルも、磁気データが分布する平面に直交する。つまり、共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルの大きさが最小化されて0に近づくという条件の下で算出された歪評価行列は、磁気データが分布する平面に直交する固有ベクトル方向については、立体と歪判定用球面との形状の相違は無いものと看做し、立体と歪判定用球面との形状の相違を評価しない行列である。
一方、歪評価行列の有する3つの固有ベクトルは互いに直交するため、絶対値が最小の固有値に対応する固有ベクトル以外の2つの固有ベクトルは、磁気データが分布する平面と平行になる。そして、磁気データが分布する平面に平行な2つの固有ベクトルに対応する固有値は、0以外の値を取ることができる。従って、共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルの大きさが最小化されて0に近づくという条件の下で算出された歪評価行列は、磁気データが分布する平面に平行な2つの固有ベクトル方向について、立体と歪判定用球面との形状の相違の程度を評価することができる行列である。
このように、複数の磁気データがある平面上に2次元的に分布する場合には、共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルの大きさを最小化するという条件の下で算出された歪評価行列を用いることで、磁気データが分布する平面と平行な方向については、立体と球面との形状の相違の程度を評価し、且つ、磁気データが分布する平面と垂直な方向については、立体と球面との形状の相違の程度を評価しないことが可能となる。
【0026】
なお、磁気データの示す座標が3次元的に分布する場合には、共分散行列の最小固有値に対応する固有ベクトル方向についても、立体と歪判定用球面との形状の相違の程度を評価することが必要となる。つまり、この場合、歪評価行列は、共分散行列の最小固有値に対応する固有ベクトル方向についても、立体と歪判定用球面との形状の相違を評価できる行列である必要がある。
この発明によれば、第2誤差は、共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルに第2係数を乗じたベクトルである。よって、第2係数を0または0に近い小さな値に設定することで、共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルの大きさを最小化することなく、第2誤差を最小化することができる。この場合、歪評価行列は、絶対値が最小の固有値も0以外の値を取ることができる。従って、歪評価行列は、3次元空間内の全ての方向について、立体と歪判定用球面との形状の相違の程度を表現することができる。
このように、この発明は、第2係数を有する第2誤差を最小化することで歪評価行列を算出する。そして、複数の磁気データの示す座標の分布の3次元的な広がりの程度に応じて、第2係数の値を設定することで、共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルの大きさを最小化するという条件を、緩和することが可能となる。すなわち、本発明の歪評価行列を用いることで、複数の磁気データの示す座標が3次元的に分布する場合には、立体と球面との形状の相違の程度を3次元的に評価し、複数の磁気データの示す座標がある平面上に2次元的に分布する場合には、立体と球面との形状の相違の程度を、2次元的に(当該ある平面内で)評価することが可能となる。これにより、磁気データの示す座標の分布が、3次元的であるか2次元的であるかに関わらず、不均一な外部磁界の影響の大きさを評価することが可能となり、不正確なオフセットを採用することを防止できる。
【0027】
また、上述した地磁気測定装置において、前記複数の磁気データの各々で示される3軸の座標として特定されるそれぞれの位置が、前記中心点算出用球面(S)近傍に確率的に分布すると仮定した場合の、前記複数の磁気データで示される3軸の座標により特定されるそれぞれの位置と前記中心点算出用球面(S)との誤差を表すベクトルを、中心点算出用球面誤差ベクトル(δ
S)とし、前記共分散行列の前記最小固有値(λ
3)に対応する正規化された固有ベクトル(u
3)と、前記旧オフセットから前記中心点算出用球面の中心点(x
0)を示す中心点算出用更新ベクトル(k)との内積に、第1係数(α)を乗じた値を、第3誤差(δ
U)とし、前記中心点算出用球面の中心点(x
0)は、中心点算出関数(g
S(x))の値を最小化する3次元のベクトル(x)で与えられ、前記中心点算出関数は、前記3次元のベクトルを変数とし、且つ、前記中心点算出用球面誤差ベクトル(δ
S)と前記第3誤差(δ
U)とを要素とする中心点算出ベクトル(δ
SU)の大きさを表すことを特徴とする、ことが好ましい。
【0028】
複数の磁気データの示す座標がある平面上に2次元的に分布する場合に、複数の磁気データの示す座標が3次元的に分布すると仮定して算出された中心点の座標は、平面に垂直な方向について不正確である。従って、複数の磁気データの示す座標が2次元的に分布する場合には、複数の磁気データの示す座標が3次元的に分布すると仮定して算出された球面の中心点の座標が有する情報のうち、不正確な情報である平面に垂直な方向(共分散行列の最小固有値に対応する固有ベクトル方向)についての情報を排除して、中心点を算出する必要がある。
この発明によれば、第3誤差を要素として含む歪評価ベクトルの大きさを最小化することで、中心点算出用球面の中心点を算出する。第3誤差は、共分散行列の最小固有値に対応する固有ベクトルと、旧オフセットから中心点算出用球面の中心点の座標を表す中心点算出用更新ベクトルとの内積に、第1係数を乗じた値である。従って、第3誤差を最小化して0に近づける場合、共分散行列の最小固有値に対応する固有ベクトルと中心点算出用更新ベクトルとの内積、または、第1係数のうち、少なくともいずれか一方が最小化されて0に近づく。
共分散行列の最小固有値に対応する固有ベクトルと中心点算出用更新ベクトルとの内積が最小化され0に近づく場合、共分散行列の最小固有値に対応する固有ベクトルと中心点算出用更新ベクトルとは直交する。つまり、中心点算出用更新ベクトルは、共分散行列の最小固有値に対応する固有ベクトル方向の成分を含まないベクトルになる。中心点算出用球面の中心点は、旧オフセットと中心点算出用更新ベクトルとの和であるため、不正確な情報(共分散行列の最小固有値に対応する固有ベクトル方向の情報)を利用せずに算出される。その結果、複数の磁気データが2次元的に分布する場合に、正確な情報のみに基づいて中心点を算出することが可能となる。
一方、磁気データの示す座標が3次元的に分布する場合には、第1係数を0または0に近い小さな値に設定することで、共分散行列の最小固有値に対応する固有ベクトルと中心点算出用更新ベクトルとの内積を最小化することなく、第3誤差を最小化することができる。すなわち、第1係数によって、共分散行列の最小固有値に対応する固有ベクトルと中心点算出用更新ベクトルとが直交するという条件を緩和することができる。これにより、複数の磁気データの示す座標が3次元的な広がりを有する場合には、共分散行列の最小固有値に対応する固有ベクトル方向の情報を利用して中心点算出用球面の中心点の座標を算出することが可能となる。
【0029】
また、上述した地磁気測定装置において、前記歪評価関数は、下記のg
SD2(e)で表されることが好ましい。
【数1】
【0030】
この発明によれば、歪評価関数を最小化するときの歪評価行列のノルムである歪評価値を簡単な計算により算出することができる。従って、上述した地磁気測定装置は、処理速度の向上という利点を有する。
【0031】
また、上述した地磁気測定装置において、前記中心点算出関数は、下記のg
S(x)で表されることが好ましい。
【数2】
【0032】
この発明によれば、簡単な計算により中心点を算出することができる。従って、上述した地磁気測定装置は、処理速度の向上という利点を有する。
【0033】
また、上述した地磁気測定装置において、前記第1係数(α)は、前記最小固有値(λ
3)が閾値(λ
0)よりも小さい値である場合には、正の第1の値を有し、前記最小固有値が前記閾値以上の場合には、0または前記第1の値よりも小さい正の第2の値を有し、前記第2係数(β)は、前記最小固有値が前記閾値よりも小さい値である場合には、正の第3の値を有し、前記最小固有値が前記閾値以上の場合には、0または前記第3の値よりも小さい正の第4の値を有する、ことを特徴とする、ことが好ましい。
【0034】
この発明によれば、共分散行列の最小固有値が閾値よりも小さな値を有し、複数の磁気データの示す座標がある平面上に2次元的に分布すると看做せる場合には、第1係数及び第2係数を正の値とする。
第1係数を正の第1の値とすることで、共分散行列の最小固有値に対応する固有ベクトルと中心点算出用更新ベクトルとが直交するという条件の下、正確な情報のみに基づいて、中心点算出用球面の中心点を算出することが可能となる。また、第1係数を正の第1の値とすることで、共分散行列の最小固有値に対応する固有ベクトルと歪判定用更新ベクトルとが直交するという条件の下、正確な情報のみに基づいて、歪判定用球面の中心点を算出することが可能となる。さらに、第2係数を正の第3の値とした場合、共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルの大きさが0に近い値となるという条件の下で歪評価行列が算出される。このような歪評価行列によって、複数の磁気データの示す座標が分布する平面に平行な方向についてのみ立体と球面の形状の相違の程度を評価することができる。
一方、共分散行列の最小固有値が閾値以上となり、複数の磁気データの示す座標が3次元的な広がりを有して分布する場合には、第1係数及び第2係数を0または0に近い小さな値とする。第1係数を0または0に近い値とすることで、旧オフセットの情報を用いずに、複数の磁気データのみに基づいて中心点算出用球面の中心点及び歪判定用球面の中心点を算出することが可能となる。また、第2係数を0または0に近い値として算出された歪評価行列により、立体と球面との3次元的な形状の相違の程度を、評価することが可能になる。
これにより、複数の磁気データの示す座標の分布が3次元的な場合及び2次元的な場合の双方において、外部磁界の影響を受けない適切な中心点をオフセットに採用することが可能となる。
【0035】
また、上述した地磁気測定装置において、k
α及びk
βを正の定数としたとき、前記第1係数(α)は、以下のαで表され、前記第2係数(β)は、以下のβで表されることが好ましい。
【数3】
【0036】
この発明によれば、磁気データの示す座標の分布の3次元的な広がりの程度に応じて、歪評価行列と共分散行列の最小固有値に対応する固有ベクトルとの積が0に近い値となるという条件を緩和するため、複数の磁気データの示す座標の分布の広がりの程度に応じて適切に立体と球面との形状の相違の程度を評価することが可能となる。
また、複数の磁気データの示す座標の分布の3次元的な広がりの程度に応じて、中心点算出用更新ベクトルと共分散行列の最小固有値に対応する固有ベクトルとが直交するという条件、及び、歪判定用更新ベクトルと共分散行列の最小固有値に対応する固有ベクトルとが直交するという条件を緩和するため、複数の磁気データの示す座標の3次元的な分布の広がりの程度に応じて、正確な中心点算出用球面の中心点及び歪判定用球面の中心点を算出することが可能となる。
【0037】
また、上述した地磁気測定装置において、前記磁気データを前記中心点算出用球面の中心点(x
0)を原点とする座標系で表した3軸のベクトルと、当該3軸のベクトルを対称行列である歪評価行列(E)により変換したベクトルとの内積を、前記複数の磁気データの各々について算出し、複数の算出結果を要素とするベクトルを歪誤差ベクトル(k(E))とし、前記複数の磁気データの各々で示される3軸の座標として特定されるそれぞれの位置と前記歪判定用球面(S
2)との誤差を表すベクトルを、歪判定用球面誤差ベクトル(δ
S2)とし、前記歪誤差ベクトル(k(E))と、前記歪判定用球面誤差ベクトル(δ
S2)との和を、立体誤差ベクトル(δ
SD)とし、前記歪評価行列の各々の成分と、前記歪判定用球面の中心点(x
02)を表す3軸のベクトルの各々の要素とを変数とし、前記立体誤差ベクトルの大きさを表す関数を、立体歪評価関数(g
SD(e))とし、前記共分散行列の前記最小固有値(λ
3)に対応する正規化された固有ベクトル(u
3)と、前記旧オフセットから前記歪判定用球面の中心点(x
02)を示す歪判定用更新ベクトル(k
2)とが直交する条件を、第1の制約条件とし、前記歪評価行列と、前記固有ベクトルとの積が、零ベクトルとなる条件を、第2の制約条件としたとき、前記最小固有値(λ
3)が閾値(λ
0)よりも小さい値である場合、前記歪評価値(g
D(E))は、前記第1の制約条件及び前記第2の制約条件を充足したうえで前記立体歪評価関数(g
SD(e))を最小化するときの、前記歪評価行列のノルムであることを特徴とする、ことが好ましい。
【0038】
この発明によれば、最小固有値が閾値よりも小さな値を有し、複数の磁気データの示す座標がある平面上に2次元的に分布すると看做すことができる場合には、共分散行列の最小固有値に対応する固有ベクトルと歪判定用更新ベクトルとが直交するという第1の制約条件と、共分散行列の最小固有値に対応する固有ベクトルを歪評価行列により変換したベクトルの大きさが0になるという第2の制約条件とを厳格に満たしつつ、歪評価行列及び歪判定用球面の中心点を算出し、立体と歪判定用球面との形状の相違の程度を評価する。従って、共分散行列の最小固有値に対応する固有ベクトル方向の不正確な情報を完全に排除して算出される歪判定用球面の中心点の情報を用いて、平面と完全に平行な方向についてのみ立体と球面の形状の相違の程度を評価することが可能となる。
これにより、複数の磁気データの示す座標が2次元的に分布する場合に、立体と球面の形状の相違の程度をより正確に評価することが可能となる。
【0039】
また、上述した地磁気測定装置において、前記立体歪評価関数は、以下のg
SD(e)で表され、前記第1の制約条件は、以下の式(a)で表され、前記第2の制約条件は、以下の式(b)で表されることを特徴とことが好ましい。
【数4】
【0040】
この発明によれば、歪評価関数を最小化するときの歪評価行列のノルムである歪評価値を、立体誤差ベクトル、第1の制約条件、及び第2の制約条件に基づいて簡単な計算により算出することができる。従って、上述した地磁気測定装置は、処理速度の向上という利点を有する。
【0041】
また、上述した地磁気測定装置において、前記歪評価行列Eは、以下の式(c)の解として求められるベクトルe=[e
11、e
22、e
12、e
33、e
23、e
13、e
XT]
Tのうち、第1行目から第6行目までの要素を成分とすることが好ましい。
【数5】
【0042】
この発明によれば、簡単な計算により歪評価行列を算出することができる。従って、上述した地磁気測定装置は、処理速度の向上という利点を有する。
【0043】
次に、本発明に係る地磁気測定装置に用いられるオフセット更新方法は、磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する3方向の磁気成分をそれぞれ検出する3次元磁気センサと、前記3次元磁気センサから、3軸の座標系において表現される3次元のベクトルデータとして順次出力される磁気データを蓄積する蓄積手段と、を備える地磁気測定装置に用いられるオフセット更新方法であって、前記蓄積手段に蓄積された前記複数の磁気データで示される複数の座標の分布の、3次元的な広がりの程度を示す分散評価値を算出し、前記複数の磁気データの各々が示す3軸の座標が、歪判定用球面を歪ませた形状の立体の表面近傍に確率的に分布すると仮定して、前記複数の磁気データと、前記分散評価値とに基づいて、前記立体と、前記歪判定用球面との形状の相違の程度を示す歪評価値を算出し、前記歪評価値が歪許容値以下であるか否かを判定し、前記判定の結果が肯定である場合に、前記磁気データのうち前記部品の発生する磁界の成分を表す3軸の座標であるオフセットを更新する、ことを特徴とする。
【0044】
この発明によれば、複数の磁気データの示す座標が3次元的に分布する場合、及び2次元的に分布する場合の双方について、立体と球面との形状の相違の程度を評価して、外部磁界の影響の受けていない正確なオフセットを採用することができる。
【0045】
次に、本発明に係る地磁気測定装置に用いられるオフセット更新プログラムは、磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する3方向の磁気成分をそれぞれ検出する3次元磁気センサと、前記3次元磁気センサから、3軸の座標系において表現される3次元のベクトルデータとして順次出力される磁気データを蓄積する蓄積手段と、を備える地磁気測定装置に用いられるオフセット更新プログラムであって、前記蓄積手段に蓄積された前記複数の磁気データで示される複数の座標の分布の、3次元的な広がりの程度を示す分散評価値を算出する処理と、前記複数の磁気データの各々が示す3軸の座標が、歪判定用球面を歪ませた形状の立体の表面近傍に確率的に分布すると仮定して、前記複数の磁気データと、前記分散評価値とに基づいて、前記立体と、前記歪判定用球面との形状の相違の程度を示す歪評価値を算出し、前記歪評価値が歪許容値以下であるか否かを判定する処理と、前記判定の結果が肯定である場合に、前記磁気データのうち前記部品の発生する磁界の成分を表す3軸の座標であるオフセットを更新する処理とを、コンピュータに実行させることを特徴とする。
【0046】
この発明によれば、複数の磁気データの示す座標が3次元的に分布する場合、及び2次元的に分布する場合の双方について、立体と球面との形状の相違の程度を評価して、外部磁界の影響の受けていない正確なオフセットを採用することができる。
【発明を実施するための形態】
【0048】
<A.実施形態>
以下、本発明の実施の形態を説明する。
【0049】
[1. 3次元磁気センサが検出する磁界の概要]
本実施形態では、3次元磁気センサが検出する磁界として、検出対象である地磁気の他に、3次元磁気センサが搭載される機器の部品が発する磁界である内部磁界、及び機器の外部の物体が発する外部磁界の存在を想定している。
これらの3種類の磁界は、磁界の向き、大きさ、及び均一性において、各々異なる性質を有するものである。つまり、これらの磁界を3次元磁気センサで検出する場合、3次元磁気センサの位置、姿勢が変化すると、3次元磁気センサから出力される磁界を示すベクトルデータの向き及び大きさも変化するが、この出力データの変化の仕方は、3種類の磁界の各々で差異を有する。
以下、
図1乃至
図4を用いて、本実施形態において想定するこれら3種類の磁界の概要、及び、これらの磁界を3次元磁気センサが検出した場合に出力されるベクトルデータについて説明する。
【0050】
図1は、機器1に搭載された3次元磁気センサ60の周囲に存在する磁界の種類及び性質について説明する図である。
3次元磁気センサ60の周囲に存在する磁界には、計測対象である地磁気Bgの他に、3次元磁気センサ60の搭載された機器1の部品が発する内部磁界Bi、及び機器1の周囲に存在する物体2が発する外部磁界Bxが存在する。
【0051】
地磁気Bgは、磁極北に向かう方向を持つベクトルであり、一様な向き及び大きさを有する磁界である。厳密には、地磁気Bgの向き及び大きさは、地域によって異なるが、例えば、異なる都市に移動する等の大きな移動をしない場合には、一様な向き及び大きさを有する。
内部磁界Biは、機器1の部品が発する磁界であり、内部磁界Biの向きは、機器1から見て一定の方向を有する。すなわち、機器1上に搭載された3次元磁気センサ60から見た場合、機器1の姿勢を変化させても、内部磁界Biは、一定の方向及び大きさを有する磁界として検知される。
例えば、利用者が機器1を手で持って手首を回すと、機器1の姿勢が変化する。このとき、地磁気Bgは磁極北を向いているので、3次元磁気センサ60で検出される地磁気Bgの3軸各々の成分は変化する。一方、3次元磁気センサ60において3次元磁気センサ60と内部磁界を発生する部品との相対的な位置関係は固定であるから、機器1の姿勢を変化させても、内部磁界Biの3軸各々の成分は一定である。
外部磁界Bxは、外部の物体2の発する磁界であり、物体2からの距離及び方向によって、磁界の向き及び大きさが変化する不均一な磁界である。すなわち、機器1上に搭載された3次元磁気センサ60から見た場合、外部磁界Bxは、物体2と3次元磁気センサ60との相互位置関係に依存して、方向及び大きさを変化させる磁界として検知される。
【0052】
説明の便宜上、
図1に示すような地上座標系Σ
G及びセンサ座標系Σ
Sを導入する。
図1に記載された各ベクトルの左上に付された添字Gは、当該ベクトルが地上座標系Σ
Gにおいて表現されたベクトルであることを意味する。
地上座標系Σ
Gは、地上に固定された座標系であり、地上の任意の一点を原点とし、互いに直交する3つの方向、例えば、東、北、及び鉛直上向きを、それぞれx軸、y軸、及びz軸とする座標系である。ここで、地上座標系Σ
Gから見たときの3次元磁気センサ60の位置及び姿勢を、それぞれ、位置Ps、及び姿勢θsと表現することにする。
センサ座標系Σ
Sは3次元磁気センサ60に固定された座標系であり、3次元磁気センサ60の有する3つの各々のセンサモジュールの出力する値を、それぞれ、x軸、y軸、z軸上にプロットするように設けられた座標系である。すなわち、3次元磁気センサ60が出力する磁気データは、センサ座標系Σ
Sのベクトルデータとして表現される。
なお、地上座標系Σ
Gから見た場合、センサ座標系Σ
Sの原点は位置Psであり、姿勢は姿勢θsである。
【0053】
図2は、地磁気Bg及び内部磁界Biが、3次元磁気センサ60によってどのような値として検知されるかについて示す図である。すなわち、
図2は、3次元磁気センサ60の地上座標系Σ
Gから見た姿勢θsをθ
1〜θ
Nと変化させつつ磁界を測定した場合に、3次元磁気センサ60が出力するN個の磁気データq
1〜q
Nを、センサ座標系Σ
Sにおいてプロットした図である(Nは精度よくオフセットを導出するために必要な磁気データの規定測定回数を表す4以上の自然数)。
なお、
図2では、地磁気Bg及び内部磁界Biのみが存在し、外部磁界Bxは存在しない場合を想定している。また、
図2に記載された各ベクトルの左上に付された添字Sは、当該ベクトルがセンサ座標系Σ
Sにおいて表されたベクトルであることを意味する。
内部磁界Biは、センサ座標系Σ
Sにおいて、3次元磁気センサ60の位置Ps及び姿勢θsに依存しない、一定の方向及び大きさを持つベクトル
SBi(センサ座標系Σ
Sの原点から中心点x
0Gへと向かうベクトル)として表現される。
一方、地磁気Bgは、センサ座標系Σ
Sにおいて、大きさは一定であるが、向きは3次元磁気センサ60の姿勢θsに伴い変化する。つまり、地磁気Bgは、センサ座標系Σ
Sにおいて、3次元磁気センサ60の姿勢θsに依存した向きを有する、一定の大きさのベクトル
SBg(θs)として表現され、θsを変化させた場合には、中心点x
0Gを中心とする球面上に位置することになる。
従って、3次元磁気センサ60が順次出力する磁気データq
1〜q
Nは、センサ座標系Σ
Sにおいて、中心点x
0Gを中心点とし、地磁気Bgの大きさを半径とする、球面S
G上に分布することになる。仮に、内部磁界Biの大きさが0の場合には、中心点x
0Gと、センサ座標系Σ
Sの原点とは一致することになる。なお、3次元磁気センサ60の測定値は、測定誤差を有するため、複数の磁気データq
1〜q
Nは、厳密には、球面S
Gの近傍に確率的に分布する。
【0054】
このような複数の磁気データq
1〜q
Nから、球面S
Gの中心点x
0Gの座標を計算することで、内部磁界を表すベクトル
SBiを求めることができ、3次元磁気センサ60の出力値である複数の磁気データq
1〜q
Nから内部磁界
SBiを引き算することにより、地磁気
SBgを計算することが可能となる。すなわち、3次元磁気センサ60で検出される磁気が地磁気Bg及び内部磁界Biである場合、球面S
Gの中心点x
0Gを算出することが可能であり、中心点x
0Gは3次元磁気センサ60のオフセットcに対応する。
【0055】
図3は、外部磁界Bxが存在する場合に、3次元磁気センサ60の位置PsをP
1〜P
Nと変化させると共に、姿勢θsをθ
1〜θ
Nと変化させて磁界を測定したときの、3次元磁気センサ60が順次出力する磁気データq
1〜q
Nを、センサ座標系Σ
Sにおいてプロットした図である。
外部磁界Bxは不均一な磁界であり、地上座標系Σ
Gにおける位置に応じて、向き及び大きさが変化する。従って、3次元磁気センサ60の位置Psを変化させた場合には、3次元磁気センサ60が検知する外部磁界Bxの向き及び大きさも変化する。このような外部磁界Bxは、センサ座標系Σ
Sにおいて、3次元磁気センサ60の姿勢θs及び位置Psに依存して方向及び大きさの両方を変化させるベクトル
SBx(θs、Ps)として表現される。
そして、3次元磁気センサ60の姿勢θs及び位置Psを変化させつつ測定した複数の磁気データq
1〜q
Nは、内部磁界
SBi、地磁気
SBg(θs)、及び外部磁界
SBx(θs、Ps)のそれぞれのベクトルの和として出力される。従って、複数の磁気データq
1〜q
Nは、センサ座標系Σ
Sにおいて、中心点x
0Gを中心とする球面S
Gと、球面とは異なる歪んだ形状を有する曲面SXとを、中心点x
0Gを基準として重ね合わせた立体SDの表面近傍に分布することになる。ここで、曲面SXは、センサ空間Σ
Sにおいて外部磁界
SBx(θs、Ps)を表す曲面であり、3次元磁気センサ60が出力する複数の磁気データq
1〜q
Nの各々が示すベクトルのうち、内部磁界
SBiと、外部磁界
SBx(θs、Ps)との和の成分を表す。
【0056】
立体SDは、球面とは異なる形状を有するため、立体SDの表面近傍に分布する複数の磁気データq
1〜q
Nから、内部磁界
SBiの値を示す中心点x
0Gのベクトルを求めることは困難である。
但し、外部磁界Bxが微弱である場合には、立体SDは球面に近い形状となる。
図4(A)は、外部磁界Bxが微弱である場合に、3次元磁気センサ60が順次出力する磁気データq
1〜q
Nを、センサ座標系Σ
Sにおいてプロットした図である。外部磁界Bxが微弱である場合、3次元磁気センサ60が順次出力する磁気データq
1〜q
Nは、地磁気を表すベクトル
SBg(θs)の描く中心点x
0Gを中心とする球面S
Gと、外部磁界を表すベクトル
SBx(θs、Ps)の描く曲面SXとの重ね合わせである、球面に近い形状の立体SDの表面近傍に分布する。この場合、複数の磁気データq
1〜q
Nから、中心点x
0Gとほぼ一致するベクトルを求めることが可能である。
【0057】
なお、不均一な外部磁界Bxが存在する場合であっても、複数の磁気データq
1〜q
Nを取得する際の3次元磁気センサ60の位置P
S及び姿勢θ
Sの変化のさせ方によって、3次元磁気センサ60が、不均一な外部磁界Bxを、均一な磁界であるかのように検出する場合がある。具体的には、不均一な外部磁界Bxが存在する場合であっても、複数の磁気データq
1〜q
Nを取得する際に、利用者が機器1を手で握り、3次元磁気センサ60の位置P
Sが変化するように機器1を振るのではなく、機器1の位置(厳密には、3次元磁気センサ60の位置P
S)を固定したままその姿勢のみを変化させる場合には、外部磁界Bxは、センサ空間Σ
Sにおいて、3次元磁気センサ60の姿勢θsに基づいて、その方向のみを変化させる一定の大きさのベクトル
SBx(θs)として表現される。この場合、3次元磁気センサ60から出力される複数の磁気データq
1〜q
Nは、
図4(B)に示すように、センサ空間Σ
Sにおいて、ほぼ球面の形状を有する立体SDの表面近傍に分布する。そして、立体SDの形状がほぼ球面となる場合、その中心点は、球面S
Gの中心点x
0G(すなわち、内部磁界
SBiを表す座標)とほぼ等しくなる。この場合、複数の磁気データq
1〜q
Nから、中心点x
0Gとほぼ一致するベクトルを求めることが可能である。
【0058】
このように、複数の磁気データq
1〜q
Nに基づいて、オフセットc(すなわち、地磁気Bgを表す球面S
Gの中心点x
0G)を算出するためには、立体SDが球面に近い形状である必要がある。つまり、外部磁界Bxの影響が大きく、立体SDの形状が球面とは大きく異なる歪んだ形状である場合には、複数の磁気データq
1〜q
Nに基づいて、オフセットcを算出することはできない。
従って、外部磁界Bxの及ぼす影響の大きさ、すなわち、立体SDがどの程度球面に近い形状を有しているかを評価し、立体SDの形状がほぼ球面であると看做される場合のみ、当該球面(立体SD)の中心点をオフセットcとして採用し、立体SDの形状が球面とは異なる形状を有する場合には、複数の磁気データq
1〜q
Nに基づいた(立体SDに基づいた)オフセットcの算出を避ける必要がある。
【0059】
[2. 磁気データが球面近傍に分布する場合の球面の中心点の算出]
以下では、
図5を参照しながら、3次元磁気センサ60が出力するN個の磁気データq
1〜q
Nが、半径rの球面(中心点算出用球面)Sの近傍に分布すると仮定する場合に、球面Sの中心点(中心点算出用球面の中心点)x
0を算出する方法について述べる。ここで、球面Sは、センサ空間Σ
S上で、複数の磁気データq
1〜q
Nが球面近傍に分布すると仮定して、その球面の中心点を算出するために便宜上導入される球面であり、前述した、地磁気を表す球面S
G、及び立体SDとは異なるものである。
なお、不均一な外部磁界Bxが微弱な場合、または、不均一な外部磁界Bxが存在する場合であっても機器1の位置(厳密には、3次元磁気センサ60の位置)を固定して姿勢のみを変化させつつ複数の磁気データq
1〜q
Nを測定した場合には、地磁気Bgを表す球面S
G及び曲面SXを重ね合わせた立体SDと、球面Sとは、ほぼ一致する。具体的には、外部磁界Bxが微弱な場合、半径rは地磁気Bgの大きさを表し、球面S及びその中心点x
0は、地磁気Bgを表す球面S
G及びその中心点x
0Gとほぼ等しくなる。(
図14(C)参照)また、不均一な外部磁界Bxが存在する場合であっても、機器1の位置を固定して姿勢のみを変化させつつ複数の磁気データq
1〜q
Nを測定した場合、半径rは地磁気Bgを表すベクトルと外部磁界Bxを表すベクトルとを足し算したベクトルの大きさを表し、球面Sの中心点x
0は、地磁気Bgを表す球面S
Gの中心点x
0Gとほぼ等しくなる。(
図14(B)参照)
【0060】
複数の磁気データq
1〜q
Nが、半径rの球面S上に存在すると仮定する場合、各磁気データq
iと、球面Sの中心点x
0との距離はrであるため、以下の式(1)〜(3)が成立する。なお、以下では、特に断りの無い限り、ベクトルや座標等は、センサ空間Σ
Sにおいて表現されたものであるとする。
【数6】
【0061】
ここで、複数の磁気データq
1〜q
Nの重心をq
cとする。重心q
cは、式(4)で表される。また、重心q
cを原点とする重心座標系Σ
Cを導入する。センサ座標系Σ
Sにおいて表現された磁気データq
i及び中心点x
0と、重心座標系Σ
Cにおいて表現された磁気データ
Cq
i及び中心点
Cx
0との間には、以下の式(6)及び式(7)が成立する。
【数7】
【0062】
センサ座標系Σ
Sにおける球面Sの方程式(1)は、重心座標系Σ
Cにおいて式(8)として表現される。そして、式(8)に対して、式(6)及び(7)を代入することで、式(9)が得られる。
【数8】
【0063】
式(9)のq
iに対して、複数の磁気データq
1〜q
Nの各々を代入した結果を、磁気データの個数Nで割り算することにより、以下の式(10)を得ることができる。そして、式(10)と、式(9)を展開した式(11)との差分を取ることで、変数q
iに依存しない項を消去し、式(12)を得ることができる。
【数9】
【0064】
このように、磁気データである変数q
iが、球面S上に存在することを示す球面の公式である式(1)は、磁気データq
i、重心q
c、及び中心点x
0から構成される式(12)に変形された。この式(12)の変数q
iに対して、N個の磁気データq
1〜q
Nをそれぞれ代入することで得られるN個の方程式は、行列Xを用いて式(13)として表現される。
【数10】
【0065】
式(13)は、全ての磁気データq
1〜q
Nの座標が、中心点x
0を中心とする球面S上に完全に一致する場合には解を有する。しかし、3次元磁気センサ60の測定誤差等を考慮すると、全ての磁気データq
1〜q
Nの座標が、球面Sと完全に一致する位置に存在することは無いため、式(13)は解を持たない。そこで、統計的な手法により尤もらしい解を得るために、式(17)で表される誤差を吸収するベクトルである誤差(中心点算出用球面誤差ベクトル)δ
Sを導入する。
【数11】
【0066】
このような誤差δ
Sのノルムを最小にするベクトルx、換言すれば、(δ
S)
T(δ
S)を最小化するようなベクトルxが、球面Sの中心点x
0として尤もらしいものであるいえる。
ここで、以下の式(19)で示される目的関数f
S(x)を定義する。このとき、目的関数f
S(x)を最小化するxが、球面Sの中心点x
0として尤もらしい値となる。中心点x
0は、式(21)において示される共分散行列Aが正則である場合には、式(20)により求めることができる。
【数12】
【0067】
このように、複数の磁気データq
1〜q
Nが球面Sの近傍に確率的に分布すると仮定して、複数の磁気データq
1〜q
Nで示される3軸の座標と球面Sとの誤差を最小化することにより、球面Sの中心点x
0を算出することができる。
球面Sの中心点x
0は、前述の通り、不均一な外部磁界Bxが微弱な場合、または、不均一な外部磁界Bxが存在する場合であっても機器1の位置を固定して姿勢のみを変化させつつ複数の磁気データq
1〜q
Nを測定した場合には、地磁気Bgを表す球面S
Gの中心点x
0Gとほぼ一致する。すなわち、立体SDと、球面Sとがほぼ一致する場合には、球面Sの中心点x
0は、地磁気を表す球面S
Gの中心点x
0Gとほぼ一致し、球面Sの中心点x
0を、オフセットcとして採用することが可能である。
【0068】
[3. 磁気センサが検出する磁気データの分布]
ところで、3次元磁気センサ60が出力する複数の磁気データq
1〜q
Nが球面Sの近傍に分布する場合に、球面Sの中心点x
0を算出するためには、複数の磁気データq
1〜q
Nがセンサ座標系Σ
Sにおいて3次元的な広がりを有して分布していることが必要である。
例えば
図6に示すように、複数の磁気データq
1〜q
Nが、センサ座標系Σ
Sの平面π上の円π
C近傍に2次元的に分布する場合、球面Sは、円π
Cを切断面に有するような球面であるということしか特定できない。円π
Cを切断面に有するような球面は、円π
Cの中心点π
COを通り平面πに直交する直線π
L上に存在する中心点x
π1を中心とする球面S
π1であるかもしれないし、直線π
L上に存在する中心点x
π1とは異なる中心点x
π2を中心とする球面S
π2であるかもしれない。つまり、中心点x
0が、円π
Cの中心点π
COを通り平面πに直交する直線π
L上に存在することまでは特定可能であっても、直線π
L上のどの位置に存在するかについて、具体的に特定することが出来ない。
機器1が自動車等のように左右方向に姿勢変化する場合や、機器1が携帯電話等のようにユーザの手によって動かされるがその動かし方が不十分な場合には、機器1の姿勢変化は3次元的とはならず、2次元的なものとなることがある。この場合、センサ座標系Σ
Sにおいて複数の磁気データq
1〜q
Nの各々が示す座標の分布は、3次元的な広がりを有さず、2次元的に広がるため、複数の磁気データq
1〜q
Nに基づいて中心点x
0を算出することは出来ない。
【0069】
3次元磁気センサ60の測定誤差等の影響により、複数の磁気データq
1〜q
Nがわずかに3次元的な広がりを有する場合には、複数の磁気データq
1〜q
Nをその近傍に有するような何らかの球面Sπの中心点x
πが算出される。しかし、この中心点x
πは、複数の磁気データq
1〜q
Nの各々に含まれる測定誤差の影響によって確率的に決定された座標に過ぎない。中心点x
πと、仮に、機器1の姿勢変化が3次元的であった場合に測定される複数の磁気データを近傍に有するような球面Sの中心点x
0とは、異なる可能性が高い。例えば、
図6の例のように、磁気データq
1〜q
Nが、平面πに垂直方向の誤差を有して分布する場合に、複数の磁気データq
1〜q
Nより球面S
π1の中心点x
π1が算出されたとしても、実際には、球面S
π2の中心点x
π2が、球面Sの中心点x
0かもしれない。このような不正確な座標である中心点x
πは、オフセットcとして採用することは出来ない。
【0070】
なお、
図6のように、複数の磁気データq
1〜q
Nが2次元的に分布している場合であっても、機器1の姿勢変化が3次元的であった場合に測定される複数の磁気データを近傍に有するような球面Sの中心点x
0が、直線π
L上に存在することについては特定可能である。
つまり、平面π上に2次元的に分布する複数の磁気データq
1〜q
Nに基づいて算出される中心点x
πが有する情報のうち、平面πに垂直な方向(つまり、直線π
L方向)の情報については正確性を有さないが、平面πに平行な方向の情報については正確性を有する。
従って、オフセットcの算出にあたっては、中心点x
πが有する情報のうち、正確性を有する方向の情報(つまり、オフセットcの候補となる中心点x
0が、直線π
L上に存在しているという情報)について、利用することが可能である。
【0071】
図7は、不均一な外部磁界Bxの影響が大きく、立体SDが球面とは大きく異なる形状を有する場合で、且つ、3次元磁気センサ60から順次出力された磁気データq
1〜q
Nが、平面π上に2次元的に分布する場合を示している。
この場合、複数の磁気データq
1〜q
Nが、円周π
C近傍に存在していると仮定すれば、球面Sの中心点x
0は、円周π
Cの中心点π
COを通り平面πに直交する直線π
L上に存在することを特定することができる。しかし、立体SDが球面とは大きく異なる歪んだ形状を有する場合には、立体SDの表面近傍に存在する複数の磁気データq
1〜q
Nは、球面Sの近傍には存在しない。従って、平面πによる球面Sの切断面である円周π
C近傍に複数の磁気データq
1〜q
Nが存在していると仮定して算出された中心点x
0と、地磁気Bgを表す球面S
Gの中心点x
0Gとは一致しない可能性が高く、中心点x
0が直線π
L上に存在する場合であっても、中心点x
0Gは直線π
L上には存在しない可能性が高い。
このように、複数の磁気データq
1〜q
Nが2次元的に分布し、球面Sの中心点x
0が直線π
L上に存在することを特定可能な場合であっても、外部磁界Bxの影響が大きく、地磁気Bgを表す球面S
Gの中心点x
0Gと球面Sの中心点x
0とが一致しない場合には、中心点x
0を、オフセットcとして採用することを防止する必要がある。
【0072】
なお、複数の磁気データq
1〜q
Nが、平面π上に2次元的に分布する場合には、立体SDの3次元的な形状を知ることは困難である。
しかし、立体SDが、球面とは大きく異なる歪んだ形状を有する場合、平面πによる立体SDの切断面を表す曲線π
Dも、円周とは異なる歪んだ形状を有する可能性が高い。つまり、複数の磁気データq
1〜q
Nが、立体SDの平面πによる切断面を表す曲線π
Dの近傍に分布していると仮定した場合、曲線π
Dの形状の歪の程度を評価することにより、立体SDの形状と球面の形状との相違の程度について判定することが可能である。そして、曲線π
Dの形状が円周とは異なる大きく歪んだ形状である場合には、立体SDと球面とが異なる形状を有し、地磁気Bgを表す球面S
Gの中心点x
0Gと球面Sの中心点x
0とが一致しない可能性が高い。従って、曲線π
Dが円周とは異なる歪んだ形状を有する場合には、球面Sの中心点x
0が直線π
L上に存在することが特定される場合であっても、球面Sの中心点x
0を、オフセットcとして採用することを避ける必要がある。一方、曲線π
Dの形状が歪のない円周であると看做すことができる場合には、曲線π
Dと円周π
Cとがほぼ一致すると看做すことができる。この場合、立体SDと球面Sとがほぼ一致すると看做すことができ、球面Sの中心点x
0を、オフセットcとして採用することができる。
【0073】
本実施形態では、複数の磁気データq
1〜q
Nが3次元的な広がりを持って分布している場合、及び複数の磁気データq
1〜q
Nが2次元的に分布している場合の双方について、複数の磁気データq
1〜q
Nに基づいて外部磁界Bxの影響の大きさ、すなわち、立体SDと球面との形状の相違の程度を評価し、当該評価結果に基づいて、球面Sの中心点x
0をオフセットcに採用することの可否を判定する。
以下、本実施形態における球面Sの中心点x
0の算出方法、及び中心点x
0のオフセットcへの採否の判定方法について、具体的に説明する。
【0074】
[4. 機器構成及びソフトウェア構成]
図8は、本発明の実施形態に係る機器1の構成を示すブロック図である。
機器1は、各種の構成要素とバスを介して接続され装置全体を制御するCPU10、CPU10の作業領域として機能するRAM20、各種のプログラムやデータを記憶したROM30、通信を実行する通信部40、画像を表示する表示部50、及び地磁気を検出して地磁気データを出力する3次元磁気センサ60、を備える。
3次元磁気センサ60は、X軸地磁気センサ61、Y軸地磁気センサ62、及びZ軸地磁気センサ63を備える。各センサは、MI素子(磁気インピーダンス素子)、MR素子(磁気抵抗効果素子)などを用いて構成することができる。地磁気センサI/F64は、各センサから出力信号をAD変換して磁気データを出力する。この磁気データは、X軸地磁気センサ61、Y軸地磁気センサ62、及びZ軸地磁気センサ63からの出力を、センサ座標系Σ
Sにおけるベクトルデータとして、センサ座標系Σ
Sの、x軸、y軸およびz軸の3成分によって示されるデータである。
【0075】
CPU10は、ROM30に格納されている磁気データ処理プログラム70を実行することによって、3次元磁気センサ60の出力からオフセットを算出すると共に、正確な地磁気の向き及び大きさを算出する。
表示部50は、CPU10が磁気データ処理プログラム70を実行することにより算出した地磁気の向きを示す方位情報を、矢印等によって表示する。なお、磁気データ処理プログラム70は、地図アプリケーション等との連携を想定するものであっても良く、表示部50は、地磁気の向きを示す方位情報である矢印等を地図上に表示しても良い。
CPU10、RAM20、3次元磁気センサ60、及び磁気データ処理プログラム70は、3次元磁気センサ60が検出する磁気データに基づき、正確な地磁気の向き及び大きさを示す地磁気データを算出する、地磁気測定装置として機能する。この地磁気データは、地上座標系Σ
Gにおいて磁極北に向かう水平成分と伏角方向の鉛直成分とを有するベクトルを、センサ座標系Σ
Sから見たベクトルデータとして、x軸、y軸およびz軸の3成分によって表されるデータである。
【0076】
磁気データ処理プログラム70は、バッファ管理モジュール71、オフセット算出モジュール72、及び方位算出モジュール73等のモジュール群で構成される。
磁気データ処理プログラム70は、オフセットcを算出し、このオフセットc及び3次元磁気センサ60が検出する磁気データに基づいて、正確な地磁気データを算出する。
【0077】
なお、オフセットcは、常に一定の座標となるものではない。すなわち、オフセットcは、必要に応じて変更される必要がある。これは、機器1の内部状態が変化した場合、例えば、機器1に搭載された部品を流れる電流の大きさが変化した場合や、機器1に搭載された部品の着磁状況等の変化に伴い、内部磁界Biが変化するからである。このような内部磁界Biの変化を想定し、内部磁界Biを表すベクトルであるオフセットcを必要に応じて更新することによって、正確な地磁気Bgを測定することが可能となる。以下、説明の便宜上、オフセットcの更新にあたり、更新前のオフセットcを旧オフセットc
0と呼び、更新後のオフセットcを新オフセットc
1と呼ぶ。
【0078】
バッファ管理モジュール71は、3次元磁気センサ60から順次出力される磁気データq
1〜q
Nをバッファに蓄積する(Nは精度よくオフセットを導出するために必要な磁気データの規定測定回数を表す4以上の自然数)。これら複数の磁気データq
1〜q
Nの蓄積手段としては、RAM20を用いる。
オフセット算出モジュール72は、バッファ管理モジュール71に蓄積されている複数の磁気データq
1〜q
Nを用いて、新オフセットc
1を算出し、オフセットcを、旧オフセットc
0から新オフセットc
1へと更新する。オフセットcの保持手段としては、RAM20を用いる。
方位算出モジュール73は、3次元磁気センサから順次出力される磁気データq
1〜q
Nを、オフセット算出モジュール72によって保持されるオフセットcにより補正して、正確な地磁気データを算出し、方位情報を生成する。なお、方位算出モジュール73は、適当な周期でバッファ管理モジュール71及びオフセット算出モジュール72を呼び出し、オフセット更新の指示を与える。
【0079】
[5. 処理の流れ]
図9は、オフセットcを算出し更新する処理の流れを示すフローチャートである。このフローチャートは、方位算出モジュール73が、バッファ管理モジュール71及びオフセット算出モジュール72を呼び出しオフセット更新の指示を与えた場合に実行される。方位算出モジュール73は、上位プログラムからの指示がある場合等、オフセットcの更新が必要である場合に、オフセット更新の指示を行う。
【0080】
ステップS100において、CPU10は、初期化処理、及び磁気データ取得処理を行う。初期化処理において、CPU10は、バッファ管理モジュール71を呼び出し、RAM20に記憶した磁気データを廃棄する。なお、本実施形態では、磁気データの全部を廃棄するが、RAM20に蓄積されたデータのうち古い方から一定割合のデータのみを廃棄しても良い。そして、磁気データ取得処理において、3次元磁気センサ60から出力されるN個の磁気データq
1〜q
Nを、RAM20に格納する。
【0081】
ステップS101において、CPU10は、磁気データ分布指標算出処理を行う。磁気データ分布指標算出処理は、ステップS100でRAM20等に蓄積されたN個の磁気データq
1〜q
Nに基づいて、センサ座標系Σ
SにおけるN個の磁気データq
1〜q
Nが示す座標の分布の広がりを示す各種分布指標を算出する処理である。具体的には、磁気データ分布指標算出処理では、N個の磁気データq
1〜q
Nの分散を表す共分散行列Aを算出すると共に、共分散行列Aの固有値λ
1〜λ
3及び固有ベクトルu
1〜u
3を算出する。
これにより、N個の磁気データq
1〜q
Nの各々が示す座標が、センサ座標系Σ
Sにおける各固有ベクトルu
1〜u
3方向のそれぞれについて、どの程度の広がりを有するか知ることができる。
【0082】
ステップS102において、CPU10は、中心点算出処理を行う。
中心点算出処理は、ステップS100で取得したN個の磁気データq
1〜q
Nと、ステップS101で得た各種分布指標とに基づいて、N個の磁気データq
1〜q
Nを近傍に有する球面Sの中心点x
0を算出する。中心点x
0は、オフセットcを、旧オフセットc
0から新オフセットc
1に更新するときの、新オフセットc
1の候補となる座標である。
【0083】
ステップS103において、CPU10は、歪判定処理を行う。
歪判定処理は、ステップS100で取得したN個の磁気データq
1〜q
N、ステップS101で算出した各種分布指標、及び、ステップS102で算出した中心点x
0に基づいて、N個のデータの分布の形状が、前述した
図2及び
図4のような、ある点を中心とする球面の近傍に分布するものであるか否かについて判定する処理である。つまり、歪判定処理は、N個の磁気データq
1〜q
Nが、ある立体SDの表面近傍に分布すると仮定した場合に、立体SDの形状と、球面の形状との相違の程度を判定する処理である。
そして、立体SDの形状が球面と看做せると判定した場合、すなわち、N個の磁気データq
1〜q
Nが
図2及び
図4に示すような球面に近い形状の立体の表面近傍に分布すると判定した場合には、CPU10は、処理をステップS104に進める。一方、立体SDが球面とは異なる大きく歪んだ形状を有すると判定した場合には、CPU10は、フローチャートに示される処理を終了する。
【0084】
ステップS104において、CPU10は、オフセット更新処理を行う。
オフセット更新処理は、中心点x
0を新オフセットc
1として採用したうえで、オフセットcを、旧オフセットc
0から新オフセットc
1に更新する処理である。オフセットcを更新した後、CPU10は、フローチャートに示される処理を終了する。
【0085】
なお、本実施形態では、ステップS103において、立体SDが球面とは異なる大きく歪んだ形状を有すると判定した場合、CPU10は、フローチャートに示される処理を終了するが、本発明はこれに限定されるものではない。
例えば、ステップS103において、立体SDが球面とは異なる大きく歪んだ形状を有すると判定した場合に、CPU10は、処理をステップS100に戻しても良いし、何らかのメッセージを表示部50に出力した上で処理を一旦停止させ、ユーザからの指示を待ってステップS100から処理を再開させても良い。
N個の磁気データq
1〜q
Nを取得する際に、利用者が機器1を手で握って回転させるのではなく、機器1の位置を固定したままその姿勢のみを変化させるようにすると、外部磁界Bxの影響を低く抑えることができる(
図4(B)参照)。そのため、ステップS103において、立体SDが球面とは異なる大きな歪を有する形状であると判定された場合には、機器1の位置を固定したまま回転させることを、利用者に対して指示しても良い。利用者に対する指示は、機器1の表示部50に画像や動画等を表示したり、音声等を用いたりすることで、行っても良い。
【0086】
以下において、これら、ステップS101〜S104においてCPU10が行う、磁気データ分布指標算出処理、中心点算出処理、歪判定処理、及びオフセット更新処理の詳細について説明する。
【0087】
[6. 磁気データ分布指標算出処理]
図10を参照しつつ、ステップS101における、磁気データ分布指標算出処理について説明する。
図10は、複数の磁気データq
1〜q
Nのセンサ座標系Σ
Sにおける、分布の様子を示す図であり、複数の磁気データq
1〜q
Nが3次元的に広がりを持って分布している場合を例示している。
磁気データ分布指標算出処理では、式(21)に示される共分散行列Aを用いて、複数の磁気データq
1〜q
Nの分布が、どの程度3次元的な広がりを有しているかについての各種指標を算出する。以下で、共分散行列Aの性質を説明する。
【0088】
共分散行列Aの固有値を、大きい順番に最大固有値λ
1、中間固有値λ
2、最小固有値λ
3とし、それぞれの固有値に対応する大きさ1に正規化された固有ベクトルをu
1、u
2、u
3とする。また、磁気データq
iを、前述した重心q
Cを原点とする重心座標系Σ
Cにおいて表したベクトルを
Cq
iと表す。このとき、固有値λ
j(j=1、2、3)は、固有ベクトルu
j方向の分散σ
2jに等しい。
図10に示すように、各固有ベクトルu
1〜u
3を重心座標系Σ
Cの原点q
Cを起点となるように配置する。このとき、例えばj=1の場合について考える。固有値λ
1は、ベクトル
Cq
iを、固有ベクトルu
1へ射影した長さL
i1の二乗(L
i1)
2を、N個の磁気データ
Cq
i(i=1、2、…N)について平均した値に等しくなる。つまり、固有値λ
1は、N個の磁気データ
Cq
iが、重心q
Cから固有ベクトルu
1方向にどの程度離れているかを表す指標であり、複数の磁気データq
1〜q
Nの分布が固有ベクトルu
jの方向に対してどの程度の広がり有するかについて、対応する固有値λ
jの大きさに基づいて判断することができる。
【0089】
最小固有値λ
3に対応する固有ベクトルu
3の方向が、複数の磁気データq
1〜q
Nの分布の広がりが最も小さい方向であり、最小固有値λ
3が、複数の磁気データq
1〜q
Nの分布の広がりが最も小さい方向における広がりの程度を示す指標である。従って、複数の磁気データq
1〜q
Nの分布の3次元的な広がりの程度は、最小固有値λ
3の値によって評価できる。最小固有値λ
3の値が大きければ、複数の磁気データq
1〜q
Nが3次元的な広がりを有して分布しているが、最小固有値λ
3の値が小さい場合は、複数の磁気データq
1〜q
Nが2次元的に分布していることになる。
このように、磁気データ分布指標算出処理では、式(21)に示される共分散行列Aの、固有ベクトルu
3と、最小固有値λ
3とを利用して、センサ座標系Σ
Sにおける複数の磁気データq
1〜q
Nの分布の広がりが最も小さな方向、及びその広がりの程度を算出する。
【0090】
[7. 中心点算出処理]
次に、ステップS102の中心点算出処理について説明する。
前述の通り、内部磁界Biは機器1の内部状態が変化した場合に変化するものであるため、内部磁界Biを表すオフセットcも必要に応じて更新されることが必要となる。中心点算出処理は、このオフセットcを、旧オフセットc
0から新オフセットc
1に更新するときの、新オフセットc
1の候補である中心点x
0を算出する処理である。
【0091】
図11に示すように、ある期間において3次元磁気センサ60から出力される複数の磁気データq
1〜q
Nが平面π上に2次元的に分布している場合であっても、測定誤差の影響によりわずかに3次元的に分布していると看做される場合には、複数の磁気データq
1〜q
Nをその近傍に有するような何らかの球面Sπの中心点x
πが算出される。このような中心点x
πは、複数の磁気データq
1〜q
Nの各々が有する測定誤差の影響により確率的に算出された座標に過ぎないため、中心点x
πと、当該期間において仮に機器1を3次元的に姿勢変化させていれば測定されたであろう複数の磁気データを近傍に有するような球面Sの中心点x
0とは、異なるものである可能性が高い。
しかし、球面Sの中心点x
0が中心点x
πを通り平面πに直交する直線π
L上に存在することについては、特定可能である。つまり、中心点x
πの座標が有する情報のうち、直線π
Lと平行な方向についての情報は不正確であるが、直線π
Lと垂直な方向についての情報は正確である。従って、当該期間が開始される前のオフセットc(旧オフセットc
0)が直線π
L上に存在しない場合には、オフセットcを旧オフセットc
0から直線π
L上の新オフセットc
1に更新して補正処理を行うことで、オフセットcを旧オフセットc
0から更新しない場合に比べて正確な地磁気Bgを算出することができる。
中心点算出処理では、中心点x
πで示される座標のうち正確性の高い方向の情報については中心点x
πの情報を利用し(つまり、当該期間において3次元磁気センサ60から出力される複数の磁気データq
1〜q
Nから算出される情報を利用し)、中心点x
πで示される座標のうち正確性の低い方向については旧オフセットc
0の情報を利用することで、中心点x
0を推定する。これにより、中心点x
πの座標が有する情報のうち不正確な情報を排除し、正確な情報のみに基づいて、中心点x
0を求めることができる。なお、旧オフセットc
0から中心点x
0を示すベクトル(x
0−c
0)を、更新ベクトル(中心点算出用更新ベクトル)kと呼ぶ。
【0092】
図11に示すように、複数の磁気データq
1〜q
Nが平面π上に2次元的に分布し、複数の磁気データq
1〜q
Nの分布が直線π
L方向に広がりを有さない場合、直線π
L方向と、共分散行列Aの固有ベクトルu
3の示す方向とは一致する。従って、中心点x
πの座標が有する情報のうち、固有ベクトルu
3方向の情報は、不正確な情報である。また、平面πは、共分散行列Aの固有ベクトルu
1及びu
2の示す方向と平行である。従って、中心点x
πの座標が有する情報のうち、固有ベクトルu
1方向及びu
2方向の情報は、正確な情報である。
更新ベクトルkは、中心点x
πの座標が有する情報のうち、正確性を有する方向の情報を利用して、中心点x
0を算出するためのベクトルである。従って、複数の磁気データq
1〜q
Nが2次元的に分布する場合、更新ベクトルkは、固有ベクトルu
3方向の成分を有さないように定められる。つまり、更新ベクトルkは、固有ベクトルu
1及びu
2の線形結合として表現される。このとき、更新ベクトルkと固有ベクトルu
3との間には以下の式(22)が成立する。
【数13】
【0093】
式(22)で示される制約条件は、複数の磁気データq
1〜q
Nの分布が、3次元的な広がりを有さずに完全に押しつぶされた形状となる場合、すなわち、固有ベクトルu
3方向の広がりを全く有さず、完全に2次元的な分布となる場合を表す制約条件である。
一方、複数の磁気データq
1〜q
Nの分布が、完全に押しつぶされること無く、固有ベクトルu
3方向に広がりを有する場合、中心点x
πの座標が有する情報は、固有ベクトルu
3方向について完全に欠落している訳ではない。この場合、更新ベクトルkと固有ベクトルu
3とが完全に直交する必要は無く、式(22)で示される制約条件は緩和されることが好ましい。そこで、本実施形態では、式(22)で示される制約条件を、磁気データq
1〜q
Nが示す座標の分布の、固有ベクトルu
3方向の広がりの大きさ(つまり、共分散行列Aの最小固有値λ
3の大きさ)に応じて緩和する。
【0094】
式(22)で示した制約条件を緩和するために、以下の式(23)に示す誤差(第3誤差)δ
Uを導入する。誤差δ
Uは、式(24)に示す内積ε
3に対し、係数(第1係数)αを掛け算した値である。内積ε
3は、更新ベクトルkと、固有ベクトルu
3との内積である。内積ε
3は、更新ベクトルkと、固有ベクトルu
3とが直交する場合には0となるが、直交しない場合には0以外の値となる。
なお、更新ベクトルkは、中心点x
0の位置を求めるための変数であるベクトルxの示す位置を、旧オフセットc
0を起点として表した位置ベクトルであるが、計算の便宜上、式(13)との整合を図り、式(25)に示すように、ベクトルx及び旧オフセットc
0を重心q
cから見た位置ベクトルとして表現する。
【数14】
【0095】
式(23)に現れる係数αは、式(22)で示した制約条件を緩和するための係数である。
誤差δ
Uを、0または0に近い小さな値に近づけることで、更新ベクトルkを定めることを考える。更新ベクトルkと固有ベクトルu
3とが直交しない場合には、内積ε
3は大きな値を有することになるが、係数αを十分に小さな値(例えば、0または0に近い小さな値)に設定した場合、内積ε
3が大きな値を有していても、誤差δ
Uを0または0に近い小さな値に近づけることができる。一方、係数αを大きな値に設定した場合、更新ベクトルkと固有ベクトルu
3とが直交し、内積ε
3が0または0に近い小さな値にならない限り、誤差δ
Uを0または0に近い小さな値に近づけることはできない。
すなわち、式(23)において係数αを0または0に近い小さな値に設定して、誤差δ
Uを0または0に近い小さな値に近づける場合、更新ベクトルkと固有ベクトルu
3とが直交するという式(22)に示した制約条件は緩和される。一方、式(23)において係数αを大きな値に設定して、誤差δ
Uを0または0に近い小さな値に近づける場合、式(23)は式(22)と同様の制約条件を与える式になる。
【0096】
なお、本実施形態において、係数αは、正の値を有し、以下の式(26)に示すような、固有値λ
3の関数として定められる。なお、式(26)の定数k
αは、k
α>0を満たす実数である。係数αは、固有値λ
3が大きな値の場合には、0に近い小さな値となり、固有値λ
3が小さな値の場合には、1に近い大きな値となる。
【数15】
【0097】
式(17)で示した誤差δ
S、及び(23)で示した誤差δ
Uを最小化する中心点x
0を算出するため、以下の式(27)に示す目的関数(中心点算出関数)g
S(x)を導入する。目的関数g
S(x)は、ベクトル(中心点算出ベクトル)δ
SUの大きさを表す関数である。ベクトルδ
SUは、式(28)に示すように、誤差δ
S及び誤差δ
Uを要素とするN+1次元のベクトルである。
複数の磁気データq
1〜q
Nの分布が2次元的な場合、誤差δ
Sを最小化することで、複数の磁気データq
1〜q
Nを近傍に有する球面Sπの中心点x
πとして尤もらしい座標を算出できるが、これに加えて、誤差δ
Uを最小化することで、中心点x
πが示す座標の有する情報のうち正確性の高い方向の情報についてのみ利用した、中心点x
0として尤もらしい座標を算出することができる。
複数の磁気データq
1〜q
Nの分布が3次元的な場合、係数αが0または0に近い小さな値に設定されるため、誤差δ
Uを最小化しても、式(22)に示した制約条件は緩和され、十分に機能しない(または完全に機能しない)。
従って、目的関数g
S(x)を最小化するxを算出することで、複数の磁気データq
1〜q
Nの分布が2次元的な場合及び3次元的な場合の双方の場合について、複数の磁気データq
1〜q
Nを近傍に有する球面Sの中心点x
0として尤もらしい座標を求めることができる。
【数16】
【0098】
以下において、目的関数g
S(x)を最小化する解x(=中心点x
0)を算出する方法について述べる。ベクトルδ
SUは、式(28)に対して、式(17)、及び式(23)〜(25)を代入することで、式(29)のように変形される。ここで、行列X
Sは式(30)に示すような、N+1行3列の行列であり、ベクトルj
Sは式(31)に示すN+1次元のベクトルである。
【数17】
【0099】
目的関数g
S(x)を最小化するような解xとして求められる中心点x
0は、式(32)に示す3元1次連立方程式の解として求められ、式(35)で示す3次元のベクトルとして表される。ここで、式(32)は、式(27)に対して、最小二乗法を適用することによって算出される。また、行列A
Sは式(33)に示す3行3列の行列であり、ベクトルX
STj
Sは、式(34)に示す3次元のベクトルである。
【数18】
【0100】
[8. 歪判定処理]
次に、ステップS103の歪判定処理について説明する。
なお、本実施形態の歪判定処理は、複数の磁気データq
1〜q
Nが3次元的に分布する場合、及び複数の磁気データq
1〜q
Nが2次元的に分布する場合の双方について、複数の磁気データq
1〜q
Nを表面近傍に有する立体SDの形状と球面の形状との相違の程度を判定する処理である。
以下では、本実施形態に係る歪判定処理の前提として、複数の磁気データq
1〜q
Nが3次元的な広がりを有して分布する場合に限定した歪判定処理(8.1節)について説明したうえで、その後、本実施形態に係る歪判定処理について説明する(8.2節)。
【0101】
[8.1. 磁気データが3次元的に分布する場合の歪判定処理]
複数の磁気データq
1〜q
Nが3次元的に分布する場合で、且つ、不均一な外部磁界Bxの影響が小さく立体SDの形状がほぼ球面と看做せる場合、式(20)に示した球面Sの中心点x
0は、地磁気を表す球面S
Gの中心点x
0Gとほぼ一致する。しかし、
図3に示したように、外部磁界Bxが一様ではなく、かつ、外部磁界Bxの影響が大きい場合には、3次元磁気センサ60が順次出力する複数の磁気データq
1〜q
Nは、中心点x
0を中心とする球面Sの近傍には分布せず、球面とは異なる歪んだ形状を有する立体SDの表面近傍に分布することになる。この場合、球面Sの中心点x
0は、地磁気Bgを表す球面S
Gの中心点x
0Gとは異なる座標となる可能性が高いため、中心点x
0をオフセットcとして採用することは、避ける必要がある(
図13参照)。
【0102】
但し、立体SDと球面Sとが十分に近い形状である場合には、球面Sの中心点x
0をオフセットcとして採用することができる。
例えば、
図4(A)に示すように、外部磁界Bxの影響が小さい場合には、センサ座標系Σ
Sにおいて、3次元磁気センサ60が順次出力する複数の磁気データq
1〜q
Nが、ステップS102で算出された中心点x
0を中心とする球面Sの近傍に分布することになり、且つ、当該球面S及びその中心点x
0は、地磁気Bgを表す球面S
G及びその中心点x
0Gとほぼ等しくなる(
図14(C)参照)。
また、
図4(B)に示すように、機器1の位置(厳密には、3次元磁気センサ60の位置)を固定したままその姿勢のみを変化させて複数の磁気データq
1〜q
Nを取得する等、外部磁界Bxが3次元磁気センサ60によってほぼ一様な磁界として検出される場合には、複数の磁気データq
1〜q
Nが、ステップS102で算出された中心点x
0を中心とする球面Sの近傍に分布することになる。そして、この場合、球面Sは地磁気Bgを表す球面S
Gとは異なるが、球面Sの中心点x
0は、球面S
Gの中心点x
0Gとほぼ等しくなる(
図14(B)参照)。
本節に係る歪判定処理は、複数の磁気データq
1〜q
Nが立体SDの表面近傍に分布すると仮定した場合に、立体SDの形状が球面の形状とどの程度近いものであるかを評価する処理である。立体SDの形状が球面の形状に十分に近いと評価された場合には、球面Sの中心点x
0を、新オフセットc
1として採用することができる。
【0103】
前述した中心点算出処理では、複数の磁気データq
1〜q
Nが、式(13)で示される球面Sの近傍に分布すると仮定した場合における、複数の磁気データq
1〜q
Nの各々が示す座標と球面Sとの複数の誤差を、誤差δ
Sを用いて表した。
これに対して本節に係る歪判定処理では、
図12に示すように、まず、複数の磁気データq
1〜q
Nが、球面とは異なる歪んだ形状の式(36)に示される立体SDの表面近傍に分布すると仮定する。式(36)に示される立体SDは、球面を表す成分「X(x−q
c)−j」と、式(37)に示す歪を表す成分(歪誤差ベクトル)k(E)とを、加算したものである。ここで、式(36)の右辺に現れる0
Nの右下の添え字「N」は、零ベクトルの次元を表している。
なお、式(36)に現れる成分「X(x−q
c)−j」が表す球面と、中心点算出処理により算出される球面Sとは、必ずしも一致しない。そこで、以下では、式(36)に現れる成分「X(x−q
c)−j」によって表される球面を球面(歪判定用球面)S
2と称し、その中心点を中心点(歪判定用球面の中心点)x
02と称する。なお、本節において、ベクトルxは、球面S
2の中心点x
02を表すための変数である。
歪判定処理は、式(36)のうち、歪を表す成分k(E)の大きさを評価することにより、立体SDの形状と、球面S
2の形状とが、どの程度相違しているかについて評価するものである。
【数19】
【0104】
式(37)に示した歪を表す成分k(E)はN次元のベクトルである。歪を表す成分k(E)の第i行目の要素ke(q
i−x
0)は、以下の式(39)で表される関数ke(p)に対して、球面Sの中心点x
0を原点とする座標系から見た磁気データq
iを表すベクトル(q
i−x
0)を代入することにより与えられる値である。関数ke(p)は、式(38)に示す歪評価行列Eを係数行列とし、式(40)に示される3変数p=(p
x、p
y、p
z)の二次形式で表される関数である。なお、歪評価行列Eは、式(38)に示したように、3行3列の対称行列である。
【数20】
【0105】
なお、3次元磁気センサ60の測定誤差等を考慮すると、複数の磁気データq
1〜q
Nの各々が示す座標の全てが、立体SDと完全に一致する位置に存在することは無いため、式(36)は解を持たない。そこで、統計的な手法により尤もらしい解を得るために、式(41)で表される誤差を吸収するベクトルである誤差(立体誤差ベクトル)δ
SDを導入する。
誤差δ
SDは、複数の磁気データq
1〜q
Nの各々が示す座標と立体SDの表面との誤差を各要素とする、N次元のベクトルであり、誤差(歪判定用球面誤差ベクトル)δ
S2と歪を表す成分k(E)との和として表現される。なお、詳細は後述するが、誤差δ
S2は、式(36)のうち、球面を表す成分「X(x−q
c)−j」に対応する成分である。
誤差δ
SDのノルムを最小にするベクトルx及び歪評価行列E、換言すれば、(δ
SD)
T(δ
SD)を最小化するようなベクトルx及び歪評価行列Eによって、複数の磁気データq
1〜q
Nを表面近傍に有する立体SDが表現される。
ここで、以下の式(42)で示される目的関数(立体歪評価関数)f
SD(E,x)を定義する。この目的関数f
SD(E,x)を最小化するようなx及び歪評価行列Eにより、複数の磁気データq
1〜q
Nを近傍に有する立体SDが表現される。
【数21】
【0106】
歪を表す成分k(E)の大きさ(すなわち、立体SDの形状と、球面S
2の形状との、相違の程度)については、後述する式(43)及び(44)で示される歪評価値g
D(E)に基づいて評価することができる。そして、歪評価値g
D(E)が閾値(歪許容値)δ
0以下であれば、立体SDと球面S
2とは等しい図形であると看做すことができるため、立体SDの形状は球面Sともほぼ等しくなり、中心点算出処理で算出した中心点x
0をオフセットcとして採用することができる。一方、歪評価値g
D(E)が閾値δ
0よりも大きな値を有する場合には、中心点x
0をオフセットcとして採用することはできない。
【0107】
以下で、式(17)で表される誤差δ
Sと、式(41)で表される誤差δ
SDとの、性質の相違点について説明する。
式(17)に表される誤差δ
Sは、N個の磁気データq
1〜q
Nの各々が示す座標と球面Sとの誤差を吸収するためのベクトルである。誤差δ
Sを構成する1行目〜N行目の各要素は、それぞれ独立した変数である。従って、誤差δ
Sによって、N個の磁気データq
1〜q
Nの各々が示す座標と球面Sとの誤差を吸収する場合には、N個の磁気データq
1〜q
Nと球面SとのN個の誤差の各々は、互いに制約の無い独立した値となる。つまり、誤差δ
Sによって表されるN個の誤差は、それぞれが独立に確率的に定められるものであり、N個の誤差は全体として、対称性を有し、かつ方向依存性の無いホワイトノイズである。
従って、式(19)乃至式(21)は、N個の磁気データq
1〜q
Nの座標と球面Sとの誤差を、対称性を持ち方向依存性の無いホワイトノイズとみなし、そのホワイトノイズである誤差を最小化するような球面Sの中心点x
0を求めるものである。
【0108】
一方、式(41)に表される誤差δ
SDは、N個の磁気データq
1〜q
Nの各々が示す座標と立体SDとの誤差を吸収するベクトルであり、換言すれば、N個の磁気データq
1〜q
Nの各々が示す座標と球面S
2との誤差を、誤差δ
S2と、歪を表す成分k(E)と、によって吸収するベクトルである。誤差δ
S2は、誤差δ
Sと同様に式(17)の右辺で表され、N個の磁気データq
1〜q
Nの各々が示す座標と、球面S
2との誤差を、ホワイトノイズとして表現するベクトルである。
一方、歪を表す成分k(E)は、式(39)で示した3変数二次形式の関数ke(p)を各成分とするベクトルである。3変数の二次形式は、変数が2次の項から構成される関数であり、3次元空間上の様々な曲面、例えば、直線、平面、柱面、球面、楕円面、錐面、1葉双曲面、2葉双曲面、及び各種放物面等を描くことができる。従って、歪を表す成分k(E)は、N個の磁気データq
1〜q
Nが示すN個の座標と球面S
2とのN個の誤差の各々を、互いに独立したものではなく、N個の誤差の全てが同一の関数ke(p)により表される3次元空間内の曲面上に存在するという制約を持った値として表現する。
このように、誤差δ
SDは、N個の磁気データq
1〜q
Nの各々が示す座標と球面S
2とのN個の誤差の全体を、ホワイトノイズである誤差δ
S2と、滑らかな歪を表す成分k(E)による球面S
2からの歪という性質を有する誤差とによって表現する。つまり、誤差δ
SDを導入することにより、N個の磁気データq
1〜q
Nの各々が示す座標と球面S
2とのN個の誤差を表すベクトルを、ホワイトノイズに起因する誤差δ
S2と、歪を表す成分k(E)による歪に起因する誤差とに分離することが可能となった。
【0109】
以下では、球面Sの中心点x
0を新オフセットc
1として採用することが可能な場合と、中心点x
0を新オフセットc
1として採用することが不可能な場合とが、歪を表す成分k(E)の大きさに応じてどのように場合分けされるかについて、
図13及び
図14を参照しながら説明する。
【0110】
図13は、歪を表す成分k(E)が大きい場合、すなわち、不均一な外部磁界Bxの影響により、立体SDが球面S
2とは大きく異なる形状を有する場合を示す。なお、
図13及び
図14では、簡単のため、複数の磁気データq
1〜q
Nが立体SDの表面に完全に一致するように分布すると仮定し、式(36)が成立する場合を示している。
図13に示す場合、複数の磁気データq
1〜q
Nは、球面S
2とは大きく異なる歪んだ形状の立体SD上に分布するため、複数の磁気データq
1〜q
Nが球面S上に分布していると看做すこともできない。中心点算出処理は、球面Sの近傍に複数の磁気データq
1〜q
Nが存在していることを前提として、オフセットc(地磁気を表す球面S
Gの中心点x
0G)の候補である中心点x
0を算出する処理であるため、複数の磁気データq
1〜q
Nを近傍に有さない球面Sの中心点x
0は、オフセットcとしての意味を有さない。
また、立体SDは、地磁気Bgを表す球面S
Gと外部磁界Bxを表す曲面SXとの重ね合わせであると同時に、球面S
2と歪を表す成分k(E)との重ね合わせでもある。歪を表す成分k(E)は、複数の磁気データq
1〜q
Nの各々が示す座標と球面S
2との誤差のうちホワイトノイズとして表現できない誤差を表すベクトルであり、外部磁界Bxを表す曲面SXとは異なるものである。よって、歪を表す成分k(E)が大きい場合には、球面S
2と球面S
Gとは異なるものとなる可能性が高く、仮に球面Sと球面S
2とが一致すると看做すことができる場合であっても、球面S及びその中心点x
0と球面S
G及びその中心点x
0Gとは異なるものとなる可能性が高い。
このように、式(36)が成立し、且つ、歪を表す成分k(E)が大きい場合には、球面Sの中心点x
0と球面S
Gの中心点x
0Gとが一致しない可能性が高く、球面Sの中心点x
0をオフセットcとして採用することを避ける必要がある。
【0111】
一方、歪を表す成分k(E)が「0」となる場合には、球面Sの中心点x
0をオフセットcとして採用することができる。
例えば、
図14(A)に示すような、外部磁界Bxが存在しない場合を検討する。この例では、地磁気Bgを表す球面S
Gと外部磁界Bxを表す曲面SXとの重ね合わせである立体SDは、球面S
Gと等しくなり、その形状は球面となる。
立体SDの形状が球面となり、歪を表す成分k(E)が「0」となる場合、立体SDと球面S
2とは一致するため、式(36)が成立する場合には、式(13)も同時に成立する。つまり、球面Sは、複数の磁気データq
1〜q
Nを近傍に有するように定められる球面であるため、立体SDと球面Sとは一致する。その結果、球面Sと、球面S
Gとが一致することになるため、球面Sの中心点x
0は、中心点x
0Gを表すものとなり、中心点x
0をオフセットcとして採用することができる。
【0112】
また、歪を表す成分k(E)が小さい場合(歪を表す成分k(E)≒0となる場合)には、球面Sの中心点x
0をオフセットcと看做して採用することができる。
例えば、
図14(B)に示すように、外部磁界Bxが3次元磁気センサ60によってほぼ一様な磁界として検出される場合を検討する。この例では、外部磁界Bxを表す曲面SXの形状を、中心点x
0Gを中心とする球面と看做すことができるため、球面S
Gと曲面SXとの重ね合わせである立体SDは、中心点x
0Gを中心とする球面に近い形状を有する。
立体SDが球面に近い形状となり、歪を表す成分k(E)が「0」に近い小さな値となる場合、立体SDと球面S
2とは、ほぼ等しくなるため、式(36)が成立する場合には、式(13)も成立すると看做すことができる。よって、立体SDと球面Sとは、ほぼ等しいものとなり、立体SD上に分布する複数の磁気データq
1〜q
Nは、中心点x
0を中心とする球面S上にも分布していると看做すことができる。その結果、球面Sの中心点x
0と、球面S
Gの中心点x
0Gとは、ほぼ同一の座標になる。従って、
図14(B)に示すような場合にも、球面Sの中心点x
0をオフセットcとして採用することができる。
【0113】
また、
図14(C)に示すような、3次元磁気センサ60によって検出される不均一な外部磁界Bxの大きさが十分に小さく、曲面SXの影響を無視することができる場合について検討する。
この例では、地磁気Bgを表す球面S
Gと外部磁界Bxを表す曲面SXとの重ね合わせである立体SDは、地磁気Bgを表す球面S
Gとほぼ等しいと看做すことができるため、立体SDの形状は球面と看做すことができる。
立体SDが球面に近い形状となり、歪を表す成分k(E)が「0」に近い小さな値となる場合、立体SDと球面S
2とは、ほぼ等しくなるため、式(36)が成立する場合には、式(13)も成立すると看做すことができ、立体SDと球面Sとがほぼ等しいものとなる。
よって、球面Sと球面S
Gとは、ほぼ等しくなるため、中心点x
0と、球面S
Gの中心点x
0Gとは、ほぼ同一の座標になる。従って、
図14(C)に示すような場合にも、球面Sの中心点x
0をオフセットcとして採用することができる。
【0114】
このように、歪を表す成分k(E)が小さい場合、立体SD上に分布する複数の磁気データq
1〜q
Nは、球面S上にも分布すると看做すことができ、球面Sの中心点x
0をオフセットcとして採用することができる。以下では、歪評価行列Eの性質について述べたうえで、歪を表す成分k(E)の大きさを評価する方法について述べる。
【0115】
前述の通り、N次元のベクトルである歪を表す成分k(E)の各要素は、3行3列の対称行列である歪評価行列Eを係数とする3変数二次形式で表される。すなわち、歪を表す成分k(E)のうち、第i行目の要素ke(q
i−x
0)は、球面Sの中心点x
0を起点として磁気データq
iの座標を表したベクトルq
i−x
0と、ベクトルq
i−x
0を歪評価行列Eにより変換して得られるベクトルE(q
i−x
0)との内積である。
【0116】
ここで、歪評価行列Eの固有値を、絶対値の大きい順番に最大固有値λ
E1、中間固有値λ
E2、最小固有値λ
E3とし、それぞれの固有値に対応する大きさ1に正規化された固有ベクトルをu
E1、u
E2、u
E3とする。歪評価行列Eは対称行列であるため、歪評価行列Eの3つの固有ベクトルu
E1、u
E2、u
E3は互いに直交する。
ベクトルq
i−x
0が、固有ベクトルu
E1と平行な場合、ベクトルE(q
i−x
0)は、ベクトルq
i−x
0に平行で、ベクトルq
i−x
0をλ
E1倍した長さを有するベクトルとなる。つまり、要素ke(q
i−x
0)の値は、λ
E1(|q
i−x
0|
2)となる。従って、要素ke(q
i−x
0)の絶対値は、ベクトルq
i−x
0の表す方向が、固有ベクトルu
E1の表す方向に近づくに従って大きくなる。
【0117】
歪評価行列Eは、ベクトルxと歪評価行列Eとを変数とする目的関数f
SD(E,x)を最小化することで求められる行列である。なお、前述の通り、本節においてベクトルxは、球面S
2の中心点x
02を表すための変数である。
ここで、立体SDの表面近傍に存在する磁気データq
iの座標が、球面S
2から大きく離れた位置である場合、磁気データq
iの示す座標と球面S
2との誤差を、球面S
2からのホワイトノイズである誤差δ
S2と看做すことは好ましくない。歪を表す成分k(E)は、立体SDの近傍に存在する複数の磁気データq
1〜q
Nの各々が示す座標と球面S
2との誤差のうち、ホワイトノイズと看做すことが不適切な大きな誤差を、歪に起因する誤差として吸収するために定められるベクトルである。つまり、歪を表す成分k(E)は、複数の磁気データq
1〜q
Nを表面近傍に有する立体SDと球面S
2との形状の相違を表すように定められる。
そして、歪評価行列Eの各成分は、磁気データq
iの示す座標が球面S
2から大きく離れている場合には、歪を表す成分k(E)のうち第i行目の要素ke(q
i−x
0)が大きな値となるように定められる。具体的には、歪評価行列Eの最大固有値λ
E1に対応する固有ベクトルu
E1の方向が、ベクトルq
i−x
0の方向に近づくように、歪評価行列Eの各成分が定められる。
【0118】
なお、歪を表す成分k(E)は、複数の磁気データq
1〜q
Nと球面S
2とのN個の誤差を全体として表すベクトルである。
従って、歪評価行列Eの各成分は、歪評価行列Eの最大固有値λ
E1に対応する固有ベクトルu
E1の方向と、球面S
2からの誤差が大きな磁気データq
iが多く存在する位置を球面Sの中心点x
0から見た方向とが近づくように、定められる。そして、歪評価行列Eの最大固有値λ
E1は、中心点x
0から見て、固有ベクトルu
E1の方向に存在する複数の磁気データと球面S
2との誤差の大きさの程度を表す値となる。
このように、歪評価行列Eによって、立体SDと球面S
2との形状の相違の程度と、形状の相違が大きな方向とを表現することが可能となる。
【0119】
ここで、以下の式(43)及び(44)に示す歪評価値g
D(E)を、歪を表す成分k(E)の大きさを評価する評価値として定義する。歪評価値g
D(E)は、目的関数f
SD(E,x)を最小化する場合の、歪評価行列Eのノルム、すなわち歪評価行列Eの最大固有値λ
E1の絶対値である。
歪評価値g
D(E)の値が0となる場合には、式(36)は式(13)と一致し、立体SDが球面Sと等しくなる。また、歪評価値g
D(E)の値が0とならない場合であっても、一定の閾値δ
0以下であれば、立体SDが球面Sに近い形状を有するものであると判断できる。これらの場合には、複数の磁気データq
1〜q
Nが球面Sの近傍に分布すると看做せるため、前述した中心点算出処理により求められた球面Sの中心点x
0をオフセットcとして採用することができる。
【数22】
【0120】
以下に、歪評価値g
D(E)を求める方法について説明する。
まず、式(39)に示した関数ke(p)は、二次形式で表される関数であるため、以下の式(45)のように、ベクトルの内積として表現することもできる。また、歪を表す成分k(E)の第i行目の要素ke(q
i−x
0)は、式(39)の変数pに対して、ベクトル(q
i−x
0)を代入した値であるため、式(47)によって示される6次元のベクトルke
2(i)、及び、式(48)によって表される評価行列Eの各成分を並べた6次元のベクトルe
Eを用いて、式(46)のように表せる。
【数23】
【0121】
ここで、式(49)で示す行列X
2を導入する。行列X
2は、第i行目に、式(47)によって示される6次元のベクトルke
2(i)を転置したものと、3次元のベクトル(q
i−q
c)を転置したものを並べた、N行9列の行列である。
【数24】
【0122】
式(49)で表される行列X
2を用いることで、式(42)に示される目的関数f
SD(E,x)を、式(50)で表される目的関数g
SD(e)に変形することができる。なお、ベクトルeは、式(51)に示すように、式(48)に示した6次元のベクトルe
Eと、式(52)に示した3次元のベクトルe
Xとを並べた、9次元のベクトルである。また、式(52)のベクトルe
Xは、球面S
2の中心点x
02を表すための変数であるベクトルxから、式(4)に示した重心q
cを引いたベクトルである。
【数25】
【0123】
式(50)で表される目的関数g
SD(e)を最小化する解e=e
0は、以下の式(53)式で表現される連立方程式に対して、ガウス消去法や、コレスキー分解法などを適用することで、求められる。なお、式(53)は、式(50)に対して、最小二乗法を適用することによって算出される。
【数26】
【0124】
このようにして得た解e
0に基づき、式(38)により歪評価行列Eを復元する。そして、式(43)に示した歪評価値g
D(E)の値、即ち、歪評価行列Eのノルムを求める。歪評価行列Eのノルムは、歪評価行列Eが有する3つの固有値のうち絶対値が最大となる固有値(最大固有値λ
E1)の絶対値に等しいため、ヤコビ法や、冪乗法により求めることができる。
このとき、球面S
2の中心点x
02は、目的関数g
SD(e)を最小化する解e
0のうち式(51)のe
Xに相当する部分を式(52)に代入することにより求められる。歪評価値g
D(E)の値が閾値δ
0以下である場合には、中心点算出処理により求められた球面Sの中心点x
0と、球面S
2の中心点x
02とは、ほぼ等しい座標となる。従って、歪評価値g
D(E)の値が閾値δ
0以下である場合には、球面Sの中心点x
0、または、球面S
2の中心点x
02のいずれについても、オフセットcとして採用することができる。
【0125】
以上で述べた、本節に係る歪判定処理は、複数の磁気データq
1〜q
Nの分布が3次元的な広がりを有していることを前提とする。しかし、複数の磁気データq
1〜q
Nが2次元的に分布する場合には、式(49)からも明らかなように、式(53)に示される9行9列の行列X
2TX
2の階数が、「9」よりも小さくなる場合がある。この場合には、式(53)に基づいて、解e
0を算出することはできず、評価行列Eを求めることもできない。
本実施形態は、複数の磁気データq
1〜q
Nが3次元的に分布する場合のみならず、複数の磁気データq
1〜q
Nが2次元的に分布する場合も想定する。従って、複数の磁気データq
1〜q
Nが2次元的に分布する場合にも、複数の磁気データq
1〜q
Nを表面近傍に有するような立体SDが、球面からどの程度歪んだ形状を有するものであるかについての評価を行うことが必要である。
そこで、以下、8.2節において、複数の磁気データq
1〜q
Nが2次元的に分布する場合にも、立体SDの形状と球面の形状との相違の程度を評価する方法について述べる。
【0126】
[8.2. 本実施形態に係る歪判定処理]
以下で、本実施形態における歪判定処理について述べる。本実施形態に係る歪判定処理は、8.1節で述べた、複数の磁気データq
1〜q
Nが3次元的に分布する場合にのみ適用可能な歪判定処理を、複数の磁気データq
1〜q
Nが2次元的に分布する場合にも適用できるように拡張するものである。
【0127】
図7のように、複数の磁気データq
1〜q
Nが平面π上に2次元的に分布する場合には、複数の磁気データq
1〜q
Nを表面近傍に有するような立体SDの3次元的な形状を正確に表現することはできない。しかし、この場合であっても、立体SDの平面πによる切断面である曲線π
Dの2次元的な形状を表現することはできる。従って、複数の磁気データq
1〜q
Nを近傍に有するような平面π上の曲線π
Dの形状と、平面π上の円周の形状との相違の程度を評価することで、立体SDと球面との形状の相違の程度を評価することができる。
【0128】
前述の通り、複数の磁気データq
1〜q
Nが平面π上に2次元的に分布する場合には、複数の磁気データq
1〜q
Nの分散を表す共分散行列Aの固有ベクトルu
1及びu
2は、平面πに平行になり、固有ベクトルu
3は、平面πに垂直になる。すなわち、平面π上の曲線π
Dと、平面π上の円周との形状の相違の程度を評価するためには、固有ベクトルu
1及びu
2方向についての、立体SDと球面S
2との形状の相違の程度を評価すればよい。
なお、複数の磁気データq
1〜q
Nが、平面π上に2次元的に分布する場合には、固有ベクトルu
3方向について、立体SDの形状を知ることはできない。従って、固有ベクトルu
3方向について、立体SDと球面S
2との形状の相違の程度を評価することは避けることが望ましい。
【0129】
そこで、本実施形態では、共分散行列Aの最小固有値λ
3に対応する固有ベクトルu
3方向については、立体SDと球面S
2との形状の相違が存在しないと仮定して、歪評価行列Eを定める。
具体的には、歪評価行列Eの最小固有値λ
E3が「0」となり、且つ、共分散行列Aの最小固有値λ
3に対応する固有ベクトルu
3と歪評価行列Eの最小固有値λ
E3に対応する固有ベクトルu
E3とが平行となるという制約の下で、歪評価行列Eを定める。
このような歪評価行列Eを定めた場合、共分散行列Aの固有ベクトルu
3を歪評価行列Eによって変換したベクトルEu
3は「0」となり、共分散行列Aの固有ベクトルu
3とベクトルEu
3との内積も「0」となる。よって、固有ベクトルu
3とベクトルq
i−x
0とが平行となるような磁気データq
iについて、歪を表す成分k(E)の要素ke(q
i−x
0)が、「0」となる。すなわち、本実施形態に係る歪評価行列Eは、中心点x
0から見て共分散行列Aの固有ベクトルu
3方向に存在する磁気データq
iと球面S
2との誤差が「0」であると看做す。換言すれば、歪評価行列Eは、固有ベクトルu
3方向について、立体SDと球面S
2との形状の相違が存在しないことと看做す行列として定められる。
以上に述べたような、共分散行列Aの固有ベクトルu
1及びu
2方向については立体SDと球面S
2との形状の相違を評価するが、固有ベクトルu
3方向については立体SDと球面S
2との形状の相違が存在しないことと看做す歪評価行列Eを算出するための制約条件(第2の制約条件)を、式(54)に示す。
【数27】
【0130】
式(54)は、共分散行列Aの固有ベクトルu
3を歪評価行列Eによって変換したベクトルEu
3が、零ベクトルであることを表す。
歪評価行列Eは対称行列であるため、歪評価行列Eの3つの固有ベクトルu
E1〜u
E3は、互いに直交する。そして、共分散行列Aの固有ベクトルu
3と、ベクトルEu
3とは、共に、歪評価行列Eの固有ベクトルu
E1〜u
E3の線形結合として表される。例えば、u
3=v
1u
E1+v
2u
E2+v
3u
E3と表し、Eu
3=w
1u
E1+w
2u
E2+w
3u
E3と表すことができる。ある行列の固有ベクトルに平行なベクトルを、当該ある行列により変換した場合、変換後のベクトルは、変換前のベクトルと平行で、且つ、当該ある行列の固有ベクトルに対応する固有値倍の大きさを有する。よって、固有ベクトルu
3と、ベクトルEu
3との間には、w
1=λ
E1v
1、w
2=λ
E2v
2、及びw
3=λ
E3v
3という関係が成立する。従って、式(54)は、歪評価行列Eの3つの固有値λ
E1〜λ
E3の全てが「0」となること、または、共分散行列Aの固有ベクトルu
3が、歪評価行列Eの3つの固有値λ
E1〜λ
E3のうち値が「0」となる固有値に対応する固有ベクトルu
E1〜u
E3の線形結合によって表されることを示す。
複数の磁気データq
1〜q
Nが平面π上に2次元的に分布し、且つ、平面π上において立体SDと球面S
2との形状の相違が存在する場合は、歪評価行列Eの最大固有値λ
E1及び中間固有値λ
E2は、「0」よりも大きな値となる。従って、式(54)は、歪評価行列Eの最小固有値λ
E3が「0」であり、且つ、共分散行列Aの固有ベクトルu
3と歪評価行列Eの固有ベクトルu
E3とが平行であることを表すことになる。
なお、平面π上において立体SDと球面S
2との形状の相違が存在しない場合、つまり、
図7において、曲線π
Dと円周π
Cとが一致する場合、式(54)は、歪評価行列Eの3つの固有値λ
E1〜λ
E3が全て「0」となることを表す。
【0131】
このように、式(54)に表現される制約条件を導入することにより、歪評価行列Eは、固有ベクトルu
E1及びu
E2が平面πと平行になり、固有ベクトルu
E3が直線π
Lと平行になるように定められる。そして、歪評価行列Eは、共分散行列Aの固有ベクトルu
1及びu
2方向についてのみ、立体SDと球面S
2との形状の相違の程度を評価し、固有ベクトルu
3方向については、歪が無いものと看做す行列としての性質を有することになる。
【0132】
なお、本実施形態では、複数の磁気データq
1〜q
Nが2次元的に分布している場合のみならず、8.1節で述べたような、複数の磁気データq
1〜q
Nが3次元的な広がりを有して分布している場合であっても、立体SDと球面S
2との形状の相違の程度を評価する必要がある。そして、複数の磁気データq
1〜q
Nの分布が3次元的な広がりを有する場合には、共分散行列Aの固有ベクトルu
3方向についても、立体SDと球面S
2との形状の相違の程度を評価する必要がある。従って、立体SDと球面S
2との形状の相違の程度を評価するにあたっては、式(54)に示される制約条件を常に厳格に満たすべきではなく、式(54)に示される制約条件を、複数の磁気データq
1〜q
Nの3次元的な広がりの程度に応じて緩和する必要がある。
【0133】
そこで、式(55)に示すような、誤差(第2誤差)δ
Eを導入する。誤差δ
Eは、式(54)の左辺に表されるベクトルEu
3に対して、係数(第2係数)βを掛け算した、3次元のベクトルである。係数βは、複数の磁気データq
1〜q
Nが2次元的に分布する場合には、大きな値となり、複数の磁気データq
1〜q
Nが3次元的に分布する場合には、0または0に近い小さな値を有する。
【数28】
【0134】
ここで、誤差δ
Eを最小化して0または0に近い小さな値に近づける場合を想定する。
係数βが大きな値を有する場合、式(55)のうち、ベクトルEu
3自体が0に近づかない限りは、誤差δ
Eを0に近づけることはできない。すなわち、係数βが大きな値を有する場合には、式(55)は、式(54)に示される制約条件と等しい条件を示す式となる。
一方、係数βが0または0に近い小さな値を有する場合、ベクトルEu
3自体が大きな値を有していても、誤差δ
Eを0に近づけることができる。すなわち、係数βが0または0に近い小さな値を有する場合には、式(55)は、式(54)に示される制約条件を緩和した条件を示す式となる。
このように、誤差δ
Eを最小化して0に近づけることで、複数の磁気データq
1〜q
Nの分布の3次元的な広がりの程度に応じた、立体SDの形状と球面S
2の形状との相違の程度を評価することが可能となる。
【0135】
本実施形態において、係数βは、以下の式(56)に示すような、正の値を有する、固有値λ
3の関数として定められる。なお、式(56)の定数k
βは、k
β>0を満たす実数である。係数βは、固有値λ
3が大きな値の場合には、0に近い小さな値となり、固有値λ
3が小さな値の場合には、1に近い大きな値となる。
【数29】
【0136】
式(55)に示した誤差δ
Eは、式(58)に表される行列Mによって、式(57)のように変形される。ここで、行列Mは、式(59)に示す共分散行列Aの最小固有値λ
3に対応する固有ベクトルu
3の各要素を成分に有する、6行3列の行列である。また、式(57)の0
3×3は、3行3列の零行列である。
【数30】
【0137】
ところで、8.1節(磁気データが3次元的に分布する場合の歪判定処理)に示した歪判定処理は、目的関数f
SD(E,x)を最小化することで、歪評価行列Eの各成分と、球面S
2の中心点x
02とを算出し、歪評価行列Eのノルムに基づいて、複数の磁気データq
1〜q
Nを近傍に有する立体SDと、球面S
2との形状の相違の程度を評価するものであった。
目的関数f
SD(E,x)を最小化することにより球面S
2の中心点x
02を算出する方法は、歪を表す成分k(E)を考慮しつつ球面を表す成分「X(x−q
c)−j」を最小化するものであり、2節(磁気データが球面近傍に分布する場合の球面の中心点の算出)に示した方法、つまり、式(17)に示した誤差δ
Sを最小化することにより球面Sの中心点x
0を算出する方法を利用するものである。従って、球面S
2の中心点x
02は、複数の磁気データq
1〜q
Nが3次元的に分布することを前提として算出される。
しかし、複数の磁気データq
1〜q
Nが2次元的に分布する場合には、複数の磁気データq
1〜q
Nが3次元的に分布することを前提とする2節に示した方法に基づいて球面S
2の中心点x
02を算出することはできない。
そこで、複数の磁気データq
1〜q
Nが2次元的に分布する場合の歪判定処理では、7節(中心点算出処理)に示した、複数の磁気データq
1〜q
Nが2次元的に分布する場合に球面の中心点を算出するための制約条件である式(22)を考慮して、歪判定処理で用いる球面S
2の中心点x
02を算出する。具体的には、歪評価行列Eの各成分と、球面S
2の中心点x
02とを算出する際に、式(23)に示された誤差δ
Uを最小化するという条件を付与することで、複数の磁気データq
1〜q
Nの3次元的な広がりの程度に応じて、球面S
2の中心点x
02を算出する。
なお、式(22)に示した更新ベクトルkは、球面Sの中心点x
0を算出するためのベクトルであるが、歪判定処理では、球面S
2の中心点x
02を算出する必要がある。そこで、旧オフセットc
0から球面S
2の中心点x
02を示すベクトルを更新ベクトル(歪判定用更新ベクトル)k
2と称し、更新ベクトルk
2と固有ベクトルu
3とが直交する条件(第1の制約条件)を緩和するための誤差を、誤差(第1誤差)δ
U2と称する。
式(23)に基づいて誤差δ
U2は、以下の式(60)のように表される。
【数31】
【0138】
ここで、式(61)に示すベクトル(歪評価ベクトル)δ
SD2を導入する。
ベクトルδ
SD2は、式(41)に示した誤差δ
SD、式(55)に示した誤差δ
E、及び式(60)に示した誤差δ
U2を要素に持つ、N+4次元のベクトルである。なお、式(41)に示した誤差δ
SDは、計算の便宜上、式(50)に現れるベクトル「X
2e−j」と変形したうえで、式(61)に適用する。同様に、式(55)に示した誤差δ
Eは、計算の便宜上、式(57)に示した式に変形したうえで、式(61)に適用する。
【数32】
【0139】
ベクトルδ
SD2を最小化する場合、誤差δ
SD、誤差δ
U2、及び誤差δ
Eが全体として最小化される。
誤差δ
U2を最小化することで、複数の磁気データq
1〜q
Nの分布が2次元的な場合及び3次元的な場合の双方の場合において、球面S
2の中心点x
02を算出することが可能となる。これにより、複数の磁気データq
1〜q
Nの分布が2次元的な場合であっても、歪評価行列Eを算出することができる。
また、誤差δ
Eを最小化することで、複数の磁気データq
1〜q
Nの分布が広がりを有する方向についてのみ立体SDと球面S
2との形状の相違の程度を評価する歪評価行列Eを算出することが可能となる。
このように、誤差δ
U2、及び誤差δ
Eを含むベクトルδ
SD2を最小化することにより算出される歪評価行列Eによって、複数の磁気データq
1〜q
Nの分布の広がりが2次元的な場合及び3次元的な場合の双方の場合において、立体SDと球面S
2との形状の相違の程度を評価することが可能となる。
【0140】
ここで、式(61)に示したベクトルδ
SD2を最小化するため、式(62)に示すような、目的関数(歪評価関数)g
SD2(e)を導入する。目的関数g
SD2(e)を最小化する解e=e
02は、以下の式(63)式で表現される連立方程式に対して、ガウス消去法や、コレスキー分解法などを適用することで求められる。なお、式(63)は、式(62)に対して、最小二乗法を適用することによって算出される。
【数33】
【0141】
解e
02に基づき、式(38)により歪評価行列Eを復元し、式(43)に示した歪評価値g
D(E)の値、即ち、評価行列Eのノルムを求める。そして、歪評価値g
D(E)の値が、閾値δ
0以下であるか否かを判定する。判定結果が肯定の場合、CPU100は、処理を後続のオフセット更新処理に進める。一方、判定結果が否定である場合には、CPU100は、一連の処理を終了する。
【0142】
[9. オフセット更新処理]
オフセット更新処理は、歪評価値g
D(E)の値が、閾値δ
0以下である場合に実行される処理である。オフセット更新処理では、中心点算出処理において算出された中心点x
0の座標が示す値を新オフセットc
1として採用したうえで、オフセットcを、旧オフセットc
0から、新オフセットc
1へと更新する。
本実施形態では、中心点x
0を新オフセットc
1として採用しているが、球面S
2の中心点x
02を新オフセットc
1として採用しても良い。歪評価値g
D(E)の値が閾値δ
0以下である場合には、球面Sの中心点x
0と、球面S
2の中心点x
02とは、いずれも、地磁気Bgを表す球面S
Gの中心点x
0Gとほぼ一致するからである。
なお、球面S
2の中心点x
02は、目的関数g
SD2(e)を最小化する解e=e
02のうち、式(51)のe
Xに相当する部分を、式(52)に代入することにより求められる。
【0143】
[10. 結論]
以上に示したように、本実施形態は、複数の磁気データq
1〜q
Nの分布の3次元的な広がりの程度を表す共分散行列Aの最小固有値λ
3と広がりの最も小さな方向を表す共分散行列Aの最小固有値λ
3に対応する固有ベクトルu
3とを算出する磁気データ分布指標算出処理、複数の磁気データq
1〜q
Nの分布が3次元的な場合及び2次元的な場合の双方において新オフセットc
1の候補である中心点x
0を算出する中心点算出処理、複数の磁気データq
1〜q
Nの分布が3次元的な場合及び2次元的な場合の双方において立体SDの形状の歪の程度を評価して中心点x
0をオフセットとして採用することが妥当であるかを判断する歪判定処理、及び歪判定処理における判定結果が肯定である場合に中心点x
0を新オフセットc
1に採用してオフセットcを旧オフセットc
0から新オフセットc
1へと更新するオフセット更新処理を有する。
これらの4つの処理により、複数の磁気データq
1〜q
Nの分布が3次元的な場合及び2次元的な場合の双方において、外部磁界Bxの影響が大きい環境下で測定された複数の磁気データq
1〜q
Nに基づいて算出された中心点x
0をオフセットcとして採用することを防止することで、内部磁界Biに近い値を示す適切な中心点x
0のみをオフセットcとして採用することを可能とした。
すなわち、本実施形態は、複数の磁気データq
1〜q
Nの分布が3次元的な場合及び2次元的な場合の双方において、正確なオフセットによる、正確な地磁気Bgの値の算出が可能になった。これにより、3次元磁気センサ60が、自動車等のように左右方向のみに姿勢を変化させ、上下方向の姿勢変化が小さい機器1に搭載されている場合等にも、適切な地磁気Bgを算出することが可能となった。
【0144】
歪判定処理では、複数の磁気データq
1〜q
Nの座標と立体SDの表面との誤差を表すベクトルである誤差δ
SD、旧オフセットc
0から球面S
2の中心点x
02を示すベクトルである更新ベクトルk
2と複数の磁気データq
1〜q
Nの分布の広がりが最も小さい方向を示す固有ベクトルu
3との内積を表す値である誤差δ
U2、及び複数の磁気データq
1〜q
Nの分布が2次元的な広がりを有する場合に広がりを有する方向のみについて立体SDと球面S
2との形状の相違の程度を評価することを表す誤差δ
Eを要素とするベクトルδ
SD2を定義した。そして、ベクトルδ
SD2のノルムを最小化するような歪評価行列E及び中心点x
02を算出し、歪評価行列Eの最大固有値λ
E1の大きさ(歪評価行列Eのノルム)を表す歪評価値g
D(E)に基づいて、立体SDと球面S
2との形状の相違の程度を評価した。
複数の磁気データq
1〜q
Nが2次元的に分布する場合には、式(53)に示される、9行9列の行列X
2TX
2の階数が、「9」よりも小さくなる場合がある。この場合には、式(53)に基づいて、解e
0を算出することはできず、評価行列Eのノルムを表す歪評価値g
D(E)を算出することができないため、立体SDと球面S
2との形状の相違の程度を評価することができなかった。
それに対して、本実施形態では、誤差δ
U2、誤差δ
Eを導入することで、複数の磁気データq
1〜q
Nが2次元的に分布する場合も考慮された式(63)によって解e
02を算出し、解e
02に基づいて歪評価値g
D(E)を算出した。これにより、本実施形態に係る歪判定処理は、複数の磁気データq
1〜q
Nが2次元的に分布する場合であっても、立体SDと球面S
2との形状の相違の程度を評価することが可能となった。そして、外部磁界Bxの影響を受けた複数の磁気データq
1〜q
Nに基づいて算出された不適切な中心点x
0をオフセットcとして採用することを防止し、内部磁界Biに近い値を示す適切な中心点x
0のみをオフセットcとして採用することを可能とした。
【0145】
また、歪評価行列Eは、複数の磁気データq
1〜q
Nの分布が2次元的な広がりを有する場合に固有ベクトルu
3方向について立体SDと球面S
2との形状の相違の程度を評価しないことを表す誤差δ
Eを要素とするベクトルδ
SD2のノルムを最小化することで算出される。
歪評価行列Eを算出するにあたって、誤差δ
Eを最小化することにより、複数の磁気データq
1〜q
Nの分布が2次元的な場合に、立体SDと球面S
2との形状の相違の程度について評価を行うことができない固有ベクトルu
3方向については、立体SDと球面S
2との形状の相違の程度について評価を行わず、固有ベクトルu
1及びu
2方向についてのみ、立体SDと球面S
2との形状の相違の程度を評価する歪評価行列Eを算出することが可能となった。
【0146】
なお、誤差δ
Eは、固有ベクトルu
3方向について立体SDと球面S
2との形状の相違の程度を評価しないことを表す第2の制約条件(式(54)参照)と、第2の制約条件を複数の磁気データq
1〜q
Nの3次元的な広がりの程度(固有ベクトルu
3方向の広がりの程度を表す固有値λ
3の大きさ)に応じて緩和する係数βとを、掛け算したものである。
すなわち、本実施形態に係る歪判定処理は、このような係数βを有する誤差δ
Eを考慮して歪評価行列Eを算出するものであるため、複数の磁気データq
1〜q
Nが2次元的に分布している場合のみならず、3次元的な広がりを有して分布している場合についても、3次元的な広がりの程度に応じて、立体SDと球面S
2との形状の相違の程度を評価することが可能となった。
【0147】
また、中心点x
0は、誤差δ
Uを要素とするベクトルであるベクトルδ
SUのノルムを最小化することで算出される。
中心点x
0を算出するにあたって、誤差δ
Uを最小化することにより、複数の磁気データq
1〜q
Nの分布が2次元的な場合に、球面Sπの中心点x
πが有する情報のうち、固有ベクトルu
3方向の不正確な情報を排除して、新オフセットc
1の候補である球面Sの中心点x
0を算出することが可能となる。これにより、本実施形態に係る中心点算出処理は、複数の磁気データq
1〜q
Nが2次元的に分布する場合にも、3次元的な広がりの程度に応じて、正確なオフセットcの候補である球面Sの中心点x
0を算出することが可能となった。
【0148】
また、本実施形態に係る磁気データ分布指標算出処理は、複数の磁気データq
1〜q
Nのセンサ座標系Σ
Sにおける分布の3次元的な広がりの程度を表す、共分散行列Aの最小固有値λ
3と、広がりが最も狭い方向を表す、固有ベクトルu
3とを算出する。
これにより、中心点算出処理において、複数の磁気データq
1〜q
Nの分布の3次元的な広がりの程度に応じた、適切な中心点x
0を算出することを可能とすると共に、歪判定処理において、複数の磁気データq
1〜q
Nの分布の3次元的な広がりの程度に応じて、立体SDと球面S
2との形状の相違の程度を判定することが可能となった。
【0149】
なお、本実施形態に係る歪判定処理は、式(41)に示した誤差δ
SDを要素とするベクトルδ
SD2のノルムを最小化することで算出される歪評価行列Eに基づいて、立体SDと球面S
2との形状の相違の程度を評価する。誤差δ
SDは、複数の磁気データq
1〜q
Nが、ある球面S
2から、単にホワイトノイズに相当する誤差を有して分布する場合と、球面S
2とは異なる歪んだ形状の立体SDの表面近傍に分布する場合とを、区別して表現する。
例えば、式(17)に示した誤差δ
Sは、N個の磁気データq
1〜q
Nが球面Sから誤差を有して分布する場合に、その誤差が、ホワイトノイズによるものであるのか、それとも、不均一な外部磁界Bxによるものであるのかを判断できなかった。つまり、N個の磁気データq
1〜q
Nが球面S
2から大きく歪んだ形状を有する立体SDの表面近傍に分布している場合であっても、単純に球面からのホワイトノイズとしての誤差として評価するにとどまっていた。これに対して、本実施形態に係る歪判定処理は、誤差δ
SDを用いるため、ホワイトノイズによる誤差と、不均一な外部磁界Bxの影響による誤差とを区別することが可能となった。
N個の磁気データq
1〜q
Nが示すN個の座標と球面S
2とのN個の誤差が、全体として単なるホワイトノイズである場合、中心点算出処理において算出された中心点x
0と、内部磁界Biを表すベクトル(地磁気Bgを表す球面S
Gの中心点x
0G)とは、ほぼ同一の座標であると看做すことができる。本実施形態における歪判定処理は、誤差が単なるホワイトノイズである場合と、不均一な外部磁界Bxによる歪であるかを判別することが可能であるため、単なるホワイトノイズのみが存在する場合に算出された中心点x
0を、オフセットcとして採用することが可能である。一方、本実施形態における歪判定処理は、不均一な外部磁界Bxによる立体SDの歪が存在する場合に算出された中心点x
0を、オフセットcとして採用することを防止することができる。これにより、本実施形態は、不正確な値をオフセットとして採用することを未然に防止することが可能になるという利点を有する。
【0150】
なお、歪評価行列Eは、N個の磁気データq
1〜q
Nが示すN個の座標と球面S
2とのN個の誤差の大きさを表す行列であり、中心点x
0から見て、磁気データq
iの示す座標と球面S
2との誤差が大きな方向を向く固有ベクトルu
E1と、誤差の大きさを表す最大固有値λ
E1とを有する。本実施形態の歪判定処理は、歪評価行列Eの最大固有値λ
E1の大きさ(歪評価行列Eのノルム)を表す歪評価値g
D(E)に基づいて、立体SDと球面S
2との形状の相違の程度を評価することを可能とした。これにより、外部磁界Bxの影響が大きく、立体SDと球面S
2との形状の相違の程度が大きい場合に、中心点算出処理において算出される球面Sの中心点x
0をオフセットとして採用することを防止することが可能になった。
【0151】
また、本実施形態に係る中心点算出処理は、複数の磁気データq
1〜q
Nが、中心点x
0を中心とした球面Sの近傍に分布すると仮定することで、複数の磁気データq
1〜q
Nより中心点x
0を算出し、これをオフセットの候補とした。このような中心点算出処理は、オフセットの候補を簡単な演算により算出できるという利点を有し、処理速度の向上という利点を有するものである。
【0152】
また、本実施形態に係る中心点算出処理は、中心点x
0の算出にあたり、複数の磁気データq
1〜q
Nの重心q
cを原点とする重心座標系Σ
Cにおいて、複数の磁気データq
1〜q
Nの値を表現することで計算を行った。
これにより、3次元磁気センサ60の出力値である、センサ座標系Σ
Sにおける複数の磁気データq
1〜q
Nの値をそのまま用いて計算する場合に比べて、データの値を小さくすることができ、メモリサイズの小さい変数型で表現することが可能となった。すなわち、本実施形態の磁気データ処理プログラム70は、メモリ使用量の低減化を可能とするという利点を有する。
【0153】
<B.変形例>
本発明は上述した実施形態に限定されるものではなく、例えば、以下の変形が可能である。また、以下に示す変形例のうちの2以上の変形例を組み合わせることもできる。
【0154】
(1)変形例1
上述した実施形態では、係数αを、式(26)に示すような、固有値λ
3の関数として定められているが、係数αは2値で与えられても良い。例えば、固有値λ
3が閾値λ
0以上となる場合には、係数αを0または0に限りなく近い正の小さな値(第2の値)となるように設定し、固有値λ
3が閾値λ
0未満となる場合には、係数αを正の大きな値(第1の値)となるように設定しても良い。
この場合、固有値λ
3が閾値λ
0未満の値となり、中心点x
πの座標が有する情報が固有ベクトルu
3方向に正確性を有さないと判断される場合に、更新ベクトルk及び中心点x
0と更新ベクトルk
2及び中心点x
02とを、中心点x
πの座標が有する情報のうち正確性の高い固有ベクトルu
1及びu
2方向の情報のみを利用して生成することが可能となる。
【0155】
同様に、上述した実施形態では、係数βを、式(56)に示すような、固有値λ
3の関数として定められているが、係数βは2値で与えられても良い。例えば、固有値λ
3が閾値λ
0以上となる場合には、係数βを0または0に限りなく近い正の小さな値(第4の値)となるように設定し、固有値λ
3が閾値λ
0未満となる場合には、係数βを正の大きな値(第3の値)となるように設定しても良い。
この場合、固有値λ
3が閾値λ
0未満の値となり、複数の磁気データq
1〜q
Nの分布が2次元的な場合に、立体SDと球面S
2との形状の相違の程度をより正確に評価することが可能となる。
【0156】
(2)変形例2
上述した実施形態では、係数αを、式(26)に示すような、固有値λ
3の関数として定められているが、係数αを固有値λ
1及び固有値λ
3の大きさの比率を変数とする関数としても良い。例えば、固有値λ
3が固有値λ
1に比べて小さくなるに従って、係数αの値が大きくなるような関数としても良い。
同様に、上述した実施形態では、係数βを、式(56)に示すような、固有値λ
3の関数として定められているが、係数βを固有値λ
1及び固有値λ
3の大きさの比率を変数とする関数としても良い。例えば、固有値λ
3が固有値λ
1に比べて小さくなるに従って、係数βの値が大きくなるような関数としても良い。
この場合も、複数の磁気データq
1〜q
Nの分布が2次元的な場合に、立体SDと球面との形状の相違の程度をより正確に評価することが可能であり、また、複数の磁気データq
1〜q
Nの分布が2次元的な場合に、中心点x
πが有する情報のうち固有ベクトルu
3方向の不正確な情報を排除して新オフセットc
1の候補である中心点x
0を算出することが可能である。
【0157】
(3)変形例3
上述した実施形態及び変形例では、式(22)に示す制約条件を係数αにより緩和した誤差δ
U2と、式(54)に示す制約条件を係数βにより緩和した誤差δ
Eとを要素として含む、ベクトルδ
SD2の大きさを表す目的関数g
SD2(e)を最小化する解e
02に基づいて、歪評価行列Eを算出しているが、本発明はこのような形態に限定されるものでは無く、共分散行列Aの最小固有値λ
3が閾値λ
0未満の値となり複数の磁気データq
1〜q
Nの分布が2次元的な広がりを有する(3次元的な広がりを有さない)と看做せる場合に、式(22)及び式(54)に示す制約条件を厳密に満たすという条件の下で、歪評価行列Eを算出しても良い。
例えば、複数の磁気データq
1〜q
Nの分布が2次元的な場合、式(22)及び式(54)に示す制約条件を厳密に満たすという条件の下で、式(50)に示した目的関数g
SD(e)を最小化するような解e=e
0Aを算出し、この解を用いて歪評価行列Eを算出しても良い。式(22)及び式(54)に示す制約条件を厳密に満たすという条件の下で算出された、目的関数g
SD(e)を最小化するような解e
0Aは、ラグランジュ未定乗数法を用いて以下の式(64)により算出される。
なお、前述の通り、式(22)に示す制約条件は、厳密には、更新ベクトルkと固有ベクトルu
3とが直交する条件を表しているが、本変形例では、8.2節と同様に、式(22)に示す制約条件を、更新ベクトルk
2と固有ベクトルu
3とが直交することを表す制約条件として用いる。
【数34】
【0158】
ここで、行列M
2は、式(65)に示す4行9列の行列であり、ベクトルρは、4つのラグランジュ未定乗数を要素とする、4次元のベクトルである。また、ベクトルb
ρは、式(66)に示す4次元のベクトルである。
式(64)により算出される解e
0Aは、式(22)及び式(54)に示す制約条件を厳密に満たす解であるため、複数の磁気データq
1〜q
Nの分布が2次元的な場合に、立体SDと球面との形状の相違の程度をより正確に評価することが可能となる。
【0159】
(4)変形例4
上述した実施形態及び変形例では、式(22)に示す制約条件を係数αにより緩和した誤差δ
Uを要素として含むベクトルであるベクトルδ
SUを最小化することで式(35)により中心点x
0を算出しているが、本発明はこのような形態に限定されるものでは無く、共分散行列Aの最小固有値λ
3が閾値λ
0未満の値となり、複数の磁気データq
1〜q
Nの分布が2次元的な広がりを有する(3次元的な広がりを有さない)と看做せる場合に、式(22)に示す制約条件を厳密に満たすような中心点x
Aを算出しても良い。式(22)に示す制約条件を厳密に満たすような中心点x
Aは、ラグランジュ未定乗数法を用いて以下の式(67)により算出される。
【数35】
【0160】
ここで、行列X
4は、式(68)に示す4行4列の行列であり、ベクトルx
4は、ラグランジュ未定乗数ρ
4と、式(18)に示す3次元の変数を表すベクトルxとを要素とする、4次元のベクトルである。また、ベクトルb
4は、式(70)に示す4次元のベクトルである。
式(67)により算出される中心点x
Aは、式(22)に示す制約条件を厳密に満たす座標であるため、複数の磁気データq
1〜q
Nの分布が2次元的な場合に、中心点x
πが有する情報のうち固有ベクトルu
3方向の不正確な情報を厳密に排除して新オフセットc
1の候補である中心点x
Aを算出することが可能となる。
【0161】
(5)変形例5
上述した実施形態及び変形例では、中心点算出処理において、式(22)に示す制約条件を係数αにより緩和した誤差δ
Uを要素として含むベクトルであるベクトルδ
SUを最小化することで式(35)により中心点x
0を算出しているが、本発明はこのような形態に限定されるものでは無く、式(22)に示す制約条件を考慮せずに中心点x
0を算出するものであっても良い。例えば、2節(2.磁気データが球面近傍に分布する場合の球面の中心点の算出)に示した方法により、式(20)を用いて中心点x
0を求めても良い。また、磁気データ分布指標算出処理において算出される共分散行列Aの最小固有値λ
3が閾値λ
0以上の値となり、複数の磁気データq
1〜q
Nの分布が3次元的な広がりを有すると看做せる場合にのみ、式(20)を用いて中心点x
0を求めても良い。
中心点x
0は、複数の磁気データq
1〜q
Nが、ある球面の近傍に分布することを仮定した場合の当該球面の中心点である。従って、中心点x
0は、複数の磁気データq
1〜q
Nを近傍に有する球面の中心点を算出可能な任意の方法によって算出することができる。そして、中心点x
0の算出に複数の磁気データq
1〜q
Nを用いる場合、複数の磁気データq
1〜q
Nを表面近傍に有する立体SDの形状と球面の形状との相違の程度を判定することにより、中心点x
0が不均一な外部磁界Bxの影響下で算出された誤差を含む値であるか否か、すなわち、中心点x
0をオフセットcとして採用することが適当であるか否かを判断することが可能になる。
【0162】
(6)変形例6
上述した実施形態及び変形例では、誤差δ
SD、誤差δ
U2、及び誤差δ
Eを要素とするベクトルδ
SD2のノルムを最小化するような歪評価行列Eを算出することにより、複数の磁気データq
1〜q
Nが2次元的に分布している場合及び3次元的に分布している場合の双方の場合を想定し、複数の磁気データq
1〜q
Nの3次元的な広がりの程度に応じて、立体SDと球面との形状の相違の程度を評価するものであるが、本発明はこのような形態に限定されるものでは無く、複数の磁気データq
1〜q
Nが3次元的な広がりを有して分布していると仮定して、立体SDと球面との形状の相違の程度を評価しても良い。
例えば、8.1節(8.1.磁気データが3次元的に分布する場合の歪判定処理)において述べた、複数の磁気データq
1〜q
Nが3次元的な広がりを有して分布する場合に限定した歪判定処理により、立体SDと球面との形状の相違の程度を評価しても良い。具体的には、式(50)で示した目的関数g
SD(e)を最小化する解e=e
0を式(53)により算出したうえで、解e
0を用いて算出される歪評価行列Eのノルムを求めることで、立体SDと球面との形状の相違の程度を評価することができる。
また、磁気データ分布指標算出処理において算出される共分散行列Aの最小固有値λ
3が閾値λ
0以上の値となり、複数の磁気データq
1〜q
Nの分布が3次元的な広がりを有すると看做せる場合にのみ、3次元的な広がりを有して分布する場合に限定した歪判定処理を用いて、立体SDと球面との形状の相違の程度を評価しても良い。この場合、磁気データ分布指標算出処理において算出される共分散行列Aの最小固有値λ
3が閾値λ
0未満の値であれば、初期化処理及び磁気データ取得処理を再度実施しても良い。
すなわち、この変形例から、以下の発明が把握される。
【0163】
磁界を発生させる部品を備えた機器に組み込まれ、互いに直交する3方向の磁気成分をそれぞれ検出する3次元磁気センサと、前記3次元磁気センサから、3軸の座標系において表現される3次元のベクトルデータとして順次出力される磁気データを蓄積する蓄積手段と、前記蓄積手段に蓄積された前記複数の磁気データで示される複数の座標の分布の3次元的な広がりの程度を示す分散評価値を算出する、分布指標算出手段と、前記複数の磁気データの各々が示す3軸の座標が、中心点算出用球面の近傍に確率的に分布すると仮定して、前記複数の磁気データに基づいて前記中心点算出用球面の中心点を算出する、中心点算出手段と、前記複数の磁気データの各々が示す3軸の座標が、歪判定用球面を歪ませた形状の立体の表面近傍に確率的に分布すると仮定して、前記複数の磁気データに基づいて、前記立体と、前記歪判定用球面との形状の相違の程度を示す歪評価値を算出し、前記歪評価値が歪許容値以下であるか否かを判定する、歪判定手段と、前記歪判定手段の判定結果が肯定である場合に、前記磁気データのうち前記部品の発生する磁界の成分を表す3軸の座標であるオフセットを、旧オフセットから前記中心点に更新する、オフセット更新手段と、を備えることを特徴とする、地磁気測定装置。
【0164】
(7)変形例7
上述した実施形態及び変形例において、オフセットcを算出し更新する処理は、初期化処理、磁気データ取得処理、磁気データ分布指標算出処理、中心点算出処理、歪判定処理、及びオフセット更新処理を含むが、本発明はこのような形態に限定されるものでは無く、磁気データ分布指標算出処理を備えずに構成されても良い。
この場合、中心点算出処理は、中心点x
0を、式(20)を用いて算出するものであっても良い。また、この場合、立体SDと球面との形状の相違の程度を評価は、8.1節に示した複数の磁気データq
1〜q
Nが3次元的な広がりを有して分布する場合に限定した歪判定処理により行い、歪評価行列Eを式(53)により求められる解e
0を用いて算出しても良い。
【0165】
(8)変形例8
上述した実施形態及び変形例において、オフセットcを算出し更新する処理は、初期化処理、磁気データ取得処理、中心点算出処理、歪判定処理、及びオフセット更新処理を含むが、本発明はこのような形態に限定されるものでは無く、中心点算出処理を備えずに構成されても良い。
【0166】
(9)変形例9
上述した実施形態及び変形例において、歪を表す成分k(E)は、式(37)に表したように、式(39)に示した関数ke(p)に対して、球面Sの中心点x
0を原点とする座標系において磁気データq
iの座標を示すベクトル(q
i−x
0)を代入することにより与えられる値を各要素とするベクトルであるが、本発明はこのような形態に限定されるものでは無く、歪を表す成分k(E)は、球面Sの中心点x
0とは異なる点を原点とする座標系において磁気データq
iの座標を示すベクトルを式(39)に代入して得られる値を各要素としても良い。
例えば、歪を表す成分k(E)は、以下の式(71)のように、複数の磁気データq
1〜q
Nの重心q
cを原点とする座標系において磁気データq
iの座標を示すベクトルを用いて表されるものであって良い。また、前述の中心点算出処理よりも計算量の少ない方法により、複数の磁気データq
1〜q
Nを近傍に有する球面の中心点の候補となる座標を求め、当該座標を原点とする座標系において磁気データq
iの座標を示すベクトルを用いて歪を表す成分k(E)を表しても良い。
中心点算出手段により算出される球面Sの中心点x
0とは異なる座標を原点とする座標系において磁気データq
iの座標を示すベクトルを用いて歪を表す成分k(E)を表現する場合であっても、歪評価行列Eの各成分は、歪評価行列Eの最大固有値λ
E1に対応する固有ベクトルu
E1の方向と、球面S
2からの誤差が大きな磁気データq
iが多く存在する位置を当該座標から見た方向とが近づくように定められる。また、歪評価行列Eの最大固有値λ
E1は、当該座標から見て、固有ベクトルu
E1の方向に存在する複数の磁気データと球面S
2との誤差の大きさの程度を表す値となる。従って、この場合も、歪評価行列Eによって、立体SDと球面S
2との形状の相違の程度を評価することが可能となる。
【数36】
【0167】
なお、球面Sの中心点x
0以外の座標を原点とする座標系において磁気データq
iの座標を示すベクトルを用いて歪を表す成分k(E)を表現する場合、中心点算出処理は、歪判定処理による判定結果が肯定である場合(歪が小さい場合)のみ実施しても良い。この場合、中心点算出処理を行うことなく歪判定処理を行うことが可能となる。すなわち、中心点算出処理よりも計算量の小さな方法により、複数の磁気データq
1〜q
Nを近傍に有する球面の中心点の候補となる座標を求め、当該座標を用いて歪判定処理を行うため、歪判定処理による判定結果が否定である場合の計算負荷を低減することが可能となる。
また、球面Sの中心点x
0以外の座標を原点とする座標系において磁気データq
iを示すベクトルを用いて歪を表す成分k(E)を表現する場合、中心点算出処理を実施せず、歪判定処理において算出される球面S
2の中心点x
02を新オフセットc
1として採用しても良い。この場合、中心点算出処理を実施することなく、オフセットcを算出し更新する処理を行うことが可能になるため、オフセットcを算出し更新する処理の簡素化と、計算負荷の低減による処理の高速化が可能となる。
【0168】
(10)変形例10
上述した実施形態及び変形例において、歪判定処理は、球面Sの中心点x
0を原点とする座標系において磁気データq
iの座標を示すベクトル(q
i−x
0)を、関数ke(p)に対して代入することにより与えられる値を各要素とするベクトルである歪を表す成分k(E)を用いて算出された歪評価行列Eにより、立体SDと球面S
2との形状の相違の程度を評価するものであるが、本発明はこのような形態に限定されるものでは無く、球面Sの中心点x
0を原点とする座標系において磁気データq
iの座標を示すベクトルを関数ke(p)に対して代入して得られる値を要素とする歪を表す成分k(E)を用いて算出される歪評価行列Eと、球面Sの中心点x
0とは異なる座標を原点とする座標系において磁気データq
iの座標を示すベクトルを関数ke(p)に対して代入して得られる値を要素とする歪を表す成分k(E)を用いて算出される歪評価行列Eとの双方を利用して、立体SDと球面S
2との形状の相違の程度を評価しても良い。
例えば、歪判定処理は、まず、重心q
cを原点とする座標系において磁気データq
iの座標を示すベクトルにより表される歪を表す成分k(E)を用いて算出される歪評価行列Eにより、立体SDと球面S
2との形状の相違の程度を評価し(第1の評価)、次に、第1の評価において、立体SDと球面S
2との形状の相違の程度が小さいと評価された場合に、中心点x
0を原点とする座標系において磁気データq
iの座標を示すベクトルにより表される歪を表す成分k(E)を用いて算出される歪評価行列Eにより、立体SDと球面S
2との形状の相違の程度について評価(第2の評価)するものであっても良い。そして、第1の評価及び第2の評価の双方において、立体SDと球面S
2との形状の相違の程度が小さいと評価された場合に、歪判定処理による判定結果は肯定(形状の相違の程度は小さいと判定されること)となり、中心点x
0を新オフセットc
1として採用するものであっても良い。
また、歪判定処理は、まず、第2の評価を行い、次に、第2の評価において立体SDと球面S
2との形状の相違の程度が小さいと評価された場合に、第1の評価を実施するものであっても良い。
このように、異なる2つの座標系において表現された2つの歪を表す成分k(E)を用いて、立体SDと球面S
2との形状の相違の評価を2回行うことにより、1つの座標系において表現された1つの歪を表す成分k(E)を用いて1回のみ評価を行う場合に比べて、立体SDと球面S
2との形状の相違をより正確に評価することが可能となる。
【0169】
(11)変形例11
また、上述した実施形態では、機器1は、CPU10、RAM20、ROM30、通信部40、表示部50、及び3次元磁気センサ60を備えるが、本発明はこのような形態に限定されるものでは無く、機器1は、3次元磁気センサ60以外のセンサを備えるものであっても良い。例えば、機器1が、3次元磁気センサ60の他に、加速度センサや角速度センサ等の3次元磁気センサ60以外のセンサを備える場合、これら複数のセンサからの出力を用いることにより、内部磁界Biの方向及び大きさを表すベクトル
SBi算出し、これを中心点x
0としても良い。
歪判定処理は、どのような方法により中心点x
0を算出した場合であっても、当該中心点x
0が不均一な外部磁界Bxの影響を受けないで算出された、内部磁界Biの方向及び大きさを適切に表すものであるか否かを判定することが可能である。