(58)【調査した分野】(Int.Cl.,DB名)
前記磁気データ取得部は、移動中の前記ユーザが前記分岐点に到達すると予測されるタイミングより予め設定された時間だけ前の第1のタイミングから、前記分岐点を通過して予め設定された時間が経過した後の第2のタイミングまでの間で、前記磁気センサより前記磁気データを取得することを特徴とする請求項1に記載の電子機器。
前記磁気データ取得部は、移動中の前記ユーザが前記進行方向を変化させる分岐点に到達すると予測されるタイミングより予め設定された時間だけ前の第1のタイミングから、前記進行方向を変化させる分岐点を通過して予め設定された時間が経過した後の第2のタイミングまでの間で、前記磁気センサより前記磁気データを取得することを特徴とする請求項3に記載の電子機器。
前記オフセット算出部は、前記磁気センサにより取得された前記磁気データのうち、個別の平面においてそれぞれに含まれる複数の前記磁気データにより形成される各円周を推定し、前記各円周の中心座標を通り、前記個別の平面に垂直な直線相互の交点を、前記磁気センサのオフセット値として算出することを特徴とする請求項1乃至6のいずれかに記載の電子機器。
前記オフセット算出部により算出された前記オフセット値に基づいて、前記磁気データを補正して、前記電子機器を基準とする方位を算出する方位算出部を有することを特徴とする請求項1乃至8のいずれかに記載の電子機器。
【発明を実施するための形態】
【0013】
以下、本発明に係る電子機器及びセンサ較正方法、センサ較正プログラムについて、実施形態を示して詳しく説明する。
<電子機器>
図1は、本発明に係る電子機器の複数の適用例を示す概略構成図である。また、
図2は、本発明に係る電子機器の一実施形態を示す機能ブロック図である。
【0014】
本発明に係る電子機器は、例えば位置情報や地図情報を利用した種々のサービスを、ユーザに提供するための機能を備えた電子機器に適用される。具体的には、電子機器は、例えば
図1(a)に示すような腕時計型やリストバンド型の外観のスポーツウォッチ10や、
図1(b)に示すような登山等のアウトドア機器(例えばGPSロガーやナビゲーション端末)20、
図1(c)に示すようなスマートフォン30やタブレット端末等に適用される。以下、説明の都合上、これらの機器を「電子機器100」と総称する。
【0015】
本実施形態に係る電子機器100は、例えば
図2に示すように、磁気センサ110と、モーションセンサ(測位センサ)120と、GPS受信回路(測位センサ)130と、入出力インターフェース部140と、入力操作部150と、出力部160と、演算回路部(移動経路特定部、磁気データ取得部、オフセット算出部、オフセット監視部、方位算出部)170と、メモリ部180と、電源供給部190と、を有している。
【0016】
磁気センサ110は、直交する3軸方向の地磁気を検出するセンサであって、地球の磁場(磁界)を検出して磁気データ(又は、3次元の方向データ)として出力する。この磁気データは、例えば、後述する演算回路部170において電子機器100を基準とする方位を算出する際に用いられる。磁気センサ110により取得された磁気データは、時間データに関連付けられて後述するメモリ部180の所定の記憶領域に保存される。
【0017】
モーションセンサ120は、少なくとも加速度センサ122と、角速度センサ(ジャイロセンサ)124とを含み、ユーザの身体の動きや運動状態、電子機器100に加わる特定方向の力等を検出する。加速度センサ122は、ユーザの身体の動きに応じて電子機器100に生じる移動速度の変化の割合(加速度)を計測する。加速度センサ122は、3軸加速度センサを有し、互いに直交する3軸方向の各々に沿った加速度成分(加速度信号)を検出して加速度データとして出力する。また、角速度センサ124は、ユーザの身体の動きに応じて電子機器100に生じる移動方向の変化(角速度)を計測する。角速度センサ124は、3軸角速度センサを有し、上記加速度データを規定する、互いに直交する3軸について、各軸に沿った回転運動の回転方向に生じる角速度成分(角速度信号)を検出して角速度データとして出力する。加速度センサ122及び角速度センサ124により取得されたセンサデータ(加速度データ、角速度データ)は、時間データに関連付けられてメモリ部180の所定の記憶領域に保存される。メモリ部180に保存されたセンサデータは、後述するGPS受信回路130における測位精度が低い場合や、測位が不能な場合等に、GPS受信回路130により取得される測位データと併せて演算処理を行うことにより正確な位置情報を得るデッドレコニング(推測航法又は自律航法)に使用される。すなわち、モーションセンサ120は、GPS受信回路130の機能を補完して、あるいは、GPS受信回路130の機能と併用して、位置情報を取得するための機能を有している。
【0018】
GPS受信回路130は、複数のGPS衛星からの電波を、GPSアンテナ(図示を省略)を介して受信することにより、緯度、経度情報に基づく地理的な位置情報を取得して、測位データとして出力する。ここで、電子機器100を任意の方向に向けているときや、電子機器100を装着又は携帯したユーザが移動しているときに、GPS受信回路130により取得された測位データは、演算回路部170において電子機器100が向いている方位や移動方向を算出する際に用いられる。GPS受信回路130により取得された測位データは、時間データに関連付けられてメモリ部180の所定の記憶領域に保存される。
【0019】
入出力インターフェース部(以下、「入出力I/F部」と記す)140は、電子機器100の外部の周辺機器や情報機器、通信ネットワーク等(図示を省略)との間で、有線や無線を用いた所定の通信形式により各種のデータを入出力又は送受信する。本実施形態においては、入出力I/F部140は、少なくとも、ユーザがランニング等で移動する経路を含む所定の範囲の地図情報を取得する。取得された地図情報はメモリ部180の所定の記憶領域に保存される。メモリ部180に保存された地図情報は、後述する演算回路部170におけるユーザの移動経路のマップマッチングや、移動(走行)予定コースの設定、磁気データの取得等の各種の処理を実行する際に使用される。
【0020】
入力操作部150は、例えば
図1に示した電子機器100(スポーツウォッチ10やアウトドア機器20、スマートフォン30等)の筐体に設けられた操作スイッチ152やタッチパネル154等を有している。入力操作部150は、例えば電子機器100の動作電源やGPS受信回路130における測位動作のオン、オフ操作、アプリケーションソフトウェアの操作、後述する出力部160(表示部や音響部等)により提供又は報知する項目の設定等の、各種の入力操作に用いられる。
【0021】
出力部160は、電子機器100の筐体に設けられた表示部162や音響部164、振動部(図示を省略)等を有している。出力部160は、少なくとも上述した磁気センサ110により取得された磁気データに基づく方位や、モーションセンサ120により取得されたセンサデータ、GPS受信回路130により取得された測位データに基づく位置情報や地図情報、アラーム等の、各種の情報を視覚や聴覚、触覚等を通してユーザに提供又は報知する。
【0022】
演算回路部170は、計時機能を備えたCPU(中央演算処理装置)やMPU(マイクロプロセッサ)等の演算処理装置であって、動作クロックに基づいて、所定の制御プログラムやアルゴリズムプログラムを実行する。これにより、演算回路部170は、磁気センサ110やモーションセンサ120におけるセンシング動作や、GPS受信回路130における測位動作、後述する磁気センサ110におけるキャリブレーション処理や方位算出処理、出力部160における報知動作等の、各種の動作を制御する。なお、磁気センサ110のキャリブレーション処理を含む電子機器100の制御方法については、詳しく後述する。
【0023】
メモリ部180は、上述した磁気センサ110により取得された磁気データや、モーションセンサ120により取得されたセンサデータ、GPS受信回路130により取得された測位データ等を、時間データに関連付けて所定の記憶領域に保存する。また、メモリ部180は、演算回路部170において実行される制御方法(センサ較正方法)において生成される各種データや、磁気センサ110のオフセット値、マップマッチング処理に使用する地図情報等を所定の記憶領域に保存する。また、メモリ部180は、磁気センサ110やモーションセンサ120、GPS受信回路130等の、各構成における動作を実行するための制御プログラムや、上記の磁気データやセンサデータ、測位データに基づいて、磁気センサ110のキャリブレーション処理を実行するためのアルゴリズムプログラムを保存する。なお、これらのプログラムは、演算回路部170に予め組み込まれているものであってもよい。また、メモリ部180は、その一部又は全部が、例えばメモリカード等のリムーバブル記憶媒体としての形態を有し、電子機器100に対して着脱可能に構成されているものであってもよい。
【0024】
電源供給部190は、電子機器100内部の各構成に駆動用電力を供給する。電源供給部190は、電子機器100が携帯型の機器である場合には、例えば市販のボタン型電池等の一次電池や、リチウムイオン電池等の二次電池が適用される。また、電源供給部190は、上記の一次電池や二次電池のほか、振動や光、熱、電磁波等のエネルギーにより発電する環境発電(エナジーハーベスト)技術による電源等を、単独で、あるいは、他の電源と併用して適用するものであってもよい。
【0025】
<電子機器の制御方法>
次に、本実施形態に係る電子機器における制御方法(センサ較正方法)について、図面を参照して説明する。ここで、以下のフローチャートに示す電子機器の制御方法は、上述した演算回路部170が所定の制御プログラム及びアルゴリズムプログラムに従って処理を実行することにより実現される。
【0026】
図3は、本実施形態に係る電子機器における制御方法の一例を示すフローチャートである。
図4は、磁気センサの出力分布例とオフセット補正との関係を示す概念図である。
図5は、本実施形態に係る制御方法においてコース設定をした場合の移動経路と磁気データの取得動作との関係を示す概念図である。
図6は、本実施形態において取得される磁気データの出力分布例を示す概念図である。
図7は、本実施形態に係る制御方法においてコース設定をしない場合の移動経路と磁気データの取得動作との関係を示す概念図である。
【0027】
本実施形態に係る電子機器100の制御方法においては、磁気センサ110及びモーションセンサ120、GPS受信回路130を備えた電子機器100において、例えば
図3のフローチャートに示すような一連の処理が実行される。まず、ユーザが入力操作部150を操作することにより、電源供給部190から電子機器100内部の各構成に駆動用電力が供給されて、電子機器100が起動する。これにより、演算回路部170が、少なくとも磁気センサ110及びモーションセンサ120によるセンシング動作、GPS受信回路130による測位動作を含む通常処理を実行する(ステップS102)。
【0028】
この通常動作において、3軸の磁気センサ110を備えた電子機器100を一定の地磁気の中で回転や移動させた場合、磁気センサ110により取得される磁気データを3次元座標上でプロットすると、例えば
図4に示すように、概ね球面Sp上に広く分布する。ここで、この球面Spにより形成される球の中心点Paは、磁気センサ110により取得される磁気データ群の基準点を示し、球の半径rは、地磁気の大きさ(強さ)に対応する。また、この球の中心点Paは、磁気センサ110が周辺の磁場の影響を受けて(着磁して)、本来の(真の)磁気データ群の基準点Pcに対して一定の誤差(=オフセット)を生じている。したがって、球の中心点Paと真の基準点Pcとの差分に相当するオフセット値(図中、「オフセットベクトル」と表記)を算出して、磁気センサ110により取得される磁気データ群に対してオフセット値を引くオフセット補正を行うことにより、磁気センサ110の周辺磁場の影響を除去して、電子機器100を基準とする正確な方位を算出することができる。
【0029】
一方、電子機器100の環境が、磁気センサ110の周辺に強い磁場が存在する環境に変化すると、その磁界の影響を受けて磁気センサ110の着磁状態が変化することになり、磁気センサ110は、当該磁界と測定対象である地磁気とが合成された磁界を検出することになる。そのため、着磁状態が変化した磁気センサ110により取得された磁気データ群(図中、「着磁後の磁気データ群」と表記)の分布は、オフセット値が算出された当初の磁気データ群の分布(球面Sp及びその球の中心点Pa)の3次元座標上の位置から変化(移動)することになる(図中、球面Sp′及びその球の中心点Pa′)。この場合、着磁後の磁気データ群に対して、上述した予め算出されたオフセット値を用いた補正を行うと、算出される方位が正確な方位とは異なってしまうことになる。
【0030】
そこで、本実施形態においては、演算回路部170により、通常処理中のオフセット値の変化(オフセット異常)を監視し、キャリブレーション処理を実行するか否かを判定する(ステップS104)。具体的には、演算回路部170は、磁気センサ110により取得された磁気データ群に対して、算出されたオフセット値を用いた補正を行い、その分布が3次元座標の基準点Pcを中心にした球面上にない場合には、オフセット異常があり、キャリブレーション処理の実施が必要であると判定する。あるいは、演算回路部170は、一定期間取得した磁気データと中心点Paとの距離(すなわち地磁気の大きさ)、又は、補正後の磁気データと基準点Pcとの距離にバラツキが生じている場合には、オフセット異常があり、キャリブレーション処理の実施が必要であると判定する。一方、補正後の磁気データ群の分布が3次元座標の基準点Pcを中心にした球面上にあって、当該磁気データと基準点Pcとの距離にバラツキが生じていない場合には、演算回路部170は、オフセット異常なしと判定して、ステップS102に戻って通常処理を継続する。
【0031】
なお、ステップS104におけるオフセット異常の判定処理は、ステップS102の通常処理中にバックグラウンドで実行される。また、オフセット異常の判定処理は、上述した手法に限定されるものではない。例えば、GPS受信回路130により取得される測位データに基づいて導出される当該地点の地磁気の大きさ(強さ)と、磁気センサ110により取得される磁気データに基づいて算出される磁気センサ出力ベクトルの大きさとを比較して、その差が所定の閾値以上である場合にはオフセット異常であると判定するものであってもよい。
【0032】
ステップS104において、オフセット異常と判定した場合には、演算回路部170は、磁気センサ110の動作モードを低消費電力モードに移行させる(ステップS106)。すなわち、オフセット異常の状態では、磁気センサ110により取得される磁気データは周辺磁場の影響を受けているため、正確な方位の算出等ができず、無効なデータの取得と無駄な演算処理を実行することになる。そのため、演算回路部170は、磁気センサ110による磁気データの取得、及び、当該磁気データを用いた各種の演算処理を実質的に中断又は停止して、磁気センサ110を含む演算処理に関わる機能部を低消費電力状態に移行させる。
【0033】
次いで、演算回路部170は、ユーザの移動経路についてコースが設定されているか否か判定する(ステップS108)。ここで、ユーザが移動経路をコース設定する場合には、例えばユーザは移動を予定している経路を含む領域(自己の現在地点を含む領域であっても含まない領域であってもよい。)の地図情報を予め取得して、当該地図情報中に移動経路を入力し、メモリ部180に保存しておく。なお、地図情報については、入出力I/F部140を介してネットワーク上のサーバや地図ディスク等から、現在地点や移動経路を含む所定の範囲の地図情報を取得する。
【0034】
ステップS108において、
図5に示すように、ユーザの移動経路についてコースCPが設定されている場合には、演算回路部170は、ユーザの現在位置が、コース設定により移動方向が変化するノードの近傍にあるか否かを判断する(ステップS110)。また、
図7に示すように、ユーザの移動経路についてコースが設定されていない場合には、演算回路部170は、ユーザの現在位置が、地図情報に含まれる各ノードの近傍にあるか否かを判断する(ステップS112)。ステップS110又はS112において、ユーザの現在位置が所定のノード近傍にないと判断した場合には、演算回路部170は、ステップS106に戻って、ユーザの現在位置が所定のノード近傍に到達するまで、磁気センサ110を低消費電力モードで動作させる。
【0035】
ここで、ユーザの現在位置や移動経路を特定する手法としては、GPS受信回路130により取得される測位データや、モーションセンサ120により取得されるセンサデータに基づいて位置情報を求め、
図5、
図7に示すように、この位置情報を地図情報に含まれる道路網RNにマッチングさせるマップマッチングの手法を適用することができる。具体的には、演算回路部170は、GPS受信回路130により取得される緯度、経度データを含む測位データと、磁気センサ110や加速度センサ122により取得される方位データ及び距離データとに基づいて、単位時間当たりの進行方向と移動距離を求める。そして、緯度、経度データに基づく絶対位置に対して、上記の進行方向と移動距離に対応するベクトルを順次加算することにより現在位置を推定するデッドレコニングによる手法を用いて、ユーザの現在位置を推定する。ここで、このような現在位置の推定方法においては、GPSにおける測位精度の誤差や、デッドレコニングにおけるセンサ誤差による累積誤差を原因とするノイズを含んでいるため、正しい移動経路を得られない場合がある。
【0036】
そこで、本実施形態においては、演算回路部170において、マップマッチング手法を適用することによりGPS受信回路130や磁気センサ110、モーションセンサ120により取得された位置情報(現在位置)を、地図情報に含まれる道路網RNに対応付けて(マッチングして)、道路上を移動した経路を特定する。これにより、演算回路部170は、マップマッチング後のユーザの現在位置及び移動経路と、地図情報に含まれる道路網RNとに基づいて、ユーザ(厳密には、磁気センサ110)がノードの近傍に位置しているか否かを判断するとともに、ユーザが次に通過するノードを推定する。
【0037】
また、地図情報に含まれる道路網RNは、交差点や分岐点、道路相互の結節点を示す、上記の「ノード」と、当該ノード間の道路区間である「リンク」の組み合わせによって表現される。この道路網RNに含まれるノードにおいて、ユーザが延伸方向の異なる道路を進むと、地磁気ベクトルが大きく変化する。例えば
図6(a)に示すように、道路R1を進行方向D1に移動していたユーザが、ノードNDで方向を変えて、交差する道路R2を進行方向D2に移動した場合、磁気センサの向きが曲がり角となるノードNDの前後で大きく変化する。これにより、磁気センサ110により取得される磁気データは、例えば
図6(b)に示すように、進行方向の変化に伴って、その変化方向(図中、点線矢印で表記)に沿って円弧状に広く分布する。ここで、磁気センサ110のキャリブレーション処理においては、上述したように、3軸の磁気センサを任意の方向に向けて取得される磁気データを3次元座標上でプロットした際に、
図4に示したように、概ね球面上に広く分布、あるいは、円弧(又は、円周)状に広く分布することが好ましい。このような分布を示す磁気データを用いることにより、球面や円を良好に推定して中心座標を正確に算出することができる。
【0038】
そこで、本実施形態においては、
図6(b)に示したような分布が得られる磁気データ、すなわち、進行方向(すなわち、地磁気ベクトルに対する方向)が大きく変化する各ノードの近傍における磁気データのみを多数取得して、これらをキャリブレーション処理に用いることによりオフセット値を効率的かつ精度良く算出する。
【0039】
ここで、磁気センサ110により磁気データを取得する際(測定開始から終了まで)の条件となる「ノード近傍」となる領域や範囲(
図5、
図7中、点線丸で表記)は、次のように定義される。まず、「ノード近傍」となる領域を規定する距離(点線丸の半径に相当する)又は範囲を、特定の数値に設定した場合、一定のサンプリング周波数で磁気データを取得すると、ユーザの移動速度に依存して当該領域の通過時間が変化することになるため、磁気データのサンプリング数も変化することになる。上述したように、ユーザの進行方向が変化する各ノード近傍で極力多くの磁気データを取得することがオフセット値を算出する上で好ましいので、「ノード近傍」を規定する距離又は範囲は、ユーザが現在の移動速度でノードを通過すると仮定した場合、例えばノードに到達する10秒前程度の位置から、ノード通過後10秒経過程度の位置までであることが好ましい。このとき、磁気センサ110は、少なくとも、ノード通過後、ノード近傍を離脱するまでの間、地磁気ベクトルに変化がない状態である必要がある。これにより、進行方向(地磁気ベクトルに対する方向)が大きく変化する際の磁気データを良好に取得することができる。また、ノード近傍を規定する時間設定については、上記のノード通過時点の前後10秒程度に限定されるものではなく、少なくとも磁気センサ110がノード近傍に到達する前までに磁気データの取得が可能な状態(測定状態)にあること、及び、道路網のデータと実際の道路の様子との間に存在するずれ等を考慮して決定するものであればよい。
【0040】
以上のような技術思想に基づいて、ステップS110又はS112において、ユーザの現在位置が、データ取得範囲である所定のノード近傍にあると判断した場合には、演算回路部170は、磁気センサ110を起動させて、低消費電力モードから通常モードに復帰させる(ステップS114)。さらに、演算回路部170は、ノード近傍において所定数以上の磁気データが取得されるように、ユーザの移動速度に応じて磁気データのサンプリング周波数(Hz)を設定する(ステップS116)。そして、演算回路部170は、ユーザがノード近傍に位置している期間(ノード通過時点の前後各10秒程度)、移動速度に応じた所定のサンプリング周波数で、磁気センサ110により磁気データを取得(測定)する(ステップS118)。取得した磁気データは、メモリ部180の所定の記憶領域に保存される。
【0041】
次いで、演算回路部170は、ノード近傍において磁気センサ110により取得された磁気データが、キャリブレーション処理に使用するデータとして有効か否かを判断する処理を実行する(ステップS120)。すなわち、上述したように、キャリブレーション処理においては、3次元座標上で概ね球面上に、あるいは、円弧(又は、円周)状に広く分布する磁気データを使用することにより、球面や円の中心座標であるオフセット値を精度良く算出することができる。そこで、本実施形態においては、演算回路部170により、ステップS118において取得された磁気データが、ノードを通過する前後で地磁気ベクトルが大きく変化するノード近傍で測定され、キャリブレーション処理に必要かつ十分なデータの分布(範囲)やデータ数等を有している有効なデータであるか否かを判断する(ステップS122)。
【0042】
具体的には、演算回路部170は、上記のステップS108のコース設定判断において、コース設定されている場合には、演算回路部170は、例えば
図5に示すように、予め設定されたコースCP(図中、点線矢印で表記)において、進行方向(地磁気ベクトルに対する方向)が大きく変化することが予め判明しているノードNDa、NDb、NDd、NDgの近傍で取得された磁気データを有効なデータであると判断する。なお、図中、実線矢印は、マップマッチングにより特定されたユーザの移動経路である。
【0043】
一方、ステップS108のコース設定判断において、コース設定されていない場合には、演算回路部170は、例えば
図7に示すように、マップマッチングにより特定されたユーザの移動経路(図中、実線矢印)やその進行方向、地図情報に含まれる道路網RNに基づいて、ユーザが通過する全てのノードNDa、NDb、NDc、・・・において磁気データが取得される。そして、演算回路部170は、これらの磁気データのうち、進行方向(地磁気ベクトルに対する方向)が大きく変化するノードNDa、NDb、NDd、NDgの近傍で取得された磁気データを有効なデータであると判断し、進行方向が変化しないノードNDc、NDe、NDfの近傍で取得された磁気データを無効なデータであると判断する。ここで、無効なデータと判断された磁気データは、進行方向が変化しない状態で取得されるため、3次元座標上での分布が類似又は同一のデータとなる。そのため、このような磁気データを、仮に後述するキャリブレーションに使用した場合には、球面や円の中心座標を推定することができず、無駄な演算処理を実行することになる。
【0044】
ステップS120、S122において、キャリブレーション処理に有効な磁気データが取得されていると判断した場合には、演算回路部170は、当該磁気データを使用してキャリブレーション処理を実行し、オフセット値を算出する(ステップS124)。ここで、有効と判断された磁気データを使用したキャリブレーション処理の手法としては、特に限定するものではなく、例えば上述した特許文献等に記載された周知の手法を適用するものであってもよいし、後述する具体例に示す手法を適用するものであってもよい。一方、ステップS120、S122において、取得した磁気データが有効ではない(無効であると)判断した場合には、演算回路部170は、ステップS106に戻って、ユーザが次のデータ取得範囲であるノード近傍に到達するまで、磁気センサ110を低消費電力モードで動作させる。
【0045】
次いで、演算回路部170は、ステップS124において算出されたオフセット値について、有効か否かを判定する(ステップS126)。具体的には、演算回路部170は、例えばステップS104と同様に、磁気センサ110により取得された磁気データ群に対して、ステップS124において算出されたオフセット値を用いた補正を行い、その分布が
図4に示したように、3次元座標の基準点Pcを中心にした球面上にある場合には、当該オフセット値が有効であると判定する。そして、演算回路部170は、当該オフセット値をメモリ部180の所定の記憶領域に保存して、オフセット値を更新する(ステップS128)。一方、補正後の磁気データ群の分布が3次元座標の基準点Pcを中心にした球面上にない場合には、演算回路部170は、当該オフセット値が無効であると判定する。そして、演算回路部170は、ステップS106に戻って、ユーザの現在位置が所定のノード近傍に到達するまで、磁気センサ110を低消費電力モードで動作させる。
【0046】
次いで、演算回路部170は、ユーザが電子機器100を使用する際に、磁気センサ110により取得される磁気データに対して、更新されたオフセット値を用いて補正を行うことにより、電子機器100を基準とする方位を算出する(ステップS130)。ここで、演算回路部170は、ステップS102の通常処理に戻って、通常処理として方位算出処理を実行するものであってもよい。
【0047】
なお、上述した一連の処理動作は、ユーザが特に意識することなく、電子機器100の日常的な使用状態においてバックグラウンドで自動的に実行される。また、
図3に示したフローチャートにおいては図示を省略したが、演算回路部170は、上述した一連の処理動作の実行中、処理動作を中断又は終了させる入力操作や動作状態の変化を常時監視して、当該入力操作や状態変化を検出した場合には、処理動作を強制的に終了する。具体的には、演算回路部170は、ユーザによる動作電源の遮断操作や、電源供給部190における電池残量の低下、実行中の機能やアプリケーションの異常等を検出して、一連の処理動作を強制的に中断して終了する。
【0048】
このように、本実施形態においては、磁気センサ110を搭載した電子機器100を携帯したユーザの現在位置及び移動経路を、GPSによる測位データ、又は、当該測位データとモーションセンサにより取得される方位データ及び距離データとを用いたデッドレコニングによる測位データを用いて測定する。そして、測定されたユーザの現在位置及び移動経路を、マップマッチング法により地図情報に含まれる道路網に対応付けて特定するとともに、道路網における移動経路上のノードを推定する。そして、ユーザの移動経路上の各ノードにおいて進行方向(地磁気ベクトルに対する方向)の変化の有無を判定し、当該変化のあるノード近傍で取得した磁気データを、磁気センサのキャリブレーション処理における有効なデータとして使用して、オフセット値を算出する。
【0049】
すなわち、本実施形態においては、磁気センサにより取得する磁気データの取捨選択を行うことにより、有効な磁気データを用いたオフセット算出処理においてのみ、磁気データの取得動作やオフセット値の演算処理に関わる機能部を起動し、無効な磁気データの取得動作や、無効な磁気データや類似又は同一のデータを用いた無駄な演算処理の実行が回避される(実行する必要がない)。このとき、磁気データの取得動作や、磁気データ等を用いた演算処理に関わる機能部は低消費電力モードに移行する。
【0050】
したがって、本実施形態に係る電子機器によれば、ユーザが移動することにより通過するノード近傍で、キャリブレーション処理に使用する有効な磁気データのみを効率的に取得してオフセット値を精度良く算出することができるとともに、ノード間のリンク部分ではセンサや演算処理に関わる機能部を低消費電力モードに移行することにより、処理負担を軽減して消費電力を削減することができる。
【0051】
また、本実施形態においては、オフセット異常を監視して、磁気データの取得動作や、有効な磁気データを使用したキャリブレーション処理等を含む一連の処理動作を、ユーザに特に意識させることなくバックグラウンドで実行する。したがって、本実施形態に係る電子機器によれば、ユーザが意識して特定の動作や操作を行わなくても、磁気センサのキャリブレーション処理(オフセット補正)を自動で実行して、正確な方位を算出することができる。
【0052】
<キャリブレーション処理の具体例>
次に、上述した電子機器の制御方法に適用可能なキャリブレーション処理の他の具体例について簡単に説明する。本実施形態に係る制御方法に、以下に示すキャリブレーション処理を適用した場合であっても、ユーザによる特別な動作等を必要とすることなく、低消費電力でオフセット値を精度良く算出することができる。
【0053】
(第1の具体例)
図8は、本実施形態に適用可能なキャリブレーション処理(第1の具体例)における座標変換処理を示す概念図である。
図9は、本実施形態に適用可能なキャリブレーション処理(第1の具体例)における特徴点検出処理を示す概念図である。
図10は、本実施形態に適用可能なキャリブレーション処理(第1の具体例)におけるオフセット算出処理を示す概念図である。
【0054】
上述した実施形態に適用可能なキャリブレーション処理の第1の例は、まず、演算回路部170は、3軸の磁気センサ110により取得された磁気データ(磁気センサ出力)に対して、
図8に示すように、センサ座標系A(x,y,z)を加速度センサにより取得された加速度データに基づく重力方向Zを基準とする座標系B(x′,y′,z′)に変換する座標変換を施す。これにより、演算回路部170は、磁気センサ出力を重力方向の鉛直成分と、重力方向に垂直な水平成分とに分解する。
【0055】
次いで、
図9に示すように、演算回路部170は、磁気センサ出力の鉛直成分が得られる重力軸を中心にして、磁気センサを水平に回転させることにより得られる磁気センサ出力の水平成分の波形が最大値又は最小値となり、その回転角度が磁北方向、又は、その逆向きの磁南方向に対応する特徴点を検出する。
【0056】
次いで、
図10に示すように、演算回路部170は、この特徴点の検出時点における磁気センサ出力ベクトルAと、GPS受信回路130により取得される位置情報等に基づいて取得される地磁気ベクトルBとを比較する。これにより、演算回路部170は、差分ベクトルCを磁気センサのオフセット値として算出する。
【0057】
このキャリブレーション処理の手法においては、上述した効果に加え、電子機器の姿勢に変化がない場合であっても、磁気センサ出力の水平成分の波形に基づいて特徴点を検出して、磁気センサ110のオフセット値を精度良く算出することができる。
【0058】
(第2の具体例)
図11は、本実施形態に適用可能なキャリブレーション処理(第2の具体例)を示す概念図である。
【0059】
上述した実施形態に適用可能な第2のキャリブレーション処理の第2の例は、まず、演算回路部170は、3軸の磁気センサにより取得された磁気データのうち、
図11(a)に示すように、任意の3点の磁気データを選別して、当該磁気データを含む平面Faを算出する。
【0060】
次いで、演算回路部170は、磁気センサにより取得された磁気データから、上記の平面Faに近接する(所定の垂直距離内の)磁気データを選択し、
図11(b)に示すように、平面Fa上に当該選択された磁気データ群により形成される円周Caを推定する。そして、演算回路部170は、推定された円周Caの中心座標を通り、平面Faに垂直な直線Laを算出する。
【0061】
次いで、演算回路部170は、同様の処理を、異なる磁気データ群についても繰り返し実行し、
図11(c)に示すように、推定された円周Cbの中心座標を通り、平面Fbに垂直な直線Lbを算出する。そして、演算回路部170は、複数の直線La、Lb相互の交点(又は近似点)Pdをオフセット値として算出する。
【0062】
このキャリブレーション処理の手法においては、上述した効果に加え、磁気センサにより取得した磁気データが3次元座標上の球面の特定の領域に局所的に分布する場合であっても、磁気センサ110のオフセット値を比較的精度良く算出することができる。
【0063】
以上、本発明のいくつかの実施形態について説明したが、本発明は、上述した実施形態に限定されるものではなく、特許請求の範囲に記載された発明とその均等の範囲とを含むものである。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【0064】
(付記)
[1]
電子機器であって、
磁気データとして地磁気を検出する磁気センサと、
前記電子機器の地理的な位置を検出する測位センサと、
前記測位センサにより検出された位置情報に基づいて、前記電子機器を装着または携帯しているユーザの現在位置及び移動経路を推定し、該推定した前記ユーザの現在位置及び移動経路を地図情報に対応付ける移動経路特定部と、
前記地図情報と前記ユーザの前記移動経路とに基づいて、前記移動経路上の分岐点を推定し、前記ユーザの前記現在位置が前記分岐点を通過する前と通過した後とで、前記磁気センサより前記磁気データを取得する磁気データ取得部と、
前記磁気データ取得部により取得された前記磁気データのうち、前記ユーザの進行方向が変化した時点の前と後で取得された前記磁気データに基づいて、前記磁気センサのオフセット値を算出するオフセット算出部と、
を有することを特徴とする電子機器。
【0065】
[2]
前記磁気データ取得部は、前記ユーザの移動速度に応じて、前記磁気データの取得のサンプリング周波数を設定することを特徴とする[1]に記載の電子機器。
【0066】
[3]
前記磁気データ取得部は、移動中の前記ユーザが前記分岐点に到達すると予測されるタイミングより予め設定された時間だけ前の第1のタイミングから、前記分岐点を通過して予め設定された時間が経過した後の第2のタイミングまでの間で、前記磁気センサより前記磁気データを取得することを特徴とする[1]又は[2]に記載の電子機器。
【0067】
[4]
前記磁気データ取得部は、前記ユーザの前記現在位置が前記分岐点の近傍であるときに、前記磁気センサより前記磁気データを取得し、前記ユーザの前記現在位置が前記分岐点の近傍にない場合には、少なくとも前記磁気センサ及び前記磁気データ取得部、前記オフセット算出部における動作を停止して低消費電力モードに移行することを特徴とする[1]乃至[3]のいずれかに記載の電子機器。
【0068】
[5]
前記オフセット算出部は、前記磁気センサにより取得された前記磁気データに対して、所定の座標変換処理を施して、前記磁気データを重力方向の鉛直成分と、前記重力方向に垂直な水平成分に分解し、前記磁気データの水平成分から磁北方向を決定する特徴点の検出時点における前記磁気センサの出力ベクトルと、前記測位センサにより取得された前記位置情報に基づいて導出される地磁気ベクトルとの差分ベクトルを、前記磁気センサのオフセット値として算出することを特徴とする[1]乃至[4]のいずれかに記載の電子機器。
【0069】
[6]
前記オフセット算出部は、前記磁気センサにより取得された前記磁気データのうち、個別の平面においてそれぞれに含まれる複数の前記磁気データにより形成される各円周を推定し、前記各円周の中心座標を通り、前記個別の平面に垂直な直線相互の交点を、前記磁気センサのオフセット値として算出することを特徴とする[1]乃至[5]のいずれかに記載の電子機器。
【0070】
[7]
前記磁気センサの前記オフセット値の変化を監視するオフセット監視部を、さらに備え、
オフセット監視部において前記オフセット値の変化を検知した場合に、磁気データ取得部において前記磁気センサにより前記磁気データを取得させ、前記オフセット算出部において前記磁気センサの前記オフセット値を算出することを特徴とする[1]乃至[6]のいずれかに記載の電子機器。
【0071】
[8]
前記オフセット算出部により算出された前記オフセット値に基づいて、前記磁気データを補正して、前記電子機器を基準とする方位を算出する方位算出部を、さらに備えることを特徴とする[1]乃至[7]のいずれかに記載の電子機器。
【0072】
[9]
測位センサにより検出された位置情報に基づいて、前記測位センサ及び磁気データとして地磁気を検出する磁気センサを有する電子機器を装着または携帯しているユーザの現在位置及び移動経路を推定し、該推定した前記ユーザの現在位置及び移動経路を地図情報に対応付け、
前記地図情報と前記ユーザの前記移動経路とに基づいて、前記移動経路上の分岐点を推定し、前記ユーザの前記現在位置が前記分岐点を通過する前と通過した後とで、前記磁気センサより前記磁気データを取得し、
前記取得された前記磁気データのうち、前記ユーザの進行方向が変化した時点の前と後で取得された前記磁気データに基づいて、前記磁気センサのオフセット値を算出すること、
を特徴とするセンサ較正方法。
【0073】
[10]
前記ユーザの移動速度に応じて、前記磁気データの取得のサンプリング周波数を設定することを特徴とする[9]に記載のセンサ較正方法。
【0074】
[11]
前記ユーザの前記現在位置が前記分岐点の近傍にない場合には、少なくとも前記磁気データを取得する動作、及び、前記磁気センサの前記オフセット値を算出する動作を停止して低消費電力モードに移行することを特徴とする[9]又は[10]に記載のセンサ較正方法。
【0075】
[12]
コンピュータに、
測位センサにより検出された位置情報に基づいて、前記測位センサ及び磁気データとして地磁気を検出する磁気センサを有する電子機器を装着または携帯しているユーザの現在位置及び移動経路を推定し、該推定した前記ユーザの現在位置及び移動経路を地図情報に対応付けさせ、
前記地図情報と前記ユーザの前記移動経路とに基づいて、前記移動経路上の分岐点を推定し、前記ユーザの前記現在位置が前記分岐点を通過する前と通過した後とで、前記磁気センサより前記磁気データを取得させ、
前記取得された前記磁気データのうち、前記ユーザの進行方向が変化した時点の前と後で取得された前記磁気データに基づいて、前記磁気センサのオフセット値を算出させること、
を特徴とするセンサ較正プログラム。
【0076】
[13]
前記ユーザの移動速度に応じて、前記磁気データの取得のサンプリング周波数を設定させることを特徴とする[12]に記載のセンサ較正プログラム。
【0077】
[14]
前記ユーザの前記現在位置が前記分岐点の近傍にない場合には、少なくとも前記磁気データを取得する動作、及び、前記磁気センサの前記オフセット値を算出する動作を停止して低消費電力モードに移行させることを特徴とする[12]又は[13]に記載のセンサ較正プログラム。