禁飞区检测模块

功能说明

本模块为无人机配送场景提供禁飞区安全校验功能。用户输入取货点和送货点的经纬度坐标,模块自动判断这两个点是否落在预设的禁飞区范围内。

应用场景

在无人机执行配送任务前,需要确认航线起止点不会进入敏感区域(如机场、军事基地、学校上空)。本模块提供了一种基于球面距离的快速检测方法。

算法原理

使用 Haversine 公式 计算两个经纬度坐标之间的球面距离,公式如下:

其中:

  • φ₁、φ₂ 为两点的纬度(弧度)
  • Δφ、Δλ 为两点纬度和经度的差值
  • R 为地球平均半径,取值 6371000 米
  • d 为最终距离(米)

使用方法

需要配合 AirSim 模拟器运行:

cd src/no_fly_zone_check
python main.py

运行效果

程序启动后会尝试连接 AirSim 模拟器。

运行截图

说明:上图为本地开发环境(未安装 AirSim 模拟器)的运行结果,程序正确执行了连接逻辑并给出了友好的错误提示。在已启动 AirSim 1.8.1 模拟器的环境中运行,将获取到无人机实时位置并完成禁飞区检测。