(57)【要約】      （修正有）【課題】ローカルタイムソースをＧＰＳセンサの時刻に収める自動運転車両用のタイムソース回復システムを提供する。【解決手段】システムは、ローカルタイムソースとＧＰＳセンサの時刻との時間差を確定し、差異の最大限度、及び平滑化タイムソース回復の最大回復インクリメント又は最大回復時間間隔を特定し、ローカルタイムソースとＧＰＳセンサの時刻との差異が最大限度よりも小さいことを判定し、最大回復時間間隔の内にローカルタイムソースをＧＰＳセンサの時刻に収束させるようにタイムソースの平滑化回復を計画し、回復されたタイムソースに基づき、タイムスタンプを生成して、ＡＤＶにおけるセンサユニットのセンサデータにタイムスタンプを付加する。【選択図】図１６
2020030808.tif 000002
【特許請求の範囲】
【請求項１】
自動運転車両（ＡＤＶ）のタイムソースを回復する方法であって、
全地球測位システム（ＧＰＳ）タイムソースが利用できない場合に、ローカルタイムソースから取得された時刻を使用してタイムスタンプを生成するステップと、
前記ＧＰＳタイムソースが利用可能になったことの確定に応答して、ローカルソースから得られた第１時刻と前記ＧＰＳタイムソースから得られた第２時刻との時間差を確定するステップと、
前記第１時刻と前記第２時刻との間の時間差が所定の最大限度よりも小さいことを判定するステップと、
前記ローカルソースを所定の最大回復時間間隔の内にだんだん前記ＧＰＳタイムソースに収束させることで、タイムソースの平滑化回復を実行するステップと、
回復されたタイムソースに基づきタイムスタンプを生成するステップであって、回復されたタイムソースに基づいて生成された前記タイムスタンプは、前記ＡＤＶにおける複数の部位に装着された複数のセンサから得られたセンサデータにタイムスタンプを付加するために使用され、前記センサデータは、ホストシステムが前記ＡＤＶ周辺の運転環境を感知し且つ感知されたデータに基づき前記ＡＤＶを自動運転させるために利用されるステップと、
を含む方法。
【請求項２】
前記第１時刻と前記第２時刻との間の時間差が前記所定の最大限度よりも大きいことを判定するステップと、
前記ローカルタイムソースを直ちに前記ＧＰＳタイムソースに合わせることで、タイムソースを回復するステップと、
を含む、請求項１に記載の方法。
【請求項３】
所定のタイムインクリメントに基づき、前記ローカルタイムソースをだんだん前記ＧＰＳタイムソースに収束させるステップを実行する、請求項１に記載の方法。
【請求項４】
前記所定のタイムインクリメントは、前記ホストシステムから予め設定、又は受信された、請求項３に記載の方法。
【請求項５】
前記所定のタイムインクリメントは、単一のクロックサイクル間隔である、請求項３に記載の方法。
【請求項６】
前記単一のクロックサイクル間隔は１０ナノ秒である、請求項５に記載の方法。
【請求項７】
前記所定の最大限度と前記所定の最大回復時間間隔は、ホストシステムから予め設定、又は受信された、請求項１に記載の方法。
【請求項８】
自動運転車両（ＡＤＶ）のタイムソースを回復する装置であって、
ＧＰＳタイムソースが利用できない状態から利用可能になったことの確定に応答して、ローカルソースから得られた第１時刻と前記ＧＰＳタイムソースから得られた第２時刻との時間差を確定する時間差確定モジュールであって、前記ローカルタイムソースは前記ＧＰＳタイムソースが利用できない場合にタイムスタンプを生成するに使用される時間差確定モジュールと、
前記時間差確定モジュールに接続される平滑化モジュールと、を含み、
前記平滑化モジュールは、
前記第１時刻と前記第２時刻との間の時間差が所定の最大限度よりも小さいことを判定し、
前記ローカルソースを所定の最大回復時間間隔の内にだんだん前記ＧＰＳタイムソースに収束させることで、タイムソースの平滑化回復を実行し、ここで、収束したローカルタイムソースに基づき後続タイムスタンプを生成して、前記ＡＤＶにおける複数の部位に装着された複数のセンサから得られたセンサデータにタイムスタンプを付加し、且つ、前記センサデータは、ホストシステムが前記ＡＤＶ周辺の運転環境を感知し且つ感知されたデータに基づき前記ＡＤＶを自動運転させるために利用される、
ように構成される、装置。
【請求項９】
前記時間差確定モジュールに接続される突発回復モジュールを更に含み、
前記突発回復モジュールは、
前記第１時刻と前記第２時刻との間の時間差が前記所定の最大限度よりも大きいことを判定することと、
前記ローカルタイムソースを直ちに前記ＧＰＳタイムソースに合わせることでタイムソースを回復すること、
に使用される、請求項８に記載の装置。
【請求項１０】
前記ローカルタイムソースは、所定のタイムインクリメントに基づき、だんだん前記ＧＰＳタイムソースに収束させられる、請求項８に記載の電気回路。
【請求項１１】
前記所定のタイムインクリメントは、前記ホストシステムから予め設定、又は受信された、請求項１０に記載の電気回路。
【請求項１２】
前記所定のタイムインクリメントは、単一のクロックサイクルである、請求項１０に記載の電気回路。
【請求項１３】
前記単一のクロックサイクル間隔は１０ナノ秒である、請求項１２に記載の電気回路。
【請求項１４】
前記所定の最大限度と前記所定の最大回復時間間隔は、ホストシステムから予め設定、又は受信された、請求項８に記載の電気回路。
【請求項１５】
自動運転車両（ＡＤＶ）のためのセンサユニットであって、
前記ＡＤＶにおける複数の部位に装着された複数のセンサに接続されるべきセンサインタフェースと、
前記センサインタフェースに接続されるタイムソース回復ロジック装置と、を含み、
前記タイムソース回復ロジック装置は、
ＧＰＳタイムソースが利用できない状態から利用可能な状態になったことの確定に応答して、ローカルソースから得られた第１時刻と前記ＧＰＳタイムソースから得られた第２時刻との時間差を確定する時間差確定モジュールであって、前記ローカルタイムソースは前記ＧＰＳタイムソースが利用できない場合にタイムスタンプを生成するに使用される、時間差確定モジュールと、
前記時間差確定モジュールに接続される平滑化モジュールであって、前記第１時刻と前記第２時刻との間の時間差が所定の最大限度よりも小さいことを判定し、前記ローカルソースを所定の最大回復時間間隔の内にだんだん前記ＧＰＳタイムソースに収束させることで、タイムソースの平滑化回復を実行する、平滑化モジュールと、
収束したローカルタイムソースに基づきタイムスタンプを生成して、前記ＡＤＶにおける複数の部位に装着された複数のセンサから得られたセンサデータにタイムスタンプを付加し、且つ、前記センサデータは、ホストシステムが前記ＡＤＶ周辺の運転環境を感知し且つ感知されたデータに基づき前記ＡＤＶを自動運転させるために利用されるように構成される、タイムスタンプ生成器と、
を含む装置。
【請求項１６】
前記タイムソース回復ロジック装置は、前記時間差確定モジュールに接続される突発回復モジュールを更に含み、
前記突発回復モジュールは、
前記第１時刻と前記第２時刻との間の時間差が前記所定の最大限度よりも大きいことを判定することと、
前記ローカルタイムソースを直ちに前記ＧＰＳタイムソースに合わせることでタイムソースを回復すること、
に使用される、請求項１５に記載のセンサユニット。
【請求項１７】
前記ローカルタイムソースは、所定のタイムインクリメントに基づき、だんだん前記ＧＰＳタイムソースに収束させられる、請求項１５に記載のセンサユニット。
【請求項１８】
前記所定のタイムインクリメントは、前記ホストシステムから予め設定、又は受信された、請求項１７に記載のセンサユニット。
【請求項１９】
前記所定のタイムインクリメントは、単一のクロックサイクルである、請求項１７に記載のセンサユニット。
【請求項２０】
前記単一のクロックサイクル間隔は１０ナノ秒である、請求項１９に記載のセンサユニット。
【請求項２１】
前記所定の最大限度と前記所定の最大回復時間間隔は、ホストシステムから予め設定、又は受信された、請求項１５に記載のセンサユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、主に自動運転車両を動作させることに関する。より具体的に、本開示の実施形態は、自動運転車両用のタイムソース回復システムに関する。
【背景技術】
【０００２】
自動運転モードで走行する（例えば、ドライバーレス）車両は、乗員、特に運転手をいくつかの運転に関する責務から解放させることができる。車両は、自動運転モードで走行する時に、車載センサを利用して様々な位置までナビゲートすることができるので、最小限のヒューマンマシンインタラクションや、乗客がいないなどの状況で車両を走行させることが可能となる。
【０００３】
走行計画及び制御は自動運転における肝心な操作である。走行計画及び制御の正確性と効率は、各々のセンサ入力に対しタイムスタンプを付ける時、各々のセンサ入力を同期させる時の車両時刻の正確性に大きく依存する。高精度水晶発振器を使用して時刻を生成することは一般的であるが、コストが高くなることに加え、異なるセンサ及び装置に適用しない恐れがある。また、センサ及び装置からの複数のクロックソースによる時刻は、ばらばらになり、精確ではない恐れがある。
【発明の概要】
【０００４】
本発明の実施形態は、各図面において制限的ではなく例示的なものとして示され、図面における同一の符号は、類似の素子を示す。
【図面の簡単な説明】
【０００５】
【図１】一実施形態に係るネットワーク化したシステムを示すブロック図である。
【０００６】
【図２】一実施形態に係る自動運転車両の一例を示すブロック図である。
【０００７】
【図３Ａ】一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
【図３Ｂ】一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
【０００８】
【図４】一実施形態に係る自動運転システムのアーキテクチャを示すブロック図である。
【０００９】
【図５】一実施形態に係るセンサユニットの一例を示すブロック図である。
【００１０】
【図６Ａ】一実施形態に係る高精度時刻生成ユニットの一例を示すブロック図である。
【００１１】
【図６Ｂ】一実施形態に係る三つのカウンタジェネレータを有する高精度時刻生成ユニットの一例を示す図である。
【００１２】
【図７】一実施形態に係る時刻生成方法を示すフローチャートである。
【００１３】
【図８】一実施形態に係るセンサユニットの一例を示すブロック図である。
【００１４】
【図９】一実施形態に係るタイムスタンプ同期ハブ装置の一例を示すブロック図である。
【００１５】
【図１０】一実施形態に係るセンサユニットの一例を示すブロック図である。
【００１６】
【図１１】一実施形態に係るタイムソースランキングモジュールの一例を示すブロック図である。
【００１７】
【図１２】一実施形態に係るタイムソースをランキングする方法を示すフローチャートである。
【００１８】
【図１３】一実施形態に係るセンサユニットの一例を示すブロック図である。
【００１９】
【図１４】一実施形態に係るタイムソース回復モジュールの一例を示すブロック図である。
【００２０】
【図１５】一実施形態に係る平滑化タイムソース回復の一例を示す図である。
【００２１】
【図１６】一実施形態に係るタイムソース回復の方法を示すフローチャートである。
【００２２】
【図１７】一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【００２３】
これから検討される詳細を参照しながら本発明の各々の実施形態および態様を記述し、添付図面に前記様々な実施形態を示す。以下の記述及び図面は、本発明を限定するものではなく、本発明を説明するためのものである。本発明の様々な実施形態が完全に把握できるように、特定の詳細を多く記述しているが、本発明の実施形態に対する簡潔的な説明を提供するように、周知又は従来技術の詳細について説明しない場合もある。
【００２４】
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態を参照しながら説明する特定の特徴、構造又は特性は、本発明の少なくとも一実施形態に含まれてもよいことを意味する。「一実施形態では」という語句は、本明細書全体において同一の実施形態を指すとは限らない。
【００２５】
リアルタイムクロック（ＲＴＣ）は時間に追従するコンピュータクロックである。ＲＣＴは、精確な時刻維持を必要とされるほとんどの電子機器に存在する。ほとんどのＲＴＣには石英結晶の水晶発振器を使用する。水晶発振器は、圧電部材である振動結晶の機械的共振に用いられる電子発振器集積回路（ＩＣ）である。水晶発振器は、所与の周波数を有する電子信号を発生可能である。ＲＴＣ  ＩＣは、１００ピーピーエム（ＰＰＭ）程度の精度を有し得るが、一般的に、精度が高い程、コストが高くなる。ＲＴＣ  ＩＣは、精度が異なれば、例えばカウント時間がやや異なるため、最初に正確に設定されていたとしても、時間が経つことにつけて、クロックドリフトによって異なることになる。
【００２６】
一局面によれば、時刻生成システムは、センサユニットにて自動運転車両（ＡＤＶ）のＧＰＳセンサからの全地球測位システム（ＧＰＳ）のパルス信号を受信しており、ここで、ＧＰＳパルス信号は、衛星からＧＰＳセンサに送信されたＲＦ信号であり、センサユニットは、ホストシステムとＡＤＶに装着された複数のセンサとに接続されており、ホストシステムは、センサから取得され且つセンサユニットの処理モジュールにより処理されたセンサデータに基づいてＡＤＶ周辺の運転環境を感知する感知モジュールと、感知データに基づいて、ＡＤＶを自動運転するための経路を計画する計画・制御モジュール（ＰＮＣ）とを含む。システムは、ローカル発振器からの第１ローカル発振信号を受信する。システムは、第１ローカル発振信号をＧＰＳ信号とリアルタイムに同期させるようにし、ここで、ＧＰＳパルス信号に基づき第１ローカル信号を修正することが含まれる。システムは、同期された第１ローカル発振信号に基づき、複数のセンサのうちの少なくとも一つへ時刻を提供する第２発振信号を生成する。
【００２７】
一実施形態において、システムは、前記ローカル発振器を使用して、第１粒度の第１カウンタを生成する。システムは、ＧＰＳパルス信号の時間間隔を満たす第１粒度の振動の回数をカウントする第１カウンタをモニタリングしており、ここで、１カウントが一回の第１粒度の振動を表す。システムは、モニタリングされる第１粒度の第１カウンタによる第１カウント値を算出する。システムは、算出された第１カウント値に基づき、１カウントが第１粒度の振動の一部を表すように第１カウンタを修正することで、第１粒度のローカル発振器を同期させる。
【００２８】
他の実施形態において、システムは、ローカル発振器を使用して第２粒度の第２カウンタを生成する。システムは、ＧＰＳパルス信号の時間間隔を満たす第２粒度の振動の回数をカウントする第２カウンタをモニタリングしており、ここで、１カウントが一回の第２粒度の振動を表す。システムは、モニタリングされる第２粒度の第２カウンタによる第２カウント値を算出する。システムは、算出された第２カウント値に基づき、１カウントが第２粒度の振動の一部を表すように第２カウンタを修正することで、第２粒度のローカル発振器を同期させる。
【００２９】
他の実施形態において、システムは、ローカル発振器を使用して第３粒度の第３カウンタを生成する。システムは、ＧＰＳパルス信号の時間間隔を満たす第３粒度の振動の回数をカウントする第３カウンタをモニタリングしており、ここで、１カウントが一回の第３粒度の振動を表す。システムは、モニタリングされる第３粒度の第３カウンタによる第３カウント値を算出する。システムは、算出された第３カウント値に基づき、１カウントが第３粒度の振動の一部を表すように第３カウンタを修正することで、第３粒度のローカル発振器を同期させる。
【００３０】
他の実施形態において、第１粒度をミリ秒の粒度、第２粒度をマイクロ秒の粒度、第３粒度をナノ秒の粒度とする。他の実施形態において、システムは、同期のための上記第１カウンタ、第２カウンタ、又は第３カウンタのうちのいずれか１つの生成を禁止する。他の実施形態において、ＧＰＳセンサ信号が失った場合、システムは、ＧＰＳセンサ信号が取り直されるまで、第１カウント値、第２カウント値及び第３カウント値を保持する。
【００３１】
第二局面によれば、ＡＤＶにセンサユニットを使用する。センサユニットは、ＡＤＶにおける複数の部位に装着された複数のセンサに接続されるセンサインタフェースを含む。センサユニットは、ホストシステムに接続されるホストインタフェースを含み、ホストシステムが、センサから取得されたセンサデータに基づいてＡＤＶ周辺の運転環境を感知し、ＡＤＶを自動運転するための経路を計画する。センサユニットは、センサインタフェースに接続される時刻同期ハブ装置を含む。時刻同期ハブ装置は、タイムソースに接続される一つ又は複数の伝送（ＴＸ）タイムスタンプ生成器を含み、ここで、ＴＸタイムスタンプ生成器は、タイムソースから取得された時刻に基づき、センサがセンサデータをホストインタフェースからホストシステムに送信する時刻を示すＴＸタイムスタンプを生成して、一つ又は複数のセンサへ提供する。時刻同期ハブ装置は、タイムソースに接続される一つ又は複数の伝送（ＲＸ）タイムスタンプ生成器を含み、ここで、ＲＸタイムスタンプ生成器は、タイムソースから取得された時刻に基づき、センサからセンサデータを受信した時刻を示すＲＸタイムスタンプを生成して、一つ又は複数のセンサへ提供するものである。
【００３２】
一実施形態において、第１センサ（例えば、タイム情報入力を受け取るとともに、タイム情報を有するセンサデータを出力するセンサ）が、ＴＸタイムスタンプ生成器とＲＸタイムスタンプ生成器とに接続され、ここで、センサは、ＴＸタイムスタンプ生成器からのＴＸタイムスタンプを受信するとともに、センサデータと、ＴＸタイムスタンプを含むメタデータとを、電気回路に伝送するものであり、ＲＸタイムスタンプ生成器は、電気回路がセンサデータを受信した時刻を示すＲＸタイムスタンプを生成して伝送のメタデータに付加するものである。
【００３３】
一実施形態において、第２センサ（例えば、タイム情報入力を受け取ることが可能であり、また、タイム情報入力を受け取らず、センサデータ出力のみを実行可能であるセンサ）が、ＴＸタイムスタンプ生成器ではなく、ＲＸタイムスタンプ生成器に接続されており、ここで、センサは、センサデータを伝送タイムスタンプ情報なしのままに電気回路に伝送するものであり、ＲＸタイムスタンプ生成器は、電気回路がセンサデータを受信した時刻を示すＲＸタイムスタンプを生成して伝送のメタデータに付加するものである。
【００３４】
一実施形態において、第３センサ（例えば、タイム情報入力を受けとるとともに、そのままホストシステムに出力するセンサ）が、ＲＸタイムスタンプ生成器に接続されず、ＴＸタイムスタンプ生成器とホストシステムとに接続されており、ここで、センサは、ＴＸタイムスタンプ生成器からのＴＸタイムスタンプを受信するものであり、第３センサは、センサデータと、電気回路によりセンサデータが受信された時刻を示すＴＸタイムスタンプを含むメタデータとを、そのままホストシステムに伝送する。
【００３５】
一実施形態において、同期ハブ装置は、ホストシステムと接続されて、ホストシステムの時刻へ同期される。他の実施形態において、同期ハブ装置は、ペリフェラルコンポーネントインターコネクト（ＰＣＩｅ）バスを介し、ホストシステムに接続される。
【００３６】
一実施形態において、ＴＸタイムスタンプ生成器に接続されるカメラセンサ用のメタデータは、カメラトリガタイムスタンプ情報を含む。一実施形態において、ＴＸタイムスタンプ又はＲＸタイムスタンプのタイムスタンプフォーマットは、ｍｓ：ｕｓ：ｎｓ：ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒ、又はｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒがある。他の実施形態において、センサユニットは、タイムスタンプをあるフォーマットから他のフォーマットへ変換するフォーマット変換ユニットを含む。
【００３７】
第３局面によれば、システムは、センサとリアルタイムクロック（ＲＴＣ）を含む複数のタイムソースから、複数の時刻を受信するようにし、ここで、センサは、ＡＤＶと通信可能であり、かつ、少なくともＧＰＳセンサを有し、ＲＴＣは、少なくとも中央処理装置リアルタイムクロック（ＣＰＵ−ＲＴＣ）を有する。システムは、各タイムソースの時刻に基づき、ＧＰＳセンサの時刻と、他のセンサ及びＲＴＣのそれぞれの時刻との間の差を表す差異ヒストグラムを作成する。システムは、差異ヒストグラムに応じてセンサ及びＲＴＣに対しランキングする。システムは、センサ又はＲＴＣのうち、ＧＰＳセンサに対する時間差の最も小さい１つをタイムソースとして選択する。システムは、選択されたタイムソースに基づきタイムスタンプを生成して、ＡＤＶのセンサユニットのセンサデータにタイムスタンプを付加する。
【００３８】
一実施形態において、差異ヒストグラムは、ＧＰＳセンサと他のセンサやＲＴＣのそれぞれとの平均時間差の分布を含む平均差異ヒストグラムを含む。一実施形態において、差異ヒストグラムが利用できない場合に、システムは、センサ又はＲＴＣのデフォルトランキングリストを取る。
【００３９】
一実施形態において、システムは、ＣＰＵ−ＲＴＣとＧＰＳセンサの時刻との時間差を含むＣＰＵ−ＲＴＣのタイム情報をログファイルに格納する。システムは、ＣＰＵ−ＲＴＣとＧＰＳセンサの時刻との時間差をモニタリングする。システムは、モニタリングした時間差に基づいてログファイルにおけるタイム情報を更新する。一実施形態において、タイムソースは、ＬＴＥ、ＷＩＦＩ（登録商標）、ＣＰＵ  ＲＴＣ、ＦＰＧＡ  ＲＴＣ、ＦＭ受信器、Ｖ２Ｘセンサ、又はＧＰＳセンサを含む。一実施形態において、システムは、差異ヒストグラムと、センサ及びＲＴＣのランキングとをログバッファに格納する。
【００４０】
第４局面によれば、システムは、ローカルタイムソースとＧＰＳセンサの時刻との間の時間差を確定する。システムは、差異の最大限と、平滑化タイムソース回復の場合の最大回復インクリメント或いは最大回復時間間隔を決定する。システムは、ローカルタイムソースとＧＰＳセンサの時刻との間の差異が最大限よりも小さくなると判定する。システムは、最大回復時間間隔以内で、ローカルタイムソースを、ＧＰＳセンサ時刻に収める（整列する）ように、平滑化タイムソース回復を計画する。システムは、回復されたタイムソースに基づいてタイムスタンプを生成して、ＡＤＶのセンサユニットのセンサデータに対しタイムスタンプを付加する。
【００４１】
一実施形態において、、システムは、ローカルタイムソースとＧＰＳセンサの時刻との差が最大限よりも大きくなると判定する。システムは、ローカルタイムソースに対し、ＧＰＳセンサの時刻を割り当てるように、タイムソースの突発的な回復を計画する。
【００４２】
システムは、回復インクリメントの最大限と異なる所定のタイムインクリメント或いは設定されたタイムインクリメントで、ローカルタイムソースを、ＧＰＳセンサ時刻に収めるように、平滑化タイムソース回復を計画する。一実施形態において、所定のタイムインクリメントは、１クロックサイクルの間隔である。一実施形態において、１クロックサイクルの間隔は、１０ナノ秒である。
【００４３】
一実施形態において、最大限、回復インクリメント又は最大回復時間間隔は、ユーザにより予め設定されている。一実施形態において、システムは、ＧＰＳセンサからの信号の回復を検出すると、ローカルタイムソースとＧＰＳセンサの時刻との時間差を確定する。
【００４４】
図１は、本発明の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図１に示すように、ネットワーク構成１００には、ネットワーク１０２を介して１つまたは複数のサーバ１０３〜１０４に通信可能に接続される自動運転車両１０１が備えられる。一台の自動運転車両が示されたが、複数の自動運転車両がネットワーク１０２を介して互いに接続され、及び／又はサーバ１０３〜１０４に接続されてもよい。ネットワーク１０２は、任意のタイプのネットワークであってもよく、例えば、有線又は無線のローカルエリアネットワーク（ＬＡＮ）、インターネットなどのワイドエリアネットワーク（ＷＡＮ）、セルラーネットワーク、衛星ネットワーク、又はこれらの組み合わせが挙げられる。サーバ１０３〜１０４は、任意のタイプのサーバまたはサーバクラスタであってもよく、例えば、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、またはそれらの組み合わせが挙げられる。サーバ１０３〜１０４は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図・関心地点（ＭＰＯＩ）サーバ又は位置サーバなどであってもよい。
【００４５】
自動運転車両とは、運転手からの入力が非常に少ない又はない場合に車両をナビゲートして環境を通過させる自動運転モードに配置可能な車両である。このような自動運転車両は、車両の走行環境に関する情報を検出するように配置される１つまたは複数のセンサを備えるセンサシステムを含んでもよい。前記車両及びその関連コントローラは、検出された情報を使用して前記環境を通過するようにナビゲートする。自動運転車両１０１は、手動モード、完全自動運転モード、又は部分自動運転モードで走行することができる。
【００４６】
一実施形態では、自動運転車両１０１には、感知・計画システム１１０、車両制御システム１１１、無線通信システム１１２、ユーザインターフェースシステム１１３、インフォティメントシステム１１４およびセンサシステム１１５が含まれるが、これらに限定されない。自動運転車両１０１には、通常の車両に備えられているいくつかの一般的な構成要素、例えばエンジン、車輪、ステアリングホイール、変速機などが更に備えられてもよい。前記構成要素は、車両制御システム１１１及び／又は感知・計画システム１１０により複数種の通信信号及び／又はコマンドを使用して制御可能である。当該複数種の通信信号及び／又はコマンドは、例えば、加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどである。
【００４７】
構成要素１１０〜１１５は、インターコネクタ、バス、ネットワーク又はこれらの組み合わせを介して互いに通信可能に接続されることができる。例えば、構成要素１１０〜１１５は、コントローラローカルエリアネットワーク（ＣＡＮ）バスを介して互いに通信可能に接続されることができる。ＣＡＮバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラおよびデバイスが相互に通信できるように設計された車両バス規格である。それは、もともと自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
【００４８】
ここでは図２を参照すると、一実施形態では、センサシステム１１５は、１つまたは複数のカメラ２１１、全地球測位システム（ＧＰＳ）ユニット２１２、慣性計測ユニット（ＩＭＵ）２１３、レーダユニット２１４並びに光検出・測距（ＬＩＤＡＲ）ユニット２１５を含むが、それらに限定されない。ＧＰＳユニット２１２は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を含んでもよい。ＩＭＵユニット２１３は、慣性加速度に基づいて自動運転車両の位置及び配向の変化を感知することができる。レーダユニット２１４は、無線信号を利用して自動運転車両のローカル環境内のオブジェクトを感知するシステムを表してもよい。いくつかの実施形態では、オブジェクトを感知することに加えて、レーダユニット２１４は、更にオブジェクトの速度及び／又は進行方向を感知することができる。ＬＩＤＡＲユニット２１５は、自動運転車両の所在環境内のオブジェクトをレーザで感知することができる。他のシステム構成要素に加えて、ＬＩＤＡＲユニット２１５は、更に１つまたは複数のレーザ光源、レーザスキャナ、１つまたは複数の検出器を含んでもよい。カメラ２１１は、自動運転車両の周囲環境の画像を取得するための１つ又は複数の装置を含んでもよい。カメラ２１１はスチルカメラ及び／又はビデオカメラであってもよい。カメラは、例えば、回転および／または傾斜のプラットフォームに取り付けることによって、機械的に移動されていてもよい。
【００４９】
センサシステム１１５には、他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ及びオーディオセンサ（例えば、マイクロホン）が含まれてもよい。オーディオセンサは、自動運転車両の周囲の環境から音声を取得するように配置されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪又はこれらの組み合わせの操舵角を感知するように配置されてもよい。スロットルセンサ及びブレーキセンサはそれぞれ車両のスロットル位置及びブレーキ位置を感知する。ある場合に、スロットルセンサ及びブレーキセンサは集積型スロットル／ブレーキセンサとして統合されてもよい。
【００５０】
一実施形態では、車両制御システム１１１はステアリングユニット２０１、スロットルユニット２０２（加速ユニットともいう）及びブレーキユニット２０３を含むが、これらに限定されない。ステアリングユニット２０１は車両の方向又は進行方向を調整するために用いられる。スロットルユニット２０２は電動機またはエンジンの速度を制御するために用いられ、電動機またはエンジンの速度に応じて、更に車両の速度および加速度を制御するために用いられる。ブレーキユニット２０３は、摩擦を与えることによって車両の車輪又はタイヤを減速させることで、車両を減速させる。なお、図２に示された構成要素は、ハードウェア、ソフトウェアまたはそれらの組み合わせで実現されることが可能である。
【００５１】
図１を再び参照して、無線通信システム１１２は、自動運転車両１０１と、装置、センサ、他の車両などのような外部システムとの通信を可能にする。例えば、無線通信システム１１２は、直接または通信ネットワークを介して、１つまたは複数の装置と無線通信することができ、例えば、ネットワーク１０２を介してサーバ１０３〜１０４と通信することができる。無線通信システム１１２は、如何なるセルラー通信ネットワーク又は無線ローカルエリアネットワーク（ＷＬＡＮ）、例えばＷｉＦｉ（登録商標）を使用して他の構成要素又はシステムと通信することができる。無線通信システム１１２は、例えば赤外線リンク、ブルートゥース（登録商標）などを使用して、装置（例えば、乗客のモバイルデバイス、表示装置、車両１０１内のスピーカ）と直接通信することができる。ユーザインターフェースシステム１１３は、車両１０１内に実現された周辺装置の部分（例えば、キーボード、タッチスクリーン表示装置、マイクロホン、及びスピーカなどを含む）であってもよい。
【００５２】
自動運転車両１０１の機能のうちの一部又は全部は、特に自動運転モードで動作する場合に、感知・計画システム１１０により制御されるか、又は管理されることができる。感知・計画システム１１０は、センサシステム１１５、制御システム１１１、無線通信システム１１２及び／又はユーザインターフェースシステム１１３から情報を受信し、受信された情報を処理し、出発地から目的地までのルート又は経路を計画した後に、計画及び制御情報に基づいて車両１０１を運転するために、必要なハードウェア（例えば、プロセッサ、メモリ、記憶デバイス）並びにソフトウェア（例えば、オペレーティングシステム、計画・ルーティングプログラム）を含む。あるいは、感知・計画システム１１０は車両制御システム１１１と一体に集積されてもよい。
【００５３】
例えば、乗客であるユーザは、例えばユーザインターフェースを介して旅程の出発地位置及び目的地を指定することができる。感知・計画システム１１０は旅程に関連するデータを取得する。例えば、感知・計画システム１１０は、ＭＰＯＩサーバから位置・ルート情報を取得することができる。前記ＭＰＯＩサーバは、サーバ１０３〜１０４の一部であってもよい。位置サーバは位置サービスを提供し、ＭＰＯＩサーバは地図サービス及び特定位置のＰＯＩを提供する。あるいは、このような位置及びＭＰＯＩ情報は、感知・計画システム１１０の永続性記憶装置にローカルキャッシュされてもよい。
【００５４】
自動運転車両１０１がルートに沿って移動している場合に、感知・計画システム１１０は交通情報システム又はサーバ（ＴＩＳ）からリアルタイム交通情報を取得することもできる。なお、サーバ１０３〜１０４は第三者機関により動作可能である。あるいは、サーバ１０３〜１０４の機能は、感知・計画システム１１０と一体に集積されてもよい。感知・計画システム１１０は、リアルタイム交通情報、ＭＰＯＩ情報及び位置情報、並びにセンサシステム１１５により検出又は感知されたリアルタイムローカル環境データ（例えば、障害物、オブジェクト、付近の車両）に基づいて、所定の目的地まで安全的且つ効率的に到達するために、最適なルートを計画し、且つ計画されたルートに従って例えば制御システム１１１を介して車両１０１を運転することができる。
【００５５】
サーバ１０３は、様々なクライアントに対してデータ解析サービスを実行するデータ解析システムであってもよい。一実施形態では、データ解析システム１０３は、データコレクタ１２１と、機械学習エンジン１２２とを含む。データコレクタ１２１は、様々な車両（自動運転車両又は人間の運転手によって運転される一般車両）から運転統計データ１２３を収集する。運転統計データ１２３は、異なるタイミングで発行された運転コマンド（例えば、スロットル、ブレーキ、ステアリングコマンド）及び車両のセンサにより捕捉された車両の応答（例えば、速度、加速度、減速度、方向）を指示する情報を含む。運転統計データ１２３は更に、異なるタイミングにおける運転環境を記述する情報、例えば、ルート（出発地位置及び目的地位置を含む）、ＭＰＯＩ、道路状況、天気状況などを含んでもよい。
【００５６】
機械学習エンジン１２２は、運転統計データ１２３に基づいて、様々な目的に応じて１セットのルール、アルゴリズム及び／又は予測モデル１２４を生成するか又は訓練する。一実施形態において、アルゴリズム１２４は、プロセスを感知、予測、決定、計画及び／又は制御するためのルール又はアルゴリズムを含む可能であり、詳細は、後述する。そして、自動運転のためにアルゴリズム１２４をＡＤＶにリアルタイムにアプロード可能である。
【００５７】
図３Ａ〜図３Ｂは、一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。システム３００は、図１の自動運転車両１０１の一部として実現されてもよく、感知・計画システム１１０、制御システム１１１及びセンサシステム１１５を含むが、これらに限定されない。図３Ａ〜図３Ｂに示すように、感知及び計画システム１１０は、測位モジュール３０１、感知モジュール３０２、予測モジュール３０３、決定モジュール３０４、計画モジュール３０５、制御モジュール３０６及びルーティングモジュール３０７を含むが、これらに限定されない。
【００５８】
モジュール３０１〜３０７のうちの一部または全部は、ソフトウェア、ハードウェアまたはそれらの組み合わせで実現されていてもよい。例えば、これらのモジュールは、永続性記憶装置３５２にインストールされ、メモリ３５１にロードされ、且つ１つまたは複数のプロセッサ（図示せず）により実行されてもよい。注意すべきなのは、これらのモジュールのうちの一部又は全部は、図２の車両制御システム１１１の一部又は全部のモジュールに通信可能に接続されるか、又はそれらと一体に統合されてもよい。モジュール３０１〜３０７のうちの一部は、集積モジュールとして一体に統合されてもよい。
【００５９】
測位モジュール３０１は、自動運転車両３００の現在位置を（例えば、ＧＰＳユニット２１２により）特定し、ユーザの旅程又はルートに関する如何なるデータを管理する。測位モジュール３０１（地図・ルートモジュールともいう）は、ユーザの旅程又はルートに関連する如何なるデータを管理する。ユーザは、例えばユーザインターフェースを経由してログインして旅程の出発地位置及び目的地を指定することができる。測位モジュール３０１は、自動運転車両３００における地図・ルート情報３１１のような他の構成要素と通信して旅程に関するデータを取得する。例えば、測位モジュール３０１は、位置サーバ並びに地図・ＰＯＩ（ＭＰＯＩ）サーバから位置及びルート情報を取得することができる。位置サーバは位置サービスを提供し、ＭＰＯＩサーバは地図サービス及び特定位置のＰＯＩを提供することにより、地図・ルート情報３１１の一部としてキャッシュされることができる。自動運転車両３００がルートに沿って移動する際に、測位モジュール３０１は交通情報システム又はサーバからリアルタイム交通情報を取得することもできる。
【００６０】
感知モジュール３０２は、センサシステム１１５により提供されたセンサデータと、測位モジュール３０１により取得された測位情報とに基づいて、周辺の環境への感知を決定する。感知情報は、一般の運転手が運転手により運転されている車両の周辺における感知すべきものを示すことができる。感知とは、例えばオブジェクトの形式で、車線配置、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道又は他の交通関連標識（例えば、止まれ標識、ゆずれ標識）などを含むことができる。車線構成は、例えば、車線の形状（例えば、直線または湾曲）、車線の幅、道路内の車線数、一方向または二方向車線、合流車線または分流車線、退出車線など、１つまたは複数の車線を記述する情報を含む。
【００６１】
感知モジュール３０２は、１つ又は複数のカメラにより取り込まれた画像を処理し解析して自動運転車両の環境内のオブジェクト及び／又は特徴を識別するように、コンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路の境界、他の車両、歩行者及び／又は障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステムは、環境地図を描画し、オブジェクトを追跡し、及びオブジェクトの速度などを推定することができる。感知モジュール３０２は、レーダ及び／又はＬＩＤＡＲのような他のセンサにより提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
【００６２】
各オブジェクトについて、予測モジュール３０３は、その場合にオブジェクトがどのように挙動するかを予測する。予測は地図及びルート情報３１１と運転／交通ルール３１２のセットを考慮した上でタイミングで運転環境が感知された感知データに応じて実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の運転環境が交差点を含む場合、予測モジュール３０３は、車両が直進するかまたは旋回するかを予測する。交差点に信号機がないと感知データにより示された場合に、予測モジュール３０３は、車両が交差点に入る前に完全に停車する必要があると予測可能である。車両が現在左折専用車線又は右折専用車線にあると感知データにより示された場合に、予測モジュール３０３は、車両がそれぞれ左折又は右折する可能性が高いと予測可能である。
【００６３】
オブジェクトごとに対して、決定モジュール３０４はオブジェクトをどのように処置するかを決定する。例えば、特定のオブジェクト（例えば、交差のルートにおける他の車両）およびオブジェクトを記述するメタデータ（例えば、速度、方向、操舵角）について、決定モジュール３０４は前記オブジェクトと遇うときに如何に対応するか（例えば、追い越し、道譲り、停止、追い抜き）を決定する。決定モジュール３０４は、運転／交通ルール３１２のような、永続性記憶装置３５２に記憶可能なルールセットに基づいて、このような決定を下すことができる。
【００６４】
ルーティングモジュール３０７は、出発地から目的地までの１つ以上のルート又は経路を提供するように構成される。（例えばユーザから受信した）出発地位置から目的地位置までの所定の行程について、ルーティングモジュール３０７はルート及び地図情報３１１を取得し、出発地位置から目的地位置までの全ての走行可能なルート又は経路を決定する。ルーティングモジュール３０７は、決定された出発地位置から目的地位置までの各ルートに対して地形図の形で基準線を生成することができる。基準線とは、他の車両、障害物又は交通状況などから他の干渉を受けていない理想的なルート又は経路を指す。つまり、道路に他の車両、歩行者または障害物がない場合、ＡＤＶは基準線に精確的にまたは密接的に従うべきである。そして、地形図は、決定モジュール３０４及び／又は計画モジュール３０５に提供される。決定モジュール３０４及び／又は計画モジュール３０５は、他のモジュールにより提供された他のデータ（例えば測位モジュール３０１からの交通状况、感知モジュール３０２により感知された運転環境及び予測モジュール３０３により予測された交通状况）に応じて、全ての走行可能なルートを検査して最適なルートのうちの一つを選択及び補正する。ＡＤＶを制御するための実際の経路又はルートは、その時点における特定の運転環境に応じて、ルーティングモジュール３０７によって提供された基準線に接近したか又は異なっていてもよい。
【００６５】
計画モジュール３０５は、感知されたオブジェクトのそれぞれに対する決定に基づいて、ルーティングモジュール３０７からの基準線を基準として、自動運転車両に経路又はルート並びに運転パラメータ（例えば、距離、速度及び／又は操舵角）を計画する。言い換えれば、特定のオブジェクトについて、決定モジュール３０４は当該オブジェクトに対して何をするかを決定し、計画モジュール３０５はどのようにするかを決定する。例えば、所定のオブジェクトについて、決定モジュール３０４は、前記オブジェクトを追い抜くかを決定することができ、計画モジュール３０５は前記オブジェクトを左側から追い抜くか又は右側から追い抜くかを決定することができる。計画及び制御データは、計画モジュール３０５により生成され、車両３００が次の移動周期（例えば、次のルート／経路セグメント）にはどのように移動するかを記述する情報を含む。例えば、計画及び制御データは、車両３００が３０マイル／時間（ｍｐｈ）の速度で１０メートル移動し、その後に２５ｍｐｈの速度で右側の車線に変更するように指示することができる。
【００６６】
制御モジュール３０６は、計画及び制御データに基づいて、計画及び制御データにより限定されたルートまたは経路に応じて適当なコマンド若しくは信号を車両制御システム１１１に送信することにより自動運転車両を制御および走行させる。前記計画及び制御データは、経路またはルートに沿って異なる時点で適切な車両構成または運転パラメータ（例えば、スロットル、ブレーキおよびステアリングコマンド）を使用して、車両をルートまたは経路の第１の点から第２の点まで走行させるのに十分な情報を含む。
【００６７】
一実施形態では、計画段階は、コマンドサイクルともいう複数の計画周期（例えば、時間間隔が１００ミリ秒（ｍｓ）ごと）で実行される。計画周期または運転周期のそれぞれについて、計画及び制御データに基づいて１つまたは複数の制御コマンドを発する。すなわち、１００ｍｓごとに、計画モジュール３０５は、次のルートセグメントまたは経路セグメント（例えば、目標位置およびＡＤＶが目標位置に到着するのに必要な時間が含まれる）を計画する。あるいは、計画モジュール３０５は更に具体的な速度、方向及び／又は操舵角などを計画することもできる。一実施形態では、計画モジュール３０５は、次の所定期間（例えば、５秒）のルート区間又は経路区間を計画する。各計画周期について、計画モジュール３０５は前の周期において計画された目標位置に基づいて現在の周期（例えば、次の５秒）における目標位置を計画する。そして、制御モジュール３０６は、現在の周期における計画及び制御データに基づいて一つ又は複数の制御コマンド（例えば、スロットル、ブレーキ、ステアリングの制御コマンド）を生成する。
【００６８】
なお、決定モジュール３０４及び計画モジュール３０５は、集積モジュールとして一体化されてもよい。決定モジュール３０４／計画モジュール３０５は、自動運転車両の走行経路を決定するために、ナビゲーションシステム又はナビゲーションシステムの機能を具備することができる。例えば、ナビゲーションシステムは、自動運転車両が下記の経路に沿って移動することを実現するための一連の速度及び進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線に基づく経路に沿って進行すると共に、感知された障害物を実質的に回避できる。前記経路は、自動運転車両を最終の目的地まで走行させる車線による経路に沿って進行させると共に、基本的に検知された障害物を回避する。目的地は、ユーザインターフェースシステム１１３を経由して行われたユーザ入力に基づいて設定されても良い。ナビゲーションシステムは自動運転車両が運転していると同時に動的に運転経路を更新することができる。
【００６９】
図４は、一実施形態に係る自動運転車両のシステムアーキテクチャを示すブロック図である。システムアーキテクチャ４００は、図３Ａ、図３Ｂに示す自動運転システムのシステムアーキテクチャを示しても良い。図４を参照すると、システムアーキテクチャ４００は、アプリケーション層４０１と、計画・制御（ＰＮＣ）層４０２と、感知層４０３と、ドライブ層４０４と、ファームウェア層４０５と、ハードウェア層４０６とを含み、これらに限定されない。アプリケーション層４０１は、例えば、ユーザインターフェースシステム１１３に関連する機能などのような、自動運転車両のユーザ又は乗客とやり取りするためのユーザインターフェース又はコンフィギュレーションアプリケーションを含んでも良い。ＰＮＣ層４０２は、少なくとも計画モジュール３０５と制御モジュール３０６とを含んでも良い。感知層４０３は、少なくとも、感知モジュール３０２の機能を有しても良い。一実施形態において、予測モジュール３０３及び／又は決定モジュール３０５の機能を有する付加層が備えられる。或いは、そのような機能は、ＰＮＣ層４０２及び／又は感知層４０３に含まれても良い。システムアーキテクチャ４００は、ドライブ層４０４と、ファームウェア層４０５と、ハードウェア層４０６とをさらに含む。ファームウェア層４０５は、少なくとも、センサシステム１１５の機能を表すことが可能であり、該機能は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）として実現可能である。ハードウェア層４０６は、例えば、制御システム１１１及び／又はセンサシステム１１５などのような自動運転車両のハードウェアを表しても良い。層４０１〜４０３は、装置ドライブ層４０４を介し、ファームウェア層４０５及びハードウェア層４−６と通信可能である。
【００７０】
図５は、本開示の一実施形態に係るセンサシステムの一例を示すブロック図である。図５を参照すると、センサシステム１１５は、複数のセンサ５１０と、ホストシステム１１０に接続されたセンサユニット５００を含む。ホストシステム１１０は、上記した計画・制御システムを示しており、前記計画・制御システムは、少なくとも、図３Ａと図３Ｂに示すような幾つかのモジュールを含んでも良い。センサユニット５００は、ＦＰＧＡ装置又はＡＳＩＣ（専用集積電気回路）装置として実施可能である。一実施形態において、センサユニット５００は、特に、一つ以上のセンサ処理モジュール５０１（単にセンサ処理モジュールとも呼ばれる）と、データ伝送モジュール５０２と、センサ制御モジュール／ロジック５０３とを含む。モジュール５０１〜５０３は、センサインタフェース５０４を通じセンサ５１０と通信可能であり、ホストインタフェースを通じホストシステム１１０と通信可能である。選択的に、データを、処理のために内部バッファ又は外部バッファ５０６によりバッファリングしてもよい。
【００７１】
一実施形態において、受信経路又は上流方向について、センサ処理モジュール５０１は、センサインタフェース５０４を介してセンサからセンサデータを受信し処理（例えば、フォーマット変換、エラー検出）するように構成されており、センサデータは、バッファ５０６に一時格納可能である。データ伝送モジュール５０２は、ホストインタフェース５０５と適合する通信プロトコルにより、処理済みデータをホストシステムへ伝送するように構成される。同様に、伝送経路又は下流方向について、データ伝送モジュール５０２は、ホストシステム１１０からのデータまたは指令を受信するように構成される。そして、センサ処理モジュール５０１により、データが、相応するセンサに適合するフォーマットとするように処理される。その後、処理されたデータは、センサ―へ伝送される。
【００７２】
一実施形態において、センサ制御モジュール／ロジック５０３は、ホストシステム（例えば、感知モジュール３０２）からホストインタフェース５０５より受信された指令に応答して、センサ５１０の特定の動作（例えば、センサデータ採集を起動するタイミング）を制御するように構成される。ホストシステム１１０は、任意の時点で、センサデータを使用して車両周囲の運転環境を感知し得るために、協調的に及び／又は同期的にセンサデータを収集するようにセンサ５１０を設定してもよい。
【００７３】
センサインタフェース５０４は、イーサネット（登録商標）、ＵＳＢ（ユニバーサルシリアルバス）、ＬＴＥ（長期間エボルーション）又はハニカム、ＷｉＦｉ、ＧＰＳ、カメラ、ＣＡＮ、シリアル（例えば、汎用非同期受信・送信機や、ＵＡＲＴ）のうちの一つ又は複数、ＳＩＭカード、及び他の汎用入力／出力（ＧＰＩＯ）インターフェースを含んでも良い。ホストインタフェース５０５は、例えば、ＰＣＩｅなどのような任意の高速インターフェース又は広帯域幅インターフェースを使用しても良い。センサ５１０には、例えば、カメラ、ＬＩＤＡＲ装置、ＲＡＤＡＲ装置、ＧＰＳ受信機、ＩＭＵ、超音波トランスデューサ、ＧＮＳＳ（全地球導航法衛星系統）受信機、ＬＴＥ或いはハニカムＳＩＭカード、車両センサ（例えば、スロットルセンサ、ブレーキセンサ、ステアリングセンサ）とシステムセンサ（例えば、温度センサ、湿度センサ、圧力センサ）などのような、自動運転車両に使用される様々なセンサが含まれてもよい。
【００７４】
例えば、カメラは、イーサネット又はＧＰＩＯインターフェースを介して接続されても良い。ＧＰＳセンサは、ＵＳＢ又は特定のＧＰＳインターフェースを介して接続されてもよい。車両センサは、ＣＡＮインターフェースを介して接続されてもよい。ＲＡＤＡＲセンサ又は超音波センサーは、ＧＰＩＯインターフェースを介して接続されてもよい。ＬＩＤＡＲ装置は、イーサネットインターフェースを介して接続されてもよい。外部ＳＩＭモジュールは、ＬＴＥインターフェースを介して接続されてもよい。同様に、内部ＳＩＭモジュールがセンサユニット５００のＳＩＭソケットに挿入されても良い。ＵＡＲＴというようなシリアルインターフェイスは、ディバッグのために、コンソールシステムに接続されても良い。
【００７５】
なお、センサ５１０は、様々なベンダや開発者により提供される任意のタイプなものとしても良い。センサ処理モジュール５０１は、異なるタイプのセンサとそれらのデータフォーマット及び通信プロトコルに応じた処理を行う。一実施形態によれば、各センサ５１０は、センサデータを処理し且つ処理されたセンサデータをホストシステム１１０及び対応するセンサの間に伝送するための特定のチャンネルに関連付けられる。各チャンネルは、対応するセンサデータ及びプロトコルを処理するように配置される又はプログラミングされた、特定のセンサ処理モジュール及び特定のデータ伝送モジュールを含む。
【００７６】
一実施形態において、センサユニット５００は、高精度時刻生成回路５１７を含む。図６Ａ〜図６Ｂに示すように、センサデータが何時センサ５１０により伝送されるか、又は何時キャプチャー／トリガされるか、及び／又は、センサデータが何時センサユニット５００に受信されるかについて追従するために、高精度時刻生成回路５１７は、各センサ５１０に使用される時刻及び又は／タイムスタンプを生成可能である。
【００７７】
これから、図６Ａを参照すると、高精度時刻生成回路５１７は、時刻同期ユニット５５０と、ＧＰＳセンサ５５１とローカルタイマー５５３を含んでも良い。時刻同期ユニット５５０は、ローカルタイマー５５３の時刻を、ＧＰＳセンサ５５１のＰＰＳ（Ｐｕｌｓｅ  Ｐｅｒ  Ｓｅｃｏｎｄ）信号から導出された時刻に同期させることができる。ＰＰＳは、ナノ秒程度の精度で時間計測を行うためにローカルタイマー５５３を整列することに用いられる。ＧＰＳセンサ５５１は、図２のセンサシステム１１５のＧＰＳユニット２１２の一部であっても良いし、高精度時刻生成回路５１７の内に集積された専用ＧＰＳセンサであってもよい。ローカルタイマー５５３は、センサユニット５００のために時刻を生成可能である。ローカルタイマー５５３は、任意のローカルＲＴＣ（例えば、ＣＰＵ  ＲＴＣや、ＦＰＧＡ  ＲＴＣ）又はセンサユニット５００からのタイマーであっても良く、或いは、ハニカムソースのような外部ソース（例えば、４Ｇ、長期間エボルーション（ＬＴＥ））、５Ｇ、ＷＩＦＩ信号源、ＦＭ受信機）から得られるタイマーであっても良い。
【００７８】
図６Ｂを参照すると、時刻同期ユニット５５０は、モニタモジュール５５５と、調整モジュール５５７と、ミリ秒生成器６０３と、マイクロ秒生成器６０５と、ナノセカンド６０７と、デマルチプレクサ６０９と、コンフィギュレーション６１１とを含んでも良い。ミリ秒生成器６０３、マイクロ秒生成器６０５、ナノセカンド６０７は、ローカルタイマー５５３の発振器に基づき、それぞれ、ミリ秒、マイクロ秒、ナノ秒の発振周期（例えば、異なった粒度の三つの発信器タイマー）を生成可能である。コンフィギュレーション６１１は、ミリ秒生成器６０３、マイクロ秒生成器６０５、ナノセカンド６０７の中のどれがモニタモジュール５５５へルーティングされるかについて選択するための選択信号を配置することができる。モニタモジュール５５５は、生成された発振周期をモニタリングして、当該周期をカウントすることが可能である。調整モジュール５５７は、ローカルタイマー５５３をＧＰＳセンサ５５１からのＰＰＳ信号と同期させるように、カウントを調整（或いはカウント表示を修正）することができる。一実施形態において、コンフィギュレーション６１１に用いられる選択信号は、センサユニット５００のユーザ或いはフィードバック回路におけるモニタ５５５／調整モジュール５５７によりプログラミング可能である。例えば、ローカルタイマー５５３が相対的に精確であると確定された場合、ユーザは、ミリ秒生成器を禁止とするように配置可能である。
【００７９】
ローカルタイマー５５３は、使用される水晶発振器のタイプによって、０．１〜１００ｐｐｍの精度を有することが可能であり、例えば、いずれのパルスも、０．１〜１００マイクロ秒だけずれる可能性があり、ＧＰＳセンサ５５１からのＰＰＳ信号は、０．１ｐｐｍ未満の精確度を有し、或いは、毎秒のパルス毎に、その偏差が０．１マイクロ秒未満となる。０．１ｐｐｍのＧＰＳ  ＰＰＳ信号について、ＧＰＳセンサ５５１からの受信ＰＰＳ信号は、連続パルスを毎秒９９９，９９９．９〜１，０００，０００．１マイクロ秒だけ維持可能であるが、典型的なものである１００ｐｐｍのローカルタイマー５５３は、連続パルスを毎秒９９９，９００〜１，０００，１００マイクロ秒だけ維持可能である。また、ローカルタイマー５５３は、使用される水晶発振器ＩＣの環境温度が変わることによって、ローカルタイマー５５３のパルス偏差の変動はリアルタイムに変化可能である。そこで、ローカルタイマー５５３をリアルタイムに調整し、又はローカルタイマー５５３をＧＰＳセンサ５５１と一致するように同期させることを目的とする。
【００８０】
ローカルタイマー５５３をＧＰＳセンサ５５１と同期させるために、一実施形態において、ＧＰＳセンサ５５１により、ＧＰＳパルス信号（ＰＰＳ）が受信され、上記ＧＰＳパルス信号は、例えば＜０．１ｐｐｍとの一定の精確度でスペースの中をブロードキャストする衛星伝送のＲＦ信号である。幾つかの実施形態において、ＧＰＳセンサ５５１により、第１ＧＰＳ衛星からＰＰＳ信号が受信され、第１ＧＰＳ衛星が範囲を超えた場合、第２ＧＰＳ衛星からのＰＰＳ信号が受信される。ＧＰＳ衛星には自らの精確な時間尺度が使用され、且つ、各衛星にはそれぞれに搭載された原子時計組が備えられるので、ＧＰＳ衛星からのＰＰＳ信号は、一つ又は複数の基準タイマーとして取り扱うことができる。しかしながら、注意すべきなのは、ローカルタイマー５５３が、いずれか一つのＧＰＳ  ＰＰＳ信号に一致するようにリアルタイムに調整されるため、二つ又は複数の異なるＧＰＳ  ＰＰＳ信号がある場合、何れの時間差も問題にならず、これは、ローカルタイマー５５３がリアルタイムに平滑的に同期可能であるからである。
【００８１】
モニタモジュール５５５は、ＧＰＳ  ＰＰＳ信号を受信すると、ｐｐｓ信号の時刻とローカルタイマー５５３の時刻との間の如何なるずれを特定可能であり、且つ、特定されたずれに基づいて第２ローカルリアルタイムクロック／タイマーを生成可能である例えば、ＰＰＳ信号に基づき、最初に、ＧＰＳ  ＮＭＥＡ（Ｎａｔｉｏｎａｌ  Ｍａｒｉｎｅ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ａｓｓｏｃｉａｔｉｏｎ）データ情報により、秒程度の精度の日時及びタイム情報（協定世界時間或いはＵＴＣフォーマット）が提供されてもよい。次に、一実施形態において、ミリ秒生成器６０３は、ローカルタイマー５５３を使用して１ミリ秒に接近した発振カウント（例えば、第１粒度）を生成することができる。分周回路を使用して１ミリ秒に接近した発振カウントを生成して、ローカルタイマー５５３の信号周波数を分割することが可能である。その後、モニタモジュール５５５は、ミリ秒生成器６０３から、１秒のＧＰＳ  ＰＰＳ信号の時間間隔に用いられる複数のサイクル（例えば、９９９９サイクル）を検出、又はカウントすることができ、例えば、ローカルタイマー５５３は、ＧＰＳ  ＰＰＳ信号を約１ミリ秒だけ遅延したものとする。ミリ秒生成器６０３がＧＰＳ  ＰＰＳ信号よりも遅延されるため、一実施形態において、調整モジュール５５７は、毎回１．００１ミリ秒だけ振動することを表すようにミリ秒生成器の出力を調整する。続いで、ミリ秒生成器６０３は、１秒毎に０．０００，１．００１，２．００２，．．．．．．，９９９．９９９及び１００１ミリ秒を含む１０００個の振動表示を生成する。これにより、ミリ秒生成器６０３からの第９９９サイクルは、９９９．９９９ミリ秒までカウントする。
【００８２】
続いで、マイクロ秒生成器６０５は、ローカルタイマー５５３を使用して１マイクロ秒に接近した発振カウントを生成することができる。第２分周回路を使用して１マイクロ秒に接近した発振カウント（例えば、第２粒度）を生成して、ローカルタイマー５５３の信号周波数を分割することが可能である。モニタモジュール５５５は、マイクロセグメンテーション６０５から、９９８サイクルをカウントするか、又は、１ミリ秒のＧＰＳ  ＰＰＳ時間間隔毎に、２マイクロ秒のずれをカウントすることが可能である。同様に、マイクロ秒生成器６０５がＧＰＳ  ＰＰＳ信号よりも遅れるため、調整モジュール５５７は、１回に１．００２マイクロ秒だけ振動することを表すようにマイクロ秒生成器の出力を調整する。マイクロ秒生成器６０３は、その後、１秒毎に０．０００，１．００２，２．００４，．．．．．．，９９９．９９６，１０００．９９８及び１００２マイクロ秒を含む１０００個の振動表示を生成する。これにより、第９９８サイクルは、９９９．９９６マイクロ秒までカウントする。
【００８３】
続いで、ナノ秒生成器６０７は、ローカルタイマー５５３を使用して、１ナノ秒に接近した発振カウントを生成することができる。第３分周回路を使用して１ナノ秒に接近した発振カウント（例えば、第３粒度）を生成して、ローカルタイマー５５３の信号周波数を分割することが可能である。モニタモジュール５５５は、ナノセグメンテーション６０７から、９９７サイクルをカウントするか、又は、１マイクロ秒のＧＰＳ  ＰＰＳ時間間隔毎に、３ナノ秒のずれをカウントすることが可能である。同様に、調整モジュール５５７は、１回に１．００３ナノ秒だけ振動することを表すようにナノ秒生成器の出力を調整する。ナノ秒生成器６０７は、その後、１マイクロ秒ごとに０．０００，１．００３，２．００６，．．．．．．，９９９．９９１，１０００．９９４，１００１．９９７及び１００３ナノ秒を含む１０００個の振動表示を生成する。これにより、ナノ秒生成器６０７からの第９９７サイクルは、９９９．９９１ミリ秒までカウントする。そうすると、任意のジェネレータの出力（例えば、表示）又はそれらの組み合わせは、高精度時刻をルタイムに生成することができる。その後、高精度時刻は、センサユニット５００のセンサに提供可能である。上記の例では、ナノ秒生成器が使用され、その生成される時刻は、１ナノ秒程度の精度を有する。なお、三つのジェネレータ（例えば、三つの粒度）を記述したが、任意の数のジェネレータ及び粒度で高精度時刻を生成することができる。
【００８４】
幾つかの実施形態において、コンフィギュレーション６１１は、デマルチプレクサ６０９を通じてジェネレータ６０３〜６０７のうちのいずれか一つを選択的に起用／禁止することが可能である。上記選択により、任意のジェネレータをオン／オフとすることができる。出力のサブセットしか必要とされない場合に、当該選択により、ジェネレータ（例えば、ナノ秒生成器のみ）の出力を選択することができる。他の実施形態において、モニタモジュール５５５は、異なる粒度のずれをバッファリングし（例えば、保存し）、且つ、ＧＰＳセンサ信号が失った場合に、ＧＰＳセンサ信号が取り直されるまで、第１カウント値、第２カウント値及び第３カウント値（例えば、振動ごとの値の表示）を保持する。
【００８５】
図７は、一実施形態に係る方法を示すフローチャートである。プロセス７００は、処理ロジックにより実行可能であり、前記処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。例えば、プロセス７００は、図５のセンサユニット５００により実行可能である。図７を参照して説明すると、ブロック７０１において、処理ロジックは、センサユニットにおいてＡＤＶのＧＰＳセンサからの全地球測位システム（ＧＰＳ）のパルス信号を受信し、ＧＰＳパルス信号は、衛星からＧＰＳセンサへ送信されたＲＦ信号であり、センサユニットは、ＡＤＶに装着された複数のセンサとホストシステムとに接続され、ホストシステムは、センサから取得されかつセンサユニットの処理モジュールにより処理されたセンサデータに基づいてＡＤＶ周辺の運転環境を感知する感知モジュールと、感知データに基づいて、ＡＤＶを自動運転するための経路を計画する計画・制御モジュール（ＰＮＣ）を含む。ブロック７０２において、処理ロジックは、センサユニットにおけるローカル発振器からの第１発振信号を受信する。ブロック７０３において、処理ロジックは、第１ローカル発振信号をＧＰＳ信号とリアルタイムに同期させるようにし、ＧＰＳパルス信号に基づき第１ローカル信号を修正することが含まれる。ブロック７０４において、処理ロジックは、同期された第１ローカル発振信号に基づき、センサユニットの操作に用いられるクロック信号として少なくとも一つのセンサへ提供される第２発振信号を生成する。
【００８６】
一実施形態において、ローカル発振器を同期させることは、ローカル発振器を使用して第１粒度を有する第１カウンタを生成し、ＧＰＳパルス信号の時間間隔を満たす第１粒度の振動の回数をカウントする第１カウンタをモニタリングすることであって、１カウントが第１粒度の振動回数を表すものであり、モニタリングされた第１粒度の第１カウンタによる第１カウント値を算出し、算出された第１カウント値に基づき、１カウンタが第１粒度の振動の一部を表すように第１カウンタを修正することで、第１粒度のローカル発振器を同期させることを含む。
【００８７】
一実施形態において、ローカル発振器を同期させることは、ローカル発振器を使用して第２粒度を有する第２カウンタを生成し、ＧＰＳパルス信号の時間間隔を満たす第２粒度の振動の回数をカウントする第２カウンタをモニタリングすることであって、１カウントが第２粒度の振動回数を表すものであり、モニタリングされた第２粒度の第２カウンタによる第２カウント値を算出し、算出された第２カウント値に基づき、１カウンタが第２粒度の振動の一部を表すように第２カウンタを修正することで、第１粒度のローカル発振器を同期させることを含む。
【００８８】
一実施形態において、ローカル発振器を同期させることは、ローカル発振器を使用して第３粒度を有する第３カウンタを生成し、ＧＰＳパルス信号の時間間隔を満たす第３粒度の振動の回数をカウントするように第３カウンタをモニタリングすることであって、１カウントが第３粒度の振動回数を表すものであり、モニタリングされた第３粒度の第３カウンタによる第２カウント値を算出し、算出された第３カウント値に基づき、１カウンタが第３粒度の振動の一部を表すように第３カウンタを修正することで、第３粒度のローカル発振器を同期させることを含む。他の実施形態において、第１粒度をミリ秒の粒度、第２粒度をマイクロ秒の粒度、第３粒度をナノ秒の粒度とする。
【００８９】
他の実施形態において、処理ロジックは、さらに、同期のための上記第１カウンタ、第２カウンタ、又は第３カウンタのうちのいずれか１つの生成を禁止させる。他の実施形態において、ＧＰＳセンサ信号が失った場合に、システムは、ＧＰＳセンサ信号が取り直されるまで、第１カウント値、第２カウント値及び第３カウント値を保持する。
【００９０】
図８は、一実施形態に係るセンサユニットの一例を示すブロック図である。図８は、タイムスタンプ同期ハブ装置５１９を追加する点以外、図５と同じである。タイムスタンプ同期ハブ装置５１９は、任意のセンサについて１つ又は複数のタイムスタンプ（例えば、出力ＲＸタイムスタンプ、伝送ＴＸタイムスタンプお及び／又はトリガタイムスタンプ）を生成し、或いは、単に、任意のセンサ５１０にタイム情報を提供することができる。タイムスタンプ同期ハブ装置５１９は、様々な方式で各センサへ接続可能であり、各センサが、ＴＸタイムスタンプ生成器や、ＲＸタイムスタップジェネレータと接続され、又は両者と接続可能である。センサデータの収集時刻を追跡するには、ＲＸタイムスタンプ／ＴＸタイムスタンプ及びトリガタイムスタンプの正確度は極めて重要である。
【００９１】
図９は、一実施形態に係るタイムスタンプ同期ハブ装置の一例を示すブロック図である。タイムスタンプ同期ハブ装置５１９は、時刻生成ユニット又はＧＰＳパルスユニット９０１と、タイムスタンプフォーマット変換ユニット９０３と、ＴＸタイムスタンプ生成器９１１〜９１３と、ＲＸタイムスタンプ生成器９２１〜９２３とを含む。タイムスタンプ同期ハブ装置５１９は、センサへＴＸタイムスタンプ／ＲＸタイムスタンプ及び／又はトリガタイムスタンプを提供するために、複数のセンサ（例えば、Ｓ１と、Ｓ２と、Ｓ３）と接続される。時刻生成ユニット又はＧＰＳパルスユニット９０１は、センサＳ１〜Ｓ３について、時刻を生成するか、又はＧＰＳパルスを提供することができる。タイムスタンプフォーマット変換ユニット９０３は、あるタイムスタンプフォーマットを他のタイムスタンプフォーマットに変換可能であり、例えば、タイムスタンプを、ｍｓ：ｕｓ：ｎｓ：ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒのフォーマットから、ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒのフォーマットに変換可能である。タイムスタンプフォーマットは、年、月、日、時、分、秒、ミリ秒、マイクロ秒及びナノ秒の任意の組み合わせ及び／又はランキングを含んでも良い。よって、タイムスタンプフォーマット変換ユニット９０３は、幾つかのセンサ（例えばセンサＳ１、Ｓ３）の時刻入力パラメータの要求に応じて、あるフォーマットから他のフォーマットへ変換可能である。
【００９２】
ＴＸタイムスタンプ生成器９１１〜０１３は、センサユニットにおけるセンサについて、伝送タイムスタンプを生成可能である。一実施形態において、ＴＸタイムスタンプ生成器は、単に、ＧＰＳ  ＰＰＳを一つ又は複数のセンサにルーティングして、センサ（例えば、Ｓ１）にＧＰＳ  ＰＰＳ信号を提供する。Ｓ１センサの例として、ＧＰＳタイム情報を入力として受信するウィリデン（Ｖｅｌｏｄｙｎｅ）のＬＩＤＡＲセンサが挙げられる。ＧＰＳ時刻入力情報は、ＬＩＤＡＲセンサをＧＰＳクロックと同期させるに使用される。センサが同期された後、ＬＩＤＡＲセンサは、奥行き画像をトリガ／キャプチャー可能であり、且つ、奥行き画像を有するトリガタイムスタンプを含む。第２タイムスタンプは、センサＳ１によりセンサデータがＳ１からセンサユニット５００へ伝送される時刻を表す伝送タイムスタンプであっても良い。ここで、トリガタイムスタンプ及び／又は伝送タイムスタンプは、メタデータとして、センサＳ１からの奥行き画像と共にセンサユニット５００へ送信可能である。
【００９３】
Ｓ１センサの別の例として、ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒフォーマット化のタイム情報を入力パラメータとして受信可能なカメラセンサが挙げられる。この場合では、ＴＸタイムスタンプ生成器がカメラセンサへ発送しようとするｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒフォーマットのＴＸタイムスタンプ（時刻生成ユニット９０１から提供される）を生成する。カメラセンサは、トリガタイムスタンプを有するＲＧＢ画像をトリガ／キャプチャー可能であり、前記トリガタイムスタンプは、ＴＸタイムスタンプから（例えば、その間の如何なる遅れを考慮する）導出可能である。センサデータが何時センサユニットまで伝送するかを表す第２タイムスタンプ（伝送タイムスタンプ）は、タイム情報メタデータとしてトリガタイムスタンプを含んでも良い。センサデータは、その後、タイム情報メタデータとともに、カメラセンサからセンサユニット５００に伝送可能である。Ｓ１センサの別の例として、ＲＡＤＡＲセンサと、ＳＯＮＡＲセンサと、時刻入力パラメタを受信する如何なるセンサとが挙げられる。
【００９４】
他の実施形態において、ＴＸタイムスタンプ生成器は、ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒフォーマットのタイムスタンプを生成し、生成されたタイムスタンプを一つ又は複数のセンサへ提供し、ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒタイムスタンプがＧＰＳ  ＰＰＳ信号に同期したものである。それらのセンサ（例えば、Ｓ３）は、センサデータとタイムスタンプデータ（変化していない）をそのままホストシステム１１０に伝送可能である。使用可能な通信チャンネルが無くなった場合や、センサデータは低い帯域幅のみが必要とされる場合に、ホストシステムとの間に、例えばイーサネット接続というようなの直接的な接続を確立することができる。Ｓ３センサの例として、イーサネットと、カメラセンサ及び／又はＲＡＤＡＲセンサが挙げられる。
【００９５】
ＲＸタイムスタンプ生成器９２１〜９２３は、センサユニット５００によりセンサデータが受信されると、受信タイムスタンプを生成し、生成された受信タイムスタンプを時刻メタデータとしてセンサデータに追加することができる。これにより、ホストシステム１１０に送信されたセンサデータは、センサユニット５００によりセンサデータが取得された時刻に関する使用可能な情報を有する。ＲＸタイムスタンプ生成器を使用するセンサの例として、Ｓ１とＳ２がある。Ｓ１とＳ２との区別は、Ｓ１が伝送（ＴＸ）タイムスタンプ情報及び／又はトリガタイムスタンプ情報をさらに提供するに対し、Ｓ２が受信（ＲＸ）タイムスタンプ情報のみを提供する点にある。Ｓ２センサの例として、ＬＩＤＡＲと、カメラセンサ及び／又はＲＡＤＡＲセンサが挙げられる。
【００９６】
別の実施形態において、タイムスタンプ同期ハブ装置５１９は、タイム情報（例えば、タイマー情報／タイムスタンプ３１３）をホストシステム１１０に提供するために、ホストシステム１１０に（例えば、ＰＣＩｅバスを介して）接続される。提供されるタイム情報により、ホストシステム１１０が、ホストシステム１１０のＲＴＣ（例えば、ＣＰＵ−ＲＴＣ）を、提供される時刻に同期させることができ、センサユニット５００とホストシステム１１０とは唯一のクローバルタイムを使用することができる。その後、ＡＤＶに用いられるホストシステム１１０の計画・制御モジュールは、センサユニット５００と同期されたホストシステム１１０のローカルＲＴＣを使用し、ＡＤＶを自動的に計画、制御することができる。
【００９７】
図１０は、一実施形態に係るセンサユニットの一例を示すブロック図である。図１０は、タイムソースランキングモジュール５２１を追加する点以外、図８と同じである。タイムソースランキングモジュール５２１は、ローカルＲＴＣ（例えば、図６Ａに示すローカルタイマー５５３）に使用されるタイムソースの適合性に従い、幾つかの使用可能なタイムソースをランキングすることができる。
【００９８】
図１１は、一実施形態に係るタイムソースランキング回路の一例を示すブロック図である。図１１を参照すると、タイムソースランキングモジュール５２１は、例えば、受信モジュール１１０１、ヒストグラム生成器１１０３、ヒストグラムランキングモジュール１１０５、ヒストグラム選択モジュール１１０７、タイムスタンプ生成器１１０９、ＣＰＵ−ＲＴＣモニタモジュール１１１１、レコーダ１１１３などのサブモジュールを有しても良い。タイムソース１１２０は、ＧＰＳセンサ、ＬＴＥ、ＣＰＵ  ＲＴＣ、ＷＩＦＩ、ＦＰＧＡ  ＲＴＣ、ＦＭ受信機とＶ２Ｘセンサを含んでも良い。
【００９９】
受信モジュール１１０１は、異なるタイムソース１１２０からタイムスタンプ或いはタイム情報を受信可能である。受信モジュール１１０３は、異なるタイムソース１１２０から受信されたタイムスタンプ或いはタイム情報に基づき、差異ヒストグラムを生成可能である。一実施形態において、差異ヒストグラムは、ある時間帯、例えば何時間か、或いは一日間において平均化された差異ヒストグラムとしても良い。一実施形態において、差異ヒストグラムは、ある時間帯おける平均的な差異ヒストグラムは、運行平均値としても良い。ヒストグラムランキングモジュール１１０５は、ＧＰＳセンサタイムソースを基準タイムソースとして使用し、タイムソースをランキングすることが可能であり、例えば、ＧＰＳセンサの時刻に対する時間差の小さい順で、タイムソースをランキングすることが可能である。ヒストグラフ選択モジュール１１０７は、ＧＰＳセンサのタイムソースに対する時間差が最も小さい時刻を有するタイムソースを選択することができる。タイムスタンプ生成器１１０９は、選択されたタイムソースに基づきタイム情報又はタイムスタンプを生成可能である。ＣＰＵ−ＲＴＣモニタモジュール１１１１は、ＣＰＵ−ＲＴＣ及びＧＰＳセンサの時刻とは異なる時刻をモニタリング可能である。レコーダ１１１３は、例えばＣＰＵ−ＲＴＣ及びＧＰＳセンサのデルタタイムや、時刻の時間差などのＣＰＵ−ＲＴＣのタイム情報をログファイルに格納することができる。
【０１００】
地下駐車場でＡＤＶの着火装置を着火する場合（例えば、ＧＰＳ信号がない場合）、ＡＤＶは、タイムソース単キングモジュール５２１を使用する。一実施形態において、センサユニット５００又はホストシステム１１０は、タイムスタンプ生成のために、あいかわらず相対的に精確な時刻を必要とするため、センサユニット５００又はＡＤＶに係る使用可能なタイムソース情報が欠ける場合に、ディフォルトのタイムソースランキイングリストを利用して好ましいタイムソースを特定可能である。ディフォルトのランキングリストの例として、例えば、ＧＰＳ、ＦＰＧＡ  ＲＴＣ、ＷＩＦＩ、ＬＴＥとＣＰＵ  ＲＴＣの順番で、各タイムソースをランキングすることができる。この場合、唯一の利用可能なタイムソースがＦＰＧＡ  ＲＴＣ和ＷＩＦＩからである場合、ＦＰＧＡ  ＲＴＣタイムソースが最高優先度を有し、且つ、ローカルタイムを確立するための好ましいタイムソースであり、例えば、図６Ａにおけるローカルタイマー５５３のローカル時間である。しかしながら、一旦、ＧＰＳセンサからの信号が利用可能であれば、一実施形態において、タイムソースランキングモジュール５２１は、ランキングシステムに基づき、利用可能な異なるタイムソースの正確度を確定する。
【０１０１】
一実施形態において、タイムソースランキングモジュール５２１は、ランキングシステムにより、多くの利用可能なタイムソースの絶対的な差値に基づきヒストグラフを生成する。何回か繰り返してヒストグラフ或いは差異ヒストグラフを生成してもよいし、それらのヒストグラフは所定の時間帯において平均化されてもよく、又は、ＧＰＳ信号のみが利用可能であればよい。差異ヒストグラフにより特定されたＧＰＳセンサに最も接近した（例えば、最小差異）タイムソースが、ＧＰＳセンサが利用できない場合（例えば、次回に地下駐車場で着火する場合）に使用される最も好ましいタイムソースとして選択される。一実施形態において、ＣＰＵ  ＲＴＣは、予めに好ましいタイムソースとして設けられておく。この場合、レコーダ１１１３は、ＣＰＵ  ＲＴの差異ヒストグラフ、デルタタイム或いは平均デルタタイムをログファイル或いはログバッファエリアへ書き入れる。差異ヒストグラフ、デルタタイム或いは平均デルタタイムは、ＣＰＵ  ＲＴＣ和ＧＰＳ時刻の時間差を記録しているものである。次回にＧＰＳ信号のない状況で着火する場合に、センサユニット５００は、デルタタイムに基づきＣＰＵ  ＲＴＣを調整し、調整されたＣＰＵ  ＲＴＣをローカルタイムとする。一実施形態において、ＧＰＳ信号が利用可能な場合、デルタタイムをＣＰＵ  ＲＴＣのすべての偏差を表すように更新する。
【０１０２】
図１２は、一実施形態に係るタイムソースをランキングする方法を示すフローチャートである。プロセス１２００は、処理ロジックにより実行可能であり、前記処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。例えば、プロセス１２００は、図１１のタイムソースランキングモジュール５２１により実行可能である。図１２を参照すると、ブロック１２０１において、処理ロジックは、センサとＲＴＣを含む複数のタイムソースから、複数の時刻を受信し、センサは、ＡＤＶと通信中にあり、且つ少なくともＧＰＳセンサを含み、ＲＴＣは、少なくとも中央処理装置リアルタイムクロック（ＣＰＵ−ＲＴＣ）を含む。なお、ＣＰＵ−ＲＴＣは、センサユニットにおけるＣＰＵのＲＴＣである。ＲＴＣ及びセンサタイムソースの例として、、ＧＰＳセンサ、ＬＴＥ、ＣＰＵ  ＲＴＣ、ＷＩＦＩ、ＦＰＧＡ  ＲＴＣ、ＦＭ受信機とＶ２Ｘセンサが挙げられる。ブロック１２０２において、処理ロジックは、各タイムソースの時刻に基づき、ＧＰＳセンサの時刻と他のセンサ及びＲＴＣそれぞれの時刻との間の差を表す差異ヒストグラムを作成する。ブロック１２０３において、処理ロジックは、差異ヒストグラムに基づきセンサとＲＴＣに対してランキングする。ブロック１２０４において、処理ロジックは、センサとＲＴＣのうちの、ＧＰＳセンサに対する時間差の最も小さいものから、タイムソースを選択する。ブロック１２０５において、処理ロジックは、選択されたタイムソースに基づいてタイムスタンプを生成して、ＡＤＶのセンサユニットのセンサデータにタイムスタンプを付加する。
【０１０３】
一実施形態において、差異ヒストグラムは、ＧＰＳセンサと他のセンサやＲＴＣとの平均時間差の分布を含む平均差異ヒストグラムを含む。一実施形態において、差異ヒストグラムは適用し得ない場合に、処理ロジックは、センサ又はＲＴＣのデフォルトランキングリストを取る。
【０１０４】
一実施形態において、処理ロジックは、さらに、ＣＰＵ−ＲＴＣとＧＰＳセンサの時刻との時間差を含むＣＰＵ−ＲＴＣのタイム情報をログファイル（ＣＰＵ−ＲＴＣとＧＰＳセンサの時刻との時間差を含む）に格納し、ＣＰＵ−ＲＴＣとＧＰＳセンサの時刻との時間差をモニタリングし、モニタリングされた時間差に基づき、ログファイルにおけるタイム情報を更新する。他の実施形態において、タイム情報は、バイナリデータとして格納されている。一実施形態において、タイム情報は、ログバッファに格納されている。一実施形態において、タイムソースは、ＬＴＥ、ＷＩＦＩ、ＣＰＵ  ＲＴＣ、ＦＰＧＡ  ＲＴＣ、ＦＭ受信器、Ｖ２Ｘセンサ、又はＧＰＳセンサを含む。一実施形態において、処理ロジックは、さらに、差異ヒストグラムと、センサ及びＲＴＣのランキングとをログバッファに記録する。
【０１０５】
図１３は、一実施形態に係るセンサユニットの一例を示すブロック図である。図１３は、タイムソース回復モジュール５２３を追加する点以外、図１０と同じである。ＧＰＳ信号が一定期間で利用できなくなってそれから利用可能になった場合、タイムソース回復モジュール５２３は、ローカルタイムソースを回復可能であり、例えば、ローカルタイムソースとＧＰＳタイムソースとの間の時間差が一定期間における累積又はクロックドリフトを回復可能である。
【０１０６】
図１４は、一実施形態に係るタイムソース回復回路の一例を示すブロック図である。図１４を参照すると、タイムソース回復モジュール５２３は、例えば、時間差確定モジュール１４０１、最大限度／ステップ幅確定モジュール１４０３、平滑化回復モジュール１４０５、突発回復モジュール１４０７及びＧＰＳセンサ回復検出器１４０９などのサブモジュールを含む。
【０１０７】
時間差確定モジュール１４０１は、ローカルタイムソースとＧＰＳタイムソースとの間の時間差又は時間差異を確定可能である。最大限度／ステップ幅確定モジュール１４０３は、タイム回復が急激ではなく、平滑的に実行されようとする場合の時間差異の最大限度を確定することができる。例えば、時間差異は、所定の最大限度より低くなると、平滑化ロジックに従いタイム回復を実行する。時間差異が最大限度よりも大きくなると、突発ロジックに従いタイム回復を実行し、例えば、すぐにローカルタイムをＧＰＳタイムに合わせるようにする。最大限度／ステップ幅確定モジュール１４０３は、さらに、平滑化ロジックに従い、平滑化タイムソース回復に使用される回復インクリメント／ステップ幅（或いは回復時間間隔）を確定することもできる。
【０１０８】
平滑化回復モジュール１４０５は、平滑化ロジックを含み、平滑化タイムソース回復を実行可能である。平滑化回復とは、ローカルタイムソースが所定のステップ幅で所定の期間内にＧＰＳの時刻に追及するか、又は合わせることを指す。突発回復モジュール１４０７は、突発タイムソース回復を実行可能であり、例えば、突然に、又は、すぐにタイムソースの時刻をＧＰＳの時刻と合わせることである。ＧＰＳ信号が利用できない状態から利用可能への変換の時及び／又はＧＰＳ信号が利用可能から利用できないへの変換の時、ＧＰＳセンサ回復検出器１４０９は、ＧＰＳ信号の変換を検出可能である。
【０１０９】
説明の便宜上、ＡＤＶが地上の道路にあり、且つ利用可能なＧＰＳ信号にアクセス可能である場合に、ローカルタイム（或いはローカルクロック）は、ＧＰＳ  ＰＰＳにより取得、及び同期することができる。ＡＤＶ、トンネルに入ると、ＧＰＳ信号が利用できなくなる可能性があり、且つ、ＣＰＵ  ＲＴＣのようなローカルＲＴＣ又はセンサは、タイムソースの機能を引き継ぐことができる。トンネルの範囲内において、ローカルタイムソースは不正確となる可能性があるため、クロックドリフトによって時間差異（例えば、ローカルタイムソースの時刻とＧＰＳタイムとの時間差）が生じる。ＡＤＶがトンネルを離れると、ＧＰＳセンサ回復検出器１４０９により、ＧＰＳ信号の変換が検出される。その後、時間差確定モジュール１４０１は、ローカルタイムソース（上述したタイムソース差異ヒストグラフに基づきローカルソースを選択可能である）とＧＰＳタイムの間の時間差異を確定可能である。最後に、最大限度／ステップ幅確定モジュール１４０３は、時間差と最大限度（最大限度がユーザにより予め設定可能である）とを比較し、時間差が最大限度よりも大きい場合、ローカルタイムソースに対し平滑化ロジックを適用することで、ローカルタイムソースをＧＰＳタイムに合わせるようにする。そうではない場合、ローカルタイムソースに対し、突発ロジックを適用することにより、ローカルタイムソースをＧＰＳタイムに合わせるようにする。
【０１１０】
図１５は、一実施形態に係る平滑化タイムソース回復の一例を示す図である。図１５を参照すると、時刻＝０において、ＧＰＳ信号が利用できない状態から利用可能への変換が検出された場合（例えば利用可能になった場合）、初期時間差が２００ナノ秒だけ遅れると確定される。初期時間差が、所定の最大限度（例えば、５００ｍｓ）と比較して、それが最大限度よりも小さくなると判定する。この場合、初期時間差が最大限度よりも小さくなることが判定されたため、平滑化ロジックが適用される。また、ローカルタイムソースがＧＰＳタイムより遅れているため、ローカルタイムソースは、ＧＰＳタイムに追及するように（予め設定されたステップインクリメント又は最大インクリメント間隔に基づき）逓増して増加する。一実施形態において、センサユニットのデジットクロックのデジットクロックサイクルの時間間隔に基づき、ステップ幅のインクリメントを予め定める。例えば、ステップ幅のインクリメントは、１０ｎｓとされてもよく、それは、センサユニットのクロックサイクルが１０ｎｓの時間間隔を有するからである。この場合、各デジットクロックサイクル（例えば、１０ｎｓ）について、ローカルタイムソースは、その時刻に対し、サイクル間隔及びインクリメントを加え、例えば、２０ｎｓを加える。２０個のデジットクロックサイクル（或いは２００ｎｓ）の後、ローカルタイムソースはＧＰＳタイムに合わせられることになる。なお、ステップ幅のインクリメントが１０ｎｓの５００ｍｓの最大限度は、５００ｍｓの最大タイム回復サイクルを提供する。ここで、平滑化回復時間間隔を早くするか、又は遅くするために、ステップ幅のインクリメントを調整することができる。
【０１１１】
初期時間差が５００ｍｓよりも大きいことが確定された場合、ローカルタイムソースは、いずれの平滑化ロジックも必要とせずに急激にＧＰＳに合わせられる。なお、タイムソースの調整は、センサユニットのローカルデジットクロックへの干渉とはならないが、センサユニットにおける一つ又は複数のセンサがＴＸ／ＲＸ及びトリガタイムスタンプのタイムスタンプクロックソースを提供するように調整する。５００ｍｓ及び１０ｎｓは、それぞれ最大限度及び回復インクリメント／ステップ幅として記述されたが、何れの時間間隔も最大限度及びタイムインクリメントとして使用することができる。
【０１１２】
図１６は、一実施形態に係るタイムソース回復の方法を示すフローチャートである。プロセス１６００は、処理ロジックにより実行可能であり、前記処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。例えば、プロセス１６００は、図１４のタイムソース回復モジュール５２３により実行可能である。図６を参照すると、ブロック１６０１において、処理ロジックは、ローカルタイムソースとＧＰＳセンサの時刻との間の時間差を確定する。ブロック１６０２において、処理ロジックは、差の最大限と、平滑化タイムソース回復のための最大回復インクリメント、或いは最大回復時間間隔を確定する。ブロック１６０３において、処理ロジックは、ローカルタイムソースとＧＰＳセンサの時刻との間の差異が最大限度よりも小さいことを判定する。ブロック１６０４において、処理ロジックは、最大回復時間間隔以内で、ローカルタイムソースを、ＧＰＳセンサの時刻に収めるように、平滑化タイムソース回復を計画する。ブロック１６０５において、処理ロジックは、回復されたタイムソースに基づいてタイムスタンプを生成して、ＡＤＶのセンサユニットのセンサデータにタイムスタンプを付加する。
【０１１３】
第４局面によれば、処理ロジックは、ローカルタイムソースとＧＰＳセンサの時刻との差が最大限よりも大きいことを判定する。処理ロジックは、その後、ローカルタイムソースに対し、ＧＰＳセンサの時刻として割り当てるように、タイムソースの突発的な回復を計画する。処理ロジックは、さらに、最大回復インクリメントと異なる所定のタイムインクリメントで、ローカルタイムソースを、ＧＰＳセンサの時刻に収めるように、平滑化タイムソース回復を計画する。
【０１１４】
一実施形態において、所定のタイムインクリメント（或いはステップ幅）は、センサユニットの１クロックサイクルの間隔である。一実施形態において、１クロックサイクルの間隔は、１０ナノ秒である。一実施形態において、最大限、回復インクリメント又は最大回復時間間隔は、ユーザにより予め設定されている。一実施形態において、システムは、ＧＰＳセンサからの信号の回復を検出すると、ローカルタイムソースとＧＰＳセンサの時刻との時間差を確定する。
【０１１５】
図１７は、本発明の一実施形態と組み合わせて使用可能なデータ処理システムを例示的に示すブロック図である。例えば、システム１５００は、図１の感知・計画システム１１０、又はサーバ１０３〜１０４のいずれかのような、上述した前記プロセス又は方法のいずれかを実行するデータ処理システムのいずれかを表すことができる。システム１５００は、いくつかの異なる構成要素を含んでもよい。これらの構成要素は、集積回路（ＩＣ）、集積回路の一部、ディスクリート型電子デバイス、又は回路基板（例えば、コンピュータシステムのマザーボード又はアドインカード）に適するその他のモジュールとして実現されることができ、又は、他の形態でコンピュータシステムのシャーシ内に組み込まれた構成要素として実現されることができる。
【０１１６】
なお、システム１５００は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、理解すべきなのは、いくつかの実施例において付加的構成要素が存在してもよく、また、その他の実施例において示された構成要素を異なる配置にすることが可能である。システム１５００は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤ、パーソナルデジタルアシスタント（ＰＤＡ）、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーター又はハブ、無線アクセスポイント（ＡＰ）又はリピーター、セット・トップ・ボックス、又はそれらの組み合わせを表すことができる。また、単一の機械又はシステムのみが示されたが、「機械」又は「システム」という用語は、本明細書で説明されるいずれか１つまたは複数の方法を実行するための、単独で又は共同で１つ（又は複数）の命令セットを実行する機械又はシステムの任意の組み合わせも含まれることを理解されたい。
【０１１７】
一実施形態では、システム１５００は、バスまたはインターコネクト１５１０を介して接続される、プロセッサ１５０１と、メモリ１５０３と、装置１５０５〜１５０８とを含む。プロセッサ１５０１は、単一のプロセッサコアまたは複数のプロセッサコアが含まれる単一のプロセッサまたは複数のプロセッサを表すことが可能である。プロセッサ１５０１は、マイクロプロセッサ、中央処理装置（ＣＰＵ）などのような、１つまたは複数の汎用プロセッサを表すことができる。より具体的には、プロセッサ１５０１は、複雑命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、またはその他の命令セットを実行するプロセッサ、または命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ１５０１は更に、例えば、特定用途向け集積回路（ＡＳＩＣ）、セルラー若しくはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、または命令を処理可能な任意の他のタイプのロジックのような、１つまたは複数の専用プロセッサであってもよい。
【０１１８】
プロセッサ１５０１は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニットおよび中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ（ＳｏＣ）として実装されてもよい。プロセッサ１５０１は、本明細書で説明される動作およびステップを実行するための命令を実行するように構成される。システム１５００は、更に任意選択グラフィックサブシステム１５０４と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム１５０４は、表示コントローラ、グラフィックプロセッサ、及び／又は表示装置を含むことができる。
【０１１９】
プロセッサ１５０１は、メモリ１５０３と通信することができ、メモリ１５０３は、一実施形態では、所定量のシステムメモリを提供するための複数のメモリ装置によって実現されることができる。メモリ１５０３は、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、又はその他のタイプの記憶装置のような、１つまたは複数の揮発性記憶（又はメモリ）装置を含むことができる。メモリ１５０３は、プロセッサ１５０１又はその他の任意の装置により実行される命令シーケンスを含む情報を記憶することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア（例えば、ベーシックインプット／アウトプットシステム又はＢＩＯＳ）、及び／又はアプリケーションの実行可能なコード及び／又はデータは、メモリ１５０３にロードされ、プロセッサ１５０１により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム（ＲＯＳ）、Ｍｉｃｒｏｓｏｆｔ（登録商標）社のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム、アップル社のＭａｃＯＳ（登録商標）／ｉＯＳ（登録商標）、Ｇｏｏｇｌｅ（登録商標）社のＡｎｄｒｏｉｄ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、またはその他のリアルタイム若しくは組込みオペレーティングシステムのような、任意のタイプのオペレーティングシステムであってもよい。
【０１２０】
システム１５００は、例えば、ネットワークインターフェース装置１５０５、任意選択入力装置１５０６、及びその他の任意選択ＩＯ装置１５０７を含む装置１５０５〜１５０８のようなＩＯ装置を更に含むことができる。ネットワークインターフェース装置１５０５は、無線送受信機及び／又はネットワークインターフェースカード（ＮＩＣ）を含むことができる。前記無線送受信機は、ＷｉＦｉ送受信機、赤外線送受信機、ブルートゥース（登録商標）送受信機、ＷｉＭａｘ送受信機、無線携帯電話送受信機、衛星送受信機（例えば、全地球測位システム（ＧＰＳ）送受信機）、またはその他の無線周波数（ＲＦ）送受信機、またはそれらの組み合わせであってもよい。ＮＩＣは、イーサネットカードであってもよい。
【０１２１】
入力装置１５０６は、マウス、タッチパネル、タッチスクリーン（表示装置１５０４と統合されてもよい）、ポインター装置（例えば、スタイラス）、及び／又はキーボード（例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード）を含むことができる。例えば、入力装置１５０６は、タッチスクリーンと接続するタッチスクリーンコントローラを含むことができる。タッチスクリーンおよびタッチスクリーンコントローラは、例えば、様々なタッチ感応技術（コンデンサ、抵抗、赤外線、および表面弾性波の技術を含むが、それらに限定されない）のいずれか、並びにその他の近接センサアレイ、または、タッチスクリーンと接触する１つまたは複数の点を確定するためのその他の素子を用いて、それらの接触、移動または中断を検出することができる。
【０１２２】
ＩＯ装置１５０７は、音声装置を含むことができる。音声装置は、例えば、音声認識、音声複製、デジタル記録、及び／又は電話機能のような音声サポートの機能を促進するために、スピーカ及び／又はマイクロホンを含んでもよい。その他のＩＯ装置１５０７は、ユニバーサルシリアルバス（ＵＳＢ）ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ（例えば、ＰＣＩ−ＰＣＩブリッジ）、センサ（例えば、加速度計のようなモーションセンサ、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなど）、又はそれらの組み合わせを更に含むことができる。装置１５０７は、更に結像処理サブシステム（例えば、カメラ）を含むことができ、前記結像処理サブシステムは、カメラ機能（例えば、写真及びビデオ断片を記録する）を促進するための光学センサを含むことができ、例えば、電荷結合素子（ＣＣＤ）又は相補型金属酸化物半導体（ＣＭＯＳ）光学センサが挙げられる。特定のセンサは、センサハブ（図示せず）を介してインターコネクト１５１０に接続されることができ、キーボード又はサーマルセンサのようなその他の装置はシステム１５００の具体的な配置又は設計により、組込みコントローラ（図示せず）により制御されることができる。
【０１２３】
データ、アプリケーション、１つまたは複数のオペレーティングシステムなどの情報の永続性記憶を提供するために、プロセッサ１５０１には、大容量記憶装置（図示せず）が接続されることもできる。様々な実施形態において、より薄くてより軽量なシステム設計を可能にしながら、システムの応答性を向上するために、このような大容量記憶装置は、ソリッドステートデバイス（ＳＳＤ）によって実現されることができる。しかしながら、その他の実施形態では、大容量記憶装置は、主にハードディスクドライブ（ＨＤＤ）を使用して実現されることができ、より小さい容量のＳＳＤ記憶装置をＳＳＤキャッシュとして機能することで、停電イベントの間にコンテキスト状態及び他のそのような情報の不揮発性記憶を可能にし、それによりシステム動作が再開するときに通電を速く実現することができる。また、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース（ＳＰＩ）を介してプロセッサ１５０１に接続されることができる。このようなフラッシュデバイスは、前記システムのＢＩＯＳ及びその他のファームウェアを含むシステムソフトウェアの不揮発性記憶のために機能することができる。
【０１２４】
記憶装置１５０８は、コンピュータアクセス可能な記憶媒体１５０９（機械可読記憶媒体又はコンピュータ可読媒体ともいう）を含むことができ、前記コンピュータアクセス可能な記憶媒体１５０９には、本明細書で記載されたいずれか１つまたは複数の方法又は機能を具現化する１つまたは複数の命令セット又はソフトウェア（例えば、モジュール、ユニット及び／又はロジック１５２８）が記憶されている。処理モジュール／ユニット／論理回路１５２８は、例えば、感知モジュール３０２、計画モジュール３０５、制御モジュール３０６、及び／又はセンサユニットモジュール５００のような、前記構成要素のいずれかを表すことができる。処理モジュール／ユニット／ロジック１５２８は、更に、データ処理システム１５００、メモリ１５０３、およびプロセッサ１５０１による実行中に、メモリ１５０３内および／またはプロセッサ１５０１内に完全的にまたは少なくとも部分的に存在してもよく、データ処理システム１５００、メモリ１５０３およびプロセッサ１５０１も機械アクセス可能な記憶媒体を構成する。処理モジュール／ユニット／ロジック１５２８は、更に、ネットワークを介してネットワークインターフェース装置１５０５を経由して送受信されてもよい。
【０１２５】
コンピュータ可読記憶媒体１５０９は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶するために用いることができる。コンピュータ可読記憶媒体１５０９は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記１つまたは複数の命令セットが記憶される単一の媒体または複数の媒体（例えば、集中型または分散型データベースおよび／または関連するキャッシュとサーバ）を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は、更に、命令セットを記憶または符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本発明のいずれか１つまたは複数の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体および磁気媒体、またはその他の任意の非一時的機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
【０１２６】
本明細書に記載の処理モジュール／ユニット／ロジック１５２８、構成要素及びその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はＡＳＩＣＳ、ＦＰＧＡ、ＤＳＰ又は類似の装置のようなハードウェア構成要素の機能に統合されてもよい。更に、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置におけるファームウェア又は機能性回路として実現されてもよい。更に、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置とソフトウェア構成要素の任意の組み合わせで実現されてもよい。
【０１２７】
なお、システム１５００は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャまたは方式を表すことを意図するものではなく、そのような詳細は、本発明の実施形態とは密接な関係がない。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、及び／又はその他のデータ処理システムも、本発明の実施形態と共に使用することができることを理解されたい。
【０１２８】
前記具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現で示された。これらのアルゴリズムの説明および表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの動作は、物理量の物理的処置が必要なものである。
【０１２９】
しかしながら、念頭に置くべきなのは、これらの用語および類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書の全体にわたって理解するべきのは、添付された特許請求の範囲に記載するもののような用語による説明とは、コンピュータシステム、又は類似の電子計算装置の動作及びプロセスを指し、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリにおける物理（電子）量として示されるデータを制御するとともに、前記データをコンピュータシステムメモリ又はレジスタ又はこのようなその他の情報記憶装置、伝送又は表示装置において同様に物理量として示される別のデータに変換する。
【０１３０】
本発明の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に記憶される。機械可読媒体は、機械（例えば、コンピュータ）により読み取り可能な形式で情報を記憶するための任意のメカニズムを含む。例えば、機械可読（例えば、コンピュータ可読）媒体は、機械（例えば、コンピュータ）可読記憶媒体（例えば、読み出し専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置）を含む。
【０１３１】
上述した図面において説明されたプロセス又は方法は、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（例えば、非一時的コンピュータ可読媒体に具現化されるもの）、又は両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセス又は方法は、以上で特定の順序に応じて説明されたが、前記動作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の動作は、順番ではなく並行して実行されてもよい。
【０１３２】
本発明の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきなのは、本明細書に記載の本発明の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
【０１３３】
前記明細書において、本発明の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本開示のより広い趣旨及び範囲を逸脱しない限り、本開示に対して様々な変更を行うことができる。それゆえに、本明細書および図面は、限定的な意味でなく、例示的な意味で理解されるべきである。
【図１】
2020030808.tif 000003
【図２】
2020030808.tif 000004
【図３Ａ】
2020030808.tif 000005
【図３Ｂ】
2020030808.tif 000006
【図４】
2020030808.tif 000007
【図５】
2020030808.tif 000008
【図６Ａ】
2020030808.tif 000009
【図６Ｂ】
2020030808.tif 000010
【図７】
2020030808.tif 000011
【図８】
2020030808.tif 000012
【図９】
2020030808.tif 000013
【図１０】
2020030808.tif 000014
【図１１】
2020030808.tif 000015
【図１２】
2020030808.tif 000016
【図１３】
2020030808.tif 000017
【図１４】
2020030808.tif 000018
【図１５】
2020030808.tif 000019
【図１６】
2020030808.tif 000020
【図１７】
2020030808.tif 000021
【手続補正書】
【提出日】令和1年8月21日(2019.8.21)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、主に自動運転車両を動作させることに関する。より具体的に、本開示の実施形態は、自動運転車両用のタイムソース回復システムに関する。
【背景技術】
【０００２】
自動運転モードで走行する（例えば、ドライバーレス）車両は、乗員、特に運転手をいくつかの運転に関する責務から解放させることができる。車両は、自動運転モードで走行する時に、車載センサを利用して様々な位置までナビゲートすることができるので、最小限のヒューマンマシンインタラクションや、乗客がいないなどの状況で車両を走行させることが可能となる。
【０００３】
走行計画及び制御は自動運転における肝心な操作である。走行計画及び制御の正確性と効率は、各々のセンサ入力に対しタイムスタンプを付ける時、各々のセンサ入力を同期させる時の車両時刻の正確性に大きく依存する。高精度水晶発振器を使用して時刻を生成することは一般的であるが、コストが高くなることに加え、異なるセンサ及び装置に適用しない恐れがある。また、センサ及び装置からの複数のクロックソースによる時刻は、ばらばらになり、精確ではない恐れがある。
【発明の概要】
【０００４】
本発明の一態様によれば、自動運転車両（ＡＤＶ）のタイムソースを回復する方法であって、全地球測位システム（ＧＰＳ）タイムソースが利用できない場合に、ローカルタイムソースから取得された時刻を使用してタイムスタンプを生成するステップと、前記ＧＰＳタイムソースが利用可能になったことの確定に応答して、ローカルソースから得られた第１時刻と前記ＧＰＳタイムソースから得られた第２時刻との時間差を確定するステップと、前記第１時刻と前記第２時刻との間の時間差が所定の最大限度よりも小さいことを判定するステップと、前記ローカルソースを所定の最大回復時間間隔の内にだんだん前記ＧＰＳタイムソースに収束させることで、タイムソースの平滑化回復を実行するステップと、回復されたタイムソースに基づきタイムスタンプを生成するステップであって、回復されたタイムソースに基づいて生成された前記タイムスタンプは、前記ＡＤＶにおける複数の部位に装着された複数のセンサから得られたセンサデータにタイムスタンプを付加するために使用され、前記センサデータは、ホストシステムが前記ＡＤＶ周辺の運転環境を感知し且つ感知されたデータに基づき前記ＡＤＶを自動運転させるために利用されるステップと、を含む方法を提供する。
【０００５】
本発明の他の一態様によれば、自動運転車両（ＡＤＶ）のタイムソースを回復する装置であって、ＧＰＳタイムソースが利用できない状態から利用可能になったことの確定に応答して、ローカルソースから得られた第１時刻と前記ＧＰＳタイムソースから得られた第２時刻との時間差を確定する時間差確定モジュールであって、前記ローカルタイムソースは前記ＧＰＳタイムソースが利用できない場合にタイムスタンプを生成するに使用される時間差確定モジュールと、前記時間差確定モジュールに接続される平滑化モジュールと、を含み、前記平滑化モジュールは、前記第１時刻と前記第２時刻との間の時間差が所定の最大限度よりも小さいことを判定し、前記ローカルソースを所定の最大回復時間間隔の内にだんだん前記ＧＰＳタイムソースに収束させることで、タイムソースの平滑化回復を実行し、ここで、収束したローカルタイムソースに基づき後続タイムスタンプを生成して、前記ＡＤＶにおける複数の部位に装着された複数のセンサから得られたセンサデータにタイムスタンプを付加し、且つ、前記センサデータは、ホストシステムが前記ＡＤＶ周辺の運転環境を感知し且つ感知されたデータに基づき前記ＡＤＶを自動運転させるために利用される、ように構成される、装置を提供する。
【０００６】
本発明の他の一態様によれば、自動運転車両（ＡＤＶ）のためのセンサユニットであって、前記ＡＤＶにおける複数の部位に装着された複数のセンサに接続されるべきセンサインタフェースと、前記センサインタフェースに接続されるタイムソース回復ロジック装置と、を含み、前記タイムソース回復ロジック装置は、ＧＰＳタイムソースが利用できない状態から利用可能な状態になったことの確定に応答して、ローカルソースから得られた第１時刻と前記ＧＰＳタイムソースから得られた第２時刻との時間差を確定する時間差確定モジュールであって、前記ローカルタイムソースは前記ＧＰＳタイムソースが利用できない場合にタイムスタンプを生成するに使用される、時間差確定モジュールと、前記時間差確定モジュールに接続される平滑化モジュールであって、前記第１時刻と前記第２時刻との間の時間差が所定の最大限度よりも小さいことを判定し、前記ローカルソースを所定の最大回復時間間隔の内にだんだん前記ＧＰＳタイムソースに収束させることで、タイムソースの平滑化回復を実行する、平滑化モジュールと、収束したローカルタイムソースに基づきタイムスタンプを生成して、前記ＡＤＶにおける複数の部位に装着された複数のセンサから得られたセンサデータにタイムスタンプを付加し、且つ、前記センサデータは、ホストシステムが前記ＡＤＶ周辺の運転環境を感知し且つ感知されたデータに基づき前記ＡＤＶを自動運転させるために利用されるように構成される、タイムスタンプ生成器と、を含むセンサユニットを提供する。
【０００７】
本発明の実施形態は、各図面において制限的ではなく例示的なものとして示され、図面における同一の符号は、類似の素子を示す。
【図面の簡単な説明】
【０００８】
【図１】一実施形態に係るネットワーク化したシステムを示すブロック図である。
【０００９】
【図２】一実施形態に係る自動運転車両の一例を示すブロック図である。
【００１０】
【図３Ａ】一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
【図３Ｂ】一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。
【００１１】
【図４】一実施形態に係る自動運転システムのアーキテクチャを示すブロック図である。
【００１２】
【図５】一実施形態に係るセンサユニットの一例を示すブロック図である。
【００１３】
【図６Ａ】一実施形態に係る高精度時刻生成ユニットの一例を示すブロック図である。
【００１４】
【図６Ｂ】一実施形態に係る三つのカウンタジェネレータを有する高精度時刻生成ユニットの一例を示す図である。
【００１５】
【図７】一実施形態に係る時刻生成方法を示すフローチャートである。
【００１６】
【図８】一実施形態に係るセンサユニットの一例を示すブロック図である。
【００１７】
【図９】一実施形態に係るタイムスタンプ同期ハブ装置の一例を示すブロック図である。
【００１８】
【図１０】一実施形態に係るセンサユニットの一例を示すブロック図である。
【００１９】
【図１１】一実施形態に係るタイムソースランキングモジュールの一例を示すブロック図である。
【００２０】
【図１２】一実施形態に係るタイムソースをランキングする方法を示すフローチャートである。
【００２１】
【図１３】一実施形態に係るセンサユニットの一例を示すブロック図である。
【００２２】
【図１４】一実施形態に係るタイムソース回復モジュールの一例を示すブロック図である。
【００２３】
【図１５】一実施形態に係る平滑化タイムソース回復の一例を示す図である。
【００２４】
【図１６】一実施形態に係るタイムソース回復の方法を示すフローチャートである。
【００２５】
【図１７】一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【００２６】
これから検討される詳細を参照しながら本発明の各々の実施形態および態様を記述し、添付図面に前記様々な実施形態を示す。以下の記述及び図面は、本発明を限定するものではなく、本発明を説明するためのものである。本発明の様々な実施形態が完全に把握できるように、特定の詳細を多く記述しているが、本発明の実施形態に対する簡潔的な説明を提供するように、周知又は従来技術の詳細について説明しない場合もある。
【００２７】
本明細書において、「一実施形態」又は「実施形態」とは、当該実施形態を参照しながら説明する特定の特徴、構造又は特性は、本発明の少なくとも一実施形態に含まれてもよいことを意味する。「一実施形態では」という語句は、本明細書全体において同一の実施形態を指すとは限らない。
【００２８】
リアルタイムクロック（ＲＴＣ）は時間に追従するコンピュータクロックである。ＲＣＴは、精確な時刻維持を必要とされるほとんどの電子機器に存在する。ほとんどのＲＴＣには石英結晶の水晶発振器を使用する。水晶発振器は、圧電部材である振動結晶の機械的共振に用いられる電子発振器集積回路（ＩＣ）である。水晶発振器は、所与の周波数を有する電子信号を発生可能である。ＲＴＣ  ＩＣは、１００ピーピーエム（ＰＰＭ）程度の精度を有し得るが、一般的に、精度が高い程、コストが高くなる。ＲＴＣ  ＩＣは、精度が異なれば、例えばカウント時間がやや異なるため、最初に正確に設定されていたとしても、時間が経つことにつけて、クロックドリフトによって異なることになる。
【００２９】
一局面によれば、時刻生成システムは、センサユニットにて自動運転車両（ＡＤＶ）のＧＰＳセンサからの全地球測位システム（ＧＰＳ）のパルス信号を受信しており、ここで、ＧＰＳパルス信号は、衛星からＧＰＳセンサに送信されたＲＦ信号であり、センサユニットは、ホストシステムとＡＤＶに装着された複数のセンサとに接続されており、ホストシステムは、センサから取得され且つセンサユニットの処理モジュールにより処理されたセンサデータに基づいてＡＤＶ周辺の運転環境を感知する感知モジュールと、感知データに基づいて、ＡＤＶを自動運転するための経路を計画する計画・制御モジュール（ＰＮＣ）とを含む。システムは、ローカル発振器からの第１ローカル発振信号を受信する。システムは、第１ローカル発振信号をＧＰＳ信号とリアルタイムに同期させるようにし、ここで、ＧＰＳパルス信号に基づき第１ローカル信号を修正することが含まれる。システムは、同期された第１ローカル発振信号に基づき、複数のセンサのうちの少なくとも一つへ時刻を提供する第２発振信号を生成する。
【００３０】
一実施形態において、システムは、前記ローカル発振器を使用して、第１粒度の第１カウンタを生成する。システムは、ＧＰＳパルス信号の時間間隔を満たす第１粒度の振動の回数をカウントする第１カウンタをモニタリングしており、ここで、１カウントが一回の第１粒度の振動を表す。システムは、モニタリングされる第１粒度の第１カウンタによる第１カウント値を算出する。システムは、算出された第１カウント値に基づき、１カウントが第１粒度の振動の一部を表すように第１カウンタを修正することで、第１粒度のローカル発振器を同期させる。
【００３１】
他の実施形態において、システムは、ローカル発振器を使用して第２粒度の第２カウンタを生成する。システムは、ＧＰＳパルス信号の時間間隔を満たす第２粒度の振動の回数をカウントする第２カウンタをモニタリングしており、ここで、１カウントが一回の第２粒度の振動を表す。システムは、モニタリングされる第２粒度の第２カウンタによる第２カウント値を算出する。システムは、算出された第２カウント値に基づき、１カウントが第２粒度の振動の一部を表すように第２カウンタを修正することで、第２粒度のローカル発振器を同期させる。
【００３２】
他の実施形態において、システムは、ローカル発振器を使用して第３粒度の第３カウンタを生成する。システムは、ＧＰＳパルス信号の時間間隔を満たす第３粒度の振動の回数をカウントする第３カウンタをモニタリングしており、ここで、１カウントが一回の第３粒度の振動を表す。システムは、モニタリングされる第３粒度の第３カウンタによる第３カウント値を算出する。システムは、算出された第３カウント値に基づき、１カウントが第３粒度の振動の一部を表すように第３カウンタを修正することで、第３粒度のローカル発振器を同期させる。
【００３３】
他の実施形態において、第１粒度をミリ秒の粒度、第２粒度をマイクロ秒の粒度、第３粒度をナノ秒の粒度とする。他の実施形態において、システムは、同期のための上記第１カウンタ、第２カウンタ、又は第３カウンタのうちのいずれか１つの生成を禁止する。他の実施形態において、ＧＰＳセンサ信号が失った場合、システムは、ＧＰＳセンサ信号が取り直されるまで、第１カウント値、第２カウント値及び第３カウント値を保持する。
【００３４】
第二局面によれば、ＡＤＶにセンサユニットを使用する。センサユニットは、ＡＤＶにおける複数の部位に装着された複数のセンサに接続されるセンサインタフェースを含む。センサユニットは、ホストシステムに接続されるホストインタフェースを含み、ホストシステムが、センサから取得されたセンサデータに基づいてＡＤＶ周辺の運転環境を感知し、ＡＤＶを自動運転するための経路を計画する。センサユニットは、センサインタフェースに接続される時刻同期ハブ装置を含む。時刻同期ハブ装置は、タイムソースに接続される一つ又は複数の伝送（ＴＸ）タイムスタンプ生成器を含み、ここで、ＴＸタイムスタンプ生成器は、タイムソースから取得された時刻に基づき、センサがセンサデータをホストインタフェースからホストシステムに送信する時刻を示すＴＸタイムスタンプを生成して、一つ又は複数のセンサへ提供する。時刻同期ハブ装置は、タイムソースに接続される一つ又は複数の伝送（ＲＸ）タイムスタンプ生成器を含み、ここで、ＲＸタイムスタンプ生成器は、タイムソースから取得された時刻に基づき、センサからセンサデータを受信した時刻を示すＲＸタイムスタンプを生成して、一つ又は複数のセンサへ提供するものである。
【００３５】
一実施形態において、第１センサ（例えば、タイム情報入力を受け取るとともに、タイム情報を有するセンサデータを出力するセンサ）が、ＴＸタイムスタンプ生成器とＲＸタイムスタンプ生成器とに接続され、ここで、センサは、ＴＸタイムスタンプ生成器からのＴＸタイムスタンプを受信するとともに、センサデータと、ＴＸタイムスタンプを含むメタデータとを、電気回路に伝送するものであり、ＲＸタイムスタンプ生成器は、電気回路がセンサデータを受信した時刻を示すＲＸタイムスタンプを生成して伝送のメタデータに付加するものである。
【００３６】
一実施形態において、第２センサ（例えば、タイム情報入力を受け取ることが可能であり、また、タイム情報入力を受け取らず、センサデータ出力のみを実行可能であるセンサ）が、ＴＸタイムスタンプ生成器ではなく、ＲＸタイムスタンプ生成器に接続されており、ここで、センサは、センサデータを伝送タイムスタンプ情報なしのままに電気回路に伝送するものであり、ＲＸタイムスタンプ生成器は、電気回路がセンサデータを受信した時刻を示すＲＸタイムスタンプを生成して伝送のメタデータに付加するものである。
【００３７】
一実施形態において、第３センサ（例えば、タイム情報入力を受けとるとともに、そのままホストシステムに出力するセンサ）が、ＲＸタイムスタンプ生成器に接続されず、ＴＸタイムスタンプ生成器とホストシステムとに接続されており、ここで、センサは、ＴＸタイムスタンプ生成器からのＴＸタイムスタンプを受信するものであり、第３センサは、センサデータと、電気回路によりセンサデータが受信された時刻を示すＴＸタイムスタンプを含むメタデータとを、そのままホストシステムに伝送する。
【００３８】
一実施形態において、同期ハブ装置は、ホストシステムと接続されて、ホストシステムの時刻へ同期される。他の実施形態において、同期ハブ装置は、ペリフェラルコンポーネントインターコネクト（ＰＣＩｅ）バスを介し、ホストシステムに接続される。
【００３９】
一実施形態において、ＴＸタイムスタンプ生成器に接続されるカメラセンサ用のメタデータは、カメラトリガタイムスタンプ情報を含む。一実施形態において、ＴＸタイムスタンプ又はＲＸタイムスタンプのタイムスタンプフォーマットは、ｍｓ：ｕｓ：ｎｓ：ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒ、又はｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒがある。他の実施形態において、センサユニットは、タイムスタンプをあるフォーマットから他のフォーマットへ変換するフォーマット変換ユニットを含む。
【００４０】
第３局面によれば、システムは、センサとリアルタイムクロック（ＲＴＣ）を含む複数のタイムソースから、複数の時刻を受信するようにし、ここで、センサは、ＡＤＶと通信可能であり、かつ、少なくともＧＰＳセンサを有し、ＲＴＣは、少なくとも中央処理装置リアルタイムクロック（ＣＰＵ−ＲＴＣ）を有する。システムは、各タイムソースの時刻に基づき、ＧＰＳセンサの時刻と、他のセンサ及びＲＴＣのそれぞれの時刻との間の差を表す差異ヒストグラムを作成する。システムは、差異ヒストグラムに応じてセンサ及びＲＴＣに対しランキングする。システムは、センサ又はＲＴＣのうち、ＧＰＳセンサに対する時間差の最も小さい１つをタイムソースとして選択する。システムは、選択されたタイムソースに基づきタイムスタンプを生成して、ＡＤＶのセンサユニットのセンサデータにタイムスタンプを付加する。
【００４１】
一実施形態において、差異ヒストグラムは、ＧＰＳセンサと他のセンサやＲＴＣのそれぞれとの平均時間差の分布を含む平均差異ヒストグラムを含む。一実施形態において、差異ヒストグラムが利用できない場合に、システムは、センサ又はＲＴＣのデフォルトランキングリストを取る。
【００４２】
一実施形態において、システムは、ＣＰＵ−ＲＴＣとＧＰＳセンサの時刻との時間差を含むＣＰＵ−ＲＴＣのタイム情報をログファイルに格納する。システムは、ＣＰＵ−ＲＴＣとＧＰＳセンサの時刻との時間差をモニタリングする。システムは、モニタリングした時間差に基づいてログファイルにおけるタイム情報を更新する。一実施形態において、タイムソースは、ＬＴＥ、ＷＩＦＩ（登録商標）、ＣＰＵ  ＲＴＣ、ＦＰＧＡ  ＲＴＣ、ＦＭ受信器、Ｖ２Ｘセンサ、又はＧＰＳセンサを含む。一実施形態において、システムは、差異ヒストグラムと、センサ及びＲＴＣのランキングとをログバッファに格納する。
【００４３】
第４局面によれば、システムは、ローカルタイムソースとＧＰＳセンサの時刻との間の時間差を確定する。システムは、差異の最大限と、平滑化タイムソース回復の場合の最大回復インクリメント或いは最大回復時間間隔を決定する。システムは、ローカルタイムソースとＧＰＳセンサの時刻との間の差異が最大限よりも小さくなると判定する。システムは、最大回復時間間隔以内で、ローカルタイムソースを、ＧＰＳセンサ時刻に収める（整列する）ように、平滑化タイムソース回復を計画する。システムは、回復されたタイムソースに基づいてタイムスタンプを生成して、ＡＤＶのセンサユニットのセンサデータに対しタイムスタンプを付加する。
【００４４】
一実施形態において、、システムは、ローカルタイムソースとＧＰＳセンサの時刻との差が最大限よりも大きくなると判定する。システムは、ローカルタイムソースに対し、ＧＰＳセンサの時刻を割り当てるように、タイムソースの突発的な回復を計画する。
【００４５】
システムは、回復インクリメントの最大限と異なる所定のタイムインクリメント或いは設定されたタイムインクリメントで、ローカルタイムソースを、ＧＰＳセンサ時刻に収めるように、平滑化タイムソース回復を計画する。一実施形態において、所定のタイムインクリメントは、１クロックサイクルの間隔である。一実施形態において、１クロックサイクルの間隔は、１０ナノ秒である。
【００４６】
一実施形態において、最大限、回復インクリメント又は最大回復時間間隔は、ユーザにより予め設定されている。一実施形態において、システムは、ＧＰＳセンサからの信号の回復を検出すると、ローカルタイムソースとＧＰＳセンサの時刻との時間差を確定する。
【００４７】
図１は、本発明の一実施形態に係る自動運転車両のネットワーク構成を示すブロック図である。図１に示すように、ネットワーク構成１００には、ネットワーク１０２を介して１つまたは複数のサーバ１０３〜１０４に通信可能に接続される自動運転車両１０１が備えられる。一台の自動運転車両が示されたが、複数の自動運転車両がネットワーク１０２を介して互いに接続され、及び／又はサーバ１０３〜１０４に接続されてもよい。ネットワーク１０２は、任意のタイプのネットワークであってもよく、例えば、有線又は無線のローカルエリアネットワーク（ＬＡＮ）、インターネットなどのワイドエリアネットワーク（ＷＡＮ）、セルラーネットワーク、衛星ネットワーク、又はこれらの組み合わせが挙げられる。サーバ１０３〜１０４は、任意のタイプのサーバまたはサーバクラスタであってもよく、例えば、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバ、またはそれらの組み合わせが挙げられる。サーバ１０３〜１０４は、データ解析サーバ、コンテンツサーバ、交通情報サーバ、地図・関心地点（ＭＰＯＩ）サーバ又は位置サーバなどであってもよい。
【００４８】
自動運転車両とは、運転手からの入力が非常に少ない又はない場合に車両をナビゲートして環境を通過させる自動運転モードに配置可能な車両である。このような自動運転車両は、車両の走行環境に関する情報を検出するように配置される１つまたは複数のセンサを備えるセンサシステムを含んでもよい。前記車両及びその関連コントローラは、検出された情報を使用して前記環境を通過するようにナビゲートする。自動運転車両１０１は、手動モード、完全自動運転モード、又は部分自動運転モードで走行することができる。
【００４９】
一実施形態では、自動運転車両１０１には、感知・計画システム１１０、車両制御システム１１１、無線通信システム１１２、ユーザインターフェースシステム１１３、インフォティメントシステム１１４およびセンサシステム１１５が含まれるが、これらに限定されない。自動運転車両１０１には、通常の車両に備えられているいくつかの一般的な構成要素、例えばエンジン、車輪、ステアリングホイール、変速機などが更に備えられてもよい。前記構成要素は、車両制御システム１１１及び／又は感知・計画システム１１０により複数種の通信信号及び／又はコマンドを使用して制御可能である。当該複数種の通信信号及び／又はコマンドは、例えば、加速信号又はコマンド、減速信号又はコマンド、ステアリング信号又はコマンド、ブレーキ信号又はコマンドなどである。
【００５０】
構成要素１１０〜１１５は、インターコネクタ、バス、ネットワーク又はこれらの組み合わせを介して互いに通信可能に接続されることができる。例えば、構成要素１１０〜１１５は、コントローラローカルエリアネットワーク（ＣＡＮ）バスを介して互いに通信可能に接続されることができる。ＣＡＮバスは、ホストコンピュータなしのアプリケーションでマイクロコントローラおよびデバイスが相互に通信できるように設計された車両バス規格である。それは、もともと自動車内の多重電気配線のために設計されたメッセージに基づくプロトコルであるが、他の多くの環境にも用いられる。
【００５１】
ここでは図２を参照すると、一実施形態では、センサシステム１１５は、１つまたは複数のカメラ２１１、全地球測位システム（ＧＰＳ）ユニット２１２、慣性計測ユニット（ＩＭＵ）２１３、レーダユニット２１４並びに光検出・測距（ＬＩＤＡＲ）ユニット２１５を含むが、それらに限定されない。ＧＰＳユニット２１２は、自動運転車両の位置に関する情報を提供するように動作可能な送受信機を含んでもよい。ＩＭＵユニット２１３は、慣性加速度に基づいて自動運転車両の位置及び配向の変化を感知することができる。レーダユニット２１４は、無線信号を利用して自動運転車両のローカル環境内のオブジェクトを感知するシステムを表してもよい。いくつかの実施形態では、オブジェクトを感知することに加えて、レーダユニット２１４は、更にオブジェクトの速度及び／又は進行方向を感知することができる。ＬＩＤＡＲユニット２１５は、自動運転車両の所在環境内のオブジェクトをレーザで感知することができる。他のシステム構成要素に加えて、ＬＩＤＡＲユニット２１５は、更に１つまたは複数のレーザ光源、レーザスキャナ、１つまたは複数の検出器を含んでもよい。カメラ２１１は、自動運転車両の周囲環境の画像を取得するための１つ又は複数の装置を含んでもよい。カメラ２１１はスチルカメラ及び／又はビデオカメラであってもよい。カメラは、例えば、回転および／または傾斜のプラットフォームに取り付けることによって、機械的に移動されていてもよい。
【００５２】
センサシステム１１５には、他のセンサ、例えばソナーセンサ、赤外線センサ、ステアリングセンサ、スロットルセンサ、ブレーキセンサ及びオーディオセンサ（例えば、マイクロホン）が含まれてもよい。オーディオセンサは、自動運転車両の周囲の環境から音声を取得するように配置されてもよい。ステアリングセンサは、ステアリングホイール、車両の車輪又はこれらの組み合わせの操舵角を感知するように配置されてもよい。スロットルセンサ及びブレーキセンサはそれぞれ車両のスロットル位置及びブレーキ位置を感知する。ある場合に、スロットルセンサ及びブレーキセンサは集積型スロットル／ブレーキセンサとして統合されてもよい。
【００５３】
一実施形態では、車両制御システム１１１はステアリングユニット２０１、スロットルユニット２０２（加速ユニットともいう）及びブレーキユニット２０３を含むが、これらに限定されない。ステアリングユニット２０１は車両の方向又は進行方向を調整するために用いられる。スロットルユニット２０２は電動機またはエンジンの速度を制御するために用いられ、電動機またはエンジンの速度に応じて、更に車両の速度および加速度を制御するために用いられる。ブレーキユニット２０３は、摩擦を与えることによって車両の車輪又はタイヤを減速させることで、車両を減速させる。なお、図２に示された構成要素は、ハードウェア、ソフトウェアまたはそれらの組み合わせで実現されることが可能である。
【００５４】
図１を再び参照して、無線通信システム１１２は、自動運転車両１０１と、装置、センサ、他の車両などのような外部システムとの通信を可能にする。例えば、無線通信システム１１２は、直接または通信ネットワークを介して、１つまたは複数の装置と無線通信することができ、例えば、ネットワーク１０２を介してサーバ１０３〜１０４と通信することができる。無線通信システム１１２は、如何なるセルラー通信ネットワーク又は無線ローカルエリアネットワーク（ＷＬＡＮ）、例えばＷｉＦｉ（登録商標）を使用して他の構成要素又はシステムと通信することができる。無線通信システム１１２は、例えば赤外線リンク、ブルートゥース（登録商標）などを使用して、装置（例えば、乗客のモバイルデバイス、表示装置、車両１０１内のスピーカ）と直接通信することができる。ユーザインターフェースシステム１１３は、車両１０１内に実現された周辺装置の部分（例えば、キーボード、タッチスクリーン表示装置、マイクロホン、及びスピーカなどを含む）であってもよい。
【００５５】
自動運転車両１０１の機能のうちの一部又は全部は、特に自動運転モードで動作する場合に、感知・計画システム１１０により制御されるか、又は管理されることができる。感知・計画システム１１０は、センサシステム１１５、制御システム１１１、無線通信システム１１２及び／又はユーザインターフェースシステム１１３から情報を受信し、受信された情報を処理し、出発地から目的地までのルート又は経路を計画した後に、計画及び制御情報に基づいて車両１０１を運転するために、必要なハードウェア（例えば、プロセッサ、メモリ、記憶デバイス）並びにソフトウェア（例えば、オペレーティングシステム、計画・ルーティングプログラム）を含む。あるいは、感知・計画システム１１０は車両制御システム１１１と一体に集積されてもよい。
【００５６】
例えば、乗客であるユーザは、例えばユーザインターフェースを介して旅程の出発地位置及び目的地を指定することができる。感知・計画システム１１０は旅程に関連するデータを取得する。例えば、感知・計画システム１１０は、ＭＰＯＩサーバから位置・ルート情報を取得することができる。前記ＭＰＯＩサーバは、サーバ１０３〜１０４の一部であってもよい。位置サーバは位置サービスを提供し、ＭＰＯＩサーバは地図サービス及び特定位置のＰＯＩを提供する。あるいは、このような位置及びＭＰＯＩ情報は、感知・計画システム１１０の永続性記憶装置にローカルキャッシュされてもよい。
【００５７】
自動運転車両１０１がルートに沿って移動している場合に、感知・計画システム１１０は交通情報システム又はサーバ（ＴＩＳ）からリアルタイム交通情報を取得することもできる。なお、サーバ１０３〜１０４は第三者機関により動作可能である。あるいは、サーバ１０３〜１０４の機能は、感知・計画システム１１０と一体に集積されてもよい。感知・計画システム１１０は、リアルタイム交通情報、ＭＰＯＩ情報及び位置情報、並びにセンサシステム１１５により検出又は感知されたリアルタイムローカル環境データ（例えば、障害物、オブジェクト、付近の車両）に基づいて、所定の目的地まで安全的且つ効率的に到達するために、最適なルートを計画し、且つ計画されたルートに従って例えば制御システム１１１を介して車両１０１を運転することができる。
【００５８】
サーバ１０３は、様々なクライアントに対してデータ解析サービスを実行するデータ解析システムであってもよい。一実施形態では、データ解析システム１０３は、データコレクタ１２１と、機械学習エンジン１２２とを含む。データコレクタ１２１は、様々な車両（自動運転車両又は人間の運転手によって運転される一般車両）から運転統計データ１２３を収集する。運転統計データ１２３は、異なるタイミングで発行された運転コマンド（例えば、スロットル、ブレーキ、ステアリングコマンド）及び車両のセンサにより捕捉された車両の応答（例えば、速度、加速度、減速度、方向）を指示する情報を含む。運転統計データ１２３は更に、異なるタイミングにおける運転環境を記述する情報、例えば、ルート（出発地位置及び目的地位置を含む）、ＭＰＯＩ、道路状況、天気状況などを含んでもよい。
【００５９】
機械学習エンジン１２２は、運転統計データ１２３に基づいて、様々な目的に応じて１セットのルール、アルゴリズム及び／又は予測モデル１２４を生成するか又は訓練する。一実施形態において、アルゴリズム１２４は、プロセスを感知、予測、決定、計画及び／又は制御するためのルール又はアルゴリズムを含む可能であり、詳細は、後述する。そして、自動運転のためにアルゴリズム１２４をＡＤＶにリアルタイムにアプロード可能である。
【００６０】
図３Ａ〜図３Ｂは、一実施形態に係る自動運転車両と共に使用される感知・計画システムの一例を示すブロック図である。システム３００は、図１の自動運転車両１０１の一部として実現されてもよく、感知・計画システム１１０、制御システム１１１及びセンサシステム１１５を含むが、これらに限定されない。図３Ａ〜図３Ｂに示すように、感知及び計画システム１１０は、測位モジュール３０１、感知モジュール３０２、予測モジュール３０３、決定モジュール３０４、計画モジュール３０５、制御モジュール３０６及びルーティングモジュール３０７を含むが、これらに限定されない。
【００６１】
モジュール３０１〜３０７のうちの一部または全部は、ソフトウェア、ハードウェアまたはそれらの組み合わせで実現されていてもよい。例えば、これらのモジュールは、永続性記憶装置３５２にインストールされ、メモリ３５１にロードされ、且つ１つまたは複数のプロセッサ（図示せず）により実行されてもよい。注意すべきなのは、これらのモジュールのうちの一部又は全部は、図２の車両制御システム１１１の一部又は全部のモジュールに通信可能に接続されるか、又はそれらと一体に統合されてもよい。モジュール３０１〜３０７のうちの一部は、集積モジュールとして一体に統合されてもよい。
【００６２】
測位モジュール３０１は、自動運転車両３００の現在位置を（例えば、ＧＰＳユニット２１２により）特定し、ユーザの旅程又はルートに関する如何なるデータを管理する。測位モジュール３０１（地図・ルートモジュールともいう）は、ユーザの旅程又はルートに関連する如何なるデータを管理する。ユーザは、例えばユーザインターフェースを経由してログインして旅程の出発地位置及び目的地を指定することができる。測位モジュール３０１は、自動運転車両３００における地図・ルート情報３１１のような他の構成要素と通信して旅程に関するデータを取得する。例えば、測位モジュール３０１は、位置サーバ並びに地図・ＰＯＩ（ＭＰＯＩ）サーバから位置及びルート情報を取得することができる。位置サーバは位置サービスを提供し、ＭＰＯＩサーバは地図サービス及び特定位置のＰＯＩを提供することにより、地図・ルート情報３１１の一部としてキャッシュされることができる。自動運転車両３００がルートに沿って移動する際に、測位モジュール３０１は交通情報システム又はサーバからリアルタイム交通情報を取得することもできる。
【００６３】
感知モジュール３０２は、センサシステム１１５により提供されたセンサデータと、測位モジュール３０１により取得された測位情報とに基づいて、周辺の環境への感知を決定する。感知情報は、一般の運転手が運転手により運転されている車両の周辺における感知すべきものを示すことができる。感知とは、例えばオブジェクトの形式で、車線配置、信号機信号、他の車両の相対位置、歩行者、建築物、横断歩道又は他の交通関連標識（例えば、止まれ標識、ゆずれ標識）などを含むことができる。車線構成は、例えば、車線の形状（例えば、直線または湾曲）、車線の幅、道路内の車線数、一方向または二方向車線、合流車線または分流車線、退出車線など、１つまたは複数の車線を記述する情報を含む。
【００６４】
感知モジュール３０２は、１つ又は複数のカメラにより取り込まれた画像を処理し解析して自動運転車両の環境内のオブジェクト及び／又は特徴を識別するように、コンピュータビジョンシステム又はコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路の境界、他の車両、歩行者及び／又は障害物などを含むことができる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオトラッキング及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態では、コンピュータビジョンシステムは、環境地図を描画し、オブジェクトを追跡し、及びオブジェクトの速度などを推定することができる。感知モジュール３０２は、レーダ及び／又はＬＩＤＡＲのような他のセンサにより提供される他のセンサデータに基づいてオブジェクトを検出することもできる。
【００６５】
各オブジェクトについて、予測モジュール３０３は、その場合にオブジェクトがどのように挙動するかを予測する。予測は地図及びルート情報３１１と運転／交通ルール３１２のセットを考慮した上でタイミングで運転環境が感知された感知データに応じて実行される。例えば、オブジェクトが反対方向の車両であり、かつ現在の運転環境が交差点を含む場合、予測モジュール３０３は、車両が直進するかまたは旋回するかを予測する。交差点に信号機がないと感知データにより示された場合に、予測モジュール３０３は、車両が交差点に入る前に完全に停車する必要があると予測可能である。車両が現在左折専用車線又は右折専用車線にあると感知データにより示された場合に、予測モジュール３０３は、車両がそれぞれ左折又は右折する可能性が高いと予測可能である。
【００６６】
オブジェクトごとに対して、決定モジュール３０４はオブジェクトをどのように処置するかを決定する。例えば、特定のオブジェクト（例えば、交差のルートにおける他の車両）およびオブジェクトを記述するメタデータ（例えば、速度、方向、操舵角）について、決定モジュール３０４は前記オブジェクトと遇うときに如何に対応するか（例えば、追い越し、道譲り、停止、追い抜き）を決定する。決定モジュール３０４は、運転／交通ルール３１２のような、永続性記憶装置３５２に記憶可能なルールセットに基づいて、このような決定を下すことができる。
【００６７】
ルーティングモジュール３０７は、出発地から目的地までの１つ以上のルート又は経路を提供するように構成される。（例えばユーザから受信した）出発地位置から目的地位置までの所定の行程について、ルーティングモジュール３０７はルート及び地図情報３１１を取得し、出発地位置から目的地位置までの全ての走行可能なルート又は経路を決定する。ルーティングモジュール３０７は、決定された出発地位置から目的地位置までの各ルートに対して地形図の形で基準線を生成することができる。基準線とは、他の車両、障害物又は交通状況などから他の干渉を受けていない理想的なルート又は経路を指す。つまり、道路に他の車両、歩行者または障害物がない場合、ＡＤＶは基準線に精確的にまたは密接的に従うべきである。そして、地形図は、決定モジュール３０４及び／又は計画モジュール３０５に提供される。決定モジュール３０４及び／又は計画モジュール３０５は、他のモジュールにより提供された他のデータ（例えば測位モジュール３０１からの交通状况、感知モジュール３０２により感知された運転環境及び予測モジュール３０３により予測された交通状况）に応じて、全ての走行可能なルートを検査して最適なルートのうちの一つを選択及び補正する。ＡＤＶを制御するための実際の経路又はルートは、その時点における特定の運転環境に応じて、ルーティングモジュール３０７によって提供された基準線に接近したか又は異なっていてもよい。
【００６８】
計画モジュール３０５は、感知されたオブジェクトのそれぞれに対する決定に基づいて、ルーティングモジュール３０７からの基準線を基準として、自動運転車両に経路又はルート並びに運転パラメータ（例えば、距離、速度及び／又は操舵角）を計画する。言い換えれば、特定のオブジェクトについて、決定モジュール３０４は当該オブジェクトに対して何をするかを決定し、計画モジュール３０５はどのようにするかを決定する。例えば、所定のオブジェクトについて、決定モジュール３０４は、前記オブジェクトを追い抜くかを決定することができ、計画モジュール３０５は前記オブジェクトを左側から追い抜くか又は右側から追い抜くかを決定することができる。計画及び制御データは、計画モジュール３０５により生成され、車両３００が次の移動周期（例えば、次のルート／経路セグメント）にはどのように移動するかを記述する情報を含む。例えば、計画及び制御データは、車両３００が３０マイル／時間（ｍｐｈ）の速度で１０メートル移動し、その後に２５ｍｐｈの速度で右側の車線に変更するように指示することができる。
【００６９】
制御モジュール３０６は、計画及び制御データに基づいて、計画及び制御データにより限定されたルートまたは経路に応じて適当なコマンド若しくは信号を車両制御システム１１１に送信することにより自動運転車両を制御および走行させる。前記計画及び制御データは、経路またはルートに沿って異なる時点で適切な車両構成または運転パラメータ（例えば、スロットル、ブレーキおよびステアリングコマンド）を使用して、車両をルートまたは経路の第１の点から第２の点まで走行させるのに十分な情報を含む。
【００７０】
一実施形態では、計画段階は、コマンドサイクルともいう複数の計画周期（例えば、時間間隔が１００ミリ秒（ｍｓ）ごと）で実行される。計画周期または運転周期のそれぞれについて、計画及び制御データに基づいて１つまたは複数の制御コマンドを発する。すなわち、１００ｍｓごとに、計画モジュール３０５は、次のルートセグメントまたは経路セグメント（例えば、目標位置およびＡＤＶが目標位置に到着するのに必要な時間が含まれる）を計画する。あるいは、計画モジュール３０５は更に具体的な速度、方向及び／又は操舵角などを計画することもできる。一実施形態では、計画モジュール３０５は、次の所定期間（例えば、５秒）のルート区間又は経路区間を計画する。各計画周期について、計画モジュール３０５は前の周期において計画された目標位置に基づいて現在の周期（例えば、次の５秒）における目標位置を計画する。そして、制御モジュール３０６は、現在の周期における計画及び制御データに基づいて一つ又は複数の制御コマンド（例えば、スロットル、ブレーキ、ステアリングの制御コマンド）を生成する。
【００７１】
なお、決定モジュール３０４及び計画モジュール３０５は、集積モジュールとして一体化されてもよい。決定モジュール３０４／計画モジュール３０５は、自動運転車両の走行経路を決定するために、ナビゲーションシステム又はナビゲーションシステムの機能を具備することができる。例えば、ナビゲーションシステムは、自動運転車両が下記の経路に沿って移動することを実現するための一連の速度及び進行方向を決定することができる。前記経路では、自動運転車両が最終的な目的地に通じる走行車線に基づく経路に沿って進行すると共に、感知された障害物を実質的に回避できる。前記経路は、自動運転車両を最終の目的地まで走行させる車線による経路に沿って進行させると共に、基本的に検知された障害物を回避する。目的地は、ユーザインターフェースシステム１１３を経由して行われたユーザ入力に基づいて設定されても良い。ナビゲーションシステムは自動運転車両が運転していると同時に動的に運転経路を更新することができる。
【００７２】
図４は、一実施形態に係る自動運転車両のシステムアーキテクチャを示すブロック図である。システムアーキテクチャ４００は、図３Ａ、図３Ｂに示す自動運転システムのシステムアーキテクチャを示しても良い。図４を参照すると、システムアーキテクチャ４００は、アプリケーション層４０１と、計画・制御（ＰＮＣ）層４０２と、感知層４０３と、ドライブ層４０４と、ファームウェア層４０５と、ハードウェア層４０６とを含み、これらに限定されない。アプリケーション層４０１は、例えば、ユーザインターフェースシステム１１３に関連する機能などのような、自動運転車両のユーザ又は乗客とやり取りするためのユーザインターフェース又はコンフィギュレーションアプリケーションを含んでも良い。ＰＮＣ層４０２は、少なくとも計画モジュール３０５と制御モジュール３０６とを含んでも良い。感知層４０３は、少なくとも、感知モジュール３０２の機能を有しても良い。一実施形態において、予測モジュール３０３及び／又は決定モジュール３０５の機能を有する付加層が備えられる。或いは、そのような機能は、ＰＮＣ層４０２及び／又は感知層４０３に含まれても良い。システムアーキテクチャ４００は、ドライブ層４０４と、ファームウェア層４０５と、ハードウェア層４０６とをさらに含む。ファームウェア層４０５は、少なくとも、センサシステム１１５の機能を表すことが可能であり、該機能は、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）として実現可能である。ハードウェア層４０６は、例えば、制御システム１１１及び／又はセンサシステム１１５などのような自動運転車両のハードウェアを表しても良い。層４０１〜４０３は、装置ドライブ層４０４を介し、ファームウェア層４０５及びハードウェア層４−６と通信可能である。
【００７３】
図５は、本開示の一実施形態に係るセンサシステムの一例を示すブロック図である。図５を参照すると、センサシステム１１５は、複数のセンサ５１０と、ホストシステム１１０に接続されたセンサユニット５００を含む。ホストシステム１１０は、上記した計画・制御システムを示しており、前記計画・制御システムは、少なくとも、図３Ａと図３Ｂに示すような幾つかのモジュールを含んでも良い。センサユニット５００は、ＦＰＧＡ装置又はＡＳＩＣ（専用集積電気回路）装置として実施可能である。一実施形態において、センサユニット５００は、特に、一つ以上のセンサ処理モジュール５０１（単にセンサ処理モジュールとも呼ばれる）と、データ伝送モジュール５０２と、センサ制御モジュール／ロジック５０３とを含む。モジュール５０１〜５０３は、センサインタフェース５０４を通じセンサ５１０と通信可能であり、ホストインタフェースを通じホストシステム１１０と通信可能である。選択的に、データを、処理のために内部バッファ又は外部バッファ５０６によりバッファリングしてもよい。
【００７４】
一実施形態において、受信経路又は上流方向について、センサ処理モジュール５０１は、センサインタフェース５０４を介してセンサからセンサデータを受信し処理（例えば、フォーマット変換、エラー検出）するように構成されており、センサデータは、バッファ５０６に一時格納可能である。データ伝送モジュール５０２は、ホストインタフェース５０５と適合する通信プロトコルにより、処理済みデータをホストシステムへ伝送するように構成される。同様に、伝送経路又は下流方向について、データ伝送モジュール５０２は、ホストシステム１１０からのデータまたは指令を受信するように構成される。そして、センサ処理モジュール５０１により、データが、相応するセンサに適合するフォーマットとするように処理される。その後、処理されたデータは、センサ―へ伝送される。
【００７５】
一実施形態において、センサ制御モジュール／ロジック５０３は、ホストシステム（例えば、感知モジュール３０２）からホストインタフェース５０５より受信された指令に応答して、センサ５１０の特定の動作（例えば、センサデータ採集を起動するタイミング）を制御するように構成される。ホストシステム１１０は、任意の時点で、センサデータを使用して車両周囲の運転環境を感知し得るために、協調的に及び／又は同期的にセンサデータを収集するようにセンサ５１０を設定してもよい。
【００７６】
センサインタフェース５０４は、イーサネット（登録商標）、ＵＳＢ（ユニバーサルシリアルバス）、ＬＴＥ（長期間エボルーション）又はハニカム、ＷｉＦｉ、ＧＰＳ、カメラ、ＣＡＮ、シリアル（例えば、汎用非同期受信・送信機や、ＵＡＲＴ）のうちの一つ又は複数、ＳＩＭカード、及び他の汎用入力／出力（ＧＰＩＯ）インターフェースを含んでも良い。ホストインタフェース５０５は、例えば、ＰＣＩｅなどのような任意の高速インターフェース又は広帯域幅インターフェースを使用しても良い。センサ５１０には、例えば、カメラ、ＬＩＤＡＲ装置、ＲＡＤＡＲ装置、ＧＰＳ受信機、ＩＭＵ、超音波トランスデューサ、ＧＮＳＳ（全地球導航法衛星系統）受信機、ＬＴＥ或いはハニカムＳＩＭカード、車両センサ（例えば、スロットルセンサ、ブレーキセンサ、ステアリングセンサ）とシステムセンサ（例えば、温度センサ、湿度センサ、圧力センサ）などのような、自動運転車両に使用される様々なセンサが含まれてもよい。
【００７７】
例えば、カメラは、イーサネット又はＧＰＩＯインターフェースを介して接続されても良い。ＧＰＳセンサは、ＵＳＢ又は特定のＧＰＳインターフェースを介して接続されてもよい。車両センサは、ＣＡＮインターフェースを介して接続されてもよい。ＲＡＤＡＲセンサ又は超音波センサーは、ＧＰＩＯインターフェースを介して接続されてもよい。ＬＩＤＡＲ装置は、イーサネットインターフェースを介して接続されてもよい。外部ＳＩＭモジュールは、ＬＴＥインターフェースを介して接続されてもよい。同様に、内部ＳＩＭモジュールがセンサユニット５００のＳＩＭソケットに挿入されても良い。ＵＡＲＴというようなシリアルインターフェイスは、ディバッグのために、コンソールシステムに接続されても良い。
【００７８】
なお、センサ５１０は、様々なベンダや開発者により提供される任意のタイプなものとしても良い。センサ処理モジュール５０１は、異なるタイプのセンサとそれらのデータフォーマット及び通信プロトコルに応じた処理を行う。一実施形態によれば、各センサ５１０は、センサデータを処理し且つ処理されたセンサデータをホストシステム１１０及び対応するセンサの間に伝送するための特定のチャンネルに関連付けられる。各チャンネルは、対応するセンサデータ及びプロトコルを処理するように配置される又はプログラミングされた、特定のセンサ処理モジュール及び特定のデータ伝送モジュールを含む。
【００７９】
一実施形態において、センサユニット５００は、高精度時刻生成回路５１７を含む。図６Ａ〜図６Ｂに示すように、センサデータが何時センサ５１０により伝送されるか、又は何時キャプチャー／トリガされるか、及び／又は、センサデータが何時センサユニット５００に受信されるかについて追従するために、高精度時刻生成回路５１７は、各センサ５１０に使用される時刻及び又は／タイムスタンプを生成可能である。
【００８０】
これから、図６Ａを参照すると、高精度時刻生成回路５１７は、時刻同期ユニット５５０と、ＧＰＳセンサ５５１とローカルタイマー５５３を含んでも良い。時刻同期ユニット５５０は、ローカルタイマー５５３の時刻を、ＧＰＳセンサ５５１のＰＰＳ（Ｐｕｌｓｅ  Ｐｅｒ  Ｓｅｃｏｎｄ）信号から導出された時刻に同期させることができる。ＰＰＳは、ナノ秒程度の精度で時間計測を行うためにローカルタイマー５５３を整列することに用いられる。ＧＰＳセンサ５５１は、図２のセンサシステム１１５のＧＰＳユニット２１２の一部であっても良いし、高精度時刻生成回路５１７の内に集積された専用ＧＰＳセンサであってもよい。ローカルタイマー５５３は、センサユニット５００のために時刻を生成可能である。ローカルタイマー５５３は、任意のローカルＲＴＣ（例えば、ＣＰＵ  ＲＴＣや、ＦＰＧＡ  ＲＴＣ）又はセンサユニット５００からのタイマーであっても良く、或いは、ハニカムソースのような外部ソース（例えば、４Ｇ、長期間エボルーション（ＬＴＥ））、５Ｇ、ＷＩＦＩ信号源、ＦＭ受信機）から得られるタイマーであっても良い。
【００８１】
図６Ｂを参照すると、時刻同期ユニット５５０は、モニタモジュール５５５と、調整モジュール５５７と、ミリ秒生成器６０３と、マイクロ秒生成器６０５と、ナノセカンド６０７と、デマルチプレクサ６０９と、コンフィギュレーション６１１とを含んでも良い。ミリ秒生成器６０３、マイクロ秒生成器６０５、ナノセカンド６０７は、ローカルタイマー５５３の発振器に基づき、それぞれ、ミリ秒、マイクロ秒、ナノ秒の発振周期（例えば、異なった粒度の三つの発信器タイマー）を生成可能である。コンフィギュレーション６１１は、ミリ秒生成器６０３、マイクロ秒生成器６０５、ナノセカンド６０７の中のどれがモニタモジュール５５５へルーティングされるかについて選択するための選択信号を配置することができる。モニタモジュール５５５は、生成された発振周期をモニタリングして、当該周期をカウントすることが可能である。調整モジュール５５７は、ローカルタイマー５５３をＧＰＳセンサ５５１からのＰＰＳ信号と同期させるように、カウントを調整（或いはカウント表示を修正）することができる。一実施形態において、コンフィギュレーション６１１に用いられる選択信号は、センサユニット５００のユーザ或いはフィードバック回路におけるモニタ５５５／調整モジュール５５７によりプログラミング可能である。例えば、ローカルタイマー５５３が相対的に精確であると確定された場合、ユーザは、ミリ秒生成器を禁止とするように配置可能である。
【００８２】
ローカルタイマー５５３は、使用される水晶発振器のタイプによって、０．１〜１００ｐｐｍの精度を有することが可能であり、例えば、いずれのパルスも、０．１〜１００マイクロ秒だけずれる可能性があり、ＧＰＳセンサ５５１からのＰＰＳ信号は、０．１ｐｐｍ未満の精確度を有し、或いは、毎秒のパルス毎に、その偏差が０．１マイクロ秒未満となる。０．１ｐｐｍのＧＰＳ  ＰＰＳ信号について、ＧＰＳセンサ５５１からの受信ＰＰＳ信号は、連続パルスを毎秒９９９，９９９．９〜１，０００，０００．１マイクロ秒だけ維持可能であるが、典型的なものである１００ｐｐｍのローカルタイマー５５３は、連続パルスを毎秒９９９，９００〜１，０００，１００マイクロ秒だけ維持可能である。また、ローカルタイマー５５３は、使用される水晶発振器ＩＣの環境温度が変わることによって、ローカルタイマー５５３のパルス偏差の変動はリアルタイムに変化可能である。そこで、ローカルタイマー５５３をリアルタイムに調整し、又はローカルタイマー５５３をＧＰＳセンサ５５１と一致するように同期させることを目的とする。
【００８３】
ローカルタイマー５５３をＧＰＳセンサ５５１と同期させるために、一実施形態において、ＧＰＳセンサ５５１により、ＧＰＳパルス信号（ＰＰＳ）が受信され、上記ＧＰＳパルス信号は、例えば＜０．１ｐｐｍとの一定の精確度でスペースの中をブロードキャストする衛星伝送のＲＦ信号である。幾つかの実施形態において、ＧＰＳセンサ５５１により、第１ＧＰＳ衛星からＰＰＳ信号が受信され、第１ＧＰＳ衛星が範囲を超えた場合、第２ＧＰＳ衛星からのＰＰＳ信号が受信される。ＧＰＳ衛星には自らの精確な時間尺度が使用され、且つ、各衛星にはそれぞれに搭載された原子時計組が備えられるので、ＧＰＳ衛星からのＰＰＳ信号は、一つ又は複数の基準タイマーとして取り扱うことができる。しかしながら、注意すべきなのは、ローカルタイマー５５３が、いずれか一つのＧＰＳ  ＰＰＳ信号に一致するようにリアルタイムに調整されるため、二つ又は複数の異なるＧＰＳ  ＰＰＳ信号がある場合、何れの時間差も問題にならず、これは、ローカルタイマー５５３がリアルタイムに平滑的に同期可能であるからである。
【００８４】
モニタモジュール５５５は、ＧＰＳ  ＰＰＳ信号を受信すると、ｐｐｓ信号の時刻とローカルタイマー５５３の時刻との間の如何なるずれを特定可能であり、且つ、特定されたずれに基づいて第２ローカルリアルタイムクロック／タイマーを生成可能である例えば、ＰＰＳ信号に基づき、最初に、ＧＰＳ  ＮＭＥＡ（Ｎａｔｉｏｎａｌ  Ｍａｒｉｎｅ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ａｓｓｏｃｉａｔｉｏｎ）データ情報により、秒程度の精度の日時及びタイム情報（協定世界時間或いはＵＴＣフォーマット）が提供されてもよい。次に、一実施形態において、ミリ秒生成器６０３は、ローカルタイマー５５３を使用して１ミリ秒に接近した発振カウント（例えば、第１粒度）を生成することができる。分周回路を使用して１ミリ秒に接近した発振カウントを生成して、ローカルタイマー５５３の信号周波数を分割することが可能である。その後、モニタモジュール５５５は、ミリ秒生成器６０３から、１秒のＧＰＳ  ＰＰＳ信号の時間間隔に用いられる複数のサイクル（例えば、９９９９サイクル）を検出、又はカウントすることができ、例えば、ローカルタイマー５５３は、ＧＰＳ  ＰＰＳ信号を約１ミリ秒だけ遅延したものとする。ミリ秒生成器６０３がＧＰＳ  ＰＰＳ信号よりも遅延されるため、一実施形態において、調整モジュール５５７は、毎回１．００１ミリ秒だけ振動することを表すようにミリ秒生成器の出力を調整する。続いで、ミリ秒生成器６０３は、１秒毎に０．０００，１．００１，２．００２，．．．．．．，９９９．９９９及び１００１ミリ秒を含む１０００個の振動表示を生成する。これにより、ミリ秒生成器６０３からの第９９９サイクルは、９９９．９９９ミリ秒までカウントする。
【００８５】
続いで、マイクロ秒生成器６０５は、ローカルタイマー５５３を使用して１マイクロ秒に接近した発振カウントを生成することができる。第２分周回路を使用して１マイクロ秒に接近した発振カウント（例えば、第２粒度）を生成して、ローカルタイマー５５３の信号周波数を分割することが可能である。モニタモジュール５５５は、マイクロセグメンテーション６０５から、９９８サイクルをカウントするか、又は、１ミリ秒のＧＰＳ  ＰＰＳ時間間隔毎に、２マイクロ秒のずれをカウントすることが可能である。同様に、マイクロ秒生成器６０５がＧＰＳ  ＰＰＳ信号よりも遅れるため、調整モジュール５５７は、１回に１．００２マイクロ秒だけ振動することを表すようにマイクロ秒生成器の出力を調整する。マイクロ秒生成器６０３は、その後、１秒毎に０．０００，１．００２，２．００４，．．．．．．，９９９．９９６，１０００．９９８及び１００２マイクロ秒を含む１０００個の振動表示を生成する。これにより、第９９８サイクルは、９９９．９９６マイクロ秒までカウントする。
【００８６】
続いで、ナノ秒生成器６０７は、ローカルタイマー５５３を使用して、１ナノ秒に接近した発振カウントを生成することができる。第３分周回路を使用して１ナノ秒に接近した発振カウント（例えば、第３粒度）を生成して、ローカルタイマー５５３の信号周波数を分割することが可能である。モニタモジュール５５５は、ナノセグメンテーション６０７から、９９７サイクルをカウントするか、又は、１マイクロ秒のＧＰＳ  ＰＰＳ時間間隔毎に、３ナノ秒のずれをカウントすることが可能である。同様に、調整モジュール５５７は、１回に１．００３ナノ秒だけ振動することを表すようにナノ秒生成器の出力を調整する。ナノ秒生成器６０７は、その後、１マイクロ秒ごとに０．０００，１．００３，２．００６，．．．．．．，９９９．９９１，１０００．９９４，１００１．９９７及び１００３ナノ秒を含む１０００個の振動表示を生成する。これにより、ナノ秒生成器６０７からの第９９７サイクルは、９９９．９９１ミリ秒までカウントする。そうすると、任意のジェネレータの出力（例えば、表示）又はそれらの組み合わせは、高精度時刻をルタイムに生成することができる。その後、高精度時刻は、センサユニット５００のセンサに提供可能である。上記の例では、ナノ秒生成器が使用され、その生成される時刻は、１ナノ秒程度の精度を有する。なお、三つのジェネレータ（例えば、三つの粒度）を記述したが、任意の数のジェネレータ及び粒度で高精度時刻を生成することができる。
【００８７】
幾つかの実施形態において、コンフィギュレーション６１１は、デマルチプレクサ６０９を通じてジェネレータ６０３〜６０７のうちのいずれか一つを選択的に起用／禁止することが可能である。上記選択により、任意のジェネレータをオン／オフとすることができる。出力のサブセットしか必要とされない場合に、当該選択により、ジェネレータ（例えば、ナノ秒生成器のみ）の出力を選択することができる。他の実施形態において、モニタモジュール５５５は、異なる粒度のずれをバッファリングし（例えば、保存し）、且つ、ＧＰＳセンサ信号が失った場合に、ＧＰＳセンサ信号が取り直されるまで、第１カウント値、第２カウント値及び第３カウント値（例えば、振動ごとの値の表示）を保持する。
【００８８】
図７は、一実施形態に係る方法を示すフローチャートである。プロセス７００は、処理ロジックにより実行可能であり、前記処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。例えば、プロセス７００は、図５のセンサユニット５００により実行可能である。図７を参照して説明すると、ブロック７０１において、処理ロジックは、センサユニットにおいてＡＤＶのＧＰＳセンサからの全地球測位システム（ＧＰＳ）のパルス信号を受信し、ＧＰＳパルス信号は、衛星からＧＰＳセンサへ送信されたＲＦ信号であり、センサユニットは、ＡＤＶに装着された複数のセンサとホストシステムとに接続され、ホストシステムは、センサから取得されかつセンサユニットの処理モジュールにより処理されたセンサデータに基づいてＡＤＶ周辺の運転環境を感知する感知モジュールと、感知データに基づいて、ＡＤＶを自動運転するための経路を計画する計画・制御モジュール（ＰＮＣ）を含む。ブロック７０２において、処理ロジックは、センサユニットにおけるローカル発振器からの第１発振信号を受信する。ブロック７０３において、処理ロジックは、第１ローカル発振信号をＧＰＳ信号とリアルタイムに同期させるようにし、ＧＰＳパルス信号に基づき第１ローカル信号を修正することが含まれる。ブロック７０４において、処理ロジックは、同期された第１ローカル発振信号に基づき、センサユニットの操作に用いられるクロック信号として少なくとも一つのセンサへ提供される第２発振信号を生成する。
【００８９】
一実施形態において、ローカル発振器を同期させることは、ローカル発振器を使用して第１粒度を有する第１カウンタを生成し、ＧＰＳパルス信号の時間間隔を満たす第１粒度の振動の回数をカウントする第１カウンタをモニタリングすることであって、１カウントが第１粒度の振動回数を表すものであり、モニタリングされた第１粒度の第１カウンタによる第１カウント値を算出し、算出された第１カウント値に基づき、１カウンタが第１粒度の振動の一部を表すように第１カウンタを修正することで、第１粒度のローカル発振器を同期させることを含む。
【００９０】
一実施形態において、ローカル発振器を同期させることは、ローカル発振器を使用して第２粒度を有する第２カウンタを生成し、ＧＰＳパルス信号の時間間隔を満たす第２粒度の振動の回数をカウントする第２カウンタをモニタリングすることであって、１カウントが第２粒度の振動回数を表すものであり、モニタリングされた第２粒度の第２カウンタによる第２カウント値を算出し、算出された第２カウント値に基づき、１カウンタが第２粒度の振動の一部を表すように第２カウンタを修正することで、第１粒度のローカル発振器を同期させることを含む。
【００９１】
一実施形態において、ローカル発振器を同期させることは、ローカル発振器を使用して第３粒度を有する第３カウンタを生成し、ＧＰＳパルス信号の時間間隔を満たす第３粒度の振動の回数をカウントするように第３カウンタをモニタリングすることであって、１カウントが第３粒度の振動回数を表すものであり、モニタリングされた第３粒度の第３カウンタによる第２カウント値を算出し、算出された第３カウント値に基づき、１カウンタが第３粒度の振動の一部を表すように第３カウンタを修正することで、第３粒度のローカル発振器を同期させることを含む。他の実施形態において、第１粒度をミリ秒の粒度、第２粒度をマイクロ秒の粒度、第３粒度をナノ秒の粒度とする。
【００９２】
他の実施形態において、処理ロジックは、さらに、同期のための上記第１カウンタ、第２カウンタ、又は第３カウンタのうちのいずれか１つの生成を禁止させる。他の実施形態において、ＧＰＳセンサ信号が失った場合に、システムは、ＧＰＳセンサ信号が取り直されるまで、第１カウント値、第２カウント値及び第３カウント値を保持する。
【００９３】
図８は、一実施形態に係るセンサユニットの一例を示すブロック図である。図８は、タイムスタンプ同期ハブ装置５１９を追加する点以外、図５と同じである。タイムスタンプ同期ハブ装置５１９は、任意のセンサについて１つ又は複数のタイムスタンプ（例えば、出力ＲＸタイムスタンプ、伝送ＴＸタイムスタンプお及び／又はトリガタイムスタンプ）を生成し、或いは、単に、任意のセンサ５１０にタイム情報を提供することができる。タイムスタンプ同期ハブ装置５１９は、様々な方式で各センサへ接続可能であり、各センサが、ＴＸタイムスタンプ生成器や、ＲＸタイムスタップジェネレータと接続され、又は両者と接続可能である。センサデータの収集時刻を追跡するには、ＲＸタイムスタンプ／ＴＸタイムスタンプ及びトリガタイムスタンプの正確度は極めて重要である。
【００９４】
図９は、一実施形態に係るタイムスタンプ同期ハブ装置の一例を示すブロック図である。タイムスタンプ同期ハブ装置５１９は、時刻生成ユニット又はＧＰＳパルスユニット９０１と、タイムスタンプフォーマット変換ユニット９０３と、ＴＸタイムスタンプ生成器９１１〜９１３と、ＲＸタイムスタンプ生成器９２１〜９２３とを含む。タイムスタンプ同期ハブ装置５１９は、センサへＴＸタイムスタンプ／ＲＸタイムスタンプ及び／又はトリガタイムスタンプを提供するために、複数のセンサ（例えば、Ｓ１と、Ｓ２と、Ｓ３）と接続される。時刻生成ユニット又はＧＰＳパルスユニット９０１は、センサＳ１〜Ｓ３について、時刻を生成するか、又はＧＰＳパルスを提供することができる。タイムスタンプフォーマット変換ユニット９０３は、あるタイムスタンプフォーマットを他のタイムスタンプフォーマットに変換可能であり、例えば、タイムスタンプを、ｍｓ：ｕｓ：ｎｓ：ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒのフォーマットから、ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒのフォーマットに変換可能である。タイムスタンプフォーマットは、年、月、日、時、分、秒、ミリ秒、マイクロ秒及びナノ秒の任意の組み合わせ及び／又はランキングを含んでも良い。よって、タイムスタンプフォーマット変換ユニット９０３は、幾つかのセンサ（例えばセンサＳ１、Ｓ３）の時刻入力パラメータの要求に応じて、あるフォーマットから他のフォーマットへ変換可能である。
【００９５】
ＴＸタイムスタンプ生成器９１１〜０１３は、センサユニットにおけるセンサについて、伝送タイムスタンプを生成可能である。一実施形態において、ＴＸタイムスタンプ生成器は、単に、ＧＰＳ  ＰＰＳを一つ又は複数のセンサにルーティングして、センサ（例えば、Ｓ１）にＧＰＳ  ＰＰＳ信号を提供する。Ｓ１センサの例として、ＧＰＳタイム情報を入力として受信するウィリデン（Ｖｅｌｏｄｙｎｅ）のＬＩＤＡＲセンサが挙げられる。ＧＰＳ時刻入力情報は、ＬＩＤＡＲセンサをＧＰＳクロックと同期させるに使用される。センサが同期された後、ＬＩＤＡＲセンサは、奥行き画像をトリガ／キャプチャー可能であり、且つ、奥行き画像を有するトリガタイムスタンプを含む。第２タイムスタンプは、センサＳ１によりセンサデータがＳ１からセンサユニット５００へ伝送される時刻を表す伝送タイムスタンプであっても良い。ここで、トリガタイムスタンプ及び／又は伝送タイムスタンプは、メタデータとして、センサＳ１からの奥行き画像と共にセンサユニット５００へ送信可能である。
【００９６】
Ｓ１センサの別の例として、ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒフォーマット化のタイム情報を入力パラメータとして受信可能なカメラセンサが挙げられる。この場合では、ＴＸタイムスタンプ生成器がカメラセンサへ発送しようとするｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒフォーマットのＴＸタイムスタンプ（時刻生成ユニット９０１から提供される）を生成する。カメラセンサは、トリガタイムスタンプを有するＲＧＢ画像をトリガ／キャプチャー可能であり、前記トリガタイムスタンプは、ＴＸタイムスタンプから（例えば、その間の如何なる遅れを考慮する）導出可能である。センサデータが何時センサユニットまで伝送するかを表す第２タイムスタンプ（伝送タイムスタンプ）は、タイム情報メタデータとしてトリガタイムスタンプを含んでも良い。センサデータは、その後、タイム情報メタデータとともに、カメラセンサからセンサユニット５００に伝送可能である。Ｓ１センサの別の例として、ＲＡＤＡＲセンサと、ＳＯＮＡＲセンサと、時刻入力パラメタを受信する如何なるセンサとが挙げられる。
【００９７】
他の実施形態において、ＴＸタイムスタンプ生成器は、ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒフォーマットのタイムスタンプを生成し、生成されたタイムスタンプを一つ又は複数のセンサへ提供し、ｍｍ：ｓｓ：ｈｈ：ｍｏｎｔｈ：ｄａｙ：ｙｅａｒタイムスタンプがＧＰＳ  ＰＰＳ信号に同期したものである。それらのセンサ（例えば、Ｓ３）は、センサデータとタイムスタンプデータ（変化していない）をそのままホストシステム１１０に伝送可能である。使用可能な通信チャンネルが無くなった場合や、センサデータは低い帯域幅のみが必要とされる場合に、ホストシステムとの間に、例えばイーサネット接続というようなの直接的な接続を確立することができる。Ｓ３センサの例として、イーサネットと、カメラセンサ及び／又はＲＡＤＡＲセンサが挙げられる。
【００９８】
ＲＸタイムスタンプ生成器９２１〜９２３は、センサユニット５００によりセンサデータが受信されると、受信タイムスタンプを生成し、生成された受信タイムスタンプを時刻メタデータとしてセンサデータに追加することができる。これにより、ホストシステム１１０に送信されたセンサデータは、センサユニット５００によりセンサデータが取得された時刻に関する使用可能な情報を有する。ＲＸタイムスタンプ生成器を使用するセンサの例として、Ｓ１とＳ２がある。Ｓ１とＳ２との区別は、Ｓ１が伝送（ＴＸ）タイムスタンプ情報及び／又はトリガタイムスタンプ情報をさらに提供するに対し、Ｓ２が受信（ＲＸ）タイムスタンプ情報のみを提供する点にある。Ｓ２センサの例として、ＬＩＤＡＲと、カメラセンサ及び／又はＲＡＤＡＲセンサが挙げられる。
【００９９】
別の実施形態において、タイムスタンプ同期ハブ装置５１９は、タイム情報（例えば、タイマー情報／タイムスタンプ３１３）をホストシステム１１０に提供するために、ホストシステム１１０に（例えば、ＰＣＩｅバスを介して）接続される。提供されるタイム情報により、ホストシステム１１０が、ホストシステム１１０のＲＴＣ（例えば、ＣＰＵ−ＲＴＣ）を、提供される時刻に同期させることができ、センサユニット５００とホストシステム１１０とは唯一のクローバルタイムを使用することができる。その後、ＡＤＶに用いられるホストシステム１１０の計画・制御モジュールは、センサユニット５００と同期されたホストシステム１１０のローカルＲＴＣを使用し、ＡＤＶを自動的に計画、制御することができる。
【０１００】
図１０は、一実施形態に係るセンサユニットの一例を示すブロック図である。図１０は、タイムソースランキングモジュール５２１を追加する点以外、図８と同じである。タイムソースランキングモジュール５２１は、ローカルＲＴＣ（例えば、図６Ａに示すローカルタイマー５５３）に使用されるタイムソースの適合性に従い、幾つかの使用可能なタイムソースをランキングすることができる。
【０１０１】
図１１は、一実施形態に係るタイムソースランキング回路の一例を示すブロック図である。図１１を参照すると、タイムソースランキングモジュール５２１は、例えば、受信モジュール１１０１、ヒストグラム生成器１１０３、ヒストグラムランキングモジュール１１０５、ヒストグラム選択モジュール１１０７、タイムスタンプ生成器１１０９、ＣＰＵ−ＲＴＣモニタモジュール１１１１、レコーダ１１１３などのサブモジュールを有しても良い。タイムソース１１２０は、ＧＰＳセンサ、ＬＴＥ、ＣＰＵ  ＲＴＣ、ＷＩＦＩ、ＦＰＧＡ  ＲＴＣ、ＦＭ受信機とＶ２Ｘセンサを含んでも良い。
【０１０２】
受信モジュール１１０１は、異なるタイムソース１１２０からタイムスタンプ或いはタイム情報を受信可能である。受信モジュール１１０３は、異なるタイムソース１１２０から受信されたタイムスタンプ或いはタイム情報に基づき、差異ヒストグラムを生成可能である。一実施形態において、差異ヒストグラムは、ある時間帯、例えば何時間か、或いは一日間において平均化された差異ヒストグラムとしても良い。一実施形態において、差異ヒストグラムは、ある時間帯おける平均的な差異ヒストグラムは、運行平均値としても良い。ヒストグラムランキングモジュール１１０５は、ＧＰＳセンサタイムソースを基準タイムソースとして使用し、タイムソースをランキングすることが可能であり、例えば、ＧＰＳセンサの時刻に対する時間差の小さい順で、タイムソースをランキングすることが可能である。ヒストグラフ選択モジュール１１０７は、ＧＰＳセンサのタイムソースに対する時間差が最も小さい時刻を有するタイムソースを選択することができる。タイムスタンプ生成器１１０９は、選択されたタイムソースに基づきタイム情報又はタイムスタンプを生成可能である。ＣＰＵ−ＲＴＣモニタモジュール１１１１は、ＣＰＵ−ＲＴＣ及びＧＰＳセンサの時刻とは異なる時刻をモニタリング可能である。レコーダ１１１３は、例えばＣＰＵ−ＲＴＣ及びＧＰＳセンサのデルタタイムや、時刻の時間差などのＣＰＵ−ＲＴＣのタイム情報をログファイルに格納することができる。
【０１０３】
地下駐車場でＡＤＶの着火装置を着火する場合（例えば、ＧＰＳ信号がない場合）、ＡＤＶは、タイムソース単キングモジュール５２１を使用する。一実施形態において、センサユニット５００又はホストシステム１１０は、タイムスタンプ生成のために、あいかわらず相対的に精確な時刻を必要とするため、センサユニット５００又はＡＤＶに係る使用可能なタイムソース情報が欠ける場合に、ディフォルトのタイムソースランキイングリストを利用して好ましいタイムソースを特定可能である。ディフォルトのランキングリストの例として、例えば、ＧＰＳ、ＦＰＧＡ  ＲＴＣ、ＷＩＦＩ、ＬＴＥとＣＰＵ  ＲＴＣの順番で、各タイムソースをランキングすることができる。この場合、唯一の利用可能なタイムソースがＦＰＧＡ  ＲＴＣ和ＷＩＦＩからである場合、ＦＰＧＡ  ＲＴＣタイムソースが最高優先度を有し、且つ、ローカルタイムを確立するための好ましいタイムソースであり、例えば、図６Ａにおけるローカルタイマー５５３のローカル時間である。しかしながら、一旦、ＧＰＳセンサからの信号が利用可能であれば、一実施形態において、タイムソースランキングモジュール５２１は、ランキングシステムに基づき、利用可能な異なるタイムソースの正確度を確定する。
【０１０４】
一実施形態において、タイムソースランキングモジュール５２１は、ランキングシステムにより、多くの利用可能なタイムソースの絶対的な差値に基づきヒストグラフを生成する。何回か繰り返してヒストグラフ或いは差異ヒストグラフを生成してもよいし、それらのヒストグラフは所定の時間帯において平均化されてもよく、又は、ＧＰＳ信号のみが利用可能であればよい。差異ヒストグラフにより特定されたＧＰＳセンサに最も接近した（例えば、最小差異）タイムソースが、ＧＰＳセンサが利用できない場合（例えば、次回に地下駐車場で着火する場合）に使用される最も好ましいタイムソースとして選択される。一実施形態において、ＣＰＵ  ＲＴＣは、予めに好ましいタイムソースとして設けられておく。この場合、レコーダ１１１３は、ＣＰＵ  ＲＴの差異ヒストグラフ、デルタタイム或いは平均デルタタイムをログファイル或いはログバッファエリアへ書き入れる。差異ヒストグラフ、デルタタイム或いは平均デルタタイムは、ＣＰＵ  ＲＴＣ和ＧＰＳ時刻の時間差を記録しているものである。次回にＧＰＳ信号のない状況で着火する場合に、センサユニット５００は、デルタタイムに基づきＣＰＵ  ＲＴＣを調整し、調整されたＣＰＵ  ＲＴＣをローカルタイムとする。一実施形態において、ＧＰＳ信号が利用可能な場合、デルタタイムをＣＰＵ  ＲＴＣのすべての偏差を表すように更新する。
【０１０５】
図１２は、一実施形態に係るタイムソースをランキングする方法を示すフローチャートである。プロセス１２００は、処理ロジックにより実行可能であり、前記処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。例えば、プロセス１２００は、図１１のタイムソースランキングモジュール５２１により実行可能である。図１２を参照すると、ブロック１２０１において、処理ロジックは、センサとＲＴＣを含む複数のタイムソースから、複数の時刻を受信し、センサは、ＡＤＶと通信中にあり、且つ少なくともＧＰＳセンサを含み、ＲＴＣは、少なくとも中央処理装置リアルタイムクロック（ＣＰＵ−ＲＴＣ）を含む。なお、ＣＰＵ−ＲＴＣは、センサユニットにおけるＣＰＵのＲＴＣである。ＲＴＣ及びセンサタイムソースの例として、、ＧＰＳセンサ、ＬＴＥ、ＣＰＵ  ＲＴＣ、ＷＩＦＩ、ＦＰＧＡ  ＲＴＣ、ＦＭ受信機とＶ２Ｘセンサが挙げられる。ブロック１２０２において、処理ロジックは、各タイムソースの時刻に基づき、ＧＰＳセンサの時刻と他のセンサ及びＲＴＣそれぞれの時刻との間の差を表す差異ヒストグラムを作成する。ブロック１２０３において、処理ロジックは、差異ヒストグラムに基づきセンサとＲＴＣに対してランキングする。ブロック１２０４において、処理ロジックは、センサとＲＴＣのうちの、ＧＰＳセンサに対する時間差の最も小さいものから、タイムソースを選択する。ブロック１２０５において、処理ロジックは、選択されたタイムソースに基づいてタイムスタンプを生成して、ＡＤＶのセンサユニットのセンサデータにタイムスタンプを付加する。
【０１０６】
一実施形態において、差異ヒストグラムは、ＧＰＳセンサと他のセンサやＲＴＣとの平均時間差の分布を含む平均差異ヒストグラムを含む。一実施形態において、差異ヒストグラムは適用し得ない場合に、処理ロジックは、センサ又はＲＴＣのデフォルトランキングリストを取る。
【０１０７】
一実施形態において、処理ロジックは、さらに、ＣＰＵ−ＲＴＣとＧＰＳセンサの時刻との時間差を含むＣＰＵ−ＲＴＣのタイム情報をログファイル（ＣＰＵ−ＲＴＣとＧＰＳセンサの時刻との時間差を含む）に格納し、ＣＰＵ−ＲＴＣとＧＰＳセンサの時刻との時間差をモニタリングし、モニタリングされた時間差に基づき、ログファイルにおけるタイム情報を更新する。他の実施形態において、タイム情報は、バイナリデータとして格納されている。一実施形態において、タイム情報は、ログバッファに格納されている。一実施形態において、タイムソースは、ＬＴＥ、ＷＩＦＩ、ＣＰＵ  ＲＴＣ、ＦＰＧＡ  ＲＴＣ、ＦＭ受信器、Ｖ２Ｘセンサ、又はＧＰＳセンサを含む。一実施形態において、処理ロジックは、さらに、差異ヒストグラムと、センサ及びＲＴＣのランキングとをログバッファに記録する。
【０１０８】
図１３は、一実施形態に係るセンサユニットの一例を示すブロック図である。図１３は、タイムソース回復モジュール５２３を追加する点以外、図１０と同じである。ＧＰＳ信号が一定期間で利用できなくなってそれから利用可能になった場合、タイムソース回復モジュール５２３は、ローカルタイムソースを回復可能であり、例えば、ローカルタイムソースとＧＰＳタイムソースとの間の時間差が一定期間における累積又はクロックドリフトを回復可能である。
【０１０９】
図１４は、一実施形態に係るタイムソース回復回路の一例を示すブロック図である。図１４を参照すると、タイムソース回復モジュール５２３は、例えば、時間差確定モジュール１４０１、最大限度／ステップ幅確定モジュール１４０３、平滑化回復モジュール１４０５、突発回復モジュール１４０７及びＧＰＳセンサ回復検出器１４０９などのサブモジュールを含む。
【０１１０】
時間差確定モジュール１４０１は、ローカルタイムソースとＧＰＳタイムソースとの間の時間差又は時間差異を確定可能である。最大限度／ステップ幅確定モジュール１４０３は、タイム回復が急激ではなく、平滑的に実行されようとする場合の時間差異の最大限度を確定することができる。例えば、時間差異は、所定の最大限度より低くなると、平滑化ロジックに従いタイム回復を実行する。時間差異が最大限度よりも大きくなると、突発ロジックに従いタイム回復を実行し、例えば、すぐにローカルタイムをＧＰＳタイムに合わせるようにする。最大限度／ステップ幅確定モジュール１４０３は、さらに、平滑化ロジックに従い、平滑化タイムソース回復に使用される回復インクリメント／ステップ幅（或いは回復時間間隔）を確定することもできる。
【０１１１】
平滑化回復モジュール１４０５は、平滑化ロジックを含み、平滑化タイムソース回復を実行可能である。平滑化回復とは、ローカルタイムソースが所定のステップ幅で所定の期間内にＧＰＳの時刻に追及するか、又は合わせることを指す。突発回復モジュール１４０７は、突発タイムソース回復を実行可能であり、例えば、突然に、又は、すぐにタイムソースの時刻をＧＰＳの時刻と合わせることである。ＧＰＳ信号が利用できない状態から利用可能への変換の時及び／又はＧＰＳ信号が利用可能から利用できないへの変換の時、ＧＰＳセンサ回復検出器１４０９は、ＧＰＳ信号の変換を検出可能である。
【０１１２】
説明の便宜上、ＡＤＶが地上の道路にあり、且つ利用可能なＧＰＳ信号にアクセス可能である場合に、ローカルタイム（或いはローカルクロック）は、ＧＰＳ  ＰＰＳにより取得、及び同期することができる。ＡＤＶ、トンネルに入ると、ＧＰＳ信号が利用できなくなる可能性があり、且つ、ＣＰＵ  ＲＴＣのようなローカルＲＴＣ又はセンサは、タイムソースの機能を引き継ぐことができる。トンネルの範囲内において、ローカルタイムソースは不正確となる可能性があるため、クロックドリフトによって時間差異（例えば、ローカルタイムソースの時刻とＧＰＳタイムとの時間差）が生じる。ＡＤＶがトンネルを離れると、ＧＰＳセンサ回復検出器１４０９により、ＧＰＳ信号の変換が検出される。その後、時間差確定モジュール１４０１は、ローカルタイムソース（上述したタイムソース差異ヒストグラフに基づきローカルソースを選択可能である）とＧＰＳタイムの間の時間差異を確定可能である。最後に、最大限度／ステップ幅確定モジュール１４０３は、時間差と最大限度（最大限度がユーザにより予め設定可能である）とを比較し、時間差が最大限度よりも大きい場合、ローカルタイムソースに対し平滑化ロジックを適用することで、ローカルタイムソースをＧＰＳタイムに合わせるようにする。そうではない場合、ローカルタイムソースに対し、突発ロジックを適用することにより、ローカルタイムソースをＧＰＳタイムに合わせるようにする。
【０１１３】
図１５は、一実施形態に係る平滑化タイムソース回復の一例を示す図である。図１５を参照すると、時刻＝０において、ＧＰＳ信号が利用できない状態から利用可能への変換が検出された場合（例えば利用可能になった場合）、初期時間差が２００ナノ秒だけ遅れると確定される。初期時間差が、所定の最大限度（例えば、５００ｍｓ）と比較して、それが最大限度よりも小さくなると判定する。この場合、初期時間差が最大限度よりも小さくなることが判定されたため、平滑化ロジックが適用される。また、ローカルタイムソースがＧＰＳタイムより遅れているため、ローカルタイムソースは、ＧＰＳタイムに追及するように（予め設定されたステップインクリメント又は最大インクリメント間隔に基づき）逓増して増加する。一実施形態において、センサユニットのデジットクロックのデジットクロックサイクルの時間間隔に基づき、ステップ幅のインクリメントを予め定める。例えば、ステップ幅のインクリメントは、１０ｎｓとされてもよく、それは、センサユニットのクロックサイクルが１０ｎｓの時間間隔を有するからである。この場合、各デジットクロックサイクル（例えば、１０ｎｓ）について、ローカルタイムソースは、その時刻に対し、サイクル間隔及びインクリメントを加え、例えば、２０ｎｓを加える。２０個のデジットクロックサイクル（或いは２００ｎｓ）の後、ローカルタイムソースはＧＰＳタイムに合わせられることになる。なお、ステップ幅のインクリメントが１０ｎｓの５００ｍｓの最大限度は、５００ｍｓの最大タイム回復サイクルを提供する。ここで、平滑化回復時間間隔を早くするか、又は遅くするために、ステップ幅のインクリメントを調整することができる。
【０１１４】
初期時間差が５００ｍｓよりも大きいことが確定された場合、ローカルタイムソースは、いずれの平滑化ロジックも必要とせずに急激にＧＰＳに合わせられる。なお、タイムソースの調整は、センサユニットのローカルデジットクロックへの干渉とはならないが、センサユニットにおける一つ又は複数のセンサがＴＸ／ＲＸ及びトリガタイムスタンプのタイムスタンプクロックソースを提供するように調整する。５００ｍｓ及び１０ｎｓは、それぞれ最大限度及び回復インクリメント／ステップ幅として記述されたが、何れの時間間隔も最大限度及びタイムインクリメントとして使用することができる。
【０１１５】
図１６は、一実施形態に係るタイムソース回復の方法を示すフローチャートである。プロセス１６００は、処理ロジックにより実行可能であり、前記処理ロジックはソフトウェア、ハードウェア、又はそれらの組み合わせを含んでもよい。例えば、プロセス１６００は、図１４のタイムソース回復モジュール５２３により実行可能である。図６を参照すると、ブロック１６０１において、処理ロジックは、ローカルタイムソースとＧＰＳセンサの時刻との間の時間差を確定する。ブロック１６０２において、処理ロジックは、差の最大限と、平滑化タイムソース回復のための最大回復インクリメント、或いは最大回復時間間隔を確定する。ブロック１６０３において、処理ロジックは、ローカルタイムソースとＧＰＳセンサの時刻との間の差異が最大限度よりも小さいことを判定する。ブロック１６０４において、処理ロジックは、最大回復時間間隔以内で、ローカルタイムソースを、ＧＰＳセンサの時刻に収めるように、平滑化タイムソース回復を計画する。ブロック１６０５において、処理ロジックは、回復されたタイムソースに基づいてタイムスタンプを生成して、ＡＤＶのセンサユニットのセンサデータにタイムスタンプを付加する。
【０１１６】
第４局面によれば、処理ロジックは、ローカルタイムソースとＧＰＳセンサの時刻との差が最大限よりも大きいことを判定する。処理ロジックは、その後、ローカルタイムソースに対し、ＧＰＳセンサの時刻として割り当てるように、タイムソースの突発的な回復を計画する。処理ロジックは、さらに、最大回復インクリメントと異なる所定のタイムインクリメントで、ローカルタイムソースを、ＧＰＳセンサの時刻に収めるように、平滑化タイムソース回復を計画する。
【０１１７】
一実施形態において、所定のタイムインクリメント（或いはステップ幅）は、センサユニットの１クロックサイクルの間隔である。一実施形態において、１クロックサイクルの間隔は、１０ナノ秒である。一実施形態において、最大限、回復インクリメント又は最大回復時間間隔は、ユーザにより予め設定されている。一実施形態において、システムは、ＧＰＳセンサからの信号の回復を検出すると、ローカルタイムソースとＧＰＳセンサの時刻との時間差を確定する。
【０１１８】
図１７は、本発明の一実施形態と組み合わせて使用可能なデータ処理システムを例示的に示すブロック図である。例えば、システム１５００は、図１の感知・計画システム１１０、又はサーバ１０３〜１０４のいずれかのような、上述した前記プロセス又は方法のいずれかを実行するデータ処理システムのいずれかを表すことができる。システム１５００は、いくつかの異なる構成要素を含んでもよい。これらの構成要素は、集積回路（ＩＣ）、集積回路の一部、ディスクリート型電子デバイス、又は回路基板（例えば、コンピュータシステムのマザーボード又はアドインカード）に適するその他のモジュールとして実現されることができ、又は、他の形態でコンピュータシステムのシャーシ内に組み込まれた構成要素として実現されることができる。
【０１１９】
なお、システム１５００は、コンピュータシステムのいくつかの構成要素の高レベルビューを示すことを意図している。しかしながら、理解すべきなのは、いくつかの実施例において付加的構成要素が存在してもよく、また、その他の実施例において示された構成要素を異なる配置にすることが可能である。システム１５００は、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、サーバ、携帯電話、メディアプレーヤ、パーソナルデジタルアシスタント（ＰＤＡ）、スマートウォッチ、パーソナルコミュニケーター、ゲーム装置、ネットワークルーター又はハブ、無線アクセスポイント（ＡＰ）又はリピーター、セット・トップ・ボックス、又はそれらの組み合わせを表すことができる。また、単一の機械又はシステムのみが示されたが、「機械」又は「システム」という用語は、本明細書で説明されるいずれか１つまたは複数の方法を実行するための、単独で又は共同で１つ（又は複数）の命令セットを実行する機械又はシステムの任意の組み合わせも含まれることを理解されたい。
【０１２０】
一実施形態では、システム１５００は、バスまたはインターコネクト１５１０を介して接続される、プロセッサ１５０１と、メモリ１５０３と、装置１５０５〜１５０８とを含む。プロセッサ１５０１は、単一のプロセッサコアまたは複数のプロセッサコアが含まれる単一のプロセッサまたは複数のプロセッサを表すことが可能である。プロセッサ１５０１は、マイクロプロセッサ、中央処理装置（ＣＰＵ）などのような、１つまたは複数の汎用プロセッサを表すことができる。より具体的には、プロセッサ１５０１は、複雑命令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小命令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長命令語（ＶＬＩＷ）マイクロプロセッサ、またはその他の命令セットを実行するプロセッサ、または命令セットの組み合わせを実行するプロセッサであってもよい。プロセッサ１５０１は更に、例えば、特定用途向け集積回路（ＡＳＩＣ）、セルラー若しくはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、ネットワークプロセッサ、グラフィックプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組込みプロセッサ、または命令を処理可能な任意の他のタイプのロジックのような、１つまたは複数の専用プロセッサであってもよい。
【０１２１】
プロセッサ１５０１は、超低電圧プロセッサのような低電力マルチコアプロセッサソケットであってもよく、前記システムの様々な構成要素と通信するための主処理ユニットおよび中央ハブとして機能することができる。このようなプロセッサは、システムオンチップ（ＳｏＣ）として実装されてもよい。プロセッサ１５０１は、本明細書で説明される動作およびステップを実行するための命令を実行するように構成される。システム１５００は、更に任意選択グラフィックサブシステム１５０４と通信するグラフィックインターフェースを含むことができ、グラフィックサブシステム１５０４は、表示コントローラ、グラフィックプロセッサ、及び／又は表示装置を含むことができる。
【０１２２】
プロセッサ１５０１は、メモリ１５０３と通信することができ、メモリ１５０３は、一実施形態では、所定量のシステムメモリを提供するための複数のメモリ装置によって実現されることができる。メモリ１５０３は、例えば、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、シンクロナスＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、又はその他のタイプの記憶装置のような、１つまたは複数の揮発性記憶（又はメモリ）装置を含むことができる。メモリ１５０３は、プロセッサ１５０１又はその他の任意の装置により実行される命令シーケンスを含む情報を記憶することができる。例えば、様々なオペレーティングシステム、デバイスドライバ、ファームウェア（例えば、ベーシックインプット／アウトプットシステム又はＢＩＯＳ）、及び／又はアプリケーションの実行可能なコード及び／又はデータは、メモリ１５０３にロードされ、プロセッサ１５０１により実行されることができる。オペレーティングシステムは、例えば、ロボットオペレーティングシステム（ＲＯＳ）、Ｍｉｃｒｏｓｏｆｔ（登録商標）社のＷｉｎｄｏｗｓ（登録商標）オペレーティングシステム、アップル社のＭａｃＯＳ（登録商標）／ｉＯＳ（登録商標）、Ｇｏｏｇｌｅ（登録商標）社のＡｎｄｒｏｉｄ（登録商標）、ＬＩＮＵＸ（登録商標）、ＵＮＩＸ（登録商標）、またはその他のリアルタイム若しくは組込みオペレーティングシステムのような、任意のタイプのオペレーティングシステムであってもよい。
【０１２３】
システム１５００は、例えば、ネットワークインターフェース装置１５０５、任意選択入力装置１５０６、及びその他の任意選択ＩＯ装置１５０７を含む装置１５０５〜１５０８のようなＩＯ装置を更に含むことができる。ネットワークインターフェース装置１５０５は、無線送受信機及び／又はネットワークインターフェースカード（ＮＩＣ）を含むことができる。前記無線送受信機は、ＷｉＦｉ送受信機、赤外線送受信機、ブルートゥース（登録商標）送受信機、ＷｉＭａｘ送受信機、無線携帯電話送受信機、衛星送受信機（例えば、全地球測位システム（ＧＰＳ）送受信機）、またはその他の無線周波数（ＲＦ）送受信機、またはそれらの組み合わせであってもよい。ＮＩＣは、イーサネットカードであってもよい。
【０１２４】
入力装置１５０６は、マウス、タッチパネル、タッチスクリーン（表示装置１５０４と統合されてもよい）、ポインター装置（例えば、スタイラス）、及び／又はキーボード（例えば、物理キーボード又はタッチスクリーンの一部として表示された仮想キーボード）を含むことができる。例えば、入力装置１５０６は、タッチスクリーンと接続するタッチスクリーンコントローラを含むことができる。タッチスクリーンおよびタッチスクリーンコントローラは、例えば、様々なタッチ感応技術（コンデンサ、抵抗、赤外線、および表面弾性波の技術を含むが、それらに限定されない）のいずれか、並びにその他の近接センサアレイ、または、タッチスクリーンと接触する１つまたは複数の点を確定するためのその他の素子を用いて、それらの接触、移動または中断を検出することができる。
【０１２５】
ＩＯ装置１５０７は、音声装置を含むことができる。音声装置は、例えば、音声認識、音声複製、デジタル記録、及び／又は電話機能のような音声サポートの機能を促進するために、スピーカ及び／又はマイクロホンを含んでもよい。その他のＩＯ装置１５０７は、ユニバーサルシリアルバス（ＵＳＢ）ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ（例えば、ＰＣＩ−ＰＣＩブリッジ）、センサ（例えば、加速度計のようなモーションセンサ、ジャイロスコープ、磁力計、光センサ、コンパス、近接センサなど）、又はそれらの組み合わせを更に含むことができる。装置１５０７は、更に結像処理サブシステム（例えば、カメラ）を含むことができ、前記結像処理サブシステムは、カメラ機能（例えば、写真及びビデオ断片を記録する）を促進するための光学センサを含むことができ、例えば、電荷結合素子（ＣＣＤ）又は相補型金属酸化物半導体（ＣＭＯＳ）光学センサが挙げられる。特定のセンサは、センサハブ（図示せず）を介してインターコネクト１５１０に接続されることができ、キーボード又はサーマルセンサのようなその他の装置はシステム１５００の具体的な配置又は設計により、組込みコントローラ（図示せず）により制御されることができる。
【０１２６】
データ、アプリケーション、１つまたは複数のオペレーティングシステムなどの情報の永続性記憶を提供するために、プロセッサ１５０１には、大容量記憶装置（図示せず）が接続されることもできる。様々な実施形態において、より薄くてより軽量なシステム設計を可能にしながら、システムの応答性を向上するために、このような大容量記憶装置は、ソリッドステートデバイス（ＳＳＤ）によって実現されることができる。しかしながら、その他の実施形態では、大容量記憶装置は、主にハードディスクドライブ（ＨＤＤ）を使用して実現されることができ、より小さい容量のＳＳＤ記憶装置をＳＳＤキャッシュとして機能することで、停電イベントの間にコンテキスト状態及び他のそのような情報の不揮発性記憶を可能にし、それによりシステム動作が再開するときに通電を速く実現することができる。また、フラッシュデバイスは、例えば、シリアルペリフェラルインターフェース（ＳＰＩ）を介してプロセッサ１５０１に接続されることができる。このようなフラッシュデバイスは、前記システムのＢＩＯＳ及びその他のファームウェアを含むシステムソフトウェアの不揮発性記憶のために機能することができる。
【０１２７】
記憶装置１５０８は、コンピュータアクセス可能な記憶媒体１５０９（機械可読記憶媒体又はコンピュータ可読媒体ともいう）を含むことができ、前記コンピュータアクセス可能な記憶媒体１５０９には、本明細書で記載されたいずれか１つまたは複数の方法又は機能を具現化する１つまたは複数の命令セット又はソフトウェア（例えば、モジュール、ユニット及び／又はロジック１５２８）が記憶されている。処理モジュール／ユニット／論理回路１５２８は、例えば、感知モジュール３０２、計画モジュール３０５、制御モジュール３０６、及び／又はセンサユニットモジュール５００のような、前記構成要素のいずれかを表すことができる。処理モジュール／ユニット／ロジック１５２８は、更に、データ処理システム１５００、メモリ１５０３、およびプロセッサ１５０１による実行中に、メモリ１５０３内および／またはプロセッサ１５０１内に完全的にまたは少なくとも部分的に存在してもよく、データ処理システム１５００、メモリ１５０３およびプロセッサ１５０１も機械アクセス可能な記憶媒体を構成する。処理モジュール／ユニット／ロジック１５２８は、更に、ネットワークを介してネットワークインターフェース装置１５０５を経由して送受信されてもよい。
【０１２８】
コンピュータ可読記憶媒体１５０９は、以上に説明されたいくつかのソフトウェア機能を永続的に記憶するために用いることができる。コンピュータ可読記憶媒体１５０９は、例示的な実施形態において単一の媒体として示されるが、「コンピュータ可読記憶媒体」という用語は、前記１つまたは複数の命令セットが記憶される単一の媒体または複数の媒体（例えば、集中型または分散型データベースおよび／または関連するキャッシュとサーバ）を含むと解釈されるものとする。「コンピュータ可読記憶媒体」という用語は、更に、命令セットを記憶または符号化できる任意の媒体を含むと解釈されるものであり、前記命令セットは機械により実行され、本発明のいずれか１つまたは複数の方法を前記機械に実行させるためのものである。それゆえに、「コンピュータ可読記憶媒体」という用語は、ソリッドステートメモリ、光学媒体および磁気媒体、またはその他の任意の非一時的機械可読媒体を含むが、それらに限定されないと解釈されるものとする。
【０１２９】
本明細書に記載の処理モジュール／ユニット／ロジック１５２８、構成要素及びその他の特徴は、ディスクリートハードウェア構成要素として実現されてもよく、又はＡＳＩＣＳ、ＦＰＧＡ、ＤＳＰ又は類似の装置のようなハードウェア構成要素の機能に統合されてもよい。更に、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置におけるファームウェア又は機能性回路として実現されてもよい。更に、処理モジュール／ユニット／ロジック１５２８は、ハードウェア装置とソフトウェア構成要素の任意の組み合わせで実現されてもよい。
【０１３０】
なお、システム１５００は、データ処理システムの様々な構成要素を有するものとして示されているが、構成要素を相互接続する任意の特定のアーキテクチャまたは方式を表すことを意図するものではなく、そのような詳細は、本発明の実施形態とは密接な関係がない。また、より少ない構成要素又はより多くの構成要素を有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、及び／又はその他のデータ処理システムも、本発明の実施形態と共に使用することができることを理解されたい。
【０１３１】
前記具体的な説明の一部は、既に、コンピュータメモリにおけるデータビットに対する演算のアルゴリズムと記号表現で示された。これらのアルゴリズムの説明および表現は、データ処理分野における当業者によって使用される、それらの作業実質を所属分野の他の当業者に最も効果的に伝達する方法である。本明細書では、一般的に、アルゴリズムは、所望の結果につながるセルフコンシステントシーケンスと考えられる。これらの動作は、物理量の物理的処置が必要なものである。
【０１３２】
しかしながら、念頭に置くべきなのは、これらの用語および類似の用語の全ては、適切な物理量に関連付けられるものであり、これらの量を標識しやすくするためのものに過ぎない。以上の説明で他に明示的に記載されていない限り、本明細書の全体にわたって理解するべきのは、添付された特許請求の範囲に記載するもののような用語による説明とは、コンピュータシステム、又は類似の電子計算装置の動作及びプロセスを指し、前記コンピュータシステム又は電子計算装置は、コンピュータシステムのレジスタ及びメモリにおける物理（電子）量として示されるデータを制御するとともに、前記データをコンピュータシステムメモリ又はレジスタ又はこのようなその他の情報記憶装置、伝送又は表示装置において同様に物理量として示される別のデータに変換する。
【０１３３】
本発明の実施形態は、本明細書の動作を実行するための装置にも関する。このようなコンピュータプログラムは、非一時的コンピュータ可読媒体に記憶される。機械可読媒体は、機械（例えば、コンピュータ）により読み取り可能な形式で情報を記憶するための任意のメカニズムを含む。例えば、機械可読（例えば、コンピュータ可読）媒体は、機械（例えば、コンピュータ）可読記憶媒体（例えば、読み出し専用メモリ（「ＲＯＭ」）、ランダムアクセスメモリ（「ＲＡＭ」）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリ装置）を含む。
【０１３４】
上述した図面において説明されたプロセス又は方法は、ハードウェア（例えば、回路、専用ロジックなど）、ソフトウェア（例えば、非一時的コンピュータ可読媒体に具現化されるもの）、又は両方の組み合わせを含む処理ロジックにより実行されることができる。前記プロセス又は方法は、以上で特定の順序に応じて説明されたが、前記動作の一部が異なる順序で実行されてもよいことを理解されたい。また、一部の動作は、順番ではなく並行して実行されてもよい。
【０１３５】
本発明の実施形態は、いずれの特定のプログラミング言語を参照することなく記載されている。理解すべきなのは、本明細書に記載の本発明の実施形態の教示を実現するために、様々なプログラミング言語を使用することができる。
【０１３６】
前記明細書において、本発明の実施形態は、既にその具体的な例示的な実施形態を参照しながら記載された。明らかなように、添付された特許請求の範囲に記載された本開示のより広い趣旨及び範囲を逸脱しない限り、本開示に対して様々な変更を行うことができる。それゆえに、本明細書および図面は、限定的な意味でなく、例示的な意味で理解されるべきである。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
自動運転車両（ＡＤＶ）のタイムソースを回復する方法であって、
全地球測位システム（ＧＰＳ）タイムソースが利用できない場合に、ローカルタイムソースから取得された時刻を使用してタイムスタンプを生成するステップと、
前記ＧＰＳタイムソースが利用可能になったことの確定に応答して、ローカルソースから得られた第１時刻と前記ＧＰＳタイムソースから得られた第２時刻との時間差を確定するステップと、
前記第１時刻と前記第２時刻との間の時間差が所定の最大限度よりも小さいことを判定するステップと、
前記ローカルソースを所定の最大回復時間間隔の内にだんだん前記ＧＰＳタイムソースに収束させることで、タイムソースの平滑化回復を実行するステップと、
回復されたタイムソースに基づきタイムスタンプを生成するステップであって、回復されたタイムソースに基づいて生成された前記タイムスタンプは、前記ＡＤＶにおける複数の部位に装着された複数のセンサから得られたセンサデータにタイムスタンプを付加するために使用され、前記センサデータは、ホストシステムが前記ＡＤＶ周辺の運転環境を感知し且つ感知されたデータに基づき前記ＡＤＶを自動運転させるために利用されるステップと、
を含む方法。
【請求項２】
前記第１時刻と前記第２時刻との間の時間差が前記所定の最大限度よりも大きいことを判定するステップと、
前記ローカルタイムソースを直ちに前記ＧＰＳタイムソースに合わせることで、タイムソースを回復するステップと、
を含む、請求項１に記載の方法。
【請求項３】
所定のタイムインクリメントに基づき、前記ローカルタイムソースをだんだん前記ＧＰＳタイムソースに収束させるステップを実行する、請求項１に記載の方法。
【請求項４】
前記所定のタイムインクリメントは、前記ホストシステムから予め設定、又は受信された、請求項３に記載の方法。
【請求項５】
前記所定のタイムインクリメントは、単一のクロックサイクル間隔である、請求項３に記載の方法。
【請求項６】
前記単一のクロックサイクル間隔は１０ナノ秒である、請求項５に記載の方法。
【請求項７】
前記所定の最大限度と前記所定の最大回復時間間隔は、ホストシステムから予め設定、又は受信された、請求項１に記載の方法。
【請求項８】
自動運転車両（ＡＤＶ）のタイムソースを回復する装置であって、
ＧＰＳタイムソースが利用できない状態から利用可能になったことの確定に応答して、ローカルソースから得られた第１時刻と前記ＧＰＳタイムソースから得られた第２時刻との時間差を確定する時間差確定モジュールであって、前記ローカルタイムソースは前記ＧＰＳタイムソースが利用できない場合にタイムスタンプを生成するに使用される時間差確定モジュールと、
前記時間差確定モジュールに接続される平滑化モジュールと、を含み、
前記平滑化モジュールは、
前記第１時刻と前記第２時刻との間の時間差が所定の最大限度よりも小さいことを判定し、
前記ローカルソースを所定の最大回復時間間隔の内にだんだん前記ＧＰＳタイムソースに収束させることで、タイムソースの平滑化回復を実行し、ここで、収束したローカルタイムソースに基づき後続タイムスタンプを生成して、前記ＡＤＶにおける複数の部位に装着された複数のセンサから得られたセンサデータにタイムスタンプを付加し、且つ、前記センサデータは、ホストシステムが前記ＡＤＶ周辺の運転環境を感知し且つ感知されたデータに基づき前記ＡＤＶを自動運転させるために利用される、
ように構成される、装置。
【請求項９】
前記時間差確定モジュールに接続される突発回復モジュールを更に含み、
前記突発回復モジュールは、
前記第１時刻と前記第２時刻との間の時間差が前記所定の最大限度よりも大きいことを判定することと、
前記ローカルタイムソースを直ちに前記ＧＰＳタイムソースに合わせることでタイムソースを回復すること、
に使用される、請求項８に記載の装置。
【請求項１０】
前記ローカルタイムソースは、所定のタイムインクリメントに基づき、だんだん前記ＧＰＳタイムソースに収束させられる、請求項８に記載の電気回路。
【請求項１１】
前記所定のタイムインクリメントは、前記ホストシステムから予め設定、又は受信された、請求項１０に記載の電気回路。
【請求項１２】
前記所定のタイムインクリメントは、単一のクロックサイクルである、請求項１０に記載の電気回路。
【請求項１３】
前記単一のクロックサイクル間隔は１０ナノ秒である、請求項１２に記載の電気回路。
【請求項１４】
前記所定の最大限度と前記所定の最大回復時間間隔は、ホストシステムから予め設定、又は受信された、請求項８に記載の電気回路。
【請求項１５】
自動運転車両（ＡＤＶ）のためのセンサユニットであって、
前記ＡＤＶにおける複数の部位に装着された複数のセンサに接続されるべきセンサインタフェースと、
前記センサインタフェースに接続されるタイムソース回復ロジック装置と、を含み、
前記タイムソース回復ロジック装置は、
ＧＰＳタイムソースが利用できない状態から利用可能な状態になったことの確定に応答して、ローカルソースから得られた第１時刻と前記ＧＰＳタイムソースから得られた第２時刻との時間差を確定する時間差確定モジュールであって、前記ローカルタイムソースは前記ＧＰＳタイムソースが利用できない場合にタイムスタンプを生成するに使用される、時間差確定モジュールと、
前記時間差確定モジュールに接続される平滑化モジュールであって、前記第１時刻と前記第２時刻との間の時間差が所定の最大限度よりも小さいことを判定し、前記ローカルソースを所定の最大回復時間間隔の内にだんだん前記ＧＰＳタイムソースに収束させることで、タイムソースの平滑化回復を実行する、平滑化モジュールと、
収束したローカルタイムソースに基づきタイムスタンプを生成して、前記ＡＤＶにおける複数の部位に装着された複数のセンサから得られたセンサデータにタイムスタンプを付加し、且つ、前記センサデータは、ホストシステムが前記ＡＤＶ周辺の運転環境を感知し且つ感知されたデータに基づき前記ＡＤＶを自動運転させるために利用されるように構成される、タイムスタンプ生成器と、
を含む装置。
【請求項１６】
前記タイムソース回復ロジック装置は、前記時間差確定モジュールに接続される突発回復モジュールを更に含み、
前記突発回復モジュールは、
前記第１時刻と前記第２時刻との間の時間差が前記所定の最大限度よりも大きいことを判定することと、
前記ローカルタイムソースを直ちに前記ＧＰＳタイムソースに合わせることでタイムソースを回復すること、
に使用される、請求項１５に記載のセンサユニット。
【請求項１７】
前記ローカルタイムソースは、所定のタイムインクリメントに基づき、だんだん前記ＧＰＳタイムソースに収束させられる、請求項１５に記載のセンサユニット。
【請求項１８】
前記所定のタイムインクリメントは、前記ホストシステムから予め設定、又は受信された、請求項１７に記載のセンサユニット。
【請求項１９】
前記所定のタイムインクリメントは、単一のクロックサイクルである、請求項１７に記載のセンサユニット。
【請求項２０】
前記単一のクロックサイクル間隔は１０ナノ秒である、請求項１９に記載のセンサユニット。
【請求項２１】
前記所定の最大限度と前記所定の最大回復時間間隔は、ホストシステムから予め設定、又は受信された、請求項１５に記載のセンサユニット。
【請求項２２】
コンピュータプログラムであって、
前記コンピュータプログラムがプロセッサにより実行されると、請求項１〜７のいずれか一項に記載の方法を実現させるコンピュータプログラム。
【外国語明細書】
2020030808000001.pdf
2020030808000002.pdf
2020030808000003.pdf
2020030808000004.pdf