Apollo 11.0
自动驾驶开放平台
mlf_motion_measurement.h
浏览该文件的文档.
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 <vector>
19
20#include "cyber/common/macros.h"
23
24namespace apollo {
25namespace perception {
26namespace lidar {
27
29 public:
38 void ComputeMotionMeasurment(const MlfTrackDataConstPtr& track_data,
39 TrackedObjectPtr new_object);
40
41 protected:
50 void MeasurementSelection(const MlfTrackDataConstPtr& track_data,
51 const TrackedObjectConstPtr& latest_object,
52 TrackedObjectPtr new_object, bool condition = true);
60 TrackedObjectPtr new_object);
61
62 void MeasurementRefine(const MlfTrackDataConstPtr& track_data,
63 const TrackedObjectConstPtr& latest_object,
64 TrackedObjectPtr new_object, const double& time_diff);
65
66 Eigen::Vector2d ComputeExpectedVelocity(
67 std::vector<TrackedObjectConstPtr> history_objects, double cur_time);
68
69 private:
70 const double EPSILON_TIME = 1e-3; // or numeric_limits<double>::epsilon()
71 const double DEFAULT_FPS = 0.1;
73}; // class MlfMotionMeasurement
74
75} // namespace lidar
76} // namespace perception
77} // namespace apollo
Eigen::Vector2d ComputeExpectedVelocity(std::vector< TrackedObjectConstPtr > history_objects, double cur_time)
void MeasurementRefine(const MlfTrackDataConstPtr &track_data, const TrackedObjectConstPtr &latest_object, TrackedObjectPtr new_object, const double &time_diff)
void MeasurementQualityEstimation(const TrackedObjectConstPtr &latest_object, TrackedObjectPtr new_object)
Estimate measurement quality
void MeasurementSelection(const MlfTrackDataConstPtr &track_data, const TrackedObjectConstPtr &latest_object, TrackedObjectPtr new_object, bool condition=true)
Select measurement based on track history
void ComputeMotionMeasurment(const MlfTrackDataConstPtr &track_data, TrackedObjectPtr new_object)
Wrapper of motion measurement functions
#define DISALLOW_COPY_AND_ASSIGN(classname)
Definition macros.h:48
std::shared_ptr< const MlfTrackData > MlfTrackDataConstPtr
std::shared_ptr< const TrackedObject > TrackedObjectConstPtr
std::shared_ptr< TrackedObject > TrackedObjectPtr
class register implement
Definition arena_queue.h:37