(57)【特許請求の範囲】
【請求項１】
端末本体と、
前記端末本体の絶対位置を検出する絶対位置検出部と、
前記絶対位置検出部による検出タイミングを決定し、前記絶対位置検出部を起動する検出制御部と、
前記端末本体が所定方向に移動し、その移動方向を変更するまでの間に移動した直進距離を示す線分を取得するリンク情報生成部と、
前記絶対位置検出部の検出結果と、前記リンク情報生成部の取得結果と、に基づいて、前記端末本体の移動形状を算出する移動形状算出部と、
を有し、
前記検出制御部は、
所定時間毎のタイミングを仮の検出タイミングとし、
直前の検出タイミング以降、前記仮の検出タイミングが到来するまでの間に、前記リンク情報生成部が前記線分を取得していない場合には、前記リンク情報生成部が、前記仮の検出タイミングの到来後、最初に前記線分を取得するタイミングを検出タイミングと決定して、前記絶対位置検出部を起動することを特徴とする可搬型携帯端末。
【請求項２】
前記検出制御部は、
前記直前の検出タイミング以降、前記仮の検出タイミングが到来するまでの間に、前記リンク情報生成部が前記線分を取得した場合に、前記線分が示す直進距離を前記端末本体が移動している第１の時間、及び前記リンク情報生成部が前記線分の１つ前に取得した他の線分が示す直線距離を前記端末本体が移動している第２の時間、において前記絶対位置検出部が前記端末本体の絶対位置を検出したか否かを判断し、当該判断結果に基づいて前記検出タイミングを決定することを特徴とする請求項１に記載の可搬型携帯端末。
【請求項３】
前記検出制御部は、
前記第２の時間において、前記絶対位置検出部が前記端末本体の絶対位置を検出していなかった場合には、前記絶対位置検出部を起動して、前記絶対位置検出部に前記端末本体の絶対位置を検出させることを特徴とする請求項２に記載の可搬型携帯端末。
【請求項４】
前記検出制御部は、
前記第１の時間においても前記絶対位置検出部が前記端末本体の絶対位置を検出していなかった場合には、前記リンク情報生成部が前記線分を取得したタイミングから所定間隔空けたタイミングを、前記検出タイミングとすることを特徴とする請求項３に記載の可搬型携帯端末。
【請求項５】
前記検出制御部は、
前記第２の時間において、前記絶対位置検出部が前記端末本体の絶対位置を検出していたと判断した場合には、前記絶対位置検出部を起動しないことを特徴とする請求項２〜４のいずれか一項に記載の可搬型携帯端末。
【請求項６】
前記検出制御部は、前記絶対位置検出部の起動直後及び起動終了直後の少なくとも一方のタイミングを、前記検出タイミングとして決定することを特徴する請求項１〜５のいずれか一項に記載の可搬型携帯端末。
【請求項７】
前記絶対位置検出部の起動直後のタイミングを前記検出タイミングとして決定する場合、該起動直後のタイミングから所定間隔空けたタイミングも、前記検出タイミングとして決定することを特徴とする請求項６に記載の可搬型携帯端末。
【請求項８】
前記移動形状算出部は、
前記リンク情報生成部が取得した複数の線分と、前記各線分に沿って前記端末本体が移動している間に前記絶対位置検出部で検出された絶対位置と、の距離の総和が最小となるように、前記各線分の基準方向に対する角度を決定して、前記移動形状を算出することを特徴とする請求項１〜７のいずれか一項に記載の可搬型携帯端末。
【請求項９】
前記移動形状算出部は、
前記絶対位置検出部で検出された複数の絶対位置と、前記絶対位置を取得したときの前記線分上の点と、の距離の二乗和が最小となるように、前記各線分の基準方向に対する角度を決定して、前記移動形状を算出することを特徴とする請求項１〜７のいずれか一項に記載の可搬型携帯端末。
【請求項１０】
前記移動形状算出部は、
前記絶対位置検出部で検出された複数の絶対位置と、前記絶対位置を取得したときの前記線分上の点と、の距離の二乗に、前記絶対位置を取得したときの前記絶対位置検出部に関する係数を乗じた値、の総和が最小となるように、前記各線分の基準方向に対する角度を決定して、前記移動形状を算出することを特徴とする請求項９に記載の可搬型携帯端末。
【請求項１１】
前記移動形状算出部は、
前記リンク情報生成部においてｉ番目（ｉは整数）に取得された線分と、当該線分から連続して取得された所定数の線分とを用いて、ｉ番目に取得された線分の基準方向に対する角度を決定することを特徴とする請求項８〜１０のいずれか一項に記載の可搬型携帯端末。
【請求項１２】
前記所定数は、該所定数を大きくしても前記線分の基準方向に対する角度を決定するときに最小となるようにする値が、規定値以上変化しなくなる最小値であることを特徴とする請求項１１に記載の可搬型携帯端末。
【請求項１３】
コンピュータを、
端末本体の絶対位置を検出する絶対位置検出部、
前記絶対位置検出部による検出タイミングを決定し、前記絶対位置検出部を起動する検出制御部、
前記端末本体が所定方向に移動し、その移動方向を変更するまでの間に移動した直進距離を示す線分を取得するリンク情報生成部、及び
前記絶対位置検出部の検出結果と、前記リンク情報生成部の取得結果と、に基づいて、前記端末本体の移動形状を算出する移動形状算出部、として機能させ、
前記検出制御部は、
所定時間毎のタイミングを仮の検出タイミングとし、
直前の検出タイミング以降、前記仮の検出タイミングが到来するまでの間に、前記リンク情報生成部が前記線分を取得していない場合には、前記リンク情報生成部が、前記仮の検出タイミングの到来後、最初に前記線分を取得するタイミングを検出タイミングと決定して、前記絶対位置検出部を起動することを特徴とする移動形状算出プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、可搬型携帯端末及び移動形状算出プログラムに関する。
【背景技術】
【０００２】
近年、ＧＰＳ（Global Positioning System）と自律航法を組み合わせたナビゲーションシステムが普及してきている。最近では、当該システムが搭載された携帯電話などの可搬型携帯端末も出現してきている。
【０００３】
特許文献１に記載の技術は、直進時におけるＧＰＳ出力位置の軌跡の連続性や直進性を維持しつつ、右折時や左折時等におけるＧＰＳ出力位置の追従性の問題を解消することを目的としている。この技術では、ＧＰＳ測位を間欠的に行うとともに、ジャイロセンサで進行方向曲がりを検出する。そして、直進時は多値回帰推定処理によりＧＰＳ出力位置を決定し、右折時や左折時には２値平滑化処理によりＧＰＳ出力位置を決定する。
【０００４】
また、特許文献２に記載の技術は、歩行中のユーザが携帯する携帯端末装置において省電力化を図りつつ、必要な位置における測位タイミングを状況に応じて自動的に決定することを目的とした技術である。この技術では、ナビゲーション開始当初にＧＰＳによる測位が行われると、測位された現在位置から目的地までの距離又はルートに基づいて、次の測位タイミングまでの歩数を算出する。そして、算出された歩数を歩数計がカウントすると、次のＧＰＳ測位が行われ、求められた現在位置を基準として、さらに次の測位タイミングまでの歩数が算出される。この場合、次の測位タイミングまでの歩数は、測位された現在位置から目的地までのルートにおける次の進路変更地点までの歩数、又は測位された現在位置から目的地までの距離が短くなるにつれて次の測位タイミングまでの歩数が少なくなるように設定された歩数とされている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１１５５１４号公報
【特許文献２】特開２００９―９２５０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
この種のナビゲーションシステムにおいては、長時間にわたって自律測位を行うために、各種計測を行うセンサの消費電力を低減するような検討がなされている。
【０００７】
一般的に、ＧＰＳは、地磁気センサなどの端末内センサに比べて消費電力が大きい。これに対し、端末内センサを用いると、基本的には場所に関係なく位置計測を行うことができるものの、センサの計測誤差が累積的に蓄積される可能性が高いことから、端末内センサの計測値のみを用いた自律測位では誤差が大きくなるおそれがある。このような観点からすると、消費電力を低減するためには、端末内センサを用いた計測結果を、間欠的に取得したＧＰＳ測位結果で補正することとすることで、ＧＰＳ測位回数を減らすことが効果的である。また、ＧＰＳ測位回数を減らしても、自律測位の精度が適切な精度に維持されることが好ましい。
【０００８】
しかしながら、上記特許文献１では、ＧＰＳ計測回数を減らすことについての考慮がなされていない。また、上記特許文献２では、ルートが予め定められていなければ、ＧＰＳ計測回数を減らすことはできない。
【０００９】
そこで本件は上記の課題に鑑みてなされたものであり、移動形状の算出精度を維持しつつ、消費電力を低減することが可能な可搬型携帯端末及び移動形状算出プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本明細書に記載の可搬型携帯端末は、端末本体と、前記端末本体の絶対位置を検出する絶対位置検出部と、前記絶対位置検出部による検出タイミングを決定し、前記絶対位置検出部を起動する検出制御部と、前記端末本体が所定方向に移動し、その移動方向を変更するまでの間に移動した直進距離を示す線分を取得するリンク情報生成部と、前記絶対位置検出部の検出結果と、前記リンク情報生成部の取得結果と、に基づいて、前記端末本体の移動形状を算出する移動形状算出部と、を備え、前記検出制御部は、所定時間毎のタイミングを仮の検出タイミングとし、直前の検出タイミング以降、前記仮の検出タイミングが到来するまでの間に、前記リンク情報生成部が新たな線分を取得していない場合には、前記リンク情報生成部が、前記仮の検出タイミングの到来後、最初に前記線分を取得するタイミングを検出タイミングと決定して、前記絶対位置検出部を起動する可搬型携帯端末である。
【００１１】
本明細書に記載の移動形状算出プログラムは、コンピュータを、端末本体の絶対位置を検出する絶対位置検出部、前記絶対位置検出部による検出タイミングを決定し、前記絶対位置検出部を起動する検出制御部、前記端末本体が所定方向に移動し、その移動方向を変更するまでの間に移動した直進距離を示す線分を取得するリンク情報生成部、及び前記絶対位置検出部の検出結果と、前記リンク情報生成部の取得結果と、に基づいて、前記端末本体の移動形状を算出する移動形状算出部、として機能させ、前記検出制御部は、所定時間毎のタイミングを仮の検出タイミングとし、直前の検出タイミング以降、前記仮の検出タイミングが到来するまでの間に、前記リンク情報生成部が新たな線分を取得していない場合には、前記リンク情報生成部が、前記仮の検出タイミングの到来後、最初に前記線分を取得するタイミングを検出タイミングと決定して、前記絶対位置検出部を起動する移動形状算出プログラムである。
【発明の効果】
【００１２】
本明細書に記載の可搬型携帯端末及び移動形状算出プログラムは、移動形状の算出精度を維持しつつ、消費電力を低減することができるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】一実施形態に係る可搬型携帯端末の構成を概略的に示す図である。
【図２】可搬型携帯端末のハードウェア構成図である。
【図３】図１の制御部の機能ブロック図である。
【図４】可搬型携帯端末で実行される処理の全体的な流れを示すフローチャートである。
【図５】図５（ａ）は、ステップＳ１２のリンク取得処理のサブルーチンを示す図であり、図５（ｂ）は、リンクデータベースを示す図である。
【図６】図６（ａ）、図６（ｂ）は、ステップＳ１４のＧＰＳ取得処理のサブルーチンを示す図である。
【図７】図７（ａ）は、ステップＳ４０〜Ｓ４８の処理を経たときの、アンカーポイント取得状況を示す図であり、図７（ｂ）は、ＧＰＳアプリの停止コマンドが入力された直後のアンカーポイント取得状況を示す図である。
【図８】図６（ａ）のステップＳ５０のサブルーチンを示すフローチャートである。
【図９】ＧＰＳデータベースを示す図である。
【図１０】図１０（ａ）〜図１０（ｃ）は、アンカーポイントの取得方法を示す図（その１）である。
【図１１】図１１（ａ），図１１（ｂ）は、アンカーポイントの取得方法を示す図（その２）である。
【図１２】図１２（ａ），図１２（ｂ）は、アンカーポイントの取得方法を示す図（その３）である。
【図１３】ステップＳ２０のサブルーチンを示すフローチャートである。
【図１４】最適化処理を示す図（その１）である。
【図１５】ステップＳ１５２のサブルーチンである。
【図１６】初期値の設定方法を示す図である。
【図１７】図１７（ａ），図１７（ｂ）は、最適化処理を示す図（その２）である。
【図１８】図１８（ａ）、図１８（ｂ）は、マップマッチング処理を説明するための図である。
【図１９】図１９（ａ）、図１９（ｂ）は、値Ｎの決定方法を説明するための図（その１）である。
【図２０】図２０（ａ）、図２０（ｂ）は、値Ｎの決定方法を説明するための図（その２）である。
【図２１】図２１（ａ）、図２１（ｂ）には、値Ｎの決定方法を説明するための図（その３）である。
【図２２】図２２（ａ）〜図２２（ｆ）は、変形例に係る係数ｋの設定方法を説明するための図である。
【図２３】変形例に係る最適化処理を示す図である。
【発明を実施するための形態】
【００１４】
以下、可搬型携帯端末の一実施形態について、図１〜図２１に基づいて詳細に説明する。図１には、可搬型携帯端末１００がブロック図にて示されている。本実施形態では、可搬型携帯端末１００は、例えば、携帯電話、ＰＨＳ（Personal Handy-phone System）、スマートフォン、ＰＤＡ（Personal Digital Assistant）などの携帯型の端末である。
【００１５】
可搬型携帯端末１００は、図１に示すように、絶対位置検出部３０と、地磁気情報検出部４０と、加速度情報検出部５０と、表示画面６０と、入力インタフェース６２と、制御部２０と、を備える。これら各部は、端末本体１０内に格納されている。なお、可搬型携帯端末１００は、通話機能や、メール、インターネットなどの通信機能、撮影機能などの各種機能を備える場合もあるが、図１では、これらの機能を実現するための構成についての図示は省略している。
【００１６】
絶対位置検出部３０は、本実施形態では、ＧＰＳ受信機であり、上空に存在する複数個のＧＰＳ衛星からの信号を受けて、絶対位置（緯度・経度で示される位置）に関する情報を得るものである。
【００１７】
地磁気情報検出部４０は、方位センサとも呼ばれ、３軸座標系上での地磁気の検出が可能な地磁気センサ、すなわち磁気方位センサである。なお、地磁気センサに代えて、ジャイロセンサ（角速度センサ）を用いることとしても良い。加速度情報検出部５０は、例えば、３軸方向の加速度を検出するセンサである。
【００１８】
表示画面６０は、制御部２０の指示の下、各種情報を表示するものであり、例えば、可搬型携帯端末１００を保持するユーザが移動したルートの情報を、表示する。入力インタフェース６２は、キーボードやタッチパネルなどを含む。
【００１９】
図２には、制御部２０のハードウェア構成が示されている。この図２に示すように、制御部２０は、ＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９１、ＲＡＭ（Random Access Memory）９２、記憶部（ここではＨＤＤ（Hard Disk Drive）とする）９３、入出力部９４等を備えており、制御部２０の構成各部は、バス９５を介して接続されている。制御部２０では、ＣＰＵ９０がＲＡＭ９２又はＨＤＤ９３に格納された移動形状算出プログラムを実行することで、図３に示す各処理部の機能を実現する。また、ＨＤＤ９４は、制御部２０内で得られたデータなどを記憶し、図３の情報記憶部２３として機能する。入出力部９４は、表示画面６０や入力インタフェース６２との通信を行う入出力ポートである。
【００２０】
図３は、図１の制御部２０の機能ブロック図である。この図３に示すように、制御部２０は、検出制御部２１、リンク情報生成部２２、情報記憶部２３、移動形状算出部２４、表示制御部２５、及び計時部２６等を有する。
【００２１】
検出制御部２１は、リンク情報生成部２２からの情報、及び計時部２６からの情報に基づいて、絶対位置検出部３０の起動タイミング、すなわち検出タイミングを決定し、当該検出タイミングで、絶対位置検出部３０に絶対位置計測を実行させる。
【００２２】
リンク情報生成部２２は、地磁気情報検出部４０と加速度情報検出部５０との検出結果に基づいて、端末本体１０が直線移動している間の距離の情報を含む線分の情報（「リンク情報」と呼ぶ）を生成する。なお、リンク情報生成部２２は、可搬型携帯端末１００を保持するユーザが歩き始めたときからリンク情報の生成を開始し、入力インタフェース６２を介してユーザから入力される歩行終了のコマンドを受け付けたときに、リンク情報の生成を終了する。また、リンク情報生成部２２は、入力インタフェース６２から入力される、ＧＰＳアプリケーションを終了するコマンドを受け付けたときに、検出制御部２１に対して絶対位置検出部３０による検出を中止すべき旨の指示を出す。
【００２３】
情報記憶部２３は、リンク情報生成部２２で生成されたリンク情報や絶対位置検出部３０で検出されたＧＰＳ計測結果を、データベースにて記憶する。移動形状算出部２４は、情報記憶部２３からリンク情報やＧＰＳ計測結果を読み出して、端末本体１０の移動形状を算出し、取得する。なお、情報記憶部２３にて記憶されているデータベースの詳細な内容については、後述する。
【００２４】
表示制御部２５は、移動形状算出部２４で取得された移動形状を取得して、表示画面６０上に表示する。計時部２６は、例えば、リアルタイムクロックを含み、所定時間間隔（例えば、３分間隔）で、後述する仮の検出タイミングが到来したことを、検出制御部２１に通知する。
【００２５】
次に、上記のように構成される可搬型携帯端末１００における処理について、図４〜図２１に基づいて、詳細に説明する。図４は、可搬型携帯端末１００で実行される処理の全体的な流れを示すフローチャートである。
【００２６】
図４の処理では、まず、ステップＳ１０において、リンク情報生成部２２が、加速度情報検出部５０が起動したか否かを判断する。このステップＳ１０の判断が肯定された場合には、ステップＳ１２及びステップＳ１４に移行する。ステップＳ１２、Ｓ１４の各ステップは同時並行的に処理されるステップであり、ステップＳ１２では、リンク取得処理が行われ、ステップＳ１４では、ＧＰＳ取得処理が行われる。以下、リンク取得処理（ステップＳ１２）及びＧＰＳ取得処理（ステップＳ１４）について、具体的に説明する。
【００２７】
（Ａ）リンク取得処理（ステップＳ１２）
ステップＳ１２のリンク取得処理のサブルーチンは、図５（ａ）のフローチャートに沿って行われる。具体的には、まず、ステップＳ３０において、リンク情報生成部２２が、曲がりを検出したか否かを判断する。ここで、曲がりとは、可搬型携帯端末１００を保持するユーザが進行方向を変更することを意味する。リンク情報生成部２２は、例えば、地磁気情報検出部４０で検出される地磁気の変化量が所定値以上になったときに、曲がりがあったことを検出する。
【００２８】
ステップＳ３０の判断が肯定されると、ステップＳ３２に移行し、リンク情報生成部２２は、直線移動した距離（リンク長）を次式（１）に基づいて算出する。
リンク長＝（曲がりを検出したときの通算歩数
−前回曲がりを検出したときの通算歩数）×歩幅      …（１）
【００２９】
ここで、歩数は、加速度情報検出部５０により検出される加速度の変化から取得される値であり、歩幅は、ユーザにより設定される値である。なお、ユーザは歩幅に代えて、身長を入力することとしてもよく、この場合には、リンク情報生成部２２は、入力された身長から、おおよその歩幅を算出する。
【００３０】
ステップＳ１２の処理が終了すると、図４のステップＳ１６に移行して、リンク情報生成部２２が、移動形状算出用のデータとして、上式（１）に基づいて算出されたリンク長を情報記憶部２３に格納されているリンクデータベース（図５（ｂ）参照）に登録する。ここで、リンクデータベースには、図５（ｂ）に示すように、リンクの通し番号である「リンクＮｏ．」、曲がりを検出したときのユーザの通算の歩数である「曲がり時歩数」、所定方向（例えば、東）を基準とした角度（反時計回りの角度）である「リンク角度」、リンクの始点の座標である「リンク始点（ｘ）」、「リンク始点（ｙ）」、リンクの終点の座標である「リンク終点（ｘ）」、「リンク終点（ｙ）」の項目を含んでいる。なお、ステップＳ１６の段階では、「リンク角度」、「リンク始点（ｘ）」、「リンク始点（ｙ）」、「リンク終点（ｘ）」、「リンク終点（ｙ）」の項目は空白のままとなる。
【００３１】
そして、ステップＳ１８では、リンク情報生成部２２が歩行終了か否かを判断し、ここでの判断が否定された場合には、ステップＳ１２に戻る。なお、ステップＳ１８において歩行終了と判断される場合とは、例えば、加速度情報検出部５０が所定時間ユーザの歩行を検出しなかったような場合や、ユーザが入力インタフェース６２から、歩行終了のコマンドを入力した場合などである。
【００３２】
なお、ステップＳ１２の処理により得られるリンク長を含む線分の情報は、リンク又はリンク情報と呼ばれる。リンク情報は、始点と終点との間の長さの情報を含んでいるが、始点から終点まで延びる方向（東に対する角度）についての情報は含んでいない。各リンクには、取得順にリンクＮｏ．が付与される。
【００３３】
なお、以下においては、端末が現に移動しているリンクを「現在リンク」と呼ぶ。ただし、現在リンクを直進している間は、現在リンクの情報は、リンク情報生成部２２では取得されないもので、次に曲がりが検出されたときにはじめて生成されるものである。また、現在リンクの前に生成されたリンク、すなわち、直近の曲がり検出が行われたときに生成されたリンクを、「１つ前のリンク」と呼ぶ（図１１（ａ）等参照）。また、現在リンクの前の前に生成されたリンクを、「２つ前のリンク」と呼ぶ（図１１（ａ）等参照）。なお、１つ前のリンクを携帯端末が移動していた時間が第１の時間であり、２つ前のリンクを携帯端末が移動していた時間が第２の時間である。
【００３４】
（Ｂ）ＧＰＳ取得処理（ステップＳ１４）
次に、上記（Ａ）リンク取得処理と同時並行的に行われる、ステップＳ１４のＧＰＳ取得処理のサブルーチンについて、図６（ａ），図６（ｂ）のフローチャートに沿って説明する。これら図６（ａ）の処理と、図６（ｂ）の処理も、同時並行的に行われる。なお、図６（ａ）の処理については、以下において、「ステップＳ１４（１）」と記述し、図６（ｂ）の処理については、以下において、「ステップＳ１４（２）」と記述するものとする。
【００３５】
図６（ａ）のステップＳ１４（１）では、ステップＳ４０において、検出制御部２１が、ユーザにより、ＧＰＳ計測用のアプリケーション（以下、「ＧＰＳアプリ」と呼ぶ）が起動されたか否かを判断する。ユーザは、ＧＰＳアプリを起動するためのコマンドを、入力インタフェース６２から入力する。ここでの判断が肯定されると、検出制御部２１は、ステップＳ４２に移行する。
【００３６】
ステップＳ４２では、検出制御部２１の指示の下、計時部２６が、タイマーを起動する。次いで、ステップＳ４４では、検出制御部２１が、絶対位置検出部３０を介して、ＧＰＳ計測を行う。ＧＰＳ計測では、可搬型携帯端末１００（端末本体１０）の絶対位置（緯度、経度）が検出されることになる。なお、以下においては、ステップＳ１２のリンク取得処理と並行して行うＧＰＳ計測（取得）を、「アンカーポイント取得」とも呼ぶものとする。また、アンカーポイントの位置情報についても、単に「アンカーポイント」と呼ぶものとする。
【００３７】
ここまでのステップＳ４０〜ステップＳ４４の処理では、ＧＰＳアプリが起動された直後に、アンカーポイントが取得（アンカーポイントの位置情報が取得）されていることになる。
【００３８】
次いで、ステップＳ４６では、検出制御部２１が、ユーザが３０ｍ歩行したか否かを判断する。ここで、検出制御部２１は、３０ｍ歩行したか否かの判断を、加速度情報検出部５０により検出される歩数と、歩幅との積から算出した値に基づいて行うものとする。ただし、これに限らず、検出制御部２１は、一般的にユーザが３０ｍ歩行するのに要する時間（例えば、２３秒）が経過したか否かに基づいて、３０ｍ歩行したか否かの判断を行うこととしても良い。なお、３０ｍ歩行するのに要する時間は、予め設定されていても良いが、検出制御部２１が過去に取得された歩数に関するデータなどから自動的に設定することとしても良い。ステップＳ４６の判断が肯定されると、ステップＳ４８に移行する。
【００３９】
ステップＳ４８では、検出制御部２１が、再度アンカーポイントを取得する。これにより、ステップＳ４０〜Ｓ４８の処理を経ることで、図７（ａ）に示すように、ＧＰＳアプリを起動した位置（始点）から歩行を開始した後において、２つのアンカーポイントが取得されることになる。なお、図７（ａ）では、アンカーポイントを「Ｇ（ｎ）」で示し、アンカーポイントを取得した際のリンク上の位置を「Ｐ（ｎ）」で示している。また、図７（ａ）において、始点から３０ｍ歩行した位置と、アンカーポイントを取得したときのリンク上の位置とが異なっているのは、絶対位置検出部３０では、その起動からアンカーポイントの検出までの間に、若干の遅れが生じるからである。このように、検出制御部２１が、始点から歩行を開始した後において２つのアンカーポイントを取得することとしているのは、歩き始めの段階で、どちらの方向に向かって歩いているのかを取得しておくことで、後に行われる移動形状の算出精度を向上することができるからである。
【００４０】
その後、検出制御部２１は、ステップＳ５０の通常処理に移行する。なお、ステップＳ５０の処理については後述する。
【００４１】
上記図６（ａ）の処理と同時並行的に行われる図６（ｂ）のステップＳ１４（２）では、検出制御部２１は、ステップＳ６０において、ＧＰＳアプリがユーザにより停止されるまで待機する。ユーザが、入力インタフェース６２を介して、ＧＰＳアプリの停止コマンドを入力すると、ステップＳ６０の判断が肯定され、ステップＳ６２に移行する。ステップＳ６２では、検出制御部２１が、アンカーポイントを取得し、その後、図４のステップＳ１６に移行する。なお、ステップＳ６２では、図７（ｂ）に示すように、ＧＰＳアプリの停止コマンドが入力された直後に、アンカーポイントＧ（ｆｉｎａｌ）が取得されることになる。
【００４２】
次に、図６（ａ）のステップＳ５０における「通常処理」のサブルーチンについて、図８に基づいて、詳細に説明する。なお、図８の処理が開始されると同時に、計時部２６による計時を開始、すなわち、タイマーをスタートする。
【００４３】
図８では、まず、ステップＳ７０において、検出制御部２１が、計時部２６のタイマーを参照して、所定時間経過したか否かを判断する。ここでの判断が肯定された場合にはステップＳ７２に移行するが、否定された場合にはステップＳ８０に移行する。なお、所定時間とは、ＧＰＳ計測を間欠的に行う間隔を意味し、予め定められた時間（例えば３分）であるものとする。なお、所定時間が経過するタイミングは、絶対位置を検出するための、仮の検出タイミングであるともいえる。仮の検出タイミングとは、ステップＳ７４において判断が否定されることで、真の検出タイミングになるタイミングのことをいう。
【００４４】
ステップＳ７０の判断が肯定されて、ステップＳ７２に移行した場合、検出制御部２１は、現在リンクにおいてＧＰＳ計測（アンカーポイント取得）が既に行われているか否かの検索を行う。このステップＳ７２では、検出制御部２１は、情報記憶部２３内に格納されている図９のようなＧＰＳデータベースを検索する。ＧＰＳデータベースは、図９に示すように、アンカーポイントの計測が行われたときに取得中であったリンクの通し番号である「リンクＮｏ．」、ＧＰＳ測位結果を示す「緯度」、「経度」、ＧＰＳ取得時までに歩き始めからユーザが歩いた歩数を示す「ＧＰＳ取得時歩数」、及び「フラグ」の項目を有している。図９では、例えば、リンクの通し番号が「１０」や「９」のときには、ＧＰＳ計測が行われたことを示しているが、リンクの通し番号が「８」や「７」のときには、ＧＰＳデータベースのリンクＮｏ．の項目に、「８」や「７」が存在していないので、ＧＰＳ計測が行われていないことを示している。
【００４５】
次のステップＳ７４では、検出制御部２１が、ステップＳ７２の検索の結果に基づいて、現在リンクで既にＧＰＳ計測が行われたか否かを判断する。ここでの判断が否定された場合には、ステップＳ７８に移行し、検出制御部２１は、絶対位置検出部３０を用いて、アンカーポイントを取得する。その後は、検出制御部２１は、ステップＳ９６において、計時部２６のタイマーをリセットして、ステップＳ７０に戻る。
【００４６】
すなわち、図１０（ａ）に示すように、現在リンクにおいて、未だアンカーポイントを取得していない場合には、検出制御部２１は、所定時間経過後に絶対位置検出部３０を起動して、位置Ｐ（ｉ）にてアンカーポイントを取得するようにする。換言すると、１つのリンクにおいては、２回以上アンカーポイントを取得しないようにする。このようにするのは、１つのリンクにおいて２回以上アンカーポイントを取得しても、移動形状の算出精度にさほど寄与することがない一方で、絶対位置検出部３０の検出回数を減らすことで、電力消費量を低減することができるからである。
【００４７】
一方、ステップＳ７４の判断が肯定された場合、すなわち、図１０（ｂ）に示すように、現在リンクでＧＰＳが既に取得されていた場合には、ステップＳ７６に移行する。このステップＳ７６では、検出制御部２１が、フラグを立てる、つまり図９のＧＰＳデータベースの「フラグ」の項目に１を設定する。その後、検出制御部２１は、ステップＳ８０に移行する。
【００４８】
ステップＳ８０では、検出制御部２１が、曲がり検出したか否かを判断する。ここでの判断が否定された場合には、ステップＳ７０に戻るが、判断が肯定された場合には、ステップＳ８２に移行する。
【００４９】
ステップＳ８２では、検出制御部２１が、過去２リンクを検索する。この検索の際には、ステップＳ７２と同様、検出制御部２１は、図９（ａ）のデータベースを検索する。すなわち、検出制御部２１は、例えば、現在取得中のリンクの通し番号が「１０」であるならば、通し番号「９」と「８」のリンクを検索する。
【００５０】
次いで、ステップＳ８４では、検出制御部２１が、過去１リンク（１つ前のリンク）にフラグが立っているか否かを判断する。ここでの判断が肯定された場合、すなわち、１つ前のリンクにフラグ「１」が設定されている場合には、ステップＳ９４に移行する。ステップＳ９４に移行した場合、前述したのと同様、検出制御部２１は、絶対位置検出部３０を用いて、アンカーポイントを取得する。そして、検出制御部２１は、ステップＳ９６において、計時部２６のタイマーをリセットして、ステップＳ７０に戻る。すなわち、図１０（ｃ）に示すように、フラグが立った後に、曲がり検出がされた場合には、当該曲がり検出の直後に、アンカーポイントが取得されることになる。このように、曲がりが検出された直後にアンカーポイントを取得するのは、前述したように、同一リンク上で２回以上絶対位置が取得されるのを回避した一方で、あまりにも長い間、絶対位置の取得が行われないとすると、移動形状の算出精度が低下するおそれがあるからである。
【００５１】
これに対し、ステップＳ８４の判断が否定された場合には、ステップＳ８６において、検出制御部２１が、２リンク前に、すなわち２つ前のリンクにおいてＧＰＳが取得されているか否かを判断する。ここでの判断が肯定された場合には、ステップＳ７０に戻る。すなわち、２リンク前にＧＰＳが取得されていた場合には、図１１（ａ）、図１１（ｂ）に示すように、１つ前のリンクにおいてＧＰＳが取得されていたか否かにかかわらず、今回の曲がり検出後には、アンカーポイントを取得しないこととする。このようにするのは、図１１（ｂ）のように、連続するリンクにおいてアンカーポイントを取得しなくても、リンクの角度を決定するのに支障はなく、また、２本のリンクにおいてアンカーポイントを取得しなくても、次のリンクでアンカーポイントが取得できれば、リンクの角度を決定するのに支障はないからである。また、アンカーポイントを取得しないこととすることで、絶対位置検出部３０の検出回数を減らすことができ、これにより、電力消費量を低減することができるからである。
【００５２】
一方、ステップＳ８６の判断が否定された場合には、ステップＳ８８に移行し、検出制御部２１は、１リンク前、すなわち、１つ前のリンクにおいてＧＰＳ、すなわちアンカーポイントが取得されていたか否かを判断する。
【００５３】
ここでの判断が肯定された場合には、ステップＳ９４に移行して、検出制御部２１は、絶対位置検出部３０を用いて、アンカーポイントを取得する。そして、検出制御部２１は、ステップＳ９６において、計時部２６のタイマーをリセットして、ステップＳ７０に戻る。すなわち、図１２（ａ）に示すように、２リンク前にアンカーポイントが取得されておらず、１リンク前にアンカーポイントが取得されている場合には、アンカーポイントを取得する。この図１２（ａ）に示すようにアンカーポイントを取得するのは、図１２（ａ）のＰ（ｉ）においてアンカーポイントを取得しておかないと、移動形状の算出に支障が出る（移動形状の一部が反転（左右対称）してしまう）おそれがあるからである。
【００５４】
一方、ステップＳ８８の判断が否定された場合には、ステップＳ９０に移行する。このステップＳ９０では、検出制御部２１が、絶対位置検出部３０を用いて、アンカーポイントを取得し、その後、ステップＳ９２において、ユーザが３０ｍ歩行したと判断されるまで待機する。そして、ステップＳ９２において、ユーザが３０ｍ歩行したことを、検出制御部２１が判断した段階で、ステップＳ９４に移行する。このステップＳ９４では、検出制御部２１が、絶対位置検出部３０を用いて、アンカーポイントを再度取得する。すなわち、この場合、図１２（ｂ）に示すように、曲がり検出後、３０ｍの間隔を空けて、２つのアンカーポイントが取得されることになる。このようにアンカーポイントを続けて２回計測するのは、当該２回の計測により、現在リンクの方向がほぼ決まるので、これにより、その前の２つのリンクの方向を、反転なく、大まかに決めることができるからである。その後、検出制御部２１は、ステップＳ９６において、計時部２６のタイマーをリセットして、ステップＳ７０に戻る。
【００５５】
以上の処理が繰り返し行われることで、アンカーポイントが間欠的に取得されることになる。なお、図８の繰り返し処理は、図６（ｂ）のステップＳ６０における判断が肯定された段階で、強制的に終了する。
【００５６】
図４に戻り、ステップＳ１４の後に行われるステップＳ１６では、検出制御部２１が、移動形状算出用のデータとして、アンカーポイントの情報（ＧＰＳ計測結果）を、情報記憶部２３のＧＰＳデータベースに保存する。そして、ステップＳ１８に移行すると、検出制御部２１は、歩行終了か否かを判断する。ここでの判断が肯定されると、検出制御部２１は、ステップＳ２０に移行する。以下、ステップＳ２０の具体的な処理内容について、図１３、図１５のフローチャートに基づいて、説明する。
【００５７】
（Ｃ）リンク角度算出処理（ステップＳ２０）
図１３は、ステップＳ２０の処理の全体的な流れを示すフローチャートであり、図１５は、図１３のステップＳ１５２の処理内容を具体的に示すフローチャートである。
【００５８】
図１３の処理では、ステップＳ１４０において、移動形状算出部２４が、最適化処理を行う最初のリンクをリンク(ｉ)とする。ここで、最適化処理とは、図１４のように、例えば連続する３本のリンク（それぞれにおいてアンカーポイントが取得されているものとする）と、アンカーポイントを用いて、３本のうちで最も過去に取得されたリンクの角度（α）の最適値を算出するというものである。なお、実際には、アンカーポイントが対応付けられている３本のリンクを少なくとも含む３本以上のリンクを用いるが、ここでは、説明の便宜上、各リンクにおいて１回ずつアンカーポイントが取得されているため、３本のリンクのみを用いるものとして説明する。また、ここでは、ｉ＝１であるものとする。
【００５９】
図１３に戻り、次のステップＳ１４２では、移動形状算出部２４が、最適化処理に用いるリンクの番号を示すパラメータｊの値をｉと同一に設定するとともに、アンカーポイントの数を示すパラメータＣの値を０に設定する。すなわち、ここでは、移動形状算出部２４は、ｊ＝１、Ｃ＝０とする。
【００６０】
次いで、ステップＳ１４３では、移動形状算出部２４が、リンク（ｊ）を取得する。すなわち、リンク（ｊ）を最適化処理に用いるリンクとする。
【００６１】
次いで、ステップＳ１４４では、移動形状算出部２４が、リンク（ｊ）（リンク（１））に対応するＧＰＳ測位結果（アンカーポイント）があるか否かを判断する。ここでの判断が肯定された場合には、移動形状算出部２４が、Ｃを１インクリメント（Ｃ←Ｃ＋１、ここではＣ←１）した後、ステップＳ１４８に移行する。一方、ステップＳ１４４の判断が否定された場合には、Ｃをインクリメントせずに（Ｃ＝０のままで）、ステップＳ１５０に移行する。
【００６２】
ステップＳ１４８では、移動形状算出部２４が、Ｃ＝Ｎであるか否かを判断する。この場合の値Ｎは、最適化に用いるべき、アンカーポイント取得が行われたリンク、すなわち、アンカーポイントが対応付けられたリンク、の本数である。なお、ここでは、Ｎ＝３であるものとして説明する。このステップＳ１４８の判断が否定されると、ステップＳ１５０に移行する。
【００６３】
ステップＳ１５０では、移動形状算出部２４が、ｊを１インクリメントする（ｊ←ｊ＋１、ここでは、ｊ←２）。その後、ステップＳ１４３に戻り、Ｎ個（３個）のアンカーポイントが対応しているリンクが取得されるまで、移動形状算出部２４は、ステップＳ１１４〜Ｓ１５０の処理判断を繰り返す。
【００６４】
そして、ステップＳ１４８の判断が肯定された段階で、ステップＳ１５２に移行する。このようにステップＳ１５２に移行する段階では、リンク（ｉ）（ここでは、リンク（１））を最適化するために用いるリンクとして、図１４に示す、リンク（１）〜リンク（３）が取得されたことになる。
【００６５】
次のステップＳ１５２では、最適化処理のサブルーチンが実行される。具体的には、図１５の処理が実行される。図１５の処理では、まず、ステップＳ１６０において、移動形状算出部２４が、各リンクの初期角度を決定する。このステップＳ１６０では、例えば、図１６に示すパターンＮｏ．１のように、Ｎ本（ここでは３本）の角度α、β、γの初期値を、ランダムに設定する。なお、これに限らず、パターンＮｏ．２のようにαの初期値を０°、βの初期値を４５°、γの初期値を９０°というように、４５°刻みで設定しても良い。また、パターンＮｏ．３のようにαの初期値を０°、βの初期値を９０°、γの初期値を１８０°というように、９０°刻みで設定しても良い。あるいは、その他の角度刻みで設定しても良い。
【００６６】
次いで、ステップＳ１６２では、移動形状算出部２４が、対応点座標を算出する。ここで、対応点座標とは、アンカーポイントを取得したときの、リンク上の位置座標（緯度、経度）を意味する。すなわち、図１４におけるＰ（ｊ）の緯度、経度である。対応点座標Ｐ（ｊ）（ｌａｔ（ｊ），ｌｏｎ（ｊ））は、例えば、次式（２）、（３）から求めることができる。
lat(j)=(walk_g(j)-walk_b(i-1))×w/link_len(i)×sin(link_angle(i))
+link_t_y(j-1)      …（２）
lon(j)=(walk_g(j)-walk_b(i-1))×w/link_len(i)×cos(link_angle(i))
+link_t_x(j-1)      …（３） 
【００６７】
ここで、上式（２）、（３）で用いた、walk_gは、図９（ａ）のＧＰＳ取得時歩数、walk_bは、図５（ｂ）の曲がり時歩数、ｗは、歩幅、link_lenは、図５（ｂ）のリンク長、link_angleはリンク角度（この場合、ステップＳ１６０で定められた初期値）、link_t_x、link_t_yは、リンクの終点座標である。
【００６８】
次いで、ステップＳ１６４では、移動形状算出部２４が、ＧＰＳ座標（アンカーポイント）と、対応点座標の距離の２乗和を算出する。具体的には、次式（４）により、算出される。
【００６９】
【数１】
0005509991.tif 000002
ここで、距離の２乗和を算出するのは、点Ｇ（ｊ）と点Ｐ（ｊ）との間に、各点を結ぶバネ（バネ定数ｋは一定であるものとする）が存在していると想定して、各バネが最も安定する状態、すなわち、エネルギが最小となる状態が最適な状態であると推定する理論（Kamada,Kawaiのモデル）に基づく。
【００７０】
次いで、ステップＳ１６６では、移動形状算出部２４が、α、β、γの値を変更しつつ、距離の２乗和を算出することで、距離の２乗和が最小となるα、β、γを算出する。そして、そのうちのαの値を、リンク(ｉ)の角度として、算出する。なお、図１４では、ステップＳ１６６において角度が最適化されたリンク（リンク（１））のみを実線にて示している。その後は、図１３のステップＳ１５４に移行する。
【００７１】
なお、角度αが決まると、図５（ｂ）のリンク角度の項目への登録が可能となる。また、角度αが決まることで、リンク始点（ｘ），（ｙ）、リンク終点（ｘ），（ｙ）の項目への登録も可能となる。リンク始点の座標（link_s_x(i)、link_s_y(i)）、リンク終点の座標（link_t_x(i)、link_t_y(i)）は、次式（５）〜（８）から求めることができる。なお、リンク始点の初期値としては、図７（ａ）において最初に取得されたアンカーポイントの位置を用いることとすれば良い。
link_s_x(i)=link_t_x(i-1)      …（５）
link_s_y(i)=link_t_y(i-1)      …（６）
link_t_x(i)=link_len(i)×cos(link_angle(i))+link_s_x(i)      …（７）
link_t_y(i)=link_len(i)×sin(link_angle(i))+link_s_y(i)      …（８）
【００７２】
その後、図１３のステップＳ１５４に移行すると、移動形状算出部２４は、まだ、角度が確定していないリンクが存在しているか否かを判断する。ここでの判断が肯定されると、ステップＳ１５６に移行して、ｉを１インクリメント（ｉ←ｉ＋１）した後に、ステップＳ１４０に戻る。その後は、全てのリンクについての角度が決定するまで、ステップＳ１４０〜Ｓ１５６の処理・判断を繰り返す。なお、図１３の処理が２回目に行われるときには、図１７（ａ）に示すように、リンク（２），（３），（４）を用いて、リンク（２）の角度βを算出することになる。この場合、図１５のリンクの角度β、γ、δの初期値としては、図１６に示したパターンＮｏ．１〜３を用いることとしても良いが、パターンＮｏ．４に示すように、前回の最適化処理（αを最適化した処理）で算出された、βやγの値を、初期値として用いることとしても良い。なお、新たに初期値を設定する角度（図１７（ａ）、図１６の角度δ）については、ランダムに、又はパターンＮｏ．２や３のようにして設定することとしても良い。その後、ステップＳ１５４における判断が否定された段階で、ステップＳ２０の全処理を終了し、図４のステップＳ２２に移行する。このように、ステップＳ２２に移行する段階では、図１７（ｂ）に示す角度α、β、γ、δ…の値が最適化された状態となる。
【００７３】
図４に戻り、ステップＳ２２では、移動形状算出部２４が、移動形状を算出する。具体的には、移動形状算出部２４は、ステップＳ２０で求められた角度で、各リンクを連結したものを、移動形状として算出する。次いで、ステップＳ２４では、移動形状算出部２４が、マップマッチング処理を行う。具体的には、例えば、ステップＳ２２において、図１８（ａ）のような移動形状が算出された場合には、移動形状算出部２４は、算出された移動形状と、情報記憶部２３に記憶されている地図データとをマップマッチングすることで、図１８（ｂ）に太線で示すような、地図データ上での移動経路を生成する。
【００７４】
次いで、図４のステップＳ２６では、表示制御部２５が、ステップＳ２４にて生成された移動経路を、表示画面６０上に出力する。
【００７５】
以上のようにすることで、表示画面６０上には、ユーザが歩行した経路が、表示されることになる。
【００７６】
ここで、前述した、最適化に用いるべき、アンカーポイントが対応するリンクの本数（Ｎ）の決定方法について、簡単に説明する。図１９（ａ）には、本実施形態の可搬型携帯端末１００を保持したユーザが、ある経路を実際に歩行したときの、リンクと、アンカーポイントＧ（ｉ）（十字印）と、アンカーポイントを取得したときのリンク上の位置Ｐ（ｉ）（四角印）との関係（正解経路）が示されている。
【００７７】
図１９（ｂ）には、Ｎ＝１で１つのリンクの角度の最適値を算出する方法を採用した場合が示されている。この図１９（ｂ）では、正解経路との誤差が大きくなっている。このときのＰ（ｉ）とＧ（ｉ）の距離の二乗和は、４２１．２と、非常に大きい。
【００７８】
図２０（ａ）には、Ｎ＝２で１つのリンクの角度の最適値を算出する方法を採用した場合が示されている。この図２０（ａ）では、正解経路との誤差は、図１９（ｂ）よりも小さくなっている。このときのＰ（ｉ）とＧ（ｉ）の距離の二乗和は、２４３．８である。また、図２０（ｂ）には、Ｎ＝３で１つのリンクの角度の最適値を算出する方法を採用した場合が示されている。この図２０（ｂ）では、正解経路との誤差は、図２０（ａ）よりも小さくなっている。このときのＰ（ｉ）とＧ（ｉ）の距離の二乗和は、９３．１５である。
【００７９】
図２１（ａ）、図２１（ｂ）には、Ｎ＝４、５で１つのリンクの角度の最適値を算出する方法を採用した場合が示されている。この図２１（ａ）、図２１（ｂ）では、正解経路との誤差は、図２０（ｂ）とさほど変わらなくなってきている。また、Ｐ（ｉ）とＧ（ｉ）の距離の二乗和も、図２０（ｂ）とさほど変わらない。
【００８０】
すなわち、図１９（ａ）〜図２１（ｂ）の例からすると、アンカーポイントが対応付けられたリンクの数を３以上とすれば、ほぼ同一の移動形状を算出することができることが分かる。このように、Ｐ（ｉ）とＧ（ｉ）の距離の二乗和がほとんど変わらなくなるＮの値（二乗和の変化が所定の閾値以下となるアンカーポイント数）を端末出荷前の実験等により見つけ出すことで、その数をＮとして設定することができる。
【００８１】
なお、最適化に用いる値Ｎは、上記のように、端末出荷前に行う場合に限られるものではない。例えば、各端末において、適宜、図１８（ｂ）〜図２１（ｂ）のようなデータをとり、Ｎの値を更新することとしても良い。これにより、環境等に応じてＮの値を変更することができるので、移動形状の算出精度を維持することが可能である。
【００８２】
以上、詳細に説明したように、本実施形態によると、絶対位置検出部３０が端末本体１０の絶対位置を検出した結果と、リンク情報生成部２２が端末本体１０の直進距離を示す線分（リンク）を生成した結果と、に基づいて、移動形状算出部２４が移動形状を算出する。そして、絶対位置検出部３０の検出タイミングを決定する検出制御部２１は、所定時間毎のタイミングを仮の検出タイミングとし、直前の検出タイミング以降、仮の検出タイミングが到来するまでの間に、リンク情報生成部２２が新たなリンクを生成していない場合（すなわち、曲がりが検出されていない場合）には、リンク情報生成部２２が次に新たなリンクを生成したタイミング（次に曲がりを検出したタイミング）を検出タイミングと決定して、絶対位置検出部３０を用いた絶対位置検出を行う。これにより、端末本体１０が直進している間に絶対位置を既に検出していた場合には、間欠的な絶対位置の検出タイミングが到来しても、絶対位置を再度検出しないようにすることができる。すなわち、本実施形態では、移動形状の算出精度向上にほとんど寄与しないと予想される絶対位置の検出を省略することができる。これにより、移動形状の算出精度を維持しつつ、消費電力の低減を図ることが可能となる。
【００８３】
また、本実施形態では、検出制御部２１は、リンク情報生成部２２が新たなリンク（本実施形態では１つ前のリンク）を生成した場合、すなわち、端末本体１０を保持するユーザが曲がった場合に、当該１つ前のリンク上でアンカーポイントを取得したか否か、及び、２つ前のリンク上でアンカーポイントを取得したか否か、に基づいて、新たにアンカーポイントを取得するか否かを決定する。ここで、過去２リンクでのアンカーポイント取得の有無を考慮すると、移動形状の算出精度を維持するためにアンカーポイントを取得すべきか否かを判断することができる。これにより、簡易な判断により、移動形状の算出精度を維持しつつ、消費電力の低減を図ることが可能となる。
【００８４】
また、本実施形態では、検出制御部２１は、２リンク前に絶対位置検出部３０がアンカーポイントを取得していなかった場合に、曲がりを検出したタイミングでアンカーポイントを取得するようにしている。これにより、移動形状の算出精度を維持することができる。更に、検出制御部２１は、１リンク前においても絶対位置検出部３０がアンカーポイントを取得していなかった場合には、アンカーポイントを取得してから所定間隔空けたタイミング、例えば３０ｍ歩行した後のタイミングで、再度アンカーポイントを取得することとしている。これにより、移動形状の一部が、左右対称な２つの形状のうちのいずれかであるかが判別できなくなるのを防止することができるので、この点からも、移動形状の算出精度を維持することができる。
【００８５】
また、本実施形態では、２リンク前において、絶対位置検出部３０がアンカーポイントを取得していた場合には、曲がり検出のタイミングでは、アンカーポイントを取得しないこととしている。このようにすることで、アンカーポイントを取得しなくても移動形状の算出精度に影響が出ない場合に、そのアンカーポイント取得を省略することができるので、この点からも、移動形状の算出精度を維持しつつ、消費電力の低減を図ることが可能となる。
【００８６】
また、本実施形態では、絶対位置検出部３０の起動直後及び動作終了直後の少なくとも一方のタイミングで、アンカーポイントを取得することとしているので、移動形状算出における始点と終点の絶対位置を取得することができる。これにより、移動形状の算出精度を向上することができる。また、絶対位置検出部３０の起動直後に絶対位置を検出した後、所定間隔をあけて、再度絶対位置を検出することとすることで、絶対位置検出を開始した後の早い段階で、携帯端末の移動方向を判別することができる。
【００８７】
また、本実施形態では、移動形状算出部２４は、絶対位置検出部３０で検出された複数の絶対位置Ｇ（ｉ）と、絶対位置を取得したときのリンク上の点Ｐ（ｉ）と、の距離の二乗和が最小となるように、各リンクの基準方向（例えば、東）に対する角度を決定して、移動形状を算出する。これにより、絶対位置とリンク上の点との間のエネルギ（Kamada,Kawaiのモデル）を考慮して、移動形状を適切に算出することができる。
【００８８】
また、本実施形態では、移動形状算出部２４は、リンク情報生成部２２においてｉ番目に生成されたリンクと、当該リンクから連続して取得されたアンカーポイントが対応付けられた（Ｎ−１）本のリンクと、を少なくとも用いて、ｉ番目に取得されたリンクの基準方向（東）に対する角度を決定する。この場合に、移動形状の算出精度が必要以上に低下しない程度に、Ｎの値を小さくすることで、移動形状を算出するときの計算量を低減することができる。
【００８９】
また、本実施形態では、Ｎの値をそれ以上大きくしても二乗和の最小値がある一定以上変化しなくなる値を、Ｎの値に設定する。これにより、Ｎの値を、移動形状の算出精度が必要以上に低下しない程度の値とすることができる。
【００９０】
なお、上記実施形態では、上式（４）を用いて、Ｇ（ｉ）とＰ（ｉ）の距離の二乗和を算出し、その最小値から、リンクの角度の最適値を求める場合について説明した。しかしながらこれに限られるものではなく、Kamada,Kawaiモデルそのものを用いて、Ｇ（ｉ）とＰ（ｉ）との間の仮想的なバネのエネルギが最も小さくなるような各リンクの角度を、最適値として求めることとしても良い。この場合、次式（９）が最小になるようにすれば良い。
【００９１】
【数２】
0005509991.tif 000003
なお、上式（９）においては、エネルギの式の係数（１／２）を省略している。また、ｋ（ｊ）の値は、図２２（ａ）〜図２２（ｆ）に示すような手法を用いて決定することとすれば良い。図２２（ａ）、図２２（ｂ）に示すように、アンカーポイントを取得したときの、絶対位置検出部３０による検出の信頼度が低かった場合、すなわち、通信できたＧＰＳ衛星の数が少なかった場合には、ｋを小さくし、信頼度が高かった場合、すなわち、通信できたＧＰＳ衛星の数が多かった場合には、ｋを大きくする。なお、図２２では、円の大きさが小さいほどｋが大きいことを意味する。また、図２２（ｃ）に示すように、アンカーポイント間の距離が近い場合には、ｋが小さいと、破線で示すように、２つのアンカーポイント内を通る直線の誤差を示す角度が大きくなるので（角度ａ）、その角度が小さくなるように（角度ｂ）、円を小さく、すなわちｋを大きくする。これに対し、図２２（ｄ）に示すように、アンカーポイント間の距離が遠い場合には、円を大きく、すなわちｋを小さくする。更に、図２２（ｅ）に示すように、始点からアンカーポイントまでの距離が近い場合には、図２２（ｃ）の場合と同様、ｋを大きくし、図２２（ｆ）に示すように、始点からアンカーポイントまでの距離が遠い場合には、図２２（ｄ）の場合と同様、ｋを小さくする。
【００９２】
このようにすることで、信頼性や、アンカーポイント間の距離などが考慮された、適切な移動形状の算出が可能となる。
【００９３】
なお、上記実施形態では、アンカーポイント取得が行われたＮ本のリンクを含むリンク（ｉ）からリンク（ｊ）までのリンクを用いて、リンク（ｉ）の角度の最適値を求めることとしたが、これに限らず、例えば、リンク（ｉ）からリンク（ｉ＋Ｎ−１）までのＮ本を用いて、リンク（ｉ）の角度の最適値を求めることとしても良い。また、Ｎ個のアンカーポイントに対応するリンクを用いてリンク（ｉ）の角度の最適値を求めることとしても良い。
【００９４】
なお、上記実施形態及び上記変形例では、アンカーポイントＧ（ｉ）と、これに対応するＰ（ｉ）との距離の二乗和を利用して、移動形状を算出する場合について説明したが、これに限られるものではない。例えば、図２３に示すようにアンカーポイントＧ（ｉ）と、リンク（ｉ）との距離の二乗和が最小値となるようなリンクの角度を、最適値とすることとしても良い。
【００９５】
なお、上記実施形態では、ＧＰＳデータベースにおける位置を、緯度、経度で表す場合について説明したが、緯度、経度をその他の値（例えば、出発点を原点とする距離）であらわすこととしても良い。この場合、ｘ座標の正方向を東方向、ｙ座標の正方向を北方向などとすることができる。
【００９６】
なお、上記実施形態では、移動形状を可搬型携帯端末１００内で算出する場合について説明したが、これに限られるものではない。例えば、可搬型携帯端末１００では、絶対位置検出部３０、地磁気情報検出部４０、加速度情報検出部５０の検出結果を、外部のサーバ等に送信することとしても良い。サーバに、図３の制御部２０と同様の機能を持たせることで、サーバにおいて、移動形状や移動経路を算出することができる。また、サーバからは、算出された移動形状や移動経路を可搬型携帯端末１００に送信することとしても良い。
【００９７】
なお、上記実施形態では、絶対位置検出部３０として、ＧＰＳセンサを用いる場合について説明したが、これに限らず、その他の装置を用いることとしても良い。絶対位置検出手段としては、例えば、ＲＦＩＤシステムなどを採用することができる。また、上記実施形態では、地磁気情報検出部４０としては、地磁気センサに代えて、その他の方位センサ、例えば、ジャイロセンサなどを用いることとしても良い。
【００９８】
なお、本実施形態における制御部２０の処理機能は、コンピュータによって実現することができる。その場合、制御部２０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【００９９】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１００】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１０１】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【０１０２】
１０  端末本体
２１  検出制御部
２２  リンク情報生成部
２４  移動形状算出部
３０  絶対位置検出部
【図１】
0005509991.tif 000004
【図２】
0005509991.tif 000005
【図３】
0005509991.tif 000006
【図４】
0005509991.tif 000007
【図５】
0005509991.tif 000008
【図６】
0005509991.tif 000009
【図７】
0005509991.tif 000010
【図８】
0005509991.tif 000011
【図９】
0005509991.tif 000012
【図１０】
0005509991.tif 000013
【図１１】
0005509991.tif 000014
【図１２】
0005509991.tif 000015
【図１３】
0005509991.tif 000016
【図１４】
0005509991.tif 000017
【図１５】
0005509991.tif 000018
【図１６】
0005509991.tif 000019
【図１７】
0005509991.tif 000020
【図１８】
0005509991.tif 000021
【図１９】
0005509991.tif 000022
【図２０】
0005509991.tif 000023
【図２１】
0005509991.tif 000024
【図２２】
0005509991.tif 000025
【図２３】
0005509991.tif 000026