Apollo  6.0
Open source self driving car software
message_process.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2019 The Apollo Authors. All Rights Reserved.
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  *****************************************************************************/
16 
21 #pragma once
22 
23 #include <memory>
24 #include <string>
25 
26 #include "cyber/proto/record.pb.h"
27 #include "modules/localization/proto/localization.pb.h"
28 #include "modules/planning/proto/planning.pb.h"
32 #include "modules/prediction/proto/prediction_conf.pb.h"
33 #include "modules/prediction/proto/prediction_obstacle.pb.h"
35 #include "modules/storytelling/proto/story.pb.h"
36 
37 namespace apollo {
38 namespace prediction {
39 
41  public:
42  MessageProcess() = delete;
43 
44  static bool Init(ContainerManager *container_manager,
45  EvaluatorManager *evaluator_manager,
46  PredictorManager *predictor_manager,
47  const PredictionConf &prediction_conf);
48 
49  static bool InitContainers(ContainerManager *container_manager);
50 
51  static bool InitEvaluators(EvaluatorManager *evaluator_manager,
52  const PredictionConf &prediction_conf);
53 
54  static bool InitPredictors(PredictorManager *predictor_manager,
55  const PredictionConf &prediction_conf);
56 
57  static void ContainerProcess(
58  const std::shared_ptr<ContainerManager> &container_manager,
59  const perception::PerceptionObstacles &perception_obstacles,
60  ScenarioManager *scenario_manger);
61 
62  static void OnPerception(
63  const perception::PerceptionObstacles &perception_obstacles,
64  const std::shared_ptr<ContainerManager> &container_manager,
65  EvaluatorManager *evaluator_manager, PredictorManager *predictor_manager,
66  ScenarioManager *scenario_manager,
67  PredictionObstacles *const prediction_obstacles);
68 
69  static void OnLocalization(
70  ContainerManager *container_manager,
71  const localization::LocalizationEstimate &localization);
72 
73  static void OnPlanning(ContainerManager *container_manager,
74  const planning::ADCTrajectory &adc_trajectory);
75 
76  static void OnStoryTelling(ContainerManager *container_manager,
77  const storytelling::Stories &story);
78 
79  static void ProcessOfflineData(
80  const PredictionConf &prediction_conf,
81  const std::shared_ptr<ContainerManager> &container_manager,
82  EvaluatorManager *evaluator_manager, PredictorManager *predictor_manager,
83  ScenarioManager *scenario_manager, const std::string &record_filepath);
84 };
85 
86 } // namespace prediction
87 } // namespace apollo
Definition: container_manager.h:40
Definition: predictor_manager.h:38
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
Definition: scenario_manager.h:27
Definition: evaluator_manager.h:42
static void OnLocalization(ContainerManager *container_manager, const localization::LocalizationEstimate &localization)
static bool InitContainers(ContainerManager *container_manager)
static void OnPerception(const perception::PerceptionObstacles &perception_obstacles, const std::shared_ptr< ContainerManager > &container_manager, EvaluatorManager *evaluator_manager, PredictorManager *predictor_manager, ScenarioManager *scenario_manager, PredictionObstacles *const prediction_obstacles)
static void ContainerProcess(const std::shared_ptr< ContainerManager > &container_manager, const perception::PerceptionObstacles &perception_obstacles, ScenarioManager *scenario_manger)
static void OnStoryTelling(ContainerManager *container_manager, const storytelling::Stories &story)
Use evaluator manager to manage all evaluators.
static bool InitPredictors(PredictorManager *predictor_manager, const PredictionConf &prediction_conf)
static void ProcessOfflineData(const PredictionConf &prediction_conf, const std::shared_ptr< ContainerManager > &container_manager, EvaluatorManager *evaluator_manager, PredictorManager *predictor_manager, ScenarioManager *scenario_manager, const std::string &record_filepath)
Use predictor manager to manage all predictors.
Definition: message_process.h:40
static bool Init(ContainerManager *container_manager, EvaluatorManager *evaluator_manager, PredictorManager *predictor_manager, const PredictionConf &prediction_conf)
static void OnPlanning(ContainerManager *container_manager, const planning::ADCTrajectory &adc_trajectory)
Use container manager to manage all containers.
static bool InitEvaluators(EvaluatorManager *evaluator_manager, const PredictionConf &prediction_conf)