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