File Exchange

image thumbnail

Vehicle Dynamics Blockset Interface for Unreal Engine 4 Projects

Simulink integration for Unreal Engine 4

75 Downloads

Updated 14 Jul 2020

The Vehicle Dynamics Blockset includes several built-in scenes in which you can drive a virtual vehicle. This support package provides the following additional content:
• AutoVrtlEnv.exe: A compiled Unreal Engine game that includes additional scenes such as a double lane change with cone markers and the ability to have two cars in the same scene (e.g., for overlaying results)
• AutoVrtlEnv.uproject: A project file that you can open with the Unreal Engine Editors to customize the pre-built 3D scenes
• MathWorks Simulation Plugin: A plugin necessary to connect an Unreal Engine compiled scene with Simulink
Additional information on how to use these features is included within the support package files.
• Setup Document: Please type the MATLAB command open('AVE_README.pdf') for setup instructions.

Comments and Ratings (80)

Mike Sasena

Hi again, Arun. We'll need more info from you to debug the error. Can you reach out to me via the Vehicle Dynamics Blockset product page (https://www.mathworks.com/products/vehicle-dynamics/expert-contact.html)? Thanks.

arun joshi

Hi Mike, I have tried it with UE 4.23.1 with R2020a and i get this message
"The following modules are missing or built with a different engine version: AutoVrtlEnv MathworksSimulation Would you like to rebuild them now?" and it errors out at compilation and asks " Try rebuilding from source manually". I have tried it and the log shows Linker errors as shown below. Any solution to this problem?

LINK : error LNK2001: unresolved external symbol IMPLEMENT_MODULE_MathWorksSimulation
Sim3dActor.gen.cpp.obj : error LNK2019: unresolved external symbol "public: __cdecl ASim3dActor::ASim3dActor(void)" (??0ASim3dActor@@QEAA@XZ) referenced in function "void __cdecl InternalConstructor<class ASim3dActor>(class FObjectInitializer const &)" (??$InternalConstructor@VASim3dActor@@@@YAXAEBVFObjectInitializer@@@Z)
Sim3dActor.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl ASim3dActor::PostInitializeComponents(void)" (?PostInitializeComponents@ASim3dActor@@UEAAXXZ)
Sim3dActor.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl ASim3dActor::Sim3dInit(void)" (?Sim3dInit@ASim3dActor@@UEAAXXZ)
Sim3dActor.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl ASim3dActor::Sim3dSetup(void)" (?Sim3dSetup@ASim3dActor@@UEAAXXZ)
Sim3dActor.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl ASim3dActor::Tick(float)" (?Tick@ASim3dActor@@UEAAXM@Z)
Sim3dActor.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl ASim3dActor::Sim3dStep(float)" (?Sim3dStep@ASim3dActor@@UEAAXM@Z)
Sim3dActor.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl ASim3dActor::EndPlay(enum EEndPlayReason::Type)" (?EndPlay@ASim3dActor@@UEAAXW4Type@EEndPlayReason@@@Z)
Sim3dActor.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual void __cdecl ASim3dActor::Sim3dRelease(void)" (?Sim3dRelease@ASim3dActor@@UEAAXXZ)
Sim3dActor.gen.cpp.obj : error LNK2001: unresolved external symbol "public: virtual class FString __cdecl ASim3dActor::ToString(struct FTransform const &,class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> > const *)const " (?ToString@ASim3dActor@@UEBA?AVFString@@AEBUFTransform@@PEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z)
Sim3dActor.gen.cpp.obj : error LNK2001: unresolved external symbol "protected: virtual void __cdecl ASim3dActor::BeginPlay(void)" (?BeginPlay@ASim3dActor@@MEAAXXZ)

Mike Sasena

Hi Arun. Yes, the MATLAB R2020a version of the plugin will work with UE 4.23.1.

arun joshi

does the plugin work with UE 4.23.1?

浩原 倪

Hi,Mike.
Thank you for your reply.

Mike Sasena

At this time, the latest version of this package (R2020a) is compatible with UE 4.23.

浩原 倪

浩原 倪

Hi,Is this package compatible with UE4.24

Mike Sasena

Hi Aditi,
We'll need more information to be able to figure out what's happening in your case. To start, please contact technical support (https://www.mathworks.com/support.html), and they will pull in the right people to help you. If this is an Unreal Engine build issue, you may need to reach out to Epic Games' technical support team.

Aditi Dey

Hello,
I created a Unreal engine 4.19 C++ project and installed the Mathworks Interface plugin, I can see the Plugin in my Visual Studio Solution file inside "Engine folder", but i am not able to include Sim3DActor.h in any of my c++ actor class. I have also added the PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "MathWorksSimulation", "MathWorksInterfaceLibrary"}); in my build.cs file.

Mike Sasena

A note about rebuilding Unreal Engine projects. There are two ways to connect Simulink to an Unreal Engine game: 1) use the Unreal Editor with your project open, or 2) build your game into an executable. The latter requires a compiler like Visual Studio. Depending on the version of this support package you're using, you may receive a warning that you have to rebuild the game when you try to open the included project in the Unreal Editor. If you don't have a suitable compiler, you can modify the AutoVrtlEnv.uproject file to prevent it from trying to rebuild the game. Specifically, remove the section on "Modules". This should allow the Unreal Editor to open the project without a rebuild.

Mike Sasena

Hi Akshay,
The error message seems to indicate that the Unreal Engine game isn't being launched / initialized properly. Please contact technical support (https://www.mathworks.com/support.html) so we can get more information and find a solution.

Akshay Inde

MATLAB System block 'DLCReferenceApplication/Visualization/3D Engine/3D Engine/Simulation 3D Scene Configuration/Simulation 3D Engine' error occurred when invoking 'resetImpl' method of 'Simulation3DEngine'. The error was thrown from '
'D:\Matlab\toolbox\shared\sim3d\sim3d\+sim3d\CommandWriter.p' at line 0
'D:\Matlab\toolbox\shared\sim3dblks\sim3dblks\Simulation3DEngine.p' at line 0'.
Caused by:
3D Simulation engine interface writer setup error. Is the 3D Simulation engine running?

I cant run the simulation and the above error pops up!

Mike Sasena

Hi Ingomar,
We don't currently offer any features to do this out of the box. Our Application Engineering team may be able to find a work-around for you, depending on the specifics of your situation. If this is something you want to pursue, reach out to me via our product page (https://www.mathworks.com/products/vehicle-dynamics/expert-contact.html).

Hi,
is there a possibility to add other vehicle models? Which steps are necessary, if e.g. stl-files are available for the desired vehicle?
Many Thanks.

Mike Sasena

Hi BK,
Q1: As of R2019b, UE 4.19 is the version we support
Q2: There are step-by-step instructions on installing everything on our help page (https://www.mathworks.com/help/vdynblks/ug/support-package-for-customizing-scenes.html)
Q3: If you are having trouble installing the Unreal Engine, I recommend you contact Epic Games or check out their support page (https://www.unrealengine.com/en-US/support).

BK Choi

Hello, I am trying to install and use this but this is too complicated.
Q1 : only 4.19.2 are available?
Q2 : when installing this project file, is there any mandatory sequence for installing tools? (unreal, this project file, support package)
Q3 : My company blocked this unreal site so i am following this link "https://wiki.unrealengine.com/GitHub_Setup" but still hard to apply since some missing advisories.

Is there anyone who installed this correctly?

@Domagoj Majstorovic, thanks for the instructions. I tried with 4.19.2 also, but the same problem persists. (4.19.2 also not available in Epic launcher, instead I used the their GitHub source with tag 4.19.2 release and built).

@Manoj. Just install the 4.19.2 version from the Epic Launcher, and then follow the instructions from the Vehicle Dynamics Blockset User Guide (copy/paste plugin and relevant content). You cannot just double click on *.uproject to run it. Instead, you need to run a script from Matlab which will then open the uproject-file and set up everything properly.

Mike Sasena

Hi Manoj. I would recommend you contact our Technical Support team (https://www.mathworks.com/support.html). They can help you find a solution after getting more information about what version of the tools you're using, what OS version you have, what steps you've taken, etc.

Hi,
I tried installing the Unreal v4.19 (its v4.19.2 available from their Github as Installer is not supporting older versions) and tried opening the AutoVrtlEnv.uproject. I am getting the error as "Binaries for the 'MathWorksSimulation' plugin are missing or incompatible with the current engine version. Would you like to disable it? You will no longer be able to open assets that were created with it." If I select yes, then the mathworks plugin is disabled, If I select no, then a message "Plugin 'MathWorksSimulation' failed to load because module 'MathWorksSimulation' could not be found. Please ensure the plugin is properly installed, otherwise consider disabling the plugin for this project".

Also, if I try opening with the latest UE_Editor (v4.24), then error shows that the plugin version is not compatible and try rebuilding from source. Is it possible to provide the plugin matching to the latest UE version or the source for rebuilding.

calia qi

Hi
When I created a new C ++ UE4 file and selected the matlab plug-in enable, the following problems occurred. There is less information in this regard, thank you.(plugin MathWorksSimulation failed to load because module mathworkssimulation could not be loaded.There may be an operation system error or the moudles may not be properly set up)

Mike Sasena

Hi again, Calia. I would recommend you contact our Technical Support team (https://www.mathworks.com/support.html). They can get more information about what you're trying to accomplish and help you find a solution.

calia qi

Hi
I encountered a problem, I know that AutoVrtlEnv.uproject has an interface vehicle with simulink. I have a uproject file myself, how could I find the simvehicle module in my own uproject file. In other words, how to build the unreal model into the simvehicle.

Mike Sasena

Hi Calia,

Please check out these instructions:
https://www.mathworks.com/help/vdynblks/ug/support-package-for-customizing-scenes.html

It walks you through the process of installing this support package and copying the necessary files (including the AutoVrtlEnv.uproject file) into the folders you'll need to begin testing.

calia qi

Hi,Where is the AutoVrtlEnv.uproject ? I can only find the AutoVrtlEnv.exe in matlab folder. Thanks

Sam Reinsel

Hi Ben, James,

Currently the only supported version of Unreal is 4.19, so you would not be able to use the plugin in UE4.23.

I've actually encountered this "Failed to compile" on a PC that only had Visual Studio 2015 installed. In my case, The build log for the project (located at "C:\Local\AutoVrtlEnv\Saved\Logs\AutoVrtlEnv.log") included a line specifically calling out that VS2017 was required to build this project (it may not be the same in your case, but the build log may help identify the issue). This seems to be a recent change to Unreal Engine itself.

https://docs.unrealengine.com/en-US/GettingStarted/RecommendedSpecifications/index.html

In my case, installing VS2017 on my machine and executing step 5 again successfully compiled and opened. So that may be a starting point on resolving the issue.

Hi there,
I have followed the installation steps up until #5, at which point I receive an error message stating that "AutoVrtlEnv could not be compiled".
I am using R2019b and Unreal Engine v4.23.

Is this down to a version issue, or is it the same problem as Ben described below?

Many thanks

Hi,

I am having an issue with step 5 in "Set Up Environment and Open Unreal Editor" in the set up instructions where UE4Editor-AutoVrtlEnv.dll is missing. Then trying to rebuild I receive "AutoVrtlEnv" could not be compiled.

I have installed R2019b, update 1 and Unreal Engine ver 4.19.2.

Has anyone else had this issue? Any advice?

Cheers.

It would be great if the documentation for these blocks had their respective units specified in them (i.e. does the rotation port of the "Actor Transform Set" block take radians or degrees?)

Mike Sasena

Hi Patrick,
The suggested fixes have been moved into the next MATLAB Update, which is expected to come out soon. You can find more information on how to check for the latest updates here:
https://www.mathworks.com/help/install/ug/update-mathworks-license-and-software.html

Hi there,
I'm encountering the same problem as Wang wrote below. I have visited Bug Report 2075910 and see there are no suggested fixes yet.
Can anyone advise me if the full error message in due to the one windows update issue, or if I have multiples issues stopping running this example?

MATLAB System block 'SimpleScenarioAndSensorModel3DSimulation/Ego Vehicle/PlantParser/Passenger Vehicle Ray Trace Set/Simulation
3D Actor Ray Trace Read' error occurred when invoking 'setupImpl' method of 'Simulation3DActorRayTraceRead'. The error was thrown
from '
'C:\Program Files\MATLAB\R2019b\toolbox\shared\sim3d\sim3d\+sim3d\Engine.p' at line 0
'C:\Program Files\MATLAB\R2019b\toolbox\shared\sim3d\sim3d\+sim3d\Engine.p' at line 0
'C:\Program Files\MATLAB\R2019b\toolbox\shared\sim3dblks\sim3dblks\Simulation3DActor.p' at line 0
'C:\Program Files\MATLAB\R2019b\toolbox\shared\sim3dblks\sim3dblks\Simulation3DActorRayTraceRead.p' at line 0
'C:\Program Files\MATLAB\R2019b\examples\driving\main\SimulateASimpleDrivingScenarioAndSensorIn3DEnvironmentExample.m' at line
159'.
Caused by:
Error using SimulateASimpleDrivingScenarioAndSensorIn3DEnvironmentExample (line 159)
Invalid default value for property 'engine' in class 'sim3d.Engine':
No method 'Start' with matching signature found for class 'System.Diagnostics.Process'.

Hello All,

The error message “No method 'Start' with matching signature found for class 'System.Diagnostics.Process'.” is related to a Windows update that includes .Net 4.8 (528049).
Please see Bug Report 2075910 for a solution: https://www.mathworks.com/support/bugreports/2075910

wang

I encountered a problem. Any suggestions

MATLAB System block 'SCRReferenceApplication/Camera Actor Transform Set /Simulation 3D Actor Transform Write' error occurred when invoking 'setupImpl' method of 'Simulation3DActorTransformWrite'. The error was thrown from '
'C:\MATLAB\R2019a\toolbox\shared\sim3d\sim3d\+sim3d\Engine.p' at line 0
'C:\MATLAB\R2019a\toolbox\shared\sim3d\sim3d\+sim3d\Engine.p' at line 0
'C:\MATLAB\R2019a\toolbox\shared\sim3dblks\sim3dblks\Simulation3DActor.p' at line 0
'C:\MATLAB\R2019a\toolbox\shared\sim3dblks\sim3dblks\Simulation3DActorTransformWrite.p' at line 0'.
Caused by:
Invalid default value for property 'engine' in class 'sim3d.Engine':
No method 'Start' with matching signature found for class 'System.Diagnostics.Process'.

Nevermind, found the problem. This plugin is great tho

Yiran Zhang

yixiao wang

Mike Sasena

Hi Sampath. Thanks for your feedback. The purpose of this support package isn't to provide a generic implementation. It is an add-on that provides extra content and customization capabilities specifically for MathWorks' automotive customers. Feel free to reach me through our product page (https://www.mathworks.com/products/vehicle-dynamics/expert-contact.html) if you'd like to discuss your applications / requirements in more detail.

Why is this a part of the vehicle dyanmics blockset? Unreal affords general application for visualization - so Simulink (and Mathworks) should provide a generic implementation to ferry data back and forth. Right now, the way I see, its tied down to having license for particular blockset.

Mike Sasena

Hi Sen,
We migrated the plugin from the Epic Games Marketplace into this support package. Everything you need should be available from this download. We just updated this download today (May 22), so you could try updating. If that version doesn't work, please reach out to me via our product page (https://www.mathworks.com/products/vehicle-dynamics/expert-contact.html), and I can help troubleshoot.

Sen Yang

Hi Mike,
I downloaded this project and installed unreal engine 4.19.
However, when I tried to open AutoVrtlEnv.uproject, a dialog popped up which asks whether to open Epic Games Marketplace to download MathWorksSimulation plugin.
I opened Epic Games Marketplace and searched key word "MathWorks", and I found "MathWorks Interface" code plugin, but I could not find where to download this plugin.
Are "MathWorks Interface" and "MathWorksSimulation" the same?

I also tried to open AutoVrtlEnv.uproject without "MathWorksSimulation" plugin, and error happened, which says "CreateExport: Failed to load Outer for resource 'AMathWorksPassengerVehicleMesh': Sim3dPassVeh /Game/Maps/HwStrght.HwStrght:PersistentLevel.Sim3dPassVeh_1" (and Veh2).
I guess this is because I haven't had MathWorksSimulation plugin included.

Could you please tell me how to download and use the MathWorksSimulation plugin?

Thank you very much!

Mike Sasena

Hi Yu. Please refer to the AVE_README.pdf that comes with this support package to determine which version of Unreal Engine is supported, as this will evolve over time. Note that the R2019a version of the documentation only says that we use 4.19 (it does not say 4.19.0 specifically). I've used 4.19.2 successfully, for example.

Yu Wang

guess do use version 4.19.0 to run the simulation. I dont know why epic games makes many modifications between each version.

Mike Sasena

Hi Tim,
We'd be happy to help you get this set up, but we'll need more information. Please use the button in the "Have Questions?" section of the Vehicle Dynamics Blockset product page to contact us (link below). We can then work with you directly to get this working.

https://www.mathworks.com/products/vehicle-dynamics/expert-contact.html

Hi,

I've tried following both method instructions in AVE_README.pdf, and tried all the related examples, but can't get anywhere.

Always get this error:
-----------
MATLAB System block 'DLCReferenceApplication/Visualization/3D Engine/3D Engine/Simulation 3D Engine 1/Simulation 3D Engine' error occurred when invoking 'setupImpl' method of 'Simulation3DEngine'. The error was thrown from '
'C:\Program Files\MATLAB\R2018b\toolbox\shared\sim3d\sim3d\+sim3d\Engine.p' at line 0
'C:\Program Files\MATLAB\R2018b\toolbox\shared\sim3d\sim3d\+sim3d\Engine.p' at line 0
'C:\Program Files\MATLAB\R2018b\toolbox\shared\sim3d\sim3d\+sim3d\Project.p' at line 0
'C:\Program Files\MATLAB\R2018b\toolbox\shared\sim3dblks\sim3dblks\Simulation3DEngine.p' at line 0'.
Caused by:
Invalid default value for property 'engine' in class 'sim3d.Engine':
3D simulation engine interface setup error (1). Please check the toolbox preferences and ini-file.
---------
Any Suggestions ?
Thank you.

Victor Sim

Hi Mike,
I'm getting this message when running the script for Method B:
Error using sim3d.Engine/setup
Invalid default value for property 'engine' in class 'sim3d.Engine':
Invalid MEX-file 'C:\Program Files\MATLAB\R2018b\toolbox\shared\sim3d\sim3d\SetupSimulation3DInterface.mexw64':
The specified module could not be found.

Do you know how to fix this?
Thanks

Sam Reinsel

Could you please tell me how to use this package.I'm a beginner

Mike Sasena

Shahzeb, as mentioned in the AVE_README.pdf, this support package was designed to work with Unreal Engine version 4.19. Please install that specific version of Unreal and try again. If you still have problems, you can contact us through the product page at https://www.mathworks.com/products/vehicle-dynamics/expert-contact.html.

Hi I have installed Unreal Engine 4.21.1 and I think the Method b is not running and there is compiling error. I don't know how to work with co-simulation as I am new to it.
Can anybody please provide me the startup link or document?
Thanks

Mike Sasena

One additional piece of information. Make sure that you set the initial position for the Simulation 3D Actor Set block (https://www.mathworks.com/help/vdynblks/ref/simulation3dactortransformset.html) to be the same as initial position in the Vehicle Body block mentioned below in my last post. The former specifies the first frame when we initialize the 3D engine. The latter sets the starting position of the vehicle once the simulation begins. Both blocks should reference the same value.

Mike Sasena

Tao, the initial position of the vehicle is set within the reference model for the Vehicle Body (3DOF or 6DOF) block. See https://www.mathworks.com/help/vdynblks/ref/vehiclebody6dof.html in the documentation. if you want help with your specific application, you can contact us through the product page at https://www.mathworks.com/products/vehicle-dynamics/expert-contact.html.

tao zhong

Hi, changing the initial value of Vehicle Transform Set block doesn't work for me, the car always starts from the same place. How should I change the starting place? Thanks.

Starting in R2018b, the Vehicle Dynamics Blockset product documentation includes specific information about the scenes, including object locations. See https://www.mathworks.com/help/vdynblks/vehicle-scenarios.html in the documentation

Peter Corke

It would be really great to have a Mac version. Unreal engine is well supported for Mac, pity that this tool doesn't allow it.

Mike Sasena

Carlos. Thank you for your interest, but we do not have any announcements on Mac-supported games at this time.

Any news on when will the games be compiled for Mac?

Mike Sasena

Sudhandshu, Method A in the AVE_README.pdf specifies the path to AutoVrtlEnv.exe using the variable “src_root”. At the end of the code snippet, you can use the command "setenv('PATH', winPath)" to update the Windows path. This will allow MATLAB to find AutoVrtlEnv.exe when it tries to launch the game.

As for your question about “Vehicle Dynamics Blockset doesn’t download on R2018a”, can you please be more specific? What is it that you’re trying to do and what error message are you seeing? If you're starting the download from FileExchange, it may use the latest MATLAB version. You can instead start the download from R2018a's "Add-On Explorer" to ensure you get that specific version.

I am using 2018a version, Vehicle Dynamics Blockset doesn't download on that, anyone knows why?

I don't find the instructions very clear, can I get someone to help me? For example, in Method A: Setup MathWorks Environment for Using AutoVrtlEnv.exe: I do not know what path to add. Also, where can I find AutoVrtlEnv.exe on my pc?

Mike Sasena

Yufei, the current implementation is limited to exchanging data with specific objects defined in the scenes provided with Vehicle Dynamics Blockset. We have received similar requests for interfacing with user-defined objects, but cannot announce when such a feature would become available.

Yufei Quek

Hi, is it possible to configure the interface between Simulink and Unreal Engine? For example, to obtain transformation data from a custom object in UE4 instead of using the provided Sim 3D objects?

Mike Sasena

Christopher, apologies for the inconvenience. There was a slight delay in publishing our materials on the Epic Games Marketplace. The files should now be available at this link:
https://www.unrealengine.com/marketplace/mathworks-interface

The MathWorks Simulation Plugin doesn't seem to be available in the Unreal marketplace. Is there anywhere else we can get this from?

Mikhail

Looking forward to having Vehicle Dynamics Blockset work on Linux with the same featureset as on Windows.

Multiplexer

Multiplexer

Multiplexer

Multiplexer

Vincent Hu

Mike Sasena

Karan, thank you for your interest. We do plan to compile the games for Linux and Mac, but I don’t have a specific date for when these will be available.

Is it possible for you guys (Mathworks) to recompile this game from unreal editor for Linux? Or does it have any components that only work on windows?

MATLAB Release Compatibility
Created with R2018a
Compatible with R2018a to R2020a
Platform Compatibility
Windows macOS Linux