exponenta event banner

initcvkf

Создание линейного фильтра Калмана с постоянной скоростью из отчета об обнаружении

Описание

пример

filter = initcvkf(detection) создает и инициализирует линейный Калман с постоянной скоростью filter из информации, содержащейся в detection отчет. Дополнительные сведения о линейном фильтре Калмана см. в разделе trackingKF.

Функция инициализирует состояние постоянной скорости с тем же соглашением, что и constvel и cvmeas, [x; vx; y; vy; z; vz].

Примеры

свернуть все

Создайте и инициализируйте 2-й линейный объект фильтра Кальмана из первоначального отчета об обнаружении.

Создайте отчет об обнаружении из начального измерения 2-D (10,20) положения объекта.

detection = objectDetection(0,[10;20],'MeasurementNoise',[1 0.2; 0.2 2], ...
    'SensorIndex',1,'ObjectClassID',1,'ObjectAttributes',{'Yellow Car',5});

Создайте новую дорожку из отчета об обнаружении.

filter = initcvkf(detection)
filter = 
  trackingKF with properties:

               State: [4x1 double]
     StateCovariance: [4x4 double]

         MotionModel: '2D Constant Velocity'
        ControlModel: []
        ProcessNoise: [4x4 double]

    MeasurementModel: [2x4 double]
    MeasurementNoise: [2x2 double]

     EnableSmoothing: 0

Показать состояние.

filter.State
ans = 4×1

    10
     0
    20
     0

Отображение модели перехода состояния.

filter.StateTransitionModel
ans = 4×4

     1     1     0     0
     0     1     0     0
     0     0     1     1
     0     0     0     1

Создайте и инициализируйте 3D линейный объект фильтра Кальмана из первоначального отчета об обнаружении.

Создайте отчет об обнаружении из начального измерения 3-D (10,20, − 5) положения объекта.

detection = objectDetection(0,[10;20;-5],'MeasurementNoise',eye(3), ...
    'SensorIndex', 1,'ObjectClassID',1,'ObjectAttributes',{'Green Car', 5});

Создайте новый фильтр из отчета об обнаружении и отобразите его свойства.

filter = initcvkf(detection)
filter = 
  trackingKF with properties:

               State: [6x1 double]
     StateCovariance: [6x6 double]

         MotionModel: '3D Constant Velocity'
        ControlModel: []
        ProcessNoise: [6x6 double]

    MeasurementModel: [3x6 double]
    MeasurementNoise: [3x3 double]

     EnableSmoothing: 0

Показать состояние.

filter.State
ans = 6×1

    10
     0
    20
     0
    -5
     0

Отображение модели перехода состояния.

filter.StateTransitionModel
ans = 6×6

     1     1     0     0     0     0
     0     1     0     0     0     0
     0     0     1     1     0     0
     0     0     0     1     0     0
     0     0     0     0     1     1
     0     0     0     0     0     1

Входные аргументы

свернуть все

Отчет об обнаружении, указанный как objectDetection объект.

Пример: detection = objectDetection(0,[1;4.5;3],'MeasurementNoise', [1.0 0 0; 0 2.0 0; 0 0 1.5])

Выходные аргументы

свернуть все

Линейный фильтр Калмана, возвращаемый как trackingKF объект.

Алгоритмы

  • Функция вычисляет матрицу шума процесса, предполагая один второй шаг времени и стандартное отклонение ускорения 1 m/s2.

  • Эту функцию можно использовать в качестве FilterInitializationFcn свойство multiObjectTracker объект.

Расширенные возможности

Создание кода C/C + +
Создайте код C и C++ с помощью MATLAB ® Coder™

.
Представлен в R2017a