#ifndef KALMFILTER_H
|
#define KALMFILTER_H
|
|
#include "dataType.h"
|
|
class KalmFilter
|
{
|
public:
|
static const double chi2inv95[10];
|
KalmFilter();
|
~KalmFilter();
|
KAL_DATA initiate(const DETECTBOX& measurement);
|
void predict(KAL_MEAN& mean, KAL_COVA& covariance);
|
KAL_HDATA project(const KAL_MEAN& mean, const KAL_COVA& covariance);
|
KAL_DATA update(const KAL_MEAN& mean,
|
const KAL_COVA& covariance,
|
const DETECTBOX& measurement);
|
|
Eigen::Matrix<float, 1, -1> gating_distance(
|
const KAL_MEAN& mean,
|
const KAL_COVA& covariance,
|
const std::vector<DETECTBOX>& measurements,
|
bool only_position = false);
|
|
private:
|
Eigen::Matrix<float, 8, 8, Eigen::RowMajor> _motion_mat;
|
Eigen::Matrix<float, 4, 8, Eigen::RowMajor> _update_mat;
|
float _std_weight_position;
|
float _std_weight_velocity;
|
};
|
|
#endif // KALMFILTER_H
|