# 机场地面碰撞预警系统(测试平台) ## 项目简介 该系统用于监测和预警机场地面航空器与车辆之间的潜在碰撞风险。通过实时采集和分析位置数据,为机场运营提供安全保障。 本系统运行在机场测试平台中,用于测试和验证碰撞预警系统的功能可行性。 ## 功能特性 - 实时数据采集:获取航空器和车辆的位置信息 - 碰撞风险检测:基于安全距离进行碰撞风险评估 - 运动参数计算:自动计算速度和航向信息 - 坐标转换:支持地理坐标和平面坐标转换 - 日志记录:详细的运行日志和警告信息 ## 系统架构 - 数据采集模块:从数据源获取位置信息 - 碰撞检测模块:分析潜在的碰撞风险 - 坐标转换模块:处理不同坐标系统 - 核心数据类型:定义基础的数据结构 - 性能测试模块:使用 Google Benchmark 进行性能评估 ## 开发环境 - C++17 - CMake 3.14+ - Boost 1.86.0 - nlohmann_json 3.11.3 - Google Test - Google Mock - Google Benchmark ## 构建说明 ```bash # 创建构建目录 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 数据源 - 性能基准测试 ## 目录结构 ```mermaid graph TD A[CollisionAvoidance] --> 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 模块管理第三方依赖: ```cmake include(FetchContent) FetchContent_Declare( json URL https://github.com/nlohmann/json/releases/download/v3.11.3/json.tar.xz ) FetchContent_MakeAvailable(json) ``` ## 配置说明 - 数据源配置: - 主机:localhost - 端口:8081 - 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) - 初始版本发布 - 基本功能实现 - 单元测试框架搭建 ## Mock 服务 用于模拟机场场面的移动物体(航空器和车辆),提供以下功能: - 航空器位置更新 - 车辆位置更新 - 红绿灯状态更新 - 车辆控制指令响应 ### API 接口 - GET /api/getCurrentFlightPositions - 获取航空器位置 - GET /api/getCurrentVehiclePositions - 获取车辆位置 - GET /api/getTrafficLightSignals - 获取红绿灯状态 - POST /api/vehicle/command - 发送车辆控制指令 ### 运行方式 ```bash cd tools python mock_server.py ``` 服务默认监听: - HTTP 服务: ### 模拟场景 - 航空器:T7 -> T11,到达后返回起点 - 无人车1 (QN001):T1 -> T2 -> T4,到达后返回起点 - 无人车2 (QN002):T12 -> T8,到达后返回起点 - 特勤车 (TQ001):T4 -> T2 -> T3,到达后返回起点 ### 红绿灯控制 - 西路口 (TL001):每10秒切换一次 - 东路口 (TL002):根据航空器位置自动控制 ### 车辆控制指令优先级 1. ALERT (5) - 告警指令 2. RED (4) - 红灯指令 3. WARNING (3) - 预警指令 4. GREEN (2) - 绿灯状态 5. RESUME (1) - 恢复指令