Extended Object Tracking with Radar for Marine Surveillance in Simulink
This example shows how to model a marine scenario, simulate detections from a marine surveillance radar, and configure a multi-target probability hypothesis density (PHD) tracker to estimate the location and size of simulated ships using the radar detections in Simulink®. Simulink provides a powerful environment for the modeling and simulation of dynamic systems and processes. This example closely follows the Extended Object Tracking With Radar For Marine Surveillance MATLAB® example.
Overview of the model
The model is composed of three parts:
Scenario Simulation
GGIW-PHD: Probability Hypothesis Density (PHD) Tracker tracker block with Gamma Gaussian Inverse Wishart (GGIW) filter and constant turn-rate motion model.
Visualization
Scenario Simulation
The scenario is created by using the
object. In the scenario, the radar is mounted on the tower 20 meters above sea level observing two small ships maneuvering in the vicinity of a large ship. The radar stares into the harbor, surveying a 30-degree azimuth sector. In the specifications for the marine surveillance radar are:trackingScenario
Sensitivity: 0 dBsm @ 5 km
Field of View: 30 deg azimuth, 10 deg elevation
Azimuth Resolution: 2 deg
Range Resolution: 5 m
Simulate the marine radar using a
System object, configured with the above specifications. Add the tower to the scenario as a stationary platform with the radar mounted on top of it. Then, add three ships in the harbor within the radar's surveillance sector. The two smaller ships are turning at 20 and 30 knots, whereas the large ship is traveling with a constant heading at 10 knots. The helper file fusionRadarSensor
getSimulationData
defines the scenario as well as it creates the initial tracking sensor configurations that are used by the PHD tracker block.
Use the Tracking Scenario Reader
block to read the scenario object from the workspace. Then configure the block to output detections along with platform poses, simulation time and sensor configurations. The block outputs platform poses, detections and sensor configurations as
objects.Simulink.Bus
(Simulink)
Use the updateMeasurementNoise
function block to increase the measurement noise reported by the
, since the reported measurement noise in the detections is too small.fusionRadarSensor
Multi-Target GGIW-PHD Tracker
Pass the generated detections to the multi-target Probability Hypothesis Density (PHD) Tracker
block. Configure the tracker with a Gamma Gaussian Inverse Wishart filter, which estimates the ship dimensions and orientations as ellipsoids. The tracker allows multiple detections from each ship to be associated to a single track and use them to estimate the ship extent. This is important in situations such as marine surveillance where the size of the objects detected by the sensor is greater than the sensor's resolution, resulting in multiple detections generated along the surfaces of the ships.
The tracker uses the ggiwpfilterInitFcn
supporting function to initialize a constant turn-rate Gamma Gaussian Inverse Wishart (GGIW) PHD filter. ggiwpfilterInitFcn
adds birth components to the PHD-intensity at every time step. These birth components are added uniformly inside the field of view of the sensor. Their sizes and expected number of detections are specified using prior information about the types of ships expected in the harbor. The tracker uses the gamma distribution of the GGIW-PHD components to estimate how many detections should be generated from an object. The tracker also calculates the detectability of each component in the density using the sensor's limits.
The track states of the three ships report the estimated size of each ship using a 3D positional extent matrix. Take the eigen decomposition of the covariance matrices to compute the estimated length, width, and height for each ship.
This table summarizes the estimated and actual dimensions of the three ships.
The tracker is able to differentiate between the sizes of the large and smaller ships by estimating the shape of each ship as an ellipse. In the simulation, however, the true shape of each ship is modeled using a cuboid. This mismatch between the shape assumption made by the tracker and the shapes of the modeled ships results in overestimates of the length and width of the ships. The radar is a 2D sensor, only measuring range and azimuth, so the height of each ship is not observable. As a result, the height estimates reported by the tracker are inaccurate.
Visualization
The visualization used for this example is defined using a MATLAB System (Simulink) block, helperMarineSurveillanceDisplayBlk
attached with this example.
The animation shows the radar detections as red dots, the estimated track locations as yellow squares annotated with the track ID, and the estimated extents as yellow ellipsis. The radar tower is located at the origin, with the coordinates of (0,0), which is not shown in the figure. The radar's field of view is represented by the two red lines crossing the top and bottom of the figure. All of the ships lie within the radar's field of view. Because the sizes of the ships are much larger than the radar's range and azimuth resolution, multiple detections are made along the ship surfaces visible to the radar.
Summary
This example shows how to configure the Tracking Scenario Reader
block and the multi-target Probability Hypothesis Density (PHD)
tracker block in Simulink. It also shows how to track and visualize extended objects in a marine scenario in Simulink.