LoginSignup
11
6

More than 1 year has passed since last update.

MATLAB / Simulink で作ったシミュレーションを Unreal Engine で可視化して遊ぶ 【前編】

Last updated at Posted at 2023-05-10

はじめに

MATLAB/Simulinkはモデルの構築・シミュレーションにとても便利だが、可視化が苦手。作ったモデルがシミュレーション中にどう動いているかをリアルタイムで見たいというのがモチベーションとしてあった。
ロジクールのハンコンを持っていたので、バーチャル世界で自動車の運転をすることを目標とした。

実は産業用途や学生向けなどのライセンスでは、Vehicle Dynamics Blockset や Automated Driving Toolbox といったアドオン商品(Toolbox)が提供されていて、簡単に実現できそうだった。
しかし、筆者はHomeライセンスだったため利用不可。ドキュメントも上記を利用したものがほとんどだったので、試行錯誤してようやく実現できた。

書いていくうちに、1つの記事では長くなりすぎて見づらいと感じたので、前後半に分ける。本記事は前編として、各ツールのインストールとMATLAB/Simulink側のセットアップ手順まで。

成果物

Videotogif.gif

準備

1. MathWorks製品

Automated Driving Toolbox などでは Unreal Engine (UE) と連携して可視化していたので、同様の手法をとることにした。
前提として以下のToolbox・アドオンが必要になる。

  • MATLAB R2023a
    UEとの連携はどんどん開発されてるようなので、最新のバージョンを使う
  • Simulink
    シミュレーション環境
  • Simulink 3D Animation
    可視化環境の設定をするブロックが含まれる
  • Aerospace Blockset
    UEとデータのやり取りをするブロックが含まれる
  • Aerospace Blockset Interface for Unreal Engine Projects
    UEとのインターフェースを構築するプラグインが含まれる

2. Unreal Engine

また、UE上の環境等を編集・カスタマイズするには以下が必要。

3. Visual Studio (オプション)

UEをC++で編集する場合は、以下も必要。

  • Visual Studio 2019
    MATLABのバージョンに依存する

手順

手順をすべて書くと長くなるので、つまずいたところを抽出し、その他の手順は参考リンクに任せる。
準備に記載のMATLAB Toolbox, アドオンと、Unreal Engineをインストールしておく。

Simulink 側

  1. MATLABとToolbox, アドオンをインストール

  2. Unreal Engineをインストール

  3. MATLABを管理者権限(を持つアカウント)で起動

  4. 以下のコマンドを実行

    configure_env.m
    UEProjectPath = "UEのプロジェクトファイルを置きたいパス"; % 例:"E:\Unreal\Projects"
    PluginLocationPath = "UEのプラグインを格納するパス" % デフォルトは"C:\Program Files\Epic Games\UE_4.27\Engine\Plugins\MathWorks"
    sim3d.utils.copyExampleSim3dProject(UEProjectPath,...
      PluginDestination=PluginLocationPath, ...
      VerboseOutput=true);
    

    参考リンク-2

  5. UEProjectPathにプロジェクトファイルがコピーされていることを確認
    (コピー元:C:\ProgramData\MATLAB\SupportPackages\R2023a\toolbox\shared\sim3dprojects\spkg\project\AutoVrtlEnv)

  6. Simulinkを起動し、必要なブロックを配置する

    model_setup.png

  7. 各ブロックで入力、プロパティを適切に入力する

    • Simulation 3D Scene Configuration 内の Project は UEProjectPathで設定したパスにする
    • Simulation 3D Actor Transform Set にはアクターの位置・回転・拡大率を配列で入力する
    • Simulation 3D Message Set で上記アクター内で動かしたいパーツの情報を配列で入力する
    • Simulation 3D Actor ブロックでUE内にカメラを設置する
      参考リンク-3~7
      おまけ

    UE4では2次元配列はサポートされていないようなので、1次元で入力する

  8. Simulation 3D Scene Configuration から Unreal Editor を開く でUEを起動する

  9. Pluginの有効化などを行い、UEを上記と同じ方法で再起動する

後編に続く

参考リンク

  1. シミュレーション環境の要件
  2. サポートパッケージのインストール
  3. SimulinkとUE上でのコ・シミュレーション(動画)
  4. シミュレーションでUEのアクターを操作(動画)
  5. UE環境とのコミュニケーション
  6. カスタムアクターのアニメーション
  7. ジェネリックアクターをUE上に配置

【おまけ】ブロックのプロパティ値 参考例

  • Simulation 3D Scene Configuration
    image.png

  • Simulation 3D Actor Transform Set
    image.png

  • Simulation 3D Message Set
    image.png

  • Simulation 3D Actor
    image.png
    image.png

11
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
6