ArduPilot代码解析之十 —Copter飞行模式和状态机

ArduPilot Tutorial(PDF版)及ArduPilot飞行模式介绍 ArduPilot官方Tutorial PDF(2017.2): http://download.youkuaiyun.com/download/xiaoshuai537/10262086ArduPilot中有14种常用的模式:依赖GPS的模式有:Auto、Circle、Drift、Follow Me、Guided、Loiter、PosHold、RTL和Throw;不依赖GPS的有:Acro、Alt Hold... 阅读详情

目的和范围

本文档描述了ArduCopter的飞行模式架构和状态机实现。它涵盖了飞行模式在控制回路中的定义、注册、切换和执行方式。这包括基Mode类、各个模式的实现、模式切换逻辑以及复杂模式(例如自动和引导模式)中的子模式状态机。


飞行模式架构

ArduCopter 采用分层飞行模式系统,每种模式都继承自一个公共Mode基类,并实现各自特定的行为。该系统支持约 30 种不同的飞行模式,每种模式都根据飞行员输入、GPS、传感器和任务指令以不同的方式控制飞行器。

模式类层次结构


模式枚举和注册

模式数

所有飞行模式均由枚举中定义的唯一编号标识Mode::Number:

众数用于:

  • 参数存储(FLTMODE1通过FLTMODE6)
  • MAVLink 通信(自定义模式字段)
  • 模式切换命令
  • 日志记录和遥测

模式注册和查找

每种模式都在类中实例化为一个单例对象Copter:

模式实例 类型 目的
mode_stabilize ModeStabilize 手动稳定飞行
mode_acro ModeAcro 杂技速率控制
mode_althold ModeAltHold 高度保持
mode_auto ModeAuto 自主任务
mode_guided ModeGuided GCS/脚本控制
mode_loiter ModeLoiter GPS定位保持
mode_rtl ModeRTL 返回启动页面
... ... ...

该mode_from_mode_num()函数将模式编号映射到模式对象:


模式切换状态机

模式切换逻辑已实现,Copter::set_mode()并且在允许模式更改之前包含多个验证检查。

模式转换流程

模式更改验证检查

模式切换期间(布防时)将执行以下检查:

查看 健康)状况 受影响的模式
节气门位置 油门必须低 手动油门模式
GPS定位 需要有效职位 requires_GPS() == true
海拔估算 所需有效海拔高度 非手动油门模式
转子运转 转子必须运转 仅限直升机
围栏恢复
ArduCopter——ArduPilot——Notch Filter(陷波滤波器) 版权声明:本文为博主原创博文,未经允许不得转载,若要转载,请说明出处并给出博文链接 作为一名通信、电子信息、自动化相关专业的学生或者从业人员,一定对信号处理这门学科非常熟悉,自然就或多或少接触过信号采集、信号噪声、信号滤波等相关专业词汇,本篇博客是想记录和学习一下ArduPilot团队设计的Notch Filter(陷波滤波器)。 百度百科说:“陷波滤波器指的是一... 阅读详情

相关推荐

ArduPilot飞控系统代码解读及架构分析

ArduPilot飞控系统是一个复杂而强大的系统,通过模块化设计和分层架构,实现了灵活的飞行控制功能。模块化设计: 各个功能模块相对独立,便于维护和扩展多种飞行模式: 满足不同的飞行需求强大的控制算法: 实现稳定的姿态和位置控制完善的安全机制: 保障飞行安全丰富的配置选项: 通过参数系统实现高度可定制性这种架构使ArduPilot能够适应从简单的多旋翼到复杂的自主飞行器等各种应用场景。类结构分析:Mode基类 (mode.h/mode.cpp)

fengforky的专栏 3018

ardupilot框架核心解析:从源码结构到ArduSub二次开发实战

开源飞控系统是嵌入式机器人领域的重要基石,其框架设计直接影响上层应用的开发效率与可维护性。ardupilot作为成熟的开源飞控生态,通过模块化架构将硬件抽象、传感器驱动、状态估计、通信协议等核心能力解耦,形成高内聚、低耦合的复用体系。理解其顶层目录组织、libraries工具箱模式以及AP_Scheduler调度机制,是掌握飞控系统运行原理的关键。MAVLink协议作为地面站与载具交互的数据管道,与AP_Mission任务调度紧密配合,构成完整的控制链路。基于SITL仿真环境,开发者可快速验证逻辑并熟悉编译

weixin_34380948的博客 447

Ardupilot飞控实战指南:从PID调参到故障诊断

Ardupilot 是基于 NuttX 的开源飞控系统,本质是面向 Pixhawk 硬件的嵌入式实时控制框架,其核心在于三层闭环控制架构(位置环→速度环→角速度环)与多源仲裁式故障保护机制。理解 PID 参数(kP/kI/kD/kFF)的物理意义及整定边界,是实现稳定悬停、抗风飞行与精准导航的技术基础;而日志分析的关键不在于检索 ERROR 字段,而是通过 IMU 抖动率、BARO 温漂斜率、GPS HDOP 趋势等信号预判系统退化。本文聚焦 Ardupilot 实战场景——涵盖 Ubuntu 20.04+

weixin_34013044的博客 397

Pixhawk飞控演进史:从APM到现代开源无人机架构

Pixhawk作为当前主流开源无人机硬件标准,其技术演进根植于早期APM(ArduPilot Mega)飞控系统的实践积累。理解APM与Pixhawk的继承与断裂关系,有助于把握飞控系统中固件架构、硬件抽象层(HAL)、EKF状态估计等核心原理的技术演化逻辑。这一演进不仅提升了多传感器融合精度与飞行安全性,更推动了QGroundControl、MAVLink协议栈及PX4/ArduPilot双生态的工程落地。在农业植保、巡检测绘、教育开发等场景中,掌握架构变迁脉络,能有效规避兼容性误判与固件选型风险。本文聚

weixin_30814329的博客 354

ArduCopter3.2 可用arduino编译,libraries全的

ArduCopter3.2 可用arduino编译,libraries全的 可用 aduino 1.0编译

保姆级教程:用YOLOv5s训练PCB缺陷检测模型(附北大公开数据集)

本文提供了一份基于YOLOv5s的PCB缺陷检测模型从零开始的完整实战教程。详细解析了如何使用北大公开数据集,涵盖环境搭建、数据处理、模型训练、性能评估及优化部署全流程,并针对工业场景中常见的类别不均衡问题给出了具体解决方案,旨在帮助开发者快速构建高精度的自动化质检系统。

weixin_28285943的博客 306

5G R18标准:AI/ML如何重塑空口优化与网络架构

人工智能与机器学习正逐步成为通信网络优化的核心技术。其核心原理在于通过数据驱动模型,从海量网络数据中学习信道变化、用户行为等统计规律,替代传统的基于固定规则的优化方法。这一技术范式能显著提升网络性能与效率,尤其在空口资源管理、干扰协调和能耗控制等场景中价值突出。在5G Advanced(R18)标准化框架下,AI/ML被系统性地引入空口设计,聚焦于信道状态信息反馈增强、波束管理与预测等关键用例。通过定义网络侧AI、终端侧AI及联合学习的标准化接口与流程,R18旨在实现跨厂商设备的智能协同,推动无线网络向自适

weixin_35671843的博客 242

2024最新超详细无痛安装PyTorch,包括下载地址、环境配置与各种避坑指南

PyTorch更新很快,2024最新下载安装经验贴,包括anaconda+CUDA+cuDNN+PyTorch四部分的下载和安装。文章详细介绍了下载地址、环境配置、虚拟环境建立的问题,还温馨提示了各种闭坑指南。有需要的友友快过来康康!

qq_43596278的博客 11万+

了解随机振动疲劳分析中 Ansys nCode DesignLife 的平均应力校正

通过选择静态环境,我们可以将其结果视为疲劳计算的平均应力,如图 3 所示,因此从静态偏移载荷工况中提取的平均应力用于转移预测雨流计数中所有循环的平均值。您可以通过观看下面的教学视频获得宝贵的见解,该视频将指导您完成利用 Ansys nCode DesignLife 分析平均应力对随机振动载荷下结构的影响的过程。它基于 R 比率或平均应力水平。另一方面,平均应力校正可以帮助消除平均应力的负面影响,提高结果的保真度。Ansys nCode 提供先进的平均应力校正技术,使工程师能够考虑平均应力对疲劳寿命的影响。

jkh920184196的博客 1518

GD32F470 DSP库移植避坑指南:从CMSIS版本冲突到AC6工程配置

本文详细解析了在GD32F470平台上移植CMSIS-DSP库的完整流程与关键避坑点。针对CMSIS版本冲突、AC6编译器下的浮点ABI配置、DSP库源文件添加等核心难题,提供了经过验证的解决方案,帮助开发者高效完成移植,确保硬件FPU正常工作并优化性能。

data3的博客 529

全面解析 SAP 事务码 LTMOM 的应用与实践

综上所述,事务码 LTMOM 是 SAP 系统中不可或缺的迁移对象维护工具,它不仅提供了对数据迁移对象的精细配置功能,还通过灵活的数据转换规则与异常监控机制,为企业数据从 SAP ERP 向 SAP S/4HANA 的迁移提供了坚实保障。在数据迁移过程中,并非所有的迁移对象都需要同时启用。业内专家普遍认为,未来的系统升级与数据迁移将更注重业务需求的动态变化与数据实时性的要求,而 LTMOM 作为核心工具,其在流程自动化、数据智能校验以及跨系统数据联动方面的能力,将直接影响企业整体数字化转型的成败。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 1003

vs2017配置liblas库+测试代码

之前已经配置好pcl(vs2017配置pcl),可以单独配置liblas,也可以在原有pcl属性表的基础上继续配置

孙悟空 4020

矢量网络分析仪校准:原理、方法与系统适配性

矢量网络分析仪(VNA)校准是射频测量的关键环节,通过误差建模(12项误差项)和标准件测量,可将系统不确定度从±5dB降至±0.1dB以下。主流校准方法包括SOLT(适用于同轴系统)和TRL(适用于波导系统),二者在标准件、误差重点及频率上限等方面存在显著差异。随着6G与量子通信的发展,动态实时校准将成为新趋势。工程师需根据传输结构、频率范围及精度需求选择合适方法,确保测量精度。

u014344410的博客 262

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

上一篇: ArduPilot代码解析之九 — ArduCopter(多旋翼飞行器)
下一篇: 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、付费专栏及课程。

余额充值