PX4 代码中 position_estimator_inav(互补滤波)理解
Local_position_estimator 为卡尔曼滤波估计
position_estimator_inav 需要解决三个问题:
如何由加速度进行速度和位置估计;
加速度偏差的计算;
如何使用融合过程。
借用网上一个图诠释下
这里px4_poll()函数设定最小50Hz频率,用来保证姿态数据能够实时获取到,根据返回值判断是否符合要求,不符合要求则mavlink_log_info()函数来打印"[inav] poll error on init"信息。
对于满足条件的情况,开始实际操作:
1.相关数据更新
2.检查相关主题的超时
3.检查位置估计工具的有效性
4.使用位置估计工具更新传感器补偿
5.对高度和位置进行滤波处理
6.地形估计和发布数据
先得到每个Sensor的Corr,然后进行判断是否有效–>是否采用进行弥补–> 给予多大的权重 --> 累加到一起得到–>bias
然后 加速度计值减去bias得到准确值。最后一次积分得到速度,二次积分得到位置信息。
PX4 代码中 position_estimator_inav(互补滤波)理解相关推荐
- 对比直立车模控制中的互补滤波、Karlman滤波和参考滤波方案
前几天,有参加智能车竞赛的同学在公众号上询问一个关于直立车模控制中角度融合算法的问题.感觉这是所有初次准备智能车模竞赛的同学都会碰到的问题. 卓大大,请问您可以针对卡尔曼滤波.互补滤波.清华滤波的原理 ...
- RTOS内核代码中LDM R0, {R4-R11}理解
在RTOS的内核代码中汇编部分,有 LDM R0, {R4-R11} LDM是32为存储器数据传送指令,但其传送方向刚好的LDR相反.LDR a b是把数据从b传到a里,LDM则恰相反. LDM R0 ...
- PX4代码解析(5)
一.前言 我所讨论的PX4代码是基于v1.11版本,该版本与之前的版本有不少不同,其中一个比较大的区别在于新版本大部分用到了C++中模板,使得代码没有以前那么容易理解,因此我在后面介绍PX4的姿态估计 ...
- PX4代码解析(4)
一.引言 PX4程序是基于实时操作系统(Real-time operating system, RTOS)的上层应用程序,PX4飞控程序的很多重要模块都是在Nuttx操作系统的调度下运行的.因此,想要 ...
- px4代码解析(3)
前言 在使用PX4飞控时,我们难免要对其进行二次开发,例如修改控制算法,添加新的传感器,这时需要在代码中定义属于自己的消息.本节主要分享一下如何在PX4代码中添加自己的消息 一.消息添加与配置 从代码 ...
- PX4代码解析(2)
前言 在大致了解PX4代码架构后,我们需要了解PX4的通信机制.在PX4代码架构中,每通信总线主要分为两个部分,一是内部通信总线uORB,即PX4内部进程通信采用的协议,例如PX4内部姿态控制需要获取 ...
- 深入理解C代码中的注释
深入理解C代码中的注释 C 语言的注释可以出现在C 语言代码的任何地方?错!我们就看看下面的例子: A) int/*...*/i; B) char* s="abcdefgh //hijklm ...
- 从Tensorflow代码中理解LSTM网络
目录 RNN LSTM 参考文档与引子 缩略词 RNN (Recurrent neural network) 循环神经网络 LSTM (Long short-term memory) 长短期记忆人 ...
- PX4飞控中利用EKF估计姿态角代码详解
PX4飞控中利用EKF估计姿态角代码详解 PX4飞控中主要用EKF算法来估计飞行器三轴姿态角,具体c文件在px4\Firmware\src\modules\attitude_estimator_ekf ...
- 我需要完全理解这部分代码才能确保它能够正常工作,如果由我来修复代码中的问题,我是不会这么写的,因此希望你也不要这么来写(转)...
Jim Bird是一位经验丰富的软件开发经理.项目经理与CTO,专注于软件开发与维护.软件质量与安全等领域中疑难问题的解决.在过去的15年间,Jim曾管理过团队建设并主导过高性能的财务系统的建设.他的 ...
最新文章
- 浅谈 javascript 中的this绑定问题
- IDEA下用freemarker热更新的问题
- 领域驱动设计,为何死灰复燃?
- 单射(或称单变换)、双射与满射
- 国内大数据开发中比较受欢迎的几款工具
- Spring使用笔记(一)Spring简介
- how is SAP OData count implemented in the backend
- pat 乙级 1033 旧键盘打字(C++)
- mysql update 批量更新_mysql 批量更新的两种方法
- k8s相关面试问题_最常被问到的20道Kubernetes面试题
- 5.剑指Offer --- 优化时间和空间效率
- 【python|多进程】打印进度条
- [论文总结] 智慧农业论文摘要阅读概览
- CodeForces-721A-One-dimensional Japanese Crossword
- 解读Android12 CDD中针对隔离环境(TEE)的要求
- Gris游戏开发-day03
- jquery使用 validate 插件进行验证是否通过
- devcpp的简单使用
- 目标检测和分类的评价指标
- Go语言基础教程:版本选择