getTrackVelocities

Obtain updated track velocities and velocity covariance matrix

Syntax

velocity = getTrackVelocities(tracks,velocitySelector)
[velocity,velocityCovariances] = getTrackVelocities(tracks,velocitySelector)

Description

example

velocity = getTrackVelocities(tracks,velocitySelector) returns velocities of tracked objects.

example

[velocity,velocityCovariances] = getTrackVelocities(tracks,velocitySelector) also returns the track velocity covariance matrices.

Examples

collapse all

Create an extended Kalman filter tracker for 3-D constant-acceleration motion.

tracker = trackerGNN('FilterInitializationFcn',@initcaekf);

Initialize the tracker with one detection.

detection = objectDetection(0,[10;-20;4],'ObjectClassID',3);
tracks = step(tracker,detection,0);

Add a second detection at a later time and at a different position.

detection = objectDetection(0.1,[10.3;-20.2;4],'ObjectClassID',3);
tracks = step(tracker,detection,0.2);

Obtain the velocity vector from the track state.

velocitySelector = [0 1 0 0 0 0 0 0 0; 0 0 0 0 1 0 0 0 0; 0 0 0 0 0 0 0 1 0];
velocity = getTrackVelocities(tracks,velocitySelector)
velocity = 1×3

    1.0093   -0.6728         0

Create an extended Kalman filter tracker for 3-D constant-acceleration motion.

tracker = trackerGNN('FilterInitializationFcn',@initcaekf);

Initialize the tracker with one detection.

detection = objectDetection(0,[10;-20;4],'ObjectClassID',3);
tracks = step(tracker,detection,0);

Add a second detection at a later time and at a different position.

detection = objectDetection(0.1,[10.3;-20.2;4.3],'ObjectClassID',3);
tracks = step(tracker,detection,0.2);

Obtain the velocity vector from the track state.

velocitySelector = [0 1 0 0 0 0 0 0 0; 0 0 0 0 1 0 0 0 0; 0 0 0 0 0 0 0 1 0];
[velocity,velocityCovariance] = getTrackVelocities(tracks,velocitySelector)
velocity = 1×3

    1.0093   -0.6728    1.0093

velocityCovariance = 3×3

   70.0685         0         0
         0   70.0685         0
         0         0   70.0685

Input Arguments

collapse all

Tracked object, specified as a struct array. A track struct array is an array of MATLAB® struct types containing sufficient information to obtain the track position vector and, optionally, the position covariance matrix. At a minimum, the struct must contain a State column vector field and a positive-definite StateCovariance matrix field. For an example of a track struct used by Sensor Fusion and Tracking Toolbox™, examine the output argument, tracks, returned by the step object function of trackerGNN.

Velocity selector, specified as a D-by-N real-valued matrix of ones and zeros. D is the number of dimensions of the tracker. N is the size of the state vector. Using this matrix, the function extracts track velocities from the state vector. Multiply the state vector by velocity selector matrix returns velocities. The same selector is applied to all object tracks.

Output Arguments

collapse all

Velocities of tracked objects at last update time, returned as a 1-by-D vector or a real-valued M-by-D matrix. D represents the number of velocity elements. M represents the number of tracks.

Velocity covariance matrices of tracked objects, returned as a real-valued D-by-D-matrix or a real-valued D-by-D-by-M array. D represents the number of velocity elements. M represents the number of tracks. Each D-by-D submatrix is a velocity covariance matrix for a track.

More About

collapse all

Velocity Selector for 2-Dimensional Motion

Show the velocity selection matrix for two-dimensional motion when the state consists of the position and velocity.

[01000001]

Velocity Selector for 3-Dimensional Motion

Show the velocity selection matrix for three-dimensional motion when the state consists of the position and velocity.

[010000000100000001]

Velocity Selector for 3-Dimensional Motion with Acceleration

Show the velocity selection matrix for three-dimensional motion when the state consists of the position, velocity, and acceleration.

[010000000000010000000000010]

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Introduced in R2018b