# initctckf

Create constant turn rate tracking cubature Kalman filter from detection report

## Syntax

``ckf = initctckf(detection)``

## Description

example

````ckf = initctckf(detection)` initializes a constant turn rate cubature Kalman filter for object tracking based on information provided in an `objectDetection` object, `detection`.```

## Examples

collapse all

Create a turn rate tracking cubature Kalman filter object, `trackingCKF`, from an initial detection report. The detection report is made from an initial 3-D position measurement of the Kalman filter state in rectangular coordinates. You can obtain the 3-D position measurement using the constant turn rate measurement function, `ctmeas`.

This example uses the coordinates, `x = 1, y = 3, z = 0` and a 3-D position measurement noise of `[1 0.2 0; 0.2 2 0; 0 0 1]`.

`detection = objectDetection(0, [1;3;0], 'MeasurementNoise', [1 0.2 0; 0.2 2 0; 0 0 1]);`

Use `initctckf` to create a `trackingCKF` filter initialized at the provided position and using the measurement noise defined above.

`ckf = initctckf(detection)`
```ckf = trackingCKF with properties: State: [7x1 double] StateCovariance: [7x7 double] StateTransitionFcn: @constturn ProcessNoise: [4x4 double] HasAdditiveProcessNoise: 0 MeasurementFcn: @ctmeas MeasurementNoise: [3x3 double] HasAdditiveMeasurementNoise: 1 ```

Check the values of the state and the measurement noise. Verify that the filter state, `ckf.State`, has the same position components as the detection measurement, `detection.Measurement`.

`ckf.State`
```ans = 7×1 1 0 3 0 0 0 0 ```

Verify that the filter measurement noise, `ckf.MeasurementNoise`, is the same as the `detection.MeasurementNoise` values.

`ckf.MeasurementNoise`
```ans = 3×3 1.0000 0.2000 0 0.2000 2.0000 0 0 0 1.0000 ```

Create a constant turn rate tracking cubature Kalman filter object, `trackingCKF`, from an initial detection report. The detection report is made from an initial 3-D position measurement of the Kalman filter state in spherical coordinates. You can obtain the 3-D position measurement using the constant turn rate measurement function, `ctmeas`.

This example uses the coordinates, az` = 30, e1 = 5, r = 100, rr = 4` and a measurement noise of `diag([2.5, 2.5, 0.5, 1].^2)`.

```meas = [30;5;100;4]; measNoise = diag([2.5, 2.5, 0.5, 1].^2);```

Use the `MeasurementParameters` property of the `detection` object to define the frame. When not defined, the fields of the `MeasurementParameters` struct use default values. In this example, sensor position, sensor velocity, orientation, elevation, and range rate flags are default.

```measParams = struct('Frame','spherical'); detection = objectDetection(0,meas,'MeasurementNoise',measNoise,... 'MeasurementParameters',measParams) ```
```detection = objectDetection with properties: Time: 0 Measurement: [4x1 double] MeasurementNoise: [4x4 double] SensorIndex: 1 ObjectClassID: 0 MeasurementParameters: [1x1 struct] ObjectAttributes: {} ```

Use `initctckf` to create a `trackingCKF` filter initialized at the provided position and using the measurement noise defined above.

`ckf = initctckf(detection)`
```ckf = trackingCKF with properties: State: [7x1 double] StateCovariance: [7x7 double] StateTransitionFcn: @constturn ProcessNoise: [4x4 double] HasAdditiveProcessNoise: 0 MeasurementFcn: @ctmeas MeasurementNoise: [4x4 double] HasAdditiveMeasurementNoise: 1 ```

Verify that the filter state produces the same measurement as above.

`meas2 = ctmeas(ckf.State, measParams)`
```meas2 = 4×1 30.0000 5.0000 100.0000 4.0000 ```

## Input Arguments

collapse all

Detection report, specified as an Object Detections object.

Example: ```detection = objectDetection(0,[1;4.5;3],'MeasurementNoise', [1.0 0 0; 0 2.0 0; 0 0 1.5])```

## Output Arguments

collapse all

Constant turn rate cubature Kalman filter for object tracking, returned as a `trackingCKF` object.

## Algorithms

• The function computes the process noise matrix assuming a unit acceleration standard deviation and a unit angular acceleration standard deviation.

• You can use this function as the `FilterInitializationFcn` property of `trackerTOMHT` and `trackerGNN` System objects.

## Extended Capabilities

### C/C++ Code GenerationGenerate C and C++ code using MATLAB® Coder™.

#### Introduced in R2018b

##### Support Get trial now