PDR/1.Software/PDR 1.05/include/Kalman.h

55 lines
2.0 KiB
C
Raw Permalink Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/******************** (C) COPYRIGHT 2020 Geek************************************
* File Name : pdr_kalman.h
* Department : Sensor Algorithm Team
* Current Version : V2.0(compare QCOM SAP 5.0)
* Author : logzhan
* Date of Issued : 2020.7.3
* Comments : PDR 卡尔曼滤波器头文件函数声明以及相关结构体定义
********************************************************************************/
#ifndef _PDR_KALMAN_H_
#define _PDR_KALMAN_H_
#ifdef __cplusplus
extern "C" {
#endif
/**----------------------------------------------------------------------
* Function : EKF_Init
* Description : 初始化卡尔曼滤波器相关
* Date : 2022/09/19
*---------------------------------------------------------------------**/
void EKF_Init(void);
/**----------------------------------------------------------------------
* Function : EKFStatePredict
* Description : pdr卡尔曼滤波器的状态预测方程
* Date : 2022/09/19 logzhan
*---------------------------------------------------------------------**/
void EKFStatePredict(EKFPara_t* kf, double step_length, PDR_t* g_pdr, int step);
/**----------------------------------------------------------------------
* Function : EKFCalQRMatrix
* Description : 计算卡尔曼滤波噪声矩阵
* scane_type, 用户所处场景(开阔和非开阔)
* nmea_dataNMEA数据结构体
* g_pdrPDR结构体
* sys运动幅度数据结构体
* kfEKF数据结构体
* Date : 2022/09/19 logzhan
*---------------------------------------------------------------------**/
void EKFCalQRMatrix(Nmea_t* nmea_data, PDR_t* g_pdr, Classifer_t* sys, EKFPara_t* kf);
/**----------------------------------------------------------------------
* Function : pdr_ekfStateUpdate
* Description : pdr卡尔曼滤波器的状态更新方程
* Date : 2020/7/22 logzhan
*---------------------------------------------------------------------**/
void EKFStateUpdate(EKFPara_t* kf, GNSS_t* pgnss, Classifer_t* sys, PDR_t* g_pdr,
int scene_type);
#ifdef __cplusplus
}
#endif
#endif