百度apollo自动驾驶planning代码学习-Apollo\modules\planning\common\PlanningContext类代码详解

概述

PlanningContext类是apollo planning模块下modules\planning\common\planning_context.cc/.h实现

从类名来看,应该是规划上下文类。

从代码来看PlanningContext类主要是实现:

储存了规划在各个场景下的详细的状态信息,如变道时的时间戳,状态(未完成/完成/失败),变道起始位置等。
主要是依靠数据成员PlanningStatus类变量planning_status_实现上述信息储存。
以及信息清空/设置操作函数。

planning_context.h

#pragma once

#include "cyber/common/macros.h"
#include "modules/planning/proto/planning_status.pb.h"

/**
 * @brief PlanningContext是规划中的运行时前后背景环境?它持续多个frame?
 */
namespace apollo {
namespace planning {

class PlanningContext {
 public:
  //默认构造函数
  PlanningContext() = default;

  //清空类成员planning_status_里储存的信息
  void Clear();
  void Init();  //该函数代码为空

  /*
   * 请把所有的状态信息放在PlanningStatus中,以便于维护。
   * */
  //返回类成员 规划状态,不能修改
  const PlanningStatus& planning_status() const { return planning_status_; }
  //返回类成员 规划状态,能修改
  //modules\planning\proto\planning_status.proto中定义了PlanningStatus类,由google protobuf用法,针对.proto文件生成的c++类
  //PlanningStatus里面包含了规划在各个场景下的详细的状态信息,如变道时的时间戳,状态(未完成/完成/失败),变道起始位置等
  PlanningStatus* mutable_planning_status() { return &planning_status_; }

 private:
  PlanningStatus planning_status_;
};

}  // namespace planning
}  // namespace apollo

planning_context.cc

#include "modules/planning/common/planning_context.h"

namespace apollo {
namespace planning {

void PlanningContext::Init() {}

void PlanningContext::Clear() { planning_status_.Clear(); }

}  // namespace planning
}  // namespace apollo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wujiangzhu_xjtu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值