説明

磁気データ処理装置、方法及びプログラムならびに磁気測定装置

【課題】蓄積された磁気データ群からオフセットを正確に導出できる磁気データ処理装置、方法及びプログラム、並びに磁気測定装置を提供する。
【解決手段】磁気センサから出力される磁気データqを順次入力する入力手段(92)と、前記磁気データのオフセットを導出するために複数の前記磁気データを母集団データ群として蓄える蓄積手段(92)と、前記母集団データ群を構成する前記複数の磁気データのそれぞれを重み付けしたデータ群を母集団とする統計的手法により前記オフセットを導出する導出手段(94)と、を備える磁気データ処理装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は磁気データ処理装置、方法及びプログラムならびに磁気測定装置に関し、特に磁気センサのオフセットを補正する技術に関する。
【背景技術】
【0002】
従来、携帯型電話機、車両等の移動体に搭載され、地磁気の方向を検出する磁気センサが知られている。磁気センサの出力に基づいて地磁気の方向又は大きさを特定するとき、移動体の着磁による測定誤差を打ち消すために磁気センサの出力を補正する処理が必要である。この補正処理の操作値はオフセットと呼ばれている。オフセットは磁気センサが検出している移動体の着磁による磁力成分を表すベクトルデータであって、磁気センサの出力である磁気データからオフセットが引き算されることによって測定誤差が打ち消される。3次元磁気センサでは磁気データ群が分布する球面の中心を求めることによって、2次元磁気センサでは磁気データ群が分布する円の中心を求めることによって、オフセットを導出することができる。しかし、移動体の着磁に関わらず磁気センサの出力自体が誤差を含んでいるため、円または球面の中心として最も確からしい点が統計的手法によりオフセットとして導出される。
統計的手法によりオフセットを導出する方法としては、例えば、磁気データ群の分散共分散行列を用いて定義された目的関数を最小化する値を求めることによってオフセットを導出する方法が特許文献1に記載されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2007−327934号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
本願発明者は、真のオフセットから見て狭い角度範囲に母集団データ群の一部が集中して存在している場合、その一部に含まれる個々の磁気データと残部に含まれる個々の磁気データとを、統計的手法によりオフセットを導出するためのデータとしてそのまま用いるよりも、個々の磁気データの重みに軽重を付けて用いることによって、オフセットの導出精度が高まると推測し、シミュレーションを行った。その結果、母集団データ群を構成する個々の磁気データの重みを適切に設定すると、オフセットの導出精度が高まることが判明した。
【0005】
本発明は、蓄積された磁気データ群からオフセットを正確に導出できる磁気データ処理装置、方法及びプログラム、並びに磁気測定装置を提供することを目的とする。
【課題を解決するための手段】
【0006】
(1)上記目的を達成するための磁気データ処理装置は、磁気センサから出力される磁気データqを順次入力する入力手段と、前記磁気データのオフセットを導出するために複数の前記磁気データを母集団データ群として蓄える蓄積手段と、前記母集団データ群を構成する前記複数の磁気データのそれぞれを重み付けしたデータ群を母集団とする統計的手法により前記オフセットを導出する導出手段と、を備える。
本発明によると、母集団データ群を構成する複数の磁気データのそれぞれを重み付けしたデータ群を母集団とする統計的手法によりオフセットを導出するため、オフセットを正確に導出できる。
【0007】
(2)上記目的を達成するための磁気データ処理装置において、前記導出手段は、前記母集団データ群を構成する前記複数の磁気データの重みw(w=w,…,w)を前記母集団データ群に基づいて導出してもよい。
磁気データの重みを母集団データ群に基づいて導出することにより、母集団データ群の分布に対して最適化された重みを導出することができる。
【0008】
(3)分散共分散行列の最小固有値が大きくなるほど偏りのない分布になるため、統計的手法の母集団となる分散共分散行列Aの最小固有値が大きくなるように重みw(w,…,w)を設定するとよい。一方、重みwが少数の磁気データについて過大になり、多数の磁気データについて過小になると、磁気データに含まれる誤差が互いに打ち消し合う効果が小さくなる。従って、分散共分散行列Aの最小固有値を大きくしつつ、かつ、重みwの偏りが小さくなるように重みwを導出することが望ましい。
そこで上記目的を達成するための磁気データ処理装置において、前記導出手段は、
【数1】

Aの最小固有値をλとするとき、
次の目的関数g(w)を制約条件(1)かつ(2)のもとで最大化する重みwを導出してもよい。
【数2】

【0009】
尚、本発明に備わる複数の手段の各機能は、構成自体で機能が特定されるハードウェア資源、プログラムにより機能が特定されるハードウェア資源、又はそれらの組み合わせにより実現される。また、これら複数の手段の各機能は、各々が物理的に互いに独立したハードウェア資源で実現されるものに限定されない。また、本発明は装置の発明として特定できるだけでなく、プログラムの発明としても、そのプログラムを記録した記録媒体の発明としても、方法の発明としても特定することができる。また、請求項に記載された方法の各動作の順序は、技術上の阻害要因がない限り、記載順に限定されるものではなく、どのような順番で実行されてもよく、また同時に実行されてもよい。
【図面の簡単な説明】
【0010】
【図1】本発明の実施形態に係るフローチャート。
【図2】本発明の実施形態に係る模式図。
【図3】本発明の実施形態に係るブロック図。
【図4】本発明の実施形態に係るブロック図。
【図5】本発明の実施形態に係る模式図。
【図6】本発明の実施形態に係るグラフ。
【発明を実施するための形態】
【0011】
以下、本発明の実施の形態を図面を参照しながら説明する。
1.ハードウェア構成
図2は、本発明が適用される移動体の一例である携帯型電話機3の外観を示す模式図である。携帯型電話機3には3次元磁気センサ4が搭載されている。3次元磁気センサは互いに直交するx、y、zの3方向について磁界の強さを検出することによって地磁気の方向及び強さを検出する。携帯型電話機3のディスプレイ2には、文字や画像の各種情報が表示される。例えば、ディスプレイ2には、地図と、方位を示す矢印や文字が表示される。
【0012】
図3は、3次元磁気センサ4と磁気データ処理装置1とを備える磁気測定装置を示すブロック図である。3次元磁気センサ4は、地磁気による磁界ベクトルのx方向成分、y方向成分、z方向成分をそれぞれ検出するx軸センサ30とy軸センサ32とz軸センサ34とを備えている。x軸センサ30、y軸センサ32、z軸センサ34は、いずれも磁気抵抗素子、ホール素子等で構成され、指向性のある1次元磁気センサであればどのようなものであってもよい。x軸センサ30、y軸センサ32及びz軸センサ34は、それぞれの感度方向が互いに直交するように固定されている。x軸センサ30、y軸センサ32及びz軸センサ34の出力は、時分割して磁気センサI/F(Inter Face)22に入力される。磁気センサI/F22では、x軸センサ30、y軸センサ32及びz軸センサ34からの入力が増幅された後にAD変換される。磁気センサI/F22から出力されるディジタルの磁気データは、バス5を介して磁気データ処理装置1に入力される。
【0013】
磁気データ処理装置1は、CPU40とROM42とRAM44とを備えている所謂コンピュータである。CPU40は、例えば携帯型電話機3の全体制御を司るプロセッサである。ROM42は、CPU40によって実行される磁気データ処理プログラムや、移動体の機能を実現するための種々のプログラム、例えばナビゲーションプログラムが格納されている、不揮発性の記憶媒体である。RAM44はCPU40の処理対象となるデータを一時的に保持する揮発性の記憶媒体である。尚、磁気データ処理装置1と3次元磁気センサ4とを1チップの磁気測定装置として構成することもできる。
【0014】
2.ソフトウェア構成
図4は、磁気データ処理プログラム90の構成を示すブロック図である。磁気データ処理プログラム90は、ナビゲーションプログラム98に方位データを提供するためのプログラムであって、ROM42に格納されている。方位データは地磁気の方向を示す2次元ベクトルデータである。尚、方位データは例えば移動体の姿勢認識のための3次元ベクトルデータとして他のアプリケーションプログラムに提供されてもよい。磁気データ処理プログラム90は、バッファ管理モジュール92、オフセット導出モジュール94、方位導出モジュール96等のモジュール群で構成されている。
【0015】
バッファ管理モジュール92は、磁気センサ4から順次出力される磁気データを入力し、入力した磁気データをオフセット更新に用いるためにバッファに蓄積するプログラム部品であって、CPU40、RAM44及びROM42を入力手段及び蓄積手段として機能させる。尚、このバッファはハードウェアで構成されてもよいし、ソフトウェアで構成されてもよい。このバッファに蓄積される磁気データ群を母集団データ群というものとする。
【0016】
オフセット導出モジュール94は、バッファ管理モジュール92によって保持されている母集団データ群に基づいて新オフセットを導出し、旧オフセットを新オフセットに更新するプログラム部品であって、CPU40、RAM44及びROM42をオフセット導出手段として機能させる。尚、旧オフセットが新オフセットに更新された時点でその新オフセットは旧オフセットになるため、誤解のない文脈では旧オフセットのことを単にオフセットというものとする。実際には、方位データの補正に用いられるオフセットは1つの変数に設定され、新オフセットはその変数とは別の変数として導出され、導出された時点で方位データの補正に用いられる変数に設定されるので、方位データの補正に用いられる変数は旧オフセットが格納される変数である。
【0017】
方位導出モジュール96は、磁気センサ4から順次出力される磁気データをオフセット導出モジュール94が保持しているオフセットによって補正して方位データを生成するプログラム部品であって、CPU40、RAM44及びROM42を方位導出手段として機能させる。具体的には、方位導出モジュール96は、3次元ベクトルデータである磁気データの各成分からオフセットの各成分を引き算して得られる3成分のうちの2成分又は3成分全部を方位データとして出力する。
【0018】
ナビゲーションプログラム98は、目的地までの誘導経路を探索し、地図上に誘導経路を表示する周知のプログラムである。地図の認識のし易さから、地図は現実の方位に地図上の方位が一致するように画面表示される。したがって例えば、携帯型電話機3が回転すると、ディスプレイ2に表示される地図は地面に対して回転しないようにディスプレイ2に対して回転する。このような地図の表示処理に方位データが用いられる。もちろん、方位データは、単に東西南北を文字や矢印で表示するためにのみ用いられてもよい。
【0019】
3.磁気データ処理方法
図1は、新オフセットを導出する処理の流れを示すフローチャートである。図1に示す処理は、オフセットの更新要求が発生したときにCPU40がオフセット導出モジュール94を実行することによって進行する。
【0020】
3−1.バッファ更新
ステップS100では、新オフセットの導出に用いられる磁気データ群(母集団データ群)を蓄積するためのバッファに蓄積されている全ての磁気データが消去される。すなわちこのとき、旧オフセットの導出に用いられた母集団データ群が消去される。
ステップS102では、新オフセットの導出に用いられる磁気データが入力されバッファへ格納される。携帯型電話機3の姿勢がほとんど変化していない状況において、短い時間間隔で順次磁気センサ4から磁気データを入力すると、連続入力される2つの磁気データ間の距離が近くなる。距離が互いに近い複数の磁気データが限られた容量のバッファに格納されることは、メモリ資源の浪費であるし、無駄なバッファの更新処理を発生させる。また、互いの距離が近い磁気データ群に基づいて新オフセットを導出すると、偏った分布を持つ母集団データ群に基づいて精度の低い新オフセットが導出される可能性がある。そこで、バッファの更新必要性が次のように判定されてもよい。例えば、直前にバッファに格納された磁気データと最後に入力された磁気データとの距離があるしきい値より小さければ、バッファの更新必要性がないと判定され、最後に入力された磁気データはバッファに格納されることなく破棄される。
【0021】
ステップS104では、精度よく新オフセットを導出するために十分な規定個数の磁気データがバッファに蓄積されたかが判定される。すなわち、母集団データ群の要素数は予め決められている。予め決める母集団データ群の要素数を少なく設定することにより、オフセットの更新要求に対するレスポンスが向上する。規定個数の磁気データがバッファに蓄積されるまで、ステップS102とステップS104の処理が繰り返される。このように蓄積されるn個の磁気データからなる母集団データ群を次式(1)で表すものとする。
qi=(qix,qiy,qiz) (i=1,…,n)・・・(1)
【0022】
3−2.重みの導出
ステップS105では、母集団データ群に基づいて磁気データの重みw(w=w,…,w)が導出される。ここで、
【数3】

とすると、重み付けされた磁気データ群の分散共分散行列Aは、次式(3)として表される。
【数4】

ただし、
【数5】

である。
【0023】
行列Aの固有値を大きい順にλ1、λ2、λ3とするとき、wは次の目的関数g(w)を制約条件(7)のもとで最大化する値として導出される。
【数6】

【0024】
行列Aの固有値λ1、λ2、λ3はいずれも0以上であるため、行列Aは半正定値である。Dinkelbachが考案した1分数関数の求解アルゴリズムを応用すると、目的関数g(w)を制約条件(7)のもとで最大化する最適化問題の解は、半正定値問題(SemiDefinite Programming problem:SDP)を有限回反復して解いて最終的に得られた解と一致する。それらの半正定値問題は主双対内点法などを用いて解くことができるので、目的とするwを導出することができる。
【0025】
3−3.数理計画問題によるオフセットの導出
ここでオフセットを導出するための数理計画問題について説明する。
母集団データ群が同一平面上にない4つの磁気データで構成されている場合、母集団データ群が分布する球面は統計的手法を用いることなく一意に特定される。この球面の中心の位置ベクトルc=(cx、cy、cz)は連立方程式(8)を解くことによって得られる。尚、3変数に対して等号制約が4つあるが、等号制約の1つは冗長になっているため方程式(8)は必ず解を持つ。
【数7】

ただし、
【数8】

【0026】
母集団データ群の要素数が5個以上あるときについて、jを次式(10)で定義する。
【数9】

【0027】
このとき、cについての連立一次方程式(11)が解を持てば、その解は、母集団データ群が分布する球面の中心である。
【数10】

【0028】
しかし、3次元磁気センサ4の測定誤差を考慮すると、現実には、方程式(11)が解を持つことはまれである。そこで、磁気データ群が真のオフセットから見て等角度間隔に分布していると仮定し、統計的な手法により尤も確からしい球面の中心を得るために、次式(12)で定義されるベクトルeを導入する。
【数11】

【0029】
||e||22(すなわちeTe)を最小にするcが、真のオフセットから見て等角度間隔に分布している母集団データ群が最も近くに分布する球面の中心として尤もらしいといえる。||e||22を最小にするcを求める問題は、行列Aが正則のときには次式(13)の目的関数を最小にする最適化問題となる。
【数12】

【0030】
しかし、母集団データ群の一部が真のオフセットから見て狭い角度範囲に集中することもあるため、母集団データ群を構成するそれぞれの磁気データをwで重み付けしたデータ群を母集団として最適化問題を解く方がより正確なオフセットを導出できる。
【0031】
そこでステップS106では、式(14)の目的関数f(c)を最小化するcをオフセットとして導出する。
【数13】

WXが正則のとき、目的関数f(c)を最小化するcは次式(15)となる。
【数14】

ここで、
【数15】

とすると、
【数16】

と書くこともできる。
【0032】
4.重み付けの効果
シミュレーションにより重み付けの効果を測定するため、磁気データに対応する測定点を次のように設定する。円の半径をa=100、測定点の分布する範囲をθ=120°としてn個の測定点、
q'=(x'、y') (i=1,…,n)
を次式(21)、(22)により設定する。
【数17】

【0033】
図5はこのように設定した測定点の分布を示している。図5に示すように真のオフセットからみた狭い角度範囲の一カ所に母集団データ群の一部が集中しているとき、それぞれの磁気データを重み付けせずに式(13)の最適化問題を解いてオフセットを導出した場合、オフセット誤差は図6の破線で示すように、母集団データ群の個数の増加に応じて減少した後に上昇に転ずる。一方、母集団データ群からwを導出し、母集団データ群を構成する複数の磁気データを重みwで重み付けしたデータ群を母集団として式(14)の最適化問題を解いてオフセットを導出した場合、オフセット誤差は図6の実線で示すように、母集団データ群の個数の増加に応じて減少した後にほぼ一定となる。また、母集団データ群の一部が複数カ所に集中しているときであっても、オフセット誤差が減少するシミュレーション結果が得られた。
【0034】
以上説明した本発明の実施形態によると、磁気データ群を重み付けしたデータ群を母集団とする統計的手法によってオフセットを導出するため、真のオフセットからみた狭い角度範囲に母集団データ群の一部が一カ所以上に集中しているときであっても、正確なオフセットを導出することができる。そして、母集団データ群に基づいて重みwを導出するため、母集団データ群の分布に対して最適化された重みを導出することができる。さらに、真のオフセットからみた狭い角度範囲に母集団データ群の一部が集中しているとしても、重みの差を過剰に大きくしないため、各磁気データの誤差が相互に打ち消されることによって、正確なオフセットを導出することができる。また、母集団データ群の集中が起こらなければ、磁気データの重みが均等になるため、各磁気データの誤差が相互に打ち消されることによって、正確なオフセットを導出することができる。そして、磁気センサが通常用いられる状況では、等角速度運動中に母集団データ群を蓄積できることはむしろ少なく、真のオフセットからみた狭い角度範囲に母集団データ群の一部が一カ所以上に集中することが多い。
【0035】
また磁気データから連続して出力される2つの磁気データの距離が近い場合に一方を母集団データ群に追加しない場合であっても、互いの距離が近い複数の磁気データが母集団データ群として蓄積されることを完全には防止できない。しかし上述した実施形態によると、このような場合であっても正確にオフセットを導出できる。
【0036】
5.他の実施形態
本発明は、上記実施形態に限定されるものではなく、その要旨を逸脱しない範囲で種々の形態で実施可能である。例えば、各磁気データの重みは、距離が最も近い磁気データとの距離に応じて設定したり、球面または円を複数の領域に分割し、各領域に属する磁気データの個数に応じて設定しても良い。また、本発明がPDAに搭載される磁気センサや車両に搭載される磁気センサにも適用できることは当然である。また本発明は3次元磁気センサのみならず、2次元磁気センサにも当然に適用できる。
【符号の説明】
【0037】
1:磁気データ処理装置、3:携帯型電話機(移動体)、4:3次元磁気センサ、90:磁気データ処理プログラム、92:バッファ管理モジュール(入力手段、蓄積手段)、94:オフセット導出モジュール(オフセット導出手段)

【特許請求の範囲】
【請求項1】
磁気センサから出力される磁気データqを順次入力する入力手段と、
前記磁気データのオフセットを導出するために複数の前記磁気データを母集団データ群として蓄える蓄積手段と、
前記母集団データ群を構成する前記複数の磁気データのそれぞれを重み付けしたデータ群を母集団とする統計的手法により前記オフセットを導出する導出手段と、
を備える磁気データ処理装置。
【請求項2】
前記導出手段は、前記母集団データ群を構成する前記複数の磁気データの重みw(w=w,…,w)を前記母集団データ群に基づいて導出する、
請求項1に記載のデータ処理装置。
【請求項3】
前記導出手段は、
【数18】

Aの最小固有値をλとするとき、
次の目的関数g(w)を制約条件(1)かつ(2)のもとで最大化する重みwを導出する、
【数19】

請求項2に記載の磁気データ処理装置。
【請求項4】
磁気センサから出力される磁気データqを順次入力し、
前記磁気データのオフセットを導出するために複数の前記磁気データを母集団データ群として蓄え、
前記母集団データ群を構成する前記複数の磁気データのそれぞれを重み付けしたデータ群を母集団とする統計的手法により前記オフセットを導出する、
ことを含む磁気データ処理方法。
【請求項5】
磁気センサから出力される磁気データqを順次入力する入力手段と、
前記磁気データのオフセットを導出するために複数の前記磁気データを母集団データ群として蓄える蓄積手段と、
前記母集団データ群を構成する前記複数の磁気データのそれぞれを重み付けしたデータ群を母集団とする統計的手法により前記オフセットを導出する導出手段と、
としてコンピュータを機能させる磁気データ処理プログラム。
【請求項6】
磁気センサと、
磁気センサから出力される磁気データqを順次入力する入力手段と、
前記磁気データのオフセットを導出するために複数の前記磁気データを母集団データ群として蓄える蓄積手段と、
前記母集団データ群を構成する前記複数の磁気データのそれぞれを重み付けしたデータ群を母集団とする統計的手法により前記オフセットを導出する導出手段と、
を備える磁気測定装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2011−180097(P2011−180097A)
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【出願番号】特願2010−47285(P2010−47285)
【出願日】平成22年3月4日(2010.3.4)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】