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

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

▶ ウーブン・プラネット・ホールディングス株式会社の特許一覧

特開2024-9749一般化されたシステムアンダーテスト(SuT)のための汎用シミュレーションテスト
<>
  • 特開-一般化されたシステムアンダーテスト(SuT)のための汎用シミュレーションテスト 図1
  • 特開-一般化されたシステムアンダーテスト(SuT)のための汎用シミュレーションテスト 図2
  • 特開-一般化されたシステムアンダーテスト(SuT)のための汎用シミュレーションテスト 図3
  • 特開-一般化されたシステムアンダーテスト(SuT)のための汎用シミュレーションテスト 図4
  • 特開-一般化されたシステムアンダーテスト(SuT)のための汎用シミュレーションテスト 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024009749
(43)【公開日】2024-01-23
(54)【発明の名称】一般化されたシステムアンダーテスト(SuT)のための汎用シミュレーションテスト
(51)【国際特許分類】
   G06F 11/36 20060101AFI20240116BHJP
【FI】
G06F11/36 196
【審査請求】有
【請求項の数】20
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2023068719
(22)【出願日】2023-04-19
(31)【優先権主張番号】17/861,457
(32)【優先日】2022-07-11
(33)【優先権主張国・地域又は機関】US
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.SMALLTALK
(71)【出願人】
【識別番号】521042770
【氏名又は名称】ウーブン・バイ・トヨタ株式会社
(74)【代理人】
【識別番号】100099759
【弁理士】
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【弁理士】
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100092624
【弁理士】
【氏名又は名称】鶴田 準一
(74)【代理人】
【識別番号】100147555
【弁理士】
【氏名又は名称】伊藤 公一
(74)【代理人】
【識別番号】100123593
【弁理士】
【氏名又は名称】関根 宣夫
(74)【代理人】
【識別番号】100133835
【弁理士】
【氏名又は名称】河野 努
(74)【代理人】
【識別番号】100167461
【弁理士】
【氏名又は名称】上木 亮平
(72)【発明者】
【氏名】アンソニー デコスタンゾ
(72)【発明者】
【氏名】マーテー コバーチ
【テーマコード(参考)】
5B042
【Fターム(参考)】
5B042GB08
5B042HH07
(57)【要約】
【課題】一般化されたシステムアンダーテスト(SuT)のための汎用シミュレーションテストの提供。
【解決手段】車両システムに基づくシミュレーションシステムには、シミュレートされたセンサデータを生成するように構成されたシミュレーションモジュールと、シミュレーションモジュールと接続状態にあり、車両システムのモジュールの動作をシミュレートするように構成された、少なくとも1つのモックコンポーネントと、シミュレーションモジュールおよび少なくとも1つのモックコンポーネントと接続状態にあり、その動作が生成済みのシミュレートされたセンサデータに基づいてシミュレーションシステムの動作中にテストされる、少なくとも1つのテスト用ハードウェアコンポーネントと、が含まれる。
【選択図】図4
【特許請求の範囲】
【請求項1】
車両システムに基づくシミュレーションシステムにおいて、
シミュレートされたセンサデータを生成するように構成されたシミュレーションモジュールと;
前記シミュレーションモジュールと接続状態にあり、前記車両システムのモジュールの動作をシミュレートするように構成された、少なくとも1つのモックコンポーネントと;
前記シミュレーションモジュールおよび前記少なくとも1つのモックコンポーネントと接続状態にあり、その動作が前記生成済みのシミュレートされたセンサデータに基づいて前記シミュレーションシステムの動作中にテストされる、少なくとも1つのテスト用ハードウェアコンポーネントと;
を含むシミュレーションシステム。
【請求項2】
前記シミュレーションモジュール、少なくとも1つのモックコンポーネントおよび少なくとも1つのテスト用ハードウェアコンポーネントが、汎用インタフェース言語に基づいて接続状態にある、
請求項1に記載のシミュレーションシステム。
【請求項3】
前記少なくとも1つのモックコンポーネントが、少なくとも1つのモックコンポーネントの動作の複雑性を調整する忠実度調整装置を含む、
請求項1又は請求項2に記載のシミュレーションシステム。
【請求項4】
前記少なくとも1つのテスト用ハードウェアコンポーネントが、知覚情報および定位情報に基づいて戦略情報を生成するように構成されたプラニングモジュールを含む、
請求項1又は請求項2に記載のシミュレーションシステム。
【請求項5】
前記少なくとも1つのモックコンポーネントが、前記生成済みのシミュレートされたセンサデータに基づいて前記知覚情報を生成するように構成された知覚モックを含む、
請求項4に記載のシミュレーションシステム。
【請求項6】
前記少なくとも1つのモックコンポーネントが、前記生成済みのシミュレートされたセンサデータに基づいて定位情報を生成するように構成された定位モックを含む、
請求項4に記載のシミュレーションシステム。
【請求項7】
前記少なくとも1つのテスト用ハードウェアコンポーネントによって生成された少なくとも1つのコマンドを前記シミュレーションモジュールに対して出力するように構成されたコントローラモックをさらに含む、
請求項1又は請求項2に記載のシミュレーションシステム。
【請求項8】
シミュレーションシステムの方法において、
シミュレーションモジュールによって、シミュレートされたセンサデータを生成するステップと;
前記シミュレーションモジュールと接続状態にある少なくとも1つのモックコンポーネントによって、車両システムのモジュールの動作をシミュレートするステップと;
前記シミュレーションシステムの動作中に、前記生成済みのシミュレートされたセンサデータに基づいて、前記シミュレーションモジュールおよび前記少なくとも1つのモックコンポーネントと接続状態にある少なくとも1つのテスト用ハードウェアコンポーネントをテストするステップと;
を含む方法。
【請求項9】
前記シミュレーションモジュール、少なくとも1つのモックコンポーネントおよび少なくとも1つのテスト用ハードウェアコンポーネントが、汎用インタフェース言語に基づいて接続状態にある、
請求項8に記載の方法。
【請求項10】
前記少なくとも1つのモックコンポーネントが、少なくとも1つのモックコンポーネントの動作の複雑性を調整する忠実度調整装置を含む、
請求項8又は請求項9に記載の方法。
【請求項11】
前記少なくとも1つのテスト用ハードウェアコンポーネントが、知覚情報および定位情報に基づいて戦略情報を生成するように構成されたプラニングモジュールを含む、
請求項8又は請求項9に記載の方法。
【請求項12】
前記少なくとも1つのモックコンポーネントが、前記生成済みのシミュレートされたセンサデータに基づいて前記知覚情報を生成するように構成された知覚モックを含む、
請求項11に記載の方法。
【請求項13】
前記少なくとも1つのモックコンポーネントが、前記生成済みのシミュレートされたセンサデータに基づいて定位情報を生成するように構成された定位モックを含む、
請求項11に記載の方法。
【請求項14】
前記少なくとも1つのテスト用ハードウェアコンポーネントによって生成された少なくとも1つのコマンドを前記シミュレーションモジュールに対してコントローラモックによって出力するステップをさらに含む、
請求項8又は請求項9に記載の方法。
【請求項15】
少なくとも1つのプロセッサによって実行された時点で、前記少なくとも1つのプロセッサに:
シミュレーションモジュールによって、シミュレートされたセンサデータを生成させ;
前記シミュレーションモジュールと接続状態にある少なくとも1つのモックコンポーネントによって、車両システムのモジュールの動作をシミュレートさせ;
前記シミュレーションシステムの動作中に、前記生成済みのシミュレートされたセンサデータに基づいて、前記シミュレーションモジュールおよび前記少なくとも1つのモックコンポーネントと接続状態にある少なくとも1つのテスト用ハードウェアコンポーネントをテストさせる;
命令を記憶する非一時的コンピュータ記憶媒体。
【請求項16】
前記シミュレーションモジュール、少なくとも1つのモックコンポーネントおよび少なくとも1つのテスト用ハードウェアコンポーネントが、汎用インタフェース言語に基づいて接続状態にある、
請求項15に記載の記憶媒体。
【請求項17】
少なくとも1つのモックコンポーネントが、少なくとも1つのモックコンポーネントの動作の複雑性を調整する忠実度調整装置を含む、
請求項15又は請求項16に記載の記憶媒体。
【請求項18】
少なくとも1つのテスト用ハードウェアコンポーネントが、知覚情報および定位情報に基づいて戦略情報を生成するように構成されたプラニングモジュールを含む、
請求項15又は請求項16に記載の記憶媒体。
【請求項19】
前記少なくとも1つのモックコンポーネントが、前記生成済みのシミュレートされたセンサデータに基づいて前記知覚情報を生成するように構成された知覚モックを含む、
請求項18に記載の記憶媒体。
【請求項20】
前記少なくとも1つのモックコンポーネントが、前記生成済みのシミュレートされたセンサデータに基づいて定位情報を生成するように構成された定位モックを含む、
請求項18に記載の記憶媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、概して、汎用テスト戦略を提供するシステムおよび方法に関する。
【背景技術】
【0002】
システムアンダーテスト(SuT)において、開発者は、システムのコンポーネントをテストするためにシミュレータを利用する。典型的なSuTシナリオにおいては、開発者は、どのコンポーネントをテストすべきかそしてシム(shim)を介してどのコンポーネントをシミュレートすべきかを決定する。詳細には、車両の計装については、開発者は、プラニングモジュールをテストし、次に入力シムによって知覚モジュールおよび定位モジュールをシミュレートし、出力シムを用いてコントローラをシミュレートすることを決定できる。
【0003】
しかしながら、このSuT構成には、いくつかの問題が含まれている。第1に、シムは、カスタマイゼーションのオプションなく恒久的に構築されるソフトウェアコンポーネントであり、このことはすなわち、SuTがひとたび完了すると、開発者は異なるテスト目的のためにシムの忠実度を変更できず(すなわち新規のシムを構築しなければならない)、これが深刻な非効率性の原因となっている。第2に、知覚モジュール、定位モジュール、プラニングモジュールおよびコントローラそして他のコンポーネントを構築するチームは通常別個のエンティティであることから、SuT構成の構築は緩慢である。その上、シムコンポーネントはその場その場で構築され、SuTプロセスを高コストにしている。さらに、典型的に、システムのコンポーネント間には汎用インタフェース言語または通信が存在せず、このことはすなわち、構築されたシムは容易に互換可能でないか、またはこれを新しいSuT構成内に統合することはできないということを意味している。
【発明の概要】
【0004】
一例示的実施形態の一態様によると、車両システムに基づくシミュレーションシステムは、シミュレートされたセンサデータを生成するように構成されたシミュレーションモジュールと、シミュレーションモジュールと接続状態にあり、車両システムのモジュールの動作をシミュレートするように構成された、少なくとも1つのモックコンポーネント(mock component)と、シミュレーションモジュールおよび少なくとも1つのモックコンポーネントと接続状態にあり、その動作が生成済みのシミュレートされたセンサデータに基づいてシミュレーションシステムの動作中にテストされる、少なくとも1つのテスト用ハードウェアコンポーネントと、を含み得る。
【0005】
一例示的実施形態の一態様によると、シミュレーションシステムの方法は、シミュレーションモジュールによって、シミュレートされたセンサデータを生成するステップと、シミュレーションモジュールと接続状態にある少なくとも1つのモックコンポーネントによって、車両システムのモジュールの動作をシミュレートするステップと、シミュレーションシステムの動作中に、生成済みのシミュレートされたセンサデータに基づいて、シミュレーションモジュールおよび少なくとも1つのモックコンポーネントと接続状態にある少なくとも1つのテスト用ハードウェアコンポーネントをテストするステップと、を含み得る。
【0006】
一例示的実施形態の一態様によると、非一時的コンピュータ可読記憶媒体は、少なくとも1つのプロセッサによって実行された時点で、少なくとも1つのプロセッサに、シミュレーションモジュールによって、シミュレートされたセンサデータを生成させ、シミュレーションモジュールと接続状態にある少なくとも1つのモックコンポーネントによって、車両システムのモジュールの動作をシミュレートさせ、シミュレーションシステムの動作中に、生成済みのシミュレートされたセンサデータに基づいて、シミュレーションモジュールおよび少なくとも1つのモックコンポーネントと接続状態にある少なくとも1つのテスト用ハードウェアコンポーネントをテストさせる、命令を記憶し得る。
【0007】
さらなる態様が、一部は以下の明細書中に記載されており、一部は、明細書から明らかとなるかまたは本開示の提示された実施形態を実践することによって学習され得る。
【0008】
本開示の上述のおよび他の態様、特徴およびその実施形態の態様は、添付図面と併せて以下の説明を考慮することでより明確になるものである。
【図面の簡単な説明】
【0009】
図1図1は、一実施形態に係るシステムのデバイスの略図である。
図2図2は、一実施形態に係る図1のデバイスの略図である。
図3図3は、一実施形態に係る車両システムの略図である。
図4図4は、一実施形態に係るシミュレーションシステムの略図である。
図5図5は、一実施形態に係るシミュレーションシステムの方法の流れ図である。
【発明を実施するための形態】
【0010】
例示的実施形態についての以下の詳細な説明は、添付図面を参照している。異なる図面中の同一の参照番号は、同じまたは類似の要素を識別し得る。
【0011】
図1は、一実施形態に係るシステムの略図である。図1は、クライアントデバイス110、サーバデバイス120およびネットワーク130を含む。クライアントデバイス110およびサ-バデバイス120は、有線接続、無線接続または有線および無線接続の組合せを介して、相互接続し得る。
【0012】
クライアントデバイス110は、計算デバイス(例えばデスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、ハンドヘルドコンピュータ、スマートスピーカ、サーバデバイスなど)、携帯電話(例えばスマートフォン、無線電話機など)、カメラデバイス、ウェアラブルデバイス(例えばスマートグラスまたはスマートウォッチ)、または類似のデバイスを含み得る。
【0013】
サ-バデバイス120は1つ以上のデバイスを含む。例えば、サ-バデバイス120は、サ-バデバイス、計算デバイスなどであってよい。
【0014】
ネットワーク130は、1つ以上の有線および/または無線ネットワークを含む。例えば、ネットワーク130は、セルラーネットワーク(例えば第5世代(5G)ネットワーク、ロングタームエボリューション(LTE)ネットワーク、第3世代(3G)ネットワーク、符号分割多元接続(CDMA)ネットワークなど)、公衆陸上移動体ネットワーク(PLMN)、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、メトロポリタンエリアネットワーク(MAN)、電話網(例えば公衆交換電話網(PSTN))、プライベートネットワーク、アドホックネットワーク、イントラネット、インタネット、光ファイバネットワークなどおよび/またはこれらのまたは他のタイプのネットワークの組合せを含み得る。
【0015】
図1に示されているデバイスおよびネットワークの数および配設は、一例として提供されたものである。実際には、図1に示されているものと比べて、追加のデバイスおよび/またはネットワーク、より少ないデバイスおよび/またはネットワーク、異なるデバイスおよび/またはネットワーク、異なる配設のデバイスおよび/またはネットワークが存在し得る。さらに、図1に示されている2つ以上のデバイスを、単一のデバイス内に実装することができ、または、図1に示されている単一のデバイスを多数の分散型デバイスとして実装することもできる。付加的にまたは代替的に、デバイスセット(例えば1つ以上のデバイス)は、別のデバイスセットが行なうものとして説明されている1つ以上の機能を行なうこともできる。
【0016】
図2は、一実施形態に係る図1の1つ以上のデバイスのコンポーネントの略図である。デバイス200は、クライアントデバイス110および/またはサ-バデバイス120に対応し得る。
【0017】
図2に示されているように、デバイス200は、バス210、プロセッサ220、メモリ230、記憶コンポーネント240、入力コンポーネント250、出力コンポーネント260および通信インタフェース270を含み得る。
【0018】
バス210は、デバイス200のコンポーネント間の通信を可能にするコンポーネントを含む。プロセッサ220はハードウェア、ファームウェアまたはハードウェアとソフトウェアの組合せの形で実装される。プロセッサ220は、中央処理ユニット(CPU)、グラフィクス処理ユニット(GPU)、アクセラレーテッド処理ユニット(APU)、マイクロプロセッサ、マイクロコントローラ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、または別のタイプの処理コンポーネントである。プロセッサ220は、1つの機能を行なうようにプログラミングされ得る1つ以上のプロセッサを含む。
【0019】
メモリ230は、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、および/またはプロセッサ220が使用するための情報および/または命令を記憶する別のタイプの動的または静的記憶デバイス(例えばフラッシュメモリ、磁気メモリおよび/または光学メモリ)を含む。
【0020】
記憶コンポーネント240は、デバイス200の動作および使用に関係する情報および/またはソフトウェアを記憶する。例えば、記憶コンポーネント240は、ハードディスク(例えば磁気ディスク、光ディスク、磁気光学ディスクおよび/または、固体ディスク)、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、フロッピーディスク、カートリッジ、磁気テープおよび/または別のタイプの非一時的コンピュータ可読媒体、ならびに対応するドライブを含み得る。
【0021】
入力コンポーネント250は、例えば、(タッチスクリーンディスプレー、キーボード、キーパッド、マウス、ボタン、スイッチおよび/またはマイクロホンなどの)ユーザー入力を介してデバイス200が情報を受信することを可能にするコンポーネントを含む。入力コンポーネント250は、情報を検知するためのセンサ(例えば、全地球測位システム(GPS)コンポーネント、加速度計、ジャイロスコープ、および/またはアクチュエータ)を含み得る。
【0022】
出力コンポーネント260は、デバイス200(例えばディスプレー、スピーカ、および/または1つ以上の発光ダイオード(LED))からの出力情報を提供するコンポーネントを含む。
【0023】
通信インタフェース270は、デバイス200が、例えば有線接続、無線接続または有線および無線接続の組合せなどを介して、他のデバイスと通信できるようにするトランシーバ様のコンポーネント(例えばトランシーバおよび/または別個の受信機および送信機)を含む。通信インタフェース270は、デバイス200が別のデバイスから情報を受信しかつ/または別のデバイスに情報を提供することを可能にする。例えば、通信インタフェース270は、イーサネットインタフェース、光インタフェース、同軸インタフェース、赤外線インタフェース、無線周波数(RF)インタフェース、汎用シリアルバス(USB)インタフェース、Wi-Fiインタフェース、セルラーネットワークインタフェースなどを含み得る。
【0024】
デバイス200は、本明細書中に記載の1つ以上のプロセスを行なうことができる。デバイス200は、メモリ230および/または記憶コンポーネント240などの非一時的コンピュータ可読媒体によって記憶されたソフトウェア命令を実行するプロセッサ220に基づいて動作を行なうことができる。コンピュータ可読媒体は本明細書において、非一時的メモリデバイスとして定義されている。メモリデバイスには、単一の物理的記憶デバイス内部のメモリ空間または、多数の物理的記憶デバイスを横断して広がるメモリ空間が含まれる。
【0025】
ソフトウェア命令は、別のコンピュータ可読媒体からかまたは別のデバイスから通信インタフェース270を介して、メモリ230および/または記憶コンポーネント240内に読み込まれ得る。実行された時点で、メモリ230および/または記憶コンポーネント240内に記憶されたソフトウェア命令はプロセッサ220に、本明細書中に記載の1つ以上のプロセスを行なわせることができる。
【0026】
付加的にまたは代替的には、本明細書中に記載の1つ以上のプロセスを行なうために、ソフトウェア命令の代りにまたはそれと組合せた形で、ハードワイヤード回路を使用することができる。したがって、本明細書中に記載の実施形態は、ハードウェア回路およびソフトウェアの任意の特定の組合せに限定されない。
【0027】
図3は、一実施形態に係る車両システム300の略図である。図3は、車両システムを描いているものの、本開示の実施形態は、車両環境に限定されず、当業者であれば理解するように他のテスト環境においても実装可能である。車両システム300は、センサから受信した情報を環境のコヒーレント表現(coherent representation)へ融合する知覚モジュール302、およびセンサから受信した情報に基づいて車両の場所情報を決定する定位モジュール304を含み得る。車両システム300は同様に、知覚モジュール302および定位モジュール304からのデータに基づいて特定の目標(例えば適切なルートを見つけること)を達成するための戦略的アプローチを決定するプラニングモジュール306を含んでいてもよい。車両システム300は同様に、プラニングモジュール306から戦略情報(strategy information)を受信し、プラニングモジュール306によって決定されたアプローチを実行するための適切なコマンドを決定し、コマンドをアクチュエータへと出力して決定されたアプローチを実行するコントローラ308も含み得る。車両システム300は同様に、上述のモジュール間で信号を媒介する追加のモジュールも含むことができる。したがって、車両システムは、センサから受信した情報をアクチュエータへの出力コマンドに変換する経路に参加する多くのモジュールを任意に有するものとみなされ得る。
【0028】
システムの少なくとも1つのコンポーネントをテストするためには、ハードウェアおよびソフトウェアの両方でシミュレーションシステムを実装して、単数または複数のコンポーネント(すなわちシステムアンダーテスト(SuT))を効率良くかつ効果的にテストすることができる。テストすべき単数または複数のコンポーネントは、ソフトウェアまたはハードウェアとしてシステム内にとどまり、残りのコンポーネントは、テストされていないハードウェアコンポーネントのソフトウェアシミュレーションであるモックによって置換される。
【0029】
図4は、一実施形態に係るシミュレーションシステム400の略図である。図4に示されている例において、プラニングモジュール408はテストが進行中である(例えば図3のプラニングモジュール306)。しかしながら、付加的または代替的コンポーネントをテストすることが可能である。シミュレーションシステム400は、センサにより生成された情報に対応する情報または物理的車両システム(例えば図3の車両システム300)内で生成されると考えられる他の情報を生成するように構成されているシミュレーションモジュール402を含み得る。シムの代りに、一例において、シミュレーションシステム400は、シミュレーションモジュールに接続されている知覚モック404および定位モック406を含むことができる。知覚モック404および定位モック406は、それぞれハードウェアおよび/またはソフトウェア知覚モジュール(例えば図3の知覚モジュール302)およびハードウェアおよび/またはソフトウェア定位モジュール(例えば図3の定位モジュール304)のソフトウェアシミュレーションである。この例において、プラニングモジュール408は、シミュレーションシステム400内でテストが進行中であり、したがって、シミュレーションシステム400はソフトウェアおよび/またはハードウェアプラニングモジュール408を含み得る。シミュレーションシステムは同様に、ハードウェアおよび/またはソフトウェアコントローラ(例えば図3のコントローラ308)のソフトウェアシミュレーションであるコントローラモック410を含み得る。コントローラモック410は、生成されたコマンドをシミュレーションモジュール402に出力し、シミュレーションモジュール402は、生成されたコマンドにしたがって動作してテストを完了する。
【0030】
シミュレーションシステム400のコンポーネントは、汎用インタフェース言語に基づいて接続される。シミュレーションシステム400の各コンポーネントは異なるインタフェース通信またはプログラミング言語を使用する異なるグループ/チームによって構築され得ることから、汎用インタフェース言語のベースが、テスト中のハードウェアコンポーネントおよびモックを構築する各チームに対し提供される。汎用インタフェース言語は、コードベースを安定化し、強制的に組織に中央で決断を下させ、アーキテクチャを先制してプラニングすることから、効率の良い高速シミュレーションテストを可能にする。これは、機敏なワークフローに対し適応可能である。
【0031】
相互インタフェースを有する全てのコンポーネントが同じプログラミング言語で書かれている例において、汎用インタフェース言語またはインタフェース記述言語(IDL)はその場合必要とされない可能性がある。必要とされるのは、インタフェース自体が定義されていること(すなわち、データタイプなどの、正確にどのオブジェクトがインタフェースにおいて交換されるか)だけである。インタフェースが開発中に本質的に固定されることが有益である。システム全体の世代間でインタフェースが固定されていればいるほど、チームはモックおよび現実のコンポーネントのライブラリを再利用できることから、エンジニアリング開発にとってそれはより好ましいものになる。異なるコンポーネントが異なるプログラミング言語で書かれている例においては、そのとき、IDLまたは汎用インタフェース言語を利用することが可能である。言語は、1つのインタフェースを共用するコンポーネントについて作業するエンジニアが各コンポーネント内で異なるプログラミング言語を使用し、そのインタフェースのための共有言語が存在することになる(すなわちIDLまたは汎用インタフェース言語)ことを知ることができるようなタイプの言語非依存の記述であり得る。
【0032】
さらに、汎用インタフェース言語を有することによって、モックをカスタマイズし、こうして、新たなモックを構築する必要なくシミュレーションシステムの特性を変更することができる。例えば、忠実度調整(fidelity adjustments)が組込まれた状態でモックを構築することができ、そうでなければ、変動する忠実度の多数のモックを構築して、モックの動作の所望される複雑度に応じて特定のテストにおけるモックの忠実度を変更することを可能にすることができる(例えば知覚モック404の忠実度調整装置412)。汎用インタフェース言語は、同じコンポーネントの多数の互換モックの作製コストを削減する。
【0033】
さらに、ソフトウェアおよびハードウェア実装の組合せの場合、いくつかのコンポーネントをモックとして実装することができる一方で、いくつかのコンポーネントを元のハードウェアおよび/またはソフトウェアコンポーネントとして実装することができる。例えば、プラニングモジュール(例えば図3のプラニングモジュール306)およびコントローラ(例えば図3のコントローラ308)の両方をテストするようにシミュレーションシステムを構築し、こうして、シミュレーションシステムが知覚モック、定位モック、ハードウェアおよび/またはソフトウェアプラニングモジュールおよびハードウェアおよび/またはソフトウェアコントローラを含むようにすることができる。別の例では、知覚モジュール(例えば図3の知覚モジュール302)、定位モジュール(例えば図3の定位モジュール304)およびコントローラ(例えば図3のコントローラ308)をテストするようにシミュレーションシステムを構築し、こうして、シミュレーションシステムがハードウェアおよび/またはソフトウェア知覚モジュール、ハードウェアおよび/またはソフトウェア定位モジュール、プラニングモック、およびハードウェアおよび/またはソフトウェアコントローラを含むようにすることができる。これを、k-サブセットテストと呼ぶことができる。全てのコンポーネントは汎用インタフェース言語を利用することから、システムをテストするエンジニアリング費用を削減しながら、ソフトウェアおよびハードウェア置換および組合せを容易に実装することが可能である。
【0034】
図5は、一実施形態に係るシミュレーションシステムの方法の流れ図である。動作502において、システムは、シミュレーションモジュールによって、シミュレートされたセンサデータを生成する。動作504では、システムは、シミュレーションモジュールと接続状態にある少なくとも1つのモックコンポーネントによって、車両システムのモジュールの動作をシミュレートする。動作506において、システムは、シミュレーションシステムの動作中、生成済みのシミュレートされたセンサデータに基づいて、シミュレーションモジュールおよび少なくとも1つのモックコンポーネントと接続状態にある少なくとも1つのテスト用ハードウェアコンポーネントをテストする。
【0035】
以上の開示は、例示および説明を提供しているが、網羅的であることまたは実装を開示された精確な形態に限定することが意図されているものではない。上述の開示に照らして修正および変形形態が可能であるか、または実装の実践からこれらを獲得することができる。
【0036】
いくつかの実施形態は、考えられる任意の技術的な詳細の組込みレベルで、システム、方法および/またはコンピュータ可読媒体に関連する。コンピュータ可読媒体は、プロセッサに動作を実施させるためのコンピュータ可読プログラム命令を載せたコンピュータ可読非一時的記憶媒体(単複)を有することができる。
【0037】
コンピュータ可読記憶媒体は、命令実行デバイスが使用するための命令を保持し記憶することのできる有形デバイスであり得る。コンピュータ可読記憶媒体は、例えば電子記憶デバイス、磁気記憶デバイス、光学記憶デバイス、電磁記憶デバイス、半導体記憶デバイスまたはこれらの任意の好適な組合せであり得るが、これらに限定されるわけではない。コンピュータ可読記憶媒体のより具体的な例の非網羅的なリストには、以下のものが含まれる:ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、消去可能プログラマブル読取り専用メモリ(EPROMまたはフラッシュメモリ)、スタティックランダムアクセスメモリ(SRAM)、ポータブルコンパクトディスク読取り専用メモリ(CD-ROM)、デジタル多用途ディスク(DVD)、メモリスティック、フロッピーディスク、機械的にエンコードされたデバイス、例えばパンチカードまたは上に命令が記録されている溝内の隆起構造、および以上のものの任意の好適な組合せ。本明細書中で使用されるコンピュータ可読記憶媒体は、例えば電波または他の自由に伝搬する電磁波、導波管または他の伝送媒体と通って伝搬する電磁波(例えば光ファイバケーブルを通過する光パルス)、または電線を通して伝送される電気信号など、それ自体一過性の信号であるものと解釈されるべきではない。
【0038】
本明細書中に記載のコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれの計算/処理デバイスへ、外部コンピュータまたは外部記憶デバイスへ、ネットワーク、例えばインタネット、ローカルエリアネットワーク、ワイドエリアネットワーク、および/または無線ネットワークを介してダウンロードされ得る。ネットワークは、銅伝送ケーブル、光伝送ファイバ、無線伝送、ルータ、ファイヤウォール、スイッチ、ゲートウェイコンピュータおよび/またはエッジサーバを含み得る。各々の計算/処理デバイス内のネットワークアダプタカードまたはネットワークインタフェースが、ネットワークからコンピュータ可読プログラム命令を受信し、それぞれの計算/処理デバイス内のコンピュータ可読記憶媒体内に記憶するために、コンピュータ可読プログラム命令を転送する。
【0039】
動作を実施するためのコンピュータ可読プログラムコード/命令は、アセンブラ命令、命令セットアーキテクチャ(ISA)命令、機械命令、機械依存型命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用構成データまたは、Smalltalk、C++などのオブジェクト指向プログラミング言語および「C」プログラミング言語または類似のプログラミング言語などの手続き型プログラミング言語を含めた1つ以上のプログラミング言語の任意の組合せで書かれたソースコードまたはオブジェクトコードのいずれか、であってよい。コンピュータ可読プログラム命令は、全面的にユーザのコンピュータ上で、部分的にユーザのコンピュータ上でスタンドアロン型ソフトウェアパッケージとして、部分的にユーザのコンピュータ上でかつ部分的に遠隔のコンピュータ上で、あるいは、全面的に遠隔のコンピュータまたはサーバ上で実行可能である。後者のシナリオにおいて、遠隔コンピュータは、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)を含めた任意のタイプのネットワークを通してユーザのコンピュータに接続され得、あるいは、外部コンピュータに対して(例えばインタネットサービスプロバイダを用いてインタネットを通して)接続を行なうことが可能である。いくつかの実施形態においては、例えばプログラマブル論理回路、フィールドプログラマブルゲートアレイ(FPGA)、またはプログラマブル論理アレイ(PLA)を含む電子回路が、複数の態様または動作を行なう目的で、電子回路をパーソナライズするためコンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行することができる。
【0040】
これらのコンピュータ可読プログラム命令を、汎用コンピュータ、専用コンピュータまたはマシンを生産するための他のプログラマブルデータ処理装置に提供し、こうしてコンピュータのプロセッサまたは他のプログラマブルデータ処理装置を介して実行する命令が、流れ図および/またはブロック図の単数または複数のブロック内に規定されている機能/行為を実装するための手段を創出するようにすることができる。これらのコンピュータ可読プログラム命令は同様に、命令が内部に記憶されているコンピュータ可読記憶媒体が、流れ図および/またはブロック図の単数または複数のブロック内で規定されている機能/行為の態様を実装する命令を含む製造品を構成するような形で、コンピュータ、プログラマブルデータ処理装置および/または他のデバイスに特定の要領で機能するよう指示することのできるコンピュータ可読記憶媒体中に記憶されてもよい。
【0041】
コンピュータ可読プログラム命令は同様に、コンピュータ、他のプログラマブル装置または他のデバイス上で実行する命令が流れ図および/またはブロック図の単数または複数のブロック内で規定されている機能/行為を実装するような形で、コンピュータ実装されるプロセスを制作するべく一連の動作ステップをコンピュータ、他のプログラマブル装置または他のデバイス上で行なわせるように、コンピュータ、他のプログラマブルデータ処理装置または他のデバイス上にロードされてもよい。
【0042】
図中の流れ図およびブロック図は、さまざまな実施形態に係るシステム、方法およびコンピュータ可読媒体の考えられる実装のアーキテクチャ、機能性および動作を例示している。この点に関して、流れ図またはブロック図中の各ブロックは、規定された論理機能を実装するための1つ以上の実行可能な命令を含むモジュール、セグメントまたは命令の一部分を表わし得る。方法、コンピュータシステムおよびコンピュータ可読媒体は、図中で描かれているものに比較して、追加のブロック、より少ないブロック、異なるブロックまたは異なる形で配設されたブロックを含むことができる。いくつかの代替的実装において、ブロック内に記された機能は、図中に記された順序を外れて発生し得る。例えば、連続して示された2つのブロックは、実際には、同時にかまたは実質的に同時に実行されてよく、あるいは、関与する機能に応じて、時として逆の順序でブロックを実行することもできる。同様に、ブロック図および/または流れ図の例示の各ブロックおよびブロック図および/または流れ図の例示の中のブロックの組合せを、規定された機能または行為を行なうかまたは専用ハードウェアおよびコンピュータ命令の組合せを実施する専用ハードウェアベースのシステムにより実装することができるということも指摘される。
【0043】
本明細書中に記載のシステムおよび/または方法は、異なる形態のハードウェア、ファームウェアまたはハードウェアとソフトウェアの組合せで実装可能であるということは明白である。これらのシステムおよび/または方法を実装するのに使用される実際の専用制御ハードウェアまたはソフトウェアコードは、実装を限定するものではない。したがって、システムおよび/または方法の動作および挙動は、本明細書中で、具体的なソフトウェアコードを参照することなく説明されており、本明細書中の説明に基づいてシステムおよび/または方法を実装するためにソフトウェアおよびハードウェアを設計することができるということが理解される。
【0044】
本明細書中で使用されるいかなる要素、行為または命令も、そのように明示的に記述されているのでないかぎり、決定的に重要な意味をもつまたは必須のものであるとみなされるべきではない。同様に、本明細書中で使用されている冠詞「a」および「an」は、1つ以上のアイテムを含むように意図されており、「1つ以上」と互換的に使用され得る。さらに、本明細書中に使用される「セット」なる用語は、1つ以上のアイテム(例えば関連するアイテム、関連しないアイテム、関係するアイテムと関係しないアイテムの組合せなど)を含むように意図され、「1つ以上」と互換的に使用され得る。1つのアイテムのみが意図される場合、「one(1つの)」または類似の言語が使用される。同様に、本明細書中で使用されるように「有する(has、have、having)」などの用語は、オープンエンドな用語として意図されている。さらに、「~に基づく」なる表現は、別段の明示的記述の無いかぎり、「少なくとも部分的に~に基づく」を意味するように意図されている。
【0045】
さまざまな態様および実施形態の説明は、例示を目的として提示されてきたが、網羅的または開示された実施形態に限定的であるようには意図されていない。特徴の組合せがクレーム中に記載されかつ/または明細書中で開示されているにせよ、これらの組合せは、考えられる実装の開示を限定するように意図されてはいない。実際、これらの特徴の多くは、具体的にクレーム中に記載および/または明細書中に開示されていない形で組合せ可能である。以下で列挙する各々の従属クレームは、1つのクレームのみに直接従属し得るものの、考えられる実装の開示は、クレームセット中の全ての他のクレームと組合せた形での各々の従属クレームを含む。説明された実施形態の範囲から逸脱することなく、当業者には多くの修正および変形形態が明白となるものである。本明細書中で使用される専門用語は、実施形態の原理、実践的応用および市場で見られる技術に比べた技術的改善を最も良く説明するため、または、他の当業者が本明細書中で開示された実施形態を理解できるようにするために選択されたものである。
図1
図2
図3
図4
図5
【外国語明細書】