IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ズークス インコーポレイテッドの特許一覧

特表2023-527567シミュレーション制御のためのエージェント行動モデル
<>
  • 特表-シミュレーション制御のためのエージェント行動モデル 図1
  • 特表-シミュレーション制御のためのエージェント行動モデル 図2
  • 特表-シミュレーション制御のためのエージェント行動モデル 図3
  • 特表-シミュレーション制御のためのエージェント行動モデル 図4A
  • 特表-シミュレーション制御のためのエージェント行動モデル 図4B
  • 特表-シミュレーション制御のためのエージェント行動モデル 図4C
  • 特表-シミュレーション制御のためのエージェント行動モデル 図5A
  • 特表-シミュレーション制御のためのエージェント行動モデル 図5B
  • 特表-シミュレーション制御のためのエージェント行動モデル 図5C
  • 特表-シミュレーション制御のためのエージェント行動モデル 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-06-29
(54)【発明の名称】シミュレーション制御のためのエージェント行動モデル
(51)【国際特許分類】
   B60W 50/12 20120101AFI20230622BHJP
   B60W 30/06 20060101ALI20230622BHJP
   B60W 30/02 20120101ALI20230622BHJP
   B60W 30/08 20120101ALI20230622BHJP
   B60W 40/06 20120101ALI20230622BHJP
   B60W 40/04 20060101ALI20230622BHJP
   G08G 1/16 20060101ALI20230622BHJP
【FI】
B60W50/12
B60W30/06
B60W30/02
B60W30/08
B60W40/06
B60W40/04
G08G1/16 C
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022573627
(86)(22)【出願日】2021-06-01
(85)【翻訳文提出日】2023-01-17
(86)【国際出願番号】 US2021035248
(87)【国際公開番号】W WO2021247574
(87)【国際公開日】2021-12-09
(31)【優先権主張番号】16/889,747
(32)【優先日】2020-06-01
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】ヘリット バグシック
(72)【発明者】
【氏名】アンドリュー スコット クレゴ
(72)【発明者】
【氏名】マーサ ガファリアンザデー
(72)【発明者】
【氏名】ベヘバハーニー シアーヴォシュ レヴァン
【テーマコード(参考)】
3D241
5H181
【Fターム(参考)】
3D241AA71
3D241BA21
3D241BA31
3D241BA49
3D241CE08
3D241DA13Z
3D241DC33Z
3D241DC35Z
3D241DC37Z
3D241DD11Z
5H181AA01
5H181BB04
5H181CC03
5H181CC04
5H181CC14
5H181LL01
5H181LL02
5H181LL04
5H181MB02
(57)【要約】
車両または歩行者のようなオブジェクトの異例の行動を説明する現実的な動きシミュレーションをすることは、自動運転車両の知覚用コンポーネントの出力に少なくとも部分的に基づいて、エージェント行動モデルを生成し、出力およびオブジェクトの位置の実際の操作の表示を含むログデータの差を決定することを含むことができる。オブジェクトの動きシミュレーションをすることは、予測コンポーネントを使用するオブジェクトの予測された動きを決定することと、エージェント行動モデルの少なくとも部分的に基づく予測された動きを変更することを含むことができる。
【特許請求の範囲】
【請求項1】
システムであって、
1つまたは複数のプロセッサと、
1つまたは複数の前記プロセッサによって実行されるときに、前記システムに動作を実行させるプロセッサ実行可能指示を格納するメモリとを備え、前記動作は、
自動運転車両からのログデータを受信することであって、
環境を横断する前記自動運転車両に関連するセンサからのセンサデータと、
第1の時間に関連するオブジェクトの第1の検出と、
第2の時間に関連し、前記第2の時間における前記オブジェクトの位置および前記オブジェクトによって実行された操作を示す前記オブジェクトの第2の検出と、
前記オブジェクトが実行する予測された操作、および前記第2の時間より前の時間に生成された前記第2の時間における前記オブジェクトの予測された位置を含む、ことと、
前記予測された操作と前記オブジェクトによって実行された前記操作との間の差および前記予測された位置と前記第2の時間における前記オブジェクトの前記位置との間の距離を決定することに少なくとも部分的に基づいて、操作エラーモデルおよび経路エラーモデルを決定することと、
シミュレートされた環境において、前記オブジェクトのシミュレートされた表現をインスタンス化することと、
前記オブジェクトの前記シミュレートされた表現の予測された動きを決定することと、
前記操作エラーモデルおよび前記経路エラーモデルを使用して前記予測された動きを変更することに少なくとも部分的に基づいて、前記オブジェクトの前記シミュレートされた表現の動きを制御することと
を含むことを特徴とするシミュレーション制御のためのエージェント動作モデルシステム。
【請求項2】
前記予測された動きを変更することは、
前記シミュレートされた環境に関連する1つまたは複数のパラメータを決定することと、
前記1つまたは複数のパラメータ、前記予測された動き、および前記操作エラーモデルに少なくとも部分的に基づいて、前記予測に関連するエラーを決定することと、
前記エラーに少なくとも部分的に基づいて、前記予測された動きを変更することと
を含む請求項1に記載のシステム。
【請求項3】
前記予測された動きを変更することは、
前記操作エラーモデルによって示され、前記変更された操作に関連する第1の確率に少なくとも部分的に基づいて、前記操作エラーモデルに関連する複数の操作の中から変更された操作を決定することと、
前記経路エラーモデルによって示される確率に少なくとも部分的に基づいて、前記変更された操作から横方向の変動を決定することに少なくとも部分的に基づいて、変更された経路を決定することと
を少なくとも1つを含む請求項1乃至2のいずれか一項に記載のシステム。
【請求項4】
前記予測された動きを変更することは、変更された操作を決定することを含み、
前記変更された操作は、
ターンを実施することと、
車線変更を実施することと、
後進することと、
駐車することと、
通行操作を実施することと、
車道、横断歩道、歩道、または隔離された車線への出入りすることと、
現在の動きを維持することと、
停止を実行することと
の少なくとも1つの指示を含む請求項1乃至3のいずれか一項に記載のシステム。
【請求項5】
前記操作エラーモデルを決定することは、
前記ログデータに少なくとも部分的に基づいて、前記予測された操作が前記操作に類似する第1の数のインスタンスを決定することと、
前記ログデータに少なくとも部分的に基づいて、前記予測された操作の代わりに前記オブジェクトによって実行された異なる操作に関連する第2のインスタンス数を決定することとを含み、
前記経路エラーモデルを決定することは、
前記ログデータに少なくとも部分的に基づいて、前記オブジェクトが前記予測された操作に関連する軌道からの前記距離に配置された時間の第3の数を決定すること
を含む請求項1乃至4のいずれか一項に記載のシステム。
【請求項6】
前記操作エラーモデルまたは前記経路エラーモデルの少なくとも1つで決定することは、
前記センサデータに少なくとも部分的に基づいて、前記環境に関連する1つまたは複数のパラメータを決定することと、
前記1つまたは複数のパラメータに少なくとも部分的に基づいて、前記複数のエラーモデルのクラスタを決定すること
をさらに含む請求項1乃至5のいずれか一項に記載のシステム。
【請求項7】
前記動作は、前記シミュレートされた表現の前記動きに少なくとも部分的に基づいて、シミュレートされた車両または前記自動運転車両を制御することの少なくとも1つをさらに含む請求項1乃至6のいずれか一項に記載のシステム。
【請求項8】
1つまたは複数のプロセッサによって実行されるときに、前記1つまたは複数のプロセッサに動作を実行させるプロセッサ実行可能指示を格納する非一時的なコンピューター可読媒体であって、前記動作は、
自動運転車両からのログデータを受信することであって、
環境を横断する前記自動運転車両に関連するセンサからのセンサデータと、
第1の時間に関連するオブジェクトの第1の検出と、
第2の時間に関連し、前記第2の時間における前記オブジェクトの位置および前記オブジェクトによって実行された操作を示す前記オブジェクトの第2の検出と、
前記オブジェクトが実行する予測された操作、および前記第2の時間より前の時間に生成された前記第2の時間における前記オブジェクトの予測された位置を含む、ことと、
前記予測された操作と前記オブジェクトによって実行された前記操作との間の差および前記予測された位置と前記第2の時間における前記オブジェクトの前記位置との間の距離を決定することに少なくとも部分的に基づいて、操作エラーモデルおよび経路エラーモデルを決定することと、
シミュレートされた環境において、前記オブジェクトのシミュレートされた表現をインスタンス化することと、
前記オブジェクトの前記シミュレートされた表現の予測された動きを決定することと、
前記操作エラーモデルおよび前記経路エラーモデルを使用して前記予測された動きを変更することに少なくとも部分的に基づいて、前記オブジェクトの前記シミュレートされた表現の動きを制御することと
を含むことを特徴とする非一時的なコンピューター可読媒体。
【請求項9】
前記予測された動きを変更することは、
前記シミュレートされた環境に関連する1つまたは複数のパラメータを決定することと、
前記1つまたは複数のパラメータ、前記予測された動き、および前記操作エラーモデルに少なくとも部分的に基づいて、前記予測に関連するエラーを決定することと、
前記エラーに少なくとも部分的に基づいて、前記予測された動きを変更することと
を含む請求項8に記載の非一時的なコンピューター可読媒体。
【請求項10】
前記予測された動きを変更することは、
前記操作エラーモデルによって示され、前記変更された操作に関連する第1の確率に少なくとも部分的に基づいて、前記操作エラーモデルに関連する複数の操作の中から変更された操作を決定することと、
前記経路エラーモデルによって示される確率に少なくとも部分的に基づいて、前記変更された操作から横方向の変動を決定することに少なくとも部分的に基づいて、変更された経路を決定することと
を少なくとも1つを含む請求項9に記載の非一時的なコンピューター可読媒体。
【請求項11】
前記予測された動きを変更することは、変更された操作を決定することを含み、
前記変更された操作は、
ターンを実施することと、
車線変更を実施することと、
後進することと、
駐車することと、
通行操作を実施することと、
車道、横断歩道、歩道、または隔離された車線への出入りすることと、
現在の動きを維持することと、
停止を実行することと
の少なくとも1つの指示を含む請求項8乃至10のいずれか一項に記載の非一時的なコンピューター可読媒体。
【請求項12】
前記操作エラーモデルを決定することは、
前記ログデータに少なくとも部分的に基づいて、前記予測された操作が前記操作に類似する第1の数のインスタンスを決定することと、
前記ログデータに少なくとも部分的に基づいて、前記予測された操作の代わりに前記オブジェクトによって実行された異なる操作に関連する第2のインスタンス数を決定することとを含み、
前記経路エラーモデルを決定することは、
前記ログデータに少なくとも部分的に基づいて、前記オブジェクトが前記予測された操作に関連する軌道からの前記距離に配置された時間の第3の数を決定すること
を含む請求項8乃至11のいずれか一項に記載の非一時的なコンピューター可読媒体。
【請求項13】
前記操作エラーモデルまたは前記経路エラーモデルの少なくとも1つで決定することは、
前記センサデータに少なくとも部分的に基づいて、前記環境に関連する1つまたは複数のパラメータを決定することと、
前記1つまたは複数のパラメータに少なくとも部分的に基づいて、前記複数のエラーモデルのクラスタを決定すること
をさらに含む請求項8乃至12のいずれか一項に記載の非一時的なコンピューター可読媒体。
【請求項14】
前記動作は、前記シミュレートされた表現の前記動きに少なくとも部分的に基づいて、シミュレートされた車両または前記自動運転車両を制御することの少なくとも1つをさらに含む請求項8乃至13のいずれか一項に記載の非一時的なコンピューター可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2020年6月1日に出願された米国特許出願16/889、747の利益を出張し、その全体が参照により本明細書に組み込まれている。
【背景技術】
【0002】
シナリオのシミュレーション実行は、自動運転システムおよび/または自動運転車両に組み込まれるような機械学習モデルのパイプラインを試験するための貴重な方法を提供することができる。しかしながら、人間の行動は、予測不可能であるため、まれな異例の行動を正確に特定してモデル化することは、困難な場合がある。例えば、人間ドライバーは、突然高速道路から出口に逸れたり、対向車線の前でターンをしたり、そのようなターンが違法な交差点で赤信号を点灯するなどがあり得る。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】米国特許出願第15/963、833号
【特許文献2】米国特許出願第16/779、576号
【特許文献3】米国特許出願第16/581、632号
【特許文献4】米国特許出願第16/682、971号
【特許文献5】米国特許出願第16/703、625号
【特許文献6】米国特許出願第16/517、506号
【図面の簡単な説明】
【0004】
詳細な説明は、添付の図面を参照して説明される。図において、参照番号の左端の数字は、参照番号が最初に現れる図を識別する。異なる図の同じ参照番号は、類似または同一のアイテムを指示する。
図1】自動運転車両に関連する1つまたは複数のセンサによって収集されたセンサデータに少なくとも部分的に基づいて、知覚用コンポーネントによって生成された予測データに少なくとも部分的に基づいて、自動運転車両が制御され得るシナリオ例を示す図である。
図2】シミュレーションシステムで使用するためのエージェント行動モデルを生成するためのアーキテクチャ例を示すブロック図である。
図3】動的オブジェクトの現実的にシミュレーションするためのエージェント行動モデルの一部であり得るエラーモデルを生成するためのプロセス例の絵画的に示すフローチャートである。
図4A】予測された操作例、および予測の対象であったオブジェクトがたどった実際の経路/実際の操作の例を示す図である。
図4B】異なるエラーモデルに関連することができるシナリオ例およびシナリオラベルを示す図である。
図4C】異なるエラーモデルに関連することができるシナリオ例およびシナリオラベルを示す図である。
図5A】オブジェクトおよび/またはシナリオに関連するエラーモデルが、環境内のオブジェクトの位置/オブジェクトによって取られた行動に少なくとも部分的に基づいて変化し得る方法を示す図である。
図5B】オブジェクトおよび/またはシナリオに関連するエラーモデルが、環境内のオブジェクトの位置/オブジェクトによって取られた行動に少なくとも部分的に基づいて変化し得る方法を示す図である。
図5C】オブジェクトおよび/またはシナリオに関連するエラーモデルが、環境内のオブジェクトの位置/オブジェクトによって取られた行動に少なくとも部分的に基づいて変化し得る方法を示す図である。
図6】異例の行動を含む、シミュレートされた環境における動的オブジェクトの動きを現実的にシミュレートするためのプロセス例を示すフローチャートである。いくつかの技法は、シナリオの複数のシミュレーションを実行し、動的オブジェクトにエラーモデルによって決定される発生率で異例な行動を実行させることを含むことができる。
【発明を実施するための形態】
【0005】
車両、歩行者、サイクリスト、または動物のようなオブジェクトの行動を正確にシミュレーションするための技法は、シミュレートされた環境における動的オブジェクト(すなわち、車両、歩行者、サイクリスト、動物のような操作の可能なオブジェクト)のシミュレートされた表現のような、シミュレートされたオブジェクトを制御するための指示を決定することができるエージェント行動モデルを生成することを含むことができる。エージェント行動モデルは、動的オブジェクトが時々異例の行動を示す方法を模倣するように設計されている場合がある。例えば、エージェントの行動モデルは、シミュレートされた車両に、対向車線の前でターンをしたり、突然それたり、車線を横切らせたりを実行させ、違法な操作を実行させ、違法な速度で操作させ、および/またはそれと類似する頻度と同様の現実世界のシナリオで発生する頻度で実行させることができる。エージェント行動モデルを用いてこの異常な行動をシミュレーションすることは、自動運転車両の周囲環境にあるオブジェクトに対する自動運転車両の応答の試験を改善することができる。
【0006】
自動運転車両は、自動運転車両に関連する1つまた複数センサからのセンサデータを受信する知覚用コンポーネントを備えることができる。知覚用コンポーネントは、センサデータを使用して、環境に何があるかを示し、環境の状態が将来どうなるかを予測する知覚データを決定することができる。例えば、知覚データは、環境におけるオブジェクトの存在を示し、オブジェクトの存在場所およびその分別(例えば、車両、歩行者、表示板、静的オブジェクト、サイクリスト)、および将来の時点におけるオブジェクトの予測位置、進行方向、および/または速度、および/またはオブジェクトが行うことができる操作を示すオブジェクトに関連する予測データを示すことができる。予測された操作は、オブジェクトによって実行される、オブジェクトの状態維持(例えば、停止位置を維持すること、軌道を維持すること)、左折、停止、または車道、横断歩道、歩道、または隔離された車線 (例えば、自転車専用車線、高速道路)への出入り、および/または同様のような、行動の高度な説明であり得る。
【0007】
エージェント行動モデルの生成は、受信する知覚データおよびシナリオを通じて探索した自動運転車両からシナリオに関連するログデータを含むことができる。ログデータは、シナリオの中で、自動運転車両の運転中に収集された/生成されたセンサデータ、および知覚データを備えることができる。いくつかの例では、ログデータは、自動運転車両が知覚データおよび/またはセンサデータを遠隔コンピューティングデバイスに送信した後に追加さえたラベルをさらに含むことができる。ラベルは、センサデータに表示されるオブジェクトに関するグラウンドトゥルース(ground truth)を示す場合がある。
【0008】
技法は、知覚データとログデータの間の差を決定し、複数の同一または類似のシナリオに関連して決定された差に基づくエラーモデルを構築することを備えることができる。例えば、技法は、ログデータおよび/またはそれに関連する知覚データにおいて異なるシナリオを識別することを含む事処理操作を備えることができる。シナリオは、環境(例えば、4方向制御交差点、3方向非制御交差点、6方向非定型制御交差点、2車線高速道路、一方通行の進行方向)のレイアウト、シナリオ内のオブジェクトの数、タイプ、および/または構成を備えることができる。構成は、オブジェクトの位置、進行方向、および/または軌道/速度を識別することができる。技法は、データ収集期間にわたって、1つまたは複数の自動運転車両から受信したログデータ、および知覚データから同じシナリオに関連するログデータおよび知覚データを集約することを備えることができる。エラーモデルは、シナリオに関連する新しいログデータ、および/または知覚データが集約に追加されると(または集約されたすべてのデータに対して一度に)、進行的に構築される場合がある。いくつかの例では、エラーモデルは、シナリオごと、オブジェクトのタイプごと、および/またはシナリオ内のオブジェクトの位置/進行方向/状態ごとに決定される場合がある。
【0009】
技法は、エラーモデルの異なるタイプを構築することを備えることができる。少なくとも1つの例では、技法は、操作エラーモデルおよび経路エラーモデルを決定することを備えることができる。操作エラーモデルは、自動運転車両の知覚用コンポーネントによって予測された操作と、ログデータによって示されるオブジェクトによって実行された実際の操作との間の差の少なくとも部分的に基づいて生成される場合がある。経路エラーモデルは、知覚用コンポーネントによって予測された経路と、オブジェクト(例えば、予測位置と実際の位置の間のユークリッド距離)がたどる実際の経路との間の差の少なくとも部分的に基づいて生成される場合がある。経路は、オブジェクトがたどる予測位置および/または軌道の配列であり得る。いずれの場合も、エラーモデルは、異なる操作/経路に関連する確率分布を備えることができる。例えば、操作エラーモデルは、車両が交差点の中央に位置し、交差点を通過して直進操作する第1のシナリオにおいてその状態を維持する車両の確率分布を示すことができる。操作エラーモデルは、シナリオ、オブジェクトのタイプ、環境内のオブジェクトの位置/進行方向/速度、および/または車両の状態(例えば、ターンの実行、停止)に基づいて、車両が左折、右折、急停止、またはその軌道を継続する確率を示すことができる。例えば、技法は、オブジェクトが操作を行う回数、および/またはオブジェクトによって行われた操作が、複数のインスタンスにわたって観察されるように、予測された操作と一致する回数を決定することを備えることができる。
【0010】
異なるシナリオにわたってオブジェクトタイプ(例えば、車両、歩行者)に対して生成されたエラーモデルは、そのオブジェクトタイプのエージェント行動モデルとしてオブジェクトに関連することができる。このエージェント行動モデルは、そのタイプのオブジェクトがシミュレーションでインスタンス化されるときにメモリから呼び出される場合がある。例えば、技法は、シナリオを受信することを備えることができ、シナリオは、自動運転車両から受信したマップデータ、ログデータの少なくとも部分的に基づいて、および/またはコンピューティングデバイスで受信した入力に少なくとも部分的に基づいて定義することができる(例えば、個人は、シナリオを定義するためにコンピューティングデバイスのユーザーインターフェイスと相互作用することができる)。いくつかの例では、シナリオは、例えば、位置、方向、操作、および/または1つまたは複数のオブジェクトの特性(例えば、材料、高さ、幅、深さ、輝度)のような環境の特性示す場合がある。例えば、環境は、シミュレートされるシナリオによって指定された構成の1つまたは複数の静的オブジェクト、および/または1つまたは複数のエージェント(例えば、動的オブジェクト)を含む場合がある。いくつかの例では、シナリオでインスタンス化された動的オブジェクトのいずれも、エージェント行動モデルの出力の少なくとも部分的に基づいて制御され得る。
【0011】
いくつかの例では、シミュレーション中のエージェントを使用してシミュレートされたオブジェクトの行動を制御することは、自動運転車両の知覚用コンポーネントによって受信されたシミュレートされたセンサデータに少なくとも部分的に基づいて、オブジェクトに関連する予測データ決定することを備える場合がある。この知覚用コンポーネントは、自動運転車両で実行される知覚用コンポーネントの複製または仮想化である場合がある。知覚用コンポーネントは、シミュレートされたオブジェクトに関連する予測データを出力し、その予測データは、エージェント行動モデルによって受信される場合がある。いくつかの例では、予測データは、シミュレートされたオブジェクトの少なくとも予測された操作および/または予測された経路を含む場合がある。エージェント行動モデルは、シミュレートされたオブジェクトに関連するエラーモデルに少なくとも部分的に基づいて予測された操作および/または予測された経路を変更することができる。
【0012】
例えば、予測された操作および/または予測された経路を変更することは、エラーモデルをサンプリングし、それに関連する確率に少なくとも部分的に基づいて予測された操作および/または予測された経路を変更することを含む場合がある。技法は、変更された操作および/または変更された経路に少なくとも部分的に基づいてシミュレートされたオブジェクトの動きを制御することを含む場合がある。操作を変更することは、操作の変化をもたらすことができ、経路を変更することは、経路を定義する曲線のパラメータを変更するか、参照曲線(例えば、参照曲線は、予測された操作によって定義される場合がある)からの離散位置の場所に関連する分散を増加させることを含む場合がある。例えば、シミュレートされたオブジェクトは、直進を続け、「一直線」操作によって定義された直線経路からわずかに横方向に操作するだけであると予測される場合があるが、エラーモデルをサンプリングすると、シミュレートされたオブジェクトが、同じ速度を維持し、急な右折に関連する経路からの横方向の変位が大きく変化しながら、急な右折を実行する低い確率のイベントが発生する場合がある。いくつかの例では、操作モデルは、操作に関連する確率を示すことができ、例えば、操作モデルは、可能性があり得る異なる操作、およびそれぞれの操作がオブジェクト(、および本明細書でさらに説明するように、知覚システムのエラーに基づいている場合がある)によって実行される確率を示す異なる操作に関連する異なる確率を示すことができる。例えば、操作モデルは、オブジェクトが実行できる異なる操作、およびそれらに関連する確率、合計を1とすること、を示す場合がある。割合(すべての可能な次の操作にわたって合計すると100%になる場合もあれば、そうでない場合もある)などするような、確率を比例させる他の方法が考えられる。
【0013】
追加または代替の例では、シミュレーションは、複数回シナリオのシミュレーションを実行することができ、技法は、オブジェクトに関連する操作および/または経路の発生率を追跡することを含むことができる。このような場合、予測された操作および/または予測された経路を変更することは、オブジェクトおよび/またはシナリオに関連するエラーモデルに少なくとも部分的に基づいて決定された発生率に適合するように操作および/または予測された経路を変更することを含むことができる。例えば、操作エラーモデルは、車両が交差点を通過して操作するシナリオの1000回反復ごとに1回、対向車の前で車両が急旋回することを示すことができる。エージェント行動モデルは、1000回反復ごとに1回、予測された操作が対向車の前で急旋回を含むように変更されるように、発生率を強制する場合がある。
【0014】
本明細書で説明する技法は、自動運転車両(例えば、自動運転車両のプランニングコンポーネント)の動作試験で使用することができ、それは、エージェントのシミュレートされた動きに関連するシミュレートされたセンサデータに少なくとも部分的に基づいて、自動運転車両の動作を制御するための軌跡を生成することができる。知覚用コンポーネントによって生成された知覚データは、プランニングコンポーネントを試験するためにプランニングコンポーネントに提供することもできる。
【0015】
技法は、自動運転車両の1つまたは複数のコンポーネント(例えば、位置特定コンポーネント、知覚コンポーネント、プランニングコンポーネント)の試験および/または学習を改善することができ、それにより、その精度および安全性並びに自動運転車両の動作(または、知覚コンポーネントおよび/またはプランニングコンポーネントなどを統合するその他のシステム)の有効性を改善することができる。さらに、技法は、シナリオを正確にシミュレーションするために必要なコンピューティングリソースの量を削減することができ、自動運転車両の知覚用コンポーネントを効果的に使用してシミュレーションを制御し、エージェント行動モデルによって変更されるため、知覚用コンポーネントよりも大幅に少ない計算能力を必要とする場合がある。
【0016】
シナリオ例
図1は、車両102を含むシナリオ例100を示す。いくつかの例では、シナリオ例100は、現実世界シナリオであってもよく、および/またはシナリオ例100は、シミュレートされたシナリオとしてモデル化された現実世界のシナリオの表現であってもよい。シナリオ例100がシミュレートされたシナリオである例では、シナリオ例100は、(例えば、コンピューティングデバイスのユーザーは、環境、その中のオブジェクト、および/またはその特性を定義することができる)コンピューティングデバイスのユーザーインターフェイスで受信された入力に少なくとも部分的に基づいて決定されてもよく、および/またはシナリオ例100は、1つまたは複数の自動運転車両から受信したログデータに少なくとも部分的に基づくことでもよい。ログデータは、自動運転車両で受信されたセンサデータ、知覚用コンポーネントによって生成された知覚データ、および/またはプランニングコンポーネントによって生成された指示に少なくとも部分的に基づくことができる。いくつかの例では、自動運転車両は、ログデータを格納してもよく、および/またはログデータを定期的に遠隔コンピューティングデバイスに送信してもよい。
【0017】
場合によっては、車両102は、ドライバー(または乗員)がいつでも車両を制御することが期待されていない状態で、全体の旅程においてすべての安全に重要な機能を遂行することができる車両を説明する米国国道交通安全局によって発行されたレベル5の分類に従って動作するように構成された自律型車両であってもよい。しかし、他の例では、車両102は、他のレベルまたは分類を有する全部または部分的な自動運転車両であってもよい。本明細書で説明する技法は、自動運転車両のようなロボット制御以外にも適用できると考えられる。例えば、本明細書で説明する技法は、採掘、製造、拡張現実などに適用できる。さらに、車両102は、陸上車両をとしてしめされているが、車両102は、宇宙船、船舶、などのものであってもよい。いくつかの例では、車両102は、シミュレートされた車両としてシミュレーションで表すことができる。簡単にするために、ここでの説明では、シミュレートされた車両と現実世界の車両を区別しない。したがって、「車両」への言及は、シミュレートされた車両および/または現実世界の車両を参照する場合がある。
【0018】
本明細書で説明する技法およびシナリオ例100が、現実世界の例である、例によれば、車両102は、車両102のセンサ104からセンサデータを受信することができる。例えば、センサ104は、位置センサ(例えば、全地球測位システム(GPS)センサ)、慣性センサ(例えば、加速度センサ、ジャイロセンサ、など)、磁場センサ(例えば、コンパス)、位置/速度/加速度センサ(例えば、速度計、ドライブシステムセンサ)、深度位置センサ(例えば、ライダーセンサ、レーダーセンサ、ソナーセンサ、タイムオブフライト(ToF)カメラ、深度カメラ、および/またはその他の深度センシングセンサ)、画像センサ(例えば、カメラ)、音声センサ(例えば、マイク)、および/または環境センサ(気圧計、湿度計、など)を含むことができる。いくつかの例では、シミュレートされたセンサは、車両102上のセンサ104の少なくとも1つに対応することができ、シミュレーションでは、センサ104の1つまたは複数がシミュレートされ得る。いくつかの例では、シミュレートされたセンサの位置は、車両102に対するセンサ104の1つの相対位置に対応し得る。
【0019】
センサ104は、センサデータを生成することができ、センサデータは、車両102に関連するコンピューティングデバイス106によって受信される場合がある。しかし、他の例では、センサ104、および/またはコンピューティングデバイス106の一部または全部は、車両102から分離、および/または離れて配置する場合があり、データ取得、処理、指示、および/または制御は、有線および/または無線ネットワークを介して、1つまたは複数の遠隔コンピューティングデバイスによって車両102との間で、またはから通信され得る。
【0020】
コンピューティングデバイス106は、位置特定コンポーネント110、知覚コンポーネント112、プランニングコンポーネント114、および/またはシミュレーションシステム116を格納するメモリ108を備えることができる。一般に、1つまたは複数の座標フレームに対する(例えば、環境に対して、車道に対して、自動運転車両に関連する動きの慣性方向に対する)車両102の姿勢(例えば、位置、および/または方向)を決定するためのソフトウェア、および/またはハードウェアシステムを備えることができる。位置特定コンポーネント110は、このデータの少なくとも一部を知覚コンポーネント112に出力することができ、知覚コンポーネント112は、位置特定データの少なくとも一部を出力し、および/または知覚データの少なくとも一部を決定するための基準として位置特定データを使用することができる。
【0021】
知覚コンポーネント112は、車両102を取り囲む環境に何があるかを決定することができ、プランニングコンポーネント114は、位置特定コンポーネント110、および/または知覚コンポーネント112から受信した情報に従って、車両102をどのように動作するかを決定することができる。位置特定コンポーネント110、知覚コンポーネント112、および/またはプランニングコンポーネントは、1つまたは複数の機械学習(ML)モデルおよび/または他のコンピューター実行可能な指示を含むことができる。
【0022】
いくつかの例では、位置特定コンポーネント110および/または知覚コンポーネント112は、センサ104からセンサデータおよび/またはシミュレーションシステム116からシミュレートされたデータを受信することができる。本明細書で説明される技法は、シミュレーションコンコンポーネント116から受信するシミュレーションデータを、知覚データ112によって出力された知覚データに追加することを備えることができ、それによって可能なエージェント行動のオンライン予測を改善する。例えば、シミュレーションシステム116は、本明細書で説明されるエージェント行動モデルを使用して変更された操作、および/または変更された経路を生成し、少なくとも1つの例において、変更された操作、および/または変更された経路をプランニングコンポーネント114、および/または知覚コンポーネント112に提供することができる。
【0023】
場合によっては、知覚コンポーネント112は、車両102の周辺のオブジェクトに関連するデータ(例えば、検出されたオブジェクトに関連する分類、インスタンス分類、追跡)、車両の目的地を指定する航路データ、道路の特性を識別するグローバルマップデータ(例えば、自動運転車両の位置特定するために有用な様々なセンサ態様で検出可能な特徴)、検出された特性を識別するローカルマップデータ(例えば、建物、樹木、柵、消火栓、停止標識、および多様なセンサ態様で検出可能なその他の機能の位置、および/または寸法)などを決定することができる。いくつかの例では、車両102の周囲オブジェクトは、シミュレートされた環境のシミュレートされたオブジェクトであってもよい。知覚コンポーネント112によって生成されたデータは、集合的に「知覚データ」と呼ぶことができる。知覚コンポーネント112が知覚データを生成すると、知覚コンポーネント112は、知覚データをプランニングコンポーネント114に提供することができる。
【0024】
プランニングコンポーネント112は、例えば、シミュレーションシステム116によって生成されたシミュレーションデータ(例えば、変更された操作、および/または経路)および/または位置特定データ(例えば、位置特定コンポーネント110によって検出されたマップ、および/または特徴に関連する環境に車両102がある場合)のような知覚データ、および/または他の情報に少なくとも部分的に基づいて軌道118を決定することができる。例えば、プランニングコンポーネント114は、第1の位置から第2の位置までの車両102の経路を決定することができ、実質的に同時に、知覚データ、および/またはシミュレートされた知覚データに少なくとも部分的に基づいて、後退ホライズン技法(例えば、1マイクロ秒、0.5秒)に従って車両102の動きを制御するための複数の潜在的な軌道を生成し、(例えば、検出されたオブジェクトを回避するための)航路を横断するように車両を制御し、車両102のドライブコンポーネントに送信され得るドライブ制御信号を生成するために車両102が使用し得る軌跡118として、潜在的な軌跡の1つを選択する。図1は、そのような軌道118の例を示し、進行方向、速度、および/または加速度を示す矢印として表されるが、軌道自体は、PIDコントローラーに対する指示を含むことができ、次に、車両102のドライブシステムを作動させることができる。例えば、軌道118は、自動運転車両102のコントローラーが車両102のドライブコンポーネントを作動させて、車両位置、車両速度、および/または車両加速度(または自動運転車両がシミュレートされている場合のそのシミュレートされたバージョン)をもたらし得るステアリング角、および/またはステアリング速度を達成するための指示を含むことができる。軌道118は、コントローラーが追跡する目標進行方向、目標ステアリング角、目標ステアリング速度、目標位置、目標速度、および/または目標加速度を備えることができる。
【0025】
シナリオ例100は、車両102が動作している車道の隣の歩道を歩いている歩行者120を含む。知覚コンポーネント112は、環境に関連するセンサデータを受信し、環境内の歩行者120の位置および歩行者120に関連する分類(すなわち、「歩行者」)を決定することができる。知覚コンポーネント112によって生成された知覚データは、現在および以前の時間ステップにおける歩行者120の位置を備えることができるログデータストアに格納することができる。例えば、図1は、歩行者120の時間t0における現在位置122、および歩行者の以前の(履歴的な)位置、すなわち、時間t-1における位置124および時間t-2における位置126を示す。各時間ステップは、時間間隔(例えば、100ミリ秒、500ミリ秒、1秒、その他の時間)に対応する場合がある。少なくとも1つの例では、位置122―126およびオブジェクトの分類は、知覚コンポーネント112によって生成された追跡の一部として関連し得る。
【0026】
シナリオ例100では、知覚コンポーネント112は、位置122、履歴位置124、および/または126、オブジェクト分類、および/または歩行者120に関連するその他のデータに少なくとも部分的に基づいて、予測された操作128、および/または歩行者120の経路を決定することができる。図1は、時間t1での予測位置130、および時間t2での予測位置132を含む離散位置として経路を示す。現在および過去の位置は塗りつぶされた円で示され、予測された位置は塗りつぶされていない円で示されている。経路は、離散位置を備えるものとして示されているが、予測コンポーネント112は、経路を線または曲線として、および/または操作に関連する標準的基準線または曲線からの変化またはパラメータとして決定することができることに留意されたい。例えば、経路は、方向転換操作の曲率パラメータ、または操作によって定義される曲線からの変化を定義することができる。
【0027】
いくつかの例では、予測データは、追加的または代替的に、マップデータまたは他のデータに少なくとも部分的に基づくことができる。いくつかの例では、予測データは、特許文献1においてより詳細に説明されているように、環境の上意下達式の分割を備えることができ、その全体が、本明細書に組み込まれており、および/または特許文献2においてより詳細に説明されているように、環境に関連する上意下達式の予測を備えることができ、その全体が、本明細書に組み込まれている。例えば、図示の例では、歩行者マップの予測位置は、環境内の横断歩道に対する歩行者120の位置に少なくとも部分的に基づいている。マップデータマップは、メモリ108によって格納される。いくつかの例では、予測データおよび/または他の知覚データは、ログデータの一部として格納され得る。ログデータは、車両102が動作し続けるにつれて、それぞれ、車両102によって収集および生成される将来の時間t1およびt2に関連するセンサデータおよび/または知覚データを含むことができる。次の時間ステップで、車両102は、新しい予測を生成することに留意されたい。言い換えれば、予測された操作および位置は、時間t-2において知覚コンポーネント112によって生成された場合があり、現在の時間は、時間t--2であってことに対応している場合がある。
【0028】
いくつかの例では、シナリオラベル134は、ログデータの一部として格納されたセンサデータおよび/または知覚データに関連することができる。いくつかの例では、シナリオラベル134は、異なるコンピューティングデバイス(例えば、ログデータが車両102によって送信された後の遠隔コンピューティングデバイス)によって追加される場合がある。例えば、シナリオラベルは、数、タイプ、または環境内のオブジェクトの構成、および/若しくは環境のレイアウトを特徴付ける場合がある。いくつかの例では、シナリオラベルは、データ構造である場合がある。構成は、環境内のオブジェクトの位置、進行方向、および/または速度を定義することができ、環境のレイアウトは、環境の一般的特性を識別することができる(例えば、4方向ライト制御の交差点、制御されていない左折車線のある4方向ライト制御の交差点、一方通行道路のある制御されていない3方向交差点)。いくつかの例では、シナリオラベルは、ログデータ処理動作の一部として生成される場合がある。処理動作は、オブジェクトの相対位置および/またはタイプを識別する知覚データに関連するセンサデータを決定することを備えることができる。例えば、処理動作は、以下に列挙される領域内のオブジェクトの数、および/またはタイプを識別し、このデータをそれぞれのセンサデータと関連付けることができる。結果として得られるメタデータ注釈は、クラスタ化され、シナリオラベルは、それぞれの異なるクラスタに関連付けられる場合があり、オブジェクトおよび/または領域の数および/またはタイプに基づく場合がある。領域は以下含むことができ、例えば、
・車両102の前方、
・車両102の側面へ、
・車両102の後方、
・車両102の車線からの車線内で、
・車両102から離れた次の車線で、
・多様な交差点/分岐点構成の内、またはその近く(例えば、4方向制御交差点、T字路内、4方向制御、2制御、2非制御の交差点)、
・道路の隣、など
いくつかの例では、シナリオラベルは、人間には理解できない場合があるが(シナリオラベルは、単なるクラスタ識別子である場合がある)、他の例では、人間に理解できる用語がクラスタ(例えば、車両の側面に2つのオブジェクト、車両の前方に1つのオブジェクト)、学習された挿入などに添付されている場合がある。
【0029】
車両102は、ログデータの一部として、センサデータ、知覚データ、および/またはシナリオラベル134(知覚コンポーネント112によって車両上で生成される場合)の少なくとも一部を(図1には図示していない)リモートコンピューティングデバイスに送信することができる。
【0030】
システム例
図2は、本明細書で説明する技法を実装する例示的なシステム200のブロック図を示している。場合によっては、例示的なシステム200は、車両202を含むことが出き、図1の車両102を表すことができる。場合によっては、車両202は、ドライバー(または乗員)がいつでも車両を制御することが期待されていない状態で、全体の旅行においてすべての安全に重要な機能を遂行することができる車両を説明する米国国道交通安全局によって発行されたレベル5の分類に従って動作するように構成された自律型車両であってもよい。しかし、他の例では、車両202は、他のレベルまたは分類を有する全部または部分的な自動運転車両であってもよい。さらに、場合によっては、本明細書で説明する技法は、非自動運転車両でも使用できる場合がある。
【0031】
車両202は、車両コンピューティングデバイス204、センサ206、エミッタ208、ネットワークインターフェース210、および/またはドライブコンポーネント212を含みことができる。車両コンピューティングデバイス204は、コンピューティングデバイス106を表すことができ、センサ206は、センサ104を表すことができる。システム200は、追加的または代替的に、コンピューティングデバイス214を備えることができる。
【0032】
場合によっては、センサ206は、センサ104を表すことができ、ライダーセンサ、レーダーセンサ、超音波変換器、ソナーセンサ、位置センサ(例えば、全地球測位システム(GPS)、コンパスなど)、慣性センサ(例えば、慣性測定装置(IMUs)、加速度計、磁力計、ジャイロスコープなど)、イメージセンサ(例えば、赤-緑-青(RGB)、赤外線(IR)、強度、深さ、タイムオブフライトカメラなど)、マイク、ホイールエンコーダ、環境センサ(温度計、湿度計、光センサ、圧力センサなど)、その他を含むことができる。センサ206は、これらまたは他のタイプのセンサのそれぞれの複数のインスタンスを含むことができる。例えば、レーダーセンサは、車両202の隅、前方、後方、側面、および/または上部に位置する個々のレーダーセンサを含むことができる。別の例として、カメラは、車両202の外部および/または内部の様々な場所に配置された複数のカメラを含むことができる。センサ206は、車両コンピューティングデバイス204、および/またはコンピューティングデバイス214に入力を提供することができる。いくつかの例では、本明細書で説明するシミュレートされたセンサは、特定のタイプのセンサ、および/または任意のセンサに対応する場合がある。シミュレートされたセンサに関連する位置は、本明細書で説明するように、車両202に対するセンサの視野の位置および/または原点(例えば、焦点)、および/または車両202の動き方向に対応することができる。
【0033】
車両202は、また、上述のように、光および/または音を発するためのエミッタ208を含むことができる。この例におけるエミッタ208は、車両202の乗客と通信するための内部オーディオおよび視覚エミッタを含む場合がある。限定ではない例として、内部エミッタには、スピーカー、照明、標識、表示画面、タッチスクリーン、触覚エミッタ(例えば、振動および/または力フィードバック)、機械的アクチュエータ(シートベルトテンショナー、シートポジショナー、ヘッドレストポジショナーなど)、およびその他を含むことができる。この例のエミッタ208は、外部エミッタも含むことができる。限定ではない例として、この例の外部エミッタには、進行方向、または車両動きの他の方向指示器(例えば、方向指示器ライト、標識、ライトアレイなど)を知らせるためのライトおよび、1つまたは複数のオーディオエミッタ(例えば、スピーカー、スピーカーアレイ、ホーンなど)を使用して、歩行者や他の近くの車両と聞こえるように通信することができ、1つまたは複数は、音響ビームステアリング技術を備える。
【0034】
車両202は、車両202と1つまたは複数の他のローカルまたは遠隔コンピューティングデバイスとの間の通信を可能にするネットワークインターフェース210を含むことができる。例えば、ネットワークインターフェース210は、車両202、および/またはドライブコンポーネント212上の他のローカルコンピューティングデバイスとの通信を容易にすることができる。また、ネットワークインターフェース210は、追加的または代替的に、車両が他の近くのコンピューティングデバイス(例えば、他の近くの車両、交通信号など)と通信できるようにすることができる。ネットワークインターフェース210は、追加的または代替的に、車両202がコンピューティングデバイス214と通信できるようにすることができる。いくつかの例では、コンピューティング デバイス214は、分散されたコンピューティングシステム(例えば、クラウドコンピューティングアーキテクチャ)の1つまたは複数のノードを備えることができる。
【0035】
ネットワークインターフェース210は、車両コンピューティングデバイス204を別のコンピューティングデバイスまたはネットワーク216のようなネットワークに接続するための物理的および/または論理的インターフェースを含むことができる。例えば、ネットワークインターフェース210は、IEEE200.11規格によって定義された周波数、Bluetooth(登録商標)のような近距離無線周波数、セルラー通信(例えば、2G、3G、4G、4G LTE、5Gなど)、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースできるようにする任意の適切な有線または無線通信プロトコルを介するようなWi-Fiに基づく通信を可能にすることができる。場合によっては、車両コンピューティングデバイス204および/またはセンサ206は、ネットワーク216を介して、一定期間経過後、ほぼリアルタイム等に、特定の周波数で、センサデータをコンピューティングデバイス214に送信することができる。
【0036】
場合によっては、車両202は、1つまたは複数のドライブコンポーネント212を含むことができる。場合によっては、車両202は、単一のドライブコンポーネント212を有することができる。場合によっては、ドライブコンポーネント212は、ドライブコンポーネント212および/または車両202の周囲を検出するための1つまたは複数のセンサを含むことができる。限定ではない例として、ドライブコンポーネント212のセンサは、ドライブコンポーネントのホイールの回転を感知するための1つまたは複数のホイールエンコーダ(例えば、ロータリーエンコーダ)、ドライブコンポーネントの進行方向および加速度を測定するための慣性センサ(例えば、慣性測定装置、加速度計、ジャイロスコープ、磁力計など)、カメラまたはその他のイメージセンサ、ドライブコンポーネントの周囲にあるオブジェクトを音響的に検出するための超音波センサ、ライダーセンサ、レーダーセンサなどを含むことができる。ホイールエンコーダのようなあるセンサは、ドライブコンポーネント212に固有のものである場合がある。場合によっては、ドライブコンポーネント212上のセンサは、車両202の対応するシステム(例えば、センサ206)と重複するか、または補足することができる。
【0037】
ドライブコンポーネント212は、高電圧バッテリ、車両を推進するモーター、他の車両システムで使用するためのバッテリからの直流電流を交流電流に変換するインバータ、ステアリングモーターおよびステアリングラック(電動であってもよい)を含むステアリングシステム、油圧または電気アクチュエータを含むブレーキシステム、油圧および/または空気圧コンポーネントを含むサスペンションシステム、推進力の損失を軽減するためにブレーキ力を分配するための横すべり防止システム制御、HVACシステム、ライト(例えば、車両の外部周辺を照らすためのヘッド/テールライトなどの照明)、および1つまたは複数の他のシステム(例えば、冷却システム、安全システム、車載充電システム、その他のDC/DCコンバーター、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートなどのような電気的コンポーネント)を含むことができる。さらに、ドライブコンポーネント212は、ドライブコンポーネントコントローラーを含み、センサからデータを受信し、前処理し、様々な車両システムの動作を制御することができる。場合によっては、ドライブコンポーネントコントローラーは、1つまたは複数のプロセッサ、および1つまたは複数のプロセッサと通信可能に結合されたメモリを含むことができる。メモリは、ドライブコンポーネント212の様々な機能を実行するために、1つまたは複数のコンポーネントを格納することができる。さらに、ドライブコンポーネント212は、それぞれのドライブコンポーネントによる1つまたは複数の他のローカルまたは遠隔コンピューティングデバイスとの通信を可能にする1つまたは複数の通信接続も含むことができる。
【0038】
車両コンピューティングデバイス204は、プロセッサ218、および1つまたは複数のプロセッサ218と通信可能に結合されたメモリ220とを含むことができる。メモリ220は、メモリ108を表すことができる。コンピューティングデバイス214は、プロセッサ222および/またはメモリ224も含むことができ、プロセッサ218および/または222は、指示を実行してデータを処理し、本明細書で説明する動作を実行できる任意の適切なプロセッサであることができる。限定ではない例として、プロセッサ218および/または222は、1つまたは複数の中央処理装置(CPUs)、グラフィックス処理装置(GPUs)、集積回路(例えば、特定用途向け集積回路(ASICs))、ゲートアレイ(例えば、現場で構成可能な回路アレイ(FPGAs))、および/または任意の他のデバイスまたは電子データを処理して、その電子データをレジスタおよび/またはメモリに格納できる他の電子データに変換するデバイスの一部を備えることができる。
【0039】
メモリ220および/または224は、非一時的コンピューター可読媒体の例であり得る。メモリ220および/または224は、動作システム、および1つまたは複数のソフトウェアアプリケーション、指示、プログラム、および/またはデータを格納して、本明細書に記載の方法および様々なシステムに起因する機能を実装することができる。さまざまな実装において、メモリは、スタティック・ランダム・アクセス・メモリ(SRAM)、同期ダイナミックRAM(SDRAM)、不揮発性/フラッシュ型メモリ、または情報を格納できる任意の他のタイプのメモリのような任意の適切なメモリ技術を使用して実装することができる。本明細書で説明するアーキテクチャ、システム、および個々の要素は、他の多くの論理的、プログラム的、および物理的コンポーネントを含むことができ、添付の図に示されているものは、本明細書の説明に関連する単なる例である。
【0040】
場合によっては、メモリ220および/またはメモリ224は、位置特定コンポーネント226、知覚コンポーネント228、プランニングコンポーネント230、ログデータ232、マップ234、および/またはシステムコントローラー236を格納することができ、これらの0個以上の部分のうちのいずれかは、GPU,CPU,および/またはその他の処理ユニットのようなハードウェアであってもよい。位置特定コンポーネント226、は、位置特定コンポーネント110を表すことができ、知覚コンポーネント228は、知覚コンポーネント112を表すことができ、プランニングコンポーネント230は、プランニングコンポーネント114を表すことができ、シミュレーションシステム238は、シミュレーションシステム116を表すことができる。
【0041】
少なくとも1つの例で、位置特定コンポーネント226は、センサ206からデータを受信して車両202の位置、速度、および/または方向(例えば、1つまたはX-、Y-,Z-位置、ロール、ピッチ、またはヨー)を決定するためのハードウェアおよび/またはソフトウェアを含むことができる。例えば、位置特定コンポーネント226は、環境のマップ234を含む、および/または要求/受信することができ、マップ234内の自動運転車両の位置、速度、および/または方向を継続的に決定することができる。場合によっては、位置特定コンポーネント226は、SLAM(同時位置特定及びマッピング)、CLAMS(較正、位置特定及びマッピング、同時に)、相対的SLAM、バンドル調整、非線形最小2乗最適化などを利用して、画像データ、ライダーデータ、レーダーデータ、IMUデータ、GPSデータ、ホイールエンコーダデータなどを受信し、自動運転車両の位置、姿勢、および/または速度を正確に決定することができる。場合によっては、位置特定コンポーネント226は、車両202のさまざまなコンポーネントにデータを提供することができ、本明細書で説明するように、軌道を生成するため、および/またはマップデータを生成するために自動運転車両の初期位置を決定する。いくつかの例では、位置特定コンポーネント226は、知覚コンポーネント228に、環境に対する車両202の位置および/または進行方向、および/またはそれに関連するセンサデータを提供することができる。
【0042】
場合によっては、知覚コンポーネント228は、ハードウェアおよび/またはソフトウェアで実装される一次知覚システムおよび/または予測システムを備えることができる。知覚コンポーネント228は、車両202を取り囲む環境内のオブジェクトを検出し(例えば、オブジェクトが存在することを識別する)、オブジェクトを分類し(例えば、検出されたオブジェクトに関連するオブジェクトタイプを決定する)、センサデータおよび/または環境の他の表現(例えば、センサデータの一部および/または環境の表現を、検出されたオブジェクトおよび/またはオブジェクトタイプに関連するものとして識別)を分割し、オブジェクトに関連する特性(例えば、オブジェクトに関連する現在、予測、および/または以前の位置、進行方向、速度、および/または加速度を識別する追跡)などを決定することができる。知覚コンポーネント228によって決定されるデータは、知覚データと呼ばれる。
【0043】
プランニングコンポーネント230は、位置特定コンポーネント226から車両202の位置および/または方向、および/または知覚コンポーネント228から知覚データを受信することができ、このデータいずれかの少なくとも部分的に基づいて車両202の動作を制御するための指示を決定することができる。いくつかの例では、指示を決定することは、指示が、関連するシステムに関連するフォーマットに少なくとも部分的に基づいて指示を決定することを備えることができる(例えば、自動運転車両の動きを制御するための第1の指示は、システムコントローラー236および/またはドライブコンポーネント212が解析/実行することができるメッセージおよび/または信号(例えば、アナログ、デジタル、空気圧、運動学的)の第1のフォーマットでフォーマットされることがあり、エミッタ208に対する第2の指示は、それに関連する第2のフォーマットに従ってフォーマットされることがある)。プランニングコンポーネント230が、(例えば、プランニングコンポーネント230のテストおよび/またはトレーニングのための)シミュレーションにおいてハードウェア/ソフトウェアインザループを備える場合のいくつかの例では、プランニングコンポーネント230は、シミュレートされた車両を制御するために使用され得る指示を生成する場合がある。プランニングコンポーネント230は、いくつかの例では、シミュレーションシステム238の一部である場合がある。
【0044】
ログデータ232は、センサデータ、知覚データ、および/または車両202によって(例えば、知覚コンポーネント228によって)収集/決定されるシナリオラベルだけでなく、制御メッセージ、エラーメッセージなどを含むが、限定されない、動作中に車両202によって生成および/または送信される任意の他のメッセージを備えることができる。いくつかの例では、車両202は、ログデータ232をコンピューティングデバイス214に送信することができる。コンピューティングデバイス214は、ログデータに少なくとも部分的に基づいて1つまたは複数のシナリオを識別することができ、これはシナリオを定義することも備えることができる。例えば、コンピューティングデバイス214は、環境内のオブジェクトの環境的レイアウト、数、タイプ、および構成を決定し、および/またはこの定義を、そのシナリオに関連するログデータの1つまたは複数の部分に関連することができる。いくつかの例では、ログデータ232は、車両の動作中に車両102で生成された(履歴)知覚データ240を含むことができる。追加または代替の例では、知覚データ240は、シミュレーション中に生成された知覚データを含むことができる。
【0045】
いくつかの例では、コンピューティングデバイス214は、本明細書で説明する技法に従って、ログデータ232および知覚データ240に少なくとも部分的に基づいて、エージェント行動モデル242を決定することができる。
【0046】
シミュレーションシステム238は、(図2は、シミュレーションシステム238をコンピューティングデバイス214上で動作するものとして示しているが、)車両202および/またはコンピューティングデバイス214上で動作し得る。シミュレーションシステム238が車両上で動作している場合、シミュレーションシステム238は、オブジェクトが取り得る操作および/または経路に関する代替予測を提供することができる。これらの代替予測は、プランニングコンポーネント230への入力として提供される場合がある。シミュレーションシステム238は、知覚コンポーネント228と並行して実行することができ、および/または知覚コンポーネント228は、シミュレーションシステム238の一部であってもよく、および/またはシミュレーションシステム238に知覚データを提供してもよい。
【0047】
シミュレーションシステム238は、環境および/または車両202のシミュレーションを決定することができる。例えば、シミュレーションは、環境および/または車両202の部分の位置、方向、動き、および/または品質の表現を備えることができる。環境は、別の車両、歩行者、植生、建物、看板のようなエージェントを備えることができる。シミュレーションは、車両202の様々なコンポーネントの動作を試験するために使用され得る。いくつかの例では、シミュレーションは、シミュレーションからのデータを知覚コンポーネント228および/またはプランニングコンポーネント230に提供することに少なくとも部分的に基づいて、自動運転車両の知覚コンポーネント228および/またはプランニングコンポーネント230を試験するために使用され得る。
【0048】
シミュレーションシステム238は、シナリオデータ244および/またはログデータ232を受信することができる。シミュレーションシステム332は、シナリオデータ244および/またはログデータ232を受信して、シミュレーション246を決定することができ、これは、シナリオの二次元または三次元表現であり得る。例えば、三次元表現は、環境の1つまたは複数のオブジェクトに関連する位置、方向、幾何学的データ(例えば、ポリゴン表現、デジタルワイヤーメッシュ表現)および/または操作データを備えることができ、および/または、他の例では、このデータが抜けている場合があるが、材料、信号、および/または信号データを含むことができる。いくつかの例では、シナリオデータ244は、シナリオを介して組み合わせ反復の一部として手順通りに生成され、コンピューティングデバイス214のユーザーインターフェイスとの相互作用に応答して(例えば、ユーザー入力に応答して)受信されなどすることができるが、少なくとも1つの例では、シナリオデータ244は、ログデータ(および/またはエージェント行動モデル242)に関連するシナリオによって少なくとも部分的に定義され得る。いくつかの例では、シナリオデータ244は、ログデータ232に基づいて生成されるシナリオの特性を変更することができる。
【0049】
シナリオデータ244は、シナリオに関連する環境、そこに含まれるオブジェクト、およびそれに関連する特徴の二次元表現を備えることができ、これらのすべては、ログデータに関連するシナリオの一部であることができる。例えば、シナリオデータ244は、オブジェクトの位置、オブジェクトが占める面積、オブジェクトに関連する速度および/または加速度、オブジェクトが静的か動的か、オブジェクトに関連するオブジェクトのタイプ(例えば、「歩行者」、「自転車を乗る者」、「車両」、「大型車両」、「信号機」、「交通標識」、「建物」、「車道」、「横断歩道、歩道」などの分類)、および/またはオブジェクトおよび/またはオブジェクトのタイプに関連するその他の運動学的性質(例えば、摩擦係数、弾性、可鍛性)を識別することができる。環境自体に関して、シナリオデータは、環境のトポロジー、環境に関連する気象条件、照明状態(晴れ、曇り、夜)、光源の位置などを識別することができる。いくつかの例では、シナリオデータ244に関連するトポロジー、固定オブジェクト(例えば、建物、樹木、標識)の位置および寸法などは、マップ234に少なくとも部分的に基づいて生成され得る。いくつかの例では、シナリオデータ244は、オブジェクトの三次元表現を例示化するために使用される場合があり、および/またはシミュレートされた環境は、マップデータ(例えば、環境のトポロジーを定義することができ、標識、植物、および/または建物のような備品の位置および/または寸法)および/またはシナリオデータに少なくとも部分的に基づいてインスタンス化することができる。いくつかの例では、エージェント行動モデル242は、シナリオに関連することも、またはその逆もできる場合がある。
【0050】
いくつかの例では、シミュレートされたセンサは、シミュレーション246に少なくとも部分的に基づいてセンサデータ248を決定することができる。例えば、2019年9月24日に出願され、本明細書に組み込まれている特許文献3では、これについてより詳細に説明している。追加または代替の例では、シミュレーション246自体は、シミュレートされたセンサデータを含むことができる。
【0051】
知覚コンポーネント228(例えば、ハードウェアインザループシミュレーションを含み得るソフトウェアおよび/またはハードウェアを備え得るそのコピー)は、シミュレーション246に基づいて生成されたシミュレートされたセンサデータ248を受信することができ、予測データ250を出力することができ、これは、シミュレートされたオブジェクトの予測された操作および/または予測された経路を備える場合がある。知覚コンポーネント228は、予測データ250をプランニングコンポーネント230および/またはエージェント行動モデル242に提供することができ、これらは、エージェント行動モデル242に関連するタイプのオブジェクトが少なくとも一部に基づいて例示化されたときに、シミュレーションシステム238の一部であるか、またはシミュレーションシステム238によって呼び出される場合もある。
【0052】
エージェント行動モデル242は、エージェント操作および/または経路252を生成するために、本明細書で説明される技法に従って予測データ250を変更することができる。エージェント操作および/または経路252は、シミュレーション246においてシミュレートされたオブジェクトの動きを制御するために使用することができる。換言すれば、エージェント操作および/または経路252は、シミュレーション246の一部であってもよく、シミュレーションシステム238は、シミュレートされた動的オブジェクトの動きを制御するためのエージェント制御コンポーネントを備えてもよく、エージェント制御コンポーネントは、エージェント行動モデル242からエージェント操作および/または経路252を受信してもよい。エージェント操作および/または経路252は、知覚コンポーネント228および/またはプランニングコンポーネント230を試験するために使用され得る。
【0053】
プランニングコンポーネント230の試験および/または学習は、エージェント操作/経路252に少なくとも部分的に基づくことができる。例えば、シミュレーションシステム238は、プランニングコンポーネント230が、車両が運転中に遭遇するかもしれないし遭遇しないかもしれない様々なシナリオにどのように反応するかを試験し、プランニングコンポーネント230が、シナリオを探索するために安全および/または効率的制御指示を生成するのか否かを決定する安全および迅速な方法を提供することができる。
【0054】
いくつかの例では、シミュレーションシステム238は、ルールセットを追加または代替的に格納し、プランニングコンポーネント230が少なくとも部分的にルールセットに基づいてシナリオに成功したか失敗したかを決定することができる。ルールセットは、シナリオデータ244に関連することができる。いくつかの例では、シミュレーションシステム238は、シナリオ識別子および/またはプランニングコンポーネント230が成功したか失敗したかの表示と関連してプランニングコンポーネント230のバージョンを記録することができる。追加または代替の例では、シミュレーションシステム238は、プランニングコンポーネント230の性能に関連する非バイナリ指標(例えば、成功/失敗指標に加えて、またはその代わりのスコア)を決定することができる。非バイナリ表示は、ルールセットに関連する重みのセットに少なくとも部分的に基づくことができる。少なくとも1つの例では、ルールセットは、シナリオのn反復あたりの衝突の最大数を指定することができ、ここで、nが正の整数である。いくつかの例では、ルールセットは、イベント検出システム(その全体が本明細書に組み込まれている、2019年11月13日に出願された特許文献4)、および/または衝突監視システム(2019年12月4日に出願された特許文献5)の一部であるか、それらによって置き換えられてもよい。
【0055】
メモリ220および/または224は、追加的または代替的に、マッピングシステム、プランニングシステム、乗車管理システムなどを格納することができる。知覚コンポーネント228および/またはプランニングコンポーネント230は、メモリ220および/または224に格納されるように示されているが、知覚コンポーネント228および/またはプランニングコンポーネント230は、プロセッサ実行可能指示、機械学習モデル(例えば、ニューラルネットワーク)、および/またはハードウェアを含むことができる。
【0056】
位置特定コンポーネント226、知覚コンポーネント228、プランニングコンポーネント230、エージェント行動モデル242、シミュレーションシステム238、および/またはシステム200の他のコンポーネントは、1つまたは複数のMLモデルを備えることができる。例えば、位置特定コンポーネント226、知覚コンポーネント228、プランニングコンポーネント230、および/またはシミュレーションシステム238は、それぞれ、異なるMLモデルパイプラインを備えることができる。いくつかの例では、MLモデルは、ニューラルネットワークを備えることができる。例示的なニューラルネットワークは、生物学に着想をされたアルゴリズムであり、入力データを一連の接続されたレイヤに渡して出力を生成する。ニューラルネットワークの各レイヤは、別のニューラルネットワークを備えることもでき、または(畳み込みであろうとなかろうと)任意の数のレイヤを備えることもできる。本開示の文脈で理解できるように、ニューラルネットワークは機械学習を利用することができ、これは、学習されたパラメータに基づいて出力が生成される、そのようなアルゴリズムの広範なクラスを指すことができる。
【0057】
ニューラルネットワークの文脈で説明されているが、あらゆるタイプの機械学習をこの開示と一貫して使用することができる。例えば、機械学習アルゴリズムには、限定はされないが、回帰アルゴリズム(例えば、通常の最小2乗回帰(OLSR)、線形回帰、ロジスティック回帰、段階的回帰、多変量適応回帰スプライン(MARS)、局所推定散布図平滑化(LOESS))、インスタンスベースのアルゴリズム(例えば、リッジ回帰、最小絶対収縮及び選択演算 子(LASSO)、弾性ネット、最小角度回帰(LARS))、決定ツリーアルゴリズム(例えば、分類及び回帰ツリー(CART)、繰り返しダイコトマイザ3(ID3)、カイ2乗自 動相互作用検出(CHAID)、決定スタンプ、条件付き決定ツリー)、ベイジアルゴリズム(例えば、単純ベイズ、ガウシアン単純ベイズ、多項単純ベイズ、平均1依存エスティメータ(AODE)、ベイジアン信念ネットワーク(BNN)、ベイジアンネットワーク)、クラスタリングアルゴリズム(例えば、k平均、k中央値、期待値最大化(EM)、階層クラスタリング)、関連付けルール学習アルゴリズム(例えば、パーセプトロン、バックプロパゲーション、ホップフィールドネットワーク、放射基底関数ネットワーク(RBFN))、深層学習アルゴリズム(例えば、深層ボルツマンマシン(DBM)、深層信念ネットワーク(DBN)、畳み込みニューラルネットワーク(CNN)、積層自動エンコーダ)、次元削減技法(例えば、主成分分析(PCA)、主成分回帰(PCR)、部分最小2乗回帰(PLSR)、サモンマッピング、多次元尺度構成法(MDS)、射影追跡、線形判別分析(LDA)、混合判別分析(MDA)、2次判別分析(QDA)、フレキシブル判別分析(FDA))、アンサンブルアルゴリズム(例えば、ブースティング、ブートストラップアグリゲーション(バギング)、アダブースト、積層一般化(ブレンディング)、勾配ブースティングマシン(GBM)、勾配ブースト回帰ツリー(GBRT)、ランダムフォレスト)、SVM(サポートベクターマシン)、教師あり学習、教師なし学習、半教師あり学習などを含み得る。アーキテクチャの追加の例は、ResNet50、ResNet-l0l、VGG、DenseNet、PointNetなどのニューラルネットワークを含む。いくつかの例では、本明細書で説明するMLモデルは、(例えば、その全体が本明細書に組み込まれている特許文献1を参照する)PointPillars、SECOND、トップダウン特徴レイヤ、および/またはVoxelNetを含むことができる。アーキテクチャ遅延時間の最適化には、MobilenetV2、Shufflenet、Channelnet、Peleenetなどがある。MLモデルは、いくつかの例では、Pixorのような残差ブロックを備えることができる。
【0058】
メモリ220は、追加的または代替的に、1つまたは複数のシステムコントローラー236を格納することができ、それは、車両202のステアリング、推進、制動、安全、エミッタ、通信、および他のシステムを制御するように構成され得る。これらのシステムコントローラー236は、ドライブコンポーネント212および/または車両202の他のコンポーネントの対応するシステムと通信および/または制御することができる。例えば、プランニングコンポーネント230は、知覚コンポーネント228によって生成された知覚データおよび/またはシミュレートされた知覚データに少なくとも部分的に基づいて指示を生成し、指示をシステムコントローラー236に送信することができる場合があり、それは、指示に少なくとも部分的に基づいて車両202の動作を制御することができる。
【0059】
図2は、分散型システムとして示されているが、代替例では、車両202のコンポーネントは、コンピューティングデバイス214に関連付けられてもよく、および/またはコンピューティングデバイス214のコンポーネントは、車両202に関連付けられてもよいことに留意すべきである。すなわち、車両202は、コンピューティングデバイス214に関連する機能のうちの1つまたは複数を実行することができ、その逆もできる。
【0060】
プロセス例
図3は、動的オブジェクトの現実的なシミュレーションのためのエージェント行動モデルの一部であり得る1つまたは複数のエラーモデルを生成するための例示的なプロセス300を絵画的に示すフローチャートである。いくつかの例では、技法は、オブジェクトのタイプごと、および/またはシナリオごとにエージェントの行動モデルを決定することを含むことができる。例えば、技法は、オブジェクトタイプ「車両」の第1のエージェント行動モデル、オブジェクトタイプ「歩行者」の第2のエージェント行動モデルなどを決定することを備えることができる。追加または代替の例では、車両行動モデルは、第1のシナリオに関連する1つまたは複数の第1のエラーモデル、第2のシナリオに関連する1つまたは複数の第2のエラーモデルなどを備えることができる。いくつかの例では、例示的なプロセス300は、コンピューティングデバイス214および/または車両202のコンポーネントによって実行され得る。以下で説明する動作では、単一の時間ステップで計算された関連する予測データについて説明することに留意すべきである。動作は、追加の時間ステップで決定された知覚データに対して繰り返される場合がある。
【0061】
動作302において、例示的なプロセス300は、本明細書で説明する技法のいずれかに従って、オブジェクトに関連する予測データを受信することを備えることができる。例えば、自動運転車両の予測コンポーネントは、自動運転車両に関連するセンサからセンサデータを受信し、知覚パイプラインによって予測データを決定することができる。予測データは、環境内のオブジェクトの第1の予測された操作304および/または第1の予測された経路306、ならない/もしくは第2の予測された操作308および/または第2の予測された経路(スペースの制約でラベル付けされていない)を備えることができる。例えば、図3は、例示的なシナリオ100で収集されたセンサデータに関連して知覚コンポーネントによって生成された予測データの例示的な表現を引き続き示している。知覚コンポーネントは、時間ステップごとに操作を予測する場合があることに留意すべきである(例えば、
【0062】
【数1】
【0063】
で直進、
【0064】
【数2】
【0065】
から
【0066】
【数3】
【0067】
で右折、
【0068】
【数4】
【0069】
から
【0070】
【数5】
【0071】
で直進)。また、操作および経路は、同じまたは異なる時間間隔で予測される場合があることに留意すべきである。例えば、経路は、操作よりも細かい(短い)時間間隔で予測されてもよい(例えば、0.2秒ごとに予測される一方で、他の時間間隔は考慮されているが、操作は、1秒ごとに予測されてもよい)。いくつかの例では、知覚コンポーネントは、予測された操作に関連する確率を決定することができる。確率が示される方法は変化し得るが(例えば、0から1の間の数、パーセンテージ、ロジット)、図示の例では、予測された操作304は、0.65の確率に関連付けられ、予測された操作308は、0.35の確率に関連付けられる。いくつかの例では、示された例のように、オブジェクトに関連する予測された操作に関連付けられた確率は、合計すると1になる場合がある。
【0072】
いくつかの例では、知覚コンポーネントは、追加的または代替的に、車両が動作するときにシナリオデータを決定することができる。例えば、知覚コンポーネントは、知覚データの少なくとも一部を備えるシナリオデータ構造を生成することができる。データ構造は、環境のレイアウトおよび/または環境内のオブジェクトの数、タイプ、または構成を示すことができる。予測データおよび/またはシナリオデータ構造は、ログデータに関連付けおよび/または追加することができる。
【0073】
図3は、環境内の個別の位置として予測された経路306を示しているが、予測された経路306は、追加的または代替的に、ラインまたは曲線であってもよいことが理解される。例えば、知覚コンポーネントは、一般的な右方向へのカーブなど、予測された操作304(その全体が本明細書に組み込まれている2019年7月19日に出願された特許文献6を参照する)に関連するモーションプリミティブを出力するように学習することができ、予測された経路306は、モーションプリミティブの長さ、曲率、終端などを変更するモーションプリミティブに関連する1つまたは複数のパラメータを備えることができる。いずれにしても、経路自体が個別の位置、ライン、曲線、曲線/ラインに関連するパラメータ、および/または標準的曲線/ラインからの変動(例えば、オブジェクトが曲線/ラインに沿った特定の位置にあり得る曲線/ラインからの距離または距離の分散)を定義することができる。
【0074】
動作310において、例示的なプロセス300は、本明細書で説明する技法のいずれかに従って、シナリオに関連するログデータを受信することを備えることができる。いくつかの例では、ログデータは、実際の経路312および/またはオブジェクトが取った実際の操作314の指示を含むことができる。図示の例では、歩行者は、引き返して車道に入り、これは図示の実際の経路312および実際の操作314の両方に反映されている。いくつかの例では、実際の操作314は、ログデータから決定され得る。例えば、車両上または車両外で動作する知覚コンポーネントは、車両によって取得されたセンサデータに基づいてオブジェクトによって実行された操作を決定し、その実際の操作は、ログデータとしてセンサデータに関連付けることができる。追加または代替の例では、実際の操作は、コンピューティングデバイス(例えば、人間から、機械学習モデルから)で受信した入力に基づいて、ラベルを付けることができる。
【0075】
動作316において、例示的なプロセス300は、本明細書で説明する技法のいずれかに従って、予測データとログデータとの間の差を決定することを備えることができる。予測された操作について、これは、予測された操作および実際の操作が同じ時間ステップで異なるかどうかを決定し、操作が同じか異なるかの指示を生成することを備えることができる。実際の操作が、(上記のようにセンサデータがグループ化されるクラスタによって識別されるように、同じまたは類似のシナリオに関連して)予測された操作と異なった、または同じであった回数の記録を保持することができる。いくつかの例では、他の方法も考えられるが、予測の精度は、パーセントで示されることができる。異なる操作については、表示は、追加的または代替的に、実際の操作を示すことができる。経路データの場合、動作316は、それらの点は、離散位置、またはラインまたは曲線に沿った位置であるかにかかわらず、同じ時間ステップに関連する予測された経路および実際の経路との間のユークリッド(または任意の他の座標空間)距離を決定することを備えることができる。いくつかの例では、経路差は、方向および/または速度の差を追加的または代替的に備えることができ、予測および/または実際の経路は、そのようなデータを追加または代替的に備えることができる。図3は、予測された位置と同じ時間ステップに対応する実際の位置との間のユークリッド距離をラインで示している。
【0076】
動作318において、例示的プロセス300は、本明細書で説明する技法のいずれかに従って、動作314で決定された差に少なくとも部分的に基づいて、オブジェクトタイプに関連するエラーモデルを決定することを備えることができる。動作318は、同じシナリオ、同じシナリオの複数のインスタンスの1つまたは複数の時間ステップ、同じシナリオの複数のインスタンスの環境内の同じ位置などにおいて、複数の時間ステップにわたって計算された差に少なくとも部分的に基づいて、オブジェクトタイプおよび/またはシナリオに関連する確率分布を決定することを備えることができる。例えば、エラーモデルは、特定のオブジェクト分類のオブジェクトに関連する予測軌道が正しかった、および/または特定軌道が予測されたときに左折する、右折する、直進するなどの時間のパーセンテージを示すことができる。さらに説明すると、特定のエラーモデルは、歩行者の軌跡を維持する、左折するなど、オブジェクト分類の歩行者と特定の予測軌跡、および予測軌跡が正しいという観測された確率に関連付けることができる。エラーモデルは、追加的または代替的に、位置および/または時間ステップごとに計算することができる。言い換えれば、エラーモデルは、シナリオ内の位置または時間ステップごとに異なる場合がある。いくつかの例では、エラーモデルは、追加的または代替的に、自動運転車両の状態に関連付けることができる。言い換えれば、誤差モデルは、車両状態、予測軌道、および/または軌道が予測されるオブジェクトに関連するオブジェクト分類ごとに決定することができる。
【0077】
いくつかの例では、動作318は、特定のシナリオにおける特定のオブジェクトタイプのオブジェクトが予測された操作に順守する確率を示す、予測された操作に関連するエラーモデル(すなわち、操作エラーモデル320)を決定することを備えることができる。エラーモデルは、追加的または代替的に、異なる操作に関連する確率を示すことができる。例えば、操作エラーモデル320は、車両が第1の操作に関わる第1の確率および/または確率分布、車両が第2の操作に関わる第2の確率および/または確率分布などを備えることができる。追加または代替の例では、エラーモデルは、操作変化(例えば、左折の実行から停止への変化、左折から右折への変化、左折から直進への変化)に関連する確率を示すことができる。
【0078】
いくつかの例では、動作318は、特定のシナリオにおける特定のオブジェクトタイプのオブジェクトが予測された経路を順守する確率を示す、予測された経路に関連するエラーモデル(すなわち、経路エラーモデル322)を決定することを備えることができる。経路エラーモデル322は、オブジェクトタイプのオブジェクトが経路から距離だけ離れる確率を示すことができる。経路エラーモデル322は、複数のそのような確率および距離を備えることができる。例えば、経路エラーモデル322は、歩行者が予測位置から第1の距離に位置する第1の確率、歩行者が予測位置から第1の距離に位置する第2の確率などを示すことができる。
【0079】
エラーモデルを決定することは、類似のシナリオに関連するエラーモデルを決定するために、それに関連するシナリオデータに少なくとも部分的に基づいて、エラーモデルをクラスタ化することを追加的または代替的に備えることができる。同じクラスタに関連するエラーモデルは、クラスタを表すエラーモデルに関連しおよび/または融合することができる。
【0080】
追加または代替の例では、例示的なプロセス300は、シミュレーションの一部(例えば、車両が同じ車両または異なる車両のログデータを再生する場合)として発生し得るが、いくつかの例では、例示的なプロセス300は、例示的なプロセス600前に、1つまたは複数の車両から受信した複数のログ、またはシナリオの1つまたは複数のインスタンスに関連する少なくともログに対して事前に計算されたステップとして達成することができる。
【0081】
予測された操作の例、予測された経路の例、シナリオの例、およびシナリオの例
図4Aは、予測された操作400の例、予測された経路402、および予測の対象であったオブジェクトがとった実際の経路402の例を示す。図示の例では、予測された経路402は、離散位置の代わりに連続曲線であるが、離散位置は、異なる時間ステップでの曲線によって定義され得る。いくつかの例では、予測された経路402の一般形状(すなわち、標準的曲線/ライン)は、予測された操作400に少なくとも部分的に基づくことができ、予測された経路402は、その一般形状を変更する1つまたは複数のパラメータを備えることができる(例えば、曲線の長さの増加/減少、これは、経路が時間の経過とともに定義されるため、速度/加速度を変更することもできる、曲率など)。図4Aは、またログデータを黒い影付きの円として示し、オブジェクトが異なる時間ステップで位置した実際の位置を示している。図示の例では、車両であるオブジェクトが右折を実行された場合、予測された操作は、正しかった。また、1つのみの予測された操作が示されているが、知覚コンポーネントは、各時間ステップに関連して予測された操作を決定することができることに留意すべきである。図示の例では、図4Aに示されている全体予測ホライズンの予測操作は、「左折」仮定することができる。
【0082】
しかし、オブジェクトの実際の経路には、予測された経路402からの変動がある。これは、実際の位置406と、実際の位置406と同じ時間ステップに関連する予測された経路402の一部との間の距離(すなわち、経路変動404)によって部分的に示される。このシナリオにおける車両操作のために生成されたエラーモデルは、正しい操作予測に少なくとも部分的に基づくことができ、このシナリオにおける車両経路のために生成されたエラーモデルは、経路変動404に少なくとも部分的に基づくことができる。
【0083】
図4Bおよび4Cは、異なる例示的なシナリオ、ログデータ表現408および410(例えば、動作中に車両202によって収集されたログデータに含まれるセンサデータのトップダウン表現)、およびそれに関連する単純化されたシナリオデータ構造412および414をそれぞれ示す。例えば、図4Bは、ログデータ表現408に示された位置において、車両202が交差点内に2台の車両があり、歩道上に1人の歩行者がいる4方向分岐点に遭遇したシナリオのログデータ表現408を示す。いくつかの例では、知覚コンポーネントは、ログデータ表現408の簡略化された形式を示すシナリオデータ構造412を決定することができ、これの過度に簡略化されたバージョンは、シナリオデータ構造412によって示され、これは「4方向分岐点の2車両、1歩行者」というラベルとして示される。例えば、シナリオデータ構造412は、環境レイアウト(例えば、車道の進行方向、専用車線の存在および位置、標識/分岐点制御の存在および位置、車線/分岐点の存在、数、および位置)の表示、環境内の存在、場所、および/または静的オブジェクト、および環境内の動的オブジェクトの数、分類、位置、方向、および/または速度を備えることができる。いくつかの例では、エラーモデルは、それに関連するそれぞれのシナリオデータ構造に少なくとも部分的に基づいてクラスタ化することができる。例えば、多次元尺度構成法(MDS)、主成分分析(PCA)などは、クラスタリングアルゴリズムに従って、シナリオデータおよび同じクラスタに関連するエラーモデルに適用され、融合され、および/または代表的なエラーモデルは、同じクラスタに関連するエラーモデルの中からが選択される場合がある。実際には、これにより、車両の両側の歩行者を示すシナリオデータ、複数の車両が交差点にあるシナリオなどに関連するエラーモデルの中から、代表的なエラーモデルを統合および/または決定することができる。例えば、図4Bおよび4Cに関連して生成されたエラーモデルは、いくつかのクラスタリング技法に従って融合することができる。
【0084】
図4Cは、ログデータ表現410と同様に示され、関連する(簡略化された)シナリオデータ構造414は、車両202の知覚コンポーネントによって生成され得る。
【0085】
少なくとも1つの例では、多かれ少なかれエラーモデルは、決定され得るが、少なくとも2セットのエラーモデルは、図4Bおよび図4Cに示されるシナリオに関連して生成され得ることに留意すべきである。例えば、シナリオは、2つの異なるオブジェクトタイプを備えるため、操作エラーモデル/経路エラーモデルのペアは、オブジェクトタイプ「車両」およびオブジェクトタイプ「歩行者」に対する別のペアを生成され得る。多かれ少なかれエラーモデルは、単一のオブジェクトタイプ(例えば、操作および経路エラーモデルが融合される場合、他のエラーモデルが、オブジェクトを明瞭にするためのオブジェクト変形のような他の予測データのために追加される場合)に関連して作成され得る。追加または代替の例では、少なくとも4セットのエラーモデルを生成され得る(車両タイプごとおよびシナリオごとに1セットのエラーモード、2つのシナリオに存在する2タイプのオブジェクトの間で4つのセットが生成され得る)。
【0086】
追加または代替の例では、オブジェクトのタイプ、シナリオ、および/または環境内の位置またはシナリオ内の時間ステップごとにエラーモデルのセットが存在し得る。例えば、図5A~5Cは、オブジェクトおよび/またはシナリオに関連するエラーモデルが、環境内のオブジェクトの位置/オブジェクトによって取られたアクションに少なくとも部分的に基づいて変化し得る方法を示す。図5A~5Cは、オブジェクトタイプ「車両」および図示されたシナリオに関連するエージェント行動モデルの一部であり得る操作エラーモデルを示す。第1の時間/位置(将来の時間/位置であり得る)に関連する図5Aのエラーモデル500の幅は、次の時間におけるエラーモデル502および504によって示される確率分布よりも広いことに留意すべきである。この幅は、第1の時間/位置におけるオブジェクト506の位置、進行方向、方向、および/または操作において、オブジェクト506は、予測コンポーネントが予測する可能性が低い操作を実行する可能性が高いことを示し得る。例えば、そのような操作は、車両202の前で方向転換するなど、ある種の異常な行動である可能性がある。
【0087】
しかし、図5Bでは、オブジェクト506が車両202の前でターンを実行し始めた後、オブジェクト506がターンを完了する可能性が高く、更新された予測データが予測することができるため、これに関連する操作エラーモデルは、より狭い確率分布を含む。この縮小傾向は、図5Cのエラーモデルで増加する。
【0088】
図3および図5A~5Cは、エラーモデルを2次元確率分布として示しているが、エラーモデルは、3次元またはそれ以上の確率分布を含むことができることに留意すべきである。
【0089】
シミュレーションプロセスの例
図6は、シミュレートされた環境において、異常な行動を含む動的オブジェクトのモーションを現実的にシミュレーションするための例示的なプロセス600のフローチャートである。例示的なプロセス600は、シミュレートされた自動運転車両を制御すること、例示的サブプロセス602と、シミュレートされた動的オブジェクトを制御すること、例示的サブプロセス604の2つのサブプロセスを含むことができる。いくつかの例では、自動運転車両の知覚コンポーネントおよび/またはプランニングコンポーネント(またはハードウェアインザループシミュレーションの使用を含むことができるそのコピーは)は、例のサブプロセス602を達成することができるが、シミュレーションシステムおよび/またはエージェント行動モデルは、例のサブプロセス604を達成することができる。サブプロセス602の一部として実行できる動作は、図6の左側に示され、サブプロセス604の一部として実行できる動作は、図6の右側に示されていることに留意すべきである。ブロックの垂直方向の間隔は、動作の相対的なタイミングを意味するものではないことに留意すべきである。追加または代替の例では、シミュレーションシステムおよび/またはエージェント行動モデルは、例示的なサブプロセス602および604の全部または一部を達成することができる。追加または代替の例では、例示的なプロセス600は、図に従って少なくとも分割されたサブプロセスを含まない。いくつかの例では、車両コンピューティングデバイス204および/またはコンピューティングデバイス214は、例示的なプロセス600の全部または一部をそれぞれまたは個別に達成することができる。
【0090】
いくつかの例では、例示的なプロセス600は、自動運転車両のリアルタイム動作中にシミュレーションシステムによって実行されてもよく、以下で説明するシミュレートされた車両および環境は、現実世界の自動運転車両および自動運転車両を取り囲む現実世界の環境に対応する。言い換えれば、例示的なプロセス600は、現実世界、リアルタイムシナリオのために実行することができる。そのような例では、シミュレーションシステムは、代替予測(例えば、代替予測操作/経路)を出力することができる。追加または代替の例では、例示的なプロセス600は、完全にまたは部分的に合成シナリオでシミュレーションシステムによって実行されてもよく、シナリオは、少なくとも部分的にシナリオ指示に基づいて、または部分的にセンサデータを使用して、それぞれ完全に生成される。合成シナリオは、リアルタイムまたは合成時間で実行できる。例えば、部分的合成シナリオは、少なくとも部分的にリアルタイムセンサデータに基づいて、またはログデータに基づいて、シナリオデータを生成することができる。
【0091】
技法のいくつかは、シナリオの複数のシミュレーションを実行し、動的オブジェクトに、エージェント行動モデルによって指示される発生率で異常な行動を起こさせることを含むことができる。追加または代替の例では、動的オブジェクトは、エージェント行動モデルの確率分布のサンプリングに少なくとも部分的に基づいて、異常な行動を実行する場合がある。
【0092】
動作606において、例示的プロセス600(および/または例示的サブプロセス604)は、本明細書で説明する技法のいずれかに従って、シナリオデータを受信することを備えることができる。例えば、単純なシミュレーションコンポーネントは、シナリオデータを生成する場合がある。追加または代替データにおいて、シナリオデータは、センサデータ、シナリオ指示、および/またはシナリオデータ構造を含む場合がある。いくつかの例では、シナリオデータ構造は、環境に内の静的オブジェクト、動的オブジェクト、および/またはシミュレートされた車両の位置、方向、および/または特性を含むことができ、それらは、自動運転車両のリアルタイム動作に対応することができ、および/または自動運転車両のシミュレートされた動作に対応することができる。いくつかの例では、自動運転車両のプランニングコンポーネントは、シミュレートされた車両をシミュレーションにとらわれない方法で制御するための指示を生成することができる(例えば、プランニングコンポーネントによって生成される指示は、類似する現実世界の状況に対して生成される指示と同じである場合がある)。プランニングコンポーネントの動作は、この方法で試験することができる。いくつかの例では、コンポーネントは、プランニングコンポーネントによって生成された指示を、シミュレートされた環境においてシミュレートされた車両を制御するための指示に変換する場合がある(例えば、シミュレートされた車両に関連するシミュレートされた状態を更新し、それは、シミュレートされた車両に関連する位置、方向、速度、加速度、進行方向、および/またはその他を備えることができる)。
【0093】
シナリオデータは、追加的または代替的に、1つまたは複数のオブジェクトに関連するオブジェクトタイプおよび/または1つまたは複数のオブジェクトに関連する特性(例えば、位置、速度、加速度、進行方向、材料タイプ、運動学的係数)の表示を備えることができる。本明細書で説明するデータのいずれも、ログデータの一部に関連するシナリオデータ構造の一部である場合がある。シナリオデータ構造は、二次元画像、出版-購読メッセージなどを備えることができる。
【0094】
動作608において、例示的なプロセス600(および/またはサブプロセス604)は、シナリオデータに少なくとも部分的に基づいて、本明細書で説明する技法のいずれかに従って、シミュレートされた環境をインスタンス化することを備えることができる。動作608は、オブジェクトタイプに関連するテンプレートモデルのセットに少なくとも部分的に基づいて、シミュレートされた環境を手順通り生成することを備えることができる。例えば、テンプレートモデルのセットは、3つの異なる乗客車両モデル、4つの異なる歩行者モデルなどを備えることができる。いくつかの異なるモデルが、存在する場合もある。いくつかの例では、テンプレートモデルは、テクスチャなしでオブジェクトの表面の3次元モデルを備えることができるが、追加または代替の例では、モデルは、テクスチャを備える場合もある。
【0095】
テンプレートモデルは、多角形メッシュ、三角形メッシュなどを含むことができる。いくつかの例では、動的オブジェクトに関連するモデルは、静的オブジェクトに関連するモデルよりもポリゴン数が多い場合がある。いくつかの例では、シミュレートされた環境は、表面モデルを備え、照明および/またはテクスチャを欠いている場合がある。追加または代替の例では、シミュレートされた環境は、照明および/またはテクスチャを備える場合があるが、本明細書で説明する技法は、照明および/またはテクスチャなしで機能する。シミュレートされた環境は、シミュレートされた車両のモデルを備えることができる。いくつかの例では、シミュレートされた環境の環境部分をインスタンス化することは、ログデータ、シナリオデータ、および/またはマップデータに少なくとも部分的に基づくことができ、環境内のオブジェクトは、シナリオデータの一部として受け取った指示に少なくとも部分的(例えば、ユーザーの選択および/またはユーザーインターフェイスとの相互作用に少なくとも部分的に基づいて生成された指示、手順通りに生成された指示)に基づいている場合がある。
【0096】
動作610において、例示的なプロセス600(および/またはサブプロセス602)は、本明細書で説明する技法のいずれかに従って、シミュレートされたセンサデータを受信することを備えることができる。例えば、知覚コンポーネントは、シミュレーションシステムによって生成されたシミュレーションに少なくとも部分的に基づいて(例えば、動作616、618、および/または620に少なくとも部分的に基づいて)、シミュレートされたセンサデータを受信することができる。
【0097】
動作612において、例示的なプロセス600(および/またはサブプロセス602)は、本明細書で説明する技法のいずれかに従って、シミュレートされたセンサデータに少なくとも部分的に基づいてオブジェクトの操作および/または経路を予測することを備えることができる。例えば、知覚コンポーネントは、シミュレートされたセンサデータに少なくとも部分的に基づいて、(シミュレートされた)オブジェクトの予測された操作および/または予測された経路を決定することができる。
【0098】
動作614において、例示的なプロセス600(および/またはサブプロセス602)は、本明細書で説明する技法のいずれかに従って、知覚データに少なくとも部分的に基づいてシミュレートされた(自動運転)車両を制御するための軌道を決定することを備えることができる。例えば、知覚データは、動作612において、知覚コンポーネントによって生成されてもよく、知覚データは、動作612において、決定された予測データを備えてもよい。
【0099】
動作616において、例示的プロセス600(および/またはサブプロセス604)は、本明細書で説明する技法のいずれかに従って、オブジェクトのタイプおよび/またはシナリオに関連するエージェント行動モデルに少なくとも部分的に基づいて、オブジェクトの予測された操作および/または経路を変更することを含むことができる。動作616は、動作618および/または動作620を備えることができる。いくつかの例では、動作616は、オブジェクトタイプおよび/またはシナリオに関連するエージェント行動モデルを取得すること、およびエージェント行動モデルを使用して予測データを変更することを備えることができる。エージェント行動モデルがデータの複数の次元を備える例(例えば、異なるシナリオに関連する異なる多次元エラーモデル、位置、操作)では、動作616は、シナリオおよび/または予測された操作/経路に対応するエージェント行動モデルのエラーモデルを選択することを備えることができる。
【0100】
動作618において、例示的なプロセス600(および/またはサブプロセス604)は、本明細書で説明する技法のいずれかに従って、予測された操作および/または予測された経路からの変動を決定するためにエラーモデルをサンプリングすることを備えることができる。動作618は、オブジェクトタイプおよび/またはシナリオ(および/または環境/シナリオにおける位置/時間)に関連するエージェント行動モデルの一部であるエラーモデルをランダムにサンプリングすることを備えることができる。確率分布のサンプリングされた部分は、予測された操作/位置からの変動を示すことができる。エラーモデルをサンプリングすることは、予測された操作およびエラーモデルに少なくとも部分的に基づいて、オブジェクトの状態に関連する潜在的な操作の重み付けサンプリングを行うことを備えることができる(オブジェクトが直進を続けるという予測に基づいて、そのような予測に関連するエラーモデル、およびオブジェクトおよび/または自動運転車両の状態が、直進を継続する確率55%、右折する確率18%、停止する確率15%、左折する確率12%を示すことができ、ランダムに選択は、これらの確率に少なくとも部分的に基づいて行うことができる)。
【0101】
例えば、確率分布の形状に応じて、確率の低い操作をもたらすサンプルは、予測された操作/位置からの急激な逸脱に関連することができ、標準的な行動からも逸脱することができる。操作エラーモデルに関連する異なるサンプルは、予測された操作を維持する結果になる場合があるが、分布の裾にある、またはその近くにある他の確率は、操作を別の操作に変更する(例えば、直進から強く止まる、方向を変える)ことができる。同様に、高い確率をもたらす経路エラーモデルのサンプリングは、予測された経路を変更しないか、シミュレートされたオブジェクトの位置をわずかに横方向に変化させるだけであることがあり得る。一方、裾または裾付近の行動には、予測された経路からの横方向の広い逸脱が含まれる場合がある。
【0102】
追加または代替の例では、動作618は、エラーモデルに少なくとも部分的に基づいて多様な予測操作を決定し、(エラーモデルに少なくとも部分的に基づいた多様な予測操作に関連する重み付けされた確率のセットによって)多様な予測操作の中から多様な予測操作のうちの1つを選択することを備えることができる。例えば、知覚コンポーネントは、動的オブジェクトが右折を実行することを予測することができ、オブジェクトがたどる曲線を予測することができる。エージェント行動モデルは、操作エラーモデルをサンプリングし、標準的確率を受け取り、したがって操作を右折として維持することができるが、経路エラーモデルは、サンプリングすると、異常な動作に関連する確率が生じることがある。シミュレートされたオブジェクトを制御するための変更された操作/経路を決定することは、シミュレートされたオブジェクトが続けて右折を実行させる指示を決定することを備えることができるが、ターンが非常にタイトまたは非常にルーズである場合があり、シミュレートされたオブジェクトが車線を出たり、特別な道に入ったり、車線に入ったり、歩道に入ったり、中央線を越えるなどの原因となる。この例は、サンプリング結果が反転した場合、反転する場合がある。操作は、大幅に変更-ターンを実行していた車両が突然反対方向にターンする場合があるが、経路確率が標準的である場合、車両は、その変更された操作から大きく変化しない場合がある。いくつかの例では、動作618は、サンプリングされた確率がしきい値確率を満たすか超える場合、操作および/または経路を変更することを備えることができる。
【0103】
追加または代替として、動作618は、経路エラーモデルに少なくとも部分的に基づいて操作に関連する経路分散を決定することを備えることができる。いくつかの例では、操作は、基準線または曲線を定義することができ、分散は、その曲線からの横方向の距離(例えば、曲線に直交する距離)であり得る。再度、少なくとも部分的に、分散を決定することは、経路エラーモデルによって示される確率に基づく、ランダム重み付け選択に少なくとも部分的に基づくことができる。いくつかの例では、変更された操作は、第1のレート(例えば、1Hz、0.5Hz、10Hz)で決定され得るが、経路の変化は、第1のレートと同じまたは異なる第2のレート(例えば、1Hz、10Hz、100Hz、200Hz)で決定され得る。少なくとも1つの例では、第1のレートは、第2のレートより低い場合(例えば、第1のレートが1Hzに対して第2のレートは200Hz)があるため、車両が変更された操作から横方向にドリフトするように、単一の変更された操作に関連する複数の変動が存在する場合がある。言い換えれば、操作は毎秒選択され、操作に関連する横方向位置は1秒よりも頻繁に変更され得る。
【0104】
動作620において、例示的プロセス600(および/またはサブプロセス604)は、追加または代替として、以前にシミュレートされたシナリオを追跡し、予測された操作および/または予測された経路に対する変更を選択して、本明細書で説明する技法のいずれかに従って、エージェント行動モデルによってモデル化された異常な行動の発生率をシミュレーションすることを含むことができる。例えば、動作620は、以前の変更を追跡し、オブジェクトタイプおよびシナリオに関連するエラーモデルと一致するように選択された変更を配布することを備えることができ、そうすれば、予測された操作および/または予測された経路を変更することで、現実世界のオブジェクトと同様にオブジェクトの行動が変化する。言い換えれば、エージェント行動モデルは、異常な行動の発生を強制するために使用することができる。例えば、動作616は、ランダムサンプリング(動作618)を使用することができるが、n回反復動作618は、エージェントの行動モデルがシナリオのnのインスタンスで特定の種類の異常な行動が一度発生することを示しているにもかかわらず、非異常な行動をもたらす場合、動作620は、変更に異常な行動含むように強制することができき、それあは、動作618の結果を破棄し、シミュレートされたオブジェクトを制御するための行動を直接選択することを備えることができる。
【0105】
動作622において、例示的なプロセス600(および/またはサブプロセス604)は、本明細書で説明する技法のいずれかに従って、少なくとも部分的に操作618に基づいて決定される変更された操作および/または変更された経路に少なくとも部分的に基づいてシミュレートされたオブジェクトを制御することを備えることができる。
【0106】
条項例
A.方法であって、自動運転車両からのログデータを受信するステップであって、環境を横断する自動運転車両に関連するセンサからのセンサデータと、第1の時間に関連するオブジェクトの第1の検出と、第2の時間に関連し、第2の時間におけるオブジェクトの位置およびオブジェクトによって実行された操作を示すオブジェクトの第2の検出と、オブジェクトが実行する予測された操作および第2の時間より前の時間に生成された第2の時間におけるオブジェクトの予測された位置を含み、予測された操作とオブジェクトによって実行された操作との間の差および予測された位置と第2の時間におけるオブジェクトの位置との間の距離を決定することに少なくとも部分的に基づいて、操作エラーモデルおよび経路エラーモデルを決定するステップと、シミュレートされた環境において、オブジェクトのシミュレートされた表現をインスタンス化するステップと、オブジェクトのシミュレートされた表現の予測された動きを決定するステップと、操作エラーモデルおよび経路エラーモデルを使用して予測された動きを変更することに少なくとも部分的に基づいて、オブジェクトのシミュレートされた表現の動きを制御するステップを備えたことを特徴とする方法。
【0107】
B.段落Aの方法であって、予測された動きを変更するステップは、シミュレートされた環境に関連する1つまたは複数のパラメータを決定するステップと、1つまたは複数のパラメータ、予測された動き、および操作エラーモデルに少なくとも部分的に基づいて、予測に関連するエラーを決定するステップと、エラーに少なくとも部分的に基づいて、予測された動きを変更するステップを含む。
【0108】
C.段落AまたはBのいずれかの方法であって、予測された動きを変更するステップは、操作エラーモデルによって示され、変更された操作に関連する第1の確率に少なくとも部分的に基づいて、操作エラーモデルに関連する複数の操作の中から変更された操作を決定するステップと、または経路エラーモデルによって示される確率に少なくとも部分的に基づいて、変更された操作から横方向の変動を決定することに少なくとも部分的に基づいて、変更された経路を決定するステップを少なくとも1つを含む。
【0109】
D.段落A乃至Cのいずれかの方法であって、変更された操作を決定するステップを含む予測された動きを変更するステップであって、変更された操作は、ターンを実施することと、車線変更を実施することと、後進することと、駐車することと、通行操作を実施することと、車道、横断歩道、歩道、または隔離された車線への出入りすることと、現在の動きを維持することと、停止を実行することの少なくとも1つの指示を含む。
【0110】
E.段落A乃至Dいずれかの方法であって、操作エラーモデルを決定するステップは、ログデータに少なくとも部分的に基づいて、予測された操作が操作に類似する第1の数のインスタンスを決定するステップと、ログデータに少なくとも部分的に基づいて、予測された操作の代わりにオブジェクトによって実行された異なる操作に関連する第2のインスタンス数を決定するステップと、ログデータに少なくとも部分的に基づいて、オブジェクトが予測された操作に関連する軌道からの距離に配置された時間の第3の数を決定するステップを含む経路エラーモデルを決定するステップを含む。
【0111】
F.段落A乃至Eいずれかの方法であって、操作エラーモデルまたは経路エラーモデルの少なくとも1つで決定するステップは、センサデータに少なくとも部分的に基づいて、環境に関連する1つまたは複数のパラメータを決定するステップと、1つまたは複数のパラメータに少なくとも部分的に基づいて、複数のエラーモデルのクラスタを決定するステップをさらに含む。
【0112】
G.システムであって、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されるときに、システムに動作を実行させるプロセッサ実行可能指示を格納するメモリとを備え、自動運転車両からのログデータを受信することであって、環境を横断する自動運転車両に関連するセンサからのセンサデータと、第1の時間に関連するオブジェクトの第1の検出と、第2の時間に関連し、第2の時間におけるオブジェクトの位置およびオブジェクトによって実行された操作を示すオブジェクトの第2の検出と、オブジェクトが実行する予測された操作および第2の時間より前の時間に生成された第2の時間におけるオブジェクトの予測された位置を含み、予測された操作とオブジェクトによって実行された操作との間の差および予測された位置と第2の時間におけるオブジェクトの位置との間の距離を決定することに少なくとも部分的に基づいて、操作エラーモデルおよび経路エラーモデルを決定することと、シミュレートされた環境において、オブジェクトのシミュレートされた表現をインスタンス化することと、オブジェクトのシミュレートされた表現の予測された動きを決定することと、操作エラーモデルおよび経路エラーモデルを使用して予測された動きを変更することに少なくとも部分的に基づいて、オブジェクトのシミュレートされた表現の動きを制御することを特徴とするシステム。
【0113】
H.段落Gのシステムであって、予測された動きを変更することは、シミュレートされた環境に関連する1つまたは複数のパラメータを決定することと、1つまたは複数のパラメータ、予測された動き、および操作エラーモデルに少なくとも部分的に基づいて、予測に関連するエラーを決定することと、エラーに少なくとも部分的に基づいて、予測された動きを変更することを含む。
【0114】
I.段落GまたはHのいずれかのシステムであって、予測された動きを変更することは、操作エラーモデルによって示され、変更された操作に関連する第1の確率に少なくとも部分的に基づいて、操作エラーモデルに関連する複数の操作の中から変更された操作を決定することと、または経路エラーモデルによって示される確率に少なくとも部分的に基づいて、変更された操作から横方向の変動を決定することに少なくとも部分的に基づいて、変更された経路を決定することを少なくとも1つを含む。
【0115】
J.段落G乃至Iのいずれかのシステムであって、変更された操作を決定することを含む予測された動きを変更することであって、変更された操作は、ターンを実施することと、車線変更を実施することと、後進することと、駐車することと、通行操作を実施することと、車道、横断歩道、歩道、または隔離された車線への出入りすることと、現在の動きを維持することと、停止を実行することの少なくとも1つの指示を含む。
【0116】
K.段落G乃至Jのいずれかのシステムであって、操作エラーモデルを決定することは、ログデータに少なくとも部分的に基づいて、予測された操作が操作に類似する第1の数のインスタンスを決定することと、ログデータに少なくとも部分的に基づいて、予測された操作の代わりにオブジェクトによって実行された異なる操作に関連する第2のインスタンス数を決定することであって、前記経路エラーモデルは、前記ログデータに少なくとも部分的に基づいて、前記オブジェクトが前記予測された操作に関連する軌道からの前記距離に配置された時間の第3の数を決定することを含む。
【0117】
L.段落G乃至Kのいずれかのシステムであって、操作エラーモデルまたは経路エラーモデルの少なくとも1つで決定することは、センサデータに少なくとも部分的に基づいて、環境に関連する1つまたは複数のパラメータを決定することと、1つまたは複数のパラメータに少なくとも部分的に基づいて、複数のエラーモデルのクラスタを決定することをさらに含む。
【0118】
M.段落G乃至Lのいずれかのシステムであって、動作は、シミュレートされた表現の動きに少なくとも部分的に基づいて、シミュレートされた車両または自動運転車両を制御することの少なくとも1つをさらに含む。
【0119】
N.1つまたは複数のプロセッサによって実行されるときに、1つまたは複数のプロセッサに動作を実行させるプロセッサ実行可能指示を格納する非一時的なコンピューター可読媒体は、環境を横断する自動運転車両に関連するセンサからのセンサデータと、第1の時間に関連するオブジェクトの第1の検出と、第2の時間に関連し、第2の時間におけるオブジェクトの位置およびオブジェクトによって実行された操作を示すオブジェクトの第2の検出と、オブジェクトが実行する予測された操作および第2の時間より前の時間に生成された第2の時間におけるオブジェクトの予測された位置を含む自動運転車両からのログデータを受信することと、予測された操作とオブジェクトによって実行された操作との間の差および予測された位置と第2の時間におけるオブジェクトの位置との間の距離を決定することに少なくとも部分的に基づいて、操作エラーモデルおよび経路エラーモデルを決定することと、シミュレートされた環境において、オブジェクトのシミュレートされた表現をインスタンス化することと、オブジェクトのシミュレートされた表現の予測された動きを決定することと、操作エラーモデルおよび経路エラーモデルを使用して予測された動きを変更することに少なくとも部分的に基づいて、オブジェクトのシミュレートされた表現の動きを制御することを含む。
【0120】
O.段落Nの非一時的なコンピューター可読媒体であって、予測された動きを変更することは、シミュレートされた環境に関連する1つまたは複数のパラメータを決定することと、1つまたは複数のパラメータ、予測された動き、および操作エラーモデルに少なくとも部分的に基づいて、予測に関連するエラーを決定することと、エラーに少なくとも部分的に基づいて、予測された動きを変更することを含む。
【0121】
P.段落Oの非一時的なコンピューター可読媒体であって、予測された動きを変更することは、操作エラーモデルによって示され、変更された操作に関連する第1の確率に少なくとも部分的に基づいて、操作エラーモデルに関連する複数の操作の中から変更された操作を決定することと、または経路エラーモデルによって示される確率に少なくとも部分的に基づいて、変更された操作から横方向の変動を決定することに少なくとも部分的に基づいて、変更された経路を決定することを少なくとも1つを含む。
【0122】
Q.段落N乃至Pのいずれかの非一時的なコンピューター可読媒体であって、予測された動きを変更することは、変更された操作、およびターンを実施することと、車線変更を実施することと、後進することと、駐車することと、通行操作を実施することと、車道、横断歩道、歩道、または隔離された車線への出入りすることと、現在の動きを維持することと、または停止を実行することとの少なくとも1つの指示を含む変更された操作を決定することを含む。
【0123】
R.段落N乃至Qのいずれかの非一時的なコンピューター可読媒体であって、操作エラーモデルを決定することは、ログデータに少なくとも部分的に基づいて、予測された操作が操作に類似する第1の数のインスタンスを決定することと、ログデータに少なくとも部分的に基づいて、予測された操作の代わりにオブジェクトによって実行された異なる操作に関連する第2のインスタンス数を決定することと、ログデータに少なくとも部分的に基づいて、オブジェクトが予測された操作に関連する軌道からの距離に配置された時間の第3の数を決定することを含む経路エラーモデルを決定することを含む。
【0124】
S.段落N乃至Rのいずれかの非一時的なコンピューター可読媒体であって、操作エラーモデルまたは経路エラーモデルの少なくとも1つで決定することは、センサデータに少なくとも部分的に基づいて、環境に関連する1つまたは複数のパラメータを決定することと、1つまたは複数のパラメータに少なくとも部分的に基づいて、複数のエラーモデルのクラスタを決定することをさらに含む。
【0125】
T.段落N乃至Sのいずれかの非一時的なコンピューター可読媒体であって、動作は、シミュレートされた表現の動きに少なくとも部分的に基づいて、シミュレートされた車両または自動運転車両を制御することの少なくとも1つをさらに含む
上記の条項例は、1つの特定の実施形態に関して説明されているが、この明細書の文脈では、条項例の内容は、方法、デバイス、システム、および/または他の実施形態を介しても実装されることが理解されるべきである。さらに、例AからTのいずれは、単独で、または例AからTの他の1つまたは複数と組み合わせて実施することができる。
【0126】
結論
主題は、構造的特徴および/または方法論的行為に特有の言葉で説明されてきたが、添付の特許請求の範囲で定義された主題は、説明された特定の特徴または行為に必ずしも限定されないことが理解されるべきである。むしろ、特定の特徴および行為は、特許請求の範囲を実施する例示的な形態として開示されている。
【0127】
本明細書で説明するコンポーネントは、任意のタイプのコンピューター可読媒体に格納でき、ソフトウェアおよび/またはハードウェアで実装できる指示を表す。上記の方法およびプロセスのすべては、1つまたは複数のコンピューターまたはプロセッサ、ハードウェア、またはそれらの何らかの組み合わせによって実行されるソフトウェアコードコンポーネントおよび/またはコンピューター実行可能指示で具現化され、それらを介して完全に自動化されてもよい。あるいは、これらの方法の一部または全部は、専用のコンピューターハードウェアで実施することもできる。
【0128】
本明細書で説明するプロセスの少なくともいくつかは、論理フローチャートとして示され、各動作は、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装できる一連の動作を表す。ソフトウェアの文脈では、動作は、1つまたは複数のプロセッサによって実行されるとき、コンピューターまたは自動運転車両に列挙された動作を実行させる、1つまたは複数の非一時的なコンピューター可読記憶媒体に格納されたコンピューター実行可能指示を表す。一般に、コンピューター実行可能指示には、特定の機能を実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。動作が説明される順序は、限定として解釈されることを意図しておらず、説明された動作の任意の数を任意の順序でおよび/または並行して組み合わせてプロセスを実装することができる。
【0129】
「することができる」、「可能性がある(could)」、「場合がある」、または「可能性がある(might)」などのような条件付き言語は、特に記載しない限り、特定の例を含むが、他の例は含まない特定の特徴、要素、および/またはステップを提示する文脈内で理解される。したがって、そのような条件付き言語は、一般に、特定の特徴、要素、および/またはステップが1つまたは複数の例に何らかの形で必要であることを暗示することを意図してなく、また、1つまたは複数の例には、ユーザー入力またはプロンプトの有無にかかわらず、特定の特徴、要素、および/またはステップが含まれているか、または特定の例で実行されるかを決定するための論理が必ず含まれる。
【0130】
「X、YまたはZの少なくとも1つ」という語句などの接続言語は、特に記載しない限り、項目、用語などがX、Y、またはZのいずれか、または各要素の倍数を含む任意の組み合わせであることを表すと理解されるべきである。単数と明示的に記載されていない限り、「a」は、単数および複数を意味する。
【0131】
本明細書に記載され、および/または添付の図に示されるフローチャートにおける一般的な説明、要素、またはブロックは、一般における特定の論理関数または要素を実装するための1つまたは複数のコンピューター実行可能指示を含むモジュール、セグメント、またはコードの一部を潜在的に表すものとして理解されるべきである。本明細書で説明する例の範囲内には、当業者には理解されるように、関係する機能に応じて、要素または機能を削除したり、実質的に同期して、逆の順序で、追加の動作と共に、または動作を省略したりすることを含む図示または説明した順序から外して実行することができる代替の実装が含まれる。実質的にという用語は、範囲を示し得ることに留意すべきである。例えば、実質的に同時には、2つの活動が互いの時間範囲内で発生することを示し、実質的に同じ次元は、2つの要素が互いの範囲内の次元を有することを示し、および/または同様である。
【0132】
上記の例に対して多くの変更および変更を行うことができ、その要素は、他の許容可能な例の中にあると理解されるべきである。このようなすべての変更および変形は、本開示の範囲内に含まれ、次の特許請求の範囲によって保護されることを意図している。
図1
図2
図3
図4A
図4B
図4C
図5A
図5B
図5C
図6
【国際調査報告】