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

#include <radar_obstacle_perception.h>

类 apollo::perception::radar::RadarObstaclePerception 继承关系图:
apollo::perception::radar::RadarObstaclePerception 的协作图:

Public 成员函数

 RadarObstaclePerception ()=default
 Radar object detection processor, which include 3 steps: object detection, ROI filtering and tracking.
 
virtual ~RadarObstaclePerception ()=default
 
bool Init (const PerceptionInitOptions &options) override
 Init the radar object detection processor includes config, create classes, etc.
 
bool Perceive (const drivers::ContiRadar &corrected_obstacles, const RadarPerceptionOptions &options, std::vector< base::ObjectPtr > *objects) override
 Process the radar raw data obtained from radar driver, and get targets after tracking.
 
std::string Name () const override
 The name of the radar object detection processor
 
- Public 成员函数 继承自 apollo::perception::radar::BaseRadarObstaclePerception
 BaseRadarObstaclePerception ()=default
 Construct a new Base Radar Obstacle Perception object
 
virtual ~BaseRadarObstaclePerception ()=default
 

详细描述

在文件 radar_obstacle_perception.h 第 28 行定义.

构造及析构函数说明

◆ RadarObstaclePerception()

apollo::perception::radar::RadarObstaclePerception::RadarObstaclePerception ( )
default

Radar object detection processor, which include 3 steps: object detection, ROI filtering and tracking.

◆ ~RadarObstaclePerception()

virtual apollo::perception::radar::RadarObstaclePerception::~RadarObstaclePerception ( )
virtualdefault

成员函数说明

◆ Init()

bool apollo::perception::radar::RadarObstaclePerception::Init ( const PerceptionInitOptions &  options)
overridevirtual

Init the radar object detection processor includes config, create classes, etc.

参数
optionsinit options
返回
true
false

实现了 apollo::perception::radar::BaseRadarObstaclePerception.

在文件 radar_obstacle_perception.cc 第 30 行定义.

30 {
31 std::string config_file =
32 GetConfigFile(options.config_path, options.config_file);
33 RadarObstaclePerceptionConfig radar_obstacle_config;
34 if (!cyber::common::GetProtoFromFile(config_file, &radar_obstacle_config)) {
35 AERROR << "Read config failed: " << config_file;
36 return false;
37 }
38
39 auto detector_param = radar_obstacle_config.detector_param();
40 DetectorInitOptions detector_init_options;
41 detector_init_options.config_path = detector_param.config_path();
42 detector_init_options.config_file = detector_param.config_file();
43 BaseDetector* detector =
44 BaseDetectorRegisterer::GetInstanceByName(detector_param.name());
45 CHECK_NOTNULL(detector);
46 detector_.reset(detector);
47 ACHECK(detector_->Init(detector_init_options)) << "radar detector init error";
48
49 auto roi_filter_param = radar_obstacle_config.roi_filter_param();
50 RoiFilterInitOptions roi_filter_init_options;
51 roi_filter_init_options.config_path = roi_filter_param.config_path();
52 roi_filter_init_options.config_file = roi_filter_param.config_file();
53 BaseRoiFilter* roi_filter =
54 BaseRoiFilterRegisterer::GetInstanceByName(roi_filter_param.name());
55 CHECK_NOTNULL(roi_filter);
56 roi_filter_.reset(roi_filter);
57 ACHECK(roi_filter_->Init(roi_filter_init_options))
58 << "radar roi filter init error";
59
60 auto tracker_param = radar_obstacle_config.tracker_param();
61 TrackerInitOptions tracker_init_options;
62 tracker_init_options.config_path = tracker_param.config_path();
63 tracker_init_options.config_file = tracker_param.config_file();
64 BaseTracker* tracker =
65 BaseTrackerRegisterer::GetInstanceByName(tracker_param.name());
66 CHECK_NOTNULL(tracker);
67 tracker_.reset(tracker);
68 ACHECK(tracker_->Init(tracker_init_options)) << "radar tracker init error";
69
70 return true;
71}
#define ACHECK(cond)
Definition log.h:80
#define AERROR
Definition log.h:44
bool GetProtoFromFile(const std::string &file_name, google::protobuf::Message *message)
Parses the content of the file specified by the file_name as a representation of protobufs,...
Definition file.cc:132
std::string GetConfigFile(const std::string &config_path, const std::string &config_file)
Definition util.cc:80

◆ Name()

std::string apollo::perception::radar::RadarObstaclePerception::Name ( ) const
overridevirtual

The name of the radar object detection processor

返回
std::string

实现了 apollo::perception::radar::BaseRadarObstaclePerception.

在文件 radar_obstacle_perception.cc 第 112 行定义.

112 {
113 return "RadarObstaclePerception";
114}

◆ Perceive()

bool apollo::perception::radar::RadarObstaclePerception::Perceive ( const drivers::ContiRadar &  corrected_obstacles,
const RadarPerceptionOptions &  options,
std::vector< base::ObjectPtr > *  objects 
)
overridevirtual

Process the radar raw data obtained from radar driver, and get targets after tracking.

参数
corrected_obstaclesraw data obtained from radar driver
optionsprocessing options
objectstargets after tracking
返回
true
false

实现了 apollo::perception::radar::BaseRadarObstaclePerception.

在文件 radar_obstacle_perception.cc 第 73 行定义.

76 {
78 const std::string& sensor_name = options.sensor_name;
80 base::FramePtr detect_frame_ptr(new base::Frame());
81
82 if (!detector_->Detect(corrected_obstacles, options.detector_options,
83 detect_frame_ptr)) {
84 AERROR << "radar detect error";
85 return false;
86 }
87 ADEBUG << "Detected frame objects number: "
88 << detect_frame_ptr->objects.size();
89 PERF_BLOCK_END_WITH_INDICATOR(sensor_name, "detector");
90 if (!roi_filter_->RoiFilter(options.roi_filter_options, detect_frame_ptr)) {
91 ADEBUG << "All radar objects were filtered out";
92 }
93 ADEBUG << "RoiFiltered frame objects number: "
94 << detect_frame_ptr->objects.size();
95 PERF_BLOCK_END_WITH_INDICATOR(sensor_name, "roi_filter");
96
97 base::FramePtr tracker_frame_ptr(new base::Frame);
98 if (!tracker_->Track(*detect_frame_ptr, options.track_options,
99 tracker_frame_ptr)) {
100 AERROR << "radar track error";
101 return false;
102 }
103 ADEBUG << "tracked frame objects number: "
104 << tracker_frame_ptr->objects.size();
105 PERF_BLOCK_END_WITH_INDICATOR(sensor_name, "tracker");
106
107 *objects = tracker_frame_ptr->objects;
108
109 return true;
110}
#define ADEBUG
Definition log.h:41
std::shared_ptr< Frame > FramePtr
Definition frame.h:60
#define PERF_BLOCK_END_WITH_INDICATOR(indicator, msg)
Definition perf_util.h:128
#define PERF_BLOCK_START()
Definition perf_util.h:126
#define PERF_FUNCTION(...)
Definition profiler.h:54

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