更新时间:2026-06-26
1. 文档目的
本文从用户和业务流程角度说明:平台在航线规划、任务创建、任务下发和飞行接管过程中,如何处理禁飞区、限飞区和地形高度风险。
本文不描述代码实现位置,只说明当前系统对用户呈现出来的逻辑、流程、判断点和安全措施。
2. 适用范围
适用于以下场景:
- 用户手动创建或编辑航点航线。
- 用户通过图斑调查自动规划航线。
- 用户通过面状区域自动规划航线。
- 用户创建飞行任务并选择是否开启安全航线。
- 平台下发任务到机场前的安全校验。
- 用户人工接管或查看实时飞行安全提醒。
3. 核心结论
当前系统的安全策略是“多阶段兜底”,不是单纯依赖某一个规划步骤。
总体逻辑如下:
- 禁飞区:优先避免穿越;能绕行时自动插入绕行点,不能绕行时阻断任务。
- 限飞区:当前不是绕开,而是根据限飞区高度、地形高度和安全余量抬高航点。
- 地形高度:会结合 DEM 地形数据检查离地高度,不足时插入高度调整点。
- 图斑调查:规划/派单前会判断图斑范围是否碰到禁飞区,命中后阻断任务。
- 面状航线:当前规划阶段不判断禁飞区和限飞区,主要依赖后续安全航线和下发前检查兜底。
- 任务下发前:会再次检查航线是否穿过禁飞区,命中后不下发,任务置为失败。
- 设备侧:禁飞区数据会同步到机场,并启用 DJI 侧任务安全检查作为最终兜底。
4. 名词说明
| 名词 | 说明 |
|---|---|
| 禁飞区 | 不允许飞行的区域。航点不能落入,航段不能穿越。 |
| 限飞区 | 需要满足高度安全要求的区域。当前系统不绕开,而是抬高飞越。 |
| 安全航线 | 在原航线基础上,自动补充机场到航线、航线内部、返航段的绕行和高度调整后的航线。 |
| 绕行点 | 系统为了避开禁飞区自动插入的中间航点。 |
| 高度调整点 | 系统为了满足地形高度或限飞区高度要求自动插入或抬高的航点。 |
| 安全航线开关 | 创建飞行任务时控制是否生成安全航线的配置,通常对应 safeRoute。 |
5. 用户视角的整体流程
flowchart TD
A[用户创建航线或接入图斑任务] --> B{航线来源}
B -->|手动画航点航线| C[保存航线]
B -->|图斑调查自动规划| D[图斑范围安全判断]
B -->|面状区域自动规划| E[生成面状航线]
C --> C1{航段是否穿过禁飞区}
C1 -->|否| C2[保存原航线]
C1 -->|是| C3{航点是否落入禁飞区}
C3 -->|是| C4[阻断保存或提示调整]
C3 -->|否| C5[自动插入禁飞区绕行点]
C5 --> C2
D --> D1{图斑是否与禁飞区相交}
D1 -->|是| D2[创建失败任务并标记禁飞区阻断]
D1 -->|否| D3[生成图斑调查航线]
E --> E1[生成面状覆盖航点]
C2 --> F[用户创建飞行任务]
D3 --> F
E1 --> F
F --> G{是否开启安全航线}
G -->|否| H[使用原航线进入下发前检查]
G -->|是| I[生成安全航线]
I --> I1[机场到航线起点安全连接]
I1 --> I2[航线内部禁飞区绕行]
I2 --> I3[限飞区高度抬升]
I3 --> I4[DEM 地形高度检查]
I4 --> I5[航线终点到机场返航连接]
I5 --> J{安全航线最终复检}
J -->|通过| K[替换为安全航线]
J -->|失败| L[任务失败并记录原因]
K --> H
H --> M{下发前是否穿过禁飞区}
M -->|是| N[阻断下发,任务失败]
M -->|否| O[下发机场执行]
O --> P[DJI 侧安全检查兜底]
6. 分阶段规则说明
6.1 航线保存阶段
适用对象:用户手动创建或编辑的航点航线。
系统动作:
- 判断航段是否穿过禁飞区。
- 如果航点本身落入禁飞区,直接阻断,不允许保存为可执行航线。
- 如果航点没有落入禁飞区,但航段穿过禁飞区,系统尝试自动绕行。
- 绕行成功后,系统插入绕行点并保存新航线。
- 绕行失败时,提示用户调整航线。
这一阶段加了什么:
| 安全能力 | 是否有 |
|---|---|
| 禁飞区判断 | 有 |
| 禁飞区绕行 | 有 |
| 限飞区判断 | 无 |
| 限飞区绕行 | 无 |
| 地形高度补偿 | 绕行点会尽量结合地形高度处理 |
6.2 图斑调查航线规划阶段
适用对象:外部系统传入图斑,平台自动生成图斑调查任务。
用户感知流程:
- 外部系统传入图斑范围。
- 平台保存或更新图斑信息。
- 平台先判断图斑范围是否与禁飞区相交。
- 如果图斑碰到禁飞区,平台仍可生成任务记录,但会把飞行任务标记为失败,不继续正常派飞。
- 如果图斑没有碰到禁飞区,平台继续选择机场、规划图斑调查航线并创建任务。
这一阶段加了什么:
| 安全能力 | 是否有 | 说明 |
|---|---|---|
| 图斑范围禁飞区判断 | 有 | 判断整个图斑是否与禁飞区相交。 |
| 禁飞区绕行 | 无 | 图斑规划算法本身不基于禁飞区做绕行。 |
| 限飞区判断 | 无 | 当前不会因为图斑碰到限飞区而阻断。 |
| 限飞区绕行 | 无 | 后续安全航线阶段会做高度抬升。 |
| 任务阻断 | 有 | 图斑碰禁飞区时,任务失败并记录禁飞区阻断原因。 |
产品结论:
图斑调查目前做的是“图斑范围禁飞区提前阻断”,不是“图斑航线智能绕开禁飞区”。如果图斑本身和禁飞区相交,业务上认为该图斑不可正常执行。
6.3 面状航线规划阶段
适用对象:用户传入一个面状区域,平台自动生成正射/面状覆盖航线。
用户感知流程:
- 用户传入面状区域。
- 平台默认对区域做一定外扩。
- 平台生成面状覆盖航点。
- 平台保存航线。
- 后续创建飞行任务时再进入安全航线或下发前检查。
这一阶段加了什么:
| 安全能力 | 是否有 | 说明 |
|---|---|---|
| 禁飞区判断 | 无 | 当前面状规划阶段不主动判断数据库禁飞区。 |
| 禁飞区绕行 | 无 | 当前面状规划阶段不绕开禁飞区。 |
| 限飞区判断 | 无 | 当前面状规划阶段不主动判断限飞区。 |
| 限飞区绕行 | 无 | 当前配置为不避让限制区域。 |
| 后续安全兜底 | 有 | 创建任务开启安全航线后,会进入禁飞区绕行和限飞区高度抬升。 |
产品结论:
面状航线当前规划阶段更偏向“按区域生成覆盖航线”,安全避让主要放在后续任务创建和任务下发前处理。
7. 安全航线生成阶段
适用对象:创建飞行任务时开启安全航线的任务。
这是当前系统最核心的安全增强阶段。
7.1 处理范围
安全航线不是只处理原始航线内部,而是处理完整飞行链路:
机场起飞点 -> 航线入口 -> 航线内部 -> 航线出口 -> 返回机场
7.2 禁飞区处理
系统会查询机场附近或当前工作空间内启用的禁飞区,并做安全缓冲。
处理规则:
- 原始航点落入禁飞区:直接失败,不自动处理。
- 航段穿越禁飞区:尝试自动绕行。
- 绕行成功:插入绕行点。
- 绕行失败:安全航线生成失败,任务不继续下发。
- 安全航线生成后再次复检,如果仍穿越禁飞区,任务失败。
这一阶段加了什么:
| 安全能力 | 是否有 |
|---|---|
| 禁飞区判断 | 有 |
| 禁飞区缓冲 | 有 |
| 禁飞区绕行 | 有 |
| 禁飞区最终复检 | 有 |
| 无法处理时阻断任务 | 有 |
7.3 限飞区处理
当前限飞区策略是“抬高飞越”,不是“绕开区域”。
处理规则:
- 判断航点或航段是否进入限飞区范围。
- 如果航点在限飞区内,计算安全飞行高度。
- 如果航段穿过限飞区边界,在边界附近插入高度调整点。
- 高度不足时,抬高到满足限飞区高度、地形高度和安全余量的高度。
这一阶段加了什么:
| 安全能力 | 是否有 |
|---|---|
| 限飞区判断 | 有 |
| 限飞区绕行 | 无 |
| 限飞区高度抬升 | 有 |
| 限飞区边界高度调整点 | 有 |
7.4 地形高度处理
系统会结合 DEM 地形高度检查航线离地高度。
处理规则:
- 对航段按距离采样。
- 判断采样点离地高度是否满足最低安全高度。
- 如果不足,插入高度调整点。
- 调整后的高度会加上安全余量。
这一阶段加了什么:
| 安全能力 | 是否有 |
|---|---|
| DEM 地形高度判断 | 有 |
| 低空风险识别 | 有 |
| 自动抬高航点 | 有 |
| 自动插入高度调整点 | 有 |
8. 任务下发前检查阶段
适用对象:所有准备下发到机场执行的任务。
用户感知流程:
- 用户创建任务后,平台准备下发到机场。
- 下发前再次检查航线是否穿过禁飞区。
- 如果穿过禁飞区,平台阻断下发。
- 任务状态变为失败,并记录失败原因。
- 如果检查通过,任务才会继续下发到机场。
这一阶段加了什么:
| 安全能力 | 是否有 |
|---|---|
| 禁飞区二次检查 | 有 |
| 下发前阻断 | 有 |
| 限飞区下发前阻断 | 无 |
| DJI 设备侧安全检查 | 有 |
9. 机场设备侧兜底
平台会将禁飞区数据同步到机场设备侧,并在任务下发时启用 DJI 的安全检查。
用户可以理解为:
- 平台本地先做安全判断。
- 机场侧也会持有禁飞区文件。
- 任务下发到机场时,DJI 侧还会做一次飞行安全检查。
这一层主要用于防止本地判断遗漏或设备侧规则变化导致的风险。
10. 人工接管场景
适用对象:用户进行人工接管、远程控制或实时飞行监控。
系统会根据无人机当前位置、当前高度、地形高度、禁飞区和限飞区信息,给前端返回安全提醒。
用户感知:
- 如果无人机进入禁飞/限飞风险范围,前端可以展示告警。
- 如果当前高度不足,前端可以提示建议安全高度。
- 该能力主要用于提示,不会自动修改已经飞行中的航线。
11. 各类航线当前安全能力对比
| 航线类型 | 规划阶段禁飞区判断 | 规划阶段禁飞区绕行 | 规划阶段限飞区判断 | 创建任务后安全航线 | 下发前禁飞区检查 |
|---|---|---|---|---|---|
| 手动画航点航线 | 有 | 有 | 无 | 可开启 | 有 |
| 图斑调查航线 | 有,判断图斑范围 | 无 | 无 | 可开启 | 有 |
| 面状覆盖航线 | 无 | 无 | 无 | 可开启 | 有 |
| 安全航线 | 有 | 有 | 有,高度抬升 | 已处理 | 有 |
12. 异常和失败处理
| 场景 | 系统处理 |
|---|---|
| 航点落入禁飞区 | 阻断保存或安全航线生成失败。 |
| 航段穿过禁飞区但可绕行 | 自动插入绕行点。 |
| 航段穿过禁飞区且无法绕行 | 任务失败,不继续下发。 |
| 图斑范围与禁飞区相交 | 创建失败任务,记录禁飞区阻断。 |
| 面状航线规划后穿过禁飞区 | 规划阶段不阻断,后续依赖安全航线和下发前检查。 |
| 航点高度低于地形安全高度 | 自动抬高或插入高度调整点。 |
| 航线进入限飞区 | 不绕行,按限飞区高度和安全余量抬高。 |
| 下发前仍穿过禁飞区 | 阻断下发,任务失败。 |
13. 产品规则摘要
- 禁飞区必须优先规避,不能规避时必须阻断任务。
- 限飞区当前按高度安全处理,不作为绕行阻断条件。
- 图斑调查在业务入口处判断禁飞区,命中即不可正常派飞。
- 面状航线规划阶段不做禁飞/限飞判断,必须依赖后续任务安全流程。
- 开启安全航线后,系统会自动处理机场到航线、航线内部、返航段的禁飞区和高度风险。
- 任务下发前必须进行禁飞区二次检查。
- 设备侧 DJI 安全检查是最终兜底,但不应替代平台本地判断。
14. 后续可优化方向
以下是当前逻辑下可以继续完善的方向:
- 面状航线规划阶段增加禁飞区判断和绕行能力。
- 图斑调查规划阶段不仅判断图斑是否碰禁飞区,也尝试判断生成航线是否穿越禁飞区。
- 限飞区策略从“只抬高”扩展为“可配置绕行或抬高”。
- 在航线预览页面明确展示绕行点、高度调整点和阻断原因。
- 在任务创建页面明确展示
safeRoute是否开启,以及不开启时的风险提示。 - 对外部图斑任务返回更明确的失败原因,便于外部系统展示。