CollisionAvoidance/docs/warning_strategy.md
2024-12-30 09:41:17 +08:00

6.2 KiB
Raw Permalink Blame History

机场场面告警策略文档

1. 控制指令定义

系统对无人车的控制分为以下指令类型:

// 指令类型
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. 信号灯状态响应

    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. 控制策略

    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. 控制策略

    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 指令格式

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 时有效)
};