(57)【特許請求の範囲】
【請求項１】
ユーザーの移動時の姿勢、速度、角速度及び加速度の少なくとも一つを検出した検出値を記憶部に記憶することと、
現在までの前記検出値の変遷に類似する過去の前記検出値の変遷部分を前記記憶部から抽出することと、
前記抽出結果を用いて、前記検出値を補正する際の前記検出値の参照値を生成することと、
を含む参照値生成方法。
【請求項２】
前記抽出することは、前記検出値の変遷に最も類似する過去の前記検出値の変遷部分を抽出することを含む、
請求項１に記載の参照値生成方法。
【請求項３】
前記抽出することは、現在までの前記検出値の変遷と、過去の前記検出値の変遷との類似度を算出することを含み、
前記算出された類似度のうちの最も高い類似度が、所定の高類似条件を満たさない場合に、最新の前記検出値を用いて、前記参照値を生成することを含む、
請求項１又は２に記載の参照値生成方法。
【請求項４】
前記抽出することは、ユーザーの上下動の加速度のうち隣り合うピーク間の時間間隔である着地時間間隔に基づき定まる前記類似の判定のための時間範囲を用いて、現在を終期とする当該時間範囲の前記検出値の変遷に類似する過去の当該時間範囲の前記検出値の変遷を抽出することである、
請求項１〜３の何れか一項に記載の参照値生成方法。
【請求項５】
前記記憶部は、ユーザーが２歩歩行する間に検出される前記検出値を記憶する容量として定められた所定容量以上の容量を有する、
請求項１〜４の何れか一項に記載の参照値生成方法。
【請求項６】
前記参照値を観測情報として、前記検出値の補正量を求めるカルマンフィルター処理を行うことと、
前記補正量に基づいて前記検出値を補正することと、
前記検出値を用いて位置を算出することと、
を含む請求項１〜５の何れか一項に記載の参照値生成方法。
【請求項７】
前記検出値には、ユーザーの移動時の絶対座標における速度ベクトルを示す値が少なくとも含まれ、
加速度センサーの計測値に基づいて定まる加速度ベクトルを積算して、絶対座標における速度ベクトルを求めることと、
前記速度ベクトルを積算して、絶対座標における位置を算出することと、
前記参照値を用いて、前記加速度ベクトルの積算、及び、前記速度ベクトルの積算の何れかを補正すること、
を含む請求項１〜５の何れか一項に記載の参照値生成方法。
【請求項８】
ユーザーの移動時の姿勢、速度、角速度及び加速度の少なくとも一つを検出した検出値を記憶する記憶部と、
現在までの前記検出値の変遷に類似する過去の前記検出値の変遷部分を前記記憶部から抽出する抽出部と、
前記抽出部の抽出結果を用いて、前記検出値を補正する際の前記検出値の参照値を生成する生成部と、
を備えた参照値生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ユーザーの移動時の姿勢、速度、角速度及び加速度の何れかを検出した検出値を補正する際に利用される参照値の生成方法等に関する。
【背景技術】
【０００２】
いわゆるシームレス測位やモーションセンシング、姿勢制御など様々な分野において、センサーの活用が注目されている。センサーとしては、加速度センサーやジャイロセンサー、圧力センサー、地磁気センサーなどが広く知られている。センサーの計測結果を利用して慣性航法演算を行って移動体（例えば自転車や自動車、電車、船、飛行機など）の位置算出を行う技術も考案されている。
【０００３】
その中でも、移動体として人間を想定し、慣性航法等を利用して人間の位置を算出する技術が、特許文献１〜４に開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許公報１１／３７９２６９号明細書
【特許文献２】米国特許公報０９／２１２７６６号明細書
【特許文献３】米国特許公報０８／４０５０８７号明細書
【特許文献４】米国特許公報０６／４６５２７４号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００５】
例えば３軸の加速度センサーの計測結果を利用して歩行中の位置を算出する場合は、加速度センサーの計測結果である加速度ベクトルを積算して速度ベクトルを求め、速度ベクトルを積算して位置を算出する。しかし、センサーの計測結果に含まれるバイアス等の影響により、積算を繰り返すことで、慣性航法の演算誤差が累積するという問題がある。
【０００６】
つまり、歩行用の位置算出の技術では、位置算出の精度が、もっぱら位置算出装置に搭載される慣性センサーの計測誤差に依存する。そのため、慣性センサーの計測誤差を補正する必要が生じる。計測誤差を補正するためには、補正の基準となる参照値が必要となる。参照値に誤りがあると、計測誤差を正しく補正できないことになる。
【０００７】
本発明は上述した課題に鑑みて為されたものであり、ユーザーの移動時の計測誤差を補正するための参照値を生成する新たな手法を提案することを目的とする。
【課題を解決するための手段】
【０００８】
以上の課題を解決するための第１の形態は、ユーザーの移動時の姿勢、速度、角速度及び加速度の何れかを検出した検出値を記憶部に記憶することと、現在までの前記検出値の変遷に類似する過去の前記検出値の変遷部分を前記記憶部から抽出することと、前記抽出結果を用いて、前記検出値を補正する際の前記検出値の参照値を生成することと、を含む参照値生成方法である。
【０００９】
また、他の形態として、ユーザーの移動時の姿勢、速度、角速度及び加速度の何れかを検出した検出値を記憶する記憶部と、現在までの前記検出値の変遷に類似する過去の前記検出値の変遷部分を前記記憶部から抽出する抽出部と、前記抽出部の抽出結果を用いて、前記検出値を補正する際の前記検出値の参照値を生成する生成部と、を備えた参照値生成装置を構成することとしてもよい。
【００１０】
この第１の形態等によれば、ユーザーの移動時の姿勢、速度、角速度及び加速度の何れかを検出した検出値を記憶部に記憶する。そして、現在までの検出値の変遷に類似する過去の検出値の変遷部分を記憶部から抽出し、当該抽出結果を用いて、検出値を補正する際の検出値の参照値を生成する。現在までの検出値の変遷に類似する過去の検出値の変遷部分を抽出するといった簡易な手法により、ユーザーの移動時に検出された姿勢、速度、角速度及び加速度の何れかを補正する際に利用される参照値を生成することができる。
【００１１】
また、第２の形態として、第１の形態の参照値生成方法において、前記抽出することは、前記検出値の変遷に最も類似する過去の前記検出値の変遷部分を抽出することを含む、参照値生成方法を構成することとしてもよい。
【００１２】
この第２の形態によれば、検出値の変遷に最も類似する過去の検出値の変遷部分を抽出することで、検出値を補正する際の当該検出値の参照値として適切な値を生成することができる。
【００１３】
また、第３の形態として、第１又は第２の形態の参照値生成方法において、前記抽出することは、現在までの前記検出値の変遷と、過去の前記検出値の変遷との類似度を算出することを含み、前記算出された類似度のうちの最も高い類似度が、所定の高類似条件を満たさない場合に、最新の前記検出値を用いて、前記参照値を生成することを含む、参照値生成方法を構成することとしてもよい。
【００１４】
類似度が低いにも関わらず、過去の検出値の変遷部分を用いて参照値を生成した場合、その参照値は適切な値ではない可能性が高い。すなわち、その参照値を用いて検出値を補正しても、正しく補正できない可能性が高い。そこで、第３の形態によれば、現在までの検出値の変遷と、過去の検出値の変遷との類似度のうちの最も高い類似度が、所定の高類似条件を満たさない場合には、最新の検出値を用いて参照値を生成する。これにより、例えば、ユーザーが移動中に方向転換をする場面など、ユーザーの移動時に検出される諸量が瞬間的に大きく変化する場面では、その場面に見合った適切な参照値を生成することが可能となる。
【００１５】
また、第４の形態として、第１〜第３の何れかの形態の参照値生成方法において、前記抽出することは、ユーザーの上下動の加速度のうち隣接するピーク間の時間間隔である着地時間間隔に基づき定まる前記類似の判定のための時間範囲を用いて、現在を終期とする当該時間範囲の前記検出値の変遷に類似する過去の当該時間範囲の前記検出値の変遷を抽出することである、参照値生成方法を構成することとしてもよい。
【００１６】
この第４の形態によれば、ユーザーの上下動の加速度のうち隣接するピーク間の時間間隔である着地時間間隔に基づき定まる類似の判定のための時間範囲を用いることで、現在を終期とする当該時間範囲の検出値の変遷に類似する過去の当該時間範囲の検出値の変遷を適切に抽出することができる。その結果、適切な参照値を生成することが可能となる。
【００１７】
また、第５の形態として、第１〜第４の何れかの形態の参照値生成方法において、前記記憶部は、ユーザーが２歩歩行する間に検出される前記検出値を記憶する容量として定められた所定容量以上の容量を有する、参照値生成方法を構成することとしてもよい。
【００１８】
この第５の形態によれば、記憶部が、ユーザーが２歩歩行する間に検出される検出値を記憶する容量として定められた所定容量以上の容量を有する構成となることで、人間の歩行時における姿勢、速度、角速度及び加速度の周期性に基づいて、現在までの検出値の変遷に類似する過去の検出値の変遷部分を抽出することが可能となる。
【００１９】
また、第６の形態として、第１〜第５の何れかの形態の参照値生成方法において、前記参照値を観測情報として、前記検出値の補正量を求めるカルマンフィルター処理を行うことと、前記補正量に基づいて前記検出値を補正することと、前記検出値を用いて位置を算出することと、を含む参照値生成方法を構成することとしてもよい。
【００２０】
この第６の形態によれば、上記の何れかの形態で求めた参照値を観測情報として、検出値の補正量を求めるカルマンフィルター処理を行うことで、検出値の補正量を正しく求めることができる。そして、求めた補正量に基づいて検出値を補正し、補正結果の検出値を用いて位置を算出することで、位置を正しく算出することが可能となる。
【００２１】
また、第７の形態として、第１〜第５の何れかの形態の参照値生成方法において、前記検出値には、ユーザーの移動時の絶対座標における速度ベクトルを示す値が少なくとも含まれ、加速度センサーの計測値に基づいて定まる加速度ベクトルを積算して、絶対座標における速度ベクトルを求めることと、前記速度ベクトルを積算して、絶対座標における位置を算出することと、前記参照値を用いて、前記加速度ベクトルの積算、及び、前記速度ベクトルの積算の何れかを補正すること、を含む参照値生成方法を構成することとしてもよい。
【００２２】
この第７の形態によれば、加速度センサーの計測値に基づいて定まる加速度ベクトルを積算して、絶対座標における速度ベクトルを求める。求めた速度ベクトルを積算して、絶対座標における位置を算出する。そして、参照値を用いて、加速度ベクトルの積算、及び、速度ベクトルの積算の何れかを補正する。これにより、積算を繰り返して位置を算出する場合に生じる演算誤差の累積を防止することができる。
【図面の簡単な説明】
【００２３】
【図１】全体システムのシステム構成の説明図。
【図２】ＩＮＳのシステム構成の説明図。
【図３】参照値生成部の機能構成の説明図。
【図４】ローカル座標速度ベクトルの時間変化の一例を示す図。
【図５】姿勢角の時間変化の一例を示す図。
【図６】相関演算結果の一例を示す図。
【図７】ＩＮＳ演算システムのシステム構成図。
【図８】ＩＮＳ演算装置の機能構成の一例を示すブロック図。
【図９】メイン処理の流れを示すフローチャート。
【図１０】参照値生成処理の流れを示すフローチャート。
【発明を実施するための形態】
【００２４】
以下、図面を参照して、本発明の好適な実施形態の一例について説明する。但し、本発明を適用可能な実施形態が以下説明する実施形態に限定されるわけでないことは勿論である。
【００２５】
１．原理
１−１．全体システム
図１は、本実施形態における全体システム１の概略構成を示す図である。全体システム１は、ＩＮＳ（Inertial Navigation System）１０と、参照値生成部２０と、誤差推定部３０とを備えて構成される。
【００２６】
以下参照する図面では、センサーのブロックを二重線で示し、センサーの計測結果を利用して演算処理を行う処理ブロックを一重線で示す。一重線で示される処理ブロックは、例えば電子機器に搭載されるプロセッサー（ホストプロセッサー）が処理主体となる処理ブロックである。なお、各処理ブロックの処理の主体は、本発明を適用するシステムに応じて適宜設定可能である。
【００２７】
本実施形態では、２種類の座標系を定義する。第１の座標系は、センサーに対応付けられた三次元直交座標系でなるローカル座標系（センサー座標系）である。本実施形態では、ローカル座標系の３軸をｕ軸、ｖ軸及びｗ軸と表記する。
【００２８】
第２の座標系は、慣性航法演算を行う際の基準とする絶対座標系である。絶対座標系は、例えば、北東下座標系として知られるＮＥＤ（North East Down）座標系や、東北上座標系として知られるＥＮＵ（East North Up）座標系、地球中心地球固定座標系として知られるＥＣＥＦ（Earth Centered Earth Fixed）座標系といった各種の座標系を適用できる。本実施形態では、絶対座標系の３軸をＸ軸、Ｙ軸及びＺ軸と表記する。
【００２９】
加速度や速度には、大きさの他に方向がある。本明細書では、原則として、加速度や速度と言ったときは加速度や速度の大きさ（スカラー量）を表すものとし、加速度ベクトルや速度ベクトルと言ったときは大きさ（スカラー量）に加えて方向を表すものとする。また、各座標系において定義される諸量を明確にするため、各諸量を表す文言の先頭に座標系の種類を付して説明する。例えば、ローカル座標系で表した加速度ベクトルのことを「ローカル座標加速度ベクトル」と称し、絶対座標系で表した加速度ベクトルのことを「絶対座標加速度ベクトル」と称する。他の諸量についても同様である。
【００３０】
ＩＮＳ１０は、慣性航法システムとして知られ、自立的な測位が可能に構成されたシステムである。ＩＮＳ１０は、加速度センサー５Ａやジャイロセンサー５Ｂ、地磁気センサーといった慣性センサーや、これらの慣性センサーをパッケージ化したＩＭＵ（Inertial Measurement Unit）によって計測された計測結果に基づいて、位置や速度（速度ベクトル）、姿勢角等を演算して出力する。ＩＭＵは、慣性計測ユニットとして知られるセンサーユニットであり、ローカル座標系で表した加速度ベクトル及び角速度ベクトルを計測して出力可能に構成されている。
【００３１】
図２は、ＩＮＳ１０のシステム構成の一例を示す図である。ＩＮＳ１０は、センサーとして、加速度センサー５Ａと、ジャイロセンサー５Ｂとを有する。また、処理ブロックとして、姿勢情報算出部１１と、絶対座標加速度ベクトル算出部１３と、絶対座標速度ベクトル算出部１５と、絶対座標位置算出部１７と、重力算出部１８と、補正部１９とを有する。
【００３２】
加速度センサー５Ａは、加速度ベクトルをローカル座標系で計測するセンサーである。また、ジャイロセンサー５Ｂは、角速度ベクトルをローカル座標系で計測するセンサーである。これらのセンサーには、例えばＭＥＭＳ（Micro Electro Mechanical Systems）の技術を利用したＭＥＭＳセンサーが用いられる。
【００３３】
姿勢情報算出部１１は、ジャイロセンサー５Ｂによって計測された角速度ベクトルと、姿勢情報記憶部１１Ａに記憶されている姿勢情報とを用いて、最新の姿勢情報を算出する。姿勢情報は、例えば、クォータニオンや方向余弦行列（以下、「ＤＣＭ（Direction Cosine Matrix）」と称す。）、オイラー角といった、各種の姿勢表現に基づき定義される姿勢を示す情報のことを意味する。なお、各種の姿勢表現については従来公知であるため、ここでは詳細な説明を省略する。姿勢情報算出部１１は、算出した最新の姿勢情報を姿勢情報記憶部１１Ａに記憶させる。
【００３４】
絶対座標加速度ベクトル算出部１３は、加速度センサー５Ａによって計測されたローカル座標加速度ベクトルと、姿勢情報算出部１１から入力した姿勢情報とを用いて、最新の絶対座標加速度ベクトルを算出する。具体的には、ローカル座標加速度ベクトルを絶対座標加速度ベクトルに座標変換して、最新の絶対座標加速度ベクトルを算出する。座標変換は公知の技術を適用可能であるため、説明を省略する。
【００３５】
絶対座標速度ベクトル算出部１５は、絶対座標加速度ベクトル算出部１３から入力した絶対座標加速度ベクトルと、重力算出部１８から入力した重力情報と、絶対座標速度ベクトル記憶部１５Ａに記憶された絶対座標速度ベクトルとを用いて、絶対座標速度ベクトルを算出する。この際、重力方向及びコリオリの力を重力情報及び記憶された絶対座標速度ベクトルに基づいて補正する。地球は楕円形をしているため、地球中心から見た緯度と地理学上の緯度とは異なる。そのため、重力方向についての補正が必要であり、地球は宇宙の慣性空間に対して回転しているため、コリオリの力の補正も必要となる。
【００３６】
絶対座標速度ベクトル算出部１５は、上記のように重力方向を加味して、絶対座標加速度ベクトルを、絶対座標速度ベクトル記憶部１５Ａに記憶された絶対座標速度ベクトルに積算することで最新の絶対座標速度ベクトルを算出する。そして、算出した最新の絶対座標速度ベクトル記憶部１５Ａに記憶させる。
【００３７】
絶対座標位置算出部１７は、絶対座標速度ベクトル算出部１５から入力した絶対座標速度ベクトルを、絶対座標位置記憶部１７Ａに記憶された絶対座標位置に積算することで絶対座標位置を算出する。そして、算出した最新の絶対位置座標を絶対座標位置記憶部１７Ａに記憶させる。
【００３８】
重力算出部１８は、絶対座標位置算出部１７から入力した絶対座標位置を用いて、重力情報を算出して、絶対座標速度ベクトル算出部１５に出力する。
【００３９】
補正部１９は、誤差推定部３０によって推定された誤差情報を用いて、各算出部で算出された積算値を補正する。具体的には、計測角速度ベクトルを、誤差情報に含まれる角速度バイアスを用いて補正する。また、姿勢情報記憶部１１Ａに記憶された姿勢情報を、誤差情報に含まれる姿勢角誤差を用いて補正する。また、計測加速度ベクトルを、誤差情報に含まれる加速度バイアスを用いて補正する。
【００４０】
また、絶対座標速度ベクトル記憶部１５Ａに記憶された絶対座標速度ベクトルを、誤差情報に含まれる速度ベクトル誤差を用いて補正し、絶対座標位置記憶部１７Ａに記憶された絶対座標位置を、誤差情報に含まれる位置誤差を用いて補正する。
【００４１】
ＩＮＳ１０からは、最終的に、姿勢情報と、絶対座標速度ベクトルと、絶対座標位置とが演算結果として出力される。
【００４２】
１−２．参照値の生成方法
図１に戻り、参照値生成部２０は、誤差推定部３０が、姿勢や速度、加速度、位置等の補正量を求めるカルマンフィルター処理を行う際に観測情報とする参照値を生成する。参照値生成部２０は、参照値を生成する装置（参照値生成装置）とも言える。
【００４３】
本願発明者は、ユーザーが歩行或いは走行する移動時には、ローカル座標速度ベクトルの各軸成分と、姿勢角の各軸成分とに、それぞれ周期性が現れることを実験によって確認した。かかる知見に基づき、ユーザーの移動時の姿勢、速度を算出した算出値を、記憶部に記憶する。そして、現在までの算出値の変遷に類似する過去の算出値の変遷部分を抽出し、当該抽出結果を用いて参照値を生成する。慣性センサーの計測結果や、各処理ブロックによって算出される算出値は、それぞれ姿勢や速度、角速度及び加速度の何れかを検出した検出値の一例である。
【００４４】
図４は、ユーザーの歩行時におけるローカル座標速度ベクトルの時間変化を示す実験結果の一例である。ユーザーの腰に慣性センサーを装着して、ｕ軸、ｖ軸及びｗ軸の加速度をそれぞれ積算することで（但し、重力成分を除外して積算した。）、ｕ軸、ｖ軸及びｗ軸の速度をそれぞれ算出した結果を図示している。横軸は時間軸であり、縦軸は速度の値である。この実験結果を見ると、ｕ軸、ｖ軸及びｗ軸の何れの速度成分も、ユーザーの歩行に伴い、周期的な変遷を示すことがわかる。これは、歩行時には、人間はほぼ一定周期で同じ足の運びをする傾向があるためである。
【００４５】
図５は、ユーザーの歩行中における姿勢角の時間変化を示す実験結果の一例である。実験方法は上記と同様である。ｕ軸、ｖ軸及びｗ軸の軸周りの角速度ベクトルを利用して姿勢更新することで求めたロール角、ピッチ角及びヨー角を図示している。横軸は時間軸であり、縦軸は姿勢角の値である。この実験結果を見ると、ロール角、ピッチ角及びヨー角の何れも、ユーザーが真っ直ぐ進行している間は、周期的な変遷を示す傾向がある。但し、ヨー角について、ユーザーが方向転換をする際には周期性が現れない。ユーザーが方向転換をする際には、ヨー角の算出値が瞬間的に大きく変化する。
【００４６】
なお、上記は人間の腰に慣性センサーを設置した場合の実験結果であるが、慣性センサーをユーザーが手に持った状態や、ユーザーの胸ポケットに入れた状態、ユーザーの鞄の中に入れた状態といった種々の状態で同様の測定を行ってみた。その結果、慣性センサーの装着場所に依らずに、ローカル座標速度ベクトル及び姿勢角には周期性が現れることを確認した。
【００４７】
本実施形態では、上記の周期性に着目し、ローカル座標速度ベクトルの各軸の速度成分と、姿勢角の各軸の成分とのそれぞれについて、過去に検出された値（過去の算出値）を利用して参照値を生成する。具体的には、現在を終期とする所定の時間範囲の検出値の変遷に類似する過去の当該時間範囲の検出値の変遷を抽出する。この方法として、本実施形態では、相関演算を利用する。
【００４８】
詳細に説明する。まず、現在を終期とする所定の時間範囲（例えば１秒間）の検出値のデータ列を選択する。このデータ列は固定である。一方、同じ時間範囲（例えば１秒間）の過去の検出値のデータ列を、選択する期間（いつの時点の１秒間とするか）をずらしながら選択する。そして、選択したデータ列それぞれを、現在を終期とするデータ列と比較する相関演算を行って、相関値（類似度）を算出する。相関演算は畳み込み演算で行う。所定期間（例えば現在から過去３秒間の間）の中から選択するデータ列をずらしながら相関演算をすることで、現在までの検出値の変遷に最も類似する過去の検出値の変遷部分を抽出することができる。
【００４９】
図６は、本実施形態の相関演算を説明するための図である。ローカル座標速度ベクトルのうちのｗ軸の速度成分に関して図示している。横軸は時間軸であり、縦軸は速度である。図中の左右中央の時刻“４１［秒］”を基準として、左側の実線で示した検出値（サンプル値）のうちの連続する所定数の検出値を第１データ列とし、右側の点線で示した検出値のうちの所定数の検出値を第２データ列とする。但し、「所定数」は、２歩歩くのに要する時間以上のサンプル数となるように定めた。そして、第１データ列の選択位置を時間軸方向にずらして、第２データ列との相関演算を行った結果を図６の右下部に示す。この図において、横軸は検出値のズレ分であり、縦軸は相関値である。
【００５０】
この結果を見ると、第１データ列を「＋２サンプル分」ずらした場合に、最も高い相関が得られる。そして、この相関値をピーク（相関ピーク値）として、第１データ列の選択位置をずらすほど、相関値が低減していくことがわかる。なお、図示していないが、ずらす量を更に大きくしていくと、相関値は低減から増加に転じ、「＋２サンプル分」ずらした場合と同様のピーク状の値を示した。従って、ユーザーの移動において、検出値が周期的に変遷することが推察される。そこで、第２データ列を、最新の検出値を周期とするデータ列とし、第１データ列を時間軸方向にずらしながら相関演算することで、現在までの検出値の変遷に類似する過去の検出値の変遷部分を抽出することができる。
【００５１】
また、相関値がピークとなった「＋２サンプル分」ずらした場合の第１データ列を構成する検出値と、第２データ列を構成する検出値とは、時刻順に比較すると、互いに近似する値であると言える。そのため、現在までの検出値の変遷に類似する過去の検出値の変遷部分が抽出できれば、最新の検出値に近似するはずの過去の検出値を、抽出された変遷部分の中から選択することが可能となる。最新の検出値を補正する際には、その最新の検出値に対応する、その最新の検出値に近似するはずの過去の検出値を、参照値として利用することができるのである。
【００５２】
本実施形態において、相関演算は畳み込み演算で行われる。また、第２データ列を固定とし、第１データ列のみを時間軸方向にずらす。このため、第２データ列の終端の検出値を最新の検出値とし、ずらして選択していく第１データ列の終端の検出値に、相関演算結果を対応づける。こうすることで、最も高い相関値が対応づけられた検出値が、最新の検出値に近似するはずの過去の検出値であると簡単に判断できる。
【００５３】
なお、図６を参照して速度に関して説明したが、姿勢角についても同様である。また、相関演算を行う際には、ローカル座標速度ベクトルの各成分及び姿勢角の各成分それぞれについて、バンドパスフィルター等のデジタル信号処理を実行して信号の直流成分をカットし、信号の交流成分に対して相関演算を行うことにすると好適である。
【００５４】
図３に戻る。図３は、参照値生成部２０の機能構成の一例を示す図である。参照値生成部２０は、ローカル座標速度ベクトル算出部２１と、参照速度ベクトル算出部２３と、姿勢角算出部２５と、参照姿勢角算出部２７とを有する。
【００５５】
ローカル座標速度ベクトル算出部２１は、ＩＮＳ１０から入力した絶対座標速度ベクトルを、同じくＩＮＳ１０から入力した姿勢情報を用いて座標変換することで、ローカル座標速度ベクトルを算出する。
【００５６】
参照速度ベクトル算出部２３は、ローカル座標速度ベクトル算出部２１から入力したローカル座標速度ベクトルを時刻と対応づけて記憶部に履歴的に記憶するとともに、ローカル座標速度ベクトルの各軸の速度成分それぞれについて過去のデータを読み出し、上記の原理に従った相関演算を行う。
【００５７】
参照速度ベクトル算出部２３は、第１の相関演算部２３Ａと、第１の相関ピーク判定部２３Ｂとを有する。参照速度ベクトル算出部２３は、参照値を生成する生成部に相当する。また、第１の相関演算部２３Ａ及び第１の相関ピーク判定部２３Ｂは、現在までの検出値の変遷に類似する過去の検出値の変遷部分を抽出する抽出部に相当する。
【００５８】
第１の相関演算部２３Ａは、履歴的に記憶された過去のローカル座標速度ベクトルについて第１の相関演算を行う。相関演算は上述の原理の通りである。これにより、現在の算出値に対して、過去のどの算出値が最も高い相関を有するかを判定する。
【００５９】
第１の相関ピーク判定部２３Ｂは、第１の相関演算部２３Ａの相関演算の結果に基づいて、相関ピーク値を判定する。現在の算出値と高い相関を有する算出値が過去に存在する場合には、相関ピーク値は比較的大きい値となる。しかし、現在の算出値と高い相関を有する算出値が過去に存在しなければ、相関ピーク値は比較的小さい値となる。そこで、相関ピーク値が所定の閾値を超えている場合は、相関ピーク値を「ＯＫ」と判定する。他方、所定の閾値を超えていない場合は、相関ピーク値を「ＮＧ」と判定する。
【００６０】
第１の相関ピーク判定部２３Ｂによって相関ピーク値が「ＯＫ」と判定された場合には、その相関ピーク値及びズレ量に基づいて過去の検出値を読み出して、参照値として設定する。それに対し、相関ピーク値が「ＮＧ」と判定された場合には、最新の速度の検出値を参照値とする。つまり、相関がとれなかった場合は、過去の検出値を用いるのではなく、最新の検出値を参照値として用いる。これは、算出された類似度のうちの最も高い類似度が、所定の高類似条件を満たさない場合に、最新の速度の検出値を用いて、参照値を生成することに相当する。
【００６１】
姿勢角算出部２５は、ＩＮＳ１０から入力した姿勢情報を用いて姿勢角を算出する。姿勢角は、ローカル座標と絶対座標間の３軸回転角度であり、ロール角、ピッチ角及びヨー角のオイラー角で表される。ＩＮＳ１０から入力した姿勢情報がクォータニオンである場合は、クォータニオンからオイラー角に変換する。また、ＩＮＳ１０から入力した姿勢情報がＤＣＭである場合は、ＤＣＭからオイラー角に変換する。なお、これらの変換は従来公知であるため、ここでは説明を省略する。
【００６２】
参照姿勢角算出部２７は、姿勢角算出部２５から入力した姿勢角を用いて、参照姿勢角を算出する。この場合、姿勢角算出部２５によって算出された姿勢角の各成分は、３つの記憶部にそれぞれ格納される。
【００６３】
参照姿勢角算出部２７は、第２の相関演算部２７Ａと、第２の相関ピーク判定部２７Ｂとを有する。第２の相関演算部２７Ａが行う相関演算の方法、及び、第２の相関ピーク判定部２７Ｂが行う相関ピーク判定の方法は、上記と同様である。
【００６４】
参照姿勢角算出部２７は、相関ピーク値が所定の閾値を超えている場合には、相関ピーク値を「ＯＫ」と判定する。他方、所定の閾値を超えていない場合には、相関ピーク値を「ＮＧ」と判定する。そして、相関ピーク値を「ＯＫ」と判定した場合には、その相関ピーク値及びズレ量に基づいて過去の検出値を読み出して、姿勢角の参照値として設定する。それに対し、相関ピーク値を「ＮＧ」と判定した場合には、最新の姿勢角の検出値を参照値として設定する。
【００６５】
例えば、ユーザーが歩行時に方向転換をした場合には、ヨー角が瞬間的に大きく変化する。そのため、方向転換時にヨー角について相関演算を行うと、うまく相関がとれず、相関ピーク値は小さくなる傾向がある。その結果、相関ピークは閾値を超えず、相関ピーク値が「ＮＧ」と判定される。つまり、ユーザーが歩行時に方向転換をした場合には、相関がとれないために、過去のヨー角の検出値ではなく、最新のヨー角の検出値が参照値として設定されることになる。
【００６６】
１−３．誤差推定方法及び補正方法
図１に戻り、誤差推定部３０は、参照値生成部２０によって生成された参照値を用いて、所定の誤差推定演算を行うことで、ＩＮＳ１０が演算する各諸量に含まれる誤差を推定する。誤差推定の手法としては種々の手法を適用可能であるが、本実施形態では、カルマンフィルターを適用する場合を例示する。
【００６７】
具体的には、例えば、ＩＮＳ１０により演算される姿勢情報の誤差（姿勢誤差）、絶対座標速度ベクトルの誤差（速度ベクトル誤差）、絶対座標位置の誤差（位置誤差）、加速度センサー５Ａのバイアス（加速度バイアス）及びジャイロセンサー５Ｂのバイアス（ジャイロバイアス）を成分とする状態ベクトル“Ｘ”を設定する。また、ＩＮＳ１０から出力されるＩＮＳ演算結果を、入力ベクトル“Ｕ”（制御入力）として設定する。
【００６８】
また、速度に係る観測情報として、参照速度ベクトルを絶対座標で表した絶対座標参照速度ベクトルと、ＩＮＳ１０から入力した絶対座標速度ベクトルとの差を算出する。また、姿勢角に係る観測情報として、参照姿勢角と、ＩＮＳ１０から入力した姿勢角情報から求まる姿勢角との差を算出する。そして、これらの差を成分とする観測ベクトル“Ｚ”を設定する。
【００６９】
上記のように状態ベクトル“Ｘ”、入力ベクトル“Ｕ”及び観測ベクトル“Ｚ”を設定し、カルマンフィルターの理論に基づく予測演算（時刻更新）及び補正演算（観測更新）を行って、状態ベクトル“Ｘ”の推定値（状態推定値）を求める。状態推定値の各成分が誤差情報となる。これは、参照値を観測情報として、検出値の補正量を求めるカルマンフィルター処理を行うことに相当する。
【００７０】
誤差推定部３０によって推定された誤差情報は、ＩＮＳ１０にフィードバックされる。そして、このフィードバックされた誤差情報に基づいて、前述したように、ＩＮＳ１０の各処理ブロックで実行される積算が、誤差情報を用いて補正部１９によって補正される。これは、補正量に基づいて検出値を補正することや、検出値を用いて位置を算出することに相当する。
【００７１】
２．実施例
次に、原理で説明した参照値生成装置を適用した電子機器の実施例について説明する。但し、本発明を適用可能な実施例が以下説明する実施例に限定されるわけではないことは勿論である。
【００７２】
図７は、本実施例におけるＩＮＳ演算システムの概略構成の一例を示す図である。ＩＮＳ演算システムは、人間に搭載されるＩＮＳ演算装置１０００を備えて構成される。ＩＮＳ演算装置１０００は、例えばユーザーの右腰に装着して利用される。ユーザーがウオーキングやランニング等の運動を行う際に、右腰に装置を装着した状態で運動を行う。位置等の情報を履歴的に記憶しておくことで、ユーザーは後から移動経路を確認したり、ＩＮＳ演算装置１０００をパソコン等に接続することで、運動記録等の各種の情報の編集を行うことができる。
【００７３】
ＩＮＳ演算装置１０００は、加速度センサー５Ａ及びジャイロセンサー５Ｂを有するセンサーユニットとしてのＩＭＵ５００を具備し、ＩＭＵ５００に対応付けられたローカル座標系における加速度ベクトル及び角速度ベクトルを計測する。また、ＩＮＳ演算装置１０００は、参照値生成装置を有し、ユーザーの位置、速度ベクトル及び姿勢角といった各諸量の検出値を補正する際の参照値を生成する。そして、生成した参照値を用いて、原理で説明したようにＩＮＳ演算結果を補正する。
【００７４】
２−１．機能構成
図８は、ＩＮＳ演算装置１０００の機能構成の一例を示すブロック図である。ＩＮＳ演算装置１０００は、主要な機能構成として、処理部１００と、操作部２００と、表示部３００と、音出力部４００と、ＩＭＵ５００と、記憶部６００とを備えて構成される。
【００７５】
処理部１００は、記憶部６００に記憶されているシステムプログラム等の各種プログラムに従ってＩＮＳ演算装置１０００の各部を統括的に制御する制御装置及び演算装置であり、ＣＰＵ（Central Processing Unit）やＤＳＰ（Digital Signal Processor）等のプロセッサーを有して構成される。
【００７６】
操作部２００は、例えばタッチパネルやボタンスイッチ等により構成される入力装置であり、押下されたキーやボタンの信号を処理部１００に出力する。この操作部２００の操作により、運動の開始や運動の終了といった各種指示入力がなされる。
【００７７】
表示部３００は、ＬＣＤ（Liquid Crystal Display）等により構成され、処理部１００から入力される表示信号に基づいた各種表示を行う。表示部３００には、ＩＮＳ演算結果である位置や速度ベクトル、姿勢角等の情報が表示される。
【００７８】
音出力部４００は、スピーカー等を有して構成される音出力装置であり、処理部１００から出力される音出力信号に基づいた各種音出力を行う。音出力部４００からは、音声ガイダンスや、歩行或いは走行に係るペース音等が音出力される。
【００７９】
記憶部６００は、ＲＯＭ（Read Only Memory）やフラッシュＲＯＭ、ＲＡＭ（Random Access Memory）等の記憶装置によって構成され、ＩＮＳ演算装置１０００のシステムプログラムや、ＩＮＳ演算等の各種機能を実現するための各種プログラム、データ等を記憶している。また、各種処理の処理中データ、処理結果などを一時的に記憶するワークエリアを有する。
【００８０】
２−２．データ構成
記憶部６００には、プログラムとして、処理部１００により読み出され、メイン処理（図９参照）として実行されるメインプログラム６１０が記憶されている。メインプログラム６１０は、参照値生成処理（図１０参照）として実行される参照値生成プログラム６１１をサブルーチンとして含む。これらの処理については、フローチャートを用いて詳細に後述する。
【００８１】
また、記憶部６００には、データとして、ＩＭＵ計測データ６２０と、演算データ６３０と、誤差データ６４０と、履歴データ６５０と、参照値データ６６０とが記憶される。
【００８２】
ＩＭＵ計測データ６２０は、ＩＭＵ５００の計測結果のデータである。例えば、加速度センサーにより計測されたローカル座標加速度ベクトルと、ジャイロセンサー５Ｂにより計測されたローカル座標角速度ベクトルとが時系列に記憶される。
【００８３】
演算データ６３０は、ＩＮＳ演算処理を行うことで算出したＩＮＳ演算結果が記憶されたデータである。図２のＩＮＳ１０の慣性航法演算の過程で求められる各諸量に係る処理中データがこれに含まれる。
【００８４】
誤差データ６４０は、誤差算出処理を行うことで算出したＩＮＳ演算誤差が記憶されたデータである。図１の誤差推定部３０の誤差推定演算の結果として得られるＩＮＳ演算結果の誤差がこれに含まれる。
【００８５】
履歴データ６５０は、参照値を生成するために用いられる履歴のデータである。図３のローカル座標速度ベクトル算出部２１の演算結果を履歴的に記憶したローカル座標速度ベクトル履歴データ６５１と、姿勢角算出部２５の演算結果を履歴的に記憶した姿勢角履歴データ６５３とがこれに含まれる。
【００８６】
履歴データ６５０を記憶するための容量としては、人間が２歩歩行する間に検出される検出値を記憶するのに必要な容量として定められた所定容量以上が予め用意されている。
具体的には、本実施形態では、ゆっくり歩いた場合の歩行速度を想定し、この速度で２歩歩行する間に検出される検出値を記憶するのに必要な容量を定める。これを定式化すると、次式（１）に従って容量“Ｌ”を算出する。
Ｌ＝ｆs×２×Ｔmax×１回の検出データ量  ・・・（１）
式（１）において、“ｆs”は、ＩＮＳ１０が積算を行う周波数であり、“Ｔmax”は、一番遅い速度を想定した場合の周期である。
【００８７】
参照値データ６６０は、参照値生成処理を行うことで生成された参照値のデータである。図３の参照速度ベクトル算出部２３の演算結果である参照速度ベクトル６６１と、参照姿勢角算出部２７の演算結果である参照姿勢角６６３とがこれに含まれる。
【００８８】
２−３．処理の流れ
図９は、記憶部６００に記憶されているメインプログラム６１０に従って処理部１００が実行するメイン処理の流れを示すフローチャートである。
【００８９】
最初に、処理部１００は、初期設定を行う（ステップＡ１）。例えば、誤差推定処理において、カルマンフィルターで利用する各種パラメーター値（カルマンフィルターパラメーター値）の初期設定を行う。
【００９０】
次いで、処理部１００は、ＩＭＵ５００からデータの取得を開始し、取得したデータをＩＭＵ計測データ６２０として記憶部６００に記憶させる（ステップＡ３）。そして、処理部１００は、ＩＭＵ計測データ６２０を用いてＩＮＳ演算処理を行い、その演算結果を演算データ６３０として記憶部６００に記憶させる（ステップＡ５）。その後、処理部１００は、記憶部６００に記憶されている参照値生成プログラム６１１に従って、参照値生成処理を行う（ステップＡ７）。
【００９１】
図１０は、参照値生成処理の流れを示すフローチャートである。
まず、処理部１００は、ローカル座標速度ベクトル算出処理を行う（ステップＢ１）。そして、処理部１００は、算出したローカル座標速度ベクトルを構成する各速度成分について、ループＡの処理を行う（ステップＢ３〜Ｂ１３）。ループＡの処理では、処理部１００は、第１の相関演算を行う（ステップＢ５）。
【００９２】
次いで、処理部１００は、第１の相関演算の結果として求まる相関値（類似度）のうち、最も高い相関値である相関ピーク値が所定の閾値を超えたか否か（所定の高類似条件を満たしたか否か）の判定を行う（ステップＢ７）。相関ピーク値の判定結果が「ＯＫ」である場合は（ステップＢ７；ＯＫ）、処理部１００は、原理で説明したように、最も高い相関値が対応づけられた検出値をローカル座標速度ベクトル履歴データ６５１から読み出して、速度参照値として設定する（ステップＢ９）。
【００９３】
他方、相関ピーク値の判定結果が「ＮＧ」である場合は（ステップＢ７；ＮＧ）、処理部１００は、当該速度成分の今回の算出値を速度参照値として設定する（ステップＢ１１）。ステップＢ９又はＢ１１の後、処理部１００は、次の速度成分へと処理を移行する。全ての速度成分についてステップＢ５〜Ｂ１１までの処理を行ったならば、処理部１００は、ループＡの処理を終了する（ステップＢ１３）。
【００９４】
次いで、処理部１００は、姿勢角算出処理を行う（ステップＢ１５）。そして、処理部１００は、各姿勢角成分について、ループＢの処理を行う（ステップＢ１７〜Ｂ２７）。ループＢの処理では、処理部１００は、第２の相関演算を行う（ステップＢ１９）。
【００９５】
次いで、処理部１００は、第２の相関演算の結果として求まる相関値（類似度）のうち、最も高い相関値である相関ピーク値が所定の閾値を超えたか否か（所定の高類似条件を満たしたか否か）の判定を行う（ステップＢ２１）。相関ピーク値の判定結果が「ＯＫ」である場合は（ステップＢ２１；ＯＫ）、処理部１００は、原理で説明したように最も高い相関値が対応づけられた検出値を姿勢角履歴データ６５３から、姿勢角参照値として設定する（ステップＢ２３）。
【００９６】
他方、相関ピーク値の判定結果が「ＮＧ」である場合は（ステップＢ２１；ＮＧ）、処理部１００は、当該姿勢角成分の今回の算出値を姿勢角参照値として設定する（ステップＢ２５）。ステップＢ２３又はＢ２５の後、処理部１００は、次の姿勢角成分へと処理を移行する。全ての姿勢角成分についてステップＢ１９〜Ｂ２５までの処理を行ったならば、処理部１００は、ループＢの処理を終了する（ステップＢ２７）。
【００９７】
次いで、処理部１００は、各速度成分についてステップＢ９又はＢ１１で設定した速度参照値と、各姿勢角成分についてステップＢ２３又はＢ２５で設定した姿勢角参照値に基づいて、記憶部６００の参照値データ６６０を更新する（ステップＢ２９）。そして、処理部１００は、参照値生成処理を終了する。
【００９８】
図９のメイン処理に戻り、参照値生成処理を行った後、処理部１００は、誤差推定処理を行う（ステップＡ９）。つまり、参照値生成処理で生成した参照値データ６６０を観測情報とするカルマンフィルター処理を行って、ＩＮＳ演算処理の演算データ６３０に含まれる誤差を推定する。そして、推定した誤差（補正量）を誤差データ６４０として記憶部６００に記憶させる。
【００９９】
次いで、処理部１００は、ＩＮＳ演算結果を出力する（ステップＡ１１）。その後、処理部１００は、処理を終了するか否かを判定し（ステップＡ１３）、処理を継続すると判定した場合は（ステップＡ１３；Ｎｏ）、補正処理を行う（ステップＡ１５）。つまり、誤差データ６４０に記憶されている各演算結果の誤差（補正量）を用いて、演算データ６３０に含まれる各演算結果を補正する。
【０１００】
一方、ステップＡ１３において処理を終了すると判定した場合は（ステップＡ１３；Ｙｅｓ）、処理部１００は、メイン処理を終了する。
【０１０１】
３．作用効果
本実施形態によれば、ユーザーの移動時の姿勢及び速度を検出した検出値を記憶部に記憶する。そして、現在までの検出値の変遷に類似する過去の検出値の変遷部分を記憶部から抽出し、当該抽出結果を用いて、検出値を補正する際の検出値の参照値を生成する。現在までの検出値の変遷に類似する過去の検出値の変遷部分を抽出するといった簡易な手法により、ユーザーの移動時の姿勢及び速度を検出した検出値を補正する際に利用する参照値を生成することができる。この際、例えば、現在までの検出値の変遷に最も類似する過去の検出値の変遷部分を抽出することで、適切な参照値を生成することができる。
【０１０２】
本実施形態では、ローカル座標速度ベクトルの各速度成分と、姿勢角の各成分とが時々刻々と検出されていく。検出されたデータ列の中から、選択する一定の時間範囲をずらしながら、一部のデータ列を選択する。そして、選択したデータ列それぞれを、現在を終期とする同じ時間範囲のデータ列と比較する相関演算を行って、相関値（類似度）を算出する。そして、相関値が最大となったデータ列を特定し、当該データ列に含まれるデータの中から参照値を設定する。
【０１０３】
また、最大となった相関値が所定の閾値を超えているか、すなわち最も高い類似度が所定の高類似条件を満たすか否かを判定する。所定の閾値を超えていない（高類似条件を満たさない）場合には、例えば、ユーザーが移動中に方向転換をする場面など、ユーザーの移動時に検出される諸量が瞬間的に大きく変化する場面と考えられる。従って、この場合には、最新の検出値を用いて参照値を設定する。
【０１０４】
４．変形例
本発明を適用可能な実施例は、上記の実施例に限定されることなく、本発明の趣旨を逸脱しない範囲で適宜変更可能であることは勿論である。以下、変形例について説明するが、上記の実施例と同一の構成要素については同一の符号を付して説明を省略し、上記の実施例とは異なる部分を中心に説明する。
【０１０５】
４−１．参照値
上記の実施形態では、ユーザーの移動時の姿勢、速度を検出した検出値に対する参照値の生成方法について説明した。しかし、本願発明者が行った実験によれば、加速度センサーによって計測される加速度（ローカル座標加速度ベクトル）や、ジャイロセンサーによって計測される角速度（ローカル座標角速度ベクトル）についても、ユーザーの移動時に周期性が現れることが判明した。
【０１０６】
そこで、ユーザーの移動時に加速度センサーによって計測されるローカル座標加速度ベクトルの各成分（各軸の加速度の検出値）や、ジャイロセンサーによって計測されるローカル座標角速度ベクトルの各成分（各軸周りの角速度の検出値）を対象として、上記の実施形態と同様の方法によって参照値を生成することとしてもよい。つまり、ローカル座標加速度ベクトルの各成分やローカル座標角速度ベクトルの各成分について、現在までの検出値の変遷に類似する過去の検出値の変遷部分を抽出する。そして、抽出した変遷部分から、ローカル座標加速度ベクトルの各成分や、ローカル座標角速度ベクトルの各成分の検出値の参照値を生成する。
【０１０７】
なお、この場合において、ユーザーの移動時の姿勢、速度、角速度及び加速度の検出値の全部について参照値を生成することとしてもよいが、その一部の検出値についてのみ参照値を生成することとしてもよい。つまり、ユーザーの移動時の姿勢、速度、角速度及び加速度の何れかを検出した検出値について参照値を生成することとすればよい。
【０１０８】
また、姿勢や速度、角速度、加速度の他に、位置の検出値を補正する際の当該検出値の参照値を生成することも可能である。この場合は、ＩＮＳによって演算された絶対座標位置の単位時間における変化分（以下、「位置変化分」と称す。）を用いて、上記の実施形態と同様に相関演算を行うなどして、位置変化分の参照値を生成することが可能である。
【０１０９】
位置そのものに着目した場合、ユーザーの移動中にユーザー位置は常に変化するため、位置そのものについて過去に検出された検出値との相関演算を行ったとしても、うまく相関がとれるとは限らない。しかし、ユーザーはある程度同じペースで移動（歩行或いは走行）することが想定される。従って、単位時間当たりの位置変化分（単位時間当たりの移動距離）に着目した場合、そのバラツキは比較的小さくなると考えられる。そこで、位置変化分について、今回算出した位置変化分と、過去に算出して蓄積的に記憶しておいた位置変化分との相関を計算し、その相関演算の結果に基づいて、位置変化分の参照値を生成することとしてもよい。
【０１１０】
４−２．補正方法
上記の実施形態では、慣性航法演算結果を補正する手法としてカルマンフィルターを例に挙げて説明したが、補正方法はこれに限られない。例えば、カルマンフィルターではなく、平均化フィルターを用いて誤差を補正することとしてもよい。
【０１１１】
具体的には、ＩＮＳ１０によって演算されたＩＮＳ演算結果（入力ベクトル“Ｕ”）と、参照値生成部２０によって生成された参照値（観測ベクトル“Ｚ”）との平均化処理を行い、その結果を出力することも可能である。この場合において、平均化処理は、単純な算術平均や幾何平均を適用してもよいし、加重平均を適用してもよい。
【０１１２】
加重平均を適用する場合、現在までの検出値の変遷と、過去の検出値の変遷との類似度に基づいて加重平均の重みを設定すると効果的である。具体的には、類似度が高いほど、参照値を信用して加重平均を行うように参照値に対する重みを高く設定する。それに対し、類似度が低いほど、ＩＮＳ演算結果を信用して加重平均を行うように参照値に対する重みを低く設定する。なお、これらの手法以外にも、補正部の補正手法としては任意の手法を適用可能である。
【０１１３】
４−３．類似性の判定
上記の実施形態では、現在までの検出値の変遷に最も類似する過去の検出値の変遷部分を抽出するために、相関演算を行う場合を例に挙げて説明した。しかし、変遷部分の抽出方法は何もこれに限られるわけではない。例えば、ピーク検知の手法を利用して、現在までの検出値の変遷に最も類似する過去の検出値の変遷部分を抽出することとしてもよい。また、パターンマッチングの手法を適用して、現在までの検出値の変遷に最も類似する過去の検出値の変遷部分を抽出することとしてもよい。
【０１１４】
また、上記の実施形態では、相関演算を行う際に、現在を終期とする所定の時間範囲の検出値の変遷に類似する過去の当該時間範囲の検出値の変遷を抽出することとして説明したが、所定の時間範囲は適宜設定可能である。例えば、ユーザーが歩行することを想定し、ユーザーの着地時間間隔に基づき定まる類似の判定のための時間範囲を用いて、現在を終期とする当該時間範囲の前記検出値の変遷に類似する過去の当該時間範囲の前記検出値の変遷を抽出することとしてもよい。
【０１１５】
この場合は、例えば、加速度センサーの計測結果に基づいて、ユーザーの一歩に要する時間を判定する。この判定は、例えば、ユーザーの上下動の加速度（ｗ軸方向の加速度）に対するピーク判定を行う。隣接するピーク間の時間は、ユーザーが一歩に要した時間である。このため、隣り合うピーク間の時間間隔を判定して、着地時間間隔として設定することとすればよい。
【０１１６】
４−４．参照値の生成方法
上記の実施形態では、速度ベクトルと姿勢角とのそれぞれについて、相関演算を個別に行って参照値を生成した。しかし、ユーザーの歩行中には、速度ベクトルの変遷と、姿勢角の変遷との間には、ある程度の相関が見られるはずである。そこで、一方の相関演算を省略することも可能である。
【０１１７】
この場合は、速度ベクトルと姿勢角との何れか一方についてのみ相関演算を行う。そして、相関演算の結果に基づいて参照値を生成する場合に、同一タイミングにおける検出値を読み出して、参照値を生成するようにする。つまり、速度ベクトルについてのみ相関演算を行うのであれば、速度ベクトルについて相関ピーク値に相当するズレ分だけ値をずらして参照値を設定する場合に、姿勢角についても同じズレ分だけ値をずらして参照値を設定するようにする。これにより、一方の相関演算を省略することが可能となり、演算量を削減することができる。
【０１１８】
４−５．類似度が低い場合の処理
上記の実施形態では、ローカル座標速度ベクトル及び姿勢角の検出値のそれぞれについて、現在までの検出値の変遷と、過去の検出値の変遷との類似度を算出し、算出された類似度のうちの最も高い類似度が所定の高類似条件を満たさない場合に、最新の検出値を用いて参照値を生成するものとして説明した。しかし、現在までの検出値の変遷と、過去の検出値の変遷との類似度が低い場合には、必ずしも最新の検出値を用いて参照値を生成しなくてもよい。つまり、類似度のうちの最も高い類似度が所定の高類似条件を満たさない場合には、参照値を生成せずに、最新の検出値を記憶部に履歴保存するに留めることとしてもよい。
【０１１９】
また、この場合において、ローカル座標速度ベクトルと姿勢角とで、類似度が所定の高類似条件を満たさない場合の処理を変えることとしてもよい。例えば、ローカル座標速度ベクトルについて算出した類似度が所定の高類似条件を満たさない場合は、参照速度ベクトルを生成せずに、最新のローカル座標速度ベクトルを記憶部に履歴保存するに留める。それに対して、姿勢角について算出した類似度が所定の高類似条件を満たさない場合は、最新の姿勢角を用いて参照値を生成する。逆の場合についても同様である。
【０１２０】
４−６．処理の主体
上記の実施例では、電子機器にＩＭＵが搭載され、ＩＭＵの計測結果に基づいて、電子機器の処理部が慣性航法演算処理を行うものとして説明した。しかし、電子機器にＩＮＳを搭載することとし、ＩＮＳの処理部が慣性航法演算処理を行うこととしてもよい。この場合、電子機器の処理部は、ＩＮＳから出力される慣性航法演算結果に含まれる誤差（慣性航法演算誤差）を推定する処理を行う。そして、推定した慣性航法演算誤差を用いて、ＩＮＳから入力した慣性航法演算結果を補正する。
【０１２１】
また、電子機器にＧＰＳ（Global Positioning System）等の衛星測位システムを適用したセンサーユニットを搭載することとし、このセンサーユニットの計測結果を利用して、慣性航法演算結果を補正することとしてもよい。
【０１２２】
４−７．電子機器
上記の実施例では、腰に装着するＩＮＳ演算装置に本発明を適用した場合を例に挙げて説明したが、本発明を適用可能な電子機器はこれに限られるわけではない。例えば、携帯型ナビゲーション装置（ポータブルナビ）や携帯型電話機、パソコン、ＰＤＡといった他の電子機器にも本発明を適用可能である。
【符号の説明】
【０１２３】
１  全体システム、  ５Ａ  加速度センサー、  ５Ｂ  ジャイロセンサー、  １０  ＩＮＳ、  １１  姿勢情報算出部、  １３  絶対座標加速度ベクトル算出部、  １５  絶対座標速度ベクトル算出部、  １７  絶対座標位置算出部、  １８  重力算出部、  １９  補正部、  ２０  参照値生成部、  ２１  ローカル座標速度ベクトル算出部、  ２３  参照速度ベクトル算出部、  ２５  姿勢角算出部、  ２７  参照姿勢角算出部、  ３０  誤差推定部、  １００  処理部、  ２００  操作部、  ３００  表示部、  ４００  音出力部、  ５００  ＩＮＳ、  ６００  記憶部、１０００  ＩＮＳ演算装置
【図１】
0005821513.tif 000002
【図２】
0005821513.tif 000003
【図３】
0005821513.tif 000004
【図４】
0005821513.tif 000005
【図５】
0005821513.tif 000006
【図６】
0005821513.tif 000007
【図７】
0005821513.tif 000008
【図８】
0005821513.tif 000009
【図９】
0005821513.tif 000010
【図１０】
0005821513.tif 000011