はじめに
MATLAB/Simulinkはモデルの構築・シミュレーションにとても便利だが、可視化が苦手。作ったモデルがシミュレーション中にどう動いているかをリアルタイムで見たいというのがモチベーションとしてあった。
ロジクールのハンコンを持っていたので、バーチャル世界で自動車の運転をすることを目標とした。
実は産業用途や学生向けなどのライセンスでは、Vehicle Dynamics Blockset や Automated Driving Toolbox といったアドオン商品(Toolbox)が提供されていて、簡単に実現できそうだった。
しかし、筆者はHomeライセンスだったため利用不可。ドキュメントも上記を利用したものがほとんどだったので、試行錯誤してようやく実現できた。
書いていくうちに、1つの記事では長くなりすぎて見づらいと感じたので、前後半に分ける。本記事は前編として、各ツールのインストールとMATLAB/Simulink側のセットアップ手順まで。
成果物
準備
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上の環境等を編集・カスタマイズするには以下が必要。
- Unreal Engine 4.27
MATLABのバージョンに依存する
参考リンク-1
3. Visual Studio (オプション)
UEをC++で編集する場合は、以下も必要。
- Visual Studio 2019
MATLABのバージョンに依存する
手順
手順をすべて書くと長くなるので、つまずいたところを抽出し、その他の手順は参考リンクに任せる。
準備に記載のMATLAB Toolbox, アドオンと、Unreal Engineをインストールしておく。
Simulink 側
-
MATLABとToolbox, アドオンをインストール
-
Unreal Engineをインストール
-
MATLABを管理者権限(を持つアカウント)で起動
-
以下のコマンドを実行
configure_env.mUEProjectPath = "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);
-
UEProjectPath
にプロジェクトファイルがコピーされていることを確認
(コピー元:C:\ProgramData\MATLAB\SupportPackages\R2023a\toolbox\shared\sim3dprojects\spkg\project\AutoVrtlEnv) -
各ブロックで入力、プロパティを適切に入力する
- Simulation 3D Scene Configuration 内の Project は
UEProjectPath
で設定したパスにする - Simulation 3D Actor Transform Set にはアクターの位置・回転・拡大率を配列で入力する
- Simulation 3D Message Set で上記アクター内で動かしたいパーツの情報を配列で入力する
- Simulation 3D Actor ブロックでUE内にカメラを設置する
参考リンク-3~7
おまけ
UE4では2次元配列はサポートされていないようなので、1次元で入力する
- Simulation 3D Scene Configuration 内の Project は
-
Simulation 3D Scene Configuration から
Unreal Editor を開く
でUEを起動する -
Pluginの有効化などを行い、UEを上記と同じ方法で再起動する
後編に続く
参考リンク
- シミュレーション環境の要件
- サポートパッケージのインストール
- SimulinkとUE上でのコ・シミュレーション(動画)
- シミュレーションでUEのアクターを操作(動画)
- UE環境とのコミュニケーション
- カスタムアクターのアニメーション
- ジェネリックアクターをUE上に配置