(57)【要約】【課題】カルマンフィルタ処理を用いた位置算出の正確性を向上させること。【解決手段】携帯型電話機１を保持又は搭載した移動体の移動可能性、不定及び停止可能性それぞれについて、センサ部７０の加速度センサ７１の検出値適合範囲を設定するとともに、移動可能性の検出値適合範囲を最も広く設定することで、移動体の停止判定用のメンバシップ関数を設定する。そして、メンバシップ関数を用いたファジィ推定演算により移動体が停止状態にあるか否かを判定し、カルマンフィルタを用いた位置算出演算を行う際の誤差パラメータである観測誤差共分散行列「Ｒ」及びシステムノイズ行列「Ｑ」の値を、停止状態にあると判定したか否かに応じて変更する。そして、最小二乗法を用いた位置算出処理により算出した移動体の位置を、カルマンフィルタを用いた位置算出処理により補正することで、出力位置を決定する。【選択図】図１
2010117147.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも加速度センサを含むセンサ部を有し、移動体に保持或いは搭載されて前記移動体とともに移動する位置算出装置が実行する位置算出方法であって、
前記移動体の位置を算出することと、
前記移動体の移動可能性、不定及び停止可能性それぞれについて前記センサ部の検出値適合範囲を設定するとともに、前記移動可能性の検出値適合範囲を最も広く設定することでメンバシップ関数を設定することと、
前記メンバシップ関数を用いた所定のファジィ推定演算により前記移動体が停止状態にあるか否かを判定することと、
前記算出された位置を所定のカルマンフィルタ処理で補正する際の前記カルマンフィルタ処理に用いられる誤差パラメータの値を、停止状態にあると判定されたか否かに応じて変更することと、
前記算出された位置を前記カルマンフィルタ処理で補正することと、
を含む位置算出方法。
【請求項２】
前記停止状態にあるか否かの判定は、前記所定のファジィ推定演算を繰り返し実行した場合に連続して停止状態にあると推定したか否かによって、前記移動体が停止状態にあるか否かを判定することを含む、
請求項１に記載の位置算出方法。
【請求項３】
停止状態にあると判定された場合に、前記センサ部の検出値に基づいて重力方向を判定することを更に含む請求項１又は２に記載の位置算出方法。
【請求項４】
前記センサ部には、ジャイロセンサが含まれ、
前記センサ部の検出結果に基づいて前記移動体が旋回状態にあるか否かを判定することと、
前記誤差パラメータの値を、旋回状態にあると判定されたか否かに応じて変更することと、
を更に含む請求項１〜３の何れか一項に記載の位置算出方法。
【請求項５】
前記ジャイロセンサは、前記移動体のヨー方向の回転角を含む複数の回転角を検出し、
前記移動体の旋回可能性、不定及び直進可能性それぞれについて前記ジャイロセンサの回転角検出値の適合範囲を設定するとともに、前記旋回可能性についてのヨー方向の回転角検出値の適合範囲を最も広く設定することで旋回判定用メンバシップ関数を設定することを更に含み、
前記旋回状態にあるか否かの判定は、前記旋回判定用メンバシップ関数を用いた所定のファジィ推定演算により前記移動体が旋回状態にあるか否かを判定することを含む、
請求項４に記載の位置算出方法。
【請求項６】
前記加速度センサは、少なくとも前記移動体の正面方向の加速度を検出し、
前記加速度センサにより検出された正面方向の加速度に基づいて前記移動体の加減速及びその程度を判定することと、
前記誤差パラメータの値を、前記移動体の加減速及びその程度に応じて変更することと、
を更に含む請求項１〜５の何れか一項に記載の位置算出方法。
【請求項７】
前記移動体が停止状態にあるとの前記判定がなされた際に、前記加速度センサの正面方向の加速度検出値を較正することを更に含む請求項６に記載の位置算出方法。
【請求項８】
移動体に保持或いは搭載されて前記移動体とともに移動する位置算出装置であって、
前記移動体の位置を算出する算出部と、
少なくとも加速度センサを含むセンサ部と、
前記移動体の移動可能性、不定及び停止可能性それぞれについて前記センサ部の検出値適合範囲を設定するとともに、前記移動可能性の検出値適合範囲を最も広く設定することでメンバシップ関数を設定するメンバシップ関数設定部と、
前記メンバシップ関数を用いた所定のファジィ推定演算により前記移動体が停止状態にあるか否かを判定する判定部と、
前記算出部により算出された位置を所定のカルマンフィルタ処理で補正する際の前記カルマンフィルタ処理に用いられる誤差パラメータの値を、停止状態にあると判定されたか否かに応じて変更する変更部と、
前記算出部により算出された位置を前記カルマンフィルタ処理で補正する補正部と、
を備えた位置算出装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、位置算出方法及び位置算出装置に関する。
【背景技術】
【０００２】
測位用信号を利用した測位システムとしては、ＧＰＳ（Global Positioning System）が広く知られており、携帯型電話機やカーナビゲーション装置等に内蔵された位置算出装置に利用されている。ＧＰＳでは、複数のＧＰＳ衛星の位置や各ＧＰＳ衛星から自機までの擬似距離等の情報に基づいて自機の位置を示す３次元の座標値と時計誤差とを求める位置算出演算を行う。
【０００３】
位置算出演算としては、最小二乗法を用いた位置算出演算や、カルマンフィルタを用いた位置算出演算が知られている。このカルマンフィルタに関連する技術として、例えば特許文献１には、速度センサ及び方位センサにより検出された位置算出装置の移動速度及び方位をカルマンフィルタの入力として用いて、位置算出装置の状態を推定する技術が開示されている。
【特許文献１】米国特許第４６８０７１５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のカルマンフィルタを用いた位置算出演算では、固定的なパラメータ値を用いて計算を行うことが一般的であった。しかし、携帯型電話機やカーナビゲーション装置といった電子機器を想定した場合、携帯型電話機を所持したユーザやカーナビゲーション装置を搭載した自動車は移動するため、位置算出装置の移動状態も、停止したり、旋回したり、加速したり、減速したりと常に変化する。
【０００５】
そのため、固定的なパラメータ値を用いて位置算出演算を行ったのでは、位置算出演算により得られた算出位置が実際の位置に対して時間的に遅れる“位置遅れ”や、逆に算出位置が時間的に進む“位置進み”、算出位置が実際の位置から大きくずれる“位置飛び”といった現象が発生し、位置算出の正確性が低下するという問題があった。
【０００６】
本発明は、上述した課題に鑑みて為されたものであり、カルマンフィルタ処理を用いた位置算出の正確性を向上させることを目的としている。
【課題を解決するための手段】
【０００７】
以上の課題を解決するための第１の発明は、少なくとも加速度センサを含むセンサ部を有し、移動体に保持或いは搭載されて前記移動体とともに移動する位置算出装置が実行する位置算出方法であって、前記移動体の位置を算出することと、前記移動体の移動可能性、不定及び停止可能性それぞれについて前記センサ部の検出値適合範囲を設定するとともに、前記移動可能性の検出値適合範囲を最も広く設定することでメンバシップ関数を設定することと、前記メンバシップ関数を用いた所定のファジィ推定演算により前記移動体が停止状態にあるか否かを判定することと、前記算出された位置を所定のカルマンフィルタ処理で補正する際の前記カルマンフィルタ処理に用いられる誤差パラメータの値を、停止状態にあると判定されたか否かに応じて変更することと、前記算出された位置を前記カルマンフィルタ処理で補正することと、を含む位置算出方法である。
【０００８】
また、他の発明として、移動体に保持或いは搭載されて前記移動体とともに移動する位置算出装置であって、前記移動体の位置を算出する算出部と、少なくとも加速度センサを含むセンサ部と、前記移動体の移動可能性、不定及び停止可能性それぞれについて前記センサ部の検出値適合範囲を設定するとともに、前記移動可能性の検出値適合範囲を最も広く設定することでメンバシップ関数を設定するメンバシップ関数設定部と、前記メンバシップ関数を用いた所定のファジィ推定演算により前記移動体が停止状態にあるか否かを判定する判定部と、前記算出部により算出された位置を所定のカルマンフィルタ処理で補正する際の前記カルマンフィルタ処理に用いられる誤差パラメータの値を、停止状態にあると判定されたか否かに応じて変更する変更部と、前記算出部により算出された位置を前記カルマンフィルタ処理で補正する補正部と、を備えた位置算出装置を構成してもよい。
【０００９】
この第１の発明等によれば、移動体の移動可能性、不定及び停止可能性それぞれについてセンサ部の検出値適合範囲を設定するとともに、移動可能性の検出値適合範囲を最も広く設定することでメンバシップ関数を設定する。そして、メンバシップ関数を用いた所定のファジィ推定演算により移動体が停止状態にあるか否かを判定する。一方、算出した移動体の位置は、カルマンフィルタ処理で補正する。しかし、そのカルマンフィルタ処理で用いる誤差パラメータの値は、先の判定で停止状態にあると判定されたか否かに応じて変更する。
【００１０】
ファジィ推定演算において、移動可能性の検出値適合範囲を最も広く設定したメンバシップ関数を用いるのは、移動体は停止していることよりも移動していることの方が多いことを考慮したものである。センサ部の検出結果に基づいてファジィ推定演算を行うことで、移動体が停止状態にあるか否かを適切に判定することができる。そして、停止状態にあると判定した場合に、カルマンフィルタ処理に用いる誤差パラメータの値を変更する。これにより、停止状態に適合した誤差パラメータでカルマンフィルタ処理が実行されるため、移動体が停止しているか否かに応じた正確性の高い位置算出を実現できるようになる。
【００１１】
また、第２の発明として、第１の発明の位置算出方法であって、前記停止状態にあるか否かの判定は、前記所定のファジィ推定演算を繰り返し実行した場合に連続して停止状態にあると推定したか否かによって、前記移動体が停止状態にあるか否かを判定することを含む位置算出方法を構成してもよい。
【００１２】
この第２の発明によれば、ファジィ推定演算を繰り返し実行した場合に連続して停止状態にあると推定したか否かによって、移動体が停止状態にあるか否かを判定する。これにより、移動体の停止判定の確実性を高めることができる。
【００１３】
また、第３の発明によれば、第１又は第２の発明の位置算出方法であって、停止状態にあると判定された場合に、前記センサ部の検出値に基づいて重力方向を判定することを更に含む位置算出方法を構成してもよい。
【００１４】
この第３の発明によれば、停止状態にあると判定された場合に、センサ部の検出値に基づいて重力方向を判定する。移動体の停止状態においては、加速度センサにより検出された加速度が最も大きい方向が重力方向である可能性が高い。そのため、センサ部の検出値に基づくことで重力方向を適切に判定することが可能となる。
【００１５】
また、第４の発明として、第１〜第３の何れかの発明の位置算出方法であって、前記センサ部には、ジャイロセンサが含まれ、前記センサ部の検出結果に基づいて前記移動体が旋回状態にあるか否かを判定することと、前記誤差パラメータの値を、旋回状態にあると判定されたか否かに応じて変更することと、を更に含む位置算出方法を構成してもよい。
【００１６】
この第４の発明によれば、ジャイロセンサを含むセンサ部の検出結果に基づいて移動体が旋回状態にあるか否かを判定し、誤差パラメータの値を、旋回状態にあると判定されたか否かに応じて変更する。例えば、移動体が旋回状態にある場合は方位の誤差が小さいものと推定して、旋回状態にない場合に比べて方位に対する誤差パラメータの値を小さく設定すれば好適である。
【００１７】
また、第５の発明として、第４の発明の位置算出方法であって、前記ジャイロセンサは、前記移動体のヨー方向の回転角を含む複数の回転角を検出し、前記移動体の旋回可能性、不定及び直進可能性それぞれについて前記ジャイロセンサの回転角検出値の適合範囲を設定するとともに、前記旋回可能性についてのヨー方向の回転角検出値の適合範囲を最も広く設定することで旋回判定用メンバシップ関数を設定することを更に含み、前記旋回状態にあるか否かの判定は、前記旋回判定用メンバシップ関数を用いた所定のファジィ推定演算により前記移動体が旋回状態にあるか否かを判定することを含む位置算出方法を構成してもよい。
【００１８】
この第５の発明によれば、ジャイロセンサは、移動体のヨー方向の回転角を含む複数の回転角を検出する。そして、移動体の旋回可能性、不定及び直進可能性それぞれについてジャイロセンサの回転角検出値の適合範囲を設定し、旋回可能性についてのヨー方向の回転角検出値の適合範囲を最も広く設定することで旋回判定用メンバシップ関数を設定する。そして、旋回判定用メンバシップ関数を用いた所定のファジィ推定演算により、移動体が旋回状態にあるか否かを判定する。
【００１９】
ほとんどの場合、移動体はヨー軸回りに回転（すなわち旋回）するものと考えられる。このため、旋回可能性についてのヨー方向の回転角検出値の適合範囲を最も広く設定しておき、移動体がヨー軸回りに回転した場合に、移動体が旋回状態にあると判定し易くする。
【００２０】
また、第６の発明として、第１〜第５の何れかの発明の位置算出方法であって、前記加速度センサは、少なくとも前記移動体の正面方向の加速度を検出し、前記加速度センサにより検出された正面方向の加速度に基づいて前記移動体の加減速及びその程度を判定することと、前記誤差パラメータの値を、前記移動体の加減速及びその程度に応じて変更することと、を更に含む位置算出方法を構成してもよい。
【００２１】
この第６の発明によれば、加速度センサは、少なくとも移動体の正面方向の加速度を検出する。そして、加速度センサにより検出された正面方向の加速度に基づいて移動体の加減速及びその程度を判定し、誤差パラメータの値を、移動体の加減速及びその程度に応じて変更する。例えば、正面方向の加速度が所定の閾値を超えている場合は、移動体は強加速状態にあると判定する。そして、この場合は、例えば、移動速度に対する誤差が大きいものと推定して、移動速度に対する誤差パラメータを大きな値に変更すれば好適である。
【００２２】
また、第７の発明として、第６の発明の位置算出方法であって、前記移動体が停止状態にあるとの前記判定がなされた際に、前記加速度センサの正面方向の加速度検出値を較正することを更に含む位置算出方法を構成してもよい。
【００２３】
この第７の発明によれば、移動体が停止状態にあるとの判定がなされた際に、加速度センサの正面方向の加速度検出値を較正する。移動体が停止していれば移動体の正面方向の加速度は０となるため、停止状態にあると判定した場合は加速度検出値を較正することにしたものである。
【発明を実施するための最良の形態】
【００２４】
以下、図面を参照して、位置算出装置を備えた電子機器の一種である携帯型電話機に本発明を適用した場合の実施形態について説明する。また、携帯型電話機は、ユーザによって携帯されて移動したり、自動車等に配置設定されて移動する。このため、本実施形態では、携帯型電話機を保持或いは搭載した人や物のことを“移動体”として説明し、携帯型電話機が検出する各種方向を移動体の方向として説明する。尚、本発明を適用可能な実施形態が以下説明する実施形態に限定されるわけでないことは勿論である。
【００２５】
１．概略構成
図１及び図２は、携帯型電話機１の概略外観図である。携帯型電話機１は、表示部６０が蓋部に一体化されて構成された折り畳み式の携帯電話機であり、蓋部を開いた状態において、携帯型電話機１のユーザが表示面を時計回り或いは反時計回りに回転させるように蓋部を回転させることで、表示部６０を縦向き及び横向きの何れかの姿勢にして画面を見ることができるように構成されている。携帯型電話機１は、操作部５０を介したユーザ操作に従って、当該携帯型電話機１自身の位置を算出する位置算出演算を行い、その算出位置を表示部６０に表示させる。
【００２６】
蓋部には、加速度センサ７１、ジャイロセンサ７３及び方位センサ７５を含むセンサ部７０が内蔵配置されている。加速度センサ７１は３軸の加速度センサであり、例えば表示部６０を縦向きの姿勢（図１の姿勢）とした場合に、表示部６０に向かって前後方向が「ｘ軸」、上下方向が「ｙ軸」、左右方向が「ｚ軸」となるように右手系の直交３軸座標系（ローカル座標系）が対応付けられている。また、ジャイロセンサ７３は３軸の軸回りの角速度を検出可能な角速度センサであり、加速度センサ７１と同一の座標系が対応付けられている。
【００２７】
携帯型電話機１は、センサ部７０の検出結果を用いて、ファジィ（Fuzzy）推定演算に基づいて移動体である携帯型電話機１自身の移動状態（停止状態、旋回状態、加減速状態等）を判定する。この際、表示部６０が縦向き及び横向きの何れの姿勢であるかに応じて、地球に対するセンサ部７０の座標系の向きが変化する。そのため、本実施形態では、停止状態にあると判定された際に、センサ部７０に対応付けられた検出軸のうち、移動体である携帯型電話機１自身の重力方向の軸（以下、「重力軸」と称す。）及び正面方向の軸（以下、「正面軸」と称す。）がどの軸に対応するかを判断する。そして、その判断結果を用いて各軸を定義して、移動体の旋回状態及び加減速状態を判定する。すなわち、各軸の判断は、携帯型電話機１の相対姿勢を判断することと等価である。
【００２８】
尚、以下の説明では、正面軸を「Ｘ軸」、重力軸を「Ｚ軸」、正面軸及び重力軸に直交する軸を「Ｙ軸」とし、携帯型電話機１に対応付けられたローカル座標系における３軸「ｘ軸」、「ｙ軸」及び「ｚ軸」と区別して説明する。
【００２９】
２．機能構成
図３は、携帯型電話機１の機能構成を示すブロック図である。携帯型電話機１は、ＧＰＳアンテナ１０と、ＧＰＳ受信部２０と、ホストＣＰＵ（Central Processing Unit）４０と、操作部５０と、表示部６０と、センサ部７０と、ＲＯＭ（Read Only Memory）８０と、ＲＡＭ（Random Access Memory）９０と、携帯電話用アンテナ１００と、携帯電話用無線通信回路部１１０とを備えて構成される。
【００３０】
ＧＰＳアンテナ１０は、ＧＰＳ衛星から発信されているＧＰＳ衛星信号を含むＲＦ（Radio Frequency）信号を受信するアンテナであり、受信した信号をＧＰＳ受信部２０に出力する。尚、ＧＰＳ衛星信号は、衛星毎に異なる拡散符号の一種であるＰＲＮ（Pseudo Random Noise）コードで直接スペクトラム拡散方式により変調された１．５７５４２［ＧＨｚ］の通信信号である。ＰＲＮコードは、コード長１０２３チップを１ＰＮフレームとする繰返し周期１ｍｓの擬似ランダム雑音符号である。
【００３１】
ＧＰＳ受信部２０は、ＧＰＳアンテナ１０から出力された信号に基づいて携帯型電話機１の位置を計測する位置算出回路であり、いわゆるＧＰＳ受信機に相当する機能ブロックである。ＧＰＳ受信部２０は、ＲＦ（Radio Frequency）受信回路部２１と、ベースバンド処理回路部３０とを備えて構成される。尚、ＲＦ受信回路部２１と、ベースバンド処理回路部３０とは、それぞれ別のＬＳＩ（Large Scale Integration）として製造することも、１チップとして製造することも可能である。
【００３２】
ＲＦ受信回路部２１は、ＲＦ信号の処理回路ブロックであり、所定の発振信号を分周或いは逓倍することで、ＲＦ信号乗算用の発振信号を生成する。そして、生成した発振信号を、ＧＰＳアンテナ１０から出力されたＲＦ信号に乗算することで、ＲＦ信号を中間周波数の信号（以下、「ＩＦ（Intermediate Frequency）信号」と称す。）にダウンコンバートし、ＩＦ信号を増幅等した後、Ａ／Ｄ変換器でデジタル信号に変換して、ベースバンド処理回路部３０に出力する。
【００３３】
ベースバンド処理回路部３０は、ＲＦ受信回路部２１から出力されたＩＦ信号に対して相関処理等を行ってＧＰＳ衛星信号を捕捉・抽出し、データを復号して航法メッセージや時刻情報等を取り出す回路部である。ベースバンド処理回路部３０は、演算制御部３１と、ＲＯＭ３５と、ＲＡＭ３７とを備えて構成される。また、演算制御部３１は、メジャメント取得演算部３３を備えて構成される。
【００３４】
メジャメント取得演算部３３は、ＲＦ受信回路部２１から出力された受信信号（ＩＦ信号）から、ＧＰＳ衛星信号の捕捉・追尾を行う回路部であり、相関演算部３３１を備えて構成されている。メジャメント取得演算部３３は、捕捉・追尾したＧＰＳ衛星信号の受信周波数やコード位相等の情報を取得し、メジャメント実測値としてホストＣＰＵ４０に出力する。
【００３５】
相関演算部３３１は、受信信号に含まれるＰＲＮコードとレプリカコードとの相関を、例えばＦＦＴ演算を用いて算出し積算する相関演算処理を行って、ＧＰＳ衛星信号を捕捉する。レプリカコードとは、擬似的に発生させた捕捉しようとするＧＰＳ衛星信号に含まれるＰＲＮコードを模擬した信号である。
【００３６】
捕捉しようとするＧＰＳ衛星信号が間違いなければ、そのＧＰＳ衛星信号に含まれるＰＲＮコードとレプリカコードとは一致し（捕捉成功）、間違っていれば一致しない（捕捉失敗）。そのため、算出された相関値のピークを判定することによってＧＰＳ衛星信号の捕捉が成功したか否かを判定でき、レプリカコードを次々に変更して、同じ受信信号との相関演算を行うことで、ＧＰＳ衛星信号を捕捉することが可能となる。
【００３７】
また、相関演算部３３１は、上述した相関演算処理を、レプリカコードの発生信号の周波数及び位相を変更しつつ行っている。レプリカコードの発生信号の周波数と受信信号の周波数とが一致し、且つ、ＰＲＮコードとレプリカコードとの位相が一致した場合に、相関値が最大となる。
【００３８】
より具体的には、捕捉対象のＧＰＳ衛星信号に応じた所定の周波数及び位相の範囲をサーチ範囲として設定する。そして、このサーチ範囲内で、ＰＲＮコードの開始位置（コード位相）を検出するための位相方向の相関演算と、周波数を検出するための周波数方向の相関演算とを行う。サーチ範囲は、例えば、周波数についてはＧＰＳ衛星信号の搬送波周波数である１．５７５４２［ＧＨｚ］を中心とする所定の周波数掃引範囲、位相についてはＰＲＮコードのチップ長である１０２３チップのコード位相範囲内に定められる。
【００３９】
ホストＣＰＵ４０は、ＲＯＭ８０に記憶されているシステムプログラム等の各種プログラムに従って携帯型電話機１の各部を統括的に制御するプロセッサである。また、ホストＣＰＵ４０は、位置算出処理を行って携帯型電話機１の位置を計測して表示部６０に表示させる出力位置を決定し、当該出力位置をプロットしたナビゲーション画面を生成して表示部６０に表示させる。
【００４０】
操作部５０は、例えばタッチパネルやボタンスイッチ等により構成される入力装置であり、押下されたキーやボタンの信号をホストＣＰＵ４０に出力する。この操作部５０の操作により、目的地の入力やナビゲーション画面の表示要求等の各種指示入力がなされる。
【００４１】
表示部６０は、ＬＣＤ（Liquid Crystal Display）等により構成され、ホストＣＰＵ４０から入力される表示信号に基づいた各種表示を行う表示装置である。表示部６０には、ナビゲーション画面や時刻情報等が表示される。
【００４２】
センサ部７０は、移動体の移動状態を検出するための各種センサで構成されており、例えば、加速度センサ７１と、ジャイロセンサ７３と、方位センサ７５とを備えている。
【００４３】
加速度センサ７１は、直交３軸の加速度を検出するセンサであり、歪みゲージ式や圧電式の何れであってもよく、またＭＥＭＳ（Micro Electro Mechanical Systems）センサであってもよい。
【００４４】
ジャイロセンサ７３は、直交３軸の角速度を検出するセンサであり、加速度センサ７１と軸方向が同一となるように配置設定されている。尚、加速度センサ７１とジャイロセンサ７３とは一体型のセンサであってもよい。
【００４５】
また、方位センサ７５は、例えば磁場の強さによって抵抗値やインピーダンス値が増減する素子等で構成される２軸の地磁気センサであり、移動体の方位角を検出する。
【００４６】
ＲＯＭ８０は、読み取り専用の不揮発性の記憶装置であり、ホストＣＰＵ４０が携帯型電話機１を制御するためのシステムプログラムや、ナビゲーション機能を実現するための各種プログラムやデータ等を記憶している。
【００４７】
ＲＡＭ９０は、読み書き可能な揮発性の記憶装置であり、ホストＣＰＵ４０により実行されるシステムプログラム、各種処理プログラム、各種処理の処理中データ、処理結果などを一時的に記憶するワークエリアを形成している。
【００４８】
携帯電話用アンテナ１００は、携帯型電話機１の通信サービス事業者が設置した無線基地局との間で携帯電話用無線信号の送受信を行うアンテナである。
【００４９】
携帯電話用無線通信回路部１１０は、ＲＦ変換回路、ベースバンド処理回路等によって構成される携帯電話の通信回路部であり、携帯電話用無線信号の変調・復調等を行うことで、通話やメールの送受信等を実現する。
【００５０】
３．データ構成
図４は、ＲＯＭ８０に格納されたデータの一例を示す図である。ＲＯＭ８０には、ホストＣＰＵ４０により読み出され、メイン処理（図１８参照）として実行されるメインプログラム８００と、停止判定用データ８１０と、旋回判定用データ８２０とが記憶されている。
【００５１】
また、メインプログラム８００には、停止判定処理（図１９参照）として実行される停止判定プログラム８０１と、旋回判定処理（図２０参照）として実行される旋回判定プログラム８０２と、加減速判定処理（図２１参照）として実行される加減速判定プログラム８０３と、位置算出処理（図２２参照）として実行される位置算出プログラム８０４と、ＬＳ（Least Squared）位置算出処理（図２３参照）として実行されるＬＳ位置算出プログラム８０５と、ＫＦ（Kalman Filter）位置算出処理（図２４参照）として実行されるＫＦ位置算出プログラム８０６と、ＫＦパラメータ設定処理（図２５参照）として実行されるＫＦパラメータ設定プログラム８０７とがサブルーチンとして含まれている。
【００５２】
メイン処理とは、ホストＣＰＵ４０が、停止判定処理、旋回判定処理及び加減速判定処理を行って移動体の移動状態を判定するとともに、判定した移動状態に応じて可変に設定したＫＦパラメータを利用した位置算出処理を行うことで、移動体の位置を算出して出力する処理である。
【００５３】
停止判定処理とは、ホストＣＰＵ４０が、加速度センサ７１の検出結果を用いて、ファジィ推定（ファジィ理論）に基づいて移動体が停止状態にあるか否かを判定する処理である。旋回判定処理とは、ホストＣＰＵ４０が、ジャイロセンサ７３の検出結果を用いて、ファジィ推定に基づいて移動体が旋回状態にあるか否かを判定する処理である。また、加減速判定処理とは、ホストＣＰＵ４０が、加速度センサ７１の検出結果を用いて移動体が加減速状態にあるか否かを判定する処理である。
【００５４】
位置算出処理とは、ホストＣＰＵ４０が、最小二乗法を用いた位置算出処理（ＬＳ位置算出処理）を行って暫定的な算出位置を求め、当該算出位置を基礎値としてカルマンフィルタを用いた位置算出処理（ＫＦ位置算出処理）を行うことで、最終的に表示部６０に出力させる位置を決定する処理である。
【００５５】
位置算出処理において、ホストＣＰＵ４０は、ＬＳ位置算出処理を行ってＥＣＥＦ（Earth Centered Earth Fixed）座標系における移動体の位置ベクトル及び移動速度ベクトルを求める。そして、このＥＣＥＦ座標系における処理結果に対して所定の座標変換演算を行うことで、ＥＮＵ（East North Up）座標系における移動体の位置及び移動速度を算出する。そして、算出した位置及び移動速度と、方位センサ７５により検出された方位及びこの方位の時間変化量である時間毎方位とを観測情報とするＫＦ位置算出処理を行うことで、ＥＮＵ座標系における移動体の位置を出力位置として求める。
【００５６】
ＥＣＥＦ座標系は、地球中心地球固定座標系として知られ、地球の中心（地球重心）を原点とし、地球自転軸をＺＥ軸、グリニジ子午面と赤道面とが交わる軸をＸＥ軸、これらの２軸と直交する軸をＹＥ軸とする３軸直交座標系である。また、ＥＮＵ座標系は、東北上座標系として知られ、地表面付近のある点を原点として、天頂方向（地表面に対する垂直線の上方向）をＵ軸、東方向をＥ軸、北方向をＮ軸とする３軸直交座標系である。
【００５７】
ＥＮＵ座標系における移動体の位置、移動速度及び方位は、ＥＣＥＦ座標系において求めた移動体の位置ベクトル及び移動速度ベクトルに対して公知の座標変換演算（行列演算）を行うことで求めることができる。尚、本明細書では、「移動速度」というときは方位（移動方向）を含まないスカラー量を表すものとし、「移動速度ベクトル」というときは方位を含むベクトル量を表すものとする。
【００５８】
ＫＦパラメータ設定処理とは、ホストＣＰＵ４０が、停止判定処理、旋回判定処理及び加減速判定処理の処理結果に基づいて、ＫＦ位置算出処理において使用する観測誤差共分散行列「Ｒ」やシステムノイズ行列「Ｑ」といったパラメータの値を設定・変更する処理である。これらの処理については、フローチャートを用いて詳細に後述する。
【００５９】
停止判定用データ８１０は、停止判定処理においてホストＣＰＵ４０が停止判定を行う際に使用するデータであり、停止判定用ファジィルール８１１と、停止判定用メンバシップ関数８１３と、停止判定用判定結果テーブル８１５とがこれに含まれる。
【００６０】
図６は、停止判定用ファジィルール８１１のデータ構成の一例を示す図である。停止判定用ファジィルール８１１には、ルールの番号８１１１と、「もし〜なら（if〜）」に相当する部分である前件部８１１３と、「・・・する（then・・・）」に相当する部分である後件部８１１５とが対応付けて記憶されている。
【００６１】
前件部８１１３には、加速度センサ７１により検出された３軸の加速度それぞれについて、加速度の変化量（例えば１ミリ秒の間における変化量）を１秒分積算した積算値（以下、ｘ軸方向の加速度の積算値を「ＡＪｘ」、ｙ軸方向の加速度の積算値を「ＡＪｙ」、ｚ軸方向の加速度の積算値を「ＡＪｚ」と表す。）と、「高い（移動可能性）」、「中間（不定）」、「低い（停止可能性）」の３つの基準との組合せが条件として定められている。
【００６２】
また、後件部８１１５には、移動体が移動していることを示す「移動」、移動しているか停止しているかが不明であることを示す「不定」、停止していることを示す「停止」の何れかが前件部８１１３と対応付けて記憶されている。
【００６３】
例えば、「ＡＪｘ」、「ＡＪｙ」及び「ＡＪｚ」が全て「中間」である場合は、４番目のルールに適合するため「移動」と判定され、「ＡＪｘ」が「中間」で、「ＡＪｙ」、「ＡＪｚ」が「低い」である場合は、７番目のルールに適合するため「不定」と判定される。また、「ＡＪｘ」、「ＡＪｙ」及び「ＡＪｚ」が全て「低い」である場合は、１１番目のルールに適合するため「停止」と判定される。
【００６４】
図７は、停止判定用メンバシップ関数８１３の一例を示す図である。停止判定用メンバシップ関数８１３には、停止判定用ファジィルール８１１の前件部８１１３に対応するメンバシップ関数と、後件部８１１５に対応するメンバシップ関数とが含まれる。前件部８１１３のメンバシップ関数は、横軸を「ＡＪｘ」、縦軸を「適合度」とするｘ軸用の関数と、横軸を「ＡＪｙ」、縦軸を「適合度」とするｙ軸用の関数と、横軸を「ＡＪｚ」、縦軸を「適合度」とするｚ軸用の関数とを有している。
【００６５】
これらの各関数は、前件部８１１３の「低い（停止可能性）」に対応する検出値適合範囲と、「中間（不定）」に対応する検出値適合範囲と、「高い（移動可能性）」に対応する検出値適合範囲との３つの適合範囲が合成された全体としてＷ型の形状となっている。何れの関数においても、「高い（移動可能性）」の検出値適合範囲が最も広く設定されている。また、適合度は、「０」〜「１」の範囲の値として定められている。前件部８１１３のメンバシップ関数は、入力値としての「ＡＪｘ」、「ＡＪｙ」及び「ＡＪｚ」のファジィ化を行うために利用される。
【００６６】
後件部８１１５のメンバシップ関数は、横軸を「出力」、縦軸を「集積値」とする関数であり、図７では、後件部８１１５の「停止」に対応する三角形の山と、「不定」に対応する三角形の山と、「移動」に対応する三角形の山との３つの山として表される。また、集積値は、「０」〜「１」の範囲の値として定められている。
【００６７】
ファジィ推定では、後件部８１１５に定められた条件（「停止」、「不定」及び「移動」）の集合（ファジィ集合）の重心を求めることによって最終的な出力値を決定する「重心法」と呼ばれる非ファジィ化の手法が一般的に用いられている。本実施形態でも、この重心法を用いて非ファジィ化を行う。後件部８１１５のメンバシップ関数は、この非ファジィ化を行うために利用される。
【００６８】
図８は、停止判定用判定結果テーブル８１５のテーブル構成の一例を示す図である。停止判定用判定結果テーブル８１５には、条件の番号８１５１と、条件８１５３と、判定結果８１５５とが対応付けて記憶されている。条件８１５３は、非ファジィ化により求められた出力値が満たすべき条件として定められた条件である。また、判定結果８１５５は、移動体の移動状態の最終的な判定結果であり、「移動」又は「停止」が記憶されている。
【００６９】
例えば、非ファジィ化により求めた出力値が「０．９５以上」である場合は、移動体は移動状態にあると判定される。また、出力値が「０．０５以下」である場合は、移動体は停止状態にあると判定される。
【００７０】
図９〜図１１を参照して、ファジィ推定に基づく停止判定の具体例を説明する。ここでは、「ＡＪｘ＝１０、ＡＪｙ＝１１、ＡＪｚ＝９」である場合について説明する。
【００７１】
先ず、「ＡＪｘ」、「ＡＪｙ」及び「ＡＪｚ」それぞれについて、前件部８１１３のメンバシップ関数を用いて適合度を判定する。具体的には、前件部のメンバシップ関数において、「ＡＪｘ＝１０」、「ＡＪｙ＝１１」及び「ＡＪｚ＝９」が、それぞれ「低い」、「中間」及び「高い」の何れの検出値適合範囲において値をとるかを判定する。
【００７２】
図９では、「ＡＪｘ」については、「低い」の検出値適合範囲において「０．２３」の値をとるが、「中間」、「高い」の検出値適合範囲においては値をとらない。この場合、「ＡＪｘ」の適合度は「低い＝０．２３，中間＝０，高い＝０」となる。同様に「ＡＪｙ」、「ＡＪｚ」についても適合度を判定すると、「ＡＪｙ」については、「低い＝０．１，中間＝０．２５，高い＝０」となり、「ＡＪｚ」については、「低い＝０．２４，中間＝０，高い＝０」となる。
【００７３】
次に、停止判定用ファジィルール８１１の前件部８１１３を参照して、先に判定した適合度が何れの番号８１１１のルールに該当するかを判定する。具体的には、「ＡＪｘ」は「低い」において値をとり、「ＡＪｙ」は「低い」及び「中間」において値をとり、「ＡＪｚ」は「低い」において値をとるため、「ＡＪｘ＝低い、ＡＪｙ＝中間、ＡＪｚ＝低い」と、「ＡＪｘ＝低い、ＡＪｙ＝低い、ＡＪｚ＝低い」の２つの組合せに対応するルールに適合する。すなわち、図１０に示すように、９番目と１１番目のルールに適合することになる。
【００７４】
このとき、適合したルールにおける「ＡＪｘ」、「ＡＪｙ」及び「ＡＪｚ」の適合度のうちの最小値を選択して、当該ルールにおける候補値とする。その結果、９番目のルールの候補値は「０．２３」、１１番目のルールの候補値は「０．１」となる。また、他のルールの候補値は全て「０」となる。
【００７５】
候補値が決まったら、後件部８１１５における「移動」、「不定」及び「停止」の３つの条件それぞれについて、候補値の中から最大値を抽出して、当該条件における集積値に決定する。その結果、集積値は、「移動＝０，不定＝０．２３，停止＝０．１」となる。その後、決定した集積値に対して非ファジィ化を行って出力値を決定する。ここでは、重心法を用いて出力値を決定する。重心法には公知の算出演算が存在する。本実施形態では、その公知の算出演算に従って重心を算出するが、重心法の概念を簡単に説明する。
【００７６】
先ず、後件部８１１５のメンバシップ関数において、対応する条件の山を対応する集積値で切り取る。具体的には、図１１に示すように、「停止」の集積値は「０．１」であるため、「停止」の山を縦軸の「０．１」のラインで切り取ることにより台形Ｔ１を得る。同様に、「不定」の集積値は「０．２３」であるため、「不定」の山を縦軸の「０．２３」のラインで切り取ることにより台形Ｔ２を得る。また、「移動」の集積値は「０」であるため、「移動」の山を縦軸の「０」のラインで切り取ることにより線分Ｓを得る。
【００７７】
次いで、台形Ｔ１、台形Ｔ２及び線分Ｓが描かれた位置をそのままとして、台形Ｔ１、台形Ｔ２及び線分Ｓを１つの図形と見立てた全体の重心を求める。その結果、図１１の×印で示した部分が重心として求められ、この重心に対応する横軸の値は「０．３５」であるため、出力値は「０．３５」となる。
【００７８】
出力値が求まったら、図８の停止判定用判定結果テーブル８１５を参照し、出力値が何れの条件８１５３に適合するかを判定する。その結果、３番目と４番目の条件に適合することになり、前回の判定結果が移動であった場合は、最終的な判定結果８１５５は「移動」となり、前回の判定結果が停止であった場合は、最終的な判定結果８１５５は「停止」となる。
【００７９】
停止判定処理を行った結果、停止状態にあると判定された場合には、ホストＣＰＵ４０は、重力軸判定処理と正面軸判定処理とを行って、センサ部７０に対応付けられた「ｘ軸」、「ｙ軸」及び「ｚ軸」の３軸うち、重力軸に対応する軸（Ｚ軸）と、正面軸に対応する軸（Ｘ軸）とがそれぞれどの軸に対応しているかを判定する。
【００８０】
重力軸判定処理では、加速度センサ７１により検出された３軸の加速度のうち値が最大となった軸を特定する。そして、他の２軸の加速度が、特定した軸の加速度の１５％以下の値となっているかを判定し、この条件を満たす場合は、特定した軸を重力軸（Ｚ軸）と判定する。また、条件を満たさないと判定した場合は、重力軸の判定は不可とし、前回重力軸であると判定した軸を重力軸（Ｚ軸）とみなす。
【００８１】
また、正面軸判定処理では、判定結果が停止状態から移動状態に変化した際に、加速度センサ７１により検出された３軸の加速度のうち値が最大となった軸を正面軸（Ｘ軸）と判定する。すなわち、移動体が停止している状態から移動し始めた方向を特定して正面軸（Ｘ軸）と判定する。
【００８２】
図４の説明に戻って、旋回判定用データ８２０は、旋回判定処理においてホストＣＰＵ４０が旋回判定を行うために使用するデータであり、旋回判定用ファジィルール８２１と、旋回判定用メンバシップ関数８２３と、旋回判定用判定結果テーブル８２５とがこれに含まれる。
【００８３】
図１２は、旋回判定用ファジィルール８２１のデータ構成の一例を示す図である。旋回判定用ファジィルール８２１には、ルールの番号８２１１と、当該ルールにおける前件部８２１３と、当該ルールにおける後件部８２１５とが対応付けて記憶されている。
【００８４】
前件部８２１３には、ジャイロセンサ７３により検出された３軸の角速度のうち、正面軸（Ｘ軸）と、重力軸（Ｚ軸）と、Ｘ軸及びＺ軸に直交する軸（Ｙ軸）とに対応する角速度の絶対値（以下、Ｘ軸方向の角速度の絶対値を「ＧＪＸ」、Ｙ軸方向の角速度の絶対値を「ＧＪＹ」、Ｚ軸方向の角速度の絶対値を「ＧＪＺ」と表す。）それぞれについて、「高い（旋回可能性）」、「中間（不定）」及び「低い（直進可能性）」の３つの基準との組合せが条件として記憶されている。
【００８５】
また、後件部８２１５には、移動体が旋回状態にあることを示す「旋回」、旋回しているか直進しているかが不明であることを示す「不定」、直進状態にあることを示す「直進」の何れかが前件部８２１３と対応付けて記憶されている。
【００８６】
例えば、「ＧＪＺ」が「高い」である場合は、１番目のルールに適合するため「ＧＪＸ」、「ＧＪＹ」の値に関わりなく「旋回」と判定され、「ＧＪＸ」が「低い」で、「ＧＪＹ」、「ＧＪＺ」が「中間」である場合は、８番目のルールに適合するため「不定」と判定される。また、「ＧＪＸ」、「ＧＪＹ」及び「ＧＪＺ」が全て「低い」である場合は、１１番目のルールに適合するため「直進」と判定される。
【００８７】
図１３は、旋回判定用メンバシップ関数８２３の一例を示す図である。旋回判定用メンバシップ関数８２３には、旋回判定用ファジィルール８２１の前件部８２１３に対応するメンバシップ関数と、後件部８２１５に対応するメンバシップ関数とが含まれる。前件部８２１３のメンバシップ関数は、横軸を「ＧＪＸ」、縦軸を「適合度」とするＸ軸用の関数と、横軸を「ＧＪＹ」、縦軸を「適合度」とするＹ軸用の関数と、横軸を「ＧＪＺ」、縦軸を「適合度」とするＺ軸用の関数とを含んでいる。
【００８８】
これらの各関数は、前件部８２１３の「低い（直進可能性）」に対応する適合範囲と、「中間（不定）」に対応する適合範囲と、「高い（旋回可能性）」に対応する適合範囲との３つの適合範囲が合成された全体としてＷ型の形状となっている。何れの関数においても、「高い（旋回可能性）」の適合範囲が最も広く設定されている。また、適合度は、「０」〜「１」の範囲の値として定められている。
【００８９】
特徴的であることの１つは、各軸のメンバシップ関数について、図１３に示した横軸のスケールが異なっている点に表れている。Ｚ軸は重力軸（ヨー軸）であり、移動体はＺ軸回りに回転する場合がほとんどであると考えられる。そのため、Ｚ軸回りの角速度については「低い」、「中間」、「高い」の何れのグループに分類されるかを精細に判定することが必要となるのに対し、ほとんど回転しないであろうＸ軸とＹ軸回りの角速度については、大雑把な判定で足りるものと考えられる。そのため、Ｚ軸については、他の２軸に比べて横軸のスケールが狭められており、他の２軸のメンバシップ関数に比べて、「高い（旋回可能性）」についてのＺ軸の適合範囲が最も広く設定されている。
【００９０】
例えば、Ｘ軸回り、Ｙ軸回り、Ｚ軸回りの角速度が同じ「２０」という値をとったとしても、図１３のメンバシップ関数に従えば、Ｘ軸及びＹ軸については「低い」のグループに分類されるのに対し、Ｚ軸については「高い」のグループに分類されることになる。
【００９１】
尚、これに対して、前述した停止判定処理は、重力軸及び正面軸を特定するために行う処理であり、センサ部７０に対応付けられた３軸（ｘ軸、ｙ軸、ｚ軸）と、重力軸（Ｚ軸）及び正面軸（Ｘ軸）との対応関係が不明な状態で行う処理であるため、図７に示す通り、適合範囲は各軸ともに略同一である。
【００９２】
後件部８２１５のメンバシップ関数は、横軸を「出力」、縦軸を「集積値」とする関数であり、図１３では、後件部８２１５の「直進」に対応する山と、「不定」に対応する山と、「旋回」に対応する山との独立した３つの山として表される。また、集積値は、「０」〜「１」の範囲の値として定められている。
【００９３】
図１４は、旋回判定用判定結果テーブル８２５のデータ構成の一例を示す図である。旋回判定用判定結果テーブル８２５には、条件の番号８２５１と、条件８２５３と、判定結果８２５５とが対応付けて記憶されている。条件８２５３は、非ファジィ化により求められた出力値が満たすべき条件として定められた条件である。また、判定結果８２５５は、移動体の旋回状態の最終的な判定結果であり、「旋回」、「直進」又は「不定（前回と同じ判定結果とする）」が記憶されている。
【００９４】
例えば、出力値が「０．９５以上」である場合は、移動体は「旋回状態」にあると判定され、出力値が「０．０５以下」である場合は、移動体は「直進状態」にあると判定される。また、それ以外の場合は「不定」であり、前回と同じ判定結果とされる。
【００９５】
旋回判定処理における出力値の決定方法は、前述した停止判定処理と同一である。すなわち、入力値である「ＧＪＸ」、「ＧＪＹ」及び「ＧＪＺ」に対して、前件部８２１３のメンバシップ関数を用いてファジィ化を行う。次いで、ファジィ化により得られた適合度と旋回判定用ファジィルール８２１に従って、「ＧＪＸ」、「ＧＪＹ」及び「ＧＪＺ」それぞれの集積値を算出する。そして、算出した集積値に対して、後件部８２１５のメンバシップ関数を用いて非ファジ化を行い、得られた重心で表される出力値が旋回判定用判定結果テーブル８２５の何れの条件８２５３に適合するかを判定する。
【００９６】
図５は、ＲＡＭ９０に格納されるデータの一例を示す図である。ＲＡＭ９０には、センサデータ９０１と、メジャメントデータ９０３と、計測履歴データ９０５と、ＫＦパラメータデータ９０７とが記憶される。
【００９７】
図１５は、センサデータ９０１のデータ構成の一例を示す図である。センサデータ９０１には、検出時刻９０１１（例えばミリ秒）と対応付けて、加速度センサ７１により検出された３次元の加速度９０１３と、ジャイロセンサ７３により検出された３次元の角速度９０１５と、方位センサ７５により検出された方位９０１７とが対応付けて記憶される。方位９０１７は、２次元平面における方位角で表される。
【００９８】
例えば、検出時刻「ｔ１」において検出された加速度９０１３は「（Ａｘ１，Ａｙ１，Ａｚ１）」であり、角速度９０１５は「（ωｘ１，ωｙ１，ωｚ１）」、方位は「Ｈｅａｄｉｎｇ１」である。
【００９９】
図１６は、メジャメントデータ９０３のデータ構成の一例を示す図である。メジャメントデータ９０３は、メジャメント取得演算部３３により取得演算されたメジャメント実測値に関するデータであり、捕捉衛星９０３１と、当該捕捉衛星から受信したＧＰＳ衛星信号の受信周波数及びコード位相でなるメジャメント実測値９０３３とが対応付けて記憶される。例えば、捕捉衛星「Ｓ１」についてのメジャメント実測値９０３３は、受信周波数が「Ｆｒｅｑ１」、コード位相が「ＣＰ１」である。
【０１００】
図１７は、計測履歴データ９０５のデータ構成の一例を示す図である。計測履歴データ９０５は、ＥＮＵ座標系における移動体の位置、移動速度についてのデータであり、各位置算出時刻９０５１について、東方向の位置９０５２と、北方向の位置９０５３と、東方向の移動速度９０５４と、北方向の移動速度９０５５と、位置算出平面における移動速度９０５６とが対応付けて記憶される。
【０１０１】
東方向の位置９０５２は、ＥＮＵ座標系における東西方向の位置座標であり、北方向の位置９０５３は、ＥＮＵ座標系における南北方向の位置座標である。また、東方向の移動速度９０５４は、ＥＮＵ座標系における東西方向の移動速度であり、北方向の移動速度９０５５は、ＥＮＵ座標系における南北方向の移動速度である。
【０１０２】
位置算出平面における移動速度９０５６は、例えばＥＮＵ座標系において天頂方向の位置座標を“０”とした場合における東西南北の２次元平面（この平面を「位置算出平面」と定義する。）における移動速度である。東方向の移動速度９０５４と、北方向の移動速度９０５５とを合成することで、位置算出平面における移動速度９０５６が算出可能である。
【０１０３】
例えば、位置算出時刻「Ｔ１」においては、東方向の位置として「ＥａｓｔＰｏｓ１」、北方向の位置として「ＮｏｒｔｈＰｏｓ１」、東方向の移動速度として「ＥａｓｔＶｅｌ１」、北方向の移動速度として「ＮｏｒｔｈＶｅｌ１」、位置算出平面における移動速度として「Ｓｐｅｅｄ１」がそれぞれ記憶されている。
【０１０４】
ＫＦパラメータデータ９０７は、ＫＦ位置算出処理で用いるカルマンフィルタの各種パラメータの値が記憶されたデータであり、位置算出処理においてホストＣＰＵ４０により更新される。
【０１０５】
４．処理の流れ
図１８は、ホストＣＰＵ４０によりＲＯＭ８０に記憶されているメインプログラム８００が読み出されて実行されることで、携帯型電話機１において実行されるメイン処理の流れを示すフローチャートである。メイン処理は、ホストＣＰＵ４０が、操作部５０に位置算出開始指示の操作がなされたことを検出した場合に実行を開始する処理であり、各種アプリケーションの実行といった各種の処理と並行して行われる処理である。
【０１０６】
以下の説明において、位置算出演算は１秒毎に行われるものとする。すなわち、位置算出時刻の時間間隔は１秒である。また、「今回」というときは現在演算処理中の位置算出時刻のことを指し、「前回」というときは１つ前の演算処理で算出した位置算出時刻のことを指し、「前々回」というときは２つ前の演算処理で算出した位置算出時刻のことを指すものとする。
【０１０７】
尚、携帯型電話機１の電源のＯＮ／ＯＦＦとＧＰＳの起動／停止とを連動させ、携帯型電話機１の電源投入操作を検出した場合に処理の実行を開始させることにしてもよい。また、特に説明しないが、以下のメイン処理の実行中は、ＧＰＳアンテナ１０によるＲＦ信号の受信や、ＲＦ受信回路部２１によるＩＦ信号へのダウンコンバート、メジャメント取得演算部３３によるＧＰＳ衛星信号の受信周波数やコード位相（メジャメント実測値）の情報の取得・算出等が随時行われている状態にあるものとする。また、ホストＣＰＵ４０は、１ミリ秒毎にセンサ部７０から検出結果を取得し、ＲＡＭ９０のセンサデータ９０１に蓄積・記憶するものとする。
【０１０８】
先ず、ホストＣＰＵ４０は、ＲＯＭ８０に記憶されている停止判定プログラム８０１を読み出して実行することで、停止判定処理を行う（ステップＡ１）。
【０１０９】
図１９は、停止判定処理の流れを示すフローチャートである。
先ず、ホストＣＰＵ４０は、各軸について、加速度センサ７１の検出結果の変化量を１秒間分積算する（ステップＢ１）。そして、ホストＣＰＵ４０は、ＲＯＭ８０の停止判定用メンバシップ関数８１３に含まれる前件部８１１３のメンバシップ関数を用いて、ステップＢ１で算出した積算値に対するファジィ化を実行する（ステップＢ３）。そして、ホストＣＰＵ４０は、停止判定用ファジィルール８１１に従って集積値を求める（ステップＢ５）。
【０１１０】
次いで、ホストＣＰＵ４０は、停止判定用メンバシップ関数８１３に含まれる後件部８１１５のメンバシップ関数を用いて、ステップＢ５で求めた集積値に対する非ファジィ化を実行する（ステップＢ７）。そして、停止判定用判定結果テーブル８１５に従って、非ファジィ化で得られた出力値に基づいて停止判定を行う（ステップＢ９）。そして、ホストＣＰＵ４０は、停止判定処理を終了する。
【０１１１】
図１８のメイン処理に戻って、停止判定処理を行った後、ホストＣＰＵ４０は、重力軸判定処理を行う（ステップＡ３）。具体的には、停止判定処理において停止していると判定した場合は、加速度センサ７１により検出された３軸の加速度のうち値が最大となった軸を特定する。そして、他の２軸の加速度が、それぞれ特定軸の加速度の１５％以下の値となっているかを判定し、この条件を満たす場合は、特定した軸を重力軸（Ｚ軸）と判定する。また、条件を満たさないと判定した場合は、前回重力軸と判定した軸を重力軸（Ｚ軸）と判定する。
【０１１２】
次いで、ホストＣＰＵ４０は、正面軸判定処理を行う（ステップＡ５）。具体的には、前回の停止判定処理において停止していると判定した場合であって、今回の停止判定処理において移動していると判定した場合に、加速度センサ７１により検出された３軸の加速度のうち値が最大となった軸を正面軸（Ｘ軸）と判定する。すなわち、移動体が停止している状態から一歩踏み出した方向を特定して正面軸（Ｘ軸）と判定する。
【０１１３】
その後、ホストＣＰＵ４０は、ＲＯＭ８０に記憶されている旋回判定プログラム８０２を読み出して実行することで、旋回判定処理を行う（ステップＡ７）。
【０１１４】
図２０は、旋回判定処理の流れを示すフローチャートである。
先ず、ホストＣＰＵ４０は、「Ｘ軸」、「Ｙ軸」及び「Ｚ軸」それぞれについて、ジャイロセンサ７３の最新の検出結果（角速度）の絶対値を算出する（ステップＣ１）。そして、ホストＣＰＵ４０は、ＲＯＭ８０の旋回判定用メンバシップ関数８２３に含まれる前件部８２１３のメンバシップ関数を用いて、ステップＣ１で算出した角速度の絶対値に対するファジィ化を実行する（ステップＣ３）。そして、ホストＣＰＵ４０は、旋回判定用ファジィルール８２１に従って集積値を求める（ステップＣ５）。
【０１１５】
次いで、ホストＣＰＵ４０は、旋回判定用メンバシップ関数８２３に含まれる後件部８２１５のメンバシップ関数を用いて、ステップＣ５で求めた集積値に対する非ファジィ化を実行する（ステップＣ７）。そして、旋回判定用判定結果テーブル８２５に従って、非ファジィ化で得られた出力値に基づいて旋回判定を行う（ステップＣ９）。そして、ホストＣＰＵ４０は、旋回判定処理を終了する。
【０１１６】
図１８のメイン処理に戻って、旋回判定処理を行った後、ホストＣＰＵ４０は、ＲＯＭ８０に記憶されている加減速判定プログラム８０３を読み出して実行することで、加減速判定処理を行う（ステップＡ９）。
【０１１７】
図２１は、加減速判定処理の流れを示すフローチャートである。
先ず、ホストＣＰＵ４０は、加速度センサ７１の正面軸（Ｘ軸）方向の検出結果を１秒間分積算する（ステップＤ１）。そして、ホストＣＰＵ４０は、今回、前回及び前々回の停止判定処理の判定結果が全て停止であったか否かを判定する（ステップＤ３）。
【０１１８】
そして、判定結果が全て停止であったと判定した場合は（ステップＤ３；Ｙｅｓ）、ホストＣＰＵ４０は、ステップＤ１で算出した積算値で停止値を更新する（ステップＤ５）。また、今回、前回及び前々回の何れかにおいて判定結果が移動であったと判定した場合は（ステップＤ３；Ｎｏ）、ホストＣＰＵ４０は、停止値を更新することなく、ステップＤ７へと処理を移行する。
【０１１９】
その後、ホストＣＰＵ４０は、ステップＤ１で算出した積算値から現在設定されている停止値を減算して変動値とする（ステップＤ７）。そして、ホストＣＰＵ４０は、変動値が「１００」を超えているか否かを判定し（ステップＤ９）、超えていると判定した場合は（ステップＤ９；Ｙｅｓ）、移動体は「強加速状態」であると判定して（ステップＤ１１）、加減速判定処理を終了する。
【０１２０】
また、ステップＤ９において変動値が「１００以下」であると判定した場合は（ステップＤ９；Ｎｏ）、ホストＣＰＵ４０は、変動値が「２０以上１００以下」であるか否かを判定する（ステップＤ１３）。そして、この条件を満たすと判定した場合は（ステップＤ１３；Ｙｅｓ）、移動体は「弱加速状態」であると判定して（ステップＤ１５）、加減速判定処理を終了する。
【０１２１】
また、ステップＤ１３において変動値が「２０以上１００以下」ではないと判定した場合は（ステップＤ１３；Ｎｏ）、ホストＣＰＵ４０は、変動値が「−１００以上−２０以下」であるか否かを判定する（ステップＤ１７）。そして、この条件を満たすと判定した場合は（ステップＤ１７；Ｙｅｓ）、移動体は「弱減速状態」であると判定して（ステップＤ１９）、加減速判定処理を終了する。
【０１２２】
また、ステップＤ１７において変動値が「−１００以上−２０以下」ではないと判定した場合は（ステップＤ１７；Ｎｏ）、ホストＣＰＵ４０は、変動値が「−１００」よりも小さいか否かを判定する（ステップＤ２１）。そして、この条件を満たすと判定した場合は（ステップＤ２１；Ｙｅｓ）、移動体は「強減速状態」であると判定して（ステップＤ２３）、加減速判定処理を終了する。
【０１２３】
また、ステップＤ２１において変動値が「−１００」以上であると判定した場合は（ステップＤ２１；Ｎｏ）、ホストＣＰＵ４０は、移動体は「加減速無し状態」であると判定して（ステップＤ２５）、加減速判定処理を終了する。
【０１２４】
図１８のメイン処理に戻って、加減速判定処理を行った後、ホストＣＰＵ４０は、ＲＯＭ８０に記憶されている位置算出プログラム８０４を読み出して実行することで、位置算出処理を行う（ステップＡ１１）。
【０１２５】
図２２は、位置算出処理の流れを示すフローチャートである。
先ず、ホストＣＰＵ４０は、ＲＯＭ８０に記憶されているＬＳ位置算出プログラム８０５を読み出して実行することで、ＬＳ位置算出処理を行う（ステップＥ１）。
【０１２６】
図２３は、ＬＳ位置算出処理の流れを示すフローチャートである。
先ず、ホストＣＰＵ４０は、メジャメント取得演算部３３からメジャメント実測値を取得し（ステップＦ１）、取得したメジャメント実測値に含まれるコード位相を用いて、携帯型電話機１と捕捉衛星間の擬似距離を算出する（ステップＦ３）。そして、ホストＣＰＵ４０は、算出した擬似距離を用いて最小二乗法による位置算出演算を行って、ＥＣＥＦ座標系における移動体の位置ベクトルを算出する（ステップＦ５）。
【０１２７】
その後、ホストＣＰＵ４０は、ステップＦ１で取得したメジャメント実測値に含まれるＧＰＳ衛星信号の受信周波数を用いて、１秒間における受信周波数の変化量を算出する（ステップＦ７）。そして、ホストＣＰＵ４０は、算出した受信周波数の変化量を用いて、ＥＣＥＦ座標系における移動体の移動速度ベクトルを算出して（ステップＦ９）、ＬＳ位置算出処理を終了する。
【０１２８】
図２２の位置算出処理に戻って、ＬＳ位置算出処理を行った後、ホストＣＰＵ４０は、ステップＦ５で算出したＥＣＥＦ座標系における位置ベクトルに対して所定の座標変換演算を行って、ＥＮＵ座標系における東方向の位置「ＥａｓｔＰｏｓ」及び北方向の位置「ＮｏｒｔｈＰｏｓ」を算出し、現在の位置算出時刻と対応付けてＲＡＭ９０の計測履歴データ９０５に記憶させる（ステップＥ３）。
【０１２９】
同様に、ホストＣＰＵ４０は、ステップＦ９で算出したＥＣＥＦ座標系における移動速度ベクトルに対して所定の座標変換演算を行って、ＥＮＵ座標系における東方向の移動速度「ＥａｓｔＶｅｌ」及び北方向の移動速度「ＮｏｒｔｈＶｅｌ」を算出し、現在の位置算出時刻と対応付けてＲＡＭ９０の計測履歴データ９０５に記憶させる（ステップＥ５）。
【０１３０】
そして、ホストＣＰＵ４０は、ステップＥ５で算出した東方向の移動速度「ＥａｓｔＶｅｌ」及び北方向の移動速度「ＮｏｒｔｈＶｅｌ」を用いて、次式（１）に従って、位置算出平面における移動体の移動速度「Ｓｐｅｅｄ」を算出し、現在の位置算出時刻と対応付けてＲＡＭ９０の計測履歴データ９０５に記憶させる（ステップＥ７）。
【数１】
2010117147.tif 000003
【０１３１】
次いで、ホストＣＰＵ４０は、センサデータ９０１に記憶されている方位に基づいて、次式（２）に従って時間毎方位を算出する（ステップＥ９）。
【数２】
2010117147.tif 000004
但し、「ｔ」は位置算出時刻であり、「ｄｔ」は現在の位置算出時刻と１つ前の位置算出時刻との時刻差である。
【０１３２】
その後、ホストＣＰＵ４０は、ＲＯＭ８０に記憶されているＫＦ位置算出プログラム８０６を読み出して実行することで、ＫＦ位置算出処理を行う（ステップＥ１１）。
【０１３３】
図２４は、ＫＦ位置算出処理の流れを示すフローチャートである。
先ず、ＫＦ位置算出処理用の状態ベクトル「Ｘ」及び誤差共分散行列「Ｐ」のＫＦ初期値を設定する（ステップＧ１）。ＫＦ位置算出処理では、ＥＮＵ座標系における移動体の東方向の位置「ＥａｓｔＰｏｓ」、北方向の位置「ＮｏｒｔｈＰｏｓ」、位置算出平面における移動速度「Ｓｐｅｅｄ」、方位「Ｈｅａｄｉｎｇ」及び時間毎方位「ｄＨｅａｄｉｎｇ」を成分とする、次式（３）に示す５×１の行列で表される状態ベクトル「Ｘ」を用いて、予測演算及び補正演算を行う。特徴的であるのは、時間毎方位を状態ベクトルの成分とすることで、方位の演算精度を高めている点である。
【数３】
2010117147.tif 000005
【０１３４】
また、誤差共分散行列「Ｐ」は、状態ベクトル「Ｘ」の５次元の各成分の誤差の共分散を示す５×５の行列である。状態ベクトル「Ｘ」及び誤差共分散行列「Ｐ」の初期値は、例えば１時刻前のＫＦ位置算出処理で求められた状態ベクトル「Ｘ」及び誤差共分散行列「Ｐ」の補正値「Ｘ＋」及び「Ｐ＋」とすることができる。
【０１３５】
次いで、ホストＣＰＵ４０は、状態ベクトル「Ｘ」及び誤差共分散行列「Ｐ」について、次式（４）及び（５）に従って予測演算を行い、状態ベクトルの予測値「Ｘ−」及び誤差共分散行列の予測値「Ｐ−」を算出する（ステップＧ３）。この際、状態ベクトル「Ｘ」の５次元の各成分については、次式（６）〜（１０）に従って予測演算を行う。
【数４】
2010117147.tif 000006
【数５】
2010117147.tif 000007
【数６】
2010117147.tif 000008
【数７】
2010117147.tif 000009
【数８】
2010117147.tif 000010
【数９】
2010117147.tif 000011
【数１０】
2010117147.tif 000012
【０１３６】
但し、各式における添え字の「−」は予測値、「＋」は補正値であることを示しており、「Ｔ」は転置行列であることを示している。また、「φ」は、状態遷移行列と呼ばれる状態ベクトルの遷移を表す５×５の行列であり、「Ｑ」は、システムノイズ行列と呼ばれるＫＦモデルに内在する誤差（モデル誤差）の共分散を示す５×５の行列である。状態遷移行列「φ」は予め定められた行列とすることができる。また、システムノイズ行列「Ｑ」は、１時刻前にステップＧ９のＫＦパラメータ設定処理で設定された行列とする。
【０１３７】
その後、ホストＣＰＵ４０は、ＲＡＭ９０の計測履歴データ９０５に記憶されている最新の移動体の東方向の位置「ＥａｓｔＰｏｓ」、北方向の位置「ＮｏｒｔｈＰｏｓ」及び位置算出平面における移動速度「Ｓｐｅｅｄ」と、センサデータ９０１に記憶されている最新の方位「Ｈｅａｄｉｎｇ」と、ステップＥ９で算出した時間毎方位「ｄＨｅａｄｉｎｇ」とを成分とする、次式（１１）で表される５×１の行列をＫＦ位置算出処理用の観測ベクトル「Ｚ」として設定する（ステップＧ５）。
【数１１】
2010117147.tif 000013
【０１３８】
また、ホストＣＰＵ４０は、ステップＧ３で算出した状態ベクトルの予測値「Ｘ−」に所定の観測行列「Ｈ」を乗算することで、予測された観測ベクトル（以下、「予測観測ベクトル」と称す。）「ＨＸ−」を算出する（ステップＧ７）。
【０１３９】
観測行列「Ｈ」は、状態ベクトルの予測値「Ｘ−」の各成分を用いて、観測ベクトル「Ｚ」の成分である東方向の位置「ＥａｓｔＰｏｓ」、北方向の位置「ＮｏｒｔｈＰｏｓ」、位置算出平面における移動速度「Ｓｐｅｅｄ」、方位「Ｈｅａｄｉｎｇ」及び時間毎方位「ｄＨｅａｄｉｎｇ」を予測するための行列である。観測行列「Ｈ」は５×５の行列であり、状態ベクトルの予測値「Ｘ−」は５×１の行列であるため、予測観測ベクトル「ＨＸ−」は５×１の行列として求めることができる。
【０１４０】
次いで、ホストＣＰＵ４０は、ＲＯＭ８０に記憶されているＫＦパラメータ設定プログラム８０７を読み出して実行することで、ＫＦパラメータ設定処理を行う（ステップＧ９）。
【０１４１】
図２５は、ＫＦパラメータ設定処理の流れを示すフローチャートである。
先ず、ホストＣＰＵ４０は、停止判定処理における判定結果が「停止」であったか否かを判定する（ステップＨ１）。そして、「停止」であったと判定した場合は（ステップＨ１；Ｙｅｓ）、観測誤差共分散行列「Ｒ」に、次式（１２）で表される「Ｒ１」を設定する（ステップＨ３）。また、システムノイズ行列「Ｑ」に、次式（１３）で表される「Ｑ１」を設定する（ステップＨ５）。
【数１２】
2010117147.tif 000014
【数１３】
2010117147.tif 000015
【０１４２】
観測誤差共分散行列「Ｒ」は、観測ベクトル「Ｚ」に含まれる各成分の誤差の共分散を示す５×５の行列であり、その行と列の並びは、観測ベクトル「Ｚ」の５つの成分（東方向の位置、北方向の位置、移動速度、方位、時間毎方位）にそれぞれ対応している。また、システムノイズ行列「Ｑ」は、ＫＦモデルのモデル誤差の共分散を表す５×５の行列であり、その行と列の並びは、状態ベクトル「Ｘ」の５つの成分（東方向の位置、北方向の位置、移動速度、方位、時間毎方位）にそれぞれ対応している。
【０１４３】
本実施形態では、観測誤差共分散行列「Ｒ」、システムノイズ行列「Ｑ」共に、対角成分のみを正の値とし、他の全ての成分は「０」とする。すなわち、観測誤差共分散行列「Ｒ」では、東方向の位置、北方向の位置、移動速度、方位及び時間毎方位の５つの成分について、それぞれの対角成分に対応するパラメータ（以下、「東方向位置誤差パラメータ」、「北方向位置誤差パラメータ」、「速度誤差パラメータ」、「方位誤差パラメータ」及び「時間毎方位誤差パラメータ」と称し、包括的に「誤差パラメータ」と称する。）の値を変更する。誤差が小さいと考えられる成分（信頼性が高い成分）の誤差パラメータは値を小さくし、誤差が大きいと考えられる成分（信頼性が低い成分）の誤差パラメータは値を大きくする。
【０１４４】
また、システムノイズ行列「Ｑ」では、東方向の位置、北方向の位置、移動速度、方位及び時間毎方位の５つの成分について、それぞれの対角成分に対応するパラメータ（以下、「東方向位置時変パラメータ」、「北方向位置時変パラメータ」、「速度時変パラメータ」、「方位時変パラメータ」及び「時間毎方位時変パラメータ」と称し、包括的に「時変パラメータ」と称する。）の値を変更する。時間変化の許容度を小さくしたい成分（変動量を小さくしたい成分）の時変パラメータは値を小さくし、許容度を大きくしたい成分（変動量を大きくしたい成分）の時変パラメータは値を大きくする。
【０１４５】
移動体が停止状態であると判定した場合は、ステップＨ９において、観測ベクトル「Ｚ」に含まれる移動速度を「０」に修正することにしている。そのため、移動速度に対する誤差は小さいものと推定し、観測誤差共分散行列「Ｒ１」に含まれる速度誤差パラメータの値「ｃ１」が他の移動状態における速度誤差パラメータの値に比べて小さくなるように設定する。また、式（１２）においては、例えば「ａ１＝ｂ１＞ｄ１＞ｃ１＞ｅ１」となるように値を設定する。
【０１４６】
また、移動速度については時間変化の許容度を大きくするために、システムノイズ行列「Ｑ１」に含まれる速度時変パラメータの値「ｘ１」が他の移動状態における速度時変パラメータの値よりも大きくなるように設定する。また、式（１３）においては、例えば「ｚ１＜ｙ１＜ｖ１＝ｗ１＜ｘ１」となるように値を設定する。
【０１４７】
但し、停止状態では、時間毎方位は限りなく「０」に近いものと考えられるため、時間毎方位誤差パラメータの値「ｅ１」及び時間毎方位時変パラメータの値「ｚ１」が最も小さくなるように調整している。
【０１４８】
その後、ホストＣＰＵ４０は、観測ベクトル「Ｚ」に含まれる東方向の位置、北方向の位置及び方位を、前回の東方向の位置、前回の北方向の位置及び前回の方位にそれぞれ修正する（ステップＨ７）。また、観測ベクトル「Ｚ」に含まれる移動速度及び時間毎方位を「０」に修正する（ステップＨ９）。これは、停止判定の場合は、移動体の位置及び方位は前回の位置算出時と同じであると考えられ、また、移動速度及び方位の変化量は「０」であると考えられるためである。その後、ホストＣＰＵ４０は、ＫＦパラメータ設定処理を終了する。
【０１４９】
また、ステップＨ１において判定結果が「停止」ではなかったと判定した場合は（ステップＨ１；Ｎｏ）、ホストＣＰＵ４０は、加減速判定処理における判定結果が「加減速無し」であったか否かを判定する（ステップＨ１１）。そして、「加減速無し」であったと判定した場合は（ステップＨ１１；Ｙｅｓ）、観測誤差共分散行列「Ｒ」に次式（１４）で表される「Ｒ２」を設定する（ステップＨ１３）。また、システムノイズ行列「Ｑ」に次式（１５）で表される「Ｑ２」を設定する（ステップＨ１５）。
【数１４】
2010117147.tif 000016
【数１５】
2010117147.tif 000017
【０１５０】
移動体が加減速無し状態であると判定した場合は、方位及び時間毎方位については誤差が小さいであろうと推定して、式（１４）においては、例えば「ａ２＝ｂ２＞ｃ２＞ｄ２＞ｅ２」となるように値を設定する。また、方位及び時間毎方位の時間変化の許容度を小さくするために、式（１５）においては、例えば「ｖ２＝ｗ２＞ｘ２＞ｙ２＞ｚ２」となるように値を設定する。その後、ホストＣＰＵ４０は、ＫＦパラメータ設定処理を終了する。
【０１５１】
また、ステップＨ１１において判定結果が「加減速無し」ではなかったと判定した場合は（ステップＨ１１；Ｎｏ）、ホストＣＰＵ４０は、旋回判定処理における判定結果が「旋回」であったか否かを判定する（ステップＨ１７）。そして、「旋回」であったと判定した場合は（ステップＨ１７；Ｙｅｓ）、観測誤差共分散行列「Ｒ」に次式（１６）で表される「Ｒ３」を設定する（ステップＨ１９）。また、システムノイズ行列「Ｑ」に次式（１７）で表される「Ｑ３」を設定する（ステップＨ２１）。
【数１６】
2010117147.tif 000018
【数１７】
2010117147.tif 000019
【０１５２】
移動体が旋回状態にあると判定した場合は、方位及び時間毎方位は誤差が小さいであろうと推定して、観測誤差共分散行列「Ｒ３」に含まれる方位誤差パラメータの値「ｄ３」及び時間毎方位誤差パラメータ「ｅ３」が他の移動状態における方位誤差パラメータ及び時間毎方位誤差パラメータの値に比べて小さくなるように設定する。また、式（１６）においては、例えば「ａ３＝ｂ３＞ｃ３＞ｄ３＞ｅ３」となるように値を設定する。
【０１５３】
また、位置及び方位については時間変化の許容度を大きくするために、システムノイズ行列「Ｑ３」に含まれる位置時変パラメータの値「ｖ３、ｗ３」及び方位時変パラメータの値「ｙ３」が他の移動状態における位置時変パラメータ及び方位時変パラメータの値よりも大きくなるように設定する。また、式（１７）においては、例えば「ｖ３＝ｗ３＞ｘ３＝ｙ３＞ｚ３」となるように値を設定する。その後、ホストＣＰＵ４０は、ＫＦパラメータ設定処理を終了する。
【０１５４】
また、ステップＨ１７において判定結果が「旋回」ではなかったと判定した場合は（ステップＨ１７；Ｎｏ）、ホストＣＰＵ４０は、加減速判定処理における判定結果が「強加速或いは強減速」であったか否かを判定する（ステップＨ２３）。そして、「強加速或いは強減速」であったと判定した場合は（ステップＨ２３；Ｙｅｓ）、観測誤差共分散行列「Ｒ」に次式（１８）で表される「Ｒ４」を設定する（ステップＨ２５）。また、システムノイズ行列「Ｑ」に次式（１９）で表される「Ｑ４」を設定する（ステップＨ２７）。
【数１８】
2010117147.tif 000020
【数１９】
2010117147.tif 000021
【０１５５】
移動体が強加減速状態にあると判定した場合は、移動速度に対する誤差が大きいであろうと推定して、観測誤差共分散行列「Ｒ４」に含まれる速度誤差パラメータの値「ｃ４」が他の移動状態における速度誤差パラメータの値に比べて大きくなるように設定する。また、式（１８）においては、例えば「ａ４＝ｂ４＝ｄ４＞ｃ４＝ｅ４」となるように値を設定する。
【０１５６】
また、移動速度については時間変化の許容度を大きくするために、システムノイズ行列「Ｑ４」に含まれる速度時変パラメータの値「ｘ４」が他の移動状態における速度時変パラメータの値よりも大きくなるように設定する。また、式（１９）においては、例えば「ｖ４＝ｗ４＞ｘ４＞ｙ４＞ｚ４」となるように値を設定する。その後、ホストＣＰＵ４０は、ＫＦパラメータ設定処理を終了する。
【０１５７】
また、ステップＨ２３において判定結果が「強加速或いは強減速」ではなかったと判定した場合は（ステップＨ２３；Ｎｏ）、ホストＣＰＵ４０は、加減速判定処理における判定結果が「弱加速或いは弱減速」であったか否かを判定する（ステップＨ２９）。そして、「弱加速或いは弱減速」であったと判定した場合は（ステップＨ２９；Ｙｅｓ）、観測誤差共分散行列「Ｒ」に次式（２０）で表される「Ｒ５」を設定する（ステップＨ３１）。また、システムノイズ行列「Ｑ」に次式（２１）で表される「Ｑ５」を設定する（ステップＨ３３）。
【数２０】
2010117147.tif 000022
【数２１】
2010117147.tif 000023
【０１５８】
移動体が弱加減速状態にあると判定した場合は、位置以外の成分は誤差が小さいであろうと推定して、式（２０）においては、例えば「ａ５＝ｂ５＞ｃ５＞ｄ５＞ｅ５」となるように値を設定する。また、位置以外の成分の時間変化の許容度を小さくするために、式（２１）においては、例えば「ｖ５＝ｗ５＞ｘ５＞ｙ５＞ｚ５」となるように値を設定する。その後、ホストＣＰＵ４０は、ＫＦパラメータ設定処理を終了する。
【０１５９】
また、ステップＨ２９において判定結果が「弱加速或いは弱減速」ではなかったと判定した場合は（ステップＨ２９；Ｎｏ）、ホストＣＰＵ４０は、観測誤差共分散行列「Ｒ」に次式（２２）で表される「Ｒ６」を設定する（ステップＨ３５）。また、システムノイズ行列「Ｑ」に次式（２３）で表される「Ｑ６」を設定する（ステップＨ３７）。
【数２２】
2010117147.tif 000024
【数２３】
2010117147.tif 000025
【０１６０】
移動体の判定結果が「停止」、「加減速無し」、「旋回」、「強加減速」、「弱加減速」の何れでもない場合は、位置の誤差は大きく、方位及び時間毎方位の誤差は小さい（方位センサ７５により方位の検出を行っているため）ものと判断して、式（２２）においては、例えば「ａ６＝ｂ６＞ｃ６＞ｄ６＞ｅ６」となるように値を設定する。また、位置及び時間毎方位の時間変化の許容度を大きくするために、式（２３）においては、例えば「ｖ６＝ｗ６＝ｚ６＞ｘ６＞ｙ６」となるように値を設定する。その後、ホストＣＰＵ４０は、ＫＦパラメータ設定処理を終了する。
【０１６１】
図２４のＫＦ位置算出処理に戻って、ＫＦパラメータ設定処理を行った後、ホストＣＰＵ４０は、状態ベクトル「Ｘ」及び誤差共分散行列「Ｐ」について、次式（２４）〜（２６）に従って状態ベクトルの補正値「Ｘ＋」及び誤差共分散行列の補正値「Ｐ＋」を算出する補正演算を行う（ステップＧ１１）。
【数２４】
2010117147.tif 000026
【数２５】
2010117147.tif 000027
【数２６】
2010117147.tif 000028
【０１６２】
但し、「Ｋ」はカルマンゲイン行列と呼ばれる５×５の行列であり、「Ｒ」は、ＫＦパラメータ設定処理で設定された５×５の観測誤差共分散行列である。また、「Ｉ」は単位行列である。補正演算を行った後、ホストＣＰＵ４０は、ＫＦ位置算出処理を終了する。
【０１６３】
図２２の位置算出処理に戻って、ホストＣＰＵ４０は、ＫＦ位置算出処理で算出した状態ベクトルの補正値「Ｘ＋」に含まれる東方向の位置「ＥａｓｔＰｏｓ」及び北方向の位置「ＮｏｒｔｈＰｏｓ」で表される位置を出力位置に決定する（ステップＥ１３）。そして、ホストＣＰＵ４０は、位置算出処理を終了する。
【０１６４】
図１８のメイン処理に戻って、位置算出処理を行った後、ホストＣＰＵ４０は、出力位置をプロットしたナビゲーション画面を生成して表示部６０に表示させる（ステップＡ１３）。そして、ホストＣＰＵ４０は、操作部５０を介してユーザにより位置算出終了指示がなされたか否かを判定し（ステップＡ１５）、なされなかったと判定した場合は（ステップＡ１５；Ｎｏ）、ステップＡ１に戻る。また、位置算出終了指示がなされたと判定した場合は（ステップＡ１５；Ｙｅｓ）、メイン処理を終了する。
【０１６５】
５．作用効果
本実施形態によれば、携帯型電話機１を保持又は搭載した移動体の移動可能性、不定及び停止可能性それぞれについて、センサ部７０の加速度センサ７１の検出値適合範囲を設定するとともに、移動可能性の検出値適合範囲を最も広く設定することで、移動体の停止判定用のメンバシップ関数を設定する。そして、メンバシップ関数を用いたファジィ推定演算により移動体が停止状態にあるか否かを判定し、カルマンフィルタを用いた位置算出演算を行う際の誤差パラメータである観測誤差共分散行列「Ｒ」及びシステムノイズ行列「Ｑ」の値を、停止状態にあると判定したか否かに応じて変更する。そして、最小二乗法を用いた位置算出処理により算出した移動体の位置を、カルマンフィルタを用いた位置算出処理により補正することで、出力位置を決定する。
【０１６６】
ファジィ推定演算において、移動可能性の検出値適合範囲を最も広く設定したメンバシップ関数を用いるのは、移動体は停止していることよりも移動していることの方が多いことを考慮したためである。センサ部の検出結果に基づいてファジィ推定演算を行うことで、移動体が停止状態にあるか否かを適切に判定することができる。そして、停止状態にあると判定した場合に、カルマンフィルタ処理に用いる誤差パラメータの値を変更し、変更した誤差パラメータを用いたカルマンフィルタ処理を行って位置の補正を行うことで、正確性の高い位置算出を実現することが可能となる。
【０１６７】
また、本実施形態では、ジャイロセンサ７３は、移動体のヨー方向の回転角を含む３軸の軸回りの回転角を検出する。そして、移動体の旋回可能性、不定及び直進可能性それぞれについてジャイロセンサ７３の回転角検出値の適合範囲を設定し、旋回可能性についてのヨー方向の回転角検出値の適合範囲を最も広く設定することで、旋回判定処理のメンバシップ関数を設定する。そして、旋回判定処理用のメンバシップ関数を用いた所定のファジィ推定演算により、移動体が旋回状態にあるか否かを判定し、カルマンフィルタを用いた位置演算処理を行う際に使用する誤差パラメータの値を、旋回状態にあると判定されたか否かに応じて変更する。
【０１６８】
ほとんどの場合、移動体はヨー軸回りに回転（旋回）するものと考えられる。このため、旋回可能性についてもヨー方向の回転角検出値の適合範囲を最も広く設定しておくことで、移動体がヨー軸回りに回転した場合に、移動体が旋回状態にあると判定し易くなる。また、移動体が旋回状態にあるか否かに応じて誤差パラメータの値を変更してカルマンフィルタを用いた位置算出処理を行うようにしたことで、位置算出の正確性が一層向上する。
【０１６９】
６．変形例
６−１．携帯型ナビゲーションシステム
本発明は、自動車やバイクといった移動体に着脱可能な“携帯ナビ（携帯型ナビゲーションシステム）”に適用することも可能である。
【０１７０】
６−２．電子機器
また、本発明は、携帯型電話機の他にも、位置算出装置を備えた電子機器であれば何れの電子機器にも適用可能である。例えば、ノート型パソコンやＰＤＡ（Personal Digital Assistant）、カーナビゲーション装置等についても同様に適用可能である。
【０１７１】
６−３．衛星測位システム
上述した実施形態では、衛星測位システムとしてＧＰＳを例に挙げて説明したが、ＷＡＡＳ（Wide Area Augmentation System）、ＱＺＳＳ（Quasi Zenith Satellite System）、ＧＬＯＮＡＳＳ（GLObal NAvigation Satellite System）、ＧＡＬＩＬＥＯ等の他の衛星測位システムであってもよい。
【０１７２】
６−４．処理の分化
ホストＣＰＵ４０が実行する処理の一部又は全部を、ベースバンド処理回路部３０の演算制御部３１が行う構成としてもよい。例えば、メジャメント取得演算部３３により演算されたメジャメント実測値を用いて、演算制御部３１が位置算出処理を行う。また、停止判定処理、旋回判定処理、加減速判定処理も含めて、演算制御部３１が全ての処理を行うこととしてもよい。
【０１７３】
６−５．基礎ＫＦ位置算出処理
上述した実施形態では、ＬＳ位置算出処理を行ってＫＦ位置算出処理の観測情報とする移動体の位置及び移動速度を算出するものとして説明したが、ＬＳ位置算出処理の代わりにカルマンフィルタを用いた位置算出処理を行って観測情報を算出することとしてもよい。この場合は、ＲＯＭ８０にＬＳ位置算出プログラム８０５の代わりに基礎ＫＦ位置算出プログラムを格納しておき、ホストＣＰＵ４０は、図２２の位置算出処理のステップＥ１において、基礎ＫＦ位置算出プログラムを読み出して実行することで基礎ＫＦ位置算出処理を行う。
【０１７４】
図２６は、基礎ＫＦ位置算出処理の流れを示すフローチャートである。
先ず、ホストＣＰＵ４０は、基礎ＫＦ位置算出処理用の状態ベクトル「Ｘ1」及び誤差共分散行列「Ｐ1」の初期値を設定する（ステップＪ１）。基礎ＫＦ位置算出処理では、状態ベクトル「Ｘ1」を、例えば、ＥＣＥＦ座標系における携帯型電話機１の３次元の位置ベクトル、３次元の移動速度ベクトル、クロックバイアス及びクロックドリフトを成分とする８×１の行列とすることができる。
【０１７５】
その後、ホストＣＰＵ４０は、式（４）及び（５）に従って予測演算を行い、状態ベクトルの予測値「Ｘ1−」及び誤差共分散行列の予測値「Ｐ1−」を算出する（ステップＪ３）。そして、ホストＣＰＵ４０は、メジャメント取得演算部３３からＧＰＳ衛星信号の受信周波数及びコード位相（メジャメント実測値）を取得して、２×１の観測ベクトル「Ｚ1」とする（ステップＪ５）。基礎ＫＦ位置算出処理では、受信周波数及びコード位相を観測情報としてカルマンフィルタ処理を行う。
【０１７６】
次いで、ホストＣＰＵ４０は、状態ベクトルの予測値「Ｘ1−」と所定の観測行列「Ｈ1」とを用いて予測観測ベクトル「Ｈ1Ｘ1−」を算出する（ステップＪ７）。観測行列「Ｈ1」は、状態ベクトルの予測値「Ｘ1−」の各成分を用いて、観測ベクトル「Ｚ1」の成分である受信周波数及びコード位相を予測するための行列である。観測行列「Ｈ1」は２×８の行列であり、状態ベクトルの予測値「Ｘ1−」は８×１の行列であるため、予測観測ベクトル「Ｈ1Ｘ1−」は２×１の行列となる。
【０１７７】
その後、ホストＣＰＵ４０は、式（２４）〜（２６）に従って補正演算を行い、状態ベクトルの予測値「Ｘ1＋」及び誤差共分散行列の予測値「Ｐ1＋」を算出する（ステップＪ９）。そして、ホストＣＰＵ４０は、基礎ＫＦ位置算出処理を終了する。
【０１７８】
基礎ＫＦ位置算出処理を終了したら、ホストＣＰＵ４０は、得られた状態ベクトルの補正値「Ｘ1＋」に含まれるＥＣＥＦ座標系における位置ベクトル及び移動速度ベクトルに対して座標変換演算を行って、ＥＮＵ座標系における位置及び移動速度を求める。そして、求めた位置及び移動速度と、方位センサ７５により検出された方位及びこの方位を用いて算出した時間毎方位とを観測情報として、図２４のＫＦ位置算出処理を行う。
【０１７９】
この場合には、基礎ＫＦ位置算出処理とＫＦ位置算出処理との２段階のカルマンフィルタ処理を行って出力位置を決定することになる。尚、この他にも、例えば慣性航法演算処理を行ってＫＦ位置算出処理の観測情報を算出することも可能であり、観測情報の算出方法は適宜変更可能である。
【０１８０】
６−６．位置飛びの判定
ＫＦ位置算出処理において位置飛びを判定し、その判定結果に基づいて、ＫＦパラメータを調整することとしてもよい。具体的には、ＲＯＭ８０にメインプログラム８００のサブルーチンとして位置飛び判定プログラムを格納しておく。そして、ホストＣＰＵ４０は、図２４のＫＦ位置算出処理のステップＧ９においてＫＦパラメータ設定処理を行った後に、位置飛び判定プログラムを読み出して実行することで位置飛び判定処理を行う。
【０１８１】
図２７は、位置飛び判定処理の流れを示すフローチャートである。
先ず、ホストＣＰＵ４０は、図２２の位置算出処理のステップＥ３で算出した東方向の位置及び北方向の位置で表される位置（以下、「ＬＳ算出位置」と称す。）と、図２４のＫＦ位置算出処理のステップＧ３の予測演算で求められた状態ベクトルの予測値「Ｘ−」に含まれる東方向の位置及び北方向の位置で表される位置（以下、「ＫＦ予測位置」と称す。）との間の距離を算出する（ステップＫ１）。
【０１８２】
その後、ホストＣＰＵ４０は、ステップＫ１で算出したＬＳ算出位置とＫＦ予測位置間の距離が「５００ｍ」以上であるか否かを判定し（ステップＫ３）、「５００ｍ」以上であると判定した場合は（ステップＫ３；Ｙｅｓ）、位置飛びが発生したと判定した上で、位置飛び判定用のカウンタ値が「５」よりも小さいか否かを判定する（ステップＫ５）。
【０１８３】
そして、カウンタ値が「５」よりも小さいと判定した場合は（ステップＫ５；Ｙｅｓ）、ホストＣＰＵ４０は、観測ベクトル「Ｚ」と予測観測ベクトル「ＨＸ−」との差ベクトル「Ｖ＝Ｚ−ＨＸ−」に含まれる各成分（東方向の位置、北方向の位置、移動速度、方位及び時間毎方位）を「０」に設定する（ステップＫ７）。
【０１８４】
式（２５）からわかるように、差ベクトル「Ｖ」が「０」になると右辺第２項が「０」となり、状態ベクトルの予測値「Ｘ−」がそのまま補正値「Ｘ＋」となる。よって、位置飛びが発生したと判定した場合は、予測演算により求めた予測位置を出力位置に決定することになる。
【０１８５】
その後、ホストＣＰＵ４０は、カウンタ値をインクリメントして（ステップＫ９）、位置飛び判定処理を終了する。また、ステップＫ５においてカウンタ値が「５」以上であると判定した場合は（ステップＫ５；Ｎｏ）、ホストＣＰＵ４０は、ＫＦパラメータを初期化する（ステップＫ１１）。位置飛びが所定回数以上連続して検出された場合は、ＫＦパラメータが適切な値に設定されていない可能性があるため、ＫＦパラメータを初期化することにしたものである。そして、ホストＣＰＵ４０は、位置飛び判定処理を終了する。
【０１８６】
また、ステップＫ３においてＬＳ算出位置とＫＦ予測位置間の距離が「５００ｍ」未満であると判定した場合は（ステップＫ３；Ｎｏ）、ホストＣＰＵ４０は、カウンタ値をリセットして（ステップＫ１３）、位置飛び判定処理を終了する。
【０１８７】
６−７．方位の算出
上述した実施形態では、方位センサ７５により検出された方位と、この方位の時間変化から求めた時間毎方位とを観測情報として用いるものとして説明したが、ＬＳ位置算出処理により求められた移動速度ベクトルを用いて方位を算出することとしてもよい。具体的には、東方向の移動速度「ＮｏｒｔｈＶｅｌ」及び北方向の移動速度「ＥａｓｔＶｅｌ」を用いて、次式（２７）に従って位置算出平面における方位「Ｈｅａｄｉｎｇ」を算出する。
【数２７】
2010117147.tif 000029
【０１８８】
このようにして移動体の方位を算出する場合は、方位センサ７５を携帯型電話機１に搭載しておく必要がなくなる。
【図面の簡単な説明】
【０１８９】
【図１】携帯型電話機の概略外観図。
【図２】携帯型電話機の概略外観図。
【図３】携帯型電話機の機能構成を示すブロック図。
【図４】ＲＯＭに格納されたデータの一例を示す図。
【図５】ＲＡＭに格納されるデータの一例を示す図。
【図６】停止判定用ファジィルールのデータ構成の一例を示す図。
【図７】停止判定用メンバシップ関数の一例を示す図。
【図８】停止判定用判定結果テーブルのテーブル構成の一例を示す図。
【図９】停止判定処理の説明図。
【図１０】停止判定処理の説明図。
【図１１】停止判定処理の説明図。
【図１２】旋回判定用ファジィルールのデータ構成の一例を示す図。
【図１３】旋回判定用メンバシップ関数の一例を示す図。
【図１４】旋回判定用判定結果テーブルのテーブル構成の一例を示す図。
【図１５】センサデータのデータ構成の一例を示す図。
【図１６】メジャメントデータのデータ構成の一例を示す図。
【図１７】計測履歴データのデータ構成の一例を示す図。
【図１８】メイン処理の流れを示すフローチャート。
【図１９】停止判定処理の流れを示すフローチャート。
【図２０】旋回判定処理の流れを示すフローチャート。
【図２１】加減速判定処理の流れを示すフローチャート。
【図２２】位置算出処理の流れを示すフローチャート。
【図２３】ＬＳ位置算出処理の流れを示すフローチャート。
【図２４】ＫＦ位置算出処理の流れを示すフローチャート。
【図２５】ＫＦパラメータ設定処理の流れを示すフローチャート。
【図２６】基礎ＫＦ位置算出処理の流れを示すフローチャート。
【図２７】位置飛び判定処理の流れを示すフローチャート。
【符号の説明】
【０１９０】
１  携帯型電話機、  １０  ＧＰＳアンテナ、  ２０  ＧＰＳ受信部、  ２１  ＲＦ受信回路部、  ３０  ベースバンド処理回路部、  ３１  演算制御部、  ３３  メジャメント取得演算部、  ３５  ＲＯＭ、  ３７  ＲＡＭ、  ４０  ホストＣＰＵ、  ５０  操作部、  ６０  表示部、  ７０  センサ部、  ７１  加速度センサ、  ７３  ジャイロセンサ、  ７５  方位センサ、  ８０  ＲＯＭ、  ９０  ＲＡＭ、  １００  携帯電話用アンテナ、  １１０  携帯電話用無線通信回路部
【図１】
2010117147.tif 000030
【図２】
2010117147.tif 000031
【図３】
2010117147.tif 000032
【図４】
2010117147.tif 000033
【図５】
2010117147.tif 000034
【図６】
2010117147.tif 000035
【図７】
2010117147.tif 000036
【図８】
2010117147.tif 000037
【図９】
2010117147.tif 000038
【図１０】
2010117147.tif 000039
【図１１】
2010117147.tif 000040
【図１２】
2010117147.tif 000041
【図１３】
2010117147.tif 000042
【図１４】
2010117147.tif 000043
【図１５】
2010117147.tif 000044
【図１６】
2010117147.tif 000045
【図１７】
2010117147.tif 000046
【図１８】
2010117147.tif 000047
【図１９】
2010117147.tif 000048
【図２０】
2010117147.tif 000049
【図２１】
2010117147.tif 000050
【図２２】
2010117147.tif 000051
【図２３】
2010117147.tif 000052
【図２４】
2010117147.tif 000053
【図２５】
2010117147.tif 000054
【図２６】
2010117147.tif 000055
【図２７】
2010117147.tif 000056