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