平衡小车卡尔曼滤波算法
最近研究STM32的自平衡小车,发现有两座必过的大山,一为卡尔曼滤波,二为PID算法。 网上看了很多关于卡尔曼滤波的代码,感觉写得真不咋地。一怒之下,自己重写,不废话,贴代码 [pre lang="C" line="1" file="kalman.h"]/** #ifndef __KALMAN_H__ #define Q_angle 0.001 角度过程噪声的协方差 /**************卡尔曼运算变量定义********************** }KalmanCountData; void Kalman_Filter(float Accel, float Gyro ,KalmanCountData * Kalman_Struct); #endif [/pre] kalman.c [pre lang="C" line="1" file="kalman.c"] /** void Kalman_Filter_Init(KalmanCountData * Kalman_Struct) } /** void Kalman_Filter(float Accel, float Gyro ,KalmanCountData * Kalman_Struct) Kalman_Struct -> PP[0][0] -= Kalman_Struct -> K_0 * Kalman_Struct -> t_0; Kalman_Struct -> Angle_Final += Kalman_Struct -> K_0 * Kalman_Struct -> Angle_err; //后验估计最优角度值 } [/pre] 代码可以放在实际工程中使用,也可以用VS等C编译工具进行实验学习。在VS中的main()实例使用如下 [pre lang="C" line="1" file="main.c"] #include "stdio.h" #include "stdlib.h" void main(void) KalmanCountData k; for(int a = 0;a<80;a++) //m,n为1到100的随机数 n = 1+ rand() %100; //卡尔曼滤波,传递2个测量值以及运算结构体 //打印结果 } |
平衡小车卡尔曼滤波算法相关推荐
- matlab两轮自平衡小车,基于LQR算法两轮自平衡小车的系统设计与研究
摘要: 本文旨在设计和研究两轮自平衡小车系统.两轮自平衡小车是一种非线性.强耦合.多变量.自然不稳定.具体的.实现起来相对便宜的复杂系统,给控制理论提出了很大的挑战,是检验各种控制方法处理能力的典型装 ...
- PID算法控制平衡小车直立
1.平衡小车直立控制: 如果我们要控制一根木棍在手上直立,需要两个步骤 ->托着木棒的手可以移动 ->眼睛能看到木棒的倾斜角度和倾斜趋势(角速度) 类比到平衡小车中,同理想让小车保持平衡, ...
- PID算法控制平衡小车速度
1.平衡小车速度控制: 平衡小车在平衡的前提下,应该想办法让他直立行走,也就是下面要讲的在直立控制下给予小车速度达到速度控制 速度控制应该控制的是倾斜角从而触发直立控制达到移动的目的,小车运动的速度和 ...
- Arduino平衡小车
Arduino平衡小车 1.概述 此Arduino平衡小车在主控方面由Arduino UNO R3和Arduino sensor shield v5.0传感器扩展板组成.采用TB6612FNG作为电源 ...
- 基于STM32-F401的平衡小车
目录 一.控制系统设计 1.1机械结构设计 1.2传感系统设计 1.3执行器设计 1.4控制算法设计 二.控制系统的制作与调试 2.1机械结构的制作与调试 2.2电路系统的制作与调试 2.3控制程序的 ...
- matlab两轮自平衡小车,(2-3合刊) 基于MEMS惯性传感器的两轮自平衡小车设计
摘要:着重分析了两轮自平衡小车的设计原理与控制算法,采用卡尔曼滤波算法融合陀螺仪与加速度计信号,得到系统姿态倾角与角速度最优估计值,通过双闭环数字PID 算法实现系统的自平衡控制.设计了以MPU-60 ...
- 基于STM32的二轮自平衡小车
前言 近年来,移动机器人是目前科学领域比较活跃的领域之一,其应用范围越来越广泛,面临的环境也越来越复杂,这就要求机器人能够适应一些复杂的环境和任务.二轮自平衡机器人正是在这一背景下提出来的,对于制作此 ...
- 关于STM32平衡小车的几个关键疑问
引用文章 一.关于姿态融合 首先需要提一点关键的,**如果是采用卡尔曼滤波或者互补滤波,尽可能把采样时间调小,这样可以增加滤波的效果.建议采样时间不要高于10ms,起初我在测试的时候采样时间设置为20 ...
- 毕业论文 | 基于STM32的双轮平衡小车设计(基于Keil5的完整注释版代码工程,原器件清单)
博主github:https://github.com/MichaelBeechan 博主CSDN:https://blog.csdn.net/u011344545 预告:代码及文档下载 其他参考代码 ...
最新文章
- 前端开发知识总结思维导图
- IT人保持健康的必备法宝
- 创建docker用户组并加入
- php.ini文件可以复制吗,php安装完成以后要复制php.ini文件
- Web.Config介绍
- 使用Hybris Commerce User API读取用户信息时,电话字段没有返回
- (翻译)Tricks of the windows game programming Gurus(Windows游戏大师之路) --- 前言(作者:ANDRE LAMOTHE 1999)...
- 单元测试(UT)、功能测试(FT)(转)
- redchat怎么编写shell脚本_Linux如何编写shell脚本?
- socket通信压力测试
- 罗德矢量网络分析仪高效测试软件NSAT-1000
- 开启新坑,将live2d引入网页
- 董文永武汉大学计算机学院,董文永
- C语言数字图像处理---2.5图像频域滤波
- 使用for循环编写反方向正直角三角形
- 「 墙裂推荐」互联网人必备GIF制作的14种选择
- 你应该如何学习一个未知的技术领域?- 菜鸟小白篇
- 葡萄酒数据集_如何使用数据科学来理解什么使葡萄酒味道更好
- win10计算机右键属性打不开,win10电脑系统属性打不开的解决方法
- 关于C++ delete 来释放new分配的内存
热门文章
- IPC 中 LPC、RPC 的区别和联系
- 计算机程序设计艺术+第3卷:排序与查找(第二版)pdf
- IE8兼容问题总结---trim()方法
- [BZOJ 3236] [Ahoi2013] 作业 [BZOJ 3809] 【莫队(+分块)】
- 如何在WinForm中发送HTTP请求
- Thinking in C++遇到的函数指针及应用
- java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询
- 大数据分析如何创建最佳的移动应用用户体验
- [QNAP crontab 定時執行程式
- 研究人员发现Office Word 0Day攻击 这个漏洞绕过了word宏安全设置 绿盟科技、McAfee及FireEye发出警告...