Apollo  6.0
Open source self driving car software
mlf_motion_measurement.h
Go to the documentation of this file.
1 /******************************************************************************
2  * Copyright 2018 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 #pragma once
17 
18 #include "cyber/common/macros.h"
21 
22 namespace apollo {
23 namespace perception {
24 namespace lidar {
25 
27  public:
28  MlfMotionMeasurement() = default;
29  ~MlfMotionMeasurement() = default;
30  // @brief: wrapper of motion measurement functions
31  // @params [in]: track_data: track data
32  // @params [in]: new_object: object for current updating
33  void ComputeMotionMeasurment(const MlfTrackDataConstPtr& track_data,
34  TrackedObjectPtr new_object);
35 
36  protected:
37  // @brief: select measurement based on track history
38  // @params [in]: track data
39  // @params [in]: latest object in track
40  // @params [out]: new object for storing selection
41  void MeasurementSelection(const MlfTrackDataConstPtr& track_data,
42  const TrackedObjectConstPtr& latest_object,
43  TrackedObjectPtr new_object);
44  // @brief: estimate measurement quality
45  // @params [in]: latest object in track
46  // @params [out]: new object for storing quality
47  void MeasurementQualityEstimation(const TrackedObjectConstPtr& latest_object,
48  TrackedObjectPtr new_object);
49 
50  private:
51  const double EPSILON_TIME = 1e-3; // or numeric_limits<double>::epsilon()
52  const double DEFAULT_FPS = 0.1;
53  DISALLOW_COPY_AND_ASSIGN(MlfMotionMeasurement);
54 }; // class MlfMotionMeasurement
55 
56 } // namespace lidar
57 } // namespace perception
58 } // namespace apollo
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
void ComputeMotionMeasurment(const MlfTrackDataConstPtr &track_data, TrackedObjectPtr new_object)
void MeasurementQualityEstimation(const TrackedObjectConstPtr &latest_object, TrackedObjectPtr new_object)
std::shared_ptr< const MlfTrackData > MlfTrackDataConstPtr
Definition: mlf_track_data.h:118
void MeasurementSelection(const MlfTrackDataConstPtr &track_data, const TrackedObjectConstPtr &latest_object, TrackedObjectPtr new_object)
Definition: mlf_motion_measurement.h:26
std::shared_ptr< const TrackedObject > TrackedObjectConstPtr
Definition: tracked_object.h:157
std::shared_ptr< TrackedObject > TrackedObjectPtr
Definition: tracked_object.h:156