Main Content

Simulation 3D Radar Data Generator

Generate radar sensor detections and tracks

Since R2024a

  • Simulation 3D Radar Data Generator block

Libraries:
Simulink 3D Animation / Simulation 3D / Sensors

Description

Note

Simulating models with the Simulation 3D Radar Data Generator block requires Radar Toolbox.

The Simulation 3D Radar Data Generator block generates detection and track reports of targets from a radar sensor model. Use this block to generate sensor data from actors in the 3D simulation environment. This environment is rendered using the Unreal Engine® from Epic Games®.

The Simulation 3D Radar Data Generator block can generate clustered or unclustered detections with added random noise and can also generate false alarm detections. You can also generate tracks. Use the Format of generated target reports parameter to specify whether targets are output as clustered detections, unclustered detections, or tracks.

Tip

The Simulation 3D Scene Configuration block must execute before the Simulation 3D Radar Data Generator block. That way, the Unreal Engine 3D visualization environment prepares the data before the Simulation 3D Radar Data Generator 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 Configuration0

  • Simulation 3D Radar Data Generator1

For more information about execution order, see Control and Display Execution Order (Simulink).

Limitations

  • To detect targets, the Simulation 3D Radar Data Generator block implements ray tracing to obtain information about objects in the scene. If an object is small or located far from the sensor, the ray tracing algorithm may not detect the object. To detect smaller scene objects, consider increasing the Resolution Settings parameter values.

Ports

Output

expand all

Clustered object detections, returned as a Simulink bus containing a MATLAB structure. For more details about buses, see Create Nonvirtual Buses (Simulink).

With clustered detections, the block outputs a single detection per target, where each detection is the centroid of the unclustered detections for that target.

The structure contains these fields.

FieldDescriptionType
NumDetectionsNumber of valid detectionsNonnegative integer
IsValidTimeFalse when updates are requested at times that are between block invocation intervalsBoolean
DetectionsObject detectionsArray of object detection structures of length set by the Maximum number of target reports parameter. Only NumDetections of these are actual detections.

Each object detection structure contains these properties.

PropertyDefinition
TimeMeasurement time
MeasurementObject measurements
MeasurementNoiseMeasurement noise covariance matrix
SensorIndexUnique ID of the sensor
ObjectClassIDObject classification
MeasurementParametersParameters used by initialization functions of nonlinear Kalman tracking filters
ObjectAttributesAdditional information passed to tracker

  • For rectangular coordinates, Measurement and MeasurementNoise are reported in the rectangular coordinate system specified by the Coordinate frame used to report detections parameter.

  • For spherical coordinates, Measurement and MeasurementNoise are reported in the spherical coordinate system, which is based on the sensor rectangular coordinate system.

Measurement and MeasurementNoise

Coordinate SystemMeasurement and MeasurementNoise Coordinates
Body

This table shows how coordinates are affected by the Enable range rate measurements parameter.

Enable range rate measurementsCoordinates
on[x;y;z;vx;vy;vz]
off[x;y;z]
Sensor rectangular
Sensor spherical

This table shows how coordinates are affected by the Enable elevation angle measurements and Enable range rate measurements parameters.

Enable range rate measurementsEnable elevation angle measurementsCoordinates
onon[az;el;rng;rr]
onoff[az;rng;rr]
offon[az;el;rng]
offoff[az;rng]

For ObjectAttributes, this table describes the additional information used for tracking.

ObjectAttributes

AttributeDefinition
TargetIndexIdentifier of the actor, ActorID, that generated the detection. For false alarms, this value is negative.
SNRSignal-to-noise ratio of the detection. Units are in dB.

For MeasurementParameters, the measurements are relative to the parent frame. When you set the Coordinate frame used to report detections parameter to Body, the parent frame is the ego vehicle body. When you set Coordinate frame used to report detections to Sensor rectangular or Sensor spherical, the parent frame is the sensor.

MeasurementParameters

ParameterDefinition
Frame Enumerated type indicating 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.
OriginPosition3-D vector offset of the sensor origin from the parent frame origin.
OrientationOrientation of the radar sensor coordinate system with respect to the parent frame.
HasVelocityIndicates whether measurements contain velocity or range rate components.
HasElevationIndicates whether measurements contain elevation components.

Dependencies

To enable this port, on the Parameters tab, set Format of generated target reports to Clustered detections.

Object tracks, returned as a Simulink bus containing a MATLAB structure. See Create Nonvirtual Buses (Simulink).

This table shows the structure fields.

FieldDescription
NumTracksNumber of tracks
TracksArray of track structures of a length set by the Maximum number of tracks parameter. Only the first NumTracks of these are actual tracks.

This table shows the fields of each track structure.

FieldDefinition
TrackIDUnique track identifier used to distinguish multiple tracks.
BranchIDUnique track branch identifier used to distinguish multiple track branches.
SourceIndexUnique source index used to distinguish tracking sources in a multiple tracker environment.
UpdateTimeTime at which the track is updated. Units are in seconds.
AgeNumber of times the track was updated.
State

Value of state vector at the update time.

StateCovariance

Uncertainty covariance matrix.

ObjectClassIDInteger value representing the object classification. The value 0 represents an unknown classification. Nonzero classifications apply only to confirmed tracks.
TrackLogicConfirmation and deletion logic type. This value is always 'History' for radar sensors, to indicate history-based logic.
TrackLogicState

Current state of the track logic type, returned as a 1-by-K logical array. K is the number of latest track logical states recorded. In the array, 1 denotes a hit and 0 denotes a miss.

IsConfirmedConfirmation status. This field is true if the track is confirmed to be a real target.
IsCoastedCoasting status. This field is true if the track is updated without a new detection.
IsSelfReported

Indicate if the track is reported by the tracker. This field is used in a track fusion environment. It is returned as true by default.

ObjectAttributesAdditional information about the track.

For more details about these fields, see objectTrack (Automated Driving Toolbox).

The block outputs only confirmed tracks, which are tracks to which the block assigns at least M detections during the first N updates after track initialization. To specify the values M and N, use the M and N for the M-out-of-N confirmation parameter.

Dependencies

To enable this port, on the Parameters tab, set Format of generated target reports to Tracks.

Unclustered object detections, returned as a Simulink bus containing a MATLAB structure. For more details about buses, see Create Nonvirtual Buses (Simulink).

With unclustered detections, the block outputs all detections, and a target can have multiple detections.

You can pass object detections from these sensors and other sensors to a tracker, such as a Multi-Object Tracker (Automated Driving Toolbox) block, and generate tracks.

The structure must contain these fields:

FieldDescriptionType
NumDetectionsNumber of valid detectionsinteger
IsValidTimeFalse when updates are requested at times that are between block invocation intervalsBoolean
DetectionsObject detectionsArray of object detection structures of length set by the Maximum number of target reports parameter. Only NumDetections of these are actual detections.

Each object detection structure contains these properties.

PropertyDefinition
TimeMeasurement time
MeasurementObject measurements
MeasurementNoiseMeasurement noise covariance matrix
SensorIndexUnique ID of the sensor
ObjectClassIDObject classification
MeasurementParametersParameters used by initialization functions of nonlinear Kalman tracking filters
ObjectAttributesAdditional information passed to tracker

  • For rectangular coordinates, Measurement and MeasurementNoise are reported in the rectangular coordinate system specified by the Coordinate frame used to report detections parameter.

  • For spherical coordinates, Measurement and MeasurementNoise are reported in the spherical coordinate system, which is based on the sensor rectangular coordinate system.

Measurement and MeasurementNoise

Coordinate SystemMeasurement and MeasurementNoise Coordinates
Body

This table shows how coordinates are affected by the Enable range rate measurements parameter.

Enable range rate measurementsCoordinates
on[x;y;z;vx;vy;vz]
off[x;y;z]
Sensor rectangular
Sensor spherical

This table shows how coordinates are affected by the Enable elevation angle measurements and Enable range rate measurements parameters.

Enable range rate measurementsEnable elevation angle measurementsCoordinates
onon[az;el;rng;rr]
onoff[az;rng;rr]
offon[az;el;rng]
offoff[az;rng]

For ObjectAttributes, this table describes the additional information used for tracking.

ObjectAttributes

AttributeDefinition
TargetIndexIdentifier of the actor, ActorID, that generated the detection. For false alarms, this value is negative.
SNRSignal-to-noise ratio of the detection. Units are in dB.

For MeasurementParameters, the measurements are relative to the parent frame. When you set the Coordinate frame used to report detections parameter to Body, the parent frame is the ego vehicle body. When you set Coordinate frame used to report detections to Sensor rectangular or Sensor spherical, the parent frame is the sensor.

MeasurementParameters

ParameterDefinition
Frame Enumerated type indicating 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.
OriginPosition3-D vector offset of the sensor origin from the parent frame origin.
OrientationOrientation of the radar sensor coordinate system with respect to the parent frame.
HasVelocityIndicates whether measurements contain velocity or range rate components.
HasElevationIndicates whether measurements contain elevation components.

Dependencies

To enable this port, on the Parameters tab, set Format of generated target reports to Detections.

Parameters

expand all

Mounting

Sensor Identification

Unique sensor identifier, specified as a positive integer. Use this parameter to distinguish between detections or tracks that come from different sensors in a multisensor system. Specify a unique value for each sensor.

Name of the parent to which the sensor is mounted, specified as Scene Origin or as the name of an actor in your model. The actor names that you can select correspond to the Name parameters of the simulation 3D vehicle blocks in your model. If you select Scene Origin, the block places a sensor at the scene origin.

Example: SimulinkVehicle1

Sensor Mounting

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, the block mounts the sensor to one of the predefined mounting locations described in the table. During simulation, the sensor travels with the vehicle.

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.

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

Example: [0,0,0.01]

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

Example: [0,0,10]

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

Parameters

Detection Reporting

Select this check box to model a radar sensor that can estimate target elevation.

Select this check box to enable the radar to measure range rates from target detections.

Select this parameter to add noise to the radar measurements. Otherwise, the measurements have no noise. Even if you clear this parameter, the measurement noise covariance matrix, which is reported in the MeasurementNoise field of the generated detections output, represents the measurement noise that is added when you select Add noise to measurements.

Select this parameter to enable creating false alarm radar measurements. If you clear this parameter, the radar reports only actual detections.

Specify the maximum number of detections or tracks that the sensor reports as a positive integer. The sensor reports detections in the order of increasing distance from the sensor until reaching this maximum number.

Format of generated target reports, specified as one of these options:

  • Clustered detections — The block generates target reports as clustered detections, where each target is reported as a single detection that is the centroid of the unclustered target detections. The block returns clustered detections at the Clustered detections output port.

  • Tracks — The block generates target reports as tracks, which are clustered detections that have been processed by a tracking filter. The block returns clustered detections at the Tracks output port.

  • Detections — The block generates target reports as unclustered detections, where each target can have multiple detections. The block returns clustered detections at the Detections output port.

Coordinate system of reported detections, specified as one of these options:

  • Body — Detections are reported in the rectangular body system of the ego vehicle.

  • Sensor rectangular — Detections are reported in the rectangular body system of the radar sensor.

  • Sensor spherical — Detections are reported in a spherical coordinate system that is centered at the radar sensor and aligned with the orientation of the radar on the ego vehicle.

Measurements

Resolution Settings

Azimuth resolution of the radar, specified as a positive 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 3 dB downpoint of the azimuth angle beamwidth of the radar. Units are in degrees.

Elevation resolution of the radar, specified as a positive 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 3 dB downpoint of the elevation angle beamwidth of the radar. Units are in degrees.

Dependencies

To enable this parameter, select the Enable elevation angle measurements check box.

Range resolution of the radar in meters, 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.

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

Dependencies

To enable this parameter, on the Parameters tab, select the Enable range rate measurements check box.

Bias Settings

Azimuth bias fraction of the radar, specified as a nonnegative scalar. Azimuth bias is expressed as a fraction of the azimuth resolution specified in the Azimuth resolution (deg) parameter. This value sets a lower bound on the azimuthal accuracy of the radar and is dimensionless.

Elevation bias fraction of the radar, specified as a nonnegative scalar. Elevation bias is expressed as a fraction of the elevation resolution specified in the Elevation resolution (deg) parameter. This value sets a lower bound on the elevation accuracy of the radar and is dimensionless.

Dependencies

To enable this parameter, select the Enable elevation angle measurements check box.

Range bias fraction of the radar, specified as a nonnegative scalar. Range bias is expressed as a fraction of the range resolution specified by the Range resolution (m) property. This property sets a lower bound on the range accuracy of the radar and is dimensionless.

Range rate bias fraction of the radar, specified as a nonnegative scalar. Range rate bias is expressed as a fraction of the range rate resolution specified by the Range rate resolution (m/s) parameter. This property sets a lower bound on the range rate accuracy of the radar and is dimensionless.

Dependencies

To enable this parameter, select the Enable range rate measurements check box.

Detector Settings

Angular field of view of the radar, specified as a 1-by-2 positive real-valued vector of the form [azfov elfov]. The field of view defines the total angular extent spanned by the sensor. The azimuth field of view, azfov, must lie in the interval (0, 360]. The elevation field of view, elfov, must lie in the interval (0, 180]. Units are in degrees

Minimum and maximum range of the radar, specified as a 1-by-2 nonnegative real-valued vector of the form [min max]. The radar does not detect targets that are outside this range. The maximum range, max, must be greater than the minimum range, min. Units are in meters.

Minimum and maximum range rate of radar as a 1-by-2 real-valued vector of the form [min max]. The radar does not detect targets that are outside this range rate. The maximum range rate, max, must be greater than the minimum range rate, min. Units are in meters per second.

Dependencies

To enable this parameter, select the Enable range rate measurements check box.

Probability of detecting a target as a scalar, specified as a scalar in the range (0, 1]. This quantity defines the probability of detecting a target with a radar cross-section, with the radar cross-section specified by the Reference target RCS (dBsm) parameter at the reference detection range specified by the Reference target range (m) parameter. Units are dimensionless.

False alarm report rate within each radar resolution cell, specified as a positive real scalar in the range [10–7, 10–3]. The block determines resolution cells from the Azimuth resolution (deg) and Range resolution (m) parameters and, when enabled, from the Elevation resolution (deg) and Range rate resolution (m/s) parameters. Units are dimensionless.

Reference range for the given probability of detection and the given reference radar cross-section (RCS) , specified as a positive real scalar. The reference range is the range at which a target having a radar cross-section specified by the Reference target RCS (dBsm) parameter is detected with a probability of detection specified by the Detection probability parameter. Units are in meters.

Reference radar cross-section (RCS) for a given probability of detection and reference range, specified as a real scalar. The reference RCS is the RCS value at which a target is detected with a probability specified by the Detection probability parameter at the specified Reference target range (m) parameter value. Values are expressed in dBsm.

Center frequency of the radar band, specified as a positive scalar. Units are in Hz.

Random Number Generator Settings

Method to set the random number generator seed as one of the options in the table.

OptionDescription
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: clear all.

Specify seedSpecify your own random initial seed for reproducible results by using the Initial seed parameter.
Not repeatableThe block generates a new random initial seed after each simulation run. Select this parameter to generate nonrepeatable results from the statistical sensor model.

Random number generator seed, specified as a nonnegative integer less than 232.

Dependencies

To enable this parameter, set the Select method to specify initial seed parameter to Specify seed.

Version History

Introduced in R2024a