ADORe
ADORe is a modular open source software library and toolkit for decision making, planning, control and simulation of automated vehicles
mergemrmplanner.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 MergeMRMPlanner:public MRMPlanner<K,P>
35  {
36  private:
47  public:
61  : MRMPlanner<K,P>(lcv->getSourceLane(),plat,pveh,ptrajectory),
62  lateralReference_(lcv->getSourceLane()),
63  lateralAccelerationReference_(lcv->getSourceLane()),
64  lateralJerkReference_(lcv->getSourceLane()),
69  lateralAccelerationConstraintUB_(lcv->getSourceLane(),plat,ANominalConstraint::UB),
70  lateralAccelerationConstraintLB_(lcv->getSourceLane(),plat,ANominalConstraint::LB)
71  {
72  this->getOffsetSolver().getInformationSet().add(&lateralReference_);
73  this->getOffsetSolver().getInformationSet().add(&lateralAccelerationReference_);
74  this->getOffsetSolver().getInformationSet().add(&lateralJerkReference_);
75  this->getOffsetSolver().getInformationSet().add(&lateralOffsetConstraint_left_);
76  this->getOffsetSolver().getInformationSet().add(&lateralOffsetConstraint_right_);
77  this->getOffsetSolver().getInformationSet().add(&headingConstraintUB_);
78  this->getOffsetSolver().getInformationSet().add(&headingConstraintLB_);
79  this->getOffsetSolver().getInformationSet().add(&lateralAccelerationConstraintUB_);
80  this->getOffsetSolver().getInformationSet().add(&lateralAccelerationConstraintLB_);
81  }
82 
84  {
85  this->info_.add(constraint);
86  }
87 
89  {
90  this->info_.add(reference);
91  }
92  };
93  }
94 }
Definition: anominalplanner.h:52
Definition: anominalplanner.h:96
Definition: basicconstraintsandreferences.h:650
Definition: basicconstraintsandreferences.h:409
Definition: basicconstraintsandreferences.h:361
Definition: basicconstraintsandreferences.h:547
Definition: basicconstraintsandreferences.h:575
Definition: lanechangeconstraintsandreferences.h:468
Definition: mrmplanner.h:32
LateralPlanner< K, P > & getOffsetSolver()
Definition: mrmplanner.h:259
Plans minimum risk maneuver to cancel lane change.
Definition: mergemrmplanner.h:35
void addReference(ANominalReference *reference)
Definition: mergemrmplanner.h:88
void addConstraint(ANominalConstraint *constraint)
Definition: mergemrmplanner.h:83
MergeMRMPlanner(adore::view::ALaneChangeView *lcv, adore::params::APLateralPlanner *plat, adore::params::APTacticalPlanner *ptac, adore::params::APVehicle *pveh, adore::params::APTrajectoryGeneration *ptrajectory)
Definition: mergemrmplanner.h:56
LateralAccelerationReference lateralAccelerationReference_
Definition: mergemrmplanner.h:38
HeadingConstraint headingConstraintLB_
Definition: mergemrmplanner.h:43
FollowCenterlineReference lateralReference_
Definition: mergemrmplanner.h:37
LateralOffsetConstraintLM lateralOffsetConstraint_right_
Definition: mergemrmplanner.h:41
LateralOffsetConstraintLM lateralOffsetConstraint_left_
Definition: mergemrmplanner.h:40
LateralAccelerationConstraint lateralAccelerationConstraintLB_
Definition: mergemrmplanner.h:45
LateralAccelerationConstraint lateralAccelerationConstraintUB_
Definition: mergemrmplanner.h:44
HeadingConstraint headingConstraintUB_
Definition: mergemrmplanner.h:42
LateralJerkReference lateralJerkReference_
Definition: mergemrmplanner.h:39
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
Definition: alanechangeview.h:27
Definition: areaofeffectconverter.h:20