(57)【特許請求の範囲】
【請求項１】
可搬型携帯端末の指し示す方位を取得する方位取得部と、
前記可搬型携帯端末を保持するユーザの歩行を検知する歩行検知部と、
前記歩行検知部により前記歩行が検知されている間に、前記方位取得部により取得される方位の変化量に基づいて、前記ユーザの歩行状態を判定する判定部と、
前記歩行検知部による検知結果と、前記判定部による判定結果と、に基づいて、前記ユーザの直進距離の情報を含むリンク情報を算出するリンク情報算出部と、を備え、
前記判定部は、前記方位取得部により取得される方位の変化量が閾値よりも大きい状態が、予め定められた第１の間隔よりも長く続いた場合に、前記ユーザが進行方向を変えたと判定することを特徴とするリンク情報生成装置。
【請求項２】
前記閾値は、前記歩行により生じる方位の変化に基づいて定められる値であることを特徴とする請求項１に記載のリンク情報生成装置。
【請求項３】
前記第１の間隔は、ユーザの歩行速度、前記判定部に対する要求性能、ユーザが歩行する道路形状の少なくともいずれかを考慮して決定されることを特徴とする請求項１又は２に記載のリンク情報生成装置。
【請求項４】
前記判定部は、前記変化量が前記閾値よりも大きい状態が、前記第１の間隔よりも小さい第２の間隔よりも続かなかった場合には、前記ユーザが進行方向を変えなかったと判定することを特徴とする請求項１〜３のいずれか一項に記載のリンク情報生成装置。
【請求項５】
前記判定部は、前記第１の間隔以上の長さである第３の間隔の間に、前記変化量が前記閾値よりも大きくなる回数が、複数回であった場合に、前記ユーザが蛇行していたと判定することを特徴とする請求項１〜４のいずれか一項に記載のリンク情報生成装置。
【請求項６】
前記判定部は、前記閾値を用いた判定により、ユーザが進行方向を変えていなかったと判定した場合でも、当該進行方向を変えていなかった間の前記変化量の積分値が所定値を超えた場合には、前記ユーザが進行方向を変えていたと判定することを特徴とする請求項１〜５のいずれか一項に記載のリンク情報生成装置。
【請求項７】
前記判定部が、前記方位取得部により取得される方位の変化量が前記歩行により生じる方位の変化に基づいて定められる閾値よりも大きくなったことを検出してから、前記ユーザが進行方向を変えたか否かを判定するまでの間に所定時間を要する場合に、
前記歩行検知部は、検知結果の前記リンク情報算出部への出力を前記所定時間遅らせることを特徴とする請求項１〜６のいずれか一項に記載のリンク情報生成装置。
【請求項８】
前記リンク情報算出部は、前記歩行検知部の検知結果から算出される前記ユーザの歩行距離に関する情報を、前記判定部の判定結果に基づいて補正することを特徴とする請求項１〜７のいずれか一項に記載のリンク情報生成装置。
【請求項９】
前記リンク情報算出部は、前記ユーザが歩行する道路の道路幅を考慮して、前記歩行距離に関する情報を補正することを特徴とする請求項８に記載のリンク情報生成装置。
【請求項１０】
前記方位取得部は、地磁気情報を検出するセンサ及び前記可搬型携帯端末の角速度を検出するセンサのいずれかであることを特徴とする請求項１〜９のいずれか一項に記載のリンク情報生成装置。
【請求項１１】
コンピュータを、
可搬型携帯端末の指し示す方位を取得する方位取得部、
前記可搬型携帯端末を保持するユーザの歩行を検知する歩行検知部、
前記歩行検知部により前記歩行が検知されている間に、前記方位取得部により取得される方位の変化量に基づいて、前記ユーザの歩行状態を判定する判定部、及び
前記歩行検知部による検知結果と、前記判定部による判定結果と、に基づいて、前記ユーザの直進距離の情報を含むリンク情報を算出するリンク情報算出部、として機能させ、
前記判定部は、前記方位取得部により取得される方位の変化量が閾値よりも大きい状態が、予め定められた第１の間隔よりも長く続いた場合に、前記ユーザが進行方向を変えたと判定することを特徴とするリンク情報生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、リンク情報生成装置及びリンク情報生成プログラムに関する。
【背景技術】
【０００２】
近年、歩行者の位置情報を測定するシステムへの需要が高まっている。歩行者の測位方法としては、歩行者が保持する可搬型携帯端末に、ＧＰＳ（Global Positioning System）に代表される衛星測位装置を搭載して測位する方法が一般的に利用されている。また、可搬型携帯端末に、加速度センサや地磁気センサあるいはジャイロセンサなどの各種センサを搭載し、衛星測位技術を使用できない屋内などの場所では、これらを用いた自律航法技術を補完的に用いることとしている。
【０００３】
可搬型携帯端末において、長時間にわたって自律測位を行うためには、なるべく消費電力を少なくすることが好ましい。しかるに、ＧＰＳのような絶対方位を用いて歩行者の移動方向を算出することとすると、方位の演算が複雑であることから、消費電力が大きくなるおそれがある。これに対し、特許文献１には、歩行者が携帯端末を手持ちで歩行している場合であっても、地磁気センサのみを用いて、歩行者の進行方向を決定する技術が提案されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００９−１３３６９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１では、歩行者自身の姿勢が変化した場合、例えば、歩行者がお辞儀をした場合や、振り向き動作を行った場合、にも進行方向を変換したものとして、誤検出されるおそれがある。
【０００６】
そこで本件は上記の課題に鑑みてなされたものであり、消費電力を低減しつつ、ユーザの直進距離の情報を含むリンク情報を高精度に算出することが可能なリンク情報生成装置及びリンク情報生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本件の発明者は、歩行者が歩行している場合、歩行者が行う動作は、基本的には直進動作と方向転換動作のみであり、歩行者はお辞儀などの特殊な動作はほとんど行わないという点に新たに着目した。本件は、かかる新規知見に基づくものであり、以下の構成を採用する。
【０００８】
本明細書に記載のリンク情報生成装置は、可搬型携帯端末の指し示す方位を取得する方位取得部と、前記可搬型携帯端末を保持するユーザの歩行を検知する歩行検知部と、前記歩行検知部により前記歩行が検知されている間に、前記方位取得部により取得される方位の変化量に基づいて、前記ユーザの歩行状態を判定する判定部と、前記歩行検知部による検知結果と、前記判定部による判定結果と、に基づいて、前記ユーザの直進距離の情報を含むリンク情報を算出するリンク情報算出部と、を備え、前記判定部は、前記方位取得部により取得される方位の変化量が閾値よりも大きい状態が、予め定められた第１の間隔よりも長く続いた場合に、前記ユーザが進行方向を変えたと判定するリンク情報生成装置である。
【０００９】
本明細書に記載のリンク情報生成プログラムは、コンピュータを、可搬型携帯端末の指し示す方位を取得する方位取得部、前記可搬型携帯端末を保持するユーザの歩行を検知する歩行検知部、前記歩行検知部により前記歩行が検知されている間に、前記方位取得部により取得される方位の変化量に基づいて、前記ユーザの歩行状態を判定する判定部、及び前記歩行検知部による検知結果と、前記判定部による判定結果と、に基づいて、前記ユーザの直進距離の情報を含むリンク情報を算出するリンク情報算出部、として機能させ、前記判定部は、前記方位取得部により取得される方位の変化量が閾値よりも大きい状態が、予め定められた第１の間隔よりも長く続いた場合に、前記ユーザが進行方向を変えたと判定するリンク情報生成プログラムである。
【発明の効果】
【００１０】
本明細書に記載のリンク情報生成装置及びリンク情報生成プログラムは、消費電力を低減しつつ、ユーザの直進距離の情報を含むリンク情報を高精度に算出することができるという効果を奏する。
【図面の簡単な説明】
【００１１】
【図１】図１は、可搬型携帯端末のブロック図である。
【図２】図１の制御部のハードウェア構成を示す図である。
【図３】図１の制御部の機能ブロックを示す図である。
【図４】図４（ａ）は、可搬型携帯端末を保持するユーザが歩行をしているときの、可搬型携帯端末の示す方位を矢印にて示す図であり、図４（ｂ）は、ユーザが直進しているときに、地磁気情報検出部にて検出される地磁気の時間変化を示す図である。
【図５】可搬型携帯端末を保持するユーザが、進行方向を変更した場合（曲がった場合）の地磁気の変化を示す図である。
【図６】図６（ａ）は、ユーザが歩行している間に、地磁気情報検出部４０に対して外乱を与えるような外乱要因の近傍を通過する状態を模式的に示す図であり、図６（ｂ）は、外乱要因の近傍を通過したときの地磁気の変化を示す図である。
【図７】図７（ａ）は、ユーザが直進している途中で、３６０°旋回した状態を示す図であり、図７（ｂ）は、図７（ａ）の動作を行ったときの地磁気の変化を示す図である。
【図８】図８（ａ）は、ユーザが弧状に歩行した状態を模式的に示す図であり、図８（ｂ）は、図８（ａ）の動作を行ったときの地磁気の変化を示す図である。
【図９】図９（ａ）は、ユーザが蛇行して歩行した状態を模式的に示す図であり、図９（ｂ）は、図９（ａ）の動作を行ったときの地磁気の変化を示す図である。
【図１０】式（５）のθを説明するための図である。
【図１１】図１１（ａ）は、αの値のテーブルであり、図１１（ｂ）は、βの値のテーブルである。
【図１２】リンク情報生成部２２における処理の全体的な流れを示すフローチャートである。
【図１３】ステップＳ１００の具体的処理を示す図である。
【図１４】図１４（ａ）は、歩行中におけるＸ軸方向に関する磁束密度ｍｘのデータであり、図１４（ｂ）は、歩行中におけるＹ軸方向に関する磁束密度ｍｙのデータであり、図１４（ｃ）は、歩行中におけるＺ軸方向に関する磁束密度ｍｚのデータである。
【図１５】ステップＳ２００の具体的処理を示す図である。
【図１６】ステップＳ２０２の具体的処理を示す図である。
【図１７】図１７（ａ）、図１７（ｂ）は、ステップＳ２０２の歩行ノイズ補正処理の結果を説明するための図である。
【図１８】ステップＳ２０４の具体的処理を示す図である。
【図１９】ステップＳ２３０又はＳ３０２の具体的処理を示す図である。
【図２０】ステップＳ２３２又はＳ３０４の具体的処理を示す図である。
【図２１】図２１（ａ）、図２１（ｂ）は、ステップＳ２３２の補正結果を説明するための図である。
【図２２】図２２（ａ）は、歩行中におけるＸ軸方向に関する磁束密度ｍｘのデータ（補正後）であり、図２２（ｂ）は、歩行中におけるＹ軸方向に関する磁束密度ｍｙのデータ（補正後）であり、図２２（ｃ）は、歩行中におけるＺ軸方向に関する磁束密度ｍｚのデータ（補正後）である。
【図２３】ステップＳ３００の具体的処理を示す図である。
【図２４】ステップＳ３００の処理において用いられるデータの一例を示す図である。
【図２５】ステップＳ３０６の具体的処理を示す図である。
【図２６】ステップＳ４００の具体的処理を示す図である。
【図２７】ステップＳ４０２の具体的処理を示す図である。
【図２８】ステップＳ４０４の具体的処理を示す図である。
【図２９】θの算出方法の第１例を示す図である。
【図３０】θの算出方法の第２例を示す図である。
【図３１】θの算出方法の第３例を示す図である。
【図３２】ステップＳ４６２の処理の原理を説明するための図である。
【図３３】変形例にかかる処理を示すフローチャートである。
【図３４】図３４（ａ）〜図３４（ｄ）は、変形例に係る処理を説明するためのグラフ（その１）である。
【図３５】図３５（ａ）〜図３５（ｃ）は、変形例に係る処理を説明するためのグラフ（その２）である。
【図３６】図３６（ａ）、図３６（ｂ）は、変形例に係る処理の効果を説明するための図である。
【図３７】リアルタイムで曲がり検出を行う例における処理を示す図（その１）である。
【図３８】リアルタイムで曲がり検出を行う例における処理を示す図（その２）である。
【発明を実施するための形態】
【００１２】
以下、リンク情報生成装置及びリンク情報生成プログラムの一実施形態について、図１〜図３２に基づいて詳細に説明する。図１には、リンク情報生成装置としてのリンク情報生成部２２（図３参照）を内蔵する可搬型携帯端末１００がブロック図にて示されている。この図１に示すように、可搬型携帯端末１００は、端末本体１０と、端末本体１０に設けられた、絶対位置検出部３０と、地磁気情報検出部４０と、加速度情報検出部５０と、制御部２０と、表示画面６０と、入力インタフェース６２と、を備える。
【００１３】
絶対位置検出部３０は、本実施形態では、ＧＰＳ受信機であり、上空に存在する複数個のＧＰＳ衛星からの信号を受けて、絶対位置（緯度・経度で示される位置）に関する情報を得るものである。
【００１４】
地磁気情報検出部４０は、方位センサとも呼ばれ、３軸座標系上での地磁気の検出が可能な地磁気センサ、すなわち磁気方位センサである。なお、地磁気センサに代えて、ジャイロセンサ（３軸（Ｘ，Ｙ，Ｚ軸）回りの角速度を検出するセンサ）を用いることとしても良い。加速度情報検出部５０は、例えば、３軸方向（Ｘ軸、Ｙ軸、Ｚ軸方向）の加速度を検出するセンサである。
【００１５】
表示画面６０は、制御部２０の指示の下、各種情報を表示するものである。表示画面６０は、例えば、可搬型携帯端末１００を保持するユーザが移動したルートの情報を、表示する。入力インタフェース６２は、キーボードやタッチパネルなどを含み、ユーザは、当該入力インタフェース６２を介して、可搬型携帯端末１００に対する処理要求コマンドを入力したり、文字等を入力したりする。
【００１６】
図２には、制御部２０のハードウェア構成が示されている。この図２に示すように、制御部２０は、ＣＰＵ（Central Processing Unit）９０、ＲＯＭ（Read Only Memory）９１、ＲＡＭ（Random Access Memory）９２、記憶部（ここではＨＤＤ（Hard Disk Drive）とする）９３、入出力部９４、及びこれら各部を接続するバス９５等を備えている。制御部２０では、ＣＰＵ９０がＲＡＭ９２又はＨＤＤ９３に格納されたプログラムを実行することで、図３に示す各処理部の機能を実現する。また、ＨＤＤ９３は、制御部２０内で得られたデータなどを記憶し、図３のセンサ出力履歴格納部３８の機能を実現する。入出力部９４は、表示画面６０や入力インタフェース６２との通信を行う入出力ポートである。
【００１７】
図３は、図１の制御部２０の機能ブロックを示す図である。この図３に示すように、制御部２０は、リンク情報生成装置としてのリンク情報生成部２２と、移動形状算出部２４と、表示制御部２５と、を有する。
【００１８】
リンク情報生成部２２は、歩行検知部としての歩行検出部３２と、判定部３４と、リンク情報算出部３６と、方位取得部としてのセンサ出力履歴格納部３８と、を有する。歩行検出部３２は、加速度情報検出部５０において検出される加速度情報に基づいて、可搬型携帯端末１００を保持するユーザが歩行を行っているか否かを判断し、その判断結果を、判定部３４に出力する。判定部３４は、ユーザが歩行している間における地磁気情報検出部４０の検出結果に基づいて、ユーザが直進しているのか、あるいは、方向転換したのかなどの歩行状態を判定する。リンク情報算出部３６は、判定部３４による判定結果と、加速度情報検出部５０の検出結果とを用いて、ユーザが直線移動した距離の情報を含むリンク情報を算出する。リンク情報算出部３６は、算出したリンク情報を、移動形状算出部２４に対して出力する。センサ出力履歴格納部３８は、地磁気情報検出部４０及び加速度情報検出部５０において検出されたデータ（出力履歴）を格納する。リンク情報は、ユーザが直線移動した距離の長さをもつ線分であるリンクを１または複数含み、位置情報は持たない。
【００１９】
移動形状算出部２４は、リンク情報算出部３６にて算出されたリンク情報や絶対位置検出部３０による検出結果等に基づいて、可搬型携帯端末１００の移動形状を算出し、表示制御部２５に対して出力する。表示制御部２５は、移動形状算出部２４で取得された移動形状を取得して、表示画面６０上に表示する。
【００２０】
次に、本実施形態におけるリンク情報生成部２２の処理の概要について、図４〜図９に基づいて説明する。図４（ａ）は、可搬型携帯端末１００を保持するユーザが直線歩行しているときの、可搬型携帯端末１００の方位の変化を矢印にて示す図である。ここでは、ユーザが可搬型携帯端末１００を操作しながら歩行しているのではなく、ユーザは可搬型携帯端末１００を腰につけたり、ポケットに入れたり、もしくは鞄に入れたりしたまま歩行した状態を例としている。この図４（ａ）に示すように、可搬型携帯端末１００を保持するユーザが直線歩行している場合には、右足を踏み出したり、左足を踏み出したりすることで、可搬型携帯端末１００の方位が変動する。図４（ｂ）には、図４（ａ）のようにユーザが直進しているときに、地磁気情報検出部４０にて検出される地磁気の時間変化が示されている。この図４（ｂ）に示すように、ユーザが直進歩行すると、歩行タイミング（片足を前に出すタイミング）で、地磁気がジグザグに変化する。ただし、ここでの変化量が閾値Ｂを超えないように、閾値Ｂを設定することとする。したがって、本実施形態では、地磁気の変化量が閾値Ｂの範囲内である場合には、判定部３４は、原則、ユーザ（可搬型携帯端末１００）が直進していると判定する。
【００２１】
図５には、可搬型携帯端末１００を保持するユーザが、進行方向を変更した場合（曲がった場合）の地磁気の変化が示されている。この図５に示すように、地磁気が変化し始めてから、時間に関する閾値Ａ（第１の間隔）が経過するまでの間に、閾値Ｂ以上地磁気が変化した場合には、判定部３４は、ユーザが方向転換をした、すなわち曲がったと判定する。
【００２２】
図６（ａ）には、ユーザが歩行している間に、地磁気情報検出部４０に対して外乱を与えるような外乱要因の近傍を通過する場合の例が模式的に示されている。外乱要因には、鉄筋コンクリート造のビルや、自動車のエンジンなど、地磁気の方向を変化させる要因が含まれる。このようにユーザが外乱要因の近傍を通過すると、図６（ｂ）に示すように、地磁気は急激に変化するが、その後、短時間で、地磁気は元の大きさ近傍まで戻る。したがって、本実施形態では、地磁気が、図５の閾値Ａよりも短い閾値Ｃ（第２の間隔）の範囲内で、図６（ｂ）のような変化をした場合には、当該波形をノイズとして扱い、判定部３４は、ユーザは直進したままであると判定する。
【００２３】
図７（ａ）には、ユーザが直進している途中で、３６０°旋回した場合の例が示されている。このように、ユーザが直進している途中で３６０°旋回すると、図７（ｂ）に示すように、地磁気は大小両方向に変化した後、ほぼ元の大きさに戻る。したがって、本実施形態では、地磁気が、図５の閾値Ａよりも短い閾値Ｄ（第２の間隔）の範囲内で、図７（ｂ）のような変化をした場合には、判定部３４は、当該波形をノイズとして取り扱い、ユーザは直進したままであると判定する。
【００２４】
図８（ａ）には、ユーザが弧状に歩行した状態が模式的に示されている。この図８（ａ）のように、ユーザが弧状に歩行した場合、図５で説明した時間の閾値Ａの範囲内では、図８（ｂ）に示すように地磁気の変化量が閾値Ｂを超えないが、閾値Ａの範囲を超えた後も、緩やかに変化量が大きくなっている。このような場合には、判定部３４は、ユーザが弧状に移動していたと判定する。
【００２５】
図９（ａ）には、ユーザが蛇行して歩行した状態が模式的に示されている。この図９（ａ）のように、ユーザが蛇行して歩行した場合、図９（ｂ）に示すように、閾値Ａと同一又は閾値Ａよりも長い時間（閾値Ｅ（第３の間隔））内において、変化量が閾値Ｂを超える回数が複数回となる。このような場合には、判定部３４は、ユーザが蛇行して歩行していたと判定する。
【００２６】
ここで、閾値Ａ〜Ｅの決定方法について説明する。なお、閾値Ａ〜Ｅは、判定部３４が以下の方法にて適宜決定するものとする。
【００２７】
まず、閾値Ａの決定方法について説明する。閾値Ａは、例えば、(i)人間の歩行速度に基づいて、(ii)移動形状算出部２４からの性能要求に応じて、又は(iii)周辺の道路形状に応じて、決定するものとする。
【００２８】
具体的には、(i)の場合であれば、閾値Ａは、次式（１）にて決定することができる。なお、次式（１）で用いているmax(lc)は、ユーザの位置、すなわち絶対位置検出部３０から取得される位置、の周辺に存在しているカーブにおける道路距離のうちの最大値を意味する。また、ｖは歩行速度であり、入力インタフェース６２を介してユーザから予め入力されている年齢や性別などに基づいて決定するものとする。
Ａ＝max（lc）／ｖ        …（１）
【００２９】
なお、カーブにおける道路距離lcは、カーブの半径を用いて算出しても良いし、統計データから導いた曲がり動作に必要な移動距離と、歩行速度に応じて変化する係数と、を積算して求めても良い。なお、上式（１）は、カーブにおける道路距離lcの最大値を含んでいることから、上記(iii)「周辺の道路形状に応じて」の概念も含んでいるといえる。
【００３０】
また、(ii)の場合であれば、曲がり角検出後に直進と判定するまでに必要な距離（移動形状算出部２４における要求がある場合）をａとして、閾値Ａを次式（２）にて決定する。
Ａ＝ａ／ｖ                  …（２）
【００３１】
また、(iii)の場合であれば、閾値Ａは、次式（３）にて決定する。なお、次式（３）で用いているmin(ls)は、ユーザの位置周辺にある交差点の道路直線距離の最小値を意味する。
Ａ＝min（ls）／ｖ        …（３）
【００３２】
次に、閾値Ｂの決定方法について説明する。閾値Ｂは、例えば、(i)ユーザが歩行している間における地磁気の変化の波形のうち、歩行タイミングと同期しているものの振幅に応じた値、又は(ii)道路形状の情報に応じた値のいずれかとする。
【００３３】
具体的には、(i)の場合であれば、次式（４）にて閾値Ｂを算出する。
【００３４】
【数１】
0005569099.tif 000002
【００３５】
ここで、ＦＴ（Ｘ，Ｙ）は、データＸをフーリエ変換して得られる周波数Ｙ成分［μＴ］を意味し、ｍｒx_all、ｍｒy_all、ｍｒｚ_allは、地磁気情報検出部４０の３軸（Ｘ，Ｙ，Ｚ軸）が過去に検出した磁束密度のデータ［μＴ］を意味し、ｆｗは歩行周波数［歩数／秒］を意味するものとする。
【００３６】
また、(ii)の場合であれば、次式（５）にて閾値Ｂを算出する。
Ｂ＝｜Ｖｂ−Ｒ（θ）・Ｖｂ｜        …（５）
ここで、Ｖｂは、地磁気ベクトル［μＴ］であり、Ｖｂ＝（０，Ｆ・ｃｏｓ（Ｉ），Ｆ・ｓｉｎ（Ｉ））を意味する。なお、Ｆは全磁力[μＴ]であり、Ｉは伏角[deg]である。Ｒ（θ）は、曲がり動作に必要な回転角度θだけＺ軸回りに回転するための回転行列を意味する。θは、例えば、ユーザの位置の周辺のカーブの角度θｃの最小値とすることができる。また、θとしては、ユーザの周辺に図１０に示すような道路がある場合において、ユーザが通るであろう最短距離が示す角度θとすることもできる。この場合、θは、次式（６）にて表すことができる。
θ＝ｔａｎ-1{（Ｗ1＋Ｌ2）／（ｌ1＋Ｗ2）}          …（６）
ただし、θ＞ｔａｎ-1（Ｌ2／Ｗ2）である。
【００３７】
次に、閾値Ｃの決定方法について説明する。閾値Ｃは、外乱要因により影響を受ける距離の統計情報、に応じて決定する。具合的には、次式（７）より閾値Ｃを決定する。
Ｃ＝（ｌ＋α）／ｖ            …（７）
【００３８】
ここで、ｌは、外乱要因による影響を受ける基本距離[ｍ]であり、統計的に定められている。また、αは、外乱要因の種類による増減分を意味する。αは、図１１（ａ）のようなテーブルに基づいて決定する。具体的には、判定部３４は、ユーザの位置（絶対位置検出部により検出される位置）に基づいて、ユーザが高架下に位置する可能性が高いか否か、ユーザが大きなビルの近傍や地下などの鉄筋近傍に位置する可能性が高いか否かを判断して、当該判断結果に応じたαの値を選択する。
【００３９】
次に、閾値Ｄの決定方法について説明する。閾値Ｄは、歩行者の一時的動作（例えば３６０°旋回）に必要とされる時間の統計情報に基づいて決定する。具体的には、次式（８）に基づいて閾値Ｄを決定する。
Ｄ＝Ｔ+β          …（８）
【００４０】
ここで、Ｔは、ユーザの一時的動作に要する基本時間[ｓｅｃ]であり、統計的に定められている。また、βは、ユーザによる可搬型携帯端末１００の保持方法による増減分を意味する。βは、図１１（ｂ）のようなテーブルに基づいて決定する。具体的には、入力インタフェース６２を介してユーザから入力される可搬型携帯端末１００の保持方法（手持ちや腰付けなど）に基づいて、βの値を選択する。
【００４１】
次に、閾値Ｅの決定方法について説明する。閾値Ｅは、道路情報に基づいて決定する。具体的には、閾値Ｅは、次式（９）にて決定することができる。なお、min(ls)は、ユーザの位置周辺にある交差点の道路直線距離の最小値を意味する。
Ｅ＝min（ls）／ｖ            …（９）
【００４２】
次に、本実施形態のリンク情報生成部２２における処理について、図１２〜図３２に基づいて、詳細に説明する。
【００４３】
図１２は、リンク情報生成部２２における処理の全体的な流れを示すフローチャートである。この図１２に示すように、リンク情報生成部２２では、ステップＳ１００において、歩行中データ抽出処理を行い、ステップＳ２００において、ノイズ補正処理を行い、ステップＳ３００において、方向転換検出処理を行い、ステップＳ４００において、直進距離算出処理を行い、ステップＳ５００において、リンク長Ｌ（ｍ）を移動形状算出部２４に対して出力する。以下、各ステップの処理について、詳細に説明する。
【００４４】
（歩行中データ抽出処理（ステップＳ１００））
ステップＳ１００の歩行中データ抽出処理サブルーチンでは、図１３に示す処理が実行される。具体的には、図１３の処理では、まず、ステップＳ１０２において、判定部３４が、歩行検出部３２の出力時刻ｔ２を読み込む。ここで、出力時刻ｔ２は、歩行を検出した時刻である。
【００４５】
次いで、ステップＳ１０４では、判定部３４が、センサ出力履歴格納部３８から地磁気情報検出部４０の出力時刻ｔ１を読み込む。ここで、出力時刻ｔ１は、地磁気情報検出部４０の出力時刻のうち、未だ読み込んでいない最も過去の時刻である。
【００４６】
次いで、ステップＳ１０６では、判定部３４が、ｔ１がｔ２以上か否か、すなわち、ｔ１の方が現在に近いか否かを判断する。ここでの判断が否定された場合には、ステップＳ１０４に戻り、判定部３４は、再度、地磁気情報検出部４０の出力時刻のうち、未だ読み込んでいない最も過去の時刻を読み込む。そして、ステップＳ１０６において、判定部３４は、ｔ１がｔ２よりも大きいか否かを判断する。
【００４７】
ステップＳ１０６の判断が肯定されると、ステップＳ１０８に移行し、判定部３４が、時刻ｔ１の磁束密度(ｍｘ,ｍｙ,ｍｚ)を、歩行中地磁気データＭｗとして保持する。次いで、ステップＳ１１０では、センサ出力履歴格納部３８に記憶されている地磁気情報検出部４０の出力時刻の全てを読み込んだか否かを判断する。ステップＳ１１０の判断が否定された場合には、ステップＳ１０２に戻る。その後、ステップＳ１０２〜Ｓ１１０の処理・判断を繰り返す。そして、ステップＳ１１０の判断が肯定された段階で、図１３の全処理が終了し、図１２のステップＳ２００に移行する。なお、図１３の処理が行われた結果、判定部３４は、地磁気データＭｗとして、Ｍｗ（ｉ）（ｉ＝０〜ｊ）を取得し、図１４のようなデータを取得したものとする。図１４（ａ）は、歩行中におけるＸ軸方向に関する磁束密度ｍｘのデータであり、図１４（ｂ）は、歩行中におけるＹ軸方向に関する磁束密度ｍｙのデータであり、図１４（ｃ）は、歩行中におけるＺ軸方向に関する磁束密度ｍｚのデータである。
【００４８】
（ノイズ補正処理（ステップＳ２００））
次に、図１２のステップＳ２００におけるノイズ補正処理について、説明する。図１５は、ステップＳ２００のノイズ補正処理の具体的処理を示すフローチャートである。この図１５に示すように、ノイズ補正処理においては、ステップＳ２０２の歩行ノイズ補正処理と、ステップＳ２０４の外乱ノイズ補正処理と、が行われる。
【００４９】
まず、歩行ノイズ補正処理（ステップＳ２０２）について図１６のフローチャートに沿って説明する。図１６のフローチャートでは、まず、ステップＳ２１０において、判定部３４が、変数ｉを０に設定する。次いで、ステップＳ２１２では、判定部３４が、地磁気データＭｗ（ｉ）（ここでは、Ｍｗ（０））を、判定部３４が有するバッファ（ｂｆ）に格納する。次いで、ステップＳ２１４では、判定部３４が、バッファに格納されたデータＭｗの数が２であるか否かを判断する。ここでの判断が否定された場合には、ステップＳ２１６に移行する。
【００５０】
ステップＳ２１６では、判定部３４が、ｉを１インクリメント（ｉ←ｉ＋１）する。そして、ステップＳ２１２に戻り、判定部３４は、地磁気データＭｗ（１）をバッファｂｆに格納した後に、再度ステップＳ２１４の判断を行う。ここでの判断が肯定されると、ステップＳ２１８に移行し、２つの地磁気データ（ここでは、Ｍｗ（０）とＭｗ（１））の平均値を算出する。
【００５１】
平均値を算出した後、ステップＳ２２０に移行すると、判定部３４は、ｉを１インクリメント（ｉ←ｉ＋１）する。次いで、ステップＳ２２２では、判定部３４が、ｉがｊよりも大きいか否かを判断する。ここでの判断が否定された場合には、ステップＳ２１２に戻り、以降は、上記と同様の処理・判断を行う。そして、ステップＳ２２２の判断が肯定された段階で、図１６の全処理を終了し、図１５のステップＳ２０４に移行する。なお、ステップＳ２０２の歩行ノイズ補正処理が行われることで、図１７（ａ）に示すように、歩行タイミングに対応してジグザグな波形を示すデータは、図１７（ｂ）に実線にて示すように、補正されることになる。
【００５２】
次に、外乱ノイズ補正処理（ステップＳ２０４）について、図１８のフローチャートに沿って説明する。なお、本実施形態では、外乱ノイズ補正として、図６で説明した外乱要因によるノイズを補正する処理を採用した場合について説明する。
【００５３】
図１８のフローチャートでは、まず、判定部３４が、ステップＳ２３０において、変化量算出処理のサブルーチンを実行し、ステップＳ２３２において、直進／方向転換判定処理のサブルーチンを実行する。各サブルーチンでは、具体的には、以下のような処理が実行される。
【００５４】
（変化量算出処理（ステップＳ２３０））
ステップＳ２３０では、図１９に示すように、まず、ステップＳ２６０において、判定部３４が、歩行中地磁気データＭｗから磁束密度（ｍｘ,ｍｙ,ｍｚ）を読み込む。次いで、ステップＳ２６２では、判定部３４が、磁束密度（ｍｘ,ｍｙ,ｍｚ）を変化量用履歴ｍｒとして保持する。
【００５５】
次いで、ステップＳ２６４では、判定部３４が、閾値Ａを取得する。ここで、閾値Ａは、前述した式（１）〜（３）のいずれかから決定される閾値である。次いで、ステップＳ２６６では、判定部３４が、ｍｒのデータ数が、閾値Ａの範囲と一致するか否かを判断する。すなわち、判定部３４は、閾値Ａの範囲に含まれる全ての磁束密度データを取得・保持したか否かを判断する。ここでの判断が否定された場合には、判定部３４は、ステップＳ２６０に戻る。一方、ステップＳ２６６の判断が肯定された場合には、ステップＳ２６８に移行する。
【００５６】
ステップＳ２６８では、判定部３４が、変化量Δｍを求める。ここで、変化量Δｍは、次式（１０）から求めることができる。
Δm=［{max(mx)−min(mx)}2＋{max(my)−min(my)}2＋{max(mz)−min(mz)}2］1/2
…（１０）
【００５７】
次いで、ステップＳ２７０では、判定部３４が、変化量Δｍを変化量履歴Δｍｒ（ｉ）として保持する。次いで、ステップＳ２７２では、判定部３４が、歩行中地磁気データＭｗを全て読み込んだか否かを判断し、ここでの判断が否定された場合には、ステップＳ２６０に戻る。一方、ここでの判断が肯定された場合には、図１９の処理を終了して、図１８のステップＳ２３２に移行する。
【００５８】
（直進／方向転換判定処理（ステップＳ２３２））
図１８のステップＳ２３２に移行すると、判定部３４は、図２０のステップＳ２８０において、閾値Ｂを取得する。この閾値Ｂは、前述した式（４）又は（５）から決定される閾値である。次いで、ステップＳ２８２では、判定部３４が、変数ｉを０に設定する。次いで、ステップＳ２８３では、判定部３４が、Δｍｒ（ｉ）を読み出す。次いで、ステップＳ２８４では、判定部３４が、閾値Ｂが、Δｍｒ（ｉ）よりも小さいか否かを判断する。ここでの判断が肯定された場合には、ステップＳ２８６に移行し、判定部３４は、判定結果Ｒ（ｉ）を、「Ｔｕｒｎ（曲がった）」とする。一方、ステップＳ２８４の判断が否定された場合には、ステップＳ２８８に移行し、判定部３４は、判定結果Ｒ（ｉ）を「Straight（直進）」とする。
【００５９】
その後、ステップＳ２９０に移行すると、判定部３４は、ｉを１インクリメント（ｉ←ｉ＋１）する。そして、ステップＳ２９２では、判定部３４が、ｉがｊよりも大きいか否かを判断する。ここでの判断が否定された場合には、ステップＳ２８３に移行し、判断が肯定された場合には、図２０の全処理を終えて、図１８のステップＳ２３３に移行する。
【００６０】
図１８のステップＳ２３３では、判定部３４は、ｉを０に設定する。次いで、ステップＳ２３４では、判定結果Ｒ（ｉ）を取得する。次いで、ステップＳ２３５では、判定結果Ｒ（ｉ）が、「Ｔｕｒｎ」であったか否かを判断する。ここでの判断が否定された場合には、ステップＳ２５８に移行する。ステップＳ２５８では、判定部３４は、ｉがｊと一致するか否かを判断する。ここでの判断が否定された場合には、判定部３４は、ステップＳ２５９において、ｉを１インクリメント（ｉ←ｉ＋１）した後、ステップＳ２３４に戻る。一方、ステップＳ２５８の判断が肯定された場合には、図１８の処理を終了する。
【００６１】
これに対し、ステップＳ２３５の判断が肯定された場合、すなわち、Ｒ（ｉ）がＴｕｒｎであった場合には、ステップＳ２３６に移行する。ステップＳ２３６では、判定部３４が、閾値Ｃを取得する。ここで、閾値Ｃは、前述した式（７）により決定される閾値である。
【００６２】
次いで、ステップＳ２３８では、判定部３４が、Ｍｗ（ｉ−Ｃ）から磁束密度を読み込む。ここで読み込まれる磁束密度を（ｍｘ１、ｍｙ１、ｍｚ１）と定義する。次いで、ステップＳ２４０では、判定部３４が、Ｍｗ（ｉ＋Ｃ）から磁束密度を読み込む。ここで読み込まれる磁束密度を（ｍｘ２、ｍｙ２、ｍｚ２）とする。すなわち、ステップＳ２３８，Ｓ２４０では、閾値Ｃの時間範囲の始点より前と終点より後の磁束密度が読み込まれることになる。
【００６３】
次いで、ステップＳ２４２では、判定部３４が、両磁束密度における変化量Δｍを求める。変化量Δｍは、次式（１１）から求めることができる。
Δm={(mx1−mx2) 2＋(my1−my2) 2＋(mz1−mz2) 2}1/2              …（１１）
【００６４】
次いで、ステップＳ２４４では、判定部３４が、閾値Ｂを取得する。次いで、ステップＳ２４６では、判定部３４が、閾値ＢがΔｍよりも大きいか否かを判断する。ここでの判断が肯定された場合、すなわち、Δｍが閾値Ｂを超えていなかった場合には、ステップＳ２４８に移行する。ここで、Δｍが閾値Ｂを超えていない場合とは、図２１（ａ）に示すように、閾値Ｃの始点より前（Ｍｗ（ｉ−Ｃ））と終点より後（Ｍｗ（ｉ＋Ｃ））との段差が少ないことを意味する。このような場合には、閾値Ｃの範囲において生じていた波形は外乱要因によるノイズである可能性が高いと考えられる。したがって、ステップＳ２４８に移行した場合には、閾値Ｃの始点より前（Ｍｗ（ｉ−Ｃ））と終点より後（Ｍｗ（ｉ＋Ｃ））との傾きａを次式（１２）に基づいて算出する。
ａ＝Ｍｗ（ｉ＋Ｃ）−Ｍｗ（ｉ−Ｃ）／２Ｃ              …（１２）
【００６５】
そして、ステップＳ２５０において、傾きａを用いて、Ｍｗ（ｉ−Ｃ）とＭｗ（ｉ＋Ｃ）との間を、図２１（ｂ）に実線にて示すように、補正する。
【００６６】
その後、判定部３４は、ステップＳ２５８に移行し、ｉがｊであるか否かを判断する。ここでの判断が否定された場合には、ステップＳ２５９を経由して、ステップＳ２３３に戻るが、ここでの判断が肯定された場合には、図１８の全処理（ステップＳ２０４）、及び図１５の全処理（ステップＳ２００）を終了して、図１２のステップＳ３００に移行する。なお、ステップＳ２００が終了した時点では、歩行ノイズ及び外乱ノイズが補正されて、図１４(ａ)〜図１４（ｃ）のデータから図２２（ａ）〜図２２（ｃ）に示すようなデータが生成されることになる。図２２（ａ）は、歩行中におけるＸ軸方向に関する磁束密度ｍｘのデータ（補正後）であり、図２２（ｂ）は、歩行中におけるＹ軸方向に関する磁束密度ｍｙのデータ（補正後）であり、図２２（ｃ）は、歩行中におけるＺ軸方向に関する磁束密度ｍｚのデータ（補正後）である。
【００６７】
なお、上記においては、外乱ノイズ補正として、図６で説明した外乱要因によるノイズを補正する処理を実施した例について説明したが、これに限られるものではない。外乱ノイズ補正としては、外乱要因によるノイズ補正に代えて、又はこれとともに、図７で説明したユーザ（歩行者）の一時的動作によるノイズ補正を行うこともできる。一時的動作によるノイズ補正は、図１８のフローチャートと同様の処理により、実現可能であり、この場合には、図１８の閾値Ｃの部分を閾値Ｄに変更することとすれば良い。
【００６８】
次に、図１２のステップＳ３００（方向転換検出処理）について説明する。
【００６９】
（方向転換検出処理（ステップＳ３００））
このステップＳ３００では、図２３に示すように、ステップＳ３０２において、変化量算出処理が行われ、ステップＳ３０４において、直進／方向転換判定処理が行われ、ステップＳ３０６において、弧状歩行判定処理が行われる。なお、ステップＳ３０２の変化量算出処理は、補正後の磁束密度（図２２（ａ）〜図２２（ｂ））を用いる点が異なるものの、前述した図１９の処理と同様の処理が実行される。また、ステップＳ３０４の直進／方向転換判定処理は、補正後の磁束密度（図２２（ａ）〜図２２（ｂ））を用いる点が異なるものの、図２０の処理と同様の処理が実行される。なお、ステップＳ３０２やステップＳ３０４では、地磁気の変化量のデータとして、図２４のようなデータが用いられる。また、図２３のステップＳ３０２及びステップＳ３０４の処理が終了した段階では、各歩行時刻における判定結果Ｒ（ｉ）（＝Ｔｕｒｎ又はＳｔｒａｉｇｈｔ）が得られることになる。
【００７０】
ステップＳ３０４の処理が終了し、ステップＳ３０６に移行すると、図２５の処理が実行される。具体的には、判定部３４が、以下の処理を実行する。
【００７１】
まず、判定部３４は、ステップＳ３１０において、ｉを０に設定する。次いで、ステップＳ３１２では、判定部３４は、閾値Ａを取得する。次いで、ステップＳ３１４では、判定部３４は、サンプリング幅ＮｓをＡに設定する。
【００７２】
次いで、ステップＳ３１６では、判定部３４が、歩行中地磁気データ（補正後）からＭｗ（ｉ）及びＭｗ（ｉ＋Ｎｓ）を取得し、各データ間の変化量Δｍ’を次式（１３）から算出する。
Δｍ’＝Ｍｗ（ｉ＋Ｎｓ）−Ｍｗ（ｉ）      …（１３）
【００７３】
次いで、ステップＳ３１８では、判定部３４が、ステップＳ３１６で算出した変化量Δｍ’を履歴Δｍ’１として保持する。
【００７４】
次いで、ステップＳ３２０では、判定部３４が、閾値Ｂを取得する。次いで、ステップＳ３２２では、判定部３４が、閾値ＢがΔｍ’よりも大きいか否かを判断する。ここでの判断が肯定された場合、すなわち、Δｍ’が閾値Ｂよりも小さい場合には、ステップＳ３２４に移行し、判定部３４は、Ｎｓを倍にする（Ｎｓ←Ｎｓ＋Ｎｓ）。なお、ステップＳ３２２の判断が否定された場合には、ステップＳ３３２において、ｉを１インクリメントした後、ステップＳ３１２に戻る。
【００７５】
次いで、ステップＳ３２６では、判定部３４が、歩行中地磁気データから変化量Δｍ’を上式（１３）に基づいて算出する。次いで、ステップＳ３２８では、判定部３４が、変化量Δｍ’を履歴Δｍ’２として保持する。次いで、ステップＳ３３０では、判定部３４が、Δｍ’１がΔｍ’２よりも小さいか否かを判断する。ここでの判断が否定された場合には、ステップＳ３３２を経て、ステップＳ３１２に戻るが、判断が肯定された場合、すなわち図８（ｂ）に示すように、変化量が右肩上がりになっているような場合には、ステップＳ３３１に移行する。ステップＳ３３１では、閾値ＢがΔｍ’２より小さいか否かを判断する。ここでの判断が否定された場合、ステップＳ３２４に戻り、ＮｓをＮｓだけ加さらに加算する。なお、ステップＳ３３１の判断が肯定された場合には、ステップＳ３３４に移行する。ステップＳ３３４では、判定部３４は、Ｒ（ｉ）からＲ（ｉ＋Ｎｓ）を「Ｅｔｃ（弧状歩行）」とする。
【００７６】
その後、ステップＳ３４２では、判定部３４が、ｉをｉ＋Ｎｓに設定する。そして、ステップＳ３４４では、判定部３４が、ｉがｊよりも大きいか否かを判断する。ここでの判断が否定された場合には、ステップＳ３１２に戻り、肯定された場合には、図２５の全処理（ステップＳ３０６）を終了するとともに、図２３の全処理（ステップＳ３００）を終了して、図１２のステップＳ４００に移行する。
【００７７】
（直進距離算出処理（ステップＳ４００））
図１２のステップＳ４００（直進距離算出処理）では、図２６に示すように、ステップＳ４０２において、蛇行検出処理を行うとともに、ステップＳ４０４において、直進距離算出処理を行う。以下、ステップＳ４０２，Ｓ４０４について具体的に説明する。
【００７８】
（蛇行検出処理（ステップＳ４０２））
ステップＳ４０２の蛇行検出処理では、図２７に示す処理を実行する。なお、前提として、閾値Ｅは、歩数であるものとする。すなわち、上式（９）では、閾値Ｅを時間で表していたが、図２７の処理ではこれを歩数に換算しているものとする。なお、歩数Ｅとしては、上式（９）の右辺の分子を歩幅で除した値を用いるものとする。
【００７９】
図２７の処理では、まず、ステップＳ４１０において、判定部３４が、判定結果Ｒの要素数ｈを０に設定する。次いで、ステップＳ４１１では、判定部３４が、処理を始めた歩数ｓをｈに設定する。次いで、ステップＳ４１２では、判定部３４が、バッファの要素数ｃを０に設定する。
【００８０】
次いで、ステップＳ４１４では、判定部３４が、判定結果Ｒ（ｈ）がＴｕｒｎであるか否かを判断する。ここでの判断が肯定された場合には、ステップＳ４１６に移行し、判定部３４は、Ｅ歩中の曲がり検出時の歩数を記録するバッファｂｆ［ｃ］に歩数ｈを代入する。次いで、ステップＳ４１８では、判定部３４が、ｃを１インクリメントする（ｃ←ｃ＋１）。次いで、ステップＳ４２０では、ｈを１インクリメント（ｈ←ｈ＋１）し、次のステップＳ４２２では、ｈ−ｓが閾値Ｅの距離に相当する歩数であるか否かを判断する。ここでの判断が否定されれば、ステップＳ４１４に戻る。なお、ステップＳ４１４の判断が否定された場合には、ステップＳ４１６及びステップＳ４１８を経ずに、ステップＳ４２０に移行する。
【００８１】
なお、ステップＳ４１４からステップＳ４２２までの処理は、ステップＳ４２２の判断が肯定されるまで繰り返される。この繰り返し処理により、Ｅ歩の間に存在するＴｕｒｎが、バッファｂｆ（ｃ）に格納される。
【００８２】
ステップＳ４２２の判断が肯定されて、ステップＳ４２４に移行すると、判定部３４が、ｃが２以上であるか否かを判断する。ステップＳ４２４の判断が肯定された場合、すなわち、Ｅ歩の間に、Ｔｕｒｎが複数存在していた場合には、ステップＳ４２６に移行して、バッファｂｆ（ｃ）に含まれる歩数の判定結果Ｒを「meander（蛇行）」とし、ステップＳ４３４に移行する。一方、ステップＳ４２４の判断が否定された場合には、ステップＳ４２６を経ずに、ステップＳ４３４に移行する。
【００８３】
ステップＳ４３４では、全てのＲ（ｈ）の処理が終了したか否かを判断する。ここでの判断が否定された場合には、判定部３４は、ステップＳ４３６において、ｈを１インクリメントした後、ステップＳ４１２に戻るが、肯定された場合には、図２７の処理を終了する。図２７の処理が終了すると、図２６のステップＳ４０４に移行する。
【００８４】
（直進距離算出処理（ステップＳ４０４））
ステップＳ４０４の直進距離算出処理では、図３のリンク情報算出部３６が、図２８に示す処理を実行する。まず、図２８のステップＳ４４０では、リンク情報算出部３６が、リンクの変数ｍを０に設定するとともに、判定結果Ｒの変数ｉを０に設定する。以下、(１)Ｒ（ｉ）がＳｔｒａｉｇｈｔの場合（２）Ｒ（ｉ）がＴｕｒｎの場合、（３）Ｒ（ｉ）がＥｔｃの場合、（４）Ｒ（ｉ）がｍｅａｎｄｅｒの場合、のそれぞれについて、順に説明する。
【００８５】
（１）Ｒ（ｉ）がＳｔｒａｉｇｈｔの場合
この場合、ステップＳ４４２の判断（Ｒ（ｉ）がＴｕｒｎか否か）の判断が否定されるとともに、ステップＳ４５６の判断（Ｒ（ｉ）がＥｔｃか否か）及びステップＳ４５８の判断（Ｒ（ｉ）がｍｅａｎｄｅｒか否か）が否定される。したがって、Ｒ（ｉ）がＳｔｒａｉｇｈｔである場合には、リンク情報算出部３６は、ステップＳ４６４を実行する。
【００８６】
ステップＳ４６４では、リンク情報算出部３６は、歩数を示す変数Ｓを１インクリメント（Ｓ←Ｓ＋１）する。そして、ステップＳ４５０に移行し、リンク情報算出部３６は、ｉを１インクリメント（ｉ←ｉ＋１）する。その後は、ステップＳ４５２に移行して、ｉがｊよりも大きいか否かを判断する。ここでの判断が否定された場合には、ステップＳ４４２に移行する。その後、Ｒ（ｉ）がＳｔｒａｉｇｈｔである状態が続く場合には、上記処理が繰り返されるので、繰り返しの度にＳが１ずつ増えるようになっている。
【００８７】
（２）Ｒ（ｉ）がＴｕｒｎの場合
この場合、ステップＳ４４２の判断（Ｒ（ｉ）がＴｕｒｎか否か）が肯定されるので、リンク情報算出部３６は、ステップＳ４４４、Ｓ４４６、Ｓ４４８を実行する。ステップＳ４４４では、リンク情報算出部３６が、リンク長Ｌ（ｍ）にその時点の歩数Ｓを入力する。次いで、ステップＳ４４６では、リンク情報算出部３６が、ｍを１インクリメント（ｍ←ｍ＋１）し、ステップＳ４４８では、リンク情報算出部３６が、歩数Ｓを０に戻す。次いで、ステップＳ４５０では、リンク情報算出部３６が、ｉを１インクリメント（ｉ←ｉ＋１）し、ステップＳ４５２では、リンク情報算出部３６が、ｉがｊよりも大きいか否かを判断する。ここでの判断が否定された場合には、ステップＳ４４２に戻る。
【００８８】
（３）Ｒ（ｉ）がＥｔｃの場合、
この場合、ステップＳ４４２の判断（Ｒ（ｉ）がＴｕｒｎか否か）が否定され、ステップＳ４５６の判断（Ｒ（ｉ）がＥｔｃか否か）が肯定されるので、リンク情報算出部３６は、ステップＳ４４８の処理を実行する。すなわち、リンク情報算出部３６は、ステップＳ４４８において、歩数Ｓを０に戻す。これ以降の処理は、上記（１）、（２）と同様である。
【００８９】
（４）Ｒ（ｉ）がｍｅａｎｄｅｒの場合
この場合、ステップＳ４４２の判断（Ｒ（ｉ）がＴｕｒｎか否か）が否定され、ステップＳ４５６の判断（Ｒ（ｉ）がＥｔｃか否か）が否定され、ステップＳ４５８の判断（Ｒ（ｉ）がｍｅａｎｄｅｒか否か）が肯定されるので、リンク情報算出部３６は、ステップＳ４６０、Ｓ４６２の処理を実行する。
【００９０】
ステップＳ４６０では、リンク情報算出部３６が、蛇行時の歩行角度θを算出する。なお、歩行角度θの算出方法については後述する。そして、ステップＳ４６２に移行すると、リンク情報算出部３６は、歩数ＳをＳcosθに置き換える。その後は、ステップＳ４５０に移行し、上記（１）〜（３）と同様の処理を行う。
【００９１】
そして、ステップＳ４５２の判断が肯定された段階で、ステップＳ４５４に移行する。ステップＳ４５４では、リンク長Ｌ（ｍ）にその時点の歩数Ｓを入力し、図２８の全処理を終了する。
【００９２】
以上のようにして、図２８の全処理が終了すると、図２６の処理も終了し、図１２のステップＳ５００に移行する。
【００９３】
ここで、ステップＳ４６０におけるθの算出方法について、図２９〜図３１に基づいて、詳細に説明する。本実施形態では、θを算出する際に、道路幅Ｗを考慮することとしている。
【００９４】
図２９には、θの算出方法の第１例が示されている。この図２９に示す例では、角度θとしてのθnを、歩行距離ｌnと道路幅Ｗとを用いて、次式（１４）より算出する。
θn＝sin-1（Ｗ／ｌn）          …（１４）
【００９５】
図３０には、θの算出方法の第２例が示されている。この図３０に示す例では、角度θとしてのθnを、歩行距離ｌnと店Ｓｍまでの道路に沿った方向の距離ｌｓmとを用いて次式（１５）にて表されるθnのうち、ｌn・sinθnが、道幅Ｗ以下で、かつ、｜Ｐn−Ｓｍ｜が最小となるθnとする。
θn＝cos-1（ｌｓm／ｌn）          …（１５）
【００９６】
図３１には、θの算出方法の第３例が示されている。この図３１に示す例では、角度θとしてのθn-1を、店Ｓｍのうち最も近い地点（Ｓｓｍ）までの道路方向の距離ｌｓｓmと、店Ｓｍのうち最も遠い地点（Ｓｅｍ）までの道路方向の距離ｌｓｅmとを用いて、次のように定義する。
【００９７】
すなわち、歩行距離ｌn-1を歩行している間は、蛇行していたが、ｌnが店の前を道路に直進していることが判別できるとき（例えば、ｌn-1の歩行速度がα以上である一方、ｌnの歩行速度がα以下であるとき）に次式（１６）、（１７）を満たす全てのθn-1のうち、ｌn-1・sinθn-1が、道幅Ｗ以下で、かつ、Ｐｎ−１Ｐｎベクトルが、道路に対して平行であり、かつ、｜Ｐn−１−Ｓｓｍ｜＋｜Ｐn−Ｓｅｍ｜が最小となるものとする。
ｌｓｓm＜ｌn-1・cosθn-1              …（１６）
ｌｓｅm＞ｌn-1・cosθn-1＋ｌn          …（１７）
【００９８】
なお、前述した図２８のステップＳ４６２では、原理的には、図３２に示すように蛇行しているときの歩行距離（道路に沿った方向への移動距離Ｌ）を、ｌnとcosθnとを用いて、次式（１８）に基づいて算出しているのと同義である。
Ｌ＝ｌ1・cosθ1＋ｌ2・cosθ2…＋ｌn-1・cosθn-1＋ｌn・cosθn    …（１８）
【００９９】
（リンク長Ｌ（ｍ）を出力（ステップＳ５００））
図１２に戻り、ステップＳ５００では、リンク情報算出部３６が、ステップＳ４００において入力されたリンク長Ｌ（ｍ）を、移動形状算出部２４に対して出力する。なお、ステップＳ４００では、リンク長が歩数にて定義されているが、リンク情報算出部３６は、リンク長を出力する時点で、歩数に歩幅を乗じた距離の情報を出力することとしても良い。
【０１００】
図３に戻り、移動形状算出部２４では、リンク情報（直線移動距離）と、例えば、絶対位置検出部３０で間欠的に検出される可搬型携帯端末１００の絶対位置とを用いて、移動形状を算出する。表示制御部２５は、移動形状算出部２４で算出された移動形状を、例えば、地図データと組み合わせて、表示画面６０上に表示するようにする。これにより、ユーザは、可搬型携帯端末１００の表示画面６０上で、自己が歩行した経路を確認したりすることができる。また、可搬型携帯端末１００側では、歩行した経路を利用して、情報を提示するサービスをユーザに対して提供することができるようになる。
【０１０１】
以上、詳細に説明したように、本実施形態によると、判定部３４が、加速度情報検出部５０により歩行が検知されている間に地磁気情報検出部４０により取得される地磁気の変化量に基づいて、ユーザの歩行状態を判定し、リンク情報算出部３６は、加速度情報検出部５０による検出結果と、判定部３４による判定結果と、に基づいて、ユーザの直進距離の情報を含むリンク情報を算出する。この場合、ユーザが歩行している間は、基本的には、歩行動作以外に地磁気を変化させる動作を行わないことから、歩行が検知されている間に取得される地磁気の変化量に基づいて、ユーザの歩行状態を判定することで、高精度にリンク情報を算出することができる。また、本実施形態では、ＧＰＳなどの絶対位置検出部３０を、ユーザの歩行状態の判定に用いないこととしているので、計算量を削減することができ、ひいては消費電力を低減することができる。
【０１０２】
また、本実施形態では、判定部３４は、地磁気の変化量が、歩行により生じる地磁気の変化に基づいて定められる閾値Ｂよりも大きくなった場合に、ユーザが進行方向を変えたと判定するので、左右の足を前に出すことによる地磁気の変化を、進行方向の変化とは判定しないこととすることができる。これにより、判定部３４は、高精度な判定を行うことが可能である。
【０１０３】
また、本実施形態では、判定部３４は、地磁気の変化量が閾値Ｂよりも大きい状態が、閾値Ａよりも長く続いた場合に、ユーザが進行方向を変えたと判定することとしているので、外乱によるノイズや、ユーザの細かい方向転換や３６０°旋回動作などの影響を受けずに、ユーザが進行方向を変えたことを確実に判定することが可能となる。
【０１０４】
また、本実施形態では、判定部３４は、閾値Ａを、ユーザの歩行速度、前記判定部に対する要求性能、ユーザが歩行する道路形状の少なくともいずれかを考慮して決定するので、閾値Ａを適切に決定することができる。
【０１０５】
また、本実施形態では、判定部３４は、地磁気の変化量が閾値Ｂよりも大きい状態が、閾値ＣやＤよりも長く続かなかった場合に、ユーザが進行方向を変えなかったと判定することとしている。したがって、この点からも、外乱によるノイズや、ユーザの細かい方向転換や３６０°旋回動作などの影響を受けずに、ユーザが進行方向を変えたことを確実に判定することが可能となる。
【０１０６】
また、本実施形態では、判定部３４は、閾値Ｅの間に、地磁気の変化量が閾値Ｂよりも大きくなる回数が、複数回であった場合に、ユーザが蛇行していたと判定する。これにより、リンク情報算出部３６は、当該判定結果を考慮して、リンク情報を算出することができる。
【０１０７】
また、本実施形態では、リンク情報算出部３６は、加速度情報検出部５０の検出結果から算出されるユーザの歩行距離に関する情報（歩行距離そのものや、歩数など）を、判定部３４の判定結果に基づいて補正することとしているので、リンク情報を高精度に算出することが可能となる。
【０１０８】
また、本実施形態では、リンク情報算出部３６は、ユーザが歩行する道路の道路幅Ｗを考慮して、歩行距離に関する情報を補正することとしているので、道路幅Ｗによるユーザの歩行に対する影響を考慮した補正を行うことが可能となる。
【０１０９】
なお、上記実施形態において判定部３４により直線移動と判定されるような微小な曲がりであっても、検出できた方が好ましい場合もある。そこで、判定部３４は、図１２のステップＳ３００の後に、図３３に示すような処理を行うこととしても良い。
【０１１０】
具体的には、まず、図３３のステップＳ６００において、判定部３４は、磁束密度のデータ（例えば、図３４（ａ）参照）から、直線移動中の、すなわち「Ｓｔｒａｉｇｈｔ」と判定された磁束密度Ｈ(ｎ)を抽出する（図３４（ｂ）参照）。次いで、ステップＳ６０２では、図３４（ｂ）に示すように、判定部３４が、直進開始時をｓ、直進終了時をｅとする。
【０１１１】
次いで、ステップＳ６０４では、判定部３４が、Ｈ（ｎ）のＨ（ｓ）との差分ΔＨ(ｎ)を、次式（１９）に基づいて、算出する。
ΔＨ(ｎ)＝Ｈ（ｎ）−Ｈ（ｓ）            …（１９）
【０１１２】
この差分ΔＨ（ｎ）が図３４（ｃ）に示されている。
【０１１３】
次いで、ステップＳ６０６では、判定部３４が、ΔＨ(ｎ)の積分値Ｉ(ｎ)を算出する。ここで、積分値Ｉ（ｎ）は、磁束密度の差分のエネルギ値であるともいえる。なお、図３４（ｄ）には、積分値Ｉ（ｎ）が模式的に示されている。
【０１１４】
次いで、ステップＳ６０８では、判定部３４が、Ｉ(ｎ)が閾値Ｔ以上となったか否かを判断する。ここで、閾値Ｔとしては、曲がりに必要な歩数ｐと、曲がりと判定するための閾値ｑとを用いて、Ｔ＝ｐ・ｑ／２で表される値を用いるものとする。ここでの判断が肯定された場合、ステップＳ６１０に移行し、判定部３４が、閾値Ｔを超えたときのｎの値をεとする（図３５（ａ）参照）。なお、ステップＳ６０８の判断が否定された場合には、ステップＳ６２４に移行して、判定部３４は、全ての直線移動中のＨ（ｎ）が処理済みか否かを判断する。ここでの判断が否定された場合には、ステップＳ６００に戻り、ここでの判断が肯定された場合には、図３３の全処理を終了する。
【０１１５】
一方、ステップＳ６０８の判断が肯定され、かつステップＳ６１０の処理が終了した場合、ステップＳ６１２に移行し、判定部３４は、ｓからεまでの磁束密度データを抽出する。次いで、ステップＳ６１４では、判定部３４が、磁束密度の微分値が０から０以外になるときのｎをγとする（図３５（ｂ）参照）。次いで、ステップＳ６１６では、判定部３４が、γ以降、磁束密度の微分値が０になるときのｎをδとする（図３５（ｃ）参照）。次いで、ステップＳ６１８では、判定部３４が、γにおける直進判定結果（Ｒ（ｎ）＝Ｓｔｒａｉｇｈｔ）を曲がり動作判定（Ｒ（ｎ）＝Ｔｕｒｎ）に変更する。
【０１１６】
次いで、ステップＳ６２０では、判定部３４が、全ての直線移動中のＨ（ｎ）を処理したか否かを判断する。ここでの判断が否定された場合には、ステップＳ６２２に移行して、δをｓに置き換える。そして、ステップＳ６００に戻る。一方、ステップＳ６２４の判断が、肯定された場合には、図３３の全処理を終了する。
【０１１７】
以上のような処理を行うことで、図３６（ｂ）に示すように、変化量が閾値を超える場合は勿論、図３６（ａ）に示すように、変化量が閾値を超えないような微小な曲がりの場合でも、曲がり動作と判定することが可能となる。
【０１１８】
なお、上記実施形態では、判定部３４が、地磁気の履歴を用いて、ＴｕｒｎやＳｔｒａｉｇｈｔなどを判定する場合について説明したが、これに限られるものではない。例えば、判定部３４は、リアルタイムに、地磁気を取得して、ＴｕｒｎやＳｔｒａｉｇｈｔなどを判定することとしても良い。この場合、図３７に示すような処理を行うこととする。
【０１１９】
図３７には、加速度情報検出部５０による検出信号（入力）と、判定部３４による曲がり検出信号（地磁気の変化量が閾値Ｂを超えたことの検出）（入力）と、曲がり検出修正信号（曲がりではなかったと判断したことを示す信号）（入力）と、加速度情報検出部５０からリンク情報算出部３６への実際の出力信号と、判定部３４にからリンク情報算出部３６への曲がり検出の出力信号と、が示されている。この図３７に示すように、通常は、地磁気の変化量が閾値Ｂを超えた後、その変化がノイズによるものであるか否かを判定するのに、所定時間ｔ（例えば、１０歩程度の時間）を要する。すなわち、図３７の上から２段目に示すように、曲がり検出（入力）があった後、図３７の下から１段目に示すように、ノイズでなく本来の曲がりであったことを出力するまでには時間ｔだけ要することになる。この場合、加速度情報検出部５０では、図３７の上から１段目に示すように、歩行信号を取得することになるが、加速度情報検出部５０では、図３７の下から２段目に示すように時間ｔの間は、歩行信号を出力せずに待ち状態とする。すなわち、加速度情報検出部５０は、時間ｔの間は、歩行信号の出力を遅らせることとする。そして、実際に曲がり検出された後に、待ち状態の間に計数された歩数を出力するようにする。
【０１２０】
このようにすることで、リンク情報算出部３６では、ほぼリアルタイムでリンク情報を正確に算出することができるようになる。
【０１２１】
なお、図３８に示すように、曲がり検出（入力）があった後、曲がり検出修正が行われた場合（上から３段目参照）にも、加速度情報検出部５０では、同様の処理を行うこととする。これにより、上記と同様、ほぼリアルタイムでリンク情報を正確に算出することができるようになる。
【０１２２】
なお、上記実施形態では、例えば、図５〜図９において、横軸として時間をとっているが、これに限らず、横軸としては歩行距離や歩数をとっても良い。横軸として歩行距離をとる場合、例えば、式（１）、（２）、（３）、（７），（９）などのように、速度ｖで除して閾値（Ａ，Ｃ，Ｅ）を算出している場合には、各式における速度ｖによる除算を省略して閾値（Ａ，Ｃ，Ｅ）を算出することとしても良い。また、横軸として歩数をとる場合、例えば、式（１）、（２）、（３）、（７），（９）などにおいて速度ｖによる除算を省略したうえで、予め定められている歩幅により除算することで閾値（Ａ，Ｃ，Ｅ）を算出することとしても良い。
【０１２３】
なお、上記実施形態では、方位及び方位の変化量の検出を、地磁気情報検出部４０の地磁気を用いて行うこととしたが、これに限られるものではない。例えば、地磁気情報検出部４０に代えて、可搬型携帯端末１００の角速度（３軸回りの角速度）を検出可能な角速度センサを設け、当該角速度センサの検出値から、方位及び方位の変化量を検出することとしても良い。
【０１２４】
なお、本実施形態における制御部２０の処理機能は、コンピュータによって実現することができる。その場合、制御部２０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【０１２５】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【０１２６】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１２７】
上述した実施形態は本発明の好適な実施の例である。但し、これに限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々変形実施可能である。
【符号の説明】
【０１２８】
２２  リンク情報生成部（リンク情報生成装置）
３２  歩行検出部（歩行検知部）
３４  判定部
３６  リンク情報算出部
３８  センサ出力履歴格納部（方位取得部）
１００  可搬型携帯端末
【図１】
0005569099.tif 000003
【図２】
0005569099.tif 000004
【図３】
0005569099.tif 000005
【図４】
0005569099.tif 000006
【図５】
0005569099.tif 000007
【図６】
0005569099.tif 000008
【図７】
0005569099.tif 000009
【図８】
0005569099.tif 000010
【図９】
0005569099.tif 000011
【図１０】
0005569099.tif 000012
【図１１】
0005569099.tif 000013
【図１２】
0005569099.tif 000014
【図１３】
0005569099.tif 000015
【図１４】
0005569099.tif 000016
【図１５】
0005569099.tif 000017
【図１６】
0005569099.tif 000018
【図１７】
0005569099.tif 000019
【図１８】
0005569099.tif 000020
【図１９】
0005569099.tif 000021
【図２０】
0005569099.tif 000022
【図２１】
0005569099.tif 000023
【図２２】
0005569099.tif 000024
【図２３】
0005569099.tif 000025
【図２４】
0005569099.tif 000026
【図２５】
0005569099.tif 000027
【図２６】
0005569099.tif 000028
【図２７】
0005569099.tif 000029
【図２８】
0005569099.tif 000030
【図２９】
0005569099.tif 000031
【図３０】
0005569099.tif 000032
【図３１】
0005569099.tif 000033
【図３２】
0005569099.tif 000034
【図３３】
0005569099.tif 000035
【図３４】
0005569099.tif 000036
【図３５】
0005569099.tif 000037
【図３６】
0005569099.tif 000038
【図３７】
0005569099.tif 000039
【図３８】
0005569099.tif 000040