(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-02-29
(54)【発明の名称】運転シミュレーションにおけるエージェント変換
(51)【国際特許分類】
B60W 30/00 20060101AFI20240221BHJP
G08G 1/16 20060101ALI20240221BHJP
G08G 1/00 20060101ALI20240221BHJP
B60W 50/06 20060101ALI20240221BHJP
【FI】
B60W30/00
G08G1/16 C
G08G1/00 D
B60W50/06
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2023551105
(86)(22)【出願日】2022-02-17
(85)【翻訳文提出日】2023-08-23
(86)【国際出願番号】 US2022016746
(87)【国際公開番号】W WO2022182561
(87)【国際公開日】2022-09-01
(32)【優先日】2021-02-24
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2021-02-24
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】518156417
【氏名又は名称】ズークス インコーポレイテッド
(74)【代理人】
【識別番号】110001243
【氏名又は名称】弁理士法人谷・阿部特許事務所
(72)【発明者】
【氏名】プリアム ムクンダン
(72)【発明者】
【氏名】チョンヒョン パク
(72)【発明者】
【氏名】マクスウェル チャンドラー ロビンソン
(72)【発明者】
【氏名】トッド キャメロン センプル
【テーマコード(参考)】
3D241
5H181
【Fターム(参考)】
3D241BA01
3D241BA13
3D241BA15
3D241BA21
3D241BA24
3D241CC01
3D241CC08
3D241CC11
3D241CC17
3D241CD10
3D241CD11
3D241CD12
3D241CD21
3D241CD27
3D241CE08
3D241DB01Z
3D241DB02Z
3D241DB12Z
3D241DB20Z
3D241DC28Z
3D241DC29Z
3D241DC30Z
3D241DC31Z
3D241DC32Z
5H181AA01
5H181AA05
5H181AA06
5H181AA07
5H181BB04
5H181BB05
5H181CC03
5H181CC04
5H181CC05
5H181CC14
5H181CC17
5H181FF04
5H181FF05
5H181FF07
5H181FF10
5H181LL01
5H181LL02
5H181LL04
5H181LL09
5H181MB02
5H181MB06
(57)【要約】
本明細書では、車両制御システムの性能及び機能性を評価するためにログベースの運転シミュレーションを実行するための手法が述べられる。シミュレーションシステムは、環境内で動作する車両によって取り込まれたログデータに基づいて動作するプレイバックエージェントを含むログベースの運転シミュレーションを実行し得る。シミュレーションシステムは、プレイバックエージェントに関連付けられた相互作用を決定し得、運転シミュレーション中にプレイバックエージェントをスマートエージェントに変換し得る。運転シミュレーション中、スマートエージェントに変換されたプレイバックエージェントは、追加のプレイバックエージェントと相互作用し、追加の変換のカスケード効果を引き起こし得る。プレイバックエージェントをスマートエージェントに変換することは、スマートエージェントを制御するための計画コンポーネントを開始することを含み得、この計画コンポーネントは、プレイバックエージェントに基づく目的地及び/又は運転属性の決定に基づき得る。
【特許請求の範囲】
【請求項1】
システムであって、
1つ又は複数のプロセッサと、
実行されると、
運転シミュレーションを実行することであって、前記運転シミュレーションは、環境における車両に関連付けられたログデータに少なくとも部分的に基づき、前記ログデータは前記環境における第1のオブジェクトに関連付けられた第1のログデータを含むことと、
第1の時間期間において、第1のシミュレートされたオブジェクトを、前記環境内の前記第1のオブジェクトと対応させるために制御することと、
前記運転シミュレーションにおける、前記第1のシミュレートされたオブジェクトと第2のシミュレートされたオブジェクトとの間の相互作用を決定することと、
前記第1の時間期間後の前記運転シミュレーションにおける第2の時間期間中に、計画コンポーネントを使用して前記第1のシミュレートされたオブジェクトを制御することと、
を備えた動作を前記1つ又は複数のプロセッサに実行させるコンピュータ実行可能な指令を格納した、1つ又は複数のコンピュータ可読媒体と、
を備える、システム。
【請求項2】
前記ログデータは、前記環境における第2のオブジェクトに関連付けられた第2のログデータを備え、前記方法は、
前記第2のログデータにおける前記第2のオブジェクトの位置と前記運転シミュレーションにおける前記第2のシミュレートされたオブジェクトの相対的な位置との間の距離を決定することと、
前記距離が閾値距離を満たす又は超えることを決定することに少なくとも部分的に基づいて、前記第1のシミュレートされたオブジェクトを制御するために前記計画コンポーネントを開始することと、
をさらに備える、請求項1に記載のシステム。
【請求項3】
前記動作は、
前記第1のシミュレートされたオブジェクトに関連付けられた運転属性を決定することと、
前記第1のシミュレートされたオブジェクトに対する目的地を決定することと、
前記運転属性に関連付けられた第1のパラメータ、及び前記目的地に関連付けられた第2のパラメータを前記計画コンポーネントに提供することであって、前記計画コンポーネントは、前記第1のパラメータ及び前記第2のパラメータに少なくとも部分的に基づいた前記運転シミュレーションにおいて、前記第1のシミュレートされたオブジェクトを制御するように構成されることと、
をさらに備える、請求項1又は2に記載のシステム。
【請求項4】
前記第1のシミュレートされたオブジェクトに関連付けられた前記運転属性、及び、前記第1のシミュレートされたオブジェクトに関連付けられた前記目的地は、前記第1のログデータに少なくとも部分的に基づいて決定される、請求項3に記載のシステム。
【請求項5】
前記動作は、
前記運転シミュレーションにおける前記第2の時間期間中、前記ログデータに少なくとも部分的に基づいて、第3のシミュレートされたオブジェクトを制御することと、
前記運転シミュレーションにおける、前記第1のシミュレートされたオブジェクトと前記第3のシミュレートされたオブジェクトとの間の第2の相互作用を決定することと、
前記第2の時間期間後の前記運転シミュレーションにおける第3の時間期間中、前記計画コンポーネントを使用して前記第3のシミュレートされたオブジェクトを制御することであって、前記計画コンポーネント使用して前記第3のシミュレートされたオブジェクトを制御することは、前記第2の相互作用を決定することに少なくとも部分的に基づくことと、
をさらに備える、請求項1から4のいずれか一項に記載のシステム。
【請求項6】
前記動作は、
前記運転シミュレーションにおける前記第2の時間期間中、前記ログデータに少なくとも部分的に基づいて、第3のシミュレートされたオブジェクトを制御することと、
前記運転シミュレーションにおける前記第1のシミュレートされたオブジェクトと前記第3のシミュレートされたオブジェクトとの間の第2の相互作用を決定することと、
をさらに備え、
前記第2の相互作用を決定することの後に、前記第3のシミュレートされたオブジェクトを制御することは、前記ログデータに基づく、
請求項1から4のいずれか一項に記載のシステム。
【請求項7】
前記相互作用を決定することは、
前記運転シミュレーションの時間における前記第1のシミュレートされたオブジェクトに関連付けられた第1の経路に基づく第1の境界ボックスを決定することと、
前記運転シミュレーションの前記時間における前記第2のシミュレートされたオブジェクトに関連付けられた第2の経路に基づく第2の境界ボックスを決定することと、
前記第1の境界ボックスと前記第2の境界ボックスとの重なりを決定することと、
を備える、請求項1から6のいずれか一項に記載のシステム。
【請求項8】
方法であって、
運転シミュレーションを実行することであって、前記運転シミュレーションは、環境における車両に関連付けられたログデータに少なくとも部分的に基づき、前記ログデータは前記環境における第1のオブジェクトに関連付けられた第1のログデータを含むことと、
第1の時間期間において、第1のシミュレートされたオブジェクトを、前記環境内の前記第1のオブジェクトと対応させるために制御することと、
前記運転シミュレーションにおける、前記第1のシミュレートされたオブジェクトと第2のシミュレートされたオブジェクトとの間の相互作用を決定することと、
前記第1の時間期間後の前記運転シミュレーションにおける第2の時間期間中に、計画コンポーネントを使用して前記第1のシミュレートされたオブジェクトを制御することと、
を備える、方法。
【請求項9】
前記ログデータは、前記環境における第2のオブジェクトに関連付けられた第2のログデータを備え、前記方法は、
前記第2のログデータにおける前記第2のオブジェクトの位置と前記運転シミュレーションにおける前記第2のシミュレートされたオブジェクトの相対的な位置との間の距離を決定することと、
前記距離が閾値距離を満たす又は超えることを決定することに少なくとも部分的に基づいて、前記第1のシミュレートされたオブジェクトを制御するために前記計画コンポーネントを開始することと、
をさらに備える、請求項8に記載の方法。
【請求項10】
前記第1のシミュレートされたオブジェクトに関連付けられた運転属性を決定することと、
前記第1のシミュレートされたオブジェクトに対する目的地を決定することと、
前記運転属性に関連付けられた第1のパラメータ、及び前記目的地に関連付けられた第2のパラメータを前記計画コンポーネントに提供することであって、前記計画コンポーネントは、前記第1のパラメータ及び前記第2のパラメータに少なくとも部分的に基づいた前記運転シミュレーションにおいて、前記第1のシミュレートされたオブジェクトを制御するように構成されることと、
をさらに備える、請求項8又は9に記載の方法。
【請求項11】
前記第1のシミュレートされたオブジェクトに関連付けられた前記運転属性、及び、前記第1のシミュレートされたオブジェクトに関連付けられた前記目的地は、前記第1のログデータに少なくとも部分的に基づいて決定される、請求項10に記載の方法。
【請求項12】
前記運転シミュレーションにおける前記第2の時間期間中、前記ログデータに少なくとも部分的に基づいて、第3のシミュレートされたオブジェクトを制御することと、
前記運転シミュレーションにおける、前記第1のシミュレートされたオブジェクトと前記第3のシミュレートされたオブジェクトとの間の第2の相互作用を決定することと、
前記第2の時間期間後の前記運転シミュレーションにおける第3の時間期間中、前記計画コンポーネントを使用して前記第3のシミュレートされたオブジェクトを制御することであって、前記計画コンポーネント使用して前記第3のシミュレートされたオブジェクトを制御することは、前記第2の相互作用を決定することに少なくとも部分的に基づくことと、
をさらに備える、請求項8から11のいずれか一項に記載の方法。
【請求項13】
前記運転シミュレーションにおける前記第2の時間期間中、前記ログデータに少なくとも部分的に基づいて、第3のシミュレートされたオブジェクトを制御することと、
前記運転シミュレーションにおける前記第1のシミュレートされたオブジェクトと前記第3のシミュレートされたオブジェクトとの間の第2の相互作用を決定することと、
をさらに備え、
前記第2の相互作用を決定することの後に、前記第3のシミュレートされたオブジェクトを制御することは、前記ログデータに基づく、
請求項8から11のいずれか一項に記載の方法。
【請求項14】
前記相互作用を決定することは、
前記運転シミュレーションの時間における前記第1のシミュレートされたオブジェクトに関連付けられた第1の経路に基づく第1の境界ボックスを決定することと、
前記運転シミュレーションの前記時間における前記第2のシミュレートされたオブジェクトに関連付けられた第2の経路に基づく第2の境界ボックスを決定することと、
前記第1の境界ボックスと前記第2の境界ボックスとの重なりを決定することと、
を備える、請求項8から13のいずれか一項に記載の方法。
【請求項15】
1つ又は複数の非一時的コンピュータ可読媒体であって、1つ又は複数のプロセッサによって実行されると、請求項8から14のいずれか一項に記載の方法を、前記1つ又は複数のプロセッサに実行させる、プロセッサ実行可能な指令を格納した非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、運転シミュレーションにおけるエージェント変換に関する。
【背景技術】
【0002】
本PCT国際出願は、2021年2月24日に出願され、「AGENT CONVERSIONS IN DRIVING SIMULATIONS」と題された米国特許出願第17/184128号、及び2021年2月24日に出願され、「SIMULATED AGENTS BASED ON DRIVING LOG DATA」と題された米国特許出願第17/184169号の優先権の利益を主張するものであり、これらの全内容は、あらゆる目的のために、参照によりその全体が本明細書に組み込まれる。
【0003】
シミュレーションは、例えば、安全上の懸念、時間の制限、再現性などのために、現実の環境でテストすることが禁止され得るものを含む、システムの特徴及び機能性をテスト及び検証するために使用されることができる。例えば、自律車両は、乗客の安全性、車両の意思決定、センサーデータ分析、ルート最適化などに関して、車両制御システムの性能をテストし、改善するために運転シミュレーションが使用され得る。しかしながら、実世界のシナリオを正確に反映する運転シミュレーションは、そのようなシミュレーションを作成するために使用されるデータが、ノイズが多い、一貫性がない、又は不完全である可能性があるため、作成及び実行が困難であり、コストがかかる可能性がある。さらに、運転シミュレーションの実行には、評価対象の車両制御システム、シミュレーション環境内のエージェントやその他のオブジェクトなど、複数の異なる相互作用システム及び構成要素の実行が含まれる可能性があり、リソース及び計算コストがかかり得る。
【図面の簡単な説明】
【0004】
詳細な説明は、添付の図を参照しながら説明される。図において、符号の最も左の桁は、符号が最初に現れる図を特定する。異なる図における同じ符号の使用は、類似又は同一の構成要素又は特徴を示す。
【0005】
【
図1】本開示の1つ又は複数の実施形態による、ログベースの運転シミュレーションを実行し、シミュレーション中にプレイバックエージェントをスマートエージェントに変換する例示的なプロセスを示している。
【
図2A】本開示の1つ又は複数の実施形態による、ログベースの運転シミュレーション中にエージェント間の相互作用を決定するための例示的な手法を示している。
【
図2B】本開示の1つ又は複数の実施形態による、ログベースの運転シミュレーション中にエージェント間の相互作用を決定するための例示的な手法を示している。
【
図2C】本開示の1つ又は複数の実施形態による、ログベースの運転シミュレーション中にエージェント間の相互作用を決定するための例示的な手法を示している。
【
図3A】本開示の1つ又は複数の実施形態による、ログベースの運転シミュレーション中の4つの異なる時間におけるシーンを描いている。
【
図3B】本開示の1つ又は複数の実施形態による、ログベースの運転シミュレーション中の4つの異なる時間におけるシーンを描いている。
【
図3C】本開示の1つ又は複数の実施形態による、ログベースの運転シミュレーション中の4つの異なる時間におけるシーンを描いている。
【
図3D】本開示の1つ又は複数の実施形態による、ログベースの運転シミュレーション中の4つの異なる時間におけるシーンを描いている。
【
図4A】本開示の1つ又は複数の実施形態による、別のログベースの運転シミュレーション中の4つの異なる時間におけるシーンを示す図である。
【
図4B】本開示の1つ又は複数の実施形態による、別のログベースの運転シミュレーション中の4つの異なる時間におけるシーンを示す図である。
【
図4C】本開示の1つ又は複数の実施形態による、別のログベースの運転シミュレーション中の4つの異なる時間におけるシーンを示す図である。
【
図4D】本開示の1つ又は複数の実施形態による、別のログベースの運転シミュレーション中の4つの異なる時間におけるシーンを示す図である。
【
図5】本開示の1つ又は複数の実施形態による、車両及びシミュレーションシステムを含むコンピューティング環境のブロック図である。
【
図6】本開示の1つ又は複数の実施形態による、運転シミュレーション中にプレイバックエージェントをスマートエージェントに変換するための例示的なプロセスを示すフロー図である。
【
図7】本開示の1つ又は複数の実施形態による、運転シミュレーション中にプレイバックエージェントをスマートエージェントにカスケード変換するプロセスの一例を示す流れ図である。
【発明を実施するための形態】
【0006】
本明細書では、車両制御システムの機能及び性能を評価するためにログベースの運転シミュレーションを実行するための手法が論じられる。本明細書で述べられるいくつかの手法は、車両制御システムを実行し、動的シミュレーション環境に対する車両制御システムの応答を評価するように構成されたシミュレーションシステムを用いて、ログベースの運転シミュレーションを実行することを含む。ログベースの運転シミュレーションにおいて、シミュレーション環境は、実際の(例えば、非シミュレーション又は物理的な)環境で観察された対応するエージェントに関連付けられたログデータに基づいて動作するプレイバックエージェントを含み得る。例えば、環境を横断する現実の(例えば、非シミュレーションの)車両は、車両のセンサー及び/又は知覚システムによって収集されたログデータを格納する場合があり、これには、他の車両、自転車、歩行者などの車両によって観察されたエージェント及び他のオブジェクトを表すログデータが含まれ得る。シミュレーションシステムは、ログデータに基づいて、ログベースのシミュレーションを生成し、実行する場合があり、このシミュレーションでは、実際の環境で観察されるエージェントに対応するようにプレイバックエージェントが生成され、提供される。各プレイバックエージェントは、ログデータに表された対応するエージェントに基づいてもよく、シミュレーションにおいて、実環境で観察された対応するエージェントと同様又は同一の方法で動作してもよい。
【0007】
ログベースの運転シミュレーションの実行中、シミュレーションシステムは、ログデータの代わりに、又はログデータに加えて、1つ又は複数のプレイバックエージェントを、計画コンポーネントによって制御され得る「スマートエージェント」に変換する場合がある。プレイバックエージェントとは異なり、シミュレーション内のスマートエージェントは、シミュレーション環境に反応し、ログデータ内の対応するプレイバックエージェントの動作から偏差を有する動作決定又は動作を行う場合がある。例えば、スマートエージェントは、シミュレーション内の他のエージェントとの潜在的な相互作用(例えば、衝突)を検出し、相互作用を回避するために速度又は軌道を変更し得る。プレイバックエージェントは、ログに記録されたエージェントの行動に制限され、独立した意思決定能力を持たない場合がある。
【0008】
いくつかの例では、シミュレーションシステムは、ログベースのシミュレーションの実行を監視して、シミュレーション中にプレイバックエージェントと他のエージェントとの間で発生した、又は発生する予定の相互作用を決定する場合がある。プレイバックエージェントが関与する相互作用を検出したことに応答して、シミュレーションシステムは、プレイバックエージェントをスマートエージェントに変換する場合があり、スマートエージェントが相互作用を防止するためにシミュレーション内で必要に応じて経路を制御することを与える。プレイバックエージェントがスマートエージェントに変換された後、ログデータ中の対応するプレイバックエージェントの挙動から偏差を有することがあり得る。運転シミュレーションが継続されるにつれて、このような偏差は、スマートエージェントが追加のプレイバックエージェントと相互作用する結果となり、それにより、シミュレーションシステムは、相互作用に基づいて追加のプレイバックエージェントをスマートエージェントに変換する。その結果、運転シミュレーションの実行中に、プレイバックエージェントがスマートエージェントに変換されるカスケード効果が生じる場合がある。
【0009】
さらに、いくつかの実装では、シミュレーションシステムは、ログデータを解析して、ログデータ内のプレイバックエージェントに関連付けられた動作、属性、及び/又は目的地を決定し得る。プレイバックエージェントがスマートエージェントに変換されると、シミュレーションシステムは、スマートエージェントの動作及び/又は動作を制御するための計画コンポーネントを実行する場合がある。場合によっては、スマートエージェントに対する計画コンポーネントの実行は、決定された目的地及び/又は関連付けられたプレイバックエージェントの運転挙動/属性に基づいて、計画コンポーネントを開始及び/又は制御することを含み得る。例えば、シミュレーションシステムは、プレイバックエージェントが通ったルート、及びルート中にプレイバックエージェントが実行した運転挙動及び動作を分析して、プレイバックエージェントの1つ又は複数の運転スタイル及び/又は運転者の個性タイプ(例えば、攻撃性メトリック、運転技能メトリック、反応時間メトリック、法令遵守メトリック等)を決定し得る。シミュレーションシステムは、プレイバックエージェントの目的地に基づいて、及び/又はプレイバックエージェントによって示された運転スタイル及び/又は運転手の個性に対応するパラメータに基づいて、スマートエージェントを制御するように計画コンポーネントを構成し得る。
【0010】
本明細書で述べられる手法は、多くの方法で実装され得る。例示的な実装が図を参照して以下に提供される。特定の例は、自律車両及びログベースの運転シミュレーションの文脈で述べられているが、他の例では、本明細書で述べられる方法、装置、システム、コンピュータ可読媒体、及び/又は他の実装は、半自律又は非自律車両での利用、及び/又は航空又は航海の文脈内での利用など、他の様々な環境に適用され得る。
【0011】
図1は、シミュレーション中の1回又は複数回においてプレイバックエージェントをスマートエージェントに変換することを含む、ログベースの運転シミュレーションを実行する例示的なプロセス100を示している。様々な実装において、プロセス100の動作の一部又は全ては、以下でより詳細に説明されるシミュレーションシステムなどの運転シミュレーションシステムによって実行され得る。
【0012】
動作102において、シミュレーションシステムは、環境を横断する車両に関連付けられたログデータを受信し得る。様々な例において、ログデータは、実環境又はシミュレートされた環境を横断する実車両又はシミュレートされた車両によって格納されるデータを含み得る。ボックス104に示されるように、車両106は、多数のエージェント108及び/又は他の追加のオブジェクトを含む環境を横断する場合がある。ログデータは、環境の特性、車両106の近接内で検出されたエージェント108、環境、エージェント、及び/又は他のオブジェクトの属性又は特性(例えば、分類、サイズ、形状、位置、ヨー、速度、軌道など)を識別するデータなど、車両106によって観察及び/又は知覚されたデータを含み得る。場合によっては、ログデータは、エージェント108及び他のオブジェクトの動作及び/又は挙動、ならびに、事故又は事故寸前、交通違反、歩行者、自転車、又は動物による横断又は信号無視、天候異常、工事区域、迂回路、スクールゾーンなど、車両106によって観測されたイベントを含み得る。これらの特定の事象や行動は、運転シミュレーションとして使用することが望ましい事象/行動のリストから指定されてよい。
【0013】
動作102で受信されるログデータは、境界ボックス、速度、分類、オブジェクト寸法、予測、オブジェクト追跡情報、制御信号など、生のセンサーデータ及び/又は車両106に関連付けられたセンサーデータに基づくデータを含み得る。ログデータに含まれ得る車両106によって生成されたデータの例は、例えば、「Interactions Between Vehicle and Teleoperations System」と題され、2017年7月7日に出願された米国特許出願第15/644267号、「Occupant Protection System Including Expandable Curtain and/or Expandable Bladder」と題され、2017年9月1日に出願された米国特許出願第15/693700号、「Executable Component Interface and Controller」と題され、2018年11月21日に出願された米国特許出願第16/198653号に記載されており、これらの各特許出願は、あらゆる目的のためにその全体が参照により本明細書に組み込まれる。
【0014】
いくつかの実装では、シミュレーションシステムは、動作102で受信されたログデータに基づいて、1つ又は複数のログベースの運転シミュレーションを生成し得る。ログベースの運転シミュレーションを生成するために、シミュレーション発生部は、動作102で受信されたログデータを使用して、シミュレータによって実行されると、シミュレートされた環境を生成するシミュレーション指令を生成し得る。ログベースの運転シミュレーションを生成するために使用され得る追加のログデータは、知覚データ、予測データ、及び/又は診断情報、軌道情報、及び車両106によって生成された他の情報を示す状態データを含むことができる。場合によっては、シミュレーション発生部は、ログデータ内で、環境内の静的及び/又は動的オブジェクト(例えば、エージェント108)、並びにオブジェクトの様々な属性及び挙動を特定することによって、シミュレーションシナリオを生成し得る。いくつかの例では、ログに基づくシミュレーションを生成するとき、シミュレーションシステムは、車両106との相互作用の閾値レベルを満たさない、又は超えないログに表されたオブジェクトを除外することができる。車両106との相互作用の閾値レベルを満たさない、又は超えないオブジェクトを除外することにより、シミュレーションシステムは、ログベースの運転シミュレーションを生成及び実行するのに必要な計算リソースの量を削減することができる。
【0015】
動作110において、シミュレーションシステムは、ログデータ内で検出されたエージェント108に基づくプレイバックエージェントを含む、ログベースの運転シミュレーションを実行する。様々な例において、ログベースの運転シミュレーションは、実世界で遭遇する可能性のあるシナリオと類似又は同一の様々なシミュレートされたシナリオに対するシミュレートされた車両の応答をテスト及び検証するために使用され得る。例えば、ログベースの運転シミュレーションは、様々なシミュレートされた環境、オブジェクト、及び/又はエージェントを用いて、正常又は異常な運転状態及び/又は車両状態をモデル化し得る。ログベースの運転シミュレーションは、異なる交通条件、環境条件、道路障害物、事故などをモデル化し、乗客の安全性、車両のルーティング、意思決定、効率性などをテスト及び検証し得る。特定の運転シミュレーションでは、車両上のセンサーの欠陥及び/又は不具合に対するシミュレーション車両の応答をテストすることもある。特定の運転シミュレーションは、シミュレートされた車両の個々の構成要素又はシステム(例えば、センサーデータ知覚コンポーネント、意思決定又は計画コンポーネントなど)をテストすることがあり、他の運転シミュレーションは、車両の様々な構成要素又はシステム間の相互作用を含むシミュレートされた車両全体をテストし得る。
【0016】
ログベースの運転シミュレーションの実行中、シミュレーションシステムは、ログデータによって表される環境と類似又は同一の環境をシミュレートするために、シミュレーション指令のセットを実行することがある。ボックス112に示されるように、ログベースのシミュレーション中、シミュレートされた車両114は、1つ又は複数の車両制御システム(又は車両コントローラ)によって制御される場合があり、この車両制御システムは、シミュレートされた環境、オブジェクト、及びエージェントに応答して、シミュレートされた車両114の挙動を制御し得る。場合によっては、シミュレーションシステムのシミュレータコンポーネントは、シミュレーションシナリオを実行し、シミュレーションシナリオを実行するプロセスに対して、車両コントローラを実行するプロセスに、シミュレーション中のシミュレートされた車両114の動作及び挙動を表すデータを提供することによって応答し得る、シミュレートされた環境及びオブジェクトを表すデータを提供することがある。
【0017】
ログベースの運転シミュレーションの開始において、シミュレートされたエージェントの各々は、最初はプレイバックエージェント116であり得る。上述したように、プレイバックエージェントは、非シミュレーション環境内で以前に収集されたログデータに基づいて動作するように構成される場合があり、したがって、シミュレーション内のプレイバックエージェント116は、ログデータ内の対応するエージェントの動作と同様又は同一の方法で動作し得る。以前に収集されたログデータは固定され不変であるため、シミュレートされた環境も、シミュレーション内のオブジェクト又はエージェントも、シミュレートされた車両114又はシミュレーション内の他のオブジェクトの挙動に反応又は応答するように構成されない可能性がある。従って、ボックス112に描かれた各エージェントは、ログベースシミュレーションの開始時にはプレイバックエージェント116であってもよく、固定された所定の方法で動作してもよい。
【0018】
対照的に、ログベースの運転シミュレーションにおけるシミュレートされた車両114は、シミュレートされていない環境に関連付けられたログデータを収集したエージェント108とは異なる動作をする場合がある。いくつかの例では、エージェント108及びシミュレートされた車両114は、異なる車両タイプ(及び/又は異なるエージェントタイプ)であり得る。エージェント108及びシミュレートされた車両114が共に自律車両として実装される場合であっても、シミュレートされた車両114は、エージェント108のものとは異なる車両制御装置を含み得る。例えば、シミュレートされた車両114は、エージェント108によって使用されるソフトウェア及び/又はハードウェアシステムに関して、様々な異なる及び/又は更新されたソフトウェアシステム(例えば、知覚コンポーネント、計画コンポーネント等)を含んでもよく、又は異なる車両能力のセット、異なる計画/経路決定アルゴリズム、又は異なるセンサーシステム及び/又はセンサー構成を含んでもよい。従って、シミュレートされた車両114は、ログベースのシミュレーション内で、ログデータを取り込んだエージェント108とは異なる応答をする可能性がある。エージェント108とシミュレートされた車両114の車両コントローラ及び/又は他の車両ソフトウェア又はハードウェアシステム間のこのような相違は、ログベースのシミュレーションにおけるシミュレートされた車両114の挙動をエージェント108の挙動から偏差を有する可能性がある。この例では、シミュレートされた車両114は、シミュレーションシーン内のある位置でボックス112内に描かれており、車両外形118は、同じ相対時間におけるログデータ内のエージェント108の位置に対応する別の位置を示している。
【0019】
シミュレートされた車両114は、例えば、シミュレートされたエージェント(エージェント108など)に対するシミュレートされた車両114の応答を決定することによってシミュレーションにおいてテストされる自律車両であることができる。シミュレーションにおいて、シミュレートされた車両114の様々な態様は、例えば、構成要素の新しいバージョンをテストするために(例えば、知覚、予測、及び/又は計画コンポーネントに関連して)変更されることができる。ログデータは、現実世界の運転条件及びエージェント相互作用を再現するためにシミュレーションに使用されることができる。しかしながら、シミュレートされた車両114がログデータに記録されたものと異なる動作をする場合、ログデータから作成されたエージェントもまた異なる相互作用をする可能性がある。シミュレーションの完全性を維持することは、シミュレートされた車両114と環境との相互作用の違いを考慮しつつ、エージェント(例えば、プレイバックエージェント)の現実世界の動作及び相互作用を維持することを含むことができる(例えば、スマートエージェントを介する)。
【0020】
動作120において、シミュレーションシステムは、運転シミュレーション内のプレイバックエージェント116のいずれかが、偏差を有するノンプレイバックエージェントと相互作用するか否かを決定し得る。本明細書で使用されるように、偏差エージェントは、シミュレートされた車両114又はスマートエージェントなどの、運転シミュレーション内の状態がログデータ内の対応するエージェントの状態とは異なるエージェントを指す場合がある。例えば、シミュレートされた車両114の位置は、ログデータ内のエージェント108の対応する位置(車両外形118によって示される)とは異なるため、この例では、シミュレートされた車両114が偏差を有すると識別される場合がある。エージェントが偏差を有しているかどうかの決定は、この例のように位置の比較に基づいてもよく、及び/又は、シミュレートされたエージェントとログデータ内の対応するエージェントとの間のヨー、速度、軌道等の他の車両属性又は状態の比較に基づいてもよい。さらに、以下に説明するように、シミュレーションシステムは、偏差距離閾値、他のタイプの閾値比較(例えば、ヨー偏差閾値)、及び/又は複数の偏差基準の組み合わせを使用して、エージェントが偏差を有していると分類されるかどうかを決定することがある。
【0021】
シミュレーションシステムは、動作120において、ログベースのシミュレーションの実行中に定期的及び/又は連続的に決定を実行してもよく、プレイバックエージェント116と異なる偏差エージェントとの間の相互作用は、シミュレーション中の任意の時間に決定されてもよい。エージェント間の相互作用を決定するために、シミュレーションシステムは、境界ボックス及び/又は他の手法(例えば、パスポリゴン、コリドー等)を用いて、シミュレーション中の様々な時間におけるエージェントの位置を表し得る。いくつかの例では、エージェントの境界ボックスは、シミュレーション中の任意の時点について、その時点におけるエージェントのサイズ、位置、ヨー、及び/又は速度に基づいて決定され得る。シミュレーションシステムは、シミュレーション中の特定の時点における2つのエージェントの境界ボックス間の重なりに基づいて、2つのエージェント間の相互作用を決定し得る。従って、相互作用は、エージェントの境界ボックスが重なる時点において、2つのエージェント間の衝突、又は衝突の可能性もしくはニアミスを表し得る。
【0022】
シミュレーションシステムが、シミュレーション中にプレイバックエージェント116が偏差エージェントと相互作用した(又は相互作用するであろう)と決定した場合(120:YES)、動作122において、シミュレーションシステムは、相互作用を回避するためにプレイバックエージェント116をスマートエージェントに変換し得る。例えば、ボックス124に示されるように、シミュレーションシステムは、シミュレートされた車両114の真後ろのプレイバックエージェントを、スマートエージェント126に変換している。この変換は、関連付けられたプレイバックエージェント116が、ログデータ(例えば、車両外形118)に基づいて予想された位置から偏差を有するシミュレートされた車両114と相互作用(例えば、衝突)したであろうという決定に基づいて実行されてもよい。相互作用するプレイバックエージェント116をスマートエージェント126に変換するとき、シミュレーションシステムは、スマートエージェント126のための計画コンポーネントを実行又は開始してもよく、計画コンポーネントを使用して、シミュレートされた環境を分析し、シミュレートされた環境を通るスマートエージェント126のための経路を決定してもよい。様々な例において、スマートエージェント126によって使用される計画コンポーネントは、シミュレートされた車両114によって使用される計画コンポーネントと同一であってもよいし、最小限の軌道調整で相互作用を回避するように構成されたコンポーネントの簡略化版であってもよい。例えば、スマートエージェント126が、スマートエージェントの直前のエージェントよりも速く移動している場合、所定の距離閾値において、計画コンポーネントは、スマートエージェント126の速度を低下させて、直前のエージェントの速度に一致させてもよい。他の場合において、コンポーネントは、スマートエージェント126に、他のエージェントとの相互作用を回避するために、シミュレーションにおいて、ブレーキ、ステアリング、一時停止、加速、又は他の航行操縦を実行させ得る。
【0023】
上述したように、ログベースの運転シミュレーションの開始において、シミュレーション内のエージェントの一部又は全部は、ログデータに基づいて挙動するプレイバックエージェント116であってもよく、及び/又は計画コンポーネントを含まなくてもよい。しかしながら、シミュレートされた車両114は、ログデータにおける対応するエージェント108の挙動からの偏差を引き起こす、異なる車両コントローラ及び/又は構成を含むことがある。シミュレートされた車両114の偏差は、シミュレーションシステムに、プレイバックエージェント116の1つ又は複数をスマートエージェントに変換させ得る。プレイバックエージェント116がスマートエージェント126に変換された後、シミュレートされた環境をナビゲートするためにログデータのみに依存するのではなく、計画コンポーネントを使用し始める場合がある。従って、運転シミュレーションが継続するにつれ、スマートエージェント126もまた、ログデータ中の対応するエージェント108と偏差を有する可能性がある。運転シミュレーションのこの期間中、シミュレートされた車両114及びスマートエージェント126の両方が、偏差エージェントである可能性があり、両方が、追加のプレイバックエージェント116と相互作用し、スマートエージェントへ変換され得る。いくつかの例では、その結果、プレイバックエージェントからスマートエージェントへの変換の連鎖効果が生じることがあり、その連鎖効果は、シミュレーション内で局所的に経過するまで一定期間継続することもあり、シミュレーションが終了するまで継続することもある。
【0024】
シミュレーション中の現在時刻において、スマートエージェントに変換されるべきプレイバックエージェントが存在しない場合(120:NO)、動作128において、シミュレーションシステムは、シミュレーションの終了条件が満たされたか否かを決定し得る。シミュレーション終了条件には、例えば、シミュレーションの正常終了、コンポーネントのタイムアウト、シミュレーション内で発生した衝突又はエラー、或いはユーザーによるシミュレーションの手動終了が含まれ得る。シミュレーション終了条件が発生していない場合(128:NO)、プロセス100は動作110に戻り、シミュレーションを継続する。しかしながら、シミュレーション終了条件が発生した場合(128:YES)、動作130において、シミュレーションシステムはシミュレーションを終了し、シミュレーション結果を出力又は格納し得る。いくつかの例では、シミュレーション結果は、シミュレーション中のシミュレートされた車両114の挙動及び/又は性能を特定してもよく、これは、評価される車両制御装置の挙動及び/又は性能に対応してもよい。運転シミュレーションがバッチ又は一連のシミュレーションのうちの1つである場合、プロセス100は、動作102に戻り、シミュレートされた車両114について同じログデータ及び同じ車両制御装置を用いてバッチ又は一連の次のシミュレーションを実行してもよい。
【0025】
これらの例及び他の例に示されるように、本明細書で述べられる手法は、運転シミュレーションを生成及び実行するための多くの改善及び技術的利点を提供する。このような利点には、テストされる車両制御装置の変更に関してよりロバストでより耐久性のあるログベースのシミュレーションを提供することや、現実世界の運転シナリオをより正確に表すシミュレーションを提供することが含まれる。例えば、シミュレーションシステムによっては、ログベースシミュレーションの結果、シミュレートされた車両とプレイバックエージェントとが衝突した場合、そのシミュレーションは無効となり、シミュレーションテストバッテリから破棄され得る。その結果、このようなシステムにおけるログベースのテストは、シミュレートされた車両の車両コントローラに変更があるとシミュレーションが無効になる可能性があるため、短命であることが多く、すぐに古くなってしまう可能性がある。これに対して、本明細書に述べられる手法には、プレイバックエージェントを選択的にスマートエージェントに変換することが含まれるため、故障が少なく、介入や手動分析の必要性が少なく、より長期間にわたって動作し得る、より堅牢で耐久性のあるシミュレーションが提供され、それによって、使用可能なシミュレーションテストの数が増加し、シミュレーションシステムの効率と品質が向上する。
【0026】
さらに、従来のシステムの中には、プレイバックエージェントではなく、多数の(又は専ら)スマートエージェントを含むシミュレーションを実行するものがある。このようなシステムでは、スマートエージェントは、シミュレーション中に衝突をうまく回避することができるが、場合によっては、より現実的で価値の低い運転シミュレーションを提供する可能性がある。例えば、プレイバックエージェントは、現実世界のログデータに基づいているため、予期しない予測不可能な運転をする可能性のある実際の運転手のいる環境をシミュレートする、より本格的なシナリオを提供することができるため、シミュレーション内ではスマートエージェントよりもプレイバックエージェントの方が有利な場合がある。さらに、ログベースのシミュレーション中にプレイバックエージェントがスマートエージェントに変換される場合、シミュレーションシステムは、スマートエージェントを制御するための限られたセンサー及び知覚データしか持っていない場合がある。さらに、プレイバックエージェントのスマートエージェントへの変換と、シミュレーション中のスマートエージェントの動作の計画コンポーネントの両方が、追加のコンピューティングリソースを必要とする場合があり、シミュレーションシステムの速度と効率が低下し、実行可能なシミュレーションの数が制限される。したがって、本明細書で述べられる手法は、限定的かつ選択的に、シミュレーション中に必要な場合にのみ、プレイバックエージェントをスマートエージェントに変換するものであり、シミュレーション中、より長い時間、より多くの数のプレイバックエージェントを保持し得る。
【0027】
図2A~2Cは、ログベースの運転シミュレーション内のエージェントの相互作用を検出及び分析する手法を示している。上述したように、いくつかの実装において、シミュレーションシステムは、シミュレーション内でプレイバックエージェントと偏差を有するノンプレイバックエージェントとの間で相互作用が発生したことを決定することに基づいて、運転シミュレーション中にプレイバックエージェントをスマートエージェントに変更することがある。この例では、
図2A~2Bは、2つのエージェントに関連付けられた軌道及び境界ボックスを使用して、運転シミュレーション内の2つのエージェント間の相互作用を検出する例を示している。
図2Cは、運転シミュレーション内のエージェントとログデータ内の対応するエージェントとの間の距離に対応する、偏差を有するノンプレイバックエージェント(例えば、シミュレートされた車両又は別のスマートエージェント)に関連付けられた偏差距離を決定する。
【0028】
図2A及び
図2Bはそれぞれ、異なるシミュレーション又は同じシミュレーションの一部であってもよい運転シミュレーション200及び218を示している。これらの例では、シミュレーションシステムは、軌道に沿って進行するシミュレートされた車両と、異なる軌道に沿って進行するプレイバックエージェントとの間の潜在的な衝突を表す相互作用を決定するように構成され得る。これらの例では2つの車両のみが論じられているが、他の例では、シミュレーションシステムは、同様に、軌道、経路、境界ボックスの重なりを分析し、及び/又は、運転シミュレーション内の任意の2つのエージェント間の相互作用を決定するための本明細書に述べられる他の手法を実行し得る。このような相互作用は、プレイバックエージェントとシミュレートされた車両との間の相互作用、又はプレイバックエージェントとスマートエージェントとの間の相互作用を含み得る。
【0029】
本例に示されるように、運転シミュレーション内の相互作用を決定するために、シミュレーションシステムは、運転シミュレーション内の車両に関連付けられた位置、軌道、サイズ、及び/又は空間領域を決定してもよく、車両の軌道とともにサイズ及び/又は空間領域を使用して、車両間の相互作用の可能性又は可能性を決定してもよい。
図2Aに示されるように、シミュレーション200は、軌道204に沿って進行するシミュレートされた車両202と、軌道208に沿って進行するプレイバックエージェント206との間の相互作用分析を表している。いくつかの例では、シミュレーションシステムは、シミュレートされた車両202に関連付けられた任意の数の境界ボックス210及び212、ならびにプレイバックエージェント206に関連付けられた追加の境界ボックス214及び216を決定し得る。シミュレーションシステムは、それぞれの車両の寸法(例えば、長さ、幅、及び高さ)及び形状、ならびにそれぞれの車両の軌道及び結果として生じる車両の向きに基づいて、それぞれの境界ボックス210~216を決定してもよい。
【0030】
いくつかの例では、境界ボックス210~216は、それぞれの車両の投影方位領域を追加する安全バッファも含み得る。シミュレーションシステムは、それぞれの車両の車両分類、速度、ヨー、及び/又は他の属性に基づいて、境界ボックス210に追加する安全バッファのサイズ及び形状を決定し得る。例えば、シミュレーションシステムは、プレイバックエージェント206の知覚された軌道に沿った、プレイバックエージェント206の知覚されたエッジ(最前点と最後点、左端点と右端点)に基づいて、プレイバックエージェント206の知覚されたエッジの周りの追加の安全バッファを含む、境界ボックス214及び216の寸法を決定してもよい。様々な例において、より大きな安全バッファは、より高速の車両、より脆弱な車両/オブジェクト(例えば、自転車又は歩行者)、又はシミュレーションシステムがプレイバックエージェント206のサイズ、形状、軌道又は他の状態パラメータに関する知覚データの信頼性が低いシナリオに対して使用され得る。
【0031】
図2Aにおいて、シミュレートされた車両202及びプレイバックエージェント206の位置は、運転シミュレーション中の特定の(例えば、現在の)時刻において描かれることがあり、境界ボックス210~216は、現在の時刻に続く2つの時間間隔における投影として示されている。この例では、境界ボックス210及び212はそれぞれ、現在時刻の後の第1の時刻(t=1)及び第2の時刻(t=2)におけるシミュレートされた車両202について描かれている。同様に、境界ボックス214及び216はそれぞれ、第1の時間(t=1)及び第2の時間(t=2)におけるプレイバックエージェント206について描かれている。この例に示されるように、シミュレーションシステムはまた、シミュレーションにおける後続の時間における境界ボックス210~216の投影領域を計算する際に、予測された車両の操縦(例えば、旋回)、及び車両の向き及び位置に対する対応する影響を考慮してもよい。
【0032】
いくつかの例では、シミュレーションシステムは、各時間間隔で、シミュレートされた車両202に関連付けられた境界ボックスと、プレイバックエージェント206に関連付けられた境界ボックスとを比較して、シミュレートされた車両202とプレイバックエージェント206との間の交差を示し得る重なりが存在するか否かを決定してもよい。この例では、シミュレーションシステムは、境界ボックス210及び214のサイズ、形状、及び位置を比較して、第1の時間(t=1)においてオーバーラップが存在しないと決定することができ、同様に、境界ボックス212及び216を比較して、第2の時間(t=2)においてオーバーラップが存在しないと決定し得る。したがって、例示のシミュレーション200において、シミュレーションシステムは、シミュレートされた車両202とプレイバックエージェント206との間に交差点が存在しないと決定してよい。
【0033】
対照的に、
図2Bは、軌道222に沿って進行するシミュレートされた車両220と、軌道226に沿って進行するプレイバックエージェント224との間の第2のシミュレーション218の相互作用分析を示している。上記の例と同様に、シミュレーションシステムは、各時間間隔で、シミュレートされた車両220に関連付けられた境界ボックスと、プレイバックエージェント224に関連付けられた境界ボックスとを比較して、重なりが存在するか否かを決定してよく、これは、シミュレートされた車両220とプレイバックエージェント224との間の交差を示し得る。この例では、シミュレーションシステムは、シミュレートされた車両220のための境界ボックス228~230のセットと、プレイバックエージェント224のための境界ボックス232~234の別のセットとを生成し得る。次に、シミュレーションシステムは、境界ボックス228及び232のサイズ、形状、及び位置を比較して、第1の時間(t=1)に重なりが存在するか否かを決定してもよく、同様に、境界ボックス230及び234を比較して、第2の時間(t=2)に重なりが存在するか否かを決定してもよい。この例に示すように、シミュレーション218のシミュレートされた車両220は、シミュレーション200のシミュレートされた車両202よりも高速で走行する可能性がある。しかしながら、プレイバックエージェント224の速度及び軌道は、シミュレーション200におけるプレイバックエージェント206の速度及び軌道と同じままであってもよい。その結果、
図2Bに示されるように、境界ボックス230と234との間に重なりが存在し、シミュレーション218におけるシミュレートされた車両220とプレイバックエージェント224との間の相互作用(及び衝突の可能性)が示される。
【0034】
上記の例では、離散的な時間間隔で境界ボックスを投影することによって相互作用を決定することが述べられたが、シミュレーションシステムは、他の例において様々な他の手法を実装してもよい。例えば、場合によっては、シミュレーションシステムは、車両のそれぞれの軌道に基づいて、各車両シミュレーション200及び218の投影された経路ポリゴン又は自由形状コリドーを決定してもよく、経路ポリゴン(又はコリドー)の重なりに基づいて決定された潜在的衝突ゾーン内で時間空間重なり解析を実行してもよい。例えば、2018年9月19日に出願された「Collision Prediction and Avoidance for Vehicles」と題された米国特許出願第16/136038号(その全体があらゆる目的のために参照により本明細書に述べられる)にさらに詳細に記載されるように、シミュレーションシステムは、車両の軌道間の交点と、車両に関連づけられた1つ又は複数のオフセット距離とに基づいて、車両間の潜在的な衝突ゾーンを決定してもよい。シミュレーションシステムは、車両の長さ及び/又は幅に基づいてオフセット距離を決定してもよく、また、安全バッファ又は車両が衝突しない安全な距離を表す他の距離を適用してもよい。例えば、シミュレートシステムは、各車両の予測移動通路の重なりに基づいて、潜在的衝突領域の寸法を定義するために使用されるオフセット距離を計算してもよく、測定は、車両の軌道の交点の前後の点に対して実行される。様々な例において、移動コリドーのサイズは、各車両の中心点から、及び/又は、軌道に沿った各車両の最前点及び最後点から測定されてよい。また、シミュレートされた車両は、潜在的な衝突領域のオフセット距離を計算する際に、車両の操縦(例えば、旋回)及び車両の位置への対応する影響を考慮してもよい。
【0035】
いくつかの例では、運転シミュレーションにおいてプレイバックエージェント(例えば、プレイバックエージェント224)とノンプレイバックエージェント(例えば、シミュレートされた車両220)との間の相互作用の後に、シミュレーションシステムは、相互作用に関連付けられたノンプレイバックエージェントの偏差距離を決定し得る。偏差距離決定の一例が、
図2Cのシミュレーション218について図示されている。この例では、シミュレーション218における第2の時間(t=2)におけるシミュレートされた車両220とプレイバックエージェント224との間の相互作用を描写する境界ボックス230及び234が示されている。さらに、
図2Cは、第2の時間(t=2)におけるシミュレートされた車両の位置236と、ログデータに表される対応するエージェント車両の位置238とを描いている。この例に示されるように、シミュレートされた車両220の機能/挙動がログデータ内の対応する車両の機能/挙動と異なるため、シミュレートされた車両220はログデータ内の位置から偏差距離240だけずれている。上述のように、シミュレートされた車両は、車両コントローラソフトウェア及び/又はハードウェアシステムの異なるバージョンに基づいてログデータから偏差を有することができ、スマートエージェントは、ログデータ内のドライバの決定から乖離する計画コンポーネントの決定に基づいてログデータから偏差を有することができる。しかしながら、いくつかの例では、シミュレートされた環境内をナビゲートするためのプレイバックエージェントの動作は、ログデータのみであってもよく、したがって、そのような例では、プレイバックエージェントは、ログデータ内の位置から偏差を有さなくともよい。
【0036】
図2Cに示されるように、シミュレートされた車両220の位置236が、同じ相対時間におけるログデータ内の対応する車両の位置238と異なるため、シミュレーションシステムは、シミュレートされた車両220が偏差を有していると決定した。幾つかの例では、エージェントが偏差を有しているか否かを決定するために、シミュレーションシステムは、偏差距離240を偏差距離閾値(例えば、0.3メートル)と比較してもよく、偏差距離閾値以上の偏差を有しているエージェントは、偏差を有しているエージェントと決定され、返済離閾値未満の偏差を有しているエージェントは、偏差を有していないエージェントと決定されてもよい。いくつかの例では、エージェントの位置と対応するログデータとの間のいかなる偏差も偏差エージェントとしてシミュレーションシステムによって分類されるように、ゼロの偏差距離閾値が使用され得る。
【0037】
加えて、この例では、偏差距離240の量に基づいて偏差エージェントを決定することが述べられているが、他の例では、偏差エージェントの決定は、エージェントのヨー偏差を決定し、ヨー偏差をヨー偏差閾値と比較することを含んでもよい。偏差距離、ヨー、及び/又はエージェントの他の属性(例えば、速度、軌道等)の偏差閾値は、場合によっては、予め定められた固定閾値であってもよい。他の場合では、シミュレーションシステムは、速度に基づくエージェント、及び/又は異なるタイプのエージェントに対して、異なる偏差閾値を使用し得る。例えば、歩行者エージェント、自転車エージェント、自動車エージェント、トラックエージェントなどは、それぞれ、どのエージェントを偏差エージェントとみなすかを決定するために、異なる偏差距離及び/又はヨー偏差閾値を有し得る。
【0038】
図3A~3Dは、ログベースの運転シミュレーション300内の4つの異なるシーンを描いている。シーン302(
図3A)は、第1の時間(t=0)におけるシミュレーション300の状態を表し得、シーン304(
図3B)は、第2の時間(t=1)におけるシミュレーション300の状態を表し得、シーン306(
図3C)は第3の時間(t=2)におけるシミュレーション300の状態を表し得、シーン308(
図3D)は第4の時間(t=3)におけるシミュレーション300の状態を表し得る。シミュレーション300は、多数の追加エージェント及び他のオブジェクトを含むシミュレートされた環境内を走行するシミュレートされた車両310を含む。個々のシーン302~308を参照して後述されるように、この例のシミュレートされた車両310は、シミュレーション300内のいずれのプレイバックエージェントとも相互作用せず、したがって、シミュレーション300は、プレイバックエージェントのスマートエージェントへの変換をもたらさない。
【0039】
シーン302に示されるように、シミュレートされた車両310は、多数の追加のエージェント及び他のオブジェクトを含むシミュレートされた環境において、交差点の手前の横断歩道で停止している。プレイバックエージェント312は、シミュレートされた車両310の真後ろの車両であり、シミュレートされた車両310に向かって移動しながら交差点に近づいている。
【0040】
シーン304では、プレイバックエージェント312がシミュレートされた車両310の真後ろで停止しており、第2のプレイバックエージェント314が交差点に近づきながらプレイバックエージェント312に後方から接近している。
【0041】
シーン306では、シミュレートされた車両310及びプレイバックエージェント312は交差点で停止したままであり、追加のプレイバックエージェント314及び316も交差点でプレイバックエージェント312の後ろに並んで停止している。シーン306内のエージェント310~318は、交差点で、例えば、一時停止の標識で、信号が変わるのを待ち、横断歩道を渡る歩行者のために、横断歩道が途切れるのを待つなどしている場合がある。さらに、自転車プレイバックエージェント318及び歩行者プレイバックエージェント320がシーン306に示されており、これもまた、交差点を上方向に横断するのを待っている。
【0042】
シーン308では、シミュレートされた車両310が移動を開始し、交差点で左折を行っている。また、プレイバックエージェント312、314、316も交差点に向かって前進しており、自転車プレイバックエージェント318と歩行者プレイバックエージェント320は、上方向の道路を横断するために前進している。
【0043】
シミュレーション300の間、シミュレートされた車両310は、プレイバックエージェント312~320のいずれとも相互作用せず、その結果、プレイバックエージェント312~320のいずれも(又はシミュレーションに描かれた他のエージェントのいずれも)スマートエージェントに変換されない。場合によっては、シミュレーション300は、シミュレートされた車両310が、シミュレーション300が基づいているログデータ内の対応する車両の走行経路/挙動から大きい偏差を有さない(又は、全く偏差を有さない)シミュレーションを表し得る。他の場合には、シミュレートされた車両310は、ログデータ内の対応する車両から偏差を有し得るが、シミュレーション300内のプレイバックエージェント312~320のいずれかと相互作用を引き起こすような十分な偏差を有さない又は、偏差が無い可能性がある。
【0044】
図4A~4Dは、上述した運転シミュレーション300と同様の別の運転シミュレーション400内の4つの異なるシーンを示している。例えば、運転シミュレーション400は、運転シミュレーション300と同じログデータに基づいてもよく、同じシミュレートされた環境、同じシミュレートされたオブジェクト、及び同じ初期セットのプレイバックエージェントを含んでもよい。しかしながら、個々のシーン402~408を参照して後述するように、この例のシミュレートされた車両410は、シミュレーション300のシミュレートされた車両310とは異なる挙動を示す。シミュレートされた車両410の挙動の違いは、プレイバックエージェントとの相互作用の結果として生じ、シミュレーションシステムに、プレイバックエージェントのスマートエージェントへの変換のカスケードシーケンスを実行させることである。
【0045】
シーン402に示されるように、シミュレートされた車両410は、シミュレーション300に示されたのと同じ交差点の手前の同じ横断歩道で停止している。しかしながら、この例のシミュレートされた車両410は、前の例のシミュレートされた車両310より数フィート手前で停止している。シミュレートされた車両310とは異なり、この例のシミュレートされた車両410は、交差点前の横断歩道の手前で完全に停止している。プレイバックエージェント412は、シミュレートされた車両410の真後ろの車両であり、シミュレートされた車両410に向かって移動しながら交差点に近づいている。
【0046】
シーン404において、プレイバックエージェント412は、前の例のプレイバックエージェント312と同じ経路をたどった。しかしながら、シミュレートされた車両410が前の例よりも数フィート早く停止したため、シミュレーションシステムは、プレイバックエージェント412と偏差を有してシミュレートされた車両410との間に相互作用が生じると決定した。この例の相互作用は、交差点でより早く停止することによって偏差を有したプレイバックエージェント412とシミュレートされた車両410との間の追突の可能性である。その結果、衝突の可能性を防止するために、シミュレーションシステムは、エージェント412をスマートエージェントに変換し、シーン404に描かれているように、スマートエージェント412が、計画コンポーネントを使用して、シミュレートされた車両410との衝突の可能性を識別し、衝突の可能性を回避するために交差点で早めにブレーキをかけた。
【0047】
シーン406では、シミュレートされた車両410及びスマートエージェント412は、交差点で停止したままである。スマートエージェント412が交差点でより早くブレーキをかけた結果、シミュレーションシステムは、プレイバックエージェント414と現在偏差を有しているスマートエージェント412との間に別の相互作用(例えば、潜在的な追突)が生じると決定した。これに応じて、シミュレーションシステムは、エージェント414もスマートエージェントに変換し、スマートエージェント414は、スマートエージェント412との衝突の可能性を回避するために交差点で早めにブレーキをかけた。次に、エージェント414をスマートエージェントに変換した後、シミュレーションシステムは、プレイバックエージェント416と、今変動しているスマートエージェント414との間に別の相互作用が生じると決定する。従って、シミュレーションシステムは、エージェント416をスマートエージェントに変換し、スマートエージェント416は、スマートエージェント414との衝突の可能性を回避するために交差点で早めにブレーキをかける。
【0048】
シーン408では、シミュレートされた車両410が移動を開始し、交差点で左折を行っている。スマートエージェントに変換されたエージェント412、414、416も交差点に向かって前進している。しかしながら、シミュレーション300とは異なり、この例では、自転車エージェント418と歩行者エージェント420もスマートエージェントに変換されている。例えば、シーン408においてシミュレートされた車両410が交差点でより後方に停止し、及び/又はよりゆっくり加速するため、自転車プレイバックエージェント418のプレイバック軌道及び速度は、シーン408の直後の相互作用の西側の横断歩道において、より遅いとシミュレートされた車両410との相互作用を引き起こし得る。シミュレートされた車両410がログデータの対応する車両よりも遅れて横断歩道に到着した結果、シミュレーションシステムは、自転車再生エージェント418と偏差を有してシミュレートされた車両410との間で相互作用(例えば、自転車と車両の衝突の可能性)が生じると決定した。これに応じて、シミュレーションシステムはまた、自転車エージェント418をスマート自転車エージェントに変換し、スマート自転車エージェント418はシーン408の横断歩道で降車し、シミュレートされた車両410が交差点を通過してから横断できるようにした。次に、自転車エージェント418をスマート自転車エージェントに変換した後、シミュレーションシステムは、歩行者エージェント420と今や偏差を有したスマート自転車エージェント418との間に別の相互作用が生じると決定する。したがって、シミュレーションシステムは歩行者エージェント420をスマート歩行者エージェントに変換し、スマート自転車エージェントがスマート歩行者エージェント420の真正面に残っているため、スマート歩行者エージェント420はシーン408で歩き始めない。
【0049】
シミュレーション400によって例示されるように、同様のシミュレーション300とは対照的に、シミュレーションシステムが第1のプレイバックエージェントをスマートエージェントに変換するとき、第1のプレイバックエージェントと偏差を有したエージェント(例えば、シミュレートされた車両又はスマートエージェント)との間の相互作用の決定に基づいて、変換によって、スマートエージェントは、相互作用を防止するために、シミュレーション内で計画コンポーネントを使用し、その経路を独立して制御し得る。しかしながら、最初のプレイバックエージェントがスマートエージェントに変換された後、ログデータ内の対応するエージェントの挙動から偏差を有する可能性があり、その結果、運転シミュレーションが継続されるにつれて、スマートエージェントが追加のプレイバックエージェントと相互作用する可能性がある。このような、現在乖離しているスマートエージェントとの追加の相互作用により、シミュレーションシステムは、追加のプレイバックエージェントをスマートエージェントに変換し、その結果、運転シミュレーションの実行中に、プレイバックエージェントがスマートエージェントに変換されるというカスケード効果が生じ得る。
【0050】
図5は、本明細書に述べられる運転シミュレーションシステム及び手法を実装するために使用され得る例示的なコンピューティング環境500を示している。このコンピューティング環境500では、車両502と、ログベースの運転シミュレーションを生成及び実行するように構成されたシミュレーションシステム532とが含まれる。車両502は、自律車両の様々なソフトウェアベース及び/又はハードウェアベースのコンポーネントを含み得、物理的環境を横断する自律車両及び/又はログベースの運転シミュレーション内で動作するシミュレートされた車両を制御するために使用され得る。車両502は、本明細書で述べられる実車両及び/又はシミュレートされた車両又は車両制御装置のいずれか又は全てと類似又は同一であってもよい。いくつかの例では、車両502は、物理的環境を横断する車両に対応し、シミュレーションシステム532に提供され、ログベースシミュレーションを生成するために使用され得るログデータを取り込み、格納され得る。追加的又は代替的に、車両502は、1つ又は複数の別個の車両制御システムとして動作し、ログベースのドライビングシミュレーション中にシミュレーションシステム532と相互作用し、シミュレーションシステム532によって評価され得る。
【0051】
少なくとも1つの例では、車両502は、オブジェクト知覚及び予測機能、経路計画及び/又は最適化を実行するように構成された自律車両又は半自律車両に対応し得る。例示的な車両502は、運転者(又は乗員)がいつでも車両を制御することが期待されない状態で、全移動のすべてのセーフティクリティカル機能を実行することができる車両を記述する、米国道路交通安全局によって発行されたレベル5の分類に従って動作するように構成された自律車両などの、運転者不在の車両であり得る。このような例では、車両502は、すべての駐車機能を含む、移動の開始から完了までのすべての機能を制御するように構成されることができるため、運転手及び/又はステアリングホイール、加速ペダル、及び/又はブレーキペダルなどの車両502を運転するための制御装置を含まなくてもよい。これは単なる一例であり、本明細書に述べられるシステム及び方法は、常に運転者が手動で制御する必要のある車両から、部分的又は完全に自律的に制御される車両までを含む、あらゆる地上走行車両、空中走行車両、又は水上走行車両に組み込まれてよい。
【0052】
本例では、車両502は、車両コンピューティングデバイス504、1つ又は複数のセンサーシステム506、1つ又は複数のエミッタ508、1つ又は複数の通信接続部510、少なくとも1つの直接接続部512、及び1つ又は複数の駆動システム514を含むことができる。
【0053】
車両コンピューティングデバイス504は、1つ又は複数のプロセッサ516と、1つ又は複数のプロセッサ516と通信可能に結合されたメモリ518とを含むことができる。図示された例では、車両502は自律車両であるが、車両502は他のタイプの車両又はロボットプラットフォームであり得る。図示された例では、車両コンピューティングデバイス504のメモリ518は、定位コンポーネント520、知覚コンポーネント522、1つ又は複数のシステムコントローラ524、予測コンポーネント526、及び計画コンポーネント528を格納する。
図5では、説明のためにメモリ518に存在するように描かれているが、定位コンポーネント520、知覚コンポーネント522、システムコントローラ524、予測コンポーネント526、及び計画コンポーネント528のうちの1つ又は複数は、追加的又は代替的に、車両502にアクセス可能であり得る(例えば、車両502から遠隔のメモリ上に格納されるか、又は他の方法でアクセス可能である)。
【0054】
少なくとも1つの例では、定位コンポーネント520は、車両502の位置及び/又は向き(例えば、x-、y-、z-位置、ロール、ピッチ、又はヨーのうちの1つ又は複数)を決定するために、センサーシステム506からデータを受信する機能を含むことができる。例えば、定位コンポーネント520は、環境のマップを含み、及び/又は要求/受信することができ、マップ内の自律車両の位置及び/又は向きを継続的に決定することができる。いくつかの例において、定位コンポーネント520は、SLAM(simultaneous localization and mapping)、CLAMS(calibration, localization and mapping, simultaneously)、相対SLAM、バンドル調整、非線形最小二乗最適化などを利用して、画像データ、ライダーデータ、レーダーデータ、飛行時間データ、IMUデータ、GPSデータ、ホイールエンコーダーデータなどを受信し、自律車両の位置を正確に決定することができる。いくつかの例では、定位コンポーネント520は、軌道を生成するため、及び/又は、オブジェクトが1つ又は複数の横断歩道領域に近接していることを決定するため、及び/又は、本明細書で論じられるように、候補基準線を特定するために、自律車両の初期位置を決定するために、車両502の様々なコンポーネントにデータを提供することができる。
【0055】
いくつかの例では、また一般的には、知覚コンポーネント522は、オブジェクト検出、セグメンテーション、及び/又は分類を実行する機能を含むことができる。幾つかの例では、知覚コンポーネント522は、車両502に近接するエンティティの存在を示す、及び/又はエンティティのタイプ(例えば、車、歩行者、自転車、動物、建物、木、路面、縁石、歩道、停止信号、停止標識、不明等)としてのエンティティの分類を示す、処理されたセンサーデータを提供することができる。追加的又は代替的な例では、知覚コンポーネント522は、検出されたエンティティ(例えば、追跡対象物)及び/又はエンティティが配置されている環境に関連付けられた1つ又は複数の特性を示す、処理されたセンサーデータを提供することができる。いくつかの例では、エンティティに関連付けられた特性は、x位置(グローバル及び/又はローカル位置)、y位置(グローバル及び/又はローカル位置)、z位置(グローバル及び/又はローカル位置)、向き(例えば、ロール、ピッチ、ヨー)、エンティティのタイプ(例えば、分類)、エンティティの速度、エンティティの加速度、エンティティの範囲(サイズ)などを含み得るが、これらに限定されない。環境に関連する特性としては、環境内の別のエンティティの存在、環境内の別のエンティティの状態、時刻、曜日、季節、天候、暗さ/明るさの表示などが挙げられるが、これらに限定されない。
【0056】
いくつかの例では、メモリ518は、環境内をナビゲートするために車両502によって使用され得る1つ又は複数のマップを含むことができる。本開示の目的のために、マップは、トポロジー(交差点など)、道路、山脈、道路、地形、及び環境全般などの環境に関する情報を提供することができる、二次元、三次元、又はN次元でモデル化された任意の数のデータ構造とすることができるが、これらに限定されない。いくつかの例では、マップは、テクスチャ情報(例えば、色情報(例えば、RGB色情報、Lab色情報、HSV/HSL色情報)等)、強度情報(例えば、ライダー情報、レーダー情報等)、空間情報(例えば、メッシュに投影された画像データ、個々の「サーフェル」(例えば、個々の色及び/又は強度に関連付けられたポリゴン))、反射率情報(例えば、鏡面反射率情報、再帰反射率情報、BRDF情報、BSSRDF情報など)等を含むことができるが、これらに限定されない。一例では、マップは環境の三次元メッシュを含むことができる。いくつかの例では、マップは、マップの個々のタイルが環境の離散的な部分を表すように、タイル形式で格納されることができ、必要に応じてワーキングメモリにロードされることができる。
【0057】
いくつかの例では、車両502は、少なくとも部分的にマップに基づいて制御されることができる。すなわち、マップは、定位コンポーネント520、知覚コンポーネント522、予測コンポーネント526、及び/又は計画コンポーネント528と関連付けられて使用され、車両502の位置を決定し、環境内のオブジェクトを識別し、及び/又は環境内をナビゲートするための経路及び/又は軌道を生成することができる。
【0058】
少なくとも1つの例では、車両コンピューティングデバイス504は、1つ又は複数のシステムコントローラ524を含むことができ、これらのシステムコントローラ524は、車両502のステアリング、推進、ブレーキ、安全、エミッタ、通信、及び他のシステムを制御するように構成されることができる。システムコントローラ524は、駆動システム514及び/又は車両502の他のコンポーネントの対応するシステムと通信及び/又は制御することができる。
【0059】
一般に、予測コンポーネント526は、環境内のオブジェクトに関連付けられた予測情報を生成する機能を含むことができる。一例として、予測コンポーネント526は、横断歩道領域(又はそうでなければ、道路を横断する歩行者に関連付けられた領域又は場所)に近接する歩行者が横断歩道領域を横断する、又は横断する準備をするときに、環境内の歩行者の位置を予測するように実装されることができる。別の例として、車両502が環境を横断する際に、他のオブジェクト(例えば、車両、自転車、歩行者など)の位置を予測するために、本明細書で論じられる手法を実装することができる。いくつかの例では、予測コンポーネント526は、対象オブジェクト及び/又は対象オブジェクトに近接する他のオブジェクトの属性に基づいて、そのような対象オブジェクトの1つ又は複数の予測位置、予測速度、予測軌道などを生成することができる。
【0060】
一般に、計画コンポーネント528は、環境を横断するために車両502が従うべき経路を決定することができる。例えば、計画コンポーネント528は、様々な経路及び軌道、ならびに様々な詳細レベルを決定することができる。例えば、計画コンポーネント528は、第1の場所(例えば、現在の場所)から第2の場所(例えば、目標の場所)まで移動する経路を決定することができる。この議論の目的のために、経路は、2つの場所間を移動するためのウェイポイントのシーケンスであり得る。非限定的な例として、ウェイポイントには、通り、交差点、全地球測位システム(GPS)座標などが含まれる。さらに、計画コンポーネント528は、第1の場所から第2の場所までの経路の少なくとも一部に沿って自律車両を誘導するための指令を生成することができる。少なくとも1つの例では、計画コンポーネント528は、ウェイポイントのシーケンスにおける第1のウェイポイントからウェイポイントのシーケンスにおける第2のウェイポイントへ自律車両を誘導する方法を決定することができる。いくつかの例では、指令は軌道、又は軌道の一部であり得る。いくつかの例では、複数の軌道は、後退する水平線の手法に従って実質的に同時に(例えば、技術的許容範囲内で)生成されることができ、複数の軌道のうちの1つが、車両502がナビゲートするために選択される。
【0061】
いくつかの例では、計画コンポーネント528は、環境内のオブジェクトに関連付けられた予測位置に少なくとも部分的に基づいて、車両502の1つ又は複数の軌道を生成することができる。いくつかの例では、計画コンポーネント528は、線形時間論理及び/又は信号時間論理などの時間論理を使用して、車両502の1つ又は複数の軌道を評価することができる。
【0062】
理解されるように、本明細書で述べられるコンポーネント(例えば、定位コンポーネント520、知覚コンポーネント522、1つ又は複数のシステムコントローラ524、予測コンポーネント526、及び計画コンポーネント528)は、例示目的で分割されたものとして説明される。しかしながら、様々なコンポーネントによって実行される動作は、他の任意のコンポーネントにおいて組み合わせられるか、又は実行されることが可能である。さらに、ソフトウェアで実装されるとして説明したコンポーネントのいずれかはハードウェアで実装されることもでき、その逆も可能である。さらに、車両502に実装された任意の機能は、1つ又は複数の遠隔コンピューティングデバイス(例えば、シミュレートされたシステム532)、又は別のコンポーネント(及びその逆)に実装されることも可能である。
【0063】
少なくとも1つの例では、センサーシステム506は、飛行時間センサー、ライダーセンサー、レーダーセンサー、超音波トランスデューサ、ソナーセンサー、位置センサー(例えば、GPS、コンパスなど)、慣性センサー(例えば、慣性測定ユニット(IMU)、加速度計、磁力計、ジャイロスコープなど)、カメラ(RGB、IR、照度、深度など)、マイクロフォン、ホイールエンコーダ、環境センサー(温度センサー、湿度センサー、光センサー、圧力センサーなど)などを含むことができる。センサーシステム506は、これら又は他のタイプのセンサーのそれぞれの複数のインスタンスを含むことができる。例えば、飛行時間センサーは、車両502の角、前面、背面、側面、及び/又は上面に配置された個々の飛行時間センサーを含むことができる。別の例として、カメラセンサーは、車両502の外部及び/又は内部の様々な場所に配置された複数のカメラを含むことができる。センサーシステム506は、車両コンピューティングデバイス504に入力を提供することができる。追加的又は代替的に、センサーシステム506は、1つ又は複数のネットワーク530を介して、特定の頻度で、所定の期間の経過後に、ほぼリアルタイムで、1つ又は複数の外部コンピューティングデバイスに、センサーデータを送信することができる。
【0064】
車両502はまた、上述したように、光及び/又は音を放出するための1つ又は複数のエミッタ508を含むことができる。本例におけるエミッタ508は、車両502の乗客と通信するための内部音声及び映像エミッタを含む。限定ではなく例として、内部エミッタは、スピーカー、ライト、標識、ディスプレイスクリーン、タッチスクリーン、触覚エミッタ(例えば、振動及び/又は力フィードバック)、機械的アクチュエータ(例えば、シートベルトテンショナー、シートポジショナー、ヘッドレストポジショナーなど)などを含むことができる。本例におけるエミッタ508は、外部エミッタも含む。例示であって限定ではなく、本例における外部エミッタは、進行方向又は車両の動作の他のインジケータを知らせるためのライト(例えば、方向指示器、標識、ライトアレイなど)、及び歩行者又は他の近くの車両と聴覚的に通信するための1つ又は複数の音声エミッタ(例えば、スピーカー、スピーカーアレイ、ホーンなど)を含み、そのうちの1つ又は複数が音響ビームステアリング技術を含む。
【0065】
車両502はまた、車両502と1つ又は複数の他のローカル又はリモートのコンピューティングデバイスとの間の通信を可能にする1つ又は複数の通信接続部510を含むことができる。例えば、通信接続部510は、車両502及び/又は駆動システム514上の他のローカルコンピューティングデバイスとの通信を容易にすることができる。また、通信接続部510は、車両が他の近くのコンピューティングデバイス(例えば、他の近くの車両、交通信号など)と通信することを可能にし得る。通信接続部510はまた、車両502が遠隔リモート操作コンピューティングデバイス又は他の遠隔サービスと通信することを可能にする。
【0066】
通信接続部510は、車両コンピューティングデバイス504を別のコンピューティングデバイス又はネットワーク530などのネットワークに接続するための物理的及び/又は論理的インターフェースを含むことができる。例えば、通信接続部510は、IEEE 802.11規格によって定義された周波数を介するようなWi-Fiベースの通信、Bluetooth(登録商標)のような近距離無線周波数、セルラー通信(例えば、2G、3G、4G、4G LTE、5Gなど)、又はそれぞれのコンピューティングデバイスが他のコンピューティングデバイスとインターフェースすることを可能にする任意の適切な有線又は無線通信プロトコルを可能にすることができる。
【0067】
少なくとも1つの例では、車両502は、1つ又は複数の駆動システム514を含むことができる。いくつかの例では、車両502は単一の駆動システム514を有することができる。少なくとも1つの例では、車両502が複数の駆動システム514を有する場合、個々の駆動システム514を車両502の対向する端部(例えば、前部と後部など)に配置されることができる。少なくとも1つの例では、駆動システム514は、駆動システム514及び/又は車両502の周囲の状態を検出するための1つ又は複数のセンサーシステムを含むことができる。限定ではなく例として、センサーシステムは、駆動モジュールの車輪の回転を感知するための1つ又は複数のホイールエンコーダ(例えば、ロータリーエンコーダ)、駆動モジュールの向き及び加速度を測定するための慣性センサー(例えば、慣性測定ユニット、加速度計、ジャイロスコープ、磁力計など)、カメラ又は他の画像センサー、駆動システムの周囲のオブジェクトを音響的に検出するためのソナーセンサー、ライダーセンサー、レーダーセンサーなどを含むことができる。ホイールエンコーダのようないくつかのセンサーは、駆動システム514に固有であり得る。場合によっては、駆動システム514のセンサーシステムは、車両502の対応するシステム(例えば、センサーシステム506)と重複したり、補足したりすることができる。
【0068】
駆動システム514は、高電圧バッテリ、車両を推進するためのモータ、バッテリからの直流電流を他の車両システムで使用するための交流電流に変換するインバータ、ステアリングモータ及びステアリングラック(電気式であり得る)を含むステアリングシステム、油圧又は電気アクチュエータを含むブレーキシステム、油圧及び/又は空気圧構成要素を含むサスペンションシステム、トラクションの損失を緩和し制御を維持するためにブレーキ力を分配するための安定性制御システム、HVACシステム、照明(例えば、車両の外部周囲を照らすヘッド/テールライトなどの照明)、及び1つ又は複数のその他のシステム(冷却システム、安全システム、車載充電システム、DC/DCコンバータなどのその他の電気構成要素、高電圧ジャンクション、高電圧ケーブル、充電システム、充電ポートなど)等の車両システムの多くを含むことができる。さらに、駆動システム514は、センサーシステムからデータを受信して前処理し、様々な車両システムの動作を制御することができる駆動システムコントローラを含むことができる。いくつかの例では、駆動システムコントローラは、1つ又は複数のプロセッサと、1つ又は複数のプロセッサと通信可能に結合されたメモリとを含むことができる。メモリは、駆動システム514の様々な機能性を実行するための1つ又は複数のコンポーネントを格納することができる。さらに、駆動システム514は、それぞれの駆動システムによる1つ又は複数の他のローカル又はリモートコンピューティングデバイスとの通信を可能にする1つ又は複数の通信接続部も含む。
【0069】
少なくとも1つの例では、直接接続部512は、1つ又は複数の駆動システム514を車両502のボディと結合するための物理的インターフェースを提供することができる。例えば、直接接続部512は、駆動システム514と車両との間のエネルギー、流体、空気、データなどの伝達を可能にすることができる。場合によっては、直接接続部512は、駆動システム514を車両502の車体に解放可能に固定することができる。
【0070】
少なくとも1つの例では、定位コンポーネント520、知覚コンポーネント522、1つ又は複数のシステムコントローラ524、予測コンポーネント526、及び計画コンポーネント528は、上述したように、センサーデータを処理することができ、1つ又は複数のネットワーク530を介して、それぞれの出力を、シミュレーションシステム532などの1つ又は複数の外部コンピューティングデバイスに送信することができる。少なくとも1つの例では、コンポーネントのそれぞれの出力は、特定の頻度で、所定の期間の経過後に、ほぼリアルタイムで、シミュレーションシステム532に送信されることができる。追加的又は代替的に、車両502は、生のセンサーデータ、処理されたセンサーデータ及び/又はセンサーデータの表現を含むセンサーデータを、ネットワーク530を介してシミュレーションシステム532に送信することができる。このようなセンサーデータは、特定の頻度、所定期間の経過後、ほぼリアルタイムなどで、ログデータ550の1つ又は複数のファイルとしてシミュレーションシステム532に送信することができる。
【0071】
上述したように、シミュレーションシステム532は、本明細書に述べられる様々なコンポーネント及びシステムを使用して、
図1~4Dを参照し、上述した手法と同様又は同一の手法を、工程600及び700を参照して以下で実行するために、ログベースの運転シミュレーションなどの運転シミュレーションを生成及び実行し得る。シミュレーションシステム532は、車両502がシミュレートされた車両に対応する運転シミュレーションを実行するために、1つ又は複数の車両502と通信/相互作用し得る。この例では示されていないが、シミュレーションシステム532はまた、ログデータストア及び/又はシミュレートされた環境及びオブジェクトを含むシミュレーションシナリオを含んでもよい。様々な例において、シミュレーションシステム732は、車両502及び/又は他の車両制御システムからのシミュレーションに基づく応答の監視及び受信を含む、シミュレートされた車両のための運転シミュレーションを生成し、インスタンス化し、実行し得る。
【0072】
シミュレーションシステム532は、1つ又は複数のプロセッサ534と、1つ又は複数のプロセッサ534と通信可能に結合されたメモリ536とを含み得る。図示された例では、シミュレーションシステム532のメモリ536は、ログベースのシミュレーション発生器538と、ログベースの運転シミュレーションを実行するように構成されたシミュレータ540とを格納する。シミュレータ540は、エージェント相互作用モニタ542と、エージェント変換器544と、計画コンポーネント546と、プレイバックエージェント分析器548とを含む。本例において、エージェント相互作用モニタ542は、ログベースのシミュレーション中にエージェント及びシミュレートされた車両を追跡し、境界ボックスを生成し、シミュレーション中にエージェント間の相互作用を決定するための本明細書で述べられる機能を含み得る。エージェント変換器544は、ログベースの運転シミュレーション中にプレイバックエージェントをスマートエージェントに変換するための本明細書で述べられる機能を含み得る。計画コンポーネント546は、運転シミュレーション中にスマートエージェントに計画コンポーネントの機能を提供するための本明細書で述べられる機能を含み得る。例えば、関数、スレッド、又はプロセスが、シミュレーション中の各スマートエージェント変換について計画コンポーネント546内で開始され、シミュレーションされた環境を分析し、シミュレーションされた環境を通るスマートエージェントの経路を決定し得る。いくつかの例では、計画コンポーネント546は、スマートエージェントによる最小限の軌道調整で相互作用を回避するように構成された計画コンポーネント528の単純化されたバージョンであってもよい。プレイバックエージェント分析器548は、プレイバックエージェントによって取られた経路、車両状態、及びプレイバックエージェントによって実行された運転動作を分析して、プレイバックエージェントに対する1つ又は複数の運転スタイル及び/又は運転者の性格タイプを決定するための、本明細書に述べられる機能を含み得る。
図5では、説明のためにメモリ536に存在するように描かれているが、システム及びコンポーネント538~548の一部又は全てが、追加的又は代替的に、遠隔に格納され、ネットワーク530を介してシミュレーションシステム532にアクセス可能であってもよいことが企図される。
【0073】
ログベースのシミュレーション発生器538は、本明細書で述べられる手法と同様又は同一の手法を使用して、ログベースの運転シミュレーションを生成し得る。例えば、ログベースのシミュレーション発生器538は、車両502及び/又は他の車両制御システムが以前に収集したログデータを受信し得る。ログデータは、物理的環境を横断する車両502によって取り込まれたデータに対応し得る。ログベースの運転シミュレーションを生成するために、ログベースシミュレーション発生器538は、受信したログデータを使用して、シミュレータ540によって実行されたときに、シミュレートされた環境及びシミュレートされたオブジェクト(例えば、エージェント)を生成するシミュレーション指令を生成し得る。ログベースのシミュレーションの実行中、シミュレータ540は、ログデータに基づいて、シミュレートされた環境及びオブジェクトデータを、シミュレートされた車両(例えば、車両502)に提供し得る。例えば、ログベースのシミュレーション発生器538は、ログデータを受信して分析し、環境内の特定のオブジェクト、及びそれらのオブジェクトに関連付けられた属性データ(例えば、サイズ、位置、軌道、ウェイポイントなど)を検出してもよく、シミュレータ540は、オブジェクトデータを、運転シミュレーションの実行中に車両502に送信され得るセンサーデータに変換してもよい。
【0074】
場合によっては、ログベースのシミュレーション発生器538は、特定のオブジェクトが特性を有することを決定し、その特性をシミュレートされたオブジェクトに適用し得る。例示のみを目的として、ログデータは、オブジェクトが制限速度より約10マイル低い速度で走行し、ゆっくりと加速することを示すことができる。ログベースのシミュレーション発生器538は、オブジェクトがシミュレートされた車両であると決定し、シミュレートされた環境内の対応するシミュレートされたオブジェクトに慎重なオブジェクトモデルを適用してもよい。いくつかの例では、ログベースのシミュレーション発生器538は、ログデータ内の挙動データに基づいて、オブジェクトが攻撃的なオブジェクト、受動的なオブジェクト、中立的なオブジェクト、及び/又は他のタイプの挙動であると決定し、挙動(例えば、受動的な挙動、慎重な挙動、中立的な挙動、及び/又は攻撃的な挙動)に関連付けられた挙動指令をシミュレートされたオブジェクトに適用し得る。
【0075】
いくつかの例では、シミュレータ540は、オブジェクトに関連付けられた属性に基づいて、ログデータで表されるオブジェクトをシミュレートされたシナリオから除去するためにフィルタを使用することができる。いくつかの例において、シミュレータ540は、オブジェクト/分類タイプ(自動車、歩行者、オートバイ、自転車など)、オブジェクトのサイズ(例えば、長さ、幅、高さ、及び/又は体積)、信頼度、トラックの長さ、オブジェクトとログデータを生成した車両との間の相互作用の量、及び/又は時間期間に基づいて、オブジェクトをフィルタリングすることができる。
【0076】
例として、限定するものではないが、ログデータは、郵便受けや建物のような様々なサイズのオブジェクトを含むことができる。ログベースのシミュレーション発生器538は、建物のような3立方メートルの閾値体積に等しいかそれよりも大きい体積に関連付けられるオブジェクトがシミュレートされたシナリオで表され、郵便箱のような3立方メートル未満の体積に関連付けられるオブジェクトがシミュレートされたシナリオで表されないように、体積ベースのフィルタを使用することができる。いくつかの例において、ログベースのシミュレーション発生器538は、トラック長さ閾値を満たさないか、又は超えないトラック長さ(例えば、物理的距離又は期間に関連するデータ)を有するオブジェクトがシミュレートされたシナリオからフィルタリングされるトラック長さフィルタを使用することができる。この結果、データ取り込み時の検出不良に関連するオブジェクトが省かれたシミュレーションとすることができる。いくつかの例では、ログベースのシミュレーション発生器538は、ログデータに従った動き又は軌道に関連するオブジェクトがシミュレーションで表されるように、動きに基づくフィルタを使用することができる。ある例では、フィルタは組み合わせて、又は相互に排他的に適用することができる。
【0077】
いくつかの例では、ログベースのシミュレーション発生器538は、信頼度閾値を満たさないか、又は信頼度閾値を超えないオブジェクトをフィルタリングすることができる。例として、限定するものではないが、ログデータは、オブジェクトが歩行者の分類属性に関連付けられ、分類に関連付けられた信頼値が5%であることを示すことができる。ログベースのシミュレーション発生器538は、75%の信頼値閾値を有し、信頼値閾値に満たないか、又は信頼値閾値を超えない信頼値に基づいてオブジェクトをフィルタリングすることができる。いくつかの例では、ログベースのシミュレーション発生器538が、ユーザー生成フィルタによって示された1つ又は複数の属性閾値を満たさない、又は超えないオブジェクトをフィルタリングすることができるように、ユーザーは、1つ又は複数の属性閾値を含むユーザー生成フィルタを提供することができる。
【0078】
シミュレータ540は、シミュレーション指令のセットとして運転シミュレーションを実行し、シミュレーションデータを生成することができる。いくつかの例においては、シミュレータ540は、複数のシミュレートされたシナリオを同時に及び/又は並行して実行することができる。これにより、ユーザーは、シミュレーションを編集し、各シミュレーション間でバリエーションを有するシミュレーションの順列を実行することができる。さらに、シミュレータ540は、シミュレーションの結果を決定することができる。例えば、シミュレータ540は、テスト及び検証のためのシミュレーションで使用するために、ログベースの運転シミュレーションを実行することができる。シミュレータ540は、車両502がどのように実行(例えば、応答)したかを示すシミュレーションデータを生成し、シミュレーションデータを所定の結果と比較し、及び/又は、所定の規則/アサーションが破られたか/トリガーされたかを決定することができる。
【0079】
いくつかの例では、所定のルール/アサーションは、シミュレーションに基づくことができる(例えば、横断歩道に関する交通ルールは、横断歩道のシナリオに基づいて有効にすることができ、又は車線マーカーの横断に関する交通ルールは、停止した車両のシナリオに対して無効にすることができる)。場合によっては、シミュレータ540は、シミュレーションの進行に伴って、ルール/アサーションを動的に有効化及び無効化することができる。例えば、シミュレーション対象がスクールゾーンに近づくと、スクールゾーンに関連するルール/アサーションを有効にし、シミュレーション対象がスクールゾーンから離れると無効にすることができる。場合によっては、ルール/アサーションは、例えば、シミュレートされたシナリオで物体がどの程度の速さで加速できるかに関連する快適性メトリクスを含むことができる。
【0080】
車両502が所定の結果と一致する性能を発揮した(すなわち、自律制御装置は、それが行うはずであったことをすべて行った)と決定すること、及び/又は規則が破られなかったか、又はアサーションがトリガーされなかったと決定することに少なくとも部分的に基づいて、シミュレータ540は、車両502が成功したと決定することができる。車両502の性能が所定の結果と矛盾していた(すなわち、自律制御装置は、行うことになっていないことを行った)と決定すること、及び/又は、ルールが破られたか、又はアサーションがトリガーされたよりと決定することに少なくとも部分的に基づいて、シミュレータ540は、車両502が失敗したと決定することができる。したがって、シミュレーションの実行に少なくとも部分的に基づいて、シミュレーションデータは、上述のように、車両502が各シミュレーションにどのように応答するかを示し、シミュレーションデータに少なくとも部分的に基づいて、成功した結果又は失敗した結果を決定することができる。
【0081】
車両502のプロセッサ516及びシミュレーションシステム532のプロセッサ534は、本明細書で述べられるように、データを処理し動作を実行するための指令を実行することができる任意の適切なプロセッサであり得る。限定ではなく例として、プロセッサ516及び534は、1つ又は複数の中央処理装置(CPU)、グラフィック処理装置(GPU)、又は電子データを処理してその電子データをレジスタ及び/又はメモリに格納され得る他の電子データに変換する任意の他の装置又は装置の一部から構成されることができる。いくつかの例では、集積回路(例えば、ASICなど)、ゲートアレイ(例えば、FPGAなど)、及び他のハードウェアデバイスも、それらが符号化された指令を実装するように構成される限り、プロセッサとみなすことができる。
【0082】
メモリ518及び536は、非一時的コンピュータ可読媒体の例である。メモリ518及び536は、本明細書で述べられる方法及び様々なシステムに帰属する機能を実施するためのオペレーティングシステム及び1つ又は複数のソフトウェアアプリケーション、指令、プログラム、及び/又はデータを格納することができる。様々な実装において、メモリは、静的ランダムアクセスメモリ(SRAM)、シンクロナスダイナミックRAM(SDRAM)、不揮発性/フラッシュ型メモリ、又は情報を格納することができる任意の他のタイプのメモリなど、任意の適切なメモリ技術を使用して実装することができる。本明細書で述べられるアーキテクチャ、システム、及び個々の要素は、他の多くの論理的、プログラム的、及び物理的構成要素を含むことができ、添付の図に示されるものは、本明細書の議論に関連する単なる例である。
【0083】
図5は分散システムとして図示されているが、代替例では、車両502のコンポーネントをシミュレーションシステム532に関連付けることができ、及び/又はシミュレーションシステム532のコンポーネントを車両502に関連付けることができることに留意されたい。すなわち、車両502は、シミュレーションシステム532に関連付けられた機能の1つ又はを実行することができ、逆もまた同様である。さらに、シミュレータ540(及びそのサブコンポーネント)の態様は、本明細書で論じられるデバイス又はシステムのいずれかで実行されることができる。
【0084】
上述のように、シミュレーションシステム532は、車両502から受信したログデータ550を解析して、ログデータに表された車両及び他のオブジェクトに関連付けられた行動、属性、及び/又は目的地を決定し得る。いくつかの例では、シミュレーションシステム532は、ログデータ中のオブジェクトの挙動、属性、及び/又は目的地を使用して、シミュレーション中のスマートエージェントの対応する挙動、属性、及び/又は目的地を決定し得る。例えば、プレイバックエージェント分析器548は、ログデータ550を解析して、電動車両オブジェクト、非電動車両オブジェクト(例えば、自転車、スケートボードなど)、及び/又は歩行者オブジェクトを含む、環境内の任意の動的オブジェクトによって実行される1つ又は複数の挙動を特定し得る。ログデータから決定されたオブジェクト分類及びオブジェクト挙動に基づいて、プレイバックエージェントアナライザ548は、オブジェクトに関連付けられた属性(例えば、運転属性、性格属性、又は他の行動属性)を決定し得る。そして、計画コンポーネント546は、プレイバックエージェント分析器548によって決定されたオブジェクト属性を使用して、シミュレーション内のスマートエージェントを制御し、それによって、より現実的なエージェント動作及び意思決定を提供し、シミュレーションの全体的な品質及び価値を向上させ得る。
【0085】
ログデータに基づいてプレイバックエージェント分析器548によって決定された行動は、環境内のオブジェクトによって実行された(又は実行されなかった)任意の観察可能な行動を含み得る。動作は、オブジェクトによって実行された動作を定量化するバイナリ値及び/又は数値として表され得る。特定の例では、属性の異なる値を特定のエージェントについて記録されることができる。属性の値は、特定のエージェントの動作に対応し得る。例えば、属性の特定の範囲は、特定の動作に対応することができ、又は属性の値は、特定の動作に対応するように集約及び/又はスケーリングされることができる。いくつかの例では、プレイバックエージェント分析器548は、自動車オブジェクトのための1セットの挙動、自転車のための別の1セットの挙動、歩行者のための別の1セットの挙動など、オブジェクトの異なる分類に対して異なるタイプの挙動を決定し得る。プレイバックエージェントアナライザ548によって決定され得る挙動及び/又は属性のタイプの様々な例は、異なるオブジェクト分類について以下のセクションで説明される。 本明細書で述べられる挙動及び属性は非限定的な例であり、任意の追加のタイプのオブジェクトの挙動及び属性が他の例で使用可能であることが、本開示の文脈から理解され得る。
【0086】
ログデータ550に表される各自動車(例えば、自動車、トラック、バス、オートバイなど)について、プレイバックエージェント分析器548は、車両に関連付けられたログデータ550に取り込まれた車両の位置、軌道、速度、姿勢データ、及び/又は他の車両属性に基づいて、様々な異なる運転行動を決定し得る。車両のログデータ550から決定される運転挙動の例には、制限速度に対する車両の速度、停止線(例えば、停止標識、交通信号、横断歩道など)に対する車両の停止距離が含まれ得る。運転挙動の追加例には、車両が自転車専用レーン、バス専用レーン、又はタクシー専用レーンを走行するかどうか、車両が車線分割又は車線共有を使用するかどうか、車両が路肩又は駐車レーンを走行するかどうかが含まれる。運転挙動の他の例としては、車両が行うあらゆる交通違反を挙げられ得る。運転挙動の他の例には、車両の平均(又は好ましい)加速及び制動、車両の最大加速及び制動、車両の平均(又は好ましい)巡航速度、車両の最大及び最小巡航速度、車両の平均及び/又は最大許容ギクシャク度測定値などの快適性パラメータを含められ得る。追加の運転挙動には、潜在的な相互作用に応答して車両に観察される反応時間、又は推定軌道走査距離(例えば、相互作用のために車両が前方をどの程度走査するか)が含まれ得る。別の運転挙動には、一時停止標識や横断歩道で車両が停止している間、車両が移動を再開するまでの停止遅延時間が含まれ得る。別の運転挙動は、車両に車線変更又はエージェントの追い越しをさせる車両前方のエージェントの速度に対応する低速許容パラメータが含まれ得る。追加の運転挙動には、車両が分岐点で曲がる前に方向指示器を使用するかどうか、車両が方向指示器を使用する分岐点手前の距離、車両が車線変更前に方向指示器を使用するかどうか、車両が方向指示器を使用する車線変更手前の距離など、車両の信号パラメータが含まれ得る。
【0087】
ログデータ550に表された歩行者及び/又は他の車両以外のオブジェクト(例えば、自転車、スケートボード等)に対して、プレイバックエージェント分析器548は、オブジェクトの位置、軌道、速度、姿勢、及び/又は他の属性を使用して、自動車について上述したのと同じ動作のいずれかを決定し得る。さらに、代替的に、プレイバックエージェント分析器548は、オブジェクト分類に基づいて、環境内のオブジェクトに対する異なる動作セットを決定し得る。車両以外のオブジェクトについてログデータ550から決定される動作の例には、オブジェクトの所望の(又は通常の)速度及び最大速度(例えば、歩行速度、自転車速度など)、ならびにオブジェクトの通常の加速度及び最大加速度及び減速度が含まれ得る。車両以外のオブジェクトに対する追加の挙動には、道路横断時及び/又は信号無視時のオブジェクトの通常の速度及び加速度が含まれる場合がある。車両以外のオブジェクトに関する他の挙動例としては、オブジェクトの通常の旋回速度及び最大旋回速度、物体自身と道路、壁、又は他の移動オブジェクトとの間にオブジェクトが維持する距離(安全領域、追従距離など)が挙げられる。
【0088】
車両について決定された各運転挙動、又は車両以外のオブジェクトについて決定された他の挙動に対して、プレイバックエージェント分析器548は、挙動の個々のインスタンス、平均、範囲、及び/又は分布を決定し得る。一例として、プレイバックエージェント分析器548は、ログデータ550からの横断歩道で停止する車両の単一のインスタンスに基づいて、横断歩道で停止する車両を挙動として決定し得る。他の例では、プレイバックエージェント分析器548は、挙動(例えば、走行速度測定値、追従距離測定値、加速率値、制動率値等)の複数のインスタンスを特定してもよく、運転挙動は、インスタンスの平均、インスタンスの範囲、又はインスタンスに基づく確率分布に対応してもよい。例えば、制限速度に対する車両の速度、車両の追従距離等を表す運転挙動については、車両の挙動のインスタンスに基づく平均又は分布として運転挙動が算出されてもよい。
【0089】
いくつかの例では、プレイバックエージェント分析器548は、ログデータ550に基づいて決定されたオブジェクトの動作を使用して、オブジェクトに関連付けられた動作属性を決定し得る。ログデータ550内の電動車両の場合、挙動属性は運転属性と呼ばれ得る。場合によっては、運転属性及び/又は挙動属性は、単一の挙動又は一群の挙動に対応し得る。例えば、車両の低レベルの運転属性は、車両の反応時間、制限速度に対する平均速度、平均後続距離、平均方向指示器使用距離などの属性を含み得る。
【0090】
追加的又は代替的に、特定の運転属性及び/又は挙動属性は、挙動の組み合わせに基づく高レベル属性を含み得る。例えば、プレイバックエージェント分析器548は、加速/制動率、旋回率、走行速度、追従距離等の複数の運転挙動を用いて、車両の攻撃的な運転属性を決定し得る。運転挙動の異なる組み合わせ(例えば、車線使用、交通信号使用、運転速度、停止/譲歩行動など)を組み合わせて分析し、遵法運転属性を決定してもよい。さらに別の運転挙動の組み合わせ(例えば、追従距離、加速/制動速度、反応時間、軌道走査距離など)を組み合わせて分析し、車両の運転技能属性を決定してもよい。これらの例及び車両のための他の高レベルの運転属性(又は他のタイプのオブジェクトのための高レベルの挙動属性)に対して、プレイバックエージェント分析器548は、ログデータ550から決定された挙動の様々な組み合わせに基づいて、高レベルの属性の各々に対してスコア又はメトリックを割り当ててもよい。いくつかの例では、高レベルの運転属性又は属性の組み合わせは、運転スタイル又は運転個性と呼ばれることがあり、同様のスタイル又は個性が、それぞれの行動/属性に基づいて、歩行者及び非電動車両オブジェクトについて決定され得る。
【0091】
プレイバックエージェント分析器548がログデータ550に基づいて環境内のオブジェクトの挙動及び/又は属性を決定した後、計画コンポーネント536は、挙動及び属性を使用して、シミュレーション内の1つ又は複数のスマートエージェントを制御し得る。いくつかの例では、運転シミュレーション内の単一のスマートエージェントは、ログデータ550内の対応する動的オブジェクトと同じ挙動及び/又は属性を割り当てられ得る。スマートエージェントに挙動/属性のセットを割り当てるために、シミュレーションシステム532は、挙動/属性に基づいて計画コンポーネント536の特定のバージョンをインスタンス化してもよく、及び/又はスマートエージェントに所望の挙動/属性のセットに対応する計画コンポーネント536をインスタンス化するときに特定のパラメータを提供してもよい。上述したように、スマートエージェントは、シミュレーションの開始時にインスタンス化されてもよいし、運転シミュレーション中にプレイバックエージェントから変換されてもよい。
【0092】
上述したように、計画コンポーネント536は、シミュレーション環境内のオブジェクトの任意の運転決定を含む、シミュレーション中のスマートエージェントの行動及び挙動を制御し得る。本明細書で使用されるように、シミュレートされた車両又は他のシミュレートされたオブジェクトの決定は、シミュレーション中にシミュレートされた車両/オブジェクトを制御するための計画コンポーネント536の任意の決定を含み得る。シミュレートされた車両について計画コンポーネント536によって決定された運転決定は、ログデータ550内の対応する車両についてプレイバックエージェント分析器548によって決定された任意の運転挙動に対応し得る。
【0093】
いくつかの例では、計画コンポーネント536は、ログデータ550からの単一の対応する車両に基づいて、シミュレートされた車両を制御し得る。例えば、計画コンポーネント536は、本明細書で述べられる運転挙動のいずれかについて、制限速度に対して同じ速度で走行するように、同じ追従距離を有するように、同じ方向指示器の使用を有するように、シミュレートされた車両を制御し得る。路上での走行速度、一時停止標識に近づく減速率、一時停止標識に対する停止位置など、シミュレートされた車両の特定の運転決定を決定するために、計画コンポーネント536は、ログデータ550内の対応する車両からの同じ挙動を一致させてもよい。
【0094】
他の例では、計画コンポーネント536は、ログデータ550内の対応する車両からの一致する挙動がなくても、シミュレートされた車両の運転決定を決定し得る。例えば、対応する車両が、ログデータ550が収集された期間中に一時停止標識又は信号で停止しなかった場合、計画コンポーネント536は、一時停止標識又は信号に関連してシミュレートされた車両を制御する際に使用する直接的な運転挙動を有しない可能性がある。そのような場合、計画コンポーネント536は、シミュレートされた車両の運転決定を決定するために1つ又は複数の間接的手法を使用し得る。計画コンポーネント536は、場合によっては、シミュレートされた車両の運転挙動/決定について、予め決められた及び/又はデフォルト値を使用してもよい。また、計画コンポーネント536は、異なる運転挙動間の相関及び/又は相関に関連付けられた重み値に基づいて、シミュレートされた車両の運転決定を決定し得る。例えば、計画コンポーネント536は、ある運転挙動(例えば、一時停止標識での時間遅れ)と他の運転挙動(例えば、制限速度に対する平均速度、追従距離、操舵率など)との間に相関が存在すると決定し得る。 また、計画コンポーネント536は、異なる運転挙動間の相関の強さを示す重み値を決定してもよい(例えば、高い重み値は、運転挙動間の相関がより強いことを示す場合がある)。次いで、対応する車両のログデータ550に対応する運転挙動がない場合に、シミュレートされた車両の運転決定を決定するために、計画コンポーネント536は、ログデータ550内の車両の相関する運転挙動の値、及び関連付けられた重み値を使用し得る。
【0095】
追加的又は代替的に、計画コンポーネント536は、ログデータ550内の対応する車両に対するより高いレベルの運転属性、例えば、積極的運転属性スコア、法回避運転属性スコア、反応時間運転属性スコア、及び/又は運転技能属性スコアなどを使用して、シミュレートされた車両の運転決定を決定し得る。例えば、計画コンポーネント536は、ログデータ550内の対応する車両の上位レベルの属性に基づいて、シミュレートされた車両の下位レベルの運転決定(例えば、速度、加速度、追従距離、方向指示器の使用など)を決定するために、機械学習モデル及び/又はヒューリスティックベースのアルゴリズムを実装してもよい。一例として、計画コンポーネント536は、第1のシミュレートされた車両の追従距離を、ログデータ内の対応する車両の運転手の攻撃性メトリック及び運転手の技能メトリックに基づいて決定する一方、第2のシミュレートされた車両の追従距離を、ログデータ内の異なる対応する車両の異なる運転手の攻撃性メトリック及び技能メトリックに基づいて決定し得る。
【0096】
シミュレーションシステム532は、いくつかの例では、単一のシミュレートされた車両が、ログデータ550内の単一の対応する車両の運転挙動及び属性に基づいて制御される、1対1のマッピングを実装し得る。他の例では、シミュレーションシステム532は、運転挙動及び属性がログデータ550内の複数の車両について決定され得、複数の車両からの挙動/属性の集約が単一のシミュレートされた車両を制御するために使用され得る複数対1のマッピングを使用し得る。1対複数のマッピングもシミュレーションシステム532によって使用され得、この場合、ログデータ550内の単一の車両の挙動及び/又は属性が、1つ又は複数の運転シミュレーションにおいて複数のシミュレートされた車両を制御するために使用され得る。
【0097】
さらに他の例では、シミュレーションシステム532は、1つ又は複数の車両ログ内の車両のグループに基づく挙動/属性の構成を有するシミュレートされた車両のグループを含むようにシミュレーションを構成し得る。例えば、シミュレーションシステム532は、ログデータ550に関連付けられた1つ又は複数の環境及び時間内の車両のグループを分析し、異なる運転挙動又は属性を示す環境内の車両の数又は割合を決定し得る。ログデータ550からの車両の例示的な構成は、20%の高度に攻撃的な運転手、85%の高度に遵法的な運転手、45%の高度に熟練した運転手、70%の追い越しにバスレーンを使用する運転手などを含み得る。シミュレーションシステム532は、異なる場所及び/又は異なる時間帯に関連付けられた運転挙動/属性の構成を異ならせてもよい。例えば、ある地域のラッシュアワーに収集されたログデータ550に基づいて決定された運転挙動/属性の構成は、別の地域の週末の午後に収集されたログデータ550に基づいて決定された運転挙動/属性の構成とは異なってもよい。シミュレーションシステム532は、時間及び領域に関連付けられた運転挙動/属性の特定の構成を選択し得、選択された構成に一致するようにシミュレーション内のシミュレートされた車両のグループを構成し得、それにより、シミュレーションシステム532は、異なる領域及び異なる時間における運転手の性格タイプのグループをより現実的にモデル化し得る。
【0098】
さらに、本明細書における特定の例は車両及び運転シミュレーションに言及しているが、前述のオブジェクトと同様又は同一の手法を使用して、ログデータ550における非車両(例えば、歩行者、自転車など)と、シミュレーションにおける対応する非車両オブジェクトとの間の挙動/属性をマップし得る。
【0099】
図6は、本明細書で述べられる様々なシステム及び手法に従って、運転シミュレーション中にプレイバックエージェントをスマートエージェントに変換するための例示的なプロセス600のフロー図である。いくつかの例では、プロセス600の動作は、シミュレーションシステム532の1つ又は複数のコンポーネントによって、単独で、又は1つ又は複数の車両502と連携して、実行され得る。例えば、プレイバックエージェントに関連付けられたログデータを分析し、プレイバックエージェントの目的地及び/又は運転挙動/属性を決定し、スマートエージェントの決定(例えば、経路及び挙動)を制御するための計画コンポーネントパラメータを決定及び適用するための本明細書で述べられる手法は、上述した計画コンポーネント546及び/又はプレイバックエージェント分析器548によって実行され得る。
【0100】
動作602において、シミュレーションシステム532は、シミュレーション内のプレイバックエージェントに関連付けられたログデータを受信し、分析し得る。例えば、シミュレーションシステム532は、環境を横断している間に車両502によって観察及び/又は知覚された様々なデータを含む、車両502からのログデータ550を受信し得る。特に、動作602で受信されたログデータは、属性又は特性(例えば、エージェントの分類、サイズ、形状、位置、ヨー、速度、軌道など)のような、車両502の近接範囲内で検出された特定のエージェント(例えば、他の車両、歩行者、自転車など)に関連するデータを含み得る。場合によっては、ログデータはまた、事故又は事故寸前、交通違反、歩行者、自転車、又は動物による横断又は信号無視、天候異常、工事区域、迂回路、スクールゾーン等のようなエージェントの動作及び/又は挙動を含み得る。動作602で受信されたログデータ550は、生のセンサーデータ及び/又は車両502で取り込まれたセンサーデータに基づくデータを含み得る。
【0101】
動作604において、シミュレーションシステム532は、動作602で受信したログデータに基づいて、シミュレーション内のプレイバックエージェントの目的地を決定し得る。プレイバックエージェントの目的地は、ログデータ内の対応するエージェントによって移動されたルート/パスに基づいて、シミュレーションシステム532によって決定及び/又は推論され得る。場合によっては、プレイバックエージェントのための目的地を決定することは、ログベースの運転シミュレーションに関連付けられた期間の前又は後の時間に取り込まれた、対応するエージェントのための追加のログデータを分析することを含み得る。
【0102】
動作606において、シミュレーションシステム532は、動作602において受信されたログデータに基づいて、プレイバックエージェントに関連付けられた1つ又は複数の運転及び/又は性格属性を決定し得る。例えば、プレイバックエージェント分析器548は、ログデータ内の対応するエージェントによって実行された1つ又は複数の運転挙動及び/又は動作を検出及び分析し、プレイバックエージェントの1つ又は複数の運転スタイル及び/又は運転者の性格タイプを決定し得る。一例として、プレイバックエージェント分析器548は、特定のエージェントに関連付けられたログデータを分析して、エージェントに対する1つ又は複数の攻撃性メトリクス、運転スキルメトリクス、反応時間メトリクス、法令遵守メトリクスなどを決定し得る。
【0103】
動作608において、シミュレーションシステム532は、運転シミュレーション中のある時点で、プレイバックエージェントがスマートエージェントに変換されるか否かを決定し得る。上述したように、ログベースの運転シミュレーションの過程において、エージェントは、最初はプレイバックエージェントとして動作し、ログデータ内の対応するエージェントの動作に基づいてシミュレーション内で動作し得る。シミュレーションシステム532は、プレイバックエージェントと偏差を有するノンプレイバックエージェント(例えば、スマートエージェント又はシミュレートされた車両)との間の相互作用がシミュレーション内で発生する可能性があると決定したことに応答して、プレイバックエージェントをスマートエージェントに変換し得る。全てのプレイバックエージェントがスマートエージェントに変換されるとは限らず、様々な運転シミュレーションの間、シミュレーションシステム532は、プレイバックエージェントの一部、全て、又は全くをスマートエージェントに変換し得る。この例では、動作602~606において分析された特定のプレイバックエージェントがスマートエージェントに変換されなかった場合(608:NO)、プロセス600は、シミュレーションの継続に伴ってプレイバックエージェントの動作の監視を継続するために、動作602に戻り得る。
【0104】
しかしながら、シミュレーションシステム532が、シミュレーション中に、特定のプレイバックエージェントがスマートエージェントに変換されると決定した場合(608:YES)、動作610において、シミュレーションシステム532は、動作604において決定されたプレイバックエージェントの目的地に基づいて、及び/又は動作606において決定されたプレイバックエージェントの運転/個性属性に基づいて、1つ又は複数の計画コンポーネントパラメータを決定する。そのようなパラメータは、スマートエージェントが経路を決定するときにバイキングレーンを使用するかどうかを決定するパラメータ、スマートエージェントが車線分割を使用するかどうかを決定するパラメータ、スマートエージェントが車線共有を使用するかどうかを決定するパラメータ、スマートエージェントの所望の速度を表す(エージェントタイプに基づく)パラメータ、スマートエージェントの可能な最大速度及び加速度を表す(エージェントタイプに基づく)パラメータ、シミュレートされた環境における他のエージェントからのスマートエージェントの所望の距離を表すパラメータ(エージェントタイプに基づく)、スマートエージェントが交通信号、一時停止標識、降車標識、停止線、スクールゾーン、工事ゾーンにどのように反応するかを表すパラメータ、スマートエージェントが方向指示器を使用するとき、ライトを点灯/消灯するとき、及び/又は他の車両制御を行うときを表すパラメータを含み得るが、これらに限定されない。
【0105】
動作612において、シミュレーションシステム532は、次に、シミュレーション中にスマートエージェントのナビゲーション及び/又は運転意思決定動作を制御するための計画コンポーネントを開始することによって、プレイバックエージェントをスマートエージェントに変換し得る。いくつかの例では、計画コンポーネントを開始することは、動作610で決定された計画コンポーネントパラメータに基づいて計画コンポーネントプロセスをインスタンス化し、実行し、及び/又は構成することを含み得、それにより、計画コンポーネントは、プレイバックエージェントによって示される運転スタイル及び/又は運転手個性をより正確に反映する方法で、スマートエージェントのナビゲーション及び/又は運転意思決定行動を制御するように構成される。
【0106】
図7は、本明細書で述べられる様々なシステム及び手法に従って、運転シミュレーション中にプレイバックエージェントをスマートエージェントに変換するための別の例示的なプロセス700のフロー図である。いくつかの例では、プロセス700の動作は、シミュレーションシステム532の1つ又は複数のコンポーネントによって、単独で、又は1つ又は複数の車両502と連携して、実行され得る。例えば、運転シミュレーションにおけるエージェント間の相互作用を決定し、プレイバックエージェントをスマートエージェントに変換するための本明細書で述べられる手法は、上述したエージェント相互作用モニタ542及び/又はエージェント変換器544によって実行され得る。
【0107】
動作702において、シミュレーションシステム532は、ログベースの運転シミュレーション内の1つ又は複数の車両/エージェントの軌道を決定し得る。運転シミュレーションは、プレイバックエージェント及びスマートエージェントを含む、シミュレーション環境内で動作する複数の異なるエージェントを含み得る。シミュレーション内のプレイバックエージェントの軌道は、ログデータ内の対応するエージェントの位置に基づいて決定されてもよい。したがって、プレイバックエージェントについて、シミュレーションシステム532は、ログデータに基づいて、シミュレーションの期間中、いつでも、プレイバックエージェントの完全な軌道を決定し得る。対照的に、運転シミュレーションのシミュレートされた車両及び/又は他のスマートエージェントは、ログデータに完全に基づくのではなく、計画コンポーネントによって制御されてもよい。その結果、シミュレートされた車両及びスマートエージェントの軌道は、シミュレーションが実行されるまで不明であり得、エージェント相互作用モニタ542は、現在及び予測された軌道を決定するために、シミュレーション内の各スマートエージェントの位置、姿勢、速度、加速度、及びヨーを追跡及び監視する機能を含み得る。
【0108】
動作704において、シミュレーションシステム532は、運転シミュレーション内のプレイバックエージェントと非プレイバックエージェントとの間の相互作用を決定し得る。いくつかの例では、エージェント相互作用モニタ542は、運転シミュレーション内のエージェントに関連付けられた位置、軌道、サイズ、及び/又は空間領域を決定することに基づいて、プレイバックエージェントとノンプレイバックエージェント(例えば、スマートエージェント又はシミュレートされた車両)との間の相互作用を決定し、エージェント間の相互作用の可能性又は可能性を決定するために、エージェント軌道と共にサイズ及び/又は空間領域を使用してもよい。場合によっては、エージェント相互作用モニタ542は、シミュレーション内の各プレイバックエージェント及びノンプレイバックエージェントに関連付けられた境界ボックスのセットを決定してもよく、境界ボックスは、エージェントの寸法及び向きに基づいてもよい。境界ボックスは、場合によっては、追加の安全バッファを含み得、この安全バッファは、エージェントのタイプ、速度、脆弱性、及び/又は他の様々なエージェント属性に基づき得る。
【0109】
いくつかの例では、シミュレーションシステム532は、運転シミュレーションにおけるプレイバックエージェント及びノンプレイバックエージェントに関連付けられた境界ボックスのセットを比較し、各時間間隔において、重なりが存在するか否かを決定し得る。シミュレーションの特定の時間において、プレイバックエージェントの境界ボックスと異なるノンプレイバックエージェントの境界ボックスとの間に重なりが存在する場合、エージェント相互作用モニタ542は、エージェント間に相互作用が存在すると決定し得る。
【0110】
動作706において、シミュレーションシステム532は、プレイバックエージェントと相互作用するエージェント(例えば、スマートエージェント又はシミュレートされた車両)が、偏差距離閾値を満たす又は超える偏差距離を有する偏差エージェントであるか否かを決定し得る。いくつかの例では、エージェント相互作用モニタ542は、動作704において決定された相互作用時における偏差を有したノンプレイバックエージェントと、同じ相対時間におけるログデータ内の対応するエージェントの位置との間の位置の差に基づいて、ノンプレイバックエージェントの偏差距離を決定し得る。次いで、エージェント相互作用モニタ542は、偏差を有するノンプレイバックエージェントの偏差距離を偏差距離閾値と比較し得る。偏差を有するノンプレイバックエージェントの偏差距離が偏差距離閾値に合致しないか、又は偏差距離閾値を超えない場合(706:NO)、プロセス700は動作702に戻り、運転シミュレーション内のエージェントの監視を継続する。しかしながら、スマートエージェント又はシミュレートされた車両に関連付けられた偏差距離が偏差距離閾値を満たすか又は超える場合(706:YES)、動作708において、シミュレーションシステム532は、プレイバックエージェントをスマートエージェントに変換し得る。
【0111】
上述のように、場合によっては、偏差距離閾値がゼロに設定されることがあり、この場合、動作706を実行する必要はない。しかしながら、他の場合には、偏差距離閾値は、0.1メートル、0.2メートル、0.3メートル、...、1メートルなど)のようなゼロ以外の値であってもよい。いくつかの例では、偏差距離閾値の値は設定可能であってもよく、シミュレーション中に異なる数及び異なる再生エージェント変換のタイミングを生成するために上下に調整されてもよい。
【0112】
加えて、この例は、プレイバックエージェントをスマートエージェントに変換するか否かを決定するために偏差距離を使用するが、他の例では、シミュレーションシステム532は、偏差を有するノンプレイバックエージェントのヨー偏差値を使用してもよく、これは、ヨー偏差閾値と比較されてもよい。様々な他の例において、エージェント相互作用モニタ542は、距離、ヨー、及び/又はエージェントの他の属性(例えば、速度、軌道等)に対する偏差閾値を適用してもよい。そのような閾値は、予め決められた値であってもよく、又はエージェント相互作用モニタ542は、プレイバックエージェントのタイプ、偏差を有するノンプレイバックエージェントのタイプ、エージェントの一方又は両方の速度等に基づいて、異なる偏差閾値を決定し、適用してもよい。
【0113】
動作708において、シミュレーション中にプレイバックエージェントが偏差を有するノンプレイバックエージェントと相互作用した(又は相互作用する予定である)という決定に基づいて、シミュレーションシステム532は、プレイバックエージェントをスマートエージェントに変換し得る。いくつかの例では、エージェント変換器544は、運転シミュレーションの間、スマートエージェントのナビゲーション及び/又は運転意思決定行動を制御するために、計画コンポーネント546を実行及び/又は構成することによって、プレイバックエージェントをスマートエージェントに変換し得る。工程600を参照して上述したように、場合によっては、計画コンポーネント546は、特定のスマートエージェントについて決定された1つ又は複数の計画コンポーネントパラメータに基づいてインスタンス化され、実行され、及び/又は構成され得、これにより、スマートエージェントのナビゲーション及び/又は運転意思決定行動が、プレイバックエージェントの運転スタイル及び/又は運転者の性格をより正確に反映するように制御され得る。
【0114】
動作710において、シミュレーションシステム532は、シミュレーションが完了したか否かを決定しながら、運転シミュレーションの実行を継続し得る。シミュレーションの完了は、シミュレーションの終了、及び/又は、シミュレーションの実行中に、シミュレートされた車両が所定の結果と一致する動作を行った、又は所定の結果と一致する動作を行わなかった、よって、シミュレートされた車両を操作する車両制御装置がシミュレーションに合格又は不合格のいずれかを決定したことに対応する。ログベースのシミュレーションが進行中であり、まだ完了していない場合(710:NO)、プロセス700は動作702に戻り、シミュレーションの監視を継続し、必要に応じて追加のプレイバックエージェントのスマートエージェントへの変換を実行し得る。しかしながら、シミュレーションが完了すると(710:YES)、動作712において、シミュレーションシステム532は、シミュレーションプロセスを終了し、シミュレートされた車両を操作する車両コントローラのシミュレーション結果を出力又は格納し得る。上述のように、シミュレーション結果は、運転シミュレーション中のシミュレートされた車両の挙動及び/又は性能を特定し得、これは、評価される車両制御装置の挙動及び/又は性能に対応し得る。
【0115】
プロセス600及び700は、それぞれ、論理フロー図のブロックの集まりとして図示されており、これらのブロックは、動作のシーケンスを表し、その一部又は全部は、ハードウェア、ソフトウェア、又はそれらの組み合わせで実装されることができる。ソフトウェアの文脈では、ブロックは、1つ又は複数のコンピュータ可読媒体に格納されたコンピュータ実行可能な指令を表し、この指令は、1つ又は複数のプロセッサによって実行されると、言及された動作を実行する。一般に、コンピュータ実行可能な指令には、特定の機能を実行したり、特定の抽象データ型を実装したりするルーチン、プログラム、オブジェクト、構成要素、暗号化、解読、圧縮、記録、データ構造などが含まれる。動作が説明される順序は、限定として解釈されるべきではない。説明されたブロックの任意の数を任意の順序で、及び/又は並列に組み合わせて、処理、又は代替処理を実施することができ、ブロックのすべてを実行する必要はない。議論の目的のために、本明細書で述べられるプロセスは、本明細書の例において述べられるフレームワーク、アーキテクチャ、及び環境を参照して説明されるが、プロセスは、多種多様な他のフレームワーク、アーキテクチャ、又は環境で実装されてもよい。
【0116】
(例示的な条項)
A.1つ又は複数のプロセッサと、実行されると、自律車両コントローラによって制御されるシミュレートされた自律車両を含む運転シミュレーションを実行することであって、当該運転シミュレーションは、環境を横断する車両に関連付けられたログデータに少なくとも部分的に基づいており、当該ログデータは、当該環境内の第1のオブジェクトに関連づけられた第1のログデータと、当該環境内の第2のオブジェクトに関連づけられた第2のログデータと、を含むことと、当該運転シミュレーションにおける第1の時間期間において、当該第1のログデータに少なくとも部分的に基づいて第1のシミュレートされたオブジェクトを制御し、当該第2のログデータに少なくとも部分的に基づいて第2のシミュレートされたオブジェクトを制御し、シミュレートされた自律車両と当該第1のシミュレートされたオブジェクトとの間の当該運転シミュレーションにおける第1の相互作用を決定することと、当該第1の相互作用の決定に少なくとも部分的に基づいて、第1の計画コンポーネントを使用して、当該第1の時間期間の後の運転シミュレーションにおける第2の時間期間中に当該第1のシミュレートされたオブジェクトを制御することと、当該運転シミュレーションにおける当該第2の時間期間中に、当該第1のシミュレートされたオブジェクトと当該第2のシミュレートされたオブジェクトとの間の第2の相互作用を決定することと、当該第2の相互作用の決定に少なくとも部分的に基づいて、第2の計画コンポーネントを使用して、当該第2の時間期間の後の当該運転シミュレーションにおける第3の時間期間中に当該第2のシミュレートされたオブジェクトを制御することと、当該運転シミュレーションに対する当該自律車両コントローラによる応答を決定することと、を、1つ又は複数のプロセッサに以下を含む動作を実行させるコンピュータ実行可能命令を格納する1つ又は複数のコンピュータ可読媒体と、を含むシステム。
【0117】
B.段落Aのシステムであって、当該運転シミュレーションにおける当該第1の期間中、シミュレートされた自律車両は、少なくとも部分的にコンポーネントに基づいて制御され、当該第1のシミュレートされたオブジェクト及び当該第2のシミュレートされたオブジェクトは、当該ログデータに基づいて、当該環境内の第1のオブジェクト及び当該環境内の第2のオブジェクトにそれぞれ対応するように制御されることと、当該運転シミュレーションにおける当該第2の期間中、当該シミュレートされた自律車両及び当該第1のシミュレートされたオブジェクトは、少なくとも部分的に当該コンポーネントに基づいて制御され、当該第2のシミュレートされたオブジェクトは、当該環境内の第2のオブジェクトに対応するように当該ログデータに基づいて制御され、当該運転シミュレーションにおける第3の時間期間中、当該シミュレートされた自律車両、当該第1のシミュレートされたオブジェクト、及び当該第2のシミュレートされたオブジェクトは、少なくとも部分的に当該コンポーネントに基づいて制御されるシステム。
【0118】
C.段落Aのシステムであって、当該動作は、当該第1の相互作用に関連付けられた時間における当該シミュレートされた自律車両の偏差距離を決定することであって、当該偏差距離は、当該ログデータ内の当該車両の位置と、当該運転シミュレーション中の当該シミュレートされた自律車両の対応する位置との間の距離に基づいており、当該第1の計画要素を使用して当該第1のシミュレートされたオブジェクトを制御することは、少なくとも部分的に偏差距離に基づいていること、をさらに含むシステム。
【0119】
D.段落Aのシステムであって、当該動作は、当該第1のログデータに少なくとも部分的に基づいて、当該第1のオブジェクトに関連付けられた運転属性を決定することであって、当該第1の計画コンポーネントを使用して当該第1のシミュレートされたオブジェクトを制御することは、当該運転属性に少なくとも部分的に基づくこと、をさらに含むシステム。
【0120】
E.段落Aのシステムであって、当該動作は、当該環境内の当該第3のオブジェクトに関連付けられた第3のログデータに少なくとも部分的に基づいて、当該運転シミュレーション中に第3のシミュレートされたオブジェクトを制御することと、第3の相互作用に関連づけられた時間における当該シミュレートされた自律車両の位置と、当該第3のログデータ内の当該第3のオブジェクトの対応する位置との間の距離を決定することと、当該シミュレートされた自律車両と当該第3のシミュレートされたオブジェクトとの間の当該運転シミュレーションにおける当該第3の相互作用を決定することと、を含み、当該第3の相互作用を決定した後に当該第3のシミュレートされたオブジェクトを制御することは、当該環境内の当該第3のオブジェクトに対応するように当該第3のログデータに少なくとも部分的に基づくシステム。
【0121】
F.方法であって、運転シミュレーションを実行することであって、当該運転シミュレーションは、環境における車両に関連付けられたログデータに少なくとも部分的に基づき、当該ログデータは当該環境における第1のオブジェクトに関連付けられた第1のログデータを含むことと、第1の時間期間において、第1のシミュレートされたオブジェクトを、当該環境内の当該第1のオブジェクトと対応させるために制御することと、当該運転シミュレーションにおける、当該第1のシミュレートされたオブジェクトと第2のシミュレートされたオブジェクトとの間の相互作用を決定することと、当該第1の時間期間後の当該運転シミュレーションにおける第2の時間期間中に、計画コンポーネントを使用して当該第1のシミュレートされたオブジェクトを制御することと、を含む方法。
【0122】
G.段落Fの方法であって、当該ログデータは、当該環境における第2のオブジェクトに関連付けられた第2のログデータを含み、当該方法は、当該第2のログデータにおける当該第2のオブジェクトの位置と当該運転シミュレーションにおける前第2のシミュレートされたオブジェクトの相対的な位置との間の距離を決定することと、当該距離が閾値距離を満たす又は超えることを決定することに少なくとも部分的に基づいて、当該第1のシミュレートされたオブジェクトを制御するために当該計画コンポーネントを開始することと、をさらに含む方法。
【0123】
H.段落Fの方法であって、当該第1のシミュレートされたオブジェクトに関連付けられた運転属性を決定することと、当該第1のシミュレートされたオブジェクトに対する目的地を決定することと、当該運転属性に関連付けられた第1のパラメータ、及び当該目的地に関連付けられた第2のパラメータを当該計画コンポーネントに提供することであって、当該計画コンポーネントは、当該第1のパラメータ及び当該第2のパラメータに少なくとも部分的に基づいた当該運転シミュレーションにおいて、当該第1のシミュレートされたオブジェクトを制御するように構成されることと、をさらに含む方法。
【0124】
I.段落Hの方法であって、当該第1のシミュレートされたオブジェクトに関連付けられた当該運転属性、及び、当該第1のシミュレートされたオブジェクトに関連付けられた当該目的地は、当該第1のログデータに少なくとも部分的に基づいて決定される方法。
【0125】
J.段落Fの方法であって、当該運転シミュレーションにおける当該第2の時間期間中、当該ログデータに少なくとも部分的に基づいて、第3のシミュレートされたオブジェクトを制御することと、当該運転シミュレーションにおける、当該第1のシミュレートされたオブジェクトと当該第3のシミュレートされたオブジェクトとの間の第2の相互作用を決定することと、当該第2の時間期間後の当該運転シミュレーションにおける第3の時間期間中、当該計画コンポーネントを使用して当該第3のシミュレートされたオブジェクトを制御することであって、当該計画コンポーネント使用して当該第3のシミュレートされたオブジェクトを制御することは、当該第2の相互作用を決定することに少なくとも部分的に基づくことと、をさらに含む方法。
【0126】
K.段落Fの方法であって、当該運転シミュレーションにおける当該第2の時間期間中、当該ログデータに少なくとも部分的に基づいて、第3のシミュレートされたオブジェクトを制御することと、当該運転シミュレーションにおける当該第1のシミュレートされたオブジェクトと当該第3のシミュレートされたオブジェクトとの間の第2の相互作用を決定することと、をさら含み、当該第2の相互作用を決定することの後に、当該第3のシミュレートされたオブジェクトを制御することは、当該ログデータに基づく方法。
【0127】
L.段落Fの方法であって、当該相互作用を決定することは、当該運転シミュレーションの時間における当該第1のシミュレートされたオブジェクトに関連付けられた第1の経路に基づく第1の境界ボックスを決定することと、当該運転シミュレーションの当該時間における当該第2のシミュレートされたオブジェクトに関連付けられた第2の経路に基づく第2の境界ボックスを決定することと、当該第1の境界ボックスと当該第2の境界ボックスとの重なりを決定することと、を含む方法。
【0128】
M.段落Fの方法であって、当該第1のシミュレートされたオブジェクトは、シミュレートされた自転車、又はシミュレートされた歩行者の少なくとも1つを含む方法。
【0129】
N.1つ又は複数の非一時的コンピュータ可読媒体であって、実行されると、運転シミュレーションを実行することであって、当該運転シミュレーションは、環境における車両に関連付けられたログデータに少なくとも部分的に基づき、当該ログデータは当該環境における第1のオブジェクトに関連付けられた第1のログデータを含むことと、第1の時間期間において、第1のシミュレートされたオブジェクトを、当該環境内の当該第1のオブジェクトと対応させるために制御することと、当該運転シミュレーションにおける、当該第1のシミュレートされたオブジェクトと第2のシミュレートされたオブジェクトとの間の相互作用を決定することと、当該第1の時間期間後の当該運転シミュレーションにおける第2の時間期間中に、計画コンポーネントを使用して当該第1のシミュレートされたオブジェクトを制御することと、を含む動作を当該プロセッサに実行させるプロセッサにより実行可能な指令を格納した、非一時的コンピュータ可読媒体。
【0130】
O.段落Nの1つ又は複数の非一時的コンピュータ可読媒体であって、当該ログデータは、当該環境における第2のオブジェクトに関連付けられた第2のログデータを含み、当該動作は、当該第2のログデータにおける当該第2のオブジェクトの位置と当該運転シミュレーションにおける当該第2のシミュレートされたオブジェクトの相対的な位置との間の距離を決定することと、当該距離が閾値距離を満たす又は超えることを決定することに少なくとも部分的に基づいて、当該第1のシミュレートされたオブジェクトを制御するために当該計画コンポーネントを開始することと、をさらに含む非一時的コンピュータ可読媒体。
【0131】
P.段落Nの1つ又は複数の非一時的コンピュータ可読媒体であって、当該動作は、当該第1のシミュレートされたオブジェクトに関連付けられた運転属性を決定することと、当該第1のシミュレートされたオブジェクトに対する目的地を決定することと、当該運転属性に関連付けられた第1のパラメータ、及び当該目的地に関連付けられた第2のパラメータを当該計画コンポーネントに提供することであって、当該計画コンポーネントは、当該第1のパラメータ及び当該第2のパラメータに少なくとも部分的に基づいた当該運転シミュレーションにおいて、当該第1のシミュレートされたオブジェクトを制御するように構成されることと、をさらに含む非一時的コンピュータ可読媒体。
【0132】
Q.段落Pの1つ又は複数の非一時的コンピュータ可読媒体であって、当該第1のシミュレートされたオブジェクトに関連付けられた当該運転属性、及び、当該第1のシミュレートされたオブジェクトに関連付けられた当該目的地は、当該第1のログデータに少なくとも部分的に基づいて決定される非一時的コンピュータ可読媒体。
【0133】
R.段落Nの1つ又は複数の非一時的コンピュータ可読媒体であって、当該動作は、当該運転シミュレーションにおける当該第2の時間期間中、当該ログデータに少なくとも部分的に基づいて、第3のシミュレートされたオブジェクトを制御することと、当該運転シミュレーションにおける、当該第1のシミュレートされたオブジェクトと当該第3のシミュレートされたオブジェクトとの間の第2の相互作用を決定することと、当該第2の時間期間後の当該運転シミュレーションにおける第3の時間期間中、当該計画コンポーネントを使用して当該第3のシミュレートされたオブジェクトを制御することであって、当該計画コンポーネント使用して当該第3のシミュレートされたオブジェクトを制御することは、当該第2の相互作用を決定することに少なくとも部分的に基づくことと、をさらに含む非一時的コンピュータ可読媒体。
【0134】
S.段落Nの1つ又は複数の非一時的コンピュータ可読媒体であって、当該動作は、当該運転シミュレーションにおける当該第2の時間期間中、当該ログデータに少なくとも部分的に基づいて、第3のシミュレートされたオブジェクトを制御することと、当該運転シミュレーションにおける当該第1のシミュレートされたオブジェクトと当該第3のシミュレートされたオブジェクトとの間の第2の相互作用を決定することと、をさらに含み、当該第2の相互作用を決定することの後に、当該第3のシミュレートされたオブジェクトを制御することは、当該ログデータに基づく非一時的コンピュータ可読媒体。
【0135】
T.段落Nの1つ又は複数の非一時的コンピュータ可読媒体であって、当該相互作用を決定することは、当該運転シミュレーションの時間における当該第1のシミュレートされたオブジェクトに関連付けられた第1の経路に基づく第1の境界ボックスを決定することと、当該運転シミュレーションの当該時間における当該第2のシミュレートされたオブジェクトに関連付けられた第2の経路に基づく第2の境界ボックスを決定することと、当該第1の境界ボックスと当該第2の境界ボックスとの重なりを決定することと、を含む非一時的コンピュータ可読媒体。
【0136】
U.1つ又は複数のプロセッサと、実行されると、環境に関連付けられたログデータを受信することであって、当該ログデータは、当該環境内のオブジェクトに関連付けられた第1のログデータを含むことと、当該オブジェクトを車両として分類することと、当該車両を第1の車両として識別することと、当該第1のログデータに少なくとも部分的に基づいて、当該ログデータ内の他の車両ではなく当該第1の車両に関連付けられた第1の運転属性を決定することと、当該環境に対応するシミュレートされた環境と、当該第1の車両に対応する第1のシミュレートされた車両と、を含む運転シミュレーションを実行することであって、当該第1のシミュレートされた車両は、計画コンポーネントによって制御されることと、当該計画コンポーネントを使用して、当該第1の車両に関連付けられた当該第1の運転属性に少なくとも部分的に基づいて、当該第1のシミュレートされた車両の運転決定を決定することと、当該運転決定に少なくとも部分的に基づいて、当該運転シミュレーション中に当該第1のシミュレートされた車両を制御することと、を含む動作を1つ又は複数のプロセッサに実行させるコンピュータ実行可能指令を格納した1つ又は複数のコンピュータ可読媒体と、を含むシステム。
【0137】
V.段落Uのシステムであって、当該動作は、当該ログデータ内の第2のログデータに少なくとも部分的に基づいて、当該環境内の第2の車両に関連付けられた第2の運転属性を決定することであって、当該第2の運転属性が当該第1の運転属性と異なることと、当該第2の運転属性に少なくとも部分的に基づいて、当該運転シミュレーション中に第2のシミュレートされた車両を制御することと、をさらに含むシステム。
【0138】
W.段落Uのシステムであって、当該第1の車両に関連付けられた当該第1の運転属性を決定することは、当該ログデータに基づいて、当該第1の車両の運転挙動の第1のインスタンスに関連付けられた第1の値と、当該第1の車両の運転挙動の第2のインスタンスに関連付けられた第2の値とを決定することと、当該第1値と当該第2の値に基づいて、当該第1の運転属性に関連付けられた分布を少なくとも部分的に決定することとを含み、当該第1のシミュレートされた車両の運転決定を決定することは、当該分布から第3の値をサンプリングすることを含むシステム。
【0139】
X.段落Uのシステムであって、当該環境を横断する当該第1の車両の第1の運転経路は、シミュレートされた環境を横断する当該第1のシミュレートされた車両のための当該計画コンポーネントによって決定された第2の運転経路とは異なるシステム。
【0140】
Y.段落Uのシステムであって、当該第1のシミュレートされた車両の運転決定を決定することは、当該第1のログデータに少なくとも部分的に基づいて、当該第1の車両に関連付けられた第1の運転属性の第1の値を決定することと、当該運転決定に関連付けられた第2の運転属性を決定することと、当該第1の運転属性と当該第2の運転属性との間の相互作用に関連付けられた重み値を決定することと、当該第1の運転属性の当該第1の値と当該重み値とに少なくとも部分的に基づいて、当該第2の運転属性の当該第2の値を決定することと、を含むシステム。
【0141】
Z.方法であって、環境に関連付けられたログデータを受信することであって、当該ログデータは、当該環境内の第1のオブジェクトに関連付けられた第1のログデータを含むことと、当該第1のログデータに少なくとも部分的に基づいて、第1のオブジェクトに関連付けられた挙動属性を決定することと、計画コンポーネントによって制御される第1のシミュレートされたオブジェクトを含むシミュレーションを実行することと、当該計画コンポーネントを使用して、当該シミュレーション中の当該第1のシミュレートされたオブジェクトの決定を決定することであって、当該決定は、当該第1のオブジェクトに関連付けられた当該挙動属性に少なくとも部分的に基づくことと、を含む方法。
【0142】
AA.段落Zの方法であって、当該ログデータ内の第2のログデータに少なくとも部分的に基づいて、当該環境内の第2のオブジェクトに関連付けられた第2の挙動属性を決定することであって、当該第2の挙動属性が当該挙動属性と異なることと、当該第2の挙動属性に少なくとも部分的に基づいて、当愛シミュレーション中に第2のシミュレートされたオブジェクトを制御することと、をさらに含む方法。
【0143】
AB.段落AAの方法であって、当該第1のシミュレートされたオブジェクトは、当該シミュレーション内のシミュレートされた電動車両であり、当該第2のシミュレートされたオブジェクトは、当該シミュレーション内の歩行者オブジェクト又は非電動車両オブジェクトの少なくとも1つである方法。
【0144】
AC.段落Zの方法であって、当該第1のオブジェクトに関連付けられた当該挙動属性を決定することは、当該ログデータに基づいて、当該第1のオブジェクトの挙動の第1のインスタンスに関連付けられた第1の値と、当該第1のオブジェクトの挙動の第2のインスタンスに関連付けられた第2の値とを決定することと、当該第1の値と当該第2の値とを集約して、当該第1のオブジェクトの当該挙動属性に関連付けられた値を決定することとを含む方法。
【0145】
AD.段落Zの方法であって、当該ログデータに基づいて、当該第1のオブジェクトに関連付けられた当該環境内の目的地を決定することと、当該ログデータに基づいて、当該シミュレーション内の第1のシミュレートされたオブジェクトのシミュレートされた目的地を決定することであって、当該第1のシミュレートされたオブジェクトの決定を決定することは、当該シミュレートされた目的地に少なくとも部分的に基づくことと、をさらに含む方法。
【0146】
AE.段落Zの方法であって、当該環境内の第2のオブジェクトに関連付けられた第2のログデータを決定することであって、当該第1のオブジェクト及び当該第2のオブジェクトが同じオブジェクト分類を有することと、当該第2のログデータに少なくとも部分的に基づいて、当該第2のオブジェクトに関連付けられた第2の挙動属性を決定することであって、当該第1のシミュレートされたオブジェクトの決定を決定することが、当該第2のオブジェクトに関連づけられた当該第2の挙動属性に少なくとも部分的に基づくことと、をさらに含む方法。
【0147】
AF.段落Zの方法であって、当該第1のログデータに少なくとも部分的に基づいて、当該環境を横断する当該第1のオブジェクトの第1の経路を決定することと、計画コンポーネントによって、当該シミュレーションのシミュレートされた環境を横断する当該第1のシミュレートされたオブジェクトの第2の経路を決定することであって、当該第1のオブジェクトの当該第1の経路は、当該第1のシミュレートされたオブジェクトの当該計画コンポーネントによって決定された当該第2の経路とは異なることと、をさらに含む方法。
【0148】
AG.段落Zの方法であって、当該第1のシミュレートされたオブジェクトの当該決定を決定することが、当該第1のログデータに少なくとも部分的に基づいて、当該第1のオブジェクトに関連付けられた当該挙動属性の第1の値を決定することと、当該挙動属性と第2の挙動属性との間の相関に関連づけられた重み値を決定することと、当該挙動属性のつがい第1の値と当該重み値とに少なくとも部分的に基づいて、当該第2の挙動属性の当該第2の値を決定することと、当該第2の挙動属性の当該第2の値に少なくとも部分的に基づいて決定を決定することと、含む方法。
【0149】
AH.プロセッサによって実行可能な指令を格納した1つ又は複数の非一時的コンピュータ可読媒体であって、当該指令が実行されると、当該プロセッサに、環境に関連付けられたログデータを受信することであって、当該ログデータは、当該環境内の第1のオブジェクトに関連付けられた第1のログデータを含むことと、当該第1のログデータに少なくとも部分的に基づいて、第1のオブジェクトに関連付けられた挙動属性を決定することと、計画コンポーネントによって制御される第1のシミュレートされたオブジェクトを含むシミュレーションを実行することと、当該計画コンポーネントを使用して、当該シミュレーション中の当該第1のシミュレートされたオブジェクトの決定を決定することであって、当該決定は、当該第1のオブジェクトに関連付けられた当該挙動属性に少なくとも部分的に基づくことと、を含む動作を実行させる非一時的コンピュータ可読媒体。
【0150】
AI.段落AHの1つ又は複数の非一時的コンピュータ可読媒体であって、当該動作は、当該ログデータ内の第2のログデータに少なくとも部分的に基づいて、当該環境内の第2のオブジェクトに関連付けられた第2の挙動属性を決定することであって、当該第2の挙動属性が当該挙動属性と異なることと、当該第2の挙動属性に少なくとも部分的に基づいて、当愛シミュレーション中に第2のシミュレートされたオブジェクトを制御することと、をさらに含む非一時的コンピュータ可読媒体。
【0151】
AJ.段落AHの1つ又は複数の非一時的コンピュータ可読媒体であって、当該第1のオブジェクトに関連付けられた当該挙動属性を決定することは、当該ログデータに基づいて、当該第1のオブジェクトの挙動の第1のインスタンスに関連付けられた第1の値と、当該第1のオブジェクトの挙動の第2のインスタンスに関連付けられた第2の値とを決定することと、当該第1の値と当該第2の値とを集約して、当該第1のオブジェクトの当該挙動属性に関連付けられた値を決定することとを含む非一時的コンピュータ可読媒体。
【0152】
AK.段落AHの1つ又は複数の非一時的コンピュータ可読媒体であって、当該動作は、当該ログデータに基づいて、当該第1のオブジェクトに関連付けられた当該環境内の目的地を決定することと、当該ログデータに基づいて、当該シミュレーション内の第1のシミュレートされたオブジェクトのシミュレートされた目的地を決定することであって、当該第1のシミュレートされたオブジェクトの決定を決定することは、当該シミュレートされた目的地に少なくとも部分的に基づくことと、をさらに含む非一時的コンピュータ可読媒体。
【0153】
AL.段落AHの1つ又は複数の非一時的コンピュータ可読媒体であって、当該動作は、当該環境内の第2のオブジェクトに関連付けられた第2のログデータを決定することであって、当該第1のオブジェクト及び当該第2のオブジェクトが同じオブジェクト分類を有することと、当該第2のログデータに少なくとも部分的に基づいて、当該第2のオブジェクトに関連付けられた第2の挙動属性を決定することであって、当該第1のシミュレートされたオブジェクトの決定を決定することが、当該第2のオブジェクトに関連づけられた当該第2の挙動属性に少なくとも部分的に基づくことと、をさらに含む非一時的コンピュータ可読媒体。
【0154】
AM.段落AHの1つ又は複数の非一時的コンピュータ可読媒体であって、当該動作は、当該第1のログデータに少なくとも部分的に基づいて、当該環境を横断する当該第1のオブジェクトの第1の経路を決定することと、計画コンポーネントによって、当該シミュレーションのシミュレートされた環境を横断する当該第1のシミュレートされたオブジェクトの第2の経路を決定することであって、当該第1のオブジェクトの当該第1の経路は、当該第1のシミュレートされたオブジェクトの当該計画コンポーネントによって決定された当該第2の経路とは異なることと、をさらに含む非一時的コンピュータ可読媒体。
【0155】
AN.段落AHの1つ又は複数の非一時的コンピュータ可読媒体であって、当該第1のシミュレートされたオブジェクトの当該決定を決定することが、当該第1のログデータに少なくとも部分的に基づいて、当該第1のオブジェクトに関連付けられた当該挙動属性の第1の値を決定することと、当該挙動属性と第2の挙動属性との間の相関に関連づけられた重み値を決定することと、当該挙動属性のつがい第1の値と当該重み値とに少なくとも部分的に基づいて、当該第2の挙動属性の当該第2の値を決定することと、当該第2の挙動属性の当該第2の値に少なくとも部分的に基づいて決定を決定することと、含む非一時的コンピュータ可読媒体。
【0156】
上述した例示的な条項は、特定の実装に関して述べられているが、本明細書の文脈において、例示的な条項の内容は、方法、デバイス、システム、コンピュータ可読能媒体、及び/又は別の実装を介して実行され得ることが理解されるべきである。さらに、例A~ANはいずれも、単独で、又は他の例A~ANのいずれか1つ又は複数と組み合わせて実装され得る。
【0157】
(結言)
本明細書で述べられる手法の1つ又は複数の例が説明されてきたが、その様々な変更、追加、置換及び等価物は、本明細書に述べられる手法の範囲内に含まれる。
【0158】
例の説明において、本明細書の一部を構成する添付図面を参照しているが、この図面は、特許請求される主題の特定の例を例示的に示すものである。他の例が使用されてもよく、構造的変更などの変更又は改変がなされてもよいことを理解されたい。そのような例、変更又は改変は、意図された特許請求される主題に関する範囲から必ずしも逸脱するものではない。本明細書に述べられる手順は、ある順序で示され得るが、場合によっては、順序を変更して、記載されるシステム及び方法の機能を変更することなく、特定の入力が異なる時間又は異なる順序で提供されるようにしてもよい。また、開示された手順は、異なる順序で実行されてもよい。さらに、本明細書に記載される様々な計算は、開示された順序で実行される必要はなく、計算の代替順序を使用する他の例が容易に実施され得る。順序を変更することに加えて、計算を、同じ結果を有するサブ計算に分解されてもよい。
【0159】
本主題は、構造的特徴及び/又は方法論的行為に特有の言語で記載されているが、添付の特許請求の範囲に定義される主題は、必ずしも記載された特定の特徴又は行為に限定されるものではないことを理解されたい。むしろ、特定の特徴及び行為は、特許請求の範囲を実施する例示的な形態として開示されている。
【0160】
本明細書で述べられる構成要素は、任意のタイプのコンピュータ可読媒体に格納され得る指令を表し、ソフトウェア及び/又はハードウェアで実装され得る。上述した方法及びプロセスの全ては、1つ又は複数のコンピュータ又はプロセッサ、ハードウェア、又はそれらの組み合わせによって実行されるソフトウェアコードモジュール及び/又はコンピュータ実行可能な指令に具現化され、それを介して完全に自動化されてもよい。方法の一部又は全部は、代替的に、特殊なコンピュータハードウェアに具現化されてもよい。
【0161】
特に、「可能性がある」、「得る」、「してよい」、又は「ことがある」などの条件付き文言は、特に別段の記載がない限り、文脈内で、特定の例が特定の特徴、要素、及び/又はステップを含み、一方、他の例が特定の特徴、要素、及び/又はステップを含まないことを示すものと理解される。したがって、このような条件付き表現は、一般に、特定の特徴、要素、及び/又はステップが、1つ又は複数の例に対して何らかの形で必要であること、あるいは、1つ又は複数の例が、ユーザー入力又はプロンプトの有無にかかわらず、特定の特徴、要素、及び/又はステップが、任意の特定の例に含まれるか、又は実行されるかどうかを決定するためのロジックを必ず含むことを意味するものではない。
【0162】
「X、Y、Zのうち少なくとも1つ」というような接続詞は、特に断りのない限り、項目、用語などが、X、Y、Zのいずれか、又は各要素の倍数を含むそれらの任意の組み合わせである可能性があることを示すものと理解される。単数形として明示されていない限り、「a」は単数形及び複数形を意味する。
【0163】
本明細書で述べられ、及び/又は添付図に描かれているフロー図におけるルーチンの記述、要素又はブロックは、ルーチン内の特定の論理機能又は要素を実施するための1つ又は複数のコンピュータ実行可能な指令を含むモジュール、セグメント、又はコードの一部を表す可能性があると理解されるべきである。本明細書で述べられる例の範囲内には、当業者であれば理解できるように、関係する機能に応じて、要素又は機能が削除されたり、実質的に同期して、逆の順序で、追加の動作を伴って、又は動作が省略されるなど、図示又は議論される順序とは異なる順序で実行されたりする代替的な実装が含まれる。
【0164】
上述した例に対して多くの変形例及び修正が行われてよく、その要素は他の許容可能な実施例の中に含まれるものとして理解される。全てのそのような修正及び変形は、本開示の範囲内に本明細書に含まれ、以下の特許請求の範囲によって保護されることが意図される。
【国際調査報告】