PX4从放弃到精通(四):PX4架构

文章目录

  • 前言
  • ==**[无人机硬件,提供全程指导](https://item.taobao.com/item.htm?spm=a1z10.1-c.w137644-23632941727.26.118775c2oUPAnL&id=688860713104)**==
  • 一、PX4整体架构
  • 二、uORB
  • 三、飞行控制栈
  • 四、Nuttx操作系统
  • 五、MAVLINK协议

前言

**无人机硬件,提供全程指导**

一、PX4整体架构

PX4 由两个主要部分组成:一是飞行控制栈(flight stack) ,该部分主要包括状态解算和飞行控制系统;另一个是中间件,该部分是一个通用的机器人应用层,可支持任意类型的自主机器人,主要负责机器人的内部/外部通讯和硬件整合,包含各种硬件驱动、uORB(Micro Object Request Broker 微对象请求代理)通信机制、MAVLINK协议等。如下图
PX4从放弃到精通(四):PX4架构_第1张图片

二、uORB

其中uORB是PX4中进程间通信的重要机制,它是一种异步的消息传递 API,消息的供给者叫做 publisher,它可以发布一个消息主题(topic),消息的获取者叫做 Subscriber,进行信息交换的通道被称为 broker。publisher在发布消息前需要创建一个信息源。所有的进程都可以订阅/发布主题,并且会收到uORB 关于主题更新的通知。uORB 进程间通信过程如下图所示:
在这里插入图片描述

三、飞行控制栈

飞行堆栈是自主无人机制导、导航和控制算法的集合。它包括固定翼、多旋翼和垂直起降机身的控制器以及姿态和位置估计器。
下图显示了flight stack构建块的概述。它包含从传感器、RC输入和自主飞行控制(导航器)到电机或伺服控制(执行器)的完整通道。

PX4从放弃到精通(四):PX4架构_第2张图片

四、Nuttx操作系统

NuttX是在飞行控制板上运行PX4的主要RTOS。它是开源的(BSD许可),重量轻,效率高,非常稳定。模块作为任务执行:它们有自己的文件描述符列表,但它们共享一个地址空间。任务仍然可以启动共享文件描述符列表的一个或多个线程。每个任务/线程都有一个固定大小的堆栈,并且有一个定期任务检查所有堆栈是否有足够的可用空间。

五、MAVLINK协议

MAVLink是一种二进制遥测协议,专为资源受限系统和带宽受限链路设计。MAVLink主要有v1.0和v2.0两个版本,向后兼容(v2.0实现可以解析和发送v1.0数据包)。目前新版的PX4固件都是采用的2.0版本的协议,MAVLink2.0数据帧格式如下图
PX4从放弃到精通(四):PX4架构_第3张图片

你可能感兴趣的:(PX4从放弃到精通,架构)