getTrackPositions
Returns updated track positions and position covariance matrix
Syntax
Description
returns a matrix of track positions based on tracks and the position
selector.positions
= getTrackPositions(tracks
,positionSelector
)
[
also returns the track position covariance matrices.positions
,positionCovariances
]
= getTrackPositions(___)
Examples
Find Position of 3D ConstantAcceleration Object
Create an extended Kalman filter tracker for 3D constantacceleration motion.
tracker = multiObjectTracker('FilterInitializationFcn',@initcaekf);
Update the tracker with a single detection and get the tracks output.
detection = objectDetection(0,[10;20;4],'ObjectClassID',3);
tracks = tracker(detection,0)
tracks = objectTrack with properties: TrackID: 1 BranchID: 0 SourceIndex: 0 UpdateTime: 0 Age: 1 State: [9x1 double] StateCovariance: [9x9 double] StateParameters: [1x1 struct] ObjectClassID: 3 ObjectClassProbabilities: 1 TrackLogic: 'History' TrackLogicState: [1 0 0 0 0] IsConfirmed: 1 IsCoasted: 0 IsSelfReported: 1 ObjectAttributes: [1x1 struct]
Obtain the position vector from the track state using the model name.
position1 = getTrackPositions(tracks,"constacc")
position1 = 1×3
10 20 4
Obtain the position vector from the track state using a position selector.
positionSelector = [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 0]; position2 = getTrackPositions(tracks,positionSelector)
position2 = 1×3
10 20 4
Find Position and Covariance of 3D ConstantVelocity Object
Create an extended Kalman filter tracker for 3D constantvelocity motion.
tracker = multiObjectTracker("FilterInitializationFcn",@initcvekf);
Update the tracker with a single detection and get the tracks output.
detection = objectDetection(0,[10;3;7],"ObjectClassID",3);
tracks = tracker(detection,0)
tracks = objectTrack with properties: TrackID: 1 BranchID: 0 SourceIndex: 0 UpdateTime: 0 Age: 1 State: [6x1 double] StateCovariance: [6x6 double] StateParameters: [1x1 struct] ObjectClassID: 3 ObjectClassProbabilities: 1 TrackLogic: 'History' TrackLogicState: [1 0 0 0 0] IsConfirmed: 1 IsCoasted: 0 IsSelfReported: 1 ObjectAttributes: [1x1 struct]
Obtain the position vector and position covariance for that track using the model name.
[position1,positionCovariance1] = getTrackPositions(tracks,"constvel")
position1 = 1×3
10 3 7
positionCovariance1 = 3×3
1 0 0
0 1 0
0 0 1
Obtain the position vector and position covariance for that track using the position selector.
positionSelector = [1 0 0 0 0 0; 0 0 1 0 0 0; 0 0 0 0 1 0]; [position2,positionCovariance3] = getTrackPositions(tracks,positionSelector)
position2 = 1×3
10 3 7
positionCovariance3 = 3×3
1 0 0
0 1 0
0 0 1
Input Arguments
tracks
— Object tracks
array of objectTrack
objects  array of structures
Object tracks, specified as an array of objectTrack
objects or an
array of structures containing sufficient information to obtain the track
position information. At a minimum, these structures must contain a
State
column vector field and a positivedefinite
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,
positions
and
positionCovariances
are returned based on
the second argument (positionSelector
or
modelName
) as follows.
Second input argument  positions  positionCovariances 

postionSelector 


modelName 


modelName
— Motion model name
"constvel"
 "constacc"
 "singer"
 "constturn"
Motion model name, specified as one of these options:
"constvel"
— The function obtains the position states based on the state definition in theconstvel
function."constacc"
— The function obtains the position states based on the state definition in theconstacc
function."constturn"
— The function obtains the position states based on the state definition in theconstturn
function."singer"
— The function obtains the position states based on the state definition in thesinger
(Sensor Fusion and Tracking Toolbox) function. The use ofsinger
model requires the Sensor Fusion and Tracking Toolbox™.
positionSelector
— Position selection matrix
DbyN realvalued matrix.
Position selector, specified as a DbyN realvalued 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 positions from the state vector. Multiply the state vector by position selector matrix returns positions. The same selector is applied to all object tracks.
Output Arguments
positions
— Positions of tracked objects
realvalued MbyD matrix
Positions of tracked objects at last update time, returned as a realvalued MbyD matrix. D represents the number of position elements. M represents the number of tracks.
positionCovariances
— Position covariance matrices of tracked objects
realvalued
DbyDM
array
Position covariance matrices of tracked objects, returned as a realvalued DbyDM array. D represents the number of position elements. M represents the number of tracks. Each DbyD submatrix is a position covariance matrix for a track.
More About
Position Selector for 2Dimensional Motion
Show the position selection matrix for twodimensional motion when the state consists of the position and velocity.
$$\left[\begin{array}{cccc}1& 0& 0& 0\\ 0& 0& 1& 0\end{array}\right]$$
Position Selector for 3Dimensional Motion
Show the position selection matrix for threedimensional motion when the state consists of the position and velocity.
$$\left[\begin{array}{cccccc}1& 0& 0& 0& 0& 0\\ 0& 0& 1& 0& 0& 0\\ 0& 0& 0& 0& 1& 0\end{array}\right]$$
Position Selector for 3Dimensional Motion with Acceleration
Show the position selection matrix for threedimensional motion when the state consists of the position, velocity, and acceleration.
$$\left[\begin{array}{ccccccccc}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& 0\end{array}\right]$$
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
In code generation, if you use the
modelName
input, thetracks
input must be specified as nonempty structures. Use the following if empty structures are unavoidable:if isempty(tracks) % Return the sizes and data types you desire positions = zeros(0,3,"single"); positonCovariances = zeros(3,3,0,"single"); else [positions,positionCovariances] = getTrackPositons(tracks,"constvel"); end
Version History
Introduced in R2017aR2022b: Obtain position and covariance from tracks using motion model name input
You can now obtain positions and associated covariances of tracks by specifying the motion model name as an input. For example,
[positions,covariances] = getTrackPositions(tracks,"constvel")
constvel
function.Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
 América Latina (Español)
 Canada (English)
 United States (English)
Europe
 Belgium (English)
 Denmark (English)
 Deutschland (Deutsch)
 España (Español)
 Finland (English)
 France (Français)
 Ireland (English)
 Italia (Italiano)
 Luxembourg (English)
 Netherlands (English)
 Norway (English)
 Österreich (Deutsch)
 Portugal (English)
 Sweden (English)
 Switzerland
 United Kingdom (English)