JP2024513666A - ログデータに基づいたシミュレートされた環境でのオブジェクトのインスタンス化 - Google Patents
ログデータに基づいたシミュレートされた環境でのオブジェクトのインスタンス化 Download PDFInfo
- Publication number
- JP2024513666A JP2024513666A JP2023553528A JP2023553528A JP2024513666A JP 2024513666 A JP2024513666 A JP 2024513666A JP 2023553528 A JP2023553528 A JP 2023553528A JP 2023553528 A JP2023553528 A JP 2023553528A JP 2024513666 A JP2024513666 A JP 2024513666A
- Authority
- JP
- Japan
- Prior art keywords
- vehicle
- simulated
- environment
- real
- log data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims abstract description 102
- 238000012360 testing method Methods 0.000 claims abstract description 22
- 238000004088 simulation Methods 0.000 claims description 74
- 230000003068 static effect Effects 0.000 claims description 26
- 230000008447 perception Effects 0.000 description 32
- 230000015654 memory Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000004888 barrier function Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 7
- 238000001514 detection method Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000001953 sensory effect Effects 0.000 description 6
- 241001465754 Metazoa Species 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 230000033001 locomotion Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000003491 array Methods 0.000 description 3
- 230000004807 localization Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 238000006467 substitution reaction Methods 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013501 data transformation Methods 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 230000004927 fusion Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 101001093748 Homo sapiens Phosphatidylinositol N-acetylglucosaminyltransferase subunit P Proteins 0.000 description 1
- UFHFLCQGNIYNRP-UHFFFAOYSA-N Hydrogen Chemical compound [H][H] UFHFLCQGNIYNRP-UHFFFAOYSA-N 0.000 description 1
- 238000007792 addition Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 238000002485 combustion reaction Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 229910052739 hydrogen Inorganic materials 0.000 description 1
- 239000001257 hydrogen Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 239000000725 suspension Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 238000002604 ultrasonography Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01M—TESTING STATIC OR DYNAMIC BALANCE OF MACHINES OR STRUCTURES; TESTING OF STRUCTURES OR APPARATUS, NOT OTHERWISE PROVIDED FOR
- G01M17/00—Testing of vehicles
- G01M17/007—Wheeled or endless-tracked vehicles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0011—Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3664—Environments for testing or debugging software
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/15—Vehicle, aircraft or watercraft design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/20—Design optimisation, verification or simulation
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2556/00—Input parameters relating to data
- B60W2556/10—Historical data
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Geometry (AREA)
- Automation & Control Theory (AREA)
- Evolutionary Computation (AREA)
- Quality & Reliability (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computational Mathematics (AREA)
- Aviation & Aerospace Engineering (AREA)
- Traffic Control Systems (AREA)
- Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
Abstract
ログデータに基づいてミュレートされた環境でオブジェクトをインスタンス化するための技術が本明細書に開示される。技術のいくつかは、現実世界の車両が動作していた環境を表すログデータを受信することが含まれ得る。ログデータを使用して、シミュレートされた車両をテストするためのシミュレートされた環境が生成され得る。シミュレートされた環境は、現実世界の車両が動作していた環境を表し得る。この技術はさらに、シミュレートされた環境を横断するときのシミュレートされた車両の位置を決定することを含み得る。ログデータに少なくとも部分的に基づいて、シミュレートされた環境内のシミュレートされた車両の位置に最も近い、環境内の現実世界の車両の以前の位置が決定され得る。このようにして、シミュレートされた環境は、以前の位置から車両によって知覚された環境内のオブジェクトを表すシミュレートされたオブジェクトを含むように更新され得る。
Description
本発明は、ログデータに基づいたシミュレートされた環境でのオブジェクトのインスタンス化に関する。
本出願は、2021年3月5に出願された米国実用特許出願第17/193,826号明細書に対する優先権を主張し、その全体が参照によりここに組み込まれる。
シミュレートされたデータおよびシミュレーションを使用して、現実世界におけるテストが禁止である可能性のある(例えば、安全への懸念、時間、再現性の制限などにより)車両システムの機能をテストおよび検証することが可能である。しかしながら、現実世界のシナリオを正確に反映すること、および、車両システムの機能を検証することの両方のシミュレーションを作成することは、困難な課題である。例えば、シミュレーションが現実世界で動作する車両によって以前に捕捉されたデータに基づいている場合、シミュレーション下でテストされた車両システムは、データを捕捉した現実世界の車両と異なる反応をし得る。これは、テストされた車両システムが正確であると検証することを困難にさせ得る。
詳細な説明は添付の図面を参照して説明される。図において、参照番号の左端の数字は、その参照番号が最初に現れる図を識別する。異なる図における同じ参照番号は、類似のまたは同一の構成要素または特徴を示す。
ログデータに基づいてシミュレートされた環境でオブジェクトをインスタンス化するための技術が本明細書に開示される。上記で論じられたように、正確に現実世界のシナリオを反映し、車両システムの機能を検証する、シミュレーションを作成することは、困難な課題である。例えば、シミュレーションが、現実世界で動作する車両により捕捉されたデータに基づく場合、シミュレーション下のテストされた車両システムは、データが捕捉された現実世界の車両と異なる反応をし得る。これは、テストされた車両システムが正確であるかどうかを検証することを困難にさせ得る。例えば、シミュレートされた車両の位置は、ログデータを生成する車両の経路から逸れることがあるが、知覚は、ロギングされる車両の位置に依然として基づいている。知覚におけるこの相違は、シミュレーションの正確さを減少させ、逸脱が大きい場合には、結果を無効にすることさえあり得る。
例えば、自律車両のコントローラをテストするおよび/または検証するためのシミュレートされた(例えば、テスト)環境を考える。シミュレートされた環境は、現実世界の車両によって捕捉されたログデータに基づいて生成され得る。したがって、シミュレートされた環境は、現実世界(例えば、カルフォルニア州サンフランシスコのエンバカデロ走路)の環境に対応する、または、そうでなければ現実世界の環境を表し得る。そのため、現実世界の環境は、長時間停止したままの静的オブジェクト(例えば、建物、街灯、交通標識、ベンチ、駐車車両、樹木、障壁やフェンス、など)、動き続ける傾向がある動的オブジェクト(例えば、歩行者、移動車両、自転車乗り、建設機器、など)の両方を含み得る。それゆえ、シミュレートされた環境は、現実世界の環境を正確に反映する静的オブジェクトおよび動的オブジェクトの両方を含み得る。
しかしながら、静的オブジェクトについては、シミュレートされた環境でこれらのオブジェクトをシミュレートすることは、いくつかの課題が在り得る。例えば、それらが静的オブジェクトとして分類され得るとしても、車両が移動しているときなど、これらのオブジェクトの外観が時間とともに変化し得る。別の例として、現実世界の車両のセンサシステムは、いくつかの例では、一定期間にわたって、時間のインスタンスについて静的オブジェクトを誤検出し得る。そのため、車両システムは、対応する静的オブジェクトを表す一定の静的バウンディングボックス出力を常に生成するとは限らない。代わりに、静的オブジェクトを表す車両システムの出力は、所定の期間にわたって、変化、移動、出現、消滅、および/またはそのようなことがあり得る。
さらに、現実世界の車両が環境を移動するとき、車両のシステムは、その地平線の範囲内にあるこれらのオブジェクトのみを見る/知覚するように制限され得る。例えば、車両のシステムは、車両がそれらのオブジェクトの範囲内に入る前に、前もってオブジェクトを知覚しないことがある。したがって、現実世界の環境内の現実世界の車両を表すシミュレーションは、現実世界の対応する位置および時間において、現実世界の車両が知覚するものを模倣するために、シミュレートされたオブジェクトデータをシミュレートされた車両に提示し得る。しかしながら、シミュレートされた車両が、現実世界の車両から逸脱する場合(例えば、シミュレートされた車両コントローラの自律コントローラに対する変更によって)、現実世界の車両ログを使用することを通じてシミュレートされた車両によって知覚される正確なオブジェクトデータを提示することが困難になり得る。
したがって、本開示は、現在の、シミュレートされた車両の位置に対して最も近いログ車両の位置を決定することによって、および、ログ車両が、その時および/またはその位置から知覚したであろうシミュレートされた環境内の静的オブジェクトをインスタンス化することによって、車両ログに基づいて、シミュレーションを改善するための技術を説明する。例えば、技術は、車両(例えば、ログ車両)が動作していた環境を表すログデータを受信すること、および、ログデータに基づいて、車両コントローラをテストするためのシミュレートされたシナリオを生成することを含み得る。いくつかの例では、シミュレートされたシナリオは、車両が動作していた環境の一部を表すシミュレートされた環境を含み得る。技術はまた、車両コントローラへシミュレートされたシナリオを入力して、車両コントローラが、シミュレートされた環境をシミュレートされた車両に横断させることを含み得る。シミュレーションが行われている間、シミュレートされた環境内のシミュレートされた車両の位置が、決定され得る。したがって、シミュレートされた車両の位置を決定することに基づいて、ログデータは、シミュレートされた環境内のシミュレートされた車両の位置に対して最も近い環境内の車両の以前の位置を決定するために、調べられ得る。したがって、技術はさらに、以前の位置から車両によって知覚された環境内のオブジェクトを表すシミュレートされたオブジェクトを含むようにシミュレートされた環境を更新することを含み得る。
本明細書で論じられる技術は、車両コントローラをテストするおよび/または検証するためのシミュレーションの正確性を改善することが可能である。例えば、シミュレートされた車両の現在の位置に対して最も近いログ車両の以前の位置を決定することによって、および、ログ車両が以前の位置から知覚したであろうシミュレートされた環境内の静的オブジェクトをインスタンス化することによって、静的オブジェクトの動的態様が、現実的にシミュレートされ得る。追加的に、本明細書で説明される技術を使用することで、シミュレートされた車両が移動しているときなど、静的オブジェクトの外観を時間の経過とともに変化させ得る(例えば、現実世界のシナリオにおいて、視点の変化に基づいて、オブジェクトの外観がどのように変化するかをシミュレートするため)。さらに、本明細書で説明される技術は、ログ車両が現実世界でそれを知覚したであろう瞬間に、シミュレートされた環境内の静的オブジェクトをインスタンス化することを可能にする。これは、現実世界の車両が知覚するであろうものに対応する車両コントローラに、より正確なデータおよび/またはオブジェクトを提供することによって、シミュレーションテストを改善することを可能にし、それゆえ、ログ車両が、シミュレーションにおいて車両の特定の時間またはポジションについて、ログ車両がそのような情報を含まない、より現実に近いシナリオを再現することが可能である。開示された技術を用いた他の改良は、当業者には容易に明らかであろう。
限定ではなく例として、本明細書に開示された様々な技術に従う方法は、車両が動作していた環境を表すログデータを受信することを含み得る。いくつかの例では、車両は自律車両を含み得る。追加的に、ログデータは、環境内で車両が動作していた一定期間と関連付けられ得る。いくつかの例では、ログデータは、1つまたは複数の車両のセンサによって捕捉されたセンサデータに少なくとも部分的に基づいて、車両の知覚システムによって生成され得る。少なくとも1つの例では、ログデータは、車両および/または別の車両が複数の一定期間中動作していた環境を表す多様なログデータのインスタンスを含み得る。さらなる例では、ログデータは、様々な時点での現実の車両の知覚システムの出力を表す多様な画像を含み得る。すなわち、ログデータは、例えば、第1の時間での第1の知覚システム出力を表す第1のログデータ画像、第1の時間の後の第2の時間での第2の知覚システム出力を表す第2のログデータ画像、第2の時間の後の第3の時間での第3の知覚システム出力を表す第3のログデータ画像、などを含み得る。いくつかの例では、各または種々のログデータ画像は、その時点で現実の車両によって知覚された種々のオブジェクトおよび/またはオブジェクトの種々の視点を含み得る。
いくつかの例では、方法は、ログデータを使用して、車両コントローラをテストするためのシミュレートされたシナリオを生成し得る。シミュレートされたシナリオは、環境の少なくとも一部を表すシミュレートされた環境を含み得る。車両コントローラは、いくつかの例では、自律車両のコントローラを含み得る。様々な例では、シミュレートされたシナリオは、車両コントローラに入力され得、車両コントローラは、シミュレートされた環境をシミュレートされた車両に横断させる。少なくとも1つの例では、シミュレートされたシナリオ、シミュレートされた環境、シミュレートされたオブジェクトなどは、シミュレーション命令の形で車両コントローラへ入力され得る。すなわち、シミュレーション命令は、シミュレートされたシナリオ、シミュレートされた環境、シミュレートされたオブジェクトなどを表し得る。
いくつかの例では、方法は、シミュレートされた環境内のシミュレートされた車両の位置を決定することを含み得る。例えば、ジオロケーションデータは、シミュレートされた環境の範囲内のシミュレートされた車両のポジションに基づいて、シミュレートされた車両から受信され得、シミュレートされた車両の位置は、ジオロケーションデータに少なくとも部分的に基づいて決定され得る。
例において、方法は、追加的にまたは代替的に、シミュレートされた環境内のシミュレートされた車両の位置と関連付けられた環境内の車両の以前の位置を決定することを含み得る。様々な例では、以前の位置を決定することは、シミュレートされた車両の現在の位置に最も近い車両の以前の位置を決定することを含み得る。追加的に、または代替的に、以前の位置を決定することに少なくとも部分的に基づいて、車両が以前の位置に位置付けられていた時間のインスタンスは、ログデータから決定され得る。例えば、ログデータは、環境内の車両のそれぞれの以前の位置(例えば、ジオロケーションデータ)と、車両がそれらのそれぞれ以前の位置に位置付けられていた時に関連付けられた時間のインスタンス(例えば、タイムスタンプ)との間の関連付けを含み得る。
様々な例では、オブジェクトデータは、以前の位置および/または時間のインスタンスのうちの少なくとも1つを決定することに少なくとも部分的に基づいて、ログデータから取得され得る。オブジェクトデータは、以前の位置から、および/または、その時点のインスタンスから、車両によって知覚された/されていた環境内の1つまたは複数のオブジェクトを表し得る。限定ではなく例として、環境内で車両が動作していた一定期間中の任意の所与の時間のインスタンスについて、ログデータは、それぞれのタイムスタンプ(例えば、時間のインスタンスを示す)、それぞれのジオロケーションデータ(例えば、その時間のインスタンスにおける車両の位置を示す)、および、それぞれのオブジェクトデータ(例えば、その時間のインスタンスにおいておよびその位置から、車両によって知覚された1つまたは複数のオブジェクトを示す)のうちの1つまたは複数を格納し得る。いくつかの例では、環境内の1つまたは複数のオブジェクトは、静的オブジェクトおよび/または動的オブジェクトを含み得る。例えば、環境内の1つまたは複数のオブジェクトは、建物、構造物、障壁、フェンス、障害物、車両、歩行者、自転車乗り、ベンチ、街灯、交通標識、樹木などを含み得る。
いくつかの例では、方法は、さらに、環境内のオブジェクトを表すシミュレートされたオブジェクトを含むようにシミュレートされた環境を更新し得る。すなわち、シミュレートされたオブジェクトは、シミュレートされた環境の範囲内でインスタンス化され得る。追加的に、シミュレートされたオブジェクトは、オブジェクトが現実世界の環境で位置付けられた位置に対応する位置において、シミュレートされた環境内で位置付けされ得る。様々な例では、シミュレートされた環境を更新することは、環境内の多様なオブジェクトを表す多様なシミュレートされたオブジェクトを含むようにシミュレートされた環境を更新することを含み得る。
追加の、または代替的な例では、シミュレートされたシナリオおよび/またはシミュレートされた環境は、シミュレートされた環境内のシミュレートされた車両のシミュレートされた位置に最も一致する現実の環境内の現実の位置に現実の車両が位置付けられたときの、現実の車両の知覚システム出力を表す種々のログデータ画像を、シミュレートされた車両の車両コントローラに提示することによって更新され得る。ログデータ画像は、現実の環境内の現実の位置から現実の車両によって知覚された1つまたは複数の現実のオブジェクトのシミュレートされた表現を含み得る。このようにして、シミュレートされた車両がシミュレートされた環境内を移動すると、シミュレートされた環境内のシミュレートされた車両の現在のシミュレートされた位置に基づいて、種々のログデータ画像がシミュレートされた車両の車両コントローラに提示され得る。同様に、シミュレートされた車両がシミュレートされた環境内に停止すると、車両が停止したままであることをシミュレートするために、同じまたは類似のログデータ画像が繰り返し車両コントローラに提示され得る。
少なくとも1つの例では、方法は、シミュレートされた車両の位置が変化することを決定することを含み得る。すなわち、方法は、シミュレートされた自律車両が、元の位置とは異なるシミュレートされた環境内の第2の位置に位置付けられていることを決定することを含み得る。したがって、シミュレートされた車両の第2の位置と関連付けられた環境内の車両の第2の以前の位置が決定され得る。様々な例では、第2の以前の位置を決定することは、シミュレートされた車両の第2の位置に最も近い車両の第2の以前の位置を決定することを含み得る。追加的に、または代替的に、第2の以前の位置を決定することに少なくとも部分的に基づいて、車両が第2の以前の位置に位置付けられていた第2の時間のインスタンスは、ログデータから決定され得る。いくつかの例では、第2のオブジェクトデータは、第2の以前の位置および/または第2の時間のインスタンスのうちの少なくとも1つを決定することに少なくとも部分的に基づいて、ログデータから取得され得る。オブジェクトデータに少なくとも部分的に基づいて、いくつかの例では、方法は、シミュレートされた車両に関するシミュレートされたオブジェクトの外観またはポジションのうちの少なくとも1つを更新することを含み得る。追加的に、または代替的に、方法は、環境内の別のオブジェクトを表す別のシミュレートされたオブジェクトを含むようにシミュレートされた環境を更新することを含み得る。
いくつかの例では、方法は、追加的にシミュレートされたオブジェクトに少なくとも部分的に基づいて、シミュレートされた車両を制御することを含み得る。例えば、テストされる車両コントローラは、シミュレートされた環境内のシミュレートされたオブジェクトを知覚し得、シミュレートされたオブジェクトを知覚することに少なくとも部分的に基づいて、シミュレートされた車両の軌道を変更し得る。
追加的に、いくつかの例では、ユーザ指定オブジェクトは、シミュレートされた環境の様々な位置でシミュレートされ得る。したがって、方法は、シミュレートされた環境の範囲内でシミュレートされたオブジェクトがインスタンス化されるユーザ指定の位置を示す入力を受信すること、および、ユーザ指定の位置にシミュレートされたオブジェクトを含むようにシミュレートされた環境を更新することを含み得る。さらなる例では、シミュレートされたシナリオは、3次元(3D)シミュレーション、以前のシミュレーションなどに少なくとも部分的に基づいて生成され得る。
本明細書で説明される技術は、多くの方法で実装されることが可能である。例示的な実装は、以下の図を参照して以下に提供される。自律車両の文脈で説明されるが、本明細書で説明される技術は、環境内で、オブジェクトを制御および/または相互作用を必要とする様々なシステムに適用されることが可能であり、自律車両に限定されない。別の例では、システム、方法、および装置は、航空または航海の文脈で使用されることが可能である。追加的に、本明細書で説明される技術は、現実のデータ(例えば、センサを使用して捕捉された)、シミュレートされたデータ(例えば、シミュレータによって生成された)、またはそれらの任意の組合せで使用されることが可能である。
図1は、車両102が環境106と関連付けられたログデータ104を生成し、車両102の位置と車両102によって捕捉されたオブジェクトデータとの関連付けを異なる時点で決定するコンピューティングデバイス108へそのログデータを送信する、例示的なデータフロー100を示す絵画的フロー図である。追加的に、コンピューティングデバイス108はまた、ログデータ104に少なくとも部分的に基づいて、シミュレーション命令112を生成し得る。いくつかの例では、ログデータ104は、3次元ボクセルデータ、画像データ、バウンディングボックス、オブジェクトの2次元および/または3次元輪郭、分類データ、セグメンテーションデータ、オクルージョンデータなどを含むことが可能である。
車両102は、環境106内で捕捉されたセンサデータから、オブジェクトを検出、識別、セグメント化、分類、および/または追跡するなどの動作を実行するための知覚エンジンおよび/またはプランナコンポーネントを有するコンピューティングデバイスを含み得る。例えば、車両102に関連付けられたコンピューティングデバイスは、オブジェクト114(1)、114(2)、114(3)、および114(4)を検出し得る。オブジェクト114(1)、114(2)、114(3)、および114(4)は、環境106内の駐車車両、樹木、建物、および街灯として描かれているが、オブジェクト114(1)、114(2)、114(3)、および114(4)はまた、自転車乗り、歩行者、動物、道路標識、標識、信号機、郵便受け、障壁、フェンス、ベンチおよび/または他のオブジェクトを含み得る。
車両102と関連付けられたコンピューティングデバイスは、1つまたは複数のプロセッサおよび1つまたは複数のプロセッサと通信可能に結合されたメモリを含み得る。1つまたは複数のプロセッサは、例えば、1つまたは複数のFPGA、SоC、ASIC、および/またはCPUを含み得る。車両102は、環境106を横断、および、データを決定および/または捕捉し得る。例えば、車両102と関連付けられたコンピューティングデバイスは、車両ステータスデータ、車両診断データ、車両メトリクスデータ、および/またはマップデータを決定し得る。いくつかの例では、車両102は、1つまたは複数のセンサが、1つまたは複数の飛行時間(time-of-flight)センサ、ライダー(lidar)センサ、レーダー(radar)センサ、ソナーセンサ、画像センサ、音声センサ、赤外線センサ、ジオロケーションセンサ、車輪エンコーダ、IMUなど、またはそれらの任意の組合せを含み得る、1つまたは複数のセンサを含み得るが、他のタイプのセンサも企図される。
車両102が環境106を横断するとき、センサは、環境106と関連付けられたセンサデータを捕捉し得る。例えば、および、上記で論じられたように、センサデータのいくつかは、オブジェクト114(1)、114(2)、114(3)、および114(4)などのオブジェクトと関連付けられ得る。オブジェクト114(1)、114(2)、114(3)、および114(4)は、静的オブジェクトを表し得るが、いくつかの例では、センサデータは、動的オブジェクトとも関連付けられ得る。本明細書で使用されるとき、「動的オブジェクト」は、環境106の範囲内の動きと関連付けられたオブジェクト(例えば、車両、オートバイ、自転車乗り、歩行者、動物など)、または動きが可能なオブジェクト(例えば、駐車車両、立っている歩行者など)であり得る。対照的に、「静的オブジェクト」は、例えば、建物/構造物、路面、道路標識、信号、障壁、樹木、歩道、街灯、駐車車両などの環境106と関連付けられたオブジェクトであり得る。いくつかの例では、車両102と関連付けられたコンピューティングデバイスは、環境内の、バウンディングボックス情報、分類情報、セグメンテーション情報などのオブジェクトについての情報を決定し得る。
車両102と関連付けられたコンピューティングデバイスは、ログデータ104を生成し得る。例えば、ログデータ104は、センサデータ、知覚データ、プランニングデータ、車両ステータスデータ、速度データ、意図データ、および/または車両コンピューティングデバイスにより生成された他のデータを含み得る。いくつかの例では、センサデータは、飛行時間センサ、位置センサ(例えば、GPS、コンパスなど)、慣性センサ(例えば、慣性測定ユニット(IMU)、加速度計、磁力計、ジャイロスコープなど)、ライダーセンサ、レーダーセンサ、ソナーセンサ、赤外線センサ、カメラ(例えば、RGB、IR、照度、深度など)、マイクロホンセンサ、環境センサ(例えば、温度センサ、湿度センサ、光センサ、圧力センサなど)、超音波トランスデューサ、車輪エンコーダなどのセンサによって捕捉されたデータを含み得る。センサデータは、そのようなセンサによって捕捉される飛行時間データ、位置データ、ライダーデータ、レーダーデータ、ソナーデータ、画像データ、音声データなどのデータであり得る。いくつかの例では、ログデータ104は、車両コンピューティングデバイスにより生成された他のデータと関連付けられた時間データを含み得る。
ログデータ104は、タイムラインにそって環境106の様々な状態を表し得る。図1に示されるように、状態は、個々の時点における、または経時的な、環境(現実の環境、捕捉されたセンサデータ、捕捉されたセンサデータに基づくデータ(例えば、バウンディングボックス、オブジェクト分類、プランナ決定)によって表される環境、および/またはシミュレータによって表される環境)の様々な表現を含み得る。例えば、ログデータ104は、時点t0118における環境106の状態116を表し得る。いくつかの例では、状態116は、ログデータ104の開始の(または任意の)部分に関連付けられた環境106の初期状態であり得る。いくつかの例では、状態116は、ログデータ104の任意の(例えば、中間の)部分と関連付けられた環境106の状態であり得る。ログデータ104は、時点t0118の後の時点t1122における環境106の状態120を表し得る。図1に描かれるように、ログデータ104はさらに、時点t0118および時点t1122の後の時点t2126における環境106の状態124を表し得る。説明のみを目的として、状態116は、0秒の初期時点t0118における環境106を表し得、状態120は、5秒後の時点t1122における環境106を表し得、状態124は、15秒後の時点t2126における環境106を表し得る。それゆえ、いくつかの例では、時点t0118、t1122、t2126は、非連続的であり得(例えば、時点t0118、t1122、およびt2126の間に経過時間がある)、または時点t0118、t1122、およびt2126は連続的であり得る(例えば、時点t0118、t1122、およびt2126の間に経過時間がない)。
車両102は、1つまたは複数のネットワーク128を介してコンピューティングデバイス108へログデータのいくつかまたは全てを送信し得る。例えば、車両102は、ログデータを格納するために、時間データ、知覚データ、オブジェクトデータ、位置データ、および/またはマップデータを含むログデータ104をコンピューティングデバイス108へ送信し得る。そのような送信は、本明細書で詳述されるように、有線、無線またはその他であり得る。ログデータ104に含まれることが可能な車両によって生成されたデータの例は、例えば、「Interactions Between Vehicle and Teleoperations System」と題され、2017年7月7日に出願された米国特許出願第15/644,267号(一部に、センサデータおよびイベントの発生を示すデータを含むことが可能な通信信号、ならびにセンサおよびプランナから受信したデータから導出されることが可能な車両制御データ、オブジェクトデータ算出器、オブジェクト分類器、衝突予測システム、運動学算出器、安全システムアクチュエータ、および駆動システムの制御操作が記載されている)、「Occupant Protection System Including Expandable Curtain and/or Expandable Bladder」と題され、2017年9月1日に出願された米国特許出願第15/693,700号(一部に、車両の軌跡を代表するデータ、位置データ、オブジェクトデータ、および車両制御データが記載されている)、および、「Executable Component Interface and Controller」と題され、2018年11月21日に出願された米国特許出願第16/198,653号(一部に、ログデータの一種が記載されている)に見られ、これらはそれぞれ、参照によりその全体があらゆる目的のために組み込まれる。いくつかの例では、コンピューティングデバイス108は、データベースにログデータ104を格納するサーバを含み得る。いくつかの例では、コンピューティングデバイス108は、シミュレートされたシナリオおよび/またはシミュレートされた環境を定義するシミュレーション命令112を生成するためのシナリオジェネレータを動作し得る。
ログデータ104に基づいて、シナリオジェネレータは、ログデータ104に表されたオブジェクト(例えば、オブジェクト114(1)、114(2)、114(3)、および114(4))を識別し得る。そしてシナリオジェネレータは、オブジェクトと関連付けられたログデータ104の部分を決定し得る。例えば、シナリオジェネレータは、状態116でログデータに表された環境106内の建物であるオブジェクト114(3)を識別し得る。シナリオジェネレータは、状態120および124でログデータ104に表されたオブジェクト114(3)を識別し得る。いくつかの例では、ログデータ104は、例えば、オブジェクト114(3)の範囲を識別するオブジェクト114(3)と関連付けられた知覚データを含み得る。いくつかの例では、知覚データは、車両102のセンサまたはセンサの組合せからのセンサデータを含み、または基づき得る。いくつかの例では、ログデータ104は、環境106内のオブジェクト114(3)の位置を識別するオブジェクト114(3)と関連付けられた位置データを含み得る。
知覚データを使用して、シナリオジェネレータは、車両102のそれぞれの位置、車両102がそれぞれの位置に位置付けられたそれぞれの時間、および、車両102がそれぞれの時間にそれぞれの位置に位置付けられたときに車両102によって生成されたそれぞれのオブジェクトデータの間の関連付けを識別する1つまたは複数のログデータ関連付け130を決定し得る。例えば、ログデータ関連付け130の「位置1」は、状態116に示されるように、車両102が環境106を知覚した特定の位置を示す第1のジオロケーションデータ(例えば、GPS座標)を含み得、ログデータ関連付け130の「位置2」は、状態120に示されるように、車両102が環境106を知覚した特定の位置を示す第2のジオロケーションデータを含み得、および、ログデータ関連付け130の「位置3」は、状態124に示されるように、車両102が環境106を知覚した特定の位置を示す第3のジオロケーションデータを含み得る。追加的に、ログデータ関連付け130の「t0」は、車両102が位置1に位置付けられた/位置付けられていた時間における特定のインスタンスを示す第1のタイムスタンプを含み得、ログデータ関連付け130の「t1」は、車両102が位置2に位置付けられた/位置付けられていた時間における特定のインスタンスを示す第2のタイムスタンプを含み得、ログデータ関連付け130の「t2」は、車両102が位置3に位置付けられた/位置付けられていた時間における特定のインスタンスを示す第3のタイムスタンプを含み得る。さらに、ログデータ関連付け130の「状態116オブジェクトデータ」は、時点t0において位置1から環境106内の車両102によって知覚された1つまたは複数のオブジェクトを表すオブジェクトデータを含み得、ログデータ関連付け130の「状態120オブジェクトデータ」は、時点t1において位置2から環境106内の車両102によって知覚された1つまたは複数のオブジェクトを表すオブジェクトデータを含み得、ログデータ関連付け130の「状態124オブジェクトデータ」は、時点t2において位置3から環境106内の車両102によって知覚された1つまたは複数のオブジェクトを表すオブジェクトデータを含み得る。
いくつかの例では、コンピューティングデバイス108は、ログデータ104に含まれるオブジェクトと関連付けられたインスタンス化属性を決定し得る。インスタンス化属性は、車両102がオブジェクトを検出した方法および/またはオブジェクトの初期知覚を示し得る。説明のみを目的として、オブジェクト114(2)は、車両102がオブジェクト114(2)に接近すること、および/またはオブジェクト114(2)が視認可能になること(例えば、オブジェクト114(2)が遮蔽物の背後になり得る)によって、車両102の検出範囲に入り得る(例えば、状態120に示されるように)。いくつかの例では、検出範囲(知覚閾値とも呼ばれる)は、車両102の1つまたは複数のセンサの能力と関連付けられ得る。いくつかの例では、検出範囲は、車両102の知覚エンジンによって決定される信頼値と関連付けられ得る。
いくつかの例では、コンピューティングデバイス108は、追加的または代替的に、ログデータ104に含まれるオブジェクトと関連付けられた終了属性を決定し得る。終了属性は、車両102がもはやオブジェクトを検出し得ない態様、および/またはオブジェクトの更新された知覚を示し得る。説明のみを目的として、オブジェクト114(1)は、車両102がオブジェクト114(1)から遠ざかる、および/またはオブジェクト114(1)が遮蔽されることによって、車両102の検出範囲外のポジションにあり得る(例えば、状態120および124に示されるように)。
ログデータ104および/またはログデータ関連付け130に基づいて、シナリオジェネレータは、シミュレートされた環境を含むシミュレートされたシナリオを記述するシミュレーション命令112を生成することが可能である。例えば、ログデータ104は、環境106を示すマップデータおよび位置データ、ならびに、車両102が環境106をどのように横断するかを含み得る。追加的に、ログデータ104は、環境106を横断するときの、加速度データ、操舵角データ、インジケータデータなどを含むがこれらに限定されない車両102のステータスデータを含み得る。ログデータ104は、車両102のアクションおよび観測(例えば、センサデータ)をタイムスタンプのセットと関連付けるタイムデータを含み得る。ログデータ104は、シナリオジェネレータによって使用され、実行されたときに、環境106を示すシミュレートされた環境を含むシミュレーションデータを生成し、様々な状態(例えば、状態116、120および124)におけるシミュレートされたオブジェクトを含むシミュレーション命令112を生成し得る。例えば、シミュレーションデータは、時点tx134におけるシミュレートされた環境の状態132、時点tx134の後の時点ty138におけるシミュレートされた環境の状態136、および、時点ty138の後の時点tz142におけるシミュレートされた環境の状態140を表し得る。
いくつかの例では、シナリオジェネレータは、図1に描かれるような環境106から多かれ少なかれ詳細を含む(例えば、オブジェクトをフィルタリングすることによって、バウンディングボックスでオブジェクトを表すことによって、および/または追加オブジェクトを追加することによって)シミュレートされた環境を表すシミュレーション命令112を作成し得る。いくつかの例では、シナリオジェネレータは、シミュレートされた車両と関連付けられた車両コントローラへシミュレーション命令112を入力して、シミュレートされたシナリオで提示された状況下でシミュレートされた車両がどのように応答したかを決定し得る。
図2は、異なる時点で、車両102が環境内の種々のオブジェクトおよび種々のオブジェクトの種々の視点を知覚する例示的な環境200を示す。
車両102は、道路セグメント202(1)、202(2)および202(3)などの1つまたは複数の道路セグメントを含む道路のネットワークに従って環境(例えば、上記図1で説明された環境106)を横断し得る。道路セグメント202(1)、202(2)および202(3)の各1つは、相互接続され得る。すなわち、いくつかの例では、道路セグメント202(1)は、道路セグメント202(2)と接続され得、道路セグメント202(2)は、道路セグメント202(3)と接続され得るなどがある。追加的に、または代替的に、道路セグメント202(1)、202(2)および202(3)は、図示されていない他の道路セグメントを介して互いに接続され得る。
車両102は、道路セグメント202(1)、202(2)および202(3)を、タイムライン204によって示されるように、第1の方向に横断し得る。例えば、車両102は、時点t0118において第1の位置206(1)に、時点t0118の後の時点t1122において第2の位置206(2)に、および、時点t1122の後の時点t2126において第3の位置206(3)に位置付けられ得る。そのため、状態116、120および124はそれぞれ、位置206(1)、206(2)および206(3)から、および、時点t0118、t1122およびt2126の時点において、車両102によって知覚される車両102が動作している環境を表し得る。すなわち、状態116、120および124は、車両102、車両102のセンサシステム、車両102の知覚システム、車両102のコントローラなどによって知覚される環境を表し得る。説明のみを目的として、状態116は、0秒における初期時間t0118における環境106を表し得、状態120は、5秒後の時点t1122における環境106を表し得、状態124は、15秒後の時点t2126における環境106を表し得る。それゆえ、いくつかの例では、時点t0118、t1122、t2126は、非連続的であり得(例えば、時点t0118、t1122、およびt2126の間に経過時間がある)、または時点t0118、t1122、およびt2126は連続的であり得る(例えば、時点t0118、t1122、およびt2126の間に経過時間がない)。
図2に示されるように、状態116、120および124は、異なる時点t0118、t1122、およびt2126において、並びに異なる位置206(1)、206(2)および206(3)から、車両102によって知覚される異なるオブジェクトを含み得る。例えば、車両102が第1の位置206(1)に在る、時点t0118のとき、状態116は、駐車車両、建物、および街灯などを含む(例えば、それぞれ、図1に示される環境106のオブジェクト114(1)、114(3)および114(4))。
しかしながら、車両102が第2の位置206(2)へ環境内を移動するとき、車両102は、樹木、建物、および街灯(例えば、それぞれ、図1に示される環境106のオブジェクト114(2)、114(3)および114(4))を含む状態120に示されるようなオブジェクトを知覚し得る。追加的に、車両102の視点から見られるオブジェクトの外観は、車両102の位置の変化、およびいくつかのオブジェクト(例えば、駐車車両)の消失に基づいて、状態116と状態120との間で変化し得る。さらに、樹木のようなオブジェクトは、樹木の範囲内に在り得る第2の位置206(2)に車両102が移動することに基づいて、状態120に現れ得る。すなわち、車両102のセンサシステムは、樹木の存在を検出するために、状態120に示される樹木の範囲内に在り得る。最終的に、時点t2126に車両102が環境を通って第3の場所206(3)に移動する場合、車両102は、状態124に示されるようなオブジェクトを知覚し得る。
図3は、車両知覚システム302によって少なくとも部分的に実行される例示的なデータ変換300を示す。車両知覚システム302は、本明細書で説明されるように、異なる時点で異なる位置から車両によって知覚された環境の異なる表現に基づいて車両(例えば、車両102)が動作していた環境(例えば、環境106)の異なる表現を出力し得る。
例えば、車両知覚システム302は、車両のセンサシステムによって捕捉されたセンサデータを受信し得る。センサデータは、状態116、120および124などの環境を表す様々な状態を含み得る。状態116、120、および124の各1つは、特定の時間における車両の位置から見られる環境を表し得る。例では、タイムライン204の時点t0118、t1122、およびt2126は、状態116、120、および124とそれぞれ関連付けられ得る。
限定ではなく例として、車両知覚システム302は、時点t0118における環境の状態116を表すセンサデータを受信し、状態132に示される環境のシミュレートされた表現を出力し得る。状態132は、状態116で車両によって見られるオブジェクトを表す1つまたは複数のバウンディングボックスを含み得る。例えば、車両知覚システム302は、状態132に示されるシミュレートされた表現を出力するために、1つまたは複数のルール、ヒューリスティック、変換、および/またはそのようなものをセンサデータに適用し得る。追加的に、または代替的に、車両知覚システム302は、1つまたは複数の機械学習モデルを使用して、状態132のシミュレートされた表現を生成し得る。車両知覚システム302は、状態120および124を表すセンサデータに関する同様のまたは類似の処理を実行して、状態136および140に示されるシミュレートされた表現を生成し得る。例では、本明細書で説明されるログデータは、状態132、136、および/または140と同様に、状態116、120、および/または124、のうちのいずれか1つと関連付けられたデータを含み得る。
様々な例では、状態132、136および140は、時点tx134、ty138およびtz142と関連付けられ得る。このようにして、シナリオジェネレータは、シミュレータによって実行されたときに、時点tx134、ty138およびtz142と関連付けられたシミュレートされた環境の状態132、136および140を表すシミュレーションデータを生成するシミュレーション命令を生成し得る。限定ではなく例として、シミュレートされた車両が、時点t0118における状態116で示されたセンサデータを捕捉した車両と同じまたは近接した位置にいるとき、シミュレートされた車両によって知覚されたシミュレートされた環境は、時点tx134における状態132に一致し得る。
図4は、車両102の様々な以前の位置に関するシミュレートされた車両408の種々の位置に基づいて、シミュレートされた環境でオブジェクトがインスタンス化される例示的な処理400を示す絵画的フロー図である。車両102は、シミュレートされた環境410(1)、410(2)および410(3)が基づいているログデータを捕捉し得る。
操作402において、処理400は、シミュレートされた環境410(1)を含むシミュレートされたシナリオを生成することを含み得る。シミュレートされたシナリオは、ログデータを使用して生成され得る。例では、シミュレートされた環境410(1)が特定のシミュレートされたオブジェクトを含むか含むことを回避するかどうかは、シミュレートされた車両408の現在の位置および車両102の以前の位置206(1)に少なくとも部分的に基づき得る。例えば、シミュレートされた車両408の位置は、位置206(2)または206(3)とは対照的に、車両102の以前の位置206(1)に最も近いので、シミュレートされた環境410(1)は、スティップリングが施された図4に示されるシミュレートされたオブジェクトを含み得る。いくつかの例では、シミュレートされた環境410(1)の1つまたは複数のシミュレートされたオブジェクトは、時点t0112における以前の位置206(1)から車両102によって知覚された実際のオブジェクトを表し得る。すなわち、シミュレートされた環境410(1)は、時点t0112における位置206(1)から車両102のセンサシステムの範囲内にあったオブジェクトを表す1つまたは複数のシミュレートされたオブジェクトを含み得る。
操作404において、処理400は、時点t1116における車両102の以前の位置206(2)の最も近くに移動するシミュレートされた車両408の位置に少なくとも部分的に基づいて、シミュレートされた環境410(2)を含むようにシミュレートされたシナリオを更新することを含み得る。シミュレートされた環境410(2)は、位置が変わったシミュレートされた車両408に少なくとも部分的に基づいて、シミュレートされた環境410(1)に以前含まれていたオブジェクトの更新された外観を含む。追加的に、シミュレートされた環境410(2)は、シミュレートされた車両408の位置の変化に基づいて、シミュレートされた環境410(1)に含まれていない追加のオブジェクトを含むだけでなく、シミュレートされた環境410(1)に含まれていたよりも少ないオブジェクトを含む。例えば、車両102が位置206(1)から位置206(2)に移動したとき、追加のオブジェクトが車両102のセンサシステムによって検出可能な範囲に入ったか、そうでなければ検出可能になり得る。同様に、車両102によってかつて検出可能であったオブジェクトは、範囲外に移動したか、そうでなければ検出不可能になり得る。したがって、シミュレートされた環境410(2)は、時点t1116において車両102が現実の世界で知覚したであろうこれらの変化を考慮して更新され得る。
操作406において、処理400は、時点t2120における車両102の以前の位置206(3)の最も近くに移動するシミュレートされた車両408の位置に少なくとも部分的に基づいて、シミュレートされた環境410(3)を含むようにシミュレートされたシナリオを更新することを含み得る。シミュレートされた環境410(3)は、位置が変わったシミュレートされた車両408に少なくとも部分的に基づいて、シミュレートされた環境410(1)および/または410(2)に以前含まれていたオブジェクトの更新された外観を含む。追加的に、シミュレートされた環境410(3)は、シミュレートされた車両408の位置の変化に基づいて、シミュレートされた環境410(1)および/または410(2)に含まれていたよりも少ないオブジェクトを含む。例えば、車両102が位置206(2)から位置206(3)に移動したとき、車両102によってかつて検出可能であったオブジェクトは、範囲外に移動したか、そうでなければ検出不可能になり得る。したがって、シミュレートされた環境410(3)は、時点t2120において車両102が現実の世界で知覚したであろうこれらの変化を考慮して更新され得る。
図4に示されているよりも多い、または少ない位置(例えば、位置206(1)、206(2)、および206(3))が使用され得ることが理解されよう。例えば、図4は、3つの位置および3つのシミュレートされた環境を含むが、現実的なシミュレーションを作成するために、任意の数の位置および/またはシミュレートされた環境が可能であり得る。
図5は、車両102の以前の位置206(1)に関するシミュレートされた環境内で静止したままのシミュレートされた車両508に基づいて、シミュレートされた環境を更新することを回避する例示的な処理500を示す絵画的フロー図である。車両102は、シミュレートされた環境510が基づいているログデータを捕捉し得る。
操作502において、処理500は、シミュレートされた環境510を含むシミュレートされたシナリオを生成することを含み得る。シミュレートされたシナリオは、ログデータを使用して生成され得る。例では、シミュレートされた環境510が、特定のシミュレートされたオブジェクトを含むか含むことを回避するかどうかは、シミュレートされた車両508の現在の位置および車両102の以前の位置206(1)に少なくとも部分的に基づき得る。例えば、シミュレートされた車両508の位置は、位置206(2)または206(3)とは対照的に、車両102の以前の位置206(1)に最も近いので、シミュレートされた環境510は、スティップリングが施された図5に示されるシミュレートされたオブジェクトを含み得る。いくつかの例では、シミュレートされた環境510の1つまたは複数のシミュレートされたオブジェクトは、時点t0112における以前の位置206(1)から車両102によって知覚された実際のオブジェクトを表し得る。すなわち、シミュレートされた環境510は、時点t0112における位置206(1)から車両102のセンサシステムの範囲内にあったオブジェクトを表す1つまたは複数のシミュレートされたオブジェクトを含み得る。
操作504において、処理500は、シミュレートされたシナリオのシミュレートされた環境510を更新することを回避することを含む。操作504においてシミュレートされた環境を更新することを回避することは、静止したままのシミュレートされた車両508の位置に少なくとも部分的に基づき得る。すなわち、シミュレートされた車両508は、時点t0112における車両102の以前の位置206(1)に依然として最も近いので、シミュレートされた環境は、異なる位置からの眺めに更新されない。そのため、シミュレートされた環境510を、時点t0116における位置206(2)から車両102によって見られる視点と一致するように更新することの代わりに、シミュレータは、環境がシミュレートされた車両に対して静止して見えるように、シミュレートされた環境510をリサイクルし得る。同様に、操作506において、処理500は、シミュレートされた車両508の位置が静止したままであることに少なくとも部分的に基づいて、シミュレートされたシナリオのシミュレートされた環境510を更新することを回避することを含む。
図6は、本明細書で説明される様々な技術のいくつかを実装するための例示的なシステム600を示すブロック図である。少なくとも1つの例では、例示的なシステム600は車両602を含み、これは、図1から図5を参照して上記で説明された車両102と同様とすることが可能である。図示された例示的なシステム600では、車両602は、自律車両であるが、車両602は、任意の他のタイプの車両であり得る。
車両602は、米国運輸省道路交通安全局によって発行されたレベル5分類に従って操作するように構成された自律車両などのドライバーレス車両であり得、これは、ドライバー(または乗員)が車両を常に制御することを期待することなく、全体行程のすべての安全上重要な機能を実行可能な車両について説明している。このような例では、車両602は、すべての駐車機能を含む、行程の開始から完了までのすべての機能を制御するように構成され得るため、運転手および/またはステアリングホイール、加速ペダル、および/またはブレーキペダルなどの車両602を運転するための制御を含み得ない。これは単なる一例であり、本明細書で説明するシステムおよび方法は、常に運転者が手動で制御する必要のある車両から、部分的または完全に自律的に制御される車両までを含む、あらゆる地上走行型、空中走行型、または水上走行型の車両に組み込まれ得る。
車両602は、例えば、バン、スポーツ用多目的車、クロスオーバー車、トラック、バス、農業用車両、および/または建設用車両などの任意の構成の車両であり得る。車両602は、1つまたは複数の内燃機関、1つまたは複数の電気モータ、水素動力、それらの任意の組み合わせ、および/または任意の他の適切な動力源によって動力を供給され得る。車両602は、4つの車輪を有するが、本明細書に記載のシステムおよび方法は、より少ない数のまたはより多くの数の車輪、および/またはタイヤを有する車両に組み込まれ得る。車両602は、4輪ステアリングを有し得、例えば、第1の方向に走行するときに、車両602の第1の端部が、車両602の前端部となり、反対方向に走行するときに、第1の端部が、車両602の後端部となるように、全方向において概ね等しいまたは同様の性能特性で動作し得る。同様に、車両602の第2の端部は、第2の方向に走行するときに、車両の前端部となり、第2の端部は、反対方向に走行するときに、車両602の後端部となるようになっている。これらの例示的な特性は、例えば、駐車場および/または都市部のような狭い空間または混雑した環境において、より大きな操縦性を容易にし得る。
車両602は、コンピューティングデバイス604、1つまたは複数のセンサシステム606、1つまたは複数のエミッタ608、1つまたは複数の通信接続610(通信デバイスおよび/またはモデムとも称される)、少なくとも1つの直接接続612(例えば、データを交換するおよび/または動力を提供するために、車両602と物理的に結合するための)、および1つまたは複数の駆動システム614を含み得る。1つまたは複数のセンサシステム606は、環境と関連付けられたセンサデータを捕捉するように構成され得る。
センサシステム606は、飛行時間センサ、位置センサ(例えば、GPS、コンパスなど)、慣性センサ(例えば、慣性測定ユニット(IMU)加速度計、磁力計、ジャイロスコープなど)、ライダーセンサ、レーダーセンサ、ソナーセンサ、赤外線センサ、カメラ(例えば、RGB、IR、照度、深度など)、マイクロホンセンサ、環境センサ(例えば、温度センサ、湿度センサ、光センサ、圧力センサなど)、超音波トランスデューサ、車輪エンコーダなどを含み得る。センサシステム606は、これらまたは他のタイプのセンサのそれぞれの多様なインスタンスを含み得る。例えば、飛行時間センサは、車両602のコーナー、前部、後部、側部、および/または上部に位置された個々の飛行時間センサを含み得る。別の例として、カメラセンサは、車両602の外部および/または内部に関する様々な位置に配置された多様なカメラを含み得る。センサシステム606は、コンピューティングデバイス604に入力を提供し得る。
車両602は、光および/または音を発するための1つまたは複数のエミッタ608も含み得る。この例における1つまたは複数のエミッタ608は、車両602の乗員と通信するための内部オーディオおよびビジュアルエミッタを含む。限定ではなく例として、内部エミッタは、スピーカ、ライト、標識、ディスプレイスクリーン、タッチスクリーン、触覚エミッタ(例えば、振動および/または力フィードバック)、機械的アクチュエータ(例えば、シートベルトテンショナ、シートポジショナ、ヘッドレストポジショナ等)などを含み得る。この例における1つまたは複数のエミッタ608は、外部エミッタも含み得る。限定ではなく例として、この例における外部エミッタは、進行方向を知らせるためのライト、または車両のアクションの他のインジケータ(例えば、インジケータライト、標識、ライトアレイなど)、および歩行者または他の近くの車両と聴覚的に通信するための1つまたは複数のオーディオエミッタ(例えば、スピーカ、スピーカアレイ、ホーンなど)が含まれ、そのうちの1つまたは複数は、音響ビームステアリング技術で構成され得る。
車両602はまた、車両602と、1つまたは複数の他のローカルまたはリモートのコンピューティングデバイス(例えば、リモート遠隔操作コンピューティングデバイス)またはリモートサービスとの間の通信を可能にする1つまたは複数の通信接続610を含み得る。例えば、通信接続610は、車両602および/または駆動システム614上の他のローカルコンピューティングデバイスとの通信を容易にし得る。また、通信接続610は、車両602が、他の近くのコンピューティングデバイス(例えば、他の近くの車両、交通信号など)と通信することを可能にし得る。
通信接続610は、コンピューティングデバイス604を別のコンピューティングデバイスまたは1つまたは複数の外部ネットワーク(例えば、インターネット)に接続するための物理的および/または論理的インターフェースを含み得る。例えば、通信接続610は、IEEE802.11規格によって定義された周波数を介するようなWi-Fiベースの通信、Bluetooth(登録商標)などの短距離無線周波数、セルラー通信(例えば、2G、3G、4G、4GLTE、5Gなど)、衛星通信、狭域通信(DSRC)、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースすることを可能にする任意の適切な有線または無線通信プロトコルを可能にし得る。
少なくとも1つの例では、車両602は、1つまたは複数の駆動システム614を含み得る。いくつかの例では、車両602は、単体の駆動システム614を有し得る。少なくとも1つの例では、車両602が多様な駆動システム614を有する場合、個々の駆動システム614は、車両602の対向する端部に位置付けられ得る(例えば、前および後、など)。少なくとも1つの例では、駆動システム614は、駆動システム614および/または車両602の周囲の状態を検出するための1つまたは複数のセンサシステム606を含み得る。限定ではなく例として、センサシステム606は、駆動システムの車輪の回転を感知するための1つまたは複数の車輪エンコーダ(例えば、ロータリーエンコーダ)、駆動システムの配向および加速度を測定するための慣性センサ(例えば、慣性測定ユニット、加速度計、ジャイロスコープ、磁力計など)、カメラまたは他の画像センサ、駆動システムの周囲のオブジェクトを音響的に検出するための超音波センサ、ライダーセンサ、レーダーセンサなどを含み得る。車輪エンコーダのようないくつかのセンサは、駆動システム614に固有のものであり得る。いくつかの例では、駆動システム614上のセンサシステム606は、車両602に対応するシステム(例えば、センサシステム606)と重複または補足し得る。
駆動システム614は、高電圧バッテリ、車両を推進するモータ、バッテリからの直流を他の車両システムで使用する交流に変換するインバータ、ステアリングモータおよびステアリングラック(電動とし得る)を含むステアリングシステム、油圧または電気アクチュエータを含むブレーキシステム、油圧および/または空気圧コンポーネントを含むサスペンションシステム、トラクションの損失を軽減し制御を維持するブレーキ力分散用の安定性制御システム、HVACシステム、照明(例えば、車両の外部環境を照らすヘッド/テールライトなどの照明)、および1つまたは複数の他のシステム(例えば、冷却システム、安全システム、車載充電システム、DC/DCコンバータ、高電圧ジャンクション、高電圧ゲーブル、充電システム、充電ポートなどのその他の電装コンポーネント)を含む多くの車両システムを含み得る。追加的に、駆動システム614は、センサからデータを受信し事前処理し、様々な車両システムの操作を制御し得る駆動システムコントローラを含み得る。いくつかの例では、駆動システムコントローラは1つまたは複数のプロセッサおよび1つまたは複数のプロセッサと通信可能に結合されたメモリを含み得る。メモリは、1つまたは複数のモジュールを格納し、駆動システム614の様々な機能を実行し得る。さらに、駆動システム614はまた、それぞれの駆動システムによる1つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの通信を可能にする1つまたは複数の通信接続を含み得る。
コンピューティングデバイス604は、図1を参照して上記で説明された車両コンピューティングデバイスと同様であり得る。コンピューティングデバイス604は、1つまたは複数のプロセッサ618と、1つまたは複数のプロセッサ618と通信可能に結合されたメモリ620を含み得る。図示された例では、コンピューティングデバイス604のメモリ620は、位置特定コンポーネント622、知覚コンポーネント624、予測コンポーネント626、プランニングコンポーネント628、および1つまたは複数のシステムコントローラ630を格納する。例示の目的でメモリ620に存在するように描かれているが、位置特定コンポーネント622、知覚コンポーネント624、予測コンポーネント626、プランニングコンポーネント628、および1つまたは複数のシステムコントローラ630は、追加的に、または代替的に、コンピューティングデバイス604にアクセス可能(例えば、車両602の異なるコンポーネントに格納される)であり得、および/または車両602にアクセス可能(例えば、離れて格納される)であり得ることが企図されている。
コンピューティングデバイス604のメモリ620において、位置特定コンポーネントは、車両602のポジションを決定するために、センサシステム606からデータを受信する機能を含み得る。例えば、位置特定コンポーネント622は、環境の三次元マップを含みおよび/または要求/受信し得、マップ内の自律車両の位置を継続的に決定し得る。いくつかの例では、位置特定コンポーネント622は、SLAM(同時位置特定およびマッピング(simultaneous localization and mapping))またはCLAMS(同時に、較正、位置特定およびマッピング(calibration, localization and mapping,simultaneously))を使用して、飛行時間データ、画像データ、ライダーデータ、レーダーデータ、ソナーデータ、IMUデータ、GPSデータ、車輪エンコーダデータ、またはそれらの任意の組合せなどを受信し、自律車両の位置を正確に決定し得る。いくつかの例では、位置特定コンポーネント622は、本明細書で論じられるように、車両602の様々なコンポーネントにデータを提供して、軌道を生成するための自律車両の初期ポジションを決定し得る。少なくとも1つの例では、位置特定コンポーネント622は、シミュレートされた環境内のシミュレートされた車両の位置を決定し得、および/または、シミュレートされた環境が基づいているログデータを記録した車両の最も近い以前の位置を決定し得る。
知覚コンポーネント624は、オブジェクト検出、セグメンテーション、および/または分類を実行する機能を含み得る。いくつかの例では、知覚コンポーネント624は、車両602に近接しているエンティティの存在、および/またはエンティティのタイプ(例えば、車、歩行者、自転車乗り、建物、樹木、路面、縁石、歩道、不明など)としてのエンティティの分類を示す処理されたセンサデータを提供し得る。追加の、および/または代替の例では、知覚コンポーネント624は、検出されたエンティティおよび/またはエンティティが位置付けられている環境と関連付けられた1つまたは複数の特性を示す、処理されたセンサデータを提供し得る。いくつかの例では、エンティティと関連付けられた特性は、x-ポジション(グローバルポジション)、y-ポジション(グローバルポジション)、z-ポジション(グローバルポジション)、方位、エンティティのタイプ(例えば、分類)、エンティティの速度、エンティティの範囲(サイズ)などを含み得るが、これらに限定されない。環境に関連付けられた特性は、環境内の別のエンティティの存在、環境内の別のエンティティの状態、時刻、曜日、季節、天候、暗さ/明るさの表示などが含まれ得るが、これらに限定されない。少なくとも1つの例では、知覚コンポーネント624は、本明細書で説明されるように、環境を横断する車両と関連付けられたログデータを生成し得る。ログデータは、特に、車両をテストするためのシミュレートされた環境を含むシミュレートされたシナリオを生成するために使用され得る。
知覚コンポーネント624は、知覚コンポーネント624によって生成された知覚データを格納する機能を含み得る。いくつかの例では、知覚コンポーネント624は、オブジェクトのタイプとして分類されたオブジェクトに対応する軌跡を決定し得る。例示のみを目的として、知覚コンポーネント624は、センサシステム606を使用して、環境の1つまたは複数の画像を捕捉し得る。センサシステム606は、建物、車両、樹木、街灯、歩行者などのオブジェクトを含む環境の画像を捕捉し得る。
格納された知覚データは、いくつかの例では、車両によって捕捉された融合した知覚データを含み得る。融合した知覚データは、画像センサ、ライダーセンサ、レーダーセンサ、飛行時間センサ、ソナーセンサ、全地球測位システムセンサ、内部センサ、および/またはこれらの任意の組み合わせなどのセンサシステム606からのセンサデータの融合または他の組み合わせを含み得る。格納された知覚データは、追加的または代替的に、センサデータに表されるオブジェクト(例えば、歩行者、車両、建物、路面など)のセマンティック分類を含む分類データを含み得る。
予測コンポーネント626は、環境内の1つまたは複数のオブジェクトの可能な位置の予測確率を表す1つまたは複数の確率マップを生成し得る。例えば、予測コンポーネント626は、車両602から閾値距離内にある車両、歩行者、動物などについての1つまたは複数の確率マップを生成し得る。いくつかの例では、予測コンポーネント626は、オブジェクトの軌跡を測定し得、観察および予測された挙動に基づいて、離散化予測確率マップ、ヒートマップ、確率分布、離散化確率分布、および/またはオブジェクトの軌道を生成し得る。いくつかの例では、1つまたは複数の確率マップは、環境内の1つまたは複数のオブジェクトの意図を表し得る。
プランニングコンポーネント628は、環境を横断するために車両602が従うべき経路を決定し得る。例えば、プランニングコンポーネント628は、様々なルートおよび経路、ならびに様々な詳細レベルを決定し得る。いくつかの例では、プランニングコンポーネント628は、第1の位置(例えば、現在の位置)から第2の位置(例えば、目標の位置)まで走行するルートを決定し得る。この議論の目的上、ルートは、2つの位置間を走行するためのウェイポイントのシーケンスであり得る。非限定的な例として、ウェイポイントは、通り、交差点、全地球測位システム(GPS)座標などが含まれる。さらに、プランニングコンポーネント628は、第1の位置から第2の位置までのルートの少なくとも一部に沿って自律車両を誘導するための命令を生成し得る。少なくとも1つの例では、プランニングコンポーネント628は、ウェイポイントのシーケンス内の第1のウェイポイントから、ウェイポイントのシーケンス内の第2のウェイポイントへ自律車両をどのように誘導するかを決定し得る。いくつかの例では、命令は経路、または経路の一部であり得る。いくつかの例では、多様な経路が、後退水平法(receding horizon technique)に従って実質的に同時に(すなわち、技術的な許容範囲内で)生成され得る。最も高い信頼レベルを有する、後退する(receding)データホライズン内の多様な経路の一つの経路が、車両を操作するために選択され得る。
他の例では、プランニングコンポーネント628は、代替的に、または追加的に、知覚コンポーネント624からのデータを使用して、車両602が環境を横断するために従うべき経路を決定し得る。例えば、プランニングコンポーネント628は、環境と関連付けられたオブジェクトに関する知覚コンポーネント624からのデータを受信し得る。このデータを使用して、プランニングコンポーネント628は、環境内のオブジェクトを回避するために、第1の位置(例えば、現在の位置)から第2の位置(例えば、目標の位置)へ走行するルートを決定し得る。少なくともいくつかの例では、そのようなプランニングコンポーネント628は、そのような衝突のない経路がないと決定し得、その結果、すべての衝突を回避し、および/またはそうでなければ損傷を軽減して、車両602を安全な停止に導く経路を提供し得る。
少なくとも1つの例では、コンピューティングデバイス604は、車両602の操舵、推進、制動、安全、エミッタ、通信、および他のシステムを制御するように構成され得る、1つまたは複数のシステムコントローラ630を含み得る。これらのシステムコントローラ630は、駆動システム614および/または車両602の他のコンポーネントに対応するシステムと通信および/または制御し得、これは、プランニングコンポーネント628から提供される経路に従って動作するように構成され得る。
車両602は、ネットワーク616を介してコンピューティングデバイス632に接続し得、1つまたは複数のプロセッサ634と、1つまたは複数のプロセッサ634と通信可能に結合されたメモリ636を含み得る。少なくとも1つの例では、1つまたは複数のプロセッサ634は、プロセッサ618と同様であり得、メモリ636は、メモリ620と同様であり得る。図示された例では、コンピューティングデバイス632のメモリ636は、ログデータコンポーネント638、オブジェクトコンポーネント640、シナリオコンポーネント642、およびシミュレーションコンポーネント644を格納する。例示の目的でメモリ636に存在するように描かれているが、ログデータコンポーネント638、オブジェクトコンポーネント640、シナリオコンポーネント642、およびシミュレーションコンポーネント644は、追加的に、または代替的に、コンピューティングデバイス632にアクセス可能(例えば、コンピューティングデバイス632の異なるコンポーネントに格納される)であり得、および/またはコンピューティングデバイス632にアクセス可能(例えば、離れて格納される)であり得ることが企図される。
コンピューティングデバイス632のメモリ636において、ログデータコンポーネント638は、シミュレートされたシナリオを生成するために使用されるログデータを決定し得る。上記で論じられたように、データベースは、1つまたは複数のログデータを格納し得る。いくつかの例では、コンピューティングデバイス632は、ログデータを格納するデータベースとして振る舞い得る。いくつかの例では、コンピューティングデバイス632は、ログデータデータベースにアクセスするために別のコンピューティングデバイスに接続し得る。ログデータコンポーネント638は、データベースに格納されたログデータをスキャンし、関心のあるイベントを含むログデータを識別し得る。上記で論じられたように、いくつかの例では、ログデータは、関心のあるイベントが特定のログデータに関連付けられることを示すイベントマーカーを含み得る。いくつかの例では、ユーザは、シミュレートされたシナリオを生成するために使用されるログデータのセットのログデータを選択し得る。
追加的に、オブジェクトコンポーネント640は、ログデータと関連付けられた1つまたは複数のオブジェクトを識別し得る。例えば、オブジェクトコンポーネント640は、ログデータ中の、車両、歩行者、動物、自転車乗り、樹木、建物、街灯、障壁、フェンスなどのオブジェクトを決定し、シミュレートされたオブジェクトとして表し得る。いくつかの例では、オブジェクトコンポーネント640は、ログデータと関連付けられた車両と相互作用するオブジェクトを決定し得る。いくつかの例では、オブジェクトコンポーネント640は、オブジェクトと関連付けられた属性を決定し得る。例えば、属性は、オブジェクトの範囲(オブジェクトのサイズとも呼ばれ、長さ、幅、高さ、および/または体積を表し得る)、オブジェクトの分類、オブジェクトのポーズ、オブジェクトの軌道、オブジェクトのウェイポイント、オブジェクトのインスタンス化属性、および/またはオブジェクトの終了属性を含み得る。
オブジェクトの範囲は、オブジェクトのサイズおよび/または体積(例えば、5メートルの長さ)を示し得る。オブジェクトの分類は、オブジェクトの分類および/またはタイプ(例えば、車両、歩行者、自転車乗りなど)を示し得る。オブジェクトのポーズは、環境内のオブジェクトのx-y-z座標(例えば、ポジションまたはポジションデータ)を示し得、および/またはオブジェクトに関連付けられたピッチ、ロール、ヨーを含み得る。オブジェクトの軌道は、オブジェクトによって辿られる軌道を示し得る。オブジェクトのウェイポイントは、2つの位置間のルートを示す環境内のポジションを示し得る。
オブジェクトのインスタンス化属性は、車両がオブジェクトを検出する方法を示し得る。例えば、オブジェクトは、(1)車両がオブジェクトに近接する、(2)オブジェクトが車両に近接する、および/または(3)オブジェクトが視認可能に(遮蔽されていない)またはオブジェクトの遮蔽が停止になる、ことにより、車両の検出範囲に入り得る。オブジェクトの終了属性は、車両がもはやオブジェクトの検出をしない方法を示し得る。例えば、オブジェクトは、(1)車両がオブジェクトから遠ざかる、(2)オブジェクトが車両から遠ざかる、および/または(3)オブジェクトが遮蔽されるまたはオブジェクトの遮蔽、ことにより、車両の検出範囲外のポジションにあり得る。
シナリオコンポーネント642は、ログデータコンポーネント638によって識別されたログデータを使用してシミュレートされたシナリオを生成し得る。シミュレートされたシナリオは、シミュレートされた環境(例えば、道路、道路標識、建物、など)およびシミュレートされたオブジェクト(例えば、他の車両、建物、樹木、街灯、障壁、フェンス、歩行者、自転車乗り、動物、など)を含み得る。いくつかの例では、シナリオコンポーネント642は、知覚コンポーネント624によって生成された知覚データを使用してシミュレートされたオブジェクトモデルをシミュレートされたオブジェクトに適用し得る。例えば、シナリオコンポーネント642は、シミュレートされた車両モデルを識別し、それを車両と関連付けられたシミュレートされたオブジェクトに適用し得る。いくつかの例では、シナリオコンポーネント642は、シミュレートされた建物モデルを識別し、それを建物と関連付けられたシミュレートされたオブジェクトに適用し得る。
限定ではなく例として、ログデータは、郵便受け、樹木、建物、および/またはそのようなものなどの様々なサイズのオブジェクトを含み得る。シナリオコンポーネント642は、建物のような、3立方メートルの閾値体積に等しいかそれよりも大きい体積に関連付けられたオブジェクトが、シミュレートされたシナリオにおいて表され、郵便受けのような、3立方メートル未満の体積に関連付けられたオブジェクトが、シミュレートされたシナリオにおいて表されないように、体積ベースのフィルタを使用し得る。いくつかの例では、シナリオコンポーネント642は、ログデータに従った動きまたは軌道と関連付けられたオブジェクトが、シミュレートされたシナリオに表されるか、またはシミュレートされたシナリオから削除されるように、動きベースのフィルタを使用し得る。いくつかの例では、フィルタは、組み合わせて適用されるか、または相互に排他的に適用され得る。
いくつかの例では、シナリオコンポーネント642は、信頼閾値を満たさないまたは超えないオブジェクトをフィルタにかけ得る。限定ではなく例として、ログデータは、オブジェクトが歩行者の分類属性に関連付けられ、分類に関連付けられた信頼値が5%であることを示し得る。シナリオコンポーネント642は、75%の信頼閾値を有し得、信頼閾値に満たさないまたは信頼閾値を超えない信頼値に基づいて、オブジェクトをフィルタにかけ得る。いくつかの例では、ユーザは、シナリオコンポーネント642が、ユーザ生成フィルタによって示される1つまたは複数の属性閾値を満たさないまたは超えないオブジェクトをフィルタにかけ得るように、1つまたは複数の属性閾値を含むユーザ生成フィルタを提供し得る。
シミュレーションコンポーネント644は、シミュレーションされたシナリオをシミュレーション命令のセットとして実行し、シミュレーションデータを生成し得る。いくつかの例では、シミュレーションコンポーネント644は、多様なシミュレートされたシナリオを同時におよび/または並行して実行し得る。これは、ユーザに、シミュレートされたシナリオを編集すること、および、各シミュレートされたシナリオ間のバリエーションを有するシミュレートされたシナリオの配列を実行することを可能にし得る。シミュレーションコンポーネント644は、少なくとも1つの例において、シナリオをシミュレートすることによって車両コントローラをテストする。
追加的に、シミュレーションコンポーネント644は、シミュレートされたシナリオについての結果を決定し得る。例えば、シミュレーションコンポーネント644は、テストおよび検証のためのシミュレーションで使用するためにシナリオを実行し得る。シミュレーションコンポーネント644は、自律コントローラがどのように実行(例えば、応答)したかを示すシミュレーションデータを生成し、シミュレーションデータを所定の結果と比較し得、および/または、任意の所定のルール/アサーションが破られたか/トリガされたかを決定し得る。
いくつかの例では、所定のルール/アサーションは、シミュレートされたシナリオに基づき得る(例えば、横断歩道に関する交通ルールは、横断歩道のシナリオに基づいて有効化され得、または、車線マーカーを横切ることに関する交通ルールは、停止車両のシナリオに対して無効化され得る)。いくつかの例では、シミュレーションコンポーネント644は、シミュレーションの進行に伴って動的にルール/アサーションを有効にしたり無効にしたりし得る。例えば、シミュレートされたオブジェクトがスクールゾーンに近づくと、スクールゾーンに関連するルール/アサーションが有効化され、シミュレートされたオブジェクトがスクールゾーンから離れると無効化され得る。いくつかの例では、ルール/アサーションは、例えば、シミュレートされたシナリオからオブジェクトがどの程度の速さで加速するかなどに関連する快適性メトリクスを含み得る。
自律コントローラが所定の結果と一致する動作を行った(すなわち、自律コントローラは、行うべきことをすべて行った)と決定すること、および/または、ルールが破られなかったか、またはアサーションがトリガされなかったと決定すること、に少なくとも部分的に基づいて、シミュレーションコンポーネント644は、自律コントローラが成功したと決定し得る。自律コントローラのパフォーマンスが所定の結果と矛盾していた(すなわち、自律コントローラが行うはずのないことを行った)と決定すること、および/または、ルールが破られたこと、またはアサーションがトリガされたと決定すること、に少なくとも部分的に基づいて、シミュレーションコンポーネント644は、自律コントローラが失敗したと決定し得る。したがって、シミュレートされたシナリオを実行することに少なくとも部分的に基づいて、シミュレーションデータは、上記で説明されたように、自律コントローラが各シミュレートされたシナリオにどのように応答するかを示し、シミュレーションデータに少なくとも部分的に基づいて、成功した結果または失敗した結果を決定し得る。
コンピューティングデバイス604のプロセッサ618およびコンピューティングデバイス632のプロセッサ634は、データを処理し、本明細書で説明される操作を実行するための命令を実行することが可能な任意の適切なプロセッサであり得る。限定ではなく例として、プロセッサ618および634は、1つまたは複数の中央処理装置(CPU)、グラフィック処理装置(GPU)、または、電子データを処理して、レジスタまたはメモリに格納し得る他の電子データにその電子データを変換する、任意の他のデバイスまたはデバイスの一部を備え得る。いくつかの例では、集積回路(例えば、ASICなど)、ゲートアレイ(例えば、FPGAなど)、および他のハードウェアデバイスも、それらが符号化された命令を実装するように構成される限りにおいて、プロセッサとみなされ得る。
コンピューティングデバイス604のメモリ620およびコンピューティングデバイス632のメモリ636は、非一時的なコンピュータ可読媒体の例である。メモリ620および636は、オペレーティングシステムおよび1つまたは複数のソフトウェアアプリケーション、命令、プログラム、および/またはデータを格納して、本明細書で説明される方法および様々なシステムに起因する機能を実装し得る。様々な実装では、メモリ620および636は、スタティックランダムアクセスメモリ(SRAM)、シンクロナスダイナミックRAM(SDRAM)、不揮発性/フラッシュ型メモリ、または情報を格納可能な任意の他のタイプのメモリなど、任意の適切なメモリ技術を用いて実装し得る。本明細書で説明するアーキテクチャ、システム、および個々の要素には、他の多くの論理的、プログラム的、および物理的コンポーネントを含むことができ、それらの添付図面に示されるものは、単に本明細書の説明に関連する例にすぎない。
いくつかの例では、本明細書で論じられるコンポーネントのいくつかまたはすべての態様は、任意のモデル、アルゴリズム、および/または機械学習アルゴリズムを含み得る。例えば、いくつかの例では、メモリ620および636内のコンポーネントは、ニューラルネットワークとして実装され得る。
図7および8は、ログデータに基づいてシミュレートされた環境でオブジェクトをインスタンス化する例示的な方法を示すフローチャートである。図7および図8に示される方法は、便宜上および理解を容易にするために、図1から6で説明された1つまたは複数の車両および/またはシステムを参照して説明される。しかしながら、図7および8に示される方法は、図1から6で説明される車両、システム、および/または技術を使用して実行されることに限定されず、本願で説明される他の車両、システム、および技術のいずれか、ならびに本明細書で説明される車両、システム、および技術以外の車両、システム、および技術を使用して実施され得る。さらに、本明細書で説明される車両、システム、およびユーザインターフェースは、図7および8に示される方法を実行することに限定されない。
方法700および800は、論理的フローグラフのブロックの集まりとして示されており、これは、ハードウェア、ソフトウェア、またはそれらの組み合わせで実装されることが可能な操作のシーケンスを表す。ソフトウェアの文脈では、ブロックは、1つまたは複数のプロセッサによって実行されると、記載された操作を実行する、1つまたは複数のコンピュータ可読記憶媒体に格納されたコンピュータ実行可能命令を表す。一般に、コンピュータ実行可能命令は、特定の機能を実行する、または、特定の抽象データタイプを実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。操作が記載される順序は、限定として解釈されることを意図しておらず、記載されたブロックの任意の数を任意の順序で、および/または並列に組み合わせて、プロセスを実装することが可能である。いくつかの実施形態では、処理の1つまたは複数のブロックは、完全に省略され得る。さらに、方法700および800は、その全部または一部を、互いに、または他の方法と組み合わせ得る。
図7は、現実世界の車両の以前の位置に関するシミュレートされた車両の位置に基づいて、オブジェクトを含むようにシミュレートされた環境を更新するための例示的な方法700を示すフローチャートである。
方法700は、一定期間中現実の車両が動作していた現実の環境を表すログデータを受信する、操作702にて始まる。例えば、コンピューティングデバイス108は、1つまたは複数の車両102から、1つまたは複数のネットワーク128を通じてログデータを受信し得る。いくつかの例では、ログデータは、車両の1つまたは複数のセンサによって捕捉されたセンサデータに少なくとも部分的に基づいて、車両の知覚システムによって生成され得る。少なくとも1つの例では、ログデータは、複数の一定期間中、車両および/または別の車両が動作していた環境を表す多様なログデータのインスタンスを含む。
操作704において、方法700は、ログデータを使用して、自律車両のコントローラをテストするためのシミュレートされたシナリオを生成することであって、シミュレートされたシナリオは、少なくとも現実の環境の一部を表すシミュレートされた環境を含む、ことを含む。例えば、コンピューティングデバイス108は、環境106の一部を表すシミュレートされた環境を含むシミュレートされたシナリオを生成し得る。
操作706において、方法700は、自律車両のコントローラによって、シミュレートされた自律車両にシミュレートされた環境を横断させることを含む。様々な例では、シミュレートされた環境内/を通るシミュレートされた自律車両のシミュレートされた経路は、現実の環境内/を通る現実の車両の現実の経路から逸脱し得る。少なくとも1つの例では、シミュレートされたシナリオ、シミュレートされた環境、シミュレートされたオブジェクト、および/またはそのようなものは、シミュレーション命令の形で自律車両のコントローラへ入力され得る。すなわち、シミュレーション命令は、シミュレートされたシナリオ、シミュレートされた環境、シミュレートされたオブジェクト、および/またはそのようなもの、を表し得る。
操作708において、方法700は、シミュレートされた環境内のシミュレートされた自律車両のシミュレートされた位置を決定することを含む。例えば、コンピューティングデバイス108は、シミュレートされた環境の範囲内のシミュレートされた車両のポジションに基づいて、シミュレートされた車両からジオロケーションデータを受信し得、シミュレートされた車両のシミュレートされた位置は、ジオロケーションデータに少なくとも部分的に基づいて決定され得る。操作710において、方法700は、ログデータに少なくとも部分的に基づいて、現実の環境内の現実の車両の現実の位置が、シミュレートされた環境内のシミュレートされた自律車両のシミュレートされた位置と最も一致した一定期間中の第1の時間を決定することを含む。例えば、コンピューティングデバイス108は、車両102の以前の位置206(1)が、シミュレートされた車両508の位置に最も近かった第1の時間(例えば、t0112)を決定し得る。追加的に、または代替的に、コンピューティングデバイス108は、ログデータ関連付け130に少なくとも部分的に基づいて、第1の時間を決定し得る。
操作712において、ログデータから、第1の時間に現実の車両によって知覚された現実の環境内の現実のオブジェクトを表すオブジェクトデータを取得することを含む。例えば、コンピューティングデバイス108は、シミュレートされた車両が、どの車両102の以前の位置に最も近いかに少なくとも部分的に基づいて、ログデータ関連付け130からオブジェクトデータを取得し得る。操作716において、方法700は、シミュレートされた車両がシミュレートされたオブジェクトを知覚するように、シミュレートされた環境に、現実のオブジェクトを表すシミュレートされたオブジェクトを生成することを含む。例えば、コンピューティングデバイス108は、車両102がオブジェクトを知覚した位置において、シミュレートされた環境の範囲内で、シミュレートされたオブジェクトをインスタンス化し得る。いくつかの例では、シミュレートされた環境内にシミュレートされたオブジェクトが生成されるかどうかは、現実のオブジェクトの分類を決定することに少なくとも部分的に基づき得る。すなわち、現実のオブジェクトが動的オブジェクトの場合、シミュレートされたオブジェクトは、生成され得ない。しかしながら、現実のオブジェクトが静的オブジェクトである場合、シミュレートされたオブジェクトは、シミュレートされた環境の範囲内で、生成および/またはインスタンス化され得る。
操作716において、方法700は、シミュレーションを終了するかどうかを決定することを含む。例えば、シミュレーションが、シミュレーションが基づいているログデータファイルの終わりにある場合、コンピューティングデバイス108は、シミュレーションを終了することを決定し、操作718に進み得る。しかしながら、シミュレーションがログデータファイルの終わりにまだない場合、または、シミュレーションが続いている場合、方法700は、操作708にループバックし得る。このようにして、操作708から716は、シミュレーションの終わりに達するまで継続することができ、シミュレートされた環境は、シミュレートされた車両のシミュレートされた位置に基づいて、更新され続ける。操作718において、シミュレーションが終了される場合、方法700は、自律車両のコントローラが、シミュレートされたテストに成功したかどうかを決定することを含む。例えば、コンピューティングデバイス108は、シミュレーションのシミュレートされた車両が、シミュレートされた環境を安全に、効果的に、横断したかどうかなどを決定し得る。
図8は、現実世界の車両の以前の位置に関するシミュレートされた車両の位置に基づいて、オブジェクトを含むようにシミュレートされた環境を更新するための別の例示的な方法800を示すフローチャートである。
方法800は、現実の車両が動作していた現実の環境を表すログデータを受信することを含む、操作802にて始まる。例えば、コンピューティングデバイス108は、1つまたは複数の車両102から1つまたは複数のネットワーク128を通じてログデータ受信し得る。いくつかの例では、ログデータは、1つまたは複数の現実の車両のセンサによって捕捉されたセンサデータに少なくとも部分的に基づいて、現実の車両の知覚システムによって生成され得る。少なくとも1つの例では、ログデータは、複数の一定期間中、車両および/または別の車両が動作していた環境を表す多様なログデータのインスタンスを含む。
操作804において、方法800は、ログデータを使用して、車両コントローラをテストするためのシミュレートされた環境を生成することであって、シミュレートされた環境は、現実の環境を表す、ことを含み得る。例えば、コンピューティングデバイス108は、シミュレートされた環境を含むシミュレーション命令112を生成し得る。操作806において、方法800は、シミュレートされた環境を横断するときのシミュレートされた車両のシミュレートされた位置を決定することを含み得る。シミュレートされた車両は、車両コントローラによって制御され得る。追加的に、いくつかの例では、シミュレートされた環境内のシミュレートされた車両のシミュレートされたポーズは、現実の環境内の現実の車両の現実のポーズから逸脱し得る(例えば、シミュレートされた車両は、北から90度の方位に向いているが、現実の車両は、北から93度の方位に向いている)。いくつかの例では、コンピューティングデバイス108は、シミュレートされた環境の範囲内のシミュレートされた車両のポジションに基づいて、シミュレートされた車両からジオロケーションデータを受信し得、シミュレートされた車両のシミュレートされた位置は、ジオロケーションデータに少なくとも部分的に基づいて決定され得る。
操作808において、方法800は、ログデータに少なくとも部分的に基づいて、シミュレートされた環境内のシミュレートされた車両のシミュレートされた位置と関連付けられた現実の環境内の現実の車両の現実の位置を決定することを含み得る。例えば、コンピューティングデバイス108は、現実の車両の現実の位置を決定し得る。追加的に、コンピューティングデバイス108は、シミュレートされた環境内のシミュレートされた車両のシミュレートされた位置と関連付けられたジオロケーションデータを受信することに少なくとも部分的に基づいて、現実の車両の現実の位置を決定し得る。
操作810において、方法800は、シミュレートされた環境に、現実の位置から現実の車両によって知覚された現実の環境内の現実のオブジェクトを表すシミュレートされたオブジェクトを生成することを含み得る。例えば、コンピューティングデバイス108は、現実の環境内の現実のオブジェクトの現実世界の位置と一致するシミュレートされた環境内のシミュレートされた位置で、シミュレートされたオブジェクトをインスタンス化し得る。
操作812にて、方法800は、シミュレーションを終了するかどうかを決定することを含み得る。例えば、シミュレーションが、シミュレーションが基づいているログデータファイルの終わりにある場合、コンピューティングデバイス108は、シミュレーションを終了することを決定し、操作814に進み得る。しかしながら、シミュレーションがログデータファイルの終わりにまだない場合、または、シミュレーションが続いている場合、方法800は、操作806にループバックし得る。このようにして、操作806から812は、シミュレーションの終わりに達するまで継続することができ、シミュレートされた環境は、シミュレートされた車両のシミュレートされた位置に基づいて、更新され続ける。操作814において、シミュレーションが終了される場合、方法800は、シミュレートされた車両が、シミュレートされたテストに成功したかどうかを決定することを含む。例えば、コンピューティングデバイス108は、シミュレーションのシミュレートされた車両が、シミュレートされた環境を安全に、効果的に、横断したかどうかなどを決定し得る。
例示的な条項
A.1つまたは複数のプロセッサと、前記1つまたは複数プロセッサによって実行されると、一定期間中現実の車両が動作していた現実の環境を表すログデータを受信することと、前記ログデータを使用して、自律車両のコントローラをテストするためのシミュレートされたシナリオを生成することであって、前記シミュレートされたシナリオは、少なくとも前記現実の環境の一部を表すシミュレートされた環境を含む、ことと、前記自律車両のコントローラによって、シミュレートされた自律車両に前記シミュレートされた環境を横断させることであって、前記シミュレートされた環境内の前記シミュレートされた自律車両の経路は、前記現実の環境内の前記現実の車両の経路から逸脱している、ことと、前記シミュレートされた環境内の前記シミュレートされた自律車両のシミュレーション位置を決定することと、前記ログデータに少なくとも部分的に基づいて、前記現実の環境内の前記現実の車両の現実の位置が、前記シミュレートされた環境内の前記逸脱したシミュレートされた自律車両の前記シミュレートされた位置と最も一致した前記一定期間中の第1の時間を決定することと、前記ログデータから、前記第1の時間に前記現実の車両によって知覚された前記現実の環境内の現実のオブジェクトを表すオブジェクトデータを取得することと、前記シミュレートされた環境に、前記現実のオブジェクトを表すシミュレートされたオブジェクトを生成することと、を含む操作をシステムに実行させる命令を格納する1つまたは複数の非一時的コンピュータ可読媒体と、を備えるシステム。
A.1つまたは複数のプロセッサと、前記1つまたは複数プロセッサによって実行されると、一定期間中現実の車両が動作していた現実の環境を表すログデータを受信することと、前記ログデータを使用して、自律車両のコントローラをテストするためのシミュレートされたシナリオを生成することであって、前記シミュレートされたシナリオは、少なくとも前記現実の環境の一部を表すシミュレートされた環境を含む、ことと、前記自律車両のコントローラによって、シミュレートされた自律車両に前記シミュレートされた環境を横断させることであって、前記シミュレートされた環境内の前記シミュレートされた自律車両の経路は、前記現実の環境内の前記現実の車両の経路から逸脱している、ことと、前記シミュレートされた環境内の前記シミュレートされた自律車両のシミュレーション位置を決定することと、前記ログデータに少なくとも部分的に基づいて、前記現実の環境内の前記現実の車両の現実の位置が、前記シミュレートされた環境内の前記逸脱したシミュレートされた自律車両の前記シミュレートされた位置と最も一致した前記一定期間中の第1の時間を決定することと、前記ログデータから、前記第1の時間に前記現実の車両によって知覚された前記現実の環境内の現実のオブジェクトを表すオブジェクトデータを取得することと、前記シミュレートされた環境に、前記現実のオブジェクトを表すシミュレートされたオブジェクトを生成することと、を含む操作をシステムに実行させる命令を格納する1つまたは複数の非一時的コンピュータ可読媒体と、を備えるシステム。
B.前記シミュレートされた位置は、第1のシミュレートされた位置を含み、前記現実の位置は、第1の現実の位置を含み、前記操作は、前記シミュレートされた環境内の前記シミュレートされた自律車両の第2のシミュレートされた位置を決定することであって、前記第2のシミュレートされた位置は、前記第1のシミュレートされた位置とは異なる、ことと、前記ログデータに少なくとも部分的に基づいて、前記現実の環境内の前記現実の車両の第2の現実の位置が、前記シミュレートされた環境内の前記逸脱したシミュレートされた自律車両の前記第2のシミュレートされた位置と最も一致した前記一定期間中の第2の時間を決定すること、および、前記第2の時間に前記現実の車両によって知覚された前記現実の環境内の前記現実のオブジェクトに一致する前記シミュレートされたオブジェクトを更新すること、または、前記シミュレートされた環境に、前記第2の時間に前記現実の車両によって知覚された前記現実の環境内の第2の現実のオブジェクトを表す第2のシミュレートされたオブジェクトを生成すること、のうちの少なくとも1つ、をさらに含む段落Aに記載のシステム。
C.前記シミュレートされたオブジェクトは、第1のシミュレートされたオブジェクトを含み、前記操作は、前記シミュレートされた環境に、前記シミュレートされた自律車両の前記シミュレートされた位置または前記第1の時間のうちの少なくとも1つに少なくとも部分的に基づいて、前記第1の時間の後の第2の時間に前記現実の車両によって知覚された前記現実の環境内の第2の現実のオブジェクトを表す第2のシミュレートされたオブジェクトを生成することを回避することをさらに含む、段落Aまたは段落Bのいずれか1つに記載のシステム。
D.前記操作は、前記現実のオブジェクトを表す前記オブジェクトデータが、静的オブジェクトまたは動的オブジェクトに関連付けられるかどうかを決定することをさらに含み、前記現実のオブジェクトを表す前記シミュレートされたオブジェクトを生成することは、前記オブジェクトデータが静的オブジェクトに関連付けられることを決定することに少なくとも部分的に基づく、段落Aから段落Cのいずれか1つに記載のシステム。
E.前記シミュレートされた環境内の前記シミュレートされた自律車両のシミュレートされたポーズは、前記現実の環境内の前記現実の車両の現実のポーズから逸脱する、段落Aから段落Dのいずれか1つに記載のシステム。
F.第1の車両が動作していた第1の環境を表すログデータを受信することと、前記ログデータを使用して、車両コントローラをテストするためのシミュレートされた環境を生成することであって、前記シミュレートされた環境は、現実の第1の環境を表す、ことと、前記シミュレートされた環境を横断するときの第2の車両のポジションを決定し、前記第2の車両は、前記車両コントローラによって制御される、ことであって、前記シミュレートされた環境内の前記第2の車両の経路は、前記第1の環境内の前記第1の車両の経路から逸脱する、ことと、前記ログデータに少なくとも部分的に基づいて、前記シミュレートされた環境内の前記逸脱した第2の車両の前記ポジションに関連付けられた前記第1の環境内の前記第1の車両の位置を決定することと、前記シミュレートされた環境に、前記位置から前記第1の車両によって知覚された前記第1の環境内の第1のオブジェクトを表すシミュレートされたオブジェクトを生成することと、を備える方法。
G.前記第2の車両が前記シミュレートされた環境内のポジションを変更することを決定することと、前記第2の車両の前記変更されたポジションに関連付けられた第2の位置から前記第1の車両によって知覚された前記第1の環境内の第2のオブジェクトを表す別のシミュレートされたオブジェクトを含むように、前記シミュレートされた環境を更新することと、をさらに備える、段落Fに記載の方法。
H.前記ログデータは、前記第1の環境で前記第1の車両が動作していた一定期間と関連付けられ、前記方法は、前記ログデータに少なくとも部分的に基づいて、前記第1の車両が前記位置に位置付けられていた前記一定期間中の第1の時間を決定することと、前記ログデータから、前記第1の時間に前記第1の車両によって知覚された前記第1の環境内の前記第1のオブジェクトを表すオブジェクトデータを取得することであって、前記シミュレートされたオブジェクトは、前記オブジェクトデータに少なくとも部分的に基づいて生成される、ことと、をさらに備える、段落Fまたは段落Gのいずれか1つに記載の方法。
I.前記第1の車両の前記位置を決定することは、前記シミュレートされた環境内の前記第2の車両のポジションに最も一致する前記第1の環境内の前記第1の車両の前記位置を決定することを含む、段落Fから段落Hのいずれか1つに記載の方法。
J.前記シミュレートされた環境を含むようにシミュレーション命令を更新することと、前記車両コントローラへ前記シミュレーション命令を入力して、前記車両コントローラが、前記シミュレートされた環境を前記第2の車両が横断するように制御することと、
をさらに備える、段落Fから段落Iのいずれか1つに記載の方法。
をさらに備える、段落Fから段落Iのいずれか1つに記載の方法。
K.前記ログデータは、シミュレートされたセンサデータまたは前記第1の車両のセンサによって捕捉された実際のセンサデータのいずれかを含む、段落Fから段落Jのいずれか1つに記載の方法。
L.前記車両コントローラによって、前記シミュレートされたオブジェクトを知覚することに少なくとも部分的に基づいて、前記第2の車両を制御すること、をさらに備える、段落Fから段落Kのいずれか1つに記載の方法。
M.前記シミュレートされた環境の範囲内の、別のシミュレートされたオブジェクトが含まれるユーザ指定の位置を示す入力を受信することと、前記シミュレートされた環境に、前記ユーザ指定の位置で前記別のシミュレートされたオブジェクトを生成することと、をさらに備える、段落Fから段落Lのいずれか1つに記載の方法。
N.前記ログデータは、複数の一定期間中前記第1の車両または第3の車両が動作していた前記第1の環境を表す多様なログデータのインスタンスを含み、前記第2の車両のポジションを決定することは、前記多様なログデータのインスタンスに少なくとも部分的に基づく、段落Fから段落Mのいずれか1つに記載の方法。
O.前記第1の環境内の前記第1のオブジェクトが、静的オブジェクトまたは動的オブジェクトであるかどうかを決定することと、前記シミュレートされた環境内の前記シミュレートされたオブジェクトを生成することは、前記第1のオブジェクトが静的オブジェクトであると決定することに少なくとも部分的に基づく、段落Fから段落Nのいずれか1つに記載の方法。
P.実行されると、第1の車両が動作していた第1の環境を表すログデータを受信することと、前記ログデータを使用して、車両コントローラをテストするためのシミュレートされた環境を生成することであって、前記シミュレートされた環境は、現実の第1の環境を表す、ことと、前記シミュレートされた環境を横断するときの第2の車両のポジションを決定し、前記第2の車両は、前記車両コントローラによって制御される、ことであって、前記シミュレートされた環境内の前記第2の車両のポーズは、前記第1の環境内の前記第1の車両のポーズから逸脱する、ことと、前記ログデータに少なくとも部分的に基づいて、前記シミュレートされた環境内の前記逸脱した第2の車両の前記ポジションに関連付けられた前記第1の環境内の前記第1の車両の位置を決定することと、前記シミュレートされた環境に、前記位置から前記第1の車両によって知覚された前記第1の環境内の第1のオブジェクトを表すシミュレートされたオブジェクトを生成することと、を含む操作を1つまたは複数のプロセッサに実行させる、コンピュータ実行可能命令を格納する1つまたは複数の非一時的コンピュータ可読媒体。
Q.前記操作は、前記第2の車両が前記シミュレートされた環境内のポジションを変更することを決定することと、前記第2の車両の前記変更されたポジションに関連付けられた第2の位置から前記第1の車両によって知覚された前記第1の環境内の第2のオブジェクトを表す別のシミュレートされたオブジェクトを含むように、前記シミュレートされた環境を更新することと、をさらに備える、段落Pに記載の1つまたは複数の非一時的コンピュータ可読媒体。
R.前記ログデータは、前記第1の環境で前記第1の車両が動作していた一定期間と関連付けられ、前記操作は、前記ログデータに少なくとも部分的に基づいて、前記第1の車両が前記位置に位置付けられていた前記一定期間中の第1の時間を決定することと、前記ログデータから、前記第1の時間に前記第1の車両によって知覚された前記第1の環境内の前記第1のオブジェクトを表すオブジェクトデータを取得すること、をさらに備える、段落Pまたは段落Qのいずれか1つに記載の1つまたは複数の非一時的コンピュータ可読媒体。
S.前記第1の車両の前記位置を決定することは、前記シミュレートされた環境内の前記第2の車両のポジションに最も一致する前記第1の環境内の前記第1の車両の前記位置を決定することを含む、段落Pから段落Rのいずれか1つに記載の1つまたは複数の非一時的コンピュータ可読媒体。
T.前記操作は、前記シミュレートされた環境の範囲内の、別のシミュレートされたオブジェクトが生成されるユーザ指定の位置を示す入力を受信することと、前記シミュレートされた環境に、前記ユーザ指定の位置で前記別のシミュレートされたオブジェクトを生成することと、をさらに備える、段落Pから段落Sのいずれか1つに記載の1つまたは複数の非一時的コンピュータ可読媒体。
U.一定期間中現実の車両が動作していた現実の環境を表す多様なログデータファイルを受信することであって、前記多様なログファイルデータは、前記現実の車両によって横断される経路に沿う種々の位置から前記現実の車両によって知覚された前記現実の環境内の種々のオブジェクトを、前記車両が前記経路を横断していた前記一定期間中の種々の時間のインスタンスにおいて表すことと、車両コントローラに前記多様なログデータファイルの第1のログデータファイルを提示して、前記車両コントローラをテストするためのシナリオをシミュレートすることであって、前記第1のログデータファイルは、第1の時間のインスタンスにおいて前記現実の車両が位置されていた前記経路に沿う第1の位置から前記現実の車両によって知覚された前記現実の環境内のオブジェクトを表す、ことと、前記車両コントローラによって、前記第1のログデータファイルに基づいて、シミュレートされた車両に前記現実の環境を表すシミュレートされた環境を横断させることと、前記車両コントローラが、前記シミュレートされた車両を、前記シミュレート環境内の第1のポジションから、前記シミュレートされた環境内の第2のポジションへ移動させることを決定することであって、前記第1のポジションは、前記第1の位置と一致する、ことと、前記第2のポジションが、前記車両によって横断される前記経路から逸脱することを決定することと、前記第2のポジションが前記経路から逸脱することを決定することに少なくとも部分的に基づいて、前記現実の車両が第2の時間のインスタンスにおいて位置されていた前記経路に沿う第2の位置を決定することであって、前記第2の位置は、前記第2のポジションと最も一致する、ことと、前記多様なログデータファイルの第2のログデータファイルを識別することであって、前記第2のログデータファイルは、前記現実の車両が前記第2の時間のインスタンスにおいて位置されていた前記経路に沿う前記第2の位置から前記現実の車両によって知覚された前記現実の環境内の前記オブジェクトを表す、ことと、前記第2のログデータファイルを、前記車両コントローラへ提示することと、を備える方法。
上述した例示的な条項は、1つの特定の実装に関して説明されているが、本明細書の文脈において、例示的な条項の内容は、方法、デバイス、システム、コンピュータ可読媒体、および/または別の実装を介して実装されることもできることが理解されるべきである。さらに、実施例A-Uのいずれかは、単独で、または他の例A-Uのいずれか1つまたは複数と組み合わせて実施され得る。
結論
本明細書で説明する技術の1つまたは複数の例について説明したが、様々な変更、追加、置換、およびそれらの同等物が、本明細書で説明する技術の範囲内に含まれる。
本明細書で説明する技術の1つまたは複数の例について説明したが、様々な変更、追加、置換、およびそれらの同等物が、本明細書で説明する技術の範囲内に含まれる。
例示の説明では、本明細書の一部を形成する添付の図面を参照するが、これは例示として請求される主題の具体的な例を示す。他の例を使用でき、構造的変更などの変更または代替を行うことができることを理解されたい。そのような例示、変更または代替は、意図して請求される主題に関する範囲から必ずしも逸脱するものではない。本明細書のステップは特定の順序で提示できるが、いくつかのケースでは、説明したシステムおよび方法の機能を変更することなく、特定の入力を異なる時間または異なる順序で提供するように、順序を変更できる。開示された手順はまた異なる順序で実行できる。加えて、本明細書における様々な計算は開示された順序で実行される必要はなく、計算の代替順序を使用する他の例を容易に実装できる。並べ替えに加えて、計算はまた同じ結果となるサブ計算に分解できる。
Claims (15)
- 1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行されると、
一定期間中現実の車両が動作していた現実の環境を表すログデータを受信することと、
前記ログデータを使用して、自律車両のコントローラをテストするためのシミュレートされたシナリオを生成することであって、前記シミュレートされたシナリオは、少なくとも前記現実の環境の一部を表すシミュレートされた環境を含む、ことと、
前記自律車両のコントローラによって、シミュレートされた自律車両に前記シミュレートされた環境を横断させることであって、前記シミュレートされた環境内の前記シミュレートされた自律車両の経路は、前記現実の環境内の前記現実の車両の経路から逸脱している、ことと、
前記シミュレートされた環境内の前記シミュレートされた自律車両のシミュレーション位置を決定することと、
前記ログデータに少なくとも部分的に基づいて、前記現実の環境内の前記現実の車両の現実の位置が、前記シミュレートされた環境内の前記逸脱したシミュレートされた自律車両の前記シミュレートされた位置と最も一致した前記一定期間中の第1の時間を決定することと、
前記ログデータから、前記第1の時間に前記現実の車両によって知覚された前記現実の環境内の現実のオブジェクトを表すオブジェクトデータを取得することと、
前記シミュレートされた環境に、前記現実のオブジェクトを表すシミュレートされたオブジェクトを生成することと、
を含む操作をシステムに実行させる命令を格納する1つまたは複数の非一時的コンピュータ可読媒体と、
を備えるシステム。 - 前記シミュレートされた位置は、第1のシミュレートされた位置を含み、前記現実の位置は、第1の現実の位置を含み、前記操作は、
前記シミュレートされた環境内の前記シミュレートされた自律車両の第2のシミュレートされた位置を決定することであって、前記第2のシミュレートされた位置は、前記第1のシミュレートされた位置とは異なる、ことと、
前記ログデータに少なくとも部分的に基づいて、前記現実の環境内の前記現実の車両の第2の現実の位置が、前記シミュレートされた環境内の前記逸脱したシミュレートされた自律車両の前記第2のシミュレートされた位置と最も一致した前記一定期間中の第2の時間を決定すること、および、
前記第2の時間に前記現実の車両によって知覚された前記現実の環境内の前記現実のオブジェクトに一致する前記シミュレートされたオブジェクトを更新すること、または、
前記シミュレートされた環境に、前記第2の時間に前記現実の車両によって知覚された前記現実の環境内の第2の現実のオブジェクトを表す第2のシミュレートされたオブジェクトを生成すること、のうちの少なくとも1つ、
をさらに含む請求項1に記載のシステム。 - 前記シミュレートされたオブジェクトは、第1のシミュレートされたオブジェクトを含み、前記操作は、前記シミュレートされた環境に、前記シミュレートされた自律車両の前記シミュレートされた位置または前記第1の時間のうちの少なくとも1つに少なくとも部分的に基づいて、前記第1の時間の後の第2の時間に前記現実の車両によって知覚された前記現実の環境内の第2の現実のオブジェクトを表す第2のシミュレートされたオブジェクトを生成することを回避することをさらに含む、請求項1または請求項2に記載のシステム。
- 前記操作は、
前記現実のオブジェクトを表す前記オブジェクトデータが、静的オブジェクトまたは動的オブジェクトに関連付けられるかどうかを決定することをさらに含み、
前記現実のオブジェクトを表す前記シミュレートされたオブジェクトを生成することは、前記オブジェクトデータが静的オブジェクトに関連付けられることを決定することに少なくとも部分的に基づく、
請求項1から請求項3のいずれか1項に記載のシステム。 - 前記シミュレートされた環境内の前記シミュレートされた自律車両のシミュレートされたポーズは、前記現実の環境内の前記現実の車両の現実のポーズから逸脱する、
請求項1から請求項4のいずれか1項に記載のシステム。 - 第1の車両が動作していた第1の環境を表すログデータを受信することと、
前記ログデータを使用して、車両コントローラをテストするためのシミュレートされた環境を生成することであって、前記シミュレートされた環境は、現実の第1の環境を表す、ことと、
前記シミュレートされた環境を横断するときの第2の車両のポジションを決定し、前記第2の車両は、前記車両コントローラによって制御される、ことであって、前記シミュレートされた環境内の前記第2の車両の経路は、前記第1の環境内の前記第1の車両の経路から逸脱する、ことと、
前記ログデータに少なくとも部分的に基づいて、前記シミュレートされた環境内の前記逸脱した第2の車両の前記ポジションに関連付けられた前記第1の環境内の前記第1の車両の位置を決定することと、
前記シミュレートされた環境に、前記位置から前記第1の車両によって知覚された前記第1の環境内の第1のオブジェクトを表すシミュレートされたオブジェクトを生成することと、
を備える方法。 - 前記第2の車両が前記シミュレートされた環境内のポジションを変更することを決定することと、
前記第2の車両の前記変更されたポジションに関連付けられた第2の位置から前記第1の車両によって知覚された前記第1の環境内の第2のオブジェクトを表す別のシミュレートされたオブジェクトを含むように、前記シミュレートされた環境を更新することと、
をさらに備える請求項6に記載の方法。 - 前記ログデータは、前記第1の環境で前記第1の車両が動作していた一定期間と関連付けられ、前記方法は、
前記ログデータに少なくとも部分的に基づいて、前記第1の車両が前記位置に位置付けられていた前記一定期間中の第1の時間を決定することと、
前記ログデータから、前記第1の時間に前記第1の車両によって知覚された前記第1の環境内の前記第1のオブジェクトを表すオブジェクトデータを取得することであって、前記シミュレートされたオブジェクトは、前記オブジェクトデータに少なくとも部分的に基づいて生成される、ことと、
をさらに備える請求項6または請求項7に記載の方法。 - 前記第1の車両の前記位置を決定することは、前記シミュレートされた環境内の前記第2の車両のポジションに最も一致する前記第1の環境内の前記第1の車両の前記位置を決定することを含む、請求項6に記載の方法。
- 前記シミュレートされた環境を含むようにシミュレーション命令を更新することと、
前記車両コントローラへ前記シミュレーション命令を入力して、前記車両コントローラが、前記シミュレートされた環境を前記第2の車両が横断するように制御することと、
をさらに備える請求項6から請求項9のいずれか1項に記載の方法。 - 前記ログデータは、シミュレートされたセンサデータまたは前記第1の車両のセンサによって捕捉された実際のセンサデータのいずれかを含む、
請求項6から請求項10のいずれか1項に記載の方法。 - 前記車両コントローラによって、前記シミュレートされたオブジェクトを知覚することに少なくとも部分的に基づいて、前記第2の車両を制御すること、
をさらに備える請求項6から請求項11のいずれか1項に記載の方法。 - 前記シミュレートされた環境の範囲内の、別のシミュレートされたオブジェクトが含まれるユーザ指定の位置を示す入力を受信することと、
前記シミュレートされた環境に、前記ユーザ指定の位置で前記別のシミュレートされたオブジェクトを生成することと、
をさらに備える請求項6から請求項12のいずれか1項に記載の方法。 - 前記ログデータは、複数の一定期間中前記第1の車両または第3の車両が動作していた前記第1の環境を表す多様なログデータのインスタンスを含み、前記第2の車両のポジションを決定することは、前記多様なログデータのインスタンスに少なくとも部分的に基づく、
請求項6、請求項8、請求項11のいずれか1項に記載の方法。 - プロセッサによって実行されると、請求項6から請求項14のいずれか1項に記載の方法を前記プロセッサに実行させる命令を格納する1つまたは複数の非一時的コンピュータ可読媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/193,826 | 2021-03-05 | ||
US17/193,826 US20220283055A1 (en) | 2021-03-05 | 2021-03-05 | Instantiating objects in a simulated environment based on log data |
PCT/US2022/016738 WO2022186990A1 (en) | 2021-03-05 | 2022-02-17 | Instantiating objects in a simulated environment based on log data |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2024513666A true JP2024513666A (ja) | 2024-03-27 |
Family
ID=83116072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2023553528A Pending JP2024513666A (ja) | 2021-03-05 | 2022-02-17 | ログデータに基づいたシミュレートされた環境でのオブジェクトのインスタンス化 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220283055A1 (ja) |
EP (1) | EP4302165A1 (ja) |
JP (1) | JP2024513666A (ja) |
CN (1) | CN116917828A (ja) |
WO (1) | WO2022186990A1 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11858514B2 (en) | 2021-03-30 | 2024-01-02 | Zoox, Inc. | Top-down scene discrimination |
US11810225B2 (en) * | 2021-03-30 | 2023-11-07 | Zoox, Inc. | Top-down scene generation |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2377658C1 (ru) * | 2008-11-14 | 2009-12-27 | Андрей Валентинович Сабайдаш | Способ определения оптимального маршрута движения транспортного средства |
US9361650B2 (en) * | 2013-10-18 | 2016-06-07 | State Farm Mutual Automobile Insurance Company | Synchronization of vehicle sensor information |
US9836895B1 (en) * | 2015-06-19 | 2017-12-05 | Waymo Llc | Simulating virtual objects |
US10831202B1 (en) * | 2017-09-01 | 2020-11-10 | Zoox, Inc. | Onboard use of scenario description language |
-
2021
- 2021-03-05 US US17/193,826 patent/US20220283055A1/en active Pending
-
2022
- 2022-02-17 WO PCT/US2022/016738 patent/WO2022186990A1/en active Application Filing
- 2022-02-17 JP JP2023553528A patent/JP2024513666A/ja active Pending
- 2022-02-17 CN CN202280018815.5A patent/CN116917828A/zh active Pending
- 2022-02-17 EP EP22763755.0A patent/EP4302165A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
CN116917828A (zh) | 2023-10-20 |
EP4302165A1 (en) | 2024-01-10 |
WO2022186990A1 (en) | 2022-09-09 |
US20220283055A1 (en) | 2022-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11150660B1 (en) | Scenario editor and simulator | |
US11574089B2 (en) | Synthetic scenario generator based on attributes | |
US11568100B2 (en) | Synthetic scenario simulator based on events | |
JP2021524410A (ja) | ドライブエンベロープの決定 | |
US11415997B1 (en) | Autonomous driving simulations based on virtual simulation log data | |
US10832439B1 (en) | Locating entities in a mapped environment | |
US11628850B2 (en) | System for generating generalized simulation scenarios | |
US11496707B1 (en) | Fleet dashcam system for event-based scenario generation | |
US20230150549A1 (en) | Hybrid log simulated driving | |
EP3825958B1 (en) | A new way to generate tight 2d bounding boxes for autonomous driving labeling | |
JP2024513666A (ja) | ログデータに基づいたシミュレートされた環境でのオブジェクトのインスタンス化 | |
US20220269836A1 (en) | Agent conversions in driving simulations | |
WO2020264276A1 (en) | Synthetic scenario generator based on attributes | |
US20230008285A1 (en) | Vehicle control using directed graphs | |
US20230419830A1 (en) | Determining right of way | |
US20220266859A1 (en) | Simulated agents based on driving log data | |
US11814070B1 (en) | Simulated driving error models | |
WO2023076343A1 (en) | Autonomous vehicle trajectory determination based on state transition model | |
US11932242B1 (en) | Fleet dashcam system for autonomous vehicle operation | |
CN115443233A (zh) | 针对协作车辆引导的遥操作 | |
US11808582B1 (en) | System processing scenario objects during simulation | |
US12026956B1 (en) | Object bounding contours based on image data | |
US12030528B2 (en) | Vehicle perception system with temporal tracker | |
US11710296B2 (en) | End-to-end vehicle perception system training | |
US20240208546A1 (en) | Predictive models for autonomous vehicles based on object interactions |