Probabilistic radar sensor model in 3D simulation environment
Automated Driving Toolbox / Simulation 3D
The Simulation 3D Probabilistic Radar block provides an interface to the probabilistic radar sensor in a 3D simulation environment. This environment is rendered using the Unreal Engine® from Epic Games®. You can specify the radar model and accuracy, bias, and detection parameters. The block uses the sample time to capture the radar detections and outputs a list of object detection reports. To configure the probabilistic radar signatures of actors in the 3D environment across all radars in your model, use a Simulation 3D Probabilistic Radar Configuration block.
If you set Sample time to -1
, the block uses the
sample time specified in the Simulation 3D Scene Configuration block. To use
this sensor, you must include a Simulation 3D Scene Configuration block in your
model.
Note
The Simulation 3D Scene Configuration block must execute before the Simulation 3D Probabilistic Radar block. That way, the Unreal Engine 3D visualization environment prepares the data before the Simulation 3D Probabilistic Radar block receives it. To check the block execution order, right-click the blocks and select Properties. On the General tab, confirm these Priority settings:
Simulation 3D Scene Configuration — 0
Simulation 3D Probabilistic Radar — 1
For more information about execution order, see How Unreal Engine Simulation for Automated Driving Works.
Detections
— Object detectionsObject detections, returned as a Simulink bus containing a MATLAB structure. For more details about buses, Create Nonvirtual Buses (Simulink). The structure has this form.
Field | Description | Type |
---|---|---|
NumDetections | Number of detections | integer |
IsValidTime | False when updates are requested at times that are between block invocation intervals | Boolean |
Detections | Object detections | Array of object detection structures of length set by the
Maximum reported parameter. Only
NumDetections of these detections are actual
detections. |
Each object detection structure contains these properties.
Property | Definition |
---|---|
Time | Measurement time |
Measurement | Object measurements |
MeasurementNoise | Measurement noise covariance matrix |
SensorIndex | Unique ID of the sensor |
ObjectClassID | Object classification |
ObjectAttributes | Additional information passed to tracker |
MeasurementParameters | Parameters used by initialization functions of nonlinear Kalman tracking filters |
For Cartesian coordinates, Measurement
and
MeasurementNoise
are reported in the coordinate system
specified by the Coordinate system parameter.
For spherical coordinates, Measurement
and
MeasurementNoise
are reported in the spherical coordinate
system based on the sensor Cartesian coordinate system.
MeasurementParameters
is reported in sensor Cartesian
coordinates.
Measurement and MeasurementNoise
Coordinate System Used to Report Detections | Measurement and MeasurementNoise Coordinates | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
'Ego Cartesian' | This table shows the coordinate dependence when you enable or disable range rate measurements using the Enable range rate measurements parameter.
| |||||||||||||||
'Sensor Cartesian' | ||||||||||||||||
'Sensor spherical' | This table shows the coordinate dependence when you enable or disable the range rate and elevation angle measurements, by using the Enable range rate measurements and Enable elevation angle measurements parameters, respectively.
|
Measurement Parameters
Parameter | Definition |
---|---|
Frame | Enumerated type that indicates the frame used to report measurements.
When Frame is set to 'rectangular' ,
detections are reported in Cartesian coordinates. When
Frame is set to 'spherical' ,
detections are reported in spherical coordinates. |
OriginPosition | 3D vector offset of the sensor origin from the ego vehicle origin. The vector is derived from the location and height of the sensor, as specified by the Mounting location parameter and the Z value of the Relative translation [X, Y, Z] (m) parameter, respectively. |
Orientation | Orientation of the radar sensor coordinate system with respect to the ego vehicle coordinate system. The orientation is derived from the roll, pitch, and yaw values specified in the Relative rotation [Roll, Pitch, Yaw] (deg) parameter. |
HasVelocity | Indicates whether measurements contain velocity or range rate components. |
HasElevation | Indicates whether measurements contain elevation components. |
The ObjectAttributes
property of each detection is a
structure with these fields.
Field | Definition |
---|---|
TargetIndex | Identifier of the actor, ActorID , that generated the
detection. For false alarms, this value is negative. |
SNR | Signal-to-noise ratio of the detection. Units are in decibels. |
The ObjectClassID
property of each detection has a value that
corresponds to an object ID. The table shows the object IDs used in the default scenes
that are selectable from the Simulation 3D Scene
Configuration block. If you are using a custom scene, in the Unreal® Editor, you can assign new object types to unused IDs. If a scene
contains an object that does not have an assigned ID, that object is assigned an ID of
0
. The detection of lane markings is not supported.
ID | Type |
---|---|
0 | None/default |
1 | Building |
2 | Not used |
3 | Other |
4 | Not used |
5 | Pole |
6 | Not used |
7 | Road |
8 | Sidewalk |
9 | Vegetation |
10 | Vehicle |
11 | Not used |
12 | Generic traffic sign |
13 | Stop sign |
14 | Yield sign |
15 | Speed limit sign |
16 | Weight limit sign |
17-18 | Not used |
19 | Left and right arrow warning sign |
20 | Left chevron warning sign |
21 | Right chevron warning sign |
22 | Not used |
23 | Right one-way sign |
24 | Not used |
25 | School bus only sign |
26-38 | Not used |
39 | Crosswalk sign |
40 | Not used |
41 | Traffic signal |
42 | Curve right warning sign |
43 | Curve left warning sign |
44 | Up right arrow warning sign |
45-47 | Not used |
48 | Railroad crossing sign |
49 | Street sign |
50 | Roundabout warning sign |
51 | Fire hydrant |
52 | Exit sign |
53 | Bike lane sign |
54-56 | Not used |
57 | Sky |
58 | Curb |
59 | Flyover ramp |
60 | Road guard rail |
61-66 | Not used |
67 | Deer |
68-70 | Not used |
71 | Barricade |
72 | Motorcycle |
73-255 | Not used |
Sensor identifier
— Unique sensor identifier1
(default) | positive integerUnique sensor identifier, specified as a positive integer. In a multisensor system, the sensor identifier distinguishes between sensors. When you add a new sensor block to your model, the Sensor identifier of that block is N + 1. N is the highest Sensor identifier value among existing sensor blocks in the model.
Example: 2
Parent name
— Name of parent to which sensor is mountedScene Origin
(default) | vehicle nameName of the parent to which the sensor is mounted, specified as Scene Origin
or as the name of a vehicle in your model. The vehicle names that you can select correspond to the Name parameters of the Simulation 3D Vehicle with Ground Following blocks in your model. If you select Scene Origin
, the block places a sensor at the scene origin.
Example: SimulinkVehicle1
Mounting location
— Sensor mounting locationOrigin
(default) | Front bumper
| Rear bumper
| Right mirror
| Left mirror
| Rearview mirror
| Hood center
| Roof center
Sensor mounting location.
When Parent name is Scene
Origin
, the block mounts the sensor to the origin of the
scene. You can set the Mounting location to
Origin
only. During simulation, the sensor
remains stationary.
When Parent name is the name of a vehicle (for example, SimulinkVehicle1
) the block mounts the sensor to one of the predefined mounting locations described in the table. During simulation, the sensor travels with the vehicle.
Vehicle Mounting Location | Description | Orientation Relative to Vehicle Origin [Roll, Pitch, Yaw] (deg) |
---|---|---|
Origin | Forward-facing sensor mounted to the vehicle origin, which is on the ground, at the geometric center of the vehicle (see Coordinate Systems for Unreal Engine Simulation in Automated Driving Toolbox) | [0, 0, 0] |
Front bumper | Forward-facing sensor mounted to the front bumper | [0, 0, 0] |
Rear bumper | Backward-facing sensor mounted to the rear bumper | [0, 0, 180] |
Right mirror | Downward-facing sensor mounted to the right side-view mirror | [0, –90, 0] |
Left mirror | Downward-facing sensor mounted to the left side-view mirror | [0, –90, 0] |
Rearview mirror | Forward-facing sensor mounted to the rearview mirror, inside the vehicle | [0, 0, 0] |
Hood center | Forward-facing sensor mounted to the center of the hood | [0, 0, 0] |
Roof center | Forward-facing sensor mounted to the center of the roof | [0, 0, 0] |
Roll, pitch, and yaw are clockwise-positive when looking in the positive direction of the X-axis, Y-axis, and Z-axis, respectively. When looking at a vehicle from the top down, the yaw angle (that is, the orientation angle) is counterclockwise-positive, because you are looking in the negative direction of the axis.
The (X, Y, Z) mounting location of the sensor relative to the vehicle depends on the vehicle type. To specify the vehicle type, use the Type parameter of the Simulation 3D Vehicle with Ground Following block to which you are mounting the sensor. To obtain the (X, Y, Z) mounting locations for a vehicle type, see the reference page for that vehicle.
To determine the location of the sensor in world coordinates, open the sensor block. Then, on the Ground Truth tab, select Output location (m) and orientation (rad) and inspect the data from the Location output port.
Specify offset
— Specify offset from mounting locationoff
(default) | on
Select this parameter to specify an offset from the mounting location by using the Relative translation [X, Y, Z] (m) and Relative rotation [Roll, Pitch, Yaw] (deg) parameters.
Relative translation [X, Y, Z] (m)
— Translation offset relative to mounting location[0, 0, 0]
(default) | real-valued 1-by-3 vectorTranslation offset relative to the mounting location of the sensor, specified as a real-valued 1-by-3 vector of the form [X, Y, Z]. Units are in meters.
If you mount the sensor to a vehicle by setting Parent name to the name of that vehicle, then X, Y, and Z are in the vehicle coordinate system, where:
The X-axis points forward from the vehicle.
The Y-axis points to the left of the vehicle, as viewed when looking in the forward direction of the vehicle.
The Z-axis points up.
The origin is the mounting location specified in the Mounting location parameter. This origin is different from the vehicle origin, which is the geometric center of the vehicle.
If you mount the sensor to the scene origin by setting Parent name to Scene Origin
, then X, Y, and Z are in the world coordinates of the scene.
For more details about the vehicle and world coordinate systems, see Coordinate Systems for Unreal Engine Simulation in Automated Driving Toolbox.
Example: [0,0,0.01]
To enable this parameter, select Specify offset.
Relative rotation [Roll, Pitch, Yaw] (deg)
— Rotational offset relative to mounting location[0, 0, 0]
(default) | real-valued 1-by-3 vectorRotational offset relative to the mounting location of the sensor, specified as a real-valued 1-by-3 vector of the form [Roll, Pitch, Yaw] . Roll, pitch, and yaw are the angles of rotation about the X-, Y-, and Z-axes, respectively. Units are in degrees.
If you mount the sensor to a vehicle by setting Parent name to the name of that vehicle, then X, Y, and Z are in the vehicle coordinate system, where:
The X-axis points forward from the vehicle.
The Y-axis points to the left of the vehicle, as viewed when looking in the forward direction of the vehicle.
The Z-axis points up.
Roll, pitch, and yaw are clockwise-positive when looking in the forward direction of the X-axis, Y-axis, and Z-axis, respectively. If you view a scene from a 2D top-down perspective, then the yaw angle (also called the orientation angle) is counterclockwise-positive because you are viewing the scene in the negative direction of the Z-axis.
The origin is the mounting location specified in the Mounting location parameter. This origin is different from the vehicle origin, which is the geometric center of the vehicle.
If you mount the sensor to the scene origin by setting Parent name to Scene Origin
, then X, Y, and Z are in the world coordinates of the scene.
For more details about the vehicle and world coordinate systems, see Coordinate Systems for Unreal Engine Simulation in Automated Driving Toolbox.
Example: [0,0,10]
To enable this parameter, select Specify offset.
Sample time
— Sample time-1
(default) | positive scalarSample time of the block in seconds, specified as a positive scalar. The 3D simulation environment frame rate is the inverse of the sample time.
If you set the sample time to -1
, the block inherits its sample time from the Simulation 3D Scene Configuration block.
Azimuthal resolution of radar (deg)
— Azimuth resolution of radar4
(default) | positive real scalarAzimuth resolution of the radar, specified as a positive real scalar. The azimuth resolution defines the minimum separation in azimuth angle at which the radar can distinguish between two targets. The azimuth resolution is typically the 3dB-downpoint in azimuth angle beamwidth of the radar. Units are in degrees.
Example: 6.5
Elevation resolution of radar (deg)
— Elevation resolution of radar10
(default) | positive real scalarElevation resolution of the radar, specified as a positive real scalar. The elevation resolution defines the minimum separation in elevation angle at which the radar can distinguish between two targets. The elevation resolution is typically the 3dB-downpoint in elevation angle beamwidth of the radar. Units are in degrees.
Example: 3.5
To enable this parameter, on the Parameters tab, in the Radar model section, select Enable elevation angle measurements.
Range resolution of radar (m)
— Range resolution of radar2.5
(default) | positive real scalarRange resolution of the radar, specified as a positive real scalar. The range resolution defines the minimum separation in range at which the radar can distinguish between two targets. Units are in meters.
Example: 5.0
Range rate resolution of radar (m/s)
— Range rate resolution of the radar0.5
(default) | positive real scalarRange rate resolution of the radar, specified as a positive real scalar. The range rate resolution defines the minimum separation in range rate at which the radar can distinguish between two targets. Units are in meters per second.
Example: 0.75
To enable this parameter, on the Parameters tab, in the Radar model section, select Enable range rate measurements.
Fractional azimuthal bias component
— Azimuth bias fraction0.1
(default) | nonnegative real scalarAzimuth bias fraction of the radar, specified as a nonnegative real scalar. The azimuth bias is expressed as a fraction of the azimuth resolution specified in the Azimuthal resolution of radar (deg) parameter. Units are dimensionless.
Example: 0.3
Fractional elevation bias component
— Elevation bias fraction0.1
(default) | nonnegative real scalarElevation bias fraction of the radar, specified as a nonnegative real scalar. The elevation bias is expressed as a fraction of the elevation resolution specified in the Elevation resolution of radar (deg) parameter. Units are dimensionless.
Example: 0.2
To enable this parameter, on the Parameters tab, in the Radar model section, select Enable elevation angle measurements.
Fractional range bias component
— Range bias fraction0.05
(default) | nonnegative real scalarRange bias fraction of the radar, specified as a nonnegative real scalar. Range bias is expressed as a fraction of the range resolution specified in the Range resolution of radar (m) parameter. Units are dimensionless.
Example: 0.15
Fractional range rate bias component
— Range rate bias fraction0.05
(default) | nonnegative real scalarRange rate bias fraction of the radar, specified as a nonnegative real scalar. Range rate bias is expressed as a fraction of the range rate resolution specified in the Range rate resolution of radar (m/s) parameter. Units are dimensionless.
Example: 0.2
To enable this parameter, on the Parameters tab, in the Radar model section, select Enable range rate measurements.
Field of view (deg)
— Field of view[20, 5]
(default) | positive real-valued 1-by-2 vectorField of view of the radar, specified as a positive real-valued 1-by-2 vector of
the form [azfov, elfov]
. azfov
is the azimuth
angle field of view. elfov
is the elevation
angle field of view. The field of view defines the angular extent spanned by the
sensor. Each component must lie in the interval (0,180]. Targets outside of the field
of view of the radar are not detected. Units are in degrees.
Example: [14 7]
Detection ranges (m)
— Detection range[1, 150]
(default) | positive real-valued 1-by-2 vectorDetection range, in meters, at which the radar can detect a target.
To set only a maximum detection range, specify this parameter as a positive real scalar. By default, the minimum detection range is 0.
To set both a minimum and maximum detection range, specify this parameter as a
positive real-valued 1-by-2 vector of the form [min,
max]
.
Example: 250
Range rates (m/s)
— Minimum and maximum detection range rates[-100, 100]
(default) | real-valued 1-by-2 vectorMinimum and maximum detection range rates, specified as a real-valued 1-by-2 vector. The radar can detect targets only within this range rate interval. Units are in meters per second.
Example: [-200 200]
To enable this parameter, on the Parameters tab, in the Radar model section, select Enable range rate measurements.
Detection probability
— Probability that radar detects a target0.9
(default) | real scalar in the range (0, 1]Probability that the radar detects a target, specified as a real scalar in the range (0, 1]. This quantity defines the probability of detecting a target that has a radar cross section specified by the Reference radar cross section (dBsm) parameter, at the reference detection range specified by the Detection ranges (m) parameter.
Example: 0.95
False alarm rate
— False alarm rate1e-6
(default) | positive real scalar in range [10–7,
10–3]False alarm rate within a radar resolution cell, specified as a positive real scalar in the range [10–7, 10–3]. Units are dimensionless.
Example: 1e-5
Detection probability range (m):
— Reference range for given probability of detection100
(default) | positive real scalarReference range for a given probability of detection, specified as a positive real scalar. The reference range is the range at which the radar detects targets that have a radar cross section specified by Reference radar cross section (dBsm), given a detection probability specified by Detection probability. Units are in meters.
Example: 150
Reference radar cross section (dBsm)
— Reference radar cross section for given probability of detection0
(default) | nonnegative real scalarReference radar cross section (RCS) for a given probability of detection, specified as a nonnegative real scalar. A radar with the detection probability specified by Detection probability detects targets at this reference RCS value. Units are in decibels per square meter.
Example: 2.0
Enable elevation angle measurements
— Enable radar to measure elevationon
(default) | off
Select this parameter to model a radar that can measure target elevation angles. This parameter enables the Elevation resolution of radar (deg) and Fractional elevation bias component parameters.
Enable range rate measurements
— Enable radar to measure range rateon
(default) | off
Select this parameter to model a radar that can measure target range rates. This parameter enables the Range rate resolution of radar (m/s), Fractional range bias component, and Range rates (m/s) parameters.
Enable measurement noise
— Enable adding noise to radar sensor measurementson
(default) | off
Select this parameter to add noise to radar sensor measurements. Otherwise, the
measurements are noise-free. The MeasurementNoise
property of
each detection is always computed and is not affected by the value you specify for the
Measurement noise parameter. By not selecting this parameter,
you can pass the sensor ground truth measurements into a Multi-Object
Tracker block.
Enable false detections
— Enable reporting false alarm radar detectionson
(default) | off
Select this parameter to enable reporting false alarm radar measurements. Otherwise, only actual detections are reported.
Random number generator method
— Method to set random number generator seedRepeatable
(default) | Specify seed
| Not repeatable
Method to set the random number generator seed, specified as one of the options in the table.
Option | Description |
---|---|
Repeatable | The block generates a random initial seed for the first
simulation and reuses this seed for all subsequent simulations. Select
this parameter to generate repeatable results from the statistical sensor
model. To change this initial seed, at the MATLAB command prompt, enter |
Specify seed | Specify your own random initial seed for reproducible results by using the Specify seed parameter. |
Not repeatable | The block generates a new random initial seed after each simulation run. Select this parameter to generate nonrepeatable results from the statistical sensor model. |
Initial seed
— Random number generator seed0
(default) | scalar in range [0, 232)Random number generator seed, specified as a scalar in the range [0, 232)
Example: 2001
To enable this parameter, set the Random number generator
method parameter to Specify seed
.
Maximum reported
— Maximum number of reported detections50
(default) | positive integerMaximum number of reported detections, specified as a positive integer. Units are dimensionless.
Example: 35
Coordinate system
— Coordinate system of reported detectionsEgo Cartesian
(default) | Sensor Cartesian
| Sensor spherical
Coordinate system of reported detections, specified as one of these values:
Ego Cartesian
— The radar reports detections in
the ego vehicle Cartesian coordinate system.
Sensor Cartesian
— The radar reports detections in the
sensor Cartesian coordinate system.
Sensor spherical
— The radar reports detections
in the spherical coordinate system. This coordinate system is centered at the
radar and aligned with the orientation of the radar on the ego vehicle.
Specify output bus name
— Specify name of output busoff
(default) | on
Select this parameter to specify the name of the bus that the block outputs to the base workspace. Specify this name in the Output bus name parameter.
Output bus name
— Name of output busBusSimulation3DRadarTruthSensor
(default) | valid bus nameName of the bus that the block outputs to the base workspace.
To enable this parameter, select the Specify output bus name parameter.
To visualize detections and sensor coverage areas, use the Bird's-Eye Scope. For more details, see Visualize Sensor Data from Unreal Engine Simulation Environment.
Because the Unreal Engine can take a long time to start between simulations, consider logging the signals that the sensors output. For more details, see Configure a Signal for Logging (Simulink).
[1] Blacksmith, P., R. E. Hiatt, and R. B. Mack. "Introduction to radar cross-section measurements." Proceedings of the IEEE. Volume 53, No. 8, August 1965, pp. 901–920. doi: 10.1109/PROC.1965.4069.