(57)【要約】【課題】３次元磁気センサのオフセットの推定値を算出する。【解決手段】３次元磁気センサ５０と３次元角速度センサ６０とを備える携帯機器１に設けられ３次元磁気センサ５０のオフセットの推定値ｃＥを算出するオフセット推定装置１００であって、３次元角速度センサ６０の出力値に基づいて姿勢Ａ１からの携帯機器１の姿勢変化量を演算する姿勢演算部１１０と、携帯機器１の姿勢が姿勢演算部１１０の演算した姿勢変化量だけ姿勢Ａ１から変化したときに３次元磁気センサ５０に固定された座標系から地磁気Ｂｇを表す変数である第１変数ベクトルｇｋと推定値ｃＥを表すための変数であるオフセット変数ベクトルｃを３次元磁気センサ５０からの出力値から減算した第２変数ベクトルｄｋとの誤差の大きさを表す目的関数ｆを最小化するオフセット変数ベクトルｃを推定値ｃＥとして算出するオフセット算出部１４０とを備える。【選択図】図５
2014149211.tif 000002
【特許請求の範囲】
【請求項１】
３方向の角速度を周期的に検出し、検出結果を角速度データとして順次出力する３次元角速度センサと、
地磁気を含む３方向の磁気成分を周期的に検出し、検出結果を３軸の直交座標系におけるベクトルデータである磁気データとして順次出力する３次元磁気センサと、
を備える機器に設けられ、
前記３次元磁気センサのオフセットの推定値を算出するオフセット推定装置であって、
前記角速度データに基づいて、基準姿勢からの前記機器の姿勢変化量を周期的に算出する姿勢演算部と、
前記機器が前記基準姿勢から前記姿勢変化量だけ姿勢変化したときに前記直交座標系において前記地磁気を表すための変数ベクトルを第１変数ベクトルとし、
前記オフセットの推定値を表すための変数ベクトルであるオフセット変数ベクトルを前記磁気データから減算した変数ベクトルを第２変数ベクトルとして、
前記姿勢演算部が生成した所定数の姿勢変化量に対応する所定数の前記第１変数ベクトルと、
前記３次元磁気センサから出力された所定数の磁気データに対応する所定数の前記第２変数ベクトルと、
の誤差を表す目的関数を最小化する前記オフセット変数ベクトルを、
前記オフセットの推定値として算出するオフセット算出部と、
を備える、
ことを特徴とする、オフセット推定装置。
【請求項２】
前記機器が前記基準姿勢のときに、前記直交座標系において前記地磁気を表すための変数ベクトルを基準変数ベクトルとし、
前記目的関数を最小化する前記基準変数ベクトルを基準推定地磁気ベクトルとし、
前記基準推定地磁気ベクトルを、前記姿勢変化量だけ姿勢変化させたベクトルを推定地磁気ベクトルとして、
前記姿勢演算部が算出した所定数の姿勢変化量のそれぞれに対応する所定数の前記推定地磁気ベクトルが示す前記直交座標系における所定数の点の分布形状と、
前記３次元磁気センサから出力された所定数の磁気データが示す前記直交座標系における所定数の点の分布形状との、
相違の程度が、所定の範囲内であるか否かを判定する第１判定部と、
前記第１判定部の判定結果が肯定の場合、
前記オフセットの推定値を、前記オフセットとして採用する、
オフセット採用部と、
を備えることを特徴とする、請求項１に記載のオフセット推定装置。
【請求項３】
前記機器が前記基準姿勢のときに、前記直交座標系において前記地磁気を表すための変数ベクトルを基準変数ベクトルとし、
前記目的関数を最小化する前記基準変数ベクトルを基準推定地磁気ベクトルとし、
前記基準推定地磁気ベクトルを、前記姿勢変化量だけ姿勢変化させたベクトルを推定地磁気ベクトルとして、
前記姿勢演算部が算出した所定数の姿勢変化量のそれぞれに対応する所定数の前記推定地磁気ベクトルの分散を表す推定地磁気データ分散行列の有する成分と、
前記３次元磁気センサから出力された所定数の磁気データの分散を表す磁気データ分散行列の有する成分との、
相違の程度が、所定の範囲内であるか否かを判定する第１判定部と、
前記第１判定部の判定結果が肯定の場合、
前記オフセットの推定値を、前記オフセットとして採用する、
オフセット採用部と、
を備えることを特徴とする、請求項１に記載のオフセット推定装置。
【請求項４】
前記オフセット算出部が行う前記オフセットの推定値を算出する演算の精度を表す精度指標を生成する指標生成部と、
前記精度指標が、正の実数である所定の閾値以上であるか否かを判定する第２判定部と、
を備え、
前記目的関数は、
前記機器の姿勢が前記基準姿勢であるときに前記直交座標系において前記地磁気を表すための変数である基準変数ベクトルの各要素と、
前記オフセット変数ベクトルの各要素と、
を要素に含む変数ベクトルを変数とする関数であり、
前記精度指標は、
前記目的関数を前記変数ベクトルの各要素を変数とする二次形式によって表す場合の係数行列の最小固有値であり、
前記オフセット算出部は、
前記第２判定部の判定結果が肯定である場合には、
前記オフセットの推定値を算出し、
前記第２判定部の判定結果が否定である場合には、
前記オフセットの推定値を算出しない、
ことを特徴とする、請求項１乃至３のうちいずれか１項に記載のオフセット推定装置。
【請求項５】
３方向の角速度を周期的に検出し、検出結果を角速度データとして順次出力する３次元角速度センサと、
地磁気を含む３方向の磁気成分を周期的に検出し、検出結果を３軸の直交座標系におけるベクトルデータである磁気データとして順次出力する３次元磁気センサと、
を備える機器に設けられ、
前記３次元磁気センサのオフセットの推定値を、コンピュータを用いて推定するオフセット推定装置のプログラムであって、
前記コンピュータを、
前記角速度データに基づいて、基準姿勢からの前記機器の姿勢変化量を周期的に算出する姿勢演算部と、
前記機器が前記基準姿勢から前記姿勢変化量だけ姿勢変化したときに前記直交座標系において前記地磁気を表すための変数ベクトルを第１変数ベクトルとし、
前記オフセットの推定値を表すための変数ベクトルであるオフセット変数ベクトルを前記磁気データから減算した変数ベクトルを第２変数ベクトルとして、
前記姿勢演算部が生成した所定数の姿勢変化量に対応する所定数の前記第１変数ベクトルと、前記３次元磁気センサから出力された所定数の磁気データに対応する所定数の前記第２変数ベクトルと、の誤差を表す目的関数を最小化する前記オフセット変数ベクトルを、前記オフセットの推定値として算出するオフセット算出部と、
として機能させる、
ことを特徴とする、オフセット推定装置のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はオフセット推定装置及びプログラムに関する。
【背景技術】
【０００２】
近年、携帯電話等の携帯機器や自動車等の移動体に搭載され、地磁気を検出する３次元磁気センサが開発されている。一般に、３次元磁気センサは、磁界のベクトルを３方向の成分に分解してスカラー量を検知するための３つの磁気センサモジュールを備え、３つの磁気センサモジュールが各々出力するスカラー量を３つの成分とする３次元のベクトルデータである磁気データを出力する。
【０００３】
ところで、３次元磁気センサが搭載される携帯電話等の機器は、着磁性を有する各種金属や、電気回路等、磁界を発生させる部品が備えられることが多い。この場合、３次元磁気センサが出力する磁気データは、地磁気を表すベクトルの他に、機器に搭載された部品が発する内部磁界等を表すベクトルも含む値となる。
従って、地磁気の値を正確に知るためには、３次元磁気センサが出力する磁気データから、機器の部品が発する内部磁界等の外乱成分を表すベクトルを取り除く補正処理が必要となる。このように、検出対象である地磁気の正確な値を得るために、補正処理において３次元磁気センサから出力される磁気データから取り除かれる外乱成分を、３次元磁気センサのオフセットと呼ぶ。
【０００４】
機器の部品が発する磁界である内部磁界は、機器に対して一定の方向を向き、一定の大きさを有する磁界である。よって、内部磁界は、機器に搭載された３次元磁気センサから見た場合には、機器をどのような姿勢に変化させた場合であっても、一定の方向と一定の大きさを有するベクトルとして表される。
一方、地磁気は、磁極北に向かう水平成分と伏角により定められる鉛直成分とを有する磁界であり、地面に対して一定の方向と一定の大きさとを有する一様な磁界である。従って、地面に対して機器の姿勢を変化させる場合には、機器から見た地磁気の方向も変化することになる。すなわち、機器に搭載された３次元磁気センサから見た場合、地磁気は、機器の姿勢の変化に伴い向きが変化する一定の大きさを持ったベクトルとして表される。
特許文献１には、このような地磁気及び内部磁界の性質を利用することで、機器の姿勢、すなわち、３次元磁気センサの姿勢を変化させつつ取得した複数の磁気データを、磁気センサから見て一定の方向及び大きさを有する内部磁界を表す成分と、３次元磁気センサの姿勢変化に伴って方向が変化する一定の大きさを有する地磁気を表す成分とに分離し、分離された内部磁界を表す成分をオフセットとして算出する方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１９８１１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、従来の方法により３次元磁気センサのオフセットを算出する場合、３次元磁気センサの姿勢を十分に変化させつつ複数の磁気データを取得する必要があった。そのため、３次元磁気センサの姿勢変化が十分でない場合には、正確なオフセットを算出できないという問題があった。
【０００７】
本発明は、上述した点に鑑みてなされたものであり、従来の方法によりオフセットを算出する場合に必要とされる３次元磁気センサの姿勢変化に比べて小さい姿勢変化であっても、オフセットを推定することができるオフセット推定装置を提供することを解決課題とする。
【課題を解決するための手段】
【０００８】
上述した課題を解決するため、本発明に係るオフセット推定装置は、３方向の角速度を周期的に検出し、検出結果を角速度データとして順次出力する３次元角速度センサと、地磁気を含む３方向の磁気成分を周期的に検出し、検出結果を３軸の直交座標系におけるベクトルデータである磁気データとして順次出力する３次元磁気センサと、を備える機器に設けられ、前記３次元磁気センサのオフセットの推定値を算出するオフセット推定装置であって、前記角速度データに基づいて、基準姿勢からの前記機器の姿勢変化量を周期的に算出する姿勢演算部と、前記機器が前記基準姿勢から前記姿勢変化量だけ姿勢変化したときに前記直交座標系において前記地磁気を表すための変数ベクトルを第１変数ベクトルとし、前記オフセットの推定値を表すための変数ベクトルであるオフセット変数ベクトルを前記磁気データから減算した変数ベクトルを第２変数ベクトルとして、前記姿勢演算部が生成した所定数の姿勢変化量に対応する所定数の前記第１変数ベクトルと、前記３次元磁気センサから出力された所定数の磁気データに対応する所定数の前記第２変数ベクトルと、の誤差を表す目的関数を最小化する前記オフセット変数ベクトルを、前記オフセットの推定値として算出するオフセット算出部と、を備える、ことを特徴とする。
【０００９】
本発明に係るオフセット推定装置は、磁気データ及び角速度データに基づいてオフセットの推定値を算出する。角速度データは、機器の姿勢変化そのものを表すデータであり、機器の姿勢変化が正確に表されたデータである。
機器が姿勢変化する場合、当該姿勢変化は、３次元磁気センサから出力された複数の磁気データが３次元磁気センサの検出結果を表現するための３軸の直交座標系において示す複数の点の分布として表現される。そして、３次元磁気センサのオフセットの推定値は、当該複数の点の分布形状に基づいて統計的な手法により求められる。すなわち、３次元磁気センサのオフセットの推定値は、機器の姿勢変化に基づいて定められる複数の点の分布形状に基づいて算出される。そのため、機器の姿勢変化を正確に検出することができ、当該検出結果をオフセットの推定値を算出する演算において正確に反映させることができれば、正確なオフセットの推定値の算出が可能である。
本実施形態に係るオフセット推定装置は、磁気データに加えて角速度データを用いてオフセットの推定値を算出する。よって、本実施形態に係るオフセット推定装置は、磁気データのみに基づいてオフセットの推定値を算出する場合に比べ、オフセットの推定値を算出する演算に対して機器の姿勢変化を正確に反映させることができ、そのため、機器の姿勢変化が小さい場合であっても正確なオフセットの推定値を算出することができる。
【００１０】
なお、この発明において、３次元磁気センサのオフセットは、例えば、前記直交座標系において前記地磁気を表すベクトルと、前記３次元磁気センサの出力値との差分である。
また、この発明において、目的関数は、前記機器の姿勢が前記基準姿勢であるときに前記直交座標系において前記地磁気を表すための変数である基準変数ベクトルの各要素と、前記オフセット変数ベクトルの各要素と、を要素に含む変数ベクトルを変数とする関数であってもよい。
また、この発明において、第１変数ベクトルは、前記機器の姿勢が前記基準姿勢であるときに前記直交座標系において前記地磁気を表すための変数を基準変数ベクトルとして、前記機器の姿勢が前記基準姿勢から前記姿勢変化量だけ変化したときに前記直交座標系において前記基準変数ベクトルを表すベクトルであってもよい。
【００１１】
本発明に係るオフセット推定装置は、３方向の角速度を周期的に検出し、検出結果を角速度データとして順次出力する３次元角速度センサと、地磁気を含む３方向の磁気成分を周期的に検出し、検出結果を３軸の直交座標系におけるベクトルデータである磁気データとして順次出力する３次元磁気センサと、を備える機器に設けられ、前記３次元磁気センサのオフセットの推定値を算出するオフセット推定装置であって、前記角速度データに基づいて、基準姿勢からの前記機器の姿勢変化量を周期的に算出する姿勢演算部と、前記機器の姿勢が前記基準姿勢であるときに前記直交座標系において前記地磁気を表すための変数ベクトルを基準変数ベクトルとし、前記基準変数ベクトルを、前記姿勢変化量だけ姿勢変化させた変数ベクトルを第１変数ベクトルとし、前記第１変数ベクトルと、前記オフセットを表すための変数ベクトルであるオフセット変数ベクトルとを加算した変数ベクトルを検出磁気変数ベクトルとして、前記姿勢演算部が算出した所定数の前記姿勢変化量のそれぞれに対応する所定数の前記検出磁気変数ベクトルが示す前記直交座標系における所定数の点と、前記３次元磁気センサから出力された所定数の磁気データが示す前記直交座標系における所定数の点と、の誤差を最小化する前記オフセット変数ベクトルを、前記オフセットの推定値として算出するオフセット算出部と、を備える、ことを特徴とするものであってもよい。
【００１２】
また、上述したオフセット推定装置は、前記機器が前記基準姿勢のときに、前記直交座標系において前記地磁気を表すための変数ベクトルを基準変数ベクトルとし、前記目的関数を最小化する前記基準変数ベクトルを基準推定地磁気ベクトルとし、前記基準推定地磁気ベクトルを、前記姿勢変化量だけ姿勢変化させたベクトルを推定地磁気ベクトルとして、前記姿勢演算部が算出した所定数の姿勢変化量のそれぞれに対応する所定数の前記推定地磁気ベクトルが示す前記直交座標系における所定数の点の分布形状と、前記３次元磁気センサから出力された所定数の磁気データが示す前記直交座標系における所定数の点の分布形状との、相違の程度が、所定の範囲内であるか否かを判定する第１判定部と、前記第１判定部の判定結果が肯定の場合、前記オフセットの推定値を、前記オフセットとして採用する、オフセット採用部と、を備える、ことを特徴とすることが好ましい。
【００１３】
また、上述したオフセット推定装置は、前記機器が前記基準姿勢のときに、前記直交座標系において前記地磁気を表すための変数ベクトルを基準変数ベクトルとし、前記目的関数を最小化する前記基準変数ベクトルを基準推定地磁気ベクトルとし、前記基準推定地磁気ベクトルを、前記姿勢変化量だけ姿勢変化させたベクトルを推定地磁気ベクトルとして、前記姿勢演算部が算出した所定数の姿勢変化量のそれぞれに対応する所定数の前記推定地磁気ベクトルの分散を表す推定地磁気データ分散行列の有する成分と、前記３次元磁気センサから出力された所定数の磁気データの分散を表す磁気データ分散行列の有する成分との、相違の程度が、所定の範囲内であるか否かを判定する第１判定部と、前記第１判定部の判定結果が肯定の場合、前記オフセットの推定値を、前記オフセットとして採用する、オフセット採用部と、を備えることを特徴とする、ことが好ましい。
【００１４】
また、上述したオフセット推定装置は、前記機器が前記基準姿勢のときに、前記直交座標系において前記地磁気を表すための変数ベクトルを基準変数ベクトルとし、前記目的関数を最小化する前記基準変数ベクトルを基準推定地磁気ベクトルとし、前記基準推定地磁気ベクトルを、前記姿勢変化量だけ姿勢変化させたベクトルを推定地磁気ベクトルとして、前記姿勢演算部が算出した所定数の姿勢変化量のそれぞれに対応する所定数の前記推定地磁気ベクトルの分散を表す推定地磁気データ分散行列を演算する、第１行列演算部と、前記３次元磁気センサから出力された所定数の磁気データの分散を表す磁気データ分散行列を演算する、第２行列演算部と、前記推定地磁気データ分散行列が有する固有値及び固有ベクトル、並びに、前記磁気データ分散行列が有する固有値及び固有ベクトルが、前記推定地磁気データ分散行列の最大固有値に対応する固有ベクトル、及び、前記磁気データ分散行列の最大固有値に対応する固有ベクトルが平行であること、または、当該２つの固有ベクトルのなす角が所定の角度以下であることを表す第１条件と、前記推定地磁気データ分散行列の中間固有値に対応する固有ベクトル、及び、前記磁気データ分散行列の中間固有値に対応する固有ベクトルが平行であること、または、当該２つの固有ベクトルのなす角が所定の角度以下であることを表す第２条件と、前記推定地磁気データ分散行列の最小固有値に対応する固有ベクトル、及び、前記磁気データ分散行列の最小固有値に対応する固有ベクトルが平行であること、または、当該２つの固有ベクトルのなす角が所定の角度以下であることを表す第３条件と、前記推定地磁気データ分散行列の最大固有値、及び、前記磁気データ分散行列の最大固有値の近似の程度を表す指標値が、所定の値以上であることを表す第４条件と、前記推定地磁気データ分散行列の中間固有値、及び、前記磁気データ分散行列の中間固有値の近似の程度を表す指標値が、所定の値以上であることを表す第５条件と、前記推定地磁気データ分散行列の最小固有値、及び、前記磁気データ分散行列の最小固有値の近似の程度を表す指標値が、所定の値以上であることを表す第６条件と、のうち、一部または全部の条件を充足するか否かを判定する類似度判定部と、前記類似度判定部の判定結果が肯定の場合、
前記オフセットの推定値を、前記オフセットとして採用する、オフセット採用部と、を備えることを特徴とするものであってもよい。
【００１５】
また、上述したオフセット推定装置は、前記オフセット算出部が行う前記オフセットの推定値を算出する演算の精度を表す精度指標を生成する指標生成部と、前記精度指標が、正の実数である所定の閾値以上であるか否かを判定する第２判定部と、を備え、前記目的関数は、前記機器の姿勢が前記基準姿勢であるときに前記直交座標系において前記地磁気を表すための変数である基準変数ベクトルの各要素と、前記オフセット変数ベクトルの各要素と、を要素に含む変数ベクトルを変数とする関数であり、前記精度指標は、前記目的関数を前記変数ベクトルの各要素を変数とする二次形式によって表す場合の係数行列の最小固有値であり、前記オフセット算出部は、前記第２判定部の判定結果が肯定である場合には、前記オフセットの推定値を算出し、前記第２判定部の判定結果が否定である場合には、前記オフセットの推定値を算出しない、ことを特徴とする、ことが好ましい。
【００１６】
本態様に係るオフセット推定装置は、精度指標に基づいて、オフセット算出部が行う演算の精度を予め評価することができる。よって、オフセット算出部が行う演算の精度が低いと予想される場合には、当該演算が実行されることを防止することができる。これにより、本実施形態に係るオフセット推定装置は、真のオフセットから大きく乖離した不正確なオフセットの推定値が算出されることを防止することができる。
【００１７】
また、本発明に係るオフセット推定装置のプログラムは、３方向の角速度を周期的に検出し、検出結果を角速度データとして順次出力する３次元角速度センサと、地磁気を含む３方向の磁気成分を周期的に検出し、検出結果を３軸の直交座標系におけるベクトルデータである磁気データとして順次出力する３次元磁気センサと、を備える機器に設けられ、前記３次元磁気センサのオフセットの推定値を、コンピュータを用いて推定するオフセット推定装置のプログラムであって、前記コンピュータを、前記角速度データに基づいて、基準姿勢からの前記機器の姿勢変化量を周期的に算出する姿勢演算部と、前記機器が前記基準姿勢から前記姿勢変化量だけ姿勢変化したときに前記直交座標系において前記地磁気を表すための変数ベクトルを第１変数ベクトルとし、前記オフセットの推定値を表すための変数ベクトルであるオフセット変数ベクトルを前記磁気データから減算した変数ベクトルを第２変数ベクトルとして、前記姿勢演算部が生成した所定数の姿勢変化量に対応する所定数の前記第１変数ベクトルと、前記３次元磁気センサから出力された所定数の磁気データに対応する所定数の前記第２変数ベクトルと、の誤差を表す目的関数を最小化する前記オフセット変数ベクトルを、前記オフセットの推定値として算出するオフセット算出部と、として機能させる、ことを特徴とする。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施形態に係る携帯機器１の構成を示すブロック図である。
【図２】本発明の実施形態に係る携帯機器１の外観を示す斜視図である。
【図３】地磁気Ｂｇ及び内部磁界Ｂｉを説明するための説明図である。
【図４】地磁気Ｂｇ及び内部磁界Ｂｉを説明するための説明図である。
【図５】本発明の第１実施形態に係るオフセット推定装置１００の機能を表すブロック図である。
【図６】ノイズ磁界Ｂｘを説明するための説明図である。
【図７】本発明の第２実施形態に係るオフセット推定装置１００の機能を表すブロック図である。
【発明を実施するための形態】
【００１９】
＜Ａ．第１実施形態＞
本発明の第１実施形態について図面を参照して説明する。
【００２０】
＜１．機器構成及びソフトウェア構成について＞  
図１は、本発明の実施形態に係る携帯機器のブロック図であり、図２は携帯機器の外観を示す斜視図である。携帯機器１（以下、「機器」と称する場合がある）は、携帯機器１が備える３次元磁気センサ及び３次元角速度センサからの出力に基づいて、携帯機器１から見た地磁気Ｂｇの向きを推定する。
【００２１】
携帯機器１は、各種の構成要素とバスを介して接続され装置全体を制御するＣＰＵ１０、ＣＰＵ１０の作業領域として機能するＲＡＭ（蓄積部）２０、オフセット推定プログラム２００等の各種のプログラムやデータを記憶したＲＯＭ３０、各種情報を表示する表示部４０、及び、通信を実行する通信部（図示省略）を備える。
また、携帯機器１は、単位時間ΔＴ毎に地磁気等の磁界を検出して磁気データＭを出力可能な３次元磁気センサ５０、及び、単位時間ΔＴ毎に角速度を検出して角速度データＷを周期的に出力可能な３次元角速度センサ６０を備える。
【００２２】
表示部４０は、例えば、携帯機器１が磁気データＭ及び角速度データＷに基づいて推定した地磁気Ｂｇの向きを、矢印等の画像で表示することができる。
【００２３】
３次元磁気センサ５０は、Ｘ軸磁気センサ５１、Ｙ軸磁気センサ５２、及びＺ軸磁気センサ５３を備える。各センサは、ＭＩ素子（磁気インピーダンス素子）、ＭＲ素子（磁気抵抗効果素子）などを用いて構成することができる。磁気センサＩ／Ｆ５４は、Ｘ軸磁気センサ５１、Ｙ軸磁気センサ５２、及び、Ｚ軸磁気センサ５３からの出力信号をＡＤ変換して磁気データＭを出力する。この磁気データＭは、ｘ軸、ｙ軸およびｚ軸の３成分によって表される３次元のベクトルである「磁気ベクトルｍ」を表すデータである。より具体的には、磁気ベクトルｍは、３次元磁気センサ５０に固定された３軸の直交座標系（以下、「センサ座標系ΣＳ」と称する）において、Ｘ軸磁気センサ５１からの出力値をｘ軸成分として表し、Ｙ軸磁気センサ５２からの出力値をｙ軸成分として表し、Ｚ軸磁気センサ５３からの出力値をｚ軸成分として表す３次元ベクトルである。
なお、以下では、例えばある時刻Ｔ＝ｋにおいて３次元磁気センサ５０が検出した磁界に基づいて出力される磁気データＭを、添え字「ｋ」を付して「磁気データＭｋ」と表記し、磁気データＭｋの表す３次元のベクトルを、「磁気ベクトルｍｋ」と表記する。
【００２４】
３次元磁気センサ５０が検出する磁界には、地磁気Ｂｇ及び内部磁界Ｂｉが含まれる。以下、図３及び図４を参照しつつ、地磁気Ｂｇ及び内部磁界Ｂｉの性質について説明する。
図３は、地上に固定された３軸の直交座標系（以下、「地上座標系ΣＧ」と称する）において、地磁気Ｂｇ及び内部磁界Ｂｉを表した説明図である。なお、図３に示す姿勢Ａは、地上座標系ΣＧにおけるセンサ座標系ΣＳの各軸の向き（すなわち、地上座標系ΣＧにおける、３次元磁気センサ５０の姿勢）を表す。また、図３に示す位置Ｐは、地上座標系ΣＧにおけるセンサ座標系ΣＳの原点の位置（すなわち、地上座標系ΣＧにおける、３次元磁気センサ５０の位置）を表す。
地磁気Ｂｇは、一般的に、磁極北に向かう水平成分と伏角により定められる鉛直成分とを有する磁界であり、地上座標系ΣＧにおいて、一定の向き及び大きさを有するベクトルＧＢｇとして表される（なお、以下において、ベクトルの符号の左上に示す添え字「Ｇ」は、当該ベクトルが地上座標系ΣＧにおいて表されたベクトルであることを意味する）。すなわち、携帯機器１の姿勢Ａ及び位置Ｐが変化しても、地磁気Ｂｇを表すベクトルＧＢｇの向き及び大きさは変化しない。
内部磁界Ｂｉは、携帯機器１から見て一定の向き及び一定の大きさを有する磁界であり、例えば、携帯機器１に備えられた部品の発する磁界である。そのため、内部磁界Ｂｉを地上座標系ΣＧにおいて表すベクトルは、携帯機器１の姿勢Ａの変化に連動してその向きを変えるベクトルであり、姿勢Ａの関数であるベクトルＧＢｉ（Ａ）として表現することができる。
【００２５】
図４は、携帯機器１の姿勢ＡをＡ１〜ＡＮと変化させつつ磁界を測定した場合に、３次元磁気センサ５０が出力するＮ（所定数）個の磁気データＭ１〜ＭＮが表すＮ個の磁気ベクトルｍ１〜ｍＮが指し示すセンサ座標系ΣＳ上の複数の点を表した図である。
センサ座標系ΣＳにおいて、内部磁界Ｂｉは、携帯機器１の姿勢Ａ及び位置Ｐが変化する場合であっても、一定の向き及び大きさを有するベクトルＳＢｉとして表される（なお、ベクトルの符号の左上に示す添え字「Ｓ」は、当該ベクトルがセンサ座標系ΣＳにおいて表されたベクトルであることを意味する）。
センサ座標系ΣＳにおいて、地磁気Ｂｇは、携帯機器１の姿勢Ａに連動して向きを変える一定の大きさのベクトルＳＢｇ（Ａ）として表される。このベクトルＳＢｇ（Ａ）は、センサ座標系ΣＳから見た地磁気Ｂｇの向き、つまり、携帯機器１から見た地磁気Ｂｇの向きを表す。
【００２６】
３次元磁気センサ５０が地磁気Ｂｇ及び内部磁界Ｂｉのみを検出する場合には、磁気ベクトルｍは、内部磁界Ｂｉ及び地磁気Ｂｇを合計した磁界を表す。すなわち、この場合、センサ座標系ΣＳにおいて磁気ベクトルｍは、ベクトルＳＢｉ及びベクトルＳＢｇ（Ａ）の和を表す。
ここで、ベクトルＳＢｉの起点（始点）がセンサ座標系ΣＳの原点と一致するようにベクトルＳＢｉを配置した場合に、当該ベクトルＳＢｉの終点を点ＣＧとする。また、点ＣＧを中心として地磁気Ｂｇの大きさを半径とする球面を球面ＳＧとする。
このとき、携帯機器１の姿勢ＡをＡ１〜ＡＮと変化させつつ磁界を測定すると、３次元磁気センサ５０から出力される複数の磁気データＭ１〜ＭＮが表す複数の磁気ベクトルｍ１〜ｍＮは、図４に示すように、球面ＳＧ上の座標を示す。よって、磁気ベクトルｍｋ（ｋ＝１、２、…Ｎ）の各々が示す座標から、点ＣＧの座標を減算することにより、ベクトルＳＢｇ（Ａｋ）、つまり、地磁気Ｂｇの向き及び大きさを算出することができる。
このように、検出対象である地磁気Ｂｇの正確な向きを得るために、磁気ベクトルｍｋの示す座標から、球面ＳＧの中心点ＣＧの示す座標を減算する処理を、補正処理と呼ぶ。また、補正処理において磁気ベクトルｍｋから取り除かれるべきベクトルを、３次元磁気センサ５０のオフセットｃＯＦＦと呼ぶ。図４に示す例では、オフセットｃＯＦＦは内部磁界Ｂｉを表すベクトルＳＢｉであり、換言すれば、センサ座標系ΣＳにおける球面ＳＧの中心点ＣＧの座標を表すベクトルである。
なお、実際には、３次元磁気センサ５０の出力する磁気データＭは測定誤差を有するため、複数の磁気ベクトルｍ１〜ｍＮにより表される複数の点は、厳密には球面ＳＧの近傍に確率的に分布する。
【００２７】
説明を図１に戻す。図１に示す３次元角速度センサ６０は、Ｘ軸角速度センサ６１、Ｙ軸角速度センサ６２、及びＺ軸角速度センサ６３を備える。角速度センサＩ／Ｆ６４は、各センサからの出力信号をＡＤ変換して角速度データＷを出力する。この角速度データＷは、携帯機器１に固定された３軸の直交座標系において、３方向に延在する各軸の周りの角速度を示す３次元ベクトルである「角速度ベクトルω」を表すデータである。
なお、以下では、ある時刻Ｔ＝ｋにおいて３次元角速度センサ６０が検出した角速度に基づいて出力される角速度データＷを、添え字「ｋ」を付して「角速度データＷｋ」と表記し、角速度データＷｋの表す３次元のベクトルを、「角速度ベクトルωｋ」と表記する。
【００２８】
ＣＰＵ１０は、ＲＯＭ３０に格納されているオフセット推定プログラム２００を実行することによって、３次元磁気センサ５０のオフセットｃＯＦＦを推定する。すなわち、ＣＰＵ１０は、オフセット推定プログラム２００を実行することにより、オフセット推定装置１００として機能する。
【００２９】
図５は、オフセット推定装置１００の機能を表した機能ブロック図である。
オフセット推定装置１００は、姿勢演算部１１０、精度判定部１３０、オフセット算出部１４０、分布形状判定部１５０、及び、採用部１６０を備える。
このオフセット推定装置１００は、磁気データＭ及び角速度データＷに基づいて、３次元磁気センサ５０のオフセットｃＯＦＦの推定値ｃＥを生成する。より具体的には、オフセット推定装置１００は、時刻Ｔ＝１から時刻Ｔ＝Ｎにかけて単位時間ΔＴごとに３次元磁気センサ５０及び３次元角速度センサ６０からそれぞれ出力される、Ｎ個の磁気データＭ１〜ＭＮ及びＮ個の角速度データＷ１〜ＷＮがそれぞれ表す磁気ベクトルｍ１〜ｍＮ及び角速度ベクトルω１〜ωＮに基づいて、オフセットｃＯＦＦの推定値ｃＥを生成する。
なお、図５に示す機能ブロック図には、説明の便宜上、オフセット推定装置１００の他に、３次元磁気センサ５０、３次元角速度センサ６０、及び、記憶部３００を記載している。
また、以下では、分布形状判定部１５０を「第１判定部」と称し、精度判定部１３０を「第２判定部」と称する場合がある。
【００３０】
姿勢演算部１１０は、時刻Ｔ＝１における携帯機器１の姿勢Ａ１を基準姿勢としたうえで、３次元角速度センサ６０から出力される角速度データＷの示す角速度ベクトルωに基づいて、基準姿勢（姿勢Ａ１）から、各時刻Ｔ＝ｋ（ｋ＝１、２、…、Ｎ）における携帯機器１の姿勢Ａｋに姿勢変化するときの姿勢変化量を演算し、演算した姿勢変化量を表すデータである姿勢データを周期的に出力する。
本実施形態では、姿勢Ａ及び姿勢変化量を、３行３列の回転行列（例えば、Direct Cosine Matrix）を用いて表現する。以下では、基準姿勢（姿勢Ａ１）から姿勢Ａｋへの姿勢変化量を表す回転行列を、姿勢回転行列Ｒｋと称する。
姿勢演算部１１０は、以下に示す式（１）及び式（２）に基づいて、各時刻Ｔ＝ｋ（ｋ＝１、２、…、Ｎ）における姿勢回転行列Ｒｋを算出し、算出した姿勢回転行列Ｒｋを出力する。なお、式（１）に現れる行列Ｉ３×３は、３行３列の単位行列である。また、式（２）に表される演算子Ωは、式（３）に示すように、式（４）に示す３次元ベクトルｐを、式（３）の右辺に示す３行３列の交代行列に変換するための演算子である。
【数１】
2014149211.tif 000003
【００３１】
なお、本実施形態では、姿勢Ａ１を基準姿勢としているが、基準姿勢は、各時刻Ｔ＝ｋ（ｋ＝１、２、…、Ｎ）における姿勢Ａｋと基準姿勢との姿勢変化量を角速度データＷに基づいて算出可能な姿勢であれば、どのような姿勢であってもよい。
例えば、基準姿勢は、姿勢Ａ２乃至姿勢ＡＮのうちいずれかであってもよい。
【００３２】
姿勢演算部１１０は、生成したＮ個の姿勢データ（つまり、Ｎ個の姿勢回転行列Ｒ１〜ＲN）を、記憶部３００に記憶させる。この記憶部３００は、図１に示すＲＡＭ２０に相当する。
また、この記憶部３００には、Ｎ個の姿勢回転行列Ｒ１〜ＲＮの他に、３次元磁気センサ５０から出力されるＮ個の磁気データＭ１〜ＭＮ（つまり、Ｎ個の磁気ベクトルｍ１〜ｍＮ）も記憶される。
【００３３】
精度判定部１３０は、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮを用いて、精度判定処理を実行する。
精度判定処理とは、オフセット算出部１４０が、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲN及び磁気ベクトルｍ１〜ｍＮに基づいてオフセットｃＯＦＦの推定値ｃＥを算出する演算を実行する場合に、当該演算の精度が高いものであるか否かについて判定する処理である。この精度判定処理の詳細については後述する。
【００３４】
オフセット算出部１４０は、精度判定部１３０が行う判定の結果が肯定である場合に、記憶部３００が記憶する姿勢回転行列Ｒ１〜ＲＮ及び磁気ベクトルｍ１〜ｍＮに基づいて、オフセットｃＯＦＦの推定値ｃＥ及び基準推定地磁気ベクトルｒＥ１を算出する。なお、基準推定地磁気ベクトルｒＥ１については、後述する。
なお、オフセット算出部１４０が行うオフセットの推定値ｃＥを算出する処理を、「オフセット算出処理」と称する場合がある。
【００３５】
分布形状判定部１５０は、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲN及び磁気ベクトルｍ１〜ｍＮ、並びに、オフセット算出部１４０が算出する基準推定地磁気ベクトルｒＥ１を用いて、分布判定処理を実行する。
分布判定処理とは、オフセット算出部１４０が、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮ及び磁気ベクトルｍ１〜ｍＮに基づいてオフセットｃＯＦＦの推定値ｃＥを算出する場合に、オフセット算出部１４０により算出されるオフセットｃＯＦＦの推定値ｃＥが、オフセットｃＯＦＦを正確に表すものであるか否かについて判定する処理である。この分布判定処理の詳細については後述する。
【００３６】
採用部１６０は、分布形状判定部１５０が行う判定の結果が肯定である場合には、オフセット算出部１４０が算出したオフセットｃＯＦＦの推定値ｃＥを、オフセットｃＯＦＦとして採用し、否定である場合には、当該推定値ｃＥをオフセットｃＯＦＦとして採用しない、という制御を実行する。
【００３７】
なお、本実施形態では、オフセット算出部１４０は、精度判定部１３０が行う判定の結果が肯定である場合に限り、オフセットｃＯＦＦの推定値ｃＥ及び基準推定地磁気ベクトルｒＥ１を算出するが、本発明はこのような態様に限定されるものでは無い。
例えば、オフセット算出部１４０は、精度判定部１３０が行う判定の結果に関わらずオフセットｃＯＦＦの推定値ｃＥ等を算出するものであってもよい。この場合、採用部１６０は、精度判定部１３０が行う判定の結果が肯定であり、且つ、分布形状判定部１５０が行う判定の結果が肯定である場合に限り、オフセット算出部１４０において算出されたオフセットｃＯＦＦの推定値ｃＥを、オフセットｃＯＦＦとして採用することが好ましい。
【００３８】
以下において、上述したオフセット算出処理、分布判定処理、及び、精度判定処理について、詳細に説明する。
【００３９】
＜２．オフセット算出処理について＞  
上述のとおり、オフセット算出部１４０が実行するオフセット算出処理とは、オフセットｃＯＦＦの推定値ｃＥを算出するための処理である。以下では、まず、オフセット算出部１４０が実行するオフセット算出処理の詳細について説明する。
【００４０】
図４に示すように、地磁気Ｂｇを表すベクトルＳＢｇ（Ａｋ）は、３次元磁気センサ５０からの出力される磁気データＭｋが示す磁気ベクトルｍｋから、３次元磁気センサ５０のオフセットｃＯＦＦを減算したベクトルであり、以下の式（５）で表すことができる。なお、以下では、センサ座標系ΣＳにおいて観測される地磁気Ｂｇを表すベクトルＳＢｇ（Ａｋ）のことを、「観測地磁気ベクトルｒｋ」と表現する場合がある。また、オフセット推定装置１００が基準姿勢であるときに、センサ座標系ΣＳにおいて観測される地磁気Ｂｇを表すベクトルＳＢｇ（Ａ１）のことを「基準観測地磁気ベクトルｒ１」と表現することがある。観測地磁気ベクトルｒｋは、携帯機器１の姿勢が姿勢Ａｋであるときに、地磁気Ｂｇをセンサ座標系ΣＳにおいて表した３次元のベクトルであり、基準観測地磁気ベクトルｒ１は、携帯機器１の姿勢が姿勢Ａ１であるときに、地磁気Ｂｇをセンサ座標系ΣＳにおいて表した３次元のベクトルである。よって、観測地磁気ベクトルｒｋは、以下に示す式（６）のように、基準観測地磁気ベクトルｒ１を、姿勢Ａ１から姿勢Ａｋへの姿勢変化を表す姿勢回転行列Ｒｋの転置行列により回転させたベクトルとして表される。
これら式（５）及び式（６）から、以下の式（７）を導くことができる。
【数２】
2014149211.tif 000004
【００４１】
なお、式（７）は、３次元磁気センサ５０が磁界を誤差なく検出することができ、且つ、３次元磁気センサ５０から出力される磁気ベクトルｍｋが検出した磁界と完全に一致するという、理想的な場合にのみ成立する。そして、式（７）が成立する場合には、式（７）により定められる連立一次方程式の解として、オフセットｃＯＦＦを算出することができる。
しかし、３次元磁気センサ５０の出力する磁気データＭは測定誤差を有しており、通常、式（７）の左辺と右辺とは一致しない。よって、式（７）に基づいて定められる連立一次方程式の解として、オフセットｃＯＦＦを算出することはできない。
【００４２】
そこで、本実施形態におけるオフセット算出処理では、以下の式（８）に示す目的関数ｆ（ｘ）を導入することで、式（７）の左辺と右辺とができるだけ近い値になるような、オフセットｃＯＦＦの推定値（近似値）及び基準観測地磁気ベクトルｒ１の推定値（近似値）を、統計的な手法により算出する。
目的関数ｆ（ｘ）は、第１変数ベクトルｇ１〜ｇＮと、第２変数ベクトルｄ１〜ｄＮと、の誤差の大きさの程度を表す関数である。具体的には、目的関数ｆ（ｘ）は、以下の式（８）に示すように、第１変数ベクトルｇｋから第２変数ベクトルｄｋを減算したベクトルの大きさの二乗値の平均を表す。
ここで、目的関数ｆ（ｘ）の変数である変数ベクトルｘは、以下の式（９）に示すように、オフセットｃＯＦＦを表すための３次元の変数ベクトルｃ（以下、「オフセット変数ベクトルｃ」と称する場合がある）と、基準観測地磁気ベクトルｒ１を表すための３次元の変数ベクトルｒ（以下、「基準変数ベクトルｒ」と称する場合がある）と、を要素とする、６次元の変数ベクトルである。また、第１変数ベクトルｇｋは、式（１０）に示すように、ベクトルＳＢｇ（Ａｋ）を表すための３次元の変数ベクトルである。また、第２変数ベクトルｄｋは、式（１１）に示すように、磁気ベクトルｍｋからオフセット変数ベクトルｃを減算したベクトルを表すための３次元の変数ベクトルである。
このような目的関数ｆ（ｘ）を最小化する変数ベクトルｘ（つまり、目的関数ｆ（ｘ）を最小化するような、オフセット変数ベクトルｃ、及び、基準変数ベクトルｒ）を求めることで、オフセットｃＯＦＦとして尤らしい値、及び、基準観測地磁気ベクトルｒ１として尤らしい値を求めることができる。
なお、以下では、オフセット変数ベクトルｃと、第１変数ベクトルｇｋとを加算したベクトルを、「検出磁気変数ベクトル」と称する場合がある。
【数３】
2014149211.tif 000005
【００４３】
以下において、式（８）に示す目的関数ｆ（ｘ）を最小化する変数ベクトルｘの算出方法を、具体的に説明する。
本実施形態では、まず、目的関数ｆ（ｘ）を、以下の式（１２）に示す目的関数ｇ（ｘ）に変形する。この、目的関数ｇ（ｘ）は、目的関数ｆ（ｘ）を、変数ベクトルｘの各要素を変数とする二次形式で表現し、且つ、目的関数ｆ（ｘ）の最小化問題に影響を及ぼさない定数項を削除した関数である。このような目的関数ｇ（ｘ）を最小化する変数ベクトルｘは、目的関数ｆ（ｘ）を最小化する変数ベクトルｘと等しくなる。つまり、目的関数ｆ（ｘ）を最小化する最小化問題は、目的関数ｇ（ｘ）を最小化する最小化問題に帰着させることができる。
ここで、式（１２）に現れる行列Ｑは、二次形式である目的関数ｇ（ｘ）の係数行列であり、具体的には、式（１３）で表される６行６列の正定値対称行列である。式（１２）に現れるベクトルｂは、式（１５）で表される６次元ベクトルである。式（１３）に現れる行列ＲＡＶＥは、式（１４）で表される３行３列の行列である。式（１５）に現れるベクトルｂＲは、式（１６）で表される３次元ベクトルである。式（１５）に現れるベクトルｍＡＶＥは、式（１７）で表される３次元ベクトルである。
【数４】
2014149211.tif 000006
【００４４】
以下では、式（１２）に示す目的関数ｇ（ｘ）を最小化する変数ベクトルｘを最適解ｘＯＰＴと称する場合がある。この最適解ｘＯＰＴは、式（１３）が正定値行列の場合、以下の式（１８）により求めることができる。また、この最適解ｘＯＰＴは、以下の式（１９）に示すように、基準推定地磁気ベクトルｒＥ１と、オフセットｃＯＦＦの推定値ｃＥとを要素とする。ここで、基準推定地磁気ベクトルｒＥ１とは、基準磁気ベクトルｒ１の推定値である
従って、オフセット算出部１４０は、式（１８）により算出される最適解ｘＯＰＴから、式（１９）に示される推定値ｃＥに対応する要素を抽出することにより、オフセットｃＯＦＦの推定値ｃＥを算出することができる。
【数５】
2014149211.tif 000007
【００４５】
なお、オフセット算出部１４０は、後述する精度判定部１３０の判定結果が否定である場合には、上述した演算、つまり、オフセットの推定値ｃＥを算出するための一連の演算を実行しない。
このように、結局、オフセット算出処理は、角速度データに基づいて機器が基準姿勢から所定数の姿勢に姿勢変化したときの地磁気を直交座標系において表すための所定数のベクトルを設定し、また、磁気データに基づいて前記姿勢変化に対応する所定数の地磁気を表すための所定数のベクトル（オフセットを含まない）を設定し、各々の地磁気を表すための所定数のベクトルの誤差を小さくすることでオフセットを算出するものである。
【００４６】
＜３．分布判定処理について＞
次に、分布判定処理について説明する。
上述のとおり、分布形状判定部１５０が実行する分布判定処理は、オフセット算出部１４０が記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮに基づいてオフセットｃＯＦＦの推定値ｃＥを算出する場合に、当該推定値ｃＥがオフセットｃＯＦＦを正確に表すものであるか否かを判定する処理である。換言すれば、分布判定処理は、記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮがオフセットｃＯＦＦの推定値ｃＥの算出に適したデータであるか否かを判定する処理である。
【００４７】
上述したオフセット算出処理は、図４に示すように、センサ座標系ΣＳにおいて、補正磁気ベクトルｒ１〜ｒＮが点ＣＧを起点（始点）とした長さの等しいベクトルであること、すなわち、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点の分布形状が球面であると看做すことができること、を前提とした処理である。オフセット算出処理がこのような前提のもとに実行されることは、式（６）に示すように、観測地磁気ベクトルｒｋが、基準観測地磁気ベクトルｒ１を回転行列である姿勢回転行列Ｒｋにより回転したベクトルとして表されることからも明らかである。
【００４８】
しかし、実際には、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点の分布形状が、球面とは異なる歪んだ形状となる場合がある。この場合、仮に、オフセット算出部１４０が磁気ベクトルｍ１〜ｍＮに基づいてオフセットｃＯＦＦの推定値ｃＥを算出しても、当該推定値ｃＥは、オフセットｃＯＦＦから大きく乖離した値である可能性が高い。
【００４９】
例えば、図６に示すように、地磁気Ｂｇ及び内部磁界Ｂｉの他に、携帯機器１の姿勢Ａ及び位置Ｐの変化に連動してその向き及び大きさを変化させるベクトルＳＢｘ（Ａ、Ｐ）として表現される磁界（以下、「ノイズ磁界Ｂｘ」と称する場合がある）が、３次元磁気センサ５０により検知される場合がある。この場合、磁気ベクトルｍｋは、ベクトルＳＢｉ、ベクトルＳＢｇ（Ａｋ）、及び、ベクトルＳＢｘ（Ａｋ、Ｐｋ）の和を表す。位置ＰをＰ１〜ＰＮと変化させるとき、ベクトルＳＢｘ（Ａｋ、Ｐｋ）により示される曲面ＳＸは、図６に示すように、球面とは異なる歪んだ形状となる可能性が高い。よって、この場合、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点は、球面ＳＧの近傍には分布せず、球面とは異なる形状の立体ＳＤの表面近傍に分布する可能性が高い。
【００５０】
そして、図６に示す例のように、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点が球面とは異なる形状の立体ＳＤの表面近傍に分布する場合であっても、オフセット算出部１４０は、これら複数の点がある球面Ｓの近傍に分布すると仮定し、且つ、当該球面Ｓと上述した球面ＳＧとが一致すると仮定することで、当該球面Ｓの中心点ＣＳの座標を、球面ＳＧの中心点ＣＧの座標であるオフセットｃＯＦＦの推定値ｃＥとして算出する。
しかし、図６に示される磁気ベクトルｍ１〜ｍＮは、実際には、内部磁界Ｂｉ及び地磁気Ｂｇの他に、ノイズ磁界Ｂｘを合計した磁界を表す。よって、ノイズ磁界Ｂｘが存在する場合、すなわち、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点が立体ＳＤの表面近傍に分布する場合、これら複数の点を近傍に有する球面Ｓは、球面ＳＧとは異なる球面である可能性が高く、球面Ｓの中心点ＣＳは、球面ＳＧの中心点ＣＧとは異なる座標を有する可能性が高い。
つまり、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点が立体ＳＤの表面近傍に分布する場合、球面Ｓの中心点ＣＳの座標として算出される推定値ｃＥは、オフセットｃＯＦＦを正確に表さない可能性が高い。
【００５１】
そこで、分布形状判定部１５０は、磁気ベクトルｍ１〜ｍＮ及び姿勢回転行列Ｒ１〜ＲＮ、並びに、オフセット算出部１４０が算出する基準推定地磁気ベクトルｒＥ１に基づいて、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点の分布形状が球面と看做すことができるか否か（つまり、分布形状が歪んだ形状をしていないか否か）を判定することで、当該磁気ベクトルｍ１〜ｍＮに基づいてオフセット算出部１４０が算出するオフセットｃＯＦＦの推定値ｃＥが、オフセットｃＯＦＦを正確に表すものか否かについて判定を行う。
これにより、オフセットｃＯＦＦの推定値ｃＥの算出に適さない磁気ベクトルｍ１〜ｍＮ、つまり、ノイズを含んだ磁気ベクトルｍ１〜ｍＮに基づいて、オフセット算出部１４０がオフセットｃＯＦＦの推定値ｃＥを算出した場合に、これがオフセットｃＯＦＦを正確に表すものではないことを判定することができる。
【００５２】
以下、分布形状判定部１５０が行う分布判定処理について、具体的に説明する。
図５に示すように、分布形状判定部１５０は、第１行列演算部１５２、第２行列演算部１５４、及び、類似度判定部１５６を備える。
【００５３】
第１行列演算部１５２は、記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮに基づいて、以下の式（２０）に示す行列Ｓを演算する。ここで、式（２０）に現れるベクトルｓＫは、以下の式（２１）に示す３次元のベクトルであり、行列Ｓは、センサ座標系ΣＳにおいて磁気ベクトルｍ１〜ｍＮの分散を表す３行３列の対称行列である。以下では、行列Ｓを「磁気データ分散行列」と称する場合がある。
【数６】
2014149211.tif 000008
【００５４】
第２行列演算部１５４は、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮと、オフセット算出部１４０が算出する基準推定地磁気ベクトルｒＥ１と、に基づいて、以下の式（２５）に示す行列Ｅを演算する。
具体的には、まず、以下の式（２２）に示すように、基準推定地磁気ベクトルｒＥ１を姿勢回転行列Ｒｋにより回転させることで、３次元のベクトルである推定地磁気ベクトルｒＥｋを算出する。次に、以下の式（２３）に示すように、推定地磁気ベクトルｒＥ１〜ｒＥＮの平均を演算することで、３次元のベクトルあるベクトルｒＥＡＶＥを算出する。また、以下の式（２４）に示すように、ベクトルｒＥＡＶＥ及び推定地磁気ベクトルｒＥｋに基づいて、３次元のベクトルであるベクトルｅｋを算出する。そして、以下の式（２５）に示すように、ベクトルｅｋに基づいて、３行３列の対称行列である行列Ｅを算出する。
ここで、行列Ｅは、以下の式（２３）〜式（２５）からも明らかなように、推定地磁気ベクトルｒＥｋの分散を表す行列である。以下では、行列Ｅを「推定地磁気データ分散行列」と称する場合がある。
【数７】
2014149211.tif 000009
【００５５】
ノイズ磁界Ｂｘの影響が無視できる程度に小さい場合、オフセットｃＯＦＦの推定値ｃＥの表すベクトルと基準推定地磁気ベクトルｒＥ１とを加算したベクトルにより示されるセンサ座標系ΣＳ上の点は、磁気ベクトルｍ１により示されるセンサ座標系ΣＳ上の点と一致すると看做すことができる。
また、推定地磁気ベクトルｒＥｋは、基準観測地磁気ベクトルｒ１の推定値である基準推定地磁気ベクトルｒＥ１を姿勢回転行列Ｒｋにより回転させたベクトルであり、基準観測地磁気ベクトルｒ１を姿勢回転行列Ｒｋにより回転させたベクトルである観測地磁気ベクトルｒｋの推定値（近似値）である。よって、ノイズ磁界Ｂｘの影響が無視できる程度に小さい場合、オフセットｃＯＦＦの推定値ｃＥの表すベクトルと推定地磁気ベクトルｒＥｋとを加算したベクトルにより示されるセンサ座標系ΣＳ上の点は、磁気ベクトルｍｋにより示されるセンサ座標系ΣＳ上の点と一致すると看做すことができる。
すなわち、ノイズ磁界Ｂｘの影響が無視できる程度に小さく、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点の分布形状が球面であると看做すことができることができれば、推定地磁気ベクトルｒＥ１〜ｒＥＮの示すセンサ座標系ΣＳ上の複数の点の分布形状と、磁気ベクトルｍ１〜ｍＮの示すセンサ座標系ΣＳ上の複数の点の分布形状とは、一致すると看做すことができる。
【００５６】
また、ノイズ磁界Ｂｘの影響が大きい場合には、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点の分布形状は、球面とは異なる歪んだ形状となる可能性が高い。一方、この場合であっても、推定地磁気ベクトルｒＥ１〜ｒＥＮの示すセンサ座標系ΣＳ上の複数の点の分布形状は、球面となる。
【００５７】
すなわち、ノイズ磁界Ｂｘの影響が無視できる程度に小さい場合には、推定地磁気ベクトルｒＥ１〜ｒＥＮの示すセンサ座標系ΣＳ上の複数の点の分布形状と、磁気ベクトルｍ１〜ｍＮの示すセンサ座標系ΣＳ上の複数の点の分布形状とが、一致すると看做すことができるが、ノイズ磁界Ｂｘの影響が大きい場合には、当該２つの分布形状は異なるものとなる。
よって、推定地磁気ベクトルｒＥ１〜ｒＥＮの示すセンサ座標系ΣＳ上の複数の点の分布形状と、磁気ベクトルｍ１〜ｍＮの示すセンサ座標系ΣＳ上の複数の点の分布形状との相違の程度に基づいて、ノイズ磁界Ｂｘの影響の大きさの程度を推定することができる。すなわち、当該２つの分布形状の相違の程度が所定の範囲内にあるか否かを判定すること、換言すれば、当該２つの分布形状が一致していると看做すことができるか否かを判定することにより、磁気ベクトルｍ１〜ｍＮに基づいてオフセット算出部１４０により算出されるオフセットｃＯＦＦの推定値ｃＥがオフセットｃＯＦＦを正確に表すものであるか否かを判定することができる。
【００５８】
なお、推定地磁気ベクトルｒＥ１〜ｒＥＮの示すセンサ座標系ΣＳ上の複数の点の分布形状と、磁気ベクトルｍ１〜ｍＮの示すセンサ座標系ΣＳ上の複数の点の分布形状との相違の程度が所定の範囲内にあるか否かの判定は、どのような方法により求めてもよい。
本実施形態では、一例として、当該２つの分布形状が一致していると看做すことができるか否かの判定を、行列Ｅ及び行列Ｓが一致していると看做すことができるか否かを判定することにより、実行する。
具体的には、類似度判定部１５６において、推定地磁気ベクトルｒＥｋの分散を表す行列Ｅの成分と、磁気ベクトルｍ１〜ｍＮの分散を表す行列Ｓの成分の、相違の程度が、所定の範囲内にあるか否かを判定（行列Ｅと、行列Ｓとが一致または類似しているか否かを判定）することで、推定地磁気ベクトルｒＥ１〜ｒＥＮの示すセンサ座標系ΣＳ上の複数の点の分布形状と、磁気ベクトルｍ１〜ｍＮの示すセンサ座標系ΣＳ上の複数の点の分布形状の相違の程度が所定の範囲内にあるか否かを判定し、これにより、オフセット算出部１４０により算出されるオフセットｃＯＦＦの推定値ｃＥがオフセットｃＯＦＦを正確に表すものであるか否かを判定する。
以下、具体的な判定の方法について説明する。
【００５９】
行列Ｅの有する３つの固有値を、大きい順番に、最大固有値λＥ，ＭＡＸ、中間固有値λＥ，ＭＩＤ、最小固有値λＥ，ＭＩＮとし、これらに対応する正規化された３つの固有ベクトルを、それぞれ、固有ベクトルｕＥ，ＭＡＸ、固有ベクトルｕＥ，ＭＩＤ、固有ベクトルｕＥ，ＭＩＮとする。
また、行列Ｓの有する３つの固有値を、大きい順番に、最大固有値λＳ，ＭＡＸ、中間固有値λＳ，ＭＩＤ、最小固有値λＳ，ＭＩＮとし、これらに対応する正規化された３つの固有ベクトルを、それぞれ、固有ベクトルｕＳ，ＭＡＸ、固有ベクトルｕＳ，ＭＩＤ、固有ベクトルｕＳ，ＭＩＮとする。
行列Ｅ及び行列Ｓが一致すると看做すことができる場合には、最大固有値λＥ，ＭＡＸ、中間固有値λＥ，ＭＩＤ、最小固有値λＥ，ＭＩＮは、それぞれ、最大固有値λＳ，ＭＡＸ、中間固有値λＳ，ＭＩＤ、最小固有値λＳ，ＭＩＮと等しいと看做すことができ、また、固有ベクトルｕＥ，ＭＡＸ、固有ベクトルｕＥ，ＭＩＤ、固有ベクトルｕＥ，ＭＩＮは、それぞれ、固有ベクトルｕＳ，ＭＡＸ、固有ベクトルｕＳ，ＭＩＤ、固有ベクトルｕＳ，ＭＩＮと平行であると看做すことができる。
すなわち、行列Ｅ及び行列Ｓが、以下の式（２６）に示す第１判定条件、以下の式（２７）に示す第２判定条件、以下の式（２８）に示す第３判定条件、以下の式（２９）に示す第４判定条件、以下の式（３０）に示す第５判定条件、及び、以下の式（３１）に示す第６判定条件を満たす場合には、行列Ｅ及び行列Ｓが一致すると看做すことができる。
ここで、式（２６）〜式（２８）に現れる第１閾値α１、第２閾値α２、及び、第３閾値α３は、「０」よりも大きく且つ「１」よりも小さい実数であり、式（２９）〜式（３１）に現れる第４閾値α４、第５閾値α５、及び、第６閾値α６は、「１」以上の実数である。
なお、第１乃至第３判定条件は、２つの固有ベクトルの示す方向が平行または当該２つの固有ベクトルのなす角度が所定の角度以下であることを表す条件であれば、以下の式（２６）〜式（２８）に示す条件以外の条件であっても構わない。
また、第４乃至第６判定条件は、２つの固有値が、同一、若しくは、同一であると看做せること、または、当該２つの固有値の近似の程度を表す指標値が所定の閾値以上であることを表す条件であれば、以下の式（２６）〜式（２８）に示す条件以外の条件であっても構わない。例えば、２つの固有値の差分値の絶対値が、所定の閾値以下であることを条件としても良い。
【数８】
2014149211.tif 000010
【００６０】
類似度判定部１５６は、まず、行列Ｅの有する３つの固有値λＥ，ＭＡＸ、λＥ，ＭＩＤ、及び、λＥ，ＭＩＮと３つの固有ベクトルｕＥ，ＭＡＸ、ｕＥ，ＭＩＤ、及び、ｕＥ，ＭＩＮ、並びに、行列Ｓの有する３つの固有値λＳ，ＭＡＸ、λＳ，ＭＩＤ、及び、λＳ，ＭＩＮと３つの固有ベクトルｕＳ，ＭＡＸ、ｕＳ，ＭＩＤ、及び、ｕＳ，ＭＩＮを算出する。そして、算出した固有値及び固有ベクトルが、式（２６）〜式（３１）に示す第１判定条件〜第６判定条件の全てを充足するか否かを判定する。
判定結果が肯定である場合には、行列Ｅ及び行列Ｓが一致すると看做すことができる。この場合、推定地磁気ベクトルｒＥ１〜ｒＥＮの示すセンサ座標系ΣＳ上の複数の点の分布形状と、磁気ベクトルｍ１〜ｍＮの示すセンサ座標系ΣＳ上の複数の点の分布形状とが一致すると看做すことができ、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点の分布形状が球面と看做すことができるため、オフセット算出部１４０により算出されるオフセットｃＯＦＦの推定値ｃＥが、オフセットｃＯＦＦを正確に表すものであると看做すことができる。
一方、判定結果が否定である場合、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点の分布形状が、球面とは異なる歪んだ形状となるため、オフセット算出部１４０により算出されるオフセットｃＯＦＦの推定値ｃＥが、オフセットｃＯＦＦを正確に表さない可能性が高い。
このように、類似度判定部１５６は、行列Ｅ及び行列Ｓが第１判定条件〜第６判定条件を充足するか否かを判定することにより、記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮに基づいてオフセット算出部１４０が算出したオフセットｃＯＦＦの推定値ｃＥが、オフセットｃＯＦＦを正確に表すものであるか否かを判定することができる。
【００６１】
なお、本実施形態では、類似度判定部１５６は、行列Ｅ及び行列Ｓが、式（２６）〜式（３１）に示す第１判定条件〜第６判定条件の全てを充足するか否かを判定するが、本発明はこのような態様に限定されるものではなく、類似度判定部１５６は、行列Ｅ及び行列Ｓが、第１乃至第６条件のうち少なくとも一部の条件を満たすか否かを判定するものであってもよい。
行列Ｅ及び行列Ｓが、第１乃至第６条件のうち少なくとも一部の条件を満たす場合であっても、行列Ｅ及び行列Ｓが一致すると看做すことができるため、類似度判定部１５６は、オフセット算出部１４０により算出されるオフセットｃＯＦＦの推定値ｃＥがオフセットｃＯＦＦを正確に表すものであるか否かを判定することができる。
なお、以下では、行列Ｅ及び行列Ｓが一致すると看做すことができるか否かの判定、すなわち、推定地磁気ベクトルｒＥ１〜ｒＥＮの示すセンサ座標系ΣＳ上の複数の点の分布形状と磁気ベクトルｍ１〜ｍＮの示すセンサ座標系ΣＳ上の複数の点の分布形状が一致すると看做すことができるか否かについての判定を、「第１の判定」と称する場合がある。
【００６２】
＜４．精度判定処理について＞  
次に、精度判定処理について説明する。
上述のとおり、精度判定部１３０が実行する精度判定処理は、オフセット算出部１４０が記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮに基づいてオフセットｃＯＦＦの推定値ｃＥを算出する演算を実行する場合に、当該演算の精度が高いものであるか否かについて判定する処理である。換言すれば、精度判定処理は、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮがオフセットｃＯＦＦの推定値ｃＥの算出に適したデータであるか否かを判定する処理である。
【００６３】
上述のとおり、オフセット算出部１４０は、式（１８）に示す連立一次方程式を解くことで最適解ｘＯＰＴを求め、当該最適解ｘＯＰＴに基づいて推定値ｃＥを算出する。
一般的に、連立一次方程式の解を求める演算において、当該連立一次方程式の係数行列が有する固有値のうち最小の固有値が小さな値となる場合には、大きな値となる場合と比較して、当該演算の精度は劣る。従って、連立一次方程式の係数行列の最小固有値に基づいて、当該演算の精度を評価することができる。
本実施形態の精度判定処理では、式（１８）に示す連立一次方程式の係数行列である正定値対称行列Ｑが有する固有値のうち最小の固有値λＱ，ＭＩＮを、当該連立一次方程式の解を求める演算の精度の高さの程度を表す「精度指標」と定義する。そして、精度判定部１３０は、「精度指標」である固有値λＱ，ｍｉｎに基づいて、式（１８）に示す演算の精度が所定の精度以上の精度を有するか否か判定する。
【００６４】
以下、精度判定部１３０が行う精度判定処理について、具体的に説明する。
図５に示すように、精度判定処理は、指標生成部１３２、及び、条件判定部１３４を備える。
指標生成部１３２は、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮに基づいて、行列Ｑの有する固有値のうち最小の固有値λＱ，ＭＩＮ（つまり「精度指標」）を生成する。
条件判定部１３４は、指標生成部１３２が生成した固有値λＱ，ＭＩＮが、以下の式（３２）に示す条件を満たすか否かを判定することで、式（１８）に示す連立一次方程式の解を求める演算の精度の高さが、所定の精度以上の精度を有するか否かについて判定する。ここで、式（３２）に現れる閾値βは、予め定められた正の実数である。
【数９】
2014149211.tif 000011
【００６５】
条件判定部１３４の判定結果が肯定の場合、すなわち、固有値λＱ，ＭＩＮが式（３２）に示す条件を満たす場合、式（３２）に示す連立一次方程式の解を求める演算が所定の精度以上の精度を有していると看做すことができるため、式（１８）により算出される推定値ｃＥ（最適解ｘＯＰＴ）は、オフセットｃＯＦＦを正確に表す値と看做すことができる。よって、この場合、オフセット算出部１４０は、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮに基づいて、オフセットｃＯＦＦの推定値ｃＥを算出する。
一方、条件判定部１３４の判定結果が否定の場合、推定値ｃＥは、オフセットｃＯＦＦを正確に表さない可能性が高い。よって、この場合、オフセット算出部１４０は、オフセットｃＯＦＦの推定値ｃＥを算出する演算を実行しない。
【００６６】
このように、精度判定部１３０は、固有値λＱ，ＭＩＮが式（３２）に示す条件を充足するか否かを判定することにより、オフセット算出部１４０が記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮに基づいてオフセットｃＯＦＦの推定値ｃＥを算出することが、適切であるか否かを判定する。
【００６７】
＜５．まとめ＞  
以上において説明したように、本実施形態に係るオフセット推定装置１００は、記憶部３００が記憶する姿勢回転行列Ｒ１〜ＲＮ及び磁気ベクトルｍ１〜ｍＮに基づいてオフセットｃＯＦＦの推定値ｃＥを算出するオフセット算出部１４０を備える。
オフセットｃＯＦＦの推定値は、例えば、特開２０１２−１９８１１２に示すように、３次元磁気センサからの出力結果のみに基づいて算出することも可能である。
しかし、１種類の物理量を検出する１のセンサからの出力結果に基づいてオフセットｃＯＦＦの推定値を算出するよりも、異種の物理量を検出する複数のセンサからの出力結果を統合してオフセットｃＯＦＦの推定値を算出する方が、より正確にまたはより短時間で算出することが可能であり、更には、より悪条件下においてもオフセットｃＯＦＦの推定値を正確に算出することができる。
ここで、「悪条件」とは、携帯機器１の姿勢変化が小さい場合、例えば、姿勢Ａ１〜ＡＮがいずれも姿勢Ａ１とほぼ同一の姿勢であり、姿勢回転行列Ｒ１〜ＲＮの各々と単位行列Ｉ３×３とが同一の行列であると看做される場合や、または、姿勢回転行列Ｒ１〜ＲＮが表すＮ個の姿勢変化におけるＮ個の回転軸が同一の軸であると看做される場合等である。
携帯機器１の姿勢変化は、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点の分布として表現することができる。そして、オフセットｃＯＦＦの推定値は、当該複数の点の分布形状に基づいて、統計的な手法により算出される。そのため、磁気ベクトルｍ１〜ｍＮのみに基づいてオフセットｃＯＦＦの推定値を算出する場合、携帯機器１の姿勢変化が小さい悪条件下においては、センサ座標系ΣＳにおいて磁気ベクトルｍ１〜ｍＮが広範囲に分布しないので、その磁気ベクトルｍ１〜ｍＮの分布が携帯機器１の姿勢変化に起因する場合であっても、磁気ベクトルｍ１〜ｍＮが有する「ノイズ」に埋もれてしまう。そのため、当該携帯機器１の姿勢変化が、算出されるオフセットｃＯＦＦの推定値に対して正確に反映されない。つまり、この場合、オフセットｃＯＦＦの推定値を正確に求めることができない。
これに対して、本実施形態では、３次元磁気センサ５０から出力される磁気データＭ１〜ＭＮの表す磁気ベクトルｍ１〜ｍＮに加え、３次元角速度センサ６０から出力される角速度データＷ１〜ＷＮの表す角速度ベクトルω１〜ωＮを用いて生成される姿勢回転行列Ｒ１〜ＲＮに基づいて、オフセットｃＯＦＦの推定値ｃＥを算出する。角速度ベクトルω１〜ωＮは、携帯機器１の姿勢変化を直接的に表すため、携帯機器１の姿勢変化が小さい場合であっても、当該姿勢変化を正確に表すことができる。そのため、携帯機器１の姿勢変化が小さい悪条件下においても、当該姿勢変化を「ノイズ」と看做すことを防止して、オフセットｃＯＦＦの推定値ｃＥの算出に活用することができる。よって、本実施形態に係るオフセット推定装置１００は、磁気ベクトルｍ１〜ｍＮのみに基づいてオフセットｃＯＦＦの推定値を算出する場合と比較して、携帯機器１の姿勢変化をより正確且つ鋭敏に反映したオフセットｃＯＦＦの推定値ｃＥを算出することができる。
このように、本実施形態に係るオフセット推定装置１００は、３次元磁気センサからの出力結果のみに基づいてオフセットｃＯＦＦの推定値を算出する場合に比べて、
悪条件下であっても、より正確なオフセットｃＯＦＦの推定値ｃＥを算出することができる。
【００６８】
また、本実施形態に係るオフセット推定装置１００は、記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮがオフセットｃＯＦＦの推定値ｃＥの算出に適したデータであるか否かを判定する処理である分布判定処理を実行する分布形状判定部１５０を備える。
従って、記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮが、ノイズの影響等により、オフセットｃＯＦＦの推定値ｃＥの算出に適さないデータである場合に、オフセット算出部１４０が算出したオフセットｃＯＦＦの推定値ｃＥが、オフセットｃＯＦＦを正確に表さない値であることを判断することができる。
【００６９】
なお、記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮがオフセットｃＯＦＦの推定値ｃＥの算出に適したデータであるか否かを判定、すなわち、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点の分布形状が球面であると看做すことができるか否かについての判定は、例えば、特開２０１２−１９８１１２に示すように、３次元磁気センサからの出力結果のみに基づいて行うことも可能である。
しかし、当該判定は、１種類の物理量を検出する１のセンサからの出力結果に基づいて行うよりも、異種の物理量を検出する複数のセンサからの出力結果を統合して行う方が、より正確且つ短時間に行うことができる。
本実施形態に係る分布形状判定部１５０は、３次元磁気センサ５０から出力される磁気データＭ１〜ＭＮの表す磁気ベクトルｍ１〜ｍＮに加えて、３次元角速度センサ６０から出力される角速度データＷ１〜ＷＮの表す角速度ベクトルω１〜ωＮを用いて定められる姿勢回転行列Ｒ１〜ＲＮに基づいて、分布判定処理を実行する。従って、本実施形態に係るオフセット推定装置１００は、３次元磁気センサからの出力結果のみに基づいて分布判定処理を実行する場合に比べ、より短時間且つ正確に分布判定処理を実行することができる。
【００７０】
また、本実施形態に係るオフセット推定装置１００は、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮに基づいてオフセットｃＯＦＦの推定値ｃＥを算出する演算を実行する場合に、当該演算の精度が高いものであるか否かについて判定する処理である精度判定処理を実行する精度判定部１３０を備える。
従って、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮに基づいて推定値ｃＥを算出する演算の精度が低いと想定される場合には、オフセット算出部１４０がオフセット算出処理を実行すること、つまり、推定値ｃＥを算出する処理を実行することを防止することができる。このため、オフセットｃＯＦＦを正確に表さない推定値ｃＥが算出されることを防止することが可能となる。
【００７１】
＜Ｂ：第２実施形態＞
上述した第１実施形態において、分布形状判定部１５０は、オフセット算出部１４０が算出する基準推定地磁気ベクトルｒＥ１を用いて、分布判定処理を行った。
これに対して、第２実施形態では、オフセット算出部からの出力値を用いずに、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲN及び磁気ベクトルｍ１〜ｍＮのみに基づいて分布判定処理を行う点で、第１実施形態と相違する。
なお、以下に例示する各形態において作用や機能が第１実施形態と同等である要素については、以上の説明で参照した符号を流用して各々の詳細な説明を適宜に省略する（以下で説明する実施形態及び変形例についても同様）。
【００７２】
図７は、第２実施形態に係るオフセット推定装置１００Ａの機能を表した機能ブロック図である。
オフセット推定装置１００Ａは、分布形状判定部１５０の代わりに分布形状判定部１２０を備える点、オフセット算出部１４０の代わりにオフセット算出部１４０Ａを備える点、及び、採用部１６０を備えない点を除き、第１実施形態に係るオフセット推定装置１００と同様に構成されている。
オフセット算出部１４０は、分布形状判定部１２０が行う判定の結果が肯定であり、且つ、精度判定部１３０が行う判定の結果が肯定である場合に、オフセットｃＯＦＦの推定値ｃＥを算出する。なお、オフセット算出部１４０Ａが行うオフセット算出処理は、第１実施形態に係るオフセット算出部１４０が行うオフセット算出処理と同様である。
【００７３】
分布形状判定部１２０は、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲN及び磁気ベクトルｍ１〜ｍＮを用いて、分布判定処理を実行する。
図７に示すように、分布形状判定部１２０は、第１ベクトル演算部１２２、第２ベクトル演算部１２４、及び、条件判定部１２６を備える。
第１ベクトル演算部１２２は、記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮに基づいて、式（２０）に示す行列Ｓが有する固有値のうち最小の固有値λＳ，ＭＩＮに対応する正規化された固有ベクトルｕＳ，ＭＩＮを演算する。
第２ベクトル演算部１２４は、記憶部３００に記憶されている姿勢回転行列Ｒ１〜ＲＮに基づいて、以下の式（３３）に示す行列Ｄが有する固有値のうち最大の固有値λＤ，ＭＡＸに対応する正規化された固有ベクトルｕＤ，ＭＡＸを演算する。なお、第２ベクトル演算部１２４は、オフセット算出部１４０が算出した行列ＲＡＶＥを用いて行列Ｄを算出することで固有ベクトルｕＤ，ＭＡＸを演算しても構わない。
【数１０】
2014149211.tif 000012
【００７４】
条件判定部１２６は、第１ベクトル演算部１２２が演算した固有ベクトルｕＳ，ＭＩＮ、及び、第２ベクトル演算部１２４が演算した固有ベクトルｕＤ，ＭＡＸが、平行であると看做すことができるか否かについて判定する。
具体的には、条件判定部１２６は、固有ベクトルｕＳ，ＭＩＮ及び固有ベクトルｕＤ，ＭＡＸが、以下の式（３４）に示す条件を満たすか否かを判定することで、両者が平行であると看做すことができるか否かを判定する。ここで、式（３４）に現れる値γは、０＜γ＜１を満たす、予め定められた実数である。
条件判定部１２６の判定結果が肯定の場合、すなわち、固有ベクトルｕＳ，ＭＩＮ及び固有ベクトルｕＤ，ＭＡＸが平行であると看做せる場合、記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮに基づいて算出される推定値ｃＥが、オフセットｃＯＦＦを正確に表すものと看做すことができる。一方、条件判定部１２６の判定結果が否定の場合、記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮに基づいて算出される推定値ｃＥは、オフセットｃＯＦＦを正確に表さない可能性が高い。
このように、分布形状判定部１２０は、固有ベクトルｕＳ，ＭＩＮ及び固有ベクトルｕＤ，ＭＡＸが式（３４）をに示す条件を充足するか否かを判定することにより、オフセット算出部１４０が記憶部３００に記憶されている磁気ベクトルｍ１〜ｍＮに基づいてオフセットｃＯＦＦの推定値ｃＥを算出することが、適切であるか否かを判定する。
【数１１】
2014149211.tif 000013
【００７５】
＜Ｃ．変形例＞  
本発明は上述した実施形態に限定されるものではなく、例えば、以下の変形が可能である。また、以下に示す変形例のうちの２以上の変形例を、矛盾しない範囲で適宜組み合わせることもできる。
【００７６】
（１）変形例１  
上述した第１実施形態において、分布形状判定部１５０は、第１の判定を行うことにより、分布判定処理を行うが、分布判定処理は、磁気ベクトルｍ１〜ｍＮにより示されるセンサ座標系ΣＳ上の複数の点の分布形状が球面であると看做すことができるか否かについての判定を行うことができるものであれば、どのような処理であってもよい。
例えば、特開２０１２−１９８１１２に示す方法を用いて分布判定処理を実行してもよい。
【００７７】
（２）変形例２  
上述した実施形態及び変形例において、オフセット推定装置１００は、姿勢演算部１１０、精度判定部１３０、オフセット算出部１４０、分布形状判定部１５０、及び、採用部１６０を備えるが、オフセット推定装置１００は、少なくとも姿勢演算部１１０、及び、オフセット算出部１４０を備えるものであればよい。
【００７８】
（３）変形例３  
上述した実施形態及び変形例において、オフセット推定プログラム２００は、ＲＯＭ３０に格納されているが、携帯機器１で読み取り可能な記録媒体、または、携帯機器１と通信可能なサーバ装置が備える記憶装置等に記録されているものであってもよい。
【符号の説明】
【００７９】
１…携帯機器、１０…ＣＰＵ、２０…ＲＡＭ、３０…ＲＯＭ、５０…３次元磁気センサ、６０…３次元角速度センサ、１００…オフセット推定装置、１１０…姿勢演算部、１３０…精度判定部、１３２…指標生成部、１３４…条件判定部、１４０…オフセット算出部、１５０…分布形状判定部、１５２…第１行列演算部、１５４…第２行列演算部、１５６…類似度判定部、２００…オフセット推定プログラム、３００…記憶部。
【図１】
2014149211.tif 000014
【図２】
2014149211.tif 000015
【図３】
2014149211.tif 000016
【図４】
2014149211.tif 000017
【図５】
2014149211.tif 000018
【図６】
2014149211.tif 000019
【図７】
2014149211.tif 000020