PX4的无人机飞控应用开发.pdfVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
. PX4/PixHawk 无人机飞控应用开发 1、PX4/Pixhawk 飞控软件架构简介 PX4 是目前最流行的开源飞控板之一。 PX4 的软件系统实际上就是一个 firmware ,其核心 OS 为 NuttX 实时 ARM 系统。 其固件同时附带了一系列工具集、 系统驱动 / 模块与外围软件接口层, 所有这些软件(包括用户自定义的飞控软件)随 OS 内核一起,统一编译为固件形式,然后上传 到飞控板中,从而实现对飞控板的软件配置。 PX4 配套的软件架构主要分为 4 层。理解其软件架构是开发用户自定义飞控应用软件的基础。 a) API 层:这个好理解。 b) 框架层:包含了操作基础飞行控制的默认程序集(节点) c) 系统库:包含了所有的系统库和基本交通控制的函数 d) OS 内核:提供硬件驱动程序、网络、 UAVCAN 和故障安全系统 上述是个面向 PX4 系统实现者的相对具体的软件架构。实际上还有另外一种面向 PX4 自定义飞 控应用开发者的高层软件架构描述, 相对抽象, 但更简单, 就是整个 PX4 的软件从整体上分为 2 层: a) PX4 flight stack :一系列自治无人机自动控制算法的集合 b) PX4 Middleware :一系列针对无人机控制器、传感器等物理设备的驱动及底层通信、调度 等机制的集合 PX4 软件架构中,最有意思的一点在于整个架构的抽象性(多态性)。即,为了最大限度保障飞 控算法代码的重用性, 其将飞控逻辑与具体的底层控制器指令实现进行了解耦合。 一套高层飞控 算法(如 autopilot 、GeoFence 等)在不做显著修改的情况下,能够适用于固定翼、直升机、 多旋翼等多种机型的控制场合,这时候就体现出 PX4 飞控的威力来了:在用户程序写好之后, 如果需要替换无人机机架的话, 仅需简单的修改一下机架配置参数即可, 高层的用户自定义飞控 应用几乎无需修改。 理解上述初衷至关重要。 有很多搞自动化出身、 没太多软件经验的朋友倾向于直接使用底层控制 协议来控制飞控板,但实际上 PX4 架构已经在更高的抽象层面上提供了更好的选择,无论是代 码维护成本、 开发效率、 硬件兼容性都能显著高于前者。 很多支持前者方式的开发者的理由主要 在于高层封装机制效率较低, 而飞控板性能不够, 容易给飞控板造成较大的处理负载, 但实际从 个人感觉上来看,遵循 PX4 的软件架构模式反倒更容易实现较高处理性能,不容易产生控制拥 塞,提升无人机侧系统的并发处理效率。 2 、PX4/Pixhawk 飞行控制协议与逻辑 Word 资料 . Mavlink 是目前最常见的无人机飞控协议之一。 PX4 对 Mavlink 协议提供了良好的原生支持。 该协议既可以用于地面站 (GCS) 对无人机 (UAV) 的控制,也可用于 UAV 对 GCS 的信息反馈。 其飞控场景一般是这样的: a) 手工飞控: GCS - (MavLink) - UAV b) 信息采集: GCS - (Mavlink) - UAV c) 自治飞控: User App - (MavLink) - UAV 也就是说,如果你想实现地面站控制飞行,那么由你的地面站使用 Mavlink 协议,通过射频信 道( 或 wifi etc.) 给无人机发送控制指令就可以了。 如果你想实现无人机自主飞行, 那么就由你自 己写的应用(运行在无人机系统上)使用 Mavlink 协议给无人机发送本地的控制指令就可以了。

文档评论(0)

***** + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档