Apollo 11.0
自动驾驶开放平台
apollo::planning::Spline1d类 参考

#include <spline_1d.h>

apollo::planning::Spline1d 的协作图:

Public 成员函数

 Spline1d (const std::vector< double > &x_knots, const uint32_t order)
 
double operator() (const double x) const
 
double Derivative (const double x) const
 
double SecondOrderDerivative (const double x) const
 
double ThirdOrderDerivative (const double x) const
 
bool SetSplineSegs (const Eigen::MatrixXd &param_matrix, const uint32_t order)
 
const std::vector< double > & x_knots () const
 
uint32_t spline_order () const
 
const std::vector< Spline1dSeg > & splines () const
 

详细描述

在文件 spline_1d.h 第 40 行定义.

构造及析构函数说明

◆ Spline1d()

apollo::planning::Spline1d::Spline1d ( const std::vector< double > &  x_knots,
const uint32_t  order 
)

在文件 spline_1d.cc 第 27 行定义.

28 : x_knots_(x_knots), spline_order_(order) {
29 for (uint32_t i = 1; i < x_knots_.size(); ++i) {
30 splines_.emplace_back(spline_order_);
31 }
32}
const std::vector< double > & x_knots() const
Definition spline_1d.cc:86

成员函数说明

◆ Derivative()

double apollo::planning::Spline1d::Derivative ( const double  x) const

在文件 spline_1d.cc 第 42 行定义.

42 {
43 // zero order spline
44 if (splines_.empty()) {
45 return 0.0;
46 }
47 uint32_t index = FindIndex(x);
48 return splines_[index].Derivative(x - x_knots_[index]);
49}

◆ operator()()

double apollo::planning::Spline1d::operator() ( const double  x) const

在文件 spline_1d.cc 第 34 行定义.

34 {
35 if (splines_.empty()) {
36 return 0.0;
37 }
38 uint32_t index = FindIndex(x);
39 return splines_[index](x - x_knots_[index]);
40}

◆ SecondOrderDerivative()

double apollo::planning::Spline1d::SecondOrderDerivative ( const double  x) const

在文件 spline_1d.cc 第 51 行定义.

51 {
52 if (splines_.empty()) {
53 return 0.0;
54 }
55 uint32_t index = FindIndex(x);
56 return splines_[index].SecondOrderDerivative(x - x_knots_[index]);
57}

◆ SetSplineSegs()

bool apollo::planning::Spline1d::SetSplineSegs ( const Eigen::MatrixXd &  param_matrix,
const uint32_t  order 
)

在文件 spline_1d.cc 第 67 行定义.

68 {
69 const uint32_t num_params = order + 1;
70 // check if the parameter size fit
71 if (x_knots_.size() * num_params !=
72 num_params + static_cast<uint32_t>(param_matrix.rows())) {
73 return false;
74 }
75 for (uint32_t i = 0; i < splines_.size(); ++i) {
76 std::vector<double> spline_piece(num_params, 0.0);
77 for (uint32_t j = 0; j < num_params; ++j) {
78 spline_piece[j] = param_matrix(i * num_params + j, 0);
79 }
80 splines_[i].SetParams(spline_piece);
81 }
82 spline_order_ = order;
83 return true;
84}

◆ spline_order()

uint32_t apollo::planning::Spline1d::spline_order ( ) const

在文件 spline_1d.cc 第 88 行定义.

88{ return spline_order_; }

◆ splines()

const std::vector< Spline1dSeg > & apollo::planning::Spline1d::splines ( ) const

在文件 spline_1d.cc 第 90 行定义.

90{ return splines_; }

◆ ThirdOrderDerivative()

double apollo::planning::Spline1d::ThirdOrderDerivative ( const double  x) const

在文件 spline_1d.cc 第 59 行定义.

59 {
60 if (splines_.empty()) {
61 return 0.0;
62 }
63 uint32_t index = FindIndex(x);
64 return splines_[index].ThirdOrderDerivative(x - x_knots_[index]);
65}

◆ x_knots()

const std::vector< double > & apollo::planning::Spline1d::x_knots ( ) const

在文件 spline_1d.cc 第 86 行定义.

86{ return x_knots_; }

该类的文档由以下文件生成: