n_start = 5000; %从第几个数据开始取
n_end = 5500; %取到第几个个数据
odom_fd_z = robot.odom_data.angular_velocity_z(n_start:n_end); % odom 直接反馈的 YAW角速度
odom_fd_x = robot.odom_data.velocity_x(n_start:n_end); % odom 直接反馈的 YAW角速度
odom_fd_y = robot.odom_data.velocity_y(n_start:n_end); % odom 直接反馈的 YAW角速度
imu_fd_z = robot.imu_data.angular_velocity_z(n_start:n_end); % imu 直接反馈的 YAW角速度
%odom_fd_z_filtered = BUTFILTER(odom_fd_z); 这里不讲巴特沃斯滤波器丢了
figure(1);
x = 1:1:(n_end-n_start+1);
plot(x,imu_fd_z,'b');
hold on;
plot(x,odom_fd_z,'r');
hold on;
% plot(x,odom_fd_z_filtered,'k');
% hold on;
legend('blue imu_fd_z red odom_fd_z ');
N=n_end-n_start+1;
MY_CMD = [0.4*ones(N,1) zeros(N,1) 0.2*ones(N,1)]'; %我录的包线速度0.4m/s 角速度0.2rad/s所以这么写
for i = 1:(n_end-n_start+1)
odom_fd_y(i) = odom_fd_y(i)+randn ; %加个满足正态分布的随机误差
end
MY_FD = [odom_fd_x,odom_fd_y,odom_fd_z]; % 获取x y z 方向速度反馈
MY_CPV = cov(MY_FD); % 求协方差
MY_FD_T = MY_FD';
RESULT_SINGLE = SINGLEKF(0.2*ones(N,1)', odom_fd_z', cov(odom_fd_z) ); % 做一次一个输入的卡尔曼滤波
figure(2);
plot(x,RESULT_SINGLE','g');
hold on;
plot(x,imu_fd_z,'b');
hold on;
plot(x,odom_fd_z,'r');
legend('blue imu_fd_z red odom_fd_z green single kf filter');
RESULT = KF(MY_CMD, MY_FD_T, cov(MY_FD_T') ); % 做一次三输入的卡尔曼滤波
figure(3);
plot(x,RESULT(3,:)','g');
hold on;
plot(x,imu_fd_z,'b');
hold on;
plot(x,odom_fd_z,'r');
hold on;
legend('blue imu_fd_z red odom_fd_z green kf filter');
没有合适的资源?快使用搜索试试~ 我知道了~
Matlab 卡尔曼滤波
共7个文件
m:5个
m~:1个
mat:1个
需积分: 9 1 下载量 187 浏览量
2022-04-28
15:44:37
上传
评论
收藏 1.2MB ZIP 举报
温馨提示
帖子下https://blog.csdn.net/YGG12022/article/details/124474623?spm=1001.2014.3001.5501 的代码
资源详情
资源评论
资源推荐
收起资源包目录
compare_odom(滤波器专栏里的卡尔曼滤波).zip (7个子文件)
compare_odom
KF.m 412B
main.m 2KB
SINGLEKF.m 397B
2022-04-28-09-37-11.mat 5.01MB
untitled1.m 508B
main.m~ 1KB
untitled.m 717B
共 7 条
- 1
羊狗狗一只2022年
- 粉丝: 38
- 资源: 3
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0