Apollo 10.0
自动驾驶开放平台
mrf_motion_refiner.h
浏览该文件的文档.
1/******************************************************************************
2 * Copyright 2023 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 <string>
19
20#include "modules/perception/radar4d_detection/lib/tracker/multi_radar_fusion/proto/mrf_config.pb.h"
21
24
26
27namespace apollo {
28namespace perception {
29namespace radar4d {
30
32
34
36 public:
37 MrfMotionRefiner() = default;
38 ~MrfMotionRefiner() = default;
39
47 bool Init(const MrfMotionRefinerInitOptions& options =
49
58 bool Refine(const MrfTrackDataConstPtr& track_data,
59 TrackedObjectPtr new_object);
65 std::string Name() const { return "MrfMotionRefiner"; }
66
67 protected:
77 const TrackedObjectConstPtr& latest_object,
78 const TrackedObjectConstPtr& new_object) const;
79
91 const TrackedObjectConstPtr& latest_object,
92 const TrackedObjectConstPtr& new_object,
93 double reasonable_angle_change_maximum) const;
94
95 protected:
98 const double EPSION_TIME = 1e-3;
99}; // class MrfMotionRefiner
100
101} // namespace radar4d
102} // namespace perception
103} // namespace apollo
bool Refine(const MrfTrackDataConstPtr &track_data, TrackedObjectPtr new_object)
Refine velocity of new object
bool Init(const MrfMotionRefinerInitOptions &options=MrfMotionRefinerInitOptions())
Init motion refiner
bool CheckStaticHypothesisByState(const TrackedObjectConstPtr &latest_object, const TrackedObjectConstPtr &new_object) const
Check whether new observed object is static or not
bool CheckStaticHypothesisByVelocityAngleChange(const TrackedObjectConstPtr &latest_object, const TrackedObjectConstPtr &new_object, double reasonable_angle_change_maximum) const
Check whether new observed object is static or not via considering the angle velocity change
std::shared_ptr< const TrackedObject > TrackedObjectConstPtr
std::shared_ptr< TrackedObject > TrackedObjectPtr
std::shared_ptr< const MrfTrackData > MrfTrackDataConstPtr
class register implement
Definition arena_queue.h:37