(57)【要約】【課題】ユーザによるキャリブレーション処理に伴う特定の動作等を必要とすることなく、地磁気センサにオフセット補正を良好に行う。【解決手段】着磁後のキャリブレーション処理において、電子機器１００を、傾斜角αを有する姿勢を保った状態で、向きを変化させた際に取得した磁気データが、半径Ｒａの球面Ｓａと特定の平面Ｆｂとの交差によって形成される円周Ｃｂ上に分布することを利用して、統計的手法により円周Ｃｂの中心座標Ｐｂを推定する。次いで、電子機器１００の姿勢に該当する磁気データ群を、事前にメモリ部１３０に格納されている着磁前の基準情報から抽出し、当該磁気データ群が球面Ｓ０の円周ＣＮ上に分布することを利用して、統計的手法により円周ＣＮの中心座標ＰＮを推定する。推定された着磁後の中心座標Ｐｂ、及び、基準情報から抽出された着磁前の中心座標ＰＮに基づいて、地磁気センサ１１２のオフセット値を算出する。【選択図】図６
2017166895.tif 000002
【特許請求の範囲】
【請求項１】
電子機器において、
前記電子機器の周辺の磁場を検出して、複数の軸方向の磁気データとして出力する地磁気センサと、
前記電子機器の姿勢に対応するセンサデータを出力するモーションセンサと、
複数の第１の磁気データと複数の第２の磁気データとに基づいて前記地磁気センサのオフセット値を取得するオフセット値算出部を有する演算回路部と、
を備え、
前記複数の第１の磁気データは、前記地磁気センサが前記周辺の磁場の影響を受けている第１の磁場環境において前記電子機器が前記センサデータに基づいて複数の特定の姿勢の各々であると検出されるときに前記地磁気センサから出力される前記磁気データであり、
前記複数の第２の磁気データは、前記地磁気センサが前記周辺の磁場の影響を受けていない第２の磁場環境において前記電子機器が前記複数の特定の姿勢を含む複数の姿勢の各々であるときの前記地磁気センサによる複数の前記磁気データと、前記複数の姿勢の各々であるときの前記センサデータに基づく複数の姿勢情報と、を互いに対応付けて有する基準情報から抽出される前記磁気データであることを特徴とする電子機器。
【請求項２】
前記オフセット値算出部は、
前記基準情報における前記複数の磁気データの分布の、前記複数の軸方向を座標軸とする３次元座標空間での球の中心点である第１の球の中心座標と、前記基準情報における前記複数の磁気データのうちの、前記電子機器が前記複数の特定の姿勢であるときの複数の特定の磁気データの、前記３次元座標空間で円形に分布している第１の分布軌跡の第１の円の中心座標及び半径と、前記第１の磁場環境において、前記電子機器が前記複数の特定の姿勢であるときに前記地磁気センサから出力される複数の前記磁気データの、前記３次元座標空間で円形に分布している第２の分布軌跡の第２の円の中心座標及び半径と、に基づいて、前記地磁気センサの前記オフセット値を取得することを特徴とする請求項１に記載の電子機器。
【請求項３】
前記オフセット値算出部は、
前記第１の球の中心座標と、前記第１の円の中心座標及び半径と、前記第２の円の中心座標及び半径と、に基づいて、前記第１の磁場環境において前記電子機器が前記複数の姿勢の各々である場合に前記地磁気センサから出力される複数の前記磁気データが前記３次元座標空間で分布すると推定される球の中心点を第２の球の中心座標として推定し、
前記第１の球の中心座標と前記第２の球の中心座標との差分を前記地磁気センサの前記オフセット値として取得することを特徴とする請求項２に記載の電子機器。
【請求項４】
前記オフセット値算出部は、
前記モーションセンサから出力される加速度データに基づいて算出される重力方向の座標軸を基準にして、前記第１の磁場環境において、前記電子機器を一定の傾きを保持した状態で前記電子機器の向きを変化させたときに前記地磁気センサから出力された複数の前記磁気データに対して、所定の統計的手法を用いて前記第２の分布軌跡の中心点を算出し、
前記電子機器を一定の傾きを保持した状態で前記電子機器の向きを変化させたときに前記モーションセンサから出力される角速度データにより規定される前記電子機器の姿勢に基づいて前記基準情報から抽出された前記姿勢に関連付けられた複数の前記磁気データに対して、前記統計的手法を用いて前記第１の分布軌跡の中心点を算出することを特徴とする請求項２又は３に記載の電子機器。
【請求項５】
前記演算回路部は、前記地磁気センサの前記オフセット値が適切であるか否かを判定するオフセット値判定部を、さらに有し、
前記オフセット値判定部において、前記オフセット値が適切でないと判定されたときに、前記オフセット値算出部における前記オフセット値の算出が実行されることを特徴とする請求項１乃至４のいずれかに記載の電子機器。
【請求項６】
前記基準情報における前記姿勢情報は、前記電子機器を全天球における複数の異なる方向に向けたときの前記電子機器の姿勢を規定する情報を有していることを特徴とする請求項１乃至５のいずれかに記載の電子機器。
【請求項７】
電子機器におけるセンサ較正方法であって、
前記電子機器は、該電子機器の周辺の磁場を検出して、複数の軸方向の磁気データとして出力する地磁気センサと、前記電子機器の姿勢に対応するセンサデータを出力するモーションセンサと、を有し、
前記地磁気センサが前記周辺の磁場の影響を受けている第１の磁場環境において前記電子機器が前記センサデータに基づいて複数の特定の姿勢の各々であると検出されるときに前記地磁気センサから出力される複数の第１の磁気データを取得し、
前記地磁気センサが前記周辺の磁場の影響を受けていない第２の磁場環境において前記電子機器が前記複数の特定の姿勢を含む複数の姿勢の各々であるときに前記地磁気センサから出力される複数の前記磁気データと前記電子機器が前記複数の姿勢であるときに前記センサデータに基づく姿勢情報とを対応付けて有する基準情報から、前記第２の磁場環境で前記電子機器が前記複数の特定の姿勢の各々であるときの複数の第２の磁気データを抽出し、
前記複数の第１の磁気データと前記複数の第２の磁気テータとに基づいて、前記地磁気センサのオフセット値を取得する、
ことを特徴とするセンサ較正方法。
【請求項８】
電子機器におけるセンサ較正プログラムであって、
前記電子機器は、該電子機器の周辺の磁場を検出して、複数の軸方向の磁気データとして出力する地磁気センサと、前記電子機器の姿勢に対応するセンサデータを出力するモーションセンサと、を有し、
コンピュータに、
前記地磁気センサが前記周辺の磁場の影響を受けている第１の磁場環境において前記電子機器が前記センサデータに基づいて複数の特定の姿勢の各々であると検出されるときに前記地磁気センサから出力される複数の第１の磁気データを取得させ、
前記地磁気センサが前記周辺の磁場の影響を受けていない第２の磁場環境において前記電子機器が、前記複数の特定の姿勢を含む複数の特定の各々であるときに前記地磁気センサから出力される複数の前記磁気データと前記電子機器が前記複数の姿勢であるときの前記センサデータに基づく姿勢情報とを対応付けて有する基準情報から、前記第２の磁場環境で前記電子機器が前記複数の特定の姿勢の各々であるときの複数の第２の磁気データを抽出させ、
前記複数の第１の磁気データと前記複数の第２の磁気テータとに基づいて、前記地磁気センサのオフセット値を取得させる、
ことを特徴とするセンサ較正プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地磁気を検出するための地磁気センサを備えた電子機器、及び、当該電子機器に適用可能な地磁気センサのセンサ較正方法、並びに、センサ較正プログラムに関する。
【背景技術】
【０００２】
近年、携帯電話機やスマートフォン（高機能携帯電話機）、ナビゲーション端末、各種のウェアラブル機器等の携帯型（又は装着型）の電子機器の分野において、位置情報や地図情報を利用した種々のサービスが提供されている。これらの電子機器は、一般に地磁気センサを備え、この地磁気センサにより検出された地磁気に基づいて、方位を測定する手法（いわゆる、電子コンパス）が採用されている。
【０００３】
ところで、このような電子機器には、コンデンサやスピーカ等の磁場を発生する電子部品が搭載されているため、地磁気センサの周囲の電子部品や、着磁した電子部品の金属パッケージ等から漏れる磁界が存在している。また、電子機器の周辺に強い磁界が存在している場合もある。そのため、電子機器に搭載された地磁気センサは、本来の検出対象である地磁気に加え、電子機器の内外に存在する磁界が合成された磁界を検出することになる。このような周辺磁場が存在する状態で地磁気センサにより検出された地磁気の測定値に基づいて算出された方位は、実際の地磁気の正確な方位とは異なることになる。そこで、このような問題を解決するために、電子機器内部の電子部品等から発生する磁界等に起因する、地磁気に対する誤差（＝オフセット）分を補正するためのキャリブレーション処理が必要になる。
【０００４】
従来、キャリブレーション処理による地磁気センサのオフセット補正の手法は、種々提案されている。例えば特許文献１には、３軸方向の地磁気を検出する地磁気センサの方向を任意に変化させて取得された磁気データが球面上に分布することを利用して、地磁気センサにより取得された磁気データ群の各点の近傍に、球面が位置するような特定の球の中心座標を統計的手法によって推定し、その中心座標に基づいてオフセット情報（オフセット値）を算出する手法が記載されている。また、例えば特許文献２には、３軸の地磁気センサを傾けた状態で地表面に平行に回転させて取得した磁気データ（磁界データ）が同一平面内に存在する場合に、当該磁気データの分布軌跡となる円弧の中心座標と半径を求めて、仮オフセット値として算出する手法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第４３９１４１６号公報
【特許文献２】特開２００６−７８４７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した特許文献１に開示された、地磁気センサのオフセット値の取得方法においては、磁気データの取得期間中に地磁気センサの向きを任意に変化させる必要がある。ここで、仮に、地磁気センサの向きが任意に変化せず、特定軸（例えば重力方向の座標軸）に対する姿勢を一定に保ったまま地磁気センサの向きが変化した場合には、取得される磁気データが特定の平面内に集中して分布したり、球面の特定の領域に局所的に分布したりすることになる。このような場合、統計的手法による解が計算不能になるか、計算誤差が非常に大きくなってしまい、誤った解（中心座標及びオフセット値）が計算されてしまうという問題を有している。
【０００７】
また、特許文献２に開示されたオフセット値の取得方法においては、ユーザが例えば電子機器により提供される地図情報を見るとき等に最も取りやすい動作、つまり電子機器の画面を見ながら向きを変化させるような動作を行った場合であってもキャリブレーション（オフセット補正）を実行することができる。しかしながら、この手法においては、特定平面上に存在する磁気データの分布軌跡からなる円弧の中心座標を仮オフセットとして算出し、方位算出に用いるものであって、特許文献１に開示されているような３次元座標上の球の中心座標（＝オフセット）を算出するものではない。そのため、本来のオフセット値を精度良く算出することができないという問題を有している。
【０００８】
さらに、地磁気センサのキャリブレーション処理を行う際には、上述した特許文献等にも記載されているように、一般にユーザ（機器利用者）が地磁気センサを搭載した電子機器に対して、向きを変化させる動作や特定の操作等を行う必要があり、当該動作等が煩わしいという問題も有している。
【０００９】
そこで、本発明は、上述した問題点に鑑み、ユーザによるキャリブレーション処理に伴う特定の動作等を必要とすることなく、地磁気センサのオフセット補正を良好に行うことができる電子機器及びセンサ較正方法、センサ較正プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、
電子機器において、
前記電子機器の周辺の磁場を検出して、複数の軸方向の磁気データとして出力する地磁気センサと、
前記電子機器の姿勢に対応するセンサデータを出力するモーションセンサと、
複数の第１の磁気データと複数の第２の磁気データとに基づいて前記地磁気センサのオフセット値を取得するオフセット値算出部を有する演算回路部と、
を備え、
前記複数の第１の磁気データは、前記地磁気センサが前記周辺の磁場の影響を受けている第１の磁場環境において前記電子機器が前記センサデータに基づいて複数の特定の姿勢の各々であると検出されるときに前記地磁気センサから出力される前記磁気データであり、
前記複数の第２の磁気データは、前記地磁気センサが前記周辺の磁場の影響を受けていない第２の磁場環境において前記電子機器が前記複数の特定の姿勢を含む複数の姿勢の各々であるときの前記地磁気センサによる複数の前記磁気データと、前記複数の姿勢の各々であるときの前記センサデータに基づく複数の姿勢情報と、を互いに対応付けて有する基準情報から抽出される前記磁気データであることを特徴とする。
【００１１】
本発明は、
電子機器におけるセンサ較正方法であって、
前記電子機器は、該電子機器の周辺の磁場を検出して、複数の軸方向の磁気データとして出力する地磁気センサと、前記電子機器の姿勢に対応するセンサデータを出力するモーションセンサと、を有し、
前記地磁気センサが前記周辺の磁場の影響を受けている第１の磁場環境において前記電子機器が前記センサデータに基づいて複数の特定の姿勢の各々であると検出されるときに前記地磁気センサから出力される複数の第１の磁気データを取得し、
前記地磁気センサが前記周辺の磁場の影響を受けていない第２の磁場環境において前記電子機器が前記複数の特定の姿勢を含む複数の姿勢の各々であるときに前記地磁気センサから出力される複数の前記磁気データと前記電子機器が前記複数の姿勢であるときに前記センサデータに基づく姿勢情報とを対応付けて有する基準情報から、前記第２の磁場環境で前記電子機器が前記複数の特定の姿勢の各々であるときの複数の第２の磁気データを抽出し、
前記複数の第１の磁気データと前記複数の第２の磁気テータとに基づいて、前記地磁気センサのオフセット値を取得する、
ことを特徴とする。
【００１２】
本発明は、
電子機器におけるセンサ較正プログラムであって、
前記電子機器は、該電子機器の周辺の磁場を検出して、複数の軸方向の磁気データとして出力する地磁気センサと、前記電子機器の姿勢に対応するセンサデータを出力するモーションセンサと、を有し、
コンピュータに、
前記地磁気センサが前記周辺の磁場の影響を受けている第１の磁場環境において前記電子機器が前記センサデータに基づいて複数の特定の姿勢の各々であると検出されるときに前記地磁気センサから出力される複数の第１の磁気データを取得させ、
前記地磁気センサが前記周辺の磁場の影響を受けていない第２の磁場環境において前記電子機器が、前記複数の特定の姿勢を含む複数の特定の各々であるときに前記地磁気センサから出力される複数の前記磁気データと前記電子機器が前記複数の姿勢であるときの前記センサデータに基づく姿勢情報とを対応付けて有する基準情報から、前記第２の磁場環境で前記電子機器が前記複数の特定の姿勢の各々であるときの複数の第２の磁気データを抽出させ、
前記複数の第１の磁気データと前記複数の第２の磁気テータとに基づいて、前記地磁気センサのオフセット値を取得させる、
ことを特徴とする。
【発明の効果】
【００１３】
本発明によれば、ユーザによるキャリブレーション処理に伴う特定の動作等を必要とすることなく、地磁気センサのオフセット補正を良好に行うことができ、正確な方位を検出することができる。
【図面の簡単な説明】
【００１４】
【図１】本発明に係る電子機器の概略構成の一例を示す概略ブロック図である。
【図２】本発明に係る電子機器の複数の適用例を示す概略構成図である。
【図３】地磁気センサのデータ分布と着磁によるオフセットを示す概念図である。
【図４】本実施形態に適用される電子機器の姿勢の推定方法を説明するための概念図である。
【図５】地磁気センサの出力成分の成分分解と、磁北方向との関係を示す概念図である。
【図６】本実施形態に適用されるキャリブレーション処理（オフセット補正処理）の一例を示すフローチャートである。
【図７】本実施形態に係るキャリブレーション処理に適用される垂直方向軸と電子機器の姿勢（傾斜角）との関係を示す概念図である。
【図８】本実施形態に係るキャリブレーション処理に適用される特定平面上に分布するデータ群の中心座標の推定方法を説明するための概念図である。
【図９】本実施形態に係るキャリブレーション処理に適用される特定平面上に分布するデータの判別方法を説明するための概念図である。
【図１０】本実施形態に係るキャリブレーション処理に適用される地磁気センサのオフセット値の算出方法を説明するための概念図である。
【発明を実施するための形態】
【００１５】
以下、本発明に係る電子機器及びセンサ較正方法、センサ較正プログラムについて、実施形態を示して詳しく説明する。
＜電子機器＞
図１は、本発明に係る電子機器の概略構成の一例を示す概略ブロック図である。また、図２は、本発明に係る電子機器の複数の適用例を示す概略構成図である。
【００１６】
本発明に係る電子機器１００は、例えば図１（ａ）に示すように、概略、センサ部１１０と、演算回路部１２０と、メモリ部１３０と、通信インターフェース部（以下、「通信Ｉ／Ｆ部」と略記する）１４０と、電源供給部１５０と、を有している。ここで、演算回路部１２０は、本発明におけるオフセット値算出部に対応し、メモリ部１３０は基準情報格納部に対応する。
【００１７】
センサ部１１０は、少なくとも地磁気センサ１１２と、加速度センサ１１４と、角速度センサ（ジャイロセンサ）１１６と、を有している。加速度センサ１１４と角速度センサ（ジャイロセンサ）１１６は、電子機器１００を携帯（又は、装着）するユーザの動作に起因して、電子機器１００に生じる空間的な動きや姿勢を検出するモーションセンサである。
【００１８】
地磁気センサ１１２は、３軸磁気センサを有し、地球の磁場（磁界）を、直交する３軸方向の各々に沿った地磁気成分（磁気信号）として検出して磁気データ（又は、３次元の方向データ）として出力する。加速度センサ１１４は、ユーザの動作に応じて電子機器１００に生じる移動速度の変化の割合（加速度）を計測する。加速度センサ１１４は、３軸加速度センサを有し、互いに直交する３軸方向の各々に沿った加速度成分（加速度信号）を検出して加速度データとして出力する。角速度センサ１１６は、ユーザの動作に応じて電子機器１００に生じる移動方向の変化（角速度）を計測する。角速度センサ１１６は、３軸角速度センサを有し、加速度センサ１１４により出力される加速度データを規定する直交する３軸について、各軸に沿った回転運動の回転方向に生じる角速度成分（角速度信号）を検出して角速度データとして出力する。
【００１９】
ここで、本実施形態においては、加速度センサ１１４により検出される加速度データ、及び、地磁気センサ１１２により検出される磁気データは、後述する演算回路部１２０においてユーザが携帯（又は、装着）する電子機器１００の姿勢を推定する処理に用いられる。また、角速度センサ１１６により検出される角速度データは、演算回路部１２０においてユーザの動作に応じて変化する、電子機器１００の姿勢の変化を推定する処理に用いられる。なお、センサ部１１０の各センサ１１２、１１４、１１６により取得されるセンサデータは、ユーザの動作や運動状態、移動軌跡等に関する情報を取得する際に用いられるものであってもよい。
【００２０】
演算回路部１２０は、計時機能を備えたＣＰＵやＭＰＵ等の演算処理装置（コンピュータ）であって、所定の制御プログラムやアルゴリズムプログラムを実行することにより、センサ部１１０におけるセンシング動作や、取得されたセンサデータに基づいて、電子機器１００を携帯（又は、装着）したユーザの動作や運動状態に関する情報を生成する動作等、電子機器１００全体の動作を制御する。特に、本実施形態において、演算回路部１２０は、センサ部１１０により取得したセンサデータに基づいて電子機器１００の姿勢やその変化、地磁気センサ１１２のオフセット等に関する情報を取得し、事前にメモリ部１３０に格納された基準情報を参照することにより、電子機器１００の姿勢に基づいて地磁気センサ１１２のオフセット値を補正するキャリブレーション処理を実行する。なお、本実施形態におけるキャリブレーション処理の方法については、詳しく後述する。
【００２１】
メモリ部１３０は、種々のデータやプログラム等を記憶する記憶領域を有している。演算回路部１２０において実行される制御プログラムやアルゴリズムプログラム、及びその他不揮発性のデータ等がメモリ部の所定の記憶領域に保存される。本実施形態においては、不揮発性データとして、事前に電子機器１００の姿勢情報と各姿勢における磁気データとを関連付けた基準情報がメモリ部１３０の所定の記憶領域に格納されており、メモリ部１３０は基準情報記憶部として機能する。また、メモリ部１３０は、演算回路部１２０においてプログラムの実行により生成（算出）されたり取得されたりしたデータ等を一時的に保存する。更に、メモリ部１３０は、センサ部１１０の各センサ１１２、１１４、１１６により検出されたセンサデータ（磁気データ、加速度データ、角速度データ）や、センサデータに基づいて算出される電子機器１００の姿勢情報や地磁気センサ１１２のオフセット値等を保存する。
【００２２】
通信Ｉ／Ｆ部１４０は、電子機器１００の外部の情報通信機器（パーソナルコンピュータやスマートフォン等）との間で、メモリ部１３０に格納される不揮発性データやセンサデータ等の各種のデータの送信又は受信を行う。ここで、通信Ｉ／Ｆ部１４０を介して行われる通信は、例えば各種の有線や無線を用いた通信方法を適用して、電子機器１００と外部の情報通信機器とを直接接続してデータを送受信するものであってもよいし、インターネット等のネットワークを介してデータを送受信するものであってもよい。また、メモリカード等の記憶媒体を用いてデータを直接受け渡しするものであってもよい。
【００２３】
電源供給部１５０は、電子機器１００内部の各構成に駆動用電力を供給するバッテリを有している。バッテリは、例えば市販のボタン型電池等の一次電池や、リチウムイオン電池等の二次電池、あるいは、振動や光、熱、電磁波等のエネルギーにより発電する環境発電技術による電源等を、単独で、あるいは、他の電源と併用して適用することができる。
【００２４】
なお、図１（ａ）においては、センサ部１１０により取得されたセンサデータに基づいて、電子機器１００の姿勢やその変化、地磁気センサ１１２のオフセット等に関する情報を算出する機能に特化した構成を示したが、本発明はこれに限定されるものではない。本発明に係る電子機器は、例えば図１（ｂ）に示すように、図１（ａ）に示した構成に加え、ＧＰＳ（Global Positioning System；全地球測位システム）等の人工衛星や無線基地局からの電波信号に基づいて、電子機器１００の地理的な位置を測位する測位機能部１６０や、操作スイッチやタッチパネル等の入力操作部１７０、表示部や音響部等の出力部１８０等を有するものであってもよい。この場合、ユーザは、収集されたセンサデータや、現在位置や移動軌跡、電子機器１００の動作状態等を表示部により確認したり、タッチパネルを利用して各種の操作や設定を行ったりすることができる。これにより、本発明に係る電子機器は、例えば図２に示すような、近年普及が著しい腕時計型やリストバント型の外観を有するウェアラブル機器１０や、ＧＰＳロガーやナビゲーション端末等のアウトドア機器２０、既存のスマートフォン３０やタブレット端末等に適用することができる。なお、図２において、１５２は操作スイッチであり、１５４はタッチパネルであり、１６２は表示部であり、１６４はスピーカ（音響部）である。
【００２５】
また、本実施形態においては、メモリ部１３０が電子機器１００内に設けられている場合について説明したが、本発明はこの構成に限るものではない。例えばメモリ部１３０の一部又は全部が電子機器１００の外部のクラウドシステム上にあって、例えば通信Ｉ／Ｆ部１４０を介して電子機器１００と通信することによりデータを送受信するものであってもよい。
【００２６】
＜電子機器の制御方法＞
次に、本実施形態に係る電子機器における制御方法（電子機器のセンサ較正方法）について説明する。
本実施形態に係る電子機器における制御方法においては、大別して、周辺磁場の影響を受けていない状態で、電子機器１００の姿勢情報と各姿勢における磁気データとを関連付けた基準情報をメモリ部１３０に格納する処理と、周辺磁場の影響を受けた状態で、電子機器１００の姿勢に基づいてメモリ部１３０に格納された基準情報を参照して、地磁気センサ１１２のオフセット値を補正するキャリブレーション処理と、が実行される。
【００２７】
（基準情報格納処理）
図３は、地磁気センサのデータ分布と着磁によるオフセットを示す概念図であり、図４は、本実施形態に適用される電子機器の姿勢の推定方法を説明するための概念図である。図５は、地磁気センサの出力成分の成分分解と、磁北方向との関係を示す概念図である。
【００２８】
後述するキャリブレーション処理において参照される基準情報をメモリ部１３０に格納する処理は、周辺磁場の影響を受けておらず、検出される磁気データにオフセットが含まれていない状態の地磁気センサ１１２（又は、当該地磁気センサ１１２を搭載した電子機器１００）を、複数の異なる方向に向けた際の姿勢情報と、各方向に向けた姿勢で取得した磁気データとを関連付けて、基準情報としてメモリ部１３０の所定の記憶領域に格納する。この基準情報は、地磁気センサ１１２（又は電子機器１００）の姿勢が変わるたびに、取得された磁気データが関連付けられてメモリ部１３０に格納されるものであり、各姿勢とそのときの磁気データとが１対１の関係で対応付けられて、複数格納される。ここで、基準情報は、後述するように、地磁気センサ１１２（又は電子機器１００）を中心とする３６０°全ての方向（全天球方向）を向いた姿勢と、各姿勢での磁気データとを有していることが望ましい。
【００２９】
具体的には、周辺磁場の影響を受けておらず、着磁していない状態（又は、着磁前の状態；第２の磁場環境）の、３軸磁気センサを有する地磁気センサ１１２を一定の地磁気の中で任意に回転や移動させて姿勢を変化させた場合、地磁気センサ１１２により取得される磁気データ群を、地磁気センサ１１２が所定の基準姿勢になっているときのセンサ座標系である、３軸Ｓｘ、Ｓｙ、Ｓｚを座標軸とする３次元座標空間にプロットすると、その座標点は、例えば図３に示すように、概ね球面Ｓ０上に分布する。ここで、着磁していない（又は、着磁前の）状態における磁気データは、周辺磁場の影響等に起因する誤差（＝オフセット）を含んでいないので、この磁気データ群が分布する球面Ｓ０により規定される球の中心点（原点）Ｐ０（第１の中心座標）は、後述する地磁気センサ１１２のオフセット値を算出する際の基準点（＝オフセット０）に設定される。また、球の半径Ｒ０は、地磁気の大きさ（強さ）に対応する。
【００３０】
ところで、上述した背景技術においても記載したように、強い磁場が存在する環境においては、地磁気センサ１１２の近傍に配置された電子部品や金属パッケージ等が着磁するため、地磁気センサ１１２は、本来の検出対象である地磁気に加え、電子機器の内外に存在する磁界が合成された磁界を検出することになる。そのため、例えば図３に示すように、着磁した状態（又は、着磁後の状態；第１の磁場環境）において、地磁気センサ１１２により取得される磁気データ群が分布する球面Ｓａにより規定される球の中心点Ｐａ（第２の中心座標）は、地磁気センサ１１２のセンサ座標系である３次元座標空間の中心点（原点）Ｐ０に対してずれた位置になっている。この着磁していない状態におけるデータ分布に基づく中心点Ｐ０から対する、着磁した状態におけるデータ分布に基づく中心点Ｐａに向かうベクトル（図中、太点線矢印で示す）は、地磁気センサ１１２のオフセット値に対応する。すなわち、地磁気センサ１１２により取得される磁気データ群に対して、周辺の磁場環境に応じたオフセット値を差し引く補正を行うことにより、地磁気センサ１１２の周辺磁場の影響等を除去して、電子機器１００を基準とする正確な方位を算出することができる。
【００３１】
次いで、地磁気センサ１１２を搭載した電子機器１００の姿勢情報を、以下のように定義する。すなわち、電子機器１００の姿勢は、図４に示すように、基準となる座標系（図中、ｘ軸、ｙ軸、ｚ軸からなる絶対座標系）に対して、電子機器１００の座標系（図中、ｘ(local)軸、ｙ(local)軸、ｚ(local)軸からなるセンサ座標系）が相対的にどれだけ回転しているかで表される。具体的には、電子機器１００の姿勢に関する情報を表す方法（姿勢表現）として、例えば絶対座標系のｘ軸、ｙ軸、ｚ軸のそれぞれに対して、どれだけの角度だけ回転したかを示す３つの角度（オイラー角）を用いて表す。ここで、図４に示した絶対座標系のｘ軸、ｙ軸、ｚ軸は、それぞれ、真北（North）、真東（East）、真上（Vertical）に向いた座標軸によって構成される直交座標系であると定義する。また、本実施形態においては、説明を簡易にするため、電子機器１００のセンサ部１１０に設けられる地磁気センサ１１２、加速度センサ１１４、角速度センサ１１６の３つのセンサの計測軸（センサ座標系）が３軸全てにおいて一致し、ｘ(local)軸、ｙ(local)軸、ｚ(local)軸の共通する座標軸を有しているものとする。すなわち、図４に示したセンサ座標系のｘ(local)軸、ｙ(local)軸、ｚ(local)軸は、各々、地磁気センサ１１２のセンサ座標系である、Ｓｘ軸、Ｓｙ軸、Ｓｚ軸と一致しているものとする。
【００３２】
そして、上述したような３次元座標空間における磁気データ群の分布、及び、電子機器１００の姿勢の定義を前提にして、まず、地磁気センサ１１２が着磁していない状態にあって、取得された磁気データがオフセットを含んでいない状態、もしくは、地磁気センサ１１２が着磁している場合であっても、取得された磁気データが正しくオフセット補正されている状態で、電子機器１００を任意の方向に向けた際に、演算回路部１２０がセンサ部１１０を制御して各センサによりセンサデータを取得する。ここでは、説明を簡易にするため、地磁気センサ１１２、加速度センサ１１４、角速度センサ１１６の各センサは常に一定のサンプリングレートで動作するように制御されて、各々３軸方向の磁気データ、加速度データ、角速度データを取得する。取得されたセンサデータは、メモリ部１３０に保存される。
【００３３】
次いで、演算回路部１２０は、取得した加速度データ及び磁気データに基づいて、センサ部１１０によるセンシング動作の開始時点における電子機器１００の姿勢（基準姿勢）を推定する。具体的には、まず、演算回路部１２０は、加速度センサ１１４により取得した加速度データに基づいて、センサ部１１０（又は、センサ部１１０を搭載した電子機器１００）のセンサ座標系（ｘ(local)軸、ｙ(local)軸、ｚ(local)軸からなる座標系）に対する重力軸の方向を示すベクトル（ｇｘ，ｇｙ,ｇｚ）を算出する。ここで、センサ部１１０が重力軸以外の他の軸成分で回転しなければ（すなわち、重力軸でのみ回転していれば）、０Ｈｚの周波数成分に重力成分が存在するはずであることから、加速度データの３軸方向の各成分にローパスフィルタをかけることにより重力軸方向のベクトルを算出することができる。
【００３４】
次いで、演算回路部１２０は、センサ座標系で算出された重力軸の方向を示すベクトル（ｇｘ，ｇｙ,ｇｚ）を、絶対座標系（ｘ軸、ｙ軸、ｚ軸からなる座標系）において重力方向を示すベクトル（０,０,−｜Ｇ｜)に変換するための座標変換処理を規定する座標変換パラメータＲｇを算出する。ここで、｜Ｇ｜は加速度センサ１１４により取得された加速度データの重力成分のベクトル（ｇｘ，ｇｙ,ｇｚ）の大きさに対応する。また、絶対座標系における重力方向は、例えば、加速度センサ１１４により一定期間収集した加速度データの平均をベクトルとして算出することにより導出される。なお、上記の座標変換処理に適用するパラメータＲｇの算出方法としては、例えばアフィン変換やクォータニオン等の周知の手法を適用することができる。
【００３５】
そして、上述した座標変換パラメータＲｇに基づく座標変換処理を、センサ部１１０により取得した各センサデータに施すことにより、センサの出力成分を鉛直方向成分と水平方向成分に分解することができる。すなわち、一般に、地磁気センサの出力成分は、図５に示すように、水平面に対して地点ごとに所定の伏角βを有して傾いている。演算回路部１２０は、座標変換パラメータＲｇに基づく座標変換処理を、地磁気センサ１１２により取得された磁気データに施すことにより、図５に示すように、センサ座標系における地磁気センサ１１２の出力成分を、絶対座標系におけるｚ軸方向の重力方向成分と、ｘ−ｙ軸平面内の水平方向成分に分解する。
【００３６】
ここで、水平方向成分は磁北方向Ｈを指す。一般に、磁北方向と真北方向とは一致せず、偏角分のずれを有している。この磁北と真北の角度差（地磁気の偏角）は地球上の地点ごとに異なっており、ＩＧＲＦ（International Geomagnetic Reference Field，国際標準地球磁場）を用いることにより、現在位置の緯度・経度から算出することができる。ここで、現在位置の緯度・経度は例えば測位機能部１６０によりＧＰＳ等の電波信号に基づいて測位される。そして、地磁気センサ１１２の出力成分の水方向成分に基づいて算出された磁北方向に、地点ごとの偏角を加味して回転させる補正を行うことにより真北方向が求められる。
【００３７】
次いで、演算回路部１２０は、取得した角速度データに基づいて、センサ部１１０によるセンシング動作の開始時点からの電子機器１００の姿勢の変化を推定する。これにより、演算回路部１２０は、基準姿勢からの電子機器１００の姿勢の変化を検出して監視する。そして、演算回路部１２０は、複数の異なる方向に電子機器１００を向けた時点での姿勢で取得した地磁気センサ１１２の磁気データと、各時点の姿勢における電子機器１００の姿勢情報（絶対座標系のｘ軸、ｙ軸、ｚ軸に対する回転角度）とを相互に関連付けて、メモリ部１３０に基準情報として格納する。ここで、メモリ部１３０に格納される基準情報は、例えば電子機器１００の各姿勢を規定する姿勢情報に対して、当該姿勢において取得された磁気データが１対１の関係で関連付けられている。あるいは、全天球を複数の領域ごとに細分化し、領域ごとの方向に向けた姿勢を規定する姿勢情報に対して、磁気データが１対１の関係で関連付けられている。このような着磁前の状態の姿勢情報と磁気データとを関連付けた基準情報は、絶対座標系において、概略、図３に示した着磁前のデータ分布（球面Ｓ０）と同様のデータ分布を有しているものと認識することができる。
【００３８】
なお、様々な姿勢の基準情報をメモリ部１３０に格納する際に、既に格納済みの基準情報については、メモリ部１３０への格納を除外するものであってもよいし、同一姿勢について複数の磁気データが取得された場合には、それらの平均値を基準情報としてメモリ部１３０に格納するものであってもよい。また、上述したように、基準情報は、電子機器１００を極力、全天球方向に満遍なく均一に向けた状態で、姿勢情報と磁気データとが取得されていることが望ましい。このように、全天球方向に満遍なく向けた状態での基準情報をメモリ部１３０に格納することにより、後述する地磁気センサ１１２のキャリブレーション処理において、ユーザがどのような向きで電子機器１００を携帯（又は装着）した場合であっても、オフセット値を適切に補正して正確な方位を算出することができる。
【００３９】
上述したような基準情報の格納処理は、例えば、電子機器１００の製造者が製造段階や製品出荷前に、電子機器１００（又は、地磁気センサ１１２）の向きを実際に全天球方向に変化させて、各姿勢において着磁によるオフセットを含んでいない状態の磁気データを取得してメモリ部１３０に格納する。あるいは、電子機器１００の設計段階でシミュレーション実験等に基づいて算出された基準情報をメモリ部１３０に格納する。このように電子機器１００の出荷前に基準情報を格納する方法によれば、ユーザに基準情報の格納に関する特別な負担を強いることなく、後述する地磁気センサ１１２のオフセット補正を自動で行うことができる。また、電子機器１００の出荷前に電子機器１００（又は、地磁気センサ１１２）の向きを実際に全天球方向に変化させて基準情報を格納する場合には、電子機器１００や地磁気センサ１１２の製造ばらつきや部品特性の差異（いわゆる個体差）による基準情報への影響を抑制することができる。
【００４０】
なお、基準情報の格納処理は、上述したように製品出荷前に実行し、基本的に製品出荷後には変更しないこと、あるいは、変更が不要であることが望ましいが、例えば電子機器１００で実行されるアプリケーションのバージョンアップ等に伴って、基準情報を追加したり、より高分解能の基準情報に書き替えたりするものであってもよい。この場合、基準情報の格納処理は、演算回路部１２０により自動で実行されるものであってもよいし、ユーザが手動で実行するものであってもよい。また、初期設定として、ユーザが手動で電子機器１００の向きを全天球方向に変化させて、各姿勢において取得した磁気データを姿勢情報と関連付けて、基準情報としてメモリ部１３０に格納する処理を実行するものであってもよい。
【００４１】
（キャリブレーション処理）
図６は、本実施形態に適用されるキャリブレーション処理（オフセット補正処理）の一例を示すフローチャートである。図７は、本実施形態に係るキャリブレーション処理に適用される垂直方向軸と電子機器の姿勢（傾斜角）との関係を示す概念図である。図８は、本実施形態に係るキャリブレーション処理に適用される特定平面上に分布するデータ群の中心座標の推定方法を説明するための概念図である。図９は、本実施形態に係るキャリブレーション処理に適用される特定平面上に分布するデータの判別処理を説明するための概念図である。図１０は、本実施形態に係るキャリブレーション処理に適用される地磁気センサのオフセット値の算出処理を説明するための概念図である。
【００４２】
演算回路部１２０は、所定の制御プログラム及びアルゴリズムプログラムに従って、図６のフローチャートに示す一連の処理を実行することにより、地磁気センサ１１２のオフセット値を補正するキャリブレーション処理を実行する。
【００４３】
本実施形態においては、まず、電子機器１００が起動した状態で、演算回路部１２０が少なくともセンサ部１１０の地磁気センサ１１２、加速度センサ１１４、角速度センサ１１６によるセンシング動作を実行させて、取得したセンサデータ（磁気データ、加速度データ、角速度データ）をメモリ部１３０に順次保存して収集する通常動作を実行する（ステップＳ１０２）。この通常動作において収集されたセンサデータは、例えばユーザの動作や運動状態、移動軌跡等に関する情報を算出する際に用いられる。
【００４４】
このような通常動作において、電子機器１００を一定の周辺磁場が存在する環境で使用している場合、上述したように、地磁気センサ１１２が周辺磁場の影響を受けるため、取得された磁気データに対して予めメモリ部１３０等に保存されているオフセット値に基づく補正を行うことにより、電子機器１００を基準とする正確な方位を算出する。一方、ユーザが電子機器１００を携帯（又は装着）して運動したり移動したりすることにより、電子機器１００の周辺磁場が強くなるような変化が生じた場合には、電子機器１００内の電子部品や金属パッケージ等が着磁することになる。これにより、地磁気センサ１１２は、電子機器１００内の電子部品等から発生する磁界と、検出対象である本来の地磁気とが合成された磁界を検出することになり、メモリ部１３０等に予め保存されているオフセット値を用いた磁気データの補正では、周辺磁場の影響を除去することができず、磁気データに基づいて算出される方位が実際の（正確な）方位とは異なってしまうことになる。
【００４５】
そこで、本実施形態においては、収集されたセンサデータに基づいて、地磁気センサ１１２の周辺磁場の影響を除去するためのオフセット値を補正するキャリブレーション処理を実行する必要があるか否かを判定する（ステップＳ１０４）。このキャリブレーション処理を実行する必要があるか否かを判定する手法は特に限定されない。一例として、演算回路部１２０は、地磁気センサ１１２により取得される磁気データを監視し、電子機器１００が使用される位置や地域における平均的又は標準的な磁気データ（基準値データ）に対して、所定の閾値範囲を逸脱する状態が継続して検出された場合には、現在の地磁気センサ１１２のオフセット値は適切でなく、地磁気センサ１１２のキャリブレーション処理を実行する必要があると判定する（ステップＳ１０４のＹｅｓ）。あるいは、電子機器１００において自律航法やＧＰＳ測位法等により、ユーザの移動状態を検出するアプリケーションの実行中に、演算回路部１２０は、地磁気センサ１１２により取得された磁気データにより算出された方位のずれ量が閾値範囲を逸脱する状態が継続して検出された場合には、現在の地磁気センサ１１２のオフセット値は適切でなく、キャリブレーション処理を実行する必要があると判定する（ステップＳ１０４のＹｅｓ）。一方、現在の地磁気センサ１１２のオフセット値が適切であると判定された場合には、演算回路部１２０は、ステップＳ１０２の通常動作を継続する（ステップＳ１０４のＮｏ）。
【００４６】
ステップＳ１０４において、地磁気センサ１１２のキャリブレーション処理が必要であると判定された場合には、演算回路部１２０は、以下に示す一連のキャリブレーション処理を実行する。
【００４７】
まず、ユーザが電子機器１００を携帯（又は装着）することにより、電子機器１００を任意の位置や場所に任意の姿勢で固定した場合、例えば図７に示すように、絶対座標系の３次元座標空間において、電子機器１００は重力軸方向である垂直方向軸Ｖに対して傾斜角αとなる姿勢で固定されるものとする。そして、電子機器１００の向きの変化は、例えば図７に示す３次元座標空間において、水平方向（すなわち、垂直方向軸Ｖに垂直な水平平面内、又は、水平平面に平行な面内）の移動によってなされるものとする。これにより、垂直方向軸Ｖに対する電子機器１００の姿勢は、電子機器１００を垂直方向軸Ｖの周りに回転した場合と同様に、傾斜角αで一定に保たれる。ここで、電子機器１００の向きの変化は、少なくとも電子機器１００が水平平面内でどの方向を向いているかが検出できるものであればよいので、電子機器の傾斜角αは、例えば０°（垂直方向軸Ｖに並行）であってもよい。
【００４８】
演算回路部１２０によりキャリブレーション処理が実行されると、センサ部１１０の地磁気センサ１１２、加速度センサ１１４、角速度センサ１１６は所定のサンプリングレートでセンサデータを取得する（ステップＳ１０６）。取得したセンサデータは、メモリ部１３０の所定の記憶領域に保存される。そして、演算回路部１２０は、少なくとも地磁気センサ１１２により所定数以上の磁気データが取得されたか否かを判定し（ステップＳ１０８）、所定数以上の磁気データが取得されていない場合には、ステップＳ１０６のセンサデータを取得する動作を継続する。
【００４９】
次いで、所定数以上の磁気データが取得された場合には、演算回路部１２０は、各磁気データが後述する特定の平面Ｆｂ上、又は、当該特定平面Ｆｂの近傍に分布しているか否かを判定する（ステップＳ１１０）。すなわち、垂直方向軸Ｖに対する電子機器１００の姿勢（傾斜角α）を一定に保持しつつ電子機器１００を水平方向に移動させて、その向きを変化させた場合、各姿勢において地磁気センサ１１２により取得された磁気データは、理論的には、例えば図８に示すように、半径Ｒａの球面Ｓａと、特定の平面Ｆｂとの交差によって形成される断面形状である円周Ｃｂ（第２の分布軌跡）上に分布する。ここで、電子機器１００を水平方向に移動させて向きを変化させる動作は、ユーザが電子機器１００を携帯（又は装着）して通常の運動や移動を行うことにより、特に意識することなく実行されるものである。また、図８に示す地磁気センサ１１２のセンサ座標系において、Ｓｚ軸と、円周Ｃｂの中心座標Ｐｂを通り、特定平面Ｆｂに垂直な軸とがなす角(すなわち、特定平面Ｆｂの傾き)は、図７に示した垂直方向軸Ｖに対する電子機器１００の姿勢を規定する傾斜角αに対応する。
【００５０】
図８に示した特定平面Ｆｂ上の円周Ｃｂは、電子機器１００を垂直方向軸Ｖの周りに理想的な状態で回転させた場合の磁気データの分布を示すものである。実際には、地磁気センサ１１２により取得される磁気データには、人間の動作や周辺環境に起因するばらつきが生じるため、図８に示した理論的な円周Ｃｂに対して、磁気データが３次元的にばらついて分布する。
【００５１】
そこで、本実施形態においては、取得した磁気データのうち、特定平面Ｆｂ上に分布しているとみなせる磁気データを以下のような手法により判別して取捨選択する。具体的には、演算回路部１２０は、図９に示すように、各磁気データについて特定平面Ｆｂへの垂線を引いて、特定平面Ｆｂまでの距離（垂線距離）が所定の閾値Ｈth以下であるか否かを判定する。演算回路部１２０は、垂線距離が閾値Ｈth以下である場合には、当該磁気データに対応する座標点は特定平面Ｆｂ上に存在（分布）しているとみなして、その磁気データを選択して取得する。一方、垂線距離が閾値Ｈthより大きい場合には当該磁気データに対応する座標点は特定平面Ｆｂ上には存在（分布）していないとみなす。ここで、垂線距離を判定する基準となる閾値Ｈthを適切に設定することにより、平面Ｆｂのごく近傍に位置する磁気データの座標点のみが特定平面Ｆｂ上に存在するものとみなされる。
【００５２】
ステップＳ１０８、Ｓ１１０において、地磁気センサ１１２により所定数以上の磁気データが取得され、図８に示すように、取得された磁気データのうちの特定平面Ｆｂ上に円周状に分布しているとみなせる磁気データから、演算回路部１２０は、統計的手法を用いて、磁気データが分布する円周Ｃｂの中心座標Ｐｂを推定する（ステップＳ１１２）。以下に、統計的手法として、最小二乗法を用いた推定（算出）方法について説明する。
【００５３】
具体的には、図８に示すセンサ座標系において、特定平面Ｆｂ上の磁気データ（ｘ，ｙ，ｚ）の分布軌跡である円周Ｃｂの中心座標Ｐｂ（Ｘｂ，Ｙｂ，Ｚｂ）及び円周Ｃｂの半径Ｒｂからなる球は、次の（１１）式で表される。
（ｘ−Ｘｂ）２＋（ｙ−Ｙｂ）２＋（ｚ−Ｚｂ）２＝Ｒｂ２      ・・・（１１）
また、上記球面Ｓａに交差する特定平面Ｆｂは、次の（１２）式の方程式で表される。ここで、ａ、ｂ、ｃ、ｄは係数である。
ａｘ＋ｂｙ＋ｃｚ＋ｄ＝０      ・・・（１２）
【００５４】
（１２）式において、中心座標Ｐｂ（Ｘｂ，Ｙｂ，Ｚｂ）は上記特定平面Ｆｂ上にあるので、次の（１３）式が成り立つ。
ａＸｂ＋ｂＹｂ＋ｃＺｂ＋ｄ＝０
Ｚｂ＝−（ａＸｂ＋ｂＹｂ＋ｄ）／ｃ      ・・・（１３）
（１１）式及び（１３）式から次の（１４）式が成り立つ。
【００５５】
【数１】
2017166895.tif 000003
【００５６】
特定平面Ｆｂ上に分布する磁気データＭｉ（ｘｉ，ｙｉ，ｚｉ）から円周Ｃｂの中心座標Ｐｂ（Ｘｂ，Ｙｂ，Ｚｂ）までの距離ｄｉは次の（１５）式で表される。
【００５７】
【数２】
2017166895.tif 000004
【００５８】
ここで、次の(１６)式のように、距離ｄｉの二乗値と半径Ｒｂの二乗値との差を、推定誤差εｉと定義する。
εｉ＝ｄｉ２−Ｒｂ２      ・・・（１６）
さらに、次の（１７）式のように、推定誤差εｉの二乗総和値Ｓｕｍを定義する。そして、この二乗総和値Ｓｕｍが最小となるような中心座標Ｐｂ（Ｘｂ，Ｙｂ，Ｚｂ）を算出する。
Ｓｕｍ＝Σεｉ２      ・・・（１７）
【００５９】
次いで、演算回路部１２０は、メモリ部１３０から、上述した基準情報格納処理においてメモリ部１３０に格納されている基準情報のうちの、キャリブレーション処理の実行期間中に特定平面Ｆｂ上の磁気データを取得した際の電子機器１００の姿勢に該当する磁気データ群を読み出す（ステップＳ１１４）。ここで、キャリブレーション処理の実行期間中の電子機器１００の姿勢は、上述したように、図７に示した絶対座標系の３次元座標空間において、垂直方向軸Ｖに対して電子機器１００を傾斜角αとなる姿勢で固定して水平方向に移動させて向きを変化させた場合に、各向きの姿勢において取得した磁気データの分布軌跡に対応する。
【００６０】
次いで、演算回路部１２０は、メモリ部１３０から読み出した磁気データ群に対して、図８に示した特定平面Ｆｂ上の磁気データの分布軌跡である円周Ｃｂの中心座標Ｐｂを推定する方法と同様の統計的手法を用いて、図１０に示すように、着磁していない状態（着磁前）において上記の磁気データ群が分布する球面Ｓ０上の円周ＣＮ（第１の分布軌跡）の中心座標ＰＮ（ＸＮ，ＹＮ，ＺＮ）及び半径ＲＮを推定する（ステップＳ１１６）。ここで、地球上の地磁気の大きさ（強さ）は、地磁気の測定場所により異なる。そのため、図１０に示す着磁前と着磁後の磁気データの分布を示す円周ＣＮにおける半径ＲＮと、円周Ｃｂにおける半径Ｒｂとの比例関係に基づいて、着磁後の球面Ｓａの中心点Ｐａを示すベクトルＰ０Ｐａ（図中、太点線矢印で示す）は次の（２１）式で表される（ステップＳ１１８）。
【００６１】
【数３】
2017166895.tif 000005
【００６２】
この（２１）式により表されるベクトル成分は、着磁による地磁気センサ１１２のオフセット値に相当する。演算回路部１２０は、この中心点Ｐａを示す座標値（中心座標）を、着磁後のオフセット値（オフセットベクトル）として設定し（ステップＳ１２０）、メモリ部１３０に保存することにより、地磁気センサ１１２のオフセット値を更新する（ステップＳ１２２）。
【００６３】
次いで、演算回路部１２０は、地磁気センサ１１２により取得された磁気データに対して、メモリ部１３０に保存された、更新されたオフセット値を用いて補正を行うことにより、電子機器１００を基準とする方位を算出する（ステップＳ１２４）。ここで、演算回路部１２０は、ステップＳ１０２に戻って、電子機器１００の通常動作として方位算出処理を実行するものであってもよい。
【００６４】
なお、図６に示したフローチャートにおいては図示を省略したが、演算回路部１２０は、上述した一連の処理動作の実行中、処理動作を中断又は終了させる入力操作や電子機器１００の動作状態の変化を常時監視して、当該入力操作や状態変化を検出した場合には、処理動作を強制的に終了する。具体的には、演算回路部１２０は、ユーザによる動作電源の遮断操作や、電源供給部１５０における電池残量の低下、実行中の機能やアプリケーションの異常等を検出して、一連の処理動作を強制的に中断して終了する。
【００６５】
また、上述した一連の処理動作においては、ステップＳ１０４において地磁気センサ１１２により取得された磁気データや、磁気データに基づいて算出された方位を監視して、オフセット値が適切ではないと判定された場合に、ステップＳ１０６以降のキャリブレーション処理を実行する制御方法を示したが、本発明はこれに限定されるものではない。例えば、電子機器１００の電源が投入されて起動した直後に、ステップＳ１０６以降に示したキャリブレーション処理を自動的かつ強制的に実行して、オフセット値を更新した状態で、磁気データや方位情報を使用するアプリケーションを実行するものであってもよい。
【００６６】
このように、本実施形態においては、事前情報格納処理において、事前に、検出される磁気データにオフセット（誤差）が含まれていない状態（着磁していない状態）の地磁気センサ１１２を、全天球の複数の異なる方向に向けて取得した磁気データと、各方向に向けたときの電子機器１００の姿勢情報とを、相互に関連付けた基準情報がメモリ部１３０に格納される。そして、着磁後のキャリブレーション処理において、まず、電子機器１００を垂直方向軸を基準として傾斜角αとなる姿勢で一定に保った状態で、電子機器１００の向きを変化させた際に取得した磁気データが、半径Ｒａの球面Ｓａと特定の平面Ｆｂとの交差によって形成される円周Ｃｂ上に分布することを利用して、統計的手法により円周Ｃｂの中心座標Ｐｂが推定される。次いで、オフセット補正時の電子機器１００の姿勢に該当する磁気データ群を、メモリ部１３０に格納されている基準情報から読み出し、当該磁気データ群が球面Ｓ０の円周ＣＮ上に分布することを利用して、統計的手法により円周ＣＮの中心座標ＰＮが推定される。次いで、推定された着磁後の中心座標Ｐｂ、及び、基準情報から抽出された着磁前の中心座標ＰＮに基づいて、着磁後の地磁気センサ１１２のオフセット値が算出される。
【００６７】
これにより、本実施形態においては、オフセットが含まれていない着磁前の状態の地磁気センサについて、姿勢情報と磁気データを関連付けた基準情報を保持しておくことにより、着磁後に取得した磁気データと、そのときの姿勢に基づいて基準情報から抽出した着磁前の磁気データに基づいて、地磁気センサのオフセット値を補正するキャリブレーション処理を、ユーザに特に意識させることなくバックグラウンドで実行することができる。したがって、本実施形態によれば、ユーザに特定の動作や操作等の負担を強いることなく、地磁気センサのキャリブレーション処理（オフセット補正）を自動で実行して、正確な方位を算出することができる。
【００６８】
なお、本実施形態においては、地磁気センサ１１２のキャリブレーション処理において、最小二乗法を用いて磁気データが分布する円周の中心座標を算出する方法について説明したが、本発明はこれに限定されるものではなく、円周状に分布する磁気データに基づいて中心座標を算出するものであれば、他の周知の手法を適用するものであってもよい。
【００６９】
以上、本発明のいくつかの実施形態について説明したが、本発明は、上述した実施形態に限定されるものではなく、特許請求の範囲に記載された発明とその均等の範囲とを含むものである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００７０】
（付記）
［１］
電子機器において、
前記電子機器の周辺の磁場を検出して、複数の軸方向の磁気データとして出力する地磁気センサと、
前記電子機器の姿勢に対応するセンサデータを出力するモーションセンサと、
複数の第１の磁気データと複数の第２の磁気データとに基づいて前記地磁気センサのオフセット値を取得するオフセット値算出部を有する演算回路部と、
を備え、
前記複数の第１の磁気データは、前記地磁気センサが前記周辺の磁場の影響を受けている第１の磁場環境において前記電子機器が前記センサデータに基づいて複数の特定の姿勢の各々であると検出されるときに前記地磁気センサから出力される前記磁気データであり、
前記複数の第２の磁気データは、前記地磁気センサが前記周辺の磁場の影響を受けていない第２の磁場環境において前記電子機器が前記複数の特定の姿勢を含む複数の姿勢の各々であるときの前記地磁気センサによる複数の前記磁気データと、前記複数の姿勢の各々であるときの前記センサデータに基づく複数の姿勢情報と、を互いに対応付けて有する基準情報から抽出される前記磁気データであることを特徴とする電子機器。
【００７１】
［２］
前記オフセット値算出部は、
前記基準情報における前記複数の磁気データの分布の、前記複数の軸方向を座標軸とする３次元座標空間での球の中心点である第１の球の中心座標と、前記基準情報における前記複数の磁気データのうちの、前記電子機器が前記複数の特定の姿勢であるときの複数の特定の磁気データの、前記３次元座標空間で円形に分布している第１の分布軌跡の第１の円の中心座標及び半径と、前記第１の磁場環境において、前記電子機器が前記複数の特定の姿勢であるときに前記地磁気センサから出力される複数の前記磁気データの、前記３次元座標空間で円形に分布している第２の分布軌跡の第２の円の中心座標及び半径と、に基づいて、前記地磁気センサの前記オフセット値を取得することを特徴とする［１］に記載の電子機器。
【００７２】
［３］
前記オフセット値算出部は、
前記第１の球の中心座標と、前記第１の円の中心座標及び半径と、前記第２の円の中心座標及び半径と、に基づいて、前記第１の磁場環境において前記電子機器が前記複数の姿勢の各々である場合に前記地磁気センサから出力される複数の前記磁気データが前記３次元座標空間で分布すると推定される球の中心点を第２の球の中心座標として推定し、
前記第１の球の中心座標と前記第２の球の中心座標との差分を前記地磁気センサの前記オフセット値として取得することを特徴とする［２］に記載の電子機器。
【００７３】
［４］
前記オフセット値算出部は、
前記モーションセンサから出力される加速度データに基づいて算出される重力方向の座標軸を基準にして、前記第１の磁場環境において、前記電子機器を一定の傾きを保持した状態で前記電子機器の向きを変化させたときに前記地磁気センサから出力された複数の前記磁気データに対して、所定の統計的手法を用いて前記第２の分布軌跡の中心点を算出し、
前記電子機器を一定の傾きを保持した状態で前記電子機器の向きを変化させたときに前記モーションセンサから出力される角速度データにより規定される前記電子機器の姿勢に基づいて前記基準情報から抽出された前記姿勢に関連付けられた複数の前記磁気データに対して、前記統計的手法を用いて前記第１の分布軌跡の中心点を算出することを特徴とする［２］又は［３］に記載の電子機器。
【００７４】
［５］
前記演算回路部は、前記地磁気センサの前記オフセット値が適切であるか否かを判定するオフセット値判定部を、さらに有し、
前記オフセット値判定部において、前記オフセット値が適切でないと判定されたときに、前記オフセット値算出部における前記オフセット値の算出が実行されることを特徴とする［１］乃至［４］のいずれかに記載の電子機器。
【００７５】
［６］
前記基準情報における前記姿勢情報は、前記電子機器を全天球における複数の異なる方向に向けたときの前記電子機器の姿勢を規定する情報を有していることを特徴とする［１］乃至［５］のいずれかに記載の電子機器。
【００７６】
［７］
電子機器におけるセンサ較正方法であって、
前記電子機器は、該電子機器の周辺の磁場を検出して、複数の軸方向の磁気データとして出力する地磁気センサと、前記電子機器の姿勢に対応するセンサデータを出力するモーションセンサと、を有し、
前記地磁気センサが前記周辺の磁場の影響を受けている第１の磁場環境において前記電子機器が前記センサデータに基づいて複数の特定の姿勢の各々であると検出されるときに前記地磁気センサから出力される複数の第１の磁気データを取得し、
前記地磁気センサが前記周辺の磁場の影響を受けていない第２の磁場環境において前記電子機器が前記複数の特定の姿勢を含む複数の姿勢の各々であるときに前記地磁気センサから出力される複数の前記磁気データと前記電子機器が前記複数の姿勢であるときに前記センサデータに基づく姿勢情報とを対応付けて有する基準情報から、前記第２の磁場環境で前記電子機器が前記複数の特定の姿勢の各々であるときの複数の第２の磁気データを抽出し、
前記複数の第１の磁気データと前記複数の第２の磁気テータとに基づいて、前記地磁気センサのオフセット値を取得する、
ことを特徴とするセンサ較正方法。
【００７７】
［８］
電子機器におけるセンサ較正プログラムであって、
前記電子機器は、該電子機器の周辺の磁場を検出して、複数の軸方向の磁気データとして出力する地磁気センサと、前記電子機器の姿勢に対応するセンサデータを出力するモーションセンサと、を有し、
コンピュータに、
前記地磁気センサが前記周辺の磁場の影響を受けている第１の磁場環境において前記電子機器が前記センサデータに基づいて複数の特定の姿勢の各々であると検出されるときに前記地磁気センサから出力される複数の第１の磁気データを取得させ、
前記地磁気センサが前記周辺の磁場の影響を受けていない第２の磁場環境において前記電子機器が、前記複数の特定の姿勢を含む複数の特定の各々であるときに前記地磁気センサから出力される複数の前記磁気データと前記電子機器が前記複数の姿勢であるときの前記センサデータに基づく姿勢情報とを対応付けて有する基準情報から、前記第２の磁場環境で前記電子機器が前記複数の特定の姿勢の各々であるときの複数の第２の磁気データを抽出させ、
前記複数の第１の磁気データと前記複数の第２の磁気テータとに基づいて、前記地磁気センサのオフセット値を取得させる、
ことを特徴とするセンサ較正プログラム。
【符号の説明】
【００７８】
１００    電子機器
１１０    センサ部
１１２    地磁気センサ
１１４    加速度センサ
１１６    角速度センサ
１２０    演算回路部
１３０    メモリ部
【図１】
2017166895.tif 000006
【図２】
2017166895.tif 000007
【図３】
2017166895.tif 000008
【図４】
2017166895.tif 000009
【図５】
2017166895.tif 000010
【図６】
2017166895.tif 000011
【図７】
2017166895.tif 000012
【図８】
2017166895.tif 000013
【図９】
2017166895.tif 000014
【図１０】
2017166895.tif 000015