关于INAV 地面站的导航功能
INAV地面站 的导航系统主要用于协助飞行员执行高级飞行功能,如 定高、 定点悬停、 自动返航(RTH)以及航点飞行 等任务。这一系统结合了 GPS、气压计、陀螺仪和其他传感器的输入,为固定翼、多旋翼、VTOL 等飞行器提供了稳定、可靠的导航控制能力。
一、NAV ALTHOLD 模式(Altitude Hold)
在 INAV 中, Altitude Hold(定高)模式 允许飞行器自动保持当前高度,并通过飞行员的油门操作控制垂直速度(上升/下降速率)。
1.1 工作原理
高度来源:系统会自动选择最佳高度传感器,包括:
- 气压计(Barometer)
- GPS
- 测距仪(Rangefinder)
油门杆控制逻辑:
- 油门推上 → 飞行器上升
- 油门拉下 → 飞行器下降
- 油门居中 → 飞行器维持当前高度
1.2 CLI 参数说明
nav_use_midthr_for_althold: 定义“油门中位”高度参考点行为
- 0:启用 ALTHOLD 时记录当前油门位置作为中位(推荐设置,飞行更自然)
- 1:强制将 50% 油门设为中位
1.3 相关 PID 参数
Altitude Hold 模式下的性能由以下两组 PID 控制:
ALT PID(高度环): 将“目标高度”与“当前高度”的误差转化为期望的垂直速度
- P:调节高度误差→速度响应
- I:调节速度误差→加速度响应
VEL PID(速度环): 根据垂直加速度误差调整油门输出来实现精细控制
二、NAV POSHOLD 模式 (position hold)
Position Hold 模式 是 INAV 提供的一种高级导航功能,主要用于多旋翼飞行器的自动悬停,可在 GPS 坐标点保持当前位置,并自动维持航向。
所需传感器
- 必需: GPS:用于获取并保持地理坐标位置 ,加速度计(Accelerometer), 指南针/磁力计(Compass)
- 对于多旋翼: 气压计(Barometer)是必须的,除非启用了 use_gps_no_baro 选项
注意:启用 POSHOLD 或 RTH 模式前,指南针必须完成校准,否则飞行模式将被锁定。
模式行为
- 启动 POSHOLD 后,飞控将试图保持飞行器在当前 GPS 坐标处静止悬停。
- 从 INAV 2.0 起,POSHOLD 是完整的 3D 定点悬停,包含垂直方向的高度保持。
- 启动后会自动启用定向保持(Heading Hold),无需手动干预。
2.1 CLI 参数控制
nav_user_control_mode: 控制在 POSHOLD 模式下摇杆操作的响应方式
0(GPS_ATTI 模式):
- 右摇杆控制飞行姿态(倾斜角度)
- 松开摇杆后,新的位置会被记录并悬停
1(GPS_CRUISE 模式):
- 右摇杆控制速度(非姿态)
- 飞控根据速度自动计算姿态以保持平滑控制
2.2相关 PID 参数
- POS PID(位置环): 将位置误差转化为期望速度,仅使用 P 项
- POSR PID(速度环): 将速度误差转化为期望加速度,实现更平稳控制
三、NAV RTH 返航模式
RTH 模式中的“Home”点是 飞行器首次解锁(ARM)的位置。但该位置可以通过以下方式进行 偏移 或 替代:
- CLI 参数: nav_rth_home_offset_distance、nav_rth_home_offset_direction
- 使用 SafeHome 功能进行动态覆盖
传感器要求
要正确执行 RTH,需要以下传感器支持:加速度计、GPS、指南针
- 对于多旋翼(Multirotor)还必须有 气压计(Barometer),否则无法维持定高飞行
模式行为
- 启动 RTH 后,飞控将导航飞行器返回 Home 点
- 返航过程中会维持特定高度
- 到达 Home 点后: 多旋翼将自动降落 固定翼可设置为自动盘旋(Loiter)或尝试自动降落,依据具体配置
高度控制逻辑(6种模式)
由 CLI 参数 nav_rth_alt_mode
和 nav_rth_altitude
决定:
模式 | 名称 | 行为说明 |
---|---|---|
0 | NAV_RTH_NO_ALT | 全程保持当前高度(忽略 nav_rth_altitude) |
1 | NAV_RTH_EXTRA_ALT | 在当前位置爬升一定高度后返航,高度 = 当前高度 + nav_rth_altitude |
2 | NAV_RTH_CONST_ALT | 爬升/下降至固定高度后返航,目标高度 = nav_rth_altitude(相对 Home 点) |
3 | NAV_RTH_MAX_ALT | 返回前爬升至飞行中记录的最大高度(忽略 nav_rth_altitude) |
4 | NAV_RTH_AT_LEAST_ALT | 与模式 2 相似,但只允许上升,不允许下降 |
5 | NAV_RTH_AT_LEAST_ALT_LINEAR_DESCENT | 与模式 4 相同,但若高于返航高度,则会在返航途中逐步下降至目标高度,以节省能耗并实现平稳接近 Home 点 |
四、NAV WP - 航点模式
NAV WP 模式允许飞行器根据飞控中预设的航点自动执行一系列航线任务,包括定点悬停、返航、降落等操作,适用于固定翼、多旋翼等平台的任务型飞行。
4.1 CLI 命令简介
命令 | 功能 |
---|---|
wp | 列出当前飞控中加载的所有航点 |
wp load | 从 EEPROM 中加载航点数据至飞控 |
wp <n> <action> <lat> <lon> <alt> <p1> <p2> <p3> <flag> | 配置第 n 个航点的各项参数 |
wp save | 将当前航点列表保存到 EEPROM(同时保存当前所有 CLI 配置) |
wp reset | 清除航点列表(将数量设为 0,但不删除航点定义) |
wp <n> <action> <lat> <lon> <alt> <p1> <p2> <p3> <flag>参数含义
参数 | 说明 |
---|---|
<n> | 航点编号(0 起) |
<action> | 航点行为(如下详解) |
<lat> | 纬度(WGS84,单位为度,例如 12.3456789° → 输入 123456789) |
<lon> | 经度(同上) |
<alt> | 高度(单位为 cm)是否为相对高度由 <p3> 的 Bit 0 决定 |
<p1> | 具体含义依据 <action> 类型,如悬停时间、速度、跳转索引等 |
<p2> | 辅助参数,视动作类型而定(如跳转次数、飞行速度) |
<p3> | Bit 位定义,控制高度基准、用户自定义行为等(下方详解) |
<flag> | 最后一个航点需设置为 165(0xA5)表示结束符 |
<action>
类型定义(INAV 2.6 起)
数值 | 动作类型 | 说明 |
---|---|---|
0 | UNUSED | 未使用 |
1 | WAYPOINT | 普通导航点 |
3 | POSHOLD_TIME | 悬停指定时间(多旋翼) |
4 | RTH | 返航 |
5 | SET_POI | 设置兴趣点 |
6 | JUMP | 跳转到指定航点(支持循环) |
7 | SET_HEAD | 设置航向角度 |
8 | LAND | 降落 |
<p3>
Bit 位字段说明
Bit | 含义 |
---|---|
Bit 0 | 高度基准:0 = 相对高度(相对于起飞点),1 = 绝对高度(AMSL) |
Bit 1-4 | 用户自定义航点行为(保留位,用于逻辑条件触发) |
Bit 5-15 | 保留,暂未使用 |
五、INAV 多任务航线(Multi-missions)功能说明
INAV 支持 最多 9 条独立任务航线(Multi-mission) 同时存储在飞控中。用户可以通过 CLI 命令输入各个任务,最终通过 wp save
命令一次性保存为一个多任务集合。
配置步骤如下:
- 每条任务必须以航点编号 0 开始。
- 可将每条任务作为一个独立的区块输入 CLI,顺序输入即可,不需要逐条保存。
- 在所有任务输入完毕后,执行命令: wp save 所有任务将合并保存至飞控中。
示例(三条任务):
任务一(3个航点)
wp 0 1 545722109 -32869291 5000 0 0 0 0
wp 1 1 545708178 -32642698 5000 0 0 0 0
wp 2 1 545698227 -32385206 5000 0 0 0 165
任务二(6个航点)
wp 0 1 545599696 -32958555 5000 0 0 0 0
wp 1 1 545537978 -32958555 5000 0 0 0 0
wp 2 1 545547933 -32864141 5000 0 0 0 0
wp 3 1 545597705 -32695913 5000 0 0 0 0
wp 4 1 545552910 -32598066 5000 0 0 0 0
wp 5 6 0 0 0 0 0 0 165 # 跳转动作(JUMP),指向任务逻辑中的另一航点
任务三(1个航点)
wp 0 1 545714148 -32501936 5000 0 0 0 165
保存命令
wp save
————本文引用至INAV官网: https://github.com/iNavFlight/inav/blob/master/docs/Navigation.md