Go to file
2024-12-19 18:45:18 +08:00
config 增加安全区冲突检测 2024-12-18 02:58:44 +08:00
docs 修改部署指南 2024-12-19 17:30:53 +08:00
scripts 修改离线脚本的错误 2024-12-19 18:45:18 +08:00
src 增加安全区冲突检测 2024-12-18 02:58:44 +08:00
tests 增加安全区冲突检测 2024-12-18 02:58:44 +08:00
tools 增加离线部署脚本 2024-12-19 16:47:34 +08:00
.clangd 初步建立了一个框架,并添加了HTTP数据源和一个模拟服务器 2024-11-13 19:05:55 +08:00
.cursorignore 更新依赖库到最新版本,C++ 标准升级到 C++20 2024-11-17 01:37:34 +08:00
.cursorrules 修改碰撞逻辑以圆形为基础 2024-12-14 17:32:24 +08:00
.gitignore 删除错误的离线部署包 2024-12-19 16:48:47 +08:00
CMakeLists.txt 增加安全区冲突检测 2024-12-18 02:58:44 +08:00
compile_commands.json 初步建立了一个框架,并添加了HTTP数据源和一个模拟服务器 2024-11-13 19:05:55 +08:00
README.md 在AirportBounds.h 中添加了告警阈值的计算逻辑,修改了碰撞检测逻辑 2024-11-18 23:49:54 +08:00

机场地面碰撞预警系统

项目简介

该系统用于监测和预警机场地面航空器与车辆之间的潜在碰撞风险。通过实时采集和分析位置数据,为机场运营提供安全保障。

功能特性

  • 实时数据采集:获取航空器和车辆的位置信息
  • 碰撞风险检测:基于安全距离进行碰撞风险评估
  • 运动参数计算:自动计算速度和航向信息
  • 坐标转换:支持地理坐标和平面坐标转换
  • 日志记录:详细的运行日志和警告信息

系统架构

  • 数据采集模块:从数据源获取位置信息
  • 碰撞检测模块:分析潜在的碰撞风险
  • 坐标转换模块:处理不同坐标系统
  • 核心数据类型:定义基础的数据结构
  • 性能测试模块:使用 Google Benchmark 进行性能评估

开发环境

  • C++17
  • CMake 3.14+
  • Boost 1.86.0
  • nlohmann_json 3.11.3
  • Google Test
  • Google Mock
  • Google Benchmark

构建说明

# 创建构建目录
mkdir build && cd build

# 配置项目(启用测试)
cmake -DBUILD_TESTING=ON ..

# 编译
cmake --build .

# 运行单元测试
ctest --output-on-failure

# 运行性能测试
./bin/benchmark_tests

测试框架

  • 单元测试:使用 Google Test 框架
  • Mock 测试:使用 Google Mock 进行模拟
  • 性能测试:使用 Google Benchmark
  • 测试覆盖:
    • 基础数据类型
    • 碰撞检测逻辑
    • 数据采集功能
    • HTTP 数据源
    • 性能基准测试

目录结构

graph TD
    A[ObstacleAvoidance] --> B[src]
    A --> C[tests]
    A --> D[tools]
    A --> E[docs]
    A --> F[build]
    A --> G[benchmarks]
    
    B --> BA[collector]
    B --> BB[detector]
    B --> BC[network]
    B --> BD[spatial]
    B --> BE[types]
    B --> BF[utils]
    B --> BG[core]
    
    BA --> BAA[DataCollector.h/cpp]
    BA --> BAB[DataSource.h]
    
    BB --> BBA[CollisionDetector.h/cpp]
    
    BC --> BCA[HTTPDataSource.h/cpp]
    BC --> BCB[ConnectionConfig.h]
    
    BD --> BDA[CoordinateConverter.h/cpp]
    
    BE --> BEA[BasicTypes.h/cpp]
    
    BF --> BFA[Logger.h/cpp]
    
    BG --> BGA[System.h/cpp]
    
    C --> CA[BasicTypesTest.cpp]
    C --> CB[CollisionDetectorTest.cpp]
    C --> CC[DataCollectorTest.cpp]
    C --> CD[HTTPDataSourceTest.cpp]
    
    G --> GA[CollisionDetectorBenchmark.cpp]
    G --> GB[CoordinateConverterBenchmark.cpp]
    
    D --> DA[mock_server.py]

依赖管理

项目使用 CMake 的 FetchContent 模块管理第三方依赖:

include(FetchContent)

FetchContent_Declare(
    json
    URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz
)
FetchContent_MakeAvailable(json)

配置说明

  • 数据源配置:

    • 主机localhost
    • 端口8080
    • API路径
      • /api/getCurrentFlightPositions
      • /api/getCurrentVehiclePositions
  • 安全参数:

    • 水平安全距离50米
    • 垂直安全距离50米
    • 最大速度限制:
      • 航空器100米/秒
      • 车辆30米/秒

开发团队

  • 项目负责人:[田建勇]
  • 开发人员:[赵豪、陈横、刘青宇]

许可证

[License Type]

版本历史

  • v1.1.0 (2024-03-20)

    • 添加 Google Benchmark 性能测试
    • 升级 CMake 最低版本至 3.14
    • 规范化第三方库版本管理
    • 添加 FetchContent 依赖管理
  • v1.0.0 (2024-11-15)

    • 初始版本发布
    • 基本功能实现
    • 单元测试框架搭建