[pixhawk笔记]3-架构概览

Posted 邵朋院的代码世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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程序也将传感器和状态滤波数据转发给地面站。

以上是关于[pixhawk笔记]3-架构概览的主要内容,如果未能解决你的问题,请参考以下文章

pixhawk原生固件在Windows下环境搭建笔记

[pixhawk笔记]2-飞行模式

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

[pixhawk笔记]7-MAVLink消息机制

[pixhawk笔记]11-Windows下PX4代码查看

pixhawk mc_pos_control.cpp源码解读