(57)【特許請求の範囲】
【請求項１】
移動体に搭載された磁気センサから磁気データを順次入力し、
入力された２個の前記磁気データ間の距離が第一しきい値を越えることを必要条件として、前記磁気データの蓄積手段への格納を、入力された２個の前記磁気データから開始し、
前記蓄積手段に格納されている前記磁気データとの距離が前記第一しきい値より小さい第二しきい値を越える前記磁気データが入力されたことを必要条件として、入力された前記磁気データを前記蓄積手段に追加格納し、
前記蓄積手段に格納されている前記磁気データに基づいて前記磁気データのオフセットを導出する、
ことを含む磁気データ処理方法。
【請求項２】
入力された前記磁気データを前記蓄積手段に追加格納するとき、前記蓄積手段に最後に格納された前記磁気データとの距離が前記第二しきい値を越える前記磁気データが入力されたことを必要条件として、入力された前記磁気データを前記蓄積手段に追加格納する、
請求項１に記載の磁気データ処理方法。
【請求項３】
入力された前記磁気データを前記蓄積手段に追加格納するとき、前記蓄積手段に格納されている全ての前記磁気データとの距離が前記第二しきい値を越える前記磁気データが入力されたことを必要条件として、入力された前記磁気データを前記蓄積手段に追加格納する、
請求項１に記載の磁気データ処理方法。
【請求項４】
入力された前記磁気データを前記蓄積手段に格納する前に１個保持し、
保持されている前記磁気データとの距離が前記第一しきい値以下の前記磁気データが、保持されている前記磁気データに続いて所定個数連続入力されたことを必要条件として、保持されている前記磁気データを破棄し、
保持されている前記磁気データとの距離が前記第一しきい値を越える前記磁気データが入力されたことを必要条件として、保持されている前記磁気データと保持されている前記磁気データより後に入力された前記磁気データとから、入力された前記磁気データの前記蓄積手段への格納を開始する、
請求項１〜３のいずれか一項に記載の磁気データ処理方法。
【請求項５】
入力された前記磁気データを前記蓄積手段に格納する前に１個保持し、
保持されている前記磁気データとの距離が前記第一しきい値以下の前記磁気データが保持されている前記磁気データに続いて所定期間連続入力されたことを必要条件として、保持されている前記磁気データを破棄し、
保持されている前記磁気データとの距離が前記第一しきい値を越える前記磁気データが入力されたことを必要条件として、保持されている前記磁気データと保持されている前記磁気データより後に入力された前記磁気データとから、入力された前記磁気データの前記蓄積手段への格納を開始する、
請求項１〜３のいずれか一項に記載の磁気データ処理方法。
【請求項６】
前記蓄積手段に格納されている前記磁気データとの距離が前記第二しきい値以下の前記磁気データが所定個数連続入力されたことを必要条件として、前記蓄積手段に格納されている全ての前記磁気データを破棄した後に前記蓄積手段への前記磁気データの格納を再開する、
請求項１〜５のいずれか一項に記載の磁気データ処理方法。
【請求項７】
前記蓄積手段に格納されている前記磁気データとの距離が前記第二しきい値以下の前記磁気データが所定期間連続入力されたことを必要条件として、前記蓄積手段に格納されている全ての前記磁気データを破棄した後に前記蓄積手段への前記磁気データの格納を再開する、
請求項１〜５のいずれか一項に記載の磁気データ処理方法。
【請求項８】
所定個数の前記磁気データが前記蓄積手段に格納されたことを必要条件として、前記蓄積手段に格納されている前記磁気データに基づいて前記磁気データのオフセットを導出する、
請求項１〜７のいずれか一項に記載の磁気データ処理方法。
【請求項９】
移動体に搭載された磁気センサから出力される磁気データを順次入力する入力手段と、
入力された前記磁気データを蓄積するための蓄積手段と、
入力された２個の前記磁気データ間の距離が第一しきい値を越えることを必要条件として、前記磁気データの前記蓄積手段への格納を入力された２個の前記磁気データから開始する蓄積開始手段と、
前記蓄積手段に格納されている前記磁気データとの距離が前記第一しきい値より小さい第二しきい値を越える前記磁気データが入力されたことを必要条件として、入力された前記磁気データを前記蓄積手段に追加格納する蓄積継続手段と、
前記蓄積手段に格納されている前記磁気データに基づいて前記磁気データのオフセットを導出する導出手段と、
を備える磁気データ処理装置。
【請求項１０】
移動体に搭載された磁気センサから出力される磁気データを順次入力する入力手段と、
入力された前記磁気データを蓄積するための蓄積手段と、
入力された２個の前記磁気データ間の距離が第一しきい値を越えることを必要条件として、前記磁気データの前記蓄積手段への格納を入力された２個の前記磁気データから開始する蓄積開始手段と、
前記蓄積手段に格納されている前記磁気データとの距離が前記第一しきい値より小さい第二しきい値を越える前記磁気データが入力されたことを必要条件として、入力された前記磁気データを前記蓄積手段に追加格納する蓄積継続手段と、
前記蓄積手段に格納されている前記磁気データに基づいて前記磁気データのオフセットを導出する導出手段と、
してコンピュータを機能させる磁気データ処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、磁気データ処理方法、装置及びプログラムに関し、特に磁気センサのオフセットを導出する技術に関する。
【背景技術】
【０００２】
従来、携帯型電話機、車両等の移動体に搭載され、地磁気の方向を検出する２次元又は３次元の磁気センサが知られている。一般に磁気センサは、磁界のベクトルを互いに直交する方向成分に分解して検出するための２つ又は３つの磁気センサモジュールを備えている。磁気センサの出力である磁気データは、複数の磁気センサモジュールの出力の組み合わせからなるベクトルデータである。磁気データが示す方向と大きさが磁気センサが検出している磁界の方向と大きさである。磁気センサの出力に基づいて地磁気の方向又は大きさを特定するとき、移動体の着磁や磁気センサ自体の温度特性による測定誤差を打ち消すために磁気センサの出力を補正する処理が必要である。この補正処理の操作値はオフセットと呼ばれている。オフセットは磁気センサが検出している移動体の着磁による磁界などを表すベクトルデータであって、磁気センサの出力である磁気データからオフセットが引き算されることによって測定誤差が打ち消される。磁気データ群が分布する円又は球の中心を求めることによってオフセットを導出することができる。
【０００３】
ところで、磁気データの分布は現実には完全な円又は球にならない。なぜならば、磁気センサの出力自体がガウス分布に従う測定誤差を有しているし、現実には完全に一様な磁界は存在しないためオフセットを導出するために必要な磁気データ群が蓄積される期間中に磁気センサが測定している磁界が変動するし、磁気センサの出力をディジタル値で取り出すまでの計算誤差があるからである。このような磁気データ群に基づいてオフセットを導出するアルゴリズムとして、最小二乗法などの統計的手法を用いたものが知られている。統計的手法を用いてオフセットを導出する場合、母集団としての磁気データ群の分布の偏りが大きい場合には正確なオフセットを導出することができないし、母集団の要素数がある程度多くない場合にも高精度のオフセットを導出できない。
【０００４】
特許文献１には、オフセットを統計的手法によって導出するための母集団として磁気データを蓄積する際、連続入力される磁気データ間の距離が短い場合には、入力されたそのような磁気データを母集団要素として蓄積せずに破棄することにより、偏った分布の磁気データ群に基づいて低い精度のオフセットが導出されることを防止する方法が開示されている。母集団要素として蓄積対象とする磁気データ間の間隔を広げると、移動体が特定の姿勢変化（例えば特定の時間内に一定の角速度で一回転）をしなければ、母集団の蓄積を完了するまでに長時間を要するという問題がある。しかし、移動体の移動にともなって移動体の存在する磁界が変化すると、移動体の姿勢が変化していなくても、磁界の変化前後で磁気センサから出力される磁気データ間の距離が離れる。したがって、母集団要素として蓄積対象とする磁気データ間の間隔を狭めると、互いに異なる磁界において磁気センサから出力された磁気データを含む母集団に基づいて精度の低いオフセットが導出されるという問題がある。
【０００５】
【特許文献１】国際公開第２００４／００３４７６号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００６】
本発明は上記問題に鑑みて創作されたものであって、高精度にオフセットを導出するための磁気データ群を短時間に蓄積できる磁気データ処理方法、装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
（１）上記目的を達成するための磁気データ処理方法は、磁気センサから磁気データを順次入力し、入力された２個の前記磁気データ間の距離が第一しきい値を越えることを必要条件として、前記磁気データの蓄積手段への格納を入力された２個の前記磁気データから開始し、前記蓄積手段に格納されている前記磁気データとの距離が前記第一しきい値より小さい第二しきい値を越える前記磁気データが入力されたことを必要条件として、入力された前記磁気データを前記蓄積手段に追加格納し、前記蓄積手段に格納されている前記磁気データに基づいて前記磁気データのオフセットを導出する、ことを含む。
この方法によると、入力された２個の磁気データ間の距離が第一しきい値を越えない限り、オフセットを導出するために用いられる磁気データ群の蓄積が開始されない。磁界が激変する状況は希であるため、通常頻繁に起こりうる程度の磁界変化によって磁気データ群の蓄積が開始されない程度に大きな値に第一しきい値を設定することにより、通常頻繁に起こりうる程度の磁界変化の前後にそれぞれ磁気センサから出力された磁気データが含まれる磁気データ群に基づいて低い精度でオフセットが導出されることを防止できる。また、そのように第一しきい値が設定されている場合に、磁気データ群の蓄積が開始されるとすれば、そのきっかけは通常頻繁に起こりうる程度の磁界変化ではなく、移動体の姿勢変化である。移動体の姿勢が変化し始めてから短時間のうちにオフセットを導出するために必要な個数の磁気データ群を蓄積すれば、一定の磁界内で磁気センサから出力される磁気データ群を蓄積することができる。この方法によると、オフセットを導出するためにいったん磁気データ群の蓄積が開始されると、蓄積対象とする磁気データと既に蓄積されている磁気データとの距離のしきい値が第一しきい値より小さい第二しきい値に縮められるため、短時間のうちに一定の磁界内で磁気センサから出力される磁気データ群を蓄積することができる。さらに、蓄積対象とする磁気データと既に蓄積されている磁気データとの距離のしきい値が第一しきい値より小さい第二しきい値に縮められるため、オフセットを導出するためにいったん磁気データ群の蓄積が開始されると、移動体の姿勢変化が特定の作法（例えば一定時間内に等角速度で一回転）に則ってないとしても短時間のうちに必要な磁気データ群が蓄積される。
【０００８】
（２）上記目的を達成するための磁気データ処理方法において、入力された前記磁気データを前記蓄積手段に追加格納するとき、前記蓄積手段に最後に格納された前記磁気データとの距離が前記第二しきい値を越える前記磁気データが入力されたことを必要条件として、入力された前記磁気データを前記蓄積手段に追加格納してもよい。
この方法によると、蓄積される磁気データ群の分布が偏る可能性はあるものの、短時間のうちに必要な磁気データ群が蓄積される。
【０００９】
（３）上記目的を達成するための磁気データ処理方法において、入力された前記磁気データを前記蓄積手段に追加格納するとき、前記蓄積手段に格納されている全ての前記磁気データとの距離が前記第二しきい値を越える前記磁気データが入力されたことを必要条件として、入力された前記磁気データを前記蓄積手段に追加格納してもよい。
この方法によると、オフセットを導出するために蓄積するデータ群の分布が偏ることを防止できる。
【００１０】
（４）上記目的を達成するための磁気データ処理方法において、入力された前記磁気データを前記蓄積手段に格納する前に１個保持し、保持されている前記磁気データとの距離が前記第一しきい値以下の前記磁気データが、保持されている前記磁気データに続いて所定個数連続入力されたことを必要条件として、保持されている前記磁気データを破棄し、保持されている前記磁気データとの距離が前記第一しきい値を越える前記磁気データが入力されたことを必要条件として、保持されている前記磁気データと保持されている前記磁気データより後に入力された前記磁気データとから、入力された前記磁気データの前記蓄積手段への格納を開始してもよい。
この方法によると、オフセットを導出するための磁気データ群の蓄積が、姿勢変化を伴わない移動体の移動に伴って徐々に磁界が変化したために開始されることを防止できる。特に３次元磁気センサのオフセットを導出する場合には、移動体が特定の姿勢変化（例えば軸固定の等速回転運動）をするようにユーザを促すことなく、オフセットを導出するための磁気データ群を蓄積することができるため、この方法による効果が大きくなる。
【００１１】
（５）上記目的を達成するための磁気データ処理方法において、入力された前記磁気データを前記蓄積手段に格納する前に１個保持し、保持されている前記磁気データとの距離が前記第一しきい値以下の前記磁気データが、保持されている前記磁気データに続いて所定期間連続入力されたことを必要条件として、保持されている前記磁気データを破棄し、保持されている前記磁気データとの距離が前記第一しきい値を越える前記磁気データが入力されたことを必要条件として、保持されている前記磁気データと保持されている前記磁気データより後に入力された前記磁気データとから、入力された前記磁気データの前記蓄積手段への格納を開始してもよい。
この方法によると、オフセットを導出するための磁気データ群の蓄積が、姿勢変化を伴わない移動体の移動に伴って徐々に磁界が変化したために開始されることを防止できる。特に３次元磁気センサのオフセットを導出する場合には、この方法による効果が大きくなる。
【００１２】
（６）上記目的を達成するための磁気データ処理方法において、前記蓄積手段に格納されている前記磁気データとの距離が前記第二しきい値以下の前記磁気データが所定個数連続入力されたことを必要条件として、前記蓄積手段に格納されている全ての前記磁気データを破棄した後に前記蓄積手段への前記磁気データの格納を再開してもよい。
この方法によると、姿勢変化を伴わない移動体の移動に伴って徐々に磁界が変化したためにオフセットを導出するための母集団要素として磁気データが蓄積されることを防止できる。
【００１３】
（７）上記目的を達成するための磁気データ処理方法において、前記蓄積手段に格納押されている前記磁気データとの距離が前記第二しきい値以下の前記磁気データが所定期間連続入力されたことを必要条件として、前記蓄積手段に格納されている全ての前記磁気データを破棄した後に前記蓄積手段への前記磁気データの格納を再開してもよい。
この方法によると、姿勢変化を伴わない移動体の移動に伴って徐々に磁界が変化したためにオフセットを導出するための母集団要素として磁気データが蓄積されることを防止できる。
【００１４】
（８）上記目的を達成するための磁気データ処理方法において、所定個数の前記磁気データが前記蓄積手段に格納されたことを必要条件として、前記蓄積手段に格納されている前記磁気データに基づいて前記磁気データのオフセットを導出してもよい。
尚、請求項に記載された方法の各動作の順序は、技術上の阻害要因がない限り、記載順に限定されるものではなく、どのような順番で実行されてもよく、また同時に実行されてもよい。また、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。また、本発明は方法の発明として特定できるだけでなく、装置の発明としても、プログラムの発明としても、そのプログラムを記録した記録媒体の発明としても特定することができる。
【発明を実施するための最良の形態】
【００１５】
以下、本発明の実施の形態を以下の順に説明する。
Ａ．第一の実施形態
［１．全体説明］
１−１．ハードウェア構成
１−２．ソフトウェア構成
［２．バッファ更新］
２−１．全体の流れ
２−２．格納開始処理
２−３．追加格納処理
［３．オフセットの導出］
Ｂ．第二の実施形態
Ｃ．第三の実施形態
Ｄ．他の実施形態
【００１６】
Ａ．第一の実施形態
［１．全体説明］
１−１．ハードウェア構成
図２は、本発明が適用される移動体の一例である携帯型電話機３の外観を示す模式図である。携帯型電話機３には３次元磁気センサ４が搭載されている。３次元磁気センサは互いに直交するｘ、ｙ、ｚの３方向について磁界の強さを検出することによって磁界の方向及び強さを検出する。携帯型電話機３のディスプレイ２には、文字や画像の各種情報が表示される。例えば、ディスプレイ２には、地図と、方位を示す矢印や文字が表示される。
【００１７】
図３は、３次元磁気センサ４と磁気データ処理装置１とを備える磁気測定装置を示すブロック図である。３次元磁気センサ４は、地磁気による磁界ベクトルのｘ方向成分、ｙ方向成分、ｚ方向成分をそれぞれ検出するｘ軸センサ３０とｙ軸センサ３２とｚ軸センサ３４とを備えている。ｘ軸センサ３０、ｙ軸センサ３２、ｚ軸センサ３４は、いずれも磁気抵抗素子、ホール素子等で構成され、指向性のある１次元磁気センサであればどのようなものであってもよい。ｘ軸センサ３０、ｙ軸センサ３２及びｚ軸センサ３４は、それぞれの感度方向が互いに直交するように固定されている。ｘ軸センサ３０、ｙ軸センサ３２及びｚ軸センサ３４の出力は、時分割して磁気センサＩ／Ｆ（Inter Face）２２に入力される。磁気センサＩ／Ｆ２２では、ｘ軸センサ３０、ｙ軸センサ３２及びｚ軸センサ３４からの入力が増幅された後にＡＤ変換される。磁気センサＩ／Ｆ２２から出力されるディジタルの磁気データは、バス５を介して磁気データ処理装置１に入力される。
【００１８】
磁気データ処理装置１は、ＣＰＵ４０とＲＯＭ４２とＲＡＭ４４とを備えている所謂コンピュータである。ＣＰＵ４０は、例えば携帯型電話機３の全体制御を司るプロセッサである。ＲＯＭ４２は、ＣＰＵ４０によって実行される磁気データ処理プログラムや、移動体の機能を実現するための種々のプログラム、例えばナビゲーションプログラムが格納されている、不揮発性の記憶媒体である。ＲＡＭ４４はＣＰＵ４０の処理対象となるデータ（後述するｐ1、ｐ2、Ｐn等）を一時的に保持する揮発性の記憶媒体であって、蓄積手段として機能する。尚、磁気データ処理装置１と３次元磁気センサ４とを１チップの磁気測定装置として構成することもできる。
【００１９】
１−２．ソフトウェア構成
図４は、磁気データ処理プログラム９０の構成を示すブロック図である。磁気データ処理プログラム９０は、ナビゲーションプログラム９８に方位データを提供するためのプログラムであって、ＲＯＭ４２に格納されている。方位データは地磁気の方向を示す２次元ベクトルデータである。尚、方位データは例えば移動体の姿勢認識のための３次元ベクトルデータとして他のアプリケーションプログラムに提供されてもよい。磁気データ処理プログラム９０は、バッファ管理モジュール９２、オフセット導出モジュール９４、方位導出モジュール９６等のモジュール群で構成されている。
【００２０】
バッファ管理モジュール９２は、磁気センサ４から順次出力される磁気データを入力し、入力した磁気データをオフセット更新に用いるためにバッファに蓄積するプログラム部品であって、ＣＰＵ４０、ＲＡＭ４４及びＲＯＭ４２を入力手段、蓄積手段、蓄積開始手段及び蓄積継続手段として機能させる。尚、このバッファはハードウェアで構成されてもよいし、ソフトウェアで構成されてもよい。このバッファに蓄積される磁気データ群を母集団データ群というものとする。
【００２１】
オフセット導出モジュール９４は、バッファ管理モジュール９２によって保持されている母集団データ群に基づいて新オフセットを導出し、旧オフセットを新オフセットに更新するプログラム部品であって、ＣＰＵ４０、ＲＡＭ４４及びＲＯＭ４２をオフセット導出手段として機能させる。尚、誤解のない文脈では旧オフセット及び新オフセットのことを単にオフセットというものとする。
【００２２】
方位導出モジュール９６は、磁気センサ４から順次出力される磁気データをオフセット導出モジュール９４が保持しているオフセットによって補正して方位データを生成するプログラム部品である。具体的には、方位導出モジュール９６は、３次元ベクトルデータである磁気データの各成分からオフセットの各成分を引き算して得られる３成分のうちの２成分又は３成分全部を方位データとして出力する。
【００２３】
ナビゲーションプログラム９８は、目的地までの誘導経路を探索し、地図上に誘導経路を表示する周知のプログラムである。地図の認識のし易さから、地図は現実の方位に地図上の方位が一致するように画面表示される。したがって例えば、携帯型電話機３が回転すると、ディスプレイ２に表示される地図は地面に対して回転しないようにディスプレイ２に対して回転する。このような地図の表示処理に方位データが用いられる。もちろん、方位データは、単に東西南北を文字や矢印で表示するためにのみ用いられてもよい。
【００２４】
［２．バッファ更新］
２−１．全体の流れ
図５及び図６は、バッファ更新処理の流れを示すフローチャートである。図５及び図６に示す処理は、オフセットの更新要求が発生したときにＣＰＵ４０がオフセット導出モジュール９４を実行することによって進行する。オフセットの更新要求は、一定時間間隔で発生するものであってもよいし、ユーザ入力などの特定のイベントの発生に応じて発生するものであってもよい。バッファ更新処理は、図５に示す前段の格納開始処理と図６に示す後段の追加格納処理とで構成される。
【００２５】
２−２．格納開始処理
格納開始処理では、通常頻繁に起こりうる程度の磁界変化によっては磁気データのバッファへの蓄積を開始せず、移動体が大きく姿勢変化したときに磁気データのバッファへの格納を開始するために、第一しきい値として定数Ａが用いられる。また格納開始処理では、磁気データのバッファへの格納が、姿勢変化を伴わない携帯型電話機３の移動に伴って徐々に磁界が変化したために開始されることを防止するため、カウンタ変数ｍと定数ｓとが用いられる。
【００２６】
ステップＳ１００では、カウンタ変数ｍが０にリセットされる。
ステップＳ１０２では、３次元磁気センサ４から磁気データｑが磁気データ処理装置１に入力され、１個目の蓄積候補磁気データを保持するためのデータ構造体ｑ1（ｑ1x、ｑ1y、ｑ1z）にセットされる。
ステップＳ１０４では、カウンタ変数ｍがインクリメントされる。
ステップＳ１０６では、３次元磁気センサ４から磁気データｑが磁気データ処理装置１に入力され、２個目の蓄積候補磁気データを保持するためのデータ構造体ｑ2（ｑ2x、ｑ2y、ｑ2z）にセットされる。
ステップＳ１０８では、１個目の蓄積候補磁気データと２個目の蓄積候補磁気データとの距離がしきい値Ａを越えているかが判定される。すなわち、次式（１）が満たされているか否かが判定される。
｜ｑ1−ｑ2｜＞Ａ・・・（１）
ステップＳ１０８で否定判定されると、ステップＳ１１０においてカウンタ変数ｍが定数ｓまでカウントアップしているかが判定される。
【００２７】
１個目の蓄積候補磁気データと２個目の蓄積候補磁気データとの距離がしきい値Ａを越えない限り、カウンタ変数ｍが定数ｓまでカウントアップするまでステップＳ１０４からステップＳ１１０までの処理が繰り返される。この期間、２個目の蓄積候補磁気データを保持するためのデータ構造体ｑ2は、最後に入力された磁気データで更新され続ける。
カウンタ変数ｍが定数ｓまでカウントアップすると、ステップＳ１００の処理に戻る。その結果、ステップＳ１０２において、１個目の蓄積候補磁気データを保持するためのデータ構造体ｑ1と２個目の蓄積候補磁気データを保持するためのデータ構造体ｑ2に保持されている磁気データとが破棄され、データ構造体ｑ1に保持されている磁気データが新しい磁気データｑに更新される。
【００２８】
ステップＳ１０８で肯定判定されると、すなわち１個目の蓄積候補磁気データと２個目の蓄積候補磁気データとの距離がしきい値Ａを越えると、１個目の蓄積候補磁気データｑ1が１個目の母集団要素データを保持するためのデータ構造体Ｐ1にセットされ、２個目の蓄積候補磁気データｑ2が１個目の母集団要素データを保持するためのデータ構造体Ｐ2にセットされる。すなわち、１個目の蓄積候補磁気データｑ1と２個目の蓄積候補磁気データｑ2とが母集団データ群を蓄積するためのバッファとしてのデータ構造体Ｐn（Ｐnx、Ｐny、Ｐnz）（ｎ＝１，２・・・ｕ）に格納される。
【００２９】
図１は、磁気データ処理装置１に順次入力される磁気データの例示である。図１では、理解を容易にするために二次元で磁気データ群が表現されている。携帯型電話機３の移動によって磁界が変化する前後に磁気データ処理装置１に入力される磁気データ群を示している。各磁気データは白丸及び黒丸で示される。白丸及び黒丸に添えられている数字は磁気データの入力順を示している。白丸は母集団データ群としてオフセットの導出に用いられない磁気データを示し、黒丸は母集団データ群としてオフセットの導出に用いられる磁気データを示している。図１に基づいて、どのような磁気データが入力されると母集団データ群としての磁気データ群の蓄積が開始されるかを具体的に説明する。尚、磁気データ処理装置１に順次入力される磁気データを、入力順に磁気データ１、磁気データ２、磁気データ３、・・・というものとする。
【００３０】
バッファ更新処理が起動した直後に磁気データ１が入力されると、磁気データ１は１個目の蓄積候補磁気データｑ1として保持される。続いて磁気データ２、磁気データ３が入力されたとき、磁気データ１から磁気データ２及び磁気データ３までの距離がいずれもしきい値Ａより小さい場合には、磁気データ２及び磁気データ３は破棄される。図１に示すように、携帯型電話機３の姿勢が大きく変化していない期間においては、変化前の磁界において入力された磁気データ１から、変化前の磁界において入力された磁気データ２までの距離も、変化後の磁界において入力された磁気データ３までの距離ｄ3も、しきい値Ａより小さくなる。すなわち、しきい値Ａは、携帯型電話機３の姿勢が大きく変化していない期間において磁界が通常頻繁に起こりうる範囲で変化したとしても、磁気データのバッファへの蓄積が開始されないように設定されている。また、定数ｓを「２」と設定すれば、すなわち、１個目の蓄積候補磁気データｑ1として磁気データが保持されてから、蓄積候補磁気データｑ1からの距離がしきい値Ａ以下の磁気データが２個連続入力されると蓄積候補磁気データｑ1及びｑ2が破棄されるとすれば、磁気データ４が入力されることによって磁気データ１が破棄され、１個目の蓄積候補磁気データｑ1として磁気データ４が保持される。もちろん、定数ｓは２以外に設定することもできる。
【００３１】
変化後の磁界において磁気データ４が入力され、１個目の蓄積候補磁気データｑ1として保持された後の２回目の磁気データの入力によって、磁気データ４からの距離がしきい値Ａを越える磁気データ６が入力されると、磁気データ４及び磁気データ６がオフセットを導出するための母集団要素としてバッファに格納される。磁気データ４からの距離がしきい値Ａを越える磁気データが短期間に入力されるということは、通常頻繁に起こりうる磁界の変化によるものではない、すなわち携帯型電話機３の姿勢が大きく変化したことによる、磁気センサ４から測定される相対的な磁界の変化が起こったということである。このように携帯型電話機３の姿勢が大きく変化すると、バッファへの磁気データの格納が開始される。図１に示す例では、磁気データ４及び磁気データ６から磁気データのバッファへの格納が開始される。
【００３２】
２−３．追加格納処理
図６に示す追加格納処理では、所定数の母集団データ群をバッファに蓄積するために、第一しきい値としての定数Ａよりも小さい第二しきい値として定数Ｂを用いる。すなわち、図１に示すように、格納開始処理においては先に入力された磁気データとの距離が近いが故にバッファに格納されない磁気データであっても、追加格納処理においてはバッファに格納されるように、定数Ｂは定数Ａより小さく設定される。また追加格納処理でも、姿勢変化を伴わない携帯型電話機３の移動に伴って徐々に磁界が変化したためにバッファに磁気データが蓄積されないように、カウンタ変数ｃと定数ｔとが用いられる。また追加格納処理では、母集団データ群の蓄積を所定数の磁気データが蓄積された時点で終了するためのカウンタ変数ｎが用いられる。
【００３３】
ステップＳ１１４では、カウンタ変数ｎが２にセットされる。追加格納処理では３個目の磁気データからバッファに追加格納されるからである。
ステップＳ１１６では、カウンタ変数ｃが０にリセットされる。
ステップＳ１１８では、カウンタ変数ｃがインクリメントされる。
ステップＳ１２０では、３次元磁気センサ４から出力された磁気データｑが磁気データ処理装置１に入力される。
ステップＳ１２２では、バッファに最後に格納された磁気データ、すなわちそれを保持しているＰnと最後に入力された磁気データｑとの距離がしきい値Ｂを越えているかが判定される。すなわち、次式（２）が満たされているか否かが判定される。
｜ｑ−Ｐn｜＞Ｂ・・・（２）
ステップＳ１２２で否定判定されると、ステップＳ１２４においてカウンタ変数ｃが定数ｔまでカウントアップしているかが判定される。
【００３４】
バッファに最後に格納された磁気データと磁気データ処理装置１に最後に入力された磁気データｑとの距離がしきい値Ｂを越えない限り、カウンタ変数ｃが定数ｔまでカウントアップするまでステップＳ１１８からステップＳ１２４の処理が繰り返される。カウンタ変数ｃが定数ｔまでカウントアップすると、処理はステップＳ１００に戻る。その結果、バッファに蓄積された全ての磁気データはその後の処理で破棄される。
【００３５】
ステップＳ１２２で肯定判定されると、すなわち直前にバッファに格納された磁気データと最後に入力された磁気データとの距離がしきい値Ｂを越えると、ステップＳ１２６においてカウンタ変数ｎがインクリメントされ（ステップＳ１２６）、ｎ個目の母集団要素データを保持するためのデータ構造体Ｐnに、磁気データ処理装置１に最後に入力された磁気データｑがセットされる（ステップＳ１２８）。
【００３６】
ステップＳ１３０では、カウンタ変数ｎがｕまでカウントアップしているかが判定される。カウンタ変数ｎがｕまでカウントアップしている場合、すなわちｕ個の母集団要素データがバッファに蓄積されている場合、バッファへの磁気データの追加格納処理は終了し、オフセットの導出処理が起動する。カウンタ変数ｎがｕまでカウントアップしていない場合、ステップＳ１１６に戻って上述の処理が繰り返される。尚、オフセットを導出するために必要な母集団要素データの数、すなわち定数ｕをいくつに設定するかは任意である。定数ｕ及びしきい値Ｂを小さくするほどオフセットの更新頻度が高くなり、ユーザにとってはオフセット更新が容易になる。定数ｕ及びしきい値Ｂを大きくするほどオフセットの精度が高まる。
【００３７】
［３．オフセットの導出］
母集団データ群に基づいて新オフセットを導出するアルゴリズムは、種々提案されており、最小二乗法等の統計的手法を用いるアルゴリズムであってもよいし、本件出願人によって既に出願されている特願２００５−３３７４１２及び特願２００６−４４２８９に開示されているように統計的手法を用いないアルゴリズムであってもよい。いずれのアルゴリズムを採用する場合であっても、オフセットの導出処理は、バッファに蓄積された磁気データ群に基づいて磁気データ処理装置１によって実行される。
【００３８】
Ｂ．第二の実施形態
第一の実施形態では、姿勢変化を伴わない携帯型電話機３の移動に伴って徐々に磁界が変化したためにバッファに磁気データが格納されないように、過去に入力された磁気データとの距離がしきい値を越えない磁気データが所定個数連続入力されると、過去に入力された磁気データを母集団要素データとして用いずに破棄した。第二の実施形態は、同様の目的を達成するため、過去に入力された磁気データとの距離がしきい値を越えない磁気データが所定期間連続入力されると、過去に入力された磁気データを母集団要素データとして用いずに破棄する。すなわち、第二の実施形態では、格納開始処理のステップＳ１１０及び追加格納処理のステップＳ１２４において所定のタイマがタイムアップしているときに処理がステップＳ１００に戻る。
【００３９】
Ｃ．第三の実施形態
第一の実施形態では、追加格納処理において、バッファに最後に格納された磁気データと最後に入力された磁気データとの距離がしきい値Ｂを越えない限り、最後に入力された磁気データはバッファに格納されないアルゴリズムを説明した。この場合、最後に入力された磁気データとの距離が近い磁気データが既にバッファに蓄積されているにもかかわらず、最後に入力された磁気データがバッファに追加格納されることがあるため、母集団データ群の分布が偏る可能性がある。そこで、第三の実施形態では、バッファに格納されている全ての磁気データと最後に入力された磁気データとの距離がしきい値Ｂを越えない限り、最後に入力された磁気データがバッファに格納されないアルゴリズムが採用される。具体的には、ステップＳ１２２の処理において、最後に入力された磁気データｑとの比較対象をＰk（ｋ＝１、２，・・・ｎ）とし、全てのｋについて次式（３）が満たされない場合に処理はステップＳ１２４に移る。
｜ｑ−Ｐk｜＞Ｂ・・・（３）
第三の実施形態によると、互いの距離が近い磁気データを含む母集団データ群に基づいてオフセットが導出されることがないため、高い精度でオフセットを導出することができる。
【００４０】
Ｄ．他の実施形態
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の形態で実施可能である。例えば、本発明がＰＤＡに搭載される磁気センサや車両に搭載される磁気センサにも適用できることは当然である。また、本発明が２次元磁気センサに適用できることも当然である。
【図面の簡単な説明】
【００４１】
【図１】本発明の実施形態に係る模式図。
【図２】本発明の実施形態に係る模式図。
【図３】本発明の実施形態に係るブロック図。
【図４】本発明の実施形態に係るブロック図。
【図５】本発明の第一実施形態に係るフローチャート。
【図６】本発明の第一実施形態に係るフローチャート。
【符号の説明】
【００４２】
１：磁気データ処理装置、３：携帯型電話機（移動体）、４：３次元磁気センサ、４４：ＲＡＭ（蓄積手段）、９０：磁気データ処理プログラム、９２：バッファ管理モジュール（蓄積開始手段、蓄積継続手段）、９４：オフセット導出モジュール（導出手段）
【図１】
0004761142.tif 000002
【図２】
0004761142.tif 000003
【図３】
0004761142.tif 000004
【図４】
0004761142.tif 000005
【図５】
0004761142.tif 000006
【図６】
0004761142.tif 000007