24using onboard::LidarFrameMessage;
30 AERROR <<
"Get LidarSegmentationComponentConfig file failed";
33 AINFO <<
"LidarSegmentation Component Configs: " << comp_config.DebugString();
40 std::string segmentor_name = plugin_param.name();
41 BaseLidarDetector* segmentor = BaseLidarDetectorRegisterer::GetInstanceByName(segmentor_name);
42 CHECK_NOTNULL(segmentor);
43 segmentor_.reset(segmentor);
46 segmentr_init_options.
config_path = plugin_param.config_path();
47 segmentr_init_options.
config_file = plugin_param.config_file();
48 ACHECK(segmentor_->Init(segmentr_init_options)) <<
"lidar segmentor init error";
52 ACHECK(semantic_builder_.
Init(semantic_init_options));
54 AINFO <<
"LidarSegmentationComponent init successful.";
60 bool status = InternalProc(message);
63 writer_->Write(message);
64 AINFO <<
"Send lidar segmentation output message.";
69bool LidarSegmentationComponent::InternalProc(
const std::shared_ptr<LidarFrameMessage>& message) {
72 if (!segmentor_->Detect(segmentor_options, message->lidar_frame_.get())) {
73 AERROR <<
"lidar segmentation Detect error.";
80 SemanticBuilderOptions semantic_options;
81 if (!semantic_builder_.Build(semantic_options, message->lidar_frame_.get())) {
82 AERROR <<
"Lidar segmentation, semantic builder error.";
bool GetProtoConfig(T *config) const
std::shared_ptr< Node > node_
bool Init() override
Init lidar segment component
bool Proc(const std::shared_ptr< onboard::LidarFrameMessage > &message) override
Process of lidar segmentation
bool Init(const SemanticBuilderInitOptions &options=SemanticBuilderInitOptions())
Init the Semantic Builder with initialization options
std::string GetAbsolutePath(const std::string &prefix, const std::string &relative_path)
Get absolute path by concatenating prefix and relative_path.
optional string output_channel_name
optional perception::PluginParam plugin_param