(57)【要約】      （修正有）【課題】自動運転車両の動作制御において、走行環境に基づく加速、減速支援を行う方法並びにシステムを提供する。【解決手段】自動走行車両（ＡＤＶ）の運転者からの第１制御命令に応答し、ＡＤＶの標準運転環境（例えば、乾燥した道路、平坦な路面、正常なタイヤ圧力、ゼロ積載量）における現在の速度に基づいて、ＡＤＶのＡＤＶ第１制御命令に応答する予想加速度を確定する。ＡＤＶの当該タイミングでの現在の運転環境に基づいて、命令キャリブレーションテーブル中の一つを選択する。選択した命令キャリブレーションテーブルで検索処理を実行して、ＡＤＶの現在の速度と予想加速度に基づいて第２制御命令を取得する。そして、ＡＤＶを制御するために前記第２制御命令を出力する。【効果】ＡＤＶは、現在の運転環境でＡＤＶが標準運転環境で運転するときの加速度と同じ加速度を実現する。【選択図】図８
2020083307.tif 000002
【特許請求の範囲】
【請求項１】
自動運転車両（ＡＤＶ）を制御するように第１制御命令を受信するステップと、
前記第１制御命令に応答して、前記ＡＤＶの標準運転環境における現在の速度に基づいて、前記ＡＤＶの予想加速度を確定するステップと、
前記ＡＤＶに関連する現在の運転環境に基づいて、複数の命令キャリブレーションテーブル中の一つの命令キャリブレーションテーブルを選択するステップと、
前記ＡＤＶの現在の速度と予想加速度に基づいて、選択した命令キャリブレーションテーブルで検索処理を実行して、第２制御命令を取得するステップと、及び
前記ＡＤＶを制御するように前記第２制御命令を出力するステップと、を含む、
ことを特徴とする自動運転車両を処理するためのコンピュータ実施方法。
【請求項２】
前記各命令キャリブレーションテーブルは、それぞれ複数のエントリを含み、それぞれのエントリは、特定の運転環境で出力された命令に応答するように、出力された命令、前記命令を出力するときの速度及び加速度を、マッピングする、
ことを特徴とする請求項１に記載の自動運転車両を処理するためのコンピュータ実施方法。
【請求項３】
それぞれの運転環境は、天気状況、道路面状況及び積載量状況中の少なくとも一つを含む、
ことを特徴とする請求項１に記載の自動運転車両を処理するためのコンピュータ実施方法。
【請求項４】
前記天気状況は、前記ＡＤＶの走行している道路が湿潤しているか乾燥しているかを示し、前記道路面状況は、前記道路の路面が平坦であるか、起伏があるかまたは混合であるかを示す、
ことを特徴とする請求項３に記載の自動運転車両を処理するためのコンピュータ実施方法。
【請求項５】
前記積載量状況は、高位、中位または低位のタイヤ圧力によって測定される、
ことを特徴とする請求項３に記載の自動運転車両を処理するためのコンピュータ実施方法。
【請求項６】
前記各命令キャリブレーションテーブル中のそれぞれは、同じまたは類似の運転環境で車両を運転し、運転期間で異なる時間に運転統計データを測定且つ収集して作成されたものである、
ことを特徴とする請求項３に記載の自動運転車両を処理するためのコンピュータ実施方法。
【請求項７】
前記ＡＤＶの予想加速度を確定するステップは、
前記車両の現在の速度と前記第１制御命令に基づいて標準命令キャリブレーションテーブルで第２検索処理を実行して、マッチングエントリを見つけるステップと、及び
前記マッチングエントリから前記予想加速度を取得するステップであって、前記標準命令キャリブレーションテーブルは、標準運転環境での運転統計データに基づいて作成されたものである、ステップと、を含む、
ことを特徴とする請求項１に記載の自動運転車両を処理するためのコンピュータ実施方法。
【請求項８】
前記運転環境に基づいて、複数の命令キャリブレーションテーブル中の一つの命令キャリブレーションテーブルを選択するステップは、
前記現在の運転環境で前記ＡＤＶを運転するときに、所定の期間内に第１運転統計データセットを収集するステップと、
前記現在の運転環境に関連する前記複数の命令キャリブレーションテーブルから命令キャリブレーションテーブル候補のセットを認識するステップと、
前記第１運転統計データセットと、それぞれの前記命令キャリブレーションテーブル候補から取得した第２運転統計データセットと比較するステップと、
前記比較に基づいて、それぞれの前記命令キャリブレーションテーブル候補の類似性スコアを計算するステップと、及び
最高類似性スコアを有する前記命令キャリブレーションテーブル候補の一つを選択して命令キャリブレーションテーブルとするステップと、を含む、
ことを特徴とする請求項１に記載の自動運転車両を処理するためのコンピュータ実施方法。
【請求項９】
前記第１運転統計データセットと前記第２運転統計データセットを比較して、類似性スコアを計算するステップは、
特定のタイミングで測定された第１運転統計データセットのそれぞれのサブセットに対して、
測定された車両から第１速度、出力された第１制御命令と第１応答を取得し、
命令キャリブレーション候補で検索処理を実行して、前記第１速度と前記第１制御命令に相対的にマッチングする第２速度と第２制御命令を有するエントリを見つけ、
前記第１応答と前記マッチングエントリから取得した第２応答との間の差を計算するステップと、及び
リアルタイムで測定された応答と前記命令キャリブレーションテーブル候補からの予めに記録された応答との間の平均差に基づいて、前記命令キャリブレーションテーブル候補の類似性スコアを計算するステップと、を含む、
ことを特徴とする請求項８に記載の自動運転車両を処理するためのコンピュータ実施方法。
【請求項１０】
指令が記憶された非一時的（不揮発性）な機械可読媒体であって、
前記指令がプロセッサによって実行されるときに、前記プロセッサに処理を実行させ、
前記処理は、
自動運転車両（ＡＤＶ）を制御するように第１制御命令を受信するステップと、
前記第１制御命令に応答して、前記ＡＤＶの標準運転環境における現在の速度に基づいて、前記ＡＤＶの予想加速度を確定するステップと、
前記ＡＤＶに関連する現在の運転環境に基づいて、複数の命令キャリブレーションテーブル中の一つの命令キャリブレーションテーブルを選択するステップと、
前記ＡＤＶの現在の速度と予想加速度に基づいて、選択した命令キャリブレーションテーブルで検索処理を実行して、第２制御命令を取得するステップと、及び
前記ＡＤＶを制御するように前記第２制御命令を出力するステップと、を含む、
ことを特徴とする機械可読媒体。
【請求項１１】
前記各命令キャリブレーションテーブルは、それぞれ複数のエントリを含み、それぞれのエントリは、特定の運転環境で出力された命令に応答して、出力された命令、前記命令を出力するときの速度及び加速度を、マッピングする、
ことを特徴とする請求項１０に記載の機械可読媒体。
【請求項１２】
それぞれの運転環境は、天気状況、道路面状況及び積載量状況中の少なくとも一つを含む、
ことを特徴とする請求項１０に記載の機械可読媒体。
【請求項１３】
前記天気状況は、前記ＡＤＶの走行している道路が湿潤しているか乾燥しているかを示し、
前記道路面状況は、前記道路の路面が平坦であるか、起伏があるかまたは混合であるかを示す、
ことを特徴とする請求項１２に記載の機械可読媒体。
【請求項１４】
前記積載量状況は、高位、中位または低位のタイヤ圧力によって測定される、
ことを特徴とする請求項１２に記載の機械可読媒体。
【請求項１５】
前記各命令キャリブレーションテーブルは、それぞれ同じまたは類似の運転環境で車両を運転し、運転期間中の異なる時間に運転統計データを測定且つ収集して作成されたものである、
ことを特徴とする請求項１０に記載の機械可読媒体。
【請求項１６】
前記ＡＤＶの予想加速度を確定するステップは、
前記車両の現在の速度と前記第１制御命令に基づいて標準命令キャリブレーションテーブルで第２検索処理を実行して、マッチングエントリを見つけるステップと、及び
前記マッチングエントリから前記予想加速度を取得するステップであって、前記標準命令キャリブレーションテーブルは、標準運転環境での運転統計データに基づいて作成されたものである、ステップと、を含む、
ことを特徴とする請求項１０に記載の機械可読媒体。
【請求項１７】
前記運転環境に基づいて、複数の命令キャリブレーションテーブル中の一つの命令キャリブレーションテーブルを選択するステップは、
前記現在の運転環境で前記ＡＤＶを運転するときに、所定の期間内に第１運転統計データセットを収集するステップと、
前記現在の運転環境に関連する前記複数の命令キャリブレーションテーブルから命令キャリブレーションテーブル候補のセットを認識するステップと、
前記第１運転統計データセットと、それぞれの前記命令キャリブレーションテーブル候補から取得した第２運転統計データセットと比較するステップと、
前記比較に基づいて、それぞれの前記命令キャリブレーションテーブル候補の類似性スコアを計算するステップと、及び
最高類似性スコアを有する前記命令キャリブレーションテーブル候補の一つを選択して命令キャリブレーションテーブルとするステップと、を含む、
ことを特徴とする請求項１０に記載の機械可読媒体。
【請求項１８】
前記第１運転統計データセットと前記第２運転統計データセットを比較するステップと、類似性スコアを計算するステップは、
特定のタイミングで測定された第１運転統計データセットのそれぞれのサブセットに対して、
測定された車両から第１速度、出力された第１制御命令と第１応答を取得し、
命令キャリブレーション候補で検索処理を実行して、前記第１速度と前記第１制御命令に相対的にマッチングする第２速度と第２制御命令を有するエントリを見つけ、
前記第１応答と前記マッチングエントリから取得した第２応答との間の差を計算するステップと、及び
リアルタイムで測定された応答と前記命令キャリブレーションテーブル候補からの予めに記録された応答との間の平均差に基づいて、前記命令キャリブレーションテーブル候補の類似性スコアを計算するステップと、を含む、
ことを特徴とする請求項１７に記載の機械可読媒体。
【請求項１９】
プロセッサと、及び
指令を保存するために、前記プロセッサに接続されるメモリと、を含む、データ処理システムであって、
前記指令が前記プロセッサによって実行される場合、前記プロセッサに処理を実行させ、
前記処理は、
自動運転車両（ＡＤＶ）を制御するように第１制御命令を受信するステップと、
前記第１制御命令に応答して、前記ＡＤＶの標準運転環境における現在の速度に基づいて、前記ＡＤＶの予想加速度を確定するステップと、
前記ＡＤＶに関連する現在の運転環境に基づいて、複数の命令キャリブレーションテーブル中の一つの命令キャリブレーションテーブルを選択するステップと、
前記ＡＤＶの現在の速度と予想加速度に基づいて、選択した命令キャリブレーションテーブルで検索処理を実行して、第２制御命令を取得するステップと、及び
前記ＡＤＶを制御するように前記第２制御命令を出力するステップと、を含む、
ことを特徴とするデータ処理システム。
【請求項２０】
前記各命令キャリブレーションテーブルは、それぞれ複数のエントリを含み、
それぞれのエントリは、特定の運転環境で出力された命令に応答して、出力された命令、前記命令を出力するときの速度及び加速度を、マッピングする、
ことを特徴とする請求項１９に記載のデータ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の実施形態は、全体的に自動運転車両の処理に関する。さらに具体的に、本開示の実施形態は、所定の命令キャリブレーションテーブルを使用するＬ２自動運転に関する。
【背景技術】
【０００２】
自動運転モード（例えば、無人運転）で動作する車両は、運転に関連する義務から乗客（特に、運転者）を開放することができる。自動運転モードで動作する場合、車両は、車両センサーを使用して各位置にナビゲートすることができ、車両が最少のヒューマンインタラクションの状況、または乗客のない状況で運転することができるようにする。
【０００３】
動作の計画と制御は、自動運転における重要な処理である。しかし、従来の動作計画処理は、異なるタイプの車両の特徴の違いに関係なく、主に曲率と速度に従って特定のパスを完成させる難しさを推定する。同じ動作計画と制御は、すべてのタイプの車両に適用され、すべての道路状況に対して同じ処理を行うが、これは、場合によっては不正確且つ滑らかではない。具体的に、車両の運転中に車両の積載量を推定し、車両の積載量を補償することは困難である。
【０００４】
自動運転は、レベル０（Ｌ０）からレベル５（Ｌ５）までのいくつかのレベルに限定することができる。レベル２またはＬ２において、クルーズコントロール及び車線のセンタリングと類似に、運転環境に関連する情報を使用するステアリングシステム及び加速／減速システムの少なくとも一つは自動化である。これは、運転者は、彼または彼女がハンドルとフットペダルから同時に手から離すことにより、車両から物理的に解放されることを意味する。しかし、運転者は常に車両を制御する準備ができている必要がある。人間の運転者がアクセルペダルを踏むか、ハンドルを回す場合、運転者は運転者の期待に応じて車両が反応することを望む。しかし、特定の運転環境（例えば、厳しい天気状況、起伏のある道路）では、車両が期待に応えることができない場合がある。これらの状況を補う効果的な方法がない。
【発明の概要】
【０００５】
本開示の一つの態様において、自動運転車両を処理するためのコンピュータ実施方法を提供する。上記方法は、自動運転車両（ＡＤＶ）を制御するように第１制御命令を受信するステップと、前記第１制御命令に応答して、前記ＡＤＶの標準運転環境における現在の速度に基づいて、前記ＡＤＶの予想加速度を確定するステップと、前記ＡＤＶに関連する現在の運転環境に基づいて、複数の命令キャリブレーションテーブル中の一つの命令キャリブレーションテーブルを選択するステップと、前記ＡＤＶの現在の速度と予想加速度に基づいて、選択した命令キャリブレーションテーブルで検索処理を実行して、第２制御命令を取得するステップと、及び前記ＡＤＶを制御するように前記第２制御命令を出力するステップと、を含む。
【０００６】
本開示のもう一つの態様において、指令が記憶された非一時的（不揮発性）な機械可読媒体を提供する。前記指令がプロセッサによって実行されるときに、前記プロセッサに処理を実行させ、前記処理は、自動運転車両（ＡＤＶ）を制御するように第１制御命令を受信するステップと、前記第１制御命令に応答して、前記ＡＤＶの標準運転環境における現在の速度に基づいて、前記ＡＤＶの予想加速度を確定するステップと、前記ＡＤＶに関連する現在の運転環境に基づいて、複数の命令キャリブレーションテーブル中の一つの命令キャリブレーションテーブルを選択するステップと、前記ＡＤＶの現在の速度と予想加速度に基づいて、選択した命令キャリブレーションテーブルで検索処理を実行して、第２制御命令を取得するステップと、及び前記ＡＤＶを制御するように前記第２制御命令を出力するステップとを含む。
【０００７】
本開示の更なる態様によれば、プロセッサと、及び指令を保存するために、前記プロセッサに接続されるメモリと、を含む、データ処理システムを提供する。前記指令が前記プロセッサによって実行される場合、前記プロセッサに処理を実行させ、前記処理は、自動運転車両（ＡＤＶ）を制御するように第１制御命令を受信するステップと、前記第１制御命令に応答して、前記ＡＤＶの標準運転環境における現在の速度に基づいて、前記ＡＤＶの予想加速度を確定するステップと、前記ＡＤＶに関連する現在の運転環境に基づいて、複数の命令キャリブレーションテーブル中の一つの命令キャリブレーションテーブルを選択するステップと、前記ＡＤＶの現在の速度と予想加速度に基づいて、選択した命令キャリブレーションテーブルで検索処理を実行して、第２制御命令を取得するステップと、及び前記ＡＤＶを制御するように前記第２制御命令を出力するステップとを含む。
【図面の簡単な説明】
【０００８】
本開示の実施形態は、添付されたそれぞれの図面において限定ではなく、例示として示され、図面において類似の参照符号は、類似の素子を指す。
【図１】一実施形態に係るネットワーク化されたシステムを示すブロック図である。
【図２】一実施形態に係る自動運転車両の例示を示すブロック図である。
【図３Ａ】一実施形態に係る自動運転車両と一緒に使用される感知及び計画システムの例示を示すブロック図である。
【図３Ｂ】一実施形態に係る自動運転車両と一緒に使用される感知及び計画システムの例示を示すブロック図である。
【図４】一実施形態に係る運転環境と一つのまたは複数のキャリブレーションテーブルのセットとの間の関係を示すブロック図。
【図５Ａ】一実施形態に係る運転環境カテゴリのセットを示すブロック図である。
【図５Ｂ】一実施形態に係るキャリブレーションテーブルの例示を示すブロック図である。
【図６】一実施形態に係る運転環境に基づいて制御命令を決定するプロセスを示す図である。
【図７】一実施形態に係るキャリブレーションテーブルを選択するプロセスを示すフローチャートである。
【図８】一実施形態に係る命令キャリブレーションテーブルを使用して制御命令を決定するプロセスを示すフローチャートである。
【図９】一実施形態に係るキャリブレーションテーブルを作成するプロセスを示すフローチャートである。
【図１０】一実施形態に係るデータ処理システムを示すブロック図である。
【発明を実施するための形態】
【０００９】
本開示の様々な実施形態及び態様は、以下で議論される詳細を参照して説明され、図面は前記様々な実施形態を示す。以下の説明及び図面は、本開示を説明するものであり、限定するものとして解釈されるべきではない。本開示の様々な実施形態の包括的な理解を提供するために、多くの特定の詳細が記載されている。しかし、本開示の実施形態の簡単な説明を提供するために、周知または通常の詳細は説明されていない。
【００１０】
本明細書における「一実施形態」または「実施形態」の列挙は、当該実施形態に結び付いて説明される特定の特徴、構造、または特性が本開示の少なくとも一つの実施形態に含まれ得ることを意味する。「一実施形態において」は、本明細書の各所に記載は、必ずしもすべて同じ実施形態を指していることではない。
【００１１】
いくつかの実施形態によれば、所定のキャリブレーションテーブルのセットを利用して、異なる特定の運転環境に使用される制御命令を調整または補正を支援する。キャリブレーションテーブルは、異なる運転環境（例えば、異なる車両の積載量、天気状況及び道路面状況など）で運転する様々な車両から収集した運転統計データに基づいて、オフラインで作成されることができる。所定の運転環境カテゴリごとに少なくとも一つの命令キャリブレーションテーブルを作成する。当該プロセスは、様々な運転環境で運転される様々な車両からデータを収集するために、サーバでオフラインで実行されることができる。そして、予想された車両状態（例えば、加速度、ステアリング角度）に応答して適切な制御命令をリアルタイムで確定するために、キャリブレーションテーブルを自動運転車両（ＡＤＶ）にアップデートすることができる。
【００１２】
リアルタイムで、自動運転車両（ＡＤＶ）が一定時間運転し、運転統計データのセットを収集した後、運転統計データから推定された運転環境を命令キャリブレーションテーブルに対応する所定の運転環境カテゴリにマッチングさせることにより、命令キャリブレーションテーブル中の一つを選択する。そして、リアルタイムで命令を計算することなく、検索処理に沿ってＡＤＶを運転するために、後続の運転サイクルで選択された命令キャリブレーションテーブルを利用して制御命令を生成することができる。
【００１３】
運転者から受信した制御命令（例えば、アクセル命令、ブレーキ命令、ステアリング命令）中のそれぞれに対して、制御命令に応答して、標準キャリブレーションテーブルを利用して車両の予想結果（例えば、加速度、ステアリング角度変化）を確定する。標準キャリブレーションテーブルは、乾燥した道路、平坦な路面、正常的なタイヤ圧力及び空の積載量などの理想的な運転環境を表す。予想結果に基づいて、選択したキャリブレーションテーブルに他の検索処理を実行することにより、予想結果にマッチングするエントリを見つける。マッチングするエントリから第２制御命令を取得する。そして、第２制御命令を車両に出力して車両を制御することにより、運転者は現在の運転環境から標準運転環境での運転結果と同じ結果を経験される。
【００１４】
一実施形態によれば、ＡＤＶからの運転者の第１制御命令に応答し、ＡＤＶの第１制御命令に応答した予想加速度は、標準運転環境（例えば、乾燥した道路、平坦な路面、正常的なタイヤ圧力、ゼロ積載量）でのＡＤＶの現在の速度によって決定される。当該タイミングでのＡＤＶの現在の運転環境に基づいて、命令キャリブレーションテーブル中の一つを選択する。ＡＤＶの現在の速度と予想加速度に基づいて第２制御命令を取得するために、選択した命令キャリブレーションテーブルで検索処理を実行する。そして、第２制御命令をＡＤＶに出力してＡＤＶを制御する。その結果、ＡＤＶは、現在の運転環境で、ＡＤＶが標準運転環境で運転時の加速度と同じ加速度を実現する。
【００１５】
一実施形態において、それぞれの命令キャリブレーションテーブルは、天気状況（例えば、乾燥または湿潤）、道路面状況（例えば、平坦度または起伏程度）及び車両の積載量状況（タイヤ圧力で表すことができる）のような特定の運転環境または運転状況に関連する。即ち、それぞれの命令キャリブレーションテーブルは、天気状況、道路面状況と積載量状況の一意の組み合わせに対応する。例えば、第１運転状況は、乾燥した道路、平坦な路面と無積載量状況（例えば、ただ一人の人間運転者、他の積載量なし）を含むことができ、第２運転状況は、湿潤な道路、平坦な路面及び５０キログラム（ｋｇ）積載量状況などであることができる。命令キャリブレーションテーブルに関連する特定の運転環境で運転する一つまたは複数の車両から収取した運転統計データに基づいて、それぞれの命令キャリブレーションテーブルを作成する。これは、出力された異なる制御命令をキャプチャし、及び車両からのフィードバックまたは応答（例えば、異なるタイミングでの速度と加速度）を測定することと含む。
【００１６】
一実施形態において、選択した命令キャリブレーションテーブルプールは、当該タイミングでの運転状況に基づいて、動的に命令キャリブレーションテーブルプールから定期的に選択される。運転状況が変化すると、後続の制御命令を決定するために、異なる命令キャリブレーションテーブルを選択することができる。一実施形態によれば、プールから命令キャリブレーションテーブルを選択する際、特定の運転環境でＡＤＶを運転する間に、ＡＤＶから第１運転統計データセットを収集する。現在の運転環境に関連する命令キャリブレーションテーブルプールから命令キャリブレーションテーブル候補のセットを認識する。第１運転統計データセット（例えば、速度、制御命令、加速度）と、それぞれの命令キャリブレーション候補から取得した第２運転統計データセットとを比較する。当該比較に基づいて、それぞれの命令キャリブレーション候補の類似性スコアを計算する。類似性スコアは、リアルタイムで収集した運転統計データと、以前に確定されたキャリブレーションテーブルに記憶された運転統計データとの間の類似性を表す。そして、最高類似性スコアを有する命令キャリブレーションテーブル候補の一つを選択する。
【００１７】
一実施形態において、選択した命令較正の検索処理を実行するプロセスは、命令キャリブレーションテーブルを選択するプロセスと異なる実行スレッドを使用して実行することができ、これらの実行スレッドは、異なるプロセッサまたは同じプロセッサの異なるプロセッサコアによって実行されることができる。
【００１８】
図１は、本開示の一実施形態に係る自動運転車両ネットワーク構成のブロック図である。図１を参照すると、ネットワーク構成１００は、ネットワーク１０２を介して一つまたは複数のサーバ１０３乃至１０４に通信可能に接続され得る自動運転車両１０１を含む。一つの自動運転車両を示したが、複数の自動運転車両がネットワーク１０２を介してお互いにおよび／またはサーバ１０３乃至１０４に接続されることができる。ネットワーク１０２は、有線または無線ローカルエリアネットワーク（ＬＡＮ）、セルラーネットワーク、衛星ネットワークまたはそれらの組合せなどのウェブのワイドエリアネットワーク（ＷＡＮ）のような任意のタイプのネットワークであることができる。サーバ１０３乃至１０４は、ネットワークまたはクラウドサーバ、アプリケーションサーバ、バックエンドサーバまたはそれらの組合せなどの任意のタイプのサーバまたはサーバのクラスターであることができる。サーバ１０３乃至１０４は、データ分析サーバ、コンテンツサーバ、交通情報サーバ、地図及びポイントオブインタレスト（ＭＰＯＩ）サーバまたはロケーションサーバなどであることができる。
【００１９】
自動運転車両とは、運転者からの入力がほとんどまたは全くない環境をナビゲートする自動運転モードに設定できる車両を指す。このような自動運転車両は、センサーシステムを含むことができ、前記センサーシステムは、車両運転環境に関連する情報を検出するように構成される一つまたは複数のセンサーを含む。前記車両とそれに関連するコントローラーは、検出された情報を使用して環境をナビケートする。自動運転車両１０１は、手動モード、完全自動運転モードまたは部分的自動運転モードで動作する。
【００２０】
一実施形態において、自動運転車両１０１は、感知及び計画システム１１０、車両制御システム１１１、無線通信システム１１２、ユーザインターフェースシステム１１３、インフォテインメントシステム１１４及びセンサーシステム１１５を含むが、これらに限定されない。自動運転車両１０１は、エンジン、ホイール、ステアリングホイール、変速機などの通常の車両に含まれる特定の共通コンポーネントをさらに含むことができ、前記コンポーネントは、車両制御システム１１１および／または感知及び計画システム１１０によって、様々な通信信号および／または命令を使用して制御されることができ、当該様々な通信信号および／または命令は、加速信号または命令、減速信号または命令、ステアリング信号または命令、ブレーキ信号または命令などであってもよい。
【００２１】
コンポーネント１１０乃至１１５は、インターコネクト（相互接続）、バス、ネットワークまたはそれらの組合せを介してお互いに通信可能に接続されることができる。例えば、コンポーネント１１０乃至１１５は、コントローラーローカルエリアネットワーク（ＣＡＮ）バスを介してお互いに通信可能に接続されることができる。ＣＡＮバスは、ホストコンピューターなしでアプリケーションでマイクロコントローラーとデバイスが相互に通信できるように設計された車両バス標準である。これは、最初は自動車内の多重電気配線用に設計されたメッセージベースのプロトコルであるが、他の多くの環境でも使用される。
【００２２】
図２を参照すると、一実施形態において、センサーシステム１１５は、一つまたは複数のカメラ２１１、全地球測位システム（ＧＰＳ）ユニット２１２、慣性測定ユニット（ＩＭＵ）２１３、レーダーユニット２１４及び光検出と測距（ＬＩＤＡＲ）ユニット２１５を含むが、これらに限定されない。ＧＰＳユニット２１２は、自動運転車両の位置に関連する情報を提供するように処理可能なトランシーバを含む。ＩＭＵユニット２１３は、慣性加速度に基づいて自動運転車両の位置及び配向変更を感知することができる。レーダーユニット２１４は、無線信号を利用して自動運転車両のローカル環境内の対象を検知するシステムを表すことができる。いくつかの実施形態において、対象の検知以外に、レーダーユニット２１４は、対象の速度および／または進行方向をさらに検知することができる。ＬＩＤＡＲユニット２１５は、レーザーを使用して自動運転車両が配置されている環境中の対象を検知することができる。他のシステムコンポーネント以外に、ＬＩＤＡＲユニット２１５は、一つまたは複数のレーザー源、レーザースキャナー及び一つまたは複数の検出器をさらに含むことができる。カメラ２１１は、自動運転車両の周囲環境の画像を収集するための一つまたは複数のデバイスを含むことができる。カメラ２１１は、スチルカメラおよび／またはビデオカメラであることができる。カメラは、回転および／または傾斜されたプラットフォームにカメラを取り付けることにより、機械的に移動可能であってもよい。
【００２３】
センサーシステム１１５は、ソナーセンサー、赤外線センサー、ステアリングセンサー、アクセルセンサー、ブレーキセンサー、及び音声センサー（例えば、マイク）などの他のセンサーをさらに含むことができる。オーディオセンサーは、自動運転車両を取り巻く環境からの音をキャプチャするように構成することができる。ステアリングセンサーは、ステアリングホイール、車両のホイールまたはそれらの組合せのステアリング角度を感知するように構成されることができる。アクセルセンサーとブレーキセンサーは、車両のアクセル位置とブレーキ位置をそれぞれ感知する。場合によって、アクセルセンサーとブレーキセンサーは、アクセル／ブレーキセンサーとして統合されることができる。
【００２４】
一実施形態において、車両制御システム１１１は、ステアリングユニット２０１、アクセルユニット２０２（加速ユニットとも呼ばれる）とブレーキユニット２０３を含むが、これらに限定されない。ステアリングユニット２０１は、車両の方向または進行方向を調整するために使用される。アクセルユニット２０２は、モーターまたはエンジンの速度を制御するために使用され、モーターまたはエンジンの速度は、さらに車両の速度と加速度を制御する。ブレーキユニット２０３は、摩擦を提供することにより車両のホイールまたはタイヤを減速させ、車両を減速させる。注意すべきなのは、図２に示されたコンポーネントは、ハードウェア、ソフトウェアまたはそれらの組合せで実現することができる。
【００２５】
図１に戻ると、無線通信システム１１２は、自動運転車両１０１とデバイス、センサー、他の車両などのような外部システムとの間の通信を可能にするものである。例えば、無線通信システム１１２は、一つまたは複数のデバイスと直接に無線通信することができ、または通信ネットワークを介して無線通信することができ、例えば、ネットワーク１０２とサーバ１０３乃至１０４を介して通信する。無線通信システム１１２は、他のコンポーネントまたはシステムと通信するために、ＷｉＦｉのような任意のセルラーネットワークまたは無線ローカルエリアネットワーク（ＷＬＡＮ）を使用することができる。無線通信システム１１２は、例えば赤外線リンク、ブルートゥース（登録商標）などを使用して、デバイス（例えば、乗客のモバイルデバイス、ディスプレイデバイス、車両１０１内のスピーカー）と直接通信することができる。ユーザインターフェースシステム１１３は、例えば、キーボード、タッチスクリーンディスプレイデバイス、マイクロフォン、およびスピーカーなどを含む車両１０１内で実装される周辺デバイスの一部であることができる。
【００２６】
自動運転車両１０１の機能中の一部または全部は、特に、自動運転モードで処理する場合、感知及び計画システム１１０によって制御または管理することができる。感知及び計画システム１１０は、センサーシステム１１５、制御システム１１１、無線通信システム１１２および／またはユーザインターフェースシステム１１３から情報を受信し、受信した情報を処理し、出発地点から目的地点までの経路または経路を計画し、その後、計画及び制御情報に基づいて車両１０１を運転するために、必要なハードウェア（例えば、プロセッサ、メモリ、ストレージ）とソフトウェア（例えば、処理システム、計画及びルーティングプログラム）を含む。
【００２７】
例えば、乗客としてのユーザーは、例えばユーザーインターフェースにょつて旅程の開始位置と目的地を指定することができる。感知及び計画システム１１０は、旅程に関連するデータを取得する。例えば、感知及び計画システム１１０は、ＭＰＯＩサーバから位置とルート情報を取得することができ、前記ＭＰＯＩサーバは、サーバ１０３乃至１０４の一部であることができる。ロケーションサーバは、ロケーションサービスを提供し、ＭＰＯＩサーバは地図サービスと特定の位置のＰＯＩを提供する。代替的に、このような位置及びＭＰＯＩ情報は、感知及び計画システム１１０の永続的（不揮発性）記憶装置にローカルにキャッシュされてもよい。
【００２８】
自動運転車両１０１がルートを沿って移動する場合、感知及び計画システム１１０は、交通情報システムまたはサーバ（ＴＩＳ）からリアルタイム交通情報を取得することもできる。注意すべきなのは、サーバ１０３乃至１０４は、サードパーティのエンティティによって処理されることができる。代替的に、サーバ１０３乃至１０４の機能は、感知及び計画システム１１０と統合されることができる。リアルタイム交通情報、ＭＰＯＩ情報と位置情報及びセンサーシステム１１５によって検出または感知されたリアルタイムローカル環境データ（例えば、障害物、オブジェクト、近くの車両）に基づいて，感知及び計画システム１１０は、最適なルートを計画することができ、計画されたルートは、指定された目的地に安全かつ効率的に到達するために、例えば制御システム１１１を介して車両１０１を運転することができる。
【００２９】
サーバ１０３は、様々なクライアントのためのデータ分析サービスを実行するためのデータ分析システムであることができる。一実施形態において、データ分析システム１０３は、データ収集器１２１及び機械学習エンジン１２２を含む。データ収集器１２１は、様々な車両（自動運転車両または人間運転者によって運転される通常の車両）から運転統計データ１２３を収集する。運転統計データ１２３は、異なるタイミングで出力された運転命令（例えば、アクセル命令、ブレーキ命令、ステアリング命令）及び車両のセンサーによって捕捉された車両の応答（例えば、速度、加速、減速、方向）を表す情報を含む。運転統計データ１２３は、例えばルート（開始位置と目的地位置を含む）、ＭＰＯＩ、道路状況、天気状況などの異なるタイミングでの運転環境を説明する情報をさらに含むことができる。
【００３０】
運転統計データ１２３に基づいて、機械学習エンジン１２２は、さまざまな目的のために、規則、アルゴリズム、および／または予測モデル１２４のセットを生成または訓練する。一実施形態において、アルゴリズム１２４は、感知、計画、及び制御プロセスのアルゴリズムを含むことができ、これについては以下でさらに詳細に説明する。そして、アルゴリズム１２４をＡＤＶにアップロードして、自動運転中にリアルタイムで使用することができる。
【００３１】
また、一実施形態によれば、サーバ１０３は、キャリブレーションテーブルジェネレータ１２５を維持することができ、当該キャリブレーションテーブルジェネレータ１２５は、特定の運転統計データ１２３に基づいて、異なる運転環境または運転状況の下で複数の命令キャリブレーションテーブルを生成するように構成され、特定の運転統計データ１２３は、同じまたは類似した運転環境の下で収集される。例えば、一つまたは複数の車両は、特定の運転環境カテゴリ（例えば、乾燥した道路、起伏のある路面、５０ｋｇの積載量）で運転されることができる。運転期間に、異なるタイミングでの運転統計データ（例えば、速度、出力された命令と命令に応答した車両加速度）を測定及び収集することができる。そして、同じまたは類似した運転状況で収集した運転統計データをキャリブレーションテーブルに充填することができる。当該例示において、命令キャリブレーションテーブルに充填され、当該命令キャリブレーションテーブルは、同じまたは類似した運転環境で命令を補正するように配置される。
【００３２】
天気状況、道路面状況、タイヤ圧力状況、および／または積載量状況などの特定の運転パラメータを使用して予め定義された複数の所定の運転環境カテゴリが存在する。他のパラメータを使用して、運転環境（運転状況とも呼ばれる）を定義することもできる。図４に示すように、所定の運転環境ごとに、少なくとも一つの命令キャリブレーションテーブルが作成される。
【００３３】
図４を参照すると、所定の運転環境４００のセットに対して、同じまたは類似した運転環境で運転する一つまたは複数の車両から収集した運転統計データに基づいて、命令キャリブレーションテーブルを作成する。当該例示において、運転環境４０１乃至４０３は、命令キャリブレーションテーブル４１１乃至４１３にそれぞれ関連する。所定の運転環境４０１乃至４０３中のそれぞれは、他の運転環境と比較して一意である。
【００３４】
一実施形態において、図５Ａを参照すると、運転環境は、天気状況５０１、道路面状況５０２、タイヤ圧力状況５０３および／または積載量状況５０４との少なくとも三つのパラメータによって定義される。これらは、運転環境に対して定義するパラメータの例示中の一部だけであり、他の要因を使用及び検討することもできる。天気状況５０１は、１）乾燥した道路状況と、２）湿潤な道路状況を含むことができる。道路面状況５０２は、１）平坦な表面、２）起伏のある表面、及び３）混合した表面を含むことができる。タイヤ圧力状況５０３は、１）高圧、２）正常圧、及び３）低圧を含むことができる。タイヤ圧力は、現在の車両の積載量を直接または間接的に表すことができる。代替的に、タイヤ圧力状況は、簡単に、積載量のない状況でのタイヤのタイヤ圧力（人間運転者を除く）を表すことができる。このような配置において、運転環境は、積載量状況パラメータ（例えば、５０ｋｇ、１００ｋｇ、１５０ｋｇ．．．．．．１０００ｋｇ）をさらに含むことができる。代替的に、天気状況、道路面状況及びタイヤ圧力状況によって定義されたそれぞれの運転環境は、命令キャリブレーションテーブルのセットを備える。当該セット中のそれぞれのキャリブレーションテーブルは、特定の積載量に関連する。
【００３５】
これらのパラメータは、カメラまたは圧力センサーなどのような適切なセンサーを使用して測定及び確定することができる。従って、環境パラメータのユニークな組合わせで表される複数の運転環境が存在する。例えば、第１運転環境は、乾燥した道路、平坦な路面及び高タイヤ圧力の組合せであることができ、第２運転環境は、乾燥した道路、起伏のある路面及び高タイヤ圧力などの組合せに基づいて定義されることができ、選択的に、積載量状況を備える。それぞれの所定の運転環境には、図5Bに示された少なくとも一つの命令キャリブレーションテーブルが存在する。一つのキャリブレーションテーブルは、乾燥した道路、平坦な路面、正常的なタイヤ圧力及びゼロ積載量などの標準的な運転環境または理想的な運転環境に関連する。このようなキャリブレーションテーブルは、標準キャリブレーションテーブルと呼ばれる。
【００３６】
図５Ｂを参照すると、命令キャリブレーションテーブル５５０は、図４に示すキャリブレーションテーブル４１１乃至４１３中のいずれか一つを表すことができる。キャリブレーションテーブル５５０は、複数のエントリを含む。それぞれのエントリは、制御命令５５１のタイプに従って、特定の制御命令５５１と速度５５２を、加速度５５３またはステアリング角度５５４に、マッピングする。これらのデータは、上記の同じまたは類似した対応する運転環境で運転する一つまたは複数の車両からキャプチャ及び収集される。制御命令５５１は、現在の速度５５２で出力されたアクセルまたはブレーキ命令であることができる。車両からの応答は、加速度５５３であることができ、ここで、正の値は加速を表し、負の値は減速を表す。制御命令５５１はステアリング命令であることができ、車両の応答はステアリング角度５５４（現在のステアリング角度ステアリングからの角度）であることができる。代替的に、個別のキャリブレーションテーブルは、アクセル／ブレーキ命令とステアリング命令に使用されることができる。そして、自動運転中に制御命令をリアルタイムで補正するために、キャリブレーションテーブル（例えば、図３Ａ乃至図３Ｂのキャリブレーションテーブル３１４）を自動運転車両にアップロードする。
【００３７】
図３Ａと図３Ｂは、一実施形態による自動運転車両と一緒に使用される感知及び計画システムの例示を示すブロック図である。システム３００は、図１の自動運転車両１０１の一部として実現することができ、感知及び計画システム１１０、制御システム１１１及びセンサーシステム１１５を含むが、これらに限定されない。図３Ａ乃至図３Ｂを参照すると、感知及び計画システム１１０は、位置決めモジュール３０１、感知モジュール３０２、予測モジュール３０３、決定モジュール３０４、計画モジュール３０５、制御モジュール３０６、ルーティングモジュール３０７及び命令キャリブレーションモジュール３０８を含むが、これらに限定されない。
【００３８】
一部または全部のモジュール３０１乃至３０８は、ソフトウェア、ハードウェアまたはそれらの組合せで実装されることができる。例えば、これらのモジュールは、永続的（不揮発性）記憶装置３５２にインストールされ、メモリ３５１にロードされ、一つまたは複数のプロセッサ（図示せず）によって実行されることができる。注意すべきなのは、これらの一部または全部モジュールは、図２の車両制御システム１１１の一部または全部モジュールに通信可能に結合または統合される。一部のモジュール３０１乃至３０８は、統合モジュールとして統合されることができる。例えば、命令キャリブレーションモジュール３０８は、計画モジュール３０５および／または制御モジュール３０６の一部として統合されることができる。
【００３９】
位置決めモジュール３０１（例えば、ＧＰＳユニット２１２を利用する）は、自動運転車両３００の現在の位置を確定し、ユーザーの旅程またはルートに関連する任意のデータを管理する。位置決めモジュール３０１（地図とルートモジュールとも呼ばれる）は、ユーザーの旅程またはルートに関連する任意のデータを管理する。ユーザーは、例えば、ユーザーインターフェースにログインして、旅程の開始位置と目的地を指定することができる。位置決めモジュール３０１は、自動運転車両３００の地図とルート情報３１１などの他のコンポーネントと通信して、旅程に関連するデータを取得する。例えば、位置決めモジュール３０１は、ロケーションサーバと地図及びＰＯＩ（ＭＰＯＩ）サーバから位置とルート情報を取得することができる。ロケーションサーバは、ロケーションサービスを提供し、ＭＰＯＩサーバは地図サービスと特定の位置のＰＯＩを提供して、地図とルート情報３１１の一部としてキャッシュされることができる。自動運転車両３００がルートを沿って移動する場合、位置決めモジュール３０１は、交通情報システムまたはサーバからリアルタイム交通情報を取得することもできる。
【００４０】
センサーシステム１１５によって提供されたセンサーデータと位置決めモジュール３０１によって取得された位置決め情報に基づいて、感知モジュール３０２は、周囲環境に対する感知を決定する。感知情報は、通常の運転者が運転中の車両の周囲で感知するものを表すことができる。感知は、例えば、オブジェクトの形式を使用した車線構成、信号機、別の車両の相対位置、歩行者、建物、横断歩道、またはその他の交通関連標識（例えば、一時停止標識、譲れの標識）などを含むことができる。車線配置は、例えば、車線の形状（例えば、直線または曲率）、車線の幅、道路内の車線の数、片道または双方向車線、合流車線または迂回車線、出口車線などの一つまたは複数の車線を説明する情報を含む。
【００４１】
感知モジュール３０２は、自動運転車両の環境中のオブジェクトおよび／または特徴を認識するために、一つまたは複数のカメラによってキャプチャされた画像を処理及び分析するコンピュータビジョンシステムまたはコンピュータビジョンシステムの機能を含むことができる。前記オブジェクトは、交通信号、道路の境界、他の車両、歩行者、および／または障害物などを含むことがでる。コンピュータビジョンシステムは、オブジェクト認識アルゴリズム、ビデオ追跡、及び他のコンピュータビジョン技術を使用することができる。いくつかの実施形態において、コンピュータビジョンシステムは、環境をマッピングし、オブジェクトを追跡し、オブジェクトの速度などを推定することができる。感知モジュール３０２は、レーダーおよび／またはＬＩＤＡＲなどの他のセンサーによって提供される他のセンサーデータに基づいてオブジェクトを検出することもできる。
【００４２】
それぞれのオブジェクトについて、予測モジュール３０３は、前記状況で前記オブジェクトがどのような動作をするかを予測する。特定のタイミングで感知した運転環境の感知データに基づいて、地図／ルート情報３１１及び交通ルール３１２のセットに従って前記予測を実行する。例えば、オブジェクトが反対方向の車両であり、現在の運転環境が交差点を含む場合、予測モジュール３０３は、当該車両が前に直進するか、曲がるかを予測する。感知データが交差点に信号機がないと示す場合、予測モジュール３０３は、当該車両が交差点に入る前に完全に停止することを予測することができる。感知データが当該車両が現在左折専用車線または右折専用車線にあることを示す場合、予測モジュール３０３は、当該車両が左折する可能性が高いか、右折する可能性が高いかをそれぞれ予測することができる。
【００４３】
それぞれのオブジェクトについて、決定モジュール３０４は、オブジェクトをどのように扱うかを決定する。例えば、特定のオブジェクト（例えば、交差ルートでの他の車両）及びオブジェクトを説明するメタデータ（例えば、速度、方向、回転角度）について、決定モジュール３０４は、前記オブジェクトとどのように遭遇（例えば、追い越し、道を譲る、停止、経過）するかを決定する。決定モジュール３０４は、永続的（不揮発性）記憶装置３５２に保存されることができる交通ルールまたは運転ルール３１２のルールのセットに従って、このような決定を行うことができる。
【００４４】
ルーティングモジュール３０７は、出発点から目的地までの一つまたは複数のルートまたは経路を提供するように構成される。例えば、ユーザーから受信した開始位置から目的地位置までの所定の旅程について、ルーティングモジュール３０７は、地図とルート情報３１１を取得し、開始位置から目的地位置に到達するすべての可能なルートまたは経路を決定する。ルーティングモジュール３０７は、地形図の形態で基準線路を生成することができる。基準線路は、例えば、他の車両、障害物または交通状況の他の干渉のない理想的なルートまたは理想的な経路を表す。即ち、道路に他の車両、歩行者または障害物がない場合、ＡＤＶは、基準線路を従う必要がある。その後、決定モジュール３０４および／または計画モジュール３０５に地形図を提供することができる。他のモジュールによって提供される他のデータ（例えば、位置決めモジュール３０１からの交通情報、感知モジュール３０２によって感知された運転環境と予測モジュール３０３によって予測された交通状況）に従って、決定モジュール３０４および／または計画モジュール３０５は、考えられるすべてのルートを検査して、最適なルート中の一つを選択及び修正する。特定のタイミングでの特定の運転環境に従って、ＡＤＶを制御するための実際の経路またはルートは、ルーティングモジュール３０７によって提供される基準線路に近いか、異なることができる。
【００４５】
感知されたオブジェクトのそれぞれの決定に基づいて、計画モジュール３０５は、ルーティングモジュール３０７によって提供された基準線路をベースとして使用し、自動運転車両のために経路またはルート及び運転パラメータ（例えば、距離、速度および／または回転角度）を計画する。即ち、所定のオブジェクトについて、決定モジュール３０４は、当該オブジェクトに何をするかを決定し、計画モジュール３０５は、どのようにするかを決定する。例えば、所定のオブジェクトについて、決定モジュール３０４は、前記オブジェクトを追い越すことを決定することができ、計画モジュール３０５は、前記オブジェクトの左側を通過するか右側を通過するかを決定することができる。計画及び制御データは、計画モジュール３０５によって生成され、車両３００が次の移動サイクルの（例えば、次のルート／経路セグメント）でどのように移動するかを説明する情報を含む。例えば、計画及び制御データは、車両３００が３０マイルの時速（ｍｐｈ）の速度で１０メートルを移動し、２５ｍｐｈの速度で右側の車線に変更することを指示することができる。
【００４６】
計画及び制御データに基づいて、制御モジュール３０６は、計画及び制御データによって定義されたルートまたは経路に従って、適切な命令または信号を車両制御システム１１１に出力して、自動運転車両を制御及び運転する。前記計画及び制御データは、十分な情報を含み、経路またはルートに沿って異なるタイミングで適切な車両の設置または運転パラメータ（例えば、アクセル、ブレーキ及びステアリング命令）を使用して、車両をルートまたは経路の第１点から第２点に運転する。
【００４７】
一実施形態において、計画段階は、複数の計画サイクル（運転サイクルとも呼ばれる）で実行され、例えば１００ミリ秒（ｍｓ）の時間間隔ごとなどで実行される。それぞれの計画サイクルまたは運転サイクルは、計画及び制御データに基づいて一つまたは複数の制御命令を出力する。即ち、１００ｍｓごとに、計画モジュール３０５が次のルートセグメントまたは経路セグメントを計画し、例えば、目標位置とＡＤＶが当該目標位置に到達するのに必要な時間を含む。代替的に、計画モジュール３０５は、具体的な速度、方向および／またはステアリング角度などを指定することもできる。一実施形態において、計画モジュール３０５は、次の所定の期間（例えば、５秒）でルートセグメントまたは経路セグメントを計画する。それぞれの計画サイクルについて、計画モジュール３０５は、前のサイクルで計画した目標位置に基づいて現在のサイクル（例えば、次の５秒）のために目標位置を計画する。制御モジュール３０６は、その後現在のサイクルの計画及び制御データに基づいて一つまたは複数の制御命令（例えば、アクセル制御命令、ブレーキ制御命令、ステアリング制御命令）を生成する。
【００４８】
注意すべきなのは、決定モジュール３０４と計画モジュール３０５は、統合モジュールに統合されることができる。決定モジュール３０４／計画モジュール３０５は、自動運転車両の運転経路を決定するためのナビゲーションシステムまたはナビゲーションシステム機能を含むことができる。例えば、ナビゲーションシステムは、自動運転車両が以下の経路に沿って移動する一連のことを実現するための速度と進行方向を決定する：前記経路は、自動運転車両を最終目的地に至る車線の経路に沿って前進すると同時に、基本的に感知された障害物を回避する。目的地は、ユーザインターフェースシステム１１３を介して行われるユーザーの入力によって設定されることができる。ナビゲーションシステムは、自動運転車両が動作すると同時に、動的に運転経路を更新することができる。ナビゲーションシステムは、自動運転車両の運転経路を決定するために、ＧＰＳシステム及び一つまたは複数の地図からのデータを組み込むことができる。
【００４９】
一実施形態によれば、データ収集器（図示せず）は、ＡＤＶ３００が道路で運転すると同時に、様々なセンサーとモジュールから様々なデータを収集し、当該データを運転統計データ３１３の一部として記憶するように構成される。上記のように、運転統計データは、車両の異なるタイミングでの速度、ステアリング角度（例えば、進行方向）、出力された制御命令及び応答を含む。所定の期間後、キャリブレーションテーブル中の一つを指定された命令キャリブレーションテーブルとし、その後制御命令を補正するために、収集された運転統計データ３１３を使用して、命令キャリブレーションテーブル３１４の対応する統計データを照合する。
【００５０】
一実施形態において、統計データのそれぞれのサブセット（例えば、速度、命令及び命令に応答する車両の応答）に対して、それぞれの命令キャリブレーションテーブルで検索処理を実行する。リアルタイムで収集されたデータとキャリブレーションテーブルに記憶されたデータとの間の差に基づいて、それぞれのキャリブレーションテーブルに対して類似性スコアを計算する。後続のコマンドキャリブレーションのために、最高類似性スコアを有するキャリブレーションテーブルを選択する。
【００５１】
一実施形態において、所定の命令キャリブレーションテーブルに対して、サブセットのリアルタイムで測定された速度及び出力された命令に比較的マッチングするエントリ命令キャリブレーションテーブルのエントリを見つけるために検索を実行する。リアルタイムで測定された車両の応答（例えば、加速度、ステアリング角度）は、マッチングエントリから取得した以前にキャプチャされた応答と比較され、サブセットとマッチングエントリの差が確定される。統計データのすべてのサブセットに対して、すべてのサブセットの実際のデータとキャリブレーションテーブルに記憶されたデータとの間の平均差を計算する。平均差が最小で、類似性スコアが最高になるキャリブレーションテーブルを選択する。
【００５２】
例えば、キャリブレーションテーブルの選択プロセスは、車両を１分などの所定の期間を運転させる。このような期間内に、運転統計データ３１３の一部として車両の運転統計をキャプチャ及び記録する。一実施形態において、それぞれの運転サイクル（即ち、１００ｍｓごとに）に対して、少なくとも現在の速度／ステアリング角度、出力された制御命令及び当該タイミングで出力された制御命令に応答する車両の応答（例えば、加速度またはステアリング角度）を含む統計データのサブセットをキャプチャする。すべての期間（当該例示において、１分間）は、６００個のデータサブセットを有する。これらのデータサブセットを使用して、予め構成されたそれぞれの命令キャリブレーションテーブルにマッチングして、命令キャリブレーションテーブルにおいて、上記記述中の少なくとも一部のリアルタイムでキャプチャされた統計データのサブセットと最も類似する一つを認識する。目標は、現在の運転環境に関連するまたは現在の運転環境に近いキャリブレーションテーブルを見つけて、選択したキャリブレーションテーブルから派生した命令が現在の運転環境に最も適するようにすることである。
【００５３】
具体的に、所定の命令キャリブレーションテーブル中の一つについて、速度／ステアリング角度と出力された制御命令を比較することにより、６００個のデータサブセットのそれぞれを利用して、命令キャリブレーションテーブルのそれぞれのエントリに記憶されたデータを比較する。リアルタイムでキャプチャされた応答（例えば、加速度、ステアリング角度）とマッチングエントリからの対応する応答とを比較して、差を確定する。同じ命令キャリブレーションテーブルに対して、すべて６００個の統計データサブセットを処理した後、対応する命令キャリブレーションテーブルについて、リアルタイムで測定された応答とマッチングエントリからの予め記録された応答との間の平均差を計算する。そして、平均差が最小で、類似性スコアが最高になるキャリブレーションテーブルを選択する。当該平均差に基づいて類似性スコアを計算し、例えば、平均差が低いほど、類似性スコアは高くなる。
【００５４】
一実施形態において、当該タイミングで確定した運転環境について、最適な命令キャリブレーションテーブルを認識するために、上記のキャリブレーションテーブル選択プロセスを定期的に実行する。運転環境が変わると、異なる命令キャリブレーションテーブルが選択することができる。
【００５５】
当該タイミングで特定運転環境に対して命令キャリブレーションテーブルを選択すると、選択した命令キャリブレーションテーブルを利用して検索処理によって後続の制御命令（例えば、次の運転サイクルから）を決定することができる。その結果、当該タイミングで特定の命令に対してリソースと時間を消費する計算を行う必要なく、検索処理によって適切な命令を迅速に決定することができる。
【００５６】
一実施形態において、図３Ａ乃至図３Ｂ、図５Ｂ及び図６に戻って参照すると、第１制御命令６０１を受信すると、車両の標準運転環境の下での、現在の状況を考慮した予想結果または応答を決定する。第１制御命令は、人間運転者から入力されたアクセルまたはブレーキ命令であってもよい。車両の現在の速度に基づいて、標準運転環境の下で、一定の期間内の予想された加速度または予想された速度を確定することができる。一実施形態において、標準運転環境は、乾燥した道路、平坦な路面、正常のタイヤ空気圧およびゼロ積載量の状況での運転として限定することができる。限定された標準運転環境同じまたは類似した運転環境の下で運転される様々な車両から収集した前の運転統計データに基づいて、予想された結果を確定することができる。
【００５７】
一実施形態において、命令キャリブレーションテーブル３１４中の一つは、標準命令キャリブレーションテーブル３１４Ａを含む。標準命令キャリブレーションテーブル３１４Ａは、複数のエントリを含み、それぞれのエントリは、特定のタイミングでキャプチャされた統計データのサブセットを記憶する。例えば、統計データのサブセットは、図５Ｂに示された限定された標準運転環境の下で、特定のタイミングでの車両の速度、出力された命令及び車両の応答などを含むことができる。同様に、残りの命令キャリブレーションテーブル３１４Ｂは、図５Ｂに示された異なる運転環境に対応する複数の命令キャリブレーションテーブルを含む。
【００５８】
一実施形態において、第１制御命令６０１に基づいて、標準命令キャリブレーションテーブル３１４Ａで車両の現在の速度と第１制御命令に基づいて、第１検索処理を実行して、車両の現在の速度（例えば、フィールド５５２）と第１制御命令（例えば、フィールド５５１）に対応的にマッチングするエントリを見つける。マッチングするエントリから予想結果６０３を取得することができる。例えば、第１制御命令がアクセル／ブレーキ命令である場合、フィールド５５３から予想加速度を取得することができる。制御命令がステアリング命令である場合、現在のステアリング角度５５２に基づいて、フィールド５５４から予想された結果のステアリング角度を取得することができる。
【００５９】
標準運転環境下の予想結果６０３が確定されると、現在の運転環境に対応する選択された命令キャリブレーションテーブル３１４Ｂで第２検索処理を実行して、車両の現在の状態（例えば、速度、ステアリング角度）と予想された車両状態（例えば、予想された加速度、予想されたステアリング角度）に基づいて、マッチングするエントリを見つける。マッチングするエントリから第２制御命令を取得することができる。そして、第２制御命令を車両に出力する。例えば、図５Ｂを参照すると、車両の現在の状態と車両の予想状態に基づいて検索処理を実行して、車両の現在の状態と車両の予想状態にそれぞれマッチングされるフィールド５５２とフィールド５５３を含むエントリを見つける。マッチングするエントリが認識されると、マッチングするエントリのフィールド５５１から制御命令を取得することができる。車両に対して時間とリソースを消費する計算を行う必要なく、取得した制御命令を使用して車両を制御することができる。
【００６０】
その結果、ユーザー運転者は、理想的な運転環境下の状況と同じ経験または予想を有する。例えば、１０％のアクセルが標準運転環境の下で０．５ｍ／ｓ２の加速度を提供すると、最大積載量の場合には２５％のアクセルで同じ加速度を実現することができる。車両が当該タイミングで最大積載量であると、最大積載量に対応する命令キャリブレーションテーブルに基づいて、システムは、対応する命令キャリブレーションテーブルの検索処理に基づいて２５％のアクセルが必要であると決定することができる。システムは、運転者が標準運転環境中と同じフィードバックまたは予想を取得し、標準運転環境中と同じ運転経験を有するようにするために、自動的に車両に２５％のアクセルを印加する。
【００６１】
注意すべきなのは、命令キャリブレーションテーブルを選択するプロセス及び選択された命令キャリブレーションテーブルを使用して制御命令を決定するプロセスは、異なる実行スレッドまたは処理スレッドによって実行される。
【００６２】
図７は、一実施形態に係る現在の運転環境に基づいて命令キャリブレーションテーブルを決定及び選択するプロセスを示すフローチャートを示す。プロセス７００は、ソフトウェア、ハードウェアまたはそれらの組合せを含むことができる処理ロジックによって実行されることができる。例えば、プロセス７００は、命令キャリブレーションモジュール３０８によって実行されることができる。図７を参照すると、処理７０１において、処理ロジックは、所定の期間（例えば、１分間）内でのＡＤＶの運転統計データ（例えば、速度、加速度）を測定し収集する。処理７０２において、処理ロジックは、選択的に、当該期間でのＡＤＶに関連する運転環境（例えば、天気状況、道路面状況など）を確定する。
【００６３】
処理７０３において、予め構成された（選択的に、当該期間で確定された運転環境に関連する）命令キャリブレーションテーブルのそれぞれに対して、処理ロジックは、当該時間点で測定された運転統計データと命令キャリブレーションテーブルに記憶された対応する運転統計データとを比較する。処理７０４において、処理ロジックは、動的に測定されたデータと前に保存されたデータとの比較に基づいて、命令キャリブレーションテーブルの類似性スコアを計算する。類似性スコアは、当該タイミングで収集したデータと前にテーブルに収集して記憶したデータとの間の類似性を表す。
【００６４】
一実施形態において、動的に収集したデータは、例えば、１００ｍｓごとにデータサブセットを一分間記録するなどの一定の時間内で収集されることができる。それぞれのデータサブセットについて、データサブセットの間の差をそれぞれの命令キャリブレーションテーブルに記憶されている対応するデータサブセットと比較する。データサブセットのすべての差に基づいて、平均差を計算し、前記平均差は、当該特定の命令キャリブレーションテーブルの類似性スコアを決定するために使用される。例えば、サブセットの所定速度と出力された所定アクセル命令に対して、車両の実際の加速度と、キャリブレーションテーブルのエントリの当該速度とアクセル命令に対応的にマッチングする記録された加速度とを比較する。実際の加速度と以前に記録した加速度との間の差を計算する。
【００６５】
処理７０５において、処理ロジックは、最高の類似性スコアを有する命令キャリブレーションテーブル一つを選択して、自動運転期間に制御命令を決定するのに使用する。プロセス７００は、運転環境の変化により異なる命令キャリブレーションテーブルを選択すべきかどうかを決定するために、定期的に実行されることができる。
【００６６】
図８は、一実施形態に係る自動運転車両を処理させる制御命令を決定するプロセスを示すフローチャートである。プロセス８００は、処理ロジックによって実行されることができ、処理ロジックは、ソフトウェア、ハードウェアまたはそれらの組合せを含むことができる。例えば、プロセス８００は、命令キャリブレーションモジュール３０８によって実行されることができる。図８を参照すること、処理８０１において、処理ロジックは、第１制御命令（例えば、１０％のアクセル）を受信する。第１制御命令は、計画モジュール３０５から受信され、人間運転者から入力されてもよい。第１制御命令に応答して、処理８０２において、制御命令と車両の標準運転環境または理想的な運転環境下での現在の状況（例えば、現在の速度）に基づいて、予想された車両状態または車両応答（例えば、０．５ｍ／ｓ２）を確定する。一実施形態において、処理ロジックは、現在の車両状態と第１制御命令に基づいて、標準命令キャリブレーションテーブルで第１検索処理を実行して、予想された車両状態を取得する。処理８０３において、現在の運転環境に対応する命令キャリブレーションテーブルの一つを選択する。処理８０４において、処理ロジックは、現在の車両状態と予想された車両状態に基づいて第２検索処理を実行して、マッチングするエントリを見つけ、及び処理８０５において、処理ロジックは、マッチングするエントリから第２制御命令（例えば、２５％のアクセル）を取得する。そして、第２制御命令を利用して車両を制御する。
【００６７】
図９は、一実施形態に係るキャリブレーションテーブルを作成するプロセスを示すフローチャートである。プロセス９００は、処理ロジックによって実行されることができ、処理ロジックは、ソフトウェア、ハードウェアまたはそれらの組合せを含むことができる。プロセス９００は、図１のキャリブレーションテーブルジェネレータ１２５によって実行されることができる。図９を参照すると、処理９０１において、処理ロジックは、複数の運転環境カテゴリ（例えば、天気状況、道路面状況、タイヤ圧力状況、積載量状況）を限定する。処理９０２において、運転環境カテゴリ中のそれぞれに対して、一つまたは複数の車両の運転統計データを収集し、当該運転統計データは、車両が同じまたは類似した運転環境で走行する場合にキャプチャされたものであってもよい。処理９０３において、運転環境カテゴリのためにキャリブレーションテーブルを作成する。キャリブレーションテーブルは、複数のエントリを含む。それぞれのエントリは、車両の速度、出力された制御命令及び車両の出力された制御命令に応答する応答データ（例えば、加速度、ステアリング角度）を保存する。キャリブレーションテーブルは、車両の自動運転期間内でリアルタイムで制御命令を決定するために使用されることができる。
【００６８】
注意すべきなのは、上記で示して説明したコンポーネントの一部または全部は、ソフトウェア、ハードウェアまたはそれらの組合せで実装されることができる。例えば、このようなコンポーネントは、永続的（不揮発性）記憶装置にインストールされ且つ保存されるソフトウェアとして実装されることができ、前記ソフトウェアは、プロセッサ（図示せず）を介してメモリにロードされ、メモリで実行されて、本開示の全文で説明されたプロセスまたは処理を実装することができる。代替的に、このようなコンポーネントは、集積回路（例えば、特定用途向け集積回路またはＡＳＩＣ）、デジタルシグナルプロセッサ（ＤＳＰ）またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）などの専用ハードウェアにプログラムまたは埋め込まれた実行可能なコードとして実装されることができ、前記実行可能なコードは、アプリケーションから対応するドライバーおよび／または処理システムを介してアクセスすることができる。なお、このようなコンポーネントは、一つまたは複数の特定の指令を介してソフトウェアコンポーネントからアクセス可能な指令セットの一部として、プロセッサまたはプロセッサコアの特定のハードウェアロジックとして実装されることができる。
【００６９】
図１０は、本開示の一実施形態と一緒に使用され得るデータ処理システムの例を示すブロック図である。例えば、システム１５００は、図１の感知及び計画システム１１０またはサーバ１０３乃至１０４のいずれかのような上記のプロセスまたは方法中のいずれかを実行する任意のデータ処理システムを表すことができる。システム１５００は、複数の異なるコンポーネントを含むことができる。これらのコンポーネントは、集積回路（ＩＣ）、集積回路の一部、ディスクリート電子デバイスまたはコンピューターシステムのマザーボードまたはアドインカードなどの回路基板に敵した他のモジュールとして実装され、または他の方法でコンピューターシステムのシャーシ内に組み込まれるコンポーネントとして実装されることができる。
【００７０】
さらに注意すべきなのは、システム１５００は、コンピューターシステムを示す複数のコンポーネントの高レベルビューを示す。しかし、特定の実施形態では追加のコンポーネントが存在する可能性があり、なお、他の実施形態では示されたコンポーネントの異なる配置がある可能性があることを理解されたい。システム１５００は、デスクトップ、ラップトップ、タブレット、サーバ、携帯電話、メディアプレーヤー、携帯情報端末（ＰＤＡ）、スマートウォッチ、パーソナルコミュニケーター、ゲームデバイス、ネットワークルーターまたはハブ、ワイヤレスアクセスポイント（ＡＰ）またはリピーター、セットトップボックス、またはそれらの組み合わせを表すことができる。なお、単一の機器またはシステムのみを示したが、「機器」または「システム」という用語は、一つ（または複数）の指令を個別にまたは共同で実行して本明細書で議論されたいずれかの一つまたは複数の方法の機器またはシステムの任意のセットを含むものとみなされる。
【００７１】
一実施形態において、システム１５００は、バスまたはインターコネクト（相互接続）１５１０を介して接続されるプロセッサ１５０１、メモリ１５０３及びデバイス１５０５乃至１５０８を含む。プロセッサ１５０１は、単一のプロセッサコアまたは複数のプロセッサコアを含む単一のプロセッサまたは複数のプロセッサを表すことができる。プロセッサ１５０１は、マイクロプロセッサ、中央処理ユニット（ＣＰＵ）などの一つまたは複数の汎用プロセッサを表すことができる。さらに具体的に、プロセッサ１５０１は、複雑な指令セットコンピューティング（ＣＩＳＣ）マイクロプロセッサ、縮小指令セットコンピューティング（ＲＩＳＣ）マイクロプロセッサ、超長指令ワード（ＶＬＩＷ）マイクロプロセッサ、または他の指令セットを実装するプロセッサ、または指令セットの組合せを実装するプロセッサであることができる。プロセッサ１５０１は、特定用途向け集積回路（ＡＳＩＣ）、セルラーまたはベースバンドプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、デジタルシグナルプロセッサ（ＤＳＰ）、ネットワークプロセッサ、グラフィックスプロセッサ、通信プロセッサ、暗号化プロセッサ、コプロセッサ、組み込みプロセッサ、または指令を処理できる任意の他のタイプのロジックのような一つまたは複数の専用プロセッサであることができる。
【００７２】
プロセッサ１５０１は、超低電圧プロセッサなどの低電力マルチコアプロセッサソケットであってもよく、前記システムの様々なコンポーネントと通信するためのメイン処理ユニット及び中央ハブとして機能してもよい。このようなプロセッサは、システムオンチップ（ＳｏＣ）として実装されることができる。プロセッサ１５０１は、本明細書で議論される処理及びステップを実行するための指令を実行するように構成される。システム１５００は、ディスプレイコントローラ、グラフィックプロセッサ、および／またはディスプレイデバイスを含むことができる選択可能なグラフィックサブシステム１５０４と通信するグラフィックインターフェースをさらに含むことができる。
【００７３】
プロセッサ１５０１は、メモリ１５０３と通信することができ、メモリ１５０３は、一実施形態において、所定の量のシステムメモリを提供するために、複数のメモリデバイスを介して実装されることができる。メモリ１５０３は、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックＲＡＭ（ＤＲＡＭ）、同期ＤＲＡＭ（ＳＤＲＡＭ）、スタティックＲＡＭ（ＳＲＡＭ）、または他のタイプの記憶装置などの一つまたは複数の揮発性ストレージ（またはメモリ）デバイスを含むことができる。メモリ１５０３は、プロセッサ１５０１または他のデバイスによって実行される指令のシーケンスを含む情報を保存することができる。例えば、様々な処理システム、デバイスドライバ、ファームウェア（例えば、入出力基本システムまたはＢＩＯＳ）および／またはアプリケーションの実行可能なコードおよび／またはデータをメモリ１５０３にロードし、プロセッサ１５０１によって実行する。処理システムは、任意のタイプの処理システム，例えば、ロボット処理システム（ＲＯＳ）、Ｍｉｃｒｏｓｏｆｔ（登録商標）社からのＷｉｎｄｏｗｓ（登録商標）処理システム、アップル社からのＭａｃ  ＯＳ（登録商標）／ｉＯＳ（登録商標）、Ｇｏｏｇｌｅ（登録商標）社からのＡｎｄｒｏｉｄ（登録商標）、ＬＩＮＵＸ、ＵＮＩＸ（登録商標），または他のリアルタイムまたは組み込み処理システムであることができる。
【００７４】
システム１５００は、ネットワークインターフェースデバイス１５０５、選択可能な入力デバイス１５０６、及び他の選択可能なＩＯデバイス１５０７をさらに含むことができる。ネットワークインターフェースデバイス１５０５は、ワイヤレストランシーバおよび／またはネットワークインターフェイスカード（ＮＩＣ）を含むことができる。前記ワイヤレストランシーバは、ＷｉＦｉトランシーバ、赤外線トランシーバ、ブルートゥース（登録商標）トランシーバ、ＷｉＭａｘトランシーバ、ワイヤレスセルラーテレフォニートランシーバ、衛星トランシーバ（例えば、全地球測位システム（ＧＰＳ）トランシーバ）または他の無線周波数（ＲＦ）トランシーバまたはそれらの組合せであることができる。ＮＩＣは、イーサネット（登録商標）カードであることができる。
【００７５】
入力デバイス１５０６は、マウス、タッチパッド、タッチセンシティブスクリーン（ディスプレイデバイス１５０４と統合されることができる）、スタイラスなどのポインタデバイス、および／またはキーボード（例えば、物理キーボードまたはタッチセンシティブ画面の一部として表示される仮想キーボード）を含むことができる。
【００７６】
例えば、入力デバイス１５０６は、タッチスクリーンに結合されたタッチスクリーンコントローラを含むことができる。タッチスクリーンとタッチスクリーンコントローラーは、例えば、容量性、抵抗性、赤外線、および表面音響波技術を含むがこれらに限定されない複数のタッチセンシティブ技術のいずれか、及び他の近接センサーアレイまたはタッチスクリーンとの一つまたは複数の接触点を決定するためのその他の要素を使用して、その接触及び移動または破損を検出することができる。
【００７７】
ＩＯデバイス１５０７は、オーディオデバイスを含むことができる。オーディオデバイスは、音声認識、音声複製、デジタル記録、および／または電話機能などの音声対応機能を容易にするために、スピーカーおよび／またはマイクを含むことができる。他のＩＯデバイス１５０７は、ユニバーサルシリアルバス（ＵＳＢ）ポート、パラレルポート、シリアルポート、プリンタ、ネットワークインターフェース、バスブリッジ（例えば、ＰＣＩ−ＰＣＩブリッジ）、センサー（例えば、加速度計、ジャイロスコープ、磁力計、光センサー、コンパス、近接センサーなどのモーションセンサー）、またはそれらの組み合わせをさらに含むことができる。デバイス１５０７は、カメラ機能を促進するために利用される電荷結合素子（ＣＣＤ）または相補型金属酸化物半導体（ＣＭＯＳ）光学センサなどの光学センサを含むことができる撮像処理サブシステム（例えばカメラ）をさらに含むことができる。特定のセンサーは、センサーハブ（図示せず）を介してインターコネクト（相互接続）１５１０に結合されることができるが、キーボードまたは熱センサーなどの他のデバイスは、システム１５００の具体的な構成または設計に応じて、組み込みコントローラー（図示せず）によって制御されることができる。
【００７８】
データ、アプリケーション、一つまたは複数の処理システムなどの情報の永続的（不揮発性）なストレージを提供するために、大容量ストレージ（図示せず）もプロセッサ１５０１に結合することができる。様々な実施形態において、より薄くて軽いシステム設計を実現し、システムの応答性を改善するために、この大容量ストレージは、ソリッドステートデバイス（ＳＳＤ）を介して実装されることができる。しかし、他の実施形態において、大容量ストレージは主に、パワーダウンイベント中にコンテキスト状態やその他の情報の不揮発性ストレージを有効にするＳＳＤキャッシュとして機能するＳＳＤストレージの少ないハードディスクドライブ（ＨＤＤ）を使用して実装され、そのため、システムアクティビティの再起動時に高速電源投入を実現することができる。また、フラッシュデバイスは、例えば、シリアル周辺インターフェース（ＳＰＩ）を介してプロセッサ１５０１に結合されることができる。このフラッシュデバイスは、前記システムのＢＩＯＳ及び他のファームウェアを含むシステムソフトウェアの不揮発性ストレージを提供することができる。
【００７９】
記憶装置１５０８は、一つまたは複数の命令セットまたはソフトウェア（例えば、モジュール、ユニット、および／またはロジック１５２８）が保存されるコンピュータ可読記憶媒体１５０９（機械可読記憶媒体またはコンピュータ可読媒体としても知られる）を含むことができる。処理モジュール／ユニット／ロジック１５２８は、例えば、計画モジュール３０５、制御モジュール３０６、またはキャリブレーションテーブルジェネレータ１２５などの上記のコンポーネントのいずれかを表すことができる。処理モジュール／ユニット／ロジック１５２８はさらに、データ処理システム１５００、メモリ１５０３及びプロセッサ１５０１によって実行される期間にメモリ１５０３内および／またはプロセッサ１５０１内に完全にまたは少なくとも部分的に留まることができ、データ処理システム１５００、メモリ１５０３及びプロセッサ１５０１は、機械アクセス可能記憶媒体も構成する。処理モジュール／ユニット／ロジック１５２８はさらに、ネットワークを介してネットワークインターフェースデバイス１５０５によって送信または受信することができる。
【００８０】
コンピュータ可読記憶媒体１５０９はまた、上記のいくつかのソフトウェア機能を永続的（不揮発性）に記憶するために使用されることができる。例示的な実施形態では、コンピュータ可読記憶媒体１５０９が単一の媒体であるように示されたが、用語「コンピュータ可読記憶媒体」は、単一の媒体または複数の媒体（例えば、集中型または分散型データベース、および／または関連するキャッシュとサーバ）が一つまたは複数の命令セットを保存するとみなされるべきである。用語「コンピューター可読記憶媒体」は、機械による実行のための命令セットを保存またはエンコードすることができ、機械が本開示で開示されたいずれかの一つまたは複数の方法を実行させる任意の媒体も含むものとみなされるべきである。従って、用語「コンピュータ可読記憶媒体」は、ソリッドステートメモリ、光学及び磁気媒体、またはその他の非一時的（不揮発性）な機械可読媒体を含むと解釈されるが、これらに限定されない。
【００８１】
本明細書で説明する処理モジュール／ユニット／ロジック１５２８、コンポーネント、及びその他の特徴は、個別のハードウェアコンポーネントとして実装されるか、ＡＳＩＣ、ＦＰＧＡ、ＤＳＰ、または類似のデバイスなどのハードウェアコンポーネントの機能に統合されることができる。なお、処理モジュール／ユニット／ロジック１５２８は、ハードウェアデバイス内のファームウェアまたは機能回路として実装されることができる。なお、処理モジュール／ユニット／ロジック１５２８は、ハードウェアデバイスとソフトウェアコンポーネントの任意の組み合わせで実装されることができる。
【００８２】
システム１５００は、データ処理システムの様々なコンポーネントを有すると示されたが、コンポーネントを相互接続する特定のアーキテクチャまたは方法を表すことを意図していないことに留意されたい。このような詳細は、本開示の実施形態と密接な関係がないためである。より少ないコンポーネントまたはより多くのコンポーネントを有するネットワークコンピュータ、ハンドヘルドコンピュータ、携帯電話、サーバ、および／または他のデータ処理システムも本開示の実施形態と一緒に使用できることも認識されるべきである。
【００８３】
前述の詳細な説明の一部は、コンピューターメモリ内のデータビットに対する処理のアルゴリズム及び記号表現によって提示されている。これらのアルゴリズムの説明と表現は、データ処理の分野の当業者が自分の仕事の内容を他の当業者に最も効果的に伝えるために使用する方法である。本明細書において、アルゴリズムは、一般的に望ましい結果を導く一貫した処理のシーケンスであると考えられる。これらの処理は、物理量を物理的に処理するための処理を指す。
【００８４】
しかし、これらの用語及び類似の用語はすべて、適切な物理量に関連するものであり、これらの量に適用される単なる便利なラベルであることに留意されたい。上記の議論で他の方法で明確に指定されていない限り、全体明細書において、以下の特許請求の範囲に記載されている用語などの用語を使用する議論は、コンピューターシステムまたは同様の電子コンピューティングデバイスのアクション及びプロセスを指し、前記コンピューターシステムまたは電子計算デバイスは、コンピューターシステムのレジスター及びメモリー内の物理（電子）量として表されるデータを制御し、前記データをコンピューターシステムメモリまたはレジスターまたは他のこのタイプの情報ストレージに変換し、デバイス内の物理量として類似的に表される他のデータを伝送または表示すことを理解すべきである。
【００８５】
本開示の実施形態は、本明細書の処理を実行するための装置にも関する。このようなコンピュータープログラムは、非一時的（不揮発性）なコンピューター可読媒体に保存される。機械可読媒体は、機械（例えば、コンピューター）によって読み取り可能な形式で情報を保存するための任意のメカニズムを含む。例えば、機械可読（例えば、コンピューター可読）媒体は、機械（例えば、コンピューター）可読記憶媒体（例えば、読み取り専用メモリー（「ＲＯＭ」）、ランダムアクセスメモリー（「ＲＡＭ」）、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイスを含む。
【００８６】
上記の図に示されたプロセスまたは方法は、ハードウェア（たとえば、回路、専用ロジックなど）、ソフトウェア（たとえば、非一時的（不揮発性）なコンピューター可読媒体上で実装される）、またはそれらの組み合わせを含む処理ロジックによって実行されることができる。前記プロセスまたは方法は、いくつかのシーケンシャル処理に応じて上で説明したが、前記処理のいくつかは異なる順序で実行されてもよいことを理解すべきである。なお、一部の処理は、順序にではなく並行して実行されることができる。
【００８７】
本開示の実施形態は、特定のプログラミング言語を参照して説明されていない。本明細書で説明する本開示の実施形態の教示を実装するために、様々なプログラミング言語を使用できることを理解すべきである。
【００８８】
上記の明細書において、本開示の実施形態は、具体的な例示的実施形態を参照して説明された。添付の特許請求の範囲に記載される本開示のより広い精神及び範囲から逸脱することなく、本開示に様々な修正を加えることができることは明らかであろう。従って、本明細書及び図面は、制限的な意味ではなく、例示的な意味で見なされるべきである。
【図１】
2020083307.tif 000003
【図２】
2020083307.tif 000004
【図３Ａ】
2020083307.tif 000005
【図３Ｂ】
2020083307.tif 000006
【図４】
2020083307.tif 000007
【図５Ａ】
2020083307.tif 000008
【図５Ｂ】
2020083307.tif 000009
【図６】
2020083307.tif 000010
【図７】
2020083307.tif 000011
【図８】
2020083307.tif 000012
【図９】
2020083307.tif 000013
【図１０】
2020083307.tif 000014
【外国語明細書】
2020083307000001.pdf