Apollo 11.0
自动驾驶开放平台
obstacle_blocking_analyzer.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 *****************************************************************************/
20#pragma once
21
22#include <string>
25
26namespace apollo {
27namespace planning {
28
29bool IsNonmovableObstacle(const ReferenceLineInfo& reference_line_info,
30 const Obstacle& obstacle);
31
45bool IsBlockingObstacleToSidePass(const Frame& frame, const Obstacle* obstacle,
46 double block_obstacle_min_speed,
47 double min_front_sidepass_distance,
48 bool enable_obstacle_blocked_check);
49
50double GetDistanceBetweenADCAndObstacle(const Frame& frame,
51 const Obstacle* obstacle);
52
53// Check if the obstacle is blocking ADC's driving path (reference_line).
54bool IsBlockingDrivingPathObstacle(const ReferenceLine& reference_line,
55 const Obstacle* obstacle);
56
57bool IsParkedVehicle(const ReferenceLine& reference_line,
58 const Obstacle* obstacle);
59
61 const ReferenceLineInfo& reference_line_info,
62 const std::string& blocking_obstacle_id);
63
65 const ReferenceLineInfo& reference_line_info,
66 const std::string& blocking_obstacle_id);
67
69 const ReferenceLineInfo& reference_line_info,
70 const std::string& blocking_obstacle_id);
71
73 const ReferenceLineInfo& reference_line_info,
74 const std::string& blocking_obstacle_id, const double threshold);
75
76} // namespace planning
77} // namespace apollo
Planning module main class.
bool IsBlockingObstacleToSidePass(const Frame &frame, const Obstacle *obstacle, double block_obstacle_min_speed, double min_front_sidepass_distance, bool enable_obstacle_blocked_check)
Decide whether an obstacle is a blocking one that needs to be side-passed.
bool IsBlockingObstacleWithinDestination(const ReferenceLineInfo &reference_line_info, const std::string &blocking_obstacle_id, const double threshold)
double DistanceBlockingObstacleToJunction(const ReferenceLineInfo &reference_line_info, const std::string &blocking_obstacle_id)
double DistanceBlockingObstacleToIntersection(const ReferenceLineInfo &reference_line_info, const std::string &blocking_obstacle_id)
bool IsNonmovableObstacle(const ReferenceLineInfo &reference_line_info, const Obstacle &obstacle)
bool IsBlockingDrivingPathObstacle(const ReferenceLine &reference_line, const Obstacle *obstacle)
double GetDistanceBetweenADCAndObstacle(const Frame &frame, const Obstacle *obstacle)
bool IsParkedVehicle(const ReferenceLine &reference_line, const Obstacle *obstacle)
bool IsBlockingObstacleFarFromIntersection(const ReferenceLineInfo &reference_line_info, const std::string &blocking_obstacle_id)
class register implement
Definition arena_queue.h:37