QDAirPortTestSystemBackend/docs/warning_strategy.md
2026-01-27 15:24:05 +08:00

204 lines
6.2 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 机场场面告警策略文档
## 1. 控制指令定义
系统对无人车的控制分为以下指令类型:
```cpp
// 指令类型
enum class CommandType {
ALERT, // 告警指令
SIGNAL, // 信号灯指令
WARNING, // 预警指令
RESUME // 恢复指令
};
// 指令原因
enum class CommandReason {
TRAFFIC_LIGHT, // 红绿灯控制
AIRCRAFT_CROSSING, // 航空器交叉
SPECIAL_VEHICLE, // 特勤车辆
AIRCRAFT_PUSH, // 航空器推出
RESUME_TRAFFIC // 恢复通行
};
// 信号灯状态
enum class SignalState {
RED, // 红灯
GREEN // 绿灯
};
```
### 1.1 信号灯指令SIGNAL
- **目的**:响应交通信号灯
- **触发条件**:接收到红绿灯状态变化
- **执行动作**:根据信号灯状态停车或通行
- **优先级**4最高优先级
- **原因**TRAFFIC_LIGHT
### 1.2 告警指令ALERT
- **目的**:应对紧急情况
- **触发条件**:检测到直接碰撞风险
- **执行动作**:强制停车或紧急避让
- **优先级**3
- **原因**AIRCRAFT_CROSSING, SPECIAL_VEHICLE, AIRCRAFT_PUSH
### 1.3 预警指令WARNING
- **目的**:提前告知可能的风险
- **触发条件**:进入监测区域但尚未到达关键区域
- **执行动作**:降低速度,提高警惕
- **优先级**2
- **原因**AIRCRAFT_CROSSING, SPECIAL_VEHICLE, AIRCRAFT_PUSH
### 1.4 恢复指令RESUME
- **目的**:恢复到正常行驶状态
- **触发条件**:航空器或特勤车辆通过后,距离路口 50 m后
- **执行动作**:恢复到正常行驶状态
- **优先级**1最低优先级
- **原因**RESUME_TRAFFIC
## 2. 红绿灯条件下的告警策略
### 2.1 适用场景
- 无人车接近带有红绿灯的交叉路口时的行为控制
- 主要针对机场内各主要道路交叉口
### 2.2 告警条件
1. **距离阈值**
- 车辆进入路口 200 米范围内开始监测
- 在距离路口 50 米处为停车点
2. **信号灯状态响应**
```cpp
struct VehicleCommand {
std::string vehicleId; // 车辆ID
CommandType type; // 指令类型SIGNAL
CommandReason reason; // 指令原因TRAFFIC_LIGHT
SignalState signalState; // 信号灯状态
std::string intersectionId; // 路口ID
double latitude; // 路口纬度
double longitude; // 路口经度
};
```
## 3. 航空器或特勤车辆,和无人车垂直经过交叉路口的告警策略
### 3.1 适用场景
- 滑行道与车行道的交叉路口
- 航空器或特勤车辆,和无人车垂直交叉,预判可能冲突的情况
### 3.2 告警条件
1. **距离监测**
- 航空器或特勤车辆通过路口无人车距离路口阈值100 米
2. **控制策略**
```cpp
struct VehicleCommand {
std::string vehicleId; // 车辆ID
CommandType type; // 指令类型WARNING/ALERT
CommandReason reason; // 指令原因AIRCRAFT_CROSSING/SPECIAL_VEHICLE
double latitude; // 目标位置纬度
double longitude; // 目标位置经度
double relativeSpeed; // 相对速度
double relativeMotionX; // 相对运动 X 分量
double relativeMotionY; // 相对运动 Y 分量
double minDistance; // 最小距离
};
```
## 4. 航空器出库时的告警策略
### 4.1 适用场景
- 航空器从机库或维修区驶出
- 与服务区道路的交叉路口
### 4.2 告警条件
1. **距离监测**
- 航空器通过路口无人车距离路口阈值100 米
2. **控制策略**
```cpp
struct VehicleCommand {
std::string vehicleId; // 车辆ID
CommandType type; // 指令类型WARNING/ALERT
CommandReason reason; // 指令原因AIRCRAFT_PUSH
double latitude; // 目标位置纬度
double longitude; // 目标位置经度
double relativeSpeed; // 相对速度
double relativeMotionX; // 相对运动 X 分量
double relativeMotionY; // 相对运动 Y 分量
double minDistance; // 最小距离
};
```
## 5. 通用要求
### 5.1 指令优先级处理
1. SIGNAL 指令(优先级 4
- 立即执行
- 覆盖其他所有指令
- 红绿灯控制具有最高优先级,确保交通安全
2. ALERT 指令(优先级 3
- 可被 SIGNAL 指令覆盖
- 优先于 WARNING 指令
- 用于碰撞风险等紧急情况
3. WARNING 指令(优先级 2
- 可被 SIGNAL 和 ALERT 指令覆盖
- 用于预防性控制
- 在无更高优先级指令时执行
4. RESUME 指令(优先级 1
- 可被其他指令覆盖
- 用于恢复到正常行驶状态
### 5.2 系统响应时间
- 告警信号处理延迟 < 100ms
- 控制指令执行延迟 < 200ms
- 状态反馈延迟 < 300ms
### 5.3 降级处理
- 在通信中断时无人车应自动降速或停车
- 在传感器失效时扩大安全距离
### 5.4 提前量
- 无人车在距离路口 110 米处开始监测提前 10 米发送 WARNING 指令
- 无人车在距离路口 60 米处开始监测提前 10 米发送 ALERT 指令
### 5.5 指令格式
```cpp
struct VehicleCommand {
std::string vehicleId; // 车辆ID
CommandType type; // 指令类型
CommandReason reason; // 指令原因
uint64_t timestamp; // 时间戳
SignalState signalState; // 信号灯状态(仅当 type 为 SIGNAL 时有效)
std::string intersectionId; // 路口ID仅当 type 为 SIGNAL 时有效)
double latitude; // 目标位置纬度(路口/航空器/特勤车)
double longitude; // 目标位置经度(路口/航空器/特勤车)
double relativeSpeed; // 相对速度(仅当 type 为 ALERT/WARNING 时有效)
double relativeMotionX; // 相对运动 X 分量(仅当 type 为 ALERT/WARNING 时有效)
double relativeMotionY; // 相对运动 Y 分量(仅当 type 为 ALERT/WARNING 时有效)
double minDistance; // 最小距离(仅当 type 为 ALERT/WARNING 时有效)
};
```