ArduPilot — ArduPlane架构概述

简介: ArduPilot — ArduPlane架构概述

前言

       最近有着手  Ardupilot 开源代码中 Arduplane 的相关项目,将官方网址关于 Arduplane 的架构介绍(Plane Architecture Overview — Dev documentation)翻译了一下,以供交流学习。

本页试图粗略地展示 ArduPlane 的架构。请注意它不是由 Plane 专家编写的,所以可能有一些不准确的地方。

e377eef4021b40009157bced1b296dec.png

  以上是 ArduPlane 架构的高层图。Plane 与 Copter 和 Rover 之间的一个很大的区别是飞行模式没有被组织到一个单一的文件中(like they are in Copter)或类中(like they are in Rover)。相反,代码路径要经过几个阶段。每个阶段都会根据飞行模式决定它应该做什么。

这些阶段可以在上图中看到,包括:

ahrs_update:调用EKF来消耗最新的传感器数据,并产生一个姿态和位置估算;

read_radio:读取飞行员的输入并计算出适当的姿态或位置目标;

navigate:调用L1和TECS控制器(见下文),为横滚、俯仰和油门控制器转换位置目标;

update_flight_mode:将L1控制器的横滚和俯仰目标复制到 nav_roll_cd 和 nav_pitch_cd 全局变量中;

stabilize:执行低级别的横滚、俯仰和油门控制器;

set_servos:将横滚、俯仰和油门控制器的输出发送到适当的伺服输出。

固定翼控制器

固定翼有2个高级控制器和至少3个低级控制器,如下图所示。


34ff82b2285a4d7985b6ca9b5d06ecf4.png

   L1 控制器将原点和目的地(分别以经纬度表示)转换为横向加速度,使无人机沿原点到目的地的路径水平行驶。

TECS(总能量守恒系统)控制无人机的动能(即速度)和势能(即高度)之间的交换。它的输入是目标速度和高度,它试图通过计算目标油门和俯仰值来达到这些目标,然后将这些值传递给低级俯仰和油门控制器

总结

       以上就是 Arduplane 的代码架构,清晰明了,方便入门使用。





相关文章
|
6月前
|
存储 SQL 关系型数据库
ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
ClickHouse的核心架构包括执行过程和数据存储两部分。执行过程涉及Parser与Interpreter解析SQL,通过Column、DataType、Block、Functions和Storage模块处理数据。Column是内存中列的表示,Field处理单个值,DataType负责序列化和反序列化,Block是内存中表的子集,Block Streams处理数据流。Storage代表表,使用不同的引擎如StorageMergeTree。数据存储基于分片和副本,1个分片由多个副本组成,每个节点只能拥有1个分片。
378 0
ClickHouse(02)ClickHouse架构设计介绍概述与ClickHouse数据分片设计
|
6月前
|
存储 SQL Java
数据库TiDB-01.数据库架构概述
TiDB兼容MySQL 5.7协议,支持水平扩容或者缩容的金融级高可用的云原生分布式数据库。
490 2
数据库TiDB-01.数据库架构概述
|
6月前
|
存储 安全 Java
SpringCloud整体架构概述
SpringCloud整体架构概述
147 0
|
1月前
|
分布式计算 资源调度 Hadoop
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
大数据-80 Spark 简要概述 系统架构 部署模式 与Hadoop MapReduce对比
62 2
|
30天前
|
存储 分布式计算 API
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
大数据-107 Flink 基本概述 适用场景 框架特点 核心组成 生态发展 处理模型 组件架构
75 0
|
11天前
|
存储 监控 Linux
Docker技术架构概述
【10月更文挑战第22天】Docker采用CS架构,Client与Daemon交互,Compose管理多容器应用。
|
6月前
|
存储 运维 关系型数据库
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
2024年最全ceph的功能组件和架构概述(2),Linux运维工程面试问题
|
21天前
|
前端开发 Unix Linux
KVM 架构概述
【10月更文挑战第12天】KVM是基于硬件辅助虚拟化技术的虚拟机监控器,核心依赖于CPU的虚拟化支持如Intel VT和AMD-V。
|
30天前
|
存储 分布式计算 算法
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
大数据-105 Spark GraphX 基本概述 与 架构基础 概念详解 核心数据结构
38 0
|
30天前
|
消息中间件 分布式计算 Kafka
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
大数据-98 Spark 集群 Spark Streaming 基础概述 架构概念 执行流程 优缺点
37 0