转载:Pixhawk源码笔记六:源码预览与APM:Copter程序库

时间:2023-01-01 04:01:58

转自:新浪@WalkAnt

第七部分 源代码预览与APM:Copter程序库

        英文参考:http://dev.ardupilot.com/wiki/apmcopter-code-overview/

        本节来源:http://liung.github.io/blog/apm/2014-08-30-APM-Arducopter代码预览.html

 

        APM::Copter代码主要放在ArduCopter文件夹中,并且和ArduPlaneArduRover使用同样的库文件

        下面这张图展示了从飞行模式到电机输出的调用关系:

转载:Pixhawk源码笔记六:源码预览与APM:Copter程序库
转载:Pixhawk源码笔记六:源码预览与APM:Copter程序库

APM:Copter程序库

        http://dev.ardupilot.com/wiki/apmcopter-programming-libraries/

        http://liung.github.io/blog/apm/2014-08-30-APM-Arducopter相关库介绍.html

 

        这些库文件也同样被ArduPlane和ArduRover所使用。下面将列出一系列高层次的库的说明和它们的函数说明。

1 核心库

  • AP_AHRS:采用DCM(方向余弦矩阵方法)或EKF(扩展卡尔曼滤波方法)预估飞行器姿态。
  • AP_Common:所有执行文件(sketch格式,arduino IDE的文件)和其他库都需要的基础核心库。
  • AP_Math:包含了许多数学函数,特别对于矢量运算
  • AC_PID:PID控制器库
  • AP_InertialNav:扩展带有gps和气压计数据的惯性导航库
  • AC_AttitudeControl:姿态控制相关库
  • AP_WPNav:航点相关的导航库
  • AP_Motors:多旋翼和传统直升机混合的电机库
  • RC_Channel:更多的关于从APM_RC的PWM输入/输出数据转换到内部通用单位的库,比如角度
  • AP_HALAP_HAL_AVRAP_HAL_PX4:硬件抽象层库,提供给其他高级控制代码一致的接口,而不必担心底层不同的硬件。

2 传感器相关库

3 其他库

  • AP_MountAP_CameraAP_Relay:相机安装控制库,相机快门控制库
  • AP_Mission: 从eeprom(电可擦只读存储器)存储/读取飞行指令相关库
  • AP_Buffer:惯性导航时所用到的一个简单的堆栈(FIFO,先进先出)缓冲区

        关于库的导航图,如下:

转载:Pixhawk源码笔记六:源码预览与APM:Copter程序库