百度ApolloPlanning模块理解,以自动泊车为例

版本:apollo5.0以上

1、模块理解

首先需要理解Planning模块是基于Scenario、Stage、Task这样的层次来进行的,即:场景->步骤->具体的决策方法。Apollo可以应对自动驾驶所面临的不同道路场景,都是通过Scenario统一注册与管理。Scenario通过一个有限状态机来判断选择当前行车场景,每个Scenario下又有多个Stage,指当前场景下需要执行的粗略步骤,例如泊车分为两个Stage:泊车前的制动停车、车辆停止之后开始泊车。Task会列出该Stage的具体方法。


2、代码示例

现在看代码,首先是场景的判断
apollo-master\modules\planning\scenarios\scenario_manager.cc
首先调用ValetParkingScenario::IsTransferable函数对场景进行条件判断,如果条件满足才会调用VALET_PARKING 的Scenario泊车场景。

ScenarioConfig::ScenarioType ScenarioManager::SelectValetParkingScenario(
    const Frame& frame) {
   
  const auto& scenario_config =
      config_map_[ScenarioConfig::VALET_PARKING].valet_parking_config();

  // TODO(All) trigger valet parking by route message definition as of now
  double parking_spot_range_to_start =
      scenario_config.parking_spot_range_to_start();
  if (scenario::valet_parking::ValetParkingScenario::IsTransferable(
          frame, parking_spot_range_to_start)) {
   
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值