资源简介
C++写的一个Ubuntu下扩展卡尔曼滤波程序,状态方程为线性,观测方程非线性,最后输出图片以便观察是否收敛,有比较详细的注释,分享给大家参考。还会上传一个matlab版本的。
代码片段和文件信息
#include
#include
#include
#include
#include
#include
using namespace std;
using namespace cv;
int main(int argc char **argv) {
int k=0;
Point lasta lastb lastc;
Eigen::Vector3d x_up(030M_PI/6) x_pre(000) xn(00M_PI/6) Rn(0.10.10.1); //沿x轴直线运动
Eigen::Vector3d s_con(0.9*cos(M_PI/6) 0.9*sin(M_PI/6) 0);
Eigen::Matrix3d A=Eigen::Matrix3d::Identity(); //状态转移矩阵
Eigen::Matrix3d R P P_pre; //状态噪声方差观测噪声方差总协方差
Eigen::Matrix2d Q S;
Eigen::Matrix H; //观测方程雅克比矩阵
Eigen::MatrixXd K; //卡尔曼增益
Eigen::Vector2d z(01);
RNG gaus; //高斯分布对象
Mat img(500500CV_8UC3Scalar(255255255));
R<<0.10000.10000.1;
Q<<0.1000.1;
P<<0.10000.10000.1;
//开始迭代
for(int i=0; i<300; i++)
{
double gs=gaus.gaussian(1); //0均值,协方差为1的高斯分布中的随机数
xn+=s_con+Rn*gs; //真实值
z<
//预测
x_pre=x_
- 上一篇:新国都系列改SN号软件+教程
- 下一篇:相机曝光增益时间控制代码
相关资源
- C++中头文件与源文件的作用详解
- C++多线程网络编程Socket
- VC++ 多线程文件读写操作
- 利用C++哈希表的方法实现电话号码查
- 移木块游戏,可以自编自玩,vc6.0编写
- C++纯文字DOS超小RPG游戏
- VC++MFC小游戏实例教程(实例)+MFC类库
- 连铸温度场计算程序(C++)
- 6自由度机器人运动学正反解C++程序
- Em算法(使用C++编写)
- libstdc++-4.4.7-4.el6.i686.rpm
- VC++实现CMD命令执行与获得返回信息
- 白话C++(全)
- C++标准库第1、2
- 大数类c++大数类
- C++语言编写串口调试助手
- c++素数筛选法
- C++ mqtt 用法
- 商品库存管理系统 C++ MFC
- c++ 多功能计算器
- C++17 In Detail
- 嵌入式QtC++编程课件
- 颜色识别形状识别STM103嵌入式代码
- c++ 邮件多附件群发
- c++ 透明代理(hookproxy)
- mfc 调用redis
- FTP客户端源码(c++)
- c++ 画图(14Qt-XPS)
- c++多边形交并差运算
- VC++基于OpenGL模拟的一个3维空间模型
评论
共有 条评论