RMVL  2.5.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到
rm::IteratedExtendedKalmanFilter< FloatTp, StateDim, MeasureDim > 模板类 参考

紧耦合迭代扩展卡尔曼滤波器 更多...

#include <rmvl/algorithm/kalman.hpp>

类 rm::IteratedExtendedKalmanFilter< FloatTp, StateDim, MeasureDim > 继承关系图:
rm::IteratedExtendedKalmanFilter< FloatTp, StateDim, MeasureDim > 的协作图:

Public 成员函数

 IteratedExtendedKalmanFilter (int max_iter=5, FloatTp eps=FloatTp(1e-3))
 构造新的 IteratedExtendedKalmanFilter 对象
auto correct (const cv::Matx< FloatTp, MeasureDim, 1 > &zk)
 迭代扩展卡尔曼滤波的校正部分
Public 成员函数 继承自 rm::ExtendedKalmanFilter< FloatTp, StateDim, MeasureDim >
 ExtendedKalmanFilter ()
 构造新的 ExtendedKalmanFilter 对象
void setJa (const cv::Matx< FloatTp, StateDim, StateDim > &state_jac)
 设置状态方程雅可比矩阵 \(J_A\)
void setJh (const cv::Matx< FloatTp, MeasureDim, StateDim > &observe_jac)
 设置观测方程雅可比矩阵 \(J_H\)
void setFa (const std::function< cv::Matx< FloatTp, StateDim, 1 >(const cv::Matx< FloatTp, StateDim, 1 > &)> &state_func)
 设置非线性的离散状态方程 \(\boldsymbol f_A(\boldsymbol x)\)
void setFh (const std::function< cv::Matx< FloatTp, MeasureDim, 1 >(const cv::Matx< FloatTp, StateDim, 1 > &)> &observe_func)
 设置非线性的离散观测方程 \(\boldsymbol f_H(\boldsymbol x)\)
void setW (const cv::Matx< FloatTp, StateDim, StateDim > &process_jac)
 设置过程噪声协方差雅可比矩阵 \(W\)
void setV (const cv::Matx< FloatTp, MeasureDim, MeasureDim > &measure_jac)
 设置测量噪声协方差雅可比矩阵 \(V\)
auto predict ()
 扩展卡尔曼滤波的预测部分,包括状态量的先验估计和误差协方差的先验估计
auto correct (const cv::Matx< FloatTp, MeasureDim, 1 > &zk)
 扩展卡尔曼滤波的校正部分,包含卡尔曼增益的计算、状态量的后验估计和误差协方差的后验估计
Public 成员函数 继承自 rm::KalmanFilterStaticDatas< FloatTp, StateDim, MeasureDim >
 KalmanFilterStaticDatas ()
 构造新的卡尔曼滤波静态数据
void init (const cv::Matx< FloatTp, StateDim, 1 > &x0, FloatTp error)
 初始化状态以及对应的误差协方差矩阵(常数对角矩阵)
void init (const cv::Matx< FloatTp, StateDim, 1 > &x0, const cv::Matx< FloatTp, StateDim, 1 > &error)
 初始化状态以及对应的误差协方差矩阵(对角矩阵)
void setR (const cv::Matx< FloatTp, MeasureDim, MeasureDim > &measure_err)
 设置测量噪声协方差矩阵 \(R\)
void setQ (const cv::Matx< FloatTp, StateDim, StateDim > &process_err)
 设置过程噪声协方差矩阵 \(Q\)
void setP (const cv::Matx< FloatTp, StateDim, StateDim > &state_err)
 设置误差协方差矩阵 \(P\)

额外继承的成员函数

Protected 类型 继承自 rm::ExtendedKalmanFilter< FloatTp, StateDim, MeasureDim >
template<int OutputDim>
using StateFunction = std::function<cv::Matx<FloatTp, OutputDim, 1>(const cv::Matx<FloatTp, StateDim, 1> &)>
静态 Protected 成员函数 继承自 rm::ExtendedKalmanFilter< FloatTp, StateDim, MeasureDim >
template<int OutputDim>
static cv::Matx< FloatTp, OutputDim, StateDim > calcJ (const StateFunction< OutputDim > &func, const cv::Matx< FloatTp, StateDim, 1 > &x)
 根据非线性函数计算当前状态处的雅可比矩阵
Protected 属性 继承自 rm::ExtendedKalmanFilter< FloatTp, StateDim, MeasureDim >
cv::Matx< FloatTp, StateDim, StateDim > Ja
 状态方程雅可比矩阵 \(J_A\)
cv::Matx< FloatTp, StateDim, StateDim > Jat
 状态方程雅可比矩阵的转置 \(J_A^T\)
cv::Matx< FloatTp, MeasureDim, StateDim > Jh
 观测方程雅可比矩阵 \(J_H\)
cv::Matx< FloatTp, StateDim, MeasureDim > Jht
 观测方程雅可比矩阵的转置 \(J_H^T\)
cv::Matx< FloatTp, StateDim, StateDim > W
 过程噪声协方差雅可比矩阵 \(W\)
cv::Matx< FloatTp, StateDim, StateDim > Wt
 过程噪声协方差雅可比矩阵的转置 \(W^T\)
cv::Matx< FloatTp, MeasureDim, MeasureDim > V
 测量噪声协方差雅可比矩阵 \(V\)
cv::Matx< FloatTp, MeasureDim, MeasureDim > Vt
 测量噪声协方差雅可比矩阵的转置 \(V^T\)
std::function< cv::Matx< FloatTp, StateDim, 1 >(const cv::Matx< FloatTp, StateDim, 1 > &)> Fa
 非线性的离散状态方程
std::function< cv::Matx< FloatTp, MeasureDim, 1 >(const cv::Matx< FloatTp, StateDim, 1 > &)> Fh
 非线性的离散观测方程
Protected 属性 继承自 rm::KalmanFilterStaticDatas< FloatTp, StateDim, MeasureDim >
cv::Matx< FloatTp, StateDim, 1 > x
 状态的后验估计 \(\hat{\boldsymbol x}\)
cv::Matx< FloatTp, StateDim, 1 > x_
 状态的先验估计 \(\hat{\boldsymbol x}^-\)
cv::Matx< FloatTp, MeasureDim, 1 > z
 观测向量 \(\boldsymbol z\)
cv::Matx< FloatTp, StateDim, StateDim > Q
 过程噪声协方差矩阵 \(Q\)
cv::Matx< FloatTp, MeasureDim, MeasureDim > R
 测量噪声协方差矩阵 \(R\)
cv::Matx< FloatTp, StateDim, StateDim > P
 后验误差协方差矩阵 \(P\)
cv::Matx< FloatTp, StateDim, StateDim > P_
 先验误差协方差矩阵 \(P^-\)
cv::Matx< FloatTp, StateDim, StateDim > I
 单位矩阵 \(I\)
cv::Matx< FloatTp, StateDim, MeasureDim > K
 卡尔曼增益 \(K\)

详细描述

template<typename FloatTp, int StateDim, int MeasureDim>
class rm::IteratedExtendedKalmanFilter< FloatTp, StateDim, MeasureDim >

紧耦合迭代扩展卡尔曼滤波器

模板参数
FloatTp浮点数数据类型
StateDim
MeasureDim
注解
提供了形如 rm::IEKF31frm::IEKF31d 之类的类型别名,以头文件定义为准

构造及析构函数说明

◆ IteratedExtendedKalmanFilter()

template<typename FloatTp, int StateDim, int MeasureDim>
rm::IteratedExtendedKalmanFilter< FloatTp, StateDim, MeasureDim >::IteratedExtendedKalmanFilter ( int max_iter = 5,
FloatTp eps = FloatTp(1e-3) )
inline

构造新的 IteratedExtendedKalmanFilter 对象

成员函数说明

◆ correct()

template<typename FloatTp, int StateDim, int MeasureDim>
auto rm::IteratedExtendedKalmanFilter< FloatTp, StateDim, MeasureDim >::correct ( const cv::Matx< FloatTp, MeasureDim, 1 > & zk)
inline

迭代扩展卡尔曼滤波的校正部分

参数
[in]zk观测量
返回
后验状态估计