小编Elo*_*lod的帖子

没有新观察的Opencv卡尔曼滤波器预测

我想使用Opencv卡尔曼滤波器实现平滑一些噪声点.所以我试着为它编写一个简单的测试代码.

假设我有观察(一点).我接受新观察的每一帧,我称卡尔曼预测和卡尔曼正确.opencv卡尔曼滤波器正确后的状态是"跟随点",没关系.

然后,假设我有一个缺失的观察,我想要无论如何都要更新卡尔曼滤波器并预测新状态.这里我的代码失败了:如果我调用kalman.predict(),则值不再更新.

这是我的代码:

#include <iostream>
#include <vector>
#include <sys/time.h>

#include <opencv2/highgui/highgui.hpp>
#include <opencv2/video/tracking.hpp>

using namespace cv;
using namespace std;

//------------------------------------------------ convenience method for 
//                                                 using kalman filter with 
//                                                 Point objects
cv::KalmanFilter KF;
cv::Mat_<float> measurement(2,1); 
Mat_<float> state(4, 1); // (x, y, Vx, Vy)

void initKalman(float x, float y)
{
    // Instantate Kalman Filter with
    // 4 dynamic parameters and 2 measurement parameters,
    // where my measurement is: 2D location of object,
    // and dynamic is: 2D location and 2D …
Run Code Online (Sandbox Code Playgroud)

opencv kalman-filter

13
推荐指数
2
解决办法
1万
查看次数

Simulink MultiArray消息生成到ROS

如何在Simulink(Matlab R2015A)中创建一个以ROS消息形式发送浮点数的发布者(在Ubuntu 14.04下的ROS Indigo中)?我应该使用BlankMSG味精类型为:std_msgs/Float32MultiArrayPublish具有相同味精类型和自己的主题名称的块。

我不知道如何将矢量添加到味精总线上的数据字段。我很累,在一个Bus Assignment块中数据输入是一个常数向量,但是我得到一个错误:

总线分配块“ SubscriberMotorStates / Bus Assignment”的总线输入端口不支持将总线阵列作为子元素。

在此处输入图片说明

更新

我尝试在Matlab中发送数组,并按照说明进行了工作。

chatpub = rospublisher('/chatter','std_msgs/Float64MultiArray');
msg = rosmessage(chatpub);
msg.Data = [1 2 3];
send(chatpub,msg);
Run Code Online (Sandbox Code Playgroud)

因此,我也可以通过在* .m文件中实现一个函数并使用该Interpreted MATLAB function块在simulink中使用它。

我仍然很好奇如何将预期的块用于数组消息发送,因为它可能会得到更好的优化。(我将在实际应用程序中使用)

matlab message simulink ros

7
推荐指数
0
解决办法
764
查看次数

如何从FFT获得调幅信号的相位角

我有一个调幅信号的测量.我用fft() matlab函数分析了.在我用"书"计算一切之后,我只有一个问题.调制信号的相位不合适.只有当我从pi/2计算的相位中减去时,才能得到正确的值.调制信号是第六个组成部分:

X [6] = -8.2257e + 001 -1.6158e + 002i
相(x [6])= atan(-8.2257e + 001/-1.6158e + 002)= 1.0999

真正的阶段是: pahse(x[6])-pi/2 = -0.4709

为什么我要减去pi/2如果我使用<code>atan2(imag(X(6)),real(X(6)))</code>- 第一张图片</p>

<p>如果我使用<code>atan(imag(X(6))/real(X(6)))-pi/2</code>- 第二张图片</p> </div>
        <p>
          <a href=matlab fft phase

3
推荐指数
1
解决办法
7583
查看次数

Qma可执行文件在Cmake项目中不存在

我在Qt5.2.1下面打开了一个cmake项目Ubuntu 14.04.在project->build->CMake arguments: -DCMAKE_BUILD_TYPE:=Debug

在我成功构建项目并尝试运行它之后,我在应用程序输出中收到以下错误: Executable /home/../foo does not exist. 如果我尝试调试应用程序,则弹出窗口错误是:

Starting executable failed: /home/../foo: No such file or directory.

可执行文件是构建的,但名称实际上是,food而不是foo.因此,很明显为什么运行和调试无法找到可执行文件.我是Qt的新手.我在这里错过了什么?

debugging qt ubuntu-14.04

2
推荐指数
1
解决办法
3248
查看次数

标签 统计

matlab ×2

debugging ×1

fft ×1

kalman-filter ×1

message ×1

opencv ×1

phase ×1

qt ×1

ros ×1

simulink ×1

ubuntu-14.04 ×1