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

Create traffic related decision in this class. 更多...

#include <traffic_decider.h>

apollo::planning::TrafficDecider 的协作图:

Public 成员函数

 TrafficDecider ()=default
 
bool Init (const std::shared_ptr< DependencyInjector > &injector)
 
virtual ~TrafficDecider ()=default
 
apollo::common::Status Execute (Frame *frame, ReferenceLineInfo *reference_line_info)
 

详细描述

Create traffic related decision in this class.

The created obstacles is added to obstacles_, and the decision is added to obstacles_ Traffic obstacle examples include:

  • Traffic Light
  • End of routing
  • Select the drivable reference line.

在文件 traffic_decider.h47 行定义.

构造及析构函数说明

◆ TrafficDecider()

apollo::planning::TrafficDecider::TrafficDecider ( )
default

◆ ~TrafficDecider()

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

成员函数说明

◆ Execute()

Status apollo::planning::TrafficDecider::Execute ( Frame frame,
ReferenceLineInfo reference_line_info 
)

在文件 traffic_decider.cc105 行定义.

106 {
107 CHECK_NOTNULL(frame);
108 CHECK_NOTNULL(reference_line_info);
109
110 for (const auto &rule : rule_list_) {
111 if (!rule) {
112 AERROR << "Could not find rule ";
113 continue;
114 }
115 rule->Reset();
116 rule->ApplyRule(frame, reference_line_info);
117 ADEBUG << "Applied rule " << rule->Getname();
118 }
119
120 BuildPlanningTarget(reference_line_info);
121 return Status::OK();
122}
static Status OK()
generate a success status.
Definition status.h:60
#define ADEBUG
Definition log.h:41
#define AERROR
Definition log.h:44

◆ Init()

bool apollo::planning::TrafficDecider::Init ( const std::shared_ptr< DependencyInjector > &  injector)

在文件 traffic_decider.cc34 行定义.

34 {
35 if (init_) return true;
36 // Load the pipeline config.
37 AINFO << "Load config path:" << FLAGS_traffic_rule_config_filename;
38 // Load the pipeline of scenario.
39 if (!apollo::cyber::common::LoadConfig(FLAGS_traffic_rule_config_filename,
40 &rule_pipeline_)) {
41 AERROR << "Load pipeline of Traffic decider"
42 << " failed!";
43 return false;
44 }
45 //-----------------------------------------------
46 for (int i = 0; i < rule_pipeline_.rule_size(); i++) {
47 auto rule =
50 rule_pipeline_.rule(i).type()));
51 if (!rule) {
52 AERROR << "Init of Traffic rule" << rule_pipeline_.rule(i).name()
53 << " failed!";
54 return false;
55 }
56 rule->Init(rule_pipeline_.rule(i).name(), injector);
57 rule_list_.push_back(rule);
58 }
59
60 init_ = true;
61 return true;
62}
static PluginManager * Instance()
get singleton instance of PluginManager
std::shared_ptr< Base > CreateInstance(const std::string &derived_class)
create plugin instance of derived class based on Base
static std::string GetFullPlanningClassName(const std::string &class_name)
Given the class name of planning module, combine the namespace "apollo::planning::" with it to create...
#define AINFO
Definition log.h:42
bool LoadConfig(const std::string &relative_path, T *config)
Definition file.h:265

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