(57)【要約】【課題】ユーザに大きな負担を課すことなく、方位球の中心点を精度よく算出できる磁気データ処理装置を提供する。【解決手段】磁気データ処理装置１は、３軸磁気センサ２を使って、磁気ベクトルＭ（地磁気）の複数の検出値を取得する。この複数の検出値からなる検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものと判断した場合に、上記回転の回転軸Ａを算出する。そして、異なる複数の姿勢変化期間に取得した検出値群ｄを使って、複数の回転軸Ａを算出する。得られた複数の回転軸Ａの交点もしくは近似交点を、方位球ｓの中心点Ｏ’として算出する。【選択図】図１
2014002089.tif 000002
【特許請求の範囲】
【請求項１】
携帯機器に固定された３軸直交座標系における磁気ベクトルとして地磁気を検出する３軸磁気センサを備え、上記携帯機器の姿勢変化に伴って上記磁気ベクトルが描く方位球の中心点を算出することにより、上記携帯機器の内部磁界による上記３軸磁気センサへの影響を補正する磁気データ処理装置であって、
上記携帯機器の姿勢が変化している姿勢変化期間に得られる、上記磁気ベクトルの複数の検出値を記憶するメモリと、
一つの上記姿勢変化期間における上記磁気ベクトルの複数の検出値からなる検出値群が、上記携帯機器の姿勢を一軸周りに回転させている間に得られたものか否かを判断する回転運動判断手段と、
該回転運動判断手段により、上記検出値群が、上記携帯機器の姿勢を一軸周りに回転させている間に得られたものであると判断された場合に、その回転の回転軸を算出する回転軸算出手段と、
異なる複数の上記姿勢変化期間に取得した上記検出値群から、それぞれ、上記回転運動判断手段及び上記回転軸算出手段によって求めた複数の上記回転軸の交点もしくは近似交点を、上記方位球の中心点として算出する中心点算出手段と、
上記３軸直交座標系の原点と上記方位球の中心点とのずれであるオフセットを補正するオフセット補正手段と、
を備えることを特徴とする磁気データ処理装置。
【請求項２】
請求項１に記載の磁気データ処理装置において、上記回転運動判断手段は、一つの上記検出値群に含まれる複数の上記検出値が、円の周上又はその近傍に集まるか否かを判断することにより、上記検出値群が、上記携帯機器の姿勢を一軸周りに回転させている間に得られたものか否かを判断することを特徴とする磁気データ処理装置。
【請求項３】
請求項２に記載の磁気データ処理装置において、上記回転運動判断手段は、一つの上記検出値群に含まれる個々の上記検出値から、最小二乗法により上記円の方程式を算出し、上記複数の検出値が、算出した上記円の周上またはその近傍に集まっているか否かを判断することを特徴とする磁気データ処理装置。
【請求項４】
請求項２又は３に記載の磁気データ処理装置において、上記回転運動判断手段は、上記円を含む平面から個々の上記検出値までの距離のばらつきが所定値以下であり、かつ、上記円の中心から個々の上記検出値までの距離のばらつきが所定値以下である場合に、上記検出値群が、上記携帯機器を一軸周りに回転させている間に得られたものであると判断することを特徴とする磁気データ処理装置。
【請求項５】
請求項２〜請求項４のいずれか１項に記載の磁気データ処理装置において、上記回転軸算出手段は、上記円の半径が所定値以下の場合にのみ、上記回転軸を算出するよう構成されていることを特徴とする磁気データ処理装置。
【請求項６】
請求項２〜請求項５のいずれか１項に記載の磁気データ処理装置において、上記回転軸算出手段は、一つの上記姿勢変化期間における上記携帯機器の姿勢の回転角度が、所定値以上の場合にのみ、上記回転軸を算出するよう構成されていることを特徴とする磁気データ処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３軸磁気センサを備えた磁気データ処理装置に関する。
【背景技術】
【０００２】
従来から、携帯電話等の携帯機器に搭載した３軸磁気センサを用いて地磁気ベクトルを検出し、その検出値を使って、携帯機器の向く方位や、携帯機器の姿勢を算出する磁気データ処理装置が知られている。
【０００３】
携帯機器は、３軸磁気センサの他にも様々な電子部品を搭載している。そのため、これらの電子部品から発生した磁界（内部磁界）によって３軸磁気センサが影響を受け、地磁気ベクトルを正確に測定できないことがある。この問題を解決するため、内部磁界による影響を補正して、地磁気ベクトルを正確に測定できるようにし、その結果を利用した方位角計測装置や電子コンパスが知られている（下記特許文献１、２参照）。
【０００４】
内部磁界の影響を補正するためには、図１４に示すごとく、携帯機器の姿勢変化に伴って地磁気ベクトルＭが描く方位球ｓの中心点Ｏ’を算出する。そして、３軸磁気センサの原点Ｏと、方位球ｓの中心点Ｏ’とのずれ（オフセット）を補正する。すなわち、検出した磁気ベクトルＯＭと、補正ベクトルＯＯ’とを用いて、下記の式から、中心点Ｏ’を始点とするベクトルＯ’Ｍを算出する。
Ｏ’Ｍ＝ＯＭ−ＯＯ’        ・・・（１）
【０００５】
中心点Ｏ’を算出する方法としては、例えば、特許文献２に記載されているように、図１４に示すごとく、地磁気ベクトルＭの検出値を複数個、取得し、例えば最小二乗法により、各々の検出値からの距離のばらつきが最も小さくなる点を算出する。この点が図１４における中心点Ｏ’となる。
【０００６】
このように中心点Ｏ’を算出する場合、地磁気ベクトルＭの複数の検出値が方位球ｓ上において偏っていないことが望ましい。検出値が偏っていると、方位球ｓを正確に算出できなくなり、中心点Ｏ’の算出精度が低下しやすくなる。したがって、この方法により中心点Ｏ’の算出精度を向上するためには、ユーザに携帯機器を様々な方位に向けさせ、地磁気ベクトルＭの検出値を方位球ｓ上において万遍なく取得する必要がある。
【０００７】
また、別の中心点Ｏ’を算出する方法として、下記特許文献１には、得られた検出値の中から方位球ｓ上で予め定めた条件を満足する互いにできるだけ離れた４点を選択し、その４点から中心点Ｏ’を算出する方法が開示されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００８−２４１６７５号公報
【特許文献２】特開２００５−１９５３７６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかしながら特許文献２のような、得られた複数の検出値群から統計的に中心点Ｏ’を算出する方法では、算出精度を向上しようとすると、ユーザに、携帯機器を様々な方向に向けさせる必要があり、算出精度向上のため操作を強制させると、ユーザの負担が大きくなるという問題がある。
【００１０】
その一方で、ユーザの負担を小さくするために、ユーザが携帯機器を自然に使用している間に、地磁気ベクトルＭの検出値を複数個取得し、これを使って中心点Ｏ’を求める方法も考えられる。しかしながら、この場合、ユーザは携帯機器を意識的に様々な方角に向けるわけではないので、検出値が方位球ｓ上において偏りやすくなる。そのため、中心点Ｏ’の算出精度が低下しやすくなるという問題がある。さらに、特許文献２では、偏った検出値しか得られていないような、算出精度を充分に確保できない場合は、求めた基準点を破棄するとしており、破棄して精度の良い基準点が求められるわけではなく、問題の解決になっていない。
【００１１】
また、特許文献１のような、所定の条件を満足する互いにできるだけ離れた検出値を選択して、中心点Ｏ’を求める方法では、ユーザに操作を強制することなく、得られた検出値の中から、精度良くオフセット算出できる検出値を選択することができるが、所定の条件を満足する検出値が得られるまで時間がかかる可能性があるという問題がある。
【００１２】
本発明は、かかる背景に鑑みてなされたもので、ユーザに回転操作を強制させず、仮に検出値が偏った値でしか得られていない場合であっても、方位球の中心点を精度よく算出できる磁気データ処理装置を提供しようとするものである。
【課題を解決するための手段】
【００１３】
本発明の一態様は、携帯機器に固定された３軸直交座標系における磁気ベクトルとして地磁気を検出する３軸磁気センサを備え、上記携帯機器の姿勢変化に伴って上記磁気ベクトルが描く方位球の中心点を算出することにより、上記携帯機器の内部磁界による上記３軸磁気センサへの影響を補正する磁気データ処理装置であって、
上記携帯機器の姿勢が変化している姿勢変化期間に得られる、上記磁気ベクトルの複数の検出値を記憶するメモリと、
一つの上記姿勢変化期間における上記磁気ベクトルの複数の検出値からなる検出値群が、上記携帯機器の姿勢を一軸周りに回転させている間に得られたものか否かを判断する回転運動判断手段と、
該回転運動判断手段により、上記検出値群が、上記携帯機器の姿勢を一軸周りに回転させている間に得られたものであると判断された場合に、その回転の回転軸を算出する回転軸算出手段と、
異なる複数の上記姿勢変化期間に取得した上記検出値群から、それぞれ、上記回転運動判断手段及び上記回転軸算出手段によって求めた複数の上記回転軸の交点もしくは近似交点を、上記方位球の中心点として算出する中心点算出手段と、
上記３軸直交座標系の原点と上記方位球の中心点とのずれであるオフセットを補正するオフセット補正手段と、
を備えることを特徴とする磁気データ処理装置にある（請求項１）。
【発明の効果】
【００１４】
上記磁気データ処理装置においては、上記検出値群を用いて、携帯機器の上記回転軸を算出する。そして、この回転軸を使って、方位球の中心点を算出する。
このようにすると、ユーザの負担を低減しやすくなる。すなわち、発明者らの研究によると、ユーザが携帯機器を自然に使用する場合、例えば、携帯機器をポケットに入れた状態で歩きながら向きを変えたり、携帯機器をポケットから取り出したり、画面を見やすい位置に持ってきたりする場合等には、その動作は、携帯機器の姿勢を一軸周りに回転する動作になることが多い。勿論、回転を強制させるわけではないので、１８０°以上の回転動作になることは稀であるが、９０°程度の回転動作になることは十分に期待できる。したがって、複数の検出値群を用いて上記回転軸を複数算出し、これらの複数の回転軸の交点もしくは近似交点を求めることにより、方位球の中心点を算出すれば、得られている検出値が方位球全体から見ると偏っていて、従来の方法では精度良くオフセットを求められないような場合であっても、ユーザに強制的な回転操作をさせることなく、精度良くオフセットを算出することが可能となる。
【００１５】
また、本例の磁気データ検出装置は、検出値群が、携帯機器の姿勢を一軸周りに回転させている間に得られたものであるか否かを判断する回転運動判断手段を備える。
このようにすると、検出値群が、携帯機器の姿勢を一軸周りに回転させている間に得られたものであると判断された場合のみ、その検出値群を方位球の中心点の算出に用いることができる。そのため、方位球の中心点を、精度よく算出することが可能になる。
【００１６】
また、本例では、複数の上記回転軸を算出し、この複数の回転軸から２本の回転軸の組み合わせを選択し、その交点もしくは近似交点を、方位球の中心点として算出する。
選択した２本の回転軸が交差する場合は、その交点が、方位球の中心点となる。また、算出した回転軸には誤差が含まれているため、２本の回転軸が互いに交差しない場合があるが、この場合でも、２本の回転軸の近似交点を方位球の中心点として算出すれば、中心点を確実に算出することが可能になる。ここで近似交点とは、例えば、２本の回転軸が互いに最も近づいた箇所の中点とすることができる。
【００１７】
以上のごとく、本例によれば、ユーザに回転操作を強制させなくても、方位球の中心点を精度よく算出できる磁気データ処理装置を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】実施例１における、磁気データ処理装置の概念図。
【図２】実施例１における、携帯機器の斜視図。
【図３】実施例１における、磁気データ処理装置のブロック図。
【図４】実施例１における、磁気ベクトルの検出値と、円と、方位球の概念図。
【図５】図４の部分拡大図。
【図６】実施例１における、円を含む平面に平行な方向から見た、磁気ベクトルの検出値。
【図７】実施例１における、円の中心から磁気ベクトルの各検出値までの距離を表した図。
【図８】実施例１における、一つの姿勢変化期間における、携帯機器の姿勢の回転角度θを表した図。
【図９】実施例１における、方位球の中心点を用いて、磁気ベクトルの検出値を補正する方法の説明図。
【図１０】実施例１における、方位球の中心点を算出する際のフローチャート。
【図１１】図１０に続く図。
【図１２】図１１に続く図。
【図１３】図１２に続く図。
【図１４】従来例における、方位球の中心点を測定する方法の説明図。
【発明を実施するための形態】
【００１９】
上記磁気データ処理装置は、例えば、磁気ベクトルの検出値を使って携帯機器の向く方位を算出する電子コンパスや、携帯機器の回転角速度を算出する磁気ジャイロ、携帯機器の向く方位を地図情報と共に表示するナビゲーション装置等、地磁気ベクトルをオフセットにより補正した値を利用する全ての機器に対し、用いることができる。
【００２０】
上記磁気データ処理装置において、上記回転運動判断手段は、一つの上記検出値群に含まれる複数の上記検出値が、円の周上又はその近傍に集まるか否かを判断することにより、上記検出値群が、上記携帯機器の姿勢を一軸周りに回転させている間に得られたものか否かを判断することが好ましい（請求項２）。
この場合には、上記検出値群が、上記携帯機器の姿勢を一軸周りに回転させている間に得られたものか否かを容易に判断することができる。すなわち、携帯機器の姿勢を一軸周りに回転させると、磁気ベクトルは方位球上に円を描く。そのため、検出値群が円周上またはその近傍に集まっているか否かを判断することにより、検出値群が、上記携帯機器の姿勢を一軸周りに回転させている間に取得されたものか否かを容易に判断することができる。
【００２１】
また、上記回転運動判断手段は、一つの上記検出値群に含まれる個々の上記検出値から、最小二乗法により上記円の方程式を算出し、上記複数の検出値が、算出した上記円の周上またはその近傍に集まっているか否かを判断することが好ましい（請求項３）。
この場合には、最小二乗法を用いるため、上記円を精度よく算出できる。そのため、上記検出値群が、上記携帯機器の姿勢を一軸周りに回転させている間に取得したものか否かを正確に判断することができる。また、上記円を含む平面に直交し上記円の中心を通る直線が、上記回転軸となるため、上記円を最小二乗法によって正確に求めることにより、回転軸を正確に算出できる。そのため、方位球の中心点を正確に算出できる。
【００２２】
また、上記回転運動判断手段は、上記円を含む平面から個々の上記検出値までの距離のばらつきが所定値以下であり、かつ、上記円の中心から個々の上記検出値までの距離のばらつきが所定値以下である場合に、上記検出値群が、上記携帯機器を一軸周りに回転させている間に得られたものであると判断することが好ましい（請求項４）。
この場合には、検出値群が、携帯機器の姿勢を一軸周りに回転させている間に得られたものか否かを、正確に判断することが可能になる。すなわち、検出値群が、携帯機器を一軸周りに回転させている間に得られたものである場合には、検出値群に含まれる個々の検出値は全て上記平面の近くに存在し、かつ上記円の近くに存在する。そのため、上記平面から個々の検出値までの距離のばらつきや、上記円の中心から個々の検出値までの距離のばらつきは小さくなる。また、検出値群が、携帯機器を一軸周りに回転させている間に得られたものでない場合は、検出値群に含まれる個々の検出値は平面や円の近くに存在しなくなり、上記ばらつきは大きくなる。そのため、上記ばらつきが所定値よりも大きいか否かを判断することにより、検出値群が、携帯機器を一軸周りに回転させている間に得られたものか否かを正確に判断することが可能となる。
なお、上記ばらつきは、例えば標準偏差σとすることができる。
【００２３】
また、上記回転軸算出手段は、上記円の半径が所定値以下の場合にのみ、上記回転軸を算出するよう構成されていることが好ましい（請求項５）。
この場合には、方位球の中心点を正確に求めることが可能になる。すなわち、上記円の半径が大きすぎる場合は、３軸磁気センサが外部磁場の影響を受けている可能性があり、方位球の中心点を正確に算出できないおそれがある。したがって、円の半径が所定値以下の場合にのみ回転軸を算出することにより、外部磁場の影響を排除し、方位球の中心点を正確に求めることが可能になる。所定値としては、例えば、携帯機器を用いる場所における地磁気の大きさに誤差相当分を加えた値とすることができる。
【００２４】
また、上記回転軸算出手段は、一つの上記姿勢変化期間における上記携帯機器の姿勢の回転角度が、所定値以上の場合にのみ、上記回転軸を算出するよう構成されていることが好ましい（請求項６）。
この場合には、方位球の中心点の算出精度を、より高めることができる。すなわち、上記回転角度が小さい場合は、円を正確に算出しにくくなり、ひいては回転軸を正確に算出しにくくなる。そのため、方位球の中心点の算出精度が低下しやすくなる。したがって、上記回転角度が所定値以上の場合にのみ、回転軸を算出するようにすれば、中心点の算出精度を高めることが可能になる。回転角度は、回転軸を算出可能な程度に大きければ良いので、ユーザーに回転操作を強制させる場合のような１８０°以上の回転は要求されず、所定値は例えば６０°とすることができる。
【実施例】
【００２５】
（実施例１）
上記磁気データ処理装置に係る実施例について、図１〜図１３を用いて説明する。図１に示すごとく、本例の磁気データ処理装置１は、３軸磁気センサ２と、メモリ３と、回転運動判断手段４と、回転軸算出手段５と、中心点算出手段６と、オフセット補正手段７とを備える。３軸磁気センサ２は、携帯機器１０（図２参照）に固定された３軸直交座標系における磁気ベクトルＭとして地磁気を検出する。磁気データ処理装置１は、携帯機器１０の姿勢変化に伴って磁気ベクトルＭが描く方位球ｓ（図４参照）の中心点Ｏ’を算出することにより、携帯機器１０の内部磁界による３軸磁気センサ２への影響を補正する。
【００２６】
メモリ３は、携帯機器１０の姿勢が変化している姿勢変化期間に得られる、磁気ベクトルＭの複数の検出値を記憶する。
回転運動判断手段４は、一つの姿勢変化期間における磁気ベクトルＭの複数の検出値からなる検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものか否かを判断する。
回転軸算出手段５は、回転運動判断手段４により、検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものであると判断された場合に、その回転の回転軸Ａ（図４参照）を算出する。
【００２７】
中心点算出手段６は、異なる複数の姿勢変化期間に取得した検出値群ｄから、それぞれ、回転運動判断手段４及び回転軸算出手段５によって求めた複数の回転軸Ａのうち２本の回転軸の組み合わせを選択し、その交点もしくは近似交点を、方位球ｓの中心点Ｏ’として算出する。
オフセット補正手段７は、３軸直交座標系の原点Ｏ（図４参照）と方位球ｓの中心点Ｏ’とのずれであるオフセットを補正する。
【００２８】
本例では、磁気データ処理装置１を電子コンパスとして用いている。図２に示すごとく、携帯機器１０には、３軸磁気センサ２の他に、マイコン８やマイクロフォン１２等の各種電子部品が搭載されている。これらの電子部品によって内部磁界が発生し、３軸磁気センサ２が影響を受ける。磁気データ処理装置１は、内部磁界による３軸磁気センサ２への影響を補正し、地磁気ベクトルＭの正確な値を求める。この値を使って、携帯機器１０の向く正確な方位を算出し、表示部１１に表示する。
【００２９】
図３に示すごとく、マイコン８は、ＣＰＵ８０、ＲＯＭ８１、ＲＡＭ（メモリ３）、Ｉ／Ｏ８２、これらを繋ぐライン８３を備える。ＲＯＭ８１にはプログラム８１ｐが記憶されている。ＣＰＵ８０がこのプログラム８１ｐを読み出して実行することにより、上記回転運動判断手段４、回転軸算出手段５、中心点算出手段６、オフセット補正手段７が実現される。
【００３０】
地磁気（磁気ベクトルＭ）は、地球上で大きく位置を変えない場合には、携帯機器１０の姿勢に関わらず常に向き、大きさ共に一定と考えて良いため、携帯機器１０の姿勢を変化させると、図４に示すごとく、地磁気ベクトルＭの終点は３軸直交座標系上に球（方位球ｓ）を描く。３軸磁気センサ２は携帯機器１０の内部磁界の影響を受けているため、方位球ｓの中心Ｏ’は、３軸磁気センサ２の原点Ｏからずれている。本例の磁気データ処理装置１は、この中心点Ｏ’を算出することにより、内部磁界による３軸磁気センサ２への影響を補正する。
【００３１】
３軸磁気センサ２は、携帯機器１０の姿勢が変化している間（姿勢変化期間）に、磁気ベクトルＭの複数の検出値（検出値群ｄ）を取得する。また、３軸磁気センサ２は、異なる姿勢変化期間に、複数の検出値群ｄを取得する。本例では、この複数の検出値群ｄを使って、方位球ｓの中心点Ｏ’を算出する。
【００３２】
中心点Ｏ’の算出方法を説明する。まず、図５に示すごとく、回転運動判断手段４を用いて、一つの検出値群ｄに含まれる個々の検出値から、最小二乗法を使って、円Ｃを算出する。すなわち、個々の検出値からの距離のばらつきが最も小さくなる中心点Ｂと半径を最小二乗法により求めると共に、円Ｃを含む平面から個々の上記検出値までの距離の２乗和が最小となるように円Ｃを算出する。そして、この円Ｃの周上またはその近傍に個々の検出値が集まるか否かを判断することにより、検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものか否かを判断する。
【００３３】
この判断は、次のように行う。まず図６に示すごとく、円Ｃを含む平面Ｐから個々の検出値までの距離ｘのばらつき（σ）が所定値以下であるか否かを判断する。ここで、距離ｘのばらつきが所定値を越える場合には、検出値群ｄは、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものでないと判断し、この検出値群ｄを用いた中心点Ｏ’の算出を中止する。そして、別の検出値群ｄを取得する。
また、距離ｘのばらつきが所定値以下である場合は、図７に示すごとく、円Ｃの中心Ｂから個々の検出値までの距離ｒのばらつき（σ）が所定値以下であるか否かを判断する。ここで、距離ｒのばらつきが所定値を越える場合は、検出値群ｄが、携帯機器１０を一軸周りに回転させている間に得られたものでないと判断し、この検出値群ｄを用いた中心点Ｏ’の算出を中止する。そして、別の検出値群ｄを取得する。
【００３４】
また、本例では、算出した円Ｃの半径Ｒが所定値以下であるか否かを確認する。半径Ｒが所定値よりも大きい場合は、３軸磁気センサ２が外部磁場の影響を受けている可能性がある。そのため、この場合には、この検出値群ｄを用いた中心点Ｏ’の算出を中止し、別の検出値群ｄを取得する。
外部磁場の影響を受けていない場合は、半径Ｒの最大値は、地磁気ベクトルの測定誤差を考えなければ、方位球ｓ（図４参照）の半径、すなわち地磁気ベクトルＭの大きさ｜Ｍ｜に等しい。地磁気ベクトルＭの大きさ｜Ｍ｜は、検出値群ｄを取得中に測定場所が大きく移動しない限り略一定であると考えて良いため、半径Ｒが｜Ｍ｜に測定誤差相当分を加えた値よりも大きい場合は、３軸磁気センサ２が外部磁場の影響を受けている可能性があると判断できる。なお、｜Ｍ｜は、地域により異なるため、本発明を適用する機器の使用予定地域に合わせて、適切な値を設定することが好ましい。
【００３５】
また、本例では図８に示すごとく、一つの姿勢変化期間における、携帯機器１０の姿勢の回転角度θを算出し、この回転角度θが所定値以上であるか否かを判断する。携帯機器１０の姿勢が充分に回転しておらず、回転角度θが小さい場合は、円Ｃを正確に算出できず、中心点Ｏ’の算出精度が低くなる可能性がある。そのため、この場合には、この検出値群ｄを用いた中心点Ｏ’の算出を終了し、別の検出値群ｄを取得する。
【００３６】
なお、回転角度θは、ユーザに強制的に回転操作をさせないことが前提の本発明の場合、１８０°以下となることがほとんどであるため、最後に得られた磁気ベクトルＭ（ｎ）の終点は、最初に得られた磁気ベクトルＭ（１）の終点から最も遠いと考えて良く、所定値よりも大きいか否かの判断は、次のように簡略化することもできる。例えば、検出値群ｄに含まれる複数の検出値のうち、最初に得られた磁気ベクトルＭ（１）の終点から、最後に得られた磁気ベクトルＭ（ｎ）の終点までの距離ｈを算出する。そして、距離ｈを円Ｃの半径Ｒで割った値ｈ／Ｒが、所定値よりも大きいか否かを判断する。
また、円Ｃが方位球ｓの中心点Ｏ’から大きく離れている場合には、その半径Ｒが小さくなり、回転角度θが同じ値であっても回転軸Ａの算出精度が低下することから、前記の距離ｈが｜Ｍ（ｎ）−Ｍ（１）｜≧ｈを満足するかどうかをチェックし、円Ｃの半径Ｒが小さいことによる算出精度低下を防止することもできる。
【００３７】
以上説明した処理を行うことにより、回転運動判断手段４によって、検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転している間に得られたものであり、かつ、３軸磁気センサ２が外部磁場の影響を受けておらず、かつ、上記回転角度θが回転軸Ａを精度良く算出可能な程度に充分大きいことを確認できる。そして、この確認を終了した後、図４に示すごとく、円Ｃを含む平面Ｐに直交し円Ｃの中心を通る直線を算出する。この直線が、携帯機器１０の回転運動の回転軸Ａである。
【００３８】
そして、異なる複数の姿勢変化期間に複数の検出値群ｄ（ｄ１，ｄ２，・・・）を取得し、個々の検出値群ｄを使って複数の回転軸Ａ（Ａ１，Ａ２，・・・）を算出する。この複数の回転軸Ａの中から２本の回転軸の組み合わせを選択し、その交点または近似交点を、方位球ｓの中心点Ｏ’として算出する。
【００３９】
図９に示すごとく、中心点Ｏ’を算出した後、３軸直交座標系の原点Ｏと、中心点Ｏ’とのずれを補正する。すなわち、３軸磁気センサ２によって検出した磁気ベクトルＯＭと、補正ベクトルＯＯ’から、以下の式を用いて、中心点Ｏ’を始点とするベクトルＯ’Ｍを算出する。
Ｏ’Ｍ＝ＯＭ−ＯＯ’        ・・・（２）
そして、補正後のベクトルＯ’Ｍを用いて、携帯機器１０の向く正確な方位を算出し、表示部１１（図２参照）に表示する。
【００４０】
次に、図１０〜図１３を用いて、磁気データ処理装置１のフローチャートの説明をする。本例では図１０に示すごとく、まず、３軸磁気センサ２による、磁気ベクトルＭ（ｎ）の検出値を取得する（ステップＳ１）。そして、ステップＳ２において、最初に記憶する検出値か、又は｜Ｍ（ｎ）−Ｍ（ｎ−１）｜＞ａを満足するか否かを判断する。ここでＭ（ｎ−１）とは、Ｍ（ｎ）の検出値を取得した時点において、後述のステップＳ３で最後に記憶した地磁気ベクトルの検出値であって、必ずしも１ステップ前における検出値とは限らない。また、ａは所定の定数である。ステップＳ２は、新たに検出した磁気ベクトルＭ（ｎ）の終点が、直前に後述のステップＳ３で記憶した磁気ベクトルＭ（ｎ−１）の終点に近すぎる場合には記憶せず、円Ｃを求めるために新たに記憶する必要があると判断できる程度に離れている場合にのみ記憶するために設けてある。ほとんど終点が同じ位置となる検出値を多数記憶しても、後の計算に役立たないためである。ステップＳ２においてＹｅｓと判断された場合はステップＳ３に移り、地磁気ベクトルＭ（ｎ）の検出値と検出時刻を記憶する。その後、ステップＳ１に戻る。また、ステップＳ２においてＮｏと判断された場合は磁気ベクトルＭ（ｎ）を記憶せず、回転が終了しているかどうかを判定するためのステップＳ４に移る。
【００４１】
ステップＳ４では、ステップＳ３で最後に記憶した検出値の検出時刻と最新の検出時刻との差が所定値以上かどうかを判断し、所定値以上であった場合は、ステップＳ５に移って、検出中の姿勢変化期間における姿勢変化が終了したと判断する。所定値未満であった場合は、姿勢変化が終了していないと判断し、ステップＳ１に戻る。
【００４２】
ステップＳ５の後、ステップＳ６に移る。ステップＳ６では、最後に記憶した地磁気ベクトルＭ（ｎ）と、最初に検出した地磁気ベクトルＭ（１）とが次の式を満たすか否かを判断する。
｜Ｍ（ｎ）−Ｍ（１）｜＞ε      ・・（３）
上記数式（３）は、検出した姿勢変化期間における姿勢変化量が、回転軸Ａを精度良く求めることができる程度に大きいかを仮判断するための式である。正確に判断するには、円Ｃの半径Ｒを求めて回転角度を求めた後に判断する必要があり、ここでは仮判断を行うために設けている。但し、回転角度が大きくても円Ｃが方位球ｓの中心点Ｏ’から大きく離れていて、半径Ｒが小さく｜Ｍ（ｎ）−Ｍ（１）｜が所定値より小さい場合には、精度良く回転軸Ａを求めることができないため、上記数式（３）は、そのような場合は回転軸Ａを求めないとする点で有用である。
【００４３】
また、数式（３）におけるεは、所定の定数である。ステップＳ６は、最後に記憶した磁気ベクトルＭ（ｎ）が、最初に記憶した磁気ベクトルＭ（１）から充分に離れているか否かを判断するために設けてある。ステップＳ６においてＹｅｓと判断された場合はステップＳ７に移り、Ｎｏと判断された場合は、精度良く回転軸Ａを算出できないと判断し、検出したデータを消去（ステップＳ１１）した後、再度データを取得し直す。ステップＳ１〜Ｓ６を繰り返すことにより、複数の検出値（検出値群ｄ）を記憶する。
【００４４】
ステップＳ７では、検出値群ｄに含まれる個々の検出値から、最小二乗法を用いて、円Ｃを算出する。すなわち、個々の検出値からの距離のばらつきが最小となる中心点と半径を求め、さらに円Ｃを含む平面から個々の検出値までの距離の二乗和が最小となる円Ｃ（図５参照）を算出する。また、この円Ｃを含む平面Ｐを算出する。
【００４５】
ステップＳ７を処理した後、ステップＳ８を行う。ここでは、個々の検出値から平面Ｐまでの距離ｘ（図６参照）のばらつきσ（ｘ）が、所定値εｘ以下か否かを判断する。ステップＳ８においてＹｅｓと判断された場合はステップＳ９に移る。ステップＳ８でＮｏと判断される場合は、記憶した検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものでない場合である。そのため、ステップＳ８でＮｏと判断される場合はステップＳ１１に移り、記憶した検出値群ｄを消去する。そしてステップＳ１に戻り、検出値群ｄを記憶し直す。
【００４６】
ステップＳ９では、円Ｃ（図７参照）の中心Ｂから個々の検出値までの距離ｒのばらつきσ（ｒ）が、所定値εｒ以下か否かを判断する。ステップＳ９においてＹｅｓと判断された場合はステップＳ１０に移る。ステップＳ９でＮｏと判断される場合は、記憶した検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものでない場合である。そのため、ステップＳ９でＮｏと判断される場合はステップＳ１１に移り、記憶した検出値群ｄを消去する。そしてステップＳ１に戻り、検出値群ｄを記憶し直す。
【００４７】
ステップＳ１０では、円Ｃ（図７参照）の半径Ｒが所定値εＲ以下か否かを判断する。ステップＳ１０でＹｅｓと判断された場合は、ステップＳ１２に移る。ステップＳ１０でＮｏと判断される場合は、記憶した検出値群ｄが、外部磁場の影響を受けている可能性が高い場合である。そのため、ステップＳ１０でＮｏと判断された場合はステップＳ１１に移り、記憶した検出値群ｄを消去する。そしてステップＳ１に戻り、検出値群ｄを記憶し直す。
【００４８】
ステップＳ１２では、１つの姿勢変化期間における、携帯機器１０の姿勢の回転角度θ（図８参照）を算出する。このステップＳ１２を処理した後、ステップＳ１３に移る。ステップＳ１３では、回転角度θが所定値εθ以上であるか否かを判断する。ステップＳ１３でＹｅｓと判断された場合はステップＳ１４に移る。ステップＳ１３でＮｏと判断される場合は、姿勢変化期間において、携帯機器１０の姿勢が充分に回転しなかった場合である。そのため、ステップＳ１３でＮｏと判断された場合はステップＳ１１に戻り、記憶した検出値群ｄを消去する。そしてステップＳ１に戻り、検出値群ｄを記憶し直す。
【００４９】
なお、ステップＳ８，Ｓ９，Ｓ１０，Ｓ１２及びＳ１３は、順番を入れ替えてもよい。また、上記εｘは例えば１．３μＴ程度であり、εｒは例えば０．４５μＴ程度である。また、上記εＲは例えば５２μＴ程度であり、εθは例えば６０°程度である。
【００５０】
ステップＳ１４では、円Ｃの中心Ｂを通り平面Ｐに直交する直線を、回転軸Ａとして算出する。その後、ステップＳ１５に移る。ステップＳ１５では、回転軸Ａを複数本、算出したか否かを判断する。ここでＹｅｓと判断した場合にはステップＳ１６に移る。また、ステップＳ１５でＮｏと判断した場合はステップＳ１に戻り、別の検出値群ｄを記憶して、別の回転軸Ａを算出する。ここで求める回転軸Ａの本数は少なくとも２本であって、３本以上であっても構わない。また、オフセット算出時の状況に応じて本数の設定を変化させることもできる。
【００５１】
ステップＳ１６では、既に求めた複数本の回転軸Ａのうち、交差角度φが最も大きい２本の回転軸Ａの組み合わせを選び、その交差角度φが、所定値ｃより大きいか否かを判断する。このステップＳ１６は、交差角度φが所定値Ｃより小さい２本の回転軸Ａを使っても中心点Ｏ’の算出精度が低いため、この場合は中心点Ｏ’を算出しないようにするステップである。ステップＳ１６においてＹｅｓと判断した場合はステップＳ１７に移り、Ｎｏと判断した場合はステップＳ１に戻る。なお、本実施例では、交差角度φが最も大きい２本の回転軸を選択しているが、所定値Ｃより大きければ、交差角度φが最も大きい組み合わせ以外の２本の回転軸Ａを選択することも勿論可能である。すなわち、所定値以上の交差角度からなる２本の回転軸の組み合わせを複数選択することもできる。
【００５２】
なお、回転軸Ａには誤差が含まれるため、ステップＳ１６において、２本の回転軸Ａが交差しない場合があるが、この場合は、一方の回転軸Ａを平行移動し、他方の回転軸Ａに交わらせた状態での、交差角度φを算出する。
【００５３】
ステップＳ１７では、ステップＳ１６で選んだ２本の回転軸Ａの交点を算出する。ここで、２本の回転軸Ａが交差しない場合は、近似交点を算出する。近似交点は、例えば、２本の回転軸Ａの最接近点の中点と定義することができる。２本の回転軸Ａの組み合わせを複数選択した場合は、それぞれの２本の組み合わせから求めた近似交点の平均値を算出することにより、オフセットを求める。
【００５４】
ステップＳ１７を処理した後、ステップＳ１８に移る。ステップＳ１８では、算出した交点又は近似交点を、方位球ｓの中心点Ｏ’として設定する。
【００５５】
ステップＳ１８を処理した後、ステップＳ１９に移る。ここでは、３軸磁気センサ２によって検出した地磁気ベクトルＯＭ（図９参照）を補正し、中心点Ｏ’を始点としたベクトルＯ’Ｍを算出する。
【００５６】
本例の作用効果について説明する。本例の磁気データ処理装置１は、図４に示すごとく、検出値群ｄを用いて、携帯機器１０の回転軸Ａを算出する。そして、この回転軸Ａを使って、方位球ｓの中心点Ｏ’を算出する。
このようにすると、ユーザの負担を低減しやすくなる。すなわち、発明者らの研究によると、ユーザが携帯機器１０を自然に使用する場合、例えば、携帯機器１０をポケット内に入れたまま、ユーザが歩行中に向きを変えたり、ポケットから取り出したり、画面を見やすい位置に持ってきたりする場合、その動作は、携帯機器１０の姿勢を一軸周りに回転する動作になることが多い。そのため、検出値群ｄは、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものであることが多い。したがって、検出値群ｄを用いて回転軸Ａを算出し、この回転軸Ａを使って方位球ｓの中心点Ｏ’を算出すれば、ユーザの自然な動作を、方位球ｓの中心点Ｏ’の算出に利用しやすくなる。
【００５７】
本発明では、以下の３つの点が重要となる。１つめは、上記回転動作は一軸回転ではあるが、その回転角度は自然な動作を利用するものであるため、ほとんどが例えば６０〜９０°程度の、１８０°未満の回転となる点である。２つめは、６０〜９０°程度の回転では、前記した特許文献１の発明では選択の条件を満足する４点を選べない可能性があり、特許文献２の発明では、検出値が方位球ｓ上の偏った位置に存在していること自体は何ら変わりはないため、精度の良いオフセットを求めることはできない点である。３つめは、上述の通り従来の方法では精度の良いオフセット算出は難しいものの、回転軸をある程度精度良く求めることは可能なため、その近似交点を求めることによるオフセット算出は、従来の算出法に比べ精度向上を期待できることを新たに見出したことである。
【００５８】
しかしながら、精度の良いオフセット算出を可能にするには、検出値が１軸周りに回転している間に得られたものかどうかを正確にチェックした上で回転軸を算出する必要がある。そこで、本発明では以下の通り、そのチェックを行うこととしている。従って、正確なチェックが前提で方位球ｓ上で偏ったデータしか得られていなくても精度の良いオフセット算出が可能となる。
すなわち、図１、図１１に示すごとく、本例の磁気データ処理装置１は、検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものであるか否かを判断する回転運動判断手段４を備える。そして、検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものであると判断された場合にのみ、その検出値群ｄを、方位球ｓの中心点Ｏ’の算出に用いる。そのため、方位球ｓの中心点Ｏ’を、精度よく算出することができる。
【００５９】
また、図５〜図７に示すごとく、本例の回転運動判断手段４は、一つの検出値群ｄに含まれる複数の検出値が、円Ｃの周上又はその近傍に集まるか否かを判断することにより、検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものか否かを判断する。
このようにすると、検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものか否かを容易に判断することができる。すなわち、携帯機器１０の姿勢を一軸周りに回転させると、磁気ベクトルＭは方位球ｓ上に円Ｃを描く。そのため、磁気ベクトルＭの検出値が、円Ｃの周上またはその近傍に集まっているか否かを判断することにより、検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に取得されたものか否かを容易に判断することができる。
【００６０】
また、本例の回転運動判断手段４は、図５〜図７に示すごとく、一つの検出値群ｄに含まれる個々の検出値から、最小二乗法を用いて円Ｃの方程式を算出し、複数の検出値が、算出した円Ｃの周上またはその近傍に集まっているか否かを判断する。
このようにすると、最小二乗法を用いるため、円Ｃを精度よく算出できる。そのため、検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に取得したものか否かを正確に判断することができる。また、円Ｃを含む平面Ｐに直交し円Ｃの中心を通る直線が、上記回転軸Ａとなるため、円Ｃを最小二乗法によって正確に求めることにより、回転軸Ａを正確に算出できる。そのため、方位球ｓの中心点Ｏ’を正確に算出できる。
【００６１】
また、本例の回転運動判断手段４は、平面Ｐ（図６参照）から個々の検出値までの距離ｘのばらつきが所定値以下であり、かつ、円Ｃ（図７参照）の中心Ｂから個々の検出値までの距離ｒのばらつきが所定値以下である場合に、検出値群ｄが、携帯機器１０を一軸周りに回転させている間に得られたものであると判断する。
このようにすると、検出値群ｄが、携帯機器１０の姿勢を一軸周りに回転させている間に得られたものか否かを、正確に判断することが可能になる。すなわち、検出値群ｄが、携帯機器１０を一軸周りに回転させている間に得られたものである場合には、検出値群ｄに含まれる個々の検出値は全て平面Ｐの近くに存在し、かつ円Ｃの近くに存在する。そのため、平面Ｐから個々の検出値までの距離ｘのばらつきや、円Ｃの中心Ｂから個々の検出値までの距離ｒのばらつきは小さくなる。また、検出値群ｄが、携帯機器１０を一軸周りに回転させている間に得られたものでない場合は、検出値群ｄに含まれる個々の検出値は平面Ｐや円Ｃの近くに存在しなくなり、ばらつきは大きくなる。そのため、上記ばらつきが所定値よりも大きいか否かを判断することにより、検出値群ｄが、携帯機器１０を一軸周りに回転させている間に得られたものか否かを正確に判断することが可能となる。
【００６２】
また、図１１に示すごとく、本例の回転軸算出手段５は、円Ｃの半径Ｒが所定値以下の場合にのみ、回転軸Ａを算出するよう構成されている。
このようにすると、方位球ｓの中心点Ｏ’を正確に求めることが可能になる。すなわち、円Ｃの半径Ｒが大きすぎる場合は、３軸磁気センサ２が外部磁場の影響を受けている可能性があり、方位球ｓの中心点Ｏ’を正確に算出できないおそれがある。したがって、円Ｃの半径Ｒが所定値以下の場合にのみ回転軸Ａを算出すれば、外部磁場の影響を排除でき、方位球ｓの中心点Ｏ’を正確に求めることが可能になる。
【００６３】
また、本例の回転軸算出手段５は、図１２に示すごとく、一つの姿勢変化期間における携帯機器１０の姿勢の回転角度θが、所定値以上の場合にのみ、回転軸Ａを算出するよう構成されている。
前記した通り、本発明はユーザが意識せずに自然に行う携帯機器の姿勢変化を利用する発明であり、回転操作を強制する場合のように回転角度が１８０°以上となることは稀である。しかしながら、回転軸Ａの高い算出精度を確保するには、ある程度の値の回転角度を確保する必要があるため、上記条件を満足する場合のみ回転軸Ａを算出するよう構成されている。
このようにすると、方位球ｓの中心点Ｏ’の算出精度を、より高めることができる。すなわち、回転角度θが小さい場合は、円Ｃを正確に算出しにくくなり、ひいては回転軸Ａを正確に算出しにくくなる。そのため、方位球ｓの中心点Ｏ’の算出精度が低下しやすくなる。したがって、回転角度θが所定値以上の場合のみ、回転軸Ａを算出するようにすれば、中心点Ｏ’の算出精度を高めることが可能になる。
【００６４】
図４に示すごとく、本発明では、上述の条件をチェックし、その条件を満たす場合に限り、２本の回転軸Ａ１，Ａ２の組み合わせを算出し、この２本の回転軸Ａ１，Ａ２の交点もしくは近似交点を、方位球ｓの中心点Ｏ’として算出する。そしてこの２本の回転軸Ａが交差する場合は、その交点が、方位球ｓの中心点となる。また、算出した２本の回転軸Ａには誤差が含まれているため、複数の回転軸Ａが互いに交差しない場合は、近似交点を方位球ｓの中心点Ｏ’として算出する。そして、前記条件を満たしたことを条件に交点を求めていることから、方位球ｓ上で偏った検出値しか得られていない状態で、従来の方法ではオフセットを精度良く求めることができない場合であっても、本発明の適用により、精度良くオフセットを求めることができる。
【００６５】
次に本発明の効果を実験例により説明する。
３軸磁気センサを備える携帯機器を用意し、本発明の条件を満足するオフセット算出ソフトを搭載した携帯機器Ａと前記した特許文献１に記載の通り磁気センサの検出値からオフセット算出に用いる４点の検出値を選択し、オフセット算出を行うソフトを搭載した携帯機器Ｂを準備した。
そして、携帯機器Ａ、携帯機器Ｂのそれぞれについて、水平回転７５°、ピッチ回転７５°の回転操作を複数回意図的に行い、オフセットを複数回求め、求めたオフセット値を使って方位を算出し、その方位算出のばらつきを調査した。
【００６６】
その結果、携帯機器Ａでは、方位を±５°の精度で求めることが可能なことを確認した。一方、携帯機器Ｂでは、上記回転操作が小さく、４点の検出を選択する条件を満足しなかったため、方位算出ができなかった。
【００６７】
そこで、携帯機器Ｂについて、水平回転とピッチ回転の角度を１２０°として、再度回転操作を複数回意図的に行い、オフセットを複数回求め、方位算出のばらつきを調査した。その結果、この条件では、オフセットを算出することができ、方位を算出することは可能であったが、そのばらつきは±１０°と、回転操作の角度を大きくしているにもかかわらず、前記した携帯機器Ａの実験結果に及ばない算出精度しか得られなかった。なお、携帯機器Ｂに搭載するソフトは、４点を選択する条件の変更により、より小さい回転角度でも選択条件を満足するように設定することも可能であるが、選択条件を緩和するほど精度が低下することが明らかであることを考えれば、本発明は、自然な回転操作で得られる磁気データのみで、オフセット値を算出する精度を大幅に向上する効果を有すると言うことができる。
【符号の説明】
【００６８】
１  磁気データ処理装置
２  ３軸磁気センサ
３  メモリ
４  回転運動算出手段
５  回転軸算出手段
６  中心点算出手段
７  オフセット補正手段
Ａ  回転軸
Ｂ  円の中心
Ｃ  円
Ｍ  磁気ベクトル
Ｏ’  方位球の中心点
ｓ  方位球
【図１】
2014002089.tif 000003
【図２】
2014002089.tif 000004
【図３】
2014002089.tif 000005
【図４】
2014002089.tif 000006
【図５】
2014002089.tif 000007
【図６】
2014002089.tif 000008
【図７】
2014002089.tif 000009
【図８】
2014002089.tif 000010
【図９】
2014002089.tif 000011
【図１０】
2014002089.tif 000012
【図１１】
2014002089.tif 000013
【図１２】
2014002089.tif 000014
【図１３】
2014002089.tif 000015
【図１４】
2014002089.tif 000016