前言
ArduPilot 的代码库相当大(核心的 ardupilot git 树大约有 700k 行),对于一个新用户来说,可能是相当可怕的。本页旨在提供一些关于如何快速掌握代码的建议。
它假设您已经熟悉了 C++ 的关键概念,并且假设当前您将在 Linux 系统上探索代码的许多示例。
本页和下面链接的页面旨在作为一个教程使用。
您应该逐步浏览每个页面,边看边自己尝试。如果您认为某些重要信息被遗漏或可以改进,请在维基上开启一个问题( open an issue for the wiki),我们会尽可能地解决它。
1 教程步骤
- Introduction
- Library Description
- Library Example Sketches
- Sensor Drivers
- Threading
- UARTs and the Console
- RC Input and Output
- Storage and EEPROM management
- Filesystems
- EKF
- Copter - Vehicle Code introduction
- Copter - Attitude Control
- Copter - Adding Parameters
- Copter - Adding a new flight mode
- Copter - Scheduling your new code to run intermittently
- Copter - Motors Library
- Copter - PosControl and Navigation
- Copter - Object Avoidance
- Copter - Adding Custom Attitude Controller
- Rover - Adding a new drive mode
- Rover - L1 navigation controller
- Plane - Architecture overview
- Adding a new Log message
!Note
目前 ArduPilot 中有五种飞行器(Copter、Plane、Rover、Sub 和 Antenna Tracker),虽然不同类型的飞行器之间有很多共同的元素,但它们各自不同。目前,我们只对 Copter 的代码结构进行了详细描述。
2 其他教程
虽然严格来说,这不是 ArduPilot 的一部分,但这个教程也可能是有用的。