This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English version of the page.

Note: This page has been translated by MathWorks. Click here to see
To view all translated materials including this page, select Country from the country navigator on the bottom of this page.

trackingMSCEKF

Extended Kalman filter for object tracking in modified spherical coordinates (MSC)

Description

The trackingMSCEKF object represents an extended Kalman filter (EKF) for object tracking in modified spherical coordinates (MSC) using angle-only measurements from a single observer. Use the filter to predict the future location of an object in the MSC frame or associate multiple object detections with their tracks. You can specify the observer maneuver or acceleration required by the state-transition functions (@constantvelmsc and @constantvelmscjac) by using the ObserverInput property.

The following properties are fixed for the trackingMSCEKF object:

  • StateTransitionFcn - @constvelmsc

  • StateTransitionJacobianFcn - @constvelmscjac

  • MeasurementFcn - @cvmeasmsc

  • MeasurementJacobianFcn - @cvmeasmscjac

  • HasAdditiveProcessNoise - false

  • HasAdditiveMeasurementNoise - true

Creation

Syntax

mscekf = trackingMSCEKF
mscekf = trackingMSCEKF(Name,Value)

Description

mscekf = trackingMSCEKF returns an extended Kalman filter to use the MSC state-transition and measurement functions with object trackers. The default State implies a static target at 1 meter from the observer at zero azimuth and elevation.

example

mscekf = trackingMSCEKF(Name,Value) specifies the properties of the filter using one or more Name,Value pair arguments. Any unspecified properties take default values.

Properties

expand all

Filter state, specified as a real-valued M-element vector. M is either 4 for 2-D tracking or 6 for 3-D tracking.

Example: [az;azRate;1/r;rDot/r] for 2-D tracking and [az;omega;el;elRate;1/r;rDot/r] for 3-D tracking

Data Types: double

State error covariance, specified as an M-by-M matrix where M is the size of the filter state. A scalar input is extended to an M-by-M matrix. The covariance matrix represents the uncertainty in the filter state. M is either 4 for 2-D tracking or 6 for 3-D tracking.

Example: eye(6)

This property is read-only.

State transition function, specified as a function handle. This function calculates the state vector at time step k from the state vector at time step k–1. For the trackingMSCEKF object, the transition function is fixed to @constvelmsc.

Data Types: function_handle

This property is read-only.

The Jacobian of the state transition function, specified as a function handle. This function has the same input arguments as the state transition function. For the trackingMSCEKF object, the transition function Jacobian is fixed to @constvelmsc.

Data Types: function_handle

Process noise covariance, specified as a Q-by-Q matrix. Q is either 2 or 3. The process noise represents uncertainty in the acceleration of the target.

Specify ProcessNoise before any call to the predict method. In later calls to predict, you can optionally specify the process noise as a scalar. In this case, the process noise matrix is a multiple of the Q-by-Q identity matrix.

Example: [1.0 0.05; 0.05 2]

Acceleration or maneuver of the observer, specified as a three-element vector. To specify an acceleration, use an M/2 vector, where M is either 4 for 2-D tracking or 6 for 3-D tracking. To specify a maneuver, give an M-element vector.

Example: [1;2;3]

This property is read-only.

Model additive process noise, specified as false. For the trackingMSCEKF object, this property is fixed to false.

This property is read-only.

Measurement model function, specified as a function handle, @cvmeasmsc. Input to the function is the M-element state vector. The output is the N-element measurement vector. For the trackingMSCEKF object, the measurement model function is fixed to @cvmeasmsc.

Data Types: function_handle

This property is read-only.

Jacobian of the measurement function, specified as a function handle. The function has the same input arguments as the measurement function. For the trackingMSCEKF object, the Jacobian of the measurement function is fixed to @cvmeasmscjac.

Data Types: function_handle

Measurement noise covariance, specified as a positive scalar or positive-definite real-valued matrix. When specified as a scalar, the matrix is a multiple of the N-by-N identity matrix. N is the size of the measurement vector.

Specify MeasurementNoise before any call to the correct method.

Example: 0.2

This property is read-only.

Model additive process noise, specified as true. For the trackingMSCEKF object, this property is fixed to true.

Object Functions

predictPredict state and state estimation error covariance
correctCorrect state and state estimation error covariance
correctjpdaCorrect state and state estimation error covariance using JPDA
distanceDistances between measurements and predicted measurements
residualMeasurement residual and residual noise
cloneCopy filter for object tracking
initializeInitialize state and covariance of filter

Examples

collapse all

This example shows how to make an extended Kalman filter (EKF) for object tracking in modified spherical coordinates (MSC). Create the filter, predict the state, and correct the state estimate using measurement observations.

Create the filter for a 3-D motion model. Specify the state estimates for the MSC frame.

az = 0.1;
azRate = 0;
r = 1000;
rDot = 10;
el = 0.3;
elRate = 0;
omega = azRate*cos(el);

mscekf = trackingMSCEKF('State',[az;omega;el;elRate;1/r;rDot/r]);

Predict the filter state using a constant observer acceleration.

mscekf.ObserverInput = [1;2;3];
predict(mscekf); % Default time 1 second.
predict(mscekf,0.1); % Predict using dt = 0.1 second.

Correct the filter state using an angle-only measurement.

meas = [5;18]; %degrees
correct(mscekf,meas);

Introduced in R2018b