Main Content

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

The scenario is created by using the trackingScenario 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:

  • 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 fusionRadarSensor 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 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 Simulink.Bus (Simulink) objects.

Use the updateMeasurementNoise function block to increase the measurement noise reported by the fusionRadarSensor, since the reported measurement noise in the detections is too small.

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.


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.


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.