ADORe
ADORe is a modular open source software library and toolkit for decision making, planning, control and simulation of automated vehicles
adore::fun::ContinueLCMRMPlanner< K, P > Class Template Reference

Plans minimum risk maneuver to cancel lane change. More...

#include <continuelcmrmplanner.h>

Inheritance diagram for adore::fun::ContinueLCMRMPlanner< K, P >:
Inheritance graph
Collaboration diagram for adore::fun::ContinueLCMRMPlanner< K, P >:
Collaboration graph

Public Member Functions

 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)
 
void setGap (adore::view::AGap *gap)
 
void addConstraint (ANominalConstraint *constraint)
 
void addReference (ANominalReference *reference)
 
- Public Member Functions inherited from adore::fun::MRMPlanner< K, P >
void setJMax (double value)
 
void setTStall (double value)
 
void setAStall (double value)
 
void setAMin (double value)
 
void setSecondAttempt (bool value)
 
 MRMPlanner (adore::view::ALane *lfv, adore::params::APLateralPlanner *aplat, adore::params::APVehicle *apvehicle, adore::params::APTrajectoryGeneration *aptrajectory)
 
TPostProcessConstraints::TInformationSetgetInformationSet ()
 
double amin_medium_brake_trapezoidal (double v0, double a0, double jmin) const
 minimum acceleration that can be achieved before inverting jerk to end with v=0 and a=0 More...
 
void t_short_brake_trapezoidal (double v0, double a0, double jmin, double t3)
 times required for ramp up during short brake More...
 
void t_medium_brake_trapezoidal (double v0, double a0, double jmin, double &t1, double &t3) const
 times required for ramp down and ramp up during medium brake More...
 
void t_long_brake_trapezoidal (double v0, double a0, double amin, double jmin, double &t1, double &t2, double &t3) const
 times required for ramp down, constant and ramp up during long brake More...
 
int brake_case_trapezoidal (double v0, double a0, double amin, double jmin) const
 
void brake_params_trapezoidal (double v0, double a0, double amin, double jmin, double &a1, double &t1, double &t2, double &t3)
 general parameters More...
 
double a_brake_trapezoidal (double t, double a0, double a1, double jmin, double t1, double t2, double t3)
 
double j_brake_trapezoidal (double t, double jmin, double t1, double t2, double t3)
 
virtual void compute (const VehicleMotionState9d &initial_state)
 
TPartialPlangetLongitudinalPlan ()
 
TPartialPlangetLateralPlan ()
 
LateralPlanner< K, P > & getOffsetSolver ()
 
virtual bool hasValidPlan () const
 
virtual const SetPointRequestgetSetPointRequest () const
 
virtual double getCPUTime () const
 

Private Attributes

ContinueLCReference lateralReference_
 
LateralAccelerationReference lateralAccelerationReference_
 
LateralJerkReference lateralJerkReference_
 
LateralOffsetConstraintLC lateralOffsetConstraint_left_
 
LateralOffsetConstraintLC lateralOffsetConstraint_right_
 
HeadingConstraint headingConstraintUB_
 
HeadingConstraint headingConstraintLB_
 
LateralAccelerationConstraint lateralAccelerationConstraintUB_
 
LateralAccelerationConstraint lateralAccelerationConstraintLB_
 
LaneChangeIntoGapReference LaneChangeIntoGapReference_
 
FollowPrecedingVehicle followVehicleConstraint_
 

Additional Inherited Members

- Public Types inherited from adore::fun::MRMPlanner< K, P >
typedef adore::mad::LLinearPiecewiseFunctionM< double, N+RTPartialPlan
 
typedef InformationSetPostProcessing< 4, 2 > TPostProcessConstraints
 
- Static Public Attributes inherited from adore::fun::MRMPlanner< K, P >
static const int N = 3
 
static const int R = 1
 

Detailed Description

template<int K, int P>
class adore::fun::ContinueLCMRMPlanner< K, P >

Plans minimum risk maneuver to cancel lane change.

Constructor & Destructor Documentation

◆ ContinueLCMRMPlanner()

template<int K, int P>
adore::fun::ContinueLCMRMPlanner< K, P >::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 
)
inline

Constructor. Initializes references and constraints by linking them to required data abstraction views and parameters.

Parameters
lfvview for lane changes
platlateral planning parameters
pvehvehicle parameters
ptrajectorytrajectory generation parameters
Here is the call graph for this function:

Member Function Documentation

◆ addConstraint()

template<int K, int P>
void adore::fun::ContinueLCMRMPlanner< K, P >::addConstraint ( ANominalConstraint constraint)
inline

◆ addReference()

template<int K, int P>
void adore::fun::ContinueLCMRMPlanner< K, P >::addReference ( ANominalReference reference)
inline

◆ setGap()

template<int K, int P>
void adore::fun::ContinueLCMRMPlanner< K, P >::setGap ( adore::view::AGap gap)
inline
Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ followVehicleConstraint_

template<int K, int P>
FollowPrecedingVehicle adore::fun::ContinueLCMRMPlanner< K, P >::followVehicleConstraint_
private

reference for vehicle lateral position post-processing constraint for longitudinal plan

◆ headingConstraintLB_

template<int K, int P>
HeadingConstraint adore::fun::ContinueLCMRMPlanner< K, P >::headingConstraintLB_
private

constraint for deviation from road direction

◆ headingConstraintUB_

template<int K, int P>
HeadingConstraint adore::fun::ContinueLCMRMPlanner< K, P >::headingConstraintUB_
private

constraint for deviation from road direction

◆ LaneChangeIntoGapReference_

template<int K, int P>
LaneChangeIntoGapReference adore::fun::ContinueLCMRMPlanner< K, P >::LaneChangeIntoGapReference_
private

◆ lateralAccelerationConstraintLB_

template<int K, int P>
LateralAccelerationConstraint adore::fun::ContinueLCMRMPlanner< K, P >::lateralAccelerationConstraintLB_
private

constraint for ay

◆ lateralAccelerationConstraintUB_

template<int K, int P>
LateralAccelerationConstraint adore::fun::ContinueLCMRMPlanner< K, P >::lateralAccelerationConstraintUB_
private

constraint for ay

◆ lateralAccelerationReference_

template<int K, int P>
LateralAccelerationReference adore::fun::ContinueLCMRMPlanner< K, P >::lateralAccelerationReference_
private

curvature compensation

◆ lateralJerkReference_

template<int K, int P>
LateralJerkReference adore::fun::ContinueLCMRMPlanner< K, P >::lateralJerkReference_
private

lateral jerk compensation

◆ lateralOffsetConstraint_left_

template<int K, int P>
LateralOffsetConstraintLC adore::fun::ContinueLCMRMPlanner< K, P >::lateralOffsetConstraint_left_
private

constraint for staying in lane boundaries, which are selected according to gap state

◆ lateralOffsetConstraint_right_

template<int K, int P>
LateralOffsetConstraintLC adore::fun::ContinueLCMRMPlanner< K, P >::lateralOffsetConstraint_right_
private

constraint for staying in lane boundaries, which are selected according to gap state

◆ lateralReference_

template<int K, int P>
ContinueLCReference adore::fun::ContinueLCMRMPlanner< K, P >::lateralReference_
private

The documentation for this class was generated from the following file: