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

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

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

<>
  • 特表-知覚誤差モデル 図1
  • 特表-知覚誤差モデル 図2
  • 特表-知覚誤差モデル 図3
  • 特表-知覚誤差モデル 図4
  • 特表-知覚誤差モデル 図5
  • 特表-知覚誤差モデル 図6
  • 特表-知覚誤差モデル 図7
  • 特表-知覚誤差モデル 図8
  • 特表-知覚誤差モデル 図9
  • 特表-知覚誤差モデル 図10
  • 特表-知覚誤差モデル 図11
  • 特表-知覚誤差モデル 図12
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-02-03
(54)【発明の名称】知覚誤差モデル
(51)【国際特許分類】
   G08G 1/16 20060101AFI20230127BHJP
   B60W 60/00 20200101ALI20230127BHJP
【FI】
G08G1/16 A
B60W60/00
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022533057
(86)(22)【出願日】2020-11-30
(85)【翻訳文提出日】2022-06-02
(86)【国際出願番号】 US2020062602
(87)【国際公開番号】W WO2021118822
(87)【国際公開日】2021-06-17
(31)【優先権主張番号】16/708,019
(32)【優先日】2019-12-09
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.BLUETOOTH
(71)【出願人】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】サイ アヌラーグ モダラバラサ
(72)【発明者】
【氏名】ヘリット バグシック
(72)【発明者】
【氏名】アンドリュー スコット クレゴ
(72)【発明者】
【氏名】アントワーヌ ジスラン ドゥ
(72)【発明者】
【氏名】ロディン リアソフ
(72)【発明者】
【氏名】ジェームズ ウィリアム ベイジー フィルビン
(72)【発明者】
【氏名】アシュトシュ ガジャーネン レゲ
(72)【発明者】
【氏名】アンドレアス クリスチャン レシュカ
(72)【発明者】
【氏名】マーク ウィマーショフ
【テーマコード(参考)】
3D241
5H181
【Fターム(参考)】
3D241CE05
3D241DC33Z
5H181AA01
5H181AA05
5H181AA21
5H181AA27
5H181CC02
5H181CC03
5H181CC04
5H181CC11
5H181CC12
5H181CC14
5H181FF10
5H181LL09
(57)【要約】
車両データ及びグラウンドトゥルースデータに基づいて誤差モデルを決定する技術が記載されている。(検査できない場合がある)複雑なシステムが安全に運用できるかどうかを判断するために、様々な運用体制(シナリオ)が動作データに基づいて識別され得る。そのようなシステムの安全な動作を提供するために、知覚データに関連付けられる確率を提供することが出来る誤差モデルが決定されることが可能であり、車両は、知覚データに関連付けられる誤差の確率に基づいて軌道を決定することができる。
【特許請求の範囲】
【請求項1】
車両データを車両から受信することであって、前記車両データはオブジェクトの状態に関連付けられる、ことと、
前記車両データに少なくとも部分的に基づいて、前記オブジェクトに関連付けられるグラウンドトゥルースデータを受信することと、
前記車両データ及び前記グラウンドトゥルースデータに少なくとも部分的に基づいて、誤差を決定することと、
前記車両データに少なくとも部分的に基づいて、パラメータを決定することと、
複数のクラスタとして、及び前記パラメータ並びに前記誤差に少なくとも部分的に基づいて、前記車両データの一部をクラスタ化することと、
前記複数のクラスタのうちのクラスタに関連付けられる前記車両データの一部に少なくとも部分的に基づいて、誤差モデルを決定することと
を備える方法。
【請求項2】
前記車両データは、前記車両に関連付けられるセンサからのセンサデータに少なくとも部分的に基づく、請求項1に記載の方法。
【請求項3】
前記パラメータは、気象条件、第1の時刻、第2の時期、前記オブジェクトまでの距離、前記オブジェクトの分類、前記オブジェクトのサイズ、前記オブジェクトの速度、前記オブジェクトの位置、または前記オブジェクトの方向のうちの少なくとも1つに関連付けられる、請求項1または請求項2に記載の方法。
【請求項4】
前記誤差は第1の誤差であり、前記方法は、
知覚データを受信することと、
前記知覚データ及び前記誤差モデルに少なくとも部分的に基づいて、前記知覚データに関連付けられる第2の誤差を決定することと、
前記知覚データ及び前記第2の誤差に少なくとも部分的に基づいて、前記車両を制御することと
をさらに備える、請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
前記オブジェクトの状態は、前記オブジェクトのサイズ、前記オブジェクトの場所、前記オブジェクトの方向、前記オブジェクトの速度、または前記オブジェクトの位置のうちの少なくとも1つを備える、請求項1乃至4のいずれか一項に記載の方法。
【請求項6】
前記誤差モデルは誤差分布を備え、前記方法は、
前記車両データ及び前記グラウンドトゥルースデータに少なくとも部分的に基づいて、前記誤差に関連付けられる発生頻度を決定することと、
前記発生頻度に少なくとも部分的に基づいて、前記誤差分布を決定することと
をさらに備える、請求項1乃至5のいずれか一項に記載の方法。
【請求項7】
前記オブジェクトの分類を識別する分類データを決定することと、
前記オブジェクトのオブジェクトパラメータを識別するオブジェクトデータを決定することと、
前記複数のクラスタのうちの第1のクラスタまたは前記複数のクラスタのうちの第2のクラスタの少なくとも1つに関連付けられる誤差分布を決定することであって、前記第1のクラスタは前記オブジェクトの分類に関連付けられ、前記第2のクラスタは前記オブジェクトのオブジェクトパラメータに関連付けられる、ことと
をさらに備え、
前記誤差モデルは、真陽性誤差または偽陽性誤差の少なくとも1つに関連付けられる前記誤差分布を備える、請求項1乃至6のいずれか一項に記載の方法。
【請求項8】
シミュレート環境におけるシミュレートされた車両コントローラに関連付けられるシミュレーションデータを受信することと、
前記誤差モデル及び前記シミュレーションデータに少なくとも部分的に基づいて、摂動を与えられたシミュレーションデータを決定することと、
前記摂動を与えられたシミュレーションデータを前記シミュレート環境における前記シミュレートされた車両コントローラに送信することと、
前記摂動を与えられたシミュレーションデータに少なくとも部分的に基づいて、前記シミュレートされた車両コントローラが前記摂動を与えられたシミュレーションデータに対してどのように応答するかを示す応答を決定することと
をさらに備える、請求項1乃至7のいずれか一項に記載の方法。
【請求項9】
前記誤差は第1の誤差であり、
シミュレーションデータは、シミュレート環境において表されるシミュレートされたオブジェクトに関連付けられる分類を備え、
摂動を与えられたシミュレーションデータは、前記オブジェクトの位置、前記オブジェクトの方向、前記オブジェクトの範囲、または前記オブジェクトの速度のうちの少なくとも1つに関連付けられる第2の誤差を示す、
請求項1乃至8のいずれか一項に記載の方法。
【請求項10】
第1の時間にて、偽陰性誤差に関連付けられる第1の誤差分布を決定することと、
前記第1の時間の後の第2の時間にて、真陽性誤差に関連付けられる第2の誤差分布を決定することと、
前記第2の時間の後の第3の時間にて、偽陽性誤差に関連付けられる第3の誤差分布を決定することと
をさらに備え、
前記誤差モデルは、前記第1の誤差分布、前記第2の誤差分布、及び前記第3の誤差分布を備える、請求項1乃至9のいずれか一項に記載の方法。
【請求項11】
前記車両データを前記誤差モデルに適合させることに関連づけられるコストを決定することと、
前記コストに少なくとも部分的に基づいて、前記誤差モデルを決定することと
をさらに備える、請求項1乃至10のいずれか一項に記載の方法。
【請求項12】
コンピュータ上で実行されると、請求項1乃至11のいずれか一項に記載の方法をコンピュータに実行させる符号化命令を備えたコンピュータプログラム製品。
【請求項13】
1つまたは複数のプロセッサと、
前記1つまたは複数のプロセッサによって実行可能な命令を格納する1つまたは複数の非一時的コンピュータ可読媒体と
を備えたシステムであって、前記命令は、実行されると、
車両データを車両から受信することであって、前記車両データはオブジェクトの状態に関連付けられる、ことと、
前記オブジェクトに関連付けられるグラウンドトゥルースデータを受信することと、
前記車両データ及び前記グラウンドトゥルースデータに少なくとも部分的に基づいて、誤差を決定することと、
前記車両データに少なくとも部分的に基づいて、パラメータを決定することと、
複数のクラスタとして、及び前記パラメータに少なくとも部分的に基づいて、前記車両データの一部をクラスタ化することと、
前記複数のクラスタのうちのクラスタに関連付けられる前記車両データの一部に少なくとも部分的に基づいて、誤差モデルを決定することと
を含む動作を前記システムに実行させる、システム。
【請求項14】
前記誤差モデルは誤差分布を備え、前記動作は、
前記車両データ及び前記グラウンドトゥルースデータに少なくとも部分的に基づいて、前記誤差に関連付けられる発生頻度を決定することと、
前記発生頻度に少なくとも部分的に基づいて、前記誤差分布を決定することと
をさらに備える、請求項13に記載のシステム。
【請求項15】
前記動作は、
前記オブジェクトの分類を識別する分類データを決定することと、
前記オブジェクトのオブジェクトパラメータを識別するオブジェクトデータを決定することと、
前記複数のクラスタのうちの第1のクラスタまたは前記複数のクラスタのうちの第2のクラスタの少なくとも1つに関連付けられる誤差分布を決定することであって、前記第1のクラスタは前記オブジェクトの分類に関連付けられ、前記第2のクラスタは前記オブジェクトのオブジェクトパラメータに関連付けられる、ことと
をさらに備え、
前記誤差モデルは、真陽性誤差または偽陽性誤差の少なくとも1つに関連付けられる前記誤差分布を備える、請求項13または請求項14に記載のシステム。
【発明の詳細な説明】
【技術分野】
【0001】
本特許出願は、2019年12月9日に出願された第16/708,019号の米国実用新案特許出願の優先権を主張する。出願番号第16/708,019号は、参照により本明細書に完全に組み込まれている。
【背景技術】
【0002】
自律車両は、自律車両コントローラを使用して、環境を通して自律車両を誘導することができる。例えば、自律車両コントローラは、プランニング方法、装置、及びシステムを使用して、駆動経路を決定し、動的オブジェクト(例えば、車両、歩行者、動物等)及び静的オブジェクト(例えば、建物、標識、停滞車両等)を含む環境を通して自律車両を誘導することができる。しかしながら、乗員の安全を確保するためには、コントローラの安全性を検証することが重要である。
【図面の簡単な説明】
【0003】
詳細な説明は、添付の図面を参照して説明される。図面において、参照番号の左端の数字は、その参照番号が最初に出現する図面を識別する。異なる図面における同一の参照番号の使用は、類似または同一の構成要素または特徴を示す。
図1図1は、パラメータ化されたシナリオに基づいて、車両コントローラに関連付けられた車両性能データを生成することを示す。
図2図2は、車両によって生成されたログデータに少なくとも部分的に基づいてシナリオデータを生成するコンピューティングデバイスを示し、シナリオデータは、シナリオの1つまたは複数の変形例を描写する。
図3図3は、車両データ及びグラウンドトゥルースデータに少なくとも部分的に基づいて誤差モデルデータを生成することを示す。
図4図4は、シミュレート環境に関連付けられた誤差または不確実性のうちの少なくとも1つを提供することによって、誤差モデルデータを使用してシミュレーションに摂動を与えることを示す。
図5図5は、車両及びグラウンドトゥルースデータによって生成されたログデータに少なくとも部分的に基づいて、知覚誤差モデルデータを生成するコンピューティングデバイスを示す。
図6図6は、パラメータ化されたシナリオデータに少なくとも部分的に基づいてシミュレーションデータを生成し、シミュレーションデータに少なくとも部分的に基づいて安全性メトリックデータを生成するコンピューティングデバイスを示す。
図7図7は、本明細書において説明される技法を実装するための例示的なシステムのブロック図を描く図である。
図8図8は、本開示の例による、車両コントローラに関連付けられた安全性メトリックを決定するための例示的なプロセスのフロー図を示す。
図9図9は、自律車両のサブシステムに関連付けられた統計モデルを決定するための例示的なプロセスのフロー図を示す。
図10図10は、誤差確率に関連付けられた環境の複数の領域を示す。
図11図11は、車両データ及び車両データによって表される環境、並びに車両データと環境との間の差異を示す。
図12図12は、誤差モデルを決定し、摂動されたシミュレーションデータを決定するための例示的なプロセスのフロー図を示す。
【発明を実施するための形態】
【0004】
本明細書に記載される技術は、システムのパフォーマンスメトリクスを決定する様々な態様を対象とする。本明細書で説明される少なくともいくつかの例では、そのようなパフォーマンスメトリクスは、例えば、他のパフォーマンスメトリクス判定と併せてシミュレーションを使用して判定され得る。シミュレーションを使用して、車両(例えば、自律車両)上で実行されるソフトウェア(例えば、車両コントローラ)を検証し、安全メトリクスを収集して、ソフトウェアが様々なシナリオでそのような車両を安全に制御できることを確実にすることができる。追加または代替の例では、シミュレーションを使用して、自律コントローラを使用する自律車両の制約について学習することができる。例えば、シミュレーションを使用して、表面条件、周囲の騒音、故障した構成要素などを考慮して、自律車両の動作空間(例えば、自律コントローラが自律車両を効果的に制御するエンベロープ)を理解することができる。シミュレーションはまた、自律車両の動作及び設計を改善するためのフィードバックを生成するのに有用であり得る。例えば、いくつかの例では、シミュレーションは、自律コントローラにおいて必要とされる冗長性の量、またはシミュレーションを通じて学習されることに基づいて自律コントローラの挙動を修正する方法を決定するために有用であり得る。さらに、追加または代替の例では、シミュレーションは、自律車両上のセンサの配置を最適化するなど、自律車両のハードウェア設計を知らせるのに有用であり得る。
【0005】
テストや検証を行うためのシミュレーション環境を生成する場合、様々な具体例で環境を具体的に列挙することが可能である。そのような環境の各インスタンス化は、一意であり、定義することができる。全ての可能性のあるシナリオを手動で列挙すると、過剰な時間が必要になる可能性があり、全ての可能性のあるシナリオが構築されていない場合、様々なシナリオがテストされない可能性がある。シナリオパラメータを使用して、シナリオ内のオブジェクトの特性及び/または属性をパラメータ化し、シナリオの変形を提供することができる。
【0006】
例えば、1つまたは複数の車両は、環境を横断し、環境に関連付けられたログデータを生成することができる。ログデータは、車両の1つ以上のセンサによってキャプチャされるセンサデータ、車両に搭載される1つ以上のシステムによって識別される(または後処理段階中に生成される)オブジェクトを示す知覚データ、オブジェクトの意図を示す(記録中に生成されるか、またはその後に生成されるかにかかわらず)予測データ、及び/または車両によって生成される診断情報、軌道情報、及び他の情報を示すステータスデータを含むことができる。車両は、ログデータを格納するデータベース及び/またはログデータを分析するコンピューティングデバイスに、ネットワークを介してログデータを送信することができる。
【0007】
コンピューティングデバイスは、ログデータに基づいて、様々なシナリオ、様々なシナリオの頻度、及び様々なシナリオに関連付けられた環境の領域を決定することができる。いくつかの例では、コンピューティングデバイスは、ログデータに表される類似のシナリオをグループ化することができる。例えば、シナリオは、例えば、環境のパラメータ(例えば、昼間時間、夜間時間、降水、車両位置/速度、オブジェクト位置/速度、道路セグメントなど)間の重み付けされた距離(例えば、ユークリッド)をK平均法クラスタリング及び/または評価することを使用して、一緒にグループ化することができる。上述したように、類似または同種のシナリオをクラスタリングすることは、冗長なシミュレーションデータ/結果をもたらすほぼ類似のシナリオで自律車両をシミュレートするのではなく、独自のシナリオで自律コントローラをシミュレートすることによって、環境内の自律コントローラをシミュレートするために必要な計算リソースの量を削減することができる。理解することができるように、自律コントローラは、同様のシナリオにおいて同様に実行することが期待され得る(及び/または明らかに実行され得る)。
【0008】
例えば、コンピューティングデバイスは、ログデータに表される歩行者の数に基づいて、横断歩道に歩行者が現れる割合を決定することができる。いくつかの例では、コンピューティングデバイスは、割合及び自律車両を操作する期間に基づいて、横断歩道で歩行者を検出する確率を判定することができる。ログデータに基づいて、コンピューティングデバイスは、シナリオを決定し、シミュレーションで使用され得るシナリオに基づいてシナリオパラメータを識別することができる。
【0009】
場合によっては、車両の欠陥のある(及び/または不良がある)センサ及び/またはセンサデータの欠陥のある(及び/または不良がある)処理に対する自律車両コントローラの応答をテストし、検証するためにシミュレーションを使用できる。そのような例では、コンピューティングデバイスは、オブジェクトのシナリオパラメータに不整合性を導入するように構成され得る。例えば、誤差モデル(error model)は、シナリオパラメータに関連付けられた誤差(error)及び/または誤差パーセンテージを示すことができる。シナリオは、誤差及び/または誤差パーセンテージをシミュレートシナリオに組み込むことができ、自律車両コントローラの応答をシミュレーションすることができる。そのような誤差は、限定されないが、グラウンドトゥルースデータ、関数(例えば、入力パラメータに基づく誤差)、またはパラメータを特定の誤差にマッピングする任意の他のモデルを使用して統計的集計に基づいて決定されたルックアップテーブルによって表され得る。少なくともいくつかの例では、そのような誤差モデルは、発生の確率/頻度を伴う特定の誤差をマッピングし得る。
【0010】
例として、限定されないが、誤差モデルは、シミュレーション環境内のオブジェクトに関連付けられた速度などのシナリオパラメータが誤差パーセンテージに関連付けられていることを示すことができる。例えば、オブジェクトは、10メートル毎秒の速度でシミュレートシナリオ内を移動することができ、誤差パーセンテージは、8メートル毎秒~12メートル毎秒の間の速度範囲をもたらす20%であることができる。いくつかの例では、速度の範囲は、範囲の一部が範囲の他の部分よりも高い確率で発生することを示す確率分布に関連付けられ得る(例えば、15%の確率に関連付けられる8メートル毎秒及び12メートル毎秒、30%の確率に関連付けられる9メートル毎秒及び11メートル毎秒、及び10%の確率に関連付けられる10メートル毎秒)。
【0011】
誤差モデル及び/またはシナリオに基づいて、パラメータ化シナリオを生成することができる。パラメータ化シナリオは、シナリオのバリエーションのセットを提供することができる。従って、パラメータ化シナリオで自律車両コントローラをインスタンス化し、パラメータ化シナリオをシミュレートすることは、バリエーションの手動列挙を必要とせずに、シナリオの幅広いバリエーションを効率的にカバーすることができる。加えて、パラメータ化シナリオを実行することに少なくとも部分的に基づいて、シミュレーションデータは、自律車両コントローラがパラメータ化シナリオにどのように応答した(または応答することになる)かを示し、シミュレーションデータに少なくとも部分的に基づいて成功した結果または失敗した結果を決定することができる。
【0012】
パラメータ化シナリオに関連するシミュレーションデータを集約することは、パラメータ化シナリオに関連付けられた安全性メトリクスを提供することができる。例えば、シミュレーションデータは、自律車両コントローラ及びパラメータ化シナリオの成功率及び/または失敗率を示すことができる。いくつかの例では、成功率を満たすか、またはそれを超えることは、自律車両コントローラの検証に成功したことを示すことができ、これは、その後、さらなる車両制御及び動作のために車両によってダウンロードされる(またはそうでなければ車両に転送される)ことができる。
【0013】
例えば、パラメータ化シナリオは、結果に関連付けることができる。シミュレーションデータは、自律車両コントローラが結果に一貫してまたは一貫せずに応答したことを示すことができる。例として、限定されないが、パラメータ化シナリオは、自律車両コントローラによって制御される車両がある速度で走行し、車両の前方にあるオブジェクトの前で停止アクションを実行することを含むシミュレーション環境を表すことができる。その速度は、車両の速度の範囲を示すシナリオパラメータに関連付けられ得る。パラメータ化シナリオは、速度の範囲に少なくとも部分的に基づいてシミュレートされることができ、車両が停止アクションを完了したときに車両とオブジェクトとの間の距離を示すシミュレーションデータを生成することができる。パラメータ化シナリオは、車両とオブジェクトとの間の距離が距離閾値を満たすか、または超えることを示す結果に関連付けられ得る。シミュレーションデータ及びシナリオパラメータに基づいて、成功率は、車両が停止アクションを完了した合計回数と比較して、車両が停止アクションを完了したときの車両とオブジェクトとの間の距離が距離閾値を満たすか、または超える回数を示すことができる。
【0014】
本明細書で説明される技術は、様々な計算効率を提供する。例えば、本明細書に記載の技術を使用することによって、コンピューティングデバイスは、より少ない計算リソースを必要とし、複数のシミュレートシナリオは、従来の技術を介して利用可能なものよりも速く生成され得る。従来の技術は、スケーラブルではない。例えば、自律車両に搭載されたシステム(例えば、AIスタックの1つ以上のコンポーネント)のトレーニング、テスト、及び/または検証(例えば、そのような自律車両が対応する新しい実際の環境に配備される前に)に必要とされる数の、固有のシミュレート環境のセットを生成することは、非常に長い時間がかかる可能性があり、これにより、実際のシナリオ及び/または環境に進入する前に、自律車両に搭載されたそのようなシステム(例えば、AIスタックの1つ以上のコンポーネント)をトレーニングし、テストし、及び/または検証する機能が制限される。本明細書で説明される技術は、実際の環境から収集されるセンサデータを活用して、そのデータを追加のデータで補完し、従来の技術で利用できるものよりも実質的に正確なシミュレート環境を効率的に生成する(例えば、対応する実際の環境に対して)という点で従来の技術とは異なる。さらに、本明細書でシナリオの様々な態様として説明される技術は、従来の技術で利用可能なものよりも少ない時間及び少ない計算リソースで多くのスケーラブルなシミュレートシナリオの生成を可能にする。
【0015】
さらに、本明細書で説明される技術は、安全性の向上を対象としている。つまり、本明細書で説明される生成技術から生じるシミュレート環境は、自律走行車に搭載されたテストシステム、訓練システム、及び認証システムに用いられることが可能であり、このようなシステムは、実際の環境内で配置された場合に、自律車両を安全に操作できることを保証することが可能である。つまり、本明細書で説明される生成技術から生じるシミュレート環境は、自律車両コントローラのプランナシステム及び/または予測システムをテストし、訓練し、及び認証することに用いられることが可能であり、これは、実際の環境内で軌道に沿って自律車両をナビゲーションするために自律車両によって用いられてよい。したがって、本明細書で説明される技術によって可能となるこのような訓練、テスト、及び認証は、自律車両が現実世界の環境内で安全に動作できることを保証する機会を提供することができる。そして、本明細書で説明される技術は、安全性を向上させ、ナビゲーションに影響を与える。
【0016】
図1は、パラメータ化シナリオに基づいて、車両コントローラに関連付けられる車両性能データを生成する例100を示す。シナリオを生成するために、入力データ102を使用することができる。入力データ102は、車両データ104及び/または追加の状況データ106を含むことができる。車両データ104は、環境を走行する車両によってキャプチャされるログデータを含むことができる。上述したように、ログデータは、自律コントローラをシミュレートするためのシナリオを識別するために使用され得る。例示の目的で、車両は、米国運輸省道路交通安全局によって発行されたレベル5分類に従って動作するように構成される自律車両であってよく、これは、全ての安全上重要な機能を全行程で実行することが可能な車両を記述したものであり、運転者(または乗員)はどんなときでも車両を制御することを期待されていない。このような例では、車両は全ての駐車機能を含む開始から停止までの全ての機能を制御するように構成されることが可能であるため、無人化することが可能である。これは、例に過ぎず、本明細書において説明されるシステム及び方法は、運転者によって常時、手動で制御される必要がある車両から、部分的にまたは完全に自律的に制御される車両までに及ぶ車両を含め、任意の地上車両、空路車両、または水路車両に組み込まれることが可能である。
【0017】
車両は、知覚エンジン及び/またはプランナを含むコンピューティングデバイスを含むことができ、環境から収集されたセンサーデータからオブジェクトを検出、識別、セグメンテーション、分類、及び/または追跡するなどの動作を実行することができる。例えば、歩行者、自転車/自転車運転者、オートバイ/オートバイ運転者、バス、路面電車、トラック、動物等のオブジェクトは、環境内に存在することができる。
【0018】
車両が環境を通ってトラバースするとき、センサは、環境に関連付けられるセンサデータをキャプチャすることができる。例えば、センサデータのいくつかは、オブジェクト(例えば、車両、自転車運転者及び/または歩行者)に関連付けられることが可能である。いくつかの例では、センサデータは、これらに限定されないが、建物、路面、標識、障壁などを含む他のオブジェクトに関連付けられることが可能である。従って、いくつかの例では、センサデータは、動的オブジェクト及び/または静的オブジェクトに関連付けられ得る。動的オブジェクトは、上述のように、環境内での動き(例えば、車両、オートバイ、自転車運転者、歩行者、動物など)に関連付けられているか、または環境内での動き(例えば、駐車された車両、立っている歩行者など)を可能にするオブジェクトであり得る。静的オブジェクトは、上述のように、例えば、建物/構造物、道路表面、道路マーカー、標識、障壁、木、歩道などの環境に関連付けられたオブジェクトであり得る。いくつかの例では、車両コンピューティングデバイスは、バウンディングボックス、分類、セグメンテーション情報などの環境内のオブジェクトに関する情報を決定することができる。
【0019】
車両コンピューティングデバイスは、センサデータを使用して車両の軌道を生成できる。いくつかの例では、車両コンピューティングデバイスはまた、車両の位置に関連付けられるポーズデータを決定することができる。例えば、車両コンピューティングデバイスは、センサデータを使用して、環境内の車両の位置データ、座標データ、及び/または方向データを決定することができる。いくつかの例では、ポーズデータは、x-y-z座標を含むことができ、及び/または車両に関連付けられたピッチ、ロール、及びヨーデータを含むことができる。
【0020】
車両コンピューティングデバイスは、上述のデータを含むことができる車両データ104を生成することができる。例えば、車両データ104は、センサデータ、知覚データ、プランニングデータ、車両状態データ、速度データ、意図データ、及び/または車両コンピューティングデバイスによって生成された他のデータを含むことができる。いくつかの例では、センサデータは、飛行時間センサ、位置センサ(例えば、GPS、コンパスなど)、慣性センサ(例えば、慣性測定ユニット(IMU)、加速度計、磁力計、ジャイロスコープなど)、ライダーセンサ、レーダーセンサ、ソナーセンサ、赤外線センサ、カメラ(例えば、RGB、IR、強度、深度など)、マイクセンサ、環境センサ(例えば、温度センサ、湿度センサ、光センサ、圧力センサなど)、超音波トランスデューサー、ホイールエンコーダなどのセンサによってキャプチャされたデータを含むことができる。センサデータは、そのようなセンサによってキャプチャされるデータ、例えば、飛行時間データ、位置データ、ライダーデータ、レーダーデータ、ソナーデータ、画像データ、オーディオデータなどであってよい。そのようなログデータは、これらに限定されないが、オブジェクト検出を示すメッセージ、オブジェクトトラック、将来のオブジェクトの位置の予測、そのような検出に応答して生成された複数の軌道、コマンドを実行するために使用される1つ以上のシステムまたはサブシステムに渡される制御信号などを含む、車両の任意の1つ以上のシステムまたはサブシステムによる中間出力をさらに含み得る。いくつかの例では、車両データ104は、車両コンピューティングデバイスによって生成された他のデータと関連付けられる時間データを含むことができる。
【0021】
いくつかの例では、入力データ102を使用してシナリオを生成することができる。入力データ102は、車両データ104及び/または追加の状況データ106を含むことができる。例として、限定されないが、追加の状況データ106は、サードパーティソースからのインシデントレポートなどのデータを含むことができる。サードパーティソースは、法執行機関、自動車部門、及び/または活動並びに/またはインシデントのレポートを公開し、並びに/または記憶することができる安全管理を含むことができる。例えば、レポートは、活動の種類(例えば、道路上の破片、局所的な洪水などの交通危険)、場所、及び/または活動の説明を含むことができる。例として、限定されないが、レポートは、車両を操作中のドライバーが、毎秒15メートルの速度で走行中に、車道の倒れた木の枝に当たったことを説明することができる。レポートを使用して、シミュレーションにおいて使用できる同様のシナリオを生成できる。
【0022】
いくつかの例では、追加の状況データ106は、キャプチャされたセンサデータ(例えば、画像データ)を含むことができる。例として、限定されないが、車両の運転者は、運転者が車両を操作する間、カメラを使用して画像データをキャプチャできる。いくつかの例では、画像データは、インシデントなどのアクティビティをキャプチャすることができる。例として、限定されないが、運転者は、ダッシュボードカメラ(例えば、車両の内部ダッシュボードに搭載されたカメラ)を使用して、運転者が車両を操作している間に画像データをキャプチャすることができる。運転者が車両を操作するとき、動物が車道を横切って走る場合があり、運転者はすぐにブレーキをかけて車両を遅くすることができる。ダッシュボードカメラは、動物が車道を横切って走っており、車両が減速している画像データをキャプチャすることができる。画像データを使用して、車道を横切って走る動物のシナリオを生成することができる。上述したように、シナリオに関連付けられた確率は、確率閾値を満たす、または超える確率に基づいてシミュレーションのためのシナリオを識別するために決定され得る。例として、限定されないが、シナリオに遭遇する可能性が0.001%未満である場合、0.001%の確率閾値を使用することができ、次いで、より高い確率を有するシナリオは、シミュレーションのために優先され、より高い確率を有するシナリオに関連付けられた安全メトリクスを決定することができる。
【0023】
入力データ102、例えば、車両データ104及び/または追加の状況データ106は、シナリオエディタコンポーネント108によって使用されて、初期シナリオ110を生成することができる。例えば、入力データ102は、シナリオエディタコンポーネント108に入力されることができ、シナリオエディタコンポーネント108は、合成環境内の入力データ102の少なくとも一部を表す合成環境を生成することができる。初期シナリオ110及び車両データ104に含めることができる車両によって生成されたデータなどのシナリオの生成例は、例えば、その全体が参照により組み込まれる、2019年4月23日に出願された「Scenario Editor and Simulator」と題された米国特許出願第16/392,094号に見出すことができる。
【0024】
シナリオエディタコンポーネント108は、入力データ102をスキャンして、入力データ102に表される1つ以上のシナリオを識別するように構成され得る。例として、限定されないが、シナリオエディタコンポーネント108は、入力データ102の一部が、通行権のない通り(例えば、横断歩道のない通り、歩行表示のない交差点など)を横断する歩行者を表すと判定することができる。シナリオエディタコンポーネント108は、これをシナリオ(例えば、ジェイウォーキングパラメータ)として識別し、シナリオを例えば、ジェイウォーキングシナリオとしてラベル付け(及び/または分類)することができる。例えば、シナリオエディタコンポーネント108は、アクションを定義するルールを使用して、初期シナリオ110を生成することができる。例として、限定されないが、ルールは、横断歩道に関連付けられていない領域内の道路を横断する歩行者がジェイウォーカー(jaywalker)であると定義できる。いくつかの例では、シナリオエディタコンポーネント108は、シナリオエディタコンポーネント108のユーザからラベルデータを受信して、入力データ102の一部をラベルと関連付け、初期シナリオ110を生成することができる。
【0025】
いくつかの例では、シナリオエディタコンポーネント108は、入力データ102の他の部分をスキャンし、類似のシナリオを識別し、類似のシナリオを同じジェイウォーキングラベルでラベル付けできる。いくつかの例では、シナリオエディタコンポーネント108は、既存のラベルに対応しない(または既存のラベルから除外される)シナリオを識別し、これらのシナリオの新しいラベルを生成することができる。いくつかの例では、シナリオエディタコンポーネント108は、シナリオのライブラリを生成し、シナリオのライブラリをシナリオエディタコンポーネント108内のデータベースに格納できる。例として、限定されないが、シナリオのライブラリは、横断歩道シナリオ、マージシナリオ、車線変更シナリオなどを含むことができる。
【0026】
少なくともいくつかの例では、そのような初期シナリオ110は、手動で指定されてもよい。例えば、1人または複数のユーザは、以前にシナリオに遭遇したことがない(またはまれに遭遇したことがある)にもかかわらず、そのようなシナリオを実行するときに車両が安全に動作できることを確実にするために、テストされる特定のシナリオを指定し得る。
【0027】
パラメータコンポーネント112は、シナリオエディタコンポーネント108によって識別された初期シナリオ110に関連付けられたシナリオパラメータを決定することができる。例として、限定されないが、パラメータコンポーネント112は、ジェイウォーキングシナリオを分析し、歩行者の位置、歩行者のポーズ、歩行者のサイズ、歩行者の速度、歩行者の足跡、車両と歩行者との間の距離、車両の速度、道路の幅などを含む、ジェイウォーキングシナリオに関連付けられたシナリオパラメータを決定することができる。
【0028】
いくつかの例では、パラメータコンポーネント112は、シナリオパラメータに関連付けられた範囲または値のセットを決定することができる。例えば、パラメータコンポーネント112は、初期シナリオ110内に表されるオブジェクト(例えば、歩行者)に関連付けられた分類を決定し、入力データ102内の同じ分類の他のオブジェクトを決定することができる。次いで、パラメータコンポーネント112は、初期シナリオ110によって表されるように、シナリオパラメータに関連付けられた値の範囲を決定することができる。例として、限定されないが、シナリオパラメータは、歩行者が毎秒0.5~1.5メートルの範囲の速度を有することができることを示すことができる。
【0029】
いくつかの例では、パラメータコンポーネント112は、シナリオパラメータに関連付けられた確率を決定することができる。例として、限定されないが、パラメータコンポーネント112は、ガウス分布(正規分布とも呼ばれる)などの確率分布をシナリオパラメータに関連付けることができる。いくつかの例では、パラメータコンポーネント112は、入力データ102に基づいて、シナリオパラメータに関連付けられた確率を決定することができる。上述したように、パラメータコンポーネント112は、入力データ102内に表されるオブジェクトに関連付けられた分類を決定し、入力データ102及び/または他のログデータ内の同じ分類の他のオブジェクトを決定することができる。次いで、パラメータコンポーネント112は、入力データ102及び/または他のログデータによって表されるように、オブジェクトに関連付けられたシナリオパラメータの確率分布を決定することができる。
【0030】
例として、限定されないが、パラメータコンポーネント112は、歩行者の30%が毎秒0.3メートル未満の速度で歩いており、歩行者の30%が毎秒1.2メートルを超える速度で歩いており、及び歩行者の40%が毎秒0.3~1.2メートルの間の速度で歩いていると判定することができる。パラメータコンポーネント112は、ジェイウォーキングシナリオの歩行者が特定の速度で歩くであろう確率として分布を使用することができる。追加の例として、限定されないが、パラメータコンポーネント112は、環境を横断する車両が環境を横断する間に5%の時間でジェイウォーカーに遭遇することを示すことができる、ジェイウォーキングシナリオ確率が1%であると決定することができる。いくつかの例では、自律車両コントローラのシミュレーション中に、シナリオ確率を使用して、シナリオ確率に関連付けられたレートでシナリオを含めることができる。
【0031】
いくつかの例では、パラメータコンポーネント112は、分布に組み込まれた補完データ114を受信することができる。例として、限定されないが、パラメータコンポーネント112は、車両が毎秒15メートルの速度で移動する間または代替的に2~4秒の衝突までの時間として表される間、歩行者が車両までの30~60メートルの範囲の距離を有し得ることを示すシナリオパラメータを決定することができる。補完データ114(例えば、規制またはガイドライン)は、下限(パラメータ閾値とも呼ばれる)とすることができる1.5秒の衝突までの時間で、車両がシナリオに対処しなければならないことを示すことができる。パラメータコンポーネント112は、補完データ114を組み込むことができ、1.5~4秒の衝突までの時間を有するようにシナリオパラメータを決定することができる(ただし、任意の時間範囲を指定することができる)。いくつかの例では、パラメータコンポーネント112は上述の確率分布を使用して、補完データ114に関連付けられた確率を(内挿及び/または外挿技法を使用して)決定することができる。
【0032】
誤差モデルコンポーネント116は、シナリオパラメータに関連付けられた誤差を示すことができる誤差モデルを決定することができる。例えば、知覚誤差モデルは、シミュレートされたオブジェクトの知覚パラメータに関連付けられた知覚誤差を生成でき、予測誤差モデルは、シミュレートされたオブジェクトの予測パラメータに関連付けられた予測誤差を生成するなどができる。いくつかの例では、車両が環境を横断するとき、センサは誤ったセンサデータを生成する可能性があり、及び/または車両のコンピューティングデバイスは、知覚誤差をもたらす可能性があるセンサデータを誤って処理する可能性がある。知覚誤差をテスト及びシミュレートすることは、潜在的な知覚誤差に関連する車両の運用マージンを示すのに役立ち得る。例えば、知覚パラメータなどのシナリオパラメータは、オブジェクトのサイズまたは環境内のオブジェクトの位置の範囲を示すことができる。誤差モデルコンポーネント116は、知覚誤差モデルを使用して、オブジェクトが環境内の実際のオブジェクトよりも大きいまたは小さいことを示す車両の知覚データをもたらし得るオブジェクトのサイズに関連付けられた潜在的な誤差を示すことができる。
【0033】
誤差モデルコンポーネント116は、例えば、入力データ102をグラウンドトゥルースデータと比較することによって、知覚誤差モデルを決定することができる。いくつかの例では、グラウンドトゥルースデータは、手動でラベル付けされ、及び/または他の検証された機械学習コンポーネントから決定されることができる。例えば、入力データ102は、センサデータ及び/または車両によって生成された知覚データを含むことができる。誤差モデルコンポーネント116は、入力データ102を、環境内のオブジェクトの実際のパラメータを示すことができるグラウンドトゥルースデータと比較することができる。入力データ102をグラウンドトゥルースデータと比較することによって、誤差モデルコンポーネント116は、知覚誤差を判定することができる。例として、限定されないが、入力データ102は、歩行者が1.8メートルの高さであることを示すことができ、一方、グラウンドトゥルースデータは歩行者が1.75メートルの高さであることを示し、したがって、知覚誤差モデルは約3%の知覚誤差を示すことができる(例えば、[(1.8-1.75)/1.8]*100)。
【0034】
いくつかの例では、誤差モデルコンポーネント116は、入力データ102内に表されるオブジェクトに関連付けられた分類を決定し、入力データ102内の同じ分類の他のオブジェクトを決定することができる。次いで、誤差モデルコンポーネント116は、オブジェクトの誤差の範囲に関連付けられた確率分布(誤差分布とも呼ばれる)を決定し、確率分布を初期シナリオ110内のオブジェクトに関連付けることができる。例として、限定されないが、誤差モデルコンポーネント116は、歩行者分類を伴うオブジェクトが4%~6%の知覚誤差を有すること、及び車両分類を伴うオブジェクトが3%~5%の知覚誤差を有することを判定することができる。いくつかの例では、誤差モデルコンポーネント116は、例えば、閾値サイズより大きいオブジェクトが誤差を有する可能性が高いまたは低い(例えば、分類において)ことを示す確率分布を決定することができる。
【0035】
いくつかの例では、パラメータコンポーネント112は、領域データ118を使用して、シナリオ及びシナリオパラメータと互換性のある環境の領域のセットを決定することができる。例として、限定されないが、シナリオは、車両が毎秒15メートルの速度を有すること、歩行者が毎秒1.5メートルの速度を有すること、及び車両と歩行者との間の距離が30メートルであること、を示すことができる。パラメータコンポーネント112は、シナリオに適合する環境の領域データ118に基づいて領域を決定することができる。例として、限定されないが、パラメータコンポーネント112は、シナリオ内の車両の速度がスクールゾーンに関連付けられた速度制限を超える可能性があり、したがって、シナリオがスクールゾーンで有効ではないため、スクールゾーンを除外できる。しかし、そのような車両速度(例えば、15m/s)は、農地に隣接する郡道上で妥当であり得、したがって、そのような領域は、領域のセット内で考慮され得る。
【0036】
いくつかの例では、パラメータコンポーネント112は、環境の駆動可能領域のセグメントを含む領域データ118を格納することができる。運転可能な路面のセグメント並びに類似のセグメント、及びセグメント分類並びに/またはステレオタイプを識別するための技術は、例えば、2019年3月19日に出願された「Extension of Autonomous Driving Functionality to New Regions」と題された米国特許出願第16/370,696号、及び2019年4月5日に出願された「Simulating Autonomous Driving Using Map Data and Driving Data」と題された米国特許出願第16/376,842号に見出すことができ、これらは、参照によりその全体が本明細書に組み込まれる。
【0037】
例えば、環境の領域データ118をセグメントに解析することができ、同様のセグメントを識別することができる。いくつかの例では、セグメントは、ジャンクションセグメント、例えば、交差点、合流点等、または接続道路セグメント、例えば、ジャンクション間の道路の長さ及び/または幅を含むことができる。例として、限定されないが、10mphの範囲内の速度制限を有する全ての2車線道路セグメントは、同じステレオタイプに関連付けることができる。いくつかの例では、データを個々のセグメントのそれぞれに関連付けることができる。例えば、ジャンクションセグメントは、例えば、合流点、「T」、ラウンドアバウト等のジャンクションタイプ、ジャンクションで集合する道路の数、例えば、ジャンクションで集合する道路間の角度であるそれらの道路の相対位置、ジャンクションでの交通制御信号に関する情報、及び/または他の特徴を含むことができる。接続道路セグメントに関連付けられたデータは、いくつかの車線、それらの車線の幅、各車線における走行方向、駐車レーンの識別、道路セグメントの速度制限、及び/または他の特徴を含むことができる。
【0038】
いくつかの例では、駆動可能な表面のセグメントを、セグメント分類またはセグメントステレオタイプに従ってグループ化できる。例として、限定されないが、ある範囲のメトリクスまたは属性に適合するいくつかのまたは全てのジャンクションセグメントを一緒にグループ化することができる(例えば、k平均値を使用して、セグメントパラメータ間の重み付けされた距離(例えば、ユークリッド距離)を評価して、またはそれ以外の場合、セグメントパラメータに基づいてそのようなセグメントをクラスタリングして)。
【0039】
同じまたは類似のステレオタイプを含むシナリオを使用して、自律車両コントローラの機能性を検証することができる。例えば、自律車両は、同じまたは類似のステレオタイプにおいて、同じことを行うことが期待され得る(及び/または明らかに実行され得る)。いくつかの例では、ステレオタイプの使用は、行われる比較の数を減らすことができる。例えば、同様の領域を識別することによって、有用な情報を提供できるシミュレーションシナリオの数は減る。本明細書に記載の技術は、検証及びテストのための有用な情報を提供する特定のシナリオにわたって最適化することによって、計算の複雑性、メモリ要件、及び処理時間を低減することができる。
【0040】
パラメータ化シナリオコンポーネント120は、パラメータコンポーネント112によって決定されたデータ(例えば、初期シナリオ110、シナリオパラメータ、領域のセット、及び/または誤差モデルデータ)を使用して、パラメータ化シナリオ122を生成することができる。例えば、初期シナリオ110は、車線変更シナリオ、右折シナリオ、左折シナリオ、緊急停止シナリオなどのシナリオを示すことができる。シナリオパラメータは、自律車両コントローラによって制御される車両に関連付けられた速度、車両のポーズ、車両とオブジェクトとの間の距離などを示すことができる。いくつかの例では、シナリオパラメータは、オブジェクト、オブジェクトに関連付けられた位置、オブジェクトに関連付けられた速度などを示すことができる。さらに、誤差モデル(例えば、知覚誤差モデル、予測誤差モデルなど)は、シナリオパラメータに関連付けられた誤差を示し、シナリオパラメータに関連付けられた値及び/または確率の範囲を提供することができる。例として、限定されないが、車両の速度などのシナリオパラメータは、毎秒8~12メートルなどの速度の範囲に関連付けることができる。上述のように、速度の範囲は、発生する速度の範囲内の速度の確率を示す確率分布に関連付けることができる。
【0041】
領域のセットは、シミュレート環境内にオブジェクトを配置するために使用され得る環境の一部を示すことができる。例えば、初期シナリオ110は、時速35マイルの速度制限に関連付けられた双方向マルチレーン駆動路面を含むシナリオを示すことができる。初期シナリオ110に基づいて、領域のセットは、例えば駐車場などの、時速35マイルの制限速度に関連付けられた双方向マルチレーン駆動路面を含まない領域を除外できる。パラメータ化シナリオ122を使用して、シナリオパラメータ、誤差モデル、領域データ118等によって提供されるバリエーションをカバーできる。
【0042】
例として、限定されないが、シナリオパラメータは、ジャンクションに接近しながら、毎秒10メートル、11メートル、または12メートルの速度(または任意の速度)で環境を横断する車両を含むことができる。領域のセットは、制御されていないジャンクション、4方向のストップを有するジャンクション、及び交通信号を有するジャンクションを含むことができる。加えて、知覚誤差モデルは、テストされている知覚システムのために決定された知覚メトリクスによって提供され得るように、1.34%の知覚誤差を示すことができる。したがって、パラメータ化シナリオ122は、シナリオパラメータ及び領域を変化させることによって、合計9つの様々なシナリオを可能にすることができる(例えば、3つの速度*3つの領域=9つのシナリオ/順列)。加えて、シミュレーションコンポーネント124がパラメータ化シナリオをシミュレートするとき、シミュレーションコンポーネント124は、知覚誤差モデルを使用して、車両によって決定された知覚データに関連付けられた知覚誤差を導入することができる。理解できるように、これは単なる例であり、パラメータ化シナリオ122は、より多くまたはより少ない順列、及びシナリオパラメータの異なるタイプ、領域、並びに/または知覚誤差を含むことができる。
【0043】
シミュレーションコンポーネント124は、パラメータ化シナリオ122をシミュレーション命令のセットとして実行し、シミュレーションデータ126を生成することができる。例えば、シミュレーションコンポーネント124は、シミュレートされたシナリオにおいて車両コントローラをインスタンス化することができる。いくつかの例では、シミュレーションコンポーネント124は、複数のシミュレートされたシナリオを同時に及び/または並行して実行することができる。加えて、シミュレーションコンポーネント124は、パラメータ化シナリオ122の結果を決定することができる。例えば、シミュレーションコンポーネント124は、テスト及び検証のためのシミュレーションにおいて使用するためのパラメータ化シナリオ122のバリエーションを実行することができる。シミュレーションコンポーネント124は、自律車両コントローラがどのように実行したか(例えば、応答したか)を示すシミュレーションデータ126を生成し、シミュレーションデータ126を所定の結果と比較し、及び/または任意の所定のルール/アサーションが破られた/トリガされたかどうかを判定することができる。
【0044】
いくつかの例では、シミュレーションのためのバリエーションを、シナリオパラメータの一般化された間隔に基づいて選択できる。例として、限定されないが、シナリオパラメータを、車両の速度に関連付けることができる。加えて、シナリオパラメータを、車両の値の範囲に関連付けることができる。シミュレーションのためのバリエーションを一般化された間隔に基づいて選択して、値の範囲のカバレッジを増加させることができる(例えば、25パーセンタイル、50パーセンタイル、75パーセンタイルなどを選択する)。いくつかの例では、バリエーションをランダムに選択でき、及び/またはバリエーションを値の範囲の標準偏差内でランダムに選択できる。
【0045】
いくつかの例では、所定のルール/アサーションは、パラメータ化シナリオ122に基づくことができる(例えば、横断歩道に関する交通ルールは、横断歩道のシナリオに基づいて有効化でき、または車線マーカーを横切ることに関する交通ルールは、停止車両のシナリオに対して無効化できる)。いくつかの例では、シミュレーションコンポーネント124は、シミュレーションが進むにつれて動的にルール/アサーションを有効化し、及び無効化することができる。例えば、シミュレートされたオブジェクトがスクールゾーンに近づくと、スクールゾーンに関連するルール/アサーションを有効化することができ、シミュレートされたオブジェクトがスクールゾーンから離れるときに、スクールゾーンに関連するルール/アサーションを無効化することができる。いくつかの例では、ルール/アサーションは、例えば、シミュレートされたシナリオを所与として、オブジェクトがどのくらい速く加速できるかに関連する快適性メトリクスを含むことができる。少なくともいくつかの例では、ルールは、例えば、道路のルールに従うこと、オブジェクト間の安全バッファを残すことなどを含み得る。
【0046】
自律車両コントローラが所定の結果と一致して実行した(すなわち、自律車両コントローラは、それが行うはずであった全てを行った)と判定すること、及び/またはルールが破られなかった、若しくはアサーションがトリガされなかったと判定することに少なくとも部分的に基づいて、シミュレーションコンポーネント124は、自律車両コントローラが成功したと判定することができる。自律車両コントローラのパフォーマンスが所定の結果と一致しなかった(つまり、自律車両コントローラは、それが行うべきではないことを行った)と判定すること、及び/またはルールが破られた、若しくはアサーションがトリガされたと判定することに少なくとも部分的に基づいて、シミュレーションコンポーネント124は自律車両コントローラが失敗したと判定することができる。従って、パラメータ化シナリオ122を実行することに少なくとも部分的に基づいて、シミュレーションデータ126は、上記のように、自律車両コントローラがパラメータ化シナリオ122の各バリエーションにどのように応答するかを示し、シミュレーションデータ126に少なくとも部分的に基づいて成功した結果または失敗した結果を判定することができる。
【0047】
分析コンポーネント128は、成功または失敗の程度を判定するように構成され得る。例として、限定されないが、ルールは、自律車両コントローラによって制御される車両がオブジェクトの閾値距離内で停止しなければならないことを示すことができる。シミュレーションデータ126は、パラメータ化シナリオ122の第1のバリエーションにおいて、シミュレートされた車両が閾値距離から5メートルを超えて停止したことを示すことができる。パラメータ化シナリオ122の第2のバリエーションにおいて、シミュレーションデータ126は、シミュレートされた車両が閾値距離から10メートルを超えて停止したことを示すことができる。分析コンポーネント128は、シミュレートされた車両が、第1のバリエーションにおけるシミュレートされた車両と比較して、第2のバリエーションにおいてより成功裏に実行したことを示すことができる。例えば、分析コンポーネント128は、シミュレートされた車両及びパラメータ化シナリオ122の関連するバリエーションを含む順序付けられたリスト(例えば、相対的な成功スケールに従って順序付けられた)を決定することができる。そのようなバリエーションまた、シミュレートされるシステムの様々なコンポーネントの制限を決定するために使用され得る。
【0048】
分析コンポーネント128は、シミュレーションデータ126に基づいて、パラメータ化シナリオ122の追加のバリエーションを決定することができる。例えば、シミュレーションコンポーネント124によって出力されるシミュレーションデータ126は、成功または失敗に関連付けられたパラメータ化シナリオ122のバリエーション(連続した尤度として表され得る)を示すことができる。分析コンポーネント128は、失敗に関連付けられたバリエーションに基づいて、追加のバリエーションを決定することができる。例として、限定されないが、失敗に関連付けられたパラメータ化シナリオ122のバリエーションは、毎秒15メートルの速度で駆動路面を走行する車両及び車両の前方の20メートルの距離で駆動路面を横断する動物を表すことができる。分析コンポーネント128は、シナリオの追加のバリエーションを決定して、分析のための追加のシミュレーションデータ126を決定することができる。例として、限定されないが、分析コンポーネント128は、毎秒10メートル、毎秒12.5メートル、毎秒17.5メートル、毎秒20メートルなどで走行する車両を含む追加のバリエーションを決定することができる。また、分析コンポーネント128は、15メートル、17.5メートル、22.5メートル、及び25メートルなどの距離で駆動路面を横切る動物を含む追加のバリエーションを決定することができる。追加のバリエーションをシミュレーションコンポーネント124に入力して、追加のシミュレーションデータを生成することができる。そのような追加のバリエーションは、例えば、シミュレーションにおいて実行されるシナリオのシナリオパラメータに対する摂動に基づいて決定され得る。
【0049】
いくつかの例では、分析コンポーネント128は、シナリオパラメータを無効にすることによって、シナリオの追加のバリエーションを決定することができる。例えば、パラメータ化シナリオは、オブジェクトの速度に関連付けられた第1のシナリオパラメータと、オブジェクトの位置に関連付けられた第2のシナリオパラメータとを含むことができる。パラメータ化シナリオ122は、速度に関連付けられた値の第1の範囲と、位置に関連付けられた値の第2の範囲とを含むことができる。いくつかの例では、パラメータ化シナリオ122をシミュレートした後、シミュレーションデータ126は、パラメータ化シナリオ122のいくつかのバリエーションが成功した結果をもたらし、いくつかのバリエーションが失敗した結果をもたらしたことを示すことができる。次いで、分析コンポーネント128は、第1のシナリオパラメータを無効にすること(例えば、第1のシナリオパラメータに関連付けられた固定値を設定すること)を決定し、第2のシナリオパラメータに基づいてパラメータ化シナリオ122を変化させることができる。シナリオパラメータの1つを無効にすることによって、分析コンポーネント128は、シナリオパラメータ及び/またはシナリオパラメータの値が成功の結果または失敗の結果に関連付けられているかどうかを判定することができる。そのようなパラメータは、失敗の可能性に基づいて、ランダムに、またはその他で、無効にされ得る。例として、限定されないが、シナリオパラメータの全てを無効にした結果としてのシミュレーションデータ126は自律車両のプランニングコンポーネントの問題を示すことができる。
【0050】
いくつかの例では、分析コンポーネント128を使用して感度分析を実行することができる。例えば、分析コンポーネント128は、シナリオパラメータを無効にし、及びシミュレーションコンポーネント124によって生成されたシミュレーションデータ126に基づいて、シナリオパラメータを無効にすることがシミュレーションデータ126にどのように影響するか(例えば、成功率を増加させる、成功率を減少させる、成功率に最小限の影響を与える)を決定することができる。いくつかの例では、分析コンポーネント128は、シナリオパラメータを個別に無効にして、各シナリオパラメータを無効にすることがシミュレーションデータ126にどのように影響するかを決定することができる。分析コンポーネント128は、個々のシナリオパラメータが多くのシミュレーションの経過にわたってシミュレーションデータ126にどのように影響するかを示す統計データを収集することができる。いくつかの例では、分析コンポーネント128は、シナリオパラメータのセットを無効にする(例えば、夜間環境パラメータを無効にする、及び湿潤条件環境パラメータを無効にする)ように構成され得る。上述のように、分析コンポーネント128は、シナリオパラメータのセットがシミュレーションデータ126にどのように影響するかを示す統計データを収集することができる。統計データは、成功するシミュレーションをもたらす可能性を増加または減少させるシナリオパラメータを決定するために使用されることができ、及びシミュレーションデータ126の成功率を増加または減少させるシナリオパラメータに関連付けられた自律車両のサブシステムを識別するために使用されることができる。
【0051】
いくつかの例では、分析コンポーネント128は、シナリオパラメータが調整される程度を調整することができる。例として、限定されないが、シナリオパラメータは、湿潤な環境条件(例えば、雨の条件)を示すことができる。シナリオパラメータは、範囲(例えば、4分の1インチの雨量、1インチの雨量など)で調整することができる。分析コンポーネント128は、シナリオパラメータの大きさ(magnitude)を調整し、シナリオパラメータの大きさに基づいて感度分析を実行して、シミュレーションの成功または失敗の結果をもたらすことができるシナリオパラメータに関連付けられた閾値を決定することができる。いくつかの例では、他の適切なアルゴリズムが企図されるが、二値検索アルゴリズム、粒子フィルタアルゴリズム、及び/またはモンテカルロ法を使用して、閾値を決定することができる。
【0052】
車両性能コンポーネント130は、シミュレーションデータ126(及び/または分析コンポーネント128からの追加のバリエーションに基づく追加のシミュレーションデータ)及び失敗のタイプに基づいて、車両性能データ132を決定することができる。いくつかの例では、車両性能データ132は、車両が環境内でどのように実行するかを示すことができる。例として、限定されないが、車両性能データ132は、毎秒15メートルの速度で走行する車両が15メートルの停止距離を有することを示すことができる。いくつかの例では、車両性能データは安全性メトリクスを示すことができる。例として、限定されないが、車両性能データ132は、イベント(例えば、失敗)及びイベントの原因を示すことができる。少なくともいくつかの例では、そのような表示は、任意の他の表示が企図されているが、バイナリ(失敗の有無)、粗い(失敗のレベル、例えば、「重大」、「非重大」及び「パス」)、または連続的(例えば、失敗の可能性を表す)であり得る。例えば、イベントタイプ1及び原因タイプ1について、データ134(1)は安全性レーティングを示すことができ、データ134(2)~134(4)についても同様である。いくつかの例では、原因タイプ1及び原因タイプ2は、車両の故障またはオブジェクト(例えば、自転車乗り)の故障などの故障を示すことができる。車両性能データ132は、パラメータ化シナリオ122に関連付けられた安全性メトリックを示すことができる。いくつかの例では、車両性能コンポーネント130は、ターゲットメトリックを使用し、車両性能データ132をターゲットメトリックと比較して、安全性メトリックがターゲットメトリックを満たすかまたは超えるかを判定することができる。いくつかの例では、ターゲットメトリックは、自律車両に関連付けられた標準及び/または規制に基づいてもよい。
【0053】
いくつかの例では、車両性能データ132を、フィルタコンポーネント136に入力して、車両性能データ132に基づいてフィルタされたデータ138を決定することができる。例えば、フィルタコンポーネント136を使用して、カバレッジ閾値を満たさない領域を識別するフィルタされたデータ138を決定することができる。例として、限定されないが、初期シナリオ110は、時速35マイルの速度制限及び領域データ118に関連付けられた双方向マルチレーン駆動路面を示すことができる。初期シナリオ110及び領域データ118に基づいて、パラメータコンポーネント112は、初期シナリオ110をシミュレートするために使用できる環境の5つの領域を識別することができる。パラメータ化シナリオ122をシミュレートした後、車両性能データ132は、シミュレーションデータ126が5つの領域のうちの3つに関連付けられていることを示すことができる。例えば、シミュレーションコンポーネント124は、パラメータコンポーネント112によって識別された5つの領域のうちの3つにおいてシナリオを実行することに基づいて、シナリオをシミュレートし、シミュレーションデータ126を生成することができる。フィルタコンポーネント136は、1つまたは複数のフィルタに基づいて、5つの領域のうちの残りの2つがカバレッジ閾値(例えば、領域に関連付けられたシミュレーションの最小数)を満たさないことを示すフィルタリングされたデータ138をすることができる。
【0054】
いくつかの例では、フィルタコンポーネント136は、車両性能データ132に基づいて、イベントの発生を示すフィルタされたデータ138を決定することができる。例として、限定されないが、シミュレーションデータ126は、非常停止、フラットタイヤ、動物が走行面を横切るなどのイベントの発生を含むことができる。フィルタコンポーネント136は、1つ以上のフィルタに基づいて、非常停止の発生を示すフィルタされたデータ138を判定することができる。加えて、フィルタされたデータ138は、例えば、緊急停止に関連付けられた停止距離など、緊急停止の発生に関連付けられたシミュレーションデータ126の一部を含むことができる。
【0055】
図2は、車両202の例200を示しており、これは図1を参照して説明した車両データ104を生成する車両と同様であり、車両データ104を生成し、車両データ104をコンピューティングデバイス204に送信することができる。上述したように、シナリオエディタコンポーネント108は、入力データ102(例えば、車両データ104及び/または追加の状況データ106)をスキャンし、入力データ102に表される1つまたは複数のシナリオを識別するように構成され得る。非限定的な例として、そのようなシナリオは、例えば、ログデータのパラメータ化をクラスタリング(例えば、k平均などを使用して)することに基づいて決定され得る。いくつかの例では、シナリオエディタコンポーネント108は、シナリオ定義データ206を使用して、入力データ102に表される1つ以上のシナリオを識別することができる。例えば、シナリオ定義データ206は、シナリオのタイプに関連付けられた特徴を識別することができる。例として、限定されないが、シナリオ定義データ206は、横断歩道に関連付けられていない駆動路面の一部を歩行者が横断するなどの特徴を含むジェイウォーキングシナリオを識別することができる。シナリオエディタコンポーネント108は、入力データ102をスキャンして、横断歩道に関連付けられていない駆動路面の一部を横断する歩行者の特徴を含む入力データの一部を識別して、ジェイウォーキングシナリオを判定することができる。少なくともいくつかの例では、そのようなシナリオは、サードパーティのデータ(例えば、警察のレポート、一般に利用可能なビデオクリップなど)からさらに手動で入力及び/または導出され得る。
【0056】
加えて、上述したように、パラメータコンポーネント112は、シナリオ内のオブジェクトのパラメータに関連付けられた値または値の範囲を示すことができるシナリオパラメータを決定することができる。パラメータコンポーネント112は、図2に描写されるように、シナリオデータ208を生成することができる。
【0057】
シナリオデータ208は、駆動路面に沿って横断する車両210、及び車両210の近くを車両210と同じ方向に横断するオブジェクト212(異なる車両であり得る)を含むベースシナリオを示すことができる。車両210及びオブジェクト212は、横断歩道とのジャンクションに接近することができる。パラメータコンポーネント112は、車両210とオブジェクト212との間の距離を、距離の範囲を有するものとして示すシナリオパラメータを決定することができる。したがって、シナリオS1は、車両210とオブジェクト212との間の第1の距離を有するシナリオのセットの第1のシナリオを表すことができ、シナリオS2は、車両210とオブジェクト212との間の第2の距離を有するシナリオのセットの第2のシナリオを表すことができ、シナリオSNは、車両210とオブジェクト212との間の第Nの距離を有するシナリオのセットの第Nのシナリオを表すことができる。パラメータの追加のタイプ(属性とも称される)の例は、例えば、その全体が参照により組み込まれる、2019年3月25日に出願された「Pedestrian Prediction Based on Attributes」と題された米国特許出願第16/363,541号に見出すことができる。
【0058】
例えば、シナリオパラメータは、オブジェクト212の速度、オブジェクト212の加速度、オブジェクト212のx位置(例えば、グローバル位置、ローカル位置、及び/または任意の他の基準フレームに対する位置)、オブジェクト212のy位置(例えば、サイズ、ポーズ、ローカル位置、グローバル位置、及び/または任意の他の基準フレームに対する位置)、オブジェクト212に関連付けられたバウンディングボックス(例えば、範囲(長さ、幅、及び/または高さ)、ヨー、ピッチ、ロールなど)、照明状態(例えば、ブレーキライト、ブリンカーライト、ハザードライト、ヘッドライト、リバースライトなど)、オブジェクト212のホイールの方向、マップ要素(例えば、オブジェクト212と信号機の間の距離、一時停止標識、スピードバンプ、交差点、譲れの標識など)、オブジェクト212の分類(例:車両、車、トラック、自転車、オートバイ、歩行者、動物など)、オブジェクトの特性(例えば、オブジェクトが車線を変更しているかどうか、オブジェクト212が二重駐車車両であるかどうかなど)、1つまたは複数のオブジェクト(任意の座標フレームにおける)との近接性、車線の種類(例えば、車線の方向、駐車車線など)、道路標示(例えば、通過または車線変更が許可されているかどうかなどを示す)、オブジェクト密度、などを含むことができるが、これらに限定されない。
【0059】
上述したように、パラメータコンポーネント112は、車両データ104及び/または他の入力データによって表されるように、シナリオパラメータに関連付けられた値の範囲を決定することができる。したがって、上記で識別された例示的なシナリオパラメータのそれぞれ、並びに他のシナリオパラメータは、シナリオのセットのうちのシナリオがシナリオパラメータの1つ以上の値によって異なるシナリオのセットを生成するために使用できる値のセットまたは値の範囲に関連付けられることができる。
【0060】
図3は、車両データ及びグラウンドトゥルースデータに少なくとも部分的に基づいて誤差モデルデータを生成する例300を示している。図3に示すように、車両202は、車両データ104を生成し、車両データ104を誤差モデルコンポーネント116に送信することができる。上述したように、誤差モデルコンポーネント116は、シナリオパラメータに関連付けられた誤差を示し得る誤差モデルを決定することができる。例えば、車両データ104は、知覚システム、プランニングシステム、追跡システム(トラッカーシステムとも呼ばれる)、予測システムなどの車両202のサブシステムに関連付けられたデータとすることができる。例として、限定されないが、車両データ104は、知覚システムに関連付けられることができ、車両データ104は、環境内の車両202によって検出されたオブジェクトに関連付けられたバウンディングボックスを含むことができる。
【0061】
誤差モデルコンポーネント116は、手動でラベル付け及び/または他の検証された機械学習コンポーネントから決定できるグラウンドトゥルースデータ302を受信することができる。例として、限定されないが、グラウンドトゥルースデータ302は、環境内のオブジェクトに関連付けられた検証されたバウンディングボックスを含むことができる。車両データ104のバウンディングボックスをグラウンドトゥルースデータ302のバウンディングボックスと比較することによって、誤差モデルコンポーネント116は、車両202のサブシステムに関連付けられた誤差を判定することができる。いくつかの例では、車両データ104は、検出されたエンティティ及び/またはエンティティが位置する環境に関連付けられた1つまたは複数の特性(パラメータとも呼ばれる)を含むことができる。いくつかの例では、エンティティに関連付けられた特性は、x位置(グローバル位置)、y位置(グローバル位置)、z位置(グローバル位置)、方向、エンティティタイプ(例えば、分類など)、エンティティの速度、エンティティの範囲(サイズ)などを含むことができるが、これらに限定されない。環境に関連付けられる特性は、環境内の別のエンティティの存在、環境内の別のエンティティの状態、時刻、曜日、季節、気象条件、暗闇/光の表示などを含むことができるが、これらに限定されない。したがって、誤差は、他の特性(例えば、環境パラメータ)に関連付けられ得る。
【0062】
誤差モデルコンポーネント116は、複数の車両データ104及び複数のグラウンドトゥルースデータ302を処理して、誤差モデルデータ304を判定することができる。誤差モデルデータ304は、誤差306(1)~(3)として表すことができる誤差モデルコンポーネント116によって計算された誤差を含むことができる。加えて、誤差モデルコンポーネント116は、誤差モデル310(1)~(3)を提示するための環境パラメータに関連付けられ得る確率308(1)~(3)として表される誤差306(1)~(3)に関連付けられた確率を決定することができる。例として、限定されないが、車両データ104は、降雨を含む環境内の車両202から50メートルの距離にあるオブジェクトに関連付けられたバウンディングボックスを含むことができる。グラウンドトゥルースデータ302は、オブジェクトに関連付けられた検証されたバウンディングボックスを提供することができる。誤差モデルコンポーネント116は、誤差が車両202の知覚システムに関連付けられていることを決定する誤差モデルデータ304を判定することができる。50メートルの距離及び降雨を環境パラメータとして使用して、誤差モデル310(1)~(3)のうちのどの誤差モデルを使用するかを決定することができる。誤差モデルが識別されると、誤差モデル310(1)~(3)は、確率308(1)~(3)に基づいて誤差306(1)~(3)を提供することができ、ここで、より高い確率308(1)~(3)に関連付けられた誤差306(1)~(3)は、より低い確率308(1)~(3)に関連付けられた誤差306(1)~(3)よりも、選択される可能性が高い。
【0063】
図4は、シミュレート環境に関連付けられた誤差または不確実性の少なくとも1つを提供することによって、誤差モデルデータを使用してシミュレーションに摂動を与える例400を示す。上述したように、誤差モデルデータは、誤差306を確率308に関連付ける誤差モデルを含むことができ、誤差モデルは、環境パラメータに関連付けることができる。シミュレーションコンポーネント124は、誤差モデルデータ304を使用して誤差を注入することができ、これは、シミュレーションに摂動を与えるための摂動を与えられたパラメータ化シナリオをもたらすことができる。注入された誤差に基づいて、シミュレーションデータは、自律コントローラが注入された誤差にどのように応答するかを示すことができる。
【0064】
例えば、シミュレーションコンポーネント124は、誤差をシミュレーションに連続的に注入することによってシミュレーションに摂動を与えることができる。例として、限定されないが、例402は、時間t0にてオブジェクトに関連付けられたバウンディングボックス404を示す。バウンディングボックス404は、バウンディングボックスのサイズの誤差及び/またはバウンディングボックスの位置の誤差などの誤差を含む車両によるオブジェクトの検出を表すことができる。時間t1において、シミュレーションコンポーネント124は、オブジェクトを表し、異なる誤差を含むバウンディングボックス406を使用することができる。例えば、各シミュレーション時間(例えば、t0、t1、またはt2)において、シミュレーションコンポーネント124は、誤差306に関連付けられた確率308に基づいて異なる誤差306を使用することができる。時間t2において、シミュレーションコンポーネント124は、オブジェクトを表し、異なる誤差を含むバウンディングボックス408を使用することができる。
【0065】
いくつかの例では、シミュレーションコンポーネント124は、環境内のオブジェクトを表すバウンディングボックスに関連付けられた不確実性を注入することによってシミュレーションに摂動を与えることができる。例として、限定されないが、例410は、時間t0にてオブジェクトに関連付けられたバウンディングボックス412を示す。バウンディングボックスは、5%の不確実性を含むことができ、これは、5%の量によってオブジェクトのサイズ及び/または位置の不確実性を示すことができる。また、不確実性は、例402に描写されるように、異なるシミュレーション時間にて、異なる誤差を注入するのではなく、時間t1及びt2を通してオブジェクトと共に存続することができる。
【0066】
図5は、車両データ104を生成し、車両データ104をコンピューティングデバイス204に送信する車両202の例500を示す。上述したように、誤差モデルコンポーネント116は、シナリオパラメータに関連付けられた誤差を示すことができる知覚誤差モデルを決定することができる。上述したように、車両データ104は、車両202のセンサによって生成されたセンサデータ及び/または車両202の知覚システムによって生成された知覚データを含むことができる。知覚誤差モデルは、車両データ104をグラウンドトゥルースデータ302と比較することによって決定することができる。グラウンドトゥルースデータ302を手動でラベル付けでき、環境に関連付けることができ、既知の結果を表すことができる。したがって、車両データ104内のグラウンドトゥルースデータ302からの逸脱(deviation)は、車両202のセンサシステム及び/または知覚システム内の誤差として識別され得る。例として、限定されないが、知覚システムは、オブジェクトを自転車運転者として識別する可能性があり、ここでグラウンドトゥルースデータ302は、オブジェクトが歩行者であることを示している。別の例として、限定されないが、センサシステムは、オブジェクトを2メートルの幅を有するように表すセンサデータを生成することができ、ここで、グラウンドトゥルースデータ302は、オブジェクトが1.75メートルの幅を有することを示している。
【0067】
上述したように、誤差モデルコンポーネント116は、車両データ104に表されるオブジェクトに関連付けられた分類を決定し、車両データ104及び/または他のログデータ内の同じ分類の他のオブジェクトを決定することができる。次いで、誤差モデルコンポーネント116は、オブジェクトに関連付けられた誤差の範囲に関連付けられた確率分布を決定することができる。誤差の比較及び範囲に基づいて、誤差モデルコンポーネント116は、知覚誤差モデルデータ502を決定することができる。
【0068】
図5に示されるように、環境504は、知覚システムによって生成されたバウンディングボックスとして表されるオブジェクト506(1)~(3)を含むことができる。知覚誤差モデルデータ502は、シナリオパラメータを508(1)~(3)として、シナリオパラメータに関連付けられた誤差を510(1)~(3)として示すことができる。図5に示されるように、オブジェクト508(1)に関連付けられた誤差を、オブジェクト508(1)の寸法に関する不確実性を示すより大きなバウンディングボックス512として環境504において視覚化することができる。
【0069】
図6は、シミュレーションデータ126を生成し、車両性能データ132を決定するコンピューティングデバイス204の例600を示す。パラメータ化シナリオコンポーネント120は、シナリオパラメータ、領域のセット、及び知覚誤差モデルに基づいて、パラメータ化シナリオを決定することができる。例えば、シナリオパラメータは、パラメータ化シナリオにおける、オブジェクト、オブジェクトに関連付けられた位置、オブジェクトに関連付けられた速度などを示すことができる。また、シナリオパラメータは、シナリオパラメータに関連付けられた値及び/または確率の範囲を示す範囲を示すことができる。領域のセットは、シミュレート環境内にオブジェクトを配置するために使用できる環境の一部を示すことができる。さらに、知覚誤差モデルは、シナリオパラメータに関連付けられた誤差を示すことができる。これらを組み合わせて、本明細書に詳述されるように、シナリオパラメータ、領域のセット、及び/または知覚誤差モデルによって提供されるバリエーションをカバーできるパラメータ化シナリオを作成することができる。
【0070】
パラメータ化シナリオをシミュレーションコンポーネント124によって使用して、パラメータ化シナリオのバリエーションをシミュレートすることができる。例えば、シミュレーションコンポーネント124は、テスト及び検証のためのシミュレーションにおいて使用するためのパラメータ化シナリオのバリエーションを実行することができる。シミュレーションコンポーネント124は、自律車両コントローラがどのように実行したか(例えば、応答したか)を示すシミュレーションデータ126を生成し、シミュレーションデータ126を所定の結果と比較し、及び/または任意の所定のルール/アサーションが破られた/トリガされたかどうかを判定することができる。
【0071】
図6に例示されるように、シミュレーションデータ126は、いくつかのシミュレーション(例えば、シミュレーション1、シミュレーション2など)及びシミュレーションの結果(例えば、結果1、結果2)を示すことができる。例えば、上述したように、結果は、破られた/トリガされたルール/アサーションに基づいて、合格または失敗を示すことができる。また、シミュレーションデータ126は、シナリオに遭遇する確率を示すことができる。例として、限定されないが、シミュレーションコンポーネント124は、ジェイウォーキング歩行者を含むシナリオをシミュレートすることができる。入力データは、車両が1時間の運転あたり1分の割合でジェイウォーキング歩行者に遭遇することを示すことができる。これは、パラメータ化シナリオのバリエーションに関連付けられた特定のシミュレーションに遭遇する確率を決定するために使用され得る。いくつかの例では、シミュレーションコンポーネント124は、低い確率を有するパラメータ化シナリオのバリエーションを識別し、それらのバリエーションに対応するシミュレーションを実行することができる。これにより、よりユニークな状況での自律車両コントローラのテスト及び検証を可能にすることができる。
【0072】
また、シミュレーションコンポーネント124は、結果に基づいて、追加のシミュレーションのためのパラメータ化シナリオのバリエーションを識別することができる。例として、限定されないが、シミュレーションの結果は、シナリオパラメータが毎秒15メートルの車両速度に関連付けられた障害とすることができる。シミュレーションコンポーネント124は、毎秒15メートルの速度に近い速度を識別して、シミュレーションが通過する閾値を決定することができ、これはより安全な車両コントローラの開発をさらに支援することができる。
【0073】
シミュレーションデータ126に基づいて、車両性能コンポーネント130は、車両性能データ132を生成することができる。上述したように、例えば、イベントタイプ1及び原因タイプ1について、データ134(1)は、安全性レーティングを示すことができ、データ134(2)~134(4)についても同様である。いくつかの例では、イベントタイプは、他のイベントタイプが企図されているが、コストがコスト閾値を満たしている、または超えていることを示すことができる。例えば、コストは、参照コスト、障害物コスト、横方向コスト、縦方向コストなどを含むことができるが、これらに限定されることはない。
【0074】
基準コストは、基準軌道上の点(基準点とも呼ばれる)とターゲット軌道上の対応する点(点またはターゲット点とも呼ばれる)との間の差に関連付けられたコストを含むことができ、これにより、差は、ヨー、横方向オフセット、速度、加速度、曲率、曲率レート(curvature rate)などのうちの1つまたは複数の差を表す。いくつかの例では、基準コストに関連付けられた重みを減らすことは、基準軌道から離れた距離に位置しているターゲット軌道に関連付けられたペナルティを減らすことができ、これは、より安全で及び/またはより快適な車両操作につながるよりスムーズな移行を提供することができる。
【0075】
いくつかの例では、障害物コストは、基準軌道またはターゲット軌道上の点と環境内の障害物に関連付けられた点との間の距離に関連付けられたコストを含むことができる。例として、障害物に関連付けられた点は、運転可能エリアの境界上の点に対応でき、または環境内の障害物に関連付けられる点に対応できる。いくつかの例では、環境内の障害物は、静的オブジェクト(例えば、建物、縁石、歩道、車線マーキング、標識、信号機、木など)または動的オブジェクト(例えば、車両、自転車運転者、歩行者、動物など)を含むことができるが、これらに限定されない。いくつかの例では、動的オブジェクトは、エージェントと呼ばれることもできる。いくつかの例では、静的オブジェクトまたは動的オブジェクトは、概してオブジェクトまたは障害物と呼ばれることがある。
【0076】
いくつかの例では、横方向コストは、車両の速度に対する最大ステアリング入力など、車両へのステアリング入力に関連付けられたコストを指すことができる。いくつかの例では、縦方向コストは、車両の速度及び/または加速度(例えば、最大ブレーキ及び/または加速度)に関連付けられたコストを指すことができる。そのようなコストは、フェリーで運ばれている乗客の実行可能な限度及び/または快適限度内で車両が動作していることを保証するために使用されることができる。
【0077】
いくつかの例では、原因タイプ1及び原因タイプ2は、車両の故障またはオブジェクト(例えば、自転車運転者)の故障などの故障を示すことができる。車両性能コンポーネント130は、所定のルール/アサーションを使用して故障を判定することができる。例として、限定されないが、ルールは、車両が車両の後方のオブジェクトによって衝撃を受けた場合、故障がオブジェクトに関連付けられ得ることを示すことができる。いくつかの例では、車両が後方のオブジェクトによって衝撃を受けたときに前方方向に環境を横断しなければならないことを示すような、追加のルールを使用することができる。いくつかの例では、原因タイプ(例えば、原因タイプ1及び/または原因タイプ2)は、自律車両コントローラのコンポーネントに関連付けられ得る。非限定的な例として、そのような原因は、知覚システム、予測システム、プランナシステム、ネットワークレイテンシー、トルク/加速障害、及び/または車両の任意の他のコンポーネントまたはサブコンポーネントの障害を含み得る。
【0078】
上述したように、分析コンポーネントは、シミュレーションデータ126に基づいて、シナリオパラメータを無効にする(例えば、シナリオパラメータに関連付けられた固定値を設定する)ことを決定し、他のシナリオパラメータを変化させることができる。シナリオパラメータを分離することにより、分析コンポーネントは、成功または失敗の結果に関連付けられたシナリオパラメータを決定することができる。車両性能データ132は、パラメータ化シナリオに関連付けられた安全性メトリックを示すことができる。また、分析コンポーネントは感度分析を実行して障害の原因を決定することができる。例えば、分析コンポーネントは、シナリオパラメータを個別に無効にして、1つまたは複数のシナリオパラメータを分離し、シナリオパラメータを無効にすることが自律走行車の応答にどのように影響するかを決定し、1つまたは複数のシナリオパラメータを無効にすることに関連付けられた統計データをキャプチャし、結果を成功または失敗の結果としてキャプチャすることができる。統計データは、シナリオパラメータのセットが結果にどのように影響するかを示すことができ、成功するシミュレーションをもたらす可能性を増加または減少させるシナリオパラメータを決定するために使用されることができ、及びシミュレーションデータの成功率を増加または減少させるものとしてシナリオパラメータに関連付けられた自律車両のサブシステムを識別するために使用されることができる。
【0079】
図7は、本明細書で説明される技法を実装するための例示的なシステム700のブロック図を示す。少なくとも1つの例では、システム700は車両202を含むことができる。図示の例700では、車両202は自律車両であるが、車両202は任意の他のタイプの車両(例えば、様々な操作を行うことが安全であるかどうかのインジケーションを提供し得るドライバー制御車両)とすることができる。
【0080】
車両202は、コンピューティングデバイス702、1つまたは複数のセンサシステム704、1つまたは複数のエミッタ706、1つまたは複数の通信接続部708(通信デバイス及び/またはモデムとも呼ばれる)、少なくとも1つの直接接続部710(例えば、データを交換するため、及び/または電力を提供するために車両202と物理的に結合するための)、及び1つまたは複数の駆動システム712を含むことができる。1つまたは複数のセンサシステム704は、環境に関連付けられたセンサデータをキャプチャするように構成され得る。
【0081】
センサシステム704は、飛行時間センサ、位置センサ(例えば、GPS、コンパスなど)、慣性センサ(例えば、慣性測定装置(IMU)、加速度計、磁力計、ジャイロスコープなど)、lidarセンサ、radarセンサ、sonarセンサ、赤外線センサ、カメラ(例えば、RGB、IR、強度、深度など)、マイクセンサ、環境センサ(例えば、温度センサ、湿度センサ、光センサ、圧力センサなど)、超音波トランスデューサー、ホイールエンコーダなどを含むことができる。センサシステム704は、これらまたは他のタイプのセンサのそれぞれの複数のインスタンスを含むことができる。例えば、飛行時間センサは、車両202の角、前部、後部、側面、及び/または上部に配置された個々の飛行時間センサを含むことができる。別の例として、カメラセンサは、車両202の外部及び/または内部の周りの様々な位置に配置された複数のカメラを含むことができる。センサシステム704はコンピューティングデバイス702に入力を提供できる。
【0082】
車両202はまた、光及び/または音を放出するための1つまたは複数のエミッタ706を含むことができる。この例における1つまたは複数のエミッタ706は、車両202の乗客と通信するための内部オーディオ及びビジュアルエミッタを含む。例示の目的で、限定ではなく、内部エミッタは、スピーカー、光、サイン、ディスプレイスクリーン、タッチスクリーン、触覚エミッタ(例えば、振動及び/またはフォースフィードバック)、機械式アクチュエータ(例えば、シートベルトテンショナー、シートポジショナー、ヘッドレストポジショナーなど)などを含むことができる。この例における1つまたは複数のエミッタ706はまた、外部エミッタを含む。限定ではなく例として、この例における外部エミッタは、走行の方向または車両の動作の他のインジケータ(例えば、インジケータライト、サイン、光アレイなど)を信号で送るための光、及び音響ビームステアリング技術を備え得る1つまたは複数の歩行者または他の近くの車両と音声で通信するための1つまたは複数のオーディオエミッタ(例えば、スピーカー、スピーカーアレイ、ホーンなど)を含む。
【0083】
車両202はまた、車両202と1つ以上の他のローカルまたはリモートコンピューティングデバイス(例えば、リモートテレオペレーションコンピューティングデバイス)またはリモートサービスとの間の通信を可能にする1つまたは複数の通信接続部708を含むことができる。例えば、通信接続部708は車両202及び/または駆動システム712上の他のローカルコンピューティングデバイスとの通信を容易にし得る。また、通信接続部708は、車両202が他の近くのコンピューティングデバイス(例えば、他の近くの車両、交通信号など)と通信することを可能にする。
【0084】
通信接続部708は、コンピューティングデバイス702を別のコンピューティングデバイスまたは1つ以上の外部ネットワーク714(例えば、インターネット)に接続するための物理及び/または論理インターフェースを含むことができる。例えば、通信接続部708は、IEEE802.11規格によって定義された周波数を介するようなWi-Fiベースの通信、Bluetoothなどの短距離無線周波数、セルラー通信(例えば、2G、3G、4G、4G LTE、5Gなど)、衛星通信、専用狭域通信(DSRC)、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースで接続することを可能にする任意の適切な有線または無線通信プロトコルを可能にし得る。少なくともいくつかの例では、通信接続部708は、上記で詳述したように、1つ以上のモデムを備え得る。
【0085】
少なくとも1つの例では、車両202は、1つ以上の駆動システム712を含むことができる。いくつかの例では、車両202は、単一の駆動システム712を有することができる。少なくとも1つの例では、車両202が複数の駆動システム712を有する場合、個々の駆動システム712は、車両202の対向する端部(例えば、前部及び後部など)に配置され得る。少なくとも1つの例では、駆動システム712は、駆動システム712及び/または車両202の周囲の状態を検出するための1つまたは複数のセンサシステム704を含むことができる。限定ではなく例として、センサシステム704は、駆動システムのホイールの回転を感知するための1つまたは複数のホイールエンコーダ(例えばロータリーエンコーダ)、駆動システムの方向と加速度を測定するための慣性センサ(例えば、慣性測定ユニット、加速度計、ジャイロスコープ、磁力計など)、カメラまたはその他の画像センサ、駆動システムの周囲のオブジェクトを音響的に検出するための超音波センサ、lidarセンサ、radarセンサなどを含むことができる。ホイールエンコーダなどのあるセンサは、駆動システム712に固有とすることができる。いくつかのケースでは、駆動システム712上のセンサシステム704は、車両202の対応するシステム(例えば、センサシステム704)と重複または補足することができる。
【0086】
駆動システム712は、高電圧バッテリ、車両を推進するモータ、バッテリからの直流を他の車両システムで使用する交流に変換するインバーター、ステアリングモータ及びステアリングラック(電動とすることができる)を含むステアリングシステム、油圧または電気アクチュエータを含むブレーキシステム、油圧及び/または空気圧コンポーネントを含むサスペンションシステム、トラクションの損失を軽減し制御を維持するブレーキ力分散用の安定性制御システム、HVACシステム、照明(例えば、車両の外周を照らすヘッドライト/テールライトなどの照明)、及び1つまたは複数の他のシステム(例えば、冷却システム、安全システム、車載充電システム、DC/DCコンバータ、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートなどの他の電装コンポーネント)を含めて、多くの車両システムを含むことができる。また、駆動システム712は、センサシステム704からデータを受信して前処理し、様々な車両システムの操作を制御することができる駆動システムコントローラを含むことができる。いくつかの例では、駆動システムコントローラは、1つ以上のプロセッサと、1つ以上のプロセッサと通信可能に結合されたメモリとを含むことができる。メモリは、駆動システム712の様々な機能を実行するための1つまたは複数のモジュールを格納することができる。さらに、駆動システム712はまた、それぞれの駆動システムによる、1つ以上の他のローカルまたはリモートコンピューティングデバイスとの通信を可能にする1つ以上の通信接続部も含む。
【0087】
コンピューティングデバイス702は、1つ以上のプロセッサ516と、及び1つ以上のプロセッサ716と通信可能に結合されたメモリ518とを含むことができる。例示される例では、コンピューティングデバイス702のメモリ718は、ローカリゼーションコンポーネント720、知覚コンポーネント722、予測コンポーネント724、プランニングコンポーネント726、及び1つまたは複数のシステムコントローラ728を格納する。例示の目的でメモリ718内に存在するものとして示されているが、ローカリゼーションコンポーネント720、知覚コンポーネント722、予測コンポーネント724、プランニングコンポーネント726、及び1つまたは複数のシステムコントローラ728は、追加的に、または代替的に、コンピューティングデバイス702にアクセス可能である(例えば、車両202の異なるコンポーネントに格納されている)、及び/または車両202にアクセス可能である(例えば、遠隔に格納されている)ことができる、ことが企図される。
【0088】
コンピューティングデバイス702のメモリ718において、ローカリゼーションコンポーネント720は、センサシステム704からデータを受信して車両202の位置を決定する機能を含むことができる。例えば、ローカリゼーションコンポーネント720は、環境の3次元マップを含み、及び/または要求/受信でき、マップ内の自律車両の位置を継続的に決定することができる。いくつかの例では、ローカリゼーションコンポーネント720は、SLAM(simultaneous localization and mapping)またはCLAMS(calibration, localization and mapping, simultaneously)を使用し、飛行時間データ、画像データ、lidarデータ、radarデータ、sonarデータ、IMUデータ、GPSデータ、ホイールエンコーダデータ、またはそれらの任意の組み合わせなどを受信して、自律車両の位置を正確に決定することができる。いくつかの例では、ローカリゼーションコンポーネント720は、本明細書で論じられるように、車両202の様々なコンポーネントにデータを提供し、軌道を生成するための自律車両の初期位置を決定できる。
【0089】
知覚コンポーネント722は、オブジェクトの検出、セグメンテーション、及び/または分類を実行するための機能を含むことができる。いくつかの例では、知覚コンポーネント722は、車両202に近接するエンティティの存在及び/またはエンティティタイプ(例えば、自動車、歩行者、自転車運転者、建物、木、路面、縁石、歩道、不明など)としてのエンティティの分類を示す処理済みセンサデータを提供することができる。追加及び/または代替の例では、知覚コンポーネント722は、検出されたエンティティ及び/またはエンティティが配置されている環境に関連付けられた1つまたは複数の特性(パラメータとも呼ばれる)を示す処理済みセンサデータを提供することができる。いくつかの例では、エンティティに関連付けられた特性は、x位置(グローバル位置)、y位置(グローバル位置)、z位置(グローバル位置)、方向、エンティティタイプ(例えば、分類など)、エンティティの速度、エンティティの範囲(サイズ)などを含むことができるが、これらに限定されない。環境に関連付けられた特性は、環境内の別のエンティティの存在、環境内の別のエンティティの状態、時刻、曜日、季節、気象条件、地理的位置、暗闇/光の表示などを含むことができるが、これらに限定されない。
【0090】
知覚コンポーネント722は、知覚コンポーネント722によって生成された知覚データを格納する機能を含むことができる。いくつかの例では、知覚コンポーネント722は、オブジェクトタイプとして分類されたオブジェクトに対応するトラックを判定することができる。例示のみを目的として、センサシステム704を使用する知覚コンポーネント722は、環境の1つまたは複数の画像をキャプチャすることができる。センサシステム704は、歩行者などのオブジェクトを含む環境の画像をキャプチャすることができる。歩行者は、時間Tにおける第1の位置に、時間T+tにおける第2の位置(例えば、時間Tの後の時間tのスパン中の移動)にいることができる。換言すれば、歩行者は、この時間期間中に第1の位置から第2の位置まで移動することができる。そのような移動は、例えば、オブジェクトに関連付けられた格納された知覚データとしてログに格納され得る。
【0091】
格納された知覚データは、いくつかの例では、車両によってキャプチャされた融合知覚データ(fused perception data)を含むことができる。融合知覚データは、画像センサ、lidarセンサ、radarセンサ、飛行時間センサ、sonarセンサ、グローバルポジショニングシステムセンサ、内部センサ、及び/またはこれらの任意の組み合わせなどのセンサシステム704からのセンサデータの融合または他の組み合わせを含むことができる。格納された知覚データは、追加的または代替的に、センサデータに表されるオブジェクト(例えば、歩行者、車両、建物、路面など)の意味分類を含む分類データを含むことができる。格納された知覚データは、追加的または代替的に、環境を通る動的オブジェクトとして分類されるオブジェクトの動きに対応するトラックデータ(経時的なオブジェクトに関連付けられた履歴的な位置、方向、センサ特徴などの集合)を含むことができる。トラックデータは、経時的に複数の異なるオブジェクトの複数のトラックを含むことができる。このトラックデータは、オブジェクトが止まっている(例えば、静止している)または移動している(例えば、歩行、走行など)時に、特定のタイプのオブジェクト(例えば、歩行者、動物など)の画像を識別するためにマイニングされ得る。この例では、コンピューティングデバイスは、歩行者に対応するトラックを決定する。
【0092】
予測コンポーネント724は、環境内の1つまたは複数のオブジェクトの可能な位置の予測確率を表す1つまたは複数の確率マップを生成することができる。例えば、予測コンポーネント724は、車両202から閾値距離内にある車両、歩行者、動物などのための1つまたは複数の確率マップを生成することができる。いくつかの例では、予測コンポーネント724は、オブジェクトのトラックを測定し、観測された及び予測された挙動に基づいて、オブジェクトの、離散化された予測確率マップ、ヒートマップ、確率分布、離散化された確率分布、及び/または軌道を生成することができる。いくつかの例では、1つまたは複数の確率マップは、環境内の1つまたは複数のオブジェクトの意図を表すことができる。
【0093】
プランニングコンポーネント726は、環境を通り横断するために車両202が辿る経路を決定することができる。例えば、プランニングコンポーネント726は、様々なルート並びに経路及び様々なレベルの詳細を決定することができる。いくつかの例では、プランニングコンポーネント726は、第1の位置(例えば、現在の位置)から第2の位置(例えば、ターゲット位置)へ走行するルートを決定することができる。本説明のために、ルートは2つの位置の間を走行するための一連のウェイポイントであってよい。非限定的な例として、ウェイポイントは、道路、交差点、全地球測位システム(GPS)座標などを含む。さらに、プランニングコンポーネント726は、第1の位置から第2の位置へのルートの少なくとも一部に沿って自律車両をガイドするための命令を生成することができる。少なくとも1つの例において、プランニングコンポーネント726は、自律車両を一連のウェイポイントの第1のウェイポイントから一連のウェイポイントの第2のウェイポイントまでどのようにガイドすべきかを決定することができる。いくつかの例では、命令は経路または経路の一部であってよい。いくつかの例では、複数の経路は、receding horizon技術に従って、実質的に同時に(すなわち、技術的許容範囲内で)生成されてよい。最も高い信頼水準を有するreceding data horizonにおける複数の経路のうちの単一の経路を、車両を操作するために選択できる。
【0094】
他の例では、プランニングコンポーネント726は、代替的にまたは追加的に、知覚コンポーネント722からのデータを使用して、車両202が環境を通り横断するために辿る経路を決定することができる。例えば、プランニングコンポーネント726は、知覚コンポーネント722から、環境に関連付けられたオブジェクトに関するデータを受信することができる。このデータを使用して、プランニングコンポーネント726は、環境内のオブジェクトを回避するための、第1の位置(例えば、現在の位置)から第2の位置(例えば、ターゲット位置)まで移動する経路を決定することができる。少なくともいくつかの例では、そのようなプランニングコンポーネント726は、そのような衝突のない経路がないと判定し、次に車両202を全ての衝突を回避する及び/またはそうでなければ損傷を軽減する安全な停止へ導く経路を提供し得る。
【0095】
少なくとも1つの例では、コンピューティングデバイス702は、1つまたは複数のシステムコントローラ728を含むことができ、これは、車両202のステアリング、推進、ブレーキ、安全、エミッタ、通信、及び他のシステムを制御するように構成され得る。これらのシステムコントローラ728は、駆動システム712の対応するシステム及び/または車両202の他のコンポーネントと通信し、及び/または制御でき、これらは、プランニングコンポーネント726から提供される経路に従って動作するように構成され得る。
【0096】
車両202は、コンピューティングデバイス204にネットワーク514を介して接続でき、及び1つまたは複数のプロセッサ730と、1つまたは複数のプロセッサ730と通信可能に結合されたメモリ732とを含むことができる。少なくとも1つの例では、1つまたは複数のプロセッサ730は、プロセッサ716と類似していてよく、メモリ732はメモリ718と類似していてよい。例示される例では、コンピューティングデバイス204のメモリ732は、シナリオエディタコンポーネント108、パラメータコンポーネント112、誤差モデルコンポーネント116、パラメータ化シナリオコンポーネント120、シミュレーションコンポーネント124、分析コンポーネント128、及び車両性能コンポーネント130を格納する。例示的な目的でメモリ732内に存在するように描写されるが、シナリオエディタコンポーネント108、パラメータコンポーネント112、誤差モデルコンポーネント116、パラメータ化シナリオコンポーネント120、シミュレーションコンポーネント124、分析コンポーネント128、及び車両性能コンポーネント130は、追加的にまたは代替的に、コンピューティングデバイス204にアクセス可能であること(例えば、コンピューティングデバイス204の異なるコンポーネントに格納される)、及び/またはコンピューティングデバイス204にアクセス可能であること(例えば、リモートに格納されている)が企図される。シナリオエディタコンポーネント108、パラメータコンポーネント112、誤差モデルコンポーネント116、パラメータ化シナリオコンポーネント120、シミュレーションコンポーネント124、分析コンポーネント128、及び車両性能コンポーネント130は、図1のシナリオエディタコンポーネント108、パラメータコンポーネント112、誤差モデルコンポーネント116、パラメータ化シナリオコンポーネント120、シミュレーションコンポーネント124、分析コンポーネント128、及び車両性能コンポーネント130と実質的に同様とすることができる。
【0097】
コンピューティングデバイス702のプロセッサ716及びコンピューティングデバイス204のプロセッサ730は、本明細書で説明されるように、データを処理し動作を実施するための命令を実行可能な任意の適切なプロセッサとすることができる。限定ではなく例として、プロセッサ716及び730は、1つまたは複数の中央処理装置(CPU)、グラフィック処理装置(GPU)、または電子データを処理して当該電子データをレジスタまたはメモリに格納できる他の電子データに変換する任意の他のデバイス若しくはデバイスの一部を含むことができる。いくつかの例で、集積回路(例えば、ASICなど)、ゲートアレイ(例えば、FPGAなど)、及び他のハードウェアデバイスはまた、それらがエンコードされた命令を実装するよう構成される限り、プロセッサとみなすことができる。
【0098】
コンピューティングデバイス702のメモリ718及びコンピューティングデバイス204のメモリ732は、非一時的コンピュータ可読媒体の例である。メモリ718及び732は、本明細書に記載の方法及び様々なシステムに起因する機能を実装する、オペレーティングシステム及び1つまたは複数のソフトウェアアプリケーション、命令、プログラム、及び/またはデータを格納することができる。様々な実装では、メモリ718及び732は、スタティックランダムアクセスメモリ(SRAM)、シンクロナスダイナミックRAM(SDRAM)、不揮発性/フラッシュタイプメモリ、または情報を格納可能な任意の他のタイプのメモリなどの任意の適切なメモリ技術を用いて実装され得る。本明細書で説明されるアーキテクチャ、システム、及び個々の要素は、多くの他の論理的、プログラム的、及び物理的なコンポーネントを含むことができ、添付図面に示されるそれらは本明細書での説明に関連する単なる例にすぎない。
【0099】
いくつかの例では、本明細書で説明されるコンポーネントのいくつかまたは全ての態様は、任意のモデル、アルゴリズム、及び/または機械学習アルゴリズムを含むことができる。例えば、いくつかの例では、メモリ718及び732内のコンポーネントを、ニューラルネットワークとして実装できる。
【0100】
図8は、車両コントローラに関連付けられた安全性メトリックを決定するための例示的なプロセス800を示す。プロセス800の一部または全ては、本明細書に記載されるように、図1図7の1つまたは複数のコンポーネントによって実行することができる。例えば、プロセス800の一部または全ては、コンピューティングデバイス204及び/またはコンピューティングデバイス702によって実行できる。
【0101】
例示的なプロセス800の操作802において、プロセス800は、環境内の自律車両における動作に関連付けられるログデータを受信することを含むことができる。いくつかの例では、ログデータは、少なくとも環境のセンサデータをキャプチャする車両によって生成され得る。
【0102】
例示的なプロセス800の操作804にて、プロセス800は、ログデータ(または他のデータ)に基づいて、シナリオのセットを決定することを含むことができ、シナリオのセットのシナリオは、環境の態様に関連付けられたシナリオパラメータを含むことができる。いくつかの例では、コンピューティングデバイスは、ログデータ内に表される類似のシナリオをグループ化することができる。例えば、シナリオは、例えば、環境のパラメータ間の加重距離(例えば、ユークリッド)をK平均法クラスタリング及び/または評価することを使用して一緒にグループ化することができる。また、シナリオパラメータは、夜間環境パラメータまたは湿潤条件環境パラメータなどの環境パラメータを表すことができる。いくつかの例では、シナリオパラメータは、車両またはオブジェクト(例えば、ポーズ、速度など)に関連付けられ得る。
【0103】
例示的なプロセス800の操作806において、プロセス800は、自律車両のサブシステムに関連付けられた誤差モデルを決定することを含むことができる。誤差モデルコンポーネントは、車両データ(例えば、ログデータ)をグラウンドトゥルースデータと比較して、車両データとグラウンドトゥルースデータとの間の差を決定することができる。いくつかの例では、車両データは、推定位置、推定方向、推定範囲などの環境内のオブジェクトに関連付けられた推定値を表すことができ、グラウンドトゥルースデータは、オブジェクトの実際の位置、実際の方向、または実際の範囲を表すことができる。その差に基づいて、誤差モデルコンポーネントは、車両のサブシステム(例えば、知覚システム、追跡システム、予測システムなど)に関連付けられた誤差を決定することができる。
【0104】
例示的なプロセス800の操作808において、プロセス800は、シナリオパラメータ及び誤差モデルに基づいて、パラメータ化シナリオを決定することを含むことができる。これらを組み合わせて、シナリオパラメータ及び/または誤差モデルによって提供されるバリエーションをカバーできるパラメータ化シナリオを作成することができる。いくつかの例では、シナリオパラメータをランダムに選択して組み合わせて、パラメータ化シナリオを作成することができる。いくつかの例では、シナリオパラメータは、同時に発生する確率に基づいて組み合わせることができる。例として、限定されないが、ログデータは、運転経験者の5%が歩行者遭遇を含むことを示すことができ、パラメータ化シナリオコンポーネントは、パラメータ化シナリオコンポーネントによって生成されたパラメータ化シナリオの5%において、シナリオパラメータとして歩行者を含むことができる。いくつかの例では、パラメータ化シナリオコンポーネントは、パラメータ化シナリオを検証して、シナリオパラメータの見込みのないまたはありそうもない組み合わせを削減することができる。例として、限定されないが、車両は湖の中に位置しておらず、歩行者は毎秒30メートルの速度で歩いていない。非限定的な例として、そのようなパラメータ化シナリオは、シナリオパラメータに少なくとも部分的に基づいて、知覚モデル、予測モデルなどの誤差の様々なガウス分布(または他の分布)を有する特定の定義された道路における車両及びジェイウォーカーの距離、速度、照明条件、気象条件等の範囲を含み得る。
【0105】
例示的なプロセス800の操作810において、プロセス800は、誤差に少なくとも部分的に基づいて、パラメータ化シナリオ、シナリオパラメータ、またはシミュレートされた車両のコンポーネントの少なくとも1つを修正することによって、パラメータ化シナリオに摂動を与えることを含むことができる。いくつかの例では、不確実性は、シナリオパラメータに関連付けられ得る。例として、限定されないが、オブジェクトの位置を5%の不確実性に関連付け、5%の不確実性を考慮しながら自律コントローラに環境をトラバースさせることができる。いくつかの例では、シミュレータは、シミュレータがシミュレーションを実行する際に、シミュレーションに組み込む誤差を誤差モデルから決定することができる。
【0106】
例示的なプロセス800の操作812において、プロセス800は、摂動を与えられたパラメータ化シナリオにおいてシミュレートされた車両をインスタンス化することを含むことができる。シミュレータは、自律コントローラに関連付けることができるシミュレートされた車両を使用し、自律コントローラにシミュレート環境をトラバースさせることができる。パラメータ化シナリオで自律車両コントローラをインスタンス化し、パラメータ化シナリオをシミュレートすることは、バリエーションの手動列挙を必要とせずに、シナリオの幅広いバリエーションを効率的にカバーすることができる。加えて、パラメータ化シナリオを実行することに少なくとも部分的に基づいて、シミュレーションデータは、自律車両コントローラがパラメータ化シナリオにどのように応答したかを示し、シミュレーションデータに少なくとも部分的に基づいて、成功した結果または失敗した結果を判定することができる。
【0107】
例示的なプロセス800の操作814において、プロセスは、シミュレートされた車両が摂動を与えられたパラメータ化シナリオにどのように応答するかを示すシミュレーションデータを受信することを含むことができる。シミュレーション後、結果は、車両コントローラに関連付けられた合格(例えば、成功した結果)、失敗、及び/または成功または失敗の程度を示すことができる。
【0108】
例示的なプロセス800の操作816において、プロセスは、シミュレーションデータに基づいて、車両コントローラに関連付けられた安全性メトリックを決定することを含むことができる。例えば、各シミュレーションは、成功または失敗の結果をもたらすことができる。また、上述したように、車両性能コンポーネントは、シミュレーションデータに基づいて、車両が環境内でどのように実行するかを示すことができる車両性能データを決定することができる。感度分析に基づいて、車両性能データは、シミュレーションの結果が成功しなかったシナリオ、シミュレーションの失敗の原因、及び/またはシミュレーションの結果が成功したシナリオパラメータの値を示すシナリオパラメータの境界を示すことができる。したがって、安全性メトリックは、様々なシミュレートされたシナリオ内の車両コントローラの合格/不合格率を示すことができる。
【0109】
図9は、自律車両のサブシステムに関連付けられた統計モデルを決定するための例示的なプロセスのフロー図を示している。プロセス900の一部または全ては、本明細書に記載されるように、図1図7の1つまたは複数のコンポーネントによって実行することができる。例えば、プロセス900の一部または全ては、コンピューティングデバイス204及び/またはコンピューティングデバイス702によって実行できる。
【0110】
例示的なプロセス900の操作902において、プロセス900は、自律車両のサブシステムに関連付けられた車両データ(または他のデータ)を受信することを含むことができる。車両データは、環境を通って走行する車両によってキャプチャされるログデータを含むことができる。いくつかの例では、車両データは、制御データ(例えば、ステアリング、ブレーキなどのシステムを制御するために使用されるデータ)及び/またはセンサデータ(例えば、lidarデータ、radarデータなど)を含むことができる。
【0111】
例示的なプロセス900の操作904において、プロセス900は、車両データに基づいて、サブシステムに関連付けられた出力データを決定することを含むことができる。例として、限定されないが、サブシステムは知覚システムとすることができ、出力データは環境内のオブジェクトに関連付けられたバウンディングボックスとすることができる。
【0112】
例示的なプロセス900の操作906において、プロセス900は、サブシステムに関連付けられたグラウンドトゥルースデータを受信することを含むことができる。いくつかの例では、グラウンドトゥルースデータは、手動でラベル付けされ、及び/または他の検証された機械学習コンポーネントから決定されることができる。例として、限定されないが、グラウンドトゥルースデータは、環境内のオブジェクトに関連付けられた検証されたバウンディングボックスを含むことができる。
【0113】
例示的なプロセス900の操作908において、プロセス900は、出力データの第1の部分とグラウンドトゥルースデータの第2の部分との間の差を決定することを含むことができ、差はサブシステムに関連付けられた誤差を表す。上述したように、出力データは、車両の知覚システムによって検出された、環境内のオブジェクトによって検出されるように、環境内のオブジェクトに関連付けられたバウンディングボックスを含むことができ、グラウンドトゥルースデータは、オブジェクトに関連付けられた検証済みのバウンディングボックスを含むことができる。2つのバウンディングボックス間の差は、車両の知覚システムに関連付けられた誤差を示すことができる。例として、限定されないが、出力データのバウンディングボックスは、検証済みのバウンディングボックスよりも大きくすることができ、知覚システムがオブジェクトが環境内のものよりも大きいことを検出していることを示す。
【0114】
例示的なプロセス900の操作910において、プロセス900は、差に基づいて、サブシステムに関連付けられた統計モデルを決定することを含むことができる。
【0115】
図10は、誤差確率に関連付けられた環境の複数の領域の例1000を示す。上述したように、誤差モデルは、環境に関連付けられた1つ以上のパラメータを示すことができ、誤差モデルは、1つ以上のパラメータに関連付けられた確率及び/または誤差分布を示すことができる。誤差は、車両によって生成された環境に関連付けられたデータと実際の環境(または環境を表すグラウンドトゥルースデータ)との間の差異を表すことができる。例えば、誤差は、環境内のオブジェクトのサイズ、位置、及び/または速度の差、またはオブジェクトが環境内で検出されたかどうかを示すことができる。いくつかの例では、誤差は、車両によって生成されたオブジェクト(例えば、歩行者、自転車運転者、車両、標識、静的オブジェクト、動的オブジェクトなど)の分類とオブジェクトの実際の分類との間の差異を示すことができる。いくつかの例では、誤差は、オブジェクトの予測軌道とオブジェクトの実際の軌道との間の差異を示すことができる。
【0116】
例1000は、誤差に関連付けられた確率、及びセンサと環境内の領域との間の距離、または環境内のオブジェクトのタイプなどの要因が、そのような確率にどのように影響を与えることができるかを示す。
【0117】
例として、限定されないが、領域1002は、車両210の視線内にある環境の一部に関連付けることができる。例えば、領域1002と車両210との間の距離に少なくとも部分的に基づいて、誤差モデルは、誤差1006(1)に関連付けられた確率1004(1)を示すことができる。例えば、領域1002と車両210との間の比較的近い距離は、車両210から比較的遠い環境の領域でのセンサデータと比較して、センサデータの精度、正確さ、及び/または密度の増加に起因する誤差の確率を低下させることができる。
【0118】
さらに、環境条件は、誤差の確率に影響を与える可能性がある。例として、限定されないが、車両210によって知覚されるが、環境に存在しないオブジェクトに関連付けられた誤差1006(1)(例えば、偽陽性誤差)の確率1004(1)は、暗闇、雨、雪などの環境条件中の偽陽性誤差に関連付けられた確率1004(1)と比較して、理想的な条件(例えば、良好な照明、晴天など)中に低くなり得る。
【0119】
別の例として、限定されないが、領域1008は、車両210の視線内にあり、オブジェクト212に関連付けられている環境の一部に関連付けられ得る。例えば、領域1008と車両210との間の距離及び/またはオブジェクト212に関連付けられた分類に少なくとも部分的に基づいて、誤差モデルは、誤差1006(2)に関連付けられた確率1004(2)を示すことができる。例として、限定されないが、車両210は、知覚データに基づいて、オブジェクト212に関連付けられたサイズを決定することができる。誤差モデルは、オブジェクト212の実際のサイズが知覚データによって示されるものの2倍であるという誤差1006(2)の確率1004(2)が、オブジェクト212の実際のサイズが知覚データによって示されるものよりもごくわずかに大きいという誤差1006(2)の確率1004(2)よりも低いことを示すことができる。
【0120】
別の例として、限定されないが、領域1010は、オブジェクト212によって塞がれる、または部分的に塞がれる環境の一部に関連付けられ得る。例えば、塞がれる領域1010の量に少なくとも部分的に基づいて、誤差モデルは、誤差1006(3)に関連付けられる確率1004(3)を示すことができる。例として、限定されないが、車両210によって認識されない(省略されるとも称される)が、環境に存在する(例えば、偽陰性誤差)オブジェクトに関連付けられた誤差1006(3)の確率1004(3)は、領域1010の閉塞または部分的閉塞に起因する領域1002での偽陰性誤差に関連付けられた誤差1006(1)の確率1004(1)と比較して高くなり得る。
【0121】
別の例として、限定されないが、領域1012は、車両210の視線内にあり、オブジェクト1014に関連付けられている環境の一部に関連付けられ得る。例えば、領域1012と車両210との間の距離及び/またはオブジェクト1014に関連付けられた分類に少なくとも部分的に基づいて、誤差モデルは、誤差1006(4)に関連付けられた確率1004(4)を示すことができる。例として、限定されないが、車両210は、知覚データに基づいて、オブジェクト1014に関連付けられたポーズを決定することができる。誤差モデルは、オブジェクト1014の実際のポーズが、知覚データによって示されるポーズと異なるという誤差1006(4)の確率1004(4)を示すことができる。いくつかの例では、領域1012と関連付けられた誤差1006(4)の確率1004(4)は、領域1008と車両210との間の距離と比較して、領域1012と車両210との間の距離の増加に起因して、誤差1006(2)の確率1004(2)よりも高くなり得る。さらに、誤差1006(4)及び1006(2)は、オブジェクト212及び1014に関連付けられた分類に基づいて変化し得る。すなわち、誤差モデルは、分類、距離、環境要因などに基づいて条件付けられてもよい。
【0122】
確率1004(1)、1004(2)、1004(3)、並びに1004(4)、及び誤差1006(1)、1006(2)、1006(3)、並びに1006(4)を示す誤差モデルは、車両202によって生成された車両データ104に少なくとも部分的に基づいて生成され得る。例えば、車両202は、環境及び時間に関連付けられた車両データ104を生成することができる。車両データ104は、センサデータ、知覚データ、予測データなどを含むことができる。上述したように、誤差モデルコンポーネント116は、車両データ104及びグラウンドトゥルースデータ302を受信して、車両データ104とグラウンドトゥルースデータ302との間の差を判定することができる。差分は、車両データ104の誤差を示すことができる。上述したように、誤差は、オブジェクトの分類、オブジェクトのサイズ、オブジェクトの位置、オブジェクトの速度、及び/または環境内のオブジェクトの軌道の差に関連付けられ得る。いくつかの例では、差は、オブジェクトが実際に存在しないときにオブジェクトが環境内に存在することを示す車両データ104に関連付けられ得(例えば、偽陽性誤差)、いくつかの例では、差は、オブジェクトが実際に存在するときにオブジェクトが環境内に存在しない(例えば、省略される)ことを示す車両データ104に関連付けられ得る(例えば、偽陰性誤差)。
【0123】
いくつかの例では、車両データ104は、複数の環境に関連付けられたデータを含むことができ、誤差モデルコンポーネント116は、1つ以上の誤差に関連付けられた頻度(発生頻度とも呼ばれる)を決定することができる。例として、限定されないが、車両データ104とグラウンドトゥルースデータ302との間の差及び差の頻度に基づいて、誤差モデルは、環境内の実際の縁石よりも2cm高い縁石の高さを表す車両データ104の確率が、実際の縁石よりも1m高い縁石の高さを表す車両データ104の確率よりも高いことを示し得、差及び確率は、誤差モデル内の分布として表すことができる。
【0124】
少なくともいくつかの例では、限定されるわけではないが、車両の速度、位置、オブジェクトの位置、速度、オブジェクトの分類、天候、時間などの様々な環境パラメータは、測定値を様々なカテゴリに(例えば、k平均、決定木、他の適切なクラスタリングアルゴリズムなどを使用して)クラスタリングするために、誤差と併せて使用されてもよい。それぞれのクラスタ内の測定値を集約して、クラスタに関連付けられた誤差分布を判定することができる。次に、運転するとき、車両は、現在観察されている最も近い環境パラメータを有するクラスタを選択し、次に、関連する誤差モデルを使用し得る。
【0125】
いくつかの例では、機械学習モデルを使用して分布適合性(distribution fit)を決定することができる。例として、限定されないが、車両データ104とグラウンドトゥルースデータ302との間の差は、離散点を表すことができる。機械学習モデルは、離散点に基づいて、1つ以上の分布を離散点に適合させることによって分布を決定することができる。いくつかの例では、分布は、離散分布(例えば、対数分布、ポアソン分布など)、ベルヌーイ分布、連続分布(例えば、一般化正規分布、ガウス分布など)、混合離散/連続分布、合同分布などであり得る。もちろん、いくつかの例では、特定のクラスタに関連付けられた測定データのヒストグラム(または同様のもの)は、分布の最良の適合を決定することに加えて/代替的に記憶されてもよい。
【0126】
いくつかの例では、クラスタリングアルゴリズムを使用して、車両データ104をクラスタリングすることができる。例として、限定されないが、車両データ104は、オブジェクトに関連付けられた分類、1日のうちの時間、車両202によって検出される可視光の量、天候条件(例えば、日照、オーバーキャスト、降水、霧など)、車両202の速度、車両202のポーズ、及び/または環境の領域に基づいてクラスタリングされ得る。クラスタリングアルゴリズムは、例えば、クラス固有のクラスタリング、k平均アルゴリズム、期待最大化アルゴリズム、多変量正規分布などを含むことができる。
【0127】
クラスタ化された車両データ104は、クラスタ化された車両データ104の車両データクラスタに関連付けられた分布を決定するために使用され得る。例として、限定されないが、クラス固有のクラスタリングは、分類(例えば、歩行者、車両など)によって車両データ104に表されるオブジェクトをクラスタリングすることを含み得、歩行者クラスタに関連付けられた分布は、歩行者誤差モデルとして使用され得、車両クラスタに関連付けられた分布は、車両誤差モデルとして使用され得る。
【0128】
図11は、車両データ、車両データによって表される環境、及び車両データと環境との間の差異の例1100を示す。概して、例1100は、真陽性誤差(true positive error)、偽陰性誤差(false negative error)、偽陽性誤差(false positive error)、及び真陰性状況(true negative situation)(誤差なし)の状況の行列を例示しており、それぞれは、本開示を通じて以下で説明される。
【0129】
例1102は、環境1106(1)に関連付けられた車両データ1104(1)を示す。例1102に例示されるように、車両データ1104(1)は、環境1106(1)内の車両によって知覚されるオブジェクト(例えば、オブジェクト1110)に関連付けられ得る知覚データ1108を含むことができる。しかしながら、環境1106(1)に描写されるように、知覚データ1108は、関連付けられたオブジェクト1110の位置、分類、サイズなど、オブジェクト1110に関連付けられた属性値を不正確に示し得る。したがって、これは真陽性シナリオとして扱われ得るが、車両データ1104(1)と環境1106(1)との間で他の差異が生じ得る。
【0130】
例1112は、環境1106(2)に関連付けられた車両データ1104(2)を示す。例1112に例示されるように、車両データ1104(2)は、車両が環境内の任意のオブジェクトを知覚しないが、オブジェクト1114が環境1106(2)内に存在することを示すことができる。これは、偽陰性シナリオとして扱われ得る。
【0131】
例1116は、環境1106(3)に関連付けられた車両データ1104(3)を示す。例1116に例示されるように、車両データ1104(3)は、車両によって知覚されるが、環境1106(3)によって例示されるように存在しないオブジェクトに関連付けられ得る知覚データ1118を含むことができる。これは、偽陽性シナリオとして扱われ得る。
【0132】
例1120は、環境1106(4)に関連付けられた車両データ1104(4)を示す。例1120では、車両データ1104(4)は、いかなるオブジェクトも表さず、同様に、環境1106(4)は、いかなるオブジェクトも含まない。したがって、これは真陰性シナリオとして扱われ得る。
【0133】
偽陽性誤差に関して、誤差モデルは、距離や環境要因などによって調節され得る。偽陽性誤差は、例えば、オブジェクトが環境のその領域に存在しないときに、知覚システムがオブジェクトが環境の領域に存在すると判定する確率を示し得る。
【0134】
偽陰性誤差に関して、誤差モデルは、距離、環境要因、オブジェクトの属性などによって調節され得る。偽陰性誤差は、例えば、オブジェクトが実際に環境のその領域に存在するときに、知覚システムがオブジェクトが環境の領域に存在しないと判定する確率を示し得る。上述のように、偽陰性誤差は、真のオブジェクトの分類、真のオブジェクトのサイズ、データをキャプチャするセンサとオブジェクトに関連付けられた環境の領域との間の距離、真のオブジェクトの閉塞の量などに少なくとも部分的に基づいてもよい。
【0135】
上述したように、誤差モデルは、例1102、1112、1116、及び/または1120に対応する分布(例えば、真陽性、偽陰性、偽陽性、及び/または真陰性シナリオ)を含むことができる。自律車両コントローラは、シミュレート環境をトラバースすることができ、シミュレーションコンポーネント124は、誤差モデルに少なくとも部分的に基づいて、シミュレート環境の領域に関連付けられた真陰性、偽陽性、偽陰性、及び/または真陽性の確率を判定することができる。シミュレーションコンポーネント124は、偽陽性シナリオ、偽陰性シナリオ、及び/または真陽性シナリオを生成することによって、シミュレート環境に摂動を与えるために摂動されたシミュレーションデータを判定し、偽陽性シナリオ、偽陰性シナリオ、及び/または真陽性シナリオに対するシミュレートされた車両コントローラ(シミュレートされた自律車両コントローラとも称される)の応答を判定することができる。
【0136】
例として、限定されないが、シミュレーションコンポーネント124は、本明細書で説明されるように、シミュレートされた車両コントローラとシミュレートされたオブジェクトとの間の距離及び/または任意の追加の環境パラメータに少なくとも部分的に基づいて、誤差モデルを選択することができる。例えば、シミュレートされたオブジェクトがシミュレートされた車両コントローラから最初に5メートル離れているとして表されるとき、シミュレーションコンポーネント124は、そのような距離で遭遇した誤差を表す誤差モデルを判定することができる。シミュレーションは、第1の時間の後の第2の時間に、シミュレートされた車両コントローラから第2の距離(例えば、10メートル)でシミュレートされたオブジェクトを表すことができる。シミュレーションコンポーネント124は、そのような距離に基づいて誤差モデルを選択することができ、第2の時間にシミュレート環境内のシミュレートされたオブジェクトを表す追加の摂動シナリオデータを決定することができる。したがって、シミュレーションコンポーネント124は、誤差モデルを使用して、シミュレーションが実行されるにつれてシミュレート環境を連続的に(または間欠的に)摂動させることができる。
【0137】
いくつかの例では、誤差モデルの誤差分布は、経過したシミュレーション時間に少なくとも部分的に基づいてもよい。例として、限定されないが、シミュレートされた車両コントローラは、第1の時間でシミュレートオブジェクトを知覚し、第2の時間でシミュレートオブジェクトを知覚することができる。誤差モデルは、第1の時間におけるシミュレートオブジェクトの知覚に関連付けられた誤差の確率が、第2の時間におけるシミュレートオブジェクトの知覚に関連付けられた誤差の確率よりも高くなり得ることを示すことができる。いくつかの例では、第1の時間は、シミュレートされた車両コントローラがシミュレートされたオブジェクトを最初に検出する時間を表すことができる。すなわち、誤差モデルは、シミュレートされた車両コントローラによって追跡されるシミュレートされたオブジェクトに関連付けられた持続時間に少なくとも部分的に基づいて変化し得る。
【0138】
いくつかの例では、誤差モデルは、シミュレートされていない環境での自律車両の動作中に使用され得る。例として、限定されないが、自律車両は、環境を横断し、環境のセンサーデータをキャプチャすることができる。自律車両の知覚システムは、例えば、環境内のオブジェクトを示す知覚データを生成することができる。車両は、誤差モデルコンポーネントを含むことができ、誤差モデルコンポーネントを使用して、知覚データに関連付けられた誤差の確率を判定することができる。例えば、自律車両は、駐車場の駐車用縁石などの環境内のオブジェクトを知覚することができる。自律車両は、駐車用縁石の位置に関連付けられた誤差の確率を受信することができる。例として、限定されないが、誤差モデルは、駐車用縁石が、自律車両が駐車用縁石を認識した位置から横方向の0.1メートル以内にある可能性が5%あることを示すことができる。上述したように、確率は、x位置(グローバル位置)、y位置(グローバル位置)、z位置(グローバル位置)、方向、オブジェクトタイプ(例えば、分類)、オブジェクトの速度、オブジェクトの範囲(サイズ)、環境内の別のオブジェクトの存在、環境内の別のオブジェクトの状態、1日のうちの時間、1週間のうちの1日、季節、気象条件、暗さ/光のインジケーションなどの特性に基づくことができる。
【0139】
知覚誤差の確率に基づいて、自律車両のプランニングシステムは、知覚誤差の確率を考慮することによって、より安全に環境をトラバースすることができる。いくつかの例では、プランニングシステムは、確率閾値を使用し、確率閾値を満たすまたは超えるオブジェクトの位置を回避する軌道を決定することができる。例として、限定されないが、プランニングシステムは、1%の確率閾値を使用し、1%以上の確率を有するオブジェクトの位置の周りをトラバースすることができる。いくつかの例では、プランニングシステムは、オブジェクトの分類に関連付けられた確率閾値を使用することができる。例として、限定されないが、プランニングシステムは、駆動面上の破片に関連付けられた確率閾値と比較して、歩行者分類に関連付けられたより低い確率閾値を有することができる。
【0140】
図12は、誤差モデルを決定し、摂動されたシミュレーションデータを決定するための例示的なプロセスのフロー図を示す。
【0141】
例示的なプロセス1200の動作1202において、プロセス1200は、オブジェクトの知覚状態を示す車両データを受信することを含むことができる。いくつかの例では、車両データは、環境を通って走行する車両によってキャプチャされるログデータを含むことができる。いくつかの例では、車両データは、制御データ(例えば、ステアリング、ブレーキなどのシステムを制御するために使用されるデータ)、センサデータ(例えば、ライダーデータ、レーダーデータなど)、及び/または車両のサブシステムからの出力(例えば、知覚データ(例えば、分類データ、バウンディングボックス、x位置(グローバル位置)、y位置(グローバル位置)、z位置(グローバル位置)、方向、エンティティタイプ(例えば、分類)、エンティティの速度、エンティの範囲、予測データなど)を含むことができる。
【0142】
例示的なプロセス1200の動作1204において、プロセス1200は、車両データに少なくとも部分的に基づいて、オブジェクトに関連付けられたグラウンドトゥルースデータを受信することを含むことができる。いくつかの例では、グラウンドトゥルースデータは、手動でラベル付けされ、及び/または他の検証された機械学習コンポーネントから決定されることができる。例として、限定されないが、グラウンドトゥルースデータは、環境内のオブジェクトに関連付けられた検証されたバウンディングボックスを含むことができる。
【0143】
例示的なプロセス1200の動作1206において、プロセス1200は、車両データとグラウンドトゥルースデータとの間の差を判定することを含むことができる。差が存在しない場合、プロセス1200は、動作1202に戻ることができる。差が存在する場合、プロセスは動作1208に進むことができる。
【0144】
例示的なプロセス1200の動作1208において、プロセス1200は、車両データ及びグラウンドトゥルースデータに少なくとも部分的に基づいて、誤差を決定することを含むことができる。上述したように、車両データとグラウンドトゥルースデータとの間の差は、車両データの誤差を表すことができる。誤差は、確率に関連付けられ得、誤差及び確率の分布は、誤差モデルに含まれ得る。
【0145】
例示的なプロセス1200の動作1210において、プロセス1200は、車両データに少なくとも部分的に基づいて、複数のパラメータを決定することを含むことができる。いくつかの例では、車両データは、制御データ(例えば、ステアリング、ブレーキなどのシステムを制御するために使用されるデータ)、センサデータ(例えば、ライダーデータ、レーダーデータなど)、及び/または車両のサブシステムからの出力(例えば、知覚データ(例えば、分類データ、バウンディングボックス、x位置(グローバル位置)、y位置(グローバル位置)、z位置(グローバル位置)、方向、エンティティタイプ(例えば、分類)、エンティティの速度、エンティの範囲、予測データなど)を含むことができる。いくつかの例では、車両データは、環境に関連付けられる特性、例えば、限定されるわけではないが、環境内の別のエンティティの存在、環境内の別のエンティティの状態、時刻、曜日、季節、気象条件、暗闇/光の表示などを含むことができる。
【0146】
例示的なプロセス1200の動作1212において、プロセス1200は、複数のパラメータ及び誤差に少なくとも部分的に基づいて、車両データの少なくとも一部をクラスタリングすることを含むことができる。例えば、車両データは、車両データに表されるオブジェクトの分類、1日の種類、車両によって検出される可視光の量、気象条件、車両の速度、車両のポーズ、及び/または環境の領域に基づいてクラスタリングされ得る。誤差及び確率の分布は、クラスタ化された車両データのクラスタに関連付けられ得る。
【0147】
例示的なプロセス1200の動作1214において、プロセス1200は、車両データの一部に少なくとも部分的に基づいて、誤差モデルを決定することを含むことができる。上述したように、機械学習モデルを使用して、車両データに表される誤差及び確率の分布に適合する分布適合性を判定することができる。いくつかの例では、適合メトリックを使用して、誤差及び確率の分布に対する分布の適合性を判定することができる。例として、限定されないが、負の対数尤度関数または正の対数尤度関数を使用して、適合メトリックを決定することができる。例として、限定されないが、クラスタ化されていない車両データに対する分布は、多変量期待最大化を使用してクラスタ化された車両データに対する分布よりも高い負の対数尤度値を生成することができ、より高い負の対数尤度値は、分布のより悪い適合性を示す。
【0148】
いくつかの例では、動作1214は、環境の「空の」領域について、その位置における偽陽性に関連付けられた誤差モデルを決定することを含むことができる。いくつかの例では、動作1214は、環境の「占有された」領域について、その位置における偽陰性に関連付けられた誤差モデルを決定することを含むことができる。例えば、動作1214は、距離、環境要因などに基づいて誤差モデルを決定することを含むことができる。
【0149】
(例示的な条項)
A:1つまたは複数のプロセッサと、コンピュータ実行可能命令を格納する1つまたは複数のコンピュータ可読媒体とを備えたシステムであって、前記コンピュータ実行可能命令は、実行されると、環境内で自律車両を操作することに関連付けられるログデータを受信することと、前記ログデータに少なくとも部分的に基づいて、シナリオのセットを決定することであって、前記シナリオのセットのうちのシナリオが、前記環境の態様に関連付けられたシナリオパラメータを含む、ことと、前記自律車両のサブシステムに関連付けられた誤差モデルを決定することと、前記シナリオパラメータ及び前記誤差モデルに少なくとも部分的に基づいて、パラメータ化シナリオを決定することと、摂動を与えられたパラメータ化シナリオにおいてインスタンス化される前記シナリオパラメータまたはシミュレートされた車両のコンポーネントのうちの少なくとも1つに誤差を追加することによって、前記パラメータ化シナリオに摂動を与えることであって、前記シミュレートされた車両が車両コントローラによって制御される、ことと、前記摂動を与えられたパラメータ化シナリオにおいて前記シミュレートされた車両をインスタンス化することと、前記シミュレートされた車両が前記摂動を与えられたパラメータ化シナリオにどのように応答するかを示すシミュレーションデータを受信することと、前記シミュレーションデータに少なくとも部分的に基づいて、前記車両コントローラに関連付けられた安全性メトリックを決定することと、
を含む動作を前記システムに実行させる、システム。
【0150】
B:前記シナリオのセットを決定することは、前記ログデータをクラスタリングして、第1のセットのクラスタを決定することであって、前記第1のセットのクラスタの個々のクラスタは、個々のシナリオに関連付けられている、ことと、前記第1のセットのクラスタに少なくとも部分的に基づいて、前記個々のクラスタに関連付けられた確率を決定することと、確率閾値及び前記第1のセットのクラスタに少なくとも部分的に基づいて、第2のセットのクラスタを決定することと、を含む、段落Aに記載のシステム。
【0151】
C:前記誤差モデルを決定することは、前記環境に関連付けられたグラウンドトゥルースデータを受信することと、前記グラウンドトゥルースデータを前記ログデータと比較することに少なくとも部分的に基づいて、誤差を決定することと、前記誤差に少なくとも部分的に基づいて、誤差分布を決定することと、を含み、前記誤差モデルは前記誤差分布を含む、段落Aに記載のシステム。
【0152】
D:前記パラメータ化シナリオは第1のパラメータ化シナリオであり、前記摂動を与えられたパラメータ化シナリオは第1の摂動を与えられたパラメータ化シナリオであり、前記シミュレーションデータは第1のシミュレーションデータであり、前記動作は、前記第1のシミュレーションデータに基づいて、前記シナリオパラメータの第1のサブセットまたは前記誤差モデルの第2のサブセットのうちの少なくとも1つを含む第2のパラメータ化シナリオを決定することと、前記第2のパラメータ化シナリオに摂動を与えて、第2の摂動を与えられたパラメータ化シナリオとすることと、前記第2の摂動を与えられたパラメータ化シナリオにおいて前記シミュレートされた車両をインスタンス化することと、第2のシミュレーションデータを受信することと、前記第2のシミュレーションデータに少なくとも部分的に基づいて、安全性メトリックを更新することと、をさらに含む、段落Aに記載のシステム。
【0153】
E:環境の一部を説明するシナリオパラメータを含むシナリオを決定することと、車両のサブシステムに関連付けられた誤差モデルを受信することと、前記シナリオ、前記シナリオパラメータ、及び前記誤差モデルに少なくとも部分的に基づいて、パラメータ化シナリオを決定することと、前記パラメータ化シナリオに摂動を与えて摂動を与えられたパラメータ化シナリオとすることと、前記車両の前記サブシステムが前記摂動を与えられたパラメータ化シナリオにどのように応答するかを示すシミュレーションデータを受信することと、前記シミュレーションデータに少なくとも部分的に基づいて、前記車両の前記サブシステムに関連付けられた安全性メトリックを決定することと、を含む方法。
【0154】
F:前記シナリオパラメータは、オブジェクトのサイズ、オブジェクトの速度、オブジェクトのポーズ、オブジェクトの密度、車両の速度、車両の軌道の少なくとも1つに関連付けられている、段落Eに記載の方法。
【0155】
G:前記シナリオを決定することは、自律車両に関連付けられるログデータを受信することと、前記ログデータをクラスタリングして、クラスタの第1のセットを決定することであって、クラスタの前記第1のセットの個々のクラスタは、前記シナリオに関連付けられている、ことと、クラスタの前記第1のセットに少なくとも部分的に基づいて、前記個々のクラスタに関連付けられた確率を決定することと、前記確率が確率閾値を満たすまたは超えると決定することと、を含む、段落Eに記載の方法。
【0156】
H:前記誤差モデルは、前記環境に関連付けられたグラウンドトゥルースデータを受信することと、前記グラウンドトゥルースデータを車両に関連付けられたログデータと比較することに少なくとも部分的に基づいて、誤差を決定することと、前記誤差に少なくとも部分的に基づいて、誤差分布を決定することと、に少なくとも部分的に基づいて、決定され、前記誤差モデルは前記誤差分布を含む、段落Eに記載の方法。
【0157】
I:前記パラメータ化シナリオは第1のパラメータ化シナリオであり、前記摂動を与えられたパラメータ化シナリオは第1の摂動を与えられたパラメータ化シナリオであり、前記シミュレーションデータは第1のシミュレーションデータであり、前記方法は、前記第1のシミュレーションデータに基づいて、前記シナリオパラメータの第1のサブセットまたは前記誤差モデルの第2のサブセットのうちの少なくとも1つを含む第2のパラメータ化シナリオを決定することと、前記第2のパラメータ化シナリオに摂動を与えることと、第2のシミュレーションデータを受信することと、前記第2のシミュレーションデータに少なくとも部分的に基づいて、前記安全性メトリックを更新することと、さらに含む、段落Eに記載の方法。
【0158】
J:前記シナリオパラメータまたは前記誤差モデルのうちの1つの少なくとも第1の部分を無効にすることと、前記第2のシミュレーションデータを、無効にされていない前記シナリオパラメータまたは前記誤差モデルのうちの1つの少なくとも第2の部分に関連付けることとをさらに含む段落Iに記載の方法。
【0159】
K:前記安全性メトリックはコスト閾値を満たすまたは超える確率を示す、段落Eに記載の方法。
【0160】
L:前記部分は第1の部分であり、前記方法は、マップデータを受信することであって、前記マップデータの第2の部分は、前記環境の前記第1の部分に関連付けられている、ことと、前記マップデータの前記第2の部分が、前記シナリオパラメータに関連付けられた閾値確率を満たすまたは超える確率に関連付けられたシナリオに関連付けられていると決定することと、をさらに含む、段落Eに記載の方法。
【0161】
M:プロセッサによって実行可能な命令を格納する非一時的コンピュータ可読媒体であって、命令は、実行されると、プロセッサに、環境の一部を説明するシナリオパラメータを含むシナリオを決定することと、車両のサブシステムに関連付けられた誤差モデルを受信すること、または決定することの1つまたは複数を行うこと、前記シナリオ、前記シナリオパラメータ、及び前記誤差モデルに少なくとも部分的に基づいて、パラメータ化シナリオを決定することと、前記パラメータ化シナリオに摂動を与えて摂動を与えられたパラメータ化シナリオとすることと、前記車両の前記サブシステムが前記摂動を与えられたパラメータ化シナリオにどのように応答するかを示すシミュレーションデータを受信することと、前記シミュレーションデータに少なくとも部分的に基づいて、前記車両の前記サブシステムに関連付けられた安全性メトリックを決定することと、を含む動作を実行させる、非一時的コンピュータ可読媒体。
【0162】
N:前記シナリオパラメータは、オブジェクトのサイズ、オブジェクトの速度、オブジェクトのポーズ、オブジェクトの密度、車両の速度、車両の軌道の少なくとも1つに関連付けられている、段落Mに記載の非一時的コンピュータ可読媒体。
【0163】
O:前記シナリオを決定することは、自律車両に関連付けられたログデータを受信することと、前記ログデータをクラスタリングして、クラスタの第1のセットを決定することであって、クラスタの前記第1のセットの個々のクラスタは、前記シナリオに関連付けられている、ことと、クラスタの前記第1のセットに少なくとも部分的に基づいて、前記個々のクラスタに関連付けられた確率を決定することと、前記確率が確率閾値を満たすまたは超えると決定することと、を含む、段落Mに記載の非一時的コンピュータ可読媒体。
【0164】
P:前記誤差は、環境に関連付けられたグラウンドトゥルースデータを受信することと、前記グラウンドトゥルースデータを車両に関連付けられたログデータと比較することに少なくとも部分的に基づいて、誤差を決定することと、前記誤差に少なくとも部分的に基づいて、誤差分布を決定することと、に少なくとも部分的に基づいて決定され、前記誤差モデルは前記誤差分布を含む、段落Mに記載の非一時的コンピュータ可読媒体。
【0165】
Q:前記パラメータ化シナリオは第1のパラメータ化シナリオであり、前記摂動を与えられたパラメータ化シナリオは第1の摂動を与えられたパラメータ化シナリオであり、前記シミュレーションデータは第1のシミュレーションデータであり、前記動作は、前記第1のシミュレーションデータに基づいて、前記シナリオパラメータの第1のサブセットまたは前記誤差モデルの第2のサブセットのうちの少なくとも1つを含む第2のパラメータ化シナリオを決定することと、前記第2のパラメータ化シナリオに摂動を与えることと、第2のシミュレーションデータを受信することと、前記第2のシミュレーションデータに少なくとも部分的に基づいて、前記安全性メトリックを更新することと、をさらに含む、段落Mに記載の非一時的コンピュータ可読媒体。
【0166】
R:前記動作は、前記シナリオパラメータまたは前記誤差モデルの1つの少なくとも第1の部分を無効にすることと、前記第2のシミュレーションデータを、無効にされていない前記シナリオパラメータまたは前記誤差モデルの1つの少なくとも第2の部分に関連付けることと、をさらに含む、段落Qに記載の非一時的コンピュータ可読媒体。
【0167】
S:前記安全性メトリックは、コスト閾値を満たすまたは超える確率を示す、段落Mに記載の非一時的コンピュータ可読媒体。
【0168】
T:前記誤差モデルは、前記車両の知覚システム、前記車両の予測システム、または前記車両のプランナシステムのうちの1つまたは複数に関連付けられている、段落Mに記載の非一時的コンピュータ可読媒体。
【0169】
U:1つまたは複数のプロセッサと、コンピュータ実行可能な命令を格納した1つまたは複数のコンピュータ可読媒体とを備えたシステムであって、コンピュータ実行可能命令は、実行されると、前記システムに、車両データを受信することと、前記車両データの少なくとも第1の部分を自律車両のサブシステムに入力することであって、前記サブシステムは、知覚システム、プランニングシステム、追跡システム、または予測システムのうちの少なくとも1つに関連付けられている、ことと、前記車両データの第2の部分に少なくとも部分的に基づいて、環境パラメータを決定することと、前記サブシステムから推定値を受信することと、前記サブシステムに関連付けられたグラウンドトゥルースデータを受信することと、前記推定値とグラウンドトゥルースデータとの間の差を決定することであって、前記差は、前記サブシステムに関連付けられた誤差を表す、ことと、前記差に少なくとも部分的に基づいて、前記誤差の確率を示す前記サブシステムに関連付けられた統計モデルを決定することであって、前記確率は前記環境パラメータに関連付けられている、ことと、を含む動作を実行させる、システム。
【0170】
V:前記車両データは前記自律車両のセンサからのセンサデータを含み、前記環境パラメータが、前記自律車両の速度または気象条件の1つまたは複数を含み、前記サブシステムが知覚サブシステムであり、前記推定値が、前記車両データに表されるオブジェクトの推定位置、推定方向、または推定範囲のうちの1つまたは複数であり、前記グラウンドトゥルースデータが、前記オブジェクトの実際の位置、実際の方向、または実際の範囲を表す、段落Uに記載のシステム。
【0171】
W:前記統計モデルを決定することは、前記車両データに少なくとも部分的に基づいて、前記環境パラメータに関連付けられた第1の周波数及び前記差に関連付けられた第2の周波数を決定することと、前記第1の周波数及び前記第2の周波数に少なくとも部分的に基づいて、前記確率を決定することと、を含む、段落Uに記載のシステム。
【0172】
X:前記動作は、シミュレートされた車両データに少なくとも部分的に基づいて、シミュレートされた環境パラメータを決定することと、前記シミュレートされた環境パラメータが前記環境パラメータに対応することを決定することと、前記シミュレートされた車両データ及び前記サブシステムに少なくとも部分的に基づいて、シミュレートされた推定値を決定することと、前記確率に少なくとも部分的に基づいて、前記誤差に少なくとも部分的に基づく対応するシミュレートされたシナリオの一部を変更することによって、前記シミュレートされた推定値に摂動を与えることをさらに含む、段落Uに記載のシステム。
【0173】
Y:車両に関連付けられたデータを受信することと、前記データの第1の部分に少なくとも部分的に基づいて、環境パラメータを決定することと、前記データの第2の部分に少なくとも部分的に基づいて、前記車両のシステムに関連付けられた出力データを決定することと、前記システム及び前記データに関連付けられたグラウンドトゥルースデータを受信することと、前記出力データと前記グラウンドトゥルースデータとの間の差を決定することであって、前記差が前記システムに関連付けられた誤差を表す、ことと、前記差に少なくとも部分的に基づいて、前記誤差の確率を示す前記システムに関連付けられた統計モデルを決定することであって、前記確率は前記環境パラメータに関連付けられている、ことと、を含む方法。
【0174】
Z:前記統計モデルを決定することは、前記データに少なくとも部分的に基づいて、前記誤差に関連付けられた周波数を決定することを含む、段落Yに記載の方法。
【0175】
AA:前記環境パラメータは、前記車両の速度、気象条件、前記車両の地理的位置、または時刻のうちの1つまたは複数を含む、段落Yに記載の方法。
【0176】
AB:シミュレーションを生成することと、前記シミュレーションのシミュレートされた環境パラメータが前記環境パラメータに対応することを決定することと、シミュレートされたデータを前記システムに入力することと、前記システムからシミュレートされた出力を受信することと、前記確率及び前記誤差に少なくとも部分的に基づいて、シミュレーションに摂動を与えることと、をさらに含む段落Yに記載の方法。
【0177】
AC:前記システムが知覚システムであり、前記出力データがオブジェクトに関連付けられた第1のバウンディングボックスを含み、前記グラウンドトゥルースデータが、前記オブジェクトに関連付けられた第2のバウンディングボックスを含み、前記差を決定することが、前記第1のバウンディングボックスの第1の範囲及び前記第2のバウンディングボックスの第2の範囲、または、前記第1のバウンディングボックスの第1のポーズ及び前記第2のバウンディングボックスの第2のポーズの少なくとも1つの間の前記差を決定することを含む、段落Yに記載の方法。
【0178】
AD:前記システムはトラッカーシステムであり、前記出力データは、前記車両の計画軌道データを含み、前記グラウンドトゥルースデータは前記車両の測定軌道を含み、前記差を決定することは、前記計画軌道データと前記測定軌道との間の前記差を決定することを含む、段落Yに記載の方法。
【0179】
AE:前記システムは予測システムに関連付けられ、前記データは、環境内のオブジェクトの予測軌道を含み、前記グラウンドトゥルースデータは、前記オブジェクトの観測軌道を含み、前記差を決定することは、前記予測軌道と前記観測軌道との間の前記差を決定することを含む、段落Yに記載の方法。
【0180】
AF:前記データが第1のデータであり、前記環境パラメータが第1の環境パラメータであり、前記差が第1の差であり、前記誤差が第1の誤差であり、前記確率が第1の確率であり、前記方法は、前記車両の前記システムに関連付けられた第2のデータを受信することと、前記第2のデータに少なくとも部分的に基づいて、第2の環境パラメータを決定することと、前記出力データの第3の部分と前記グラウンドトゥルースデータの第4の部分との間の第2の差を決定することであって、前記第2の差は、前記システムに関連付けられた第2の誤差を表す、ことと、前記システムに関連付けられた前記統計モデルを更新することであって、前記統計モデルは前記第2の誤差の第2の確率を示し、前記第2の確率は前記第2の環境パラメータに関連付けられている、ことと、をさらに含む、段落Yに記載の方法。
【0181】
AG:前記プロセッサによって実行可能な命令を格納する非一時的コンピュータ可読媒体であって、前記命令は、実行されると、データを受信することと、前記データに少なくとも部分的に基づいて、環境パラメータを決定することと、前記データ及び車両のシステムに少なくとも部分的に基づいて、出力データを決定することと、前記システム及び前記データに関連付けられたグラウンドトゥルースデータを受信することと、前記出力データの第1の部分と前記グラウンドトゥルースデータの第2の部分との間の差を決定することであって、前記差が前記システムに関連付けられた誤差を表す、ことと、前記差に少なくとも部分的に基づいて、前記誤差の確率を示す前記システムに関連付けられた統計モデルを決定することと、前記確率を前記環境パラメータに関連付けることと、を含む動作をプロセッサに実行させる、非一時的コンピュータ可読媒体。
【0182】
AH:前記統計モデルを決定することは、前記データに少なくとも部分的に基づいて、前記差に関連付けられた周波数を決定することを含む、段落AGに記載の非一時的コンピュータ可読媒体。
【0183】
AI:前記環境パラメータは、前記車両の速度、気象条件、または時刻のうちの1つまたは複数を含む、段落AGに記載の非一過性コンピュータ可読媒体。
【0184】
AJ:前記動作は、シミュレートされた車両を含むシミュレーションを生成することと、シミュレートされたデータを受信することと、シミュレートされた環境パラメータが前記環境パラメータに対応することを決定することと、前記シミュレートされたデータの少なくとも一部を前記システムに入力することと、前記システムからシミュレートされた出力データを受信することと、要求及び確率及び誤差に少なくとも部分的に基づいて、前記シミュレートされた出力データを変更することと、をさらに含む段落AGに記載の非一過性コンピュータ可読媒体。
【0185】
AK:前記システムが知覚システムであり、前記データがオブジェクトに関連付けられた第1のバウンディングボックスを含み、前記グラウンドトゥルースデータが、前記オブジェクトに関連付けられた第2のバウンディングボックスを含み、前記差を決定することが、前記第1のバウンディングボックスの第1の範囲及び前記第2のバウンディングボックスの第2の範囲、または、前記第1のバウンディングボックスの第1のポーズ及び前記第2のバウンディングボックスの第2のポーズの少なくとも1つの間の前記差を決定することを含む、段落AGに記載の非一時的コンピュータ可読媒体。
【0186】
AL:前記システムはトラッカーシステムであり、前記データは、前記車両の計画軌道データを含み、前記グラウンドトゥルースデータは前記車両の測定軌道を含み、前記差を決定することは、前記計画軌道データと前記測定軌道との間の前記差を決定することを含む、段落AGに記載の非一時的コンピュータ可読媒体。
【0187】
AM:前記システムは予測システムに関連付けられ、前記データは、環境内のオブジェクトの予測軌道を含み、前記グラウンドトゥルースデータは、前記オブジェクトの観測軌道を含み、前記差を決定することは、前記予測軌道と前記観測軌道との間の前記差を決定することを含む、段落AGに記載の非一時的コンピュータ可読媒体。
【0188】
AN:前記データが第1のデータであり、前記環境パラメータが第1の環境パラメータであり、前記差が第1の差であり、前記誤差が第1の誤差であり、前記確率が第1の確率であり、前記動作は、前記車両の前記システムに関連付けられた第2のデータを受信することと、前記第2のデータに少なくとも部分的に基づいて、第2の環境パラメータを決定することと、前記出力データの第3の部分と前記グラウンドトゥルースデータの第4の部分との間の第2の差を決定することであって、前記第2の差は、前記システムに関連付けられた第2の誤差を表す、ことと、前記システムに関連付けられた前記統計モデルを更新することであって、前記統計モデルは前記第2の誤差の第2の確率を示し、前記第2の確率は前記第2の環境パラメータに関連付けられている、ことと、をさらに含む、段落AGに記載の非一時的コンピュータ可読媒体。
【0189】
AO:1つまたは複数のプロセッサと、コンピュータ実行可能命令を格納する1つまたは複数の非一時的コンピュータ可読媒体とを備えたシステムであって、前記コンピュータ実行可能命令は、実行されると、車両データを車両から受信することであって、前記車両データはオブジェクトの状態に関連付けられる、ことと、前記オブジェクトに関連付けられるグラウンドトゥルースデータを受信することと、前記車両データ及び前記グラウンドトゥルースデータに少なくとも部分的に基づいて、誤差を決定することと、前記車両データに少なくとも部分的に基づいて、複数のパラメータを決定することと、複数のクラスタとして、及び前記複数のパラメータ並びに前記誤差に少なくとも部分的に基づいて、前記車両データの少なくとも一部をクラスタ化することと、前記複数のクラスタのうちのクラスタに関連付けられる前記車両データの一部に少なくとも部分的に基づいて、誤差モデルを決定することとを含む動作を前記システムに実行させる、システム。
【0190】
AP:前記車両データは、前記車両に関連付けられるセンサからのセンサデータに少なくとも部分的に基づいている、段落AOに記載のシステム。
【0191】
AQ:前記複数のパラメータは、気象条件、第1の時刻、第2の時期、前記オブジェクトまでの距離、前記オブジェクトの分類、前記オブジェクトのサイズ、前記オブジェクトの速度、前記オブジェクトの位置、または前記オブジェクトの方向のうちの少なくとも1つに関連付けられる、段落AOに記載のシステム。
【0192】
AR:前記誤差は第1の誤差であり、前記動作は、知覚データを受信することと、前記知覚データ及び前記誤差モデルに少なくとも部分的に基づいて、前記知覚データに関連付けられる第2の誤差を決定することと、前記知覚データ及び前記第2の誤差に少なくとも部分的に基づいて、前記車両を制御することとをさらに備える、段落AOに記載のシステム。
【0193】
AS:車両データを車両から受信することであって、前記車両データはオブジェクトの状態に関連付けられる、ことと、前記車両データに少なくとも部分的に基づいて、前記オブジェクトに関連付けられるグラウンドトゥルースデータを受信することと、前記車両データ及び前記グラウンドトゥルースデータに少なくとも部分的に基づいて、誤差を決定することと、前記車両データに少なくとも部分的に基づいて、パラメータを決定することと、複数のクラスタとして、及び前記パラメータ並びに前記誤差に少なくとも部分的に基づいて、前記車両データの一部をクラスタ化することと、前記複数のクラスタのうちのクラスタに関連付けられる前記車両データの一部に少なくとも部分的に基づいて、誤差モデルを決定することとを備える方法。
【0194】
AT:前記オブジェクトの状態は、前記オブジェクトのサイズ、前記オブジェクトの場所、前記オブジェクトの方向、前記オブジェクトの速度、または前記オブジェクトの位置のうちの少なくとも1つを備える、段落ASに記載の方法。
【0195】
AU:前記誤差モデルは誤差分布を備え、前記方法は、前記車両データ及び前記グラウンドトゥルースデータに少なくとも部分的に基づいて、前記誤差に関連付けられる発生頻度を決定することと、前記発生頻度に少なくとも部分的に基づいて、前記誤差分布を決定することとを備える、段落ASに記載の方法。
【0196】
AV:前記オブジェクトの分類を識別する分類データを決定することと、前記オブジェクトのオブジェクトパラメータを識別するオブジェクトデータを決定することと、前記複数のクラスタのうちの第1のクラスタまたは前記複数のクラスタのうちの第2のクラスタの少なくとも1つに関連付けられる誤差分布を決定することであって、前記第1のクラスタは前記オブジェクトの分類に関連付けられ、前記第2のクラスタは前記オブジェクトのオブジェクトパラメータに関連付けられる、こととをさらに備え、前記誤差モデルは、真陽性誤差または偽陽性誤差の少なくとも1つに関連付けられる前記誤差分布を備える、段落ASに記載の方法。
【0197】
AW:シミュレート環境におけるシミュレートされた車両コントローラに関連付けられるシミュレーションデータを受信することと、誤差モデル及び前記シミュレーションデータに少なくとも部分的に基づいて、摂動を与えられたシミュレーションデータを決定することと、前記摂動を与えられたシミュレーションデータを前記シミュレート環境における前記シミュレートされた車両コントローラに送信することと、前記摂動を与えられたシミュレーションデータに少なくとも部分的に基づいて、前記シミュレートされた車両コントローラが前記摂動を与えられたシミュレーションデータに対してどのように応答するかを示す応答を決定することをさらに備える、段落ASに記載の方法。
【0198】
AX:前記誤差は第1の誤差であり、前記シミュレーションデータは、前記シミュレート環境において表されるシミュレートされたオブジェクトに関連付けられる分類を備え、
前記摂動を与えられたシミュレーションデータは、前記オブジェクトの位置、前記オブジェクトの方向、前記オブジェクトの範囲、または前記オブジェクトの速度のうちの少なくとも1つに関連付けられる第2の誤差を示す、段落AWに記載の方法。
【0199】
AY:第1の時間にて、偽陰性誤差に関連付けられる第1の誤差分布を決定することと、前記第1の時間の後の第2の時間にて、真陽性誤差に関連付けられる第2の誤差分布を決定することと、前記第2の時間の後の第3の時間にて、偽陽性誤差に関連付けられる第3の誤差分布を決定することとをさらに備え、前記誤差モデルは、前記第1の誤差分布、前記第2の誤差分布、及び前記第3の誤差分布を備える、段落ASに記載の方法。
【0200】
AZ:前記車両データを前記誤差モデルに適合させることに関連づけられるコストを決定することと、前記コストに少なくとも部分的に基づいて、前記誤差モデルを決定することとをさらに備える、段落ASに記載の方法。
【0201】
BA:1つ以上のプロセッサによって実行可能な命令を格納する1つ以上の非一時的コンピュータ可読媒体であって、命令は、実行されると、1つ以上のプロセッサに、車両データを車両から受信することであって、前記車両データはオブジェクトの状態に関連付けられる、ことと、前記オブジェクトに関連付けられるグラウンドトゥルースデータを受信することと、前記車両データ及び前記グラウンドトゥルースデータに少なくとも部分的に基づいて、誤差を決定することと、前記車両データに少なくとも部分的に基づいて、パラメータを決定することと、複数のクラスタとして、及び前記パラメータに少なくとも部分的に基づいて、前記車両データの一部をクラスタ化することと、前記複数のクラスタのうちのクラスタに関連付けられる前記車両データの一部に少なくとも部分的に基づいて、誤差モデルを決定することとを備える動作を実行させる、1つ以上の非一時的コンピュータ可読媒体。
【0202】
BB:前記オブジェクトの状態は、前記オブジェクトのサイズ、前記オブジェクトの場所、前記オブジェクトの方向、前記オブジェクトの速度、または前記オブジェクトの位置のうちの少なくとも1つを備える、段落BAに記載の1つ以上の非一時的コンピュータ可読媒体。
【0203】
BC:前記誤差モデルは誤差分布を備え、前記動作は、前記車両データ及び前記グラウンドトゥルースデータに少なくとも部分的に基づいて、前記誤差に関連付けられる発生頻度を決定することと、前記発生頻度に少なくとも部分的に基づいて、前記誤差分布を決定することとを備える、段落BAに記載の1つ以上の非一時的コンピュータ可読媒体。
【0204】
BD:前記動作は、前記オブジェクトの分類を識別する分類データを決定することと、前記オブジェクトのオブジェクトパラメータを識別するオブジェクトデータを決定することと、前記複数のクラスタのうちの第1のクラスタまたは前記複数のクラスタのうちの第2のクラスタの少なくとも1つに関連付けられる誤差分布を決定することであって、前記第1のクラスタは前記オブジェクトの分類に関連付けられ、前記第2のクラスタは前記オブジェクトのオブジェクトパラメータに関連付けられる、こととをさらに備え、前記誤差モデルは、真陽性誤差または偽陽性誤差の少なくとも1つに関連付けられる前記誤差分布を備える、段落BAに記載の1つ以上の非一時的コンピュータ可読媒体。
【0205】
BE:前記誤差モデルは複数の誤差モデルのうちの1つであり、前記動作は、シミュレート環境におけるシミュレートされた車両コントローラに関連付けられるシミュレーションデータを受信することと、誤差モデル及び前記シミュレーションデータに少なくとも部分的に基づいて、摂動を与えられたシミュレーションデータを決定することと、前記摂動を与えられたシミュレーションデータを前記シミュレート環境における前記シミュレートされた車両コントローラに送信することと、前記摂動を与えられたシミュレーションデータに少なくとも部分的に基づいて、前記シミュレートされた車両コントローラが前記摂動を与えられたシミュレーションデータに対してどのように応答するかを示す応答を決定することをさらに備える、段落BAに記載の1つ以上の非一時的コンピュータ可読媒体。
【0206】
BF:前記誤差は第1の誤差であり、前記シミュレーションデータは、前記シミュレート環境において表されるシミュレートされたオブジェクトに関連付けられる分類を備え、
前記摂動を与えられたシミュレーションデータは、前記オブジェクトの位置、前記オブジェクトの方向、前記オブジェクトの範囲、または前記オブジェクトの速度のうちの少なくとも1つに関連付けられる第2の誤差を示す、段落BEに記載の1つ以上の非一時的コンピュータ可読媒体。
【0207】
BG:第1の時間にて、偽陰性誤差に関連付けられる第1の誤差分布を決定することと、前記第1の時間の後の第2の時間にて、真陽性誤差に関連付けられる第2の誤差分布を決定することと、前記第2の時間の後の第3の時間にて、偽陽性誤差に関連付けられる第3の誤差分布を決定することとをさらに備え、前記誤差モデルは、前記第1の誤差分布、前記第2の誤差分布、及び前記第3の誤差分布を備える、段落BAに記載の1つ以上の非一時的コンピュータ可読媒体。
【0208】
BH:前記動作は、前記車両データを前記誤差モデルに適合させることに関連づけられるコストを決定することと、前記コストに少なくとも部分的に基づいて、前記誤差モデルを決定することとをさらに備える、段落BAに記載の1つ以上の非一時的コンピュータ可読媒体。
【0209】
上記で説明される例示的な条項は、1つの特定の実装形態に関して説明される一方で、本明細書のコンテキストにおいて、例示的な条項の内容は、方法、デバイス、システム、コンピュータ可読媒体、及び/または別の実装形態を介して実施されることも可能であることを理解されたい。さらに、例A~BHのいずれかは、単独で、または例A~BHのうちの任意の他の1つもしくは複数と組み合わせて実装され得る。
【0210】
(結論)
本明細書で説明する技術の1つまたは複数の例について説明したが、様々な変更、追加、置換、及びそれらの同等物が、本明細書で説明される技術範囲内に含まれる。
【0211】
例示の説明では、本明細書の一部を形成する添付図面を参照するが、これは例示として特許請求される主題の具体的な例を示す。他の例を使用でき、構造的変更などの変更または代替を行うことできることを理解されたい。そのような例示、変更または代替は、意図して特許請求される主題に関する範囲から必ずしも逸脱するものではない。本明細書のステップを特定の順序で提示できるが、いくつかのケースでは、説明したシステム及び方法の機能を変更することなく、特定の入力を異なる時間または異なる順序で提供するように、順序を変更できる。開示された手順はまた異なる順序で実行できる。さらに、本明細書にある様々な計算は開示された順序で実行される必要はなく、計算の代替順序を使用する他の例を容易に実装できる。並べ替えに加えて、計算はまた同じ結果となるサブ計算に分解できる。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
【国際調査報告】