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

70 篇文章 237 订阅
42 篇文章 7 订阅

概述

*跳过Apollo\modules\planning\common\OpenSpaceInfo类,其主要针对非结构化道路,如泊车等?开放空间信息类,目前只专注于onlaneplanning

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

从类名来看,应该是路径边界类。

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

储存路径边界的相对于参考线SL坐标点序列;
储存frenet系起始纵坐标,纵坐标增量?
储存阻塞障碍物id

path_boundary.h

#pragma once

#include <string>
#include <utility>
#include <vector>

namespace apollo {
namespace planning {

class PathBoundary {
 public:
  //构造函数,用起始Frenet系纵坐标s,delta_s增量?还有一个二维向量点的vector是路径边界点序列?
  PathBoundary(const double start_s, const double delta_s,
               std::vector<std::pair<double, double>> path_boundary);

  //默认析构函数
  virtual ~PathBoundary() = default;

  //下面这两函数用于返回类的数据成员 start_s_,delta_s_
  double start_s() const;
  double delta_s() const;

  //设置类的数据成员,设置边界,用输入参数 二维向量点的vector去设置
  void set_boundary(const std::vector<std::pair<double, double>>& boundary);
  //返回类的数据成员路径边界
  const std::vector<std::pair<double, double>>& boundary() const;

  //设置类成员——标签,以及返回标签
  void set_label(const std::string& label);
  const std::string& label() const;

//设置及获取阻塞障碍物id
  void set_blocking_obstacle_id(const std::string& obs_id);
  const std::string& blocking_obstacle_id() const;

 private:
 //类数据成员,起始纵坐标,纵坐标增量,边界点序列,标签及阻塞障碍物id
  double start_s_ = 0.0;
  double delta_s_ = 0.0;
  std::vector<std::pair<double, double>> boundary_;
  std::string label_ = "regular";
  std::string blocking_obstacle_id_ = "";
};

}  // namespace planning
}  // namespace apollo

path_boundary.cc

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

namespace apollo {
namespace planning {

//路径边界类的带参构造函数,就是用起始纵坐标s,纵坐标增量s?还有边界点序列去初始化一个路径边界类对象,仅仅用参数去赋值给类数据成员start_s_,delta_s_,boundary_
PathBoundary::PathBoundary(const double start_s, const double delta_s,
                           std::vector<std::pair<double, double>> path_boundary)
    : start_s_(start_s),
      delta_s_(delta_s),
      boundary_(std::move(path_boundary)) {}

//获取类的数据成员 起始纵坐标,纵坐标增量(start_s_,delta_s_)
double PathBoundary::start_s() const { return start_s_; }
double PathBoundary::delta_s() const { return delta_s_; }

//设置类数据成员,路径边界,其实就是用输入的点序列拷贝给类成员boundary_ 
void PathBoundary::set_boundary(
    const std::vector<std::pair<double, double>>& boundary) {
  boundary_ = boundary;
}

//返回类数据成员 路径边界boundary_
const std::vector<std::pair<double, double>>& PathBoundary::boundary() const {
  return boundary_;
}

//设置及返回类数据成员 路径标签label_
void PathBoundary::set_label(const std::string& label) { label_ = label; }
const std::string& PathBoundary::label() const { return label_; }

//设置及返回数据成员 阻塞障碍物id blocking_obstacle_id_ 
void PathBoundary::set_blocking_obstacle_id(const std::string& obs_id) {
  blocking_obstacle_id_ = obs_id;
}
const std::string& PathBoundary::blocking_obstacle_id() const {
  return blocking_obstacle_id_;
}

}  // namespace planning
}  // namespace apollo

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

wujiangzhu_xjtu

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

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

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

打赏作者

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

抵扣说明:

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

余额充值