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

ArduPilot 概述

目的和范围

ArduPilot 是一款开源自动驾驶软件系统,旨在控制包括多旋翼飞行器、固定翼飞机、地面车辆、潜艇和天线跟踪器在内的无人驾驶车辆。本文档提供了 ArduPilot 代码库的高级架构概述,重点介绍支撑所有车辆类型的基本系统组织、组件关系和设计模式。

本概述涵盖以下内容:

  • 模块化架构将车辆专用应用程序与共享库分离
  • 继承层次结构和基类使得代码能够在不同车辆类型之间重用。
  • 核心子系统包括控制、导航、通信和安全系统
  • 构建流程和测试基础设施

有关各个子系统的具体详细信息,后续会陆续推出。

高级系统架构

ArduPilot 由三个主要层组成:车辆应用程序、共享库和开发基础设施。特定于车辆的应用程序(ArduCopter、ArduPlane 等)继承自一个通用基类,并使用一组共享库来实现控制算法、传感器融合、通信协议和安全系统。

系统组织

图 1:ArduPilot 系统架构 - 车辆应用程序继承自 AP_Vehicle 并使用共享的控制、传感器、通信和安全库


车辆类别层级

所有车辆类型都继承自基AP_Vehicle类,该基类提供通用功能,包括参数系统、调度器、串行管理和 HAL(硬件抽象层)回调。车辆特定的实现会重写虚方法来提供自定义行为。

图 2:车辆继承层次结构 - 所有车辆均继承自 AP_Vehicle 并实现车辆特定的飞行模式

该类Copter(定义于ArduCopter/Copter.h181包含对所有主要子系统的引用:

  • flightmode- 当前活动模式(指向模式对象的指针)
  • attitude_control- 姿态控制器实例
  • pos_control- 位置控制器实例
  • wp_nav- 航点导航控制器
  • motors- 电机混合和输出
  • ahrs姿态和航向参考系统

核心执行模型

ArduPilot 使用协作式多任务调度器,以指定的速率执行任务。主执行流程遵循 HAL 回调模式,setup()在启动时调用一次,之后loop()持续调用。

主循环执行

图 3:主要执行流程 - 基于调度器的协作式多任务处理,包含快速和慢速循环任务

调度程序任务表定义如下:ArduCopter/Copter.cpp113-265使用SCHED_TASK宏。快速循环任务以主循环速率(通常为 400Hz)运行,而较慢的任务以较低速率运行,以分散 CPU 负载。

飞行模式架构

http://www.jsqmd.com/news/338284/

相关文章:

  • Java中基于角色的访问控制(RBAC)扩展:增加数据权限维度的实践与思考
  • 香港留学中介测评:哪家与港校关系最铁 衔接最顺畅? - 博客湾
  • 2026年评价高的出口变压器公司推荐:SCB12节能型干式电力变压器、S11油浸式铜芯变压器、S13型油浸式电力变压器选择指南 - 优质品牌商家
  • 蘑菇可食用性分类识别_YOLO11分割模型实现与优化_1
  • 大昌华嘉|抗老不烂脸的维A衍生视黄醇亚油酸酯 - 品牌排行榜
  • 香港留学中介测评:哪家文书个性化最强 拒绝模板化? - 博客湾
  • 合肥三十六行 (镇江) 分公司:四大平台领衔 镇江团购代运营增长引擎 - 野榜数据排行
  • 香港留学中介测评:哪家申请细节处理最到位 零疏漏? - 博客湾
  • 2026上海留学中介档次比拼:哪家格调高端实力硬? - 博客湾
  • 拒绝通用AI踩坑!飞算JavaAI,做Java专属“专科医生”,修复不玩虚的
  • 香港留学中介测评:哪家港五录取榜单亮眼实力过硬? - 博客湾
  • 2026 深度测评:9 款公众号排版软件哪个好用?微信编辑器工具对比差异一表懂 - peipei33
  • 为什么前端需要做优化?
  • Java新手救命!飞算JavaAI,告别报错焦虑,从“不会写”到“写规范”
  • 知识图谱的智能跃迁:大模型环境下的架构革命
  • 上海留学中介服务规范标准:哪家流程最清晰不出错? - 博客湾
  • 【51单片机】串口通讯从入门到精通:原理拆解 + 参数详解 + 51 单片机实战指南
  • AI Agent必备干货:MCP与Skill的终极对比,彻底讲清楚,建议收藏!
  • 免费且完全开源的金融平台,金融数据集软件openbb
  • 国内外知名限流孔板生产厂家top3大比拼 - 品牌推荐大师
  • 实力强的广州太赫兹足疗仪哪个机构好
  • AI产品经理破局之道:5大提问框架,让业务经验变AI燃料,建议收藏
  • 微泄漏密封测试仪选购指南与国内品牌排行榜:从真空衰减法到正/负压密封仪 - 品牌推荐大师
  • MCP和FastMCP的使用
  • 上海留学中介学生真实评价:哪家被上海学子夸得最多? - 博客湾
  • 完整教程:为突破上限我果断转用VMware ESXI7.0,使用后感觉ESXI7.0真的很香!(虚拟机使用进级篇)
  • 深入解析:C++的第十三天笔记
  • Java中的代码块
  • 25. 屏幕像素和纹理像素不匹配
  • 端侧识物+离线翻译轻量化模型选型表