Main Content

Simulation 3D Scene Configuration

Scene configuration for 3D simulation environment

  • Simulation 3D Scene Configuration block

Libraries:
Offroad Autonomy Library / Simulation 3D
Aerospace Blockset / Animation / Simulation 3D
Automated Driving Toolbox / Simulation 3D
Robotics System Toolbox / Simulation 3D
Simulink 3D Animation / Simulation 3D / Environment
UAV Toolbox / Simulation 3D
Vehicle Dynamics Blockset / Vehicle Scenarios / Sim3D / Sim3D Core

Description

Note

Simulating models with the Simulation 3D Scene Configuration block requires Simulink® 3D Animation™.

The Simulation 3D Scene Configuration block implements a 3D simulation environment that is rendered by using the Unreal Engine® from Epic Games®. 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.

Tip

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, 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, 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 Robots Works.

Examples

Parameters

expand all

Scene

Scene Selection

Source of the scene in which to simulate, specified as one of the options in the table.

OptionDescription
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.

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 (.uproject) file and is open in the Unreal® Editor. Specify the project file in the Project parameter.

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.

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.

Dependencies

To enable this parameter, set Scene source to Default Scenes.

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.

Note

If you select a custom Unreal executable file built with a version of Unreal Engine that is not compatible with the current version of MATLAB, you receive one of these error messages:

  • "Incompatible version of 3D Simulation engine: Undefined": For Unreal executable built for a MATLAB release prior to R2023b

  • "Incompatible version of 3D Simulation engine: 23.2.0": For Unreal executable built for MATLAB R2023b or later

To resolve these errors, you must migrate the Unreal project and rebuild the executable with the latest support package installed. For more information, see How Unreal Engine Simulation for Robots Works.

Example: C:\Local\WindowsNoEditor\AutoVrtlEnv.exe

Dependencies

To enable this parameter, set Scene source to Unreal Executable.

Specify an ASAM OpenDRIVE file. Select the block parameter Select ASAM OpenDRIVE file to specify an ASAM OpenDRIVE file.

Dependencies

This parameter is available when you set Scene Source is set to either Unreal Executable or Unreal Engine.

Data Types: Boolean

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 internal folders within the executable file. Default scenes are located at the path /Game/Maps. Therefore, you must prepend either /Game/Maps to the scene name. 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 /Games/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 File name parameter. Use backward slashes and specify the .umap extension for the scene.

By default, Scene is set to /Game/Maps/EmptyScene, which is a scene from the default VehicleSimulation.exe executable file specified by the Project name parameter.

Example: /Game/Maps/scene1, C:/Local/myProject/Content/Maps/scene1.umap

Dependencies

To enable this parameter, set Scene source to Unreal Executable.

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.
This message confirms that Simulink has instantiated the scene actors, including the vehicles and cameras, in the Unreal Engine 3D environment. If you click Play before the Diagnostic Viewer window displays this confirmation message, Simulink might not instantiate the actors in the Unreal Editor.

To simulate a RoadRunner scene, browse for the folder containing the exported RoadRunner scene files, then specify the Filmbox (.fbx) file.

Dependencies

Scene Parameters

Configure the placement of the virtual camera that displays the scene during simulation.

  • If your model contains no vehicle blocks, then during simulation, you view the scene in free camera mode from a camera positioned at the scene origin. The camera movement uses the Z-up left-handed (LH) Cartesian coordinate system. To change the view to a custom viewpoint, set Scene view to Custom. Then, set the Initial viewer translation and Initial 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 the 3D environment, use these keyboard shortcuts.

Keyboard ShortcutCamera 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 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 Location saved on the scene.

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.

I

Display the keyboard shortcuts on the screen.

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 ShortcutCamera View

1

Back left

A diagram shows numbered key commands corresponding to camera views

 View Animated GIF

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 ShortcutCamera Control
Tab

Cycle the view between all vehicles in the scene.

 View Animated GIF

Mouse scroll wheel

Control the camera distance from the vehicle.

 View Animated GIF

L

Toggle a camera lag effect on or off. When you enable the lag effect, the camera view includes:

  • Position lag, based on the vehicle translational acceleration

  • Rotation lag, based on the vehicle rotational velocity

This lag improves visualization of overall vehicle acceleration and rotation.

 View Animated GIF

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.

 View Animated GIF

Sample time, Ts, of the visualization engine, specified as a real positive scalar. 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 inherit this sample rate.

Weather

Select whether to control the scene weather and sun position during simulation. Use the enabled parameters to change the sun position, clouds, fog, rain, and snow.

This table summarizes sun position settings for specific times of day.

Time of DaySettingsUnreal Editor Environment

Midnight

Sun altitude: -90

Sun azimuth: 180

Road at midnight

Sunrise in the north

Sun altitude: 0

Sun azimuth: 180

Road at sunrise

Noon

Sun altitude: 90

Sun azimuth: 180

Road at noon

This table summarizes settings for specific cloud conditions.

Cloud ConditionSettingsUnreal Editor Environment

Clear

Cloud opacity: 0

Road with clear skies

Heavy

Cloud opacity: 85

Road with cloudy skies

Heavy

Enable Volumetric clouds: Selected

Cloud Coverage: 50

Cloud layer altitude: 6

Road with volumetric clouds

This table summarizes settings for specific fog conditions.

Fog ConditionSettingsUnreal Editor Environment

None

Fog density: 0

Road with no fog

Heavy

Fog density: 100

Road with heavy fog

This table summarizes settings for specific rain conditions.

Rain ConditionSettingsUnreal Editor Environment

Light

Cloud opacity: 10

Rain density: 25

City scene with light rain

Heavy

Cloud opacity: 10

Rain density: 80

City scene with heavy rain

This table summarizes settings for specific snow conditions.

Snow ConditionSettingsUnreal Editor Environment
HeavySnow density: 50

Road scene with heavy snow

Sun

Azimuth angle in the horizontal plane measured from the south to the horizontal projection of the sun rays, in deg.

Diagram of sun altitude angle (vertical arrow) and sun azimuth angle (horizontal arrow

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.

Altitude angle in a vertical plane between the sun's rays and the horizontal projection of the rays, in deg.

Diagram of sun altitude angle (vertical arrow) and sun azimuth angle (horizontal arrow)

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.

Select this check box to enable geospatial sun. Enabling geospatial sun is useful to simulate conditions near the poles or at locations with disproportionate lengths of day versus night.

Dependencies

To enable this parameter, select Override scene weather.

Latitude of geolocation on earth, specified as a scalar, in deg.

Dependencies

To enable this parameter, select Override scene weather and Enable geospatial sun.

Longitude of geolocation on earth, specified as a scalar, in deg.

Dependencies

To enable this parameter, select Override scene weather and Enable geospatial sun.

Date, specified as an integer in the format YYYY-MM-DD.

Dependencies

To enable this parameter, select Override scene weather and Enable geospatial sun.

Time, specified as an integer in the format HH:MM:SS.

Dependencies

To enable this parameter, select Override scene weather and Enable geospatial sun.

Time zone specifies the number of hours offset from the Coordinated Universal Time (UTC) or Greenwich Mean Time (GMT).

Dependencies

To enable this parameter, select Override scene weather and Enable geospatial sun.

Select this check box to enable daylight saving time.

Dependencies

To enable this parameter, select Override scene weather and Enable geospatial sun.

Cloud

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.

Cloud Opacity and Cloud Speed settings in Unreal Editor

Use the Cloud opacity and Cloud speed parameters to control clouds in the scene.

Dependencies

To enable this parameter, select Override scene weather.

Parameter that corresponds to the Unreal Editor Cloud Opacity global actor target value, in percent. Zero is a cloudless scene.

Cloud Opacity and Cloud Speed settings in Unreal Editor

Use the Cloud opacity and Cloud speed parameters to control clouds in the scene.

Dependencies

To enable this parameter, select Override scene weather.

Select this check box to enable volumetric clouds.

Dependencies

To enable this parameter, select Override scene weather.

Parameter that corresponds to the Unreal Editor Cloud Density global actor target value, in percent.

Cloud coverage settings in Unreal Editor

Use the Cloud coverage parameter to control clouds in the scene.

Dependencies

To enable this parameter, select Override scene weather and Enable volumetric clouds.

Parameter that corresponds to the Unreal Editor Layer Bottom Altitude global actor target value, in km.

Cloud altitude setting in Unreal Editor

Dependencies

To enable this parameter, select Override scene weather and Enable volumetric clouds.

Fog

Parameter that corresponds to the Unreal Editor Set Fog Density and Set Start Distance target values, in percent.

Set Fog Density setting in Unreal Editor

Dependencies

To enable this parameter, select Override scene weather.

Rain

Parameter corresponding to the Unreal Editor local actor that controls rain density, wetness, rain puddles, and ripples, in percent.

Unreal Editor settings to control rain density. The Get Components by Class on the left activates or deactivates the rain density settings. The rain effects on the right control settings such as wetness, rain puddles, and ripples.

Use the Cloud opacity and Rain density parameters to control rain in the scene.

Dependencies

To enable this parameter, select Override scene weather.

Select this check box to enable raindrops on the camera lens.

Cloud altitude setting in Unreal Editor

Dependencies

To enable this parameter, select Override scene weather.

Snow

This parameter corresponds to the Unreal Editor global actor that controls snow density, in percent.

Cloud altitude setting in Unreal Editor

Dependencies

To enable this parameter, select Override scene weather.

More About

expand all

Version History

expand all