Apollo自动驾驶系统:基于规则的停止决策器深度解析

Apollo自动驾驶系统:基于规则的停止决策器深度解析

apollo An open autonomous driving platform apollo 项目地址: https://gitcode.com/gh_mirrors/apo/apollo

概述

在Apollo自动驾驶系统中,基于规则的停止决策器(RuleBasedStopDecider)是规划模块的重要组成部分。作为decider类别中的关键任务,它负责在特定场景下根据预设规则生成停止决策,确保自动驾驶车辆的安全行驶。

停止决策器在规划模块中的位置

规划模块的运动规划流程是一个多阶段决策过程,基于规则的停止决策器在其中扮演着"安全守门员"的角色。它位于路径生成和速度规划之间,主要功能包括:

  1. 检测需要停止的特殊场景
  2. 根据预设规则评估停止必要性
  3. 在参考线上设置适当的停止点

核心功能实现

1. 逆向车道通过停止

当车辆需要进行逆向车道超车或避让时,系统会执行以下判断流程:

  1. 路径标签检查:首先确认当前路径是否为"自身车道"行驶
  2. 障碍物检测:评估逆向车道上是否存在阻塞障碍物
  3. 停止栅栏设置:在必要时设置停止点,等待逆向车道畅通
// 逆向车道停止判断核心逻辑
if (!check_clear &&
    CheckSidePassStop(path_data, *reference_line_info, &stop_s_on_pathdata)) {
    if (!LaneChangeDecider::IsPerceptionBlocked(...)) {
        return; // 无障碍物直接返回
    }
    // 设置停止栅栏
    BuildSidePassStopFence(...); 
}

2. 紧急换道检查

系统会持续监控换道需求的紧急程度,主要考虑:

  1. 目标车道状态:检查目标车道是否畅通
  2. 路线终点距离:计算车辆距离当前路线终点的剩余距离
  3. 紧急停止判断:当距离终点过近且换道受阻时触发紧急停止
// 紧急换道检查关键参数
double distance_to_passage_end = sl_point.s() - reference_line_info.AdcSlBoundary().end_s();

if (distance_to_passage_end < urgent_distance_for_lane_change) {
    // 设置紧急停止栅栏
    util::BuildStopDecision(...);
}

3. 路径终点停止

当检测到车辆接近路径终点时,系统会:

  1. 路径长度评估:检查当前路径是否过短
  2. 终点停止设置:在路径终点前适当位置设置停止点
  3. 安全缓冲:通常会在理论终点前预留5米缓冲距离
// 路径终点停止实现
if (frenet_frame_path().back().s() - frenet_frame_path().front().s() < 
    FLAGS_short_path_length_threshold) {
    // 在终点前5米设置停止点
    util::BuildStopDecision(..., frenet_frame_path().back().s() - 5.0, ...);
}

技术实现细节

停止栅栏构建原理

停止决策器的核心是停止栅栏(Stop Fence)的构建,主要涉及:

  1. 位置计算:在Frenet坐标系下精确计算停止点位置
  2. 安全距离:考虑车辆制动性能设置合理提前量
  3. 原因标注:明确记录停止原因(如路径终点、紧急换道等)

多条件优先级处理

当多个停止条件同时满足时,系统会按照预设优先级处理:

  1. 安全相关条件(如紧急换道)优先于常规条件
  2. 静态条件(如路径终点)优先于动态条件
  3. 近距离条件优先于远距离条件

实际应用考量

在实际自动驾驶场景中,基于规则的停止决策器需要特别注意:

  1. 参数调优:不同车型需要调整停止距离等参数
  2. 场景覆盖:确保规则覆盖各种边缘场景
  3. 平滑过渡:停止决策与其他规划模块的协调

总结

Apollo的基于规则的停止决策器通过精心设计的判断逻辑和安全策略,为自动驾驶系统提供了可靠的停止决策能力。理解其工作原理对于开发安全可靠的自动驾驶系统至关重要,也是进一步优化规划算法的基础。

apollo An open autonomous driving platform apollo 项目地址: https://gitcode.com/gh_mirrors/apo/apollo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

劳妍沛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值