[pixhawk笔记]3-架构概览

本文主要内容翻译自:https://dev.px4.io/en/concept/architecture.html

  1. 总体架构:

    PX4代码由两层组成:PX4飞行栈和PX4中间件。其中,前者是一套飞行控制软件,后者是一套通用的机器人中间件,可以支持任意类型的自主机器人。

    PX4代码具有很强的通用性,所有类型的机架(实际上包括船和地面车辆等)可以使用同一套代码库,同时其追求模块化,具有以下特点:

    • 所有的功能都被拆分为可更换的组件
    • 通过异步消息传输来实现通信
    • 系统可以处理多种类型的负载

    处于模块化考虑,这些功能模块最大化的实现代码可重用。

  2. 高级软件框架
    整个代码框架如下图:

    其中每个方框为一个自治的功能模块,箭头表示通过uORB的发布/订阅机制实现的数据连接。
    控制器和混控器(Mixer)和具体的飞机有关,而像Commander和Navigator之类的上层任务规划模块则可以在不同平台之间通用。

  3. 和地面站的通信框架

    飞控和GCS之间的交互由Commander(通用控制指令,例如解锁)和navigator(接收任务指令并转化为低级的导航原语)等“业务逻辑”程序和mavlink程序,mavlink程序接收MAVlink数据包并将其转化为uorb的数据结构。这种显式的隔离机制可以避免MAVlink和系统的深层依赖。mavlink程序也将传感器和状态滤波数据转发给地面站。
时间: 2024-11-06 23:44:22

[pixhawk笔记]3-架构概览的相关文章

VCSA 6.5 HA配置 之一:架构概览

VCSA 6.5 HA配置之一:架构概览 在VMware vSphere环境中vCenter Server的作用尤其重要,虽然在之前的版本中VMware曾经推出过vCenter Heartbeat来实现vCenter Server的高可用,但是该解决方案早就被VMware抛弃,故此很多管理员都对VMware原生的高可用解决方案翘首以盼,终于在VMware vSphere 6.5 这个版本发布的时候推出了vCenter Server Appliance 6.5的高可用架构,注意的是仅支持vCent

[pixhawk笔记]5-uORB消息传递

本文主要内容翻译自官方文档:https://dev.px4.io/en/middleware/uorb.html 在前一篇笔记中使用uORB完成消息传递,实现了一个简单示例程序,本文将对uORB进行系统学习. uORB是一种异步发布(publish)/订阅(subscribe)机制的消息API,该机制用于在线程/进程之间通信.uORB在其他程序启动之前自动启动,因为其他很多程序依赖于他. 使用uorb start命令启动它,可以使用uorb_tests开始单元测试. 加入一个新主题可以在msg/

ONOS架构-概览

这个是阅读https://wiki.onosproject.org/display/ONOS/Architecture+Guide是顺便翻译的,目前断断续续在阅读,今天先贴一部分 概览 基于osgi,架构设计目标: a.代码模块化,可引入具有某种独立性的新功能 b.配置性,功能可在启动/运行期加载卸载 c.子系统和模块之间的清晰边界 d.协议灵活性,不绑定于具体的协议,协议库和实现 a.onos由一系列子项目组成,各自拥有代码树,可独立编译构建.onos代码树层次化组织,利用了maven的层次化

[pixhawk笔记]2-飞行模式

本文翻译自px4官方开发文档:https://dev.px4.io/en/concept/flight_modes.html  ,有不对之处,敬请指正. pixhawk的飞行模式如下: MANUAL(手动模式) 固定翼/车/船 MANUAL(手动模式):飞手控制输入直接到输出混控器 STABILIZED(增稳模式):飞手控制作为俯仰和滚转角度指令和手动的偏航指令(角度or速率?) 多轴 ACRO(特技模式):飞手输入直接到滚转.俯仰和偏航速率指令,油门直接到输出混控器 RATTITUDE(觉得是

Struts2笔记03——架构(转)

原始内容:https://www.tutorialspoint.com/struts_2/basic_mvc_architecture.htm 从一个比较高的层次来看,Struts2是一个pull-MVC(或者MVC2)框架. Struts2的 Model-View-Controller 模式通过以下五个核心组件实现: Actions Interceptors Value Stack / OGNL Results / Result types View technologies Struts2和

3.【SELinux学习笔记】架构

1.LSM框架(Linux Secrity Module) 它是一种轻量级的访问控制框架,适用于多种访问控制模型在它上面以内核可加载模块的形式实现.用户可以选择合适的安全模块加载到Linux内核上.其设计思想,在最少改变内核代码情况下,提供一个能够实现强制访问模块选哟的结构或者接口.LSM框架允许安全模块以插件形式载入内核,而SELinux就是作为一个安全模块载入Linux内核的.如下图: 图1 在LSM框架中,只有当传统Linux访问检查通过之后SELinux才会生效. 2.SELinux L

Python web世界观——web架构概览(适合传统程序员)

传统web server面临的问题 我们知道传统的web server,一个进程打开socket,监听,来了请求生成新的进程(或线程.或阻塞)进行响应,本身还在继续监听.这是看过unix网络编程的大部分人所接触到的网络模型.然而,unix实在太老,网络需求在近些年发生了巨大的变化,最重要的就是对并发性的要求. 并发性的要求的提高,让本机的web server的架构也发生了变化,并且对本机这个词语也发生了不同的需求.因为server的请求可能不是一台机器处理的来的,那么又需要解决的一个问题是多个s

iOS快速开发框架Bee-Framework应用和解析(二) --- Bee framework架构概览

在第二部分里,分享一下Bee Framework架构的看法.如果您下载了Bee Framework, 在/document/developer_manual.pdf有Bee的开发手册.手册里有典型的教程,也有对架构的讲解.本文试图融入个人的理解,解答以下问题: Bee的MVC是如何工作的,核心组件是哪些? Bee的整体架构如何? 除了MVC, Bee提供了哪些常用的工具和服务? 该如何使用Bee开始一个项目? A1:Bee的核心类包括BeeModel, BeeMessage, BeeUIRout

IIS6.0架构概览(翻译)

IIS6.0提供一个重新设计的万维网发布服务(World Wide Web Publishing Service)架构,可以帮助你为你的网站构建更好的性能.可靠.可扩展性(scalability),无论他们运行在一个或多个运行IIS的服务器上. IIS 6.0以两个不同请求处理模式之一运行在服务器,称为应用程序隔离模式.应用程序隔离是应用的分离,它通过进程边界防止一个应用程序或网站影响另一个和减少你为更正应用相关的问题而重启服务所花时间. 在IIS6.0内,对于两种IIS应用程序隔离模式,每个应