# initctrvekf

Create constant turn-rate and velocity-magnitude extended Kalman filter from detection report

*Since R2024b*

## Description

creates and initializes a constant turn-rate and velocity-magnitude extended Kalman
`filter`

= initctrvekf(`detection`

)`filter`

from information contained in the detection report specified
in `detection`

. For more information, see Algorithms and `trackingEKF`

.

**Note**

`initctrvekf`

represents velocity in the
*xy*-plane with velocity magnitude and direction. For the constant
turn-rate and velocity-magnitude motion model using Cartesian components,
`Vx`

and `Vy`

, see `initctekf`

.

## Examples

## Input Arguments

## Output Arguments

## Limitations

A constant turn-rate and velocity magnitude extended Kalman filter does not support the

`retrodict`

function.

## Algorithms

The function initializes a

`trackingEKF`

object with a`ctrv`

motion model and a`ctrvmeas`

measurement model. The state of the filter is defined as [*x*;*y*;*s*;*θ*;*ω*;`z`

;*v*_{z}], where:*x*and*y*represent the*x*-coordinate and*y*-coordinate in meters.*s*represents the velocity magnitude in meters/second.*θ*represents the course direction in the*xy*-plane, counter-clockwise with respect to the*x*-axis, in degrees.*ω*represents the turn rate in degrees/second.`z`

represent the position in the vertical plane in meters.*v*_{z}represents velocity component in the vertical plane in meters/second.

The

`detection`

input can be an`objectDetection`

object of Cartesian or spherical measurement:When you use Cartesian measurements:

By default, the function assumes a 3-D position measurement of the form ([

*x*;*y*;*z*]). The function uses the measurement to initialize the position state of the filter and sets the velocity state to 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 to 100 m^{2}/s^{2}.You can also use a 6-D measurement ([

*x*;*y*;*z*;*v*_{x};*v*_{y};*v*_{z}]) by specifying the`MeasurementParameters`

property of the`objectDetection`

object. Set the`HasVelocity`

field of the measurement parameter structure to`true`

so that the`initctrvekf`

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.Regardless of the dimension of the detection, the function sets the angular rate state

*ω*of the filter to 0 and its corresponding covariance to 100 deg^{2}/s^{2}.

For a spherical measurement, you must set the

`Frame`

field in the`MeasurementParameters`

property of the`objectDetection`

object to`"Spherical"`

. You must also use the`MeasurementParameters`

property to specify if the detection has azimuth, elevation, range, and range rate measurements. A complete spherical measurements vector 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 are optional.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 to 0 and set its covariance to 180

^{2}/12 deg^{2}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 m

^{2}/s^{2}. Without range rate, the function sets the velocity states of the filter to 0 and its corresponding covariances to 100 m^{2}/s^{2}.Regardless of the dimension of the detection, the function sets the angular velocity state

*ω*of the filter to 0 and set its corresponding covariance to 100 deg^{2}/s^{2}.

You can use other fields of the MeasurementParameters property of an

`objectDetection`

object, such as`OriginPosition`

and`OriginaVelocity`

, 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/s

^{2}and an angular acceleration standard deviation of 1 deg/s^{2}.The measurement noise matrix in the initialized filter is the same as that in the

`detection`

.You can specify this function in the

`FilterInitializationFcn`

property of tracker objects, such as a`trackerGNN`

object.

## Extended Capabilities

## Version History

**Introduced in R2024b**