Simulation 3D Scene Configuration
Libraries:
Vehicle Dynamics Blockset /
Vehicle Scenarios /
Sim3D /
Sim3D Core
Aerospace Blockset /
Animation /
Simulation 3D
Automated Driving Toolbox /
Simulation 3D
UAV Toolbox /
Simulation 3D
Simulink 3D Animation /
Simulation 3D
Description
The Simulation 3D Scene Configuration block implements a 3D simulation environment that is rendered by using the Unreal Engine® from Epic Games®. Automated Driving Toolbox™ integrates the 3D simulation environment with Simulink® so that you can query the world around the vehicle and virtually test perception, control, and planning algorithms. Using this block, you can also control the position of the sun and the weather conditions of a scene. For more details, see Sun Position and Weather.
You can simulate from a set of prebuilt scenes or from your own custom scenes. Scene customization requires the Automated Driving Toolbox Interface for Unreal Engine 4 Projects support package. For more details, see Customize Unreal Engine Scenes for Automated Driving.
You can also simulate custom scenes designed and built in RoadRunner. To do so, you must first export scenes from RoadRunner and specify the path to the exported scene artifacts in the Project parameter of the Simulation 3D Scene Configuration block.
Note
The Simulation 3D Scene Configuration block must execute after blocks that send data to the 3D environment and before blocks that receive data from the 3D environment. To verify the execution order of such blocks, right-click the blocks and select Properties. Then, on the General tab, confirm these Priority settings:
For blocks that send data to the 3D environment, such as Simulation 3D Vehicle with Ground Following blocks, Priority must be set to
-1
. That way, these blocks prepare their data before the 3D environment receives it.For the Simulation 3D Scene Configuration block in your model, Priority must be set to
0
.For blocks that receive data from the 3D environment, such as Simulation 3D Camera blocks, Priority must be set to
1
. That way, the 3D environment can prepare the data before these blocks receive it.
For more information about execution order, see How Unreal Engine Simulation for Automated Driving Works.
Examples
Parameters
Scene
Scene SelectionScene source — Source of scene
Default Scenes
(default) | RoadRunner
| Unreal Executable
| Unreal Editor
Source of the scene in which to simulate, specified as one of the options in the table.
Option | Description |
---|---|
Default Scenes | Simulate in one of the default, prebuilt scenes specified in the Scene name parameter. |
RoadRunner | Simulate in a RoadRunner scene. To import the scene, specify the RoadRunner file in the Project parameter. To export a scene from RoadRunner, use the option CARLA Filmbox in Export Using CARLA Filmbox (RoadRunner). |
Unreal Executable | Simulate in a scene that is part of an Unreal Engine executable file. Specify the executable file in the Project name parameter. Specify the scene in the Scene parameter. Select this option to simulate in custom scenes that have been packaged into an executable for faster simulation. |
Unreal Editor | Simulate in a scene that is part of an Unreal Engine project ( Select this option when developing custom scenes. By clicking Open Unreal Editor, you can co-simulate within Simulink and the Unreal Editor and modify your scenes based on the simulation results. |
Scene name — Name of prebuilt 3D scene
Straight road
(default) | Curved road
| Parking lot
| Double lane change
| Open surface
| US city block
| US highway
| Virtual Mcity
| Large parking lot
Name of the prebuilt 3D scene in which to simulate, specified as one of these options. For details about a scene, see its listed corresponding reference page.
Straight road
— Straight RoadCurved road
— Curved RoadParking lot
— Parking LotDouble lane change
— Double Lane ChangeOpen surface
— Open SurfaceUS city block
— US City BlockUS highway
— US HighwayVirtual Mcity
— Virtual McityLarge parking lot
— Large Parking Lot
The Automated Driving Toolbox Interface for Unreal Engine 4 Projects contains customizable versions of these scenes. For details about customizing scenes, see Customize Unreal Engine Scenes for Automated Driving.
Dependencies
To enable this parameter, set Scene source to
Default Scenes
.
Project name — Name of Unreal Engine executable file
VehicleSimulation.exe
(default) | valid executable file name
Name of the Unreal Engine executable file, specified as a valid executable project file name. You can either browse for the file or specify the full path to the project file, using backslashes. To specify a scene from this file to simulate in, use the Scene parameter.
By default, Project name is set to
VehicleSimulation.exe
, which is on the MATLAB® search path.
Example: C:\Local\WindowsNoEditor\AutoVrtlEnv.exe
Dependencies
To enable this parameter, set Scene source to
Unreal Executable
.
Select ASAM OpenDRIVE file — Specify an ASAM OpenDRIVE file
off
(default) | on
Specify an ASAM OpenDRIVE® file. Select the block parameter Select ASAM OpenDRIVE file to specify an ASAM OpenDRIVE file. You will need an ASAM OpenDRIVE file if you want to perform any lane detection applications with custom scenes using the Simulation 3D Vision Detection Generator block.
Dependencies
This parameter is available when you set Scene Source
is
set to either Unreal Executable
or Unreal
Engine
.
Data Types: Boolean
Scene — Name of scene from executable file
/Game/Maps/HwStrght
(default) | path to valid scene name
Name of a scene from the executable file specified by the Project name parameter, specified as a path to a valid scene name.
When you package scenes from an Unreal Engine project into an executable file, the Unreal Editor saves the scenes to an internal folder within the executable
file. This folder is located at the path /Game/Maps
. Therefore, you
must prepend /Game/Maps
to the scene name. You must specify this
path using forward slashes. For the file name, do not specify the
.umap
extension. For example, if the scene from the executable in
which you want to simulate is named myScene.umap
, specify
Scene as /Game/Maps/myScene
.
Alternatively, you can browse for the scene in the corresponding Unreal Engine project. These scenes are typically saved to the
Content/Maps
subfolder of the project. This subfolder contains
all the scenes in your project. The scenes have the extension
.umap
. Select one of the scenes that you packaged into the
executable file specified by the Project name parameter.
Use backward slashes and specify the .umap
extension for the
scene.
By default, Scene is set to
/Game/Maps/HwStrght
, which is a scene from the default
VehicleSimulation.exe
executable file specified by the
Project name parameter. This scene corresponds to the prebuilt
Straight Road scene.
Example: /Game/Maps/scene1
Example: C:\Local\myProject\Content\Maps\scene1.umap
Dependencies
To enable this parameter, set Scene source to
Unreal Executable
.
Project — Name of Unreal Engine project file or RoadRunner file
valid project file name
Name of the Unreal Engine project file or RoadRunner file, specified as a valid project file name. You can either browse for the file or specify the full path to the file, using backslashes. The file name must contain no spaces.
To simulate scenes from Unreal Engine project file in the Unreal Editor, click Open Unreal Editor. If you have an Unreal Editor session open already, then this button is disabled.
To run the simulation, in Simulink, click Run. Before you click Play in the Unreal Editor, wait until the Diagnostic Viewer window displays this confirmation message:
In the Simulation 3D Scene Configuration block, you set the scene source to 'Unreal Editor'. In Unreal Editor, select 'Play' to view the scene.
To simulate a RoadRunner scene, browse for the folder containing the exported RoadRunner scene files, then specify the Filmbox (.fbx
) file.
You can export a RoadRunner scene using the option CARLA
Filmbox in Export Using CARLA Filmbox (RoadRunner). This option
exports these three files to a folder:
Filmbox (
.fbx
) fileASAM OpenDrive (
.xodr
) fileXML (
.rrdata.xml
) file
Tip
Semantic segmentation in Simulation 3D Camera and
Simulation 3D Lidar uses the XML (.rrdata.xml
)
file. The ASAM OpenDRIVE (.xodr
) file provides object data and lane ground
truth data for the Simulation 3D Vision Detection Generator to
generate detections. When you specify the Filmbox (.fbx
) file
as the Project parameter, check that the XML
(.rrdata.xml
) and ASAM OpenDRIVE (.xodr
) files are in the same folder.
Dependencies
To enable this parameter, set
Scene source to Unreal Editor
or
RoadRunner
. The RoadRunner
option requires a Simulink
3D Animation™ license.
Scene view — Placement of virtual camera that displays scene
Custom
| Scene Origin
| vehicle name
Configure the placement of the virtual camera that displays the scene during simulation.
If your model contains no Simulation 3D Vehicle with Ground Following blocks, then during simulation, you view the scene in free camera mode from a camera positioned at the scene origin. To change the view to a custom viewpoint, set Scene view to
Custom
. Then, set theInitial viewer translation
andInitial viewer rotation
values to view the scene in free camera mode at the specified viewpoint.If your model contains at least one vehicle block, then by default, you view the scene from a camera attached to the first vehicle that was placed in your model. To change the view to a different vehicle, set Scene view to the name of that vehicle. The Scene view parameter list is populated with all the Name parameter values of the vehicle blocks contained in your model.
If you add a Simulation 3D Scene Configuration block to your model before adding any vehicle blocks, the virtual camera remains positioned at the scene origin. To reposition the camera to follow a vehicle, update this parameter.
Scene Controls
When Scene view is set to Scene Origin
or
Custom
, you can change the location of the camera to navigate in
the scene during simulation using keyboard and mouse control. You can also change the
camera location when the simulation is paused.
To navigate in virtual world, use these keyboard shortcuts.
Keyboard Shortcut | Camera Control |
---|---|
W | Move forward. |
Shift+W | Move faster in the forward direction. |
S | Move backward. |
Shift+S | Move faster in reverse direction. |
A | Move left. |
Shift+A | Move faster toward left. |
D | Move right. |
Shift+D | Move faster toward right. |
Q | Move up. |
Shift+Q | Move faster in the upward direction. |
E | Move down. |
Shift+E | Move faster in the downward direction. |
Mouse scroll wheel | Control the camera distance from the cursor point. |
Shift+mouse scroll wheel | Camera moves faster. |
Mouse right-click and drag | Orbit around the cursor point. |
O | Attach camera to actor, including vehicle, pedestrian or bicyclist under the cursor point. |
Mouse left-click and drag | Orbit around the actor after camera attaches to the actor. |
P | Detach camera from the actor. |
L | Record the current viewpoint and display |
1 to 9 | Access the stored viewpoints, if available. |
Tab | Cycle the view between all vehicles in the scene and the viewpoint at the start of the simulation, in the forward direction. |
Shift+Tab | Cycle the view between all vehicles in the scene and the viewpoint at the start of the simulation, in the reverse direction. |
Vehicle Views
When Scene view is set to a vehicle name, during simulation, you can change the location of the camera around the vehicle. You can also set the view to a vehicle during simulation by pressing Tab.
To smoothly change the camera views, use these keyboard shortcuts.
Keyboard Shortcut | Camera View | |
---|---|---|
1 | Back left |
|
2 | Back | |
3 | Back right | |
4 | Left | |
5 | Internal | |
6 | Right | |
7 | Front left | |
8 | Front | |
9 | Front right | |
0 | Overhead |
For additional camera controls, use these keyboard shortcuts.
Keyboard Shortcut | Camera Control |
---|---|
Tab | Cycle the view between all vehicles in the scene. |
Mouse scroll wheel | Control the camera distance from the vehicle. |
L | Toggle a camera lag effect on or off. When you enable the lag effect, the camera view includes:
This lag improves visualization of overall vehicle acceleration and rotation. |
F | Toggle the free camera mode on or off. When you enable the free camera mode, you can use the mouse to change the pitch and yaw of the camera. This mode allows you to orbit the camera around the vehicle. |
Sample time — Sample time of visualization engine
1/60
(default) | scalar greater than or equal to 0.01
Sample time, Ts, of the visualization engine, specified as a scalar greater than or equal to 0.01. Units are in seconds.
The graphics frame rate of the visualization engine is the inverse of the sample
time. For example, if Sample time is
1/60
, then the visualization engine solver tries to achieve a
frame rate of 60 frames per second. However, the real-time graphics frame rate is
often lower due to factors such as graphics card performance and model
complexity.
By default, blocks that receive data from the visualization engine, such as Simulation 3D Camera blocks, inherit this sample rate.
Display 3D simulation window — Unreal Engine visualization
on
(default) | off
Select whether to run simulations in the 3D visualization environment without visualizing the results, that is, in headless mode.
Consider running in headless mode in these cases:
You want to run multiple 3D simulations in parallel to test models in different Unreal Engine scenarios.
You want to capture sensor data to analyze in MATLAB but do not need to watch the visualization.
Dependencies
To enable this parameter, set Scene source to
Default Scenes
or Unreal
Executable
.
Weather
Override scene weather — Control the scene weather and sun position
off
(default) | on
Select whether to control the scene weather and sun position during simulation. Use the enabled parameters to change the sun position, clouds, fog, and rain.
This table summarizes sun position settings for specific times of day.
Time of Day | Settings | Unreal Editor Environment |
---|---|---|
Midnight | Sun altitude: -90 Sun azimuth: 180 | |
Sunrise in the north | Sun altitude: 0 Sun azimuth: 180 | |
Noon | Sun altitude: 90 Sun azimuth: 180 |
This table summarizes settings for specific cloud conditions.
Cloud Condition | Settings | Unreal Editor Environment |
---|---|---|
Clear | Cloud opacity: 0 | |
Heavy | Cloud opacity: 85 |
This table summarizes settings for specific fog conditions.
Fog Condition | Settings | Unreal Editor Environment |
---|---|---|
None | Fog density: 0 | |
Heavy | Fog density: 100 |
This table summarizes settings for specific rain conditions.
Rain Condition | Settings | Unreal Editor Environment |
---|---|---|
Light | Cloud opacity: 10 Rain density: 25 | |
Heavy | Cloud opacity: 10 Rain density: 80 |
Sun altitude — Altitude angle between sun and horizon
40
(default) | any value between -90
and 90
Altitude angle in a vertical plane between the sun's rays and the horizontal projection of the rays, in deg.
Use the Sun altitude and Sun azimuth parameters to control the time of day in the scene. For example, to specify sunrise in the north, set Sun altitude to 0 deg and Sun azimuth to 180 deg.
Dependencies
To enable this parameter, select Override scene weather.
Sun azimuth — Azimuth angle from south to horizontal projection of the sun ray
90
(default) | any value between 0
and 360
Azimuth angle in the horizontal plane measured from the south to the horizontal projection of the sun rays, in deg.
Use the Sun altitude and Sun azimuth parameters to control the time of day in the scene. For example, to specify sunrise in the north, set Sun altitude to 0 deg and Sun azimuth to 180 deg.
Dependencies
To enable this parameter, select Override scene weather.
Cloud opacity — Unreal Editor Cloud Opacity global actor target value
10
(default) | any value between 0
and 100
Parameter that corresponds to the Unreal Editor Cloud Opacity global actor target value, in percent. Zero is a cloudless scene.
Use the Cloud opacity and Cloud speed parameters to control clouds in the scene.
Dependencies
To enable this parameter, select Override scene weather.
Cloud speed — Unreal Editor Cloud Speed global actor target value
1
(default) | any value between -100
and 100
Parameter that corresponds to the Unreal Editor Cloud Speed global actor target value. The clouds move from west to east for positive values and east to west for negative values.
Use the Cloud opacity and Cloud speed parameters to control clouds in the scene.
Dependencies
To enable this parameter, select Override scene weather.
Fog density — Unreal Editor Set Fog Density and Set Start Distance target values
0
(default) | any value between 0
and 100
Parameter that corresponds to the Unreal Editor Set Fog Density and Set Start Distance target values, in percent.
Dependencies
To enable this parameter, select Override scene weather.
Rain density — Unreal Editor local actor controlling rain density, wetness, rain puddles, and ripples
0
(default) | any value between 0
and 100
Parameter corresponding to the Unreal Editor local actor that controls rain density, wetness, rain puddles, and ripples, in percent.
Use the Cloud opacity and Rain density parameters to control rain in the scene.
Dependencies
To enable this parameter, select Override scene weather.
More About
Sun Position and Weather
To control the scene weather and sun position, on the Weather tab, select Override scene weather. Use the enabled parameters to change the sun position, clouds, fog, and rain during the simulation.
Use Sun altitude and Sun azimuth to control the sun position.
Sun altitude — Altitude angle in a vertical plane between the sun rays and the horizontal projection of the rays.
Sun azimuth — Azimuth angle in the horizontal plane measured from the south to the horizontal projection of the sun rays.
This table summarizes sun position settings for specific times of day.
Time of Day | Settings | Unreal Editor Environment |
---|---|---|
Midnight | Sun altitude: -90 Sun azimuth: 180 | |
Sunrise in the north | Sun altitude: 0 Sun azimuth: 180 | |
Noon | Sun altitude: 90 Sun azimuth: 180 |
Use Cloud opacity and Cloud speed to control clouds in the scene.
Cloud opacity — Unreal Editor Cloud Opacity global actor target value. Zero is a cloudless scene.
Cloud speed — Unreal Editor Cloud Speed global actor target value. The clouds move from west to east for positive values and east to west for negative values.
This table summarizes settings for specific cloud conditions.
Cloud Condition | Settings | Unreal Editor Environment |
---|---|---|
Clear | Cloud opacity: 0 | |
Heavy | Cloud opacity: 85 |
Use Fog density to control fog in the scene. Fog density corresponds to the Unreal Editor Set Fog Density.
This table summarizes settings for specific fog conditions.
Fog Condition | Settings | Unreal Editor Environment |
---|---|---|
None | Fog density: 0 | |
Heavy | Fog density: 100 |
Use Cloud opacity and Rain density to control rain in the scene.
Cloud opacity — Unreal Editor Cloud Opacity global actor target value.
Rain density — Unreal Editor local actor that controls rain density, wetness, rain puddles, and ripples.
This table summarizes settings for specific rain conditions.
Rain Condition | Settings | Unreal Editor Environment |
---|---|---|
Light | Cloud opacity: 10 Rain density: 25 | |
Heavy | Cloud opacity: 10 Rain density: 80 |
Version History
Introduced in R2019bR2023b: Import RoadRunner Scene into Unreal Engine Simulation Environment
Use the Simulation 3D Scene Configuration block to import a RoadRunner
scene and simulate in the scene. To specify the source of scene, select the Scene
source parameter as RoadRunner
. Then, in the
Project parameter, specify the Filmbox (.fbx)
file
corresponding to the RoadRunner scene. For an example, see Import RoadRunner Scene into Unreal Engine Using Simulink (Simulink 3D Animation)
R2023b: Camera View Improvements to View the Virtual World
Use the Simulation 3D Scene Configuration block to view the virtual world
from a camera positioned at a custom viewpoint. To set the custom viewpoint, select
Scene view as Custom
and set the Initial
viewer translation
and Initial viewer rotation
values. You
can also use keyboard shortcuts and mouse controls to navigate in the virtual world
scene.
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other bat365 country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)