18#include "modules/perception/multi_sensor_fusion/proto/pbf_tracker_config.pb.h"
42 std::string config_file =
47 AERROR <<
"Read config failed: " << config_file;
51 AINFO <<
"Load PbfTrackerConfig: " << params.DebugString();
60 type_fusion_init_options.
config_path = type_fusion_param.config_path();
61 type_fusion_init_options.
config_file = type_fusion_param.config_file();
67 existence_fusion_param.config_path();
69 existence_fusion_param.config_file();
118 double target_timestamp) {
119 std::string sensor_id = measurement->GetSensorId();
120 ADEBUG <<
"fusion_updating..." <<
track_->GetTrackId() <<
" with "
121 << sensor_id <<
"..." << measurement->GetBaseObject()->track_id <<
"@"
125 motion_fusion_->UpdateWithMeasurement(measurement, target_timestamp);
126 shape_fusion_->UpdateWithMeasurement(measurement, target_timestamp);
127 type_fusion_->UpdateWithMeasurement(measurement, target_timestamp);
128 track_->UpdateWithSensorObject(measurement);
132 const std::string& sensor_id,
133 double measurement_timestamp,
134 double target_timestamp) {
138 motion_fusion_->UpdateWithoutMeasurement(sensor_id, measurement_timestamp,
140 shape_fusion_->UpdateWithoutMeasurement(sensor_id, measurement_timestamp,
142 type_fusion_->UpdateWithoutMeasurement(sensor_id, measurement_timestamp,
145 track_->UpdateWithoutSensorObject(sensor_id, measurement_timestamp);
static bool Init(const ExistenceFusionInitOptions &options)
add dst application
static bool Init(const TypeFusionInitOptions &options)
std::unique_ptr< BaseTypeFusion > type_fusion_
void UpdateWithMeasurement(const TrackerOptions &options, const SensorObjectPtr measurement, double target_timestamp) override
Update with measurement
static std::string s_existence_fusion_method_
static std::string s_shape_fusion_method_
std::unique_ptr< BaseExistenceFusion > existence_fusion_
static std::string s_type_fusion_method_
bool Init(TrackPtr track, SensorObjectPtr measurement) override
Init
std::unique_ptr< BaseMotionFusion > motion_fusion_
static bool InitParams(const TrackerInitOptions &options)
Init params
bool InitMethods()
Init fusion methods
void UpdateWithoutMeasurement(const TrackerOptions &options, const std::string &sensor_id, double measurement_timestamp, double target_timestamp) override
Update without measurement
static std::string s_motion_fusion_method_
std::unique_ptr< BaseShapeFusion > shape_fusion_
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,...
std::string GetAbsolutePath(const std::string &prefix, const std::string &relative_path)
Get absolute path by concatenating prefix and relative_path.
std::shared_ptr< SensorObject > SensorObjectPtr
std::shared_ptr< Track > TrackPtr
std::string GetConfigFile(const std::string &config_path, const std::string &config_file)
Some string util functions.
#define FORMAT_TIMESTAMP(timestamp)
optional perception::PluginParam shape_fusion_param
optional perception::PluginParam motion_fusion_param
optional perception::PluginParam existence_fusion_param
optional perception::PluginParam type_fusion_param