メインコンテンツ

このページの内容は最新ではありません。最新版の英語を参照するには、ここをクリックします。

UAV 用の Unreal Engine シミュレーションの仕組み

UAV Toolbox は、Simulink® で UAV アルゴリズムをモデル化し、バーチャル シミュレーション環境でパフォーマンスを可視化するために使用できるコシミュレーション フレームワークを提供します。この環境では、Epic Games® の Unreal Engine® を使用します。

メモ

3D 可視化環境でモデルをシミュレーションするには、Simulink 3D Animation™ が必要です。

このシミュレーション環境の仕組みを理解すると、問題のトラブルシューティングやモデルのカスタマイズに役立ちます。UAV Toolbox

3D シミュレーション エンジンとの通信

UAV Toolbox を使用してアルゴリズムを実行すると、Simulink は、ロックステップ メカニズムを使用して 3D シミュレーション エンジンでアルゴリズムのコシミュレーションを行います。ロックステップ メカニズムとは、シミュレーションが固定タイム ステップで進行し、Simulink と 3D シミュレーション エンジンが順次実行される同期手法です。一方のシミュレーション エンジンが待機している間にもう一方のシミュレーション エンジンが処理を進めるため、各シミュレーションは一貫した結果を得られます。

各シミュレーション ステップにおいて次が行われます。

  • Simulink はアクターの変換やプロパティ、カスタム シーンの視点など、3D 環境の初期設定を行います。また、Simulink は、3D シミュレーション エンジンのフィードバックを使用して、3D 環境とアクターのコンフィギュレーション パラメーターも決定します。

  • コシミュレーション フレームワークは、Simulink から 3D シミュレーション エンジンにデータを送信します。

  • コシミュレーション フレームワークは、データ転送の終了を示すコマンド信号を 3D シミュレーション エンジンに送信します。

  • 3D シミュレーション エンジンがシミュレーションを実行します。3D シミュレーション エンジンは、Simulink からのデータに基づいて 3D 環境とアクターを設定してから、3D 環境とアクターに関する更新情報を提供します。

  • コシミュレーション フレームワークは、3D シミュレーション エンジンから Simulink にデータを送信します。

  • コシミュレーション フレームワークは、3D シミュレーション エンジンからのデータ転送の終了を示す肯定応答の信号を Simulink に送信します。

3D シミュレーション エンジンと通信するために、Simulink は Simulation 3D Scene Configuration ブロックを使用します。

ブロック実行順序

シミュレーション中に、Unreal Engine シミュレーション ブロックは次の特定の実行順序に従います。

  1. Simulation 3D UAV Vehicle ブロックがビークルを初期化し、その [Translation]、および [Rotation] の信号データを Simulation 3D Scene Configuration ブロックに送信する。

  2. Simulation 3D Scene Configuration ブロックがビークルのデータを受信してセンサー ブロックに送信する。

  3. センサー ブロックがビークル データを受信し、そのデータを使用してビークルの位置を正確に特定して可視化する。

ブロックの [優先順位] プロパティにより、この実行順序を制御します。任意のブロックのこのプロパティにアクセスするには、ブロックを右クリックして [プロパティ] を選択し、[一般] タブをクリックします。既定では、Simulation 3D UAV Vehicle ブロックの優先順位は -1Simulation 3D Scene Configuration ブロックの優先順位は 0、センサー ブロックの優先順位は 1 です。

次の図では、この実行順序を示します。

Execution order of the Unreal Engine Simulation blocks

センサーがシーン内のビークルを検出していない場合、Unreal Engine シミュレーション ブロックの実行順序が正しくない可能性があります。実行順序を更新して再びシミュレーションしてみてください。実行順序の詳細については、実行順序の制御と表示 (Simulink)を参照してください。

また、すべての 3D シミュレーション ブロックが同じサブシステム内に配置されていることを確認してください。ブロックの [優先順位] 設定が正しくても、異なるサブシステム内に配置されている場合は、実行順序が正しくなくなることがあります。

シミュレーション速度

シミュレーション速度は、シミュレーションの終了時間とサンプル時間に依存します。終了時間は、シミュレーションの継続時間です。サンプル時間は、シミュレーション中に出力が更新される時間間隔です。シミュレーション ステップは、サンプル時間に対する終了時間の比です。ステップを小さくすると、より詳細で正確なシミュレーションが可能になりますが、計算負荷とシミュレーション時間が増加する可能性があります。ステップは、位置、速度、シミュレーションに含まれるその他のオブジェクトのプロパティなど、シミュレーションの状態を更新する頻度を決定します。Simulink でサンプル時間を設定するには、Simulation 3D Scene Configuration ブロックで [サンプル時間] パラメーターを使用します。サンプル時間を短くすると、ソフトウェアは 1 秒間に多くのサンプルを採取するため、シミュレーション速度は低下します。

システム動作を調べるために 3D シミュレーションを遅くする場合、シミュレーション ペーシングを使用できます。ペーシング レートは、リアルタイムに対してシミュレーションがどれだけ高速で実行されるかを決定します。ペーシング レートは、シミュレーションの進行速度を調整します。ペーシング レート 1 はシミュレーションがリアルタイムで実行されることを意味します。1 より大きいレートではシミュレーションがリアルタイム速度を超えて速くなり、1 より小さいレートではシミュレーションが遅くなります。Simulink でSimulation Pacing Options (Simulink)を使用して、シミュレーションのペーシングを構成できます。

シミュレーション速度も、モデルの複雑度、計算速度、システムがシーンをレンダリングできる速度に依存しますが、これはシステム構成に依存します。Simulink プロファイラー (Simulink)を使用すると、シミュレーション コンポーネント間のシミュレーション実行時間の分布を解析し、シミュレーションでの各コンポーネントの計算時間を確認できます。

参考

トピック