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