Main Content

getTrackVelocities

Obtain updated track velocities and velocity covariance matrix

Description

example

positions = getTrackVelocities(tracks,modelName) returns a matrix of track velocities based on tracks and the model name.

example

velocities = getTrackVelocities(tracks,velocitySelector) returns a matrix of track velocities based on tracks and the velocity selector.

example

[velocities,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 = 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 = tracker(detection,0.2);

Obtain the velocity vector from the track state using the model name.

velocity1 = getTrackVelocities(tracks,"constacc")
velocity1 = 1×3

    1.0093   -0.6728         0

Obtain the velocity vector from the track state using the position selector.

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];
velocity2 = getTrackVelocities(tracks,velocitySelector)
velocity2 = 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 = 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 = tracker(detection,0.2);

Obtain the velocity vector and covariance from the track state using the model name.

[velocity1,velocityCovariance1] = getTrackVelocities(tracks,"constacc")
velocity1 = 1×3

    1.0093   -0.6728    1.0093

velocityCovariance1 = 3×3

   70.0685         0         0
         0   70.0685         0
         0         0   70.0685

Obtain the velocity vector and covariance from the track state using the velocity selector.

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];
[velocity2,velocityCovariance2] = getTrackVelocities(tracks,velocitySelector)
velocity2 = 1×3

    1.0093   -0.6728    1.0093

velocityCovariance2 = 3×3

   70.0685         0         0
         0   70.0685         0
         0         0   70.0685

Input Arguments

collapse all

Object tracks, specified as an array of objectTrack objects or an array of structures containing sufficient information to obtain the track velocity information. At a minimum, these structures must contain a State column vector field and a positive-definite StateCovariance matrix field. For a sample track structure, see toStruct.

Note

If you specify tracks as an empty objectTrack object, an empty cell, or an empty track structure, velocities and velocityCovariances are returned based on the second argument (velocitySelector or modelName) as follows.

Second input argumentvelocitiesvelocityCovariances
velocitySelector

velocities is returned as a zeros(0,D) vector, where D is the row-dimension of the velocity selector. In this case, if the velocitySelector is specified in single-precision, the positions output is in single-precision.

velocityCovariances is returned as a zeros(D,D,0) matrix, where D is the row-dimension of the velocity selector. In this case, if the velocitySelector is specified in single-precision, the velocityCovariances output is in single-precision.

modelName

velocities is returned as a zeros(0,3) vector.

velocityCovariances is returned as a zeros(3,3,0) matrix.

Motion model name, specified as one of these options:

  • "constvel" — The function obtains the velocity states based on the state definition in the constvel function.

  • "constacc" — The function obtains the velocity states based on the state definition in the constacc function.

  • "constturn" — The function obtains the velocity states based on the state definition in the constturn function.

  • "singer" — The function obtains the velocity states based on the state definition in the singer function. The use of singer model requires the Sensor Fusion and Tracking Toolbox™.

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

Version History

Introduced in R2018b

expand all