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

#include <spline_1d_solver.h>

类 apollo::planning::Spline1dSolver 继承关系图:
apollo::planning::Spline1dSolver 的协作图:

Public 成员函数

 Spline1dSolver (const std::vector< double > &x_knots, const uint32_t order)
 
virtual ~Spline1dSolver ()=default
 
virtual void Reset (const std::vector< double > &x_knots, const uint32_t order)
 
virtual Spline1dConstraint * mutable_spline_constraint ()
 
virtual Spline1dKernel * mutable_spline_kernel ()
 
virtual bool Solve ()=0
 
virtual const Spline1d & spline () const
 
void GenerateProblemProto (QuadraticProgrammingProblem *const qp_proto) const
 

Protected 成员函数

void ConvertMatrixXdToProto (const Eigen::MatrixXd &matrix, QPMatrix *const proto) const
 

Protected 属性

Spline1d spline_
 
Spline1dConstraint constraint_
 
Spline1dKernel kernel_
 
int last_num_constraint_ = 0
 
int last_num_param_ = 0
 
bool last_problem_success_ = false
 

详细描述

在文件 spline_1d_solver.h 第 37 行定义.

构造及析构函数说明

◆ Spline1dSolver()

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

在文件 spline_1d_solver.h 第 39 行定义.

40 : spline_(x_knots, order),
41 constraint_(x_knots, order),
42 kernel_(x_knots, order) {}

◆ ~Spline1dSolver()

virtual apollo::planning::Spline1dSolver::~Spline1dSolver ( )
virtualdefault

成员函数说明

◆ ConvertMatrixXdToProto()

void apollo::planning::Spline1dSolver::ConvertMatrixXdToProto ( const Eigen::MatrixXd &  matrix,
QPMatrix *const  proto 
) const
protected

在文件 spline_1d_solver.cc 第 72 行定义.

73 {
74 int row_size = static_cast<int>(matrix.rows());
75 int col_size = static_cast<int>(matrix.cols());
76
77 proto->set_row_size(row_size);
78 proto->set_col_size(col_size);
79
80 for (int r = 0; r < row_size; ++r) {
81 for (int c = 0; c < col_size; ++c) {
82 proto->add_element(matrix(r, c));
83 }
84 }
85}

◆ GenerateProblemProto()

void apollo::planning::Spline1dSolver::GenerateProblemProto ( QuadraticProgrammingProblem *const  qp_proto) const

在文件 spline_1d_solver.cc 第 28 行定义.

29 {
30 const MatrixXd& kernel_matrix = kernel_.kernel_matrix();
31 const MatrixXd& offset = kernel_.offset();
32 const MatrixXd& inequality_constraint_matrix =
34 const MatrixXd& inequality_constraint_boundary =
36 const MatrixXd& equality_constraint_matrix =
38 const MatrixXd& equality_constraint_boundary =
40
41 qp_proto->set_param_size(static_cast<int32_t>(kernel_matrix.rows()));
42 ConvertMatrixXdToProto(kernel_matrix, qp_proto->mutable_quadratic_matrix());
43
44 for (int i = 0; i < offset.rows(); ++i) {
45 qp_proto->add_bias(offset(i, 0));
46 }
47
48 ConvertMatrixXdToProto(inequality_constraint_matrix,
49 qp_proto->mutable_inequality_matrix());
50
51 for (int i = 0; i < inequality_constraint_boundary.rows(); ++i) {
52 qp_proto->add_inequality_value(inequality_constraint_boundary(i, 0));
53 }
54
55 ConvertMatrixXdToProto(equality_constraint_matrix,
56 qp_proto->mutable_equality_matrix());
57
58 for (int i = 0; i < equality_constraint_boundary.rows(); ++i) {
59 qp_proto->add_equality_value(equality_constraint_boundary(i, 0));
60 }
61
62 // add the optimal solution
63 const auto& splines = spline_.splines();
64 for (const auto& spline_seg : splines) {
65 const auto& param_seg = spline_seg.spline_func().params();
66 for (const auto value : param_seg) {
67 qp_proto->add_optimal_param(value);
68 }
69 }
70}
const Eigen::MatrixXd & constraint_boundary() const
const Eigen::MatrixXd & constraint_matrix() const
const AffineConstraint & equality_constraint() const
const AffineConstraint & inequality_constraint() const
: output interface inequality constraint
const Eigen::MatrixXd & kernel_matrix() const
const Eigen::MatrixXd & offset() const
void ConvertMatrixXdToProto(const Eigen::MatrixXd &matrix, QPMatrix *const proto) const
const std::vector< Spline1dSeg > & splines() const
Definition spline_1d.cc:90

◆ mutable_spline_constraint()

virtual Spline1dConstraint * apollo::planning::Spline1dSolver::mutable_spline_constraint ( )
inlinevirtual

在文件 spline_1d_solver.h 第 52 行定义.

52 {
53 return &constraint_;
54 }

◆ mutable_spline_kernel()

virtual Spline1dKernel * apollo::planning::Spline1dSolver::mutable_spline_kernel ( )
inlinevirtual

在文件 spline_1d_solver.h 第 56 行定义.

56{ return &kernel_; }

◆ Reset()

virtual void apollo::planning::Spline1dSolver::Reset ( const std::vector< double > &  x_knots,
const uint32_t  order 
)
inlinevirtual

在文件 spline_1d_solver.h 第 46 行定义.

46 {
47 spline_ = Spline1d(x_knots, order);
48 constraint_ = Spline1dConstraint(x_knots, order);
49 kernel_ = Spline1dKernel(x_knots, order);
50 }

◆ Solve()

virtual bool apollo::planning::Spline1dSolver::Solve ( )
pure virtual

◆ spline()

virtual const Spline1d & apollo::planning::Spline1dSolver::spline ( ) const
inlinevirtual

在文件 spline_1d_solver.h 第 61 行定义.

61{ return spline_; }

类成员变量说明

◆ constraint_

Spline1dConstraint apollo::planning::Spline1dSolver::constraint_
protected

在文件 spline_1d_solver.h 第 72 行定义.

◆ kernel_

Spline1dKernel apollo::planning::Spline1dSolver::kernel_
protected

在文件 spline_1d_solver.h 第 73 行定义.

◆ last_num_constraint_

int apollo::planning::Spline1dSolver::last_num_constraint_ = 0
protected

在文件 spline_1d_solver.h 第 75 行定义.

◆ last_num_param_

int apollo::planning::Spline1dSolver::last_num_param_ = 0
protected

在文件 spline_1d_solver.h 第 76 行定义.

◆ last_problem_success_

bool apollo::planning::Spline1dSolver::last_problem_success_ = false
protected

在文件 spline_1d_solver.h 第 77 行定义.

◆ spline_

Spline1d apollo::planning::Spline1dSolver::spline_
protected

在文件 spline_1d_solver.h 第 71 行定义.


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