当前位置: 首页 > article >正文

【无人机】无人机位置估计出现偏差的原因分析

目录

#0、原因分析

#1、过度振动的测定

#2、确定过度陀螺仪偏差

#3、偏航精度差的测定

#4、确定 GPS 精度差

#5、确定 GPS 数据丢失

#6、气压计地面效应补偿


#0、原因分析

位置背离的最常见原因是:

参考:Using the ECL EKF | PX4 Guide (v1.15)

  • 高振动水平
    • 通过改进 Autopilot 的机械隔离来修复。
    • 增加 EKF2_ACC_NOISE 和 EKF2_GYR_NOISE 的值可能会有所帮助,但确实会使 EKF 更容易受到 GPS 故障的影响。
  • 较大的陀螺仪偏置偏移
    • 通过重新校准陀螺仪来修复。 检查冷启动预热期间是否过高的温度灵敏度 (> 3 度/秒的偏置变化,如果受绝缘影响,请更换传感器以减慢温度变化速率。
  • 偏航对齐不良
    • 检查磁力计校准和对准。
    • 检查显示的航向 QGC 是否在 15 度以内
  • GPS 精度差
    • 检查干扰
    • 改善分离和屏蔽
    • 检查飞行位置是否有 GPS 信号障碍物和反射器(附近的高楼大厦)
  • GPS 丢失

确定其中哪一个是主要原因需要一种有条不紊的方法来分析 EKF 日志数据:

  • 绘制速度新息测试比率 -EstimatorStatus (打开新窗口).vel_test_ratio
  • 绘制水平位置新息测试比率 -EstimatorStatus (打开新窗口).pos_test_ratio
  • 绘制身高新息检验比率 -EstimatorStatus (打开新窗口).hgt_test_ratio
  • 绘制磁力计新息测试比率 -EstimatorStatus (打开新窗口).mag_test_ratio
  • 绘制 GPS 接收器报告的速度精度 -SensorGps.msg (打开新窗口).s_variance_m_s
  • 绘制 IMU delta 角度状态估计值 -EstimatorStatus (打开新窗口).states[10]、states[11] 和 states[12]
  • 绘制 EKF 内部高频振动指标:
    • 三角角圆锥振动 -EstimatorStatus (打开新窗口).vibe[0]
    • 高频 delta 角振动 -EstimatorStatus (打开新窗口).vibe[1]
    • 高频 delta 速度振动 -EstimatorStatus (打开新窗口).vibe[2]

在正常作期间,所有测试比率都应保持在 0.5 以下,只有偶尔会出现高于 0.5 的峰值,如以下示例所示,成功飞行:

Position, Velocity, Height and Magnetometer Test Ratios

下图显示了具有良好隔离的多旋翼的 EKF 振动指标。 可以看到着陆冲击和起飞和着陆过程中增加的振动。 使用这些指标收集的数据不足,无法提供有关最大阈值的具体建议。

Vibration metrics - successful

上述振动指标的价值有限,因为在接近 IMU 采样频率(大多数电路板为 1 kHz)的频率下存在振动将导致数据中出现偏移,而这些偏移不会显示在高频振动指标中。 检测混叠误差的唯一方法是它们对惯性导航精度和创新水平提升的影响。

除了生成 > 1.0 的大位置和速度测试比率外,不同的误差机制还以不同的方式影响其他测试比率:

#1、过度振动的测定

高振动水平通常会影响垂直位置和速度新息以及水平分量。 磁力计测试水平仅受到很小程度的影响。

(在此处插入显示不良振动的示例图)

#2、确定过度陀螺仪偏差

较大的陀螺仪偏置偏移通常以飞行过程中增量角偏置值大于 5E-4 (相当于 ~3 度/秒)为特征,如果偏航轴受到影响,也会导致磁力计测试比率大幅增加。 除极端情况外,身高通常不受影响。 只要在飞行前给滤波器时间建立时间,就可以容忍高达 5 度/秒的接通偏置值。 如果位置发散,车长执行的飞行前检查应防止解锁。

(在此处插入显示不良陀螺仪偏差的示例图)

#3、偏航精度差的测定

不良的偏航对准会导致速度测试比在飞机开始移动时迅速增加,因为惯性导航和 GPS 测量计算的速度方向不一致。 磁力计创新受到轻微影响。 身高通常不受影响。

(在此处插入显示不良偏航对齐的示例图)

#4、确定 GPS 精度差

GPS 精度差通常伴随着接收器报告的速度误差的增加以及创新的增加。 由于多径、遮挡和干扰引起的瞬态误差是更常见的原因。 这是一个 GPS 精度暂时丢失的示例,其中多旋翼开始偏离其悬停位置,必须使用摇杆进行校正。 崛起EstimatorStatus (打开新窗口).vel_test_ratio大于 1 表示 GPs 速度与其他测量值不一致,因此被拒绝。

GPS glitch - test ratios

这伴随着 GPS 接收器报告的速度精度的提高,这表明这可能是 GPS 错误。

GPS Glitch - reported receiver accuracy

如果我们再看一下 GPS 水平速度新息和创新方差,我们可以看到伴随着这个 GPS“故障”事件而来的北速新息大幅飙升。

GPS Glitch - velocity innovations

#5、确定 GPS 数据丢失

GPS 数据的丢失将由速度和位置新息测试比率“平线”显示。 如果发生这种情况,请检查 中的其他 GPS 状态数据以获取更多信息。vehicle_gps_position

下图显示了使用 SITL Gazebo 模拟 VTOL 飞行生成的 NED GPS 速度新息、GPS NE 位置新息和 Baro 垂直位置新息。ekf2_innovations_0.vel_pos_innov[0 ... 2]ekf2_innovations_0.vel_pos_innov[3 ... 4]ekf2_innovations_0.vel_pos_innov[5]

模拟的 GPS 在 73 秒时失去锁定。 请注意,GPS 丢失后 NED 速度新息和 NE 位置新息是“平线”。 请注意,在没有 GPS 数据 10 秒后,EKF 使用最后一个已知位置恢复为静态位置模式,并且 NE 位置新息再次开始变化。

GPS Data Loss - in SITL

#6、气压计地面效应补偿

如果飞机在着陆过程中有在靠近地面时爬升回空中的趋势,最可能的原因是气压计地面效应。

这是当螺旋桨向下推的空气撞击地面并在无人机下方形成高压区时引起的。 结果是压力高度读数较低,导致命令不必要的爬升。 下图显示了存在地面效应的典型情况。 请注意气压计信号在飞行开始和结束时是如何下降的。

Barometer ground effect

您可以启用地效应补偿来解决此问题:

  • 根据该图估计起飞或降落期间气压计下降的幅度。在上图中,人们可以读取着陆过程中约 6 米的气压计下降。
  • 然后将参数 EKF2_GND_EFF_DZ 设置为该值并添加 10% 的边距。因此,在这种情况下,6.6 米的值将是一个很好的起点。

如果地形估计可用(例如,车辆配备了测距仪),那么您可以额外指定EKF2_GND_MAX_HGT,低于该高度应激活地面效应补偿。 如果没有可用的地形估计,则此参数将不起作用,系统将使用启发式来确定是否应激活地面效应补偿。

相关文章:

【无人机】无人机位置估计出现偏差的原因分析

目录 #0、原因分析 #1、过度振动的测定 #2、确定过度陀螺仪偏差 #3、偏航精度差的测定 #4、确定 GPS 精度差 #5、确定 GPS 数据丢失 #6、气压计地面效应补偿 #0、原因分析 位置背离的最常见原因是: 参考:Using the ECL EKF | PX4 Guide (v1.15)…...

element-plus(vue3)表单el-select下拉框的远程分页下拉触底关键字搜索实现

一、基础内核-自定义指令 1.背景 2.定义 3.使用 4.注意 当编辑时需要回显,此时由于分页导致可能匹配不到对应label文本显示,此时可以这样解决 二、升级使用-二次封装组件 三、核心代码 1.自定义指令 定义 ----------------selectLoadMoreDirective.…...

轻松完成视频创作,在线视频编辑器,无需下载软件,功能多样实用!

小白工具的在线视频编辑https://www.xiaobaitool.net/videos/edit/ 功能丰富、操作简便,在线裁剪或编辑视频工具,轻松完成视频创作能满足多种视频编辑需求。 格式支持广泛:可编辑超百种视频格式,基本涵盖常见和小众视频格式&#…...

高精度运算

1.乘法 #include <bits/stdc.h> using namespace std;char s1[2000], s2[2000]; int a[2000], b[2000], c[4000];int main() {cin >> s1 >> s2;int ls1 strlen(s1);int ls2 strlen(s2);int ls3 ls1 ls2;// 将字符串 s1 和 s2 转换为数组 a 和 bfor (int…...

express的模板handlebars用app.engine()创建配置和用exphbs.create()的区别

在使用 express-handlebars 时&#xff0c;app.engine 和 exphbs.create 都可以用来配置 Handlebars 模板引擎&#xff0c;但它们的使用方式和功能有一些区别。以下是详细的对比和说明 app.engine 方法 app.engine 是 Express 提供的方法&#xff0c;用于注册一个新的模板引擎…...

豆瓣图书数据采集与可视化分析(三)- 豆瓣图书数据统计分析

文章目录 前言一、数据读取与保存1. 读取清洗后数据2. 保存数据到CSV文件3. 保存数据到MySQL数据库 二、不同分类统计分析1. 不同分类的图书数量统计分析2. 不同分类的平均评分统计分析3. 不同分类的平均评价人数统计分析4. 不同分类的平均价格统计分析5. 分类综合分析 三、不同…...

聊透多线程编程-线程互斥与同步-13. C# Mutex类实现线程互斥

目录 一、什么是临界区&#xff1f; 二、Mutex类简介 三、Mutex的基本用法 解释&#xff1a; 四、Mutex的工作原理 五、使用示例1-保护共享资源 解释&#xff1a; 六、使用示例2-跨进程同步 示例场景 1. 进程A - 主进程 2. 进程B - 第二个进程 输出结果 ProcessA …...

Sql刷题日志(day5)

面试&#xff1a; 1、从数据分析角度&#xff0c;推荐模块怎么用指标衡量&#xff1f; 推荐模块主要目的是将用户进行转化&#xff0c;所以其主指标是推荐的转化率推荐模块的指标一般都通过埋点去收集用户的行为并完成相应的计算而形成相应的指标数据&#xff0c;而这里的驱动…...

【Test】单例模式❗

文章目录 1. 单例模式2. 单例模式简单示例3. 懒汉模式4. 饿汉模式5. 懒汉式和饿汉式的区别 1. 单例模式 &#x1f427;定义&#xff1a;保证一个类仅有一个实例&#xff0c;并提供一个访问它的全局访问点。 单例模式是一种常用的软件设计模式&#xff0c;在它的核心结构中只包…...

c++进阶——类与继承

文章目录 继承继承的基本概念继承的基本定义继承方式继承的一些注意事项 继承类模板 基类和派生类之间的转换继承中的作用域派生类的默认成员函数默认构造函数拷贝构造赋值重载析构函数默认成员函数总结 不能被继承的类继承和友元继承与静态成员多继承及其菱形继承问题继承模型…...

虚拟滚动;懒加载;高并发组件

虚拟滚动的实现 思路&#xff1a;它只渲染当前可视区域内的元素&#xff0c;而不是整个列表&#xff0c;滚动时计算出应该显示哪些元素 原生JS class VirtualScroll {constructor(container, items, itemHeight, renderItem) {this.container container;this.items items;t…...

复杂地形越野机器人导航新突破!VERTIFORMER:数据高效多任务Transformer助力越野机器人移动导航

作者&#xff1a; Mohammad Nazeri 1 ^{1} 1, Anuj Pokhrel 1 ^{1} 1, Alexandyr Card 1 ^{1} 1, Aniket Datar 1 ^{1} 1, Garrett Warnell 2 , 3 ^{2,3} 2,3, Xuesu Xiao 1 ^{1} 1单位&#xff1a; 1 ^{1} 1乔治梅森大学计算机科学系&#xff0c; 2 ^{2} 2美国陆军研究实验室&…...

Jsp技术入门指南【十】IDEA 开发环境下实现 MySQL 数据在 JSP 页面的可视化展示,实现前后端交互

Jsp技术入门指南【十】IDEA 开发环境下实现 MySQL 数据在 JSP 页面的可视化展示&#xff0c;实现前后端交互 前言一、JDBC 核心接口和类&#xff1a;数据库连接的“工具箱”1. 常用的 2 个“关键类”2. 必须掌握的 5 个“核心接口” 二、创建 JDBC 程序的步骤1. 第一步&#xf…...

数据库未正常关闭后,再次启动时只有主进程,数据库日志无输出

瀚高数据库 目录 环境 症状 问题原因 解决方案 环境 系统平台&#xff1a;银河麒麟svs&#xff08;X86_64&#xff09; 版本&#xff1a;4.5.8 症状 现象&#xff1a;使用pg_ctl stop停止数据库&#xff0c;未正常关闭&#xff1b;使用pg_ctl stop -m i 强制关闭数据库后&…...

【信息系统项目管理师】高分论文:论成本管理与采购管理(信用管理系统)

更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 论文1、规划成本管理2、成本估算3、成本预算4、成本控制论文 2019年1月,我作为项目经理参与了 XX基金管理有限公司信用管理系统项目。该项目成 本1000万,建设期为1年。通过该项目,XX基金管理有限公司在信用…...

Oracle Recovery Tools修复ORA-00742、ORA-600 ktbair2: illegal inheritance故障

接到客户反馈,一套运行在虚拟化平台中的Oracle数据库,由于机房断电,导致数据库无法启动,最初启动报错 2025-04-22T16:59:48.92222708:00 Completed: alter database mount exclusive alter database open 2025-04-22T16:59:52.60972608:00 Ping without log force is disabled:…...

基于 Netmiko 的网络设备自动化操作

学习目标 掌握 Netmiko 库的核心功能与使用场景。能够通过 Netmiko 连接多厂商设备并执行命令和配置。实现批量设备管理、配置备份与自动化巡检。掌握异常处理、日志记录与性能优化技巧。理解 Netmiko 在自动化运维体系中的角色。 1. Netmiko 简介 1.1 什么是 Netmiko Netmi…...

玉米产量遥感估产系统的开发实践(持续迭代与更新)

项目地址&#xff1a;项目首页 - maize_yield_estimation:玉米估产的flaskvue项目 - GitCode 开发中&#xff0c;敬请期待。。。 以下是预先写的提纲&#xff0c;准备慢慢补充 一、项目背景与工程目标 业务需求分析 农业遥感估产的行业痛点&#xff08;数据分散、模型精度不足…...

LeNet5 神经网络的参数解析和图片尺寸解析

1.LeNet-5 神经网络 以下是针对 LeNet-5 神经网络的详细参数解析和图片尺寸变化分析&#xff0c;和原始论文设计&#xff0c;通过分步计算说明各层的张量变换过程。 经典的 LeNet-5架构简化版&#xff08;原始论文输入为 32x32&#xff0c;MNIST 常用 28x28 需调整&#xff09…...

Axure大屏可视化模板:多领域数据决策的新引擎

在数据驱动决策的时代&#xff0c;Axure大屏可视化模板凭借交互性与可定制性&#xff0c;成为农业、园区管理、智慧城市、企业及医疗领域的创新工具&#xff0c;助力高效数据展示与智能决策。 核心应用场景 1. 农业精细化&#xff1a;实时监控土壤湿度、作物生长曲线&#x…...

大内存生产环境tomcat-jvm配置实践

话不多讲&#xff0c;奉上代码&#xff0c;分享经验&#xff0c;交流提高&#xff01; 64G物理内存,8核CPU生产环境tomcat-jvm配置如下&#xff1a; JAVA_OPTS-server -XX:MaxMetaspaceSize4G -XX:ReservedCodeCacheSize2G -XX:UseG1GC -Xms48G -Xmx48G -XX:MaxGCPauseMilli…...

APP和小程序需要注册域名吗?(国科云)

在移动互联网时代&#xff0c;APP和小程序已成为企业和个人提供服务、展示产品的重要渠道。那么APP和小程序的兴起是否对域名造成了冲击&#xff0c;APP和小程序是否需要注册域名呢&#xff1f; APP是否需要注册域名&#xff1f; 从技术上讲&#xff0c;没有域名的APP仍然可以…...

代码随想录算法训练营第60期第十七天打卡

今天我们继续进入二叉树的下一个章节&#xff0c;今天的内容我在写今天的博客前大致看了一下部分题目难度不算大&#xff0c;那我们就进入今天的题目。 第一题对应力扣编号为654的题目最大二叉树 这道题目的坑相当多&#xff0c;我第一次题目没有看明白就是我不知道到底是如何…...

小刚说C语言刷题——1565成绩(score)

1.题目描述 牛牛最近学习了 C 入门课程&#xff0c;这门课程的总成绩计算方法是&#xff1a; 总成绩作业成绩 20% 小测成绩 30% 期末考试成绩 50%。 牛牛想知道&#xff0c;这门课程自己最终能得到多少分。 输入 三个非负整数 A、B、C &#xff0c;分别表示牛牛的作业成…...

SOC估算:开路电压修正的安时积分法

SOC估算&#xff1a;开路电压修正的安时积分法 基本概念 开路电压修正的安时积分法是一种结合了两种SOC估算方法的混合技术&#xff1a; 安时积分法&#xff08;库仑计数法&#xff09; - 通过电流积分计算SOC变化 开路电压法 - 通过电池电压与SOC的关系曲线进行校准 方法原…...

Spark-SQL(总结)

了解到Spark SQL是Spark用于结构化数据处理的模块&#xff0c;其前身是Shark。Shark基于Hive开发&#xff0c;但对Hive的依赖制约了Spark的发展。掌握了 Spark - SQL 的特点&#xff0c;如易整合、统一数据访问、兼容 Hive 以及支持标准数据连接&#xff0c;可处理多种数据源的…...

Oracle for Linux安装和配置(11)——Oracle安装和配置

11.3. Oracle安装和配置 Linux上Oracle的安装及配置与Windows上差不多,只是安装软件的准备等有所不同,下面只对不同于Windows的部分进行较为详细的讲解,其他类似部分不再赘述。另外,无论选择使用虚机还是物理机,Oracle安装、配置和使用等方面几乎都是完全一样的。 11.3.…...

【防火墙 pfsense】2配置

&#xff08;1&#xff09;接口配置和接口 IP 地址分配 ->配置广域网&#xff08;WAN&#xff09;和局域网&#xff08;LAN&#xff09;接口&#xff0c;分配设备标识符&#xff0c;如 eth0、eth1 等&#xff1b; ->如将WAN 接口将被分配到 eth0&#xff0c;而 LAN 接口将…...

使用 SSE + WebFlux 推送日志信息到前端

为什么使用 SSE 而不使用 WebSocket, 请看 SEE 对比 Websocket 的优缺点。 特性SSEWebSocket通信方向单向&#xff08;服务器→客户端&#xff09;双向&#xff08;全双工&#xff09;协议基于 HTTP独立协议&#xff08;需 ws:// 前缀&#xff09;兼容性现代浏览器&#xff08…...

Ollama 常见命令速览:本地大模型管理指南

Ollama 常见命令速览&#xff1a;本地大模型管理指南 一、什么是 Ollama&#xff1f; Ollama 是一个轻量级工具&#xff0c;允许用户在本地快速部署和运行大型语言模型&#xff08;LLM&#xff09;&#xff0c;如 Llama、DeepSeek、CodeLlama 等。其命令行工具设计简洁&#…...