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