以下、図面を参照して、本発明の好適な実施形態について説明する。尚、本発明を適用可能な実施形態が以下説明する実施形態に限定されるわけでないことは勿論である。
1.システム構成
図1は、本実施形態における位置算出システム1(位置算出装置)の機能構成を示す図である。位置算出システム1は、処理部10と、入力部20と、表示部30と、通信部40と、IMU(Inertial Measurement Unit)50と、第1スロット60と、第2スロット70とを備えて構成されるコンピューターシステムである。処理部10と、入力部20と、表示部30と、通信部40とは、第1データバス80を介して接続されている。また、処理部10と、IMU50と、第1スロット60と、第2スロット70とは、第2データバス90を介して接続されている。
位置算出システム1は、位置算出装置の一種であり、例えばスマートフォンを含む携帯型電話機やノート型パソコン、PDA(Personal Digital Assistant)、カーナビゲーション装置、携帯型ナビゲーション装置といったGPS(Global Positioning System)ユニットを搭載可能な各種の電子機器に適用されるシステム(装置)である。
処理部10は、位置算出システム1を統括的に制御する制御装置であり、その機能部として、IMU用位置算出部11と、スロット用I/F(Inter Face)部13と、スロット用制御部15と、位置情報統合処理部(以下、「GPA(Generic Position Algorithm)」と称す。)17とを備えて構成されている。
IMU用位置算出部11は、IMU50から出力される加速度及び角速度のデータを利用して、慣性航法演算処理を行って位置や速度を算出する機能部である。この機能は、例えばCPU(Central Processing Unit)やDSP(Digital Signal Processor)等のプロセッサーにより実現される。IMU用位置算出部11は、スロット用制御部15との間で各種データのやり取りを行う。
スロット用I/F部13は、第1スロット60及び第2スロット70に組み込まれたユニット(以下、「組込ユニット」と称す。)との間の入出力インターフェースを実現するための機能部である。データの流れとしては、スロット用I/F部13は、組込ユニットとスロット用制御部15との間を橋渡す役目を担う。
スロット用制御部15は、スロット用I/F部13を介して組込ユニットから出力情報を取得したり、IMU用位置算出部11が位置算出を行うための情報を算出してIMU用位置算出部11に出力したり、IMU用位置算出部11からの出力情報やGPA17からの出力情報を用いて、組込ユニットを較正するための基準となる情報(以下、「較正基準情報」と称す。)を算出したりする処理を行う機能部である。この機能は、例えばCPUやDSP等のプロセッサーにより実現される。
GPA17は、IMU用位置算出部11からの出力情報及びスロット用制御部15からの出力情報を用いて、所定のフィルター処理を行って位置や速度を統合・算出する機能部である。この機能は、例えばCPUやDSP等のプロセッサーにより実現される。本実施形態では、GPA17は、フィルター処理の一例として、カルマンフィルターを利用した位置統合処理を行って位置を算出する。
入力部20は、例えばタッチパネルやボタンスイッチ等により構成される入力装置であり、押下されたキーやボタンの信号を処理部10に出力する。この入力部20からの操作入力により、位置算出要求等の各種指示入力がなされる。
表示部30は、LCD(Liquid Crystal Display)等により構成され、処理部10から入力される表示信号に基づいた各種表示を行う表示装置である。表示部30には、位置表示画面や時刻情報等が表示される。
通信部40は、処理部10の制御に従って、位置算出システム1が外部装置との間で通信を行うための通信装置である。この機能は、例えば、有線通信用のモジュールや、IEEE802.11による無線LANやスペクトラム拡散方式による無線通信等の無線通信モジュール等により実現される。また、位置算出システム1を携帯型電話機に適用するケースでは、通信部40は携帯電話用の通信装置でもよい。
IMU50は、加速度センサー51及びジャイロセンサー53を備え、直交3軸それぞれの軸方向の加速度及び各軸の軸回りの角速度を検出可能に構成された慣性計測ユニットである。加速度センサー51及びジャイロセンサー53は、それぞれ加速度及び角速度を計測する。また、計測した加速度に含まれ得る誤差(以下、「加速度誤差」と称す。)及び角速度に含まれ得る誤差(以下、「角速度誤差」と称す。)を計測する、或いは、これらの値が予め設定・記憶されている。
IMU50は、加速度、角速度、加速度誤差及び角速度誤差と、これらの計測を行った時刻(計測時刻)とを、IMU用位置算出部11に出力する。本実施形態では、IMU50は、「0.01秒」の時間間隔でデータを出力する。すなわち、IMU50のデータの出力時間間隔は「0.01秒」である。尚、加速度センサー51及びジャイロセンサー53は、それぞれが独立したセンサーであってもよいし、一体型のセンサーであってもよい。
第1スロット60及び第2スロット70は、位置算出用のユニットや、各種センサーユニットを組込可能に構成された一種のソケットとも言える。本実施形態では、これらのスロットには、位置算出に利用可能な物理的事象を検出するセンサーユニットの一例として、GPSユニット100又は方位センサーユニット110が組み込まれる。
GPSユニット100は、衛星位置算出ユニットの一種であり、位置算出用衛星の一種であるGPS衛星から発信されているGPS衛星信号を利用して、所定の位置算出計算を行って位置を算出するユニットである。GPSユニット100は、第1スロット60又は第2スロット70への組込時に、位置算出システム1との間でデータの授受を行う組込時用処理部101を備えて構成される。
方位センサーユニット110は、例えば地磁気センサーを備えて構成され、地磁気を検出することによって磁方位を検出するように構成されたユニットである。方位センサーユニット110も、GPSユニット100と同様、組込時用処理部111を備えて構成されている。
2.処理の流れ
図2は、位置算出システム1が行う組込ユニットの認識処理の流れを示すフローチャートである。ここでは、第1スロット60にGPSユニット100が、第2スロット70に方位センサーユニット110がそれぞれ組み込まれた場合を例に挙げて説明する。図の左側にスロット用制御部15が行う処理の流れを、図の中央にGPSユニット100の組込時用処理部101が行う処理の流れを、図の右側に方位センサーユニット110の組込時用処理部111が行う処理の流れをそれぞれ示している。
先ず、スロット用制御部15は、第1スロット60又は第2スロット70へのユニットの組み込み有無を判定し(ステップA1)、組み込まれていると判定した場合は(ステップA1;Yes)、当該スロットに組み込まれたユニットに対して、ユニット情報の問い合わせを行う(ステップA3)。第1スロット60及び第2スロット70へのユニット組み込みを検出する方法は、例えば、ユニットが組み込まれることによる電気的な接続を感知する方法等により実現することができる。
スロット用制御部15からの問い合わせを受けて、第1スロット60に組み込まれたGPSユニット100の組込時用処理部101は、識別コードと、出力仕様情報と、較正基準種別情報と、タイミング情報とを、ユニット情報としてスロット用制御部15に通知する(ステップB1〜B7)。
識別コードは、各ユニットの種類をユニークに識別するための識別情報であり、予めユニットの種類別に割り当てられている。出力仕様情報は、当該ユニットが出力可能なデータの種別を示す情報である。較正基準種別情報は、当該ユニットの較正(キャリブレーション)を行うために必要となるデータの種別を示す情報である。較正基準種別情報で表される種別のデータ(当該種別のパラメーター値)のことを「較正基準情報」と称し、較正基準種別情報と区別する。また、タイミング情報は、当該ユニットがデータを出力する時間間隔である出力時間間隔と、当該ユニットが較正を行う時間間隔である較正時間間隔とを含む情報である。
本実施形態において、GPSユニット100の組込時用処理部101は、識別コードとして「GPS」を通知する(ステップB1)。また、GPSユニット100の出力仕様情報として「位置、速度、時刻、位置誤差、速度誤差」を通知する(ステップB3)。すなわち、GPSユニット100が出力可能なデータの種類は、位置、速度、時刻、位置誤差及び速度誤差である。
また、GPSユニット100の組込時用処理部101は、較正基準種別情報として「ドップラー速度、位置、速度、速度誤差」を通知する(ステップB5)。すなわち、GPSユニット100がキャリブレーションのために必要なデータの種類は、ドップラー速度、位置、速度及び速度誤差である。
また、GPSユニット100の組込時用処理部101は、タイミング情報として「出力時間間隔:1秒、較正時間間隔:0.1秒」を通知する(ステップB7)。すなわち、GPSユニット100は、データを1秒間隔で出力し、キャリブレーションを0.1秒間隔で行うことになる。
同様に、方位センサーユニット110の組込時用処理部111は、識別コードとして「方位センサー」を通知する(ステップC1)。また、方位センサーユニット110の出力仕様情報として「方位」を通知し(ステップC3)、較正基準種別情報として「位置」を通知する(ステップC5)。また、組込時用処理部111は、タイミング情報として「出力時間間隔:0.01秒、較正時間間隔:1秒」を通知する(ステップC7)。本実施形態において特徴的であることの1つは、ユニット毎に出力時間間隔及び較正時間間隔を決めることができる点である。
各スロットに組み込まれたユニットからユニット情報の通知を受けると、スロット用制御部15は、組込ユニットの認識が完了したか否かを判定し(ステップA5)、まだ完了していないと判定した場合は(ステップA5;No)、ステップA3に戻る。また、認識が完了したと判定した場合は(ステップA5;Yes)、認識処理を終了する。
図3及び図4は、本実施形態における位置算出処理の流れを示すフローチャートである。ここでも、第1スロット60にGPSユニット100が、第2スロット70に方位センサーユニット110がそれぞれ組み込まれた場合を例に挙げて説明する。図の左側から右側に向かって、GPA17が行う処理の流れ、IMU用位置算出部11が行う処理の流れ、スロット用制御部15が行う処理の流れ、IMU50が行う処理の流れ、第1スロット60に組み込まれたGPSユニット100の組込時用処理部101が行う処理の流れ、第2スロット70に組み込まれた方位センサーユニット110の組込時用処理部111が行う処理の流れをそれぞれ示している。
先ず、スロット用制御部15は、各組込ユニットから取得したユニット情報をGPA17に出力する(ステップF1)。GPA17は、スロット用制御部15からユニット情報を取得すると、当該ユニット情報を用いて観測値テーブルを生成する(ステップD1)。観測値テーブルは、GPA17が後述するGPA位置統合処理において、カルマンフィルターを利用した補正処理を行う際に観測値(外部観測量)として使用するパラメーターが設定されたテーブルである。
図5は、観測値テーブルのテーブル構成の一例を示す図である。観測値テーブルには、観測値の候補となる複数のパラメーターの種別と対応付けて、ユニット毎に、当該パラメーターの観測値としての使用有無が設定されている。観測値として使用するパラメーターには「○」、観測値として使用しないパラメーターには「×」が設定されている。
例えば、図5の観測値テーブルでは、GPSユニット100と対応付けられた位置及び速度に「○」が設定されており、GPSユニット100により計測された位置及び速度がGPA統合処理において観測値として使用されることを意味する。本実施形態では、GPSユニット100の計測結果を観測値として使用し、IMU50及び方位センサーユニット110の計測結果は観測値として使用しない。
図3の説明に戻って、GPA17は、ステップD1で設定した観測値テーブルを用いて、補正タイミングを設定する(ステップD3)。具体的には、観測値テーブルにおいて、観測値に「○」が設定されているユニットを特定する。そして、特定したユニットからの計測結果を観測値として用いて補正処理を行うタイミングを、当該ユニットのデータ出力の時間間隔のタイミングに設定する。
例えば、図5の観測値テーブルでは、GPSユニット100について、位置及び速度に「○」が設定されている。そのため、GPSユニット100からの計測結果を観測値として用いて補正処理を行うことになる。その補正処理のタイミングを、GPSユニット100のデータの出力時間間隔である「1秒」毎のタイミングに設定する。
次いで、スロット用制御部15は、GPSユニット100の初期化用の情報であるGPS初期化情報をGPSユニット100に出力する(ステップF3)。具体的には、「初期位置、速度、時刻」の情報をGPS初期化情報としてGPSユニット100に出力する。GPSユニット100の組込時用処理部101は、スロット用制御部15からGPS初期化情報を取得すると、当該情報を用いてGPSユニット100を初期化する処理を行う(ステップH1)。
また、スロット用制御部15は、方位センサーユニット110の初期化用の情報である方位センサー初期化情報を方位センサーユニット110に出力する(ステップF5)。具体的には、「時刻」の情報を方位センサー初期化情報として方位センサーユニット110に出力する。方位センサーユニット110の組込時用処理部111は、スロット用制御部15から方位センサー初期化情報を取得すると、当該情報を用いて方位センサーユニット110を初期化する処理を行う(ステップJ1)。
また、IMU用位置算出部11は、IMU50の初期化用の情報であるIMU初期化情報をIMU50に出力する(ステップE1)。具体的には、「時刻」の情報をIMU初期化情報としてIMU50に出力する。そして、IMU50の処理部は、IMU50を初期化する処理を行う(ステップG1)。
その後、方位センサーユニット110の組込時用処理部111は、方位センサーの計測結果である方位と計測時刻とを、方位センサー計測結果としてスロット用I/F部13を通じてスロット用制御部15に出力する(ステップJ3)。
スロット用制御部15は、方位センサーユニット110から計測結果を取得すると、前回取得した方位と今回取得した方位とに基づいて角速度を算出する処理を行う(ステップF7)。例えば、単位時間当たりの方位の変化量を求めるといった微分計算により角速度を算出する。そして、スロット用制御部15は、算出した角速度をIMU用位置算出部11に出力する(ステップF8)。一方、IMU50は、ジャイロセンサー53により計測された角速度をIMU用位置算出部11に出力する(ステップG2)。
IMU用位置算出部11は、IMU50とスロット用制御部15とからそれぞれ角速度を取得すると、取得した角速度を用いて、IMU50用の較正基準情報であるIMU較正基準情報を算出する(ステップE3)。具体的には、スロット用制御部15から取得した角速度と、IMU50から取得した角速度の値とを用いて、公知の誤差算出演算を行って、ジャイロセンサー53の誤差パラメーターの一種である角速度バイアス及び角速度スケールファクターを算出する。
尚、センサーのバイアス及びスケールファクターについては公知であるため詳細な説明を省略するが、バイアスとは、ある動作条件(例えば静止時)におけるセンサーの出力値を意味し、スケールファクターとは、センサーの感度、すなわち計測しようとする物理量の入力変化に対する出力変化の比を意味する。
その後、IMU用位置算出部11は、算出したIMU較正基準情報をIMU50に出力する(ステップE5)。IMU50は、IMU用位置算出部11からIMU較正基準情報を取得すると、ジャイロセンサー53の較正処理を行う(ステップG3)。
具体的には、IMU50は、装置内部で記憶している角速度バイアスを、IMU用位置算出部11から取得した角速度バイアスで更新する。また、記憶している角速度スケールファクターを、取得した角速度スケールファクターで更新する。これにより、ジャイロセンサー53により計測される角速度は、この更新された角速度バイアス及び角速度スケールファクターを用いて較正されることになる。
IMU50は、その後、加速度センサー51及びジャイロセンサー53による計測結果である加速度、角速度、加速度誤差及び角速度誤差と、計測時刻とを、IMU計測結果としてIMU用位置算出部11に出力する(ステップG5)。IMU用位置算出部11は、IMU計測結果を取得すると、当該IMU計測結果を用いて公知の慣性航法演算処理を行って、位置及び速度と、これらに含まれ得る誤差とを算出する(ステップE7)。そして、算出した位置及び速度と、位置誤差及び速度誤差と、算出時刻とを、IMU演算結果としてGPA17及びスロット用制御部15に出力する(ステップE9)。
スロット用制御部15は、IMU用位置算出部11からIMU演算結果を取得すると、当該IMU演算結果を用いてGPS較正基準情報を算出するGPS較正基準情報算出処理を行う(ステップF9)。具体的には、IMU演算結果に含まれる位置及び速度と、GPS衛星の衛星位置及び衛星速度とを用いて、位置算出システム1とGPS衛星との相対速度であるドップラー速度を算出する。
尚、衛星位置及び衛星速度は、予め取得した衛星軌道情報(アルマナックやエフェメリス)と現在時刻とを用いて算出することができる。そして、スロット用制御部15は、算出したドップラー速度と、IMU演算結果に含まれる位置、速度及び速度誤差とを、GPS較正基準情報としてGPSユニット100に出力する(ステップF11)。
GPSユニット100の組込時用処理部101は、スロット用制御部15からGPS較正基準情報を取得すると、当該GPS較正基準情報を用いて衛星捕捉処理を行う(ステップH3)。具体的には、GPS較正基準情報に含まれるドップラー速度を用いて、GPS衛星信号のサーチ中心周波数を決定するとともに、周波数のサーチ範囲を決定する。
詳細に説明すると、GPS衛星信号の搬送波周波数である1.57542[GHz]にドップラー速度分の周波数誤差を加味した周波数を、サーチ中心周波数に決定する。これにより、位置算出システム1の移動に伴うドップラー速度を加味したより正確なサーチ中心周波数を設定することが可能となり、GPS衛星信号の捕捉に要する時間を短縮することができる。
さらに、GPS較正基準情報に含まれる速度及び速度誤差を用いて、GPS衛星信号の周波数のサーチ範囲を決定する。GPS衛星信号を捕捉する場合は、GPS衛星信号のサーチ周波数を変化させながら、レプリカコードとGPS衛星信号との相関演算を行って相関値のピーク値を算出する演算を行う。従って、GPS較正基準情報に含まれる位置算出システム1の速度及び速度誤差を加味して周波数のサーチ幅を算出し、サーチ中心周波数を中心とし、算出したサーチ幅だけの幅を有する周波数範囲を、周波数のサーチ範囲に決定する。
次いで、GPSユニット100の組込時用処理部101は、GPS位置算出処理を行う(ステップH5)。具体的には、GPS較正基準情報に含まれる位置を初期位置として、擬似距離を用いた公知の位置算出計算(位置収束演算)を行って位置を算出する。この際、衛星軌道情報を用いて算出したGPS衛星の衛星位置と、GPS較正基準情報に含まれる位置算出システム1の位置間の距離を求め、求めた距離を光速で除算することで、擬似距離の整数部分を算出する。そして、GPS衛星信号とレプリカコードとの相関演算を行うことで得られたコード位相から擬似距離の端数部分を求め、整数部分と端数部分とを加算して擬似距離を算出する。
IMU用位置算出部11が慣性航法演算処理を行うことで取得した位置を初期位置として位置算出計算を行うとともに、当該位置を用いて擬似距離の整数部分を算出するようにしたことで、位置収束演算における収束性が向上するとともに、算出される位置もより正確なものとなる。尚、詳細な説明は省略するが、GPS位置算出処理では、ドップラー周波数の時間変化を利用した公知の速度算出計算を行って位置算出システム1の速度を算出する。また、公知の誤差算出計算を行って、算出した位置及び速度に含まれ得る誤差を算出する。
GPS位置算出処理を行った後、GPSユニット100の組込時用処理部101は、算出した位置、速度、位置誤差、速度誤差及び時刻を、GPS演算結果としてスロット用制御部15に出力する(ステップH7)。そして、スロット用制御部15は、GPSユニット100から取得したGPS演算結果をGPA17に出力する(ステップF13)。
GPA17は、スロット用制御部15からGPS演算結果を取得すると、GPA位置統合処理を行う(ステップD5)。GPA位置統合処理は、カルマンフィルターを利用して、IMU位置算出部11により算出された位置及び速度と、GPSユニット100により算出された位置及び速度とを統合する処理である。
尚、図3及び図4は、図2の処理に続く各機能部の処理フローである。従って、図3及び図4は、位置算出システム1にGPSユニット100が組み込まれた場合の処理の流れである。もし、位置算出システム1にGPSユニット100が組み込まれていない場合は、GPSユニット100から位置及び速度の情報がGPA17に出力されず、IMU用位置算出部11が慣性航法演算処理を行うことで算出した位置及び速度のみがGPA17に出力されることになる。この場合は、GPA17は、位置統合処理を行わずに、IMU用位置算出部11の出力を用いて位置及び速度を算出する。例えば、IMU用位置算出部11から出力された位置及び速度をそのまま最終的な算出結果としてもよいし、IMU用位置算出部11から出力された位置及び速度を、過去の位置及び速度の算出結果の履歴に基づいて補正して、最終的な算出結果としてもよい。
図6は、GPA位置統合処理の流れを示すフローチャートである。
先ず、GPA17は、位置の変化量及び速度を成分とする次式(1)で表される状態ベクトル「X
1」を設定する(ステップK1)。
式(1)において、「Δp
east」、「Δp
north」及び「Δp
up」は、それぞれ東西方向、南北方向及び天頂方向の位置の変化量を示している。また、「v
east」、「v
north」及び「v
up」は、それぞれ東西方向、南北方向及び天頂方向の速度を示している。
次いで、GPA17は、式(2)で表される状態遷移行列「φ
1」を設定する(ステップK3)。状態遷移行列「φ」は、状態ベクトル「X」に含まれる各成分の遷移を表す行列である。
式(2)において、「Δt」は、IMU50からのデータの出力時間間隔である。
そして、GPA17は、カルマンフィルターを利用した予測演算を行う処理であるGPA予測処理を行う(ステップK5)。
図7は、GPA予測処理の流れを示すフローチャートである。
先ず、GPA17は、IMU用位置算出部11から今回取得したIMU演算結果に含まれる速度と、IMU用位置算出部11から前回取得したIMU演算結果に含まれる速度との差を、速度の変化量「Δv1」として算出する(ステップL1)。
そして、GPA17は、現在の状態ベクトル「X
1」と、ステップK3で設定した状態遷移行列「φ
1」と、ステップL1で算出した速度の変化量「Δv
1」とを用いて、次式(3)に従って状態ベクトルの予測値「X
− 1」を算出する(ステップL3)。
式(3)において、上付きの「−」は予測値であることを示している。下付きの「t」は時刻であり、IMU50からのデータの出力時間間隔毎の時刻を示している。また、「XIMU」は、IMUの演算結果を用いて設定される状態ベクトルのバイアスを示している。「XIMU」に含まれる「ΔvIMU east」、「ΔvIMU north」及び「ΔvIMU up」は、それぞれ東西方向、南北方向、天頂方向の速度の変化量(Δv1の各成分)を示している。また、「XIMU」では、東西方向、南北方向、天頂方向の位置成分を全て「0」としている。すなわち、位置変化がないものと仮定して予測演算を行うことにしている。
また、GPA17は、カルマンフィルターの理論に基づいて誤差共分散行列「P1」を予測する演算を行う(ステップL5)。そして、GPA17は、GPA予測処理を終了する。
図6の説明に戻って、GPA予測処理を行った後、GPA17は、補正タイミングであるか否かを判定する(ステップK7)。すなわち、ステップD3で設定した補正タイミングが到来したか否かを判定する。そして、まだ補正タイミングではないと判定した場合は(ステップK7;No)、ステップK5に戻り、再びGPA予測処理を行う。
本実施形態では、GPSユニット100のデータの出力時間間隔である「1秒」毎のタイミングを補正タイミングとしている。一方、IMU用位置算出部11からは、「0.01秒」の時間間隔でIMU演算結果が出力される。従って、IMU用位置算出部11から0.01秒の時間間隔で出力されるIMU演算結果を用いて、1秒間に100回の予測演算を行うことが可能である。そのため、本実施形態では、1回の補正タイミングが到来するまでの間に、GPA予測処理を100回繰り返し実行する。
一方、ステップK7において補正タイミングであると判定した場合は(ステップK7;Yes)、GPA17は、GPA補正処理を行う(ステップK9)。
図8は、GPA補正処理の流れを示すフローチャートである。
先ず、GPA17は、ステップD1で設定した観測値テーブルを参照し、当該補正タイミングにおいて観測値とするパラメーターの値が設定された観測ベクトル「Z
1」を生成する(ステップM1)。本実施形態では、GPSユニット100により算出された位置及び速度を用いて、次式(4)に示すような観測ベクトル「Z
1」を生成する。
但し、「ΔpGPS east」、「ΔpGPS north」及び「ΔpGPS up」は、GPSユニット100により算出された東西方向、南北方向及び天頂方向の位置の変化量をそれぞれ示している。また、「vGPS east」、「vGPS north」及び「vGPS up」は、GPSユニット100により算出された東西方向、南北方向及び天頂方向の速度をそれぞれ示している。
次いで、GPA17は、次式(5)に示すような観測行列「H
1」を設定する(ステップM3)。
観測行列「H」は、状態ベクトルの予測値「X−」に作用させることで、観測ベクトル「Z」に含まれる各成分、すなわち各観測値の予測値を算出するための行列である。本実施形態では、式(5)に示すように、対角成分が全て「1」であり、その他の成分が「0」であるような観測行列「H1」を用いて計算を行う。
次いで、GPA17は、次式(6)に従ってカルマンゲイン「K
1」を算出する(ステップM5)。
但し、「R
1」は、観測ベクトル「Z
1」の各成分、すなわち各観測値に含まれ得る誤差の大きさを示す測定誤差行列である。
その後、GPA17は、GPA予測処理で算出された状態ベクトルの予測値「X− 1」に、ステップM3で設定した観測行列「H1」を作用させることで、予測された観測ベクトルである予測観測ベクトル「H1X− 1」を算出する(ステップM7)。
そして、GPA17は、次式(7)に従って状態ベクトルの予測値「X
− 1」を補正するとともに(ステップM9)、次式(8)に従って誤差共分散行列の予測値「P
− 1」を補正する(ステップM11)。そして、GPA17は、GPA補正処理を終了する。
但し、上付きの「+」は補正値であることを示している。また、「I」は単位行列である。
図6の説明に戻って、GPA補正処理を行った後、GPA17は、状態ベクトル「X1」の補正値「X+ 1」に含まれる位置の変化量「Δp」をIMU用位置算出部11から取得したIMU演算結果に含まれる位置に加算して、位置の算出結果とする(ステップK11)。また、GPA17は、状態ベクトル「X1」の補正値「X+ 1」に含まれる速度「v」を、速度の算出結果とする(ステップK13)。そして、GPA17は、GPA位置統合処理を終了する。
図4の位置算出処理に戻って、GPA位置統合処理を行った後、GPA17は、GPA位置統合処理の演算結果を、GPA演算結果としてIMU用位置算出部11及び方位センサーユニット110に出力する(ステップD7)。
IMU用位置算出部11は、GPA17からGPA演算結果を取得すると、慣性航法演算結果較正処理を行う(ステップE11)。慣性航法演算結果較正処理は、GPA17が位置統合処理を行うことで算出した位置及び速度を用いて、ステップE7の慣性航法演算処理を行うことで算出した位置及び速度を較正する処理である。
図9は、慣性航法演算結果較正処理の流れを示すフローチャートである。
先ず、IMU用位置算出部11は、慣性航法演算処理で得られた位置及び速度を成分とする状態ベクトル「X
2」を設定する(ステップN1)。すなわち、次式(9)に示すような状態ベクトル「X
2」を設定する。
その後、IMU用位置算出部11は、IMU予測処理を行う(ステップN3)。
図10は、IMU予測処理の流れを示すフローチャートである。
先ず、IMU用位置算出部11は、IMU50から取得した角速度を時間積分して姿勢角を算出する(ステップP1)。
次いで、IMU用位置算出部11は、算出した姿勢角を用いて、IMU50から取得したローカル座標系における加速度を、ENU座標系(東北上座標系)における加速度に変換する(ステップP3)。この加速度の変換は、方位センサーユニット110により検出された方位を用いて、公知の座標変換演算によって実現することができる。
その後、IMU用位置算出部11は、ステップP3において変換された加速度に対して時間積分を行って速度を算出する(ステップP5)。そして、IMU用位置算出部11は、算出した速度を時間積分して位置を算出する(ステップP7)。
その後、IMU用位置算出部11は、ステップP5で算出された位置及び速度を状態ベクトルの予測値「X− 2」とする(ステップP9)。また、IMU用位置算出部11は、カルマンフィルターの理論に基づく予測演算を行って誤差共分散行列の予測値「P− 2」を算出する(ステップP11)。そして、IMU用位置算出部11は、IMU予測処理を終了する。
図9の説明に戻って、IMU予測処理を行った後、IMU用位置算出部11は、IMU補正処理を行う(ステップN5)。
図11は、IMU補正処理の流れを示すフローチャートである。
先ず、IMU用位置算出部11は、GPA17から取得したGPA演算結果に含まれる位置及び速度と、IMU予測処理のステップP9で予測された状態ベクトルに含まれる位置及び速度の予測値「X
− 2」との差分をそれぞれ算出して、観測ベクトル「Z
2」を生成する(ステップQ1)。すなわち、次式(10)に示すような観測ベクトル「Z
2」を生成する。
但し、上付きの添え字の「IMU」はIMU予測処理で予測した値、「GPA」はGPA演算結果に含まれる値であることをそれぞれ示している。
次いで、IMU用位置算出部11は、次式(11)に示すような観測行列「H
2」を設定する(ステップQ3)。
そして、IMU用位置算出部11は、次式(12)に従ってカルマンゲイン「K
2」を算出する(ステップQ5)。
次いで、IMU用位置算出部11は、次式(13)に示すように、ステップQ5で設定したカルマンゲイン「K
2」を、ステップQ1で生成した観測ベクトル「Z
2」に作用させることで、状態ベクトルの修正量「ΔX
2」を算出する(ステップQ7)。
そして、IMU用位置算出部11は、ステップQ7で算出した状態ベクトルの修正量「ΔX
2」を用いて、次式(14)に従って状態ベクトル「X
2」を補正する(ステップQ9)。そして、IMU用位置算出部11は、IMU補正処理を終了する。
図9の説明に戻って、IMU補正処理を行った後、IMU用位置算出部11は、状態ベクトル「X2」の補正値「X+ 2」に含まれる位置「p」及び速度「v」を、位置及び速度の較正結果とする(ステップN7)。そして、IMU用位置算出部11は、慣性航法演算結果較正処理を終了する。
図4の位置算出処理に戻って、慣性航法演算結果較正処理を行った後、IMU用位置算出部11は、IMU較正基準情報算出処理を行って、IMU50を較正するための情報を算出する処理を行う(ステップE13)。具体的には、GPA17から前回取得した速度と今回取得した速度とに基づいて加速度を算出する処理を行う。例えば、単位時間当たりの速度の変化量を求めるといった微分計算により加速度を算出する。そして、算出した加速度と、IMU50から取得した加速度とを用いて、加速度センサー51の誤差パラメーターの一種である加速度バイアス及び加速度スケールファクターを算出して、IMU較正基準情報とする。
次いで、IMU用位置算出部11は、ステップE13で算出したIMU較正基準情報をIMU50に出力する(ステップE15)。IMU50は、IMU用位置算出部11からIMU較正基準情報を取得すると、加速度センサー51の較正処理を行う(ステップG7)。
具体的には、IMU50は、内部で記憶している加速度バイアスを、取得したIMU較正基準情報に含まれる加速度バイアスで更新する。また、内部で記憶している加速度スケールファクターを、取得したIMU較正基準情報に含まれる加速度スケールファクターで更新する。これにより、加速度センサー51により計測される加速度は、この更新された加速度バイアス及び加速度スケールファクターにより較正されることになる。
また、スロット用制御部15は、GPA17からGPA演算結果を取得すると、当該GPA演算結果に含まれる位置を、方位センサー較正基準情報として方位センサーユニット110に出力する(ステップF15)。方位センサーユニット110の組込時用処理部111は、スロット用制御部15から方位センサー較正基準情報を取得すると、これを用いて方位センサー較正処理を行う(ステップJ5)。
方位センサーの較正は、例えば特開2001−91257号公報に開示されている技術を適用することができる。すなわち、予め記憶された地磁気モデルの偏差分布式に、方位センサー較正基準情報に含まれる位置を代入して、当該位置における磁気偏差を算出する。そして、方位センサーにより検出される磁方位と算出した磁気偏差とを用いて真北方位を算出し、方位センサーにより検出される磁方位を、算出した真北方位に基づいて修正する。
これらの一連の処理を行った後、GPA17は、ステップD5に戻り、IMU用位置算出部11は、ステップE3に戻り、スロット用制御部15は、ステップF7に戻る。また、IMU50は、ステップG3に戻り、GPSユニット100はステップH3に戻り、方位センサーユニット110は、ステップJ3に戻る。
3.作用効果
位置算出装置の一種である位置算出システム1には、加速度センサー51及びジャイロセンサー53を具備したIMU50が備えられている。また、位置算出システム1には、ユニット組み込み部である第1スロット60及び第2スロット70が備えられており、位置算出に利用可能な物理的事象を検出するセンサーユニットの一種として、GPSユニット100又は方位センサーユニット110が組み込み可能に構成されている。
2つのスロットの何れかにセンサーユニットが組み込まれたことを検出すると、スロット用制御部15は、認識処理を行って組込ユニットを判定する。具体的には、組み込まれたセンサーユニットに対してユニット情報の問い合わせを行い、組込ユニットから、識別コードと、出力仕様情報と、較正基準種別情報と、タイミング情報とを取得する。スロット用制御部15は、取得した識別コードに応じて、組み込まれたセンサーユニットの種類を識別する。
GPSユニット100及び方位センサーユニット110の両方が組み込まれたことを検出した場合は、IMU用位置算出部11は、方位センサーユニット110により検出された方位の時間変化に基づいて角速度を算出する。そして、IMU50のジャイロセンサー53により検出される角速度と比較し、ジャイロセンサー53の較正に使用する誤差パラメーターとして、角速度バイアス及び角速度スケールファクターを算出して、IMU50に出力する。ジャイロセンサー53は、IMU用位置算出部11から取得した角速度バイアス及び角速度スケールファクターを用いて計測結果を較正する。
IMU用位置算出部11は、IMU50から取得した加速度及び角速度の計測結果を用いて、公知の慣性航法演算処理を行って位置、速度及びこれらに含まれ得る誤差を演算する。そして、演算結果をスロット用制御部15に出力するとともに、GPA17に出力する。スロット用制御部15は、IMU演算結果を用いて、GPSユニット100のキャリブレーション用の較正基準情報であるGPS較正基準情報を算出し、GPSユニット100に出力する。そして、GPSユニット100は、当該GPS較正基準情報を用いて、衛星捕捉処理及び位置算出処理を行う。
GPSユニット100は、位置算出処理で求めた位置及び速度の演算結果を、スロット用制御部15を通じてGPA17に出力する。そして、GPA17は、IMU用位置算出部11の演算結果及びGPSユニット100の演算結果を用いて、フィルター処理の一種であるカルマンフィルターを利用した位置統合処理を行って位置を算出・統合する。この際、GPSユニット100からデータが出力されるまでの間、IMU用位置算出部11により算出された速度の変化量を用いて、IMU用位置算出部11により算出された位置及び速度を予測する予測処理を繰り返し実行する。そして、GPSユニット100からのデータの出力タイミングにおいて、GPSユニット100から取得した位置及び速度を観測値として、予測位置及び予測速度を補正する補正処理を行う。
一方、位置算出システム1にGPSユニット100が組み込まれていない場合は、GPSユニット100から位置及び速度の情報がGPA17に出力されず、IMU用位置算出部11が慣性航法演算処理を行うことで算出した位置及び速度のみがGPA17に出力される。従って、この場合は、GPA17は、位置統合処理を行わずに、IMU用位置算出部11の出力を用いて位置及び速度を算出する。
このように、スロットにGPSユニット100が組み込まれていない場合は、IMU50の計測結果を利用して慣性航法演算処理を行って位置を算出する。他方、GPSユニット100が組み込まれている場合は、認識処理で認識されたGPSユニット100の識別コードに応じて、GPSユニット100の計測結果とIMU50の計測結果とを用いて位置を算出する。これにより、ユニットの組み込み有無に応じた適切な演算処理を行って位置算出を行うことが可能となり、システム(装置)の拡張や変更等に対して柔軟に対応することができる。
また、GPA17が、カルマンフィルターを利用した位置統合処理を行うようにし、IMU50の計測結果に基づいて予測した位置を、GPSユニット100の計測結果を用いて補正するようにした。このように、予め搭載されたユニットの計測結果を用いて予測した位置を、新たに組み込まれたユニットの計測結果を用いてカルマンフィルターにより補正することで、位置算出の正確性を向上させ、より真位置に近い位置を求めることが可能となる。
さらに、方位センサーユニット110の計測結果を利用して算出した角速度バイアス及び角速度スケールファクターを用いてIMU50のジャイロセンサー53の較正を行うとともに、GPA17の演算結果を利用して算出した加速度バイアス及び加速度スケールファクターを用いてIMU50の加速度センサー51の較正を行うようにした。これにより、組み込まれたセンサーユニットの計測結果や、位置統合処理を行うことで得られた信頼性の高い演算結果を利用してIMU50の較正を行うことが可能となる。
4.変形例
4−1.組込ユニットの組合せ
上述した実施形態では、第1スロット60にGPSユニット100が、第2スロット70に方位センサーユニット110がそれぞれ組み込まれた場合を例に挙げて説明した。しかし、GPSユニット100のみが組み込まれた場合や、方位センサーユニット110のみが組み込まれた場合についても同様に処理を行うことができる。以下、それぞれの場合について具体的に説明する。
(1)GPSユニットのみが組み込まれた場合
(A)認識処理
図2の認識処理において、スロット用制御部15は、第1スロット60又は第2スロット70にユニットが組み込まれたことを検出すると、当該スロットにユニット情報の問い合わせを行う。そして、GPSユニット100からのユニット情報の通知を受けて、組込ユニットがGPSユニット100であることを認識する。
(B)位置算出処理
図3及び図4の位置算出処理において、GPSユニット100のみが組み込まれた場合は、スロット用制御部15は、ステップF5〜F8の処理を行わない。すなわち、方位センサーユニット110が組み込まれておらず、方位情報を取得することができないため、方位センサー初期化情報出力、角速度算出処理及び角速度出力の各ステップは実行しない。これに伴い、IMU用位置算出部11は、ステップE3及びE5の処理を行わず、IMU50も、ステップG3の処理を行わない。また、この場合は、方位センサーの較正に係る処理(ステップF15、ステップJ5)も実行しない。
(2)方位センサーユニットのみが組み込まれた場合
(A)認識処理
図2の認識処理において、スロット用制御部15は、第1スロット60又は第2スロット70にユニットが組み込まれたことを検出すると、当該スロットにユニット情報の問い合わせを行う。そして、方位センサーユニット110からのユニット情報の通知を受けて、組込ユニットが方位センサーユニット110であることを認識する。
(B)位置算出処理
図3及び図4の位置算出処理において、方位センサーユニット110のみが組み込まれた場合は、スロット用制御部15は、ステップF3、F9、F11の処理を行わない。すなわち、GPSユニット100が組み込まれていないため、GPSユニット100の初期化情報出力、GPSユニット100の較正基準情報の算出及び出力は行わない。また、この場合は、GPSユニット100から位置及び速度の演算結果を取得することができない。そのため、GPA17は、IMU位置算出部11から取得したIMU演算結果を用いて位置及び速度を算出する。
4−2.組込ユニットの種類
また、各スロットに組み込み可能なユニットは、これらのユニットに限られるわけではない。例えば、位置算出に利用可能な物理的事象を検出可能なセンサーユニットとして、速度センサーユニットや加速度センサーユニット、ジャイロセンサーユニット等のセンサーユニットを組み込むことも可能である。また、RFID(Radio Frequency IDentification)を用いて位置を検出するユニット(位置検出ユニット)を組み込むことも可能である。
さらには、第1スロット60及び第2スロット70それぞれに同種のユニット(例えばGPSユニット)を組み込むことも可能である。例えば、第1及び第2GPSユニットの2つのGPSユニットを組み込むことが考えられる。この場合は、スロット用制御部15は、第1及び第2GPSユニットそれぞれについて、当該GPSユニットが衛星捕捉処理及び位置算出処理を行うために必要な情報を算出し、GPS較正基準情報として当該GPSユニットに出力する。そして、第1及び第2GPSユニットは、それぞれスロット用制御部15から取得したGPS較正基準情報を利用して、衛星捕捉処理及び位置算出処理を行う。
また、GPA17は、第1及び第2GPSユニットそれぞれから演算結果を取得する。そして、IMU用位置算出部11から取得したIMU演算結果と、第1GPSユニットから取得した第1GPS演算結果と、第2GPSユニットから取得した第2GPS演算結果とを用いて、カルマンフィルターを利用した位置統合処理を行って位置を統合する。この場合の具体的処理については後述する。
また、上述した実施形態では、慣性計測ユニット(IMU)を位置算出システム1に搭載しておくものとして説明したが、IMU50の計測結果を利用して慣性航法演算を行って位置及び速度を算出する慣性航法装置(INS(Inertial Navigation System))を搭載しておくことにしてもよい。
図12は、この場合における位置算出システム2の構成の一例を示すブロック図である。尚、図12において、先に説明した実施形態と同様の構成部分については、先に説明した図1と同様の符号を付して、その詳細な説明を省略する。位置算出システム2では、IMU50の代わりに、IMU50を有するINS200が具備されている。また、処理部10には、INS200へのデータの入出力を制御する機能部として、IMU用位置算出部11の代わりにINS用制御部19が具備されている。位置算出システム2では、INS200が慣性航法演算処理を行って位置及び速度を算出して、INS用制御部19に出力する。
INS用制御部19は、INS200から取得した計測結果をGPA17に出力する。そして、GPA17は、スロット用制御部15を介して取得したGPSユニット100の計測結果と、INS用制御部19を介してINS200から取得した計測結果とを用いて、図6で説明したGPA位置統合処理を行って位置及び速度を算出する。
また、GPA17は、位置統合処理を行うことで算出した位置及び速度をINS用制御部19に出力する。INS用制御部19は、GPA17から位置及び速度の演算結果を取得すると、当該演算結果をINS200に出力する。そして、INS200は、図9で説明した慣性航法演算結果較正処理を行って、慣性航法演算で求めた位置及び速度を較正する。
4−3.GPA位置統合処理
上述した実施形態では、GPA17が実行するGPA位置統合処理において、IMU50の計測結果を利用して位置及び速度を予測し、GPSユニット100の計測結果を観測値として利用して予測値を補正するものとして説明した。この関係を逆転させて、例えば、GPSユニット100の計測結果を利用して位置及び速度を予測し、IMU50の計測結果を観測値として利用して予測値を補正することとしてもよい。
また、GPSユニット100の計測結果を観測値として利用するのみならず、他のセンサーユニットの計測結果を観測値として利用してGPA補正処理を行うことにしてもよい。例えば、位置算出システムにGPSユニットと速度センサーユニットとが組み込まれた場合は、GPSユニット100の計測結果を観測値として予測値を補正する第1GPA補正処理を行うとともに、速度センサーユニットの計測結果を観測値として予測値を補正する第2GPA補正処理を行う。
より具体的には、GPA17は、図3の位置算出処理のステップD1において、例えば図13に示すような観測値テーブルを生成する。すなわち、GPSユニット100については位置及び速度に「○」が設定され、速度センサーユニットについては速度に「○」が設定された観測値テーブルを生成する。また、GPA17は、位置算出処理のステップD3において、第1GPA補正処理の実行タイミング(以下、「第1補正タイミング」と称す。)として、GPSユニット100のデータの出力時間間隔毎のタイミングを設定し、第2GPA補正処理の実行タイミング(以下、「第2補正タイミング」と称す。)として、速度センサーユニットのデータの出力時間間隔毎のタイミングを設定する。
そして、図6のGPA位置統合処理のステップK7において、ステップD3で設定した第1補正タイミング又は第2補正タイミングが到来したか否かを判定し、第1補正タイミングが到来したと判定した場合は第1GPA補正処理を、第2補正タイミングが到来したと判定した場合は第2GPA補正処理をそれぞれ実行する。第1GPA補正処理では、図13の観測値テーブルに従って、GPSユニット100から取得した位置及び速度を成分とする観測ベクトルを用いて補正演算を行う。また、第2GPA補正処理では、速度センサーユニットから取得した速度を観測値として用いて補正演算を行う。
また、同種のセンサーユニットからの計測結果をそれぞれ観測値として利用して、GPA補正処理を行うことも可能である。例えば、各スロットに第1GPSユニットと第2GPSユニットとが組み込まれた場合は、第1GPSユニットの計測結果を観測値として予測位置及び予測速度を補正する第1GPA補正処理を行うとともに、第2GPSユニットの計測結果を観測値として予測位置及び予測速度を補正する第2GPA補正処理を行う。
例えば、第1GPSユニットが、位置及び速度を出力可能に構成されたユニットであり、第2GPSユニットが、位置のみを出力可能に構成されたユニットであるとする。この場合、GPA17は、図3の位置算出処理のステップD1において、図14に示すような観測値テーブルを生成する。すなわち、第1GPSユニットについては位置及び速度に「○」が設定され、第2GPSユニットについては位置に「○」が設定された観測値テーブルを生成する。また、GPA17は、位置算出処理のステップD3において、第1補正タイミングとして第1GPSユニットのデータの出力時間間隔のタイミングを設定し、第2補正タイミングとして第2GPSユニットのデータの出力時間間隔のタイミングを設定する。
そして、図6のGPA位置統合処理のステップK7において、ステップD3で設定した第1補正タイミング又は第2補正タイミングが到来したか否かを判定し、第1補正タイミングが到来したと判定した場合は第1GPA補正処理を、第2補正タイミングが到来したと判定した場合は第2GPA補正処理をそれぞれ実行する。第1GPA補正処理では、図14の観測値テーブルに従って、第1GPSユニットから取得した位置及び速度を成分とする観測ベクトルを用いて補正演算を行う。また、第2GPA補正処理では、第2GPSユニットから取得した位置を観測値として用いて補正演算を行う。
4−4.IMUの較正処理
上述した実施形態では、IMU50内部で記憶しているバイアス及びスケールファクターを、IMU用位置算出部11により算出されたバイアス及びスケールファクターに更新することで、IMU50の較正を行うものとして説明したが、この処理を次のようにしてもよい。
すなわち、IMU位置算出部11から取得したバイアス及びスケールファクターの履歴を蓄積記憶しておき、公知の線形補間演算を行って、現在のバイアス及びスケールファクターの値を推定する。そして、内部で記憶しているバイアス及びスケールファクターの値を、推定したバイアス及びスケールファクターの値に変更することで、IMU50の較正を行う。
4−5.フィルター処理
上述した実施形態では、カルマンフィルター処理によって位置を算出する例を説明したが、使用するフィルターとして、Particleフィルター(粒子フィルター)、Sigmaポイントフィルター(シグマポイントフィルター)、最小二乗法によるフィルター等を採用し、これらのフィルターを用いたフィルター処理を行って位置を算出することにしてもよい。
4−6.衛星位置算出ユニット
また、上述した実施形態では、衛星位置算出ユニットとしてGPSユニットを例に挙げて説明したが、WAAS(Wide Area Augmentation System)、QZSS(Quasi Zenith Satellite System)、GLONASS(GLObal NAvigation Satellite System)、GALILEO等の他の衛星位置算出システムを利用した衛星位置算出ユニットであってもよい。