説明

移動端末、システム及び方法

【課題】自律航法機能を有する移動端末における測位誤差の蓄積を解消するため、ルート上の各地点で適宜位置補正する。
【解決手段】地図情報における移動端末のユーザの出発地から目的地までのルート上で前記ユーザが方位変更すると想定される方位変更地点を取得し、該取得した方位変更地点をアンカーポイントとして設定及び格納するアンカー管理部と、当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供する測定部と、前記センサ情報に基づき、当該移動端末の現在位置を算出する位置算出部と、前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定する回転検出部と、前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正する現在位置補正部とを有する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、自律航法機能を有する移動端末に関する。
【背景技術】
【0002】
近年、移動端末における基地局測位の高精度化や、WLAN(Wireless Local Area Network)測位などの新たな測位技術の出現により、インドア環境における位置情報サービスの発展が期待されている。
【0003】
新たなインドア測位技術の1つとして、加速度センサや地磁気センサなどの各種センサ情報を利用した自律航法技術が注目されている。しかしながら、センサのみによる測位は誤差が蓄積していくという問題があり、精度向上のためにはセンサ以外の情報を利用して定期的に位置補正を行うことが重要となる。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2010−223829号公報
【特許文献2】特開2010−122034号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
従来の移動端末向けの自律航法では、加速度センサや地磁気センサ、ジャイロセンサなどを利用して初期位置からの移動量を推定して位置座標を算出している。
【0006】
しかしながら、推定した位置座標の誤差が蓄積していくことによって、目的地に近づくほど実際のルートからの誤差が拡大していき、正しく目的地までナビゲーションすることが困難であった。
【0007】
上記問題点に鑑み、本発明の課題は、自律航法機能を有する移動端末における測位誤差の蓄積を解消するため、ルート上の各地点で適宜位置補正する移動端末、システム及び方法を提供することである。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明の一態様は、自律航法機能を有する移動端末であって、地図情報における当該移動端末のユーザの出発地から目的地までのルート上で前記ユーザが方位変更すると想定される方位変更地点を取得し、該取得した方位変更地点をアンカーポイントとして設定及び格納するアンカー管理部と、当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供する測定部と、前記センサ情報に基づき、当該移動端末の現在位置を算出する位置算出部と、前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定する回転検出部と、前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正する現在位置補正部とを有する移動端末に関する。
【0009】
本発明の他の態様は、自律航法機能を有する移動端末と、前記移動端末と通信接続されるサーバとを有するシステムであって、前記サーバは、前記移動端末からユーザの出発地と目的地とを示すデータを受信すると、地図情報を参照して前記出発地から前記目的地までのルートを決定するルート決定部と、前記決定されたルート上で前記ユーザが方位変更すると想定される方位変更地点を抽出し、前記抽出した方位変更地点を前記移動端末に送信するアンカーポイント決定部とを有し、前記移動端末は、前記受信した方位変更地点をアンカーポイントとして設定及び格納するアンカー管理部と、当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供する測定部と、前記センサ情報に基づき、当該移動端末の現在位置を決定する位置算出部と、前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定する回転検出部と、前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正する現在位置補正部とを有するシステムに関する。
【0010】
本発明のさらなる他の態様は、自律航法機能を有する移動端末で使用される方法であって、地図情報における当該移動端末のユーザの出発地から目的地までのルート上で前記ユーザが方位変更すると想定される方位変更地点を取得し、該取得した方位変更地点をアンカーポイントとして設定及び格納するステップと、当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供するステップと、前記センサ情報に基づき、当該移動端末の現在位置を決定するステップと、前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定するステップと、前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正するステップとを有する方法に関する。
【発明の効果】
【0011】
本発明によると、自律航法機能を有する移動端末における測位誤差の蓄積を解消するため、ルート上の各地点で適宜位置補正する移動端末、システム及び方法を提供することができる。
【図面の簡単な説明】
【0012】
【図1】図1は、本発明の一実施例による移動端末の一例となる機能構成を示す。
【図2】図2は、本発明の一実施例による移動端末における一例となる自律航法処理を示すフローチャートである。
【図3】図3は、本発明の一実施例によるアンカーポイント設定処理を示すフローチャートである。
【図4】図4は、本発明の一実施例による回転検知処理を示すフローチャートである。
【図5】図5は、本発明の一実施例によるアンカー位置補正処理を示すフローチャートである。
【図6】図6は、本発明の他の実施例による回転検知処理を示すフローチャートである。
【発明を実施するための形態】
【0013】
以下、図面に基づいて本発明の各実施例を説明する。
【0014】
本発明の各実施例による移動端末は、出発地から目的地までの設定ルート上でユーザが方位変更することが想定される方位変更地点をアンカーポイントとして設定し、各アンカーポイントで移動端末の位置補正をすることによって測位誤差の蓄積を低減し、自律航法の測位精度を向上させるものである。
【0015】
まず、図1を参照して、本発明の一実施例による移動端末の構成を説明する。
【0016】
本実施例による移動端末は、典型的には、携帯電話端末やスマートフォンなどの携帯情報端末であり、端末内に搭載されたアプリケーションを利用して、又はネットワーク(図示しない)を介し通信可能な外部の装置からの情報を利用して移動端末の位置を取得可能な携帯情報端末である。移動端末は、典型的には、補助記憶装置、メモリ装置、CPU、通信装置、表示装置、入力装置、測定装置などの各種ハードウェアリソースの1以上から構成される。補助記憶装置は、ハードディスクやフラッシュメモリなどから構成され、後述される各種処理を実現するプログラムやデータを格納する。メモリ装置は、RAM(Random Access Memory)などから構成され、プログラムの起動指示があった場合に、補助記憶装置からプログラムを読み出して格納する。CPUは、情報を処理するプロセッサとして機能し、メモリ装置に格納されたプログラムに従って後述される各種機能を実現する。通信装置は、ネットワークを介しサーバなどの他の装置と有線及び/又は無線接続するための各種通信回路から構成される。本実施例による通信装置はさらに、GPS(Global Positioning System)機能を実現するための受信回路を有する。表示装置は、ディスプレイなどから構成され、ネットワークを介し受信したコンテンツやプログラムによるGUI(Graphical User Interface)等を表示する。入力装置は、典型的には、操作ボタン、キーボード、マウス等で構成され、移動端末のユーザが様々な操作命令を入力するのに用いられる。測定装置は、自律航法機能を実現するための移動端末の動きを測定するための加速度センサ、地磁気センサ、ジャイロセンサなどの各種センサから構成される。なお、本発明による移動端末は、上述したハードウェア構成に限定されるものでなく、後述する各種機能を実現可能な回路等の他の何れか適切なハードウェア構成を有してもよい。
【0017】
図1は、本発明の一実施例による移動端末の一例となる機能構成を示す。図1において、移動端末100は、ユーザインタフェース部120と、地図アプリケーション部140と、自律航法測定部160と、自律航法演算部180とを有する。
【0018】
ユーザインタフェース部120は、入力装置を介しユーザが出発地と目的地を入力すると、入力された出発地と目的地とに関する位置情報を地図アプリケーション部140に提供する。典型的には、出発地は現在位置であり、GPS機能を用いて取得した移動端末100の現在位置に関する位置情報が地図アプリケーション部140に提供されてもよい。また、目的地は、ユーザにより入力された目的地の住所などであってもよいし、あるいは地図アプリケーション部140により表示された地図情報上の指定された地点、他のアプリケーションを介し指定された建物、施設、店舗などであってもよく、これら指定された位置から導出された位置情報が地図アプリケーション部140に提供されてもよい。
【0019】
地図アプリケーション部140は、ユーザインタフェース部120から出発地と目的地とに関する位置情報を受信すると、指定された出発地から目的地までのルートを設定すると共に、設定したルート上のアンカーポイントを抽出及び管理する。本実施例によると、設定されたルート上でユーザが方位変更すると想定される方位変更地点、すなわち、曲がる場所又は曲がり角がアンカーポイントとして抽出される。
【0020】
図1に示されるように、地図アプリケーション部140は、地図表示部142とアンカーポイント管理部144とを有する。
【0021】
地図表示部142は、ユーザインタフェース部120から提供された出発地と目的地との位置情報に基づき、出発地から目的地までのルートを設定し、設定したルートをアンカーポイント管理部144に提供する。このルートの設定は、地図アプリケーション部140に格納されている地図情報を参照して、何れか適当なナビゲーションアルゴリズムを利用して出発地から目的地までのルートを決定することにより行われてもよい。典型的には、出発地から目的地までの最短ルートが選択されるが、これに限定されるものでなく、何れか適当な方法によりルートを設定するようにしてもよい。出発地から目的地までのルートが設定されると、地図表示部142は、設定されたルートをユーザに表示するための表示用地図データを生成する。なお、出発地から目的地まで複数のルートの候補が存在する場合、これら複数のルートの1つを表示用のルートとして設定して当該ルートに関する表示用地図データを生成し、他のルートについては、表示用地図データは生成しないが候補ルートとしてアンカーポイント管理部144に提供するようにしてもよい。このようにして、ユーザが設定されたルート以外のルートを実際に歩行した場合にも、候補ルートのアンカーポイントによってフレキシブルな位置補正をすることが可能になる。
【0022】
アンカーポイント管理部144は、地図表示部142から設定されたルートを受信すると、地図アプリケーション部140に格納されている地図情報を参照して、当該ルート上でユーザが方位変更すると想定される曲がり角を抽出し、アンカーポイントとして設定する。具体的には、アンカーポイント管理部144は、地図情報における設定されたルート上で所定の角度(例えば、90度など)以上の方位変更を伴う地点を抽出し、抽出した地点をアンカーポイントとして設定する。その後、アンカーポイント管理部144は、抽出した地点に対応する緯度及び経度などの位置情報を当該アンカーポイントに関連付けて管理する。アンカーポイントによる移動端末100の位置補正は、移動端末100が進行方向を変更した際に、この変更地点の近傍のアンカーポイントに移動端末100の位置を補正することにより実行される。このため、アンカーポイント管理部144は、各アンカーポイントについて、当該位置の近傍領域としてアンカーエリアを設定する。アンカーポイント管理部144は、設定したアンカーポイントとアンカーエリアとをアンカー情報として自律航法演算部180に提供する。なお、アンカーポイント管理部144が、設定されたルートと共に1以上の候補ルートも併せて受信した場合、これら候補ルートのアンカー情報も同様に生成し、自律航法演算部180に提供してもよい。アンカーポイント管理部144によるアンカーポイント設定処理の具体的な処理は、図3を参照して以降において詳述される。
【0023】
本実施例では、地図アプリケーション部140は移動端末100内に設けられたが、本発明はこれに限定されるものでない。他の実施例では、地図アプリケーション部140は、移動端末100が通信可能な外部のサーバに設けられてもよい。すなわち、ユーザインタフェース部120がユーザから入力された出発地と目的地とに関する位置情報をサーバに送信すると、サーバは上述した処理を実行してアンカーポイント及びアンカーエリアを決定し、これらをアンカー情報として移動端末100に返すようにしてもよい。
【0024】
自律航法測定部160は、移動端末100の動きに関する各種データを測定し、測定したデータをセンサ情報として自律航法演算部180に提供する。図1に示されるように、自律航法測定部160は、歩数測定部162と、進行方向測定部164とを有する。
【0025】
歩数測定部162は、移動端末100を携帯するユーザの歩行をモニタし、ユーザが歩いた歩数を測定する。歩数測定部162は、典型的には、加速度センサにより実現可能であるが、これに限定されることなく他の何れか適切なユーザの歩数又は歩行距離を測定可能な装置により実現されてもよい。
【0026】
進行方向測定部164は、移動端末100を携帯するユーザの歩行をモニタし、ユーザが歩く進行方向を検知する。進行方向測定部164は、典型的には、地磁気センサやジャイロセンサにより実現可能であるが、これに限定されることなく他の何れか適切なユーザの進行方向を測定可能な装置により実現されてもよい。
【0027】
自律航法測定部160は、歩数測定部162により測定されたユーザの歩数と進行方向測定部164により測定されたユーザの進行方向とをセンサ情報として自律航法演算部180に提供する。このセンサ情報は、自律航法演算部180などからの要求に応答して、ユーザが歩行を開始することに応答して、又は定期的など何れか適切なタイミングで自律航法演算部180に提供されるようにしてもよい。
【0028】
自律航法演算部180は、自律航法測定部160により測定された移動端末100のユーザの歩数及び進行方向などのセンサ情報を取得し、地図アプリケーション部140から受信したアンカー情報を利用して、このセンサ情報に基づき推定された移動端末100の現在位置を補正する。
【0029】
図1に示されるように、自律航法演算部180は、位置算出部182と、アンカー記憶部184と、回転検出部186と、現在位置補正部188とを有する。
【0030】
位置算出部182は、自律航法測定部160から提供されたセンサ情報に基づき自律航法中の移動端末100の移動量を算出し、現在設定されている基準地点にこの算出した移動量を加えることによって現在位置を決定し、決定した現在位置の緯度及び経度などの位置情報を地図アプリケーション部140に提供する。具体的には、位置算出部182は、センサ情報における測定されたユーザの歩数と進行方向とに基づき、測定された歩数に設定されているユーザの歩幅(典型的には、入力されたユーザの身長から1mを差し引いた値)を掛け合わせることによって歩行距離を導出し、導出した歩行距離と測定された進行方向とに基づき基準地点からの移動量を算出する。位置算出部182は、初期的にはこの基準地点として設定されたルートの出発点の緯度及び経度を設定し、ユーザの歩数から推定される歩行距離と進行方向の推移とに基づき基準地点からの移動距離及び移動方向を求める。以降、現在位置補正部188により移動端末100の現在位置が補正される毎に、位置算出部182は、補正後の位置を新たな基準地点として更新し、更新した基準地点からの移動量を算出する。
【0031】
アンカー記憶部184は、地図アプリケーション部140から提供されたアンカー情報を格納する。具体的には、アンカー記憶部184は、提供されたアンカー情報からアンカーポイント、アンカーエリア及び他の関連情報を保持し、移動端末100の他の構成要素からの要求に応じてアンカーポイントとアンカーエリアとを提供する。
【0032】
回転検出部186は、進行方向測定部164により測定された進行方向の変化に基づき移動端末100のユーザが回転動作をしたか検出し、ユーザの回転動作が検出されると、現在位置補正部188に当該回転動作の検出を通知すると共に、設定ルート上の曲がり角などの方位変更地点に相当とすると推定される回転地点Rの位置情報を現在位置補正部188に提供する。
【0033】
通常の回転動作では、ユーザが曲がり角を曲がる際、ユーザは一瞬で進行方向を変えるというよりかは、例えば、曲がり角の周囲を弧を描くように進行するなど、回転動作の開始時点から終了時点までの一定の期間に連続的に進行方向を変えるよう歩行することが一般的であると考えられる。従って、このような通常想定されるユーザの回転動作に鑑み、回転検出部186は、回転動作の開始を検知すると、この開始時点から終了時点までの進行方向の変化を連続的に検知し、位置算出部182から取得した回転動作の開始時点から完了時点までの何れか適切な時点、典型的には、開始時点から完了時点までの中間時点(回転中間点)の位置を回転地点Rとして推定する。回転検出部186による回転検出の具体的な処理は、図4を参照して以降において詳述される。
【0034】
現在位置補正部188は、回転検出部186からユーザの回転動作の検出と回転地点Rの位置情報とを受信すると、アンカー記憶部184に格納されているアンカーポイントから回転地点Rに対応するアンカーポイントを決定し、当該アンカーポイントの位置情報によって回転地点Rの位置を更新し、さらに更新した回転地点Rの位置に対応して移動端末100の現在位置を更新する。
【0035】
具体的には、現在位置補正部188は、回転地点Rとアンカー記憶部184に格納されているすべてのアンカーポイントとの間の距離を算出し、算出した距離が最小となるアンカーポイントを選択し、当該アンカーポイントのアンカーエリア内に回転地点Rがあるか判断する。回転地点Rがアンカーエリア内にある場合、現在位置補正部188は、ユーザが当該アンカーポイントに対応する曲がり角を曲がったと判断し、アンカー記憶部184に格納されている選択されたアンカーポイントの緯度及び経度によって回転地点Rの位置情報を更新する。さらに、現在位置補正部188は、更新後の回転地点Rの緯度及び経度と更新前の回転地点Rの緯度及び経度の差分を利用して、位置算出部182により算出された現在位置の緯度及び経度を更新する。これにより、位置算出部182により算出された現在位置の位置情報の誤差を補正することが可能となる。現在位置補正部188による位置補正の具体的な処理は、図5を参照して以降において詳述される。
【0036】
なお、上記実施例では、現在位置補正部188は、回転地点Rとアンカー記憶部184に格納されているすべてのアンカーポイントとの間の距離を算出するよう構成されたが、回転地点Rとアンカー記憶部184に格納されているアンカーポイントの一部との間の距離のみ算出するよう構成されてもよい。アンカーポイントの一部としては、直前に通過したアンカーポイントに隣接する1以上のアンカーポイントであってもよい。ユーザが設定されたルートに沿って歩行する確率が高い場合には、出発地から目的地までのアンカーポイントを順序通りに通過する可能性が高いため、ユーザがルート上の次のアンカーポイントに到達したか判断すれば十分であり、これにより計算量を低減することが可能となる。他方、ユーザにより入力された出発地から目的地までに複数のルートが存在する場合などユーザが必ずしも設定されたルートに沿って歩行する確率が高くない場合には、上記実施例のように回転地点Rとアンカー記憶部184に格納されている設定されたルートに併せて、候補ルートのすべてのアンカーポイントとの間の距離を算出することによって、より精度の高い位置補正が可能となる。
【0037】
次に、図2を参照して、本発明の一実施例による移動端末の一例となる動作を説明する。図2は、本発明の一実施例による移動端末における一例となる自律航法処理を示すフローチャートである。
【0038】
図2に示されるように、ステップS201において、ユーザが移動端末100の入力装置などを介しユーザインタフェース部120に目的地を設定する。上述したように、ユーザは、目的地の住所などを入力することによって目的地を設定してもよい。また、ユーザは、地図アプリケーション部140により移動端末100の表示装置上に表示された地図情報上の地点を指定することによって目的地を設定してもよい。また、ユーザは、他のアプリケーションを介し表示された建物、施設、店舗などを指定することによって目的地を設定してもよい。
【0039】
ステップS203において、ユーザが移動端末100の入力装置などを介しユーザインタフェース部120に出発地を設定する。典型的には、出発地は、デフォルトとして現在位置に設定される。他方、ユーザが現在位置以外の出発地を移動端末100の入力装置などを介し設定することも可能である。例えば、ユーザは、出発地の住所などを入力することによって出発地を設定してもよい。また、ユーザは、地図アプリケーション部140により移動端末100の表示装置上に表示された地図情報上の地点を指定することによって出発地を設定してもよい。また、ユーザは、他のアプリケーションを介し表示された建物、施設、店舗などを指定することによって出発地を設定してもよい。
【0040】
ステップS205において、地図アプリケーション部140は、設定された出発地と目的地とに対して地図情報を参照してルートを決定する。地図アプリケーション部140はさらに、地図情報を参照して決定したルート上の曲がり角をアンカーポイントして設定する。このアンカーポイント設定の具体的な処理については、以降に詳述する。
【0041】
ステップS207において、自律航法演算部180は、自律航法測定部160により測定されたセンサ情報を取得する。
【0042】
ステップS209において、自律航法演算部180は、取得したセンサ情報に基づき移動端末100の現在位置を算出する。
【0043】
ステップS211において、自律航法演算部180は、ユーザが回転動作をしたか判定する。この回転動作の検出の具体的な処理については、以降に詳述する。ユーザが回転動作をしたと判断した場合(S211:Y)、自律航法演算部180は回転地点を決定し、当該フローはステップS213に移行する。他方、ユーザの回転動作を検出しない場合(S211:N)、自律航法演算部180はアンカー位置補正をせず、当該フローはステップS215に移行する。
【0044】
ステップS213において、自律航法演算部180は、決定した回転地点に対応するアンカーポイントを選択し、選択したアンカーポイントの位置情報により回転地点及び移動端末100の現在位置を補正する。このアンカー位置補正の具体的な処理については、以降に詳述する。
【0045】
ステップS215において、自律航法演算部180は、移動端末100の現在位置に基づき、ユーザが目的地に到達したか判定する。ユーザが目的地に到達したと判断した場合(S215:Y)、当該自律航法処理は終了する。他方、ユーザがまだ目的地に到達していない場合(S215:N)、当該フローはステップS207に戻り、自律航法処理を継続する。
【0046】
次に、図3を参照して、本発明の一実施例によるステップS205の地図アプリケーション部140におけるアンカーポイント設定処理をより詳細に説明する。図3は、本発明の一実施例によるアンカーポイント設定処理を示すフローチャートである。
【0047】
図3に示されるように、ステップS301において、地図表示部142は、ユーザにより設定された出発地と目的地とに対して、地図情報を参照して出発地から目的地までのルートのうち最短ルートなどの何れか適当なルートを設定ルートとして決定し、アンカーポイント管理部144に提供する。アンカーポイント管理部144は、地図情報を参照して、設定ルート上の曲がり角をアンカーポイントとして抽出する。
【0048】
ステップS303において、アンカーポイント管理部144は、設定ルート上に曲がり角に相当するアンカーポイントが存在するか判定する。設定ルート上にアンカーポイントが検出されない場合(S303:N)、当該フローはステップS315に移行し、当該アンカーポイント設定処理を終了する。この場合、移動端末100は、アンカー位置補正を利用することなく自律航法処理を実行する。他方、設定ルート上に1以上のアンカーポイントが検出された場合(S303:Y)、当該フローはステップS305に移行する。
【0049】
ステップS305において、アンカーポイント管理部144は、出発地をアンカー(0)に設定し、設定ルート上の出発地から目的地への進行方向の順序で検出された1以上のアンカーポイントをアンカー(1)、アンカー(2)、・・・として整列する。
【0050】
ステップS307において、アンカーポイント管理部144は、整列された各アンカーについて、隣接するアンカー(N−1)とアンカー(N)間の距離D(N)を算出する。初期的には、アンカーポイント管理部144は、地図情報を参照してアンカー(0)と次のアンカー(1)との間の距離D(1)を算出する。
【0051】
ステップS309において、アンカーポイント管理部144は、アンカー(N)のアンカーエリアを設定する。アンカー(N)のアンカーエリアは、ステップS307で算出された距離D(N)のx%(0<x<100)を半径とする円の内部として設定される。このxは、ルート上のすべてのアンカーポイントに対して同一の値に設定されてもよいし、あるいは、各アンカーポイントについて異なる値に設定されてもよい。なお、xの値は隣接するアンカーエリアが重複しないよう設定されることが好ましい。これは、重複したアンカーエリアで回転動作が検出された場合、誤ったアンカー位置補正が行われる可能性があるためである。
【0052】
ステップS311において、アンカーポイント管理部144は、設定ルート上のすべてのアンカーポイントに対してアンカーエリアが設定されたか判断する。具体的には、アンカーポイント管理部144は、整列されたアンカーポイントにおいて現在のアンカー(N)の次にアンカー(N+1)があるか判定する。次のアンカー(N+1)がある場合(S311:N)、当該フローはステップS313に移行し、ステップS313においてアンカー(N)のカウンタNを1だけインクリメントする。他方、次のアンカー(N+1)が存在しない場合(S311:Y)、当該フローはステップS315に移行し、当該アンカーポイント設定処理を終了し、ステップS207に移行する。
【0053】
上述したように、本実施例では、アンカーポイントのアンカーエリアは、当該アンカーポイントとその直前のアンカーポイントとの間の距離に基づき設定された。しかしながら、本発明はこれに限定されるものでなく、他の何れか適当な方法によりアンカーエリアを設定してもよい。他の実施例では、アンカーポイントのアンカーエリアは、当該アンカーポイントとその直後のアンカーポイントとの間の距離に基づき設定されてもよい。また、アンカーポイントのアンカーエリアは、当該アンカーポイントを中心とした所定の半径の範囲内のエリアとして設定されてもよい。
【0054】
次に、図4を参照して、本発明の一実施例によるステップS211の回転検出部186における回転検知処理をより詳細に説明する。本実施例では、上述したように、ユーザが曲がり角を曲がる際、ユーザは一瞬で進行方向を変えるというよりかは、例えば、曲がり角の周囲を弧を描くように進行するなど、回転動作の開始時点から終了時点までの期間に連続的に進行方向を変えるよう歩行するというユーザの通常の回転動作を想定したものである。この場合、回転動作中の何れの回転地点をアンカー位置補正に使用するか考慮する必要があるが、本実施例では、回転動作の開始時点から完了時点までの中間時点の回転地点(回転中間点)をアンカー位置補正のための回転地点Rとして使用する。
【0055】
図4は、本発明の一実施例による回転検知処理を示すフローチャートである。図4に示されるように、ステップS401において、回転検出部186は、現在の移動端末100について自律航法測定部160からセンサ情報を取得する。
【0056】
ステップS403において、回転検出部186は、取得したセンサ情報から現在の移動端末100の進行方向(N)を抽出し、抽出した進行方向(N)と前回取得した進行方向(N−1)との方位差分(N)を算出する。初期的には、時間フラグNは0に設定される。
【0057】
ステップS405において、回転検出部186は、算出した方位差分(N)に基づきユーザがほぼ真っ直ぐに歩行しているか判断する。すなわち、回転検出部186は、算出した方位差分(N)が所定の方位変化量y度以下であるか判定する。この方位変化量yの値は、ユーザがほぼ真っ直ぐに歩行していると判断できるような小さな値に設定される。
【0058】
方位差分(N)がy度以下である場合、回転検出部186は、ユーザがほぼ真っ直ぐに歩行している、すなわち、回転動作が開始されていない又は回転動作が終了したと判断する。他方、方位差分(N)がy度以下でない場合、回転検出部186は、ユーザが回転動作を開始した又は継続していると判断する。
【0059】
方位差分(N)がy度より大きい場合(S405:N)、当該フローはステップS409に移行し、回転検出部186は、時間フラグNを1だけインクリメントする。ここで、時間パラメータは、数ミリ秒〜数秒など何れか適当な時間単位に基づき設定される。時間フラグNをインクリメントした後、回転検出部186は、ステップS402に戻って次の時点N+1におけるセンサ情報を取得し、ユーザがほぼ真っ直ぐに歩行するまで、すなわち、ユーザの回転動作が終了するまで時間フラグNをインクリメントし続ける。
【0060】
他方、方位差分(N)がy度以下である場合(S405:Y)、当該フローはステップS407に移行し、回転検出部186は、初期時点0から現在時点Nまでの方位差分(0)から方位差分(N)までの和を算出する。なお、N=0の場合には方位差分の和は0に設定される。
【0061】
ステップS411において、回転検出部186は、算出した方位差分の和が所定の方位変化量z度以上であるか判定する。この方位変化量zの値は、ユーザが回転動作したと判断できるような大きさの値に設定される。このzの値は、一定の値に設定されてもよいし、あるいは可変的に設定されてもよい。例えば、アンカー記憶部184が各アンカーポイントの曲がりの角度、すなわち、当該アンカーポイントにおいて方位変更するのに必要とされる方位変更角度を保持している場合、回転検出部186は、アンカー記憶部184にアクセスして設定されたルート上の次のアンカーポイントの方位変更角度を取得し、この方位変更角度に応じてzの値を設定するようにしてもよい。これにより、アンカーポイントの特性に応じてzの値が設定可能となり、より精度の高い回転検出が可能となる。
【0062】
方位差分の和がz度未満である場合(S411:N)、回転検出部186は、ユーザは回転動作していないと判断し、ステップS413において、時間フラグNを0にリセットし、当該フローはステップS401に戻る。なお、方位差分の和がz度未満であるケースは、典型的には、回転動作を検出したが(S405:N)、方位差分の和が小さく回転不足であったケースと、回転動作を検出せず(S405:Y)、結果として方位差分の和が小さいケース(実際には、回転動作が検出されない場合、時間フラグは0のままであるため、方位差分(0)=0となる)とが考えられる。
【0063】
他方、方位差分の和がz度以上である場合、回転検出部186は、ユーザが回転動作したと判断し、ステップS415において、回転動作の開始時点0から終了時点Nまでの中間時点(N/2)に対応する地点を回転地点Rとして設定し、ステップS213のアンカー位置補正処理に移行する。
【0064】
上述したように、本実施例では、回転動作の開始時点と終了時点との中間時点の位置を回転地点Rとして設定した。しかしながら、本発明はこれに限定されるものでなく、他の何れか適当な位置を回転地点Rとして設定してもよい。他の実施例では、回転動作の開始地点と終了地点との中間地点が、回転地点Rとして設定されてもよい。この場合、回転動作の開始及び終了を検知し、対応する開始地点と終了地点さえ取得してその中点を算出すればよいため、より簡単な処理により回転地点Rを設定することが可能となるであろう。さらなる他の実施例では、回転動作の開始時点から終了時点までに算出された各方位差分のうち最大値となる方位差分に対応する時点の位置を回転地点Rとして設定してもよい。これは、曲がり角に対応する地点で最も進行方向が変化すると考えられるためである。
【0065】
次に、図5を参照して、本発明の一実施例によるステップS213の現在位置補正部188におけるアンカー位置補正処理をより詳細に説明する。図5は、本発明の一実施例によるアンカー位置補正処理を示すフローチャートである。本実施例では、検出された回転地点Rに対応するアンカーポイントが決定され、センサ情報に基づき推定された回転地点Rの位置情報が、地図アプリケーション部140が有する当該アンカーポイントの位置情報によって補正される。
【0066】
図5に示されるように、ステップS501において、現在位置補正部188は、回転検出部186により検出された回転地点Rとアンカー記憶部184に格納されているすべてのアンカーポイントとの間の距離を測定する。
【0067】
ステップS503において、現在位置補正部188は、測定した回転地点Rとアンカーポイントとの間の各距離のうち最小距離となるアンカーポイント(min)を決定し、回転地点Rが決定したアンカーポイント(min)のアンカーエリア内にあるか判定する。回転地点Rがアンカーポイント(min)のアンカーエリア内にない場合(S503:N)、現在位置補正部188は、ユーザは当該アンカーポイントにおいて回転動作していないと判断し、当該フローはステップS509に移行して、当該アンカー位置補正処理を終了する。
【0068】
他方、回転地点Rがアンカーポイント(min)のアンカーエリア内にある場合(S503:Y)、ステップS505において、現在位置補正部188は、ユーザが当該アンカーポイントにおいて回転動作したと判断し、アンカー位置補正を実行する。すなわち、現在位置補正部188は、回転地点Rの緯度及び経度などの位置情報を、地図アプリケーション部140の地図情報を介し取得した当該アンカーポイントの緯度及び経度などの位置情報に更新する。
【0069】
ステップS507において、現在位置補正部188は、この回転地点Rに対して更新された更新量を、センサ情報に基づき推定された移動端末100の現在位置に反映させることによって、移動端末100の現在位置を補正する。現在位置の補正が完了すると、当該フローはステップS509に移行し、当該アンカー位置補正処理を終了する。
【0070】
上述したように、本実施例では、アンカー記憶部184に格納されているすべてのアンカーポイントについて回転地点Rとの距離が算出されたが、本発明は、これに限定されるものでなく、回転地点Rに対応するアンカーポイントを決定するための他の何れか適切な方法が適用されてもよい。他の実施例では、回転地点Rとアンカー記憶部184に格納されているアンカーポイントの一部との間の距離のみ算出するよう構成されてもよい。アンカーポイントの一部としては、直前に通過したアンカーポイントに隣接する1以上のアンカーポイントであってもよい。ユーザが設定されたルートに沿って歩行する確率が高い場合には、出発地から目的地までのアンカーポイントを順序通りに通過する可能性が高いため、ユーザがルート上の次のアンカーポイントに到達したか判断すれば十分であり、これにより計算量を低減することが可能となる。
【0071】
次に、図6を参照して、本発明の他の実施例によるステップS211の回転検出部186における回転検知処理をより詳細に説明する。図4に示される実施例では、回転動作の開始時点から完了時点までの中間時点の回転地点をアンカー位置補正のための回転地点Rとして使用したが、本実施例では、ユーザの進行方向の変更中に測定される各方位変化量を累積し、この累積値が所定の閾値を超えた時点で回転動作が検知されたとみなし、当該時点の位置を回転地点Rとして設定する。
【0072】
図6は、本発明の他の実施例による回転検知処理を示すフローチャートである。図6に示されるように、ステップS601において、回転検出部186は、現在の移動端末100について自律航法測定部160からセンサ情報を取得する。
【0073】
ステップS603において、回転検出部186は、取得したセンサ情報から現在の移動端末100の進行方向(N)を抽出し、抽出した進行方向(N)と前回取得した進行方向(N−1)との方位差分(N)を算出する。初期的には、時間フラグNは0に設定される。
【0074】
ステップS605において、回転検出部186は、算出した方位差分(N)に基づきユーザが進行方向を変更しているか判断する。すなわち、回転検出部186は、算出した方位差分(N)が所定の方位変化量y度以上であるか判定する。この方位変化量yの値は、ユーザが進行方向を変更していると判断できるような値に設定される。
【0075】
方位差分(N)がy度以上である場合、回転検出部186は、ユーザが進行方向を変更していると判断する。他方、方位差分(N)がy度以上でない場合、回転検出部186は、ユーザが進行方向を変更していないと判断する。
【0076】
方位差分(N)がy度未満である場合(S605:N)、当該フローはステップS609に移行し、回転検出部186は、時間フラグNをリセットする。
【0077】
他方、方位差分(N)がy度以上である場合(S605:Y)、当該フローはステップS607に移行し、回転検出部186は、初期時点0から現在時点Nまでの方位差分(0)から方位差分(N)までの和を算出する。なお、N=0の場合には方位差分の和は0に設定される。
【0078】
ステップS611において、回転検出部186は、時間フラグNを1だけインクリメントする。
【0079】
ステップS613において、回転検出部186は、算出した方位差分の和が所定の方位変化量z度以上であるか判定する。この方位変化量zの値は、ユーザが連続的な進行方向の変更によって回転動作したと判断できるような累積値に設定される。このzの値は、一定の値に設定されてもよいし、あるいは可変的に設定されてもよい。例えば、アンカー記憶部184が各アンカーポイントの曲がりの角度、すなわち、当該アンカーポイントにおいて方位変更するのに必要とされる方位変更角度を保持している場合、回転検出部186は、アンカー記憶部184にアクセスして設定されたルート上の次のアンカーポイントの方位変更角度を取得し、この方位変更角度に応じてzの値を設定するようにしてもよい。これにより、アンカーポイントの特性に応じてzの値が設定可能となり、より精度の高い回転検出が可能となる。
【0080】
方位差分の和がz度未満である場合(S613:N)、回転検出部186は、ユーザは進行方向を変更しているが、まだ回転動作はしていないと判断し、当該フローはステップS601に戻る。
【0081】
他方、方位差分の和がz度以上である場合、回転検出部186は、ユーザが回転動作したと判断し、当該フローはステップS615及びS617に移行し、回転動作が検知された時点Nに対応する地点を回転地点Rとして設定し、ステップS213のアンカー位置補正処理に移行する。
【0082】
本実施例によると、ユーザが連続的に進行方向を変更し、各時点における方位変化量の累積値が所定の閾値以上になると、ユーザが回転動作していると判断し、この判断時点に対応する地点を回転地点Rとする。このようにして、図4の実施例より簡易に回転地点を決定することが可能となる。
【0083】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【0084】
100 移動端末
120 ユーザインタフェース部
140 地図アプリケーション部
160 自律航法測定部
180 自律航法演算部
182 位置算出部
184 アンカー記憶部
186 回転検出部
188 現在位置補正部

【特許請求の範囲】
【請求項1】
自律航法機能を有する移動端末であって、
地図情報における当該移動端末のユーザの出発地から目的地までのルート上で前記ユーザが方位変更すると想定される方位変更地点を取得し、該取得した方位変更地点をアンカーポイントとして設定及び格納するアンカー管理部と、
当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供する測定部と、
前記センサ情報に基づき、当該移動端末の現在位置を算出する位置算出部と、
前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定する回転検出部と、
前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正する現在位置補正部と、
を有する移動端末。
【請求項2】
前記方位変更地点は、前記ルート上で所定の角度以上の方位変更を伴う地点に対応する、請求項1記載の移動端末。
【請求項3】
前記測定部は、
当該移動端末のユーザの歩数を検出する歩数検出部と、
当該移動端末の進行方向を検出する進行方向検出部と、
を有し、
前記位置算出部は、前記歩数検出部により検出されたユーザの歩数と前記進行方向検出部により検出された進行方向とに基づき、当該移動端末の現在位置を算出する、請求項1記載の移動端末。
【請求項4】
前記回転検出部は、前記進行方向検出部により検出される進行方向の変化量の和に基づき前記ユーザの回転動作を検出する、請求項3記載の移動端末。
【請求項5】
前記回転検出部は、
前記進行方向検出部により検出される進行方向の変化量が所定の第1閾値以下であるか判定し、前記変化量が前記第1閾値以下でないときに前記ユーザが回転動作していると推定し、その後に前記変化量が前記第1閾値以下になると前記ユーザが回転動作を終了したと推定し、
前記ユーザが回転動作を終了すると、前記回転動作中の前記変化量の和が所定の第2閾値以上であるか判定し、前記変化量の和が前記第2閾値以上である場合、前記ユーザが前記回転動作したと判断し、前記回転動作の開始時点と終了時点との中間時点に係る地点を前記回転地点として決定する、請求項4記載の移動端末。
【請求項6】
前記回転検出部は、
前記進行方向検出部により検出される進行方向の変化量が所定の第3閾値以上であるか判定し、前記変化量が前記第3閾値以上であるときに前記ユーザが進行方向を変更中であると推定し、
前記ユーザが進行方向を変更している間の前記変化量の和が所定の第4閾値以上であるか判定し、前記変化量の和が前記第4閾値以上になった時点に係る地点を前記回転地点として決定する、請求項4記載の移動端末。
【請求項7】
前記現在位置補正部は、前記決定された回転地点と前記アンカー管理部に格納されているアンカーポイントとの間の距離を算出し、前記算出した距離が最小となるアンカーポイントを前記決定された回転地点に対応するアンカーポイントとして決定する、請求項1記載の移動端末。
【請求項8】
前記アンカー管理部は、前記格納されているアンカーポイントについて、該アンカーポイントを中心とする近傍エリアを該アンカーポイントのアンカーエリアとして設定し、
前記現在位置補正部は、前記決定された回転地点が前記決定された対応するアンカーポイントのアンカーエリア内にあるか判断し、前記決定された回転地点が前記対応するアンカーポイントのアンカーエリア内にある場合、前記決定された回転地点の位置と前記対応するアンカーポイントの位置との差分に基づき、当該移動端末の現在位置を補正する、請求項7記載の移動端末。
【請求項9】
自律航法機能を有する移動端末と、
前記移動端末と通信接続されるサーバと、
を有するシステムであって、
前記サーバは、
前記移動端末からユーザの出発地と目的地とを示すデータを受信すると、地図情報を参照して前記出発地から前記目的地までのルートを決定するルート決定部と、
前記決定されたルート上で前記ユーザが方位変更すると想定される方位変更地点を抽出し、前記抽出した方位変更地点を前記移動端末に送信するアンカーポイント決定部と、
を有し、
前記移動端末は、
前記受信した方位変更地点をアンカーポイントとして設定及び格納するアンカー管理部と、
当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供する測定部と、
前記センサ情報に基づき、当該移動端末の現在位置を決定する位置算出部と、
前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定する回転検出部と、
前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正する現在位置補正部と、
を有するシステム。
【請求項10】
自律航法機能を有する移動端末で使用される方法であって、
地図情報における当該移動端末のユーザの出発地から目的地までのルート上で前記ユーザが方位変更すると想定される方位変更地点を取得し、該取得した方位変更地点をアンカーポイントとして設定及び格納するステップと、
当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供するステップと、
前記センサ情報に基づき、当該移動端末の現在位置を決定するステップと、
前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定するステップと、
前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正するステップと、
を有する方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate


【公開番号】特開2012−117974(P2012−117974A)
【公開日】平成24年6月21日(2012.6.21)
【国際特許分類】
【出願番号】特願2010−269608(P2010−269608)
【出願日】平成22年12月2日(2010.12.2)
【出願人】(392026693)株式会社エヌ・ティ・ティ・ドコモ (5,876)
【Fターム(参考)】