(57)【要約】      （修正有）【課題】自律航法機能を有する移動端末における測位誤差の蓄積を解消するため、ルート上の各地点で適宜位置補正する。【解決手段】地図情報における移動端末のユーザの出発地から目的地までのルート上で前記ユーザが方位変更すると想定される方位変更地点を取得し、該取得した方位変更地点をアンカーポイントとして設定及び格納するアンカー管理部と、当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供する測定部と、前記センサ情報に基づき、当該移動端末の現在位置を算出する位置算出部と、前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定する回転検出部と、前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正する現在位置補正部とを有する。【選択図】図１
2012117974.tif 000002
【特許請求の範囲】
【請求項１】
自律航法機能を有する移動端末であって、
地図情報における当該移動端末のユーザの出発地から目的地までのルート上で前記ユーザが方位変更すると想定される方位変更地点を取得し、該取得した方位変更地点をアンカーポイントとして設定及び格納するアンカー管理部と、
当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供する測定部と、
前記センサ情報に基づき、当該移動端末の現在位置を算出する位置算出部と、
前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定する回転検出部と、
前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正する現在位置補正部と、
を有する移動端末。
【請求項２】
前記方位変更地点は、前記ルート上で所定の角度以上の方位変更を伴う地点に対応する、請求項１記載の移動端末。
【請求項３】
前記測定部は、
当該移動端末のユーザの歩数を検出する歩数検出部と、
当該移動端末の進行方向を検出する進行方向検出部と、
を有し、
前記位置算出部は、前記歩数検出部により検出されたユーザの歩数と前記進行方向検出部により検出された進行方向とに基づき、当該移動端末の現在位置を算出する、請求項１記載の移動端末。
【請求項４】
前記回転検出部は、前記進行方向検出部により検出される進行方向の変化量の和に基づき前記ユーザの回転動作を検出する、請求項３記載の移動端末。
【請求項５】
前記回転検出部は、
前記進行方向検出部により検出される進行方向の変化量が所定の第１閾値以下であるか判定し、前記変化量が前記第１閾値以下でないときに前記ユーザが回転動作していると推定し、その後に前記変化量が前記第１閾値以下になると前記ユーザが回転動作を終了したと推定し、
前記ユーザが回転動作を終了すると、前記回転動作中の前記変化量の和が所定の第２閾値以上であるか判定し、前記変化量の和が前記第２閾値以上である場合、前記ユーザが前記回転動作したと判断し、前記回転動作の開始時点と終了時点との中間時点に係る地点を前記回転地点として決定する、請求項４記載の移動端末。
【請求項６】
前記回転検出部は、
前記進行方向検出部により検出される進行方向の変化量が所定の第３閾値以上であるか判定し、前記変化量が前記第３閾値以上であるときに前記ユーザが進行方向を変更中であると推定し、
前記ユーザが進行方向を変更している間の前記変化量の和が所定の第４閾値以上であるか判定し、前記変化量の和が前記第４閾値以上になった時点に係る地点を前記回転地点として決定する、請求項４記載の移動端末。
【請求項７】
前記現在位置補正部は、前記決定された回転地点と前記アンカー管理部に格納されているアンカーポイントとの間の距離を算出し、前記算出した距離が最小となるアンカーポイントを前記決定された回転地点に対応するアンカーポイントとして決定する、請求項１記載の移動端末。
【請求項８】
前記アンカー管理部は、前記格納されているアンカーポイントについて、該アンカーポイントを中心とする近傍エリアを該アンカーポイントのアンカーエリアとして設定し、
前記現在位置補正部は、前記決定された回転地点が前記決定された対応するアンカーポイントのアンカーエリア内にあるか判断し、前記決定された回転地点が前記対応するアンカーポイントのアンカーエリア内にある場合、前記決定された回転地点の位置と前記対応するアンカーポイントの位置との差分に基づき、当該移動端末の現在位置を補正する、請求項７記載の移動端末。
【請求項９】
自律航法機能を有する移動端末と、
前記移動端末と通信接続されるサーバと、
を有するシステムであって、
前記サーバは、
前記移動端末からユーザの出発地と目的地とを示すデータを受信すると、地図情報を参照して前記出発地から前記目的地までのルートを決定するルート決定部と、
前記決定されたルート上で前記ユーザが方位変更すると想定される方位変更地点を抽出し、前記抽出した方位変更地点を前記移動端末に送信するアンカーポイント決定部と、
を有し、
前記移動端末は、
前記受信した方位変更地点をアンカーポイントとして設定及び格納するアンカー管理部と、
当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供する測定部と、
前記センサ情報に基づき、当該移動端末の現在位置を決定する位置算出部と、
前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定する回転検出部と、
前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正する現在位置補正部と、
を有するシステム。
【請求項１０】
自律航法機能を有する移動端末で使用される方法であって、
地図情報における当該移動端末のユーザの出発地から目的地までのルート上で前記ユーザが方位変更すると想定される方位変更地点を取得し、該取得した方位変更地点をアンカーポイントとして設定及び格納するステップと、
当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供するステップと、
前記センサ情報に基づき、当該移動端末の現在位置を決定するステップと、
前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定するステップと、
前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正するステップと、
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律航法機能を有する移動端末に関する。
【背景技術】
【０００２】
近年、移動端末における基地局測位の高精度化や、ＷＬＡＮ（Ｗｉｒｅｌｅｓｓ  Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）測位などの新たな測位技術の出現により、インドア環境における位置情報サービスの発展が期待されている。
【０００３】
新たなインドア測位技術の１つとして、加速度センサや地磁気センサなどの各種センサ情報を利用した自律航法技術が注目されている。しかしながら、センサのみによる測位は誤差が蓄積していくという問題があり、精度向上のためにはセンサ以外の情報を利用して定期的に位置補正を行うことが重要となる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−２２３８２９号公報
【特許文献２】特開２０１０−１２２０３４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の移動端末向けの自律航法では、加速度センサや地磁気センサ、ジャイロセンサなどを利用して初期位置からの移動量を推定して位置座標を算出している。
【０００６】
しかしながら、推定した位置座標の誤差が蓄積していくことによって、目的地に近づくほど実際のルートからの誤差が拡大していき、正しく目的地までナビゲーションすることが困難であった。
【０００７】
上記問題点に鑑み、本発明の課題は、自律航法機能を有する移動端末における測位誤差の蓄積を解消するため、ルート上の各地点で適宜位置補正する移動端末、システム及び方法を提供することである。
【課題を解決するための手段】
【０００８】
上記課題を解決するため、本発明の一態様は、自律航法機能を有する移動端末であって、地図情報における当該移動端末のユーザの出発地から目的地までのルート上で前記ユーザが方位変更すると想定される方位変更地点を取得し、該取得した方位変更地点をアンカーポイントとして設定及び格納するアンカー管理部と、当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供する測定部と、前記センサ情報に基づき、当該移動端末の現在位置を算出する位置算出部と、前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定する回転検出部と、前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正する現在位置補正部とを有する移動端末に関する。
【０００９】
本発明の他の態様は、自律航法機能を有する移動端末と、前記移動端末と通信接続されるサーバとを有するシステムであって、前記サーバは、前記移動端末からユーザの出発地と目的地とを示すデータを受信すると、地図情報を参照して前記出発地から前記目的地までのルートを決定するルート決定部と、前記決定されたルート上で前記ユーザが方位変更すると想定される方位変更地点を抽出し、前記抽出した方位変更地点を前記移動端末に送信するアンカーポイント決定部とを有し、前記移動端末は、前記受信した方位変更地点をアンカーポイントとして設定及び格納するアンカー管理部と、当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供する測定部と、前記センサ情報に基づき、当該移動端末の現在位置を決定する位置算出部と、前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定する回転検出部と、前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正する現在位置補正部とを有するシステムに関する。
【００１０】
本発明のさらなる他の態様は、自律航法機能を有する移動端末で使用される方法であって、地図情報における当該移動端末のユーザの出発地から目的地までのルート上で前記ユーザが方位変更すると想定される方位変更地点を取得し、該取得した方位変更地点をアンカーポイントとして設定及び格納するステップと、当該移動端末の動きを検知し、前記動きを示すセンサ情報を提供するステップと、前記センサ情報に基づき、当該移動端末の現在位置を決定するステップと、前記センサ情報に基づき、前記ユーザの回転動作を検出し、該検出した回転動作の回転地点を決定するステップと、前記アンカー管理部により格納されているアンカーポイントから前記決定された回転地点に対応するアンカーポイントを決定し、該決定されたアンカーポイントの位置により当該移動端末の現在位置を補正するステップとを有する方法に関する。
【発明の効果】
【００１１】
本発明によると、自律航法機能を有する移動端末における測位誤差の蓄積を解消するため、ルート上の各地点で適宜位置補正する移動端末、システム及び方法を提供することができる。
【図面の簡単な説明】
【００１２】
【図１】図１は、本発明の一実施例による移動端末の一例となる機能構成を示す。
【図２】図２は、本発明の一実施例による移動端末における一例となる自律航法処理を示すフローチャートである。
【図３】図３は、本発明の一実施例によるアンカーポイント設定処理を示すフローチャートである。
【図４】図４は、本発明の一実施例による回転検知処理を示すフローチャートである。
【図５】図５は、本発明の一実施例によるアンカー位置補正処理を示すフローチャートである。
【図６】図６は、本発明の他の実施例による回転検知処理を示すフローチャートである。
【発明を実施するための形態】
【００１３】
以下、図面に基づいて本発明の各実施例を説明する。
【００１４】
本発明の各実施例による移動端末は、出発地から目的地までの設定ルート上でユーザが方位変更することが想定される方位変更地点をアンカーポイントとして設定し、各アンカーポイントで移動端末の位置補正をすることによって測位誤差の蓄積を低減し、自律航法の測位精度を向上させるものである。
【００１５】
まず、図１を参照して、本発明の一実施例による移動端末の構成を説明する。
【００１６】
本実施例による移動端末は、典型的には、携帯電話端末やスマートフォンなどの携帯情報端末であり、端末内に搭載されたアプリケーションを利用して、又はネットワーク（図示しない）を介し通信可能な外部の装置からの情報を利用して移動端末の位置を取得可能な携帯情報端末である。移動端末は、典型的には、補助記憶装置、メモリ装置、ＣＰＵ、通信装置、表示装置、入力装置、測定装置などの各種ハードウェアリソースの１以上から構成される。補助記憶装置は、ハードディスクやフラッシュメモリなどから構成され、後述される各種処理を実現するプログラムやデータを格納する。メモリ装置は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などから構成され、プログラムの起動指示があった場合に、補助記憶装置からプログラムを読み出して格納する。ＣＰＵは、情報を処理するプロセッサとして機能し、メモリ装置に格納されたプログラムに従って後述される各種機能を実現する。通信装置は、ネットワークを介しサーバなどの他の装置と有線及び／又は無線接続するための各種通信回路から構成される。本実施例による通信装置はさらに、ＧＰＳ（Ｇｌｏｂａｌ  Ｐｏｓｉｔｉｏｎｉｎｇ  Ｓｙｓｔｅｍ）機能を実現するための受信回路を有する。表示装置は、ディスプレイなどから構成され、ネットワークを介し受信したコンテンツやプログラムによるＧＵＩ（Ｇｒａｐｈｉｃａｌ  Ｕｓｅｒ  Ｉｎｔｅｒｆａｃｅ）等を表示する。入力装置は、典型的には、操作ボタン、キーボード、マウス等で構成され、移動端末のユーザが様々な操作命令を入力するのに用いられる。測定装置は、自律航法機能を実現するための移動端末の動きを測定するための加速度センサ、地磁気センサ、ジャイロセンサなどの各種センサから構成される。なお、本発明による移動端末は、上述したハードウェア構成に限定されるものでなく、後述する各種機能を実現可能な回路等の他の何れか適切なハードウェア構成を有してもよい。
【００１７】
図１は、本発明の一実施例による移動端末の一例となる機能構成を示す。図１において、移動端末１００は、ユーザインタフェース部１２０と、地図アプリケーション部１４０と、自律航法測定部１６０と、自律航法演算部１８０とを有する。
【００１８】
ユーザインタフェース部１２０は、入力装置を介しユーザが出発地と目的地を入力すると、入力された出発地と目的地とに関する位置情報を地図アプリケーション部１４０に提供する。典型的には、出発地は現在位置であり、ＧＰＳ機能を用いて取得した移動端末１００の現在位置に関する位置情報が地図アプリケーション部１４０に提供されてもよい。また、目的地は、ユーザにより入力された目的地の住所などであってもよいし、あるいは地図アプリケーション部１４０により表示された地図情報上の指定された地点、他のアプリケーションを介し指定された建物、施設、店舗などであってもよく、これら指定された位置から導出された位置情報が地図アプリケーション部１４０に提供されてもよい。
【００１９】
地図アプリケーション部１４０は、ユーザインタフェース部１２０から出発地と目的地とに関する位置情報を受信すると、指定された出発地から目的地までのルートを設定すると共に、設定したルート上のアンカーポイントを抽出及び管理する。本実施例によると、設定されたルート上でユーザが方位変更すると想定される方位変更地点、すなわち、曲がる場所又は曲がり角がアンカーポイントとして抽出される。
【００２０】
図１に示されるように、地図アプリケーション部１４０は、地図表示部１４２とアンカーポイント管理部１４４とを有する。
【００２１】
地図表示部１４２は、ユーザインタフェース部１２０から提供された出発地と目的地との位置情報に基づき、出発地から目的地までのルートを設定し、設定したルートをアンカーポイント管理部１４４に提供する。このルートの設定は、地図アプリケーション部１４０に格納されている地図情報を参照して、何れか適当なナビゲーションアルゴリズムを利用して出発地から目的地までのルートを決定することにより行われてもよい。典型的には、出発地から目的地までの最短ルートが選択されるが、これに限定されるものでなく、何れか適当な方法によりルートを設定するようにしてもよい。出発地から目的地までのルートが設定されると、地図表示部１４２は、設定されたルートをユーザに表示するための表示用地図データを生成する。なお、出発地から目的地まで複数のルートの候補が存在する場合、これら複数のルートの１つを表示用のルートとして設定して当該ルートに関する表示用地図データを生成し、他のルートについては、表示用地図データは生成しないが候補ルートとしてアンカーポイント管理部１４４に提供するようにしてもよい。このようにして、ユーザが設定されたルート以外のルートを実際に歩行した場合にも、候補ルートのアンカーポイントによってフレキシブルな位置補正をすることが可能になる。
【００２２】
アンカーポイント管理部１４４は、地図表示部１４２から設定されたルートを受信すると、地図アプリケーション部１４０に格納されている地図情報を参照して、当該ルート上でユーザが方位変更すると想定される曲がり角を抽出し、アンカーポイントとして設定する。具体的には、アンカーポイント管理部１４４は、地図情報における設定されたルート上で所定の角度（例えば、９０度など）以上の方位変更を伴う地点を抽出し、抽出した地点をアンカーポイントとして設定する。その後、アンカーポイント管理部１４４は、抽出した地点に対応する緯度及び経度などの位置情報を当該アンカーポイントに関連付けて管理する。アンカーポイントによる移動端末１００の位置補正は、移動端末１００が進行方向を変更した際に、この変更地点の近傍のアンカーポイントに移動端末１００の位置を補正することにより実行される。このため、アンカーポイント管理部１４４は、各アンカーポイントについて、当該位置の近傍領域としてアンカーエリアを設定する。アンカーポイント管理部１４４は、設定したアンカーポイントとアンカーエリアとをアンカー情報として自律航法演算部１８０に提供する。なお、アンカーポイント管理部１４４が、設定されたルートと共に１以上の候補ルートも併せて受信した場合、これら候補ルートのアンカー情報も同様に生成し、自律航法演算部１８０に提供してもよい。アンカーポイント管理部１４４によるアンカーポイント設定処理の具体的な処理は、図３を参照して以降において詳述される。
【００２３】
本実施例では、地図アプリケーション部１４０は移動端末１００内に設けられたが、本発明はこれに限定されるものでない。他の実施例では、地図アプリケーション部１４０は、移動端末１００が通信可能な外部のサーバに設けられてもよい。すなわち、ユーザインタフェース部１２０がユーザから入力された出発地と目的地とに関する位置情報をサーバに送信すると、サーバは上述した処理を実行してアンカーポイント及びアンカーエリアを決定し、これらをアンカー情報として移動端末１００に返すようにしてもよい。
【００２４】
自律航法測定部１６０は、移動端末１００の動きに関する各種データを測定し、測定したデータをセンサ情報として自律航法演算部１８０に提供する。図１に示されるように、自律航法測定部１６０は、歩数測定部１６２と、進行方向測定部１６４とを有する。
【００２５】
歩数測定部１６２は、移動端末１００を携帯するユーザの歩行をモニタし、ユーザが歩いた歩数を測定する。歩数測定部１６２は、典型的には、加速度センサにより実現可能であるが、これに限定されることなく他の何れか適切なユーザの歩数又は歩行距離を測定可能な装置により実現されてもよい。
【００２６】
進行方向測定部１６４は、移動端末１００を携帯するユーザの歩行をモニタし、ユーザが歩く進行方向を検知する。進行方向測定部１６４は、典型的には、地磁気センサやジャイロセンサにより実現可能であるが、これに限定されることなく他の何れか適切なユーザの進行方向を測定可能な装置により実現されてもよい。
【００２７】
自律航法測定部１６０は、歩数測定部１６２により測定されたユーザの歩数と進行方向測定部１６４により測定されたユーザの進行方向とをセンサ情報として自律航法演算部１８０に提供する。このセンサ情報は、自律航法演算部１８０などからの要求に応答して、ユーザが歩行を開始することに応答して、又は定期的など何れか適切なタイミングで自律航法演算部１８０に提供されるようにしてもよい。
【００２８】
自律航法演算部１８０は、自律航法測定部１６０により測定された移動端末１００のユーザの歩数及び進行方向などのセンサ情報を取得し、地図アプリケーション部１４０から受信したアンカー情報を利用して、このセンサ情報に基づき推定された移動端末１００の現在位置を補正する。
【００２９】
図１に示されるように、自律航法演算部１８０は、位置算出部１８２と、アンカー記憶部１８４と、回転検出部１８６と、現在位置補正部１８８とを有する。
【００３０】
位置算出部１８２は、自律航法測定部１６０から提供されたセンサ情報に基づき自律航法中の移動端末１００の移動量を算出し、現在設定されている基準地点にこの算出した移動量を加えることによって現在位置を決定し、決定した現在位置の緯度及び経度などの位置情報を地図アプリケーション部１４０に提供する。具体的には、位置算出部１８２は、センサ情報における測定されたユーザの歩数と進行方向とに基づき、測定された歩数に設定されているユーザの歩幅（典型的には、入力されたユーザの身長から１ｍを差し引いた値）を掛け合わせることによって歩行距離を導出し、導出した歩行距離と測定された進行方向とに基づき基準地点からの移動量を算出する。位置算出部１８２は、初期的にはこの基準地点として設定されたルートの出発点の緯度及び経度を設定し、ユーザの歩数から推定される歩行距離と進行方向の推移とに基づき基準地点からの移動距離及び移動方向を求める。以降、現在位置補正部１８８により移動端末１００の現在位置が補正される毎に、位置算出部１８２は、補正後の位置を新たな基準地点として更新し、更新した基準地点からの移動量を算出する。
【００３１】
アンカー記憶部１８４は、地図アプリケーション部１４０から提供されたアンカー情報を格納する。具体的には、アンカー記憶部１８４は、提供されたアンカー情報からアンカーポイント、アンカーエリア及び他の関連情報を保持し、移動端末１００の他の構成要素からの要求に応じてアンカーポイントとアンカーエリアとを提供する。
【００３２】
回転検出部１８６は、進行方向測定部１６４により測定された進行方向の変化に基づき移動端末１００のユーザが回転動作をしたか検出し、ユーザの回転動作が検出されると、現在位置補正部１８８に当該回転動作の検出を通知すると共に、設定ルート上の曲がり角などの方位変更地点に相当とすると推定される回転地点Ｒの位置情報を現在位置補正部１８８に提供する。
【００３３】
通常の回転動作では、ユーザが曲がり角を曲がる際、ユーザは一瞬で進行方向を変えるというよりかは、例えば、曲がり角の周囲を弧を描くように進行するなど、回転動作の開始時点から終了時点までの一定の期間に連続的に進行方向を変えるよう歩行することが一般的であると考えられる。従って、このような通常想定されるユーザの回転動作に鑑み、回転検出部１８６は、回転動作の開始を検知すると、この開始時点から終了時点までの進行方向の変化を連続的に検知し、位置算出部１８２から取得した回転動作の開始時点から完了時点までの何れか適切な時点、典型的には、開始時点から完了時点までの中間時点（回転中間点）の位置を回転地点Ｒとして推定する。回転検出部１８６による回転検出の具体的な処理は、図４を参照して以降において詳述される。
【００３４】
現在位置補正部１８８は、回転検出部１８６からユーザの回転動作の検出と回転地点Ｒの位置情報とを受信すると、アンカー記憶部１８４に格納されているアンカーポイントから回転地点Ｒに対応するアンカーポイントを決定し、当該アンカーポイントの位置情報によって回転地点Ｒの位置を更新し、さらに更新した回転地点Ｒの位置に対応して移動端末１００の現在位置を更新する。
【００３５】
具体的には、現在位置補正部１８８は、回転地点Ｒとアンカー記憶部１８４に格納されているすべてのアンカーポイントとの間の距離を算出し、算出した距離が最小となるアンカーポイントを選択し、当該アンカーポイントのアンカーエリア内に回転地点Ｒがあるか判断する。回転地点Ｒがアンカーエリア内にある場合、現在位置補正部１８８は、ユーザが当該アンカーポイントに対応する曲がり角を曲がったと判断し、アンカー記憶部１８４に格納されている選択されたアンカーポイントの緯度及び経度によって回転地点Ｒの位置情報を更新する。さらに、現在位置補正部１８８は、更新後の回転地点Ｒの緯度及び経度と更新前の回転地点Ｒの緯度及び経度の差分を利用して、位置算出部１８２により算出された現在位置の緯度及び経度を更新する。これにより、位置算出部１８２により算出された現在位置の位置情報の誤差を補正することが可能となる。現在位置補正部１８８による位置補正の具体的な処理は、図５を参照して以降において詳述される。
【００３６】
なお、上記実施例では、現在位置補正部１８８は、回転地点Ｒとアンカー記憶部１８４に格納されているすべてのアンカーポイントとの間の距離を算出するよう構成されたが、回転地点Ｒとアンカー記憶部１８４に格納されているアンカーポイントの一部との間の距離のみ算出するよう構成されてもよい。アンカーポイントの一部としては、直前に通過したアンカーポイントに隣接する１以上のアンカーポイントであってもよい。ユーザが設定されたルートに沿って歩行する確率が高い場合には、出発地から目的地までのアンカーポイントを順序通りに通過する可能性が高いため、ユーザがルート上の次のアンカーポイントに到達したか判断すれば十分であり、これにより計算量を低減することが可能となる。他方、ユーザにより入力された出発地から目的地までに複数のルートが存在する場合などユーザが必ずしも設定されたルートに沿って歩行する確率が高くない場合には、上記実施例のように回転地点Ｒとアンカー記憶部１８４に格納されている設定されたルートに併せて、候補ルートのすべてのアンカーポイントとの間の距離を算出することによって、より精度の高い位置補正が可能となる。
【００３７】
次に、図２を参照して、本発明の一実施例による移動端末の一例となる動作を説明する。図２は、本発明の一実施例による移動端末における一例となる自律航法処理を示すフローチャートである。
【００３８】
図２に示されるように、ステップＳ２０１において、ユーザが移動端末１００の入力装置などを介しユーザインタフェース部１２０に目的地を設定する。上述したように、ユーザは、目的地の住所などを入力することによって目的地を設定してもよい。また、ユーザは、地図アプリケーション部１４０により移動端末１００の表示装置上に表示された地図情報上の地点を指定することによって目的地を設定してもよい。また、ユーザは、他のアプリケーションを介し表示された建物、施設、店舗などを指定することによって目的地を設定してもよい。
【００３９】
ステップＳ２０３において、ユーザが移動端末１００の入力装置などを介しユーザインタフェース部１２０に出発地を設定する。典型的には、出発地は、デフォルトとして現在位置に設定される。他方、ユーザが現在位置以外の出発地を移動端末１００の入力装置などを介し設定することも可能である。例えば、ユーザは、出発地の住所などを入力することによって出発地を設定してもよい。また、ユーザは、地図アプリケーション部１４０により移動端末１００の表示装置上に表示された地図情報上の地点を指定することによって出発地を設定してもよい。また、ユーザは、他のアプリケーションを介し表示された建物、施設、店舗などを指定することによって出発地を設定してもよい。
【００４０】
ステップＳ２０５において、地図アプリケーション部１４０は、設定された出発地と目的地とに対して地図情報を参照してルートを決定する。地図アプリケーション部１４０はさらに、地図情報を参照して決定したルート上の曲がり角をアンカーポイントして設定する。このアンカーポイント設定の具体的な処理については、以降に詳述する。
【００４１】
ステップＳ２０７において、自律航法演算部１８０は、自律航法測定部１６０により測定されたセンサ情報を取得する。
【００４２】
ステップＳ２０９において、自律航法演算部１８０は、取得したセンサ情報に基づき移動端末１００の現在位置を算出する。
【００４３】
ステップＳ２１１において、自律航法演算部１８０は、ユーザが回転動作をしたか判定する。この回転動作の検出の具体的な処理については、以降に詳述する。ユーザが回転動作をしたと判断した場合（Ｓ２１１：Ｙ）、自律航法演算部１８０は回転地点を決定し、当該フローはステップＳ２１３に移行する。他方、ユーザの回転動作を検出しない場合（Ｓ２１１：Ｎ）、自律航法演算部１８０はアンカー位置補正をせず、当該フローはステップＳ２１５に移行する。
【００４４】
ステップＳ２１３において、自律航法演算部１８０は、決定した回転地点に対応するアンカーポイントを選択し、選択したアンカーポイントの位置情報により回転地点及び移動端末１００の現在位置を補正する。このアンカー位置補正の具体的な処理については、以降に詳述する。
【００４５】
ステップＳ２１５において、自律航法演算部１８０は、移動端末１００の現在位置に基づき、ユーザが目的地に到達したか判定する。ユーザが目的地に到達したと判断した場合（Ｓ２１５：Ｙ）、当該自律航法処理は終了する。他方、ユーザがまだ目的地に到達していない場合（Ｓ２１５：Ｎ）、当該フローはステップＳ２０７に戻り、自律航法処理を継続する。
【００４６】
次に、図３を参照して、本発明の一実施例によるステップＳ２０５の地図アプリケーション部１４０におけるアンカーポイント設定処理をより詳細に説明する。図３は、本発明の一実施例によるアンカーポイント設定処理を示すフローチャートである。
【００４７】
図３に示されるように、ステップＳ３０１において、地図表示部１４２は、ユーザにより設定された出発地と目的地とに対して、地図情報を参照して出発地から目的地までのルートのうち最短ルートなどの何れか適当なルートを設定ルートとして決定し、アンカーポイント管理部１４４に提供する。アンカーポイント管理部１４４は、地図情報を参照して、設定ルート上の曲がり角をアンカーポイントとして抽出する。
【００４８】
ステップＳ３０３において、アンカーポイント管理部１４４は、設定ルート上に曲がり角に相当するアンカーポイントが存在するか判定する。設定ルート上にアンカーポイントが検出されない場合（Ｓ３０３：Ｎ）、当該フローはステップＳ３１５に移行し、当該アンカーポイント設定処理を終了する。この場合、移動端末１００は、アンカー位置補正を利用することなく自律航法処理を実行する。他方、設定ルート上に１以上のアンカーポイントが検出された場合（Ｓ３０３：Ｙ）、当該フローはステップＳ３０５に移行する。
【００４９】
ステップＳ３０５において、アンカーポイント管理部１４４は、出発地をアンカー（０）に設定し、設定ルート上の出発地から目的地への進行方向の順序で検出された１以上のアンカーポイントをアンカー（１）、アンカー（２）、・・・として整列する。
【００５０】
ステップＳ３０７において、アンカーポイント管理部１４４は、整列された各アンカーについて、隣接するアンカー（Ｎ−１）とアンカー（Ｎ）間の距離Ｄ（Ｎ）を算出する。初期的には、アンカーポイント管理部１４４は、地図情報を参照してアンカー（０）と次のアンカー（１）との間の距離Ｄ（１）を算出する。
【００５１】
ステップＳ３０９において、アンカーポイント管理部１４４は、アンカー（Ｎ）のアンカーエリアを設定する。アンカー（Ｎ）のアンカーエリアは、ステップＳ３０７で算出された距離Ｄ（Ｎ）のｘ％（０＜ｘ＜１００）を半径とする円の内部として設定される。このｘは、ルート上のすべてのアンカーポイントに対して同一の値に設定されてもよいし、あるいは、各アンカーポイントについて異なる値に設定されてもよい。なお、ｘの値は隣接するアンカーエリアが重複しないよう設定されることが好ましい。これは、重複したアンカーエリアで回転動作が検出された場合、誤ったアンカー位置補正が行われる可能性があるためである。
【００５２】
ステップＳ３１１において、アンカーポイント管理部１４４は、設定ルート上のすべてのアンカーポイントに対してアンカーエリアが設定されたか判断する。具体的には、アンカーポイント管理部１４４は、整列されたアンカーポイントにおいて現在のアンカー（Ｎ）の次にアンカー（Ｎ＋１）があるか判定する。次のアンカー（Ｎ＋１）がある場合（Ｓ３１１：Ｎ）、当該フローはステップＳ３１３に移行し、ステップＳ３１３においてアンカー（Ｎ）のカウンタＮを１だけインクリメントする。他方、次のアンカー（Ｎ＋１）が存在しない場合（Ｓ３１１：Ｙ）、当該フローはステップＳ３１５に移行し、当該アンカーポイント設定処理を終了し、ステップＳ２０７に移行する。
【００５３】
上述したように、本実施例では、アンカーポイントのアンカーエリアは、当該アンカーポイントとその直前のアンカーポイントとの間の距離に基づき設定された。しかしながら、本発明はこれに限定されるものでなく、他の何れか適当な方法によりアンカーエリアを設定してもよい。他の実施例では、アンカーポイントのアンカーエリアは、当該アンカーポイントとその直後のアンカーポイントとの間の距離に基づき設定されてもよい。また、アンカーポイントのアンカーエリアは、当該アンカーポイントを中心とした所定の半径の範囲内のエリアとして設定されてもよい。
【００５４】
次に、図４を参照して、本発明の一実施例によるステップＳ２１１の回転検出部１８６における回転検知処理をより詳細に説明する。本実施例では、上述したように、ユーザが曲がり角を曲がる際、ユーザは一瞬で進行方向を変えるというよりかは、例えば、曲がり角の周囲を弧を描くように進行するなど、回転動作の開始時点から終了時点までの期間に連続的に進行方向を変えるよう歩行するというユーザの通常の回転動作を想定したものである。この場合、回転動作中の何れの回転地点をアンカー位置補正に使用するか考慮する必要があるが、本実施例では、回転動作の開始時点から完了時点までの中間時点の回転地点（回転中間点）をアンカー位置補正のための回転地点Ｒとして使用する。
【００５５】
図４は、本発明の一実施例による回転検知処理を示すフローチャートである。図４に示されるように、ステップＳ４０１において、回転検出部１８６は、現在の移動端末１００について自律航法測定部１６０からセンサ情報を取得する。
【００５６】
ステップＳ４０３において、回転検出部１８６は、取得したセンサ情報から現在の移動端末１００の進行方向（Ｎ）を抽出し、抽出した進行方向（Ｎ）と前回取得した進行方向（Ｎ−１）との方位差分（Ｎ）を算出する。初期的には、時間フラグＮは０に設定される。
【００５７】
ステップＳ４０５において、回転検出部１８６は、算出した方位差分（Ｎ）に基づきユーザがほぼ真っ直ぐに歩行しているか判断する。すなわち、回転検出部１８６は、算出した方位差分（Ｎ）が所定の方位変化量ｙ度以下であるか判定する。この方位変化量ｙの値は、ユーザがほぼ真っ直ぐに歩行していると判断できるような小さな値に設定される。
【００５８】
方位差分（Ｎ）がｙ度以下である場合、回転検出部１８６は、ユーザがほぼ真っ直ぐに歩行している、すなわち、回転動作が開始されていない又は回転動作が終了したと判断する。他方、方位差分（Ｎ）がｙ度以下でない場合、回転検出部１８６は、ユーザが回転動作を開始した又は継続していると判断する。
【００５９】
方位差分（Ｎ）がｙ度より大きい場合（Ｓ４０５：Ｎ）、当該フローはステップＳ４０９に移行し、回転検出部１８６は、時間フラグＮを１だけインクリメントする。ここで、時間パラメータは、数ミリ秒〜数秒など何れか適当な時間単位に基づき設定される。時間フラグＮをインクリメントした後、回転検出部１８６は、ステップＳ４０２に戻って次の時点Ｎ＋１におけるセンサ情報を取得し、ユーザがほぼ真っ直ぐに歩行するまで、すなわち、ユーザの回転動作が終了するまで時間フラグＮをインクリメントし続ける。
【００６０】
他方、方位差分（Ｎ）がｙ度以下である場合（Ｓ４０５：Ｙ）、当該フローはステップＳ４０７に移行し、回転検出部１８６は、初期時点０から現在時点Ｎまでの方位差分（０）から方位差分（Ｎ）までの和を算出する。なお、Ｎ＝０の場合には方位差分の和は０に設定される。
【００６１】
ステップＳ４１１において、回転検出部１８６は、算出した方位差分の和が所定の方位変化量ｚ度以上であるか判定する。この方位変化量ｚの値は、ユーザが回転動作したと判断できるような大きさの値に設定される。このｚの値は、一定の値に設定されてもよいし、あるいは可変的に設定されてもよい。例えば、アンカー記憶部１８４が各アンカーポイントの曲がりの角度、すなわち、当該アンカーポイントにおいて方位変更するのに必要とされる方位変更角度を保持している場合、回転検出部１８６は、アンカー記憶部１８４にアクセスして設定されたルート上の次のアンカーポイントの方位変更角度を取得し、この方位変更角度に応じてｚの値を設定するようにしてもよい。これにより、アンカーポイントの特性に応じてｚの値が設定可能となり、より精度の高い回転検出が可能となる。
【００６２】
方位差分の和がｚ度未満である場合（Ｓ４１１：Ｎ）、回転検出部１８６は、ユーザは回転動作していないと判断し、ステップＳ４１３において、時間フラグＮを０にリセットし、当該フローはステップＳ４０１に戻る。なお、方位差分の和がｚ度未満であるケースは、典型的には、回転動作を検出したが（Ｓ４０５：Ｎ）、方位差分の和が小さく回転不足であったケースと、回転動作を検出せず（Ｓ４０５：Ｙ）、結果として方位差分の和が小さいケース（実際には、回転動作が検出されない場合、時間フラグは０のままであるため、方位差分（０）＝０となる）とが考えられる。
【００６３】
他方、方位差分の和がｚ度以上である場合、回転検出部１８６は、ユーザが回転動作したと判断し、ステップＳ４１５において、回転動作の開始時点０から終了時点Ｎまでの中間時点（Ｎ／２）に対応する地点を回転地点Ｒとして設定し、ステップＳ２１３のアンカー位置補正処理に移行する。
【００６４】
上述したように、本実施例では、回転動作の開始時点と終了時点との中間時点の位置を回転地点Ｒとして設定した。しかしながら、本発明はこれに限定されるものでなく、他の何れか適当な位置を回転地点Ｒとして設定してもよい。他の実施例では、回転動作の開始地点と終了地点との中間地点が、回転地点Ｒとして設定されてもよい。この場合、回転動作の開始及び終了を検知し、対応する開始地点と終了地点さえ取得してその中点を算出すればよいため、より簡単な処理により回転地点Ｒを設定することが可能となるであろう。さらなる他の実施例では、回転動作の開始時点から終了時点までに算出された各方位差分のうち最大値となる方位差分に対応する時点の位置を回転地点Ｒとして設定してもよい。これは、曲がり角に対応する地点で最も進行方向が変化すると考えられるためである。
【００６５】
次に、図５を参照して、本発明の一実施例によるステップＳ２１３の現在位置補正部１８８におけるアンカー位置補正処理をより詳細に説明する。図５は、本発明の一実施例によるアンカー位置補正処理を示すフローチャートである。本実施例では、検出された回転地点Ｒに対応するアンカーポイントが決定され、センサ情報に基づき推定された回転地点Ｒの位置情報が、地図アプリケーション部１４０が有する当該アンカーポイントの位置情報によって補正される。
【００６６】
図５に示されるように、ステップＳ５０１において、現在位置補正部１８８は、回転検出部１８６により検出された回転地点Ｒとアンカー記憶部１８４に格納されているすべてのアンカーポイントとの間の距離を測定する。
【００６７】
ステップＳ５０３において、現在位置補正部１８８は、測定した回転地点Ｒとアンカーポイントとの間の各距離のうち最小距離となるアンカーポイント（ｍｉｎ）を決定し、回転地点Ｒが決定したアンカーポイント（ｍｉｎ）のアンカーエリア内にあるか判定する。回転地点Ｒがアンカーポイント（ｍｉｎ）のアンカーエリア内にない場合（Ｓ５０３：Ｎ）、現在位置補正部１８８は、ユーザは当該アンカーポイントにおいて回転動作していないと判断し、当該フローはステップＳ５０９に移行して、当該アンカー位置補正処理を終了する。
【００６８】
他方、回転地点Ｒがアンカーポイント（ｍｉｎ）のアンカーエリア内にある場合（Ｓ５０３：Ｙ）、ステップＳ５０５において、現在位置補正部１８８は、ユーザが当該アンカーポイントにおいて回転動作したと判断し、アンカー位置補正を実行する。すなわち、現在位置補正部１８８は、回転地点Ｒの緯度及び経度などの位置情報を、地図アプリケーション部１４０の地図情報を介し取得した当該アンカーポイントの緯度及び経度などの位置情報に更新する。
【００６９】
ステップＳ５０７において、現在位置補正部１８８は、この回転地点Ｒに対して更新された更新量を、センサ情報に基づき推定された移動端末１００の現在位置に反映させることによって、移動端末１００の現在位置を補正する。現在位置の補正が完了すると、当該フローはステップＳ５０９に移行し、当該アンカー位置補正処理を終了する。
【００７０】
上述したように、本実施例では、アンカー記憶部１８４に格納されているすべてのアンカーポイントについて回転地点Ｒとの距離が算出されたが、本発明は、これに限定されるものでなく、回転地点Ｒに対応するアンカーポイントを決定するための他の何れか適切な方法が適用されてもよい。他の実施例では、回転地点Ｒとアンカー記憶部１８４に格納されているアンカーポイントの一部との間の距離のみ算出するよう構成されてもよい。アンカーポイントの一部としては、直前に通過したアンカーポイントに隣接する１以上のアンカーポイントであってもよい。ユーザが設定されたルートに沿って歩行する確率が高い場合には、出発地から目的地までのアンカーポイントを順序通りに通過する可能性が高いため、ユーザがルート上の次のアンカーポイントに到達したか判断すれば十分であり、これにより計算量を低減することが可能となる。
【００７１】
次に、図６を参照して、本発明の他の実施例によるステップＳ２１１の回転検出部１８６における回転検知処理をより詳細に説明する。図４に示される実施例では、回転動作の開始時点から完了時点までの中間時点の回転地点をアンカー位置補正のための回転地点Ｒとして使用したが、本実施例では、ユーザの進行方向の変更中に測定される各方位変化量を累積し、この累積値が所定の閾値を超えた時点で回転動作が検知されたとみなし、当該時点の位置を回転地点Ｒとして設定する。
【００７２】
図６は、本発明の他の実施例による回転検知処理を示すフローチャートである。図６に示されるように、ステップＳ６０１において、回転検出部１８６は、現在の移動端末１００について自律航法測定部１６０からセンサ情報を取得する。
【００７３】
ステップＳ６０３において、回転検出部１８６は、取得したセンサ情報から現在の移動端末１００の進行方向（Ｎ）を抽出し、抽出した進行方向（Ｎ）と前回取得した進行方向（Ｎ−１）との方位差分（Ｎ）を算出する。初期的には、時間フラグＮは０に設定される。
【００７４】
ステップＳ６０５において、回転検出部１８６は、算出した方位差分（Ｎ）に基づきユーザが進行方向を変更しているか判断する。すなわち、回転検出部１８６は、算出した方位差分（Ｎ）が所定の方位変化量ｙ度以上であるか判定する。この方位変化量ｙの値は、ユーザが進行方向を変更していると判断できるような値に設定される。
【００７５】
方位差分（Ｎ）がｙ度以上である場合、回転検出部１８６は、ユーザが進行方向を変更していると判断する。他方、方位差分（Ｎ）がｙ度以上でない場合、回転検出部１８６は、ユーザが進行方向を変更していないと判断する。
【００７６】
方位差分（Ｎ）がｙ度未満である場合（Ｓ６０５：Ｎ）、当該フローはステップＳ６０９に移行し、回転検出部１８６は、時間フラグＮをリセットする。
【００７７】
他方、方位差分（Ｎ）がｙ度以上である場合（Ｓ６０５：Ｙ）、当該フローはステップＳ６０７に移行し、回転検出部１８６は、初期時点０から現在時点Ｎまでの方位差分（０）から方位差分（Ｎ）までの和を算出する。なお、Ｎ＝０の場合には方位差分の和は０に設定される。
【００７８】
ステップＳ６１１において、回転検出部１８６は、時間フラグＮを１だけインクリメントする。
【００７９】
ステップＳ６１３において、回転検出部１８６は、算出した方位差分の和が所定の方位変化量ｚ度以上であるか判定する。この方位変化量ｚの値は、ユーザが連続的な進行方向の変更によって回転動作したと判断できるような累積値に設定される。このｚの値は、一定の値に設定されてもよいし、あるいは可変的に設定されてもよい。例えば、アンカー記憶部１８４が各アンカーポイントの曲がりの角度、すなわち、当該アンカーポイントにおいて方位変更するのに必要とされる方位変更角度を保持している場合、回転検出部１８６は、アンカー記憶部１８４にアクセスして設定されたルート上の次のアンカーポイントの方位変更角度を取得し、この方位変更角度に応じてｚの値を設定するようにしてもよい。これにより、アンカーポイントの特性に応じてｚの値が設定可能となり、より精度の高い回転検出が可能となる。
【００８０】
方位差分の和がｚ度未満である場合（Ｓ６１３：Ｎ）、回転検出部１８６は、ユーザは進行方向を変更しているが、まだ回転動作はしていないと判断し、当該フローはステップＳ６０１に戻る。
【００８１】
他方、方位差分の和がｚ度以上である場合、回転検出部１８６は、ユーザが回転動作したと判断し、当該フローはステップＳ６１５及びＳ６１７に移行し、回転動作が検知された時点Ｎに対応する地点を回転地点Ｒとして設定し、ステップＳ２１３のアンカー位置補正処理に移行する。
【００８２】
本実施例によると、ユーザが連続的に進行方向を変更し、各時点における方位変化量の累積値が所定の閾値以上になると、ユーザが回転動作していると判断し、この判断時点に対応する地点を回転地点Ｒとする。このようにして、図４の実施例より簡易に回転地点を決定することが可能となる。
【００８３】
以上、本発明の実施例について詳述したが、本発明は上述した特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００８４】
１００  移動端末
１２０  ユーザインタフェース部
１４０  地図アプリケーション部
１６０  自律航法測定部
１８０  自律航法演算部
１８２  位置算出部
１８４  アンカー記憶部
１８６  回転検出部
１８８  現在位置補正部
【図１】
2012117974.tif 000003
【図２】
2012117974.tif 000004
【図３】
2012117974.tif 000005
【図４】
2012117974.tif 000006
【図５】
2012117974.tif 000007
【図６】
2012117974.tif 000008