GNSS精度判断和协方差矩阵 - MKT

news/2025/9/27 20:11:37/文章来源:https://www.cnblogs.com/gooutlook/p/19115590

 

havv和vacc不是GST标准差,

 

image

 

image

 

 

image

 

image

 

 

image

 

https://blog.csdn.net/qq_38429958/article/details/135639678

image

 

image

 

https://uav.chinaflier.com/thread-25814-1-1.html

飞控需要GPS哪些信息(即需要设置哪些参数)?

以开源飞控px4为例:

实际应用中,我们可以不需要解码出这么多信息,常用的如下:
经纬度、海平面高度              lat   lon   alt
锁定类型                              fix_type
水平/垂直精度估计               eph  epv
水平/垂直精度因子               hdop  vdop
GPS噪声值                          noise_per_ms
NED系速度                         vel_n_m_s    vel_e_m_s  vel_d_m_s
卫星数                                satellites_used

 

飞控中如何判定GPS可用?

标准不定,但是基本原则是根据精度来判定。
这里插入讲一下,笔者有次在某个群里看到有人问飞控算法里的eph epv表示什么意思,有人回答说是水平和垂直的精度因子,然后一大群人附和这个说法,但其实这个说法是错误的。
首先,水平/垂直精度因子是dop数据包解析出来的hdop vdop。
这里的eph epv是pvt数据包里的hAcc vAcc,单位是mm,飞控中将其转换到m。简单理解就是水平和垂直方向的精度,这个数据是估计出来的。
在飞控算法中也更新这个数据。所以,参考开源代码的时候,要看的细致一些,不能想当然的认为,包括网络查找的答案不能尽信,要自己审核确认下。

 

这里通过判定gps的噪声值、fix_type来判定gps是否可用。
在组合导航算法中,通过eph、epv和fix_type来判定。

image

 

 

image

 

image

 

image

 

image

 

// 在UBX-NAV-PVT消息的回调函数中
void onUbxNavPvt(const ublox_msgs::msg::NavPVT& pvt) {auto nav_sat_fix_msg = sensor_msgs::msg::NavSatFix();// 1. 填充基本位置信息(注意单位转换)nav_sat_fix_msg.latitude = pvt.lat * 1e-7; // 度nav_sat_fix_msg.longitude = pvt.lon * 1e-7; // 度nav_sat_fix_msg.altitude = pvt.height * 1e-3; // 米// 2. 设置状态指示符,反映RTK状态if (pvt.flags.carr_soln == 2) { // CarrSoln == 2 表示RTK固定解nav_sat_fix_msg.status.status = sensor_msgs::msg::NavSatStatus::STATUS_GBAS_FIX;} else if (pvt.flags.carr_soln == 1) { // CarrSoln == 1 表示RTK浮动解nav_sat_fix_msg.status.status = sensor_msgs::msg::NavSatStatus::STATUS_SBAS_FIX;} else {// SPP或其他模式nav_sat_fix_msg.status.status = (pvt.fix_type == 3) ? sensor_msgs::msg::NavSatStatus::STATUS_FIX : sensor_msgs::msg::NavSatStatus::STATUS_NO_FIX;}// 3. 【核心】填充 position_covariance// 将hAcc和vAcc从毫米转换为米,并计算方差(标准差的平方)double h_std_dev = pvt.h_acc * 1e-3; // 水平精度估计 (米)double v_std_dev = pvt.v_acc * 1e-3; // 垂直精度估计 (米)// 重置协方差矩阵std::fill(nav_sat_fix_msg.position_covariance.begin(), nav_sat_fix_msg.position_covariance.end(), 0.0);// 填充对角矩阵 [East方差, North方差, Up方差]// 假设东/北方向误差相等,均为h_std_devnav_sat_fix_msg.position_covariance[0] = h_std_dev * h_std_dev; // E-E variancenav_sat_fix_msg.position_covariance[4] = h_std_dev * h_std_dev; // N-N variancenav_sat_fix_msg.position_covariance[8] = v_std_dev * v_std_dev; // U-U variance// 4. 设置协方差类型// 由于hAcc/vAcc是接收机提供的估计值,我们使用APPROXIMATEDnav_sat_fix_msg.position_covariance_type = sensor_msgs::msg::NavSatFix::COVARIANCE_TYPE_APPROXIMATED;// 5. 发布消息nav_sat_fix_pub_->publish(nav_sat_fix_msg);
}

  

为什么这是首选?​​

  • ​​自动适应所有模式​​:ZED-F9P的固件已经为你计算好了当前模式下的精度。RTK固定时,hAcc为0.01-0.03米;SPP时,为1-3米。你无需自己判断模式。

  • ​​实时准确​​:它反映了当前卫星几何结构、信号质量和解算算法的实时状态,比任何经验公式都准确。

image

 

image

 

image

 常用的有:
PDOP(position dilution of precision ) 三维位置精度因子:为纬度、经度和高程等误差平方和的开根号值
HDOP(horizontal dilution of precision )水平分量精度因子:为纬度和经度等误差平方和的开根号值
VDOP(vertical dilution of precision )垂直分量精度因子
GDOP(Geometric Dilution Precision)几何精度因子:是衡量一个定位系统精度的重要标准之一
它们之间的简单关系为:
HDOP2+VDOP2=PDOP2
DOP值的大小与GPS定位的误差成正比,DOP值越大,定位误差越大,定位的精度就低。PDOP则直接反映GPS卫星的分布情况,当PDOP较大时,表明空中的4颗GPS卫星几何分布不是太理想,他们构成的图形周长太短,定位精度就低,反之亦然。小于等于4的PDOP产生最佳位置。5到7之间的PDOP可接受,大于等于7的PDOP较差。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/919883.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

实用指南:clsx:高效处理 React 条件类名的实用工具

实用指南:clsx:高效处理 React 条件类名的实用工具2025-09-27 20:07 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; dis…

Insightly模板页面存储型XSS漏洞分析与复现

本文详细分析了Insightly平台模板页面因LINK名称未正确转义导致的存储型XSS漏洞。包含完整的漏洞复现步骤、攻击原理说明以及漏洞影响分析,涉及脚本标签逃逸技术实战演示。Insightly存储型XSS漏洞报告(#1392262) 漏…

记录 | 关于陪伴型交互AI的一些探讨

关于陪伴型交互AI的一些探讨怎么说呢主要是发布下关于自己关于AI VTuber的开发进展前言 目前的化对整体内容进行了局部的优化和更新,并更新到了v0.5.0版本!【好累啊,都没什么热情了】 整体架构已经初步具备了稳定性…

dw中网站统计总访问量怎么做西安小型网络公司

1:调用函数 eg:调用内置函数 abs() 求绝对值 2:定义函数 1:定义一个函数要使用 def 语句,依次写出函数名、括号、括号中的参数和冒号:,然后,在缩进块中编写函数体,函数的返回值用ret…

陈村网站设计福州专业网站建设

广州大学学生实验报告 开课实验室:计算机科学与工程实验(电子楼418A) 2019年4月19日 学院 计算机科学与教育软件学院 年级、专业、班 计算机科学与技术 姓名 学号 实验课程名称 数据结构实验 成绩 实验项目名称 实验三…

百度推广做网站什么价位网吧网络维护公司

Java Collections框架 Java Collections框架中包含了大量的集合接口以及这些接口的实现类和操作它们的方法,具体包含了Set(集合)、List(列表)、Map(键值对)、Queue(队列)、Stack(栈)等,其中List、Set、Queue、Stack都继承了Collection接口。…

luogu P1719 最大加权矩形

题目大意 需要支持在一个序列中插入等差数列 需要插入\(O(1)\) 最终统计答案\(O(n)\) \(1\leq n\leq 1e7\) Sol 对于一个序列如下:0 0 4 6 8 10 12 0 0我们将其进行一次差分,可以得到:0 0 4 2 2 2 2 -12 0可以发现中间…

CF2065D Skibidus and Sigma

参考代码:#include<bits/stdc++.h> #define ll long long using namespace std; const int N = 2e5 + 10,inf = 0x3f3f3f3f; struct node{ll sum,id; }; node t[N]; vector<ll> a[N]; ll n,m; bool cmp(n…

做网站优化需要做什么vi设计要素

B. I Hate 1111&#xff1a;题目 这题目太搞了呀&#xff0c;和dp感觉关系不大&#xff0c;数学题啊首先要知道&#xff0c;11和111能构成后面所有的棍子数。 n a*111b*11;最快做法 //算是规律&#xff1f; #include <bits/stdc.h> using namespace std; int main() {…

建网站哪便宜网上商城网站建设规划

整理了基于BP神经网络的时间序列预测模型matlab代码&#xff0c;包含数据集。采用了四个评价指标R2、MAE、MBE、MAPE对模型的进行评价。BP模型在数据集上表现优异。 代码获取链接&#xff1a;基于BP神经网络的时间序列预测模型matlab代码 训练效果&#xff1a; 训练集数据的R…

微信二次开发个人号api

微信二次开发个人号api 个人微信机器人开发api接口,微信个人号开发API在线接待更高效在线沟通更快速、更有趣 语音回复 通过电脑端语音回复客户,提高效率 文件传输 支持文字、图片、视频等文件上传 快捷回复 公共快捷…

深入解析:神经网络二分类任务详解:前向传播与反向传播的数学计算

深入解析:神经网络二分类任务详解:前向传播与反向传播的数学计算pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "…

课后作业2(动手动脑,课后实验性问题)

1.仔细阅读示例: EnumTest.java,运行它,分析运行结果? 你能得到什么结论?你掌握了枚举类型的基本用法了吗? 枚举是类型安全的常量集合,比 static final int 更安全。 可以使用 switch 语句处理枚举值。 每个枚举…

从零开始构建图注意力网络:GAT算法原理与数值实现详解

图数据在机器学习中的地位越来越重要。社交网络的用户关系、论文引用网络、分子结构,这些都不是传统的表格或序列数据能很好处理的。现实世界中实体之间的连接往往承载着关键信息。 图神经网络(GNN)的出现解决了这个问…

网站开发技术可以做什么工作视频解析网站怎么做的

2022 开放原子全球开源峰会 OpenAnolis 分论坛上&#xff0c;阿里云智能基础软件产品经理张鹏程做了《面向云时代的龙蜥操作系统&#xff0c;应对 CentOS 停服的最佳选择》的主题分享&#xff0c;介绍了操作系统产业迎来新发展格局&#xff0c;龙蜥致力于成为 CentOS 迁移的最佳…

备案ip 查询网站查询网站查询系统上饶做网站最好的公司

基于神经网络的农业病虫害损失预测 【摘 要】鉴于农业病虫害经济损失的预测具有较强的复杂性和非线性特性&#xff0c;设计了一种新型的GRNN预测模型&#xff0c;对农业病虫害经济损失进行预测。该模型基于人工神经网络捕捉非线性变化独特的优越性&#xff0c;在神经网络技术和…

分解原则编写

import java.util.ArrayList; import java.util.List; import java.util.Scanner; import java.time.LocalDate; import java.time.format.DateTimeFormatter; // ManuscriptInformation类 class ManuscriptInformatio…

关于Leetcode 812题的简单思考

关于812题的 \(O(n)\) 算法的简单思考 因为今天的题目很有意思所以特别想跟大家分享一下。 812. 最大三角形面积 一开始我想到了凸包,然后想到凸包后可以采用 \(O(n^2)\) 的渐进算法算出最大面积。但是灵神的回答中提…

招聘网站开发的要求整站seo排名公司

1.下列数据结构中&#xff0c;属于非线性结构的是()。A.循环队列B.带链队列C.二叉树D.带链栈2.下列数据结构中&#xff0c;能够按照“先进后出”原则存取数据的是()。A.循环队列B.栈C.队列D.二叉树3.对于循环队列&#xff0c;下列叙述中正确的是()。A.队头指针是固定不变的B.队…

Laravel5.8 利用 snappyPDF 生成PDF文件

Laravel5.8 利用 snappyPDF 生成PDF文件pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mo…