(57)【特許請求の範囲】
【請求項１】
地磁気を含む磁気を測定する磁気センサを備えた電子機器であって、
前記磁気センサの測定値に基づいて磁場環境の変化を検知し、
磁場環境の変化が検知された場合に、前記磁気センサの測定値を利用するアプリケーションのうち当該測定値を方位推定に利用する方位利用アプリケーションのみが起動中であるか否かを判定し、
判定の結果、方位利用アプリケーション以外のアプリケーションが起動中である場合に、ユーザに対して所定の動作を要求する一方、方位利用アプリケーションのみが起動中である場合に、前記所定の動作を要求せず、
前記所定の動作を要求した後に得られる前記磁気センサの測定値を用いて、前記電子機器内部の磁場が前記磁気センサの測定値へ及ぼす影響に相当するオフセットを算出する
処理を実行するプロセッサを有することを特徴とする電子機器。
【請求項２】
前記プロセッサは、
算出されたオフセットを前記方位利用アプリケーション以外のアプリケーション用の一般オフセットとして保持し、
保持された一般オフセットを前記磁気センサの測定値から除去し、
一般オフセット除去後の測定値に基づいて磁気の強度を算出し、
算出された強度が地磁気の強度に対応する範囲内に含まれるか否かを判定し、
判定の結果、算出された強度が地磁気の強度に対応する範囲内に含まれる場合に、前記一般オフセットに等しいオフセットを前記方位利用アプリケーション用の方位オフセットとして保持する
処理をさらに実行することを特徴とする請求項１記載の電子機器。
【請求項３】
前記プロセッサは、
前記電子機器の姿勢変化を検知し、
姿勢変化が検知された期間内に得られた前記磁気センサの測定値がオフセットを算出するための条件を満たすか否かを判断し、
前記条件を満たすと判断された場合に、前記所定の動作の要求を抑圧する
処理をさらに実行することを特徴とする請求項１記載の電子機器。
【請求項４】
前記プロセッサは、
前記条件を満たすと判断された場合に、姿勢変化が検知された期間内に得られた前記磁気センサの測定値を用いてオフセットを算出する
処理をさらに実行することを特徴とする請求項３記載の電子機器。
【請求項５】
地磁気を含む磁気を測定する磁気センサを備えたコンピュータに、
前記磁気センサの測定値に基づいて磁場環境の変化を検知し、
磁場環境の変化が検知された場合に、前記磁気センサの測定値を利用するアプリケーションのうち当該測定値を方位推定に利用する方位利用アプリケーションのみが起動中であるか否かを判定し、
判定の結果、方位利用アプリケーション以外のアプリケーションが起動中である場合に、ユーザに対して所定の動作を要求する一方、方位利用アプリケーションのみが起動中である場合に、前記所定の動作を要求せず、
前記所定の動作を要求した後に得られる前記磁気センサの測定値を用いて、前記コンピュータ内部の磁場が前記磁気センサの測定値へ及ぼす影響に相当するオフセットを算出する
処理を実行させることを特徴とするキャリブレーションプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器及びキャリブレーションプログラムに関する。
【背景技術】
【０００２】
近年、例えばスマートフォンなどのように、地図情報などを表示可能な表示部を有する携帯可能なスマートデバイスが普及している。このようなスマートデバイスには、例えばＧＰＳ（Global  Positioning  System）による測位が可能なものも多くあり、測位によって得られた現在位置情報と表示部に表示された地図情報とを利用するナビゲーション機能などが提供されている。
【０００３】
ＧＰＳ測位は複数の人工衛星から送信される電波を受信して測位する方式であるため、屋外では精度良く測位を実行することが可能である。一方、屋内では、人工衛星から送信される電波の受信感度が低下するため、ＧＰＳ測位によって正確な位置を推定することが困難である。そこで、例えばスマートフォンなどの電子機器においては、加速度センサ及び地磁気センサなどを用いた自律航法測位により移動軌跡が推定されることがある。
【０００４】
自律航法測位では、地磁気センサによって磁北が推定され、電子機器の進行方位などが推定される。しかし、多くの電子機器では、内部の部品などが磁場に影響を及ぼすため、地磁気センサが地磁気以外の磁気も検知してしまう。その結果、単純に地磁気センサによって磁気を測定するだけでは、正しく磁北を推定するのが困難となっている。そこで、地磁気センサに対する電子機器内部の磁場環境の影響をあらかじめ見積もって、地磁気センサのセンサ値から差し引かれるオフセットを算出しておくキャリブレーションが行われることがある。なお、地磁気センサは、地磁気のみではなく例えば磁石や金属から発生する磁気も検知する通常の磁気センサである。以下では、地磁気センサと磁気センサとを特に区別することなく、まとめて地磁気センサという。
【０００５】
キャリブレーションには、電子機器が様々な姿勢をとる際の地磁気センサの出力が用いられるため、キャリブレーション実行時には、電子機器を保持したまま所定の動作をするようにユーザに対して要求されることがある。すなわち、電子機器を保持したまま例えば８の字を描く動作をするように要求する画面が表示部に表示されることがある。そして、電子機器が８の字を描くように動く間に地磁気センサが検知したセンサ値から、電子機器内部の磁場環境の影響に相当するオフセットが算出される。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−１７２８３７号公報
【特許文献２】特開２００９−２９１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ところで、電子機器の外部の磁場環境が変化した場合には、電子機器の内部の磁場環境も変化する。このため、外部の磁場環境が変化した場合には、再度キャリブレーションが実行されるのが好ましい。すなわち、外部の磁場環境が変化したことが検知された場合には、電子機器は、キャリブレーションのための動作をユーザに要求するのが好ましい。
【０００８】
しかしながら、外部の磁場環境が変化するたびにキャリブレーションが実行されると、ユーザは、頻繁にキャリブレーションのための動作を要求されることになるという問題がある。特に、例えば地磁気以外の磁力が強く作用している環境や建物などによる遮蔽によって地磁気が減衰している環境などへの移動によって磁場環境が変化した場合、キャリブレーションのための動作が要求され、キャリブレーションが実行されることがある。しかし、たとえキャリブレーションが実行されても、上記のような環境下では地磁気センサが地磁気を正確に検知することは困難であり、磁北が正しく推定されることはない。つまり、磁北を推定する用途の観点からは、地磁気センサの無駄なキャリブレーションが行われていることになり、電子機器の利便性が低下してしまう。
【０００９】
開示の技術は、かかる点に鑑みてなされたものであって、地磁気センサのキャリブレーションを効率的に実行することができる電子機器及びキャリブレーションプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本願が開示する電子機器は、１つの態様において、地磁気を含む磁気を測定する磁気センサを備える。そして、この電子機器は、前記磁気センサの測定値に基づいて磁場環境の変化を検知し、磁場環境の変化が検知された場合に、前記磁気センサの測定値を利用するアプリケーションのうち当該測定値を方位推定に利用する方位利用アプリケーションのみが起動中であるか否かを判定し、判定の結果、方位利用アプリケーション以外のアプリケーションが起動中である場合に、ユーザに対して所定の動作を要求する一方、方位利用アプリケーションのみが起動中である場合に、前記所定の動作を要求せず、前記所定の動作を要求した後に得られる前記磁気センサの測定値を用いて、前記電子機器内部の磁場が前記磁気センサの測定値へ及ぼす影響に相当するオフセットを算出する処理を実行するプロセッサを有する。
【発明の効果】
【００１１】
本願が開示する電子機器及びキャリブレーションプログラムの１つの態様によれば、地磁気センサのキャリブレーションを効率的に実行することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】図１は、実施の形態１に係る通信端末装置の構成を示すブロック図である。
【図２】図２は、実施の形態１に係るプロセッサの機能を示すブロック図である。
【図３】図３は、実施の形態１に係るキャリブレーション処理を示すフロー図である。
【図４】図４は、実施の形態２に係るプロセッサの機能を示すブロック図である。
【図５】図５は、実施の形態２に係る自動キャリブレーション処理を示すフロー図である。
【発明を実施するための形態】
【００１３】
以下、本願が開示する電子機器及びキャリブレーションプログラムの実施の形態について、図面を参照して詳細に説明する。以下においては、電子機器として、例えばスマートフォンなどの通信端末装置を例に挙げて説明する。なお、この実施の形態により本発明が限定されるものではない。また、本願においては、電子機器が実行する様々なアプリケーションプログラムを単にアプリケーションという。
【００１４】
（実施の形態１）
図１は、実施の形態１に係る通信端末装置１００の構成を示すブロック図である。図１に示す通信端末装置１００は、ＧＰＳ部１０１、無線部１０２、メモリ１０３、プロセッサ１０４、オーディオ入出力部１０５、タッチセンサ部１０６、表示部１０７、地磁気センサ１０８、加速度センサ１０９及びジャイロセンサ１１０を有する。
【００１５】
ＧＰＳ部１０１は、所定の周期で間欠的に起動し、人工衛星から送信される電波をアンテナを介して受信して、現在位置の緯度及び経度を含む測位データを取得する。ＧＰＳ部１０１によって取得される測位データは、所定の記憶部に記憶される。
【００１６】
無線部１０２は、アンテナを介して無線信号を送受信する。なお、図１においては、ＧＰＳ部１０１と無線部１０２が同一のアンテナを共有しているが、通信端末装置１００には、それぞれ利用される周波数帯域に応じた複数のアンテナが設けられて良い。
【００１７】
メモリ１０３は、例えばＲＡＭ（Random  Access  Memory）などを備え、プロセッサ１０４が利用するデータなどを一時的に保持する。
【００１８】
プロセッサ１０４は、通信端末装置１００の各部を統括制御する。具体的には、プロセッサ１０４は、地磁気センサ１０８、加速度センサ１０９及びジャイロセンサ１１０などによって得られるセンサデータを用いて、通信端末装置１００の移動軌跡を推定する自律航法測位を実行する。また、プロセッサ１０４は、必要に応じて地磁気センサ１０８のキャリブレーションを実行し、通信端末装置１００内部の磁場が地磁気センサ１０８のセンサ値へ及ぼす影響に相当するオフセットを算出する。そして、プロセッサ１０４は、アプリケーションに対して地磁気センサ１０８のセンサ値を提供する際に、オフセットが除去された後の補正センサ値を提供する。プロセッサ１０４の詳細な機能については、後に詳述する。
【００１９】
オーディオ入出力部１０５は、例えばマイクやスピーカなどを備え、音声情報の入力を受け付けたり、音声情報を出力したりする。
【００２０】
タッチセンサ部１０６は、表示部１０７と重ねて配置され、例えば静電容量の変化を検知して、ユーザによる接触位置を検出する。ユーザによる接触がタッチセンサ部１０６によって検出されることにより、ユーザは、タッチ動作によって通信端末装置１００を操作することができる。
【００２１】
表示部１０７は、例えば液晶パネルを備え、画像や文字などを表示する。具体的には、表示部１０７は、例えば地図情報と通信端末装置１００の移動軌跡を示す軌跡情報とを重ねて表示する。
【００２２】
地磁気センサ１０８は、例えば３軸の磁気センサであり、通信端末装置１００の高さ、幅及び厚み方向の３軸について、それぞれ磁気の強さを検知する。したがって、地磁気センサ１０８のセンサ値から、磁北を推定することが可能となる。
【００２３】
加速度センサ１０９は、例えば３軸の加速度センサであり、通信端末装置１００の高さ、幅及び厚み方向の３軸について、それぞれ加速度の大きさを検知する。したがって、加速度センサ１０９のセンサ値から、重力が作用する鉛直方向や移動時の移動方向を推定することが可能となる。
【００２４】
ジャイロセンサ１１０は、例えば３軸の角速度センサであり、通信端末装置１００の高さ、幅及び厚み方向の３軸について、それぞれ角速度の大きさを検知する。したがって、ジャイロセンサ１１０のセンサ値から、通信端末装置１００の回転方向や移動時の移動方向の変化を推定することが可能となる。
【００２５】
次いで、実施の形態１に係るプロセッサ１０４の機能について、図２を参照しながら説明する。図２は、実施の形態１に係るプロセッサ１０４の機能を示すブロック図である。図２に示すプロセッサ１０４は、センサ値取得部２０１、磁場変化検知部２０２、起動アプリ判定部２０３、動作要求部２０４、オフセット算出部２０５、一般オフセット保持部２０６、一般オフセット除去部２０７、強度算出部２０８、強度判定部２０９、方位オフセット保持部２１０及び方位オフセット除去部２１１を有する。
【００２６】
センサ値取得部２０１は、地磁気センサ１０８によって測定された磁気の強度を示す地磁気センサ値を取得する。具体的には、センサ値取得部２０１は、通信端末装置１００の高さ、幅及び厚み方向の３軸それぞれについての磁気の強度を示す地磁気センサ値を取得する。通常、同一の位置では地磁気の強度は変化しないため、磁場環境が一定の位置で通信端末装置１００の姿勢を変化させて得られた地磁気センサ値を３次元座標にプロットすると、それぞれの地磁気センサ値に対応する点は１つの球面上に配置される。すなわち、この球面の半径が地磁気の強度に対応する。
【００２７】
磁場変化検知部２０２は、センサ値取得部２０１によって取得される地磁気センサ値を監視し、地磁気センサ値の変化から磁場環境の変化を検知する。具体的には、磁場変化検知部２０２は、地磁気センサ値を３次元座標にプロットして得られる球面の半径が大きく変動したか否かを判定することにより、磁場環境の変化を検知する。すなわち、例えば球面の半径の分散が所定の閾値以上であれば、磁場変化検知部２０２は、磁場環境が変化したと判定する。
【００２８】
起動アプリ判定部２０３は、磁場変化検知部２０２によって磁場環境の変化が検知されると、現在どのようなアプリケーションが起動しているか確認する。そして、起動アプリ判定部２０３は、地磁気センサ値から推定される方位を利用するアプリケーションのみが起動しているか否かを判定する。すなわち、地磁気センサ値を利用するアプリケーションには、例えば磁力計のアプリケーションのように、方位ではなく磁気の強度を得るために地磁気センサ値を利用するアプリケーション（以下「磁気利用アプリ」という）がある。また、例えば電子コンパスのアプリケーションのように、方位を推定するために地磁気センサ値を利用するアプリケーション（以下「方位利用アプリ」という）もある。そこで、起動アプリ判定部２０３は、現在起動中のアプリケーションが方位利用アプリのみであるか否かを判定する。なお、起動アプリ判定部２０３は、例えば通信端末装置１００が実行可能なアプリケーションの一覧と、各アプリケーションの地磁気センサ値及び方位の利用の有無とを含む情報を保持している。そして、起動アプリ判定部２０３は、保持した情報を参照することにより、起動中のアプリケーションが方位利用アプリのみであるか否かを判定することが可能である。
【００２９】
動作要求部２０４は、磁場変化検知部２０２によって磁場環境の変化が検知され、かつ、起動アプリ判定部２０３によって磁気利用アプリも起動中であると判定された場合に、キャリブレーションの可否をオフセット算出部２０５へ問い合わせる。すなわち、動作要求部２０４は、磁場環境が変化した後の地磁気センサ値であってオフセットを算出するのに十分な数の地磁気センサ値のサンプルが収集済みであるか否かをオフセット算出部２０５へ問い合わせる。そして、動作要求部２０４は、十分な数のサンプルが収集済みでない場合には、ユーザに対してキャリブレーションのための動作を要求する。すなわち、動作要求部２０４は、例えば通信端末装置１００を保持したまま８の字を描く動作をするように要求するメッセージをオーディオ入出力部１０５又は表示部１０７から出力させる。また、動作要求部２０４は、一度キャリブレーションのための動作要求をした後も、キャリブレーションが可能となったか否かを定期的にオフセット算出部２０５へ問い合わせ、キャリブレーションが可能となるまで同様の動作要求をする。
【００３０】
一方、動作要求部２０４は、磁場変化検知部２０２によって磁場環境の変化が検知されても、方位利用アプリのみが起動している場合には、キャリブレーションのための動作の要求を中止する。したがって、磁場環境が変化しても、方位利用アプリのみが起動している場合には、オーディオ入出力部１０５又は表示部１０７からキャリブレーションのための動作を要求するメッセージが出力されることはない。
【００３１】
オフセット算出部２０５は、センサ値取得部２０１によって取得された地磁気センサ値を収集し、収集された地磁気センサ値のサンプルから通信端末装置１００内部の磁場の影響に相当するオフセットを算出する。具体的には、オフセット算出部２０５は、動作要求部２０４からキャリブレーションの可否が問い合わせられると、サンプルとなる地磁気センサ値を３次元座標にプロットして得られる球面の中心座標を算出する。そして、オフセット算出部２０５は、収集されたサンプル数が十分であり球面の中心座標が算出可能であった場合には、キャリブレーション可能である旨を動作要求部２０４へ通知する。そして、オフセット算出部２０５は、算出された中心座標の３軸成分をオフセットとして一般オフセット保持部２０６へ出力する。一方、オフセット算出部２０５は、収集されたサンプル数が不足して球面の中心座標が算出不可能であった場合には、キャリブレーション不可能である旨を動作要求部２０４へ通知する。
【００３２】
一般オフセット保持部２０６は、オフセット算出部２０５から出力されたオフセットを磁気利用アプリに適用する一般オフセットとして保持する。このとき、一般オフセット保持部２０６は、あらかじめ保持されていた一般オフセットをオフセット算出部２０５から新たに出力された一般オフセットに更新する。したがって、一般オフセット保持部２０６は、オフセット算出部２０５によって算出された最新のオフセットを一般オフセットとして保持する。なお、一般オフセット保持部２０６は、初期状態では、所定の磁場環境で取得された地磁気センサ値に基づいて算出されたオフセットの初期値を保持していても良い。また、一般オフセット保持部２０６は、例えばメモリ１０３などに一般オフセットを格納して保持しても良い。
【００３３】
一般オフセット除去部２０７は、センサ値取得部２０１によって取得された地磁気センサ値から、一般オフセット保持部２０６によって保持された一般オフセットを除去し、得られた補正センサ値を磁気利用アプリへ提供する。また、一般オフセット除去部２０７は、補正センサ値を強度算出部２０８へ出力する。
【００３４】
強度算出部２０８は、一般オフセット除去部２０７から出力される補正センサ値を用いて、磁気の強度を算出する。すなわち、強度算出部２０８は、例えば３軸それぞれの補正センサ値の２乗和の平方根を強度として算出する。
【００３５】
強度判定部２０９は、強度算出部２０８によって算出された強度が地磁気の強度に対応する範囲内に含まれるか否かを判定する。そして、強度判定部２０９は、算出された強度が地磁気の強度に対応する範囲内に含まれる場合には、一般オフセット保持部２０６に保持された一般オフセットに等しいオフセットを方位オフセット保持部２１０へ出力する。すなわち、一般オフセットによる補正後の磁気の強度が通常の地磁気の強度の範囲内にある場合の磁場環境は、地磁気センサ１０８によって地磁気のみが検知される環境であると考えられる。したがって、このような磁場環境で算出された一般オフセットは、地磁気センサ値から方位を推定する場合にも適したオフセットであるため、強度判定部２０９は、一般オフセットに等しいオフセットを方位利用アプリに適用する方位オフセットとして出力する。
【００３６】
方位オフセット保持部２１０は、強度判定部２０９から出力された方位オフセットを保持する。このとき、方位オフセット保持部２１０は、あらかじめ保持されていた方位オフセットを強度判定部２０９から新たに出力された方位オフセットに更新する。なお、方位オフセット保持部２１０は、初期状態では、所定の磁場環境で取得された地磁気センサ値に基づいて算出されたオフセットの初期値を保持していても良い。また、方位オフセット保持部２１０は、例えばメモリ１０３などに方位オフセットを格納して保持しても良い。
【００３７】
方位オフセット除去部２１１は、センサ値取得部２０１によって取得された地磁気センサ値から、方位オフセット保持部２１０によって保持された方位オフセットを除去し、得られた補正センサ値を方位利用アプリへ提供する。
【００３８】
次いで、上記のように構成された通信端末装置１００におけるキャリブレーション処理について、図３に示すフロー図を参照して説明する。
【００３９】
通信端末装置１００の稼働時には、地磁気センサ１０８によって測定される地磁気センサ値がセンサ値取得部２０１によって定期的に取得される（ステップＳ１０１）。取得される地磁気センサ値は、通信端末装置１００の高さ、幅及び厚み方向の３軸成分を有している。そして、磁場変化検知部２０２によって、地磁気センサ値が監視され、外部の磁場環境が変化したか否かが判定される（ステップＳ１０２）。具体的には、磁場変化検知部２０２によって、随時取得される地磁気センサ値が３次元座標にプロットされ、プロットされた点から規定される球面の半径が変動したか否かが判定される。
【００４０】
ここで、外部の磁場環境が変化しなければ磁気の強度は変化しないため、通信端末装置１００の姿勢の変化によって地磁気センサ値のそれぞれの軸成分は変化するものの、３次元座標上では地磁気センサ値に対応する点が１つの球面上に配置される。したがって、この球面の半径の分散が大きい場合には、外部の磁場環境が変化したと考えられる。そこで、磁場変化検知部２０２によって、地磁気センサ値をプロットして得られる球面の半径の分散が所定の閾値以上であるか否かが判定されることにより、磁場環境が変化したか否かが判定される。
【００４１】
この判定の結果、球面の半径が変動せず、磁場環境の変化がないと判定された場合には（ステップＳ１０２Ｎｏ）、引き続きセンサ値取得部２０１によって取得された地磁気センサ値が磁場変化検知部２０２によって監視される。一方、磁場環境の変化があると判定された場合には（ステップＳ１０２Ｙｅｓ）、起動アプリ判定部２０３によって、起動中のアプリケーションが方位利用アプリのみであるか否かが判定される（ステップＳ１０３）。そして、起動中のアプリケーションが方位利用アプリのみである場合には（ステップＳ１０３Ｙｅｓ）、キャリブレーションが不要であると判断され、引き続きセンサ値取得部２０１によって取得された地磁気センサ値が磁場変化検知部２０２によって監視される。
【００４２】
このように、磁場環境が変化しても方位利用アプリのみが起動している場合にはキャリブレーションが不要となるのは以下の理由による。すなわち、まず、地磁気センサ１０８が地磁気のみを検知する磁場環境から地磁気以外の磁気を検知する磁場環境に変化した場合、地磁気以外の磁気によって磁北の推定は困難となる。このため、たとえキャリブレーションが実行されても、方位利用アプリが地磁気センサ値から正確な方位を推定するのは困難である。そこで、無駄なキャリブレーションの実行を防止するために、方位利用アプリのみが起動している場合には、キャリブレーションが実行されない。
【００４３】
また、地磁気センサ１０８が地磁気のみを検知する範囲内で磁場環境が変化した場合、オフセットは大きく変化しない。すなわち、地磁気センサ１０８が地磁気のみを検知する範囲内では、磁場環境の変化は比較的小さく、たとえ磁場環境の変化が検知されたとしても、同一の方位オフセットを用いることで地磁気センサ値を補正することが可能である。
【００４４】
さらに、地磁気センサ１０８が地磁気以外の磁気を検知する磁場環境から地磁気のみを検知する磁場環境に変化した場合、地磁気センサ値から方位を推定することが可能となる。しかし、本実施の形態においては、一般オフセットと方位オフセットが別々に保持されており、地磁気センサ１０８が地磁気以外の磁気を検知する磁場環境へ変化した際に方位オフセットは更新されていない。このため、地磁気センサ１０８が地磁気のみを検知する磁場環境に変化した場合も、保持された方位オフセットを更新する必要はない。
【００４５】
これらの理由から、起動アプリ判定部２０３によって方位利用アプリのみが起動中であると判定された場合には、キャリブレーションは不要であると判断され実行されない。このため、ユーザに対してキャリブレーションのための動作が要求されることはなく、キャリブレーションのための動作要求の頻度を低減することができる。換言すれば、地磁気センサ１０８のキャリブレーションを効率的に実行することができる。
【００４６】
一方、方位利用アプリのみではなく、磁気利用アプリも起動している場合には（ステップＳ１０３Ｎｏ）、動作要求部２０４によって、オフセット算出部２０５に対するキャリブレーションの可否の問い合わせが行われる。この問い合わせを受け、オフセット算出部２０５によって、十分な数の地磁気センサ値のサンプルが収集されており、キャリブレーションが可能であるか否かが判定される（ステップＳ１０４）。すなわち、オフセット算出部２０５は、センサ値取得部２０１によって取得される地磁気センサ値を収集しているが、動作要求部２０４からの問い合わせを受けると、磁場環境が変化した後に収集されたサンプルからオフセットの算出を試みる。この結果、サンプルが不足してオフセットの算出が不可能であれば（ステップＳ１０４Ｎｏ）、その旨が動作要求部２０４へ通知され、キャリブレーションのための動作を要求するメッセージがオーディオ入出力部１０５又は表示部１０７から出力される（ステップＳ１０９）。なお、オフセット算出部２０５によって算出されるオフセットは、地磁気センサ値のサンプルを３次元座標にプロットして得られる球面の中心座標に相当し、この中心座標の原点からのずれは、通信端末装置１００内部の磁場環境に起因するものである。
【００４７】
キャリブレーションの動作要求が行われると、ユーザは、動作要求に従って、例えば８の字を描くように通信端末装置１００の姿勢を変化させる。そして、この間にセンサ値取得部２０１によって地磁気センサ値が取得され（ステップＳ１１０）、オフセット算出部２０５によって、再度オフセットの算出が可能となったか否かが判定される（ステップＳ１０４）。このように、キャリブレーションを実行するのに地磁気センサ値のサンプルが不足する間は、キャリブレーション動作が要求されて地磁気センサ値が収集される。
【００４８】
そして、十分なサンプルが収集されてキャリブレーションが可能となると（ステップＳ１０４Ｙｅｓ）、サンプルから算出されたオフセットによって、一般オフセット保持部２０６によって保持される一般オフセットが更新される（ステップＳ１０５）。以後、センサ値取得部２０１によって取得された地磁気センサ値が磁気利用アプリへ提供される際には、一般オフセット除去部２０７によって地磁気センサ値から新たな一般オフセットが除去されて得られる補正センサ値が提供されることとなる。
【００４９】
また、一般オフセット保持部２０６に保持された一般オフセットが更新されると、一般オフセット除去部２０７によって新たな一般オフセットが除去されて得られる補正センサ値は、強度算出部２０８へ出力される。そして、強度算出部２０８によって、補正センサ値から磁気の強度が算出される（ステップＳ１０６）。すなわち、強度算出部２０８によって、例えば補正センサ値の３軸成分の２乗和の平方根が算出される。そして、強度判定部２０９によって、算出された強度が例えば３５〜５０μＴ（マイクロテスラ）程度の地磁気の強度の範囲内に含まれるか否かが判定される（ステップＳ１０７）。
【００５０】
この判定の結果、強度が地磁気の強度の範囲内に含まれない場合は（ステップＳ１０７Ｎｏ）、方位オフセット保持部２１０に保持された方位オフセットが更新されることなく処理が終了する。したがって、地磁気以外の磁気が存在していたり地磁気が減衰していたりする状況では、算出されたオフセットが方位オフセットとして保持されることがない。このため、適正な方位オフセットが方位オフセット保持部２１０に保持されたままであることになり、例えば地磁気のみが検知される場所に通信端末装置１００が移動した場合でも、即座に適正な方位オフセットを除去することが可能となる。
【００５１】
また、ステップＳ１０７における判定の結果、強度が地磁気の強度の範囲内に含まれる場合は（ステップＳ１０７Ｙｅｓ）、強度判定部２０９によって、方位オフセット保持部２１０に保持された方位オフセットが一般オフセットと等しい値に更新される（ステップＳ１０８）。つまり、地磁気のみが検知される状況でキャリブレーションが実行された場合には、一般オフセットと方位オフセットがキャリブレーションによって得られた新たなオフセットに更新される。以後、センサ値取得部２０１によって取得された地磁気センサ値が方位利用アプリへ提供される際には、方位オフセット除去部２１１によって地磁気センサ値から新たな方位オフセットが除去されて得られる補正センサ値が提供されることとなる。このため、最新の磁場環境に則した方位オフセットが除去された補正センサ値を方位利用アプリへ提供することができる。
【００５２】
以上のように、本実施の形態によれば、地磁気センサ値から磁場環境の変化が検知された場合に、起動中のアプリケーションが方位利用アプリのみであるか否かを判定し、方位利用アプリのみであれば、キャリブレーションのための動作が要求されない。また、キャリブレーションが実行された場合、算出されたオフセットを一般オフセットとして保持する一方、地磁気センサ値を方位利用アプリへ提供する際に使用される方位オフセットを別に保持する。そして、磁気の強度が地磁気の強度の範囲内にある場合のみ、方位オフセットを一般オフセットと等しい値に更新する。このため、ユーザに対して不要なキャリブレーションのための動作要求がなされることがないとともに、正確に方位を推定可能な状況では、常に適正な方位オフセットを除去した補正センサ値が方位利用アプリへ提供される。換言すれば、地磁気センサのキャリブレーションを効率的に実行することができる。
【００５３】
なお、上記実施の形態１においては、キャリブレーションのための動作が要求された際の地磁気センサ値を用いてキャリブレーションが実行されるものとしたが、このキャリブレーションとは別に自動キャリブレーションが実行されても良い。すなわち、通信端末装置１００の通常使用に伴う姿勢変化時に収集される地磁気センサ値のサンプルを用いて、一般オフセット及び方位オフセットの更新が行われるようにしても良い。このような自動キャリブレーションは、キャリブレーションのための動作要求を伴うキャリブレーションと並行して実施することが可能である。
【００５４】
（実施の形態２）
実施の形態２の特徴は、通信端末装置の通常使用時の姿勢変化に伴って実行される自動キャリブレーションの可否を判断し、自動キャリブレーションが可能な場合には、キャリブレーションのための動作要求を抑圧する点である。
【００５５】
実施の形態２に係る通信端末装置１００の構成は、図１に示す通信端末装置１００の構成と同様であるため、その説明を省略する。実施の形態２においては、図１のプロセッサ１０４の機能が実施の形態１とは異なる。
【００５６】
図４は、実施の形態２に係るプロセッサ１０４の機能を示すブロック図である。図４において、図２と同じ部分には同じ符号を付し、その説明を省略する。図４に示すプロセッサ１０４は、図２に示すプロセッサ１０４の動作要求部２０４に代えて動作要求部３０３を有し、姿勢変化検知部３０１及び自動キャリブ判断部３０２を追加した構成を採る。
【００５７】
姿勢変化検知部３０１は、加速度センサ１０９及びジャイロセンサ１１０によってそれぞれ検知される加速度センサ値及び角速度センサ値を取得する。そして、姿勢変化検知部３０１は、加速度センサ値及び角速度センサ値に基づいて、通信端末装置１００の姿勢が変化したことを検知する。
【００５８】
自動キャリブ判断部３０２は、通信端末装置１００の姿勢変化が検知された場合に、所定時間内の姿勢変化の回数や変化した姿勢の角度に基づいて、自動キャリブレーションを実行する条件が満たされるか否かを判断する。すなわち、自動キャリブ判断部３０２は、所定時間内に比較的多くの姿勢変化が検知されており、通信端末装置１００の姿勢が様々な角度に変化したと判断した場合は、自動キャリブレーションを実行する条件が満たされると判断する。
【００５９】
そして、自動キャリブ判断部３０２は、条件が満たされると判断した場合には、キャリブレーションの可否をオフセット算出部２０５へ問い合わせる。すなわち、自動キャリブ判断部３０２は、所定時間内の地磁気センサ値であってオフセットを算出するのに十分な数の地磁気センサ値のサンプルが収集済みであるか否かをオフセット算出部２０５へ問い合わせる。そして、自動キャリブ判断部３０２は、十分な数のサンプルが収集済みでない場合には、引き続き姿勢変化検知部３０１による姿勢変化の検知を待機する。
【００６０】
一方、自動キャリブ判断部３０２は、十分な数のサンプルが収集済みである場合には、動作要求部３０３によるキャリブレーションのための動作要求を抑圧する。すなわち、十分なサンプルが収集済みで自動キャリブレーションが実行される場合には、自動キャリブ判断部３０２は、キャリブレーション動作の要求を伴うキャリブレーションを抑圧し、重複したキャリブレーションの実行を防止する。
【００６１】
動作要求部３０３は、実施の形態１の動作要求部２０４と同様に、キャリブレーションの可否をオフセット算出部２０５へ問い合わせる。そして、動作要求部３０３は、十分な数のサンプルが収集済みでない場合には、ユーザに対してキャリブレーションのための動作を要求する。ただし、動作要求部３０３は、自動キャリブ判断部３０２によってキャリブレーション動作の要求が抑圧されている場合には、十分な数のサンプルが収集済みでなくてもキャリブレーションのための動作を要求しない。すなわち、たとえ磁場環境が変化し、かつ、磁気利用アプリが起動中であっても、動作要求部３０３は、自動キャリブ判断部３０２による指示に従って、キャリブレーション動作の要求を中止する。
【００６２】
また、動作要求部３０３は、実施の形態１の動作要求部２０４と同様に、磁場変化検知部２０２によって磁場環境の変化が検知されても、方位利用アプリのみが起動している場合には、キャリブレーションのための動作を要求しない。
【００６３】
次いで、上記のように構成された通信端末装置１００における自動キャリブレーション処理について、図５に示すフロー図を参照して説明する。
【００６４】
通信端末装置１００の稼働時には、加速度センサ１０９及びジャイロセンサ１１０によって測定される加速度センサ値及び角速度センサ値が姿勢変化検知部３０１によって定期的に取得される（ステップＳ２０１）。そして、姿勢変化検知部３０１によって、加速度センサ値及び角速度センサ値が監視され、通信端末装置１００の姿勢が変化したか否かが判定される（ステップＳ２０２）。
【００６５】
この判定の結果、通信端末装置１００の姿勢変化がないと判定された場合には（ステップＳ２０２Ｎｏ）、引き続き姿勢変化検知部３０１によって加速度センサ値及び角速度センサ値が監視される。一方、姿勢変化があると判定された場合には（ステップＳ２０２Ｙｅｓ）、自動キャリブ判断部３０２によって、自動キャリブレーションを実行する条件が満たされるか否かが判断される（ステップＳ２０３）。具体的には、自動キャリブ判断部３０２によって、例えば所定時間内の姿勢変化の回数や変化した姿勢の角度がキャリブレーションを実行するのに十分であるか否かが判断される。
【００６６】
そして、自動キャリブレーションを実行する条件が満たされないと判断された場合には（ステップＳ２０３Ｎｏ）、引き続き姿勢変化検知部３０１によって加速度センサ値及び角速度センサ値が監視される。また、自動キャリブレーションを実行する条件が満たされると判断された場合には（ステップＳ２０３Ｙｅｓ）、自動キャリブ判断部３０２によって、オフセット算出部２０５に対するキャリブレーションの可否の問い合わせが行われる。この問い合わせを受け、オフセット算出部２０５によって、十分な数の地磁気センサ値のサンプルが収集されており、キャリブレーションが可能であるか否かが判定される（ステップＳ２０４）。すなわち、オフセット算出部２０５は、センサ値取得部２０１によって取得される地磁気センサ値を収集しているが、自動キャリブ判断部３０２からの問い合わせを受けると、所定時間内に収集されたサンプルからオフセットの算出を試みる。この結果、サンプルが不足してオフセットの算出が不可能であれば（ステップＳ２０４Ｎｏ）、その旨が自動キャリブ判断部３０２へ通知される。この場合には、キャリブレーションの実行が不可能であるため、引き続き姿勢変化検知部３０１によって加速度センサ値及び角速度センサ値が監視される。このように、通信端末装置１００の姿勢変化が自動キャリブレーションを実行する条件を満足し、キャリブレーションの実行が可能になるまでは、継続的に通信端末装置１００の姿勢変化が監視される。
【００６７】
そして、自動キャリブレーションを実行する条件を満足した際に、十分なサンプルが収集されてキャリブレーションが可能となると（ステップＳ２０４Ｙｅｓ）、自動キャリブ判断部３０２によって、自動キャリブレーションの実施が感知される。すなわち、オフセット算出部２０５によってオフセットが算出されたことが自動キャリブ判断部３０２によって感知される。そして、自動キャリブ判断部３０２によって、キャリブレーションのための動作要求を抑圧する指示が動作要求部３０３へ出力される（ステップＳ２０５）。
【００６８】
本実施の形態においては、実施の形態１と同様に、磁場環境の変化が検知され、磁気利用アプリも起動中であると判定された場合には、動作要求部３０３によって、キャリブレーションのための動作要求が行われる。しかし、同時に自動キャリブ判断部３０２によって、キャリブレーションのための動作が不要の自動キャリブレーションの実施が管理されている。したがって、自動キャリブレーションが実行される場合には、ユーザに対してキャリブレーションのための動作を要求する必要がない。そこで、自動キャリブレーションが実行される場合には、動作要求部３０３による動作要求を抑圧することにより、ユーザに対して不要な動作要求が行われることを防止する。この結果、ユーザに対して不要なキャリブレーションのための動作要求がなされることがなく、動作要求の頻度を低減することができる。
【００６９】
このように動作要求が抑圧された上で、自動キャリブレーションの実施時には、オフセット算出部２０５によって算出されたオフセットによって、一般オフセット保持部２０６によって保持される一般オフセットが更新される（ステップＳ２０６）。以後、センサ値取得部２０１によって取得された地磁気センサ値が磁気利用アプリへ提供される際には、一般オフセット除去部２０７によって地磁気センサ値から新たな一般オフセットが除去されて得られる補正センサ値が提供されることとなる。
【００７０】
また、一般オフセット保持部２０６に保持された一般オフセットが更新されると、一般オフセット除去部２０７によって新たな一般オフセットが除去されて得られる補正センサ値は、強度算出部２０８へ出力される。そして、強度算出部２０８によって、補正センサ値から磁気の強度が算出される（ステップＳ２０７）。すなわち、強度算出部２０８によって、例えば補正センサ値の３軸成分の２乗和の平方根が算出される。そして、強度判定部２０９によって、算出された強度が例えば３５〜５０μＴ（マイクロテスラ）程度の地磁気の強度の範囲内に含まれるか否かが判定される（ステップＳ２０８）。
【００７１】
この判定の結果、強度が地磁気の強度の範囲内に含まれない場合は（ステップＳ２０８Ｎｏ）、方位オフセット保持部２１０に保持された方位オフセットが更新されることなく処理が終了する。したがって、地磁気以外の磁気が存在していたり地磁気が減衰していたりする状況では、算出されたオフセットが方位オフセットとして保持されることがない。このため、適正な方位オフセットが方位オフセット保持部２１０に保持されたままであることになり、例えば地磁気のみが検知される場所に通信端末装置１００が移動した場合でも、即座に適正な方位オフセットを除去することが可能となる。
【００７２】
また、ステップＳ２０８における判定の結果、強度が地磁気の強度の範囲内に含まれる場合は（ステップＳ２０８Ｙｅｓ）、強度判定部２０９によって、方位オフセット保持部２１０に保持された方位オフセットが一般オフセットと等しい値に更新される（ステップＳ２０９）。つまり、地磁気のみが検知される状況でキャリブレーションが実行された場合には、一般オフセットと方位オフセットがキャリブレーションによって得られた新たなオフセットに更新される。以後、センサ値取得部２０１によって取得された地磁気センサ値が方位利用アプリへ提供される際には、方位オフセット除去部２１１によって地磁気センサ値から新たな方位オフセットが除去されて得られる補正センサ値が提供されることとなる。このため、最新の磁場環境に則した方位オフセットが除去された補正センサ値を方位利用アプリへ提供することができる。
【００７３】
以上のように、本実施の形態によれば、地磁気センサ値から磁場環境の変化が検知された場合に、起動中のアプリケーションが方位利用アプリのみであるか否かを判定し、方位利用アプリのみであれば、キャリブレーションのための動作が要求されない。また、通信端末装置の姿勢変化が検知され、姿勢変化が自動キャリブレーションを実行する条件を満たし、自動キャリブレーションが実行される場合には、キャリブレーションのための動作要求が抑圧される。このため、ユーザに対して不要なキャリブレーションのための動作要求がなされることがなく、キャリブレーションのための動作要求の頻度を低減することができる。
【００７４】
なお、上記各実施の形態において説明した通信端末装置１００の動作をコンピュータが実行可能なプログラムとして記述することも可能である。この場合、このプログラムをコンピュータが読み取り可能な記録媒体に格納し、コンピュータに導入することも可能である。コンピュータが読み取り可能な記録媒体としては、例えばＣＤ−ＲＯＭ、ＤＶＤディスク、ＵＳＢメモリなどの可搬型記録媒体や、例えばフラッシュメモリなどの半導体メモリが挙げられる。
【符号の説明】
【００７５】
１０１  ＧＰＳ部
１０２  無線部
１０３  メモリ
１０４  プロセッサ
１０５  オーディオ入出力部
１０６  タッチセンサ部
１０７  表示部
１０８  地磁気センサ
１０９  加速度センサ
１１０  ジャイロセンサ
２０１  センサ値取得部
２０２  磁場変化検知部
２０３  起動アプリ判定部
２０４、３０３  動作要求部
２０５  オフセット算出部
２０６  一般オフセット保持部
２０７  一般オフセット除去部
２０８  強度算出部
２０９  強度判定部
２１０  方位オフセット保持部
２１１  方位オフセット除去部
３０１  姿勢変化検知部
３０２  自動キャリブ判断部
【図１】
0006357992.tif 000002
【図２】
0006357992.tif 000003
【図３】
0006357992.tif 000004
【図４】
0006357992.tif 000005
【図５】
0006357992.tif 000006