闲来无事,翻译 APM 飞控官方文档,方便大家一起学习。
原文地址:点击查看原文地址
Learning the ArduPilot Codebase
学习 ArduPilot 代码库
The ArduPilot code base is quite large (about 700k lines for the core ardupilot git tree) and can be quite intimidating to a new user. This page is meant to give some suggestions on how to come up to speed on the code quickly. It assumes you already are familiar with the key concepts of C++ and the many of the examples currently assume you will be exploring the code on a Linux system.
ArduPilot 代码库非常庞大(核心代码约 700k 行),可能会令初学者望而止步。本页面仅给出一些建议,方便初学者快速上手,假定你已经熟悉C ++的基本概念,并且当前有许多示例你将在Linux系统上浏览代码。
This page and the pages linked below are designed to be used as a tutorial. You should work through each page step by step, trying things for yourself as you go. If you think some important information is missing or could be improved then please open an issue for the wiki and we will try to get to it when we can.
本页以及下述的链接将作为教程,您应该逐步浏览每个页面,并在尝试过程中亲自尝试一下。如果您认为某些重要信息丢失或可以改善,请为Wiki打开一个问题,我们将尽力尝试获取该信息。
Tutorial steps 教程步骤
- Introduction 介绍
- Library Description 库描述
- Library Example Sketches 示例 库
- Sensor Drivers 传感器
- Threading 线程
- UARTs and the Console 串口与控制台
- RC Input and Output 遥控器输入与输出
- Storage and EEPROM management 存储与EEPROM管理
- EKF 扩展卡尔曼
- Copter - Vehicle Code introduction 直升机 - 飞行器代码介绍
- Copter - Attitude Control 直升机 - 高度控制
- Copter - Adding Parameters 直升机 - 增加参数
- Copter - Adding a new flight mode (ver 3.6 and higher) 直升机 - 增加新模式(版本3.6或者更高)
- Copter - Adding a new flight mode (ver 3.5 and lower) 直升机 - 增加新模式(版本3.5或者更低)
- Copter - Scheduling your new code to run intermittently 直升机 - 调度用户新代码
- Copter - Motors Library 直升机 - 电机库
- Copter - PosControl and Navigation 直升机 - 位置控制以及导航
- Copter - Object Avoidance 直升机 - 避障
- Rover - Adding a new drive mode 地面车辆 - 增加新驱动模式
- Rover - L1 navigation controller 地面车辆 - L1 导航控制器
- Plane - Architecture overview 固定翼 - 结构预览
- Adding a new Log message 增加新 log信息
- Adding a new MAVLink message 增加新的 MAVLINK 消息
- Adding a new MAVLink Gimbal 增加新的 MAVLINK 云台