⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ekf.h

📁 Kalman滤波器的C++实现
💻 H
字号:
// EKF.h: interface for the EKF class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_EKF_H__9ACAA5CD_95F2_491B_932B_8F3FD28E0001__INCLUDED_)
#define AFX_EKF_H__9ACAA5CD_95F2_491B_932B_8F3FD28E0001__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

//#include "matrix1.h"

/*
  扩展Kalman滤波

  状态转移方程:		X(k) = F*X(k-1) + G*v
  观测方程:			Z(K) = h(X(k))  + w

*/
class SickObject;
class EKF  
{
public:
	EKF();
	EKF(EKF &ekf);
	EKF operator = (EKF ekf);
	friend SickObject;

	void SetProcessNoiseCov(double X_Acc_Cov,double Y_Acc_Cov);
	void SetObservationNoiseCov(double RadiusCov, double AzimuthCov);
	void Initialize(double Radius1,double Azimuth1,
		             double Radius2,double Azimuth2,
					 double Radius3,double Azimuth3,
					 double T1,double T2);
	void Update(double Radius,double Azimuth);
	void Predict(double T);

	CMatrix GetState();
	CMatrix GetUpdateState();
	CMatrix GetCovariance();

	virtual ~EKF();

public:
	
	CMatrix		PredictState;
	CMatrix		UpdateState;
	CMatrix		CurrentState;

	CMatrix		PredictCovariance;
	CMatrix		UpdateCovariance;
	CMatrix		CurrentCovariance;

	CMatrix		LastUpdateState;
	CMatrix		LastUpdateCov;

	CMatrix		F;
    CMatrix		G;
	CMatrix	Q;

	CMatrix	Z;
	CMatrix	H;
	CMatrix	R;

	CMatrix	S;
    CMatrix	Gain;
};

#endif // !defined(AFX_EKF_H__9ACAA5CD_95F2_491B_932B_8F3FD28E0001__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -