Apollo 11.0
自动驾驶开放平台
apollo::perception::fusion::MultiSensorFusionComponent类 参考

#include <multi_sensor_fusion_component.h>

类 apollo::perception::fusion::MultiSensorFusionComponent 继承关系图:
apollo::perception::fusion::MultiSensorFusionComponent 的协作图:

Public 成员函数

 MultiSensorFusionComponent ()=default
 
 ~MultiSensorFusionComponent ()=default
 
bool Init () override
 
bool Proc (const std::shared_ptr< SensorFrameMessage > &message) override
 
- Public 成员函数 继承自 apollo::cyber::Component< SensorFrameMessage >
 Component ()
 
 ~Component () override
 
bool Initialize (const ComponentConfig &config) override
 init the component by protobuf object.
 
bool Process (const std::shared_ptr< SensorFrameMessage > &msg0, const std::shared_ptr< NullType > &msg1, const std::shared_ptr< NullType > &msg2, const std::shared_ptr< NullType > &msg3)
 
- Public 成员函数 继承自 apollo::cyber::ComponentBase
virtual ~ComponentBase ()
 
virtual bool Initialize (const TimerComponentConfig &config)
 
virtual void Shutdown ()
 
template<typename T >
bool GetProtoConfig (T *config) const
 

额外继承的成员函数

- Public 类型 继承自 apollo::cyber::ComponentBase
template<typename M >
using Reader = cyber::Reader< M >
 
- Protected 成员函数 继承自 apollo::cyber::ComponentBase
virtual void Clear ()
 
const std::string & ConfigFilePath () const
 
void LoadConfigFiles (const ComponentConfig &config)
 
void LoadConfigFiles (const TimerComponentConfig &config)
 
- Protected 属性 继承自 apollo::cyber::ComponentBase
std::atomic< bool > is_shutdown_ = {false}
 
std::shared_ptr< Node > node_ = nullptr
 
std::string config_file_path_ = ""
 
std::vector< std::shared_ptr< ReaderBase > > readers_
 

详细描述

在文件 multi_sensor_fusion_component.h 第 36 行定义.

构造及析构函数说明

◆ MultiSensorFusionComponent()

apollo::perception::fusion::MultiSensorFusionComponent::MultiSensorFusionComponent ( )
default

◆ ~MultiSensorFusionComponent()

apollo::perception::fusion::MultiSensorFusionComponent::~MultiSensorFusionComponent ( )
default

成员函数说明

◆ Init()

bool apollo::perception::fusion::MultiSensorFusionComponent::Init ( )
overridevirtual

实现了 apollo::cyber::ComponentBase.

在文件 multi_sensor_fusion_component.cc 第 32 行定义.

32 {
33 FusionComponentConfig comp_config;
34 if (!GetProtoConfig(&comp_config)) {
35 return false;
36 }
37 AINFO << "Fusion Component Configs: " << comp_config.DebugString();
38
39 // to load component configs
40 object_in_roi_check_ = comp_config.object_in_roi_check();
41 radius_for_roi_object_check_ = comp_config.radius_for_roi_object_check();
42
43 // init algorithm plugin
44 ACHECK(InitAlgorithmPlugin(comp_config))
45 << "Failed to init algorithm plugin.";
46
47 writer_ = node_->CreateWriter<PerceptionObstacles>(
48 comp_config.output_obstacles_channel_name());
49 inner_writer_ = node_->CreateWriter<SensorFrameMessage>(
50 comp_config.output_viz_fused_content_channel_name());
51
52 algorithm::SensorManager::Instance()->Init();
53 return true;
54}
bool GetProtoConfig(T *config) const
std::shared_ptr< Node > node_
#define ACHECK(cond)
Definition log.h:80
#define AINFO
Definition log.h:42

◆ Proc()

bool apollo::perception::fusion::MultiSensorFusionComponent::Proc ( const std::shared_ptr< SensorFrameMessage > &  message)
override

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

57 {
59 if (message->process_stage_ == onboard::ProcessStage::SENSOR_FUSION) {
60 return true;
61 }
62 std::shared_ptr<PerceptionObstacles> out_message(new (std::nothrow)
63 PerceptionObstacles);
64 std::shared_ptr<SensorFrameMessage> viz_message(new (std::nothrow)
65 SensorFrameMessage);
66 bool status = InternalProc(message, out_message, viz_message);
67 if (status) {
68 // TODO(conver sensor id)
69 bool is_main_sensor =
70 algorithm::SensorManager::Instance()->IsMainSensor(message->sensor_id_);
71 if (is_main_sensor) {
72 writer_->Write(out_message);
73 AINFO << "Send fusion processing output message.";
74 // send msg for visualization
75 if (onboard::FLAGS_obs_enable_visualization) {
76 inner_writer_->Write(viz_message);
77 }
78 } else {
79 AINFO << "Fusion receive from " << message->sensor_id_
80 << ". Skip because it is not the main sensor.";
81 }
82 }
83 return status;
84}
#define PERF_FUNCTION(...)
Definition profiler.h:54

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