204 lines
6.2 KiB
Markdown
204 lines
6.2 KiB
Markdown
# 机场场面告警策略文档
|
||
|
||
## 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 时有效)
|
||
};
|
||
```
|