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

#include <feasible_region.h>

apollo::planning::FeasibleRegion 的协作图:

Public 成员函数

 FeasibleRegion (const std::array< double, 3 > &init_s)
 
double SUpper (const double t) const
 
double SLower (const double t) const
 
double VUpper (const double t) const
 
double VLower (const double t) const
 
double TLower (const double s) const
 

详细描述

在文件 feasible_region.h 第 30 行定义.

构造及析构函数说明

◆ FeasibleRegion()

apollo::planning::FeasibleRegion::FeasibleRegion ( const std::array< double, 3 > &  init_s)
explicit

在文件 feasible_region.cc 第 31 行定义.

31 {
32 init_s_ = init_s;
33
34 double v = init_s[1];
35 CHECK_GE(v, 0.0);
36
37 const double max_deceleration = -FLAGS_longitudinal_acceleration_lower_bound;
38 t_at_zero_speed_ = v / max_deceleration;
39 s_at_zero_speed_ = init_s[0] + v * v / (2.0 * max_deceleration);
40}

成员函数说明

◆ SLower()

double apollo::planning::FeasibleRegion::SLower ( const double  t) const

在文件 feasible_region.cc 第 48 行定义.

48 {
49 if (t < t_at_zero_speed_) {
50 return init_s_[0] + init_s_[1] * t +
51 0.5 * FLAGS_longitudinal_acceleration_lower_bound * t * t;
52 }
53 return s_at_zero_speed_;
54}

◆ SUpper()

double apollo::planning::FeasibleRegion::SUpper ( const double  t) const

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

42 {
43 ACHECK(t >= 0.0);
44 return init_s_[0] + init_s_[1] * t +
45 0.5 * FLAGS_longitudinal_acceleration_upper_bound * t * t;
46}
#define ACHECK(cond)
Definition log.h:80

◆ TLower()

double apollo::planning::FeasibleRegion::TLower ( const double  s) const

在文件 feasible_region.cc 第 66 行定义.

66 {
67 ACHECK(s >= init_s_[0]);
68
69 double delta_s = s - init_s_[0];
70 double v = init_s_[1];
71 double a = FLAGS_longitudinal_acceleration_upper_bound;
72 double t = (std::sqrt(v * v + 2.0 * a * delta_s) - v) / a;
73 return t;
74}

◆ VLower()

double apollo::planning::FeasibleRegion::VLower ( const double  t) const

在文件 feasible_region.cc 第 60 行定义.

60 {
61 return t < t_at_zero_speed_
62 ? init_s_[1] + FLAGS_longitudinal_acceleration_lower_bound * t
63 : 0.0;
64}

◆ VUpper()

double apollo::planning::FeasibleRegion::VUpper ( const double  t) const

在文件 feasible_region.cc 第 56 行定义.

56 {
57 return init_s_[1] + FLAGS_longitudinal_acceleration_upper_bound * t;
58}

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