归档:高级配置设置

APM 中几乎所有用户可修改的设置都可以通过 MAVLink 在地面站中进行配置。但是,如果您出于任何原因想要更改默认设置,可以通过修改 APM_Config.h 文件,然后在 Arduino 中编译和加载代码来实现。由于我们是在编辑计算机软件,因此需要使用计算机语言,这可以在 APM_Config.h 文件的 "声明 "中实现。

要更改默认值或打开某个功能,请将下面的相关行(根据需要保留或更改其值)粘贴到APM_Config.h 文件,然后将代码上传到 APM 板。您必须删除 // 排在前面,Arduino 才能识别它; // 意为 "评论"。

如果您有一块 APM1280 电路板,但发现代码太大,无法编译并加载到 Arduino 中,那么您需要关闭一些占用内存的功能。相关指南如下 这里.

避免一次性更改过多选项;边做边测试每次更改的效果。

抵制拷贝整个 APM_Config.h.reference 文件的诱惑--有效选项集可能会随着软件的发展而改变,最好将你的更改分开。不要编辑 config.h 头文件;该文件为 APM_Config.h 中未调整的选项设置默认值,而且需要与 APM 代码的其他部分保持同步。

这是 APM_Config.h.reference 文件的副本,供参考--请注意,您 Sketchbook 中的版本可能已在此副本中更新。

//
// 示例和参考 ArduPilot Mega 配置文件
// =======================================================
//
// 该文件包含配置选项的文档和示例
// 受 ArduPilot Mega 软件支持。
//
// 这些选项大多是可选的。您应该创建
// APM_Config.h 文件,并将该文件作为选项的参考文件
// 你想更改的内容。不要直接复制该文件;选项
这里描述的 // 及其默认值可能会随着时间的推移而改变。
//
// 每个项目都标有一个关键字,说明何时应该设置它:
//
// 必须
// 您必须在 APM_Config.h 文件中对此进行配置。您必须在 APM_Config.h 文件中对此进行配置。
如果未设置该选项, // 软件将无法编译。
//
// 可选
// 该选项有一个合理的默认设置(将在下文中介绍
// 此处),但您可能希望覆盖它。
//
// 实验性
// 您应该配置该选项,除非您准备好
// 处理潜在问题。它可能与以下功能有关
// 仍在开发中,或尚未经过充分测试。
//
// DEBUG
// 只有在调试程序时才应设置该选项。
//软件,或者如果您正在收集信息以查找错误
// report.
//
// NOTE:
// 这些设置中有许多被认为是出厂默认设置'。
// 实时值存储并管理在 ArduPilot Mega EEPROM 中。
// 在更改设置中的选项后,使用设置'工厂重设'命令。
// 您的 APM_Config.h 文件。
//
// 单位
// -----
//
// 除非另有说明,数字量使用以下单位:
//
// 测量 | 单位
// ------------+-------------------------------------
// angle | degrees
// 距离 | 米
// 速度 | 米/秒
// 伺服角度 | 微秒
// voltage | volts
// 次 | 秒
// throttle | percent
//

//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// 硬件配置和连接
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// 需要 gps_protocol
//
// GPS 配置,必须是其中之一:
//
// GPS_PROTOCOL_AUTO 自动检测 GPS 类型(必须是受支持的 GPS)
// GPS_PROTOCOL_NONE 未连接 GPS
// GPS_PROTOCOL_IMU X-Plane 接口或 ArduPilot IMU。
// GPS_PROTOCOL_MTK 基于联发科的 GPS,运行 DIYDrones 1.4 固件
// GPS_PROTOCOL_MTK16 基于联发科的 GPS,运行 DIYDrones 1.6 固件
// gps_protocol_ublox ublox 全球定位系统
// GPS_PROTOCOL_SIRF 二进制模式下基于 SiRF 的 GPS。未经测试
// GPS_PROTOCOL_NMEA 标准 NMEA GPS。不支持(尚未支持?)
//
//#define GPS_PROTOCOL GPS_PROTOCOL_AUTO
//

//////////////////////////////////////////////////////////////////////////////
// 可选空速传感器
// 可选空速比
//
// 如果已连接空速传感器,则将 AIRSPEED_SENSOR 设置为 ENABLED。
// 以较小的增量调整 AIRSPEED_RATIO,以校准空速
// 相对于 GPS 的传感器。计算方法和默认值针对 12 米/秒左右的速度进行了优化。
//
// 默认假设连接了空速传感器。
//
//#define AIRSPEED_SENSOR ENABLED
//#define AIRSPEED_RATIO 1.9936
//

//////////////////////////////////////////////////////////////////////////////
// 磁强计可选
// Mag_orientation 可选
//
// 如果连接了磁力计,则将磁力计设置为ENABLED。
// 设置 MAG_ORIENTATION,以反映磁力计相对于 ArduPilotMega 的安装方向
//
// 默认假设未连接磁强计。
//
//#define MAGNETOMETER DISABLED
//#define MAG_ORIENTATION AP_COMPASS_COMPONENTS_DOWN_PINS_FORWARD
//

//////////////////////////////////////////////////////////////////////////////
// hil_protocol 可选
// hil_mode 可选
// hil_port 可选
//
// 硬件在环仿真配置。在这些模式下
// APM 通过一个或多个接口与仿真软件连接
// 在另一个系统上运行。
//
// HIL_PROTOCOL_XPLANE 为 X 平面 HIL 接口进行配置。
// HIL_PROTOCOL_MAVLINK 通过 MAVLink 进行 HIL 配置。
//
// HIL_MODE_DISABLED 配置为标准飞行。
// HIL_MODE_ATTITUDE 模拟器提供姿态和位置信息。
// HIL_MODE_SENSORS 模拟器提供原始传感器值。
//
// 请注意,目前 HIL_PROTOCOL_XPLANE 需要 HIL_MODE_ATTITUDE。
// 请注意,目前 HIL_PROTOCOL_MAVLINK 需要 HIL_MODE_SENSORS。
//
//#define HIL_MODE HIL_MODE_DISABLED
//#define HIL_PORT 0
//#define HIL_PROTOCOL HIL_PROTOCOL_MAVLINK
//

//////////////////////////////////////////////////////////////////////////////
// gcs_protocol 可选
// gcs_port 可选
// mav_system_id 可选
//
// GCS_PROTOCOL 选项决定哪个(如果有)地面控制站。
将使用 // 协议。必须是以下之一
//
// GCS_PROTOCOL_NONE 无 GCS 输出
// GCS_PROTOCOL_MAVLINK QGroundControl 协议
//
// GCS_PORT 选项决定 GCS 将使用哪个串行端口。
// GCS 协议。控制台/USB 端口的常用值为 0、
// 或 3 用于油盘上的遥测端口。请注意,某些协议
// 将忽略该值并始终使用控制台端口。
//
// MAV_SYSTEM_ID 是该无人机的唯一标识符。默认值为 1。
// 如果您将驾驶多架无人飞行器,则应为每架无人飞行器分配不同的 ID,以便
// 地面站可以将它们区分开来。
//
//#define GCS_PROTOCOL GCS_PROTOCOL_MAVLINK
//#define GCS_PORT 3
//#define MAV_SYSTEM_ID 1
//

//////////////////////////////////////////////////////////////////////////////
// 串行端口速度。
//
// serial0_baud 可选
//
// 控制台端口的波特率。默认为 115200bps。
//
// serial3_baud 可选
//
// 遥测端口的波特率。默认为 57600bps。
//
//#define SERIAL0_BAUD 115200
//#define SERIAL3_BAUD 57600
//

//////////////////////////////////////////////////////////////////////////////
// 电池监测 可选
//
// 有关为电池选择分压器电阻器的详情,请参阅手册。
// 通过油盘进行监控。
//
// 电池事件可选
//
// 将 BATTERY_EVENT 设置为 ENABLED,以启用低电压或高放电警告。
// 默认为禁用。
//
// 如果设置了 BATTERY_EVENT,则 LOW_VOLTAGE 可选。
//
// ArduPilot Mega 应考虑的电压值(单位为伏特)。
// 电池电量低。
//
// volt_div_ratio 可选
//
// 详见手册。默认值与电阻
// 手册建议。
//
// curr_amps_per_volt 可选
// curr_amps_offset 可选
//
// 电流传感器的灵敏度。如果在 APM 上安装了电阻器,则必须按比例调整。
// 输入 2 上的分压器(不推荐)。偏移量用于电流传感器,其偏移量为
//
//
// 如果设置了 BATTERY_EVENT,则 HIGH_DISCHARGE 可选。
//
// 应触发警告的毫安小时值。建议值 =
// 电池容量。
//
//#define BATTERY_EVENT DISABLED
//#define LOW_VOLTAGE 9.6
//#define VOLT_DIV_RATIO 3.56
//#define CURR_AMPS_PER_VOLT 27.32
//#define CURR_AMPS_OFFSET 0.0
//#define HIGH_DISCHARGE 1760

//////////////////////////////////////////////////////////////////////////////
// 可选输入电压
//
// 为了获得准确的压力和电池电压读数,需要
// 值应设置为处理器测得的电压。
//
// 更多详情请参见手册。如果向伺服轨提供 5 伏电压,默认值应接近。
//
//#define INPUT_VOLTAGE 4.68 // 4.68 是一组样本的平均值。这是处理器的值,伺服轨上的值为 5.02
//

//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// 无线电配置
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// 飞行模式可选
// 飞行模式通道可选
//
// 分配给控制通道的飞行模式,以及控制通道的输入通道。
// 读取的是控制模式。
//
// 使用伺服测试仪或 ArduPilotMega_demo 测试程序检查您的伺服系统。
// 开关设置。
//
// 注意:某些 ArduPilot Mega 板的无线电通道标记为 0-7,而某些 ArduPilot Mega 板的无线电通道标记为 0-8。
// 其他则将其标记为标准的 1-8。FLIGHT_MODE_CHANNEL 选项
// 使用通道号 1-8(默认为 8)。
//
// 如果您只有一个三位开关或只想要三种模式,请设置您的
//开关以产生 1165、1425 和 1815 微秒,并配置
// FLIGHT_MODE 1 & 2、3 & 4 和 5 & 6 必须相同。这是默认设置。
//
// 如果您将 FLIGHT_MODE_CHANNEL 设置为 8(默认值),并且您的控制软件
// 通道连接到输入通道 8,硬件故障安全模式将
// 激活超过 1750ms 的任何控制输入。
//
// 如需更多模式(最多六种),可将开关设置为 1165 中的任意一种、
// 1295、1425、1555、1685 和 1815 微秒。
//
// 飞行模式 | 开关设置(毫秒)
// ------------+---------------------
// 1 | 1165
// 2 | 1295
// 3 | 1425
// 4 | 1555
// 5 | 1685
// 6 | 1815(如果使用通道 8,则为 FAILSAFE)
//
// 可使用以下标准飞行模式:
//
// 名称 | 说明
// -----------------+--------------------------------------------
// |
// MANUAL | 通过硬件多路复用器进行全手动控制。
// |
// STABILIZE | 尝试保持水平飞行,但可通过无线电控制输入进行覆盖。
// |
// FLY_BY_WIRE_A | 通过用户输入进行自动驾驶式控制,带手动油门。
// |
// FLY_BY_WIRE_B | 通过用户输入进行自动驾驶式控制,用节流阀控制航速。
// |
// RTL | 返回原点,然后在安全高度降落。
// |
// AUTO | 基于编程航点的自主飞行。使用 WaypointWriter
// | 应用程序或地面控制系统进行编辑和上传
// | 航点和其他命令。
// |
//空气
//
// 下列非标准模式为实验模式:
//
// 名称 | 说明
// -----------------+--------------------------------------------
// |
// LOITER | 围绕当前位置转圈飞行。
// |
// CIRCLE | 以稳定的圆圈飞行。
// |
//
//
// 如果使用通道 8 进行模式切换,则 FLIGHT_MODE_5 和
// FLIGHT_MODE_6 应为 MANUAL。
//
//
//#define FLIGHT_MODE_CHANNEL 8
//
//#define FLIGHT_MODE_1 RTL
//#define FLIGHT_MODE_2 RTL
//#define FLIGHT_MODE_3 STABILIZE
//#define FLIGHT_MODE_4 STABILIZE
//#define FLIGHT_MODE_5 MANUAL
//#define FLIGHT_MODE_6 MANUAL
//

//////////////////////////////////////////////////////////////////////////////
// 可选的故障安全节流阀
// throttle_fs_value 可选
//
// 节流失效保险允许您配置已激活的软件失效保险。
//通过节流阀输入通道(通道 3)上的设置。启用此故障保护
// 还可根据丢失的数据启用短故障安全条件(见下文)。
// 全球控制中心的遥控覆盖控制
//
// 可用于在失去无线电控制时实现故障安全覆盖
// 无需牺牲一个 FLIGHT_MODE 设置,因为
// 节流失效保护覆盖开关选择的模式。
//
// 将 THROTTLE_FAILSAFE 设为 1,可启用节气门故障安全。
// 是为了启用它。
//
// 如果启用了节流失效保护,THROTTLE_FS_VALUE 将设置通道值
// 低于此值时,故障安全机制启动。默认值为 975 毫秒,这是一个非常低的
// 油门设置。大多数发射机都可以让您调整手动节流阀
// 位置向上,这样就无法通过正常的摇杆动作启动故障安全保护装置。
//
// 将接收器的节流通道故障安全设置配置为
// 绝对最小值,并使用 ArduPilotMega_demo 程序检查该值。
// 使用节气门控制器无法达到该值。留出
// 最低节气门设定值与发动机转速之间至少间隔 50 微秒。
// throttle_fs_value.
//
//#define THROTTLE_FAILSAFE ENABLED
//#define THROTTLE_FS_VALUE 950
//

//////////////////////////////////////////////////////////////////////////////

// gcs_heartbeat_failsafe 可选
// short_failsafe_action 可选
// long_failafe_action 可选

// 触发失控保护的基本条件有两种。一种是失控信号。
// 通常这意味着无线电遥控信号丢失。但是,如果从
// 全球监控系统正在使用中,这可能意味着与全球监控系统失去通信。这种故障保护装置将
//分为短(大于 1.5 秒但小于 20 秒)或长(大于 20 秒)。
// 此外,如果启用了 GCS_HEARTBEAT_FAILSAFE,并且没有收到来自 GCS 的心跳信号
// 在前 20 秒内,这也将触发故障安全。
//
// SHORT_FAILSAFE_ACTION 和 LONG_FAILSAFE_ACTION 设置决定 APM 在出现以下情况时将采取什么措施
// 在自动或 LOITER 模式下飞行时进入故障安全模式。这对于避免
// 在飞行航点时,飞机会出现意外的故障安全行为。
// 超出无线电范围。
//
// 如果 SHORT_FAILSAFE_ACTION 为 1,在自动或 LOITER 模式下进入故障保护时、
// 飞机将以 RTL 模式返航。如果故障安全条件为
// 解决后,将返回自动或 LOITER 模式。

// 如果 LONG_FAILSAFE_ACTION 为 1,则在自动或 LOITER 模式下进入故障保护时、
// 飞机将以 RTL 模式返航。如果故障安全条件为
// 解决后,飞机将不会返回自动或 LOITER 模式,而是继续返航。

// 如果 XX_FAILSAFE_ACTION 为 2,并且在自动或 LOITER 状态下发生适用的故障保护
// 模式,飞机将继续保持该模式,而忽略故障安全状态。

// 请注意,对于手动、稳定和线控飞行(A 和 B)模式,飞机将始终
// 在短时故障安全条件下进入盘旋模式,在长时故障安全条件下切换到 RTL 模式。
// 故障安全条件。RTL 模式不受故障安全条件影响。
//
// 默认关闭 GCS 心跳故障触发保护机制
// 默认行为是忽略自动和 LOITER 模式下的故障触发保护机制。
//
//#define GCS_HEARTBEAT_FAILSAFE DISABLED
//#define SHORT_FAILSAFE_ACTION 2
//#define LONG_FAILSAFE_ACTION 2

//////////////////////////////////////////////////////////////////////////////
// auto_trim 可选
//
// ArduPilot Mega 可以通过查看
当切换到手动模式时,可以使用 // 无线电输入。这样就可以
// 在切换到辅助模式之前,手动修整飞机。
// 这也意味着,当您有以下情况时,应避免切换出 MANUAL
// 任何控制杆偏转。
//
// 默认启用 AUTO_TRIM。
//
//#define AUTO_TRIM ENABLED
//

//////////////////////////////////////////////////////////////////////////////
// 节流器_反向可选
//
// 少数速度控制要求反转油门伺服信号。设置
// 将此项设置为启用(ENABLED)时,节气门输出信号将反转。确保您的
//节流阀需要通过使用硬件故障安全和
在设置该选项之前,请先运行 // ArduPilotMega_demo 程序。
//
// 默认情况下不反转信号。
//
//#define THROTTLE_REVERSE DISABLED
//

//////////////////////////////////////////////////////////////////////////////
// 启用混音棒(可选
//
// 如果该选项设置为 "ENABLED"(启用),则手动控制输入将受到尊重。
// 当处于自动驾驶模式(AUTO、RTL、LOITER、CIRCLE 等)时
//
// 默认情况下启用操纵杆混控,允许飞行员采取
// 无需切换模式即可采取紧急行动。
//
//#define ENABLE_STICK_MIXING ENABLED
//

//////////////////////////////////////////////////////////////////////////////
// throttle_out debug
//
// 调试时,禁用节流阀输出可能很有用。设置
// 将该选项设为 DISABLED 可禁用节流阀输出信号。
//
// 默认情况下不禁用节流阀输出。
//
//#define THROTTLE_OUT ENABLED
//

//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// 启动行为
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// 接地启动延迟(可选
//
// 如果进行了配置,则在开机和 IMU 开始之间插入延迟
// 在地面启动时进行校准。
//
// 使用此设置可让您有时间对飞机进行水平定位
// 用于 IMU 校准。
//
// 默认情况是在启动时立即开始 IMU 校准。
//
//#define GROUND_START_DELAY 0
//

//////////////////////////////////////////////////////////////////////////////
// enable_air_start 可选
//
// 如果禁用了空中启动,则将进行地面启动(包括 IMU
// 校准)。这意味着,如果您获得
//由于某种原因在空中出现电源故障或重启,您可能会
//坠毁,但它可以防止地面上的许多问题,如无意的
// 电机启动等。
//
// 如果启用了气动启动,那么在开机时将获得气动启动,并在运行过程中显示
// 当我们获取 GPS 时,如果速度接近零,将执行地面启动。
// 锁定。
//
// 默认为禁用空气启动。
//
//#define ENABLE_AIR_START 0
//

//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// 飞行和导航控制
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// 高度测量和控制。
//
// alt_est_gain 可选
//
// 高度估计函数的增益;数字越小结果越好
// 纠错速度更慢,输出更流畅。默认值为
// 合理的起点。
//
//#define ALT_EST_GAIN 0.01
//
// 高度混合可选
//
// 配置 GPS 和气压高度之间的混合。
// 0 = GPS 高度,1 = Press alt,0.5 = 一半一半,等等。
//
// 默认情况下只使用压力高度。
//
//#define ALTITUDE_MIX 1
//

//////////////////////////////////////////////////////////////////////////////
// 空速巡航可选
//
// 巡航时要保持的速度(米/秒)。默认值为
// 为 10 米/秒,这是一个保守的值,适用于相对较小的规模、
// 轻型飞机。
//
//#define AIRSPEED_CRUISE 12
//

//////////////////////////////////////////////////////////////////////////////
// FLY_BY_WIRE_B 空速控制(也用于自动模式下的节流阀推移)。
//
// 空速_fbw_min 可选
// 空速_fbw_max 可选
//
// 线控飞行 B 模式下最小和最大油门对应的空速。
// 默认值为每秒 6 米和 30 米。
//
// AIRSPEED_FBW_MAX 还可设置在自动模式下,当设置了 ENABLE_STICK_MIXING 时,巡航空速可被推至的最大空速。
// 在 "自动 "状态下,可通过调节油门在 AIRSPEED_CRUISE 和 AIRSPEED_FBW_MAX 之间增加巡航速度。
// 油门杆在其范围的上半部分。节气门杆位于下 1/2,提供常规自动控制。
//
//#define AIRSPEED_FBW_MIN 6
//#define AIRSPEED_FBW_MAX 22
//

//////////////////////////////////////////////////////////////////////////////
// 伺服映射
//
// throttle_min 可选
//
// (飞行)控制器将减小到的最小油门设置。
// 下降时的节流阀。默认值为零,即
// 适用于有稳定离机滑行的飞机。增大
如果您的飞机需要使用节流阀来保持稳定的下降速度,请使用 // 值。
// 水平飞行。
//
// throttle_cruise 可选
//
// 在水平飞行时实现 AIRSPEED_CRUISE 的大致油门设置。
// 默认值为 45%,这对动力适中的飞机来说是合理的。
//
// throttle_max 可选
//
// (飞行)控制器将应用的最大油门设置。默认为 75%。
// 如果你的飞行器过于强大或具有复杂的飞行功能,则降低该值
// 大油门设置下的特性。
//
//#define THROTTLE_MIN 0 // 百分比
//#define THROTTLE_CRUISE 45
//#define THROTTLE_MAX 75

//////////////////////////////////////////////////////////////////////////////
// (飞行)控制器控制限制
//
// head_max 可选
//
// 任一方向上的最大指令倾角。
// 默认为 45 度。如果您的飞机不是
// 在陡坡上保持稳定或难以保持高度。
//
// pitch_max 可选
//
// 最大指令俯仰角。
// 默认值为 15 度。应注意不要将该值设置得过高。
// 大,因为飞机可能会失速。
//
// PITCH_MIN
//
// 最大指令俯仰角。注意该值必须是
// 负值。默认值为-25 度。应注意不要设置
// 该值过大可能会导致飞机超速。
//
// pitch_target
//
// 巡航飞行的目标螺距。当 APM 测量出这一螺距时
// 值,则俯仰 PID 的俯仰误差将被计算为 0。
// 控制循环。
//
//#define HEAD_MAX 45
//#define PITCH_MAX 15
//#define PITCH_MIN -25
//#define PITCH_TARGET 0

//////////////////////////////////////////////////////////////////////////////
// 姿态控制增益
//
// 姿态控制 PID 循环的调整值。
//
// P 项是主要调整值。这决定了控制
// 变形量与所需的修正量成正比。
//
// I 项用于帮助控制表面沉降。该值应
// 通常保持较低水平。
//
// D 项用于控制过冲。避免使用或调整
如果您对调整 PID 循环不熟悉,请使用 // 术语。通常应
// 对大多数飞机来说都是零。
//
// 注意:在调整这些数值时,开始时的变化幅度不应超过 25%,然后再调整。
// a time.
//
// servo_roll_p 可选
// servo_roll_i 可选
// servo_roll_d 可选
//
// 用于滚动控制的 P、I 和 D 项。默认值为 0.4、0、0。
//
// 可选的 servo_roll_int_max
//
// 积分产生的最大控制偏移。这可以防止控制
// 输出不会因持续偏移(如串行跟踪)而被过度驱动。
// 默认为 5 度。
//
// roll_slew_limit experimental
//
// 限制滚动控制的回转速度,单位为每秒度数。如果为零、
// 不限制回转速率。默认为不限制滚动控制回转速率。
// (该功能目前尚未实现)。
//
// servo_pitch_p 可选
// 伺服螺距_i 可选
// 伺服螺距_d 可选
//
//螺距控制的 P、I 和 D 项。默认值为 0.6、0、0。
//
// 伺服螺距_int_max 可选
//
// 积分产生的最大控制偏移。这可以防止控制
// 输出不会因持续偏移(如原生飞行)而被过度驱动
// AoA)。
// 默认为 5 度。
//
// pitch_comp 可选
//
// 增加俯仰输入,以补偿滚动控制造成的升力损失。
// 默认值为 0.20(20% 的滚动控制也应用于俯仰控制)。
//
// servo_yaw_p 可选
// servo_yaw_i 可选
// 伺服偏航_d 可选
//
// YAW 控制的 P、I 和 D 项。默认值为 0.
// 注意该控制环路的单位不同寻常。PID 输入单位为 m/s**2。
//
// 最大偏航值(Servo_Yaw_int_max)可选
//
// 积分产生的最大控制偏移。这可以防止控制
// 输出不会因持续偏移(如串行跟踪)而被过度驱动。
// 默认值为 0。
//
// 舵混音可选
//
// 滚转与偏航混合。这样就可以协调转弯。
// 默认值为 0.50(50% 的滚动控制也应用于偏航控制)。
//
//#define SERVO_ROLL_P 0.4
//#define SERVO_ROLL_I 0.0
//#define SERVO_ROLL_D 0.0
//#define SERVO_ROLL_INT_MAX 5
//#define ROLL_SLEW_LIMIT 0
//#define SERVO_PITCH_P 0.6
//#define SERVO_PITCH_I 0.0
//#define SERVO_PITCH_D 0.0
//#define SERVO_PITCH_INT_MAX 5
//#define PITCH_COMP 0.2
//#define SERVO_YAW_P 0.0 // 默认值为零。如果要使用该参数,建议值为 0.5
//#define SERVO_YAW_I 0.0
//#define SERVO_YAW_D 0.0
//#define SERVO_YAW_INT_MAX 5
//#define RUDDER_MIX 0.5
//

//////////////////////////////////////////////////////////////////////////////
// 导航控制增益
//
// 导航控制 PID 循环的调整值。
//
// P 项是主要调整值。这决定了控制
// 变形量与所需的修正量成正比。
//
// I 项用于控制漂移。
//
// D 项用于控制过冲。如果
// 您不熟悉如何调整 PID 循环。
//
// 注意:在调整这些数值时,开始时的变化幅度不应超过 25%,然后再调整。
// a time.
//
// nav_roll_p 可选
// nav_roll_i 可选
// nav_roll_d 可选
//
// P、I 和 D 术语用于滚动导航控制,通常用于
//控制飞机航向。P 项控制的是
// 飞机将倾斜以改变或保持航向。
// 默认值为 0.7、0.0 和 0.02。
//
//nav_roll_int_max 可选
//
// 积分产生的最大控制偏移。这可以防止控制
// 输出不会因持续偏移(如串行跟踪)而被过度驱动。
// 默认为 5 度。
//
// 可选的 nav_pitch_asp_p
// 可选的 nav_pitch_asp_i
// 可选的 nav_pitch_asp_d
//
// P、I 和 D 项表示为保持空速而进行的螺距调整。
// 默认值为 0.65、0、0。
//
// nav_pitch_asp_int_max 可选
//
// 积分导致的最大螺距偏移。这限制了控制
// 输出不会因持续偏移而被过度驱动(例如,不能
// 以保持程序设定的空速)。
// 默认为 5 度。
//
// Nav_pitch_alt_p 可选
// 导航螺距_alt_i 可选
// 航道间距_alt_d 可选
//
// P、I 和 D 术语表示为保持高度而进行的俯仰调整。
// 默认值为 0.65、0、0。
//
// Nav_pitch_alt_int_max 可选
//
// 积分导致的最大螺距偏移。这限制了控制
// 输出不会因持续偏移而被过度驱动(例如,不能
// 保持编程高度)。
// 默认值为 5 米。
//
//#define NAV_ROLL_P 0.7
//#define NAV_ROLL_I 0.01
//#define NAV_ROLL_D 0.02
//#define NAV_ROLL_INT_MAX 5
//#define NAV_PITCH_ASP_P 0.65
//#define NAV_PITCH_ASP_I 0.0
//#define NAV_PITCH_ASP_D 0.0
//#define NAV_PITCH_ASP_INT_MAX 5
//#define NAV_PITCH_ALT_P 0.65
//#define NAV_PITCH_ALT_I 0.0
//#define NAV_PITCH_ALT_D 0.0
//#define NAV_PITCH_ALT_INT_MAX 5
//

//////////////////////////////////////////////////////////////////////////////
// 能量/高度控制增益
//
// 能量/高度控制系统利用油门输入来控制飞机
// 海拔。
//
// P 项是主要调整值。这决定了节流阀
// 设置与所需的校正成正比。
//
// I 项用于补偿微小偏移。
//
// D 项用于控制过冲。如果
// 您不熟悉如何调整 PID 循环。
//
// 注意该控制环路的单位不同寻常。PID 输入单位为 m**2/s**2。
//
// throttle_te_p 可选
// throttle_te_i 可选
// throttle_te_d 可选
//
// P、I 和 D 术语表示为控制高度而进行的节流阀调整。
// 默认值为 0.5、0、0。
//
// throttle_te_int_max 可选
//
// 积分项导致的最大节流阀输入。这限制了
// 节流阀不会因持续偏移而被过度驱动(例如
// 无法保持编程高度)。
// 默认为 20%。
//
// 节流限制(可选
//
// 限制节流阀的回转速度,单位为每秒百分比。帮助
// 避免突然改变油门,因为这会导致飞机失稳。
// 设置为零则禁用该功能。
// 默认为零(禁用)。
//
// p_to_t 可选
//
// 螺距到油门的前馈增益。默认为 0。
//
// t_to_p 可选
//
// 节流器至俯仰前馈增益。默认为 0。
//
//#define THROTTLE_TE_P 0.50
//#define THROTTLE_TE_I 0.0
//#define THROTTLE_TE_D 0.0
//#define THROTTLE_TE_INT_MAX 20
//#define THROTTLE_SLEW_LIMIT 0
//#define P_TO_T 0
//#define T_TO_P 0
//

//////////////////////////////////////////////////////////////////////////////
// 串联补偿
//
// XTRACK_GAIN 可选
//
// 超越轨道补偿,单位为每米偏离轨道度数。
// 默认值为每米 1.0 度。低于 0.001 的值将
// 禁用串轨补偿。
//
// XTRACK_ENTRIEW_ANGLE 可选
//
// 用于修正轨迹跟踪的最大角度。
// 默认值为 30 度。
//
//#define XTRACK_GAIN 1 // deg/m
//#define XTRACK_ENTRY_ANGLE 30 // deg
//

//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////
// 调试
//////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////////////////////////
// Dataflash 日志控制
//
// 这些日志记录选项中的每一个都可以设置为 "ENABLED"(启用)或 "DISABLED"(禁用)。
// 关闭相应数据的记录。
//
// log_attitude_fast debug
//
// 以 50Hz 的频率将基本姿态信息记录到数据闪存中(占用更多空间)。
// 默认为 DISABLED。
//
// log_attitude_med 可选
//
// 以 10Hz 的频率将基本姿态信息记录到数据闪存中(使用的空间小于
// log_attitude_fast)。默认为 ENABLED。
//
// log_gps 可选
//
// 以 10Hz 的频率将 GPS 信息记录到闪存中。默认为启用。
//
// log_pm 可选
//
// 每 20 秒记录一次 IMU 性能监控信息。
// 默认为 DISABLED。
//
// log_ctun 可选
//
// 以 10 Hz 频率记录控制环路飞行稳定调整信息。这些信息对调整
// 伺服控制环路增益值。默认为 "禁用"。
//
// log_ntun 可选
//
// 以 10 Hz 频率记录导航飞行稳定调整信息。这些信息对调整
// 导航控制环路增益值。默认为 "禁用"。
//
// 日志模式可选
//
// 记录飞行模式发生的更改。默认为启用。
//
// log_raw debug
//
// 以 50 Hz 的频率记录原始加速度计和陀螺仪数据(占用更多空间)。
// 默认为 DISABLED。
//
// log_cmd 可选
//
// 处理新命令时记录日志。
// 默认为ENABLED。
//
//#define LOG_ATTITUDE_FAST DISABLED
//#define LOG_ATTITUDE_MED ENABLED
//#define LOG_GPS ENABLED
//#define LOG_PM ENABLED
//#define LOG_CTUN DISABLED
//#define LOG_NTUN DISABLED
//#define LOG_MODE ENABLED
//#define LOG_RAW DISABLED
//#define LOG_CMD ENABLED
//#define LOG_CUR DISABLED
//

//////////////////////////////////////////////////////////////////////////////
// 导航默认值
//
// wp_radius_default 可选
//
// 当用户对 APM 执行出厂重置时,设置航点半径
//(目标航点的半径,在此半径内 APM 将考虑
// 本身已到达该航点)到该值(以米为单位)。这是
// 主要目的是让用户在不运行"...... "的情况下开始使用 APM。
// WaypointWriter first.
//
// loiter_radius_default 可选
//
// 当用户对 APM 执行出厂重置时,设置位置悬停半径
//(APM 将尝试保持与航点的距离,同时
//位置悬停)为该值(以米为单位)。这主要是为了让
// 用户无需先运行 WaypointWriter 即可开始使用 APM。
//
// use_current_alt 可选
// alt_hold_home 可选
//
// 当用户对 APM 执行出厂重置时,设置天气标志
// 返回发射时应使用当前高度或 ALT_HOLD_HOME 高度。
// 同时,设置 USE_CURRENT_ALT 的值,单位为米。这主要是为了让
// 用户无需先运行 WaypointWriter 即可开始使用 APM。
//
//#define WP_RADIUS_DEFAULT 30
//#define LOITER_RADIUS_DEFAULT 60
//#define USE_CURRENT_ALT FALSE
//#define ALT_HOLD_HOME 100
//

//////////////////////////////////////////////////////////////////////////////
// 调试界面
//
// 可选的调试端口
//
// APM 将定期发送信息,报告它正在做的事情;这就意味着
// 变量决定它们将被发送到哪个串行端口。端口 0 是
// 屏蔽上的 USB 串行端口,端口 3 是遥测端口。
//
//#define DEBUG_PORT 0
//

//
// 不要删除 - 这是为了防止用户复制该文件
// 并按原样使用,而不是自己编辑。
//
#error 您不应复制 APM_Config.h.reference,而应制作自己的 APM_Config.h 文件,其中只包含您需要的选项。