ArduPilot/APM源码学习笔记(一)

最近开始学习ArduPilot/APM飞控的源码, 源码托管在github上。

源码链接:https://github.com/diydrones/ardupilot

飞控主页:http://ardupilot.com/;

飞控的开发者官网网址为:http://dev.ardupilot.com/。

学习源码主要在开发者(developer)网页,官方提供了较为详细的代码编译和源码学习的教程,非常详细。

我这里主要是为了记录一下学习的东西,以便以后参考。

源码基本结构分为了5个部分:

  • vehicle directories
  • AP_HAL
  • libraries
  • tools directories
  • external support code
vehicle directories主要是目前支持的4中设备的目录包括plane、helicopter/multicopter、rover和AntennaTracker。

AP_HAL是硬件抽象层,不同硬件平台通过该层提供统一的接口。

libraries提供了一系列的库文件,内容比较多,类型也比较广。

tools directories提供了一些其他库支持,包括bootloader,demo等等。

external support code主要是一些平台需要的额外代码,包括嵌入式系统和特有的驱动等。


在libraries目录下的各个设备中,有些会提供一个example目录,里边提供了一些针对该设备的测试文件,可以编译后单独测试该设备。同时也可以通过例程学习该设备相关函数和接口的使用方法。

在apm飞控上,系统不支持多线程,在px4和Linux平台设备上可以支持多线程,具体过程有待学习,涉及到了操作系统的知识。

在工程设计中,开发者采用5个uart分别实现不同的作用。A-E分别为终端、第一个GPS,第一个数传,第二个数传,第二个GPS。

RCin和RCout

  • PPMSum – on PX4, Pixhawk, Linux and APM2
  • SBUS – on PX4, Pixhawk and Linux
  • Spektrum/DSM – on PX4, Pixhawk and Linux
  • PWM – on APM1 and APM2
  • RC Override (MAVLink) – all boards
RCout默认为50Hz,也可通过编程提高频率。

提供了几种存储管理

  • the AP_HAL::Storage object, accessed as hal.storage
  • the StorageManager library to give a higher level abstraction layer on hal.storage
  • DataFlash for storing to an on-board logging area
  • Posix IO functions to traditional filesystems (for example VFAT on a microSD card), on boards that support it
现在只是大概看了源码的整体介绍,许多概念知其然不知其所以然,以后会不断深入介绍。




  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值