Apollo 10.0
自动驾驶开放平台
apollo::dreamview::SimControlManager类 参考

#include <sim_control_manager.h>

apollo::dreamview::SimControlManager 的协作图:

Public 成员函数

bool IsEnabled () const
 
nlohmann::json LoadDynamicModels ()
 
bool AddDynamicModel (const std::string &dynamic_model_name)
 
bool ChangeDynamicModel (const std::string &dynamic_model_name)
 
bool DeleteDynamicModel (const std::string &dynamic_model_name)
 
void ResetDynamicModel ()
 
void Restart (double x, double y, double v=0.0, double a=0.0)
 
void ReSetPoinstion (double x, double y, double heading)
 
void Restart ()
 
void Reset ()
 
virtual ~SimControlManager ()
 
std::string Name () const
 
void RunOnce ()
 
bool Init (bool set_start_point, double start_velocity=0.0, double start_acceleration=0.0, double start_heading=std::numeric_limits< double >::max())
 module initialization function
 
void Start ()
 module start function
 
void Stop ()
 module stop function
 

详细描述

在文件 sim_control_manager.h40 行定义.

构造及析构函数说明

◆ ~SimControlManager()

virtual apollo::dreamview::SimControlManager::~SimControlManager ( )
inlinevirtual

在文件 sim_control_manager.h53 行定义.

53{ Stop(); }

成员函数说明

◆ AddDynamicModel()

bool apollo::dreamview::SimControlManager::AddDynamicModel ( const std::string &  dynamic_model_name)

在文件 sim_control_manager.cc59 行定义.

59 {
60 if (IsEnabled()) {
61 auto *model_factory = DynamicModelFactory::Instance();
62 return model_factory->RegisterDynamicModel(dynamic_model_name);
63 } else {
64 AERROR << "Sim control manager is not enabled! Can not download dynamic "
65 "model to local!";
66 return false;
67 }
68}
#define AERROR
Definition log.h:44

◆ ChangeDynamicModel()

bool apollo::dreamview::SimControlManager::ChangeDynamicModel ( const std::string &  dynamic_model_name)

在文件 sim_control_manager.cc70 行定义.

71 {
72 auto *model_factory = DynamicModelFactory::Instance();
73 auto next_model_ptr_ = model_factory->GetModelType(dynamic_model_name);
74 if (!next_model_ptr_) {
75 AERROR << "Can not get dynamic model to start.Use original dynamic model!";
76 return false;
77 }
79 model_ptr_ = next_model_ptr_;
80 next_model_ptr_ = nullptr;
81 model_ptr_->Start();
82 current_dynamic_model_ = dynamic_model_name;
83 return true;
84}
virtual void Start()=0
Starts running the simulated control algorithm, e.g., publish simulated localization and chassis mess...

◆ DeleteDynamicModel()

bool apollo::dreamview::SimControlManager::DeleteDynamicModel ( const std::string &  dynamic_model_name)

在文件 sim_control_manager.cc86 行定义.

87 {
88 auto *model_factory = DynamicModelFactory::Instance();
89 return model_factory->UnregisterDynamicModel(dynamic_model_name);
90}

◆ Init()

bool apollo::dreamview::SimControlManager::Init ( bool  set_start_point,
double  start_velocity = 0.0,
double  start_acceleration = 0.0,
double  start_heading = std::numeric_limits< double >::max() 
)

module initialization function

返回
initialization status

◆ IsEnabled()

bool apollo::dreamview::SimControlManager::IsEnabled ( ) const
inline

在文件 sim_control_manager.h42 行定义.

42{ return enabled_; }

◆ LoadDynamicModels()

Json apollo::dreamview::SimControlManager::LoadDynamicModels ( )

在文件 sim_control_manager.cc34 行定义.

34 {
35 auto *model_factory = DynamicModelFactory::Instance();
36 Json result = model_factory->RegisterDynamicModels();
37 return result;
38}
nlohmann::json Json

◆ Name()

std::string apollo::dreamview::SimControlManager::Name ( ) const

在文件 sim_control_manager.cc30 行定义.

30 {
31 return FLAGS_sim_control_module_name;
32}

◆ Reset()

void apollo::dreamview::SimControlManager::Reset ( )

在文件 sim_control_manager.cc40 行定义.

40 {
41 if (IsEnabled() && model_ptr_) {
42 model_ptr_->Reset();
43 }
44}
virtual void Reset()=0
Resets the internal state.

◆ ResetDynamicModel()

void apollo::dreamview::SimControlManager::ResetDynamicModel ( )

在文件 sim_control_manager.cc46 行定义.

46 {
47 if (!current_dynamic_model_.empty()) {
48 if (!model_ptr_) {
49 auto *model_factory = DynamicModelFactory::Instance();
50 model_ptr_ = model_factory->GetModelType(current_dynamic_model_);
51 }
52 if (model_ptr_) {
53 model_ptr_->Stop();
54 }
55 }
56 return;
57}
virtual void Stop()=0
Stops the algorithm.

◆ ReSetPoinstion()

void apollo::dreamview::SimControlManager::ReSetPoinstion ( double  x,
double  y,
double  heading 
)

在文件 sim_control_manager.cc99 行定义.

99 {
100 if (!IsEnabled() || !model_ptr_) {
101 AERROR << "Sim control is invalid,Failed to ReSetPoinstion!";
102 return;
103 }
104 model_ptr_->ReSetPoinstion(x, y, heading);
105 return;
106}
virtual void ReSetPoinstion(double x, double y, double heading)=0
Set vehicle position.

◆ Restart() [1/2]

void apollo::dreamview::SimControlManager::Restart ( )

在文件 sim_control_manager.cc119 行定义.

119 {
120 // reset start point for dynamic model.
121 if (!IsEnabled() || !model_ptr_) {
122 AERROR << "Sim control is invalid,Failed to restart!";
123 return;
124 }
125 model_ptr_->Stop();
126 model_ptr_->Start();
127 return;
128}

◆ Restart() [2/2]

void apollo::dreamview::SimControlManager::Restart ( double  x,
double  y,
double  v = 0.0,
double  a = 0.0 
)

在文件 sim_control_manager.cc108 行定义.

108 {
109 // reset start point for dynamic model.
110 if (!IsEnabled() || !model_ptr_) {
111 AERROR << "Sim control is invalid,Failed to restart!";
112 return;
113 }
114 model_ptr_->Stop();
115 model_ptr_->Start(x, y, v, a);
116 return;
117}

◆ RunOnce()

void apollo::dreamview::SimControlManager::RunOnce ( )

在文件 sim_control_manager.cc130 行定义.

130{ model_ptr_->RunOnce(); }
virtual void RunOnce()=0
Main logic of the simulated control algorithm.

◆ Start()

void apollo::dreamview::SimControlManager::Start ( )

module start function

在文件 sim_control_manager.cc92 行定义.

92 {
93 // enabled_ only performs switching function
94 if (!enabled_) {
95 enabled_ = true;
96 }
97}

◆ Stop()

void apollo::dreamview::SimControlManager::Stop ( )

module stop function

在文件 sim_control_manager.cc132 行定义.

132 {
133 if (enabled_) {
134 enabled_ = false;
136 std::system(FLAGS_sim_obstacle_stop_command.data());
137 model_ptr_ = nullptr;
138 current_dynamic_model_ = "";
139 }
140}

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