ad_map_access
Planning.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 
15 #include "ad/map/match/Object.hpp"
16 #include "ad/map/route/Route.hpp"
18 #include "ad/map/route/Routing.hpp"
19 #include "ad/map/route/Types.hpp"
20 
22 namespace ad {
24 namespace map {
26 namespace route {
30 namespace planning {
31 
41  physics::ParametricValue const &parametricOffset,
42  RoutingDirection const &routingDirection = RoutingDirection::DONT_CARE);
43 
52  RoutingDirection const &routingDirection = RoutingDirection::DONT_CARE);
53 
67  RoutingDirection const &routingDirection = RoutingDirection::DONT_CARE);
68 
76 
89 
96  const RoutingParaPoint &dest,
98 
108  const point::ParaPoint &dest,
110 {
111  return planRoute(createRoutingPoint(start), createRoutingPoint(dest), routeCreationMode);
112 }
113 
124  point::ENUHeading const &startHeading,
125  const point::ParaPoint &dest,
127 {
128  return planRoute(createRoutingPoint(start, startHeading), createRoutingPoint(dest), routeCreationMode);
129 }
130 
139  point::ENUHeading const &startHeading,
140  const point::ParaPoint &dest,
141  point::ENUHeading const &destHeading,
143 {
144  return planRoute(createRoutingPoint(start, startHeading), createRoutingPoint(dest, destHeading), routeCreationMode);
145 }
146 
152 route::FullRoute planRoute(const RoutingParaPoint &start,
153  const point::GeoPoint &dest,
155 
161 route::FullRoute planRoute(const RoutingParaPoint &start,
162  const point::ENUPoint &dest,
164 
171  const point::GeoPoint &dest,
173 {
174  return planRoute(createRoutingPoint(start), dest, routeCreationMode);
175 }
176 
184  point::ENUHeading const &startHeading,
185  const point::GeoPoint &dest,
187 {
188  return planRoute(createRoutingPoint(start, startHeading), dest, routeCreationMode);
189 }
190 
197  const config::PointOfInterest &dest,
199 {
200  return planRoute(start, dest.geoPoint, routeCreationMode);
201 }
202 
212 FullRoute planRoute(const RoutingParaPoint &start,
213  const std::vector<point::GeoPoint> &dest,
215 
225 FullRoute planRoute(const RoutingParaPoint &start,
226  const std::vector<point::ENUPoint> &dest,
228 
236 FullRoute planRoute(const RoutingParaPoint &start,
237  std::vector<RoutingParaPoint> const &dest,
239 
248  point::ENUHeading const &startHeading,
249  const std::vector<point::GeoPoint> &dest,
251 {
252  return planRoute(createRoutingPoint(start, startHeading), dest, routeCreationMode);
253 }
254 
258 {
261  Off,
264  OnlyEqual,
271 };
272 
286 std::vector<route::FullRoute>
287 predictRoutesOnDuration(const RoutingParaPoint &start,
288  physics::Duration const &predictionDuration,
291  ::ad::map::lane::LaneIdSet const &relevantLanes = ::ad::map::lane::LaneIdSet());
292 
306 std::vector<route::FullRoute>
307 predictRoutesOnDistance(const RoutingParaPoint &start,
308  physics::Distance const &predictionDistance,
311  ::ad::map::lane::LaneIdSet const &relevantLanes = ::ad::map::lane::LaneIdSet());
312 
327 std::vector<route::FullRoute>
328 predictRoutes(const RoutingParaPoint &start,
329  physics::Distance const &predictionDistance,
330  physics::Duration const &predictionDuration,
333  ::ad::map::lane::LaneIdSet const &relevantLanes = ::ad::map::lane::LaneIdSet());
334 
348 std::vector<route::FullRoute>
350  physics::Duration const &predictionDuration,
353  ::ad::map::lane::LaneIdSet const &relevantLanes = ::ad::map::lane::LaneIdSet());
354 
368 std::vector<route::FullRoute>
370  physics::Distance const &predictionDistance,
373  ::ad::map::lane::LaneIdSet const &relevantLanes = ::ad::map::lane::LaneIdSet());
374 
389 std::vector<route::FullRoute>
391  physics::Distance const &predictionDistance,
392  physics::Duration const &predictionDuration,
395  ::ad::map::lane::LaneIdSet const &relevantLanes = ::ad::map::lane::LaneIdSet());
396 
417 std::vector<route::FullRoute>
419  physics::Distance const &predictionDistance,
420  physics::Duration const &predictionDuration,
421  RouteCreationMode const routeCreationMode = RouteCreationMode::AllRoutableLanes,
423  ::ad::map::lane::LaneIdSet const &relevantLanes = ::ad::map::lane::LaneIdSet());
424 
435 FullRouteList filterDuplicatedRoutes(const FullRouteList fullRoutes, FilterDuplicatesMode const filterMode);
436 
440 {
444  Equal,
448  Shorter,
452  Longer,
456  Differ
457 };
458 
459 std::ostream &operator<<(std::ostream &os, CompareRouteResult const &value);
460 
474 
491  const match::Object &startObject,
492  const match::Object &destObject,
493  physics::Distance const &maxDistance,
494  physics::Duration const &maxDuration,
495  std::vector<route::FullRoute> const &startObjectPredictionHints = std::vector<route::FullRoute>(),
496  std::vector<route::FullRoute> const &destObjectPredictionHints = std::vector<route::FullRoute>(),
497  ::ad::map::lane::LaneIdSet const &relevantLanes = ::ad::map::lane::LaneIdSet());
498 
514  const match::Object &startObject,
515  const match::Object &destObject,
516  physics::Distance const &maxDistance,
517  std::vector<route::FullRoute> const &startObjectPredictionHints = std::vector<route::FullRoute>(),
518  std::vector<route::FullRoute> const &destObjectPredictionHints = std::vector<route::FullRoute>(),
519  ::ad::map::lane::LaneIdSet const &relevantLanes = ::ad::map::lane::LaneIdSet());
520 
536  const match::Object &startObject,
537  const match::Object &destObject,
538  physics::Duration const &maxDuration,
539  std::vector<route::FullRoute> const &startObjectPredictionHints = std::vector<route::FullRoute>(),
540  std::vector<route::FullRoute> const &destObjectPredictionHints = std::vector<route::FullRoute>(),
541  ::ad::map::lane::LaneIdSet const &relevantLanes = ::ad::map::lane::LaneIdSet());
542 
549 
555 FullRoute createFullRoute(const Route::RawRoute &rawRoute,
556  RouteCreationMode const routeCreationMode,
557  lane::LaneIdSet const &relevantLanes);
558 
559 } // namespace planning
560 } // namespace route
561 } // namespace map
562 } // namespace ad
ad
namespace ad
Definition: GeometryStoreItem.hpp:28
ad::map::route::planning::FilterDuplicatesMode::Off
@ Off
Object.hpp
ad::map::route::RouteCreationMode
RouteCreationMode
DataType RouteCreationMode.
Definition: RouteCreationMode.hpp:43
ad::map::route::planning::CompareRouteResult::Longer
@ Longer
ad::map::match::LaneOccupiedRegion
DataType LaneOccupiedRegion.
Definition: LaneOccupiedRegion.hpp:46
ad::map::route::planning::FilterDuplicatesMode::SubRoutesPreferShorterOnes
@ SubRoutesPreferShorterOnes
ad::map::route::planning::filterDuplicatedRoutes
FullRouteList filterDuplicatedRoutes(const FullRouteList fullRoutes, FilterDuplicatesMode const filterMode)
Filter duplicated routes from a list of routes.
ad::map::config::PointOfInterest::geoPoint
::ad::map::point::GeoPoint geoPoint
Definition: PointOfInterest.hpp:122
ad::map::match::Object
DataType Object.
Definition: Object.hpp:43
ad::map::point::ParaPoint
DataType ParaPoint.
Definition: ParaPoint.hpp:48
ad::map::route::planning::createFullRoute
FullRoute createFullRoute(const Route::RawRoute &rawRoute, RouteCreationMode const routeCreationMode, lane::LaneIdSet const &relevantLanes)
helper function to create a full route
ad::map::route::planning::CompareRouteResult::Shorter
@ Shorter
ad::map::route::ConnectingRoute
DataType ConnectingRoute.
Definition: ConnectingRoute.hpp:66
ad::map::route::planning::predictRoutesDirectionless
std::vector< route::FullRoute > predictRoutesDirectionless(const point::ParaPoint &start, physics::Distance const &predictionDistance, physics::Duration const &predictionDuration, RouteCreationMode const routeCreationMode=RouteCreationMode::AllRoutableLanes, FilterDuplicatesMode const filterMode=FilterDuplicatesMode::SubRoutesPreferLongerOnes, ::ad::map::lane::LaneIdSet const &relevantLanes=::ad::map::lane::LaneIdSet())
perform route based prediction restricted by the prediction distance and duration....
ad::map::route::planning::CompareRouteResult
CompareRouteResult
result for comparing two routes with each other
Definition: Planning.hpp:439
ad::map::point::GeoPoint
DataType GeoPoint.
Definition: GeoPoint.hpp:47
ad::map::route::planning::calculateConnectingRoute
ConnectingRoute calculateConnectingRoute(const match::Object &startObject, const match::Object &destObject, physics::Distance const &maxDistance, physics::Duration const &maxDuration, std::vector< route::FullRoute > const &startObjectPredictionHints=std::vector< route::FullRoute >(), std::vector< route::FullRoute > const &destObjectPredictionHints=std::vector< route::FullRoute >(), ::ad::map::lane::LaneIdSet const &relevantLanes=::ad::map::lane::LaneIdSet())
Calculate the connecting route between the the two objects.
ad::map::config::PointOfInterest
DataType PointOfInterest.
Definition: PointOfInterest.hpp:45
ad::map::route::planning::predictRoutesOnDuration
std::vector< route::FullRoute > predictRoutesOnDuration(const RoutingParaPoint &start, physics::Duration const &predictionDuration, RouteCreationMode const routeCreationMode=RouteCreationMode::SameDrivingDirection, FilterDuplicatesMode const filterMode=FilterDuplicatesMode::SubRoutesPreferLongerOnes, ::ad::map::lane::LaneIdSet const &relevantLanes=::ad::map::lane::LaneIdSet())
perform route based prediction restricted by the prediction duration. Note: Route predictions will no...
ad::map::route::planning::RoutingDirection::DONT_CARE
@ DONT_CARE
Vehicle direction is not relevant.
ad::map::route::planning::createRoutingPoint
RoutingParaPoint createRoutingPoint(lane::LaneId const &laneId, physics::ParametricValue const &parametricOffset, RoutingDirection const &routingDirection=RoutingDirection::DONT_CARE)
create a RoutingParaPoint
ad::map::route::planning::FilterDuplicatesMode::SubRoutesPreferLongerOnes
@ SubRoutesPreferLongerOnes
ad::map::point::ENUPoint
DataType ENUPoint.
Definition: ENUPoint.hpp:51
PointOfInterest.hpp
ad::map::route::planning::CompareRouteResult::Equal
@ Equal
ad::map::route::RouteCreationMode::SameDrivingDirection
@ SameDrivingDirection
ad::map::lane::LaneId
DataType LaneId.
Definition: LaneId.hpp:66
ad::map::point::ENUHeading
DataType ENUHeading.
Definition: ENUHeading.hpp:65
ad::map::route::planning::RoutingDirection
RoutingDirection
direction at the para point in respect to the lane orientation
Definition: Routing.hpp:31
ad::map::route::planning::FilterDuplicatesMode::OnlyEqual
@ OnlyEqual
ad::map::match::MapMatchedObjectBoundingBox
DataType MapMatchedObjectBoundingBox.
Definition: MapMatchedObjectBoundingBox.hpp:45
ad::map::route::planning::FilterDuplicatesMode
FilterDuplicatesMode
mode for filtering duplicates in prediction
Definition: Planning.hpp:257
ad::map::route::planning::predictRoutesOnDistance
std::vector< route::FullRoute > predictRoutesOnDistance(const RoutingParaPoint &start, physics::Distance const &predictionDistance, RouteCreationMode const routeCreationMode=RouteCreationMode::SameDrivingDirection, FilterDuplicatesMode const filterMode=FilterDuplicatesMode::SubRoutesPreferLongerOnes, ::ad::map::lane::LaneIdSet const &relevantLanes=::ad::map::lane::LaneIdSet())
perform route based prediction restricted by the prediction distance. Note: Route predictions will no...
ad::map::route::planning::predictRoutes
std::vector< route::FullRoute > predictRoutes(const RoutingParaPoint &start, physics::Distance const &predictionDistance, physics::Duration const &predictionDuration, RouteCreationMode const routeCreationMode=RouteCreationMode::SameDrivingDirection, FilterDuplicatesMode const filterMode=FilterDuplicatesMode::SubRoutesPreferLongerOnes, ::ad::map::lane::LaneIdSet const &relevantLanes=::ad::map::lane::LaneIdSet())
perform route based prediction restricted by the prediction distance and duration....
ad::map::route::planning::updateRoutePlanningCounters
void updateRoutePlanningCounters(route::FullRoute &route)
update route planning counters of the route
RouteOperation.hpp
Types.hpp
Routing.hpp
ad::map::route::FullRoute
DataType FullRoute.
Definition: FullRoute.hpp:59
ad::map::route::planning::CompareRouteResult::Differ
@ Differ
ad::map::route::planning::RoutingParaPoint
routing para point
Definition: Routing.hpp:44
Route.hpp
ad::map::route::planning::compareRoutesOnIntervalLevel
CompareRouteResult compareRoutesOnIntervalLevel(FullRoute const &left, FullRoute const &right)
Compare two routes on interval level.
ad::map::route::FullRouteList
std::vector<::ad::map::route::FullRoute > FullRouteList
DataType FullRouteList.
Definition: FullRouteList.hpp:44
ad::map::route::RouteCreationMode::AllRoutableLanes
@ AllRoutableLanes
ad::map::route::planning::planRoute
route::FullRoute planRoute(const RoutingParaPoint &start, const RoutingParaPoint &dest, RouteCreationMode const routeCreationMode=RouteCreationMode::SameDrivingDirection)
Calculates route between two points.