Ardupilot源码框架

2019-12-27  本文已影响0人  不学习不快乐

1. 1 Ardupilot源码框架

Ardupilot源码地址
官网地址

1.1. Ardupilot介绍

库文件分为五个部分:

1.2. 库文件介绍

库文件介绍(位于\libraries目录下),libraries包含了所有需要的库函数头文件等。

文件名 功能介绍
AP_AHRS -姿态估计的库,使用DCM(方向余弦矩阵)或者EKF(卡尔曼滤波)
AP_Common -核心库会被其他库所依赖
AP_Math -各种各样的数学操作的函数,特别是对向量操作比较有用
AC_PID -PID控制库
AP_InertialNav - 惯性导航库,已经将GPS及气压器的数据和加速度计进行了融合
AC_AttitudeControl -姿态控制库
AP_WPNav -路标导航库
AP_Motors -多旋翼和传统直升机混合的电机库,主要是跟电机输出有关的
RC_Channel -将从APM_RC接收到的pwm信号转换成内部单元,例如角度
AP_HAL, AP_HAL_AVR, AP_HAL_PX4 - 硬件抽象层,主要将底层硬件进行抽象。使上层应用拥有统一的接口,使其更容易移植到不同的硬件上,其中AP_HAL目录定义了一个通用的接口,特别是hal.rc_out_write()函数将从 AP_Motors 类中接收的具体PWM转化为特定板子pin脚的输出。其他的目录AP_HAL_XXX针对不同硬件平台进行详细的定义。例如AP_HAL_AVR目录对于AVR平台,AP_HAL_PX4对应PX4平台,AP_HAL_Linux对应Linux平台。
文件名 功能
AP_InertialSensor -读取陀螺仪和加速度的数据,以标准单元(deg/s,m/s)将数据提供给主函数和其他库
AP_RangeFinder -声呐和红外距离传感器接口库
AP_Baro -气压计接口库
AP_GPS -GPS接口库
AP_Compass -三轴磁力计(罗盘)接口库
AP_OpticalFlow -光流传感器接口库
文件名 功能
AP_Mount,AP_Camera, AP_Relay :相机安装控制库,相机快门控制库
AP_Mission : 从eeprom(电可擦只读存储器)存储/读取飞行指令相关库
AP_Buffer :惯性导航时所用到的一个简单的堆栈(FIFO,先进先出)缓冲区
AP_AccelCal、AP_Declination、AP_RCMapper、AP_RPM、AP_RSSI
AP_ADC :Analog to Digital
APM_Control : pitch/roll/yaw controller
DataFlash :flash memory
GCS_Console/GCS_MAVLink :地面站通信、飞行日志

1.3. 主目录文件介绍

多旋翼飞控的所有文件都放在\Ardupilot的目录下。

文件名 功能
Copter.h : 各个头文件的集合,各种飞行模式初始化函数和执行函数的声明,日志和地面站的相关函数声明,自动调参参数的声明。姿态控制中使用到的函数几乎都在该头文件中进行了声明。
Parameters.h : 定义了两个全局参数类,类中包含各种参数的定义
Define.h : 各种宏定义
inertia.h : 从加速度计读取惯性力
ekf_check.cpp : 检测EKF或惯性导航系统的故障触发飞行的警报并帮助采取对策
esc_calibration.cpp : 检查和执行ESC校准的功能
events.cpp : 当故障安全更改时将调用此事件。
log.cpp : 飞行日志
failsafe.cpp : 失控保护
AP_Arming.cpp : 上电BB声、校准时的BB声、电机解锁BB声
fence.cpp : 地理围栏,阻止无人机飞入禁飞区
GCS_Mavlink.cpp : 地面通信站
motor.cpp : 电机BB响,电机解锁
motor_test.cpp : MavLink电机测试
mode.cpp : 飞行模式初始化和切换
mode_acro.cpp : 特技
mode_althold.cpp : 定高
mode_auto.cpp : 自动
mode_autotune.cpp : 自动调参
mode_circle.cpp : 绕圈
mode_drift.cpp : 漂移
mode_flip.cpp : 空翻
mode_guided.cpp : 引导
mode_land.cpp : 着陆
mode_poshold.cpp : 定点
mode_rtl.cpp : 返航
mode_sport.cpp : 运动
mode_stabilize.cpp : 自稳
上一篇 下一篇

猜你喜欢

热点阅读