ArduPilot代码解析之六 — GPS和位置传感

ArduPilot第5章 GPS解析 本文介绍如何在Ardupilot框架下使用串口以上就是今天要讲的内容,本文仅仅简单介绍了Ardupilot的串口解析相关内容。 阅读详情

本文档介绍了ArduPilot的GPS子系统,该子系统可提供来自各种GPS接收器的位置、速度和时间信息。该系统支持多个GPS接收器并发连接、自动驾驶员检测、RTK校正和传感器数据融合。

有关使用 GPS 数据进行传感器融合和位置估计的信息,请参阅“姿态和位置控制”部分。有关与 GPS 相关的布防检查,请参阅“布防和安全系统”部分。

目的和范围

GPS子系统(AP_GPS)管理多个GPS接收机,自动检测GPS类型,解析协议特定的消息,并提供统一的位置和速度数据接口。该系统支持串行、CAN和网络型GPS接收机,精度等级多样,包括标准GPS、DGPS和RTK固定/浮点定位解决方案。

主要能力:

  • 支持 10 多种 GPS 接收器类型(u-blox、Trimble、Septentrio、DroneCAN 等)
  • 自动驱动程序检测和波特率配置
  • 多接收器操作,具备自动故障转移或混合功能
  • RTK校正可达到厘米级精度
  • 支持基于 GPS 的航向的移动基线
  • 与AHRS集成以进行位置估计

系统架构

GPS系统架构:该类AP_GPS管理多个GPS实例,每个实例都有自己的后端驱动程序和状态。后端解析特定协议的消息并更新其关联的GPS_State结构。系统可以将多个GPS接收器混合到一个虚拟实例中,以提高定位精度。

GPS后端架构

所有 GPS 驱动程序都继承自AP_GPS_Backend,它为状态管理、数据验证和与 GPS 子系统的集成提供了通用功能。

后端类层次结构:每个 GPS 驱动程序都实现了read()解析传入数据并更新相关数据的方法GPS_State。后端基类提供了用于速度计算、时间戳管理和数据验证的辅助函数。

GPS检测与初始化

GPS检测和初始化流程:启动AP_GPS::init()时,系统查找配置用于GPS的UART端口。update()如果未检测到驱动程序,系统将循环切换波特率并发送初始化数据包,分析响应字节以识别GPS类型。一旦检测到GPS类型,系统将实例化相应的后端驱动程序。

支持的GPS类型

该系统通过特定协议的后端驱动程序支持多种GPS接收器类型:

GPS类型 后端类 协议 特征 配置
u-blox M8/M9/M10 AP_GPS_UBLOX UBX二进制文件 RTK、双天线、移动基线 通过 UBX 消息自动配置
特林布尔 AP_GPS_GSOF GSOF 二进制文件 RTK,高速率 COM端口选择
北城 AP_GPS_SBF
ArduPilot罗盘与GPS配置完整示例 深入讲解ArduPilot中罗盘与GPS的配置流程,帮助用户提升飞行器导航精度。结合ardupilot实际应用场景,解析常见问题与参数调优方法。 阅读详情

相关推荐

手把手教你用光流传感器实现Ardupilot无GPS悬停:从代码层看EKF3数据融合逻辑

本文深入解析了如何利用光流传感器实现Ardupilot无人机在无GPS环境下的稳定悬停。通过逐层剖析EKF3扩展卡尔曼滤波器的代码逻辑,详细阐述了从数据采集、辅助模式决策到核心融合函数FuseOptFlow的完整流程,并提供了关键的参数调优与实战调试指南,帮助开发者从根本上理解和解决室内定位与悬停漂移问题。

blockchain9miner的博客 974

ArduPilot开源代码之EKF3多传感器冗余机制解析

本文深入解析了ArduPilot开源代码中的EKF3多传感器冗余机制,详细介绍了其并行计算、动态选举和无缝切换的设计理念与实现方法。通过硬件映射关系、核心算法流程和传感器故障检测逻辑的剖析,展示了EKF3在提升飞行器安全性和可靠性方面的卓越表现,特别适合无人机开发者和自动驾驶系统研究者参考。

weixin_29184371的博客 429

GPS与飞控的完美结合:ArduPilot在F450上的高级配置技巧

本文详细介绍了如何在F450无人机上实现ArduPilot飞控与GPS模块的高级配置与调优。从硬件选型到软件参数设置,再到信号质量提升和故障排除,全面解析了提升飞行精度和稳定性的实用技巧,特别适合DIY无人机爱好者和技术开发者。

weixin_29202687的博客 321

ardupilot GPS ublox协议学习

本节主要记录自己学习ardupilot 中GPS ublox协议的过程,欢迎批评指正。飞控中常用的协议包含:NMEA ,UBLOX,NOVAX协议说明:本资料大部分来自UBLOX官网数据手册:M8N协议手册u-blox芯片是瑞士U- blox公司研发的一款芯片,输出数据可配置为以下三种协议,其中u-blox接收器支持u-blox专有协议与主机通信。本协议具有以下主要功能:基本UBX框架的结构如下图所示。结构类型框架到此结束。1.值的排列顺序使结构打包不成问题。这意味着2字节值应从偏移量开始,偏移量为2的倍数

陌城烟雨 2654

ardupilot开发 --- gps,rtk,gnss定位技术 篇

ardupilot开发 --- gps,rtk,gnss定位技术 篇

记录老板的每次pua,分享领导每天的毒鸡汤... 564

ardupilot GPS代码分析

目录 文章目录目录摘要1.GPS信息简介2.GPS传感器初始化3.更新GPS数据1. gps.update();1.update_instance(i); //更新GPS实例的个数1.实例化选择配置不同的GPS2. bool result = drivers[instance]->read(); //读取数据2. calc_blended_state(); 摘要 本节主要学习ardu...

陌城烟雨 3327

ardupilot.zip_ArduPilot GPS设置_apm车_apm遥控车_ardupilot_frsky

使用apm板驱动电机,自带gps导航和遥控车浪航行的功能

基准电压 + 运放 + 低边MOS恒流源控制原理

因为恒流源强制 Iout不变,而 Vin​ 增加时,负载压降 Iout⋅Rload不变,多余的电压只能由MOS管的 VDS承担,因此 VDS必然增加。在饱和区,MOS 管的 ID 仅由 VGS决定,与 VDS 无关,这样,负载变化时,VDS可自由调整以维持 Iout恒定。当 Vin​ 小到无法满足 VDS>VGS−Vth时,MOS管进入线性区,Iout 会随 Vin​ 下降而减小,恒流失效。由于 Vref和 Rsense未变,Iout无需调整,运放无需动作,OUT保持不变,Iout恒定。

weixin_50643237的博客 2651

RISC-V内核移植实战:从零开始手把手实现RT-Thread上下文切换(附GD32VF103代码解析)

本文详细解析了在RISC-V架构上移植RT-Thread实时操作系统的核心步骤,重点聚焦于上下文切换机制的实现。通过对比ARM Cortex-M与RISC-V在中断处理和寄存器管理上的关键差异,并以GD32VF103开发板为例,手把手指导开发者完成libcpu抽象层适配、线程栈初始化以及三种上下文切换方式的代码编写与调试,为嵌入式开发者从ARM转向RISC-V平台提供了实战指南。

fern8的博客 739

18650电池组流体直冷热管理仿真:COMSOL多物理场耦合建模路线与实战策略

在动力电池与储能系统的热管理设计中,多物理场耦合仿真已成为平衡性能与成本的关键工具。液冷方案的换热极限促使行业转向制冷剂直冷技术,而两相流与电池产热的强耦合特性,使得基于COMSOL的数值建模成为评估系统温升与流动分配的重要手段。工程实践中,电化学-热-流场全耦合模型与集总电池-流场简化模型各有适用场景,前者揭示电池内部微观机理,后者则以高计算效率支撑包级方案迭代。通过合理简化几何、标定内阻与熵热系数、设置等效换热边界,仿真能够准确预测直冷系统在快充或大倍率放电下的温度均匀性与压降特性,从而指导流道优化与制

weixin_33585822的博客 313

从平衡车到寻迹小车:IMU963RA九轴陀螺仪实战避坑与四元数融合指南

本文详细解析了IMU963RA九轴陀螺仪在机器人姿态控制中的应用,重点探讨了从六轴升级到九轴系统的技术路径及四元数融合算法。通过实战案例,揭示了如何利用地磁计补偿陀螺积分漂移,并提供硬件集成、传感器校准及算法实现的完整解决方案,有效将8小时漂移控制在2度以内。

weixin_27219587的博客 253

IoT 平台架构全景图:从设备到 AI 的完整技术体系深度解析

随着物联网设备规模进入百万级时代,IoT 平台架构已经从简单的设备接入系统演变为完整的数据平台。本文从系统架构师视角,深度解析 IoT 平台的完整技术体系,包括设备接入、MQTT 通信、消息流平台、数据平台与 AI 决策系统,并结合主流云平台实践,构建从设备到 AI 的完整 AIoT 架构认知。

moton2017的博客 855

UDS诊断服务基础详解之二19服务

本文主要介绍UDS统一诊断服务的19 01服务,包含状态位和故障码的解析以及19 01服务的具体说明

车载网络小D的博客 1万+

复现论文《孤岛微电网环境下基于物理模型引导的深度强化学习VSG频率控制方法》

本文提出了一种结合物理模型与深度强化学习的孤岛微电网VSG频率控制方法。通过建立VSG小信号模型并设计可变系数控制器,将物理知识融入深度强化学习框架,解决了高维参数和机组耦合带来的控制难题。复现代码实现了三个核心组件:VSGSmallSignalModel建模VSG动态特性,VariableCoefficientController实现参数自适应调节,PhysicsGuidedDRL整合DQN算法与物理模型引导的奖励机制。该方法通过模型驱动与数据驱动的优势互补,提升了频率控制性能,其中物理模型既作为先验知识

huanghm88的专栏 127

【FPGA教程案例100】深度学习1——基于CNN卷积神经网络的手写数字识别纯Verilog实现,使用mnist手写数字数据库

MNIST 数据库有一个 60,000 示例的训练集,还有一个 10,000 示例的测试集。这些数字已在大小方面规范化,在固定大小的图像中居中。如下图所示:我们任意选择0~9是个数字,将其转化为数字:0_0.txt1_0.txt2_0.txt3_0.txt4_0.txt5_0.txt6_0.txt7_0.txt8_0.txt9_0.txt。

FPGA/MATLAB学习教程/源码/项目合作开发 7823

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

上一篇: ArduPilot代码解析之五 — 无线电控制(RC)输入
下一篇: ArduPilot代码解析之七 — 自动调谐系统
timmy-uav
博客等级 码龄26年 526粉丝 104原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

timmy-uav

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值