Apollo  6.0
Open source self driving car software
obstacle_blocking_analyzer.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 
19 
20 namespace apollo {
21 namespace planning {
22 
23 bool IsNonmovableObstacle(const ReferenceLineInfo& reference_line_info,
24  const Obstacle& obstacle);
25 
39 bool IsBlockingObstacleToSidePass(const Frame& frame, const Obstacle* obstacle,
40  double block_obstacle_min_speed,
41  double min_front_sidepass_distance,
42  bool enable_obstacle_blocked_check);
43 
44 double GetDistanceBetweenADCAndObstacle(const Frame& frame,
45  const Obstacle* obstacle);
46 
47 // Check if the obstacle is blocking ADC's driving path (reference_line).
48 bool IsBlockingDrivingPathObstacle(const ReferenceLine& reference_line,
49  const Obstacle* obstacle);
50 
51 bool IsParkedVehicle(const ReferenceLine& reference_line,
52  const Obstacle* obstacle);
53 
54 } // namespace planning
55 } // namespace apollo
bool IsBlockingDrivingPathObstacle(const ReferenceLine &reference_line, const Obstacle *obstacle)
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
bool IsParkedVehicle(const ReferenceLine &reference_line, const Obstacle *obstacle)
Planning module main class. It processes GPS and IMU as input, to generate planning info...
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.
double GetDistanceBetweenADCAndObstacle(const Frame &frame, const Obstacle *obstacle)
bool IsNonmovableObstacle(const ReferenceLineInfo &reference_line_info, const Obstacle &obstacle)