(57)【要約】【課題】オフセットを短時間で更新できる磁気センサ制御装置、方法及びプログラムを提供する。【解決手段】磁気センサから順次出力される、３成分又は２成分を有する複数の磁気データを順次入力する入力手段と、順次入力される複数の前記磁気データに基づいて複数の母集団要素を蓄積し複数の前記磁気データに対応する点の軌跡から推定される球面又は円周の中心を統計的手法を用いて算出し、前記球面又は円周の中心の成分に基づいて前記磁気データのオフセットを更新する一括更新手段と、前記一括更新手段が前記統計的手法に用いる複数の前記母集団要素を蓄積している期間に、２つの前記磁気データに対応する２点の垂直二等分面又は垂直二等分線を、入力順に組み合わせられた２つ１組の前記磁気データ毎に算出し、基点から前記垂直二等分面又は前記垂直二等分線に垂直に下ろす線分上の点を新たな前記基点とし、新たな前記基点の成分に基づいて前記磁気データのオフセットを更新する処理を繰り返す逐次更新手段と、を備える磁気センサ制御装置。【選択図】図１
2007225329.tif 000002
【特許請求の範囲】
【請求項１】
磁気センサから順次出力される、３成分又は２成分を有する複数の磁気データを順次入力する入力手段と、
順次入力される複数の前記磁気データに基づいて複数の母集団要素を蓄積し複数の前記磁気データに対応する点の軌跡から推定される球面又は円周の中心を統計的手法を用いて算出し、前記球面又は円周の中心の成分に基づいて前記磁気データのオフセットを更新する一括更新手段と、
前記一括更新手段が前記統計的手法に用いる複数の前記母集団要素を蓄積している期間に、２つの前記磁気データに対応する２点の垂直二等分面又は垂直二等分線を、入力順に組み合わせられた２つ１組の前記磁気データ毎に算出し、基点から前記垂直二等分面又は前記垂直二等分線に垂直に下ろす線分上の点を新たな前記基点とし、新たな前記基点の成分に基づいて前記磁気データのオフセットを更新する処理を繰り返す逐次更新手段と、
を備える磁気センサ制御装置。
【請求項２】
前記一括更新手段によって算出された前記球面又は円周の中心が前記基点となる、
請求項１に記載の磁気センサ制御装置。
【請求項３】
前記一括更新手段は、前記球面又は円周の中心を算出する毎に前記母集団要素を破棄する処理を繰り返しながら前記オフセットの更新を繰り返す、
請求項１又は２に記載の磁気センサ制御装置。
【請求項４】
前記一括更新手段は、２つの前記磁気データに対応する２点の垂直二等分面又は垂直二等分線を２つ１組の前記磁気データ毎に算出し、複数の前記垂直二等分面又は前記垂直二等分線を用いた最小二乗法により前記球面又は円周の中心を算出する、
請求項１〜３のいずれか一項に記載の磁気センサ制御装置。
【請求項５】
予め決められた所定距離以上離れた２点に対応する２つ１組の前記磁気データを入力順に選抜する磁気データ選抜手段をさらに備え、
前記一括更新手段又は前記逐次更新手段は、選抜された前記磁気データを用いて前記オフセットを更新する、
請求項１〜４のいずれか一項に記載の磁気センサ制御装置。
【請求項６】
既に選抜された少なくとも１つの前記垂直二等分面又は前記垂直二等分線とのなす全ての角が予め決められた所定角度以上になる前記垂直二等分面又は前記垂直二等分線を選抜する垂直二等分面選抜手段又は垂直二等分線選抜手段をさらに備え、
前記一括更新手段又は前記逐次更新手段は、選抜された前記垂直二等分面又は前記垂直二等分線を用いて前記オフセットを更新する、
請求項１〜５のいずれか一項に記載の磁気センサ制御装置。
【請求項７】
前記逐次更新手段は、前記基点から前記垂直二等分面又は前記垂直二等分線に下ろす線分上の内分点の成分に基づいて前記オフセットを更新する、
請求項１〜６のいずれか一項に記載の磁気センサ制御装置。
【請求項８】
請求項１〜７のいずれか一項に記載の磁気センサ制御装置と、
前記磁気センサと、
を備える磁気測定装置。
【請求項９】
磁気センサから順次出力される、３成分又は２成分を有する複数の磁気データを順次入力し、
順次入力される複数の前記磁気データに基づいて複数の母集団要素を蓄積し複数の前記磁気データに対応する点の軌跡から推定される球面又は円周の中心を統計的手法を用いて算出し、前記球面又は円周の中心の成分に基づいて前記磁気データのオフセットを更新し、
前記統計的手法に用いられる複数の前記母集団要素が蓄積されている期間に、２つの前記磁気データに対応する２点の垂直二等分面又は垂直二等分線を、入力順に組み合わせられた２つ１組の前記磁気データ毎に算出し、基点から前記垂直二等分面又は前記垂直二等分線に垂直に下ろす線分上の点を新たな前記基点とし、新たな前記基点の成分に基づいて前記磁気データのオフセットを更新する、
ことを含むオフセット設定方法。
【請求項１０】
磁気センサから順次出力される、３成分又は２成分を有する複数の磁気データを順次入力する入力手段と、
順次入力される複数の前記磁気データに基づいて複数の母集団要素を蓄積し複数の前記磁気データに対応する点の軌跡から推定される球面又は円周の中心を統計的手法を用いて算出し、前記球面又は円周の中心の成分に基づいて前記磁気データのオフセットを更新する一括更新手段と、
前記一括更新手段が前記統計的手法に用いる複数の前記母集団要素を蓄積している期間に、２つの前記磁気データに対応する２点の垂直二等分面又は垂直二等分線を、入力順に組み合わせられた２つ１組の前記磁気データ毎に算出し、基点から前記垂直二等分面又は前記垂直二等分線に垂直に下ろす線分上の点を新たな前記基点とし、新たな前記基点の成分に基づいて前記磁気データのオフセットを更新する処理を繰り返す逐次更新手段と、
してコンピュータを機能させるオフセット設定プログラム。
【請求項１１】
請求項１０に記載のオフセット設定プログラムが格納されたコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は磁気センサ制御装置、磁気測定装置、並びにオフセット設定方法及びプログラムに関する。
【背景技術】
【０００２】
従来、移動体に搭載され、地磁気の方向を検出する３次元磁気センサ及び２次元磁気センサが知られている。一般に３次元磁気センサは、互いに直交する３方向の成分として磁界ベクトルを検出するための３つの磁気センサモジュールを備えている。３次元磁気センサの出力である磁気データを成分とするベクトルの方向と大きさが、３次元磁気センサが検出している磁界の方向と大きさである。３次元磁気センサの出力に基づいて地磁気の方向又は大きさを特定するとき、その出力には移動体の着磁成分と磁気センサ自体の測定誤差が含まれている。従ってそれらを打ち消すために３次元磁気センサの出力を補正する処理が必要である。この補正処理の操作値はオフセットと呼ばれている。オフセットは３次元磁気センサが検出している移動体の着磁による磁界ベクトルを磁気センサの測定誤差を含んで表しており、３次元磁気センサの出力である磁気データからオフセットが引き算されることによって移動体の着磁成分と磁気センサの測定誤差が一括して打ち消される。３次元座標空間において、磁気データを成分とする点は所定の球面に沿ってプロットされる。その球面の中心を求めることによってオフセットを算出することができる。オフセットを求める処理はキャリブレーションと呼ばれている。
【０００３】
ところで、オフセットを算出するために必要な磁気データを測定しても、３次元磁気センサ自体の測定誤差、測定期間中の磁界の変動、３次元磁気センサの出力をディジタル値で取り出す際の計算誤差等により、磁気データを成分とする点の集合は完全な球面にはならない。特許文献１には、取得した複数の磁気データを成分とする複数の点からの距離のばらつきが最小になる点を統計的手法によって算出することが記載されている。しかし、多数の磁気データの統計処理をする場合には、母集団となる磁気データ群の分布が満遍なく広く、特異な磁気データが母集団から排除されていなければ精度のよいオフセットを算出することができない。そのためこの方法では、キャリブレーションが開始されてから、母集団要素として適性な磁気データを選抜し一定量の母集団要素を蓄積できるまでの間、オフセットを算出することができない。例えば、着磁成分の変化によって真のオフセットの位置が変化したとき、母集団要素として適正な磁気データを蓄積し統計処理によってオフセットを算出するまでに時間がかかるという問題があった。
【０００４】
【特許文献１】国際公開第２００４−００３４７６号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、オフセットを短時間で更新できる磁気センサ制御装置、磁気測定装置、並びにオフセット設定方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
（１）上記目的を達成するための磁気センサ制御装置は、磁気センサから順次出力される、３成分又は２成分を有する複数の磁気データを順次入力する入力手段と、順次入力される複数の前記磁気データに基づいて複数の母集団要素を蓄積し複数の前記磁気データに対応する点の軌跡から推定される球面又は円周の中心を統計的手法を用いて算出し、前記球面又は円周の中心の成分に基づいて前記磁気データのオフセットを更新する一括更新手段と、前記一括更新手段が前記統計的手法に用いる複数の前記母集団要素を蓄積している期間に、２つの前記磁気データに対応する２点の垂直二等分面又は垂直二等分線を、入力順に組み合わせられた２つ１組の前記磁気データ毎に算出し、基点から前記垂直二等分面又は前記垂直二等分線に垂直に下ろす線分上の点を新たな前記基点とし、新たな前記基点の成分に基づいて前記磁気データのオフセットを更新する処理を繰り返す逐次更新手段と、を備える。
母集団の要素に偏りがなく、特異な要素が排除されているような母集団を用いて統計処理によってオフセットに対応する球の中心が算出されるならば、球の中心としてある程度確からしい点を算出することができるが、母集団要素が蓄積されるまではオフセットを更新することができない。球面上の２点の垂直二等分面はその球面の中心を通る。３次元磁気センサから出力される磁気データを成分とする多数の点が特定の球面から近距離の範囲に分布している場合、それらの多数の点を２つ１組にすると、各組の垂直二等分面はその球面の中心近くを通る。互いに平行でない複数のそれらの垂直二等分面を考えるとき、ある基点からある垂直二等分面に垂直に下ろす線分上の点を求め、求めたその点から別の垂直二等分面に下ろす線分上の点を求め、新たに求めたその点からまた別の垂直二等分面に垂直に下ろす線分上の点を求めるという処理を繰り返すことにより、求まる点は球の中心近くに収束する。二次元の場合についても同様に、２次元磁気センサから出力された磁気データから２つ１組毎に算出された複数の垂直二等分線を考えると、ある基点からある垂直二等分線に垂直に下ろす線分上の点で基点を更新する処理を繰り返すと、基点は円の中心近くに収束する。このようにして逐次更新される基点の成分に基づいてオフセットを更新することにより、母集団要素を蓄積し統計処理によってオフセットを更新する場合と比較してオフセットが更新されない空白時間を短縮することができる。
【０００７】
（２）前記一括更新手段によって算出された前記球面又は円周の中心が前記基点となってもよい。
逐次更新処理の結果、基点が真のオフセットに対応する点から遠い位置に更新されたとしても、統計的手法によって算出された球面又は円周の中心に基点がさらに更新されれば、その後の逐次更新では精度良くオフセットを更新することができる。
【０００８】
（３）前記一括更新手段は、前記球面又は円周の中心を算出する毎に前記母集団要素を破棄する処理を繰り返しながら前記オフセットの更新を繰り返してもよい。
着磁成分の変化によって真のオフセットが変化した時、変化前に蓄積された母集団要素を破棄することにより、変化前の着磁成分の影響を受けていない母集団要素に基づいて、変化後の真のオフセットとの誤差の少ないオフセットに更新することができる。
【０００９】
（４）前記一括更新手段は、２つの前記磁気データに対応する２点の垂直二等分面又は垂直二等分線を２つ１組の前記磁気データ毎に算出し、複数の前記垂直二等分面又は前記垂直二等分線を用いた最小二乗法により前記球面又は円周の中心を算出してもよい。
球面上に存在する２点の垂直二等分面は、その球の中心を通る。地磁気の強さが異なる場所で磁気データを入力すると、それらの磁気データに対応する点は、測定誤差等を除外すると理論的には地磁気の強さと対応する大きさを半径とする球面上に存在する。入力された２つ１組の磁気データ毎に複数の垂直二等分面を算出する構成では、各垂直二等分面を算出するための各組の磁気データがほぼ同一の地磁気の強さで入力されたものであれば、算出された各垂直二等分面は、それぞれの磁気データが入力された時点の地磁気の強さに半径が対応する同心球の中心付近を通る。したがって、複数の垂直二等分面を用いた最小二乗法によって球面の中心を算出すると母集団要素が蓄積される期間中に地磁気の強さが変動する場合であっても真のオフセットとの誤差が小さい点の成分に基づいてオフセットを更新することができる。同様に複数の垂直二等分線を用いた最小二乗法によって円周の中心を算出すると母集団要素が蓄積される期間中に地磁気の強さが変動する場合であっても真のオフセットとの誤差が小さい点の成分に基づいてオフセットを更新することができる。
【００１０】
（５）予め決められた所定距離以上離れた２点に対応する２つ１組の前記磁気データを入力順に選抜する磁気データ選抜手段をさらに備えてもよい。前記一括更新手段又は前記逐次更新手段は、選抜された前記磁気データを用いて前記オフセットを更新してもよい。
磁気データ自体の誤差に着目すれば、オフセットに対応する基点を更新するために用いられる垂直二等分面又は垂直二等分線を規定する２点と真のオフセットに対応する点とを結ぶ２直線のなす角が小さいほど、それら２点の垂直二等分面又は垂直二等分線と真のオフセットに対応する点との距離が大きくなる傾向がある。したがって、ある程度離れた２点が１組となるように磁気データを選抜し、各組について垂直二等分面又は垂直二等分線を求めることにより、オフセットを求める精度を上げることができる。また地磁気の強さの変化に着目すれば、１組の要素となる２点に対応する磁気データが出力される時期のずれが小さいほど、それら２点の垂直二等分面又は垂直二等分線と真のオフセットに対応する点との距離が小さくなる。したがって、２つ１組の磁気データを入力順に選抜し、選抜された磁気データの組毎に垂直二等分面又は垂直二等分線を算出することにより、オフセットを求める精度を上げることができる。
【００１１】
（６）既に選抜された少なくとも１つの前記垂直二等分面又は前記垂直二等分線とのなす全ての角が予め決められた所定角度以上になる前記垂直二等分面又は前記垂直二等分線を選抜する垂直二等分面選抜手段又は垂直二等分線選抜手段をさらに備え、前記一括更新手段又は前記逐次更新手段は、選抜された前記垂直二等分面又は前記垂直二等分線を用いて前記オフセットを更新してもよい。
オフセットに対応する基点を更新するために連続して用いられる２つの垂直二等分面又は垂直二等分線が平行に近いほど、それらが交わる線又は点と真のオフセットに対応する点との距離は大きくなる。本発明の一括更新手段では母集団要素として各垂直二等分面又は垂直二等分線からの誤差が最小である点を算出しオフセットを更新するアルゴリズムであるため、既に選抜された垂直二等分面又は垂直二等分線と交わる線又は点と真のオフセットに対応する点との距離が大きいと算出されるオフセットと真のオフセットとの誤差も大きくなる。そのため、既に選抜された垂直二等分面又は垂直二等分線とのなす角はある程度大きいことが望ましい。また、逐次更新手段では、基点を垂直二等分面又は垂直二等分線が交わる線又は点の近くに収束させるアルゴリズムを採用しているため、オフセットに対応する基点を更新するために連続して用いられる２つの垂直二等分面又は垂直二等分線のなす角はある程度大きいことが望ましい。尚、垂直二等分面又は垂直二等分線とのなす全ての角とは、二平面のなす４つの角又は二直線のなす４つの角を指し、４つの角のそれぞれが所定角度以上になる垂直二等分面又は垂直二等分線が選抜される。
【００１２】
（７）前記逐次更新手段は、前記基点から前記垂直二等分面又は前記垂直二等分線に下ろす線分上の内分点の成分に基づいて前記オフセットを更新してもよい。
一時的な外乱によって真のオフセットに対応する点から遠い垂直二等分面又は垂直二等分線が求められた場合には、それらを用いて基点の更新処理が行われると、外乱によるオフセットの算出誤差が発生する。基点から垂直二等分面又は垂直二等分線に垂直に下ろす線分上の内分点に基点を更新することにより、そのような誤差を低減することができる。
【００１３】
尚、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。また、本発明は装置の発明として特定できるだけでなく、プログラムの発明としても、そのプログラムを記録した記録媒体の発明としても、方法の発明としても特定することができる。尚、請求項に記載された方法の各動作の順序は、技術上の阻害要因がない限り、記載順に限定されるものではなく、どのような順番で実行されてもよく、また同時に実行されてもよい。
【発明を実施するための最良の形態】
【００１４】
以下、実施例に基づいて本発明の実施の形態を説明する。
本実施形態では、３次元磁気センサの出力に含まれる、それが搭載されている移動体の着磁成分と磁気センサ自体の測定誤差を打ち消すためのオフセットを求める。オフセットを求めるためには、３次元磁気センサの出力である磁気データを成分とするベクトル空間内の無数の点の集合を球面として近似する。この球面を方位球の球面というものとする。また測定誤差のない理想的な３次元磁気センサの出力である磁気データを成分とするベクトル空間内の無数の点の集合を真の方位球の球面というものとする。本実施形態では、方位球の中心点の成分がオフセットとして算出される。
【００１５】
１．ハードウェア構成
図２は本発明が適用される移動体の一例である携帯型電話機１の外観を示す模式図、図３は携帯型電話機１のブロック図である。携帯型電話機１には３次元磁気センサ４が搭載されている。３次元磁気センサは互いに直交するｘ、ｙ、ｚの３方向の磁界のベクトル成分を検出することによって磁界の方向および強さを検出する。ディスプレイ５には、文字や画像の各種情報が表示される。例えばディスプレイ５には、地図と方位を示す矢印や文字が表示される。
【００１６】
制御部４５は、ＣＰＵ４０とＲＯＭ４２とＲＡＭ４４とを備えている所謂コンピュータであって、磁気センサ制御装置を構成している。ＣＰＵ４０は、携帯型電話機１の全体制御を司るプロセッサである。ＲＯＭ４２は、ＣＰＵ４０によって実行される磁気センサ制御プログラムや、移動体の機能を実現するための種々のプログラム、例えばナビゲーションプログラムが格納されている、不揮発性の記憶媒体である。磁気センサ制御プログラムは、３次元磁気センサ４から出力される磁気データに基づいてナビゲーションプログラム等に方位データを提供するためのプログラムである。方位データは地磁気の方向を示す２次元ベクトルデータである。尚、方位データは３次元ベクトルデータとしてナビゲーションプログラムに提供されてもよい。磁気センサ制御プログラムのモジュール群にはオフセット設定プログラムが含まれている。オフセット設定プログラムは３次元磁気センサ４から出力される磁気データを補正するためのオフセットを設定するプログラムである。ＣＰＵ４０が磁気センサ制御プログラムを実行するとき、ＣＰＵ４０、ＲＡＭ４４及びＲＯＭ４２は磁気センサ制御装置として機能する。ナビゲーションプログラムは、現在地から目的地までの周辺地図を表示する周知のプログラムである。地図の認識のし易さから、地図は現実の方位に地図上の方位が一致するように画面表示される。したがって例えば、携帯型電話機１が回転すると、ディスプレイ５に表示される地図は地面に対して回転しないようにディスプレイ５に対して回転する。このような地図の表示処理に方位データが用いられる。もちろん、方位データは、単に方位を文字や矢印で表示するためにのみ用いられてもよい。ＲＡＭ４４はＣＰＵ４０の処理対象となるデータを一時的に保持する揮発性の記憶媒体である。種々のプログラムは、その一部又は全部をネットワークを介した通信によってＲＯＭ４２に格納される構成であってもよい。尚、磁気センサ制御装置と３次元磁気センサ４とを１チップの磁気測定装置として構成することもできる。
【００１７】
アンテナ１３、ＲＦ部１０、変復調部１２及びＣＤＭＡ部１４は、基地局と携帯型電話機１とでＣＤＭＡ方式の通信を行うための回路である。
音声処理部１８は、マイクロホン１６から入力されるアナログ音声信号のＡＤ変換と、スピーカ５０にアナログ音声信号を出力するためのＤＡ変換を行う回路である。
ＧＰＳ受信部２０は、アンテナ２１で受信されたＧＰＳ衛星からのＧＰＳ電波を処理し、現在位置の緯度経度を出力する回路である。
キー入力部４８は、文字入力キーを兼ねたダイヤルキー、カーソルキー等を備える。
電子撮像部５２は、図示しない光学系、撮像素子、ＡＤ変換器等で構成されている。
表示部５４は、ＬＣＤ等のディスプレイ５、図示しない表示制御回路等で構成され、携帯型電話機１の動作モードに応じた各種画面をディスプレイ５に表示する。
報知部５８は、図示しない音源回路、着信音スピーカ、バイブレータ、ＬＥＤ等を備え、着信をユーザに報知する。
【００１８】
図４は、３次元磁気センサ４の概略内部構成図である。３次元磁気センサ４は、地磁気による磁界ベクトルのｘ方向成分、ｙ方向成分、ｚ方向成分をそれぞれ検出するためのｘ軸センサ３０とｙ軸センサ３２とｚ軸センサ３４とを備えている。ｘ軸センサ３０、ｙ軸センサ３２及びｚ軸センサ３４は、いずれも巨大磁気抵抗効果素子、ホール素子等で構成され、指向性のある１次元磁気センサであればどのようなものであってもよい。ｘ軸センサ３０、ｙ軸センサ３２およびｚ軸センサ３４は、それぞれの感度方向が互いに直交するように固定されている。ｘ軸センサ３０、ｙ軸センサ３２、ｚ軸センサ３４、温度センサ３６の出力は、切換部２４によって択一的に選択され増幅器２５で増幅された後にＡ／Ｄ変換器２６によってＡＤ変換される。ｘ軸センサ３０、ｙ軸センサ３２、ｚ軸センサ３４、温度センサ３６の出力に対応するｘ軸磁気データ、ｙ軸磁気データ、ｚ軸磁気データ、温度データは、磁気センサＩ／Ｆ２７によってバス１１に出力される。温度データはオフセットの設定に用いたり、ｘ軸磁気データ、ｙ軸磁気データ、ｚ軸磁気データのそれぞれの温度補正に用いることが可能である。ｘ軸磁気データ、ｙ軸磁気データ及びｚ軸磁気データの３成分で構成される３次元磁気センサ４の出力データを磁気データというものとする。
【００１９】
２．オフセット更新方法
図１は、本発明を適用した第一のオフセット設定方法における処理の流れを示すフローチャートである。図１に示す一括更新処理及び逐次更新処理は、ナビゲーションプログラムの起動時、着信時、一定時間毎等に起動されるオフセット設定プログラムが制御部４５によって実行されることによって並列に進行する。オフセットは、ｘｙｚの３成分を有する座標として例えば３つの変数要素からなるデータ構造体として扱われ、一括更新処理及び逐次更新処理は同じオフセットデータ構造体を共用する。一括更新処理及び逐次更新処理によって適宜更新されるオフセットデータ構造体は、ナビゲーションプログラムが必要とするタイミングで参照され、方位データの補正に用いられる。
以下、一括更新処理及び逐次更新処理について詳細に説明する。
【００２０】
２−１．第一の逐次更新方法
ステップＳ１００では最初の基点が設定される。基点はｘｙｚの３成分を有する座標としてデータ構造体に記憶され、ベクトル空間における特定の点の位置を示す。最初の基点は任意に設定しうるが、例えば、ナビゲーションプログラムの前回の終了時に設定されていたオフセットを基点として設定したり、工場出荷時に測定されたオフセットを最初の基点として設定しておくことができる。データ構造体や変数の値は、ＲＡＭ４４に記憶される。
【００２１】
ステップＳ１０２では、磁気データが制御部４５に入力され、入力された磁気データがｐ1に設定される。磁気データは、ｘｙｚの３成分を有する座標としてデータ構造体ｐ1に記憶され、ベクトル空間における特定の点の位置を示す。
ステップＳ１０４では、磁気データが制御部４５に入力され、入力された磁気データがｐ2に設定される。ｐ1に設定される磁気データが入力されてから、ｐ2に設定される磁気データが入力されるまでの時間間隔は任意に設定することができる。磁気データは、ｘｙｚの３成分を有する座標としてデータ構造体ｐ2に記憶され、ベクトル空間における特定の点の位置を示す。
【００２２】
ステップＳ１０６では、ｐ1とｐ2との距離が算出され、その距離が所定値より大きいかが判定される。算出された距離が所定値以下であればステップＳ１０４の処理によって再び磁気データが入力され、新たに入力された磁気データによってｐ2が更新される。
ｐ1とｐ2の距離が近すぎる場合、３次元磁気センサ４自体の測定誤差や３次元磁気センサ４の出力をディジタル値で取り出す際の計算誤差等の影響によって真の方位球の球面からｐ1とｐ2がわずかに離れるだけでｐ1とｐ2の垂直二等分面と真のオフセットに対応する点との距離が大きく離れるため（図５の一点鎖線参照）、その垂直二等分面を用いてオフセットを算出すると、算出されたオフセットと真のオフセットとの誤差が大きくなる。ステップＳ１０６の処理では、あまりに近い２点の垂直二等分面がオフセットの設定に用いられることがないように、入力された磁気データが選抜される。またステップＳ１０６の処理では、垂直二等分面を算出するための磁気データが入力順に組み合わせられるため、１つの垂直二等分面が求まる１組の磁気データに対応する地磁気の強さの差を低減することができる。したがって、そのようにして求めた垂直二等分面を用いてオフセットを算出することにより、測定期間中に地磁気の強さの変動の影響を受けにくくなるため、精度良くオフセットを設定することができる。これに対し、図６に示すように入力順があまりに遠い２点の垂直二等分面を算出する場合、測定期間中に２点に対応する各磁気データの地磁気の強さが異なる可能性があるので、算出される垂直二等分面と真のオフセットに対応する点との距離が大きくなる垂直二等分面が算出されるおそれがある。図６で、磁気データの入力順がｐ1、ｐ2、ｐ1′、ｐ2′、ｐ1″、ｐ2″であるとすると、ｆ5はｐ1とｐ1″の垂直二等分面、ｆ6はｐ2とｐ2″の垂直二等分面を表している。
【００２３】
ステップＳ１０８では、ｐ1とｐ2の垂直二等分面が算出される。ｐ1を（ｘ1，ｙ1，ｚ1）、ｐ2を（ｘ2，ｙ2，ｚ2）とすると、ｐ1ｐ2の垂直二等分面の式は以下の式（１）の通りである。
【数１】
2007225329.tif 000003
【００２４】
算出した垂直二等分面を後の計算で用いるためには、平面方程式ａｘ＋ｂｙ＋ｃｚ＋ｄ＝０の各定数として、以下の式（２）で表される変数ａ，ｂ，ｃ，ｄを算出し記憶すればよい。
【数２】
2007225329.tif 000004
【００２５】
尚、後続のステップＳ１１２では、ステップＳ１０８で連続して算出される２平面を用いて処理が行われるため、今回の平面方程式と前回の平面方程式を別々に記憶するための変数ａ1，ｂ1，ｃ1，ｄ1，ａ2，ｂ2，ｃ2，ｄ2を用意し、今回の平面方程式を記憶するための変数ａ1，ｂ1，ｃ1，ｄ1に格納されている前回算出された平面方程式の定数を、前回の平面方程式を記憶するための変数ａ2，ｂ2，ｃ2，ｄ2に格納し直す処理が必要になる。
【００２６】
ステップＳ１１０、１１２では、二回目以降に算出された垂直二等分面について、今回算出された垂直二等分面と前回算出された垂直二等分面のなす角θが所定値αより大きいかが判定される。２平面のなす角θが所定値α以下であれば、前回算出された垂直二等分面とのなす角θがαより大きくなる垂直二等分面が算出されるまで、新たな磁気データの入力と垂直二等分面の算出が繰り返される。尚、新たな磁気データを入力する場合は、ｐ1から入力し直してもよいし、ｐ2だけを入力し直してもよい。
【００２７】
２平面のなす角を求めることは、それぞれの平面の垂線ベクトルのなす角を求めることと等価である。したがって、今回算出された垂直二等分面ａ1ｘ＋ｂ1ｙ＋ｃ1ｚ＋ｄ1＝０と、前回算出された垂直二等分面ａ2ｘ＋ｂ2ｙ＋ｃ2ｚ＋ｄ2＝０と、それらのなす角θの関係は、以下の式（３）の通りである。
【数３】
2007225329.tif 000005
【００２８】
したがって、二平面のなす角θが所定値α（α＜π／２）より大きいかを判定するためには、以下の式（４）の関係が成立しているか否かを計算により判定すればよい。
【数４】
2007225329.tif 000006
【００２９】
連続して算出された垂直二等分面のなす角が図７に示すようにあまりに小さい場合、それら２平面の真のオフセットからの距離が近くても２平面は真のオフセットから遠い位置で交わる。本実施形態で採用されているアルゴリズムは、更新される基点の軌跡が平面の交わる直線に向かう性質を有するため、交わる直線が真のオフセットに対応する点から遠くなる可能性のある２平面を用いて基点の更新を行うことはオフセットの算出精度を落とす原因になる。また、ほぼ平行な２平面を用いて基点を更新しても、基点が真のオフセットに向かって動きにくいということもある。ステップＳ１１２では、このような問題を解決するために、算出された平面の選抜が行われている。
【００３０】
ステップＳ１１４では、基点から今回算出された垂直二等分面に下ろした垂線の足の座標が求められ、その足に基点が更新される。基点の座標を（ｘ0，ｙ0，ｚ0）とすると、その基点から今回算出された垂直二等分面ａ1ｘ＋ｂ1ｙ＋ｃ1ｚ＋ｄ1＝０に下ろした垂線の足の座標（ｘa，ｙa，ｚa）は以下の式（５）によって求まる。
【数５】
2007225329.tif 000007
【００３１】
ステップＳ１１４の処理が繰り返されると、順次更新される基点は図５に示す軌跡を辿って徐々に狭い範囲に収束する。図５では、ｆ1からｆ4は垂線が下ろされた垂直二等分面を示し、ｆの添え字は垂直二等分面の算出順を示している。また、破線は基点の更新軌跡を示している。尚、ｆ5以降の垂直二等分面は省略されている。本実施形態で採用されているアルゴリズムでは、オフセットを算出するための母集団要素数（磁気データの数）が少なくても、母集団要素数に応じた正確さでオフセットを算出できる。また、本実施形態で採用されているアルゴリズムでは、垂直二等分面を用いてオフセットが算出されるため、地磁気の強さの変化によってオフセットの算出精度が落ちにくい。例えば、地磁気の強さが変化して真の方位球の球面がＳ1からＳ2に変化したと仮定する。真の方位球の球面がＳ2であるときに入力される磁気データに対応するｐ1、ｐ2（図５で黒丸で示されている点）の垂直二等分面は、真の方位球の球面がＳ1であるときに同一の姿勢とタイミングで入力される磁気データに対応する点（図５で三角形で示されている点）の垂直二等分面に一致する。したがって、本実施形態では地磁気の強さが変化しても、オフセットの算出精度が落ちにくい。
【００３２】
ステップＳ１１６では、基点の更新回数が予め決められた所定回数に達しているかが判定される。
基点の更新回数がある程度多くなれば、基点は真のオフセットに対応する点に近い狭い範囲に収束していると考えられる。そこで、基点の更新回数が所定回数に達した場合には、基点の成分がオフセットとして設定される（ステップＳ１１８）。具体的には、一括更新処理及び逐次更新処理によって共用されるオフセットデータ構造体に基点の成分が設定される。
【００３３】
オフセットが初めて設定された以後も上述の処理が繰り返され、都度オフセットが更新される。オフセットの更新は何度繰り返されてもよいし、所定回数で更新処理がうち切られてもよい。また、基点の更新回数に関わらずにオフセットが設定されてもよい。以上説明した逐次更新方法によれば、例えば、着磁成分の変化によって真のオフセットの位置が変化したとき、垂直二等分面が算出される度に基点を更新し、徐々に真のオフセットに収束させる方向で逐次オフセットを更新することができる。後述する一括更新方法の統計処理に用いられる母集団要素が蓄積されている期間もオフセットを更新することができるので、オフセット設定プログラム全体として、オフセットが更新されない空白時間を短縮することができる。
【００３４】
２−２．第一の一括更新方法
ステップＳ２００では、ＲＡＭ４４に記憶されている垂直二等分面群と記憶面数とが初期化される。具体的には、１つの垂直二等分面は、平面の方程式をａｘ＋ｂｙ＋ｃｚ＋ｄ＝０とすると、ａ，ｂ，ｃ，ｄの値が対応する変数に格納されることによってＲＡＭ４４に記憶されている。ＲＡＭ４４には、所定個数の垂直二等分面を記憶するための各係数を格納する変数が用意される。記憶面数は、このようにしてＲＡＭ４４に記憶されている垂直二等分面の個数を格納する変数である。ステップＳ２００では、ＲＡＭ４４に記憶されている垂直二等分面群の各変数の値が破棄され、記憶面数が格納されている変数が０に初期化される。新たにオフセットを更新する毎に記憶されている垂直二等分面を破棄することにより、着磁成分の変化によって真のオフセットが変化した時、変化前の着磁成分の影響を受けていない母集団要素に基づいて、変化後の真のオフセットとの誤差の少ないオフセットに更新することができる。
【００３５】
ステップＳ２０２では、磁気データが制御部４５に入力され、入力された磁気データがｑ1に設定される。磁気データは、ｘｙｚの３成分を有する座標としてデータ構造体ｑ1に格納されることによってＲＡＭ４４に記憶され、ベクトル空間における特定の点の位置を示す。
ステップＳ２０４では、磁気データが制御部４５に入力され、入力された磁気データがｑ2に設定される。磁気データは、ｘｙｚの３成分を有する座標としてデータ構造体ｑ2に格納されることによってＲＡＭ４４に記憶され、ベクトル空間における特定の点の位置を示す。
ステップＳ２０６では、ｑ1とｑ2との距離が算出され、その距離が所定値より大きいかが判定される。ｑ1とｑ2との距離が所定値より大きくない場合は、ステップＳ２０４に戻り、磁気データ（ｑ2）が入力される。既に説明したように、ｑ1とｑ2の距離が近すぎる場合、真の方位球の球面からｑ1とｑ2がわずかに離れるだけでｑ1とｑ2の垂直二等分面と真のオフセットに対応する点との距離が大きく離れるため（図５の一転鎖線参照）、その垂直二等分面を用いてオフセットを算出すると、算出されたオフセットと真のオフセットとの誤差が大きくなる。ステップＳ２０６の処理では、あまりに近い２点の垂直二等分面がオフセットの設定に用いられることがないように、入力された磁気データが選抜される。またステップＳ２０６の処理では、垂直二等分面を算出するための磁気データが入力順に組み合わせられるため、１つの垂直二等分面が求まる１組の磁気データに対応する地磁気の強さの差を低減することができる。したがって、そのようにして求めた垂直二等分面を用いてオフセットを算出することにより、精度良くオフセットを設定することができる。
【００３６】
ステップＳ２０８では、ｑ1とｑ2の垂直二等分面が算出される。具体的には、既に説明した式（１）及び式（２）と同様にして算出される。
ステップS２１０、２１２では、二回目以降に算出された垂直二等分面について、今回算出された垂直二等分面と前回算出された垂直二等分面とのなす角θが所定値αより大きいかが判定される。２平面のなす角θが所定値α以下であれば、前回算出された垂直二等分面とのなす角θがαより大きくなる垂直二等分面が算出されるまで、新たな磁気データの入力と垂直二等分面の算出が繰り返される。尚、新たな磁気データを入力する場合は、ｑ1から入力し直してもよいし、ｑ2だけを入力し直してもよい。２平面のなす角θと所定値αとの判定は、既に説明した式（３）及び式（４）と同様にして算出される。
【００３７】
直前に記憶された垂直二等分面と新たに算出された垂直二等分面とのなす４つの角の全てが、予め決められた所定の角度以上である場合にのみ、新たに算出された垂直二等分面を統計計算の母集団要素として選抜することにより、統計的手法を用いて求めるオフセットと真のオフセットとの誤差を小さくすることができる。なぜなら例えば２つの垂直二等分面を例にすると、それぞれの垂直二等分面と真のオフセットに対応する点との距離が小さくても２つの垂直二等分面が平行に近ければ２つの垂直二等分面の共有線は真のオフセットに対応する点から遠くなるためである。したがって、統計処理の母集団としてそのような垂直二等分面が含まれると、真のオフセットとの誤差が大きくなるからである。
【００３８】
尚、ステップＳ２１２で今回算出された垂直二等分面とのなす角を判定するための対象は、直前に記憶された垂直二等分面であってもよいし、直前に記憶されたもの以外の既に記憶されている垂直二等分面のうちの一つであってもよいし、既にＲＡＭ４４に記憶されている垂直二等分面の全てであってもよい。既に記憶されている垂直二等分面の一つとのなす角を判定する場合は、既に記憶されている垂直二等分面の全てと新たに算出された垂直二等分面とのなす角度を全て求める場合と比較して、必要となる計算量が少ないため速く垂直二等分面を記憶させることができる。既に記憶されている垂直二等分面の全てと新たに算出された垂直二等分面とのなす角を判定対象とする場合、特定の方向に偏った複数の垂直二等分面で統計処理の母集団が構成されないため、そのような母集団を用いた統計処理により求めたオフセットと真のオフセットとの誤差を小さくすることができる。
【００３９】
ステップＳ２１４では、ステップＳ２１２の条件を満たしている場合、今回算出された垂直二等分面が記憶され、記憶面数がインクリメントされる。
ステップＳ２１６では、記憶面数が所定個数（Ｎ個）であるか判定される。尚、オフセット更新要求発生から所定時間が経過したことを判定条件としてもよい。
【００４０】
ステップＳ２１８では、既に記憶されている複数の垂直二等分面が集合する領域が最小二乗法を用いて１つの点で近似され、近似点の座標成分がオフセットとして設定される（図８参照）。具体的には既に記憶されているＮ個の垂直二等分面の方程式をａｉｘ＋ｂｉｙ＋ｃｉｚ＋ｄｉ＝０（但しｉは１からＮ）とし、近似点の座標成分を（Ｘ，Ｙ，Ｚ）とすると、次式（６）を変数Ｘ，Ｙ，Ｚそれぞれで偏微分した式（７）の偏導関数が０になるＸ，Ｙ，Ｚを求めることで複数の垂直二等分面が集合する領域を１つの点で近似することができる。
【００４１】
【数６】
2007225329.tif 000008
【数７】
2007225329.tif 000009
【００４２】
式（７）の３式は次式（８）に書き直すことができる。
【数８】
2007225329.tif 000010
したがってこの３元１次連立方程式を解くことにより、Ｘ，Ｙ，Ｚを求めることができる。ただし、
【数９】
2007225329.tif 000011
とする。このようにして求められた近似点（Ｘ，Ｙ，Ｚ）の成分に基づいてオフセットが更新される。具体的には、一括更新処理及び逐次更新処理によって共用されるオフセットデータ構造体が、近似点（Ｘ，Ｙ，Ｚ）の成分に基づいて更新される。
【００４３】
尚、求められた近似点（Ｘ，Ｙ，Ｚ）を式（６）に代入して求められる誤差εが予め決められた所定値以上である場合、記憶されているＮ個の垂直二等分面が集合する領域が狭い範囲に集中していないことを意味するので、求められた近似点（Ｘ，Ｙ，Ｚ）に基づいてオフセットを設定することをキャンセルして、再度ステップＳ２００に戻るようにしてもよい。
【００４４】
ステップＳ２２０では、ステップＳ２１８で更新されたオフセットが、上述の逐次更新処理に用いる基点として設定される。以上説明したような統計処理によって算出されたオフセットを逐次更新処理が基点として上書きすることにより、真の方位球の中心からの距離が近い点を基点とすることができるため、逐次更新処理は外乱等の影響によって真の方位球の中心と基点との距離が遠くなった場合であっても、その基点は打ち消され、逐次更新処理によっても精度良くオフセットを設定することができる。
オフセットが初めて設定された以後も上述の処理が繰り返され、オフセットの更新が繰り返される。オフセットの更新は何度繰り返されてもよいし、所定回数で更新処理がうち切られてもよい。
【００４５】
以上説明したように、逐次オフセットを更新する処理と、統計処理を用いてオフセットを更新する処理とを併用することにより、オフセットが更新されない空白時間を短縮することができると共に、逐次更新処理の結果、基点が真のオフセットに対応する点から遠い位置に更新されたとしても統計処理によって算出された方位球の中心に基点がさらに更新されるので、その後の逐次更新では精度良くオフセットを更新することができる。このようにして逐次更新処理及び一括更新処理によって適宜設定されるオフセットは、方位データを利用するプログラムが必要とするタイミングで利用される。
【００４６】
３．その他のオフセット更新方法
上述した第一の逐次更新方法及び第一の一括更新方法の代わりに以下に説明する逐次更新方法、一括更新方法を適用してもよい。
３−１．第二の逐次更新方法
図９及び図１０は、本発明を適用した第二の逐次更新方法における処理の流れを示すフローチャートである。第二の逐次更新方法が第一の逐次更新方法と異なる主な点は、所定数（例えば５個）の垂直二等分面からなる１つの垂直二等分面群を繰り返し用いて基点を更新する点である。図９及び図１０に示す処理は、オフセット設定プログラムが制御部４５によって実行されることによって進行する。
【００４７】
ステップＳ３００では、最初の基点が設定され、カウンタｉが１に設定される。カウンタｉは、基点更新に繰り返し用いられる垂直二等分面群を蓄積する第一のループ処理の繰り返し数である。
ステップＳ３０２からステップＳ３１２まで、第一の逐次更新方法で説明されたステップＳ１０２からステップＳ１１２までの処理と同様の処理が実行される。
【００４８】
ステップＳ３１４では、今回算出された垂直二等分面がｆiとして記憶される。すなわち、今回算出された垂直二等分面が、基点更新に繰り返し用いられる垂直二等分面群の第ｉ番目の要素として記憶される。具体的には、今回算出された垂直二等分面の式の各定数がａi，ｂi，ｃi，ｄiの各変数に格納される。
ステップＳ３１８でｉがインクリメントされながら垂直二等分面の算出が繰り返され、ｎ番目の垂直二等分面ｆnが記憶されると（ステップＳ３１６で肯定判定される場合）、ｎ個の垂直二等分面について以下のように基点の更新処理が開始される。ｎは１つの垂直二等分面群の構成要素数を規定する定数である。
【００４９】
ステップＳ３２０ではカウンタｊが１に設定される。カウンタｊはｎ個の垂直二等分面のそれぞれを基点更新に繰り返し用いる回数を制限するためのカウンタである。ｎ個の垂直二等分面が十分近い範囲で交わっていない場合は、それらの垂直二等分面を何度繰り返し用いて基点更新したとしても、基点は真のオフセットに対応する点に近い狭い範囲に収束しない。したがって、このような場合にはオフセットを求めるために用いる垂直二等分面群を更新することが望ましい。カウンタｊを用いるのはこのような理由による。
【００５０】
ステップＳ３２２ではｇに現在の基点の座標が設定される。ｇは概念的には基点更新の終了判定がなされる時点で最後から２番目に算出された基点である。具体的にはｇは３成分を有する現在の基点の座標が格納されるデータ構造体である。
ステップＳ３２４では、変数ｌmaxが０に、カウンタｉが１に設定される。ｌmaxは基点更新の終了判定に用いる距離が格納される変数である。ｉは要素数がｎ個である１つの垂直二等分面群について１番目の垂直二等分面からｎ番目の垂直二等分面まで、順次垂線の足を求める対象となる垂直二等分面を特定するためのカウンタである。
【００５１】
ステップＳ３２６では、基点から垂直二等分面ｆiに下ろした垂線の足の座標が求められ、その足に基点が更新される。
ステップＳ３２８では、更新された基点と更新前の基点ｇとの距離ｌが算出され、距離ｌがｌmaxより大きいか否かが判定される。
今回算出された距離ｌがｌmaxより大きければ、ｌmaxはｌに更新される（ステップＳ３３０）。
【００５２】
ステップＳ３３２では、ｎ個の垂直二等分面を用いて基点を更新する処理が一巡したかが判定される。具体的にはｉとｎの一致判定が行われる。
ステップＳ３３４でｉがインクリメントされながらｎ個の垂直二等分面からなる１つの垂直二等分面群を用いて基点を更新する処理が一巡すると、その垂直二等分面群を用いて基点を更新する処理の終了判定が次のように実行される。
【００５３】
ステップＳ３３６では、ｌmaxが予め決められた所定値以下（例えば２μＴ程度以下）であるかが判定される。ｌmaxには、ｎ個の垂直二等分面からなる１つの垂直二等分面群を用いて基点を更新する処理が一巡する過程で算出された２つの基点間距離の最大値が格納されている（図１１参照）。１つの垂直二等分面群を用いて基点が更新される過程において１度の更新によって基点が移動する最大距離が小さければ、狭い範囲に基点が収束していると考えられる。したがって、ｌmaxがある程度小さくなったことをもって真のオフセットに対応する点に近い基点が求まっていると判定することができる。尚、以上説明したようなキャリブレーションの終了判定は第一の逐次更新方法にも適用してもよい。
【００５４】
ｌmaxが予め決められた所定値以下であれば、最後に求められた基点の成分がオフセットとして設定される（ステップＳ３４２）。具体的には、一括更新処理及び逐次更新処理で共用されるオフセットデータ構造体に最後に求められた基点の成分が設定される。
ｌmaxが予め決められた所定値以下でなければ、カウンタｊがインクリメントされながら（ステップＳ３４０）、ｎ個の垂直二等分面からなる１つの垂直二等分面群を用いて基点を更新する処理が繰り返される（図１２参照）。
【００５５】
１つの垂直二等分面群を用いて基点を更新する処理が予め決められた回数（例えば２０回）だけ巡回してもｌmaxが予め決められた所定値以下にならなければ（ステップＳ３３８で肯定判定される場合）、記憶されている１つの垂直二等分面群が破棄されてステップＳ３０２の処理に戻る。その後、上述したように磁気データの入力処理、ｎ個の垂直二等分面の蓄積処理が繰り返され、ｎ個の垂直二等分面が新たに蓄積されると、新たに蓄積された１つの垂直二等分面群について基点の更新処理が上述したように繰り返される。
【００５６】
３−２．第三の逐次更新方法
図１３は本発明を適用した第三の逐次更新方法を示す模式図である。第三の逐次更新方法が第一の逐次更新方法及び第二の逐次更新方法と異なる点は、基点を垂直二等分面に下ろす垂線の足で更新するのではなく、基点から垂直二等分面に垂直に下ろす線分の内分点で基点を更新する点である。第三の逐次更新方法は、第一の逐次更新方法にも第二の逐次更新方法にも適用可能である。
【００５７】
図１３では第二の逐次更新方法において基点から垂直二等分面に垂直に下ろす線分の中点で基点が更新される場合に基点が辿る軌跡が破線で示されている。ただし内分点を１：２、２：１、１：３、３：１等、どのように設定するかは設計事項である。図１３に示されるように、真のオフセットから遠い垂直二等分面ｆ4を用いて基点の更新処理が行われる場合、各垂直二等分面に下ろす足で基点が更新されると、真のオフセットに対応する点からやや遠い範囲にまで基点（軌跡の屈曲点に相当する）が分布する。これに対し、真のオフセットから遠い垂直二等分面ｆ4に垂直に下ろす線分の内分点で基点が更新される場合には、真のオフセットに対応する点からより近い範囲に基点が分布する。したがって、基点から垂直二等分面に垂直に下ろす線分の内分点で基点を更新することにより、真のオフセットに対応する点から遠い基点の成分でオフセットが設定されることを防止できる。
【００５８】
３−３．第二の一括更新方法
本発明を適用した第二の一括更新方法が第一の一括更新方法と異なる点は、蓄積される垂直二等分面の管理方法である。
図１４及び図１５は第二のオフセット設定方法に係る垂直二等分面管理処理を説明するための模式図である。オフセット設定プログラムは、図９に示すように半径１の単位球Ｅの球面を略同一面積の複数の区画に区分し、統計処理の母集団を構成する垂直二等分面を区画毎に蓄積する。具体的には例えば、各区画が略同一面積となるように、原点を中心とする単位球Ｅの球面をｘｙ平面に平行な面で複数個に分割し、分割された各領域（ｚ軸と交わる領域を除く）をｚ軸に平行な平面で放射状にさらに分割し、分割された各領域をそれぞれ１つの区画とする。オフセット設定プログラムは各区画の範囲を規定するデータを有する。区画ｎの範囲を規定するデータは区画の端点Ｍn1，Ｍn2，Ｍn3，Ｍn4のｘｙｚ成分で表される。
【００５９】
図１６は、第二の一括更新方法における垂直二等分面管理処理の流れを示すフローチャートである。図１６に示す処理は、図１に示す一括更新処理の点線で囲まれたステップＳ２１０から２１４の処理を置き換えるものである。
ステップＳ４００では、今回算出された垂直二等分面に垂直で、単位球の中心を始点とする単位ベクトルの終点を包含する区画に対応付けて記憶されている垂直二等分面がないかどうか判定される。具体的には、図１５に示すように、図示しない方位球の球面上の２点から新たに算出された垂直二等分面ｆ1をａｘ＋ｂｙ＋ｃｚ＋ｄ＝０とすると、垂直二等分面ｆ1の垂線ベクトルｖ1の成分は（ａ，ｂ，ｃ）で表される。垂線ベクトルｖ1（ａ，ｂ，ｃ）を単位長さに正規化することにより、単位ベクトルｅ1の終点を算出することができる。具体的には例えば、単位ベクトルｅ1の終点（ａ′，ｂ′，ｃ′）が単位球Ｅの区画ｎに包含されるとき、Ｍn3ｚ＜ｃ′≦Ｍn1ｚかつＭn1ｙ／Ｍn1ｘ＜ｂ′／ａ′≦Ｍn2ｙ／Ｍn2ｘが満たされる。この関係を満たす区画ｎに対応付けて垂直二等分面が記憶されているか否かが判定される。尚、一つの平面においてその垂線ベクトルは互いに逆向きの２種類存在する。単位ベクトルの終点が包含される区画が異なっているためにほぼ同一の傾きの垂直二等分面ｆ2が重複して記憶されないようにするために、単位球Ｅの半分の区画を使用するようにしてもよい。具体的には例えば、単位球Ｅのｚ成分が正である半球部分を使用することとして、垂線ベクトルｖ2が単位長さに正規化された単位ベクトルｅ2のｚ成分が負であるとき、原点を中心とした点対称の向きに変換しその終点が包含される区画に対応付けて垂直二等分面が既に記憶されているか判定するようにしてもよい。
【００６０】
ステップＳ４０２では、対応する区画に対応付けて垂直二等分面が既に記憶されていなければ、今回算出された垂直二等分面がその区画に対応付けて記憶され、記憶面数がインクリメントされる。
以上の説明では、各区画に対応付けて記憶できる垂直二等分面の数を１つに限定しているが、各区画に対応付けて記憶できる垂直二等分面は複数であってもよい。図１のステップＳ２１６の条件がＹ判定のとき、各区画に垂直二等分面が満遍なく記憶されている。それらの垂直二等分面を用いて統計的手法で方位球の中心を算出することにより、求めたオフセットと真のオフセットとの誤差を小さくすることができる。なぜなら例えば２つの垂直二等分面を例にすると、それぞれの垂直二等分面と真のオフセットに対応する点との距離が小さくても２つの垂直二等分面が平行に近ければ２つの垂直二等分面の共有線は真のオフセットに対応する点から遠くなるためである。したがって、統計処理の母集団としてそのような垂直二等分面が含まれると、真のオフセットとの誤差が大きくなるためである。また、本実施形態によると、傾きに偏りのない垂直二等分面を記憶するために、既に算出されている垂直二等分面の全てと新たに算出された垂直二等分面とのなす角度を全て求める必要がないため、必要となる計算量が少なく、速く垂直二等分面を記憶させることができる。
【００６１】
３−４．第三の一括更新方法
第三の一括更新方法が第一の一括更新方法及び第二の一括更新方法と異なる点は、統計処理の母集団を構成する要素である。第一の一括更新方法及び第二の一括更新方法が２つ１組の磁気データ毎に算出した複数の垂直二等分面を統計処理の母集団として用いているが、第三の一括更新方法では、複数の磁気データに対応する複数の点そのものを統計処理の母集団とし、図１７に示すようにそれらの複数の点からの距離のばらつきが最小になる点を統計処理によって算出する。統計処理には、例えば最小二乗法を用いるが、もちろんその他の統計的手法を適用してもよい。
【００６２】
３−５．他の実施形態
以上、本発明を３次元磁気センサに適用した例について説明したが、本発明は２次元磁気センサに適用することもできる。また、オフセットの精度を上げるためには磁気データ及び垂直二等分面の選抜を行った方がよいが、必ずしもこれらの選抜を行わなくてもよいし、本実施形態で説明された例とは別の数学的処理によって選別することもできる。
【図面の簡単な説明】
【００６３】
【図１】本発明の実施例に係るフローチャート。
【図２】本発明の実施例に係る模式図。
【図３】本発明の実施例に係るハードウェアブロック図。
【図４】本発明の実施例に係る３次元磁気センサの概略内部構成図。
【図５】本発明の実施例に係る模式図。
【図６】本発明の実施例に係る模式図。
【図７】本発明の実施例に係る模式図。
【図８】本発明の実施例に係る模式図。
【図９】本発明の実施例に係るフローチャート。
【図１０】本発明の実施例に係るフローチャート。
【図１１】本発明の実施例に係る模式図。
【図１２】本発明の実施例に係る模式図。
【図１３】本発明の実施例に係る模式図。
【図１４】本発明の実施例に係る模式図。
【図１５】本発明の実施例に係る模式図。
【図１６】本発明の実施例に係るフローチャート。
【図１７】本発明の実施例に係る模式図。
【符号の説明】
【００６４】
１：携帯型電話機、４：３次元磁気センサ、５：ディスプレイ、１０：ＲＦ部、１１：バス、１２：変復調部、１３：アンテナ、１４：ＣＤＭＡ部、１６：マイクロホン、１８：音声処理部、２０：ＧＰＳ受信部、２１：アンテナ、２４：切換部、２５：増幅器、３０：Ｘ軸センサ、３２：Ｙ軸センサ、３４：Ｚ軸センサ、３６：温度センサ、４０：ＣＰＵ（入力手段、一括更新手段、逐次更新手段、設定手段、磁気データ選抜手段、垂直二等分面選抜手段、垂直二等分線選抜手段）、４４：ＲＡＭ、４５：制御部（磁気センサ制御装置）、４８：キー入力部、５０：スピーカ、５２：電子撮像部、５４：表示部、５８：報知部
【図１】
2007225329.tif 000012
【図２】
2007225329.tif 000013
【図３】
2007225329.tif 000014
【図４】
2007225329.tif 000015
【図５】
2007225329.tif 000016
【図６】
2007225329.tif 000017
【図７】
2007225329.tif 000018
【図８】
2007225329.tif 000019
【図９】
2007225329.tif 000020
【図１０】
2007225329.tif 000021
【図１１】
2007225329.tif 000022
【図１２】
2007225329.tif 000023
【図１３】
2007225329.tif 000024
【図１４】
2007225329.tif 000025
【図１５】
2007225329.tif 000026
【図１６】
2007225329.tif 000027
【図１７】
2007225329.tif 000028