Main Content

initcvukf

Create constant-velocity unscented Kalman filter from detection report

Description

example

filter= initcvukf(detection)creates and initializes a constant-velocity unscented Kalmanfilterfrom information contained in adetectionreport. For more information about the unscented Kalman filter, seetrackingUKF.

The function initializes a constant velocity state with the same convention asconstvelandcvmeas, [x;vx;y;vy;z;vz].

Examples

collapse all

Create and initialize a 3-D constant-velocity unscented Kalman filter object from an initial detection report.

Create the detection report from an initial 3-D measurement, (10,200,−5), of the object position.

detection = objectDetection(0,[10;200;-5],'MeasurementNoise',1.5*eye(3),...'SensorIndex',1,“ObjectClassID”,1,'ObjectAttributes',{'Sports Car',5});

Create the new filter from the detection report and display the filter properties.

filter = initcvukf(detection)
过滤器= trackingUKF与properties: State: [6x1 double] StateCovariance: [6x6 double] StateTransitionFcn: @constvel ProcessNoise: [3x3 double] HasAdditiveProcessNoise: 0 MeasurementFcn: @cvmeas HasMeasurementWrapping: 1 MeasurementNoise: [3x3 double] HasAdditiveMeasurementNoise: 1 Alpha: 1.0000e-03 Beta: 2 Kappa: 0 EnableSmoothing: 0

Display the state.

filter.State
ans =6×110 0 200 0 -5 0

Show the state covariance.

filter.StateCovariance
ans =6×61.5000 0 0 0 0 0 0 100.0000 0 0 0 0 0 0 1.5000 0 0 0 0 0 0 100.0000 0 0 0 0 0 0 1.5000 0 0 0 0 0 0 100.0000

Initialize a constant-velocity unscented Kalman filter from an initial detection report made from an initial measurement in spherical coordinates. Because the object lies in thex-yplane, no elevation measurement is made. If you want to use spherical coordinates, then you must supply a measurement parameter structure as part of the detection report with theFramefield set to'spherical'. Set the azimuth angle of the target to 45 degrees, the range to 1000 meters, and the range rate to -4.0 m/s.

frame ='spherical'; sensorpos = [25,-40,0].'; sensorvel = [0;5;0]; laxes = eye(3);

Create the measurement parameters structure. Set'HasElevation'tofalse. Then, the measurement consists of azimuth, range, and range rate.

measparms = struct('Frame',frame,'OriginPosition',sensorpos,...'OriginVelocity',sensorvel,'Orientation',laxes,'HasVelocity',true,...'HasElevation',false); meas = [45;1000;-4]; measnoise = diag([3.0,2,1.0].^2); detection = objectDetection(0,meas,'MeasurementNoise',...measnoise,'MeasurementParameters',measparms)
detection = objectDetection with properties: Time: 0 Measurement: [3x1 double] MeasurementNoise: [3x3 double] SensorIndex: 1 ObjectClassID: 0 MeasurementParameters: [1x1 struct] ObjectAttributes: {}
filter = initcvukf(detection);

Display filter state vector.

disp(filter.State)
732.1068 -2.8284 667.1068 2.1716 0 0

Input Arguments

collapse all

Detection report, specified as anobjectDetectionobject.

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

Unscented Kalman filter, returned as atrackingUKFobject.

Algorithms

  • The function computes the process noise matrix assuming a one-second time step and an acceleration standard deviation of 1 m/s2.

  • You can use this function as theFilterInitializationFcn财产的trackerGNNortrackerTOMHTobject.

Extended Capabilities

C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.

Version History

Introduced in R2018b