概述
*跳过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