(58)【調査した分野】(Int.Cl.,DB名)
前記ソフトウェアは前記全地球測位衛星情報と前記調整済みプロセッサクロック情報を使用することにより前記ナビゲーション解を生成するために拡張形カルマンフィルタを備え、
センサ情報を生成する少なくとも1つのセンサをさらに備え、前記センサ情報の少なくとも一部は前記ソフトウェアによって処理され、
前記センサは慣性センサ情報を生成する慣性センサを備え、前記ソフトウェアは少なくとも一部の前記慣性センサ情報を使用することにより前記ナビゲーション解を生成する慣性処理ソフトウェアを備え、
前記慣性処理ソフトウェアは前記調整済みプロセッサクロック情報の関数として前記ナビゲーション解を生成し、
前記ソフトウェアは、エラー情報を生成するために全地球測位衛星時間情報から前記プロセッサクロック情報を減算し、前記エラー情報を高域フィルタ処理して高域フィルタ処理情報を生成し、前記高域フィルタ処理情報を低域フィルタ処理して低域フィルタ処理情報を生成することにより、前記プロセッサクロック情報におけるドリフトの量を推定し、
前記ソフトウェアは、合計情報を出力するために前記フィルタ処理クロックドリフト推定情報に1を加え、且つ前記調整済みプロセッサクロック情報を生成するために前記合計情報に前記プロセッサクロック情報を乗じることにより、前記調整済みプロセッサクロック情報を生成するために、前記プロセッサクロック情報を調整して前記ドリフトの量を補償する、
請求項2に記載のナビゲーションシステム。
【発明を実施するための最良の形態】
【0008】
各種の図面において、類似した参照番号および表記は、類似した要素を示す。
図1は、ナビゲーションシステム100の1つの実施形態を示すブロック図である。ナビゲーションシステム100は、本明細書に説明されるシステム、装置、方法、および/または技法を実装する際の使用に適している。
図1に示される特定の実施形態において、ナビゲーションシステム100は、衛星(または同様の手段)上、衛星内、または衛星と共に使用されて、衛星のオペレーションを制御する際に使用するナビゲーション解102を生成する。1つの実施態様において、ナビゲーション解102は、システム100またはシステム100に関連付けられている手段の位置、速度、および加速の推定を備える。他の実施形態において、ナビゲーションシステム100は、その他の方法および/または他のアプリケーションで実現される。
【0009】
図1に示される特定の実施形態において、ナビゲーションシステム100は、少なくとも1つのプログラム可能プロセッサ104を備える。プログラム可能プロセッサ104は、ナビゲーションシステム100によって実行される、本明細書に説明される機能の少なくとも一部をプログラム可能プロセッサ104に実行させるソフトウェア106を実行する。
図1に示される実施形態において、ソフトウェア106は、プログラム可能プロセッサ104が実行のためにプログラム命令の少なくとも一部を読み取る記憶媒体108内または記憶媒体108上に格納される(または組み入れられる)プログラム命令を備える。ナビゲーションシステム100はさらに、ソフトウェア106の実行中に、プログラム命令および/または関連付けられているデータ構造を格納するためのメモリ110を含む。メモリ110は、たとえば、現在知られているかまたは最近開発された揮発性メモリおよび/または不揮発性メモリの適切な形態を備える。
【0010】
クロック112(本明細書において「プロセッサクロック」112とも呼ばれる)は、プロセッサ104によってクロック信号として使用されるクロック信号(本明細書において「プロセッサクロック信号」とも呼ばれる)を出力する。
図1に示される実施形態において、プロセッサ104上で実行するソフトウェア106は、ソフトウェア106によって実行される処理の少なくとも一部に使用されるプロセッサクロック112によって出力されるプロセッサクロック信号からプロセッサクロック情報を受信するかまたは導き出す。
【0011】
ナビゲーションシステム100は、GPS受信機114をさらに備える。GPS受信機114は、1つまたは複数のGPS衛星からGPS無線周波数(RF)信号を受信し、受信したGPS RF信号から導かれたGPS情報116を出力する。そのような実施形態の1つの実施態様において、GPS情報116は、GPS受信機114がその時点においてGPS RF信号を受信することができるGPS衛星ごとに1つまたは複数のGPS観察可能物を含む。そのような実施形態の1つの実施態様において、GPS受信機114は、そのような推定を生成するためにディファレンシャルGPS技法を利用する。もう1つの実施態様において、GPS受信機114は、そのような推定を生成するためにディファレンシャルGPS技法を使用しない。他の実施形態において、GPS受信機114は、GPS受信機114によって受信された任意のGPS RF信号から導かれた他のGPS情報116を出力す
る。
【0012】
図1に示される実施形態において、プロセッサ104によって実行されるソフトウェア106は、GPS情報116(使用可能な場合)および時間情報の少なくとも一部に基づいてナビゲーション解102を生成するために使用される拡張形カルマンフィルタ120を備える。そのような実施形態において、拡張形カルマンフィルタ120は、たとえば、初期の既知の開始状態(たとえば、GPS情報116から導かれる)および拡張形カルマンフィルタ120に入力される時間情報に基づいて初期ナビゲーション解推定(たとえば、システム100に関連付けられている手段の位置、速度、および加速の初期推定)を出力する軌道プロパゲータ124を含む。GPS情報116は、使用可能な場合、軌道プロパゲータ124によって出力された初期ナビゲーション解推定を「補正」するために使用される。そのような実施形態の1つの実施態様において、拡張形カルマンフィルタ120は、4次ルンゲクッタ積分器を使用して実現される。
【0013】
そのような実施形態において、ルンゲクッタ積分器は、毎秒(公称)積分演算を実行する。連続する積分演算間の時間はまた、本明細書において、積分の「ステップサイズ」と呼ばれ、各積分演算中に実行される1つまたは複数の計算によって使用される。そのような実施態様において、ステップサイズは、カルマンフィルタ120によって受信された時間情報を使用してルンゲクッタ積分器により実行される積分演算ごとに決定される。しかし、各積分演算は通常、(たとえば、ステップサイズが決定される基礎となる時間情報内のドリフトにより)ステップサイズのエラーに特に敏感である。
【0014】
ソフトウェア106は、クロックドリフト推定器126をさらに備える。クロックドリフト推定器126は、プロセッサクロック112によって出力されたプロセッサクロック信号から受信されるかまたは導かれるプロセッサクロック情報を使用する。GPS情報116が使用可能な場合、クロックドリフト推定器126は、GPS受信機114によって出力されたGPS情報116に含まれるかまたはGPS情報116から導かれる時間情報(本明細書において「GPS時間情報」とも呼ばれる)に基づいてプロセッサクロック情報のクロックドリフトの量を推定する。プロセッサクロック情報のクロックドリフトの量の推定はまた、本明細書において「クロックドリフト推定」とも呼ばれる。
図1に示される実施形態において、ソフトウェア106は、GPS受信機114によって出力されたGPS情報116に基づいて、クロックドリフト推定器126によって使用されるGPS時間情報を生成するGPS処理ソフトウェア128を備える。他の実施形態において、GPS受信機114自体は、クロックドリフト推定器126によって使用されるGPS時間情報を出力する。
【0015】
クロックドリフト推定器126は、推定されたクロックドリフトを補償するために、クロックドリフト推定を使用してプロセッサクロック情報を調整する。調整済みプロセッサクロック情報は、拡張形カルマンフィルタ120によって実行される処理のために拡張形カルマンフィルタ120に入力する時間情報として使用される。1つの実施態様において、GPS情報116が使用可能ではない場合、クロックドリフト推定器126は、クロックドリフト推定器126によって生成された前回のクロックドリフト推定を使用して、プロセッサクロック112によって出力されたプロセッサクロック信号から受信されるかまたは導かれるプロセッサクロック情報を調整する。
【0016】
オペレーション中に、GPS受信機114が1つまたは複数のGPS衛星からそれぞれ1つまたは複数のGPS RF信号を受信することができる場合、GPS受信機114はGPS情報116を出力する。GPS情報116は、拡張形カルマンフィルタ120およびGPS処理ソフトウェア128によって受信される。GPS処理ソフトウェア128は、GPS受信機114によって出力されたGPS情報116からGPS時間情報を導く。GPS処理ソフトウェア128によって出力されたGPS時間情報は、クロックドリフト推定器126によって使用され、プロセッサクロック112によって出力されたプロセッサクロック信号から受信されるかまたは導かれるプロセッサクロック情報のクロックドリフト推定を生成し、推定されたクロックドリフトを補償するためにプロセッサクロック情報を調整する。次いで、調整済みプロセッサクロック情報は、クロックドリフト推定器126によって、初期ナビゲーション解推定を生成する際に軌道プロパゲータ124によって使用されるために拡張形カルマンフィルタ120に出力される。拡張形カルマンフィルタ120はまた、GPS受信機114によって出力されたGPS情報を使用して、軌道プロパゲータ124によって出力された初期ナビゲーション解推定を補正する。補正されたナビゲーション解推定は、ナビゲーション解102として出力される。
【0017】
GPS受信機114がGPS衛星から少なくとも1つのGPS RF信号を受信することができない場合、GPS受信機114はGPS情報116を出力することができない。そのような状況において、クロックドリフト推定器126は、前回のクロックドリフト推定を使用して、プロセッサクロック112によって出力されたプロセッサクロック信号から受信されるかまたは導かれるプロセッサクロック情報を調整する。次いで、調整済みプロセッサクロック情報は、クロックドリフト推定器126によって、初期ナビゲーション解推定を計算する際に軌道プロパゲータ124によって使用されるために拡張形カルマンフィルタ120に出力される。拡張形カルマンフィルタ120はまた、GPS受信機114によって出力されたGPS情報を使用して、軌道プロパゲータ124によって出力された初期ナビゲーション解推定を補正する。補正されたナビゲーション解推定は、ナビゲーション解102として出力される。
【0018】
このようにして、ソフトウェア106によって実行されるナビゲーション−解処理において使用される時間情報の精度が(たとえば拡張形カルマンフィルタ120により)改善され、それがシステム100によって生成されるナビゲーション解102の精度を向上させる。この向上は特に、ソフトウェア106によって実行されるナビゲーション−解処理がそのような処理に使用される時間情報のエラーに特に敏感であるような用途において重要である。
【0019】
図2は、
図1のナビゲーションシステム100での使用に適したクロックドリフト推定器126の1つの実施形態を示すブロック図である。クロックドリフト推定器126の実施形態は、プロセッサ104によって実行されるソフトウェア106において実現される。他の実施形態において、クロックドリフト推定器126は、他の方法で実現される。
【0020】
図2に示される実施形態において、クロックドリフト推定器126は、プロセッサクロック112によって出力されたプロセッサクロック信号およびGPS処理ソフトウェア128によって生成されたGPS時間情報から受信されるかまたは導かれるプロセッサクロック情報を入力として受信する。クロックドリフト推定器126は、GPS時間情報からプロセッサクロック情報を減算するが、これはエラー情報202を生成する。クロックドリフト推定器126は、エラー情報202を高域フィルタ処理して、エラー情報202の変化率(つまり、エラー情報202の第1次導関数)を示す高域フィルタ処理情報206を出力する高域フィルタ204を備える。そのような実施形態の1つの実施態様において、高域フィルタ204は、0.0628Hzのカットオフ周波数を有する1次高域フィルタを備える。
【0021】
クロックドリフト推定器202はさらに、高域フィルタ処理された情報206からノイズを除去するために、高域フィルタ処理情報206を低域フィルタ処理する低域フィルタ208を備える。低域フィルタ208は、フィルタ処理されたクロックドリフト推定情報210を出力する。そのような実施形態の1つの実施態様において、低域フィルタ208は、0.0628Hzのカットオフ周波数を有する1次低域フィルタを備える。クロックドリフト推定器202は、フィルタ処理されたクロックドリフト推定情報210を1に加える加算器212をさらに備える。クロックドリフト推定器202は、プロセッサクロック情報に加算器212の出力を乗じる乗算器214をさらに備える。乗算器214の出力は、
図1に関連して前述の処理のために拡張形カルマンフィルタ120によって使用される調整済みプロセッサクロック情報として出力される。
【0022】
本明細書において説明されるプロセッサ−クロック調整技法は、ナビゲーションシステムの他の実施形態において使用されうる。そのような代替実施形態の1つは、
図3に示される。
図3は、ナビゲーションシステム300の1つの実施形態を示すブロック図である。ナビゲーションシステム300は、
図2のクロックドリフト推定器126との使用に適している。
【0023】
図3に示される特定の実施形態において、ナビゲーションシステム300は、少なくとも1つのプログラム可能プロセッサ304を備える。プログラム可能プロセッサ304は、ナビゲーションシステム300によって実行される、本明細書に説明される機能の少なくとも一部をプログラム可能プロセッサ304に実行させるソフトウェア306を実行する。
図3に示される実施形態において、ソフトウェア306は、プログラム可能プロセッサ304が実行のためにプログラム命令の少なくとも一部を読み取る記憶媒体308内または記憶媒体308上に格納される(または具現される)プログラム命令を備える。ナビゲーションシステム300はさらに、ソフトウェア306の実行中に、プログラム命令および/または関連付けられているデータ構造を格納するためのメモリ310を含む。メモリ310は、たとえば、現在知られているかまたは最近開発された揮発性メモリおよび/または不揮発性メモリの適切な形態を備える。
【0024】
プロセッサクロック312は、プロセッサ304によってクロック信号として使用されるプロセッサクロック情報を出力する。
図3に示される実施形態において、プロセッサ304上で実行するソフトウェア306は、ソフトウェア306によって実行される処理の少なくとも一部に使用されるプロセッサクロック312によって出力されるプロセッサクロック信号からプロセッサクロック情報を受信するかまたは導き出す。
【0025】
ナビゲーションシステム300は、GPS受信機314をさらに備える。GPS受信機314は、1つまたは複数のGPS衛星からGPS RF信号を受信し、受信したGPS RF信号から導いたGPS情報316を出力する。そのような実施形態の1つの実施態様において、GPS情報316は、GPS受信機314がその時点においてGPS RF信号を受信することができるGPS衛星ごとに1つまたは複数のGPS観察可能物を含む。そのような実施形態の1つの実施態様において、GPS受信機314は、そのような推定を生成するためにディファレンシャルGPS技法を利用する。もう1つの実施態様において、GPS受信機314は、そのような推定を生成するためにディファレンシャルGPS技法を使用しない。他の実施形態において、GPS受信機314は、GPS受信機314によって受信された任意のGPS RF信号から導かれた他のGPS情報316を出力する(たとえば、GPS受信機114およびソフトウェア306が「超緊密」または「深い」集積を使用して集積される場合)。
【0026】
図3に示される実施形態において、ナビゲーションシステム300は、1つまたは複数のセンサ352をさらに備える。センサ352は、ナビゲーションシステム300の位置および/または移動を示す情報を(たとえば、1つまたは複数のアナログ信号あるいは1つまたは複数のデジタルデータストリームの形態で)生成する。センサ352は、適切なインターフェイス構成要素を介してプログラム可能プロセッサ304に通信できるように結合される。
図3に示される実施形態において、センサ352は、1つまたは複数の慣性センサ354、1つまたは複数の磁気センサ356、および1つまたは複数の高度計358を含む。
図3に示される実施形態において、プロセッサ304によって実行されるソフトウェア306は、1つまたは複数のセンサ352から情報(本明細書において「センサ情報」とも呼ばれる)を受信し、受信したセンサ情報を使用して第1のナビゲーション解362を生成する慣性処理ソフトウェア360を備える。
図3に示される実施形態において、慣性処理ソフトウェア360は、これにより実行される処理の少なくとも一部においてプロセッサクロック312によって出力されるプロセッサクロック情報を使用する。
【0027】
そのような実施形態の1つの実施態様において、慣性センサ354は、3つの相互に直交する軸(たとえば、x、y、およびz軸)の向きに配置された3つの加速度計を備える。そのような実施形態において、慣性センサ354は、3つの相互に直交する軸(たとえば、ピッチ、ヨー、およびロール軸)の向きに配置された3つのジャイロスコープを備える。慣性処理ソフトウェア360は、そのような実施態様において、加速度計およびジャイロスコープの出力を処理する。たとえば、加速度計の3つの直交する出力は、ナビゲーションシステム300の加速度ベクトルを得るために、慣性処理ユニット360によってベクトルが合計される。慣性処理ソフトウェア360は、ナビゲーションシステム300の速度ベクトルを得るために加速度ベクトルを積分し、次いでナビゲーションシステム300の位置変更ベクトルを得るために速度ベクトルを積分する。ジャイロスコープの3つの直交する出力は、ナビゲーションシステム300の回転速度ベクトルを得るために、慣性処理ソフトウェア360によってベクトルが合計される。慣性処理ソフトウェア360は、ナビゲーションシステム300の姿勢変化ベクトルを得るために、回転速度ベクトルを積分する。位置変化ベクトルおよび姿勢変化ベクトルは、ナビゲーション解362を生成するために使用される。慣性処理ソフトウェア360はまた、
図3に示される実施形態において、慣性処理ソフトウェア360によって実行される処理に時間情報も使用する。他の実施形態および実施態様において、センサ352および慣性処理ソフトウェア360は、他の方法で実施される。
【0028】
図3に示される実施形態において、プロセッサ304によって実行されるソフトウェア306は、カルマンフィルタ370を備える。カルマンフィルタ370は、慣性処理ユニット360によって出力されたナビゲーション解362(たとえば、位置、速度、および姿勢推定)、1つまたは複数のセンサ352からのセンサ情報、およびGPS受信機314からのGPS情報を受信する。カルマンフィルタ370は、そのような入力に基づいて、ナビゲーションエラー増加を制御する際に慣性処理ソフトウェア360によって使用される補正フィードバックを生成する。
図3に示される実施形態において、カルマンフィルタ370は、これにより実行される処理の少なくとも一部において時間情報を使用する。
【0029】
ソフトウェア306は、
図1および
図2に関連して前述されているタイプのクロックドリフト推定器126をさらに備える。クロックドリフト推定器126は、プロセッサクロック312によって出力されたプロセッサクロック信号から受信されるかまたは導かれるプロセッサクロック情報を使用する。GPS情報316が使用可能な場合、クロックドリフト推定器126は、GPS受信機314によって出力されたGPS情報316に含まれるかまたはGPS情報から導かれるGPS時間情報に基づいてプロセッサクロック情報のクロックドリフトの量を推定する。
図3に示される実施形態において、ソフトウェア306は、GPS受信機314によって出力されたGPS情報316に基づいて、クロックドリフト推定器126によって使用されるGPS時間情報を生成するGPS処理ソフトウェア328を備える。他の実施形態において、GPS受信機314自体は、クロックドリフト推定器126によって使用されるGPS時間情報を出力する。
【0030】
クロックドリフト推定器126は、推定されたクロックドリフトを補償するために、クロックドリフト推定を使用してプロセッサクロック情報を調整する。調整済みプロセッサクロック情報は、慣性処理ユニット360およびカルマンフィルタ370によって実行される処理のために時間情報として使用される。1つの実施態様において、GPS情報316が使用可能ではない場合、クロックドリフト推定器126は、クロックドリフト推定器126によって生成された前回のクロックドリフト推定を使用して、プロセッサクロック情報を調整する。
【0031】
オペレーション中に、GPS受信機314が1つまたは複数のGPS衛星からそれぞれ1つまたは複数のGPS RF信号を受信することができる場合、GPS受信機314はGPS情報316を出力する。GPS情報316は、GPS処理ソフトウェア328およびカルマンフィルタ370によって受信される。GPS処理ソフトウェア328は、GPS受信機314によって出力されたGPS情報316からGPS時間情報を導く。GPS処理ソフトウェア328によって出力されたGPS時間情報は、クロックドリフト推定器126によって使用されて、プロセッサクロック312によって出力されたプロセッサクロック信号から受信されるかまたは導かれるプロセッサクロック情報のクロックドリフト推定を計算し、推定されたクロックドリフトを補償するためにプロセッサクロック情報を調整する。次いで、調整済みプロセッサクロック情報は、クロックドリフト推定器126によって慣性処理ソフトウェア360およびカルマンフィルタ370に出力される。慣性処理ソフトウェア360は、少なくとも1つのセンサ352によって出力されたセンサ情報、調整済みプロセッサクロック情報、およびカルマンフィルタ370によって出力された補正フィードバックを使用して、ナビゲーション解302を生成する。カルマンフィルタ370は、ナビゲーション解302、センサ情報、GPS情報316、および調整済みプロセッサクロック情報を使用して、慣性処理ソフトウェア360にフィードバックされる補正フィードバックを生成する。
【0032】
GPS受信機314がGPS衛星から少なくとも1つのGPS RF信号を受信することができない場合、GPS受信機314はGPS情報316を出力することができない。そのような状況において、クロックドリフト推定器126は、前回のクロックドリフト推定を使用して、プロセッサクロック112によって出力されたプロセッサクロック信号から受信されるかまたは導かれるプロセッサクロック情報を調整する。調整済みプロセッサクロック情報は、ナビゲーション解302および補正フィードバックの生成に使用されるため、クロックドリフト推定器126によってそれぞれ慣性処理ソフトウェア360およびカルマンフィルタ370に出力される。
【0033】
このようにして、ソフトウェア306によって実行されるナビゲーション解処理において使用される時間情報の精度が(たとえば慣性処理ソフトウェア360およびカルマンフィルタ370により)改善され、それがシステム300によって生成されるナビゲーション解302の精度を向上させる。この向上は特に、ソフトウェア306によって実行されるナビゲーション−解処理がそのような処理に使用される時間情報のエラーに特に敏感であるようなアプリケーションにおいて重要である。
【0034】
本明細書において説明される方法および技法は、デジタル電子回路において、またはプログラム可能プロセッサ(たとえば、特殊用途プロセッサまたはコンピュータのような汎用プロセッサ)ファームウェア、ソフトウェア、あるいはそれらの組合せで実施されうる。それらの技法を組み入れる装置は、適切な入力および出力装置、プログラム可能プロセッサ、およびプログム可能プロセッサにより実行するためのプログラム命令を具体的に組み入れる記憶媒体を含むことができる。それらの技法を組み入れるプロセスは、入力データを操作して適切な出力を生成することにより望ましい機能を実行するために、命令のプログラムを実行するプログラム可能プロセッサによって実行されうる。技法は、データストレージシステムとの間でデータおよび命令を送受信するために結合された少なくとも1つのプログラム可能プロセッサと、少なくとも1つの入力装置と、少なくとも1つの出力装置とを含むプログラム可能システム上で実行可能な1つまたは複数のプログラムにおいて有利に実現されうる。
【0035】
一般に、プロセッサは、読み取り専用メモリおよび/またはランダムアクセスメモリから命令およびデータを受信する。コンピュータプログラム命令およびデータを具体的に組み入れるために適切な記憶装置は、一例として、EPROM、EEPROM、およびフラッシュメモリ素子などの半導体記憶装置、内部ハードディスクおよび取り外し可能ディスクなどの磁気ディスク、光磁気ディスク、およびDVDディスクを含むあらゆる形態の不揮発性メモリを含む。前述のいずれも、特殊設計の特定用途向け集積回路(ASIC)に補完されるか、またはこれに組み込まれうる。
【0036】
添付の特許請求の範囲によって定義される本発明の多くの実施形態について説明してきた。しかしながら、説明されている実施形態への各種の変更は、請求項に係る発明の精神および範囲を逸脱することなく行われうる。したがって、その他の実施形態は、付属の特許請求の範囲に含まれる。