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