RMVL  2.5.0-dev
Robotic Manipulation and Vision Library
载入中...
搜索中...
未找到

使用 cv::Matx 改写的轻量级卡尔曼滤波和扩展卡尔曼滤波模块 更多...

卡尔曼滤波模块 的协作图:

class  rm::KalmanFilterStaticDatas< FloatTp, StateDim, MeasureDim >
 卡尔曼滤波静态数据 更多...
class  rm::KalmanFilter< FloatTp, StateDim, MeasureDim >
 卡尔曼滤波器 更多...
class  rm::ExtendedKalmanFilter< FloatTp, StateDim, MeasureDim >
 扩展卡尔曼滤波器 更多...
class  rm::IteratedExtendedKalmanFilter< FloatTp, StateDim, MeasureDim >
 紧耦合迭代扩展卡尔曼滤波器 更多...

类型定义

using rm::KF21f = KalmanFilter<float, 2, 1>
 \(2\times1\) 卡尔曼滤波器
using rm::KF21d = KalmanFilter<double, 2, 1>
 \(2\times1\) 卡尔曼滤波器
using rm::EKF31f = ExtendedKalmanFilter<float, 3, 1>
 \(3\times1\) 扩展卡尔曼滤波器
using rm::EKF31d = ExtendedKalmanFilter<double, 3, 1>
 \(3\times1\) 扩展卡尔曼滤波器
using rm::IEKF31f = IteratedExtendedKalmanFilter<float, 3, 1>
 \(3\times1\) 紧耦合迭代扩展卡尔曼滤波器
using rm::IEKF31d = IteratedExtendedKalmanFilter<double, 3, 1>
 \(3\times1\) 紧耦合迭代扩展卡尔曼滤波器

详细描述

使用 cv::Matx 改写的轻量级卡尔曼滤波和扩展卡尔曼滤波模块

  • 考虑到 OpenCV 中提供的 cv::KalmanFilter 是基于 cv::Mat 实现的,cv::Mat 的内存操作在运行时是在堆上打开的,因此会消耗大量的时间,本模块使用 cv::Matx 来实现 KF 和 EKF 的功能,以达到轻量化的目的。
  • 相关知识点可参考说明文档 卡尔曼滤波 以及 扩展卡尔曼滤波

类型定义说明

◆ EKF31d

using rm::EKF31d = ExtendedKalmanFilter<double, 3, 1>

#include <rmvl/algorithm/kalman.hpp>

\(3\times1\) 扩展卡尔曼滤波器

◆ EKF31f

using rm::EKF31f = ExtendedKalmanFilter<float, 3, 1>

#include <rmvl/algorithm/kalman.hpp>

\(3\times1\) 扩展卡尔曼滤波器

◆ IEKF31d

#include <rmvl/algorithm/kalman.hpp>

\(3\times1\) 紧耦合迭代扩展卡尔曼滤波器

◆ IEKF31f

#include <rmvl/algorithm/kalman.hpp>

\(3\times1\) 紧耦合迭代扩展卡尔曼滤波器

◆ KF21d

using rm::KF21d = KalmanFilter<double, 2, 1>

#include <rmvl/algorithm/kalman.hpp>

\(2\times1\) 卡尔曼滤波器

◆ KF21f

using rm::KF21f = KalmanFilter<float, 2, 1>

#include <rmvl/algorithm/kalman.hpp>

\(2\times1\) 卡尔曼滤波器