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