JP2020502615A - 自律走行車シミュレーションのためのシナリオ記述言語 - Google Patents

自律走行車シミュレーションのためのシナリオ記述言語 Download PDF

Info

Publication number
JP2020502615A
JP2020502615A JP2019519980A JP2019519980A JP2020502615A JP 2020502615 A JP2020502615 A JP 2020502615A JP 2019519980 A JP2019519980 A JP 2019519980A JP 2019519980 A JP2019519980 A JP 2019519980A JP 2020502615 A JP2020502615 A JP 2020502615A
Authority
JP
Japan
Prior art keywords
scenario
primitive
primitives
computer
permutations
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2019519980A
Other languages
English (en)
Other versions
JP7111702B2 (ja
Inventor
マーティン カフーン ライアン
マーティン カフーン ライアン
リンスコット ギャリー
リンスコット ギャリー
トゥルイユ アドリアン
トゥルイユ アドリアン
Original Assignee
ズークス インコーポレイテッド
ズークス インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ズークス インコーポレイテッド, ズークス インコーポレイテッド filed Critical ズークス インコーポレイテッド
Publication of JP2020502615A publication Critical patent/JP2020502615A/ja
Priority to JP2022116396A priority Critical patent/JP2022165991A/ja
Application granted granted Critical
Publication of JP7111702B2 publication Critical patent/JP7111702B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/20Design optimisation, verification or simulation
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/003Maps
    • G09B29/006Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes
    • G09B29/007Representation of non-cartographic information on maps, e.g. population distribution, wind direction, radiation levels, air and sea routes using computer methods
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Geometry (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Optimization (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Pure & Applied Mathematics (AREA)
  • Educational Technology (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Ecology (AREA)
  • Mathematical Physics (AREA)
  • Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Traffic Control Systems (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)

Abstract

ドメイン固有言語またはSDL(シナリオ記述言語)を使用して、環境内におけるオブジェクト(例えば、自律走行車)の相互作用をテストおよび検証するためのシミュレーションにおけるシナリオを迅速に列挙することができる。シミュレーションにおけるシナリオを、1つまたは複数のプリミティブを使用して定義する。プリミティブを使用して、インスタンス化されるためのオブジェクト(例えば、ボディサイズ、位置、向き、速度など)、および/またはシミュレーションにおいてオブジェクトによって実行される動作(時間間隔だけ待つ、目標位置、特定のオブジェクトに追従するなど)を定義する。SDLは、プリミティブを結合して組み合わせることによって、およびいくつかの実施例において、どのシナリオが作成されるかを、意味ある情報を提供する組み合わせに対応するそれらに制限することによって、多数のシナリオの簡単な作成を可能にする。加えて、SDLによって、特定のシナリオを地図内のすべての可能な位置にわたって自動的にインスタンス化することができるよう、インスタンス化が地図特徴について知らずにいることを可能にする。

Description

本発明は、シナリオを生成する方法およびシステムに関し、より詳細には、シミュレーション環境における、シナリオを生成する方法およびシステムに関する。
関連出願の相互参照
本PCT国際出願は、2017年1月13日に出願された「SCENARIO DESCRIPTION LANGUAGE」と題する米国出願第15/405649号明細書に関し、2016年10月14日に出願された米国仮出願第62/408641号明細書の利益を主張し、内容全体が参照によって本明細書に組み込まれる。
指定された開始条件を与えられた環境におけるオブジェクト同士の相互作用を、一般に、シナリオと呼ぶことができる。システムの様々なパラメーター、例えばロバスト性などを、システムからの入力を与えられたシナリオの結果(すなわち、最終結果)に基づいて、カテゴライズすることができる。しばしば、特定のシナリオの物理的なテストまたは検証は、実行可能でも可能でもない。十分に単純なシナリオに対して、必要に応じて物理的な近似を含む、テストまたは検証の目的のために解析解を得ることができることが可能である。しかしながら、状況があまりに複雑になると、解析解は、実行可能でないことがある。上記の状況において、テストおよび検証は、シミュレーションの使用を通して行われる。
一実施例として、シミュレーションは、自律走行車のための操作ソフトウェアをテストするために使用されている。交通および歩行者の中でソフトウェアを安全にテストすることが不可能であるので、シミュレーションが必要である。加えて、まったく同じ条件を使用して、上記のテストを繰り返すことは、事実上不可能である。例えば、自律走行車が、安全上の懸念と繰り返すことができることとの両方のために、幹線道路上の酔っ払った運転手を何度も回避する状況を、正確に再現することは、ほぼ不可能であろう。さらにまた、物理的なテストは、また、テストをすることができるシナリオの実行可能な回数についての制限を提示する(例えば、数百万回、ある結果をテストして出すことは、実現可能でないことがある)。したがって、今述べたシミュレーションは、自律走行車が遭遇することがあり得るシナリオを正確に再生するために、世界および世界の中の障害物を再現することを試みる。
本明細書において説明される技法を、例として、同様の番号が同様の要素を示す、添付の図面を参照して、今から説明するものである。
シナリオ記述言語を使用してシナリオがどのように定義されるかを説明するブロック図の一例を例示する図である。 シナリオ記述言語を使用して作成することができるシナリオ例を示す図である。 描画されたシナリオ例を例示する図である。 シナリオ記述言語を使用してユーザーによって定義されるようなプリミティブを結合して組み合わせることによって作成される多くのシナリオのうち第1のシナリオ例を示す図である。 図4Aのように多くのシナリオのうち第2のシナリオ例を示す図である。 図4Aのように多くのシナリオのうち第3のシナリオ例を示す図である。 図4Aのように多くのシナリオのうち第4のシナリオ例を示す図である。 図4Aのように多くのシナリオのうち第5のシナリオ例を示す図である。 シナリオ記述言語を使用してシナリオを定義するためにおよび/またはシナリオ記述言語を使用して定義されたシナリオをシミュレートするために使用することができるコンピューティングシステムの例を例示する図である。 シミュレーション環境においてシナリオを構成する処理の例を例示する図である。 シナリオ記述言語を使用してユーザーによって定義されるようなプリミティブを結合して組み合わせることによって多数のシナリオを生成する処理の例を例示する図である。 有用な情報を提供するシナリオを決定し有用な情報を提供しない他のシナリオを取り除く処理の例を例示する図である。
以下の詳細な説明は、シミュレーションを構成する際に使用するドメイン固有言語を作成する技法に向けられる。説明される技術は、一般に、様々なシミュレーション環境に適用できることが可能であるが、簡潔にする目的のために、詳細な説明は、自動車を含む実施例に向けられる。上述したように、多くの産業が、テストおよび検証のために、シミュレーション環境を使用する。制限でない実施例として、シミュレーションを使用して、自律走行車上に実行されるソフトウェア(すなわち、自律的なコントローラー)を検証して、ソフトウェアが上記の自律走行車を安全に制御することができることを保証することができる。追加および/または代替の実施例において、シミュレーションを使用して、ソフトウェアに基づいて走行する自律走行車の制約について学習することができる。例えば、シミュレーションを使用して、路面状態、環境騒音、欠陥部品などを考慮して、自律走行車の作動空間(すなわち、自律的なコントローラーが自律走行車を効果的に制御するパラメーターのエンベロープ)を理解することができる。さらに、シミュレーションは、自律走行車の作動および設計を改善するためのフィードバックを生成するのに役立つことができる。例えば、いくつかの例において、シミュレーションは、自律的コントローラーにおいて必要とされる冗長性の量を決定するために、またはシミュレーションを通して学習されることに基づいて自律的コントローラーの挙動をどのように変更するかを決定するために、役立たせることができる。さらにまた、追加および/または代替の実施例において、シミュレーションは、自律走行車のハードウェア設計、例えば自律走行車上におけるセンサーの配置を最適化することなどの情報を提供するのに役立たせることができる。
テストおよび検証を実行するためにシミュレーション環境を作成する場合、様々および特定の実施例を用いて、環境を具体的に列挙することが可能である。上記の環境の各インスタンス化は、一意的であり、定義し得る。すべての可能なシナリオを手動で列挙することは、途方もない時間を必要とすることあり得るし、もしすべての可能なシナリオが構成されないならば、様々なシナリオが、未テストになり得る。加えて、多数のシナリオを記述することができるけれども、シナリオの追加があらゆる追加の役立つ情報を提供するという保証はない。例えば、交差点におけるシミュレートされる自動車の開始する位置の違いが増えていくことは、コンピューターコードの特定のセットを与えられるシナリオにおいて応答する自律走行車の能力について、あるとしても追加の大して役に立たない情報を提供するしかできない。
本明細書において説明される技法は、ユーザーに、シミュレートされるためのシナリオを、簡潔に、高水準に記述することできるようにするドメイン固有言語に向けられる。ドメイン固有言語は、シミュレーション環境においてシナリオをインスタンス化するために、コンピューティングシステムによって実行できることが可能である。一実施例において、ドメイン固有言語を使用して、役立ちそうにないシナリオを取り除くことができるよう、役立つシナリオの結果を定義することができる。こうして、ドメイン固有言語を使用して、どれが役立つ情報を提供するであろうかをシミュレートする、限られた数のシナリオを決定することができる。そして、役立つ情報を提供すると決定されたシナリオを、シミュレーション環境においてインスタンス化することができる。上記のドメイン固有言語は、検証およびテストのために役立つ情報を提供する特定のシナリオにわたって最適化することによって、計算の複雑性、メモリ要件、および処理時間を減らす。
少なくとも1つの実施例において、シミュレーション環境を、例えば地図など、環境と相互作用するプリミティブの使用を通して構成することができる。プリミティブは、制限はしないが、(静的か動的かのいずれかであることが可能である)エンティティ、エンティティ挙動、作動、条件、ノイズ、障害などを含むことができる。少なくとも1つの実施例において、シナリオは、地図と相互作用する1つまたは複数のプリミティブを含むことができる。いくつかの実施例において、エンティティを、座標系(例えば、2次元または3次元の座標系)、例えば、慣性座標系、走路に基づく座標系、または地図に基づく座標系などに関連付けることができて、エンティティの位置および/または速度を記述することができる。上記のシナリオを、SDF(Scenario Definition Format)において列挙することができる。加えて、以下に詳細に説明するように、プリミティブを、線形時相論理を介して接続することができる。制限でない実施例として、ある寸法および速度を有しており、さらに、指定された寸法および速度を有するシミュレートされるテスト自律走行車の前に、車道に沿って予め決められた距離にあるよう位置付けされている1つのエンティティ、例えば、自動車として、1つのシナリオを、定義することができる。
上述したように、SDFは、無数のシナリオを列挙することが可能である。しかしながら、作成することができるシナリオの多くは、非物理的であるか、または他のシナリオと比較して、情報の利益を僅かに提供するかのいずれかである。例えば、シナリオを作成するために、プリミティブの未熟な使用は、プリミティブエンティティが互いに交わるシナリオをもたらすことができる。上記のシナリオは、非物理的であろう。加えて、上述したように、上のシナリオを開始する位置の変化が増えていくことは、他のシナリオと比較して、役立つデータを提供しないことがある。
以下に説明するように、ドメイン固有言語を使用して、コマンドをほとんど使用することなく、多数のシナリオを容易にインスタンス化することができるよう、高水準のシナリオを指定することができる。したがって、多数のシナリオを、環境に関連付けられたパラメーター空間を網羅的かつ効率的に探索することができる。少なくとも1つの実施例において、今述べたことは、シナリオのインスタンス化の間において相違だけを指定する必要があるよう、シナリオを「テンプレート化」することによって達成することができる。シナリオを作成するためのドメイン固有言語、またはSDL(シナリオ記述言語)の使用を通して、有用を提供するシナリオがインスタンス化されるよう、プリミティブシナリオを、容易に列挙することができる。少なくとも1つの実施例において、SDLは、高水準の定義セットを使用して環境におけるプリミティブの明記を可能にする、ドメイン固有言語である。いくつかの実施例において、SDLは、ユーザー定義されたやり方において、プリミティブを結合して組み合わることを可能にする。一実施例において、SDLの使用は、シミュレーションを介してテストされる実現可能な興味深いシナリオセットを提供する。
上述したように、プリミティブを、例えば地図内など、環境内においてインスタンス化することができる。少なくとも1つの実施例において、SDLは、例えば、地図のトポロジーまたは「セマンティック座標(semantic coordinates)」に関してプリミティブをインスタンス化することによって、地図座標とは独立したやり方において表現することができる場所に、自動的な地図上のインスタンス化を可能にする。制限でない実施例として、SDLにより、(ユーザーに、特定の2次元または3次元の座標を入力することを必要とするのとは対照的に)プリミティブのインスタンス化がT字路におけるものであることをユーザーが指定することを可能にする。地図のトポロジーを使用して高水準のシナリオを定義することによって、ユーザーは、地図について何も知る必要がない。加えて、例えば、交差点の種類に関してインスタンス化を定義することによって、与えられた種類のすべての交差点を、同様のプリミティブを用いて実質的に同時にインスタンス化することができる。SDLを使用すると、テストシナリオの簡潔な定義を有することが可能であり、コンピューターコードに、高度に読み取り可能であることを可能にし、地図データが更新されるたびに、テストシナリオの大規模なスイートの迅速な更新を可能にする。だから、SDLは、システムを開発するときユーザーに頻繁にテストを実行することを可能にするだけでなく、条件にわたる「網羅的で列挙的な」探索を実行することを可能にする。加えて、メモリおよび処理要件を、有用な情報を提供するシナリオにわたって反復することによる繰り返し処理を制限することによって、減らす。さらなる詳細は、図1〜8を参照して以下に提供する。
プリミティブ
上述したように、SDLは、プリミティブセットに基づいて構成される、高水準のシナリオを容易に定義することを可能にする。少なくとも1つの実施例において、プリミティブを、地図内など、環境内においてインスタンス化することができる。地図は、2次元または3次元であることが可能である。2次元および/または3次元の地図は、例えば、制限でないが、(例えば交差点などの)トポロジー、街路、山脈、道路、地形、および一般的な環境などの、環境についての情報を提供することが可能なあらゆる数のデータ構造であることが可能である。説明の目的のために、プリミティブは、シミュレーション環境の特定の側面を定義する。プリミティブの制限でない例は、座標系、条件、動作、エンティティ、エンティティ挙動、ノイズ、障害などを含む。
座標系を利用して、シナリオにおけるエンティティの位置および/または速さ(もしくは速度)を記述することができる。座標系は、慣性座標系、走路ベースの座標系、または地図ベースの座標系などを含むことができる。慣性座標系は、何らかの局所的または大域的な座標系に関する座標系であることが可能である。走路ベースの座標系は、例えば道路の断片などの走路上における何らかの位置に関する座標系であることが可能である。地図ベースの座標系は、上述したようなセマンティック座標を利用することができる。
少なくとも1つの実施例において、様々なプリミティブは、コンピューティングシステム上において実行可能なシミュレーションアプリケーションに命令を提供することができる。以下に説明するシミュレーションアプリケーションを、本明細書において、「シミュレーター」と呼ぶことができる。
少なくとも1つの実施例において、条件プリミティブは、条件プリミティブに関連付けられた条件が満たされるまで遅延させられる、何らかの動作の実行または他の何らかの条件の評価の実行を引き起こすことができる。条件プリミティブは、制限でないが、「wait」条件、「wait for」条件、「distance between or near」条件、「speed」条件、「in region」条件などを含むことができる。加えて、および/または、代替えとして、「inversion modifier」条件は、条件を反対にすることができる。さらに、条件は、プリミティブとしての多数の条件を組み合わせることができるよう、ブール演算子、例えば、制限でないが、and、or、not、xor、nor、nandなどを含むこともできる。以下に説明する条件の名前は、制限でなく、条件を、追加および/または代替の実施例において、同じ名前または異なる名前によって呼ぶことができることに注意すべきである。
「wait」条件は、何らかの動作の実行または他の何らかの条件の評価の実行を、開始するまでに指定された時間間隔だけ遅延させるよう、シミュレーターに命令することができる。すなわち、時間間隔が経過すると、「wait」条件を、満たすことができる。「wait for」条件は、別の条件が満たされるまで、あらゆる動作をとらないよう、シミュレーターに命令することができる。すなわち、別の条件が満たされると、「wait for」条件を、満たすことができる。
「distance between or near」条件は、2つのエンティティの間の距離が何らかのユーザー指定された値を下回るまで、何らかの動作の実行または他の何らかの条件の評価の実行を、遅延させるよう、シミュレーターに命令することができる。すなわち、指定されたエンティティ間の距離が距離の閾値以内になったと決定されると、「distance between or near」条件を、満たすことができる。少なくとも1つの実施例において、指定されたエンティティ間の距離が距離の閾値以内になると、2つのエンティティ間の距離が何らかのユーザー指定された値を下回ったことを示すブールシグナリング(Boolean signaling)を、シミュレーターに伝えることができる。
「speed」条件は、エンティティの速さ(または速度)が指定された値よりも小さく(もしくは大きく)なるまで、または指定された値に達するまで、何らかの動作の実行または他の何らかの条件の評価の実行を遅延させるよう、シミュレーターに命令することができる。すなわち、エンティティの速さ(または速度)が指定された値よりも小さく(もしくは大きく)なると、または指定された値に達すると、「speed」条件を、満たすことができる。少なくとも1つの実施例において、エンティティの速さ(または速度)が指定された値よりも小さく(もしくは大きく)なると、または指定された値に達すると、エンティティの速さ(または速度)が指定された値よりも小さく(もしくは大きく)なったこと、または指定された値に達したことを示すブールシグナリングを、シミュレーターに伝えることができる。
「in region」条件は、エンティティが指定された領域内にある間、何らかの動作の実行または他の何らかの条件の評価の実行を遅延させるよう、シミュレーターに命令することができる。すなわち、少なくともエンティティの一部が指定された領域に対応するシーン(例えば、環境)の空間の容積内にあることに基づいて、「in region」条件を、満たすことができる。少なくとも1つの実施例において、少なくともエンティティの一部が指定された領域に対応するシーン(例えば、環境)の空間の容積内にあることに基づいて、エンティティが指定された領域内にあることを示すブールシグナリングを、シミュレーターに伝えることができる。
少なくとも1つの実施例において、動作プリミティブに対応する動作は、シーケンスのインスタンス化の間に遭遇すると、シミュレーターが実行することができる。動作は、トリガーをオンまたはオフにすることを含むことができる。さらにまた、動作は、例えば、テストの最後に、成功または失敗を識別することを含むことができる。少なくとも1つの実施例において、動作は、呼び出されるとシミュレーターに関連付けられたディスプレイにメッセージを提供するために、ログ(表示)メッセージを生成することを含むことができる。さらに、動作は、エンティティを作成および/または破壊すること、および/またはエンティティ(例えば、サイズ、形状、型など)を変更することを含むことができる。少なくとも1つの実施例において、動作は、遠隔操作の動作(すなわち、仮想オペレーターからコマンドを伝えること)を容易にすることを含むことができる。
少なくとも1つの実施例において、エンティティのプリミティブは、シーンのエンティティに対応することができる。エンティティの例は、自動車、歩行者、バイク、建物などを含むことができる。各エンティティは、与えられた寸法、型、姿勢、およびシミュレートされる環境におけるエンティティとして描画するためのメッシュに関連付けることができる。寸法は、エンティティの長さ、幅、および高さに対応することができる。エンティティの型は、エンティティが静的(動かない)でも動的(動く)でも示すことができる。静的なエンティティの例は、建物を含むことができる。動的なエンティティの例は、自動車、歩行者、バイクなどを含むことができる。
エンティティのプリミティブに関連付けられた姿勢は、座標系(例えば、慣性座標系、走路ベースの座標系、地図ベースの座標系など)における対応するエンティティの場所および/または向きを示すことができる。例えば、エンティティの姿勢を、座標(x,y)および角度オフセット(偏揺れ)を使用して、2次元慣性座標系において記述することができる。同様に、3次元座標系におけるエンティティの姿勢を、向き(横揺れ、縦揺れ、偏揺れ)だけでなく、座標(x,y,z)により記述することができる。または、エンティティの姿勢を、走路ベースの座標系において、座標(s,t,[yaw_offset])を用いて記述することができ、ここで、「s」は、走路の軌道に沿ったオフセットであり、「t」は、走路の軌道と垂直のオフセットであり、yaw_offsetは、走路に沿った走行の方向に関連する。地図ベースの座標系において、姿勢を、セマンティック座標によって定義することができる。セマンティック座標は、他の知られた姿勢に関するエンティティの姿勢に対応することができる。
エンティティ挙動のプリミティブは、エンティティが環境においてどのように振る舞うかを示すことができる。エンティティ挙動のプリミティブは、制限しないが、「止まる」挙動、「動く」挙動、「道路を辿る」挙動、「道路を横切る」挙動、「エンティティに追従する」挙動などを含むことができる。「止まる」挙動は、エンティティを動かすことを止めるよう、シミュレーターに示すことができる。「動く」挙動は、慣性座標に基づいてエンティティを動かすよう、シミュレーターに示すことができる。いくつかの実施例において、「動く」挙動は、速さ(または速度)に関連付けることができる。「道路を辿る」挙動は、地図内の道路に沿ってエンティティを動かし続けるよう、シミュレーターに示すことができる。いくつかの実施例において、「道路を辿る」挙動は、もしエンティティが交差点に接近したならば、エンティティをどのようにナビゲートするかを(すなわち、どの分岐を選ぶかを)シミュレーターに示すことができる。いくつかの実施例において、「道路を辿る」挙動は、速さ(または速度)に関連付けることができる。「道路を横切る」挙動は、地図の道路を横方向に横切ってエンティティを動かすよう、シミュレーターに示すことができる。いくつかの実施例において、「道路を横切る」挙動は、速さ(または速度)に関連付けることができる。「エンティティに追従する」挙動は、第2のエンティティに追従するよう第1のエンティティを動かすべきであることを、シミュレーターに示すことができる。少なくとも1つの実施例において、「エンティティに追従する」挙動は、速さ(または速度)、および第1のオブジェクトと第2のオブジェクトとの間の距離であるオフセット値に関連付けることができる。
上述したエンティティ挙動の名前は、制限でなく、追加および/または代替の実施例において、エンティティ挙動を、同じ名前または異なる名前によって呼ぶことができること注意すべきである。さらにまた、代替の実施例において、エンティティ挙動を、それ自体のプリミティブの代わりにエンティティのプリミティブに、マッピングする、またはその他のやり方により関連付けることができる。
ノイズは、環境におけるガウス雑音または他の遮蔽を表すことができる。すなわち、ノイズプリミティブは、シミュレートされる環境において特定のノイズを生じるよう、シミュレーターに示すことができる。
障害は、エンティティおよび/または環境に関連付けられた不具合を表すことができる。例えば、制限でない実施例として、障害は、エンティティに関連付けられたセンサーの不具合、エンティティに関連付けられたタイヤの不具合、またはエンティティに関連付けられた別のコンポーネントの不具合を表すことができる。障害プリミティブは、シミュレートされる環境においてそれぞれの障害を生じるよう、シミュレーターに示すことができる。
前述の段落は、座標系、条件、動作、エンティティ、エンティティ挙動、ノイズ、障害などを含む、プリミティブの制限でない実施例を説明したが、本明細書において説明されるようなシナリオを生成するために、追加および/または代替のプリミティブを使用することができることに注意すべきである。
シナリオ記述言語
図1は、一実施例における、SDLを用いてシナリオがどのように生成されるかを大まかに例示するブロック図100である。示すように、プリミティブ110は、エンティティ112と、動作114と、条件116と、他のあらゆるプリミティブ型118(例えば、エンティティ挙動、ノイズ、障害など)を含むことができる。シナリオは、シナリオ記述言語120を使用して、高水準に定義することができる。シナリオ記述言語120は、前述のプリミティブ110に基づいてシナリオの容易な作成を可能にする。シナリオ記述言語120は、ユーザーに、1つまたは複数のプリミティブ110についての仕様を定義することを可能にする。例えば、ユーザーは、エンティティ挙動をエンティティ112に割り当てることによりエンティティのある速さ(または速度)を指定するだけでなく、ある寸法、姿勢を有するエンティティ112を(例えば、走路座標、慣性座標、またはセマンティック座標を使用して)定義することもできる。少なくとも1つの実施例において、少なくとも1つのプリミティブを、「自律走行車」として指定することができ、自律的なコントローラーに関連付けられて、シミュレーションの出力が上記の自律的コントローラーによって制御されるだろう自律走行車の挙動を検証するようにすることができる。
加えて、シナリオ記述言語120は、例えば、線形時相論理を使用して、あるプリミティブを互いにどのように関連付けるかを、ユーザーが指定することを可能にする。一実施例において、ユーザーは、シーケンスを指定することによって、プリミティブ間のアソシエーションを定義する。シーケンスは、多数のステップを含み、シミュレーターによって逐次順に実行することができる。少なくとも1つの実施例において、シーケンスは、シーケンスの1つのステップが別のシーケンスのステップであるよう、互いに入れ子にすることができる。制限でない実施例として、シーケンスは、「wait for」条件と、後続する「wait」条件と、後続する「追従」挙動を含むことができる。
シナリオ記述言語120は、ユーザーによって定義されたやり方において組み合わされるプリミティブ110を使用して、1つまたは複数のシナリオ122a〜122nを作成することができる。プリミティブ110が各シナリオ122a〜122nのために組み合わされるやり方を、上述したように、線形時相論理によって定義することができる。少なくとも1つの実施例において、各シナリオ122a〜122nを、例えば結果124a〜124nなどの結果に関連付けることができる。結果は、シミュレーション環境において作成されたシナリオが与えられると、自律的コントローラーがどのように応答すべきかを示すことができる。各々の結果を使用して、自律的コントローラーが、シミュレーション環境において、作成されたシナリオが与えられた結果に矛盾しない応答(例えば、成功)か、結果に矛盾する応答(例えば、失敗)かをするのを、決定することができる。
高水準のシナリオ122a〜122nの各々を、シミュレーションにおいて、プロセッサ(例えば、GPU(グラフィックス処理ユニット)など)を使用して、上記のシミュレーションを実行する多数のコンピューターを使用して、または組み合わせて、実質的に同時および/または並列に実行することができる。だから、多くの結果を、実質的に同時に生成することができる。
図2は、ユーザーが作成することができる例示的なシナリオ200のブロック図を例示する。例示的なシナリオ200は、図1を参照して上述したシナリオ122a〜122nのうちいずれか1つに対応することができる。開始位置210を、図2に示すが、上記の開始位置210を、定義する必要はない。シナリオ200の開始時に、ユーザーは、シミュレーターによってインスタンス化されるための1つまたは複数のプリミティブ220を指定および定義することができる。すなわち、ユーザーは、シナリオのプリミティブ220を定義する命令を提供することができる。図2に例示する例において、上記のプリミティブは、試験自動車222と、観察自動車226とを含む。試験自動車222を、サイズ、交差点に関する位置、速さ(または速度)、動きの方向(時計回り(CW))などを有するとして定義することができる。試験自動車222は、プリミティブ224として表される挙動(「交差点に向かう」)に関連付けることができる。さらに、観察自動車226を、サイズ、交差点に関する位置、速さ(または速度)、動きの方向(反時計回り(CCW))などを有するとして定義することができる。一連の接続として示すが、プリミティブ220を、あらゆる順においてインスタンス化すること、または実質的に同時にインスタンス化することができる。
さらに例示するように、ひとたびインスタンス化されると、シミュレーターに、シーケンス228を実行するように命令することができる。上述したように、シーケンス228は、線形時相論理を使用して、プリミティブ220間のアソシエーションを定義することができる。プリミティブ220およびシーケンス228は、図1を参照して上述したシナリオ記述言語120に対応することができる、シナリオ記述言語230によって定義することができる。シーケンス228は、オプションとして、シーケンス開始232を有することができる。上記のシーケンス開始232は、シーケンス228が開始されようとしていることを、シミュレーターに示すことができる。制限でない実施例において、シーケンス228を、「wait for」条件234、「wait」条件236、および「エンティティに追従する」挙動238として定義することができる。上記のシーケンス228に関連付けられた命令は、最初に試験自動車222が交差点に接近するのを待ち、1秒待ち、次に試験自動車222が観察自動車226に追従するよう、シミュレーターに命令する。
図3は、シミュレーターにおいて実行されるだろう、図2において定義されたシナリオ例300を示す。示すように、大きい方のブロックは、例えば地図などの環境に位置付けられた、試験自動車222を表し、小さい方のブロックは、観察自動車226を表す。ブロックの上方の線320は、試験自動車222の動きを表す。示すように、試験自動車222は、シーケンス228によって規定されたように、交差点310に接近し、待ち、次に、観察自動車226に追従し始める。
直積
上の実施例は、どのようにSDLによりユーザーが単一のシナリオを容易に指定することができるようにするかを示したが、さらに、SDLは、ユーザーによって、より高水準の(すなわち、より一般的な)記述を与えられた多数のシナリオを、ユーザーに、即座に生成することができるようにする。高水準のユーザー記述に基づく多数のシナリオの今述べた作成は、直積と呼ばれる。直積は、テストシナリオを生成するために組み合わされる値を定義する、任意の個数の名づけられた引数を受け入れる。名づけられた各引数は、変数に対応することができる。変数の制限でない実施例は、道路上の車線における位置、時間、路面状態などを含むことができる。いくつかの実施例において、変数は、プリミティブに関連付けることができる。すなわち、プリミティブは、異なるシナリオを生成するために変化させることができる、いくつかの側面に関連付けることができる。名づけられた各引数は、対応する変数についての可能な値のリストを受け取る。少なくとも1つの実施例において、可能な値のリストの可能な値は、可能な値の範囲であることが可能である。そして、値のすべての組み合わせに対して割り当てられたパラメーターを保有する反復変数が、割り当てられる。各反復を、より特定的なシナリオに関連付けることができ、各シナリオを、テストおよび検証のためのシミュレーションにおける使用に対して出力することができる。
式1を、上述した直積の制限でない実施例として、以下に提供する。
式1
パラメーター(変数1=[値1,値2],変数2=[値3,値4])
式1において、パラメーター()は、直積に対応する。変数1および変数2は、変数の例である。直積は、上で説明されたように、任意の数の変数を有することができる。各変数は、1つまたは複数の可能な値を含むことができる。式1において、値1および値2は、変数1のための可能な値であり、値3および値4は、変数2のための可能な値である。シミュレーターは、値の異なる組み合わせに基づいて、異なるシナリオを生成することができる。すなわち、シミュレーターは、可能な値からなる各可能な組み合わせの順列を作成することができる。例えば、表1は、式1の直積に基づいてシナリオの制限でない実施例を生成することができることを示す。
Figure 2020502615

制限でない実施例として、図2および図3に関して上に説明されたシナリオについて考察する。上記のシナリオにおいて、「wait」条件236は、1秒の値に関連付けられる。しかしながら、上述した結合する組み合わせを達成するために、「wait」条件236に関連付けられた時間を、変化させることができる。例えば、時間は、1秒または5秒の値であるすることができる。シナリオにおける第2の変数は、観察自動車226の速さ(または速度)に対応することができる。例えば、観察自動車226の速さ(または速度)を、変化させることができる。観察自動車226は、時速10マイル(mph)または30mphで走行していることが可能である。上述した結合する組み合わせに従うと、第1のシナリオは、観察自動車226が10mphで走行しているときに、1秒の値に関連付けられた「wait」条件236に対応することができ、第2のシナリオは、観察自動車226が10mphで走行しているときに、5秒の値に関連付けられた「wait」条件236に対応することができ、第3のシナリオは、観察自動車226が30mphで走行しているときに、1秒の値に関連付けられた「wait」条件236に対応することができ、第4のシナリオは、観察自動車226が30mph)で走行しているときに、5秒の値に関連付けられた「wait」条件236に対応することができる。
図4A〜4Eは、直積の能力を示す。制限でない実施例として、開始する位置の範囲と、インスタンス化されるための数々の他のプリミティブ(例えば、関連付けられた寸法、速度、およびカテゴリを有するエンティティ)の範囲とをユーザーが指定する、直積について考察する。例えば、直積の第1の変数は、開始する位置に対応することができ、異なる開始する位置に関連付けられた可能な値が、第1の変数に関連付けられ、直積の第2の変数は、数々のプリミティブに対応することができ、数々のプリミティブに関連付けられた可能な値が、第2の変数に対応することができる。
図4A〜4Eに示すように、多数のシナリオを、単一の直積によって作成することができ、すべては、単一のT字路と、単一の試験自動車222とを有することによってカテゴライズされる。図4Aによって表されるシナリオ400は、第1の開始する位置において、試験自動車222を含む。2人の歩行者402A、402Bが存在し、他の自動車は存在しない。図4Bによって表されるシナリオ404は、第2の開始する位置において、試験自動車222を含み、2つの他の自動車406A、406Bが存在する。図4Cによって表されるシナリオ408は、第3の開始する位置において、試験自動車222を含み、1つの他の自動車410が存在する。図4Dによって表されるシナリオ412は、第4の開始する位置において、試験自動車222を含み、他の自動車または歩行者は存在しない。図4Eによって表されるシナリオ414は、第5の開始する位置において、試験自動車222を含み、1つの他の自動車416が存在する。先に注意したように、多くの他のシナリオの中のシナリオの各々を、コンピューターコードの単一のラインを使用して作成することができる。
少なくとも1つの実施例において、直積に含まれる変数を、検証およびテストのためにどのシナリオが作成されるかを制限するよう、最適化することができる。追加および/または代替の実施例において、生成された値の組み合わせをフィルタリングして、検証およびテストのためにどのシナリオが作成されるかを制限するために、発見的手法を利用することができる。少なくとも1つの実施例において、直積に含まれる変数の組み合わせを、「有用なシナリオ」に関連付けるために決定された変数に制限することができ、機械学習アルゴリズムによって決定することができる。
機械学習は、受け取ったデータから学習する1つまたは複数のプログラムということができる。例えば、機械学習メカニズムは、例示的な入力から作成されるデータモデルを構築し、変更し、または利用することができ、データモデルを使用して、予測または決定を行う。現在の実施形態において、機械学習メカニズムを使用して、シナリオおよび/または値の組み合わせが冗長な結果を出力するかどうかを予測することができる。すなわち、機械学習メカニズムは、(事前定義された基準ごとに)どのシナリオが合格(すなわち、成功)であるか、または不合格(すなわち、不成功)であるかに関連付けられたデータをレバレッジすることができ、どのシナリオセットが集合的に合格であり、または不合格であるかを決定することができる。上述の決定に基づいて、機械学習メカニズムは、シナリオセットのシナリオは冗長であると決定することができる。データモデルを、教師あり学習アルゴリズム(例えば、人工ニューラルネットワーク、ベイジアン統計、サポートベクトルマシン、決定木、分類器、k−最近傍など)、教師なし学習アルゴリズム(例えば、人工ニューラルネットワーク、相関ルール学習、階層的クラスタリング、クラスタ分析など)、半教師あり学習アルゴリズム、ディープラーニングアルゴリズムなどを使用してトレーニングすることができる。
少なくとも1つの実施例において、検証およびテストのためにどのシナリオが作成されるかを制限することにより、必要とされる計算の回数を減らすことができる。すなわち、検証およびテストのためにどのシナリオが作成されるかを制限することにより、有用な情報を出力する可能性が高いシナリオに実行される、必要とされる計算の回数を減らすことができる。
コンピューター化されたシステム
手短に図5を参照すると、コンピューター化されたシステム500は、本明細書において説明される技法を実装することができる例示的なコンピューター化されたシステムとして示す。コンピューター化されたシステム500は、ストレージ560と、プロセッサ570と、メモリ540と、オペレーティングシステム520とを有する、コンピューターシステム510を示す。ストレージ560、プロセッサ570、およびオペレーティングシステム520は、通信インフラストラクチャ550を介して、通信可能に結合することができる。オプションとして、コンピューターシステム510は、I/Oデバイス530を介してユーザーと、および通信インフラストラクチャ550を介してネットワーク580と対話することができる。オペレーティングシステム520は、アプリケーション502を制御するために、他のコンポーネントと対話することができる。アプリケーション502は、上で説明されたSDLに基づいてシナリオを生成するよう、プロセッサ570によって実行できることが可能である、シミュレーションアプリケーション504と、シミュレーション環境において作成されたシナリオに応答するよう、プロセッサ570によって実行できること可能である、自律的コントローラー506とを含むことができる。少なくとも1つの実施例において、自律的コントローラー506は、上で説明したように、さらに、自律走行車上において実行されるソフトウェアに対応する。したがって、自律的コントローラー506の応答は、自律走行車が実際の環境においてどのように応答する可能性が高いかを表すことができる。
本明細書において説明されるシステムおよび方法は、ソフトウェアもしくはハードウェア、またはあらゆる組み合わせにおいて実装することができる。本明細書において説明されるシステムおよび方法は、物理的もしくは論理的に互いに別々であることが可能であり、またはそうでなくてよい1つまたは複数のコンピューティングデバイスを使用して、実装することができる。方法を、オンプレミス型ハードウェア、オンプレミス型仮想システム、またはホスティング型プライベートインスタンスのいずれかとして配置されるコンポーネントによって実行することができる。加えて、本明細書において説明される方法の様々な側面は、他の機能に組み合わせる、または結合させることができる。
本明細書において説明される技法を実装するための例示的なコンピューター化されたシステムを、図5に示す。プロセッサまたはコンピューターシステムは、本明細書において説明される技法のうちいくつかまたはすべてを特に実行するよう、構成することができる。いくつかの実施例において、本明細書に説明される技法を、1つまたは複数のコンピューターまたはプロセッサによって、部分的または全体的に自動化することができる。本明細書において説明される技法を、ハードウェア、ファームウェア、および/またはソフトウェアのいずれかの組み合わせを使用して実装することができる。本方法(またはあらゆる部分もしくは機能)を、ハードウェア、ソフトウェア、ファームウェア、または組み合わせを使用して実装することができ、1つまたは複数のコンピューターシステムまたは他の処理システムにおいて実装することができる。いくつかの実施例において、示されたシステム要素は、単一のハードウェアデバイスに組み合わせることができ、または多数のハードウェアデバイスに分離することができる。もし多数のハードウェアデバイスを使用するならば、ハードウェアデバイスを、物理的に互いに接近して、または互いに遠く離して配置することができる。説明され、例示される方法の実施例は、実例であり、制限でないことを意図する。例えば、方法のステップのうちいくつかまたはすべてを、異なる実施例において、組み合わせ、再配置し、および/または省略することができる。
例示的な一実施例において、本明細書に説明される技法を、オペレーティングシステム(O/S)520を介して本明細書に説明される機能性を実施することが可能な1つまたは複数のコンピューターシステムに向けることができる。例示的なコンピューティングシステムは、制限しないが、あらゆるオペレーティングシステム、例えば、制限しないが、Microsoft(商標)Windows(商標)などを実行するPC(パーソナルコンピューター)システムであるすることができる。しかしながら、本明細書において説明される技法は、これらのプラットフォームに制限されない。代わりに、本明細書において説明される技法は、あらゆる適切なオペレーティングシステムを実行するあらゆる適切なコンピューターシステム上に実装することができる。さらに、本明細書において説明される技法の他のコンポーネント、例えば、制限しないが、コンピューティングデバイス、通信デバイス、モバイルフォン、テレフォニーデバイス、電話、PDA(パーソナルデジタルアシスタント)、PC(パーソナルコンピューター)、ハンドヘルドPC、iTV(対話型テレビジョン)、DVD(デジタルビデオレコーダー)、クライアントワークステーション、シンクライアント、シッククライアント、プロキシサーバー、ネットワーク通信サーバー、リモートアクセスデバイス、クライアントコンピューター、サーバーコンピューター、ルーター、ウェブサーバー、データ、メディア、オーディオ、ビデオ、テレフォニーまたはストリーミング技術サーバーなどは、コンピューティングデバイスを使用して実装することができる。サービスを、例えば、制限はしないが、iTV(対話型テレビジョン)、VOD(ビデオオンデマンドシステム)を使用して、およびDVR(デジタルビデオレコーダー)、または他のオンデマンド視聴システムを介して、オンデマンドにより提供することができる。
コンピューティングシステム510は、1つまたは複数のプロセッサ570を含むことができる。プロセッサ570は、例えば、制限しないが、通信バス、クロスオーバーバー、またはネットワークなどの通信インフラストラクチャ550に接続することができる。処理およびプロセッサは、同じ物理的はロケーションに配置する必要はない。言い換えると、処理は、例えば、LANまたはWAN接続を介した1つまたは複数の地理的に遠くのプロセッサにおいて実行することができる。コンピューティングシステムは、ディスプレイユニット上の表示のために、通信インフラストラクチャからグラフィックス、テキスト、および他のデータを転送することができるディスプレイインターフェースを含むことができる。
さらに、コンピューティングシステム510は、制限はしないが、メインメモリ、RAM(ランダムアクセスメモリ)、およびセカンダリメモリなどを含む、メモリ540を含むことができる。セカンダリメモリは、例えば、ハードディスクドライブ、および/または例えばコンパクトディスクドライブCD−ROMなどのリムーバブルストレージドライブを含むことができる。リムーバブルストレージドライブは、リムーバブルストレージユニットから読み取ること、および/またはリムーバブルストレージユニットに書き込むことができる。理解することができるように、リムーバブルストレージユニットは、コンピュータソフトウェアおよび/またはデータを格納しているコンピューター使用可能な記憶媒体を含むことができる。いくつかの実施例において、マシンアクセス可能な媒体は、コンピューターによってアクセス可能なデータを格納するのに使用されるあらゆるストレージデバイスということができる。マシンアクセス可能な媒体の例は、例えば、制限はしないが、磁気ハードディスク、フロッピーディスク、CD−ROM(コンパクトディスクリードオンリメモリ)もしくはDVD(デジタル多用途ディスク)などの光ディスク、磁気テープ、および/またはメモリチップなどを含むことができる。
さらに、プロセッサ570は、例えばデータを格納するための1つまたは複数のデータストレージデバイスなどのストレージ560を含むことができ、またはストレージ560と通信するように作動可能に結合することができる。上記のデータストレージデバイスは、制限でない実施例として、(内臓型ハードディスクおよびリムーバブルディスクを含む)磁気ディスク、光磁気ディスク、光ディスク、リードオンリーメモリ、ランダムアクセスメモリ、および/またはフラッシュストレージを含むことができる。さらに、コンピュータープログラム命令およびデータを有形に具現するのに適したストレージデバイスは、例えば、EPROM、EEPROM、およびフラッシュメモリデバイスなどの半導体メモリデバイス、例えば、内臓型ハードディスクおよびリムーバブルディスクなどの磁気ディスク、光磁気ディスク、ならびにCD−ROMおよびDVD−ROMディスクを含む、すべての形の不揮発性メモリを含むことができる。プロセッサおよびメモリは、ASIC(特定用途向け集積回路)によって補完すること、またはASICに組み込むことができる。
加えて、および/または代替えとして、ストレージ560は、コンピューター化されたデータストレージシステムであることが可能である。データストレージシステムは、非リレーショナルデータストア、または例えばMySQL(商標)もしくは他のリレーショナルデータベースなどのリレーショナルデータストアを含むことができる。他の物理的および論理的データベース型を、使用することができる。データストアは、例えば、Microsoft SQL Server(商標)、Oracle(商標)、IBM DB2(商標)、SQLITE(商標)、またはリレーショナルもしくは別のやり方のあらゆる他のデータベースソフトウェアなどの、データベースサーバーであることが可能である。データストアは、構文タグを識別する情報、および構文タグに基づいて操作するのに必要なあらゆる情報を格納することができる。いくつかの実施例において、処理システムは、オブジェクト指向プログラミングを使用することができ、オブジェクトにデータを格納することができる。今述べた実施例において、コンピューティングシステム510は、リレーショナルデータベースにデータオブジェクトを格納するために、ORM(オブジェクト−リレーショナルマッパー)を使用することができる。本明細書において説明されるシステムおよび方法を、あらゆる個数の物理的なデータモデルを使用して実装することができる。一実施例において、RDBMSを、使用することができる。今述べた例において、RDBMSのテーブルは、座標を表す列を含むことができる。経済システムの場合において、会社、製品などを表すデータを、RDBMSのテーブルに格納することができる。テーブルは、それらの間の事前定義された関係を有することができる。さらに、テーブルは、座標に関連付けられた付属物を有することができる。
代替の例示的な例において、メモリ540は、コンピュータープログラムまたは他の命令をコンピューティングシステム510にロードすることを可能にするための他の類似のデバイスを含むことができるセカンダリメモリを含むことができる。上記のデバイスは、例えば、リムーバブルストレージユニットおよびインターフェースを含むことができる。上記の例は、(例えば、制限しないが、ビデオゲームデバイスに見出されるものなどの)プログラムカートリッジおよびカートリッジインターフェース、(例えば、制限しないが、EPROM(erasable programmable ROM)またはPROM(プログラマブルPROM)および関連付けられたソケット、ならびにソフトウェアおよびデータをリムーバブルストレージユニットからコンピューターシステムに転送することを可能にすることができる、他のリムーバブルストレージユニットおよびインターフェースなどの)リムーバブルメモリチップを含むことができる。
さらに、コンピューティングシステム510は、I/O(入力/出力)デバイス530を含むことができる。I/Oデバイス530の例は、例えば、制限しないが、マウス、または例えばデジタイザなどの他のポインティングデバイス、およびキーボード、または他のデータ入力デバイス(図示せず)などの入力デバイスを含むことができる。I/Oデバイス530の別の例は、例えば、制限しないが、ディスプレイおよびディスプレイインターフェースなどの出力デバイスを含むことができる。さらにまた、I/Oデバイス530は、制限はしないが、通信インターフェース、ケーブル、および通信経路などを含むことができる。今述べたデバイスは、制限はしないが、ネットワークインターフェースカード、およびモデムを含むことができる。通信インターフェースは、ソフトウェアおよびデータをコンピューターシステムと外部デバイスとの間において転送することを可能にすることができる。
1つまたは複数の実施例において、本実施例は、例えばネットワーク580など、1つまたは複数のコンピュータネットワークの環境において実施される。ネットワーク580は、プライベートネットワーク、もしくはパブリックネットワーク(例えば、以下で説明されるような、インターネット)、または両方の組み合わせを含むことができる。ネットワーク580は、ハードウェア、ソフトウェア、または両方の組み合わせを含む。
電気通信指向の観点から、ネットワーク580は、通信設備によって相互接続されたハードウェアノードのセットとして説明することができ、1つまたは複数のプロセス(ハードウェア、ソフトウェア、または組み合わせ)が、上記の各ノードにおいて機能する。プロセスは、プロセス間通信経路を使用して、それらの間の通信経路を介して、互いに相互通信を行い、情報を交換することができる。今述べた経路上に、適切な通信プロトコルを、使用する。
本実施例に従った例示的なコンピューターおよび/または電気通信ネットワーク環境は、ハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせを含むことができるノードを含むことができる。ノードは、通信ネットワークを介して相互接続されることができる。各ノードは、ノード内に組み込まれるプロセッサによって実行可能な1つまたは複数の処理を含むことができる。例えば、単一の処理が、多数のプロセッサによって実行されることができ、または多数の処理は、単一のプロセッサによって実行されることができる。加えて、ノードの各々は、ネットワークと外部世界との間のインターフェースポイントを提供することができ、サブネットワークの集まりを含むことができる。
例示的な実施例において、プロセスは、あらゆる通信プロトコルを通して通信をサポートするプロセス間通信経路を通して、互いに通信することができる。経路は、順次的または並列に、連続的または断続的に機能することができる。経路は、多くのコンピューターによって使用される標準的な並列命令セットに加えて、通信ネットワークに関して本明細書において説明される、通信規格、プロトコル、または技術のいずれかを使用することができる。
ノードは、処理機能を実行することが可能なあらゆるエンティティを含むことができる。例とともに使用されることができる上記のノードの例は、(例えば、パーソナルコンピューター、ワークステーション、サーバー、もしくはメインフレームなどの)コンピューター、(PDA(パーソナルデジタルアシスタント)、処理能力を有するモデムセルフォン、BlackBerry(商標)デバイスを含む無線電子メールデバイスなどの)ハンドヘルド無線デバイスおよび有線デバイス、(例えば、スキャナ、プリンター、ファクシミリ機、もしくは多機能文書マシンなどの)文書処理デバイス、または説明されたようなプロセッサの集まりがそれらに接続される(例えば、ローカルエリアネットワークもしくはワイドエリアネットワークなどの)複雑なエンティティを含む。例えば、本明細書において説明される本技法についての文脈において、ノード自体が、WAN(ワイドエリアネットワーク)、LAN(ローカルエリアネットワーク)、VPN(仮想プライベートネットワーク)などのプライベートネットワーク、またはネットワークの集まりであることができる。
ノード間の通信は、通信ネットワークによって可能にされることができる。ノードは、通信ネットワークと連続的または断続的に接続されることができる。例として、本明細書において説明される本技法についての文脈において、通信ネットワークは、適切な帯域幅および情報セキュリティを提供するデジタル通信インフラストラクチャであることが可能である。
通信ネットワークは、あらゆる型の規格、プロトコル、または技術を使用する、あらゆる周波数における、有線通信能力、無線通信能力、または両方の組み合わせを含むことができる。加えて、本実施例において、通信ネットワークは、プライベートネットワーク(例えば、VPN)、またはパブリックネットワーク(例えば、インターネット)であることが可能である。
通信ネットワークによって使用される例示的な無線プロトコルおよび技術の非包括的なリストは、Bluetooth(商標)、GPRS(汎用パケット無線サービス)、CDPD(セルラデジタルパケットデータ)、MSP(モバイルソリューションプラットフォーム)、MMS(マルチメディアメッセージングサービス)、WAP(ワイヤレスアプリケーションプロトコル)、CDMA(符号分割多元接続)、SMS(ショートメッセージサービス)、WML(ワイヤレスマークアップ言語)、HDML(ハンドヘルドデバイスマークアップ言語)、BREW(無線用バイナリランタイム環境)、RAN(無線アクセスネットワーク)、およびPS−CN(パケット交換コアネットワーク)を含むことができる。様々な世代の無線技術も含まれる。通信ネットワークによって使用される主に有線プロトコルおよび技術の例示的な非包括的なリストは、ATM(非同期転送モード)、EIGRP(拡張インテリアゲートウェイルーティングプロトコル)、FR(フレームリレー)、HDLC(ハイレベルデータリンク制御)、ICMP(インターネット制御メッセージプロトコル)、IGRP(インテリアゲートウェイルーティングプロトコル)、IPX(ネットワーク間パケット交換)、ISDN、PPP(ポイントツーポイントプロトコル)、TCP/IP(伝送制御プロトコル/インターネットプロトコル)、RIP(ルーティング情報プロトコル)、およびUDP(ユーザーデータグラムプロトコル)を含む。当業者が認識するように、あらゆる他の知られたまたは予想される無線または有線プロトコルおよび技術が使用されることができる。
本明細書において説明される本技法の実施例は、本明細書における作動を実行するための装置を含むことができる。装置は、所望の目的のために特別に構成されることができ、またはそれは、デバイス内に記憶されたプログラムによって選択的にアクティブ化または再構成される汎用デバイスを含むことができる。
1つまたは複数の実施例において、本実施例は、マシン実行可能命令において具現される。命令は、命令を用いてプログラムされる処理デバイス、例えば、汎用または専用プロセッサに、本明細書において説明される本技法のステップを実行させるために使用されることができる。代替えとして、本明細書において説明される本技法のステップは、ステップを実行するための配線論理を含む特定のハードウェアコンポーネントによって、またはプログラムされるコンピュータコンポーネントおよびカスタムハードウェアコンポーネントのあらゆる組み合わせによって実行されることができる。例えば、本明細書において説明される本技法は、以下で説明されるように、コンピュータープログラム製品、アプリケーションなどとして提供されることができる。環境において、実施例は、命令がその上に記憶されたマシン読み取り可能な媒体を含むことができる。命令は、例示的な本実施例に従って処理または方法を実行するよう、あらゆる1つまたは複数のプロセッサ(または他の電子デバイス)をプログラムするために使用されることができる。加えて、本明細書において説明される本技法は、ダウンロードされ、コンピュータープログラム製品上に記憶されることもできる。ここで、プログラムは、搬送波または他の伝搬媒体内に具現されるデータ信号によって、通信リンク(例えば、モデムまたはネットワーク接続)を介して、リモートコンピューター(例えば、サーバー)から要求しているコンピューター(例えば、クライアント)に転送されることができ、最終的に、上記の信号は、後続の実行のためにコンピューターシステム上に記憶されることができる。
方法は、コンピューターまたはあらゆる命令実行システムによって使用するための、またはそれらと関連したプログラムコードを提供する、コンピューター使用可能なまたはコンピューター読み取り可能な記憶媒体から入手可能なコンピュータープログラム製品に実装することができる。コンピューター使用可能なまたはコンピューター読み取り可能な記憶媒体は、コンピューターもしくは命令実行システム、装置、またはデバイスによって使用するための、またはそれらと関連したプログラムを含むこと、または記憶することができる、あらゆる装置であることができる。アプリケーション502は、ファンクション、タスク、アクティビティなどを実行するように指定されたコンピュータープログラム製品であることが可能である。いくつかの実施例において、アプリケーション502は、1つまたは複数のモジュールを含むことができ、それらは、一般に、それらが指定された入力を使用して有用なデータまたは他の出力を生成することができるように機能する。
対応するプログラムコードを記憶および/または実行するのに適したデータ処理システムは、メモリ要素などのコンピューター化されたデータストレージデバイスに直接的または間接的に結合された少なくとも1つのプロセッサを含むことができる。(制限はしないが、キーボード、ディスプレイ、ポインティングデバイスなどを含む)I/O(入力/出力)デバイスが、システムに結合されることができる。データ処理システムが、介在するプライベートまたはパブリックネットワークを通して、他のデータ処理システム、またはリモートプリンターもしくはストレージデバイスに結合されることを可能にするために、ネットワークアダプタがシステムに結合されることもできる。ユーザーとの対話を提供するために、LCD(液晶ディスプレイ)などのディスプレイデバイス、または情報をユーザーに表示するための別の種類のモニター、ならびにユーザーがそれによって入力をコンピューターに提供することができる、キーボード、およびマウスまたはトラックボールなどの入力デバイスを用いて、特徴がコンピューター上において実施されることができる。
コンピュータープログラムは、コンピューターにおいて直接的または間接的に使用されることができる命令のセットであることができる。本明細書において説明されるシステムおよび方法は、コンパイラ型またはインタープリタ型言語を含む、Flash(商標)、JAVA(商標)、C++、C、C#、Python、Visual Basic(商標)、JavaScript(商標)PHP、XML、HTMLなどのプログラミング言語、またはプログラミング言語の組み合わせを使用して実装することができ、スタンドアロンプログラム、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境において使用するのに適した他のユニットを含むあらゆる形において配備されることができる。ソフトウェアは、制限はしないが、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むことができる。プログラミングモジュール間のインターフェースを実施する際に、SOAP/HTTPなどのプロトコルが使用されることができる。本明細書において説明されるコンポーネントおよび機能性は、仮想化または非仮想化環境において動作する、ソフトウェア開発に適したあらゆるプログラミング言語を使用する、制限しないが、Microsoft Windows(商標)、Apple(商標)Mac(商標)、iOS(商標)、Unix(商標)/X−Windows(商標)、Linux(商標)などの異なるバージョンを含む、あらゆるデスクトップオペレーティングシステム上に実装することができる。システムは、Ruby on Railsなどのウェブアプリケーションフレームワークを使用して実装することができるだろう。
命令からなるプログラムの実行に適したプロセッサは、制限はしないが、汎用および専用マイクロプロセッサ、ならびにあらゆる種類のコンピューターの唯一のプロセッサまたは多数のプロセッサもしくはコアのうち1つを含む。プロセッサは、例えば、リードオンリーメモリ、ランダムアクセスメモリ、その両方、または本明細書において説明されるデータストレージデバイスのあらゆる組み合わせなどのコンピューター化されたデータストレージデバイスから、命令およびデータを受け取り、記憶することができる。プロセッサは、電子デバイスの作動および実行を制御するように作動する、あらゆる処理回路または制御回路を含むことができる。
本明細書において説明されるシステム、モジュール、および方法は、ソフトウェア要素またはハードウェア要素のあらゆる組み合わせを使用して実装することができる。本明細書において説明されるシステム、モジュール、および方法は、単独で、または互いに組み合わさって作動する、1つまたは複数の仮想マシンを使用して実装することができる。物理的なコンピューティングマシンプラットフォームを、ハードウェアコンピューティングプラットフォームまたはホスト上において実行する仮想化ソフトウェアの制御下で実行される仮想マシンにカプセル化するために、あらゆる適用可能な仮想化ソリューションが使用されることができる。仮想マシンは、仮想システムハードウェアおよびゲストオペレーティングシステムソフトウェアの両方を有することができる。
本明細書において説明されるシステムおよび方法は、データサーバなどのバックエンドコンポーネントを含むコンピューターシステム、またはアプリケーションサーバもしくはインターネットサーバなどのミドルウェアコンポーネントを含むコンピューターシステム、またはグラフィカルユーザインターフェースもしくはインターネットブラウザを有するクライアントコンピューターなどのフロントエンドコンポーネントを含むコンピューターシステム、またはあらゆる組み合わせにおいて実装することができる。システムのコンポーネントは、通信ネットワークなど、デジタルデータ通信のあらゆる形態または媒体によって接続されることができる。通信ネットワークの例は、例えば、LAN、WAN、ならびにインターネットを形成するコンピューターおよびネットワークを含む。
本明細書において説明される技法の1つまたは複数の例は、ハンドヘルドデバイス、マイクロプロセッサシステム、マイクロプロセッサベースまたはプログラマブル家電製品、ミニコンピューター、メインフレームコンピューターなどを含む、他のコンピューターシステム構成を用いて実施されることができる。本明細書において説明される技法は、ネットワークを通してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施されることもできる。
「コンピュータープログラム媒体」および[コンピューター読み取り可能な媒体]という用語は、例えば、制限しないが、リムーバブルストレージデバイス、ハードディスクドライブ内に取り付けられたハードディスクなどの媒体を一般に指すために使用されることができる。これらのコンピュータープログラム製品は、ソフトウェアをコンピューターシステムに提供することができる。本明細書において説明される技法は、上記のコンピュータープログラム製品を対象とすることができる。
「一実施例」、「実施例」、「様々な実施例」などに対する言及は、そのように説明される本明細書において説明される技法の例が、特定の特徴、構造、または特性を含むことができることを示すことができるが、あらゆる実施例が、必ずしも特定の特徴、構造、または特性を含むわけではない。「一実施例において」または「例示的な実施例において」という句が繰り返し使用される場合、それは、同じ実施例であるすることもできるが、必ずしも同じ実施例に言及しているわけではない。
説明および請求項において、「結合される」および「接続される」という語が、それらの活用形とともに、使用されることができる。これらの語は、互いに同義語として意図されることはできないことを理解すべきである。むしろ、特定の実施例において、「接続される」は、2つ以上の要素が、互いに物理的または電気的に直接接触していることを示すために使用されることができる。「結合される」は、2つ以上の要素が、物理的または電気的に直接接触していることを意味することができる。しかしながら、「結合される」は、2つ以上の要素が、互いに直接接触していないが、それでもなお互いに協力または相互作用することを意味することもできる。
アルゴリズムは、ここでは、および一般に、所望の結果をもたらす動作または動作の自己矛盾のないシーケンスであると見なされることができる。これらは、物理的量の物理的操作を含む。必ずではないが、通常、これらの量は、記憶され、転送され、組み合わされ、比較され、および他のやり方により操作されることが可能な電気的または磁気的信号の形態をとる。主に共通使用の理由で、これらの信号をビット、値、要素、シンボル、文字、項、または数などと呼ぶことが時には便利であることが分かっている。しかしながら、これらおよび同様の語のすべては、適切な物理的量に関連付けられるべきであり、これらの量に適用される便利なラベルであるにすぎないことを理解すべきである。
他に別段の指摘がない限り、本明細書全体にわたって、「処理する」、「計算する」、「算出する」、または「決定する」などの語は、コンピューティングシステムのレジスタおよび/またはメモリ内の電子的など物理的量として表されるデータを、コンピューティングシステムのメモリ、レジスタ、または他の上記の情報ストレージ、送信デバイスまたはディスプレイデバイス内の物理的量として同様に表される他のデータにするように操作および/または変換する、コンピューターもしくはコンピューティングシステムまたは類似の電子的なコンピューティングデバイスの作動および/または処理に言及していることが理解されることができる。
同様に、「プロセッサ」という用語は、レジスタおよび/またはメモリからの電子データを処理して、電子データを、レジスタおよび/またはメモリ内に記憶されることができる他の電子データに変換する、あらゆるデバイスまたはデバイスの部分を指すことができる。「コンピューティングプラットフォーム」は、1つまたは複数のプロセッサを有することができる。本明細書において使用される場合、「ソフトウェア」処理は、例えば、タスク、スレッド、およびインテリジェントエージェントなど、仕事を経時的に実行するソフトウェアおよび/またはハードウェアエンティティを含むことができる。また、処理は、順次的または並列に、連続的または断続的に命令を実施するための多数の処理を指すことができる。本明細書において、「システム」および「方法」という語は、システムが1つまたは複数の方法を具現することができ、方法がシステムと見なされることができる限りにおいて、交換可能に使用される。
例示的な処理
図6〜8は、本明細書において説明されるSDLを利用して、シミュレーション環境においてシナリオを構成する例示的な処理を例示する。図6〜8は、図1〜5の文脈において説明されるが、上記の文脈に制限しない。
図6は、シミュレーション環境においてシナリオを構成する例示的な処理600を例示する。
ブロック602は、シミュレートされる環境におけるシナリオにおいてインスタンス化されるためのプリミティブを定義する命令を受け取ることを例示する。少なくとも1つの実施例において、ユーザーは、SDLを使用して、シナリオにおいてインスタンス化されるための1つまたは複数のプリミティブを定義することができる。シミュレーションアプリケーション504は、シナリオにおいてインスタンス化されるための1つまたは複数のプリミティブを定義する命令を受け取ることができる。上述したように、プリミティブは、シミュレーション環境の特定の側面を定義する。プリミティブの制限でない実施例は、座標系、条件、動作、エンティティ、エンティティ挙動、ノイズ、障害などを含む。少なくとも1つの実施例において、シミュレーションアプリケーション504は、1つまたは複数のプリミティブについての詳細を受け取ることができる。例えば、ユーザーは、SDLを使用して、エンティティ挙動をエンティティに割り当てることによりエンティティのある速さ(または速度)を指定するだけでなく、(例えば、走路座標、慣性座標、またはセマンティック座標を使用して)ある寸法、姿勢を有するエンティティ112を定義することができる。少なくとも1つの実施例において、少なくとも1つのプリミティブは、「自律走行車」として指定することができ、上述したようにシミュレーションの出力が自律的コントローラーによって制御される自律走行車の挙動を検証するよう、自律的コントローラー506に関連付けることができる。
ブロック604は、個々のプリミティブ間のアソシエーションを定義するシーケンスを定義する命令を受け取ることを例示する。上述したように、SDLは、あるプリミティブが、例えば、線形時相論理を使用して、互いにどのように関連付けられるかをユーザーが指定することを可能にする。一実施例において、ユーザーは、シーケンスを指定することによって、プリミティブ間のアソシエーションを定義する。上記の実施例において、シミュレーションアプリケーション504は、シーケンスを定義する命令を受け取ることができる。少なくとも1つの実施例において、シーケンスは、シミュレーションアプリケーション504によって逐次順に実行されることになる多数のステップを含むことができる。少なくとも1つの実施例において、シーケンスの1つのステップが別のシーケンスであるように、シーケンスは別のものを含むことができる。
ブロック606は、シナリオを生成するために、環境内においてシーケンスをインスタンス化することを例示する。少なくとも1つの実施例において、シミュレーションアプリケーション504は、シナリオを生成するために、環境内においてシーケンスをインスタンス化するための、1つまたは複数のプロセッサ(例えば、プロセッサ570)によって実行可能な命令を含むことができる。上述したように、いくつかの実施例において、環境は、地図であることが可能である。地図は、2次元または3次元であることが可能である。2次元および/または3次元の地図は、例えば、制限しないが、(例えば交差点などの)トポロジー、街路、山脈、道路、地形、および一般的な環境などの環境についての情報を提供することが可能なあらゆる個数のデータ構造であることが可能である。シナリオは、地図内においてシーケンスをインスタンス化するシミュレーションアプリケーション504に少なくとも部分的に基づいて生成することができる。
ブロック608は、シナリオに関連付けられた情報を決定することを例示する。地図内においてシーケンスをインスタンス化することに少なくとも部分的に基づいて、シミュレーション環境において作成されたシナリオを与えられた自律的コントローラー506がどのように応答するかに基づく様々な情報を、学習することができる。上述したように、さらに、自律的コントローラー506は、自律走行車上において実行されるソフトウェアに対応することができる。地図内においてシーケンスをインスタンス化することに少なくとも部分的に基づいて、自律的コントローラー506が上記の自律走行車を安全に制御することができることを検証するために、自律的コントローラー506がどのように応答するかに関する情報を、学習することができる。追加および/または代替の実施例において、地図内においてシーケンスをインスタンス化することに少なくとも部分的に基づいて、自律的コントローラー506に基づいて走行する自律走行車の制約についての情報を、学習することができる。例えば、地図内においてシーケンスをインスタンス化することに少なくとも部分的に基づいて、路面状態、周囲ノイズ、欠陥部品などを考慮して、自律走行車の作動空間を理解するために、シミュレーションを、使用することができる。また、情報は、自律走行車の作動および設計を改善するためのフィードバックを生成するために有用であることが可能である。例えば、いくつかの実施例において、地図内においてシーケンスをインスタンス化することに少なくとも部分的に基づいて、自律的コントローラー506において必要とされる冗長性の量を決定するための、または学習されたことに基づいて自律的コントローラー506の挙動をどのように変更するかを決定するための情報を、学習することができる。
図7は、シナリオ記述言語を使用してユーザーによって定義されたようなプリミティブを結合して組み合わせることによって多数のシナリオを生成する例示的な処理700を例示する。
ブロック702は、プリミティブの可能な組み合わせのサブセットを定義する命令を受け取ることを例示する。上述したように、直積は、テストシナリオを生成するために組み合わされる値を定義する、あらゆる個数の名づけられた引数を受け入れる。名づけられた各引数は、変数に対応することができる。いくつかの実施例において、変数は、プリミティブに関連付けることができる。すなわち、プリミティブは、異なるシナリオを生成するために変化させることができるいくつかの側面に関連付けることができる。少なくとも1つの実施例において、名づけられた各引数は、対応する変数についての可能な値のリストを受け取る。少なくとも1つの実施例において、ユーザーは、名づけられた引数と、名づけられた各引数についての可能な値とを定義することができる。ユーザーによって定義された直積の制限でない実施例は、式1を参照して上に示す。シミュレーションアプリケーション504は、名づけられた引数と、名づけられた各引数についての可能な値とを受け取ることができる。
ブロック704は、プリミティブの各組み合わせの順列を作成することを例示する。シミュレーションアプリケーション504は、値のあらゆる組み合わせのために割り当てられたパラメーターを保有する反復変数を割り当てることができる。すなわち、シミュレーションアプリケーション504は、プリミティブに関連付けられた可能な値の組み合わせについての順列を生成することができる。直積からもたらされる順列の制限でない実施例は、表1を参照して上に示す。
ブロック706は、環境内において順列のうちの各順列をインスタンス化することを例示し、各順列はシナリオに対応する。少なくとも1つの実施例において、シミュレーションアプリケーション504は、多数のシナリオを生成するために、環境内において、直積を考慮して、シーケンスをインスタンス化するための、1つまたは複数のプロセッサ(例えば、プロセッサ570)によって実行可能な命令を含むことができる。上述したように、いくつかの実施例において、環境は、地図であることが可能である。各順列は、異なるシナリオを生成することができる。すなわち、可能な値の様々な順列を考慮して、地図内においてシーケンスをインスタンス化するシミュレーションアプリケーション504に少なくとも部分的に基づいて、多数のシナリオを、生成することができる。そして、各反復は、より特定的なシナリオに関連付けることができる。
ブロック708は、各シナリオについての結果を決定することを例示する。少なくとも1つの実施例において、シミュレーションアプリケーション504は、テストおよび検証のためのシミュレーションにおいて使用する各シナリオを出力することができる。上述したように、地図内において順列をインスタンス化することに少なくとも部分的に基づいて、シミュレーション環境において作成されたシナリオを与えられた自律的コントローラー506がどのように応答するかに基づく様々な情報を、学習することができる。少なくとも1つの実施例において、シミュレーションアプリケーション504は、自律的コントローラー506がどのように動作したか(すなわち、応答したか)を示すデータにアクセスすることができ、データを予め決定された結果(例えば、結果124a〜124n)と比較することができる。自律的コントローラー506が予め決定された結果に一致して動作した(すなわち、自律的コントローラー506がすると仮定されたあらゆることをした)と決定されることに少なくとも部分的に基づいて、シミュレーションアプリケーション504は、自律的コントローラーが成功したことを決定することができる。自律的コントローラー506が予め決定された結果に一致せずに動作した(すなわち、自律的コントローラー506がすると仮定されなかったあることをした)と決定されることに少なくとも部分的に基づいて、シミュレーションアプリケーション504は、自律的コントローラーが失敗したことを決定することができる。したがって、地図内において順列をインスタンス化することに少なくとも部分的に基づいて、上述したように、自律的コントローラー506が各シナリオにどのように応答したかについての情報を、学習することができる。
図8は、有用な情報を提供するシナリオを決定し、有用な情報を提供しない他のシナリオを取り除く例示的な処理800を例示する。
ブロック802は、2つ以上の順列が、同じ、類似する、または実質的に類似する結果に関連付けられることを決定することを例示する。図7を参照して上述したように、環境内において順列をインスタンス化することに少なくとも部分的に基づいて、シミュレーション環境において作成された(1つまたは複数の)シナリオを与えられた自律的コントローラー506がどのように応答するかに基づく様々な情報を、学習することができる。少なくとも1つの実施例において、シミュレーションアプリケーション504は、自律的コントローラー506がどのように動作したかを示すデータにアクセスすることができ、データを予め決定された結果(例えば、結果124a〜124n)と比較することができる。自律的コントローラー506が予め決定された結果に一致して動作した(すなわち、自律的コントローラー506がすると仮定されたあらゆることをした)と決定されることに少なくとも部分的に基づいて、シミュレーションアプリケーション504は、自律的コントローラーが成功したことを決定することができる。自律的コントローラー506が予め決定された結果に一致せずに動作した(すなわち、自律的コントローラー506がすると仮定されなかったあることをした)と決定されることに少なくとも部分的に基づいて、シミュレーションアプリケーション504は、自律的コントローラーが失敗したことを決定することができる。
少なくとも1つの実施例において、シミュレーションアプリケーション504は、順列のうちの2つ以上のインスタンス化において自律的コントローラー506がどのように動作したかに関連付けられたデータが、順列のうちの2つ以上が同じ結果に関連付けられることを示すことを決定することができる。すなわち、シミュレーションアプリケーション504は、順列のうちの2つ以上が成功の結果または不成功の結果に関連付けられることを決定することができる。追加および/または代替の実施例において、シミュレーションアプリケーション504は、順列のうちの2つ以上が何らかの他の共有される結果(例えば、信頼レベル、推奨など)に関連付けられることを決定することができる。
ブロック804は、2つ以上の順列が冗長であることを決定することを例示する。シミュレーションアプリケーション504が順列のうちの2つ以上が同じ結果に関連付けられることを決定することに少なくとも部分的に基づいて、シミュレーションアプリケーション504は、2つ以上の順列が冗長であることを決定することができる。すなわち、少なくとも1つの実施例において、シミュレーションアプリケーション504は、順列のうちの2つ以上が、自律的コントローラー506がシナリオにおいて応答する能力について、あるとしても追加の大して有用でない情報を提供するだけの違いが増えていくことに関連付けることを決定することができる。
ブロック806は、将来のインスタンス化において、2つ以上の順列の代わりに、2つ以上の順列のうちの1つの順列をインスタンス化することを例示する。順列のうちの2つ以上が冗長であることをシミュレーションアプリケーション504が決定することに少なくとも部分的に基づいて、シミュレーションアプリケーション504は、2つ以上の順列のうちの1つまたは複数を取り除くことができる。すなわち、シミュレーションアプリケーション504は、2つ以上の順列についての代表的な順列を識別することができる。結果として、将来のインスタンス化において、2つ以上の順列の各々をインスタンス化する代わりに、代表的な順列を、インスタンス化することができる。したがって、シミュレーションアプリケーションは、検証およびテストのために有用な情報を提供する特定のシナリオにわたって最適化を行うことによって、計算の複雑性、メモリ要件、および処理時間を減らすために、有用な情報を提供すると決定されるシナリオをインスタンス化することができる。
実施例条項
A.シミュレーション環境におけるシナリオを生成するためのコンピューターに実装される方法であって、コンピューターに実装される方法は、シナリオにおいてインスタンス化されるための少なくとも第1のプリミティブを定義する命令を受け取ることであって、第1のプリミティブが自律走行車に対応し、第1のプリミティブに割り当てられる1つまたは複数の値に関連付けられる命令を受け取ることと、1つまたは複数の値に少なくとも部分的に基づいて、第1のプリミティブに関する順列のセットを作成することであって、各順列が1つまたは複数の値のうちの異なる値に関連付けられ、複数のシナリオを生成するために地図内において順列の各々をインスタンス化することであって、各シナリオが順列のセットのうちの順列に対応し、複数のシナリオのうちのシナリオに関連付けられた情報を決定することであって、情報が、自律走行車に関連付けられた、シミュレーション環境において作成されたシナリオを与えられた自律的コントローラーがどのように応答するかを記述する、を含む。
B.段落Aに記載のコンピューターに実装される方法であって、第1のプリミティブは、寸法の定義されたセット、姿勢、またはシミュレーション環境において第1のプリミティブを描画するためのメッシュを有するもののうちの1つまたは複数に関連付けられる。
C.段落Bに記載のコンピューターに実装される方法であって、姿勢は、慣性座標系、地図ベースの座標系、または走路ベースの座標系によって定義される。
D.段落BまたはCに記載のコンピューターに実装される方法であって、第1のプリミティブは、第1のプリミティブがシナリオにおいてどのように振る舞うことになるかを示すエンティティ挙動に関連付けられる。
E.段落A〜Dのいずれかに記載のコンピューターに実装される方法であって、命令は、第1のプリミティブと少なくとも第2のプリミティブとの間のアソシエーションを定義するシーケンスをさらに含み、シーケンスが逐次順に実行される多数のステップを含む。
F.段落Eに記載のコンピューターに実装される方法であって、第2のプリミティブは、第2のエンティティに対応する。
G.段落Fに記載のコンピューターに実装される方法であって、第2のエンティティは、静的エンティティまたは動的エンティティである。
H.段落E〜Gのいずれかに記載のコンピューターに実装される方法であって、第2のプリミティブは、条件、動作、障害、またはノイズに対応する。
I.プロセッサによって実行されると段落A〜Hのいずれかに記載の方法を実行するようにコンピューターを構成する命令を用いて符号化された1つまたは複数のコンピューター読み取り可能な媒体。
J.1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行されると段落A〜Hのいずれかに記載のコンピューターに実装される方法を実行するようコンピューターを構成する命令を用いて符号化された1つまたは複数のコンピューター読み取り可能な媒体とを有するデバイス。
K.シミュレーション環境におけるシナリオを生成するためのコンピューターに実装される方法であって、コンピューターに実装される方法は、シナリオにおいてインスタンス化されるための少なくとも第1のプリミティブを定義する命令を受け取る手段であって、第1のプリミティブが自律走行車に対応し、第1のプリミティブに割り当てられる1つまたは複数の値に関連付けられる命令を受け取る手段と、1つまたは複数の値に少なくとも部分的に基づいて、第1のプリミティブに関する順列のセットを作成する手段であって、各順列が1つまたは複数の値のうちの異なる値に関連付けられ、複数のシナリオを生成するために地図内において順列の各々をインスタンス化する手段であって、各シナリオが順列のセットのうちの順列に対応し、複数のシナリオのうちのシナリオに関連付けられた情報を決定する手段であって、情報が、自律走行車に関連付けられた、シミュレーション環境において作成されたシナリオを与えられた自律的コントローラーがどのように応答するかを記述する、を含む。
L.段落Kに記載のコンピューターに実装される方法であって、第1のプリミティブは、寸法の定義されたセット、姿勢、またはシミュレーション環境において第1のプリミティブを描画するためのメッシュを有するもののうちの1つまたは複数に関連付けられる。
M.段落Lに記載のコンピューターに実装される方法であって、姿勢は、慣性座標系、地図ベースの座標系、または走路ベースの座標系によって定義される。
N.段落LまたはMに記載のコンピューターに実装される方法であって、第1のプリミティブは、第1のプリミティブがシナリオにおいてどのように振る舞うことになるかを示すエンティティ挙動に関連付けられる。
O.段落K〜Nのいずれかに記載のコンピューターに実装される方法であって、命令は、第1のプリミティブと少なくとも第2のプリミティブとの間のアソシエーションを定義するシーケンスをさらに含み、シーケンスが逐次順に実行される多数のステップを含む。
P.段落Oに記載のコンピューターに実装される方法であって、第2のプリミティブは、第2のエンティティに対応する。
Q.段落Pに記載のコンピューターに実装される方法であって、第2のエンティティは、静的エンティティまたは動的エンティティである。
R.段落O〜Qのいずれかに記載のコンピューターに実装される方法であって、第2のプリミティブは、条件、動作、障害、またはノイズに対応する。
S.シミュレーション環境におけるシナリオを生成するためのシステムであって、システムは、1つまたは複数のプロセッサと、1つまたは複数のプロセッサによって実行可能な命令を格納する1つまたは複数の非一時的なコンピューター読み取り可能な媒体とを有し、命令は、シミュレーション環境における少なくとも1つのシナリオにおいてインスタンス化されるためのプリミティブセットを定義する命令を受け取ることと、プリミティブセットのうちの個々のプリミティブ間のアソシエーションを定義する第1のシーケンスを受け取ることと、第1のシナリオを生成するためにシミュレーション環境内において第1のシーケンスをインスタンス化することと、第1のシナリオに関連付けられた情報を決定することであって、情報が、シミュレーション環境において作成された少なくとも1つのシナリオを与えられた自律的コントローラーがどのように応答するかを記述する、を含む動作を実行するよう1つまたは複数のプロセッサをプログラムする。
T.段落Sに記載のシステムであって、第1のシーケンスは、少なくとも1つのサブシーケンスを含む。
U.段落SまたはTに記載のシステムであって、第1のシーケンスは、線形時相論理を使用して定義される。
V.段落S〜Uのいずれかに記載のシステムであって、動作は、第1のシーケンスに関連付けられた直積を受け取ることであって、直積が2つ以上の変数と2つ以上の変数のうちの各変数に関連付けられた2つ以上の可能な値とを含み、2つ以上の変数のうちの各変数がプリミティブセットのうちのプリミティブに関連付けられ、2つ以上の変数のうちの各変数に関連付けられた2つ以上の可能な値の各可能な組み合わせを含む順列のセットを作成することと、シミュレーション環境内において順列のセットのうちの各順列をインスタンス化することであって、各順列が新しいシナリオに対応し、各新しいシナリオについての結果を決定することであって、結果が成功または不成功である、をさらに含む。
W.段落S〜Vのいずれかに記載のシステムであって、動作は、プリミティブセットのうちの個々のプリミティブ間の異なるアソシエーションを定義する第2のシーケンスを受け取ることと、第2のシナリオを生成するためにシミュレーション環境内において第2のシーケンスをインスタンス化することとをさらに含む。
X.段落Wに記載のシステムであって、動作は、第1のシーケンスおよび第2のシーケンスを実質的に同時にインスタンス化することをさらに含む。
Y.段落S〜Xのいずれかに記載のシステムであって、第1のシナリオに関連付けられた情報を決定することは、シミュレーション環境において作成された少なくとも1つのシナリオを与えられた自律的コントローラーがどのように応答するかを検証することを含む。
Z.段落S〜Yのいずれかに記載のシステムであって、第1のシナリオに関連付けられた情報を決定することは、シミュレーション環境において作成された少なくとも1つのシナリオを与えられた自律的コントローラーの作動空間を決定することを含む。
AA.段落S〜Zのいずれかに記載のシステムであって、第1のシナリオに関連付けられた情報を決定することは、シミュレーション環境において作成された少なくとも1つのシナリオを与えられた自律的コントローラーがどのように応答するかを考慮して、自律的コントローラーの作動または設計の少なくとも一方を改善するためのフィードバックを生成することを含む。
AB.実行されると1つまたは複数のプロセッサに、少なくとも1つのシミュレートされるシナリオを生成するためのシーケンスの一部としてプリミティブの可能な組み合わせのサブセットを受け取ることと、順列のセットを作成することであって、各順列がプリミティブの可能な組み合わせのサブセットからのプリミティブの1つの可能な組み合わせを含み、地図内において順列のセットのうちの各順列をインスタンス化することであって、各順列がシミュレートされるシナリオに対応し、各シミュレートされるシナリオについての結果を決定することであって、結果が成功または不成功である、を含む動作を実行させる命令のセットを有する非一時的なコンピューター読み取り可能な媒体。
AC.段落ABに記載の非一時的なコンピューター読み取り可能な媒体であって、動作は、順列のセットのうちの2つ以上の順列が同じ結果に関連付けられると決定することと、2つ以上の順列が冗長であると決定することと、将来のインスタンス化において2つ以上の順列のうちの各順列の代わりに2つ以上の順列のうちただ1つの順列をインスタンス化することとをさらに含む。
AD.段落ABまたはACに記載の非一時的なコンピューター読み取り可能な媒体であって、地図内においてプリミティブの各順列をインスタンス化することは、実質的に同時に並列して実行される。
結論
本明細書において説明される技法の1つまたは複数の実施例を説明したが、それらの様々な改変、追加、置換、および同等物は、本明細書において説明される技法の範囲内に含まれる。
実施例の説明において、一部を形成する添付の図面に対する参照が行われ、図面は、特許請求される主題の具体的な例を実例として示している。他の例が使用されることができること、および例えば構造変更などの変更および改変が行われることができることが理解されるべきである。上記の例、変更または改変は、必ずしも、意図された特許請求される主題に関する範囲からの逸脱でない。本明細書におけるステップは、ある順序において提示されることができるが、いくつかの場合において、説明されるシステムおよび方法の機能を変更することなく、異なる時間に、または異なる順序において、ある入力が提供されるよう、順序付けは変更されることができる。開示される手順は、異なる順序で実行されることもできる。加えて、本明細書における様々な計算は、開示された順序において実行される必要はなく、計算の代わりの順序を使用する他の例が、容易に実施されることができる。並べ替えられるのに加えて、計算は、同じ結果を有するサブ計算に分解されることもできる。

Claims (20)

  1. シミュレーション環境におけるシナリオを生成するためのコンピューターに実装される方法であって、
    前記シナリオにおいてインスタンス化されるための少なくとも第1のプリミティブを定義する命令を受け取るステップであって、前記第1のプリミティブが自律走行車に対応する、ステップと、
    前記第1のプリミティブに割り当てられる1つまたは複数の値に関連付けられた命令を受け取るステップと、
    前記1つまたは複数の値に少なくとも部分的に基づいて、前記第1のプリミティブに関する順列のセットを作成するステップであって、各順列が前記1つまたは複数の値のうちの異なる値に関連付けられる、ステップと、
    地図内において前記順列の各々をインスタンス化して複数のシナリオを生成するステップであって、各シナリオが前記順列のセットのうちの順列に対応する、ステップと、
    前記複数のシナリオのうちのシナリオに関連付けられた情報を決定するステップであって、前記情報は、前記自律走行車に関連付けられた、前記シミュレーション環境において作成された前記シナリオを与えられた自律的コントローラーがどのように応答するかを記述する、ステップと
    を含むことを特徴とするコンピューターに実装される方法。
  2. 前記第1のプリミティブは、寸法の定義されたセット、姿勢、または前記シミュレーション環境において前記第1のプリミティブを描画するためのメッシュを有するもののうちの1つまたは複数に関連付けられることを特徴とする請求項1に記載のコンピューターに実装される方法。
  3. 前記姿勢は、慣性座標系、地図ベースの座標系、または走路ベースの座標系によって定義されることを特徴とする請求項2に記載のコンピューターに実装される方法。
  4. 前記第1のプリミティブは、前記第1のプリミティブが前記シナリオにおいてどのように振る舞うかを示すエンティティ挙動に関連付けられることを特徴とする請求項2に記載のコンピューターに実装される方法。
  5. 前記命令は、前記第1のプリミティブと少なくとも第2のプリミティブとの間のアソシエーションを定義するシーケンスをさらに含み、前記シーケンスが逐次順に実行される多数のステップを含むことを特徴とする請求項1に記載のコンピューターに実装される方法。
  6. 前記第2のプリミティブは、第2のエンティティに対応することを特徴とする請求項5に記載のコンピューターに実装される方法。
  7. 前記第2のエンティティは、静的エンティティまたは動的エンティティであることを特徴とする請求項6に記載のコンピューターに実装される方法。
  8. 前記第2のプリミティブは、条件、動作、障害、またはノイズに対応することを特徴とする請求項5に記載のコンピューターに実装される方法。
  9. シミュレーション環境におけるシナリオを生成するためのシステムであって、
    1つまたは複数のプロセッサと、
    前記1つまたは複数のプロセッサによって実行可能な命令を格納する1つまたは複数の非一時的なコンピューター読み取り可能な媒体であって、前記命令は、
    前記シミュレーション環境における少なくとも1つのシナリオにおいてインスタンス化されるためのプリミティブセットを定義する命令を受け取ることと、
    前記プリミティブセットのうちの個々のプリミティブ間のアソシエーションを定義する第1のシーケンスを受け取ることと、
    前記シミュレーション環境内において前記第1のシーケンスをインスタンス化して第1のシナリオを生成することと、
    前記第1のシナリオに関連付けられた情報を決定することであって、前記情報は、前記シミュレーション環境において作成された前記少なくとも1つのシナリオを与えられた自律的コントローラーがどのように応答するかを記述する、決定することと
    を含む動作を実行するよう前記1つまたは複数のプロセッサをプログラムする、1つまたは複数の非一時的なコンピューター読み取り可能な媒体と
    を備えたことを特徴とするシステム。
  10. 前記第1のシーケンスは、少なくとも1つのサブシーケンスを含むことを特徴とする請求項9に記載のシステム。
  11. 前記第1のシーケンスは、線形時相論理を使用して定義されることを特徴とする請求項9に記載のシステム。
  12. 前記動作は、
    前記第1のシーケンスに関連付けられた直積を受け取ることであって、前記直積が2つ以上の変数、および前記2つ以上の変数のうちの各変数に関連付けられた2つ以上の可能な値を含み、前記2つ以上の変数のうちの各変数が前記プリミティブセットのうちのプリミティブに関連付けられる、受け取ることと、
    前記2つ以上の変数のうちの各変数に関連付けられた前記2つ以上の可能な値の各可能な組み合わせを含む順列のセットを作成することと、
    前記シミュレーション環境内において前記順列のセットのうちの各順列をインスタンス化することであって、各順列が新しいシナリオに対応する、インスタンス化することと、
    新しい各シナリオについての結果を決定することであって、前記結果が成功または不成功である、決定することと
    をさらに含むことを特徴とする請求項9に記載のシステム。
  13. 前記動作は、
    前記プリミティブセットのうちの個々のプリミティブ間の異なるアソシエーションを定義する第2のシーケンスを受け取ることと、
    前記シミュレーション環境内において前記第2のシーケンスをインスタンス化して第2のシナリオを生成することと
    をさらに含むことを特徴とする請求項9に記載のシステム。
  14. 前記動作は、前記第1のシーケンスおよび前記第2のシーケンスを実質的に同時にインスタンス化することをさらに含むことを特徴とする請求項13に記載のシステム。
  15. 前記第1のシナリオに関連付けられた情報を決定することは、前記シミュレーション環境において作成された前記少なくとも1つのシナリオを与えられた前記自律的コントローラーがどのように応答するかを検証することを含むことを特徴とする請求項9に記載のシステム。
  16. 前記第1のシナリオに関連付けられた情報を決定することは、前記シミュレーション環境において作成された前記少なくとも1つのシナリオを与えられた前記自律的コントローラーの作動空間を決定することを含むことを特徴とする請求項9に記載のシステム。
  17. 前記第1のシナリオに関連付けられた情報を決定することは、前記シミュレーション環境において作成された前記少なくとも1つのシナリオを与えられた前記自律的コントローラーがどのように応答するかを考慮して前記自律的コントローラーの作動または設計の少なくとも一方を改善するためのフィードバックを生成することを含むことを特徴とする請求項9に記載のシステム。
  18. 実行されたときに、1つまたは複数のプロセッサに、
    少なくとも1つのシミュレートされるシナリオを生成するためのシーケンスの一部として、プリミティブの可能な組み合わせのサブセットを受け取ることと、
    順列のセットを作成することであって、各順列が前記プリミティブの可能な組み合わせのサブセットからのプリミティブの1つの可能な組み合わせを含む、作成することと、
    地図内において前記順列のセットのうちの各順列をインスタンス化することであって、各順列がシミュレートされるシナリオに対応する、インスタンス化することと、
    各シミュレートされるシナリオについての結果を決定することであって、前記結果が成功または不成功である、決定することと
    を含む動作を実行させる命令のセットを有することを特徴とする非一時的なコンピューター読み取り可能な媒体。
  19. 前記動作は、
    前記順列のセットのうちの2つ以上の順列が同じ結果に関連付けられることを決定することと、
    前記2つ以上の順列が冗長であることを決定することと、
    将来のインスタンス化において前記2つ以上の順列のうちの各順列の代わりに前記2つ以上の順列のうちのただ1つの順列をインスタンス化することと
    をさらに含むことを特徴とする請求項18に記載の非一時的なコンピューター読み取り可能な媒体。
  20. 前記地図内において前記プリミティブの各順列をインスタンス化することは、実質的に同時に並列して実行されることを特徴とする請求項18に記載の非一時的なコンピューター読み取り可能な媒体。
JP2019519980A 2016-10-14 2017-10-12 自律走行車シミュレーションのためのシナリオ記述言語 Active JP7111702B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2022116396A JP2022165991A (ja) 2016-10-14 2022-07-21 自律走行車シミュレーションのためのシナリオ記述言語

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662408641P 2016-10-14 2016-10-14
US62/408,641 2016-10-14
US15/405,649 US10489529B2 (en) 2016-10-14 2017-01-13 Scenario description language
US15/405,649 2017-01-13
PCT/US2017/056398 WO2018071708A1 (en) 2016-10-14 2017-10-12 Scenario description language for autonomous vehicle simulation

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2022116396A Division JP2022165991A (ja) 2016-10-14 2022-07-21 自律走行車シミュレーションのためのシナリオ記述言語

Publications (2)

Publication Number Publication Date
JP2020502615A true JP2020502615A (ja) 2020-01-23
JP7111702B2 JP7111702B2 (ja) 2022-08-02

Family

ID=61903894

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2019519980A Active JP7111702B2 (ja) 2016-10-14 2017-10-12 自律走行車シミュレーションのためのシナリオ記述言語
JP2022116396A Pending JP2022165991A (ja) 2016-10-14 2022-07-21 自律走行車シミュレーションのためのシナリオ記述言語

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2022116396A Pending JP2022165991A (ja) 2016-10-14 2022-07-21 自律走行車シミュレーションのためのシナリオ記述言語

Country Status (5)

Country Link
US (2) US10489529B2 (ja)
EP (1) EP3526698A1 (ja)
JP (2) JP7111702B2 (ja)
CN (1) CN110073352B (ja)
WO (1) WO2018071708A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20220066711A (ko) * 2020-11-16 2022-05-24 (주)이노시뮬레이션 자율주행 분산 시뮬레이션 동기 제어 방법
US20220197280A1 (en) * 2020-12-22 2022-06-23 Uatc, Llc Systems and Methods for Error Sourcing in Autonomous Vehicle Simulation
JP2022533292A (ja) * 2019-12-17 2022-07-22 フォレテリックス リミテッド 自律車両の適切な挙動を監視するためのシステム及びその方法
WO2022180901A1 (ja) * 2021-02-24 2022-09-01 日立Astemo株式会社 シミュレーション方法及び装置

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10489529B2 (en) 2016-10-14 2019-11-26 Zoox, Inc. Scenario description language
US10942525B2 (en) 2017-05-09 2021-03-09 Uatc, Llc Navigational constraints for autonomous vehicles
US10501091B2 (en) 2017-05-23 2019-12-10 Uber Technologies, Inc. Software version and mode switching for autonomous vehicles
US10489721B2 (en) 2017-05-23 2019-11-26 Uatc, Llc Path segment risk regression system for on-demand transportation services
US11288612B2 (en) 2017-05-23 2022-03-29 Uatc, Llc Generalized risk routing for human drivers
US10762447B2 (en) 2017-05-23 2020-09-01 Uatc, Llc Vehicle selection for on-demand transportation services
US11282009B2 (en) 2017-05-23 2022-03-22 Uatc, Llc Fleet utilization efficiency for on-demand transportation services
US10697789B2 (en) 2017-05-23 2020-06-30 Uatc, Llc Individualized risk routing for human drivers
US10789835B2 (en) 2017-05-23 2020-09-29 Uatc, Llc Fractional risk performance evaluation for autonomous vehicles
US10884902B2 (en) * 2017-05-23 2021-01-05 Uatc, Llc Software version verification for autonomous vehicles
US11080806B2 (en) 2017-05-23 2021-08-03 Uber Technologies, Inc. Non-trip risk matching and routing for on-demand transportation services
US11282016B2 (en) 2017-05-23 2022-03-22 Uatc, Llc Individualized risk vehicle matching for an on-demand transportation service
US10262471B2 (en) 2017-05-23 2019-04-16 Uber Technologies, Inc. Autonomous vehicle degradation level monitoring
US10831202B1 (en) 2017-09-01 2020-11-10 Zoox, Inc. Onboard use of scenario description language
US10599546B1 (en) * 2017-10-25 2020-03-24 Uatc, Llc Autonomous vehicle testing systems and methods
US10831636B2 (en) 2018-01-08 2020-11-10 Waymo Llc Software validation for autonomous vehicles
WO2019169604A1 (en) * 2018-03-08 2019-09-12 Baidu.Com Times Technology (Beijing) Co., Ltd. Simulation-based method to evaluate perception requirement for autonomous driving vehicles
US11954651B2 (en) * 2018-03-19 2024-04-09 Toyota Jidosha Kabushiki Kaisha Sensor-based digital twin system for vehicular analysis
US11086318B1 (en) 2018-03-21 2021-08-10 Uatc, Llc Systems and methods for a scenario tagger for autonomous vehicles
US10891497B2 (en) 2018-03-23 2021-01-12 NetraDyne, Inc. Traffic boundary mapping
US11625036B2 (en) 2018-04-09 2023-04-11 SafeAl, Inc. User interface for presenting decisions
US11561541B2 (en) 2018-04-09 2023-01-24 SafeAI, Inc. Dynamically controlling sensor behavior
US11169536B2 (en) 2018-04-09 2021-11-09 SafeAI, Inc. Analysis of scenarios for controlling vehicle operations
US11467590B2 (en) 2018-04-09 2022-10-11 SafeAI, Inc. Techniques for considering uncertainty in use of artificial intelligence models
US11287816B2 (en) 2018-06-11 2022-03-29 Uatc, Llc Navigational constraints for autonomous vehicles
US10795804B1 (en) 2018-08-21 2020-10-06 Waymo Llc Collision evaluation for log-based simulations
US11030364B2 (en) * 2018-09-12 2021-06-08 Ford Global Technologies, Llc Evaluating autonomous vehicle algorithms
CN109408984B (zh) * 2018-11-01 2022-10-11 西北工业大学 一种cps场景建模方法及装置
CN111177878B (zh) * 2018-11-09 2023-06-27 百度在线网络技术(北京)有限公司 衍生仿真场景筛选方法、装置和终端
US11814059B1 (en) * 2019-04-05 2023-11-14 Zoox, Inc. Simulating autonomous driving using map data and driving data
US20200409369A1 (en) * 2019-06-25 2020-12-31 Uatc, Llc System and Methods for Autonomous Vehicle Testing
CN110597086B (zh) * 2019-08-19 2023-01-13 深圳元戎启行科技有限公司 仿真场景生成方法、无人驾驶系统测试方法以及装置
EP3832548A1 (en) * 2019-12-06 2021-06-09 Universität Stuttgart Method for testing and testing device
CN111324945B (zh) 2020-01-20 2023-09-26 阿波罗智能技术(北京)有限公司 传感器方案确定方法、装置、设备及存储介质
CN111290381A (zh) * 2020-02-10 2020-06-16 深圳前海微众银行股份有限公司 基于无人车的联邦学习实验系统
US11643105B2 (en) 2020-02-21 2023-05-09 Argo AI, LLC Systems and methods for generating simulation scenario definitions for an autonomous vehicle system
US11429107B2 (en) 2020-02-21 2022-08-30 Argo AI, LLC Play-forward planning and control system for an autonomous vehicle
CN111524237B (zh) * 2020-04-23 2022-11-04 九江精密测试技术研究所 一种用于汽车模拟器中的汽车与地形交互仿真方法
CN111797000A (zh) * 2020-05-27 2020-10-20 中汽数据有限公司 一种基于梯度提升决策树模型的场景复杂度评估方法
CN111680362B (zh) * 2020-05-29 2023-08-11 北京百度网讯科技有限公司 一种自动驾驶仿真场景获取方法、装置、设备及存储介质
CN112036001B (zh) * 2020-07-01 2024-04-23 长安大学 自动驾驶测试场景构建方法、装置、设备及可读存储介质
US11648959B2 (en) 2020-10-20 2023-05-16 Argo AI, LLC In-vehicle operation of simulation scenarios during autonomous vehicle runs
CN112464462B (zh) * 2020-11-20 2021-10-01 北京赛目科技有限公司 一种仿真运行数据的处理方法及装置
CN113221359B (zh) * 2021-05-13 2024-03-01 京东鲲鹏(江苏)科技有限公司 一种仿真场景生成方法、装置、设备及存储介质
CN113177266A (zh) * 2021-05-21 2021-07-27 深圳裹动智驾科技有限公司 仿真方法、仿真计算机设备及计算机可读存储介质
CN113419850B (zh) * 2021-06-11 2022-07-19 中国人民解放军军事科学院国防科技创新研究院 一种实体的并行仿真方法、装置、电子设备及存储介质
CN113836701A (zh) * 2021-09-03 2021-12-24 东风小康汽车有限公司重庆分公司 一种仿真场景构建方法、装置、计算机设备和存储介质
CN113793527B (zh) * 2021-09-14 2022-11-18 北京石油化工学院 一种面向城市交通主动控制的测试验证系统
FR3127313A1 (fr) * 2021-09-17 2023-03-24 Institut De Recherche Technologique Systemx Procédé d’évaluation des performances d’un modèle de conduite pour un véhicule
US11550851B1 (en) * 2022-02-10 2023-01-10 Motional Ad Llc Vehicle scenario mining for machine learning models
CN115438517B (zh) * 2022-11-07 2023-03-24 阿里巴巴达摩院(杭州)科技有限公司 仿真地图生成方法、电子设备及计算机存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015132863A1 (ja) * 2014-03-03 2015-09-11 三菱電機株式会社 シミュレーションシステム及びシミュレーション設定装置及びシミュレーション方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006047741A2 (en) * 2004-10-27 2006-05-04 Bae Systems Land & Armaments L.P. Software test environment for regression testing ground combat vehicle software
CA2712673A1 (en) * 2008-02-04 2009-08-13 Tele Atlas North America Inc. Method for map matching with sensor detected objects
US8229718B2 (en) * 2008-12-23 2012-07-24 Microsoft Corporation Use of scientific models in environmental simulation
US8270733B2 (en) * 2009-08-31 2012-09-18 Behavioral Recognition Systems, Inc. Identifying anomalous object types during classification
GB201008332D0 (en) 2010-05-19 2010-07-07 Bae Systems Plc System validation
US8930180B1 (en) * 2012-08-15 2015-01-06 The Boeing Company Rapid scenario generation using natural language understanding
US20160210382A1 (en) 2015-01-21 2016-07-21 Ford Global Technologies, Llc Autonomous driving refined in virtual environments
US9459840B1 (en) * 2015-03-31 2016-10-04 Toyota Jidosha Kabushiki Kaisha Timing-oriented and architecture-centric system design using contracts
US9511767B1 (en) 2015-07-01 2016-12-06 Toyota Motor Engineering & Manufacturing North America, Inc. Autonomous vehicle action planning using behavior prediction
US10229231B2 (en) 2015-09-11 2019-03-12 Ford Global Technologies, Llc Sensor-data generation in virtual driving environment
US10176634B2 (en) 2015-10-16 2019-01-08 Ford Global Technologies, Llc Lane boundary detection data generation in virtual environment
US10527730B2 (en) 2015-10-22 2020-01-07 Toyota Motor Engineering & Manufacturing North America, Inc. Object detection system
US9740944B2 (en) 2015-12-18 2017-08-22 Ford Global Technologies, Llc Virtual sensor data generation for wheel stop detection
US9645577B1 (en) 2016-03-23 2017-05-09 nuTonomy Inc. Facilitating vehicle driving and self-driving
WO2017202906A1 (en) * 2016-05-24 2017-11-30 Nm Robotic Gmbh Computer-assisted design of mechatronic systems to comply with textual system description
US10248124B2 (en) * 2016-07-21 2019-04-02 Mobileye Vision Technologies, Inc. Localizing vehicle navigation using lane measurements
US10489529B2 (en) 2016-10-14 2019-11-26 Zoox, Inc. Scenario description language
US10228693B2 (en) 2017-01-13 2019-03-12 Ford Global Technologies, Llc Generating simulated sensor data for training and validation of detection models
US20180267538A1 (en) 2017-03-15 2018-09-20 Toyota Jidosha Kabushiki Kaisha Log-Based Vehicle Control System Verification
US10831202B1 (en) 2017-09-01 2020-11-10 Zoox, Inc. Onboard use of scenario description language

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015132863A1 (ja) * 2014-03-03 2015-09-11 三菱電機株式会社 シミュレーションシステム及びシミュレーション設定装置及びシミュレーション方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022533292A (ja) * 2019-12-17 2022-07-22 フォレテリックス リミテッド 自律車両の適切な挙動を監視するためのシステム及びその方法
JP7296465B2 (ja) 2019-12-17 2023-06-22 フォレテリックス リミテッド 自律車両の適切な挙動を監視するためのシステム及びその方法
KR20220066711A (ko) * 2020-11-16 2022-05-24 (주)이노시뮬레이션 자율주행 분산 시뮬레이션 동기 제어 방법
KR102412539B1 (ko) 2020-11-16 2022-06-23 (주)이노시뮬레이션 자율주행 분산 시뮬레이션 동기 제어 방법
US20220197280A1 (en) * 2020-12-22 2022-06-23 Uatc, Llc Systems and Methods for Error Sourcing in Autonomous Vehicle Simulation
WO2022180901A1 (ja) * 2021-02-24 2022-09-01 日立Astemo株式会社 シミュレーション方法及び装置
DE112021006082T5 (de) 2021-02-24 2023-10-12 Hitachi Astemo, Ltd. Simulationsverfahren und -vorrichtung

Also Published As

Publication number Publication date
US20200050721A1 (en) 2020-02-13
US11301601B2 (en) 2022-04-12
US20180107770A1 (en) 2018-04-19
CN110073352B (zh) 2023-07-14
JP2022165991A (ja) 2022-11-01
JP7111702B2 (ja) 2022-08-02
WO2018071708A1 (en) 2018-04-19
US10489529B2 (en) 2019-11-26
EP3526698A1 (en) 2019-08-21
CN110073352A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
US11301601B2 (en) Scenario description language
US11360477B2 (en) Trajectory generation using temporal logic and tree search
US11740626B2 (en) Redundant pose generation system
US11892847B2 (en) Onboard use of scenario description language
US20070271079A1 (en) Simulator for Vehicle Radio Propagation Including Shadowing Effects
US20200097015A1 (en) System and method for motion planning of an autonomous driving machine
CN114514524A (zh) 多智能体模拟
US11745762B2 (en) System and methods of adaptive trajectory prediction for autonomous driving
Symeonidis et al. Simulation environments
US11767030B1 (en) Scenario simulation execution within a truncated parameter space
KR20220160391A (ko) Rnn 기반 멀티에이전트 심층강화학습을 활용한 충돌없는 경로 생성 방법
Debner Performance evaluation of a machine learning environment for intelligent transportation systems
CN113485300B (zh) 一种基于强化学习的自动驾驶车辆碰撞测试方法
Raghothama et al. Architectures for distributed, interactive and integrated traffic simulations
Premi Autonomous robot exploration using deep learning: an experimental analysis
WO2024098163A1 (en) Neural hash grid based multi-sensor simulation
WO2023150876A1 (en) Autonomous system training and testing
Dharmadhikari et al. ARL Educational Robotic Autonomy Environment–v0.

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190613

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200806

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211008

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220210

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20220621

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220721

R150 Certificate of patent or registration of utility model

Ref document number: 7111702

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150