本明細書に記載される技術は、システムの性能メトリックを決定する様々な態様を対象とする。本明細書で説明される少なくともいくつかの例では、そのようなパフォーマンスメトリックを、例えば、他のパフォーマンスメトリックの決定と併せてシミュレーションを使用して決定し得る。シミュレーションを使用して、車両(例えば、自律車両)上で実行されるソフトウェア(例えば、車両コントローラ)を検証し、安全性メトリックを収集して、ソフトウェアがさまざまなシナリオでそのような車両を安全に制御することが可能であることを確実にできる。追加または代替の例では、シミュレーションを使用して、自律コントローラを使用する自律車両の制約について学習できる。例えば、シミュレーションを使用して、路面のコンディション、周囲のノイズ、故障したコンポーネントなどを考慮して、自律車両の動作空間(例えば、自律コントローラが自律車両を効果的に制御するエンベロープ)を理解できる。シミュレーションはまた、自律車両の動作および設計を改善するためのフィードバックを生成するのに有用であり得る。例えば、いくつかの例では、シミュレーションは、自律コントローラにおいて必要とされる冗長性の量、またはシミュレーションを通じて学習されることに基づいて自律コントローラの挙動を修正する方法を決定するために有用であり得る。さらに、追加または代替の例では、シミュレーションは、自律車両上のセンサの配置を最適化するなど、自律車両のハードウェア設計を通知するのに有用であり得る。
シミュレーション環境を作成して、テストおよび検証を実行する場合、様々な具体的な例で環境を具体的に列挙することが可能である。そのような環境の各インスタンス化は一意であり、定義できる。全ての可能性のあるシナリオを手動で列挙することは過剰な時間を必要とする可能性があり、全ての可能性のあるシナリオが構築されていない場合、さまざまなシナリオがテストされない可能性がある。シナリオパラメータを使用して、シナリオ内のオブジェクトの特性および/または属性をパラメータ化し、シナリオのバリエーションを提供できる。
例えば、車両または複数の車両は、環境を横断し、環境に関連付けられたログデータを生成できる。ログデータは、車両の1つまたは複数のセンサによってキャプチャされたセンサデータ、車両に搭載された1つまたは複数のシステムによって識別された(または後処理段階で生成された)オブジェクトを示す知覚データ、オブジェクトの意図を示す予測データ(記録中またはその後に生成されたかどうか)、および/または車両によって生成された診断情報、軌道情報、および他の情報を示すステータスデータ、を含むことができる。車両はネットワークを介して、ログデータを格納するデータベースにおよび/またはログデータを分析するコンピューティングデバイスに、ログデータを送信できる。
コンピューティングデバイスは、ログデータに基づいて、様々なシナリオ、様々なシナリオの頻度、および様々なシナリオに関連付けられた環境の領域を決定できる。いくつかの例では、コンピューティングデバイスは、ログデータ内に表される類似のシナリオをグループ化できる。例えば、シナリオを、例えば、k-meansクラスタリングを使用して、および/または環境のパラメータ(例えば、昼間、夜間、降水量、車両の位置/速度、オブジェクトの位置/速度、道路区分など)間の加重距離(例えば、ユークリッド)を評価することでグループ化できる。上述したように、類似または同様のシナリオをクラスタリングすることは、冗長なシミュレーションデータ/結果をもたらすほぼ類似のシナリオにおいて自律車両をシミュレートするのではなく、独自のシナリオで自律コントローラをシミュレートすることによって、環境内の自律コントローラをシミュレートするために必要な計算リソースの量を削減できる。理解できるように、自律コントローラは、同様のシナリオにおいて同様に実行することが期待され得る(および/または明らかに実行され得る)。
例えば、コンピューティングデバイスは、ログデータに表される歩行者の数に基づいて、横断歩道に歩行者が現れる割合を決定できる。いくつかの例では、コンピューティングデバイスは、割合および自律車両を操作する時間期間に基づいて横断歩道で歩行者を検出する確率を決定できる。ログデータに基づいて、コンピューティングデバイスは、シナリオを決定し、シミュレーションにおいて使用できるシナリオに基づいてシナリオパラメータを識別できる。
いくつかの例では、シミュレーションを使用して、車両の欠陥のある(および/または不良がある)センサおよび/またはセンサデータの欠陥のある(および/または不良がある)処理に対する自律車両コントローラの応答をテストおよび検証できる。そのような例では、コンピューティングデバイスを、オブジェクトのシナリオパラメータに不整合性を導入するように構成できる。例えば、エラーモデルは、シナリオパラメータに関連付けられたエラーおよび/またはエラーパーセンテージを示すことができる。シナリオは、エラーおよび/またはエラーパーセンテージをシミュレートされたシナリオに組み込み、自律車両コントローラの応答をシミュレートできる。そのようなエラーは、限定することなく、グラウンドトゥルースデータ、関数(例えば、入力パラメータに基づくエラー)、またはパラメータを特定のエラーにマッピングする任意の他のモデルを使用した統計的集計に基づいて決定されたルックアップテーブルによって表され得る。少なくともいくつかの例では、そのようなエラーモデルは、特定のエラーを発生の確率/頻度でマッピングし得る。
例として、限定されないが、エラーモデルは、シミュレーション環境内のオブジェクトに関連付けられた速度などのシナリオパラメータがエラーパーセンテージに関連付けられていることを示すことができる。例えば、オブジェクトは、毎秒10メートルの速度でシミュレートされたシナリオ内を横断する可能性があり、エラーパーセンテージは、毎秒8メートル乃至毎秒12メートルの速度の範囲をもたらす20%である可能性がある。いくつかの例では、速度の範囲を、範囲の一部が範囲の他の部分よりも発生する可能性が高いことを示す確率分布に関連付けることができる。(例えば、毎秒8メートルと毎秒12メートルは15%の確率に関連付けられ、毎秒9メートルと毎秒11メートルは30パーセントの確率に関連付けられ、毎秒10メートルは10%の確率に関連付けられる)。
エラーモデルおよび/またはシナリオに基づいて、パラメータ化シナリオを生成できる。パラメータ化シナリオは、シナリオのバリエーションのセットを提供できる。したがって、パラメータ化シナリオにおいて自律車両コントローラをインスタンス化することおよびパラメータ化シナリオをシミュレートすることは、バリエーションの手動列挙を必要とせずに、シナリオの幅広いバリエーションを効率的にカバーできる。加えて、パラメータ化シナリオを実行することに少なくとも部分的に基づいて、シミュレーションデータは、自律車両コントローラがパラメータ化シナリオにどのように応答したか(または応答することになる)を示し、シミュレーションデータに少なくとも部分的に基づいて、成功した結果または失敗した結果を決定できる。
パラメータ化シナリオに関連するシミュレーションデータを集約することは、パラメータ化シナリオに関連付けられた安全性メトリックを提供できる。例えば、シミュレーションデータは、自律車両コントローラおよびパラメータ化シナリオの成功率および/または失敗率を示すことができる。いくつかの例では、成功率を満たすまたは超えることは自律車両コントローラの検証の成功を示すことができ、これは、その後、さらなる車両制御および動作のために車両によってダウンロードされる(またはそうでなければ転送される)ことができる。
例えば、パラメータ化シナリオは、結果に関連付けることができる。シミュレーションデータは、自律車両コントローラが結果に一貫してまたは一貫せずに応答したことを示すことができる。例として、限定されないが、パラメータ化シナリオは、自律車両コントローラによって制御される車両がある速度で横断する、および車両の前方にあるオブジェクトの前で停止アクションを実行することを含むシミュレーション環境を表すことができる。速度を車両の速度の範囲を示すシナリオパラメータに関連付けることができる。パラメータ化シナリオは、速度の範囲に少なくとも部分的に基づいてシミュレートすることができ、車両が停止アクションを完了したときの車両とオブジェクトとの間の距離を示すシミュレーションデータを生成できる。パラメータ化シナリオは、車両とオブジェクトとの間の距離が距離閾値を満たす、または超えることを示す結果に関連付けることができる。シミュレーションデータおよびシナリオパラメータに基づいて、成功率は、車両が停止アクションを完了した合計回数と比較して、車両が停止アクションを完了したときの車両とオブジェクトとの間の距離が距離閾値を満たすまたは超える回数を示すことができる。
本明細書に記載の技術は、様々な計算効率を提供する。例えば、本明細書に記載の技術を使用することによって、コンピューティングデバイスが必要とする計算リソースはより少なくなり、複数のシミュレートされたシナリオを、従来の技術を介して利用可能であるものよりも速く生成できる。従来の技術はスケーラブルではない。例えば、自律車両に搭載されたシステム(例えば、AIスタックの1つまたは複数のコンポーネント)のトレーニング、テスト、および/または検証する(例えば、そのような自律車両が対応する新しい実際の環境に配備される前に)のに必要とされる数の、固有のシミュレートされた環境のセットを生成することは、非常に長い時間がかかる可能性があり、これにより、実際のシナリオおよび/または環境に進入する前に、自律車両に搭載されたそのようなシステム(例えば、AIスタックの1つまたは複数のコンポーネント)をトレーニング、テスト、および/または検証する機能が制限される。本明細書に記載の技術は、実際の環境から収集されたセンサデータを活用し、そのデータを追加のデータで補足して、従来の技術で利用可能なものよりも実質的に正確なシミュレートされた環境をより効率的に生成する(例えば、対応する実際の環境に対して)という点で、従来にない。さらに、シナリオの様々な様態など、本明細書で説明する技法は、従来の技法で利用可能なものよりも少ない時間および少ない計算リソースで、多くのスケーラブルなシミュレートされたシナリオの生成を可能にする。
さらに、本明細書に記載される技術は、安全性の向上を対象とする。すなわち、本明細書に記載される生成技術からもたらされるシミュレートされた環境を、自律車両に搭載されたシステムをテスト、トレーニング、および検証するために使用し、そのようなシステムが、実際の環境に展開されたときに自律車両を安全に動作させることができることを確実にできる。すなわち、本明細書に記載される生成技術からもたらされるシミュレートされた環境は、自律車両コントローラのプランナシステムおよび/または予測システムをテスト、トレーニング、および検証するために使用することができ、これは、自律車両によって使用されて、自律車両を実際の環境内の軌道に沿ってナビゲートできる。したがって、本明細書に記載される技術によって可能となるそのようなトレーニング、テスト、および検証は、自律車両が実際の環境で安全に動作できることを確実にする機会を提供できる。したがって、本明細書に記載される技術は、安全性を向上させ、ナビゲーションに影響を与える。
図1は、パラメータ化シナリオに基づいて、車両コントローラに関連付けられた車両性能データを生成する例100を示している。シナリオを生成するために、入力データ102を使用できる。入力データ102は、車両データ104および/または追加の状況データ106を含むことができる。車両データ104は、環境を通り横断する車両によってキャプチャされるログデータを含むことができる。上述したように、ログデータを使用して、自律コントローラをシミュレートするためのシナリオを識別できる。例示の目的で、車両は、ドライバー(または乗員)の車両の常時制御を期待せず、全体行程の全ての安全上重要な機能を実行可能な車両について説明する米国国家高速道路交通安全局が発行するレベル5分類に従って動作するように構成された自律車両とすることができる。このような例では、車両は全ての駐車機能を含む開始から停止までの全ての機能を制御するように構成できるので、無人化できる。これは単なる例であり、本明細書で説明するシステムおよび方法は、ドライバーが常に手動で制御する必要がある車両から、部分的または完全に自律的に制御されているものまでを含む任意の地上、空中、または水上車両に組み込むことができる。
車両は、知覚エンジンおよび/またはプランナを含むコンピューティングデバイスを含み、環境から収集されたセンサデータからオブジェクトを検出、識別、区分、分類、および/または追跡するなどの動作を実行することができる。例えば、歩行者、自転車/自転車乗り、オートバイ/オートバイ乗り、バス、路面電車、トラック、動物などのオブジェクトは、環境内に存在できる。
車両が環境を通り横断するとき、センサは、環境に関連付けられたセンサデータをキャプチャできる。例えば、センサデータのいくつかを、オブジェクト(例えば、車両、自転車乗り、および/または歩行者)に関連付けることができる。いくつかの例では、センサデータを、これらに限定されないが、建物、路面、標識、障壁などを含む他のオブジェクトに関連付けることができる。したがって、いくつかの例では、センサデータを、動的オブジェクトおよび/または静的オブジェクトに関連付けることができる。動的オブジェクトを、上記のように、移動に関連付けられている(例えば、車両、オートバイ、自転車乗り、歩行者、動物など)、または環境内で移動することが可能な(例えば、駐車中の車両、立っている歩行者など)オブジェクトとすることができる。静的オブジェクトを、上述のように、例えば、建物/構造物、道路路面、道路マーカー、標識、障壁、木、歩道などの環境に関連付けられたオブジェクトとすることができる。いくつかの例では、車両コンピューティングデバイスは、バウンディングボックス、分類、区分情報などの環境内のオブジェクトに関する情報を決定できる。
車両コンピューティングデバイスは、センサデータを使用して車両の軌道を生成できる。いくつかの例では、車両コンピューティングデバイスはまた、車両の位置に関連付けられたポーズデータを決定できる。例えば、車両コンピューティングデバイスは、センサデータを使用して、環境内の車両の位置データ、座標データ、および/または方向データを決定できる。いくつかの例では、ポーズデータは、x-y-z座標を含むことができ、および/または車両に関連付けられたピッチ、ロール、およびヨーデータを含むことができる。
車両コンピューティングデバイスは、上述のデータを含むことができる車両データ104を生成できる。例えば、車両データ104は、センサデータ、知覚データ、計画データ、車両ステータスデータ、速度データ、意図データ、および/または車両コンピューティングデバイスによって生成された他のデータを含むことができる。いくつかの例では、センサデータは、飛行時間センサ(time-of-flight sensors)、位置センサ(GPS、コンパスなど)、慣性センサ(慣性測定装置(IMU)、加速度計、磁力計、ジャイロスコープなど)、lidarセンサ、radarセンサ、sonarセンサ、赤外線センサ、カメラ(例えば、RGB、IR、強度、深度など)、マイクセンサ、環境センサ(例えば、温度センサ、湿度センサ、光センサ、圧力センサなど)、超音波トランスデューサー、ホイールエンコーダなどのようなセンサによってキャプチャされたデータを含むことができる。センサデータは、そのようなセンサによってキャプチャされる、飛行時間データ(time-of-flight data)、位置データ、lidarデータ、radarデータ、sonarデータ、画像データ、オーディオデータなどのデータとすることができる。そのようなログデータは、これらに限定されないが、オブジェクトの検出を示すメッセージ、オブジェクトトラック、将来のオブジェクトの位置の予測、そのような検出に応答して生成された複数の軌道、コマンドを実行するために使用される1つまたは複数のシステムまたはサブシステムに渡される制御信号などを含む、車両の任意の1つまたは複数のシステムまたはサブシステムによる中間出力をさらに含み得る。いくつかの例では、車両データ104は、車両コンピューティングデバイスによって生成された他のデータに関連付けられた時間データを含むことができる。
いくつかの例では、入力データ102を使用してシナリオを生成できる。入力データ102は、車両データ104および/または追加の状況データ106を含むことができる。例として、限定されないが、追加の状況データ106は、第三者ソースからのインシデントレポートなどのデータを含むことができる。第三者のソースは、法執行機関、自動車部門、および/または、アクティビティおよび/またはインシデントのレポートを公開および/または格納できる安全管理を含むことができる。例えば、レポートは、アクティビティのタイプ(例えば、道路上の破片、局所的な洪水などの交通危険)、場所、および/またはアクティビティの説明を含むことができる。例として、限定されないが、レポートは、ドライバーが、車両を操作している間に、毎秒15メートルの速度で横断中に、車道の倒れた木の枝に当たったことを説明できる。レポートを使用して、シミュレーションにおいて使用できる同様のシナリオを生成できる。
いくつかの例では、追加の状況データ106はキャプチャされたセンサデータ(例えば、画像データ)を含むことができる。例として、限定されないが、車両のドライバーは、ドライバーが車両を操作する間、カメラを使用して画像データをキャプチャできる。いくつかの例では、画像データは、インシデントなどのアクティビティをキャプチャできる。例として、限定されないが、ドライバーは、ダッシュボードカメラ(例えば、車両の内部ダッシュボードに搭載されたカメラ)を使用して、ドライバーが車両を操作している間に画像データをキャプチャできる。ドライバーが車両を操作するとき、動物は車道を横切って走る可能性があり、ドライバーはすぐにブレーキをかけて車両を遅くする場合がある。ダッシュボードカメラは、車道を横切って走っている動物の画像データをキャプチャでき、車両は減速する。画像データを使用して、車道を横切って走る動物のシナリオを生成できる。上述したように、シナリオに関連付けられた確率を決定し、確率閾値を満たすまたは超える確率に基づいてシミュレーションのためのシナリオを識別できる。例として、限定されないが、シナリオに遭遇する可能性が0.001%未満である場合、0.001%の確率閾値を使用することができ、次いで、シミュレーションのために、確率の高いシナリオに優先順位を付けて、確率の高いシナリオに関連付けられた安全性メトリックを決定できる。
入力データ102、例えば、車両データ104および/または追加の状況データ106、はシナリオエディタコンポーネント108によって使用されて、初期シナリオ110を生成できる。例えば、入力データ102は、合成環境内の入力データ102の少なくとも一部を表す合成環境を生成することができるシナリオエディタコンポーネント108に入力することができる。初期シナリオ110および車両データ104に含めることができる車両によって生成されたデータなどの生成シナリオの例は、例えば、「Scenario Editor and Simulator」と題され2019年4月23日に出願された米国特許出願第16/392,094号に見出すことができ、これは参照によりその全体が組み込まれる。
シナリオエディタコンポーネント108を、入力データ102をスキャンして、入力データ102に表される1つまたは複数のシナリオを識別するように構成できる。例として、限定されないが、シナリオエディタコンポーネント108は、入力データ102の一部が、通行権なし(例えば、横断歩道なし、歩行表示のない交差点など)で通りを横切る歩行者を表すと決定できる。シナリオエディタコンポーネント108は、これをシナリオ(例えば、ジェイウォーキングパラメータ)として識別し、シナリオを、例えば、ジェイウォーキングシナリオとしてラベル付け(および/または分類)できる。例えば、シナリオエディタコンポーネント108は、アクションを定義するルールを使用して、初期シナリオ110を生成できる。例として、限定されないが、ルールは、横断歩道に関連付けられていない領域内の道路を横切る歩行者がジェイウォーカー(a jaywalker)であることを定義できる。いくつかの例では、シナリオエディタコンポーネント108は、シナリオエディタコンポーネント108のユーザからラベルデータを受信して、入力データ102の一部をラベルに関連付け、初期シナリオ110を生成できる。
いくつかの例では、シナリオエディタコンポーネント108は、入力データ102の他の部分をスキャンし、類似のシナリオを識別し、類似のシナリオに同じジェイウォーキングラベルでラベル付けできる。いくつかの例では、シナリオエディタコンポーネント108は、既存のラベルに対応しない(または除外される)シナリオを識別し、これらのシナリオの新しいラベルを生成できる。いくつかの例では、シナリオエディタコンポーネント108は、シナリオのライブラリを生成し、シナリオのライブラリをシナリオエディタコンポーネント108内のデータベースに格納できる。例として、限定されないが、シナリオのライブラリは、横断歩道シナリオ、マージシナリオ、車線変更シナリオなどを含むことができる。
少なくともいくつかの例では、そのような初期シナリオ110は手動で指定され得る。例えば、1人または複数のユーザが、テストすべき特定のシナリオを指定して、そのようなシナリオを実行するときに、以前にシナリオに遭遇したことが(またはめったに)ないにもかかわらず、車両が安全に動作できることを確実にし得る。
パラメータコンポーネント112は、シナリオエディタコンポーネント108によって識別された初期シナリオ110に関連付けられたシナリオパラメータを決定できる。例として、限定されないが、パラメータコンポーネント112は、ジェイウォーキングシナリオを分析し、歩行者の位置、歩行者のポーズ、歩行者のサイズ、歩行者の速度、歩行者の足跡、車両と歩行者の間の距離、車両の速度、道路の幅などを含むジェイウォーキングシナリオに関連付けられたシナリオパラメータを決定できる。
いくつかの例では、パラメータコンポーネント112は、シナリオパラメータに関連付けられた範囲または値のセットを決定できる。例えば、パラメータコンポーネント112は、初期シナリオ110内に表されるオブジェクト(例えば、歩行者)に関連付けられた分類を決定し、入力データ102内の同じ分類の他のオブジェクトを決定できる。次いで、パラメータコンポーネント112は、初期シナリオ110によって表されるように、シナリオパラメータに関連付けられた値の範囲を決定できる。例として、限定されないが、シナリオパラメータは、歩行者が毎秒0.5乃至1.5メートルの範囲の速度を有することができることを示すことができる。
いくつかの例では、パラメータコンポーネント112は、シナリオパラメータに関連付けられた確率を決定できる。例として、限定されないが、パラメータコンポーネント112は、ガウス分布(正規分布とも呼ばれる)などの確率分布をシナリオパラメータに関連付けることができる。いくつかの例では、パラメータコンポーネント112は、入力データ102に基づいて、シナリオパラメータに関連付けられた確率を決定できる。上述したように、パラメータコンポーネント112は、入力データ102内に表されるオブジェクトに関連付けられた分類を決定し、入力データ102および/または他のログデータ内の同じ分類の他のオブジェクトを決定できる。次いで、パラメータコンポーネント112は、入力データ102および/または他のログデータによって表されるように、オブジェクトに関連付けられたシナリオパラメータの確率分布を決定できる。
例として、限定されないが、パラメータコンポーネント112は、歩行者の30%が毎秒0.3メートル未満の速度で歩いており、歩行者の30%が毎秒1.2メートルを超える速度で歩いており、および歩行者の40%が毎秒0.3乃至1.2メートルの間の速度で歩いていると、決定できる。パラメータコンポーネント112は、ジェイウォーキングシナリオの歩行者が特定の速度で歩くであろう確率として分布を使用できる。追加の例として、限定されないが、パラメータコンポーネント112は、環境を横断する車両が環境を横断する間に5%の時間でジェイウォーカーに遭遇することを示すことができる、ジェイウォーキングシナリオ確率が1%であると決定できる。いくつかの例では、自律車両コントローラのシミュレーション中に、シナリオ確率を、シナリオ確率に関連付けられたレートにてシナリオを含めるために使用することができる。
いくつかの例では、パラメータコンポーネント112は、分布に組み込まれた補完データ114を受信できる。例として、限定されないが、パラメータコンポーネント112は、車両が毎秒15メートルの速度で移動する間、歩行者が車両までの30乃至60メートルの範囲の距離を有することができることを示す、または代替的に2乃至4秒の衝突までの時間として表される、シナリオパラメータを決定できる。補完データ114(例えば、規制またはガイドライン)は、下限(パラメータ閾値とも呼ばれる)とすることができる1.5秒の衝突までの時間で、車両がシナリオに対処しなければならないことを示すことができる。パラメータコンポーネント112は、補完データ114を組み込むことができ、1.5乃至4秒の衝突までの時間(しかし、任意の時間範囲を指定できる)を有するようにシナリオパラメータを決定できる。いくつかの例では、パラメータコンポーネント112は上述の確率分布を使用して、補完データ114に関連付けられた確率を(内挿および/または外挿技法を使用して)決定できる。
エラーモデルコンポーネント116は、シナリオパラメータに関連付けられたエラーを示すことができるエラーモデルを決定できる。例えば、知覚エラーモデルは、シミュレートされたオブジェクトの知覚パラメータに関連付けられた知覚エラーを生成でき、予測エラーモデルは、シミュレートされたオブジェクトの予測パラメータに関連付けられた予測エラーを生成するなどができる。いくつかの例では、車両が環境を横断するとき、センサは誤ったセンサデータを生成する可能性があり、および/または車両のコンピューティングデバイスは、知覚エラーをもたらす可能性があるセンサデータを誤って処理する可能性がある。知覚エラーをテストおよびシミュレートすることは、潜在的な知覚エラーに関連する車両の運用マージンを示すのに役立つことができる。例えば、知覚パラメータなどのシナリオパラメータは、オブジェクトのサイズまたは環境内のオブジェクトの位置の範囲を示すことができる。エラーモデルコンポーネント116は、知覚エラーモデルを使用して、オブジェクトが環境内の実際のオブジェクトよりも大きいまたは小さいことを示す車両の知覚データをもたらすことができるオブジェクトのサイズに関連付けられた潜在的なエラーを示すことができる。
エラーモデルコンポーネント116は、例えば、入力データ102をグラウンドトゥルースデータと比較することによって、知覚エラーモデルを決定できる。いくつかの例では、グラウンドトゥルースデータを、手動でラベル付けおよび/または他の検証された機械学習コンポーネントから決定できる。例えば、入力データ102は、センサデータおよび/または車両によって生成された知覚データを含むことができる。エラーモデルコンポーネント116は、入力データ102を、環境内のオブジェクトの実際のパラメータを示すことができるグラウンドトゥルースデータと比較できる。入力データ102をグラウンドトゥルースデータと比較することによって、エラーモデルコンポーネント116は、知覚エラーを決定できる。例として、限定されないが、入力データ102は、歩行者が1.8メートルの高さであることを示すことができ、一方、グラウンドトゥルースデータは歩行者が1.75メートルの高さであることを示し、したがって、知覚エラーモデルは約3%の知覚エラーを示すことができる(例えば、[(1.8-1.75)/1.8]*100)。
いくつかの例では、エラーモデルコンポーネント116は、入力データ102内に表されるオブジェクトに関連付けられた分類を決定し、入力データ102内の同じ分類の他のオブジェクトを決定できる。次いで、エラーモデルコンポーネント116は、オブジェクトのエラーの範囲に関連付けられた確率分布(エラー分布とも呼ばれる)を決定し、確率分布を初期シナリオ110内のオブジェクトに関連付けることができる。例として、限定されないが、エラーモデルコンポーネント116は、歩行者分類を伴うオブジェクトが4%乃至6%の知覚エラーを有すること、および車両分類を伴うオブジェクトが3%乃至5%の知覚エラーを有することを決定できる。いくつかの例では、エラーモデルコンポーネント116は、例えば、閾値サイズより大きいオブジェクトがエラーを有する可能性が高いまたは低い(例えば、分類において)ことを示す確率分布を決定できる。
いくつかの例では、パラメータコンポーネント112は、領域データ118を使用して、シナリオおよびシナリオパラメータと互換性のある環境の領域のセットを決定できる。例として、限定されないが、シナリオは、車両が毎秒15メートルの速度を有すること、歩行者が毎秒1.5メートルの速度を有すること、および車両と歩行者との間の距離が30メートルであること、を示すことができる。パラメータコンポーネント112は、シナリオに適合する環境の領域データ118に基づいて領域を決定できる。例として、限定されないが、パラメータコンポーネント112は、シナリオ内の車両の速度がスクールゾーンに関連付けられた速度制限を超える可能性があり、したがって、シナリオがスクールゾーンで有効ではないため、スクールゾーンを除外できる。しかし、そのような車両速度(例えば、15m/s)は、農地に隣接する郡道上で妥当であり得、したがって、そのような領域は、領域のセット内で考慮され得る。
いくつかの例では、パラメータコンポーネント112は、環境の駆動可能領域の区分を含む領域データ118を格納できる。運転可能な路面の区分および類似の区分、ならびに区分分類および/またはステレオタイプを識別するための技術は、例えば、「Extension of Autonomous Driving Functionality to New Regions」と題され、2019年3月19日に出願された米国特許出願第16/370,696号、および「Simulating Autonomous Driving Using Map Data and Driving Data」と題され、2019年4月5日に出願された米国特許出願第16/376,842号に見出すことができ、これらは、参照によりその全体が本明細書に組み込まれる。
例えば、環境の領域データ118を区分に解析でき、同様の区分を識別できる。いくつかの例では、区分は、ジャンクション区分、例えば、交差点、合流点など、または接続道路区分、例えば、ジャンクション間の道路の長さおよび/または幅を含むことができる。例として、限定されないが、10mphの範囲内の速度制限を有する全ての2車線道路区分を、同じステレオタイプに関連付けることができる。いくつかの例では、データを個々の区分のそれぞれに関連付けることができる。例えば、ジャンクション区分は、例えば、合流点、「T」、ラウンドアバウトなどのジャンクションタイプ、ジャンクションで集合する道路の数、例えば、ジャンクションで集合する道路間の角度であるそれらの道路の相対位置、ジャンクションでの交通制御信号に関する情報、および/または他の特徴を含むことができる。接続道路区分に関連付けられたデータは、いくつかの車線、それらの車線の幅、車線のそれぞれにおける横断の方向、駐車車線の識別、道路区分の速度制限、および/または他の特徴を含むことができる。
いくつかの例では、駆動可能な表面の区分を、区分分類または区分ステレオタイプに従ってグループ化できる。例として、限定されないが、メトリックまたは属性のいくつかの範囲に適合する一部または全てのジャンクション区分を一緒にグループ化することができる(例えば、k-meansを使用する、区分パラメータ間の加重距離(例えば、ユークリッド)を評価する、またはそうでなければ区分パラメータに基づいてそのような区分をクラスタリングする)。
同じまたは類似のステレオタイプを含むシナリオを使用して、自律車両コントローラの機能性を検証できる。例えば、自律車両は、同じまたは類似のステレオタイプにおいて、同じことを行うことが期待され得る(および/または明らかに実行され得る)。いくつかの例では、ステレオタイプの使用は、行われるべき比較の数を減少できる。例えば、同様の領域を識別することによって、有用な情報を提供できるシミュレーションシナリオの数が減る。本明細書に記載の技術は、検証およびテストのための有用な情報を提供する特定のシナリオにわたって最適化することによって、計算の複雑性、メモリ要件、および処理時間を低減できる。
パラメータ化シナリオコンポーネント120はパラメータコンポーネント112によって決定されたデータ(例えば、初期シナリオ110、シナリオパラメータ、領域のセット、および/またはエラーモデルデータ)を使用して、パラメータ化シナリオ122を生成できる。例えば、初期シナリオ110は、車線変更シナリオ、右折シナリオ、左折シナリオ、緊急停止シナリオなどのシナリオを示すことができる。シナリオパラメータは、自律車両コントローラによって制御される車両に関連付けられた速度、車両のポーズ、車両とオブジェクトとの間の距離などを示すことができる。いくつかの例では、シナリオパラメータは、オブジェクト、オブジェクトに関連付けられた位置、オブジェクトに関連付けられた速度などを示すことができる。さらに、エラーモデル(例えば、知覚エラーモデル、予測エラーモデルなど)は、シナリオパラメータに関連付けられたエラーを示し、シナリオパラメータに関連付けられた値および/または確率の範囲を提供できる。例として、限定されないが、車両の速度などのシナリオパラメータを、毎秒8乃至12メートルなどの速度の範囲に関連付けることができる。上述のように、速度の範囲を、発生する速度の範囲内の速度の確率を示す確率分布に関連付けることができる。
領域のセットは、シミュレートされた環境内にオブジェクトを配置するために使用できる環境の一部を示すことができる。例えば、初期シナリオ110は、時速35マイルの速度制限に関連付けられた双方向マルチ車線駆動路面を含むシナリオを示すことができる。初期シナリオ110に基づいて、領域のセットは、例えば駐車場など、時速35マイルの制限速度に関連付けられた双方向マルチ車線駆動路面を含まないであろう領域を除外できる。パラメータ化シナリオ122を使用して、シナリオパラメータ、エラーモデル、領域データ118などによって提供されるバリエーションをカバーできる。
例として、限定されないが、シナリオパラメータは、ジャンクションに接近しながら、毎秒10、11、または12メートルの速度(または任意の速度)で環境を横断する車両を含むことができる。領域のセットは、制御されていないジャンクション、4方向のストップを有するジャンクション、および交通信号を有するジャンクションを含むことができる。加えて、知覚エラーモデルは、テストされている知覚システムのために決定された知覚メトリックによって提供され得るように、1.34%の知覚エラーを示すことができる。したがって、パラメータ化シナリオ122は、シナリオパラメータおよび領域を変化させることによって、合計9つの様々なシナリオを可能にできる(例えば、3つの速度*3つの領域=9つのシナリオ/順列)。加えて、シミュレーションコンポーネント124がパラメータ化シナリオをシミュレートするとき、シミュレーションコンポーネント124は、知覚エラーモデルを使用して、車両によって決定された知覚データに関連付けられた知覚エラーを導入できる。理解できるように、これは単なる例であり、パラメータ化シナリオ122は、より多くまたはより少ない順列、ならびにシナリオパラメータの異なるタイプ、領域、および/または知覚エラーを含むことができる。
シミュレーションコンポーネント124は、パラメータ化シナリオ122をシミュレーション命令のセットとして実行し、シミュレーションデータ126を生成できる。例えば、シミュレーションコンポーネント124はシミュレートされたシナリオにおいて車両コントローラをインスタンス化できる。いくつかの例では、シミュレーションコンポーネント124は複数のシミュレートされたシナリオを同時におよび/または並行して実行できる。加えて、シミュレーションコンポーネント124はパラメータ化シナリオ122の結果を決定できる。例えば、シミュレーションコンポーネント124はテストおよび検証のためのシミュレーションにおいて使用するためのパラメータ化シナリオ122のバリエーションを実行できる。シミュレーションコンポーネント124は、自律車両コントローラがどのように実行したか(例えば、応答したか)を示すシミュレーションデータ126を生成でき、シミュレーションデータ126を所定の結果と比較し、および/またはいずれかの所定のルール/アサーションが破られた/トリガされたかどうかを決定できる。
いくつかの例では、シミュレーションのためのバリエーションをシナリオパラメータの一般化された間隔に基づいて選択できる。例として、限定されないが、シナリオパラメータを車両の速度に関連付けることができる。加えて、シナリオパラメータを車両の値の範囲に関連付けることができる。シミュレーションのためのバリエーションを一般化された間隔に基づいて選択して、値の範囲のカバレッジを増加できる(例えば、25パーセンタイル、50パーセンタイル、75パーセンタイルなどを選択する)。いくつかの例では、バリエーションを無作為に選択でき、および/またはバリエーションを値の範囲の標準偏差内で無作為に選択できる。
いくつかの例では、所定のルール/アサーションはパラメータ化シナリオ122に基づくことができる(例えば、横断歩道に関する交通ルールは、横断歩道のシナリオに基づいて有効化でき、または車線マーカーを横切ることに関する交通ルールは、停止した車両のシナリオに対して無効化できる)。いくつかの例では、シミュレーションコンポーネント124は、シミュレーションが進むにつれて動的にルール/アサーションを有効化および無効化できる。例えば、シミュレートされたオブジェクトがスクールゾーンに近づくと、シミュレートされたオブジェクトがスクールゾーンから離れるときに、スクールゾーンに関連するルール/アサーションを有効化または無効化できる。いくつかの例では、ルール/アサーションは、例えば、シミュレートされたシナリオを所与として、オブジェクトがどのくらい速く加速できるかに関連する快適性メトリックを含むことができる。少なくともいくつかの例では、ルールは、例えば、道路のルールに従うこと、オブジェクト間の安全バッファを残すことなどを含み得る。
自律車両コントローラが所定の結果と一致して実行した(すなわち、自律車両コントローラは、することが想定されていた全てのことを実行した)と決定すること、および/またはルールが破られなかった、もしくはアサーションがトリガされなかったと決定することに少なくとも部分的に基づいて、シミュレーションコンポーネント124は、自律車両コントローラが成功したと決定できる。自律車両コントローラのパフォーマンスが所定の結果と一致しなかった(つまり、自律車両コントローラは、することを想定していないことをした)と決定すること、および/またはルールが破られた、もしくはアサーションがトリガされたと決定することに少なくとも部分的に基づいて、シミュレーションコンポーネント124は自律車両コントローラが失敗したと決定できる。したがって、パラメータ化シナリオ122を実行することに少なくとも部分的に基づいて、シミュレーションデータ126は、上記のように、自律車両コントローラがパラメータ化シナリオ122の各バリエーションにどのように応答するかを示し、シミュレーションデータ126に少なくとも部分的に基づいて成功した結果または失敗した結果を決定できる。
分析コンポーネント128を成功または失敗の程度を決定するように構成できる。例として、限定されないが、ルールは、自律車両コントローラによって制御される車両がオブジェクトの閾値距離内で停止しなければならないことを示すことができる。シミュレーションデータ126は、パラメータ化シナリオ122の第1のバリエーションにおいて、シミュレートされた車両が閾値距離から5メートルを超えて停止したことを示すことができる。パラメータ化シナリオ122の第2のバリエーションにおいて、シミュレーションデータ126は、シミュレートされた車両が閾値距離から10メートルを超えて停止したことを示すことができる。分析コンポーネント128は、シミュレートされた車両が、第1のバリエーションにおけるシミュレートされた車両と比較して、第2のバリエーションにおいてより良好に実行したことを示すことができる。例えば、分析コンポーネント128は、シミュレートされた車両およびパラメータ化シナリオ122の関連するバリエーションを含む順序付けられたリスト(例えば、相対的な成功スケールに従って順序付けられた)を決定できる。そのようなバリエーションを使用して、シミュレートされるシステムの様々なコンポーネントの制限を決定もし得る。
分析コンポーネント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に入力して、追加のシミュレーションデータを生成できる。そのような追加のバリエーションを、例えば、シミュレーションにおいて実行されるシナリオのシナリオパラメータに対する摂動に基づいて決定できる。
いくつかの例では、分析コンポーネント128は、シナリオパラメータを無効にすることによって、シナリオの追加のバリエーションを決定できる。例えば、パラメータ化シナリオは、オブジェクトの速度に関連付けられた第1のシナリオパラメータおよびオブジェクトの位置に関連付けられた第2のシナリオパラメータを含むことができる。パラメータ化シナリオ122は、速度に関連付けられた値の第1の範囲および位置に関連付けられた値の第2の範囲を含むことができる。いくつかの例では、パラメータ化シナリオ122をシミュレートした後、シミュレーションデータ126は、パラメータ化シナリオ122のいくつかのバリエーションが成功した結果をもたらし、いくつかのバリエーションが失敗した結果をもたらしたことを示すことができる。次いで、分析コンポーネント128は、第1のシナリオパラメータを無効にすること(例えば、第1のシナリオパラメータに関連付けられた固定値を設定すること)を決定し、第2のシナリオパラメータに基づいてパラメータ化シナリオ122を変化させることができる。シナリオパラメータの1つを無効にすることによって、分析コンポーネント128は、シナリオパラメータおよび/またはシナリオパラメータの値が成功の結果または失敗の結果に関連付けられているかどうかを決定できる。そのようなパラメータを、失敗の可能性に基づいて、ランダムに、またはその他で、無効にし得る。例として、限定されないが、シナリオパラメータの全てを無効にした結果としてのシミュレーションデータ126は自律車両の計画コンポーネントを伴う問題を示すことができる。
いくつかの例では、分析コンポーネント128を使用して感度分析を実行できる。例えば、分析コンポーネント128は、シナリオパラメータを無効にし、シミュレーションコンポーネント124によって生成されたシミュレーションデータ126に基づいて、シナリオパラメータを無効にすることがシミュレーションデータ126にどのように影響するか(例えば、成功率を増加させる、成功率を減少させる、成功率に最小限の影響を与える)を決定できる。いくつかの例では、分析コンポーネント128は、シナリオパラメータを個別に無効にして、各シナリオパラメータを無効にすることがシミュレーションデータ126にどのように影響するかを決定できる。分析コンポーネント128は、個々のシナリオパラメータが多くのシミュレーションの経過にわたってシミュレーションデータ126にどのように影響するかを示す統計データを収集できる。いくつかの例では、分析コンポーネント128を、シナリオパラメータのセットを無効にする(例えば、ナイトタイム環境パラメータを無効にする、および湿潤コンディション環境パラメータを無効にする)ように構成できる。上述のように、分析コンポーネントは、シナリオパラメータのセットがシミュレーションデータ126にどのように影響するかを示す統計データを収集できる。統計データは、成功するシミュレーションをもたらす可能性を増加または減少させるシナリオパラメータを決定するために使用できる、およびシミュレーションデータ126の成功率を増加または減少させるシナリオパラメータに関連付けられた自律車両のサブシステムを識別するために使用できる。
いくつかの例では、分析コンポーネント128は、シナリオパラメータが調整される程度を調整できる。例として、限定されないが、シナリオパラメータは、湿潤環境コンディション(例えば、雨の条件)を示すことができる。シナリオパラメータを範囲(例えば、4分の1インチの雨量、1インチの雨量など)上で調整できる。分析コンポーネント128は、シナリオパラメータの大きさ(magnitude)を調整し、シナリオパラメータの大きさに基づいて感度分析を実行して、シミュレーションの成功または失敗の結果をもたらすことができるシナリオパラメータに関連付けられた閾値を決定できる。いくつかの例では、バイナリ検索アルゴリズム、粒子フィルタアルゴリズム、および/またはモンテカルロ法を使用して、閾値を決定できるが、他の適切なアルゴリズムが企図される。
車両性能コンポーネント130は、シミュレーションデータ126(および/または分析コンポーネント128からの追加のバリエーションに基づく追加のシミュレーションデータ)および失敗のタイプに基づいて、車両性能データ132を決定できる。いくつかの例では、車両性能データ132は車両が環境内でどのように機能するかを示すことができる。例として、限定されないが、車両性能データ132は毎秒15メートルの速度で横断する車両が15メートルの停止距離を有することを示すことができる。いくつかの例では、車両性能データは安全性メトリックを示すことができる。例として、限定されないが、車両性能データ132はイベント(例えば、失敗)およびイベントの原因を示すことができる。少なくともいくつかの例では、そのような表示は、バイナリ(故障の有無)、粗い(故障のレベル、例えば、「臨界」、「非臨界」、および「通過」)、または連続的(例えば、故障の可能性を表す)であり得るが、任意の他の表示が企図される。例えば、イベントタイプ1および原因タイプ1について、データ134(1)は安全性レーティングを示すことができ、データ134(2)乃至134(4)についても同様である。いくつかの例では、原因タイプ1および原因タイプ2は車両の故障またはオブジェクト(例えば、自転車乗り)の故障などの故障を示すことができる。次いで、車両性能データ132は、パラメータ化シナリオ122に関連付けられた安全性メトリックを示すことができる。いくつかの例では、車両性能コンポーネント130は、ターゲットメトリックを使用し、車両性能データ132をターゲットメトリックと比較して、安全性メトリックがターゲットメトリックを満たすまたは超えるかを決定できる。いくつかの例では、ターゲットメトリックは、自律車両に関連付けられた標準および/または規制に基づくことができる。
いくつかの例では、車両性能データ132を、フィルタコンポーネント134に入力して、車両性能データ132に基づいてフィルタされたデータ136を決定できる。例えば、フィルタコンポーネント134を使用して、カバレッジ閾値を満たさない領域を識別するフィルタされたデータ136を決定できる。例として、限定されないが、初期シナリオ110は、時速35マイルの速度制限および領域データ118に関連付けられた双方向マルチ車線駆動路面を示すことができる。初期シナリオ110および領域データ118に基づいて、パラメータコンポーネント112は、初期シナリオ110をシミュレートするために使用できる環境の5つの領域を識別できる。パラメータ化シナリオ122をシミュレートした後、車両性能データ132は、シミュレーションデータ126が5つの領域のうちの3つに関連付けられていることを示すことができる。例えば、シミュレーションコンポーネント124は、パラメータコンポーネント112によって識別された5つの領域のうちの3つにおいて、シナリオを実行することに基づいて、シナリオをシミュレートし、シミュレーションデータ126を生成できる。フィルタコンポーネント134は、1つまたは複数のフィルタに基づいて、5つの領域の残りの2つがカバレッジ閾値(例えば、領域に関連付けられたシミュレーションの最小数)を満たさないことを示すフィルタされたデータ136を決定できる。
いくつかの例では、フィルタコンポーネント134は、車両性能データ132に基づいて、イベントの発生を示すフィルタされたデータ136を決定できる。例として、限定されないが、シミュレーションデータ126は、非常停止、フラットタイヤ、駆動路面を横切る動物などのイベントの発生を含むことができる。フィルタコンポーネント134は、1つまたは複数のフィルタに基づいて、非常停止の発生を示すフィルタされたデータ136を決定できる。加えて、フィルタされたデータ136は、例えば、緊急停止に関連付けられた停止距離など、緊急停止の発生に関連付けられたシミュレーションデータ126の一部を含むことができる。
図2は、車両202の例200を示しており、これは、図1を参照して説明した車両データ104を生成する車両と同様であり、車両データ104を生成し、車両データ104をコンピューティングデバイス204に送信できる。上述したように、シナリオエディタコンポーネント108を、入力データ102(例えば、車両データ104および/または追加の状況データ106)をスキャンし、入力データ102に表される1つまたは複数のシナリオを識別するように構成できる。非限定的な例として、そのようなシナリオは、例えば、ログデータのパラメータ化をクラスタリング(例えば、k平均などを使用する)することに基づいて決定され得る。いくつかの例では、シナリオエディタコンポーネント108は、シナリオ定義データ206を使用して、入力データ102に表される1つまたは複数のシナリオを識別できる。例えば、シナリオ定義データ206は、シナリオのタイプに関連付けられた特徴を識別できる。例として、限定されないが、シナリオ定義データ206は、横断歩道に関連付けられていない駆動路面の一部を歩行者が横断するなどの特徴を含むジェイウォーキングシナリオを識別できる。シナリオエディタコンポーネント108は、入力データ102をスキャンして、横断歩道に関連付けられていない駆動路面の一部を横断する歩行者の特徴を含む入力データの一部を識別して、ジェイウォーキングシナリオを決定できる。少なくともいくつかの例では、そのようなシナリオは、サードパーティのデータ(例えば、警察のレポート、一般に利用可能なビデオクリップなど)からさらに手動で入力および/または導出され得る。
加えて、上述したように、パラメータコンポーネント112は、シナリオ内のオブジェクトのパラメータに関連付けられた値または値の範囲を示すことができるシナリオパラメータを決定できる。パラメータコンポーネント112は、図2に描写されるように、シナリオデータ208を生成できる。
シナリオデータ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のシナリオを表すことができる。パラメータの追加のタイプ(属性とも称される)の例は、例えば、「Pedestrian Prediction Based on Attributes」と題され、2019年3月25日に出願された米国特許出願第16/363,541号に見出すことができ、参照によりその全体が本明細書に組み込まれる。
例えば、シナリオパラメータは、オブジェクト212の速度、オブジェクト212の加速度、オブジェクト212のx位置(例えば、グローバル位置、ローカル位置、および/または任意の他の基準フレームに対する位置)、オブジェクト212のy位置(例えば、サイズ、ポーズ、ローカル位置、グローバル位置、および/または任意の他の基準フレームに対する位置)、オブジェクト212に関連付けられたバウンディングボックス(例えば、範囲(長さ、幅、および/または高さ)、ヨー、ピッチ、ロールなど)、照明状態(例えば、ブレーキライト、ブリンカーライト、ハザードライト、ヘッドライト、リバースライトなど)、オブジェクト212のホイールの方向、マップ要素(例えば、オブジェクト212と信号機の間の距離、一時停止標識、スピードバンプ、交差点、譲歩標識など)、オブジェクト212の分類(例:車両、車、トラック、自転車、オートバイ、歩行者、動物など)、オブジェクトの特性(例えば、オブジェクトが車線を変更しているかどうか、オブジェクト212が二重駐車車両であるかどうかなど)、1つまたは複数のオブジェクト(任意の座標フレームにおける)との近接性、車線の種類(例えば、車線の方向、駐車車線など)、道路標示(例えば、通過または車線変更が許可されているかどうかなどを示す)、オブジェクト密度、などを含むことができるが、これらに限定されない。
上述したように、パラメータコンポーネント112は、車両データ104および/または他の入力データによって表されるように、シナリオパラメータに関連付けられた値の範囲を決定できる。したがって、上記で識別された例示的なシナリオパラメータのそれぞれ、ならびに他のシナリオパラメータを、シナリオのセットのシナリオがシナリオパラメータの1つまたは複数の値によって異なるシナリオのセットを生成するために使用できる値のセットまたは範囲に、関連付けることができる。
図3は、車両データおよびグラウンドトゥルースデータに少なくとも部分的に基づいてエラーモデルデータを生成する例300を示している。図3に示すように、車両202は、車両データ104を生成し、車両データ104をエラーモデルコンポーネント116に送信できる。上述したように、エラーモデルコンポーネント116は、シナリオパラメータに関連付けられたエラーを示すことができるエラーモデルを決定できる。例えば、車両データ104は、知覚システム、計画システム、追跡システム(トラッカーシステムとも呼ばれる)、予測システムなどの車両202のサブシステムに関連付けられたデータとすることができる。例として、限定されないが、車両データ104を知覚システムに関連付けることができ、車両データ104は環境内の車両202によって検出されたオブジェクトに関連付けられたバウンディングボックスを含むことができる。
エラーモデルコンポーネント116は、手動でラベル付けおよび/または他の検証された機械学習コンポーネントから決定できるグラウンドトゥルースデータ302を受信できる。例として、限定されないが、グラウンドトゥルースデータ302は、環境内のオブジェクトに関連付けられた検証されたバウンディングボックスを含むことができる。車両データ104のバウンディングボックスをグラウンドトゥルースデータ302のバウンディングボックスと比較することによって、エラーモデルコンポーネント116は、車両202のサブシステムに関連付けられたエラーを決定できる。いくつかの例では、車両データ104は、検出されたエンティティおよび/またはエンティティが位置する環境に関連付けられた1つまたは複数の特性(パラメータとも呼ばれる)を含むことができる。いくつかの例では、エンティティに関連付けられた特性は、x位置(グローバル位置)、y位置(グローバル位置)、z位置(グローバル位置)、方向、エンティティタイプ(例えば、分類など)、エンティティの速度、エンティティの範囲(サイズ)などを含むことができるが、これらに限定されない。環境に関連付けられた特性は、環境内の別のエンティティの存在、環境内の別のエンティティの状態、時刻、曜日、季節、気象条件、暗闇/光の表示などを含むことができるが、これらに限定されない。したがって、エラーを、他の特性(例えば、環境パラメータ)に関連付けることができる。
エラーモデルコンポーネント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)よりも、選択される可能性が高い。
図4は、シミュレートされた環境に関連付けられたエラーまたは不確実性の少なくとも1つを提供することによって、シミュレーションに摂動を与えるためにエラーモデルデータを使用する例400を示している。上述したように、エラーモデルデータは、エラー306を確率308に関連付けるエラーモデルを含むことができ、エラーモデルは環境パラメータに関連付けることができる。シミュレーションコンポーネント124は、エラーモデルデータ304を使用してエラーを注入することができ、これは、シミュレーションに摂動を与えるための摂動を与えられたパラメータ化シナリオをもたらすことができる。注入されたエラーに基づいて、シミュレーションデータは、自律コントローラが注入されたエラーにどのように応答するかを示すことができる。
例えば、シミュレーションコンポーネント124は、エラーをシミュレーションに連続的に注入することによってシミュレーションに摂動を与えることができる。例として、限定されないが、例402は、時間t0にてオブジェクトに関連付けられたバウンディングボックス404を示す。バウンディングボックス404は、バウンディングボックスのサイズのエラーおよび/またはバウンディングボックスの位置などのエラーを含む車両によるオブジェクトの検出を表すことができる。時間t1において、シミュレーションコンポーネント124は、オブジェクトを表し、異なるエラーを含むバウンディングボックス406を使用できる。例えば、各シミュレーション時間(例えば、t0、t1、またはt2)において、シミュレーションコンポーネント124は、エラー306に関連付けられた確率308に基づいて異なるエラー306を使用できる。時間t2において、シミュレーションコンポーネント124は、オブジェクトを表し、異なるエラーを含むバウンディングボックス408を使用できる。
いくつかの例では、シミュレーションコンポーネント124は、環境内のオブジェクトを表すバウンディングボックスに関連付けられた不確実性を注入することによってシミュレーションに摂動を与えることができる。例として、限定されないが、例410は、時間t0にてオブジェクトに関連付けられたバウンディングボックス412を示す。バウンディングボックスは、5%の不確実性を含むことができ、これは、5%の量によってオブジェクトのサイズおよび/または位置の不確実性を示すことができる。加えて、不確実性は、例402に描写されるように、異なるシミュレーション時間にて、異なるエラーを注入するのではなく、時間t1およびt2を通してオブジェクトと共に存続できる。
図5は、車両データ104を生成し、車両データ104をコンピューティングデバイス204に送信する車両202の例500を示す。上述したように、エラーモデルコンポーネント116は、シナリオパラメータに関連付けられたエラーを示すことができる知覚エラーモデルを決定できる。上述したように、車両データ104は、車両202のセンサによって生成されたセンサデータおよび/または車両202の知覚システムによって生成された知覚データを含むことができる。知覚エラーモデルは、車両データ104をグラウンドトゥルースデータ302と比較することによって決定できる。グラウンドトゥルースデータ302を手動でラベル付けでき、環境に関連付けることができ、既知の結果を表すことができる。したがって、車両データ104内のグラウンドトゥルースデータ302からの逸脱は、車両202のセンサシステムおよび/または知覚システム内のエラーとして識別できる。例として、限定されないが、知覚システムはオブジェクトを自転車乗りとして識別する可能性があり、ここでグラウンドトゥルースデータ302はオブジェクトが歩行者であることを示している。別の例として、限定されないが、センサシステムは、オブジェクトを2メートルの幅を有するように表すセンサデータを生成でき、ここでグラウンドトゥルースデータ302はオブジェクトが1.75メートルの幅を有することを示す。
上述したように、エラーモデルコンポーネント116は、車両データ104に表されるオブジェクトに関連付けられた分類を決定し、車両データ104および/または他のログデータ内の同じ分類の他のオブジェクトを決定できる。次いで、エラーモデルコンポーネント116は、オブジェクトに関連付けられたエラーの範囲に関連付けられた確率分布を決定できる。エラーの比較および範囲に基づいて、エラーモデルコンポーネント116は、知覚エラーモデルデータ502を決定できる。
図5に示されるように、環境504は、知覚システムによって生成されたバウンディングボックスとして表されるオブジェクト506(1)乃至(3)を含むことができる。知覚エラーモデルデータ502は、シナリオパラメータを508(1)乃至(3)として、シナリオパラメータに関連付けられたエラーを510(1)乃至(3)として、示すことができる。図5に示されるように、オブジェクト508(1)に関連付けられたエラーを環境504において、オブジェクト508(1)の寸法に関する不確実性を示すより大きなバウンディングボックス512として視覚化できる。
図6は、シミュレーションデータ126を生成し、車両性能データ132を決定するコンピューティングデバイス204の例600を示す。パラメータ化シナリオコンポーネント120は、シナリオパラメータ、領域のセット、および知覚エラーモデルに基づいて、パラメータ化シナリオを決定できる。例えば、シナリオパラメータは、パラメータ化シナリオにおける、オブジェクト、オブジェクトに関連付けられた位置、オブジェクトに関連付けられた速度などを示すことができる。加えて、シナリオパラメータは、シナリオパラメータに関連付けられた値および/または確率の範囲を示す範囲を示すことができる。領域のセットは、シミュレートされた環境内にオブジェクトを配置するために使用できる環境の一部を示すことができる。さらに、知覚エラーモデルは、シナリオパラメータに関連付けられたエラーを示すことができる。これらを組み合わせて、本明細書に詳述されるように、シナリオパラメータ、領域のセット、および/または知覚エラーモデルによって提供されるバリエーションをカバーできるパラメータ化シナリオを作成できる。
パラメータ化シナリオをシミュレーションコンポーネント124によって使用して、パラメータ化シナリオのバリエーションをシミュレートできる。例えば、シミュレーションコンポーネント124は、テストおよび検証のためのシミュレーションにおいて使用するためのパラメータ化シナリオのバリエーションを実行できる。シミュレーションコンポーネント124は、自律車両コントローラがどのように実行したか(例えば、応答したか)を示すシミュレーションデータ126を生成でき、シミュレーションデータ126を所定の結果と比較し、および/または任意の所定のルール/アサーションが破られた/トリガされたかどうかを決定できる。
図6に例示されるように、シミュレーションデータ126は、いくつかのシミュレーション(例えば、シミュレーション1、シミュレーション2など)およびシミュレーションの結果(例えば、結果1、結果2)を示すことができる。例えば、上述したように、結果は、破られた/トリガされたルール/アサーションに基づいて、合格または失敗を示すことができる。加えて、シミュレーションデータ126は、シナリオに遭遇する確率を示すことができる。例として、限定されないが、シミュレーションコンポーネント124は、ジェイウォーキング歩行者を含むシナリオをシミュレートできる。入力データは、車両が、1時間の運転あたり1分の割合でジェイウォーキング歩行者に遭遇することを示すことができる。これを使用して、パラメータ化シナリオのバリエーションに関連付けられた特定のシミュレーションに遭遇する確率を決定できる。いくつかの例では、シミュレーションコンポーネント124は、低い確率を有するパラメータ化シナリオのバリエーションを識別し、それらのバリエーションに対応するシミュレーションを実行できる。これは、より独特な状況における自律車両コントローラのテストおよび検証を可能にできる。
加えて、シミュレーションコンポーネント124は、結果に基づいて、追加のシミュレーションのためのパラメータ化シナリオのバリエーションを識別できる。例として、限定されないが、シミュレーションの結果は、シナリオパラメータが毎秒15メートルの車両の速度に関連付けられた障害とすることができる。シミュレーションコンポーネント124は毎秒15メートルの速度に近い速度を識別して、シミュレーションが通過するであろう閾値を決定でき、これはより安全な車両コントローラの開発をさらに支援できる。
シミュレーションデータ126に基づいて、車両性能コンポーネント130は、車両性能データ132を生成できる。上述したように、例えば、イベントタイプ1および原因タイプ1について、データ134(1)は安全性レーティングを示すことができ、データ134(2)乃至134(4)についても同様である。いくつかの例では、イベントタイプは、コストがコスト閾値を満たしている、または超えていることを示すことができるが、他のイベントタイプが企図される。例えば、コストは、参照コスト、障害物コスト、横方向コスト、縦方向コストなどを含むことができるが、これらに限定されない。
基準コストは、基準軌道上の点(基準点とも呼ばれる)とターゲット軌道上の対応する点(点またはターゲット点とも呼ばれる)との間の差に関連付けられたコストを含むことができ、これにより、差は、ヨー、横方向オフセット、速度、加速度、曲率、曲率レート(curvature rate)などの1つまたは複数の差を表す。いくつかの例では、基準コストに関連付けられた重みを減らすことは基準軌道から離れた距離に位置しているターゲット軌道に関連付けられたペナルティを減らすことができ、これは、より安全でおよび/またはより快適な車両操作を導くよりスムーズな移行を提供できる。
いくつかの例では、障害物コストは、基準軌道またはターゲット軌道上の点と環境内の障害物に関連付けられた点との間の距離に関連付けられたコストを含むことができる。例として、障害物に関連付けられたポイントは、運転可能エリアの境界上のポイントに対応でき、または環境内の障害物に関連付けられたポイントに対応できる。いくつかの例では、環境内の障害物は、静的オブジェクト(例えば、建物、縁石、歩道、車線マーキング、標識、信号機、木など)または動的オブジェクト(例えば、車両、自転車乗り、歩行者、動物など)を含むことができるが、これらに限定されない。いくつかの例では、動的オブジェクトをエージェントと呼ぶこともできる。いくつかの例では、静的オブジェクトまたは動的オブジェクトを概してオブジェクトまたは障害物と呼ぶことができる。
いくつかの例では、横方向コストは、車両の速度に対する最大ステアリング入力など、車両へのステアリング入力に関連付けられたコストを指すことができる。いくつかの例では、縦方向コストは、車両の速度および/または加速度(例えば、最大ブレーキおよび/または加速度)に関連付けられたコストを指すことができる。そのようなコストを使用して、フェリーで運行されている乗客の実行可能な限度および/または快適限度内で車両が動作していることを確実できる。
いくつかの例では、原因タイプ1および原因タイプ2は、車両の故障またはオブジェクト(例えば、自転車乗り)の故障などの故障を示すことができる。車両性能コンポーネント130は、所定のルール/アサーションを使用して故障を決定できる。例として、限定されないが、ルールは、車両が車両の後方のオブジェクトによって衝撃を受けた場合、故障をオブジェクトに関連付けることができることを示すことができる。いくつかの例では、車両が後方のオブジェクトによって衝撃を受けたときに環境を前方方向に横断しなければならないことを示すような、追加のルールを使用できる。いくつかの例では、原因タイプ(例えば、原因タイプ1および/または原因タイプ2)を、自律車両コントローラのコンポーネントに関連付けることができる。非限定的な例として、そのような原因は、知覚システム、予測システム、プランナシステム、ネットワークレイテンシー、トルク/加速障害、および/または車両の任意の他のコンポーネントまたはサブコンポーネントの障害を含み得る。
上述したように、分析コンポーネントは、シミュレーションデータ126に基づいて、シナリオパラメータを無効にする(例えば、シナリオパラメータに関連付けられた固定値を設定する)ことを決定し、他のシナリオパラメータを変化させることができる。シナリオパラメータを分離することにより、分析コンポーネントは、成功または失敗の結果に関連付けられたシナリオパラメータを決定できる。次いで、車両性能データ132は、パラメータ化シナリオに関連付けられた安全性メトリックを示すことができる。加えて、分析コンポーネントは感度分析を実行して障害の原因を決定できる。例えば、分析コンポーネントは、シナリオパラメータを個別に無効にして、1つまたは複数のシナリオパラメータを分離し、シナリオパラメータを無効にすることが、自律車両の応答にどのように影響するか決定し、1つまたは複数のシナリオパラメータを無効にすることに関連付けられた統計データをキャプチャし、結果を成功または失敗した結果としてキャプチャできる。統計データは、シナリオパラメータのセットが結果にどのように影響するかを示すことができ、成功するシミュレーションがもたらされる可能性を増加または減少させるシナリオパラメータを決定するために使用でき、シミュレーションデータの成功率を増加または減少させるものとして、シナリオパラメータに関連付けられた自律車両のサブシステムを識別するために使用できる。
図7は、本明細書で説明される技法を実装するための例示的なシステム700のブロック図を示す。少なくとも1つの例では、システム700は車両202を含むことができる。図示の例700では、車両202は自律車両であるが、車両202は任意の他のタイプの車両(例えば、様々な操作を実行することが安全であるかどうかの指標を提供し得るドライバーが制御する車両)とすることができる。
車両202は、コンピューティングデバイス702、1つまたは複数のセンサシステム704、1つまたは複数のエミッタ706、1つまたは複数の通信接続部708(通信デバイスおよび/またはモデムとも呼ばれる)、少なくとも1つの直接接続部710(例えば、データを交換するため、および/または電力を提供するために車両202と物理的に結合するための)、および1つまたは複数の駆動システム712を含むことができる。1つまたは複数のセンサシステム704は、環境に関連付けられたセンサデータをキャプチャするように構成できる。
センサシステム704は、飛行時間センサ、位置センサ(例えば、GPS、コンパスなど)、慣性センサ(例えば、慣性測定装置(IMU)、加速度計、磁力計、ジャイロスコープなど)、lidarセンサ、radarセンサ、sonarセンサ、赤外線センサ、カメラ(例えば、RGB、IR、強度、深度など)、マイクセンサ、環境センサ(例えば、温度センサ、湿度センサ、光センサ、圧力センサなど)、超音波トランスデューサー、ホイールエンコーダなどを含むことができる。センサシステム704は、これらまたは他のタイプのセンサのそれぞれの複数のインスタンスを含むことができる。例えば、飛行時間センサは、車両202の角、前部、後部、側面、および/または上部に配置された個々の飛行時間センサを含むことができる。別の例として、カメラセンサは、車両202の外部および/または内部の周りの様々な場所に配置された複数のカメラを含むことができる。センサシステム704はコンピューティングデバイス702に入力を提供できる。
車両202はまた、光および/または音を放出するための1つまたは複数のエミッタ706を含むことができる。この例における1つまたは複数のエミッタ706は、車両202の乗客と通信するための内部オーディオおよびビジュアルエミッタを含む。例示の目的で、限定ではなく、内部エミッタは、スピーカー、光、記号、ディスプレイ画面、タッチ画面、触覚エミッタ(例えば、振動および/またはフォースフィードバック)、機械式アクチュエータ(例えば、シートベルトテンショナー、シートポジショナー、ヘッドレストポジショナーなど)などを含むことができる。この例における1つまたは複数のエミッタ706はまた、外部エミッタを含む。限定ではなく例として、この例における外部エミッタは、走行の方向または車両の作動の他のインジケータ(例えば、インジケータライト、標識、ライトアレイなど)を信号で送るためのライト、および音響ビームステアリング技術を備え得る1つまたは複数の歩行者または他の近くの車両と音声で通信するための1つまたは複数のオーディオエミッタ(例えば、スピーカー、スピーカーアレイ、ホーンなど)を含む。
車両202はまた、車両202と1つまたは複数の他のローカルまたはリモートコンピューティングデバイス(例えば、リモートテレオペレーションコンピューティングデバイス)またはリモートサービスとの間の通信を可能にする1つまたは複数の通信接続部708を含むことができる。例えば、通信接続部708は車両202および/または駆動システム712上の他のローカルコンピューティングデバイスとの通信を容易にできる。また、通信接続部708は、車両202が他の近くのコンピューティングデバイス(例えば、他の近くの車両、交通信号など)と通信することを可能にできる。
通信接続部708は、コンピューティングデバイス702を別のコンピューティングデバイスまたは1つまたは複数の外部ネットワーク714(例えば、インターネット)に接続するための物理および/または論理インターフェースを含むことができる。例えば、通信接続部708は、IEEE802.11規格によって定義された周波数を介するようなWi-Fiベースの通信、Bluetoothなどの短距離無線周波数、セルラー通信(例えば、2G、3G、4G、4GLTE、5Gなど)、衛星通信、専用狭域通信(DSRC)、またはそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースで接続することを可能にする任意の適切な有線または無線通信プロトコルを可能にできる。少なくともいくつかの例では、通信接続部708は、上記で詳細に説明したように、1つまたは複数のモデムを備え得る。
少なくとも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)と重複または補足できる。
駆動システム712は、高電圧バッテリー、車両を推進するモーター、バッテリーからの直流を他の車両システムで使用する交流に変換するインバーター、ステアリングモーターおよびステアリングラック(電動とすることができる)を含むステアリングシステム、油圧または電気アクチュエータを含むブレーキシステム、油圧および/または空気圧コンポーネントを含むサスペンションシステム、トラクションの損失を軽減し制御を維持するブレーキ力分散用の安定性制御システム、HVACシステム、照明(例えば、車両の外部環境を照らすヘッド/テールライトなどの照明)、および1つまたは複数の他のシステム(例えば、冷却システム、安全システム、車載充電システム、DC/DCコンバーター、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートなどの他の電装コンポーネント)を含む、多くの車両システムを含むことができる。加えて、駆動システム712は、センサシステム704からデータを受信および前処理し、様々な車両システムの操作を制御できる駆動システムコントローラを含むことができる。いくつかの例では、駆動システムコントローラは、1つまたは複数のプロセッサおよび1つまたは複数のプロセッサと通信可能に結合されたメモリを含むことができる。メモリは、駆動システム712の様々な機能を実行するための1つまたは複数のモジュールを格納できる。さらに、駆動システム712はまた、それぞれの駆動システムによる1つまたは複数の他のローカルまたはリモートコンピューティングデバイスとの通信を可能にする1つまたは複数の通信接続部を含む。
コンピューティングデバイス702は、1つまたは複数のプロセッサ516および1つまたは複数のプロセッサ716と通信可能に結合されたメモリ518を含むことができる。例示される例では、コンピューティングデバイス702のメモリ718は、ローカリゼーションコンポーネント720、知覚コンポーネント722、予測コンポーネント724、計画コンポーネント726、および1つまたは複数のシステムコントローラ728を格納する。例示の目的でメモリ718内に存在するものとして示されているが、ローカリゼーションコンポーネント720、知覚コンポーネント722、予測コンポーネント724、計画コンポーネント726、および1つまたは複数のシステムコントローラ728は、追加的に、または代替的に、コンピューティングデバイス702にアクセス可能である(例えば、車両202の異なるコンポーネントに格納されている)、および/または車両202にアクセス可能である(例えば、遠隔に格納されている)ことができる、ことが企図される。
コンピューティングデバイス702のメモリ718において、ローカリゼーションコンポーネント720は、センサシステム704からデータを受信して車両202の位置を決定する機能を含むことができる。例えば、ローカリゼーションコンポーネント720は、環境の3次元マップを含むおよび/または要求/受信でき、マップ内の自律車両の位置を継続的に決定できる。いくつかの例では、ローカリゼーションコンポーネント720は、SLAM(ローカリゼーションとマッピングの同時実行)またはCLAMS(キャリブレーション、ローカリゼーションとマッピングの同時実行)を使用し、飛行時間データ、画像データ、lidarデータ、radarデータ、sonarデータ、IMUデータ、GPSデータ、ホイールエンコーダデータ、またはそれらの任意の組み合わせなどを受信して、自律車両の位置を正確に決定できる。いくつかの例では、ローカリゼーションコンポーネント720は、本明細書で論じられるように、車両202の様々なコンポーネントにデータを提供し、軌道を生成するための自律車両の初期位置を決定できる。
知覚コンポーネント722は、オブジェクトの検出、区分、および/または分類を実行するための機能を含むことができる。いくつかの例では、知覚コンポーネント722は、車両202に近接するエンティティの存在および/またはエンティティタイプ(例えば、自動車、歩行者、自転車乗り、建物、木、路面、縁石、歩道、不明など)としてのエンティティの分類を示す処理済みセンサデータを提供できる。追加および/または代替の例では、知覚コンポーネント722は、検出されたエンティティおよび/またはエンティティが配置されている環境に関連付けられた1つまたは複数の特性(パラメータとも呼ばれる)を示す処理されたセンサデータを提供できる。いくつかの例では、エンティティに関連付けられた特性は、x位置(グローバル位置)、y位置(グローバル位置)、z位置(グローバル位置)、方向、エンティティタイプ(例えば、分類など)、エンティティの速度、エンティティの範囲(サイズ)などを含むことができるが、これらに限定されない。環境に関連付けられた特性は、環境内の別のエンティティの存在、環境内の別のエンティティの状態、時刻、曜日、季節、気象条件、地理的位置、暗闇/光の表示などを含むことができるが、これらに限定されない。
知覚コンポーネント722は、知覚コンポーネント722によって生成された知覚データを格納するための機能を含むことができる。いくつかの例では、知覚コンポーネント722は、オブジェクトタイプとして分類されたオブジェクトに対応するトラックを決定できる。例示のみを目的として、センサシステム704を使用する知覚コンポーネント722は、環境の1つまたは複数の画像をキャプチャできる。センサシステム704は、歩行者などのオブジェクトを含む環境の画像をキャプチャできる。歩行者は、時間Tにおける第1の位置に、時間T+tにおける第2の位置(例えば、時間Tの後の時間tのスパン中の移動)にいることができる。換言すれば、歩行者は、この時間期間中に第1の位置から第2の位置まで移動できる。そのような移動は、例えば、オブジェクトに関連付けられた格納された知覚データとしてログに記録できる。
格納された知覚データは、いくつかの例では、車両によってキャプチャされた融合知覚データを含むことができる。融合知覚データは、画像センサ、lidarセンサ、radarセンサ、飛行時間センサ、sonarセンサ、グローバルポジショニングシステムセンサ、内部センサ、および/またはこれらの任意の組み合わせなどのセンサシステム704からのセンサデータの融合または他の組み合わせを含むことができる。格納された知覚データは、追加的または代替的に、センサデータに表されるオブジェクト(例えば、歩行者、車両、建物、路面など)の意味分類を含む分類データを含むことができる。格納された知覚データは、追加的または代替的に、環境を通る動的オブジェクトとして分類されるオブジェクトの動きに対応するトラックデータ(経時的なオブジェクトに関連付けられた履歴的な位置、方向、センサ特徴などの集合)を含むことができる。トラックデータは、経時的に複数の異なるオブジェクトの複数のトラックを含むことができる。このトラックデータを、オブジェクトが止まっている(例えば、静止している)または移動している(例えば、歩行、走行など)時に、特定のタイプのオブジェクト(例えば、歩行者、動物など)の画像を識別するためにマイニングすることができる。この例では、コンピューティングデバイスは、歩行者に対応するトラックを決定する。
予測コンポーネント724は、環境内の1つまたは複数のオブジェクトの可能な位置の予測確率を表す1つまたは複数の確率マップを生成できる。例えば、予測コンポーネント724は、車両202から閾値距離内にある車両、歩行者、動物などのための1つまたは複数の確率マップを生成できる。いくつかの例では、予測コンポーネント724は、オブジェクトのトラックを測定し、観測されたおよび予測された挙動に基づいて、オブジェクトの、離散化された予測確率マップ、ヒートマップ、確率分布、離散化された確率分布、および/または軌道を生成できる。いくつかの例では、1つまたは複数の確率マップは、環境内の1つまたは複数のオブジェクトの意図を表すことができる。
計画コンポーネント726は環境を通り横断するために車両202が辿る経路を決定できる。例えば、計画コンポーネント726は、様々なルートおよび経路ならびに様々なレベルの詳細を決定できる。いくつかの例では、計画コンポーネント726は、第1の位置(例えば、現在の位置)から第2の位置(例えば、ターゲット位置)へ進行するためのルートを決定できる。本説明を目的に、ルートは2つの位置の間を走行するための一連の経由地点にできる。非限定的な例として、経由地点は、道路、交差点、全地球測位システム(GPS)座標などを含む。さらに、計画コンポーネント726は、第1の位置から第2の位置へのルートの少なくとも一部に沿って自律車両をガイドするための命令を生成できる。少なくとも1つの例において、計画コンポーネント726は、自律車両を一連の経由地点の第1の経由地点から一連の経由地点の第2の経由地点までどのようにガイドすべきかを決定できる。いくつかの例では、命令は経路または経路の一部とすることができる。いくつかの例では、複数の経路をreceding horizon技術に従って、実質的に同時に(すなわち、技術的許容範囲内で)生成できる。最も高い信頼水準を有するreceding data horizonにおける複数の経路の単一の経路を、車両を操作するために選択できる。
他の例では、計画コンポーネント726は、代替的にまたは追加的に、知覚コンポーネント722からのデータを使用して、車両202が環境を通り横断するために辿る経路を決定できる。例えば、計画コンポーネント726は知覚コンポーネント722から、環境に関連付けられたオブジェクトに関するデータを受信できる。このデータを使用して、計画コンポーネント726は、環境内のオブジェクトを回避するための、第1の位置(例えば、現在の位置)から第2の位置(例えば、ターゲット位置)まで移動する経路を決定できる。少なくともいくつかの例では、そのような計画コンポーネント726はそのような衝突のない経路がないと決定し、次に車両202を全ての衝突を回避するおよび/またはそうでなければ損傷を軽減する安全な停止へ導く経路を提供し得る。
少なくとも1つの例では、コンピューティングデバイス702は、1つまたは複数のシステムコントローラ728を含むことができ、これは、車両202のステアリング、推進、ブレーキ、安全、エミッタ、通信、および他のシステムを制御するように構成できる。これらのシステムコントローラ728は駆動システム712の対応するシステムおよび/または車両202の他のコンポーネントと通信および/または制御でき、これは計画コンポーネント726から提供される経路に従って動作するように構成され得る。
車両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と実質的に同様とすることができる。
コンピューティングデバイス702のプロセッサ716およびコンピューティングデバイス204のプロセッサ730は、本明細書で説明されるように、データを処理し動作を実施するための命令を実行可能な任意の適切なプロセッサとすることができる。限定ではなく例として、プロセッサ716および730は、1つまたは複数の中央処理装置(CPU)、グラフィック処理装置(GPU)、または電子データを処理して当該電子データをレジスタまたはメモリに格納できる他の電子データに変換する任意の他のデバイスまたはデバイスの一部を含むことができる。いくつかの例で、集積回路(例えば、ASICなど)、ゲートアレイ(例えば、FPGAなど)、および他のハードウェアデバイスはまた、それらがエンコードされた命令を実装するよう構成される限り、プロセッサとみなすことができる。
コンピューティングデバイス702のメモリ718およびコンピューティングデバイス204のメモリ732は、非一時的コンピュータ可読媒体の例である。メモリ718および732は、本明細書に記載の方法および様々なシステムに起因する機能を実装する、オペレーティングシステムおよび1つまたは複数のソフトウェアアプリケーション、命令、プログラム、および/またはデータを格納できる。様々な実装では、メモリ718および732を、スタティックランダムアクセスメモリ(SRAM)、シンクロナスダイナミックRAM(SDRAM)、不揮発性/フラッシュタイプメモリ、または情報を格納可能な任意の他のタイプのメモリなどの任意の適切なメモリ技術を用いて実装できる。本明細書で説明されるアーキテクチャ、システム、および個々の要素は、多くの他の論理的、プログラム的、および物理的なコンポーネントを含むことができ、添付図面に図示されるそれらは本明細書での説明に関連する単なる例にすぎない。
いくつかの例では、本明細書で説明されるコンポーネントのいくつかまたは全ての態様は、任意のモデル、アルゴリズム、および/または機械学習アルゴリズムを含むことができる。例えば、いくつかの例では、メモリ718および732内のコンポーネントを、ニューラルネットワークとして実装できる。
図8は、車両コントローラに関連付けられた安全性メトリックを決定するための例示的なプロセス800を示す。プロセス800の一部または全てを、本明細書に記載されるように、図1乃至図7の1つまたは複数のコンポーネントによって実行できる。例えば、プロセス800の一部または全ては、コンピューティングデバイス204および/またはコンピューティングデバイス702によって実行できる。
例示的なプロセス800の操作802において、プロセス800は、環境内の自律車両における動作に関連付けられたログデータを受信することを含むことができる。いくつかの例では、ログデータを少なくとも環境のセンサデータをキャプチャする車両によって生成できる。
例示的なプロセス800の操作804にて、プロセス800は、ログデータ(または他のデータ)に基づいて、シナリオのセットを決定することを含むことができ、シナリオのセットのシナリオは環境の態様に関連付けられたシナリオパラメータを含む。いくつかの例では、コンピューティングデバイスは、ログデータ内に表される類似のシナリオをグループ化できる。例えば、シナリオを、例えば、k-meansクラスタリングおよび/または環境のパラメータ間の加重距離(例えば、ユークリッド)を評価すること、を使用してグループ化できる。加えて、シナリオパラメータは、夜間環境パラメータまたは湿潤条件環境パラメータなどの環境パラメータを表すことができる。いくつかの例では、シナリオパラメータは、車両またはオブジェクト(例えば、ポーズ、速度など)に関連付けることができる。
例示的なプロセス800の操作806において、プロセス800は、自律車両のサブシステムに関連付けられたエラーモデルを決定することを含むことができる。エラーモデルコンポーネントは、車両データ(例えば、ログデータ)をグラウンドトゥルースデータと比較して、車両データとグラウンドトゥルースデータとの間の差を決定できる。いくつかの例では、車両データは、推定位置、推定方向、推定範囲などの環境内のオブジェクトに関連付けられた推定値を表すことができ、グラウンドトゥルースデータは、オブジェクトの実際の位置、実際の方向、または実際の範囲を表すことができる。差に基づいて、エラーモデルコンポーネントは、車両のサブシステム(例えば、知覚システム、追跡システム、予測システムなど)に関連付けられたエラーを決定できる。
例示的なプロセス800の操作808において、プロセス800は、シナリオパラメータおよびエラーモデルに基づいて、パラメータ化シナリオを決定することを含むことができる。これらを組み合わせて、シナリオパラメータおよび/またはエラーモデルによって提供されるバリエーションをカバーできるパラメータ化シナリオを作成できる。いくつかの例では、シナリオパラメータをランダムに選択して組み合わせて、パラメータ化シナリオを作成できる。いくつかの例では、シナリオパラメータは、同時に発生する確率に基づいて組み合わせることができる。例として、限定されないが、ログデータは、5%の運転経験が歩行者遭遇を含むことを示すことができ、パラメータ化シナリオコンポーネントは、パラメータ化シナリオコンポーネントによって生成されたパラメータ化シナリオの5%において、シナリオパラメータとして歩行者を含むことができる。いくつかの例では、パラメータ化シナリオコンポーネントは、パラメータ化シナリオを検証して、シナリオパラメータの見込みのないまたはありそうもない組み合わせを削減できる。例として、限定されないが、車両は湖に位置しておらず、歩行者は毎秒30メートルの速度で歩いていない。非限定的な例として、そのようなパラメータ化シナリオは、シナリオパラメータに少なくとも部分的に基づいて、知覚モデル、予測モデルなどのエラーの様々なガウス分布(または他の分布)を有する特定の定義された道路における車両およびジェイウォーカーの距離、速度、照明条件、気象条件などの範囲を含み得る。
例示的なプロセス800の操作810において、プロセス800は、エラーに少なくとも部分的に基づいて、パラメータ化シナリオ、シナリオパラメータ、またはシミュレートされた車両のコンポーネントの少なくとも1つを修正することによって、パラメータ化シナリオに摂動を与えること、を含むことができる。いくつかの例では、不確実性をシナリオパラメータに関連付けることができる。例として、限定されないが、オブジェクトの位置を5%の不確実性に関連付け、自律コントローラに環境を5%の不確実性を考慮しながらトラバースさせることができる。いくつかの例では、シミュレータは、シミュレータがシミュレーションを実行する際に、シミュレーションに組み込むエラーをエラーモデルから決定できる。
例示的なプロセス800の操作812において、プロセス800は、摂動を与えられたパラメータ化シナリオにおいてシミュレートされた車両をインスタンス化することを含むことができる。シミュレータは、自律コントローラに関連付けることができるシミュレートされた車両を使用し、自律コントローラにシミュレートされた環境を横断させることができる。パラメータ化シナリオで自律車両コントローラをインスタンス化し、パラメータ化シナリオをシミュレートすることは、バリエーションの手動列挙を必要とせずに、シナリオの幅広いバリエーションを効率的にカバーできる。加えて、パラメータ化シナリオを実行することに少なくとも部分的に基づいて、シミュレーションデータは、自律車両コントローラがパラメータ化シナリオにどのように応答したかを示し、シミュレーションデータに少なくとも部分的に基づいて、成功した結果または失敗した結果を決定できる。
例示的なプロセス800の操作814において、プロセスは、シミュレートされた車両が摂動を与えられたパラメータ化シナリオにどのように応答するかを示すシミュレーションデータを受信することを含むことができる。シミュレーション後、結果は、車両コントローラに関連付けられた合格(例えば、成功した結果)、失敗、および/または成功または失敗の程度を示すことができる。
例示的なプロセス800の操作816において、プロセスは、シミュレーションデータに基づいて、車両コントローラに関連付けられた安全性メトリックを決定することを含むことができる。例えば、各シミュレーションは、成功または失敗の結果をもたらすことができる。加えて、上述したように、車両性能コンポーネントは、シミュレーションデータに基づいて、車両が環境内でどのように実行するかを示すことができる車両性能データを決定できる。感度分析に基づいて、車両性能データは、シミュレーションの結果が成功しなかったシナリオ、シミュレーションの失敗の原因、および/またはシミュレーションの結果が成功したシナリオパラメータの値を示すシナリオパラメータの境界を示すことができる。したがって、安全性メトリックは、さまざまなシミュレートされたシナリオ内の車両コントローラの合格/不合格率を示すことができる。
図9は、自律車両のサブシステムに関連付けられた統計モデルを決定するための例示的なプロセスのフロー図を示している。プロセス900の一部または全てを、本明細書に記載されるように、図1乃至図7の1つまたは複数のコンポーネントによって実行できる。例えば、プロセス900の一部または全てを、コンピューティングデバイス204および/またはコンピューティングデバイス702によって実行できる。
例示的なプロセス900の操作902において、プロセス900は、自律車両のサブシステムに関連付けられた車両データ(または他のデータ)を受信することを含むことができる。車両データは、環境を通り横断する車両によってキャプチャされるログデータを含むことができる。いくつかの例では、車両データは、制御データ(例えば、ステアリング、ブレーキなどのシステムを制御するために使用されるデータ)および/またはセンサデータ(例えば、lidarデータ、radarデータなど)を含むことができる。
例示的なプロセス900の操作904において、プロセス900は、車両データに基づいて、サブシステムに関連付けられた出力データを決定することを含むことができる。例として、限定されないが、サブシステムは知覚システムとすることができ、出力データは環境内のオブジェクトに関連付けられたバウンディングボックスとすることができる。
例示的なプロセス900の動作906において、プロセス900は、サブシステムに関連付けられたグラウンドトゥルースデータを受信することを含むことができる。いくつかの例では、グラウンドトゥルースデータを、手動でラベル付けおよび/または他の検証された機械学習コンポーネントから決定できる。例として、限定されないが、グラウンドトゥルースデータは、環境内のオブジェクトに関連付けられた検証されたバウンディングボックスを含むことができる。
例示的なプロセス900の操作908において、プロセス900は、出力データの第1の部分とグラウンドトゥルースデータの第2の部分との間の差を決定することを含むことができ、差はサブシステムに関連付けられたエラーを表す。上述したように、出力データは、車両の知覚システムによって検出された、環境内のオブジェクトに関連付けられたバウンディングボックスを含むことができ、グラウンドトゥルースデータは、オブジェクトに関連付けられた検証済みのバウンディングボックスを含むことができる。2つのバウンディングボックス間の差は、車両の知覚システムに関連付けられたエラーを示すことができる。例として、限定されないが、出力データのバウンディングボックスは検証済みのバウンディングボックスよりも大きくすることができ、知覚システムがオブジェクトは環境内よりも大きいことを検出していることを示す。
例示的なプロセス900の操作910において、プロセス900は、差に基づいて、サブシステムに関連付けられた統計モデルを決定することを含むことができる。例えば、
[例示的な発明内容]
A:1つまたは複数のプロセッサと、実行されると、前記システムに、環境内で自律車両を操作することに関連付けられたログデータを受信することと、前記ログデータに少なくとも部分的に基づいて、シナリオのセットを決定することであって、シナリオの前記セットのシナリオが、前記環境の態様に関連付けられたシナリオパラメータを含む、ことと、前記自律車両のサブシステムに関連付けられたエラーモデルを決定することと、前記シナリオパラメータおよび前記エラーモデルに少なくとも部分的に基づいて、パラメータ化シナリオを決定することと、摂動を与えられたパラメータ化シナリオにおいてインスタンス化される前記シナリオパラメータまたはシミュレートされた車両のコンポーネントのうちの少なくとも1つにエラーを追加することによって、前記パラメータ化シナリオに摂動を与えることであって、前記シミュレートされた車両が車両コントローラによって制御される、ことと、前記摂動を与えられたパラメータ化シナリオにおいて前記シミュレートされた車両をインスタンス化することと、前記シミュレートされた車両が前記摂動を与えられたパラメータ化シナリオにどのように応答するかを示すシミュレーションデータを受信することと、前記シミュレーションデータに少なくとも部分的に基づいて、前記車両コントローラに関連付けられた安全性メトリックを決定することと、を含む操作を実行させるコンピュータで実行可能な命令を格納した1つまたは複数のコンピュータ可読媒体と、を含むシステム。
B:シナリオの前記セットを決定することが、前記ログデータをクラスタリングして、第1のセットのクラスタを決定することであって、前記第1のセットのクラスタの個々のクラスタは、個々のシナリオに関連付けられている、ことと、前記第1のセットのクラスタに少なくとも部分的に基づいて、前記個々のクラスタに関連付けられた確率を決定することと、確率閾値および前記第1のセットのクラスタに少なくとも部分的に基づいて、第2のセットのクラスタを決定することと、を含む、段落Aに記載のシステム。
C:前記エラーモデルを決定することが、前記環境に関連付けられたグラウンドトゥルースデータを受信することと、前記グラウンドトゥルースデータを前記ログデータと比較することに少なくとも部分的に基づいて、エラーを決定することと、前記エラーに少なくとも部分的に基づいて、エラー分布を決定することと、を含み、前記エラーモデルは前記エラー分布を含む、段落Aに記載のシステム。
D:前記パラメータ化シナリオは第1のパラメータ化シナリオであり、前記摂動を与えられたパラメータ化シナリオは第1の摂動を与えられたパラメータ化シナリオであり、前記シミュレーションデータは第1のシミュレーションデータであり、前記操作は、前記第1のシミュレーションデータに基づいて、前記シナリオパラメータの第1のサブセットまたは前記エラーモデルの第2のサブセットのうちの少なくとも1つを含む第2のパラメータ化シナリオを決定することと、前記第2のパラメータ化シナリオに、第2の摂動を与えられたパラメータ化シナリオとして、摂動を与えることと、前記第2の摂動を与えられたパラメータ化シナリオにおいて前記シミュレートされた車両をインスタンス化することと、第2のシミュレーションデータを受信することと、前記第2のシミュレーションデータに少なくとも部分的に基づいて、前記安全性メトリックを更新することと、をさらに含む、段落Aに記載のシステム。
E:環境の一部を説明するシナリオパラメータを含むシナリオを決定することと、車両のサブシステムに関連付けられたエラーモデルを受信することと、前記シナリオ、前記シナリオパラメータ、および前記エラーモデルに少なくとも部分的に基づいて、パラメータ化シナリオを決定することと、前記パラメータ化シナリオを摂動を与えられたパラメータ化シナリオとして摂動を与えることと、前記車両の前記サブシステムが前記摂動を与えられたパラメータ化シナリオにどのように応答するかを示すシミュレーションデータを受信することと、前記シミュレーションデータに少なくとも部分的に基づいて、前記車両の前記サブシステムに関連付けられた安全性メトリックを決定することと、を含む方法。
F:前記シナリオパラメータは、オブジェクトのサイズ、オブジェクトの速度、オブジェクトのポーズ、オブジェクトの密度、車両の速度、車両の軌道の少なくとも1つに関連付けられている、段落Eに記載の方法。
G:前記シナリオを決定することが、自律車両に関連付けられたログデータを受信することと、前記ログデータをクラスタリングして、クラスタの第1のセットを決定することであって、クラスタの前記第1のセットの個々のクラスタは、前記シナリオに関連付けられている、ことと、クラスタの前記第1のセットに少なくとも部分的に基づいて、前記個々のクラスタに関連付けられた確率を決定することと、前記確率が確率閾値を満たすまたは超えると決定することと、を含む、段落Eに記載の方法。
H:前記エラーモデルは、前記環境に関連付けられたグラウンドトゥルースデータを受信することと、前記グラウンドトゥルースデータを車両に関連付けられたログデータと比較することに少なくとも部分的に基づいて、エラーを決定することと、前記エラーに少なくとも部分的に基づいて、エラー分布を決定することと、に少なくとも部分的に基づいて、決定され、前記エラーモデルは前記エラー分布を含む、段落Eに記載の方法。
I:前記パラメータ化シナリオは第1のパラメータ化シナリオであり、前記摂動を与えられたパラメータ化シナリオは第1の摂動を与えられたパラメータ化シナリオであり、前記シミュレーションデータは第1のシミュレーションデータであり、前記方法は、前記第1のシミュレーションデータに基づいて、前記シナリオパラメータの第1のサブセットまたは前記エラーモデルの第2のサブセットのうちの少なくとも1つを含む第2のパラメータ化シナリオを決定することと、前記第2のパラメータ化シナリオに摂動を与えることと、第2のシミュレーションデータを受信することと、前記第2のシミュレーションデータに少なくとも部分的に基づいて、前記安全性メトリックを更新することと、さらに含む、段落Eに記載の方法。
J:前記シナリオパラメータまたは前記エラーモデルの1つの少なくとも第1の部分を無効にすることと、前記第2のシミュレーションデータを、無効にされていない前記シナリオパラメータまたは前記エラーモデルの1つの少なくとも第2の部分に関連付けることとをさらに含む段落Iに記載の方法。
K:前記安全性メトリックがコスト閾値を満たすまたは超える確率を示す、段落Eに記載の方法。
L:前記部分は第1の部分であり、前記方法が、マップデータを受信することであって、前記マップデータの第2の部分は、前記環境の前記第1の部分に関連付けられている、ことと、前記マップデータの前記第2の部分が、前記シナリオパラメータに関連付けられた閾値確率を満たすまたは超える確率に関連付けられたシナリオに関連付けられていると決定することと、をさらに含む、段落Eに記載の方法。
M:命令が実行されると、プロセッサに環境の一部を説明するシナリオパラメータを含むシナリオを決定することと、車両のサブシステムに関連付けられたエラーモデルの1つまたは複数を受信すること、または決定すること、前記シナリオ、前記シナリオパラメータ、および前記エラーモデルに少なくとも部分的に基づいて、パラメータ化シナリオを決定することと、前記パラメータ化シナリオを摂動を与えられたパラメータ化シナリオとして摂動を与えることと、前記車両の前記サブシステムが前記摂動を与えられたパラメータ化シナリオにどのように応答するかを示すシミュレーションデータを受信することと、前記シミュレーションデータに少なくとも部分的に基づいて、前記車両の前記サブシステムに関連付けられた安全性メトリックを決定することと、を含む操作を実行させる、プロセッサによって実行可能な命令を格納する非一時的コンピュータ可読媒体。
N:前記シナリオパラメータは、オブジェクトのサイズ、オブジェクトの速度、オブジェクトのポーズ、オブジェクトの密度、車両の速度、車両の軌道の少なくとも1つに関連付けられている、段落Mに記載の非一時的コンピュータ可読媒体。
O:前記シナリオを決定することが、自律車両に関連付けられたログデータを受信することと、前記ログデータをクラスタリングして、クラスタの第1のセットを決定することであって、クラスタの前記第1のセットの個々のクラスタは、前記シナリオに関連付けられている、ことと、クラスタの前記第1のセットに少なくとも部分的に基づいて、前記個々のクラスタに関連付けられた確率を決定することと、前記確率が確率閾値を満たすまたは超えると決定することと、を含む段落Mに記載の非一時的コンピュータ可読媒体。
P:前記エラーモデルは、前記環境に関連付けられたグラウンドトゥルースデータを受信することと、前記グラウンドトゥルースデータを車両に関連付けられたログデータと比較することに少なくとも部分的に基づいて、エラーを決定することと、前記エラーに少なくとも部分的に基づいて、エラー分布を決定することと、に少なくとも部分的に基づいて決定され、前記エラーモデルは前記エラー分布を含む、段落Mに記載の非一時的コンピュータ可読媒体。
Q:前記パラメータ化シナリオは第1のパラメータ化シナリオであり、前記摂動を与えられたパラメータ化シナリオは第1の摂動を与えられたパラメータ化シナリオであり、前記シミュレーションデータは第1のシミュレーションデータであり、前記操作は、前記第1のシミュレーションデータに基づいて、前記シナリオパラメータの第1のサブセットまたは前記エラーモデルの第2のサブセットのうちの少なくとも1つを含む第2のパラメータ化シナリオを決定することと、前記第2のパラメータ化シナリオに摂動を与えることと、第2のシミュレーションデータを受信することと、前記第2のシミュレーションデータに少なくとも部分的に基づいて、前記安全性メトリックを更新することと、をさらに含む、段落Mに記載の非一時的コンピュータ可読媒体。
R:前記操作が前記シナリオパラメータまたは前記エラーモデルの1つの少なくとも第1の部分を無効にすることと、前記第2のシミュレーションデータを、無効にされていない前記シナリオパラメータまたは前記エラーモデルの1つの少なくとも第2の部分に関連付けることと、をさらに含む、段落Qに記載の非一時的コンピュータ可読媒体。
S:前記安全性メトリックは、コスト閾値を満たすまたは超える確率を示す、段落Mに記載の非一時的コンピュータ可読媒体。
T:前記エラーモデルは、前記車両の知覚システム、前記車両の予測システム、または前記車両のプランナシステムのうちの1つまたは複数に関連付けられている、段落Mに記載の非一時的コンピュータ可読媒体。
U:1つまたは複数のプロセッサと、実行されると、前記システムに、車両データを受信することと、前記車両データの少なくとも第1の部分を自律車両のサブシステムに入力することであって、前記サブシステムは、知覚システム、計画システム、追跡システム、または予測システムのうちの少なくとも1つに関連付けられている、ことと、前記車両データの第2の部分に少なくとも部分的に基づいて、環境パラメータを決定することと、前記サブシステムから推定値を受信することと、前記サブシステムに関連付けられたグラウンドトゥルースデータを受信することと、前記推定値とグラウンドトゥルースデータとの間の差を決定することであって、前記差は、前記サブシステムに関連付けられたエラーを表す、ことと、前記差に少なくとも部分的に基づいて、前記エラーの確率を示す前記サブシステムに関連付けられた統計モデルを決定することであって、前記確率は前記環境パラメータに関連付けられている、ことと、を含む操作を実行させるコンピュータで実行可能な命令を格納した1つまたは複数のコンピュータ可読媒体と、を含むシステム。
V:前記車両データが前記自律車両上のセンサからのセンサデータを含み、前記環境パラメータが、前記自律車両の速度または気象条件の1つまたは複数を含み、前記サブシステムが知覚サブシステムであり、前記推定値が、前記車両データに表されるオブジェクトの推定位置、推定方向、または推定範囲のうちの1つまたは複数であり、前記グラウンドトゥルースデータが、前記オブジェクトの実際の位置、実際の方向、または実際の範囲を表す、段落Uに記載のシステム。
W:前記統計モデルを決定することが、前記車両データに少なくとも部分的に基づいて、前記環境パラメータに関連付けられた第1の周波数および前記差に関連付けられた第2の周波数を決定することと、前記第1の周波数および前記第2の周波数に少なくとも部分的に基づいて、前記確率を決定することと、を含む、段落Uに記載のシステム。
X:前記操作が、シミュレートされた車両データに少なくとも部分的に基づいて、シミュレートされた環境パラメータを決定することと、前記シミュレートされた環境パラメータが前記環境パラメータに対応することを決定することと、前記シミュレートされた車両データおよび前記サブシステムに少なくとも部分的に基づいて、シミュレートされた推定値を決定することと、前記確率に少なくとも部分的に基づいて、前記エラーに少なくとも部分的に基づく対応するシミュレートされたシナリオの一部を変更することによって、前記シミュレートされた推定値に摂動を与えることと、をさらに含む、段落Uに記載のシステム。
Y:車両に関連付けられたデータを受信することと、前記データの第1の部分に少なくとも部分的に基づいて、環境パラメータを決定することと、前記データの第2の部分に少なくとも部分的に基づいて、前記車両のシステムに関連付けられた出力データを決定することと、前記システムおよび前記データに関連付けられたグラウンドトゥルースデータを受信することと、前記出力データと前記グラウンドトゥルースデータとの間の差を決定することであって、前記差が前記システムに関連付けられたエラーを表す、ことと、前記差に少なくとも部分的に基づいて、前記エラーの確率を示す前記システムに関連付けられた統計モデルを決定することであって、前記確率は前記環境パラメータに関連付けられている、ことと、を含む方法。
Z:前記統計モデルを決定することが、前記データに少なくとも部分的に基づいて、前記エラーに関連付けられた周波数を決定することと、を含む、段落Yに記載の方法。
AA:前記環境パラメータが、前記車両の速度、気象条件、前記車両の地理的位置、または1日の時間のうちの1つまたは複数を含む、段落Yに記載の方法。
AB:シミュレーションを生成することと、前記シミュレーションのシミュレートされた環境パラメータが前記環境パラメータに対応することを決定することと、シミュレートされたデータを前記システムに入力することと、前記システムからシミュレートされた出力を受信することと、前記確率および前記エラーに少なくとも部分的に基づいて、シミュレーションに摂動を与えることと、をさらに含む段落Yに記載の方法。
AC:前記システムが知覚システムであり、前記出力データがオブジェクトに関連付けられた第1のバウンディングボックスを含み、前記グラウンドトゥルースデータが、前記オブジェクトに関連付けられた第2のバウンディングボックスを含み、前記差を決定することが、前記第1のバウンディングボックスの第1の範囲および前記第2のバウンディングボックスの第2の範囲、または、前記第1のバウンディングボックスの第1のポーズおよび前記第2のバウンディングボックスの第2のポーズの少なくとも1つの間の前記差を決定することを含む、段落Yに記載の方法。
AD:前記システムはトラッカーシステムであり、前記出力データは、前記車両の計画軌道データを含み、前記グラウンドトゥルースデータは前記車両の測定軌道を含み、前記差を決定することは、前記計画軌道データと前記測定軌道との間の前記差を決定することを含む、段落Yに記載の方法。
AE:前記システムは予測システムに関連付けられ、前記データは、環境内のオブジェクトの予測軌道を含み、前記グラウンドトゥルースデータは、前記オブジェクトの観測軌道を含み、前記差を決定することは、前記予測軌道と前記観測軌道との間の前記差を決定することを含む、段落Yに記載の方法。
AF:前記データが第1のデータであり、前記環境パラメータが第1の環境パラメータであり、前記差が第1の差であり、前記エラーが第1のエラーであり、前記確率が第1の確率であり、前記方法は、前記車両の前記システムに関連付けられた第2のデータを受信することと、前記第2のデータに少なくとも部分的に基づいて、第2の環境パラメータを決定することと、前記出力データの第3の部分と前記グラウンドトゥルースデータの第4の部分との間の第2の差を決定することであって、前記第2の差は、前記システムに関連付けられた第2のエラーを表す、ことと、前記システムに関連付けられた前記統計モデルを更新することであって、前記統計モデルは前記第2のエラーの第2の確率を示し、前記第2の確率は前記第2の環境パラメータに関連付けられている、ことと、をさらに含む、段落Yに記載の方法。
AG:命令が実行されると、プロセッサにデータを受信することと、前記データに少なくとも部分的に基づいて、環境パラメータを決定することと、前記データおよび車両のシステムに少なくとも部分的に基づいて、出力データを決定することと、前記システムおよび前記データに関連付けられたグラウンドトゥルースデータを受信することと、前記出力データの第1の部分と前記グラウンドトゥルースデータの第2の部分との間の差を決定することであって、前記差が前記システムに関連付けられたエラーを表す、ことと、前記差に少なくとも部分的に基づいて、前記エラーの確率を示す前記システムに関連付けられた統計モデルを決定することと、前記確率を前記環境パラメータに関連付けることと、を含む操作を実行させる、前記プロセッサによって実行可能な命令を格納する非一時的コンピュータ可読媒体。
AH:前記統計モデルを決定することは、前記データに少なくとも部分的に基づいて、前記差に関連付けられた周波数を決定することと、を含む、段落AGに記載の非一時的コンピュータ可読媒体。
AI:前記環境パラメータは、前記車両の速度、気象条件、または1日のうちの時間のうちの1つまたは複数を含む、段落AGに記載の非一過性コンピュータ可読媒体。
AJ:前記操作がシミュレートされた車両を含むシミュレーションを生成することと、シミュレートされたデータを受信することと、シミュレートされた環境パラメータが前記環境パラメータに対応することを決定することと、前記シミュレートされたデータの少なくとも一部を前記システムに入力することと、前記システムからシミュレートされた出力データを受信することと、要求および確率およびエラーに少なくとも部分的に基づいて、前記シミュレートされた出力データを変更することと、をさらに含む段落AGに記載の非一過性コンピュータ可読媒体。
AK:前記システムが知覚システムであり、前記データがオブジェクトに関連付けられた第1のバウンディングボックスを含み、前記グラウンドトゥルースデータが、前記オブジェクトに関連付けられた第2のバウンディングボックスを含み、前記差を決定することが、前記第1のバウンディングボックスの第1の範囲および前記第2のバウンディングボックスの第2の範囲、または、前記第1のバウンディングボックスの第1のポーズおよび前記第2のバウンディングボックスの第2のポーズの少なくとも1つの間の前記差を決定することを含む、段落AGに記載の非一時的コンピュータ可読媒体。
AL:前記システムはトラッカーシステムであり、前記データは、前記車両の計画軌道データを含み、前記グラウンドトゥルースデータは前記車両の測定軌道を含み、前記差を決定することは、前記計画軌道データと前記測定軌道との間の前記差を決定することを含む、段落AGに記載の非一時的コンピュータ可読媒体。
AM:前記システムは予測システムに関連付けられ、前記データは、環境内のオブジェクトの予測軌道を含み、前記グラウンドトゥルースデータは、前記オブジェクトの観測軌道を含み、前記差を決定することは、前記予測軌道と前記観測軌道との間の前記差を決定することを含む、段落AGに記載の非一時的コンピュータ可読媒体。
AN:前記データが第1のデータであり、前記環境パラメータが第1の環境パラメータであり、前記差が第1の差であり、前記エラーが第1のエラーであり、前記確率が第1の確率であり、前記操作は、前記車両の前記システムに関連付けられた第2のデータを受信することと、前記第2のデータに少なくとも部分的に基づいて、第2の環境パラメータを決定することと、前記出力データの第3の部分と前記グラウンドトゥルースデータの第4の部分との間の第2の差を決定することであって、前記第2の差は、前記システムに関連付けられた第2のエラーを表す、ことと、前記システムに関連付けられた前記統計モデルを更新することであって、前記統計モデルは前記第2のエラーの第2の確率を示し、前記第2の確率は前記第2の環境パラメータに関連付けられている、ことと、をさらに含む、段落AGに記載の非一時的コンピュータ可読媒体。
上述の例示の発明内容は1つの特定の実装に関して説明されているが、この文書のコンテキストでは、例示の発明内容はまた、方法、デバイス、システム、コンピュータ可読媒体、および/または別の実装を介して実装できることを理解されたい。さらに、例示A乃至ANのいずれかは、単独で、または任意の他の1つまたは複数の例示A乃至ANと組み合わせて実装され得る。
[結論]
本明細書で説明する技術の1つまたは複数の例について説明したが、様々な変更、
追加、置換、およびそれらの同等物が、本明細書で説明する技術の範囲内に含まれる。
例示の説明では、本明細書の一部を形成する添付の図面を参照するが、これは例示として特許請求される主題の具体的な例を示す。他の例を使用でき、構造的変更などの変更または代替を行うことできることを理解されたい。そのような例示、変更または代替は、意図して特許請求される主題に関する範囲から必ずしも逸脱するものではない。本明細書のステップを特定の順序で提示できるが、いくつかのケースでは、説明したシステムおよび方法の機能を変更することなく、特定の入力を異なる時間または異なる順序で提供するように、順序を変更できる。開示された手順はまた異なる順序で実行できる。さらに、本明細書にある様々な計算は開示された順序で実行される必要はなく、計算の代替順序を使用する他の例を容易に実装できる。並べ替えに加えて、計算はまた同じ結果となるサブ計算に分解できる。