initcvekf
Create constant-velocity extended Kalman filter from detection report
Description
creates and initializes a constant-velocity extended Kalman
filter
= initcvekf(detection
)filter
from information contained in a
detection
report. For more information, see Algorithms and trackingEKF
.
Examples
Input Arguments
Output Arguments
Algorithms
The function initializes a
trackingEKF
object with aconstvel
motion model and acvmeas
measurement model. The state of the filter is defined as [x; vx; y; vy; z; vz], in which x, y, z are position coordinates and vx, vy, vz are the corresponding velocities.The
detection
input can be anobjectDetection
object of Cartesian or spherical measurement:For a Cartesian measurement,
By default, the function assumes the measurement is a 3-D position measurement ([x; y; z]). The function uses the measurement to initialize the position state of the filter and sets the velocity state as 0. Similarly, the function uses the position components of the measurement noise matrix in the detection as the position components of the state error covariance matrix and sets the velocity components of the state error covariance matrix as 100 m2/s2.
You can also use a 6-D
detection
input ([x; y; z; vx; vy; vz]) by specifying theMeasurementParameters
property of theobjectDetection
object. Specify theHasVelocity
field of the measurement parameter structure astrue
so that theinitcvekf
function can recognize the 6-D measurement. In this case, the state and state error covariance matrix of the filter are the same as the measurement and measurement noise matrix of the detection, respectively.
For a spherical measurement, you must specify the
Frame
field in theMeasurementParameters
property of theobjectDetection
object as"Spherical"
. Also, use theMeasurementParameters
property to specify if the detection has azimuth, elevation, range, and range rate. A full spherical measurement has four elements [az, el, r, rr], representing azimuth in degrees, elevation in degrees, range in meters, and range-rate in meters per second, respectively. Some of the four elements can be missing.If the detection has elevation, the function uses the elevation measurement and its covariance to construct the filter state and state error covariance after performing coordinate transformation from the spherical frame to the Cartesian frame. Without elevation, the function sets the elevation as 0 and set its covariance as 1802/12 deg2 before performing the coordinate transformation.
If the detection has range-rate, the function uses the range-rate measurement and its covariance to construct the filter sate and state error covariance. The function also assumes the velocity covariance of the cross-range direction is 100 m2/s2. Without range-rate, the function sets the velocity states of the filter as 0 and its corresponding covariances as 100 m2/s2.
The function sets all the cross-components (for example between position and velocity) of the state error covariance matrix as 0.
You can use other fields of the MeasurementParameters property of an
objectDetection
object, such asOriginPosition
andOriginaVelocity
, to further specify the measurement coordinates.
The function models the process noise as non-additive and computes the process noise matrix assuming an acceleration standard deviation of 1 m/s2.
The measurement noise matrix in the initialized filter is the same as that in the
detection
.You can use this function as the
FilterInitializationFcn
property of amultiObjectTracker
object.
Extended Capabilities
Version History
Introduced in R2017a