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

Plans minimum risk maneuvers on given lane. K number of control points for planning. P interpolation points per planning step. More...

#include <basicmrmplanner.h>

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

Public Member Functions

 BasicMRMPlanner (adore::view::ALane *lfv, adore::params::APLateralPlanner *plat, adore::params::APTacticalPlanner *ptac, adore::params::APVehicle *pveh, adore::params::APTrajectoryGeneration *ptrajectory, double lateral_i_grid=0.0)
 
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

FollowCenterlineReference followCenterlineReference_
 
LateralAccelerationReference lateralAccelerationReference_
 
LateralJerkReference lateralJerkReference_
 
LateralOffsetConstraintLF lateralOffsetConstraintLFUB_
 
LateralOffsetConstraintLF lateralOffsetConstraintLFLB_
 
HeadingConstraint headingConstraintUB_
 
HeadingConstraint headingConstraintLB_
 
LateralAccelerationConstraint lateralAccelerationConstraintUB_
 
LateralAccelerationConstraint lateralAccelerationConstraintLB_
 

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::BasicMRMPlanner< K, P >

Plans minimum risk maneuvers on given lane. K number of control points for planning. P interpolation points per planning step.

Constructor & Destructor Documentation

◆ BasicMRMPlanner()

template<int K, int P>
adore::fun::BasicMRMPlanner< K, P >::BasicMRMPlanner ( adore::view::ALane lfv,
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 following
platlateral planning parameters
pvehvehicle parameters
ptrajectorytrajectory generation parameters
lateral_i_gridoffset variation
Here is the call graph for this function:

Member Function Documentation

◆ addConstraint()

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

◆ addReference()

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

Member Data Documentation

◆ followCenterlineReference_

template<int K, int P>
FollowCenterlineReference adore::fun::BasicMRMPlanner< K, P >::followCenterlineReference_
private

reference for lateral position: follow the middle of the lane

◆ headingConstraintLB_

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

constraint for deviation from road direction

◆ headingConstraintUB_

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

constraint for deviation from road direction

◆ lateralAccelerationConstraintLB_

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

constraint for ay

◆ lateralAccelerationConstraintUB_

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

constraint for ay

◆ lateralAccelerationReference_

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

curvature compensation

◆ lateralJerkReference_

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

lateral jerk compensation

◆ lateralOffsetConstraintLFLB_

template<int K, int P>
LateralOffsetConstraintLF adore::fun::BasicMRMPlanner< K, P >::lateralOffsetConstraintLFLB_
private

lateral position bounds governed by lane boundaries

◆ lateralOffsetConstraintLFUB_

template<int K, int P>
LateralOffsetConstraintLF adore::fun::BasicMRMPlanner< K, P >::lateralOffsetConstraintLFUB_
private

lateral position bounds governed by lane boundaries


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