(57)【特許請求の範囲】
【請求項１】
車両のシミュレーションデータを収集する開発装置によって実行される方法であって、
設計対象車両に対応する車両力学モデルと、制御モデルと、を生成する第一の生成ステップと、
前記車両力学モデルおよび制御モデルによって構成される仮想車両をテストする仮想テスト環境を生成するための道路モデルを生成する第二の生成ステップと、
プロセッサにより実行され、前記プロセッサに、前記仮想テスト環境における前記仮想車両のシミュレーションを実行させるよう構成された実行可能ファイルを、前記車両力学モデルと、前記制御モデルと、前記道路モデルと、に基づいて生成する第三の生成ステップと、
前記実行可能ファイルを、ネットワークを介して複数のクライアント装置に配布する配布ステップと、
前記複数のクライアント装置から、前記仮想テスト環境内の走行における前記仮想車両の性能を表す車両シミュレーションデータを、ネットワークを介して収集する収集ステップと、
表示装置に、前記仮想テスト環境における前記仮想車両の性能に関する情報を出力する出力ステップと、
を含む、方法。
【請求項２】
前記複数のクライアント装置は、複数の異なるプラットフォームを含む、
請求項１に記載の方法。
【請求項３】
前記車両シミュレーションデータは、前記仮想テスト環境における前記仮想車両の性能を表す性能データ、および、前記仮想車両の運転におけるユーザ入力を表すテストシナリオデータ、を含む、
請求項１に記載の方法。
【請求項４】
前記仮想車両の性能を表す性能データは、複数のデータ点を含み、
前記データ点は、当該データ点に寄与した特定のユーザ入力に対応する、前記テストシナリオデータ内のデータ点と関連付けられる、
請求項３に記載の方法。
【請求項５】
前記テストシナリオデータは、前記仮想テスト環境に存在する条件を記述するテスト環境データを含み、
前記性能データに含まれる各データ点が、当該データ点に寄与したユーザ入力を特定のユーザが提供した時点の仮想テスト環境を記述する、前記テスト環境データ内のデータ点と関連付けられる、
請求項４に記載の方法。
【請求項６】
前記走行が延べ１００万キロメートル以上である場合に、走行の量が十分であると決定する決定ステップをさらに含む、
請求項１に記載の方法。
【請求項７】
前記制御モデルは、前記設計対象車両向けに設計されたＡＤＡＳ（先進運転支援システム）ソフトウェアのデジタルモデルを含む、
請求項１に記載の方法。
【請求項８】
前記車両シミュレーションデータは、前記実行可能ファイルを前記クライアント装置に送信してから７日以内に収集される、
請求項１に記載の方法。
【請求項９】
前記車両シミュレーションデータは、前記実行可能ファイルを前記クライアント装置に送信してから２４時間以内に収集される、
請求項１に記載の方法。
【請求項１０】
前記車両シミュレーションデータに基づいて、修正された前記車両力学モデルおよび修正された前記制御モデルを表す修正モデルデータを生成する修正ステップをさらに含む、
請求項１に記載の方法。
【請求項１１】
前記修正モデルデータに基づいて、前記設計対象車両を製造するステップをさらに含む、
請求項１０に記載の方法。
【請求項１２】
前記仮想車両の性能不足を特定するために前記車両シミュレーションデータを解析するステップと、
前記性能不足を修正するように構成された、前記車両力学モデルまたは制御モデルに対する修正案を決定するステップと、
前記修正案の少なくとも一つを選択するための入力を取得するステップと、
前記入力に基づいて、修正された前記車両力学モデルおよび修正された前記制御モデルを表す修正モデルデータを生成するステップと、
をさらに含む、請求項１に記載の方法。
【請求項１３】
前記修正モデルデータに基づいて、前記設計対象車両を製造するステップをさらに含む、
請求項１２に記載の方法。
【請求項１４】
コンピュータに、
設計対象車両に対応する車両力学モデルと、制御モデルと、を生成する第一の生成ステップと、
前記車両力学モデルおよび制御モデルによって構成される仮想車両をテストする仮想テスト環境を生成するための道路モデルを生成する第二の生成ステップと、
プロセッサにより実行され、前記プロセッサに、前記仮想テスト環境における前記仮想車両のシミュレーションを実行させるよう構成された実行可能ファイルを、前記車両力学モデルと、前記制御モデルと、前記道路モデルと、に基づいて生成する第三の生成ステップと、
前記実行可能ファイルを、ネットワークを介して複数のクライアント装置に配布する配布ステップと、
前記複数のクライアント装置から、前記仮想テスト環境内の走行における前記仮想車両の性能を表す車両シミュレーションデータを、ネットワークを介して収集する収集ステップと、
表示装置に、前記仮想テスト環境における前記仮想車両の性能に関する情報を出力する出力ステップと、
を実行させるためのプログラム。
【請求項１５】
前記道路モデルは、実世界に存在する道路を表す実世界道路データに基づいて生成される、
請求項１４に記載のプログラム。
【請求項１６】
前記設計対象車両は自動運転車両である、
請求項１４に記載のプログラム。
【請求項１７】
前記複数のクライアント装置は、２台〜１００万台であり、
前記クライアント装置のそれぞれが、前記実行可能ファイルを同時刻に実行する、
請求項１４に記載のプログラム。
【請求項１８】
前記複数のクライアント装置の少なくとも一部はスマートフォンである、
請求項１７に記載のプログラム。
【請求項１９】
前記クライアント装置のそれぞれが、前記実行可能ファイルを同時刻に実行し、それにより、前記仮想テスト環境において、前記クライアント装置のそれぞれに対応する複数の仮想車両が出現する、
請求項１４に記載のプログラム。
【請求項２０】
前記複数の仮想車両が、前記仮想テスト環境内において互いに干渉可能である、
請求項１９に記載のプログラム。
【請求項２１】
開発装置と、複数のクライアント装置と、からなるシステムであって、
前記開発装置は、
設計対象車両に対応する車両力学モデルと、制御モデルと、を生成する第一の生成手段と、
前記車両力学モデルおよび制御モデルによって構成される仮想車両をテストする仮想テスト環境を生成するための道路モデルを生成する第二の生成手段と、
プロセッサにより実行され、前記プロセッサに、前記仮想テスト環境における前記仮想車両のシミュレーションを実行させるよう構成された実行可能ファイルを、前記車両力学モデルと、前記制御モデルと、前記道路モデルと、に基づいて生成する第三の生成手段と、
前記実行可能ファイルを、ネットワークを介して複数のクライアント装置に配布する配布手段と、
前記複数のクライアント装置から、前記仮想テスト環境内の走行における前記仮想車両の性能を表す車両シミュレーションデータを、ネットワークを介して収集する収集手段と、
表示装置に、前記仮想テスト環境における前記仮想車両の性能に関する情報を出力する出力手段と、
を有する、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書は、クラウドソースを利用して車両シミュレーションデータを取得する車両シミュレーション装置に関する。
【背景技術】
【０００２】
（関連出願への相互参照）
本出願は、"VEHICLE SIMULATION DEVICE FOR CROWD-SOURCED VEHICLE SIMULATION DATA"と題し、２０１６年３月１８日に出願された米国特許出願第１５／０７４，８４２号の
優先権を主張する。当該出願は、その全体が本明細書中に参照として組み込まれる。
【０００３】
自動車は設計技術者によって設計される。設計技術者は、異なる設計選択肢の性能のシミュレーションおよび異なる設計代案の評価を含む、車両設計の設計空間探索のためのモデリングソフトウェアを用いる。車両設計に適したモデリングソフトウェアとして、例えば、ＭａｐｌｅＳｉｍといったＭｏｄｅｌｉｃａプラットフォームがある。
【０００４】
設計技術者は、自分の車両設計がある特定の強い制約に適合するか否かを判定するために、自分の車両設計をチェックしなければならない。車両設計についての強い制約は、意図された目的で運転者が車両を用いるあらゆる状況に常に適用される制約を含む。例えば、車両が公道で法定制限に準拠した速度で運転されている限り、ドライブシャフトは折損してはならず、車両は、アクセルを踏んでいる限り前進し続けなければならない。
【０００５】
車両設計は、先進運転者支援システム（Ａｄｖａｎｃｅｄ  Ｄｒｉｖｅｒ  Ａｓｓｉｓｔａｎｃｅ  Ｓｙｓｔｅｍ，ＡＤＡＳ）ソフトウェアを含むことができる。ＰｒｅＳｃａｎといったＡＤＡＳシミュレーションツールは、ＡＤＡＳソフトウェアが実際の車両に搭載される前に、仮想道路環境および車両運動力学環境においてＡＤＡＳソフトウェアの正確さをテストするために広く用いられている。ＡＤＡＳシミュレーションの成績を最大化するために、設計技術者は、ＡＤＡＳソフトウェアおよび仮想テスト環境における車両設計を表す仮想車両の他の挙動を含む車両設計の性能を実証する多数のテストシナリオを作成する必要がある。仮想テスト環境におけるテストシナリオを手動で生成するプロセスは時間を要し、シミュレートされるシナリオの多くの事例が最良形態（best practice）に
従う必要がある。
【発明の概要】
【０００６】
本発明の実施形態は、複数のクライアント装置から提案車両（proposed vehicle，本明細書では設計対象車両を意味する）をテストした結果を表すデータ（車両シミュレーションデータ）を取得するための方法、システム、または非一時的コンピュータ可読媒体を含むことができる。
複数のクライアント装置は、提案車両をシミュレートした仮想車両のテストを行うことができる。複数のクライアント装置のうちの何台かは、仮想車両をテストするために提案車両の開発者によって設計された仮想テスト環境において、同時に仮想車両のテストを行うことができる。
例えば、１００台のクライアント装置が、仮想テスト環境において同時に、仮想車両の複数台のコピーをテストすることができる。仮想車両の複数台のコピーは、仮想的な車道上に同時に存在し、互いに障害物となる。車道上の仮想車両の中には、提案車両の設計と異なる設計に基づくものがあってもよい。複数の仮想車両が仮想テスト環境において複数のクライアント装置（例えば、数十台、数百台、数千台または数百万台のクライアント装置）によってシミュレートされるため、仮想車両を短期間（例えば、１日、１週間、１ヵ
月など）で十分にテストすることができる。複数のクライアント装置は、仮想車両の性能を記述する車両シミュレーションデータを提供することができ、それによって開発者は、提案車両の設計を修正すべきか否かを判定することができる。また、開発者は提案車両の設計を修正することができる。その後、提案車両は実世界で配備するために製造される。
【０００７】
１つまたは複数のコンピュータのシステムを、動作に際してシステムに特定の操作または動作を行わせるソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせをシステム上にインストールすることによってそれらの動作を行うように構成することができる。１つまたは複数のコンピュータプログラムを、データ処理装置によって実行されることで当該装置に特定の操作または動作を行わせる命令を含むことによってそれらの動作を行うように構成することができる。
【０００８】
本発明の１つの一般的態様は、
設計対象車両に対応する車両力学モデルと、制御モデルと、を生成する第一の生成ステップと、前記車両力学モデルおよび制御モデルによって構成される仮想車両をテストする仮想テスト環境を生成するための道路モデルを生成する第二の生成ステップと、プロセッサにより実行され、前記プロセッサに、前記仮想テスト環境における前記仮想車両のシミュレーションを実行させるよう構成された実行可能ファイルを、前記車両力学モデルと、前記制御モデルと、前記道路モデルと、に基づいて生成する第三の生成ステップと、前記実行可能ファイルを複数のクライアント装置に配布する配布ステップと、前記複数のクライアント装置から、前記仮想テスト環境内の走行における前記仮想車両の性能を表す車両シミュレーションデータを収集する収集ステップと、前記走行の量が、前記車両力学モデルおよび制御モデルを評価するのに十分な量であるか否かを決定する決定ステップと、表示装置に、前記テスト環境における前記仮想車両の性能に関する情報を出力する出力ステップと、を含む、方法を含む。
本態様の他の実施形態は、対応するコンピュータシステム、装置、および方法の動作を行うように各々構成された１つまたは複数のコンピュータ記憶装置上に記録されたコンピュータプログラムを含む。
【０００９】
各実装形態は、以下の特徴のうちの１つまたは複数を含むことができる。
例えば、前記複数のクライアント装置は、複数の異なるプラットフォームを含んでもよい。
また、前記車両シミュレーションデータは、前記テスト環境における前記仮想車両の性能を表す性能データ、および、前記仮想車両の運転におけるユーザ入力を表すテストシナリオデータ、を含むことを特徴としてもよい。
また、前記仮想車両の性能を表す性能データは、複数のデータ点を含み、前記データ点は、当該データ点に寄与した特定のユーザ入力に対応する、前記テストシナリオデータ内のデータ点と関連付けられることを特徴としてもよい。
また、前記テストシナリオデータは、前記仮想テスト環境に存在する条件を記述するテスト環境データを含み、前記性能データに含まれる各データ点が、当該データ点に寄与したユーザ入力を特定のユーザが提供した時点のテスト環境を記述する、前記テスト環境データ内のデータ点と関連付けられることを特徴としてもよい。
また、前記決定ステップでは、前記走行が延べ１００万キロメートル以上である場合に、前記走行の量が十分であると決定することを特徴としてもよい。
また、前記制御モデルは、前記対象車両向けに設計されたＡＤＡＳ（先進運転支援システム）ソフトウェアのデジタルモデルを含むことを特徴としてもよい。
また、前記車両シミュレーションデータは、前記実行可能ファイルを前記クライアント装置に送信してから３０日／７日／２４時間以内に収集されることを特徴としてもよい。
また、前記車両シミュレーションデータに基づいて、修正された前記車両力学モデルおよび修正された前記制御モデルを表す修正モデルデータを生成する修正ステップをさらに
含むことを特徴としてもよい。
また、前記修正モデルデータに基づいて、前記設計対象車両を製造するステップをさらに含むことを特徴としてもよい。
また、前記仮想車両の性能不足を特定するために前記車両シミュレーションデータを解析するステップと、前記性能不足を修正するように構成された、前記車両力学モデルまたは制御モデルに対する修正案を決定するステップと、前記修正案の少なくとも一つを選択するための入力を取得するステップと、前記入力に基づいて、修正された前記車両力学モデルおよび修正された前記制御モデルを表す修正モデルデータを生成するステップと、をさらに含むことを特徴としてもよい。
前述の技法の実装形態は、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含むことができる。
【００１０】
１つの一般的態様は、
コンピュータに、設計対象車両に対応する車両力学モデルと、制御モデルと、を生成する第一の生成ステップと、前記車両力学モデルおよび制御モデルによって構成される仮想車両をテストする仮想テスト環境を生成するための道路モデルを生成する第二の生成ステップと、プロセッサにより実行され、前記プロセッサに、前記仮想テスト環境における前記仮想車両のシミュレーションを実行させるよう構成された実行可能ファイルを、前記車両力学モデルと、前記制御モデルと、前記道路モデルと、に基づいて生成する第三の生成ステップと、前記実行可能ファイルを複数のクライアント装置に配布する配布ステップと、前記複数のクライアント装置から、前記仮想テスト環境内の走行における前記仮想車両の性能を表す車両シミュレーションデータを収集する収集ステップと、前記走行の量が、前記車両力学モデルおよび制御モデルを評価するのに十分な量であるか否かを決定する決定ステップと、表示装置に、前記テスト環境における前記仮想車両の性能に関する情報を出力する出力ステップと、を実行させるプログラムを含む。
本態様の他の実施形態は、対応するコンピュータシステム、装置、および方法の動作を行うように各々構成された１つまたは複数のコンピュータ記憶装置上に記録されたコンピュータプログラムを含む。
【００１１】
各実装形態は、以下の特徴のうちの１つまたは複数を含むことができる。
例えば、前記道路モデルは、実世界に存在する道路を表す実世界道路データに基づいて生成されることを特徴としてもよい。
また、前記設計対象車両は自動運転車両であることを特徴としてもよい。
また、前記複数のクライアント装置は、２台〜１００万台であり、前記クライアント装置のそれぞれが、前記実行可能ファイルを同時刻に実行することを特徴としてもよい。
また、前記複数のクライアント装置の少なくとも一部はスマートフォンであることを特徴としてもよい。
また、前記クライアント装置のそれぞれが、前記実行可能ファイルを同時刻に実行し、それにより、前記テスト環境において、前記クライアント装置のそれぞれに対応する複数の仮想車両が出現することを特徴としてもよい。
また、前記複数の仮想車両が、前記テスト環境内において互いに干渉可能であることを特徴としてもよい。
前述の技法の実装形態は、ハードウェア、方法もしくはプロセス、またはコンピュータアクセス可能媒体上のコンピュータソフトウェアを含むことができる。
【００１２】
１つの一般的態様は、
開発装置と、複数のクライアント装置と、からなるシステムであって、前記開発装置は、設計対象車両に対応する車両力学モデルと、制御モデルと、を生成する第一の生成手段と、前記車両力学モデルおよび制御モデルによって構成される仮想車両をテストする仮想テスト環境を生成するための道路モデルを生成する第二の生成手段と、プロセッサにより
実行され、前記プロセッサに、前記仮想テスト環境における前記仮想車両のシミュレーションを実行させるよう構成された実行可能ファイルを、前記車両力学モデルと、前記制御モデルと、前記道路モデルと、に基づいて生成する第三の生成手段と、前記実行可能ファイルを複数のクライアント装置に配布する配布手段と、前記複数のクライアント装置から、前記仮想テスト環境内の走行における前記仮想車両の性能を表す車両シミュレーションデータを収集する収集手段と、前記走行の量が、前記車両力学モデルおよび制御モデルを評価するのに十分な量であるか否かを決定する決定手段と、表示装置に、前記テスト環境における前記仮想車両の性能に関する情報を出力する出力手段と、を有する、システムを含む。
本態様の他の実施形態は、対応するコンピュータシステム、装置、および方法の動作を行うように各々構成された１つまたは複数のコンピュータ記憶装置上に記録されたコンピュータプログラムを含む。
【００１３】
本開示は、限定のためではなく例として、添付の図面の各図において示されており、図面において類似した参照符号は類似した要素を指すのに用いられている。
【図面の簡単な説明】
【００１４】
【図１】本発明に係るシミュレーションシステムの動作環境の例を示すブロック図である。
【図２Ａ】本発明に係るコンピュータシステムの例を示すブロック図である。
【図２Ｂ】本発明に係るシミュレーションシステムを含むフロープロセスの例を示すブロック図である。
【図３Ａ】クラウドソースされた車両シミュレーションデータに基づいて、修正モデルデータを生成するためのＧＵＩを生成する方法の例を示したフローチャートである。
【図３Ｂ】クラウドソースされた車両シミュレーションデータに基づいて、修正モデルデータを生成するためのＧＵＩを生成する方法の例を示したフローチャートである。
【図４Ａ】実行可能ファイルがクライアント側で実行されるときに行われる開発装置側の動作およびクライアント側の動作を示すブロック図である。
【図４Ｂ】実行可能ファイルがクライアント側で実行されるときに行われる開発装置側の動作およびクライアント側の動作を示すブロック図である。
【図５Ａ】いくつかの実装形態によるＧＵＩの例である。
【図５Ｂ】いくつかの実装形態によるＧＵＩの例である。
【図６Ａ】いくつかの実装形態によるＧＵＩの例である。
【図６Ｂ】いくつかの実装形態によるＧＵＩの例である。
【発明を実施するための形態】
【００１５】
設計技術者は、異なる設計選択肢の性能のシミュレーションおよび異なる設計代案の評価を含む、車両設計の設計空間探索のためのモデリングソフトウェアを用いる。車両設計に適したモデリングソフトウェアとして、例えば、ＭａｐｌｅＳｉｍといったＭｏｄｅｌｉｃａプラットフォームがある。
【００１６】
設計技術者は、自分の車両設計がある特定の強い制約に適合するか否かを判定するために、自分の車両設計をチェックしなければならない。当該制約は、政府機関、規格作成団体または車両の製造者によって設定される。
【００１７】
車両設計についての強い制約は、意図された目的で運転者が車両を用いるあらゆる状況に常に適用される制約を含む。例えば、車両が公道で法定制限に準拠した速度で運転されている限り、ドライブシャフトは折損してはならず、車両は、アクセルを踏んでいる限り前進し続けなければならない。
【００１８】
車両設計は、ＡＤＡＳソフトウェアを含むことができる。オランダのＴＡＳＳ  Ｉｎｔｅｒｎａｔｉｏｎａｌによって公開されているＰｒｅＳｃａｎといったＡＤＡＳシミュレーションツールは、ＡＤＡＳソフトウェアが実際の車両に搭載される前に、仮想道路環境および車両運動力学環境においてＡＤＡＳソフトウェアの正確さをテストするために広く用いられている。業界規格を満たすＡＤＡＳソフトウェアを用いたＡＤＡＳシミュレーションを達成するために、設計技術者は、ＡＤＡＳソフトウェアおよび仮想テスト環境における車両設計を表す仮想車両の他の挙動を含む車両設計の性能を実証する多数のテストシナリオを作成する必要がある。
【００１９】
仮想テスト環境におけるテストシナリオを手動で生成するプロセスは時間を要する。例えば、各テストシナリオは、開発者によってハンドコーディングされ、異なる摩擦係数および回転角度を有する様々な仮想車道、仮想車道上にある他の車両、交通管理機器（交通信号、停止標識、踏切など）、歩行者などのような多くの異なる詳細を含まなければならない。開発者は、これらのすべての詳細をハンドコーディングする必要を回避したいはずである。本明細書に記載するグラフィカル・ユーザ・インターフェース（ＧＵＩ）システムは、開発者が仮想車道上のその他の車両をハンドコーディングせずに当該車両設計をテストすることを可能にする。
【００２０】
提案車両の設計をテストするための現在のプロセスのもう１つの欠陥は、シミュレートされるシナリオの多くの事例が最良形態に従う必要があるという点である。
例えば、仮想車両は、ＡＤＡＳソフトウェアを含む車両設計に基づいて実際の車両が製造される前に、仮想テスト環境において百万マイルにわたってテストされることが必要となる。現在市販されているＡＤＡＳソフトウェアは、一度に仮想車両の１回のシミュレーションを可能にするにすぎず、テストは、仮想テスト環境における何十万マイルもの走行を経なければならないため、テストを完了するのに何ヶ月も、または何年間さえも要する場合がある。以下で述べるシミュレーションシステムは、多くのユーザ（例えば、数十人、数百人、数千人、または数百万人のユーザ）が同時に仮想車両をテストし、仮想車両の性能を記述する車両シミュレーションデータを開発者に提供することを可能にすることによってこの問題を解決する。
本発明者らの研究によれば、提案車両の設計を、本シミュレーションシステムを用いれば２４時間未満で十分にテストすることができる。例えば、百万人のユーザが任意の２４時間の間に仮想テスト環境において１マイルにわたって仮想車両を運転した場合、２４時間経過後に、提案車両の設計が十分にテストされることになる。
【００２１】
いくつかの実装形態において、シミュレーションシステムは、車両モデル生成アプリケーションと、制御ソフトウェアモデル生成アプリケーションと、ゲームエンジンとを含む。シミュレーションシステムはネットワークに通信可能に結合することができる。シミュレーションシステムは開発者によって運用される。また、開発者は人間を含む。この人間は設計技術者を含む。開発者はシミュレーションシステムを用いて提案車両を設計することができる。
【００２２】
いくつかの実装形態において、開発者は、１つまたは複数のモデル生成アプリケーションを用いて車両運動力学モデルおよび制御ソフトウェアモデルを開発する。例えば、車両モデル生成アプリケーションは、開発者からの入力に基づいて車両運動力学モデルを生成する。制御ソフトウェアモデル生成アプリケーションは、開発者からの入力に基づいて制御ソフトウェアモデルを生成することができる。車両運動力学モデルは、提案車両の設計の各部分を含む。制御ソフトウェアモデルは、提案車両の設計に含まれるＡＤＡＳソフトウェアを含む。また、提案車両は、自律型車両または半自律型車両を含んでもよい。
【００２３】
いくつかの実装形態において、開発者はゲームエンジンを用いて道路モデルを開発する
ことができる。例えば、ゲームエンジンは、開発者からの入力に基づいて道路モデルを生成することができる。道路モデルは、仮想テスト環境内で提案車両および提案車両に含まれる制御ソフトウェアをシミュレートする仮想車両の性能をテストするための仮想テスト環境を生成するように構成される。道路モデルは、実世界における道路システムに基づくものであってもよい。例えば、ゲームエンジンは、実世界における道路モデルセットを記述するデータを含むデータベースに通信可能に結合することができる。
【００２４】
いくつかの実装形態において、開発者は、車両運動力学モデルおよび制御ソフトウェアモデルをゲームエンジンにアップロードすることができる。またゲームエンジンは道路モデルも含むことができる。
【００２５】
いくつかの実装形態において、ゲームエンジンは実行可能ファイルを構築する。例えば、ゲームエンジンは、車両運動力学モデル、制御ソフトウェアモデルおよび道路モデルに基づいて実行可能ファイルをコンパイルする。実行可能ファイルは、プロセッサによって実行され、プロセッサに、仮想テスト環境において仮想車両のシミュレーションを提供させるように構成される。プロセッサは、クライアント装置の要素とすることができる。また、クライアント装置のユーザは、仮想テスト環境において仮想車両を運転することができる。ユーザがテスト環境において仮想車両を運転することで、実行可能ファイル（または何らかの他のクライアント側構成要素）は、仮想車両および仮想車両に含まれる制御ソフトウェアの性能を記述する車両シミュレーションデータを生成する。
【００２６】
いくつかの実装形態において、シミュレーションシステムは実行可能ファイルのコピーを１台または複数のクライアント装置へ配布する。１台または複数のクライアント装置もネットワークに通信可能に結合される。また、シミュレーションシステムは、ネットワークを介して実行可能ファイルのコピーを１台または複数のクライアント装置へ配布することができる。
【００２７】
クライアント装置は、ユーザによって操作されるデバイスである。ユーザは人間である。クライアント装置はプロセッサベースのコンピューティングデバイスを含むことができる。例えば、クライアント装置には、スマートフォン、ラップトップ、タブレット・コンピューティング・デバイス、スマートウォッチ、セットトップボックス、スマートテレビ、ゲームコンソールなどが含まれうる。
【００２８】
いくつかの実装形態において、クライアント装置は、仮想テスト環境においてテストされるべき仮想車両を含むシミュレーションを提供するために実行可能ファイルを実行する。仮想車両は車両運動力学モデルおよび制御ソフトウェアモデルに基づいて構築される。仮想テスト環境は道路モデルに基づいて構築される。仮想テスト環境は、他の車両、歩行者、交通管理機器などといった車道オブジェクトを含むことができる。シミュレーションにおける道路上のオブジェクトのうちのいくつかは、ほぼリアルタイムで他のユーザによって運転されている仮想車両とすることができる。また、これらの仮想車両は、同じモデルセットに基づくものであってもよいし、異なるモデルセットに基づくものであってもよい。例えば、２台以上のクライアント装置が実行可能ファイルのそれぞれのコピーを同時に実行していてもよい。
【００２９】
いくつかの実装形態において、クライアント装置は、シミュレートされる車両および車両に含まれるソフトウェアの性能を記述するデータである車両シミュレーションデータを収集する。
【００３０】
いくつかの実装形態において、クライアント装置は、車両シミュレーションデータをシミュレーションシステムへ送信する。
【００３１】
いくつかの実装形態において、シミュレーションシステムは、車両シミュレーションデータの集合（以下、車両シミュレーションデータセット）を形成するために、複数のクライアント装置から受信した車両シミュレーションデータを集約することができる。
【００３２】
いくつかの実装形態において、開発装置は、車両シミュレーションデータセット、およびオプションとして、シミュレーションシステムによって提供された解析を含むＧＵＩを出力することができる。
【００３３】
いくつかの実装形態において、開発者は、車両シミュレーションデータセットに基づき、１つまたは複数のモデル生成アプリケーションを用いて、修正後の車両運動力学モデルまたは修正後の制御ソフトウェアモデルを開発することができる。
【００３４】
いくつかの実装形態においては、提案車両を、修正後の車両運動力学モデルまたは修正後の制御ソフトウェアモデルのうちの少なくともいずれかに基づいて製造することができる。
【００３５】
（システム概要）
図１は、いくつかの実施形態によるシミュレーションシステム１９９のための例示的動作環境１００を示すブロック図である。動作環境１００は、クライアント１０７と開発装置１５０を含む。図示の実施形態において、動作環境１００のこれらのエンティティはネットワーク１０５を介して通信可能に結合される。クライアント１０７はユーザ１０３によって操作される。開発装置１５０は開発者１０４によって操作される。クライアント１０７は、開発装置１５０によってコンパイルされた実行可能ファイル１３０を実行したことに応答した出力としてＧＵＩ１３３を提供する。
動作環境１００は、各々が異なるユーザ１０３によって操作される複数のクライアント１０７を含む。複数のクライアント１０７は各々、実行可能ファイル１３０の独自のコピーを含み、実行可能ファイル１３０を実行したことに応答して車両シミュレーションデータ１６３を生成する。複数のクライアント１０７は、ネットワーク１０５を介して開発装置１５０へ車両シミュレーションデータ１６３を送信することができる。開発装置１５０は、複数のクライアント１０７から車両シミュレーションデータ１６３を受信したことに応答した出力としてＧＵＩ１３４を提供する。
【００３６】
開発装置１５０およびクライアント１０７は例として示されたものである。図１には、１台の開発装置１５０が示されているが、本開示は１台または複数の開発装置１５０を有する動作環境１００に適用できる。さらに、図１には、開発装置１５０と複数のクライアント１０７とに結合された１つのネットワーク１０５が示されているが、実際には、１つまたは複数のネットワーク１０５をこれらのエンティティに接続することができる。
【００３７】
ネットワーク１０５は従来型の有線または無線とすることができ、スター型構成、トークンリング構成、または他の構成を含む多くの異なる構成を有しうる。さらに、ネットワーク１０５は、ローカル・エリア・ネットワーク（ＬＡＮ）、広域ネットワーク（ＷＡＮ）（例えばインターネット）、または、複数のデバイスが通信するための他の相互接続データパスを含むことができる。いくつかの実装形態において、ネットワーク１０５はピア・ツー・ピア・ネットワークとすることができる。またネットワーク１０５は、多種多様な通信プロトコルでデータを送るための電気通信ネットワークの各部分に結合され、またはこれらを含んでいてもよい。いくつかの実装形態において、ネットワーク１０５は、ショート・メッセージ・サービス（ＳＭＳ）、マルチメディア・メッセージング・サービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メールなどによってデータを送受信するためのＢｌｕｅｔｏｏｔｈ（登録商標）通信
ネットワークまたはセルラ通信ネットワークを含む。ネットワーク１０５は、３Ｇ、４Ｇ、ＬＴＥ、ボイスオーバＬＴＥ（ＶｏＬＴＥ）、または任意の他のモバイル・データ・ネットワークもしくはモバイル・データ・ネットワークの組み合わせといったモバイル・データ・ネットワークとすることができる。
【００３８】
開発装置１５０は、プロセッサとメモリとネットワーク通信機能とを含むハードウェアサーバを含むことができる。また開発装置１５０は、ラップトップ、パーソナルコンピュータ、タブレットコンピュータまたは何らかの他のプロセッサベースのコンピューティングデバイスを含むこともできる。開発装置１５０はネットワーク１０５に通信可能に結合することができる。
【００３９】
開発装置１５０は開発者１０４によって操作される。開発者１０４は人間の設計技術者である。開発者１０４は開発装置１５０を用いて提案車両を開発することができる。提案車両は自律型車両または半自律型車両を含んでもよい。また、提案車両はＡＤＡＳソフトウェアを含んでもよい。
【００４０】
開発装置１５０は、シミュレーションシステム１９９、モデル生成アプリケーション１４０、実行可能ファイル１３０、シミュレーションマネージャ１９８、車両シミュレーションデータセット１４７、および修正モデルデータ１３５の各要素のうちの１つまたは複数を含むことができる。
【００４１】
シミュレーションシステム１９９は、複数のクライアント１０７から車両シミュレーションデータセット１４７をクラウドソース（クラウドを介して収集）し、修正モデルデータ１３５を生成し、開発者１０４が提案車両の設計を修正するのを支援するために開発者１０４にＧＵＩ１３４を提供するコンピューティングデバイスを含む。シミュレーションシステム１９９については、図２Ａ、図２Ｂ、図３Ａ、図３Ｂ、図６Ａおよび図６Ｂを参照して以下でより詳細に説明する。
【００４２】
シミュレーションシステム１９９は、車両運動力学モデル１１０、制御ソフトウェアモデル１１５、および道路モデル１２５の各要素のうちの１つまたは複数を含む。
【００４３】
いくつかの実装形態において、車両運動力学モデル１１０は、提案車両の物理的現象および動きを推定するように動作するソフトウェアを含む。例えば、車両運動力学モデル１１０は、実行可能ファイル１３０の一部分とすることができる。クライアント１０７は実行可能ファイル１３０を実行し、結果として提案車両の仮想シミュレーションが得られる。例えば、シミュレーションは、提案車両を表す仮想車両および仮想車両を運転するための仮想テスト環境を含む。
ユーザ１０３が仮想テスト環境において仮想車両を運転する際に、クライアント１０７は、（１）仮想車両を運転するユーザが行った動作を表すユーザ入力、および（２）当該ユーザ入力を行った際の仮想テスト環境を表すテストシナリオデータ１６１を収集する。
仮想テスト環境は、車道の角度、車道の摩擦係数、車道上に存在する他の仮想車両、および、他の仮想車両が仮想車両の性能に及ぼす影響、歩行者および歩行者が仮想車両の性能に及ぼす影響、交通管理機器および交通管理機器が仮想車両の性能に及ぼす影響、ユーザ入力時に仮想テスト環境に含まれる任意の他の要素、を含むことができる。
また、ユーザ入力を表すデータ、および、仮想テスト環境を表すデータには、これら２つのデータが時刻によって相関／関連付けられるようにタイムスタンプすることができる。
クライアント１０７は、テストシナリオデータ１６１を収集し、ネットワーク１０５を介して開発装置１５０へ送信する。開発装置１５０は、テストシナリオデータセット１４６を形成するために複数のクライアント１０７から送信されたテストシナリオデータ１６
１を集約する。車両運動力学モデル１１０は、テストシナリオデータ１６１（車両運動力学モデル１１０がネットワーク１０５のクライアント１０７側に存在する場合）またはテストシナリオデータセット１４６（車両運動力学モデル１１０がネットワーク１０５の開発装置１５０側に存在する場合）に一部基づいて、提案車両の物理的現象および動きを推定するソフトウェアを含む。このようにして、車両運動力学モデル１１０は、仮想テスト環境において提案車両を正確に表すために、仮想車両がある時間にユーザ入力および仮想テスト環境にどのように応答するかを推定する。これによりクライアント１０７は、提案車両が実世界において、ユーザ入力に対応する方法で運転されたときに、仮想テスト環境と類似した実環境において提案車両がどのように動くかを正確に記述した性能データ１６０を収集することができる。
【００４４】
モデル生成アプリケーション１４０は、車両モデル生成アプリケーションを含む（例えば、以下で図２Ａについて記述する要素１４０Ａを参照されたい）。車両モデル生成アプリケーションは、開発者１０４によって提供された入力に基づいて車両運動力学モデル１１０を生成するように動作するソフトウェアを含む。車両モデル生成アプリケーションの例には、Ｄｙｍｏｌａ（フランス、ヴェリジー＝ヴィラクブレー、ルンド、Ｄａｓｓａｕｌｔ  Ｓｙｓｔｅｍｅｓ  ＡＢ社製）、ＭａｐｌｅＳｉｍ（カナダ、オンタリオ州、ウォータールー、Ｍａｐｌｅｓｏｆｔ社製）、または何らかの他のＭｏｄｅｌｉｃａプラットフォームなどを含む。
【００４５】
いくつかの実装形態において、制御ソフトウェアモデル１１５は、テストシナリオデータ１６１（車両運動力学モデル１１０がネットワーク１０５のクライアント１０７側に存在する場合）またはテストシナリオデータセット１４６（車両運動力学モデル１１０がネットワーク１０５の開発装置１５０側に存在する場合）に一部基づいて、提案車両におけるＡＤＡＳソフトウェアの性能を推定するように動作するソフトウェアを含む。このようにして、制御ソフトウェアモデル１１５は、仮想テスト環境において提案車両を正確に表すために、ＡＤＡＳソフトウェアがある時間にユーザ入力および仮想テスト環境にどのように応答するかを推定する。これによりクライアント１０７は、提案車両が実世界においてユーザ入力に対応する方法で運転されたときに、仮想テスト環境と類似した実環境において提案車両またはＡＤＡＳソフトウェアがどのように動くかを正確に記述した性能データ１６０を収集することができる。
【００４６】
モデル生成アプリケーション１４０は、制御ソフトウェアモデル生成アプリケーションを含む（例えば、以下で図２Ａについて記述する要素１４０Ｂを参照されたい）。車両モデル生成アプリケーションは、開発者１０４によって提供された入力に基づいて制御ソフトウェアモデル１１５を生成するように動作するソフトウェアを含む。車両モデル生成アプリケーションの例には、Ｓｉｍｕｌｉｎｋ（米国マサチューセッツ州ＭａｔｈＷｏｒｋｓ社製）、ＰｒｅＳｃａｎ（オランダ、ＴＡＳＳ  Ｉｎｔｅｒｎａｔｉｏｎａｌ社製）、または制御ソフトウェアモデルを生成するための何らかの他のソフトウェアを含む。
【００４７】
いくつかの実装形態において、道路モデル１２５は、プロセッサに仮想テスト環境を生成させるためのソフトウェアである。
【００４８】
道路モデル１２５は、仮想テスト環境に含まれる車道システムのための以下のパラメータのうちの１つまたは複数を定義することができる。
速度制限、車線の総数、右側車線の総数、左側車線の総数、車道の長さ、車線ごとの車線幅、車線ごとの境界線オプション（例えば「境界線なし」「破線または一点鎖線」「実線二重線」「左側が実線で右側が破線」「左側が破線で右側実線」「二重実線」）、外側車線にある車道外側線、カメラといった自動車センサによる境界線オプションまたは車道外側線の可視性（例えば、境界線または車道外側線が不明瞭であり、または古いために、
自律型車両のセンサによって識別されにくいか）、路肩幅、左側または右側の下り法面、左側または右側の車道横断勾配、車道に沿った曲線の配置、車道に沿った曲線の角度、車道に沿った曲線の内側の車道勾配、車道に沿った摩擦係数、車道に沿った摩擦係数の変化および車道上でのこれらの変化の配置等。
【００４９】
シミュレーションシステム１９９はゲームエンジンを含むことができる（例えば、図２Ａの要素２０６を参照されたい）。ゲームエンジン２０６は、ビデオゲームを作成し、開発するように動作するソフトウェアを含む。ゲームエンジン２０６は、開発者１０４によって提供された入力に基づいて道路モデル１２５を生成するためのソフトウェアを含む。ゲームエンジン２０６の例には、Ｕｎｉｔｙゲームエンジン（米国カリフォルニア州、サンフランシスコ、Ｕｎｉｔｙ  Ｔｅｃｈｎｏｌｏｇｉｅｓ社製）、または何らかの他のゲームエンジンが含まれうる。
【００５０】
ゲームエンジン２０６は、車両運動力学モデル１１０、制御ソフトウェアモデル１１５および道路モデル１２５に基づいて実行可能ファイル１３０をコンパイルするように動作するソフトウェアを含む。実行可能ファイル１３０は、クライアント１０７のプロセッサによって実行された場合に、仮想テスト環境における仮想車両のシミュレーションを提供するように動作するソフトウェアを含む。
【００５１】
いくつかの実装形態において、道路モデル１２５は、実世界に存在する車道システムに一部基づくものとすることができる。例えば、ゲームエンジン２０６は車道リアリズムデータを含む（またはこれにアクセスする）ことができる。車道リアリズムデータは、道路モデル１２５に含まれる実世界の車道のそれぞれについて、実世界に実際に存在する車道システムについての以下の車道パラメータのうちの１つまたは複数を記述することができる。
速度制限、車線の総数、右側車線の総数、左側車線の総数、車道の長さ、車線ごとの車線幅、車線ごとの境界線オプション（例えば「境界線なし」「破線または一点鎖線」「実線二重線」「左側が実線で右側が破線」「左側が破線で右側実線」「二重実線」）、外側車線にある車道外側線、カメラといった自動車センサによる境界線オプションまたは車道外側線の可視性（例えば、境界線または車道外側線が不明瞭であり、または古いために、自律型車両のセンサによって識別されにくいか）、路肩幅、左側または右側の下り法面、左側または右側の車道横断勾配、車道に沿った曲線の配置、車道に沿った曲線の角度、車道に沿った曲線の内側の車道勾配、車道に沿った摩擦係数、車道に沿った摩擦係数の変化および車道上でのこれらの変化の配置等。
【００５２】
道路モデル１２５に含まれる、異なる実世界の車道システムは、車道パラメータの異なる組み合わせによって表される。
【００５３】
シミュレーションシステム１９９は、実行可能ファイル１３０の複数のコピーを、ネットワーク１０５を介して複数のクライアント１０７へ配布することができる。複数のクライアント１０７は実行可能ファイル１３０を実行し、シミュレーションシステム１９９へ車両シミュレーションデータ１６３を周期的に報告する。例えば、実行可能ファイル１３０は、シミュレーションシステム１９９へ結果を返すように構成されたコードおよびルーチンを含む。返される結果には、車両シミュレーションデータ１６３が含まれる。シミュレーションシステム１９９は、車両シミュレーションデータセット１４７を形成するために、複数のクライアント１０７から送信された車両シミュレーションデータ１６３を集約することができる。車両シミュレーションデータセット１４７は、２４時間以内に（または７日間以内、または３０日間以内、またはＡＤＡＳソフトウェアを含む車両設計の従来のシミュレーションよりも短い何らかの他の期間）に仮想テスト環境において仮想車両が走行した数百マイル、数千マイル、または数百万マイルもの走行を表すものである。
【００５４】
車両シミュレーションデータセット１４７は、性能データセット１４５、およびテストシナリオデータセット１４６のうちの１つまたは複数を含む。
【００５５】
テストシナリオデータセット１４６については、車両運動力学モデル１１０に関連して前述したので、ここではその説明を繰り返さない。テストシナリオデータセット１４６（またはテストシナリオデータ１６１）の例示的要素が図４Ａおよび図４Ｂに示されている。
【００５６】
性能データセット１４５は、ネットワーク１０５を介してクライアント１０７から受信された性能データ１６０を含む。性能データ１６０は、仮想テスト環境における仮想車両およびＡＤＡＳソフトウェアの性能を表すデータである。例えば、性能データ１６０は、以下のうちの１つまたは複数を表すデータである。
仮想車両のホイールの毎分回転数、シミュレートされたＡＤＡＳセンサデータ、経時的なホイールのトルク、仮想車両の車体およびフレームの性能、仮想車両のホイールの性能、仮想車両のタイヤの性能（タイヤのバーストまたは異常な接地面摩耗が生じたか）、仮想車両が走行した際の仮想テスト環境の道路の性能、仮想車両のブレーキの性能、仮想車両の構成要素がシミュレーションにおいて故障したか否か（例えばアクセルの破損など）、エンジン制御データ、トランスミッション制御データ、ブレーキ制御データ、ＡＤＡＳ制御データ等。
性能データセット１４５（または性能データ１６０）の例示的要素が図４Ａおよび図４Ｂに示されている。
【００５７】
シミュレーションマネージャ１９８は、開発装置１５０から、複数のクライアント１０７上における実行可能ファイル１３０の実行態様を管理するように動作するソフトウェアである。
例えば、実行可能ファイル１３０は、シミュレーションマネージャ１９８を呼び出し、シミュレーションマネージャ１９８に車両シミュレーションデータ１６３を記述するフィードバックを提供することができる。シミュレーションマネージャ１９８は、複数のクライアント１０７にまたがって実行可能ファイル１３０の実行をモニタし、車両シミュレーションデータセット１４７が代表的なサンプルとみなされるための開発者１０４によって設定された閾値を満たすように、様々なシミュレーションのための仮想テスト環境が多様であり、実世界を表すものであることを保証することができる。
また、シミュレーションマネージャ１９８は、閾値が満たされることを保証するように仮想テスト環境を修正させるために、実行可能ファイル１３０に入力を提供することができる。
このようにして、シミュレーションマネージャ１９８は、複数のクライアント１０７への実行可能ファイル１３０の配布後２４時間以内に車両シミュレーションデータセット１４７の代表的なサンプルを取得するようシミュレーションシステム１９９を支援することができる。
【００５８】
シミュレーションシステム１９９は、ある期間に複数のクライアント１０７によって行われた様々なシミュレーションについての、仮想車両のＡＤＡＳソフトウェアを含む仮想車両の性能を表す解析データを視覚的に描写するＧＵＩ１３４を生成することができる。
ＧＵＩ１３４の一例を図６Ａに示す。ＧＵＩは、仮想車両または仮想車両に含まれるＡＤＡＳソフトウェアの性能を改善するために修正されうる車両運動力学モデル１１０または制御ソフトウェアモデル１１５の要素を視覚的に描写したものである。ＧＵＩ１３４は、修正すべき車両運動力学モデル１１０または制御ソフトウェアモデル１１５の態様を選択するために開発者１０４によって選択されうるグラフィック要素を含んでもよい。モデル生成アプリケーション１４０は、この選択に基づいて車両運動力学モデル１１０または
制御ソフトウェアモデル１１５のうちの１つまたは複数を修正し、修正モデルデータ１３５を生成することができる。
【００５９】
修正モデルデータ１３５は、複数のクライアント１０７からクラウドソースされた車両シミュレーションデータセットに基づいて修正された提案車両についての車両運動力学モデル１１０または制御ソフトウェアモデル１１５のうちの１つまたは複数を記述する。
【００６０】
クライアント１０７はプロセッサベースのコンピューティングデバイスを含む。例えば、クライアント１０７は、パーソナルコンピュータ、特定用途のコンピューティングデバイス、ラップトップ、タブレットコンピュータ、スマートフォン、セットトップボックス、スマートテレビ、ゲームコンソールなどうちの１つまたは複数を含むことができる。クライアント１０７は、ネットワーク１０５に通信可能に結合することができる。クライアント１０７は、１つまたは複数の入力を受け取り、１つまたは複数の出力を提供するための従来型の周辺機器を含んでもよい。
【００６１】
クライアント１０７は、実行可能ファイル１３０、シミュレーションアプリケーション１５５、および車両シミュレーションデータ１６３のうちの１つまたは複数を含む。実行可能ファイル１３０および車両シミュレーションデータ１６３については前述したので、ここではこれらの説明を繰り返さない。
【００６２】
シミュレーションアプリケーション１５５は、実行可能ファイル１３０向けのプラットフォームを提供するように動作するソフトウェアを含む。例えば、シミュレーションアプリケーション１５５は、クライアント１０７が実行可能ファイル１３０を実行し、ユーザ１０３にシミュレーションを提供し、シミュレーションシステム１９９に車両シミュレーションデータ１６３を提供するのに必要な任意のソフトウェアを含むことができる。
【００６３】
いくつかの実装形態において、シミュレーションアプリケーション１５５は物理演算エンジンを含むことができる。物理演算エンジンは実行可能ファイル１３０と共に動作することができる。
【００６４】
クライアント１０７は様々な異なるプラットフォームを含むことができる。複数のクライアント１０７のうちのいくつかは、異なる種類のゲームコンソール（例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）ＸＢＯＸ（登録商標）、Ｓｏｎｙ（登録商標）ＰｌａｙＳｔａｔｉｏｎ（登録商標）、Ｎｉｎｔｅｎｄｏ（登録商標）Ｗｉｉ（登録商標）またはこれらの任意の派生製品もしくは新しいバージョン）、様々な種類のパーソナルコンピュータ（Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ａｐｐｌｅ（登録商標）ＯＳまたはＵｎｉｘベースのＯＳ）、様々な種類のスマートフォンまたはタブレットコンピュータ（Ａｎｄｒｏｉｄ（登録商標）、Ａｐｐｌｅ  ｉＯＳ（登録商標）、Ｕｎｉｘベースのモバイルもしくはタブレットコンピュータ動作環境、またはこれらの任意の派生製品もしくは新しいバージョン）などを含むことができる。したがって、実行可能ファイル１３０はプラットフォーム非依存とすることができる。
【００６５】
クライアント１０７は、実行可能ファイル１３０を実行することでＧＵＩ１３３を出力することができる。ＧＵＩ１３３の例が図５Ａおよび図５Ｂに示されている。
【００６６】
クライアント１０７および開発装置１５０は、入力を受け取り、出力を提供する従来型の周辺機器を含んでもよい。
【００６７】
いくつかの実装形態において、シミュレーションシステム１９９は、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ）または特定用途向け集積回路（ＡＳＩＣ）を含
むハードウェアを用いて実施することができる。いくつかの他の実装形態において、シミュレーションシステム１９９は、ハードウェアとソフトウェアの組み合わせを用いて実施することができる。シミュレーションシステム１９９は、デバイスとサーバの組み合わせに、またはデバイスもしくはサーバのうちの１つに記憶することができる。
【００６８】
いくつかの実装形態において、シミュレーションシステム１９９は、図２Ａを参照して以下で説明する、プロセッサ２２５といったプロセッサによって実行された場合に、図３Ａおよび図３Ｂを参照して以下で説明する方法３００の１つまたは複数のステップを行うように構成されたコードおよびルーチンを含む。
【００６９】
（シミュレーションシステムの例）
図２Ａは、いくつかの実施形態によるシミュレーションシステム１９９を含む例示的なコンピュータシステム２００を示すブロック図である。いくつかの実装形態において、シミュレーションシステム１９９は、図３Ａおよび図３Ｂを参照して以下で説明する方法３００の１つまたは複数のブロックを行うようにプログラムされ、または構成された電子デバイスを含むことができる。いくつかの実装形態において、シミュレーションシステム１９９は、シミュレーションシステム１９９に関連して前述した、または図３Ａおよび図３Ｂを参照して以下で説明する方法３００に関連して後述する機能の一部または全部を提供するように構成された専用コンピューティングデバイスを含む。
【００７０】
コンピュータシステム２００は開発装置１５０を含む。コンピュータシステム２００は、シミュレーションシステム１９９、通信ユニット２４５、プロセッサ２２５、メモリ２２７、ディスプレイ２２９、およびシミュレーションマネージャ１９８の各要素のうちの１つまたは複数を含む。コンピュータシステム２００の構成要素はバス２２０によって通信可能に結合されている。いくつかの実施形態において、コンピュータシステム２００の構成要素は、コンピュータシステム２００の構成要素間の通信にバス２２０がなくてもすむように、同じハードウェアにローカルである。いくつかの実施形態においては、バス２２０以外の通信構造または通信方法が実施されうる。
【００７１】
シミュレーションマネージャ１９８については、図１に関連して前述したので、ここではその説明を繰り返さない。
【００７２】
通信ユニット２４５は、ネットワーク１０５との間でデータを送受信するハードウェアを含む。いくつかの実装形態において、通信ユニット２４５は、ネットワーク１０５への、または別の通信路への直接物理接続のためのポートを含む。例えば、通信ユニット２４５は、ＵＳＢ、ＳＤ、ＣＡＴ−５、またはネットワーク１０５との有線接続のための類似のポートを含む。いくつかの実装形態において、通信ユニット２４５は、ＩＥＥＥ８０２．１１、ＩＥＥＥ８０２．１６、Ｂｌｕｅｔｏｏｔｈ（登録商標）、または別の適切な無線通信方法を含む１つまたは複数の無線通信方法を用いてネットワーク１０５または他の通信路とデータを交換するための無線送受信機を含む。
【００７３】
いくつかの実装形態において、通信ユニット２４５は、ショート・メッセージ・サービス（ＳＭＳ）、マルチメディア・メッセージング・サービス（ＭＭＳ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、直接データ接続、ＷＡＰ、電子メール、または別の適切な種類の電子通信によるものを含む、セルラ通信ネットワーク上でデータを送受信するためのセルラ通信送受信機を含む。いくつかの実装形態において、通信ユニット２４５は、有線ポートおよび無線送受信機を含む。また通信ユニット２４５は、ＴＣＰ／ＩＰ、ＨＴＴＰ、ＨＴＴＰＳ、およびＳＭＴＰなどを含む標準ネットワークプロトコルを用いたファイルまたはメディアオブジェクトの配布のためのネットワーク１０５への他の従来型の接続も提供する。
【００７４】
プロセッサ２２５は、計算処理を行い、表示装置へ電子表示信号を提供するための算術論理演算装置、マイクロプロセッサ、汎用コントローラ、または何らかの他のプロセッサアレイを含む。プロセッサ２２５は、データ信号を処理し、複雑命令セットコンピュータ（ＣＩＳＣ）アーキテクチャ、縮小命令セットコンピュータ（ＲＩＳＣ）アーキテクチャ、または命令セットの組み合わせを実施するアーキテクチャを含む様々なコンピューティングアーキテクチャを含むことができる。図２Ａは単一のプロセッサ２２５を含んでいるが、複数のプロセッサ２２５が含まれていてもよい。プロセッサ２２５はグラフィックス処理装置を含むことができる。他のプロセッサ、オペレーティングシステム、センサ、ディスプレイ、および物理構成も可能である。
【００７５】
ディスプレイ２２９は、データの視覚的提示のために構成された電子デバイスである。例えば、ディスプレイ２２９は、ＧＵＩデータ２５２を視覚的に提示するために構成することができる。ディスプレイ２２９はＧＵＩデータ２５２を受け取り、ＧＵＩを出力する。
【００７６】
メモリ２２７は、プロセッサ２２５によってアクセスされ、実行されうる命令またはデータを記憶する、有形の、または非一時的な記憶媒体である。命令またはデータは、本明細書に記載される方法を行うためのコードを含むことができる。メモリ２２７は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）デバイス、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）デバイス、フラッシュメモリ、または何らかの他のメモリデバイスを含むことができる。いくつかの実装形態において、メモリ２２７は、ハード・ディスク・ドライブ、フロッピー・ディスク・ドライブ、ＣＤ−ＲＯＭデバイス、ＤＶＤ−ＲＯＭデバイス、ＤＶＤ−ＲＡＭデバイス、ＤＶＤ−ＲＷデバイス、フラッシュ・メモリ・デバイス、またはより永続的に情報を記憶するための何らかの他の大容量記憶装置を含む、不揮発性メモリまたは類似した非一時的記憶装置および媒体も含む。
【００７７】
メモリ２２７は、車両運動力学モデル１１０、制御ソフトウェアモデル１１５、道路モデル１２５、実行可能ファイル１３０、統合モデル２５０、ＧＵＩデータ２５２、性能データセット１４５、テストシナリオデータセット１４６、シミュレーション結果データ２４４、修正モデルデータ１３５の各要素のうちの１つまたは複数を記憶することができる。車両運動力学モデル１１０、制御ソフトウェアモデル１１５、道路モデル１２５、実行可能ファイル１３０、性能データセット１４５、テストシナリオデータセット１４６、および修正モデルデータ１３５の各要素については図１に関連して前述したので、ここではこれらの説明を繰り返さない。
【００７８】
統合モデル２５０は、車両運動力学モデル１１０と制御ソフトウェアモデル１１５とを統合して得られる車両モデルを表すデータである。この統合の結果が統合モデル２５０である。統合モデル２５０の一例が図２Ｂに示されている。
【００７９】
ＧＵＩデータ２５２は、ディスプレイ２２９（またはクライアント１０７のディスプレイ）にＧＵＩを出力するのに用いられるグラフィックデータを含む。例えば、ＧＵＩデータ２５２は、図５Ａ、図５Ｂ、図６Ａ、および図６Ｂのうちの１つまたは複数に示されているＧＵＩ１３３、ＧＵＩ１３４のうちの１つまたは複数を出力するのに用いられる。
【００８０】
いくつかの実施形態においては、実行可能ファイル１３０を実行するクライアント１０７によって提供されるシミュレーションの様々な態様が、シミュレーションマネージャ１９８によって提供される。例えば、シミュレーションマネージャ１９８は、クライアント１０７のためのクラウドベースのリソースとすることができる。これは有利には、クライアント１０７を、モバイルプロセッサ、ＡＲＭプロセッサまたはＧＰＵに基づいて動作す
るデバイスとすることを可能にする。シミュレーション結果データ２４４は、クライアント１０７のためのシミュレーションの各態様を実行するシミュレーションマネージャ１９８から得られるデータを表す。シミュレーションマネージャ１９８は、シミュレーションがクライアント１０７のユーザ１０３に実質的に遅延のないユーザ体験を提供するように、リアルタイム（またはほぼリアルタイム）で、クライアント１０７へシミュレーション結果データ２４４を送信することができる。
【００８１】
いくつかの実装形態において、シミュレーションシステム１９９は、通信モジュール２０２、統合モジュール２０４、ゲームエンジン２０６、集約モジュール２０８、決定モジュール２１０、ＧＵＩモジュール２１２、車両モデル生成アプリケーション１４０Ａ、および制御ソフトウェアモデル生成アプリケーション１４０Ｂの各要素のうちの１つまたは複数を含む。シミュレーションシステム１９９のこれらの要素はバス２２０に通信可能に結合することができる。シミュレーションシステム１９９のこれらの要素のうちの１つまたは複数を、シミュレーションシステム１９９のメモリ２２７に記憶し、プロセッサ２２５によってアクセス可能、実行可能とすることができる。シミュレーションシステム１９９のゲームエンジン２０６、車両モデル生成アプリケーション１４０Ａ、および制御ソフトウェアモデル生成アプリケーション１４０Ｂの各要素については図１に関連して前述したので、ここではこれらの説明を繰り返さない。
【００８２】
通信モジュール２０２は、シミュレーションシステム１９９とコンピュータシステム２００の他の構成要素との間の通信を処理するように構成されたコードおよびルーチンを含む。いくつかの実装形態において、通信モジュール２０２は、開発装置１５０と、図１に関連して前述した環境１００の他の構成要素との間の通信を処理するための後述する機能を提供するようにプロセッサ２２５によって実行可能な命令セットを含むことができる。いくつかの実装形態において、通信モジュール２０２は、シミュレーションシステム１９９のメモリ２２７に記憶することができ、プロセッサ２２５によってアクセス可能、実行可能とすることができる。
【００８３】
通信モジュール２０２は、通信ユニット２４５を介して、ネットワーク１０５との間でデータを送受信する。例えば、通信モジュール２０２は、通信ユニット２４５を介して、ネットワーク１０５から性能データセット１４５およびテストシナリオデータセット１４６を受信する。通信モジュール２０２は、通信ユニット２４５を介して複数のクライアント１０７へ実行可能ファイル１３０を送信することができる。
【００８４】
いくつかの実施形態において、通信モジュール２０２は、シミュレーションシステム１９９の構成要素からデータを受け取り、データをメモリ２２７に記憶する。例えば、通信モジュール２０２は、車両モデル生成アプリケーション１４０Ａから車両運動力学モデル１１０を受け取り、車両運動力学モデル１１０をメモリ２２７に記憶する。
【００８５】
統合モジュール２０４は、統合モデル２５０を形成するために車両運動力学モデル１１０と制御ソフトウェアモデル１１５とを統合するように構成されたコードおよびルーチンを含む。いくつかの実装形態において、統合モジュール２０４は、コンピュータシステム２００のメモリ２２７に記憶することができ、プロセッサ２２５によってアクセス可能、実行可能とすることができる。
【００８６】
集約モジュール２０８は、（１）性能データセット１４５を形成するために複数のクライアント１０７から受け取られた性能データ１６０を集約し、（２）テストシナリオデータセット１４６を形成するために複数のクライアント１０７から受け取られたテストシナリオデータ１６１を集約するように構成されたコードおよびルーチンを含む。集約モジュール２０８は、車両シミュレーションデータセット１４７を形成するために性能データセ
ット１４５およびテストシナリオデータセット１４６をさらに集約することができる。いくつかの実装形態において、集約モジュール２０８は、コンピュータシステム２００のメモリ２２７に記憶することができ、プロセッサ２２５によってアクセス可能、実行可能とすることができる。
【００８７】
いくつかの実装形態において、性能データセット１４５は、仮想車両の性能を記述する個々のデータ点（data point）を含む。個々のデータ点は、１つまたは複数時点での仮想車両の性能を表すようにタイムスタンプされる。これは有利には、仮想車両の性能が、異なる仮想テスト環境条件の下で、異なるユーザ入力に応答して、異なる時点にアクセスされることを可能にする。
性能データセット１４５に含まれる個々のデータ点は、性能データセット内の当該データ点に寄与したユーザ入力を提供した特定のユーザと関連付けることができる。
また、性能データセット１４５に含まれる個々のデータ点は、シミュレーションデータ内の当該データ点に寄与した特定のユーザのユーザ入力を指示するテストシナリオデータセット１４６内のデータ点と関連付けることもできる。
さらに、テストシナリオデータセット１４６内のデータ点は、関連付けられたユーザ入力ごとに仮想テスト環境に存在する条件を表すテスト環境データを含むことができる。
このように、性能データセット１４５に含まれる各データ点を、当該データ点に寄与した１つまたは複数のユーザ入力を特定のユーザが提供した時点のテスト環境を記述するテストシナリオデータ１４６内のデータ点と関連付けることができる。
【００８８】
決定モジュール２１０は、仮想車両の不足性能を特定するために（集合的に車両シミュレーションデータセット１４７を形成する）性能データセット１４５およびテストシナリオデータセット１４６を解析するように構成されたコードおよびルーチンを含む。
例えば、決定モジュール２１０は、強い制約が満たされなかった事例を特定するために、車両シミュレーションデータセット１４７を解析する。強い制約は、政府規制機関、規格設定団体、開発者１０４または提案車両の製造者によって定義されうる。
また、決定モジュール２１０は、車両運動力学モデル１１０または制御ソフトウェアモデル１１５のうちの１つまたは複数を修正するための修正案のセットを決定することができ、修正案は仮想車両の不足性能を修正するように構成される。例えば、決定モジュール２１０は、修正される車両の設計に含まれる１つまたは複数のパラメータを識別するための到達可能性解析（reachability analysis）、および仮想車両の性能を修正するために
、それら識別されたパラメータの新しい値を何にすべきかを提供することができる。決定モジュール２１０は、修正モデルデータ１３５を生成させるために、車両モデル生成アプリケーション１４０Ａまたは制御ソフトウェアモデル生成アプリケーション１４０Ｂのうちの１つまたは複数へ新しい値を提供することができる。
【００８９】
いくつかの実装形態において、決定モジュール２１０は、コンピュータシステム２００のメモリ２２７に記憶することができ、プロセッサ２２５によってアクセス可能、実行可能とすることができる。
【００９０】
いくつかの実施形態において、到達可能性解析は、統合モデル２５０を複数のサブシステムへ解析的に分割する。到達可能性解析は、１つまたは複数の保証を異なるサブシステムと関連付けることを含む。１つまたは複数の保証は、その１つまたは複数の保証と関連付けられるサブシステムによって満足されなければならない１つまたは複数の強い制約を含む。到達可能性解析は、サブシステムごとの請負事項（contract）を決定することができる。請負事項は、サブシステムが１つまたは複数の想定を含むあらゆる状況について保証を満足させることを含む。１つまたは複数の想定には、例えば、提案車両がその意図される目的に用いられていること、提案車両が法に準拠したやり方で用いられていること、提案車両が過失のないやり方で用いられていること、提案車両が無謀でないやり方で用い
られていることなどのうちの１つまたは複数が含まれうる。請負事項が満足されない場合には、決定モジュール２１０は、１つまたは複数のパラメータうちのどれが否定的な結果（negative outcome）に影響を及ぼしたか判定することができる。
【００９１】
決定モジュール２１０は、否定的な結果に影響を及ぼした１つまたは複数のパラメータを修正するための１つまたは複数のオプションを決定する。例えば、あるオプションは、「第１のパラメータの第１の値が第２の値に修正される」ことを含むことができる。このオプションは、他のパラメータの現在の値が新しい値に修正されることを含むことができる。決定モジュール２１０は、統合モデル２５０のパラメータを修正するためのオプションのセットを形成するために、否定的な結果に影響を及ぼしたパラメータの異なる組み合わせについてこのプロセスを複数回繰り返すことができる。オプションの各々は、各オプションの実施により、１つまたは複数の想定（例えば、提案車両がその意図される目的に用いられていること、提案車両が法に違反して用いられていないこと、提案車両が不注意に用いられていないことなど）を含むあらゆる状況について１つまたは複数の保証を満足させるはずの（修正モデルデータ１３５によって記述される）修正統合モデルが得られるように、決定モジュール２１０によって構成される。
１つまたは複数のオプションは、メモリ２２７に記憶され、開発者１０４によって実施すべき１つまたは複数のオプション（例えば、図６Ａのグラフィック要素６１０）を決定するのに用いられるＧＵＩ１３４を生成するのに用いることができる。これらのオプションは、ランク順にＧＵＩ１３４に表示することができる。オプションを実施した結果として、修正モデルデータ１３５（例えば、図６Ｂの要素１３５）を生成することができる。なお、修正モデルデータは、開発者１０４によって受け入れられる場合も、受け入れられない場合もある。
【００９２】
ＧＵＩモジュール２１２は、ＧＵＩデータ２５２に基づいて１つまたは複数のＧＵＩ１３４を生成するためのコードおよびルーチンを含む。いくつかの実装形態において、ＧＵＩモジュール２１２は、コンピュータシステム２００のメモリ２２７に記憶することができ、プロセッサ２２５によってアクセス可能、実行可能とすることができる。
【００９３】
図２Ｂは、いくつかの実装形態によるシミュレーションシステム１９９を含む例示的フロープロセス２７０を示すブロック図である。
【００９４】
いくつかの実装形態において、開発者１０４は、車両モデル生成アプリケーション１４０Ａ、制御ソフトウェアモデル生成アプリケーション１４０Ｂおよびゲームエンジン２０６に入力を提供する。
【００９５】
いくつかの実装形態において、車両モデル生成アプリケーション１４０Ａは、開発者１０４からの１つまたは複数の入力に少なくとも部分的に基づいて車両運動力学モデル１１０を生成する。
【００９６】
いくつかの実装形態において、制御ソフトウェアモデル生成アプリケーション１４０Ｂは、開発者１０４からの１つまたは複数の入力に少なくとも部分的に基づいて制御ソフトウェアモデル１１５を生成する。
【００９７】
いくつかの実装形態において、ゲームエンジン２０６は、開発者１０４からの入力に少なくとも部分的に基づいて道路モデル１２５を生成する。またゲームエンジン２０６は、１つまたは複数の実世界の車道システムを記述するデータに基づいて道路モデル１２５を生成することもできる。
【００９８】
いくつかの実装形態において、車両運動力学モデル１１０および制御ソフトウェアモデ
ル１１５は統合モジュール２０４への入力である。統合モジュール２０４は、車両運動力学モデル１１０および制御ソフトウェアモデル１１５に基づいて統合モデル２５０を生成することができる。
【００９９】
道路モデル１２５および統合モデル２５０はゲームエンジン２０６への入力とすることができる。ゲームエンジン２０６は、道路モデル１２５および統合モデル２５０に少なくとも部分的に基づいて実行可能ファイル１３０をコンパイルすることができる。
【０１００】
（方法の例）
図３Ａおよび図３Ｂは、いくつかの実装形態において、提案車両を同時にシミュレートした複数のクライアント装置からクラウドソースされた車両シミュレーションデータセットに基づいて、提案車両について生成された、修正モデルデータのためのＧＵＩを生成する例示的方法３００のフローチャートである。
【０１０１】
いくつかの実装形態において、ステップ３０２で、開発者１０４が、１つまたは複数のモデル生成アプリケーション１４０を用いて車両運動力学モデル１１０および制御ソフトウェアモデル１１５を開発する。例えば、車両モデル生成アプリケーション１４０Ａが、開発者１０４の入力に基づいて車両運動力学モデル１１０を生成する。制御ソフトウェアモデル生成アプリケーション１４０Ｂは、開発者１０４の入力に基づいて制御ソフトウェアモデル１１５を生成することができる。車両運動力学モデル１１０は、提案車両の設計の各部分を含むことができる。制御ソフトウェアモデル１１５は、提案車両の設計に含まれるＡＤＡＳソフトウェアをモデル化する。提案車両は、自律型車両または半自律型車両を含んでもよい。
【０１０２】
いくつかの実装形態において、ステップ３０４で、開発者１０４が、ゲームエンジン２０６を用いて道路モデル１２５を開発する。例えば、ゲームエンジン２０６は、開発者１０４の入力に基づいて道路モデル１２５を生成する。道路モデル１２５は、仮想テスト環境内で提案車両および提案車両の設計に含まれる制御ソフトウェア（例えば、ＡＤＡＳソフトウェア）をシミュレートする仮想車両の性能をテストするための仮想テスト環境を生成するように構成される。道路モデル１２５は、実世界車道システムに基づいてもよい。例えば、ゲームエンジン２０６は、実世界車道モデルセットを記述するデータを含むデータベースに通信可能に結合することができる。
【０１０３】
いくつかの実装形態において、ステップ３０６で、開発者１０４が、車両運動力学モデル１１０および制御ソフトウェアモデル１１５をゲームエンジン２０６にアップロードする。ゲームエンジン２０６は、道路モデル１２５を含んでもよい。
【０１０４】
いくつかの実装形態において、ステップ３０８で、ゲームエンジン２０６が実行可能ファイル１３０をコンパイルする。例えば、ゲームエンジン２０６は、車両運動力学モデル１１０、制御ソフトウェアモデル１１５および道路モデル１２５に基づいて実行可能ファイル１３０をコンパイルする。実行可能ファイル１３０は、プロセッサによって実行され、プロセッサに、仮想テスト環境において仮想車両のシミュレーションを提供させるように構成される。プロセッサは、クライアント１０７の要素であってもよい。クライアント１０７のユーザ１０３は、仮想テスト環境において仮想車両を運転することができる。ユーザ１０３が仮想テスト環境において仮想車両を運転する際に、実行可能ファイル１３０（または何らかの他のクライアント側構成要素）は、仮想車両および仮想車両に含まれる制御ソフトウェアの性能を表す車両シミュレーションデータ１６３を収集する。
【０１０５】
いくつかの実装形態において、ステップ３１０で、シミュレーションシステム１９９が実行可能ファイル１３０のコピーを複数のクライアント１０７へ配布する。複数のクライ
アント１０７もネットワーク１０５に通信可能に結合することができる。シミュレーションシステム１９９は、実行可能ファイル１３０のコピーを、ネットワーク１０５を介して複数のクライアント１０７へ配布することができる。
【０１０６】
いくつかの実装形態において、ステップ３１２で、クライアント１０７が、仮想テスト環境においてテストされるべき仮想車両を含むシミュレーションを提供するために、実行可能ファイル１３０を実行する。仮想車両は車両運動力学モデル１１０および制御ソフトウェアモデル１１５に基づいて構築される。仮想テスト環境は道路モデル１２５に基づいて構築される。仮想テスト環境には、他の車両、歩行者、交通管理機器などといった車道オブジェクトが含まれる。
【０１０７】
次に図３Ｂを参照する。シミュレーションにおける車道オブジェクトのうちのいくつかは、ほぼリアルタイムでクライアント１０７の他のユーザによって運転されている仮想車両とすることができ、これらの仮想車両は、同じモデルセットに基づくものとすることも、異なるモデルセットに基づくものとすることもできる。例えば、複数のクライアント１０７に含まれる２つ以上のクライアント１０７が実行可能ファイル１３０のそれぞれのコピーを同時に実行していてもよい。これらのクライアント１０７のユーザ１０３は、同時に仮想テスト環境における同じ車道上で仮想車両を運転していてもよい（ステップ３１４）。
【０１０８】
いくつかの実装形態において、ステップ３１６で、複数のクライアント１０７が、仮想車両および仮想車両に含まれるシミュレート対象ソフトウェアの性能を記述する車両シミュレーションデータ１６３を収集する。
【０１０９】
いくつかの実装形態において、ステップ３１８で、複数のクライアント１０７が、ネットワーク１０５を介してシミュレーションシステム１９９へ車両シミュレーションデータ１６３を送信する。
【０１１０】
いくつかの実装形態において、ステップ３２０で、シミュレーションシステム１９９が、車両シミュレーションデータセット１４７を形成するために複数のクライアント１０７から受信された車両シミュレーションデータ１６３を集約する。
【０１１１】
いくつかの実装形態において、ステップ３２２で、シミュレーションシステム１９９が、車両シミュレーションデータセット１４７（または車両シミュレーションデータ１４７を記述する解析データ）を含むＧＵＩ１３４を出力する。
【０１１２】
いくつかの実装形態において、ステップ３２４で、開発者１０４が、車両シミュレーションデータセット１４７に基づき、１つまたは複数のモデル生成アプリケーション１４０を用いて車両運動力学モデルまたは制御ソフトウェアモデルを修正する。
【０１１３】
いくつかの実装形態においては、提案車両を、修正後の車両運動力学モデルまたは修正後の制御ソフトウェアモデルのうちの１つまたは複数に基づいて製造することができる。
【０１１４】
（動作の例）
図４Ａおよび図４Ｂは、いくつかの実装形態によって、実行可能ファイル１３０がクライアント側４１５で実行されるときに行われる開発装置側４１０の動作およびクライアント側４１５の動作を示すブロック図である。図４Ａおよび図４Ｂの中央に引かれた破線はネットワーク１０５を表す。
【０１１５】
図４Ａを参照する。このブロック図は、実行可能ファイル１３０を実行するクライアン
ト１０７のプロセッサ上でクライアント１０７のための操作のうちのいくつかを行うことによってクライアント１０７へのリソースとして働くシミュレーションマネージャ１９８の例を表している。シミュレーションマネージャ１９８は、クライアント１０７に、トルク入力４４０、ステアリング角入力４４１、およびＧＵＩデータ入力４４２を提供する。クライアント１０７は、シミュレーションシステム１９９の集約モジュール２０８に、ホイール回転数データ４４３、ＡＤＡＳセンサデータ４４４、ならびにユーザ入力およびテスト環境データ４４５を提供する。
【０１１６】
いくつかの実施形態においては、車両・道路インタラクションデータおよびテスト環境データを、性能データ１６０の例とすることができる。
【０１１７】
図４Ｂを参照する。このブロック図は、シミュレーションマネージャに依拠せずに実行可能ファイル１３０を実行するクライアント１０７の例を表している。クライアント１０７は、シミュレーションシステム１９９に車両シミュレーションデータ１６３を提供する。
【０１１８】
（ＧＵＩの例）
図５Ａおよび図５Ｂは、いくつかの実装形態による例示的なＧＵＩ１３３を示す図である。
【０１１９】
図５Ａを参照すると、仮想テスト環境における仮想車両のグラフィック描写５０５と、仮想テスト環境における仮想車両の性能に関連した車両シミュレーションデータ１６３を表示するグラフィック要素５１０とを含むＧＵＩ１３３Ａが示されている。
【０１２０】
図５Ｂを参照すると、仮想テスト環境における同時の車道上の複数の仮想車両のグラフィック描写を含むＧＵＩ１３３Ｂが示されている。
ユーザＡ、ユーザＢおよびユーザＣは、各々、複数のクライアント１０７に含まれる異なるクライアント装置を操作することができる。仮想車両のうちの２台以上を、開発者１０４によって設計された提案車両を表す車両運動力学モデル１１０および制御ソフトウェアモデル１１５に基づくものとすることができる。言い換えると、複数のクライアント１０７のうちの少なくとものうちの一部が、同じタイミングで実行可能ファイル１３０を実行し、結果として、複数の仮想車両が同じタイミングでテスト環境に存在することになる。
このようにして、開発者１０４が車両障害物（例えば、車道上の車両であるボット）を道路モデルにハードコードしなくても、テスト環境が車両障害物を含み、複数の仮想車両が互いにとっての車両障害物となることができる。
【０１２１】
ＧＵＩ１３３Ｂは、仮想テスト環境における仮想車両の性能に関連した車両シミュレーションデータ１６３を表示するグラフィック要素５２０も含む。
【０１２２】
図６Ａおよび図６Ｂに、いくつかの実装形態による例示的ＧＵＩ１３４を示す。
【０１２３】
図６Ａを参照すると、解析データの例示的表現を描写するグラフィック要素６０５（ＧＵＩ１３４Ａに含まれるテキストは見本）、および解析データに基づいて提案車両のための車両運動力学モデル１１０または制御ソフトウェアモデル１１５のうちの１つまたは複数を修正するためのオプションを描写する別のグラフィック要素６１０を含むＧＵＩ１３４Ａが示されている。
開発者１０４は、グラフィック要素６１０で描写されるオプションに基づいて提案車両のための車両運動力学モデル１１０または制御ソフトウェアモデル１１５のうちの１つまたは複数を修正することを決めるためにグラフィックボタン６１５を選択することができ
る。
【０１２４】
図６Ｂを参照すると、修正モデルデータ１３５の例を描写するグラフィック要素（ＧＵＩ１３４Ｂに含まれるテキストは見本）を含むＧＵＩ１３４Ｂが示されている。ＧＵＩ１３４Ｂは、開発者１０４が修正モデルデータ１３５を受け入れる際に選択する第１のグラフィックボタン６２５、および開発者１０４が車両運動力学モデル１１０または制御ソフトウェアモデル１１５を以前のバージョンに戻す際に選択する第２のグラフィックボタン６３０を含む。
【０１２５】
以上の説明では、本発明を十分に理解できるように、多くの詳細について説明した。しかしながら、各実施形態はこれらの具体的な詳細無しでも良いことは当業者にとって明らかであろう。また、説明が不明瞭になることを避けるために、構造や装置をブロック図の形式で表すこともある。たとえば、一実施形態は、ユーザインタフェースおよび特定のハードウェアとともに説明される。しかし、ここでの説明は、データおよびコマンドを受信する任意のタイプの計算装置および任意の周辺機器について適用できる。
【０１２６】
本明細書における「一実施形態」または「ある実施形態」等という用語は、その実施形態と関連づけて説明される特定の特徴・構造・性質が少なくとも本発明の一つの実施形態に含まれることを意味する。「一実施形態における」等という用語は本明細書内で複数用いられるが、これらは必ずしも同一の実施形態を示すものとは限らない。
【０１２７】
以上の詳細な説明の一部は、非一時的（non-transitory）なコンピュータ可読記憶媒体に記憶されたデータビットに対する動作のアルゴリズムおよび記号的表現として提供される。これらのアルゴリズム的な説明および表現は、データ処理技術分野の当業者によって、他の当業者に対して自らの成果の本質を最も効果的に説明するために用いられるものである。なお、本明細書において（また一般に）アルゴリズムとは、所望の結果を得るための論理的な手順を意味する。処理のステップは、物理量を物理的に操作するものである。必ずしも必須ではないが、通常は、これらの量は記憶・伝送・結合・比較およびその他の処理が可能な電気的または磁気的信号の形式を取る。通例にしたがって、これらの信号をビット・値・要素・エレメント・シンボル・キャラクタ・項・数値などとして称することが簡便である。
【０１２８】
なお、これらの用語および類似する用語はいずれも、適切な物理量と関連付いているものであり、これら物理量に対する簡易的なラベルに過ぎないということに留意する必要がある。以下の説明から明らかなように、特に断らない限りは、本明細書において「処理」「計算」「コンピュータ計算（処理）」「判断」「表示」等の用語を用いた説明は、コンピュータシステムや類似の電子的計算装置の動作および処理であって、コンピュータシステムのレジスタやメモリ内の物理的（電子的）量を、他のメモリやレジスタまたは同様の情報ストレージや通信装置、表示装置内の物理量として表される他のデータへ操作および変形する動作および処理を意味する。
【０１２９】
本発明は、本明細書で説明される動作を実行する装置にも関する。この装置は要求される目的のために特別に製造されるものであっても良いし、汎用コンピュータを用いて構成しコンピュータ内に格納されるプログラムによって選択的に実行されたり再構成されたりするものであっても良い。このようなコンピュータプログラムは、コンピュータのシステムバスに接続可能な、例えばフロッピー（登録商標）ディスク・光ディスク・ＣＤ−ＲＯＭ・ＭＯディスク・磁気ディスクなど任意のタイプのディスク、読み込み専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、ＥＰＲＯＭ、ＥＥＰＲＯＭ、磁気カード、フラッシュメモリ、光学式カード、電子的命令を格納するために適した任意のタイプの媒体などの、非一時的なコンピュータ可読記憶媒体に記憶される。
【０１３０】
発明の具体的な実施形態は、完全にハードウェアによって実現されるものでも良いし、完全にソフトウェアによって実現されるものでも良いし、ハードウェアとソフトウェアの両方によって実現されるものでも良い。好ましい実施形態は、ソフトウェアによって実現される。ここでソフトウェアとは、ファームウェア、常駐ソフトウェア、マイクロコードやその他のソフトウェアを含むものである。
【０１３１】
さらに、ある実施形態は、コンピュータが利用あるいは読み込み可能な記憶媒体からアクセス可能なコンピュータプログラムプロダクトの形態を取る。この記憶媒体は、コンピュータや任意の命令実行システムによってあるいはそれらと共に利用されるプログラムコードを提供する。コンピュータが利用あるいは読み込み可能な記憶媒体とは、命令実行システムや装置によってあるいはそれらと共に利用されるプログラムを、保持、格納、通信、伝搬および転送可能な任意の装置を指す。
【０１３２】
プログラムコードを格納・実行するために適したデータ処理システムは、システムバスを介して記憶素子に直接または間接的に接続された少なくとも１つのプロセッサを有する。記憶素子は、プログラムコードの実際の実行に際して使われるローカルメモリや、大容量記憶装置や、実行中に大容量記憶装置からデータを取得する回数を減らすためにいくつかのプログラムコードを一時的に記憶するキャッシュメモリなどを含む。
【０１３３】
入力／出力（Ｉ／Ｏ）装置は、例えばキーボード、ディスプレイ、ポインティング装置などであるが、これらはＩ／Ｏコントローラを介して直接あるいは間接的にシステムに接続される。
【０１３４】
システムにはネットワークアダプタも接続されており、これにより、私的ネットワークや公共ネットワークを介して他のデータ処理システムやリモートにあるプリンタや記憶装置に接続される。モデム、ケーブルモデム、イーサネット（登録商標）は、現在利用可能なネットワークアダプタのほんの一例である。
【０１３５】
最後に、本明細書において提示されるアルゴリズムおよび表示は特定のコンピュータや他の装置と本来的に関連するものではない。本明細書における説明にしたがったプログラムを有する種々の汎用システムを用いることができるし、また要求された処理ステップを実行するための特定用途の装置を製作することが適した場合もある。これら種々のシステムに要求される構成は、以下の説明において明らかにされる。さらに、本発明は、特定のプログラミング言語と関連づけられるものではない。本明細書で説明される本発明の内容を実装するために種々のプログラミング言語を利用できることは明らかであろう。
【０１３６】
実施形態の前述の説明は、例示と説明を目的として行われたものである。したがって、開示された実施形態が本発明の全てではないし、本発明を上記の実施形態に限定するものでもない。本発明は、上記の開示にしたがって、種々の変形が可能である。本発明の範囲は上述の実施形態に限定解釈されるべきではなく、特許請求の範囲にしたがって解釈されるべきである。本発明の技術に詳しい者であれば、本発明はその思想や本質的特徴から離れることなくその他の種々の形態で実現できることを理解できるであろう。同様に、モジュール・処理・特徴・属性・方法およびその他の本発明の態様に関する名前付けや分割方法は必須なものでものないし重要でもない。また、本発明やその特徴を実装する機構は異なる名前や分割方法や構成を備えていても構わない。さらに、当業者であれば、モジュール・処理・特徴・属性・方法およびその他の本発明の態様は、ソフトウェア、ハードウェア、ファームウェアもしくはこれらの組合せとして実装できることを理解できるであろう。また、本発明をソフトウェアとして実装する場合には、モジュールなどの各要素は、どのような様式で実装されても良い。例えば、スタンドアローンのプログラム、大きなプロ
グラムの一部、異なる複数のプログラム、静的あるいは動的なリンクライブラリー、カーネルローダブルモジュール、デバイスドライバー、その他コンピュータプログラミングの当業者にとって既知な方式として実装することができる。さらに、本発明の実装は特定のプログラミング言語に限定されるものではないし、特定のオペレーティングシステムや環境に限定されるものでもない。以上のように、上記の本発明の説明は限定的なものではなく例示的なものであり、本発明の範囲は添付の特許請求の範囲にしたがって定められる。
【符号の説明】
【０１３７】
１００  動作環境
１０３  ユーザ
１０４  開発者
１０５  ネットワーク
１０７  クライアント
１１０  車両運動力学モデル
１１５  制御ソフトウェアモデル
１２５  道路モデル
１３０  実行可能ファイル
１３３，１３４  ＧＵＩ
１３５  修正モデルデータ
１４０  モデル生成アプリケーション
１４５  性能データセット
１４６  テストシナリオデータセット
１４７  車両シミュレーションデータセット
１５０  開発装置
１５５  シミュレーションアプリケーション
１６０  性能データ
１６１  テストシナリオデータ
１６３  車両シミュレーションデータ
１９８  シミュレーションマネージャ
１９９  シミュレーションシステム
【図１】
0006414247.tif 000002
【図２Ａ】
0006414247.tif 000003
【図２Ｂ】
0006414247.tif 000004
【図３Ａ】
0006414247.tif 000005
【図３Ｂ】
0006414247.tif 000006
【図４Ａ】
0006414247.tif 000007
【図４Ｂ】
0006414247.tif 000008
【図５Ａ】
0006414247.tif 000009
【図５Ｂ】
0006414247.tif 000010
【図６Ａ】
0006414247.tif 000011
【図６Ｂ】
0006414247.tif 000012