ADORe
ADORe is a modular open source software library and toolkit for decision making, planning, control and simulation of automated vehicles
continuelcmrmplanner.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 "mrmplanner.h"
18 #include <adore/view/alane.h>
23 
24 
25 namespace adore
26 {
27  namespace fun
28  {
29 
33  template<int K,int P>
34  class ContinueLCMRMPlanner:public MRMPlanner<K,P>
35  {
36  private:
50  public:
64  double lateral_i_grid = 0.0)
65  : MRMPlanner<K,P>(lcv->getTargetLane(),plat,pveh,ptrajectory),
66  followVehicleConstraint_(lcv->getSourceLane(),pveh,ptac,ptrajectory),
67  lateralReference_(lcv),
68  LaneChangeIntoGapReference_(lcv,pveh,plat,lateral_i_grid),
69  lateralAccelerationReference_(lcv->getTargetLane()),
70  lateralJerkReference_(lcv->getTargetLane()),
75  lateralAccelerationConstraintUB_(lcv->getTargetLane(),plat,ANominalConstraint::UB),
76  lateralAccelerationConstraintLB_(lcv->getTargetLane(),plat,ANominalConstraint::LB)
77  {
78  // this->getInformationSet().add(&followVehicleConstraint_);
79  // this->getOffsetSolver().getInformationSet().add(&lateralReference_);
80  this->getOffsetSolver().getInformationSet().add(&LaneChangeIntoGapReference_);
81  this->getOffsetSolver().getInformationSet().add(&lateralAccelerationReference_);
82  this->getOffsetSolver().getInformationSet().add(&lateralJerkReference_);
83  this->getOffsetSolver().getInformationSet().add(&lateralOffsetConstraint_left_);
84  this->getOffsetSolver().getInformationSet().add(&lateralOffsetConstraint_right_);
85  this->getOffsetSolver().getInformationSet().add(&headingConstraintUB_);
86  this->getOffsetSolver().getInformationSet().add(&headingConstraintLB_);
87  this->getOffsetSolver().getInformationSet().add(&lateralAccelerationConstraintUB_);
88  this->getOffsetSolver().getInformationSet().add(&lateralAccelerationConstraintLB_);
89  }
90 
92  {
96  }
97 
99  {
100  this->info_.add(constraint);
101  }
102 
104  {
105  this->info_.add(reference);
106  }
107  };
108  }
109 }
Definition: anominalplanner.h:52
Definition: anominalplanner.h:96
Plans minimum risk maneuver to cancel lane change.
Definition: continuelcmrmplanner.h:35
void addReference(ANominalReference *reference)
Definition: continuelcmrmplanner.h:103
ContinueLCMRMPlanner(adore::view::ALaneChangeView *lcv, adore::params::APLateralPlanner *plat, adore::params::APTacticalPlanner *ptac, adore::params::APVehicle *pveh, adore::params::APTrajectoryGeneration *ptrajectory, double lateral_i_grid=0.0)
Definition: continuelcmrmplanner.h:59
LateralAccelerationConstraint lateralAccelerationConstraintUB_
Definition: continuelcmrmplanner.h:44
FollowPrecedingVehicle followVehicleConstraint_
Definition: continuelcmrmplanner.h:48
LaneChangeIntoGapReference LaneChangeIntoGapReference_
Definition: continuelcmrmplanner.h:46
HeadingConstraint headingConstraintUB_
Definition: continuelcmrmplanner.h:42
ContinueLCReference lateralReference_
Definition: continuelcmrmplanner.h:37
LateralAccelerationReference lateralAccelerationReference_
Definition: continuelcmrmplanner.h:38
void addConstraint(ANominalConstraint *constraint)
Definition: continuelcmrmplanner.h:98
LateralOffsetConstraintLC lateralOffsetConstraint_left_
Definition: continuelcmrmplanner.h:40
LateralJerkReference lateralJerkReference_
Definition: continuelcmrmplanner.h:39
HeadingConstraint headingConstraintLB_
Definition: continuelcmrmplanner.h:43
LateralOffsetConstraintLC lateralOffsetConstraint_right_
Definition: continuelcmrmplanner.h:41
void setGap(adore::view::AGap *gap)
Definition: continuelcmrmplanner.h:91
LateralAccelerationConstraint lateralAccelerationConstraintLB_
Definition: continuelcmrmplanner.h:45
Definition: lanechangeconstraintsandreferences.h:726
Definition: basicconstraintsandreferences.h:858
Definition: basicconstraintsandreferences.h:409
Definition: lanechangeconstraintsandreferences.h:579
void setGap(adore::view::AGap *gap)
Definition: lanechangeconstraintsandreferences.h:594
Definition: basicconstraintsandreferences.h:361
Definition: basicconstraintsandreferences.h:547
Definition: basicconstraintsandreferences.h:575
Definition: lanechangeconstraintsandreferences.h:40
void setGap(adore::view::AGap *gap)
Definition: lanechangeconstraintsandreferences.h:58
Definition: mrmplanner.h:32
LateralPlanner< K, P > & getOffsetSolver()
Definition: mrmplanner.h:259
abstract class containing parameters related to configuring the lateral planner
Definition: ap_lateral_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
defines a gap in traffic, into which a merge may be planned
Definition: agap.h:25
Definition: alanechangeview.h:27
Definition: areaofeffectconverter.h:20