ADORe
ADORe is a modular open source software library and toolkit for decision making, planning, control and simulation of automated vehicles
basiclanefollowingplanner.h
Go to the documentation of this file.
1 /********************************************************************************
2  * Copyright (C) 2017-2020 German Aerospace Center (DLR).
3  * Eclipse ADORe, Automated Driving Open Research https://eclipse.org/adore
4  *
5  * This program and the accompanying materials are made available under the
6  * terms of the Eclipse Public License 2.0 which is available at
7  * http://www.eclipse.org/legal/epl-2.0.
8  *
9  * SPDX-License-Identifier: EPL-2.0
10  *
11  * Contributors:
12  * Daniel Heß - initial API and implementation
13  ********************************************************************************/
14 
15 #pragma once
16 #include "decoupled_lflc_planner.h"
18 #include <adore/view/alane.h>
22 
23 
24 namespace adore
25 {
26  namespace fun
27  {
28 
35  template<int K,int P>
37  {
38  private:
47  // FollowPrecedingVehicle followPrecedingVehicle_; /**< uses time gap*/
66  public:
82  adore::view::ALimitLineEnRoute* controlledConnection,
89  double lateral_i_grid = 0.0)
90  : DecoupledLFLCPlanner<K,P>(lfv,plon,plat,pveh,ptrajectory),
91  nominalReferenceSpeed_(lfv,plon,ptac),
92  breakAtHorizon_(lfv,pveh,ptrajectory),
93  keepDistanceToLaneEnd_(lfv,pveh,ptrajectory,ptac),
94  curvatureSpeedLimit_(lfv,plon),
95  lfvSpeedLimit_(lfv,ptac),
99  followPrecedingVehicle_(lfv,pveh,ptac,ptrajectory),
100  lowerBoundSGapToPrecedingVehicle_(lfv,pveh,ptac,ptrajectory),
101  laneWidthSpeedLimitLFV_(lfv,plon),
102  stopAtBottleneckLFV_(lfv,plon,pveh,ptrajectory,ptac),
103  stopAtNextGoalPoint_(goalview),
104  stopAtNextConflictPoint_(nullptr),
105  stopAtRedLight_(controlledConnection),
106  stopAtCheckPoint_(checkpoint),
107  followCenterlineReference_(lfv,lateral_i_grid),
116  {
117  this->info_.add(&nominalReferenceSpeed_);
118  this->info_.add(&breakAtHorizon_);
119  this->info_.add(&keepDistanceToLaneEnd_);
120  this->info_.add(&curvatureSpeedLimit_);
121  this->info_.add(&lfvSpeedLimit_);
122  this->info_.add(&dontDriveBackwards_);
123  this->info_.add(&longitudinalAccelerationConstraintUB_);
124  this->info_.add(&longitudinalAccelerationConstraintLB_);
125  this->info_.add(&followPrecedingVehicle_);
126  this->info_.add(&lowerBoundSGapToPrecedingVehicle_);
127  this->info_.add(&stopAtNextGoalPoint_);
128  this->info_.add(&stopAtRedLight_);
129  this->info_.add(&stopAtCheckPoint_);
130  this->info_.add(&followCenterlineReference_);
131  this->info_.add(&lateralAccelerationReference_);
132  this->info_.add(&lateralJerkReference_);
133  this->info_.add(&lateralOffsetConstraintLFUB_);
134  this->info_.add(&lateralOffsetConstraintLFLB_);
135  this->info_.add(&headingConstraintUB_);
136  this->info_.add(&headingConstraintLB_);
137  this->info_.add(&lateralAccelerationConstraintUB_);
138  this->info_.add(&lateralAccelerationConstraintLB_);
139  this->info_.add(&stopAtNextConflictPoint_);
140  }
141 
143  {
144  this->info_.add(constraint);
145  }
146 
148  {
149  this->info_.add(reference);
150  }
154  void setSpeedScale(double value)
155  {
157  }
159  {
161  }
162  };
163  }
164 }
Definition: anominalplanner.h:52
Definition: anominalplanner.h:96
Definition: basicconstraintsandreferences.h:1043
Definition: basiclanefollowingplanner.h:37
AdhereToNextLimitLine stopAtRedLight_
Definition: basiclanefollowingplanner.h:53
StopAtNextGoalPoint stopAtNextGoalPoint_
Definition: basiclanefollowingplanner.h:52
AdhereToNextLimitLine stopAtCheckPoint_
Definition: basiclanefollowingplanner.h:54
DontDriveBackwards dontDriveBackwards_
Definition: basiclanefollowingplanner.h:44
void addConstraint(ANominalConstraint *constraint)
Definition: basiclanefollowingplanner.h:142
LateralOffsetConstraintLF lateralOffsetConstraintLFLB_
Definition: basiclanefollowingplanner.h:61
LFVSpeedLimit lfvSpeedLimit_
Definition: basiclanefollowingplanner.h:43
LateralOffsetConstraintLF lateralOffsetConstraintLFUB_
Definition: basiclanefollowingplanner.h:60
LateralJerkReference lateralJerkReference_
Definition: basiclanefollowingplanner.h:59
StopAtNextConflictPoint stopAtNextConflictPoint_
Definition: basiclanefollowingplanner.h:55
LateralAccelerationConstraint lateralAccelerationConstraintLB_
Definition: basiclanefollowingplanner.h:65
void addReference(ANominalReference *reference)
Definition: basiclanefollowingplanner.h:147
HeadingConstraint headingConstraintUB_
Definition: basiclanefollowingplanner.h:62
LateralAccelerationReference lateralAccelerationReference_
Definition: basiclanefollowingplanner.h:58
BreakAtHorizon breakAtHorizon_
Definition: basiclanefollowingplanner.h:40
FollowCenterlineReference followCenterlineReference_
Definition: basiclanefollowingplanner.h:57
LaneWidthSpeedLimitLFV laneWidthSpeedLimitLFV_
Definition: basiclanefollowingplanner.h:50
StopAtBottleneckLFV stopAtBottleneckLFV_
Definition: basiclanefollowingplanner.h:51
HeadingConstraint headingConstraintLB_
Definition: basiclanefollowingplanner.h:63
LateralAccelerationConstraint lateralAccelerationConstraintUB_
Definition: basiclanefollowingplanner.h:64
LowerBoundSGapToPrecedingVehicle lowerBoundSGapToPrecedingVehicle_
Definition: basiclanefollowingplanner.h:49
CurvatureSpeedLimitPredict curvatureSpeedLimit_
Definition: basiclanefollowingplanner.h:42
FollowPrecedingVehicle_BreakingCurve followPrecedingVehicle_
Definition: basiclanefollowingplanner.h:48
void setConflictSet(adore::view::AConflictPointSet *conflicts)
Definition: basiclanefollowingplanner.h:158
void setSpeedScale(double value)
Definition: basiclanefollowingplanner.h:154
DistanceToLaneEndConstraint keepDistanceToLaneEnd_
Definition: basiclanefollowingplanner.h:41
BasicLaneFollowingPlanner(adore::view::ALane *lfv, adore::view::ANavigationGoalView *goalview, adore::view::ALimitLineEnRoute *controlledConnection, adore::view::ALimitLineEnRoute *checkpoint, adore::params::APLongitudinalPlanner *plon, adore::params::APLateralPlanner *plat, adore::params::APTacticalPlanner *ptac, adore::params::APVehicle *pveh, adore::params::APTrajectoryGeneration *ptrajectory, double lateral_i_grid=0.0)
Definition: basiclanefollowingplanner.h:80
LongitudinalAccelerationConstraint longitudinalAccelerationConstraintLB_
Definition: basiclanefollowingplanner.h:46
NominalReferenceSpeed nominalReferenceSpeed_
Definition: basiclanefollowingplanner.h:39
LongitudinalAccelerationConstraint longitudinalAccelerationConstraintUB_
Definition: basiclanefollowingplanner.h:45
Definition: basicconstraintsandreferences.h:323
Definition: basicconstraintsandreferences.h:119
Definition: decoupled_lflc_planner.h:42
TInformationSet info_
Definition: decoupled_lflc_planner.h:52
Definition: basicconstraintsandreferences.h:504
Definition: basicconstraintsandreferences.h:178
Definition: basicconstraintsandreferences.h:650
Definition: basicconstraintsandreferences.h:917
Definition: basicconstraintsandreferences.h:409
Definition: basicconstraintsandreferences.h:453
Definition: basicconstraintsandreferences.h:203
Definition: basicconstraintsandreferences.h:361
Definition: basicconstraintsandreferences.h:547
Definition: basicconstraintsandreferences.h:575
Definition: basicconstraintsandreferences.h:700
Definition: basicconstraintsandreferences.h:804
Definition: basicconstraintsandreferences.h:982
void add(ANominalReference *r)
Definition: anominalplannerinformation.h:68
Definition: basicconstraintsandreferences.h:603
void setSpeedScale(double value)
Definition: basicconstraintsandreferences.h:626
Definition: basicconstraintsandreferences.h:264
Definition: basicconstraintsandreferences.h:1179
void setView(adore::view::AConflictPointSet *conflicts)
Definition: basicconstraintsandreferences.h:1188
Definition: basicconstraintsandreferences.h:1133
abstract class containing parameters related to configuring the lateral planner
Definition: ap_lateral_planner.h:26
abstract class containing parameters related to configuring the longitudinal planner
Definition: ap_longitudinal_planner.h:26
abstract classs containing parameters to configure aspects and constraints of the tactical planner
Definition: ap_tactical_planner.h:25
abstract class containing parameters to configure the behaviour of trajectory generation
Definition: ap_trajectory_generation.h:26
abstract class for vehicle configuration related paremeters
Definition: ap_vehicle.h:29
Definition: aconflictpoint.h:29
Definition: alane.h:28
Definition: alimitlineenroute.h:26
Definition: anavigationgoalview.h:25
Definition: areaofeffectconverter.h:20