ad_map_access
RouteAStar.hpp
Go to the documentation of this file.
1 // ----------------- BEGIN LICENSE BLOCK ---------------------------------
2 //
3 // Copyright (C) 2018-2021 Intel Corporation
4 //
5 // SPDX-License-Identifier: MIT
6 //
7 // ----------------- END LICENSE BLOCK -----------------------------------
12 #pragma once
13 
14 #include <map>
15 
17 
19 namespace ad {
21 namespace map {
23 namespace route {
27 namespace planning {
28 
33 {
35  physics::Distance estimatedDistanceToTarget{0.};
36 };
37 
41 class RouteAstar : public RouteExpander<RouteAstarScore>
42 {
43 public:
46 
55  RouteAstar(const RoutingParaPoint &start,
56  const RoutingParaPoint &dest,
57  physics::Distance const &maxDistance,
58  physics::Duration const &maxDuration,
59  Type typ);
60 
68  RouteAstar(const RoutingParaPoint &start,
69  const RoutingParaPoint &dest,
70  physics::Distance const &maxDistance,
71  Type typ);
72 
80  RouteAstar(const RoutingParaPoint &start,
81  const RoutingParaPoint &dest,
82  physics::Duration const &maxDuration,
83  Type typ);
84 
91  RouteAstar(const RoutingParaPoint &start, const RoutingParaPoint &dest, Type typ);
92 
97  bool calculate() override;
98 
99 private:
103  void initLanePointer();
104 
108  void addNeighbor(lane::Lane::ConstPtr originLane,
109  RoutingPoint const &origin,
110  lane::Lane::ConstPtr neighborLane,
111  RoutingPoint const &neighbor,
112  ExpandReason const &expandReason) override;
116  physics::Distance costEstimate(lane::Lane::ConstPtr neighborLane, point::ParaPoint const &neighbor);
117 
121  void reconstructPath(RoutingPoint const &dest);
122 
126  lane::Lane::ConstPtr mDestLane;
130  lane::Lane::ConstPtr mStartLane;
131 
135  typedef std::set<RoutingParaPoint> RoutingParaPointSet;
136 
140  RoutingParaPointSet mProcessedPoints;
141 
145  typedef std::map<RoutingParaPoint, RoutingCost> RoutingParaPointCostMap;
146  RoutingParaPointCostMap mProcessingMap;
147 
151  typedef std::map<RoutingParaPoint, RoutingParaPoint> RoutingChainMap;
152  RoutingChainMap mCameFrom;
153 };
154 
155 } // namespace planning
156 } // namespace route
157 } // namespace map
158 } // namespace ad
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ad::map::route::planning::RouteAstarScore::estimatedDistanceToTarget
physics::Distance estimatedDistanceToTarget
the estimated distance to destination
Definition: RouteAStar.hpp:35
ad::map::route::planning::RouteExpander
Implements routing support functionality on the lane network.
Definition: RouteExpander.hpp:43
ad::map::route::planning::RouteExpander::RoutingPoint
std::pair< RoutingParaPoint, RoutingCost > RoutingPoint
definition of the routing point
Definition: RouteExpander.hpp:54
ad::map::point::ParaPoint
DataType ParaPoint.
Definition: ParaPoint.hpp:48
ad::map::route::planning::RouteExpander::RoutingCost
definition of the routing cost data
Definition: RouteExpander.hpp:47
ad::map::route::planning::Route::Type
Type
Routing type.
Definition: Route.hpp:59
ad::map::route::planning::RouteAstar::RoutingPoint
std::pair< RoutingParaPoint, RoutingCost > RoutingPoint
definition of the routing point
Definition: RouteExpander.hpp:54
ad::map::route::planning::RouteAstar::RouteAstar
RouteAstar(const RoutingParaPoint &start, const RoutingParaPoint &dest, physics::Distance const &maxDistance, physics::Duration const &maxDuration, Type typ)
Constructor. Calculates route between two points.
RouteExpander.hpp
ad::map::route::planning::RouteAstar
Implements routing on the lane network.
Definition: RouteAStar.hpp:41
ad::map::route::planning::RoutingParaPoint
routing para point
Definition: Routing.hpp:44
ad::map::route::planning::RouteAstar::calculate
bool calculate() override
Calculates the route using A* algorithm.
ad::map::route::planning::RouteAstarScore
cost data for route calculation
Definition: RouteAStar.hpp:32
ad::map::lane::Lane::ConstPtr
std::shared_ptr< Lane const > ConstPtr
Smart pointer on constant Lane.
Definition: Lane.hpp:66
ad::map::route::planning::RouteExpander< RouteAstarScore >::ExpandReason
ExpandReason
Definition of the reasons for route expansion.
Definition: RouteExpander.hpp:110