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

#include <basiclanechangeplanner.h>

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

Public Member Functions

 BasicLaneChangePlanner (adore::view::ALaneChangeView *lcv, adore::view::ANavigationGoalView *goalview, adore::view::ALimitLineEnRoute *controlledConnectionOnSource, adore::view::ALimitLineEnRoute *controlledConnectionOnTarget, adore::view::ALimitLineEnRoute *checkpoint_on_source, adore::view::ALimitLineEnRoute *checkpoint_on_target, 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)
 
void setGap (adore::view::AGap *gap)
 
void setSpeedScale (double value)
 
- Public Member Functions inherited from adore::fun::DecoupledLFLCPlanner< K, P >
 DecoupledLFLCPlanner (adore::view::ALane *lfv, adore::params::APLongitudinalPlanner *aplon, adore::params::APLateralPlanner *aplat, adore::params::APVehicle *apvehicle, adore::params::APTrajectoryGeneration *aptrajectory)
 
void setPlanningHorizon (double Tend)
 
double getPlanningHorizon () const
 
TInformationSetgetInformationSet ()
 
TProgressSolvergetProgressSolver ()
 
TOffsetSolvergetOffsetSolver ()
 
RoadCoordinateConvertergetRoadCoordinateConverter ()
 
std::string getStatus ()
 
virtual void compute (const VehicleMotionState9d &initial_state) override
 
virtual bool hasValidPlan () const override
 
virtual const SetPointRequestgetSetPointRequest () const override
 
virtual double getCPUTime () const override
 

Private Attributes

NominalReferenceSpeed nominalReferenceSpeed_
 
BreakAtHorizon breakAtHorizon_
 
CurvatureSpeedLimitPredict curvatureSpeedLimit_
 
LFVSpeedLimit lfvSpeedLimit_onTarget_
 
LFVSpeedLimit lfvSpeedLimit_onSource_
 
DontDriveBackwards dontDriveBackwards_
 
LongitudinalAccelerationConstraint longitudinalAccelerationConstraintUB_
 
LongitudinalAccelerationConstraint longitudinalAccelerationConstraintLB_
 
LaneWidthSpeedLimitLFV laneWidthSpeedLimitLFV_
 
StopAtBottleneckLFV stopAtBottleneckLFV_
 
StopAtNextGoalPoint stopAtNextGoalPoint_
 
AdhereToNextLimitLine stopAtRedLightOnSource_
 
AdhereToNextLimitLine stopAtRedLightOnTarget_
 
AdhereToNextLimitLine stopAtCheckPointOnSource_
 
AdhereToNextLimitLine stopAtCheckPointOnTarget_
 
FollowPrecedingVehicle_BreakingCurve followPrecedingVehicleOnSource_
 
FollowPrecedingVehicle_BreakingCurve followPrecedingVehicleOnTarget_
 
LowerBoundSGapToPrecedingVehicle lowerBoundSGapToPrecedingVehicleOnTarget_
 
LateralAccelerationReference lateralAccelerationReference_
 
LateralJerkReference lateralJerkReference_
 
HeadingConstraint headingConstraintUB_
 
HeadingConstraint headingConstraintLB_
 
LateralAccelerationConstraint lateralAccelerationConstraintUB_
 
LateralAccelerationConstraint lateralAccelerationConstraintLB_
 
LateralOffsetConstraintLC lateralOffsetConstraint_left_
 
LateralOffsetConstraintLC lateralOffsetConstraint_right_
 
LaneChangeIntoGapReference laneChangeIntoGapReference_
 

Additional Inherited Members

- Public Types inherited from adore::fun::DecoupledLFLCPlanner< K, P >
typedef adore::mad::LQ_OC_single_shooting< N, R, K, P > TProgressSolver
 
typedef adore::mad::LQ_OC_single_shooting< N, R, K, P > TOffsetSolver
 
typedef NominalPlannerInformationSet< N+1, 2 > TInformationSet
 
- Static Public Attributes inherited from adore::fun::DecoupledLFLCPlanner< K, P >
static const int N = 3
 
static const int R = 1
 
- Protected Attributes inherited from adore::fun::DecoupledLFLCPlanner< K, P >
TInformationSet info_
 

Detailed Description

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

Plans lane change maneuvers. The maneuver is limited in that front vehicle may not be overtaken during maneuver. Specialization of DecoupledLFLCPlanner for lane change maneuver planning.

Constructor & Destructor Documentation

◆ BasicLaneChangePlanner()

template<int K, int P>
adore::fun::BasicLaneChangePlanner< K, P >::BasicLaneChangePlanner ( adore::view::ALaneChangeView lcv,
adore::view::ANavigationGoalView goalview,
adore::view::ALimitLineEnRoute controlledConnectionOnSource,
adore::view::ALimitLineEnRoute controlledConnectionOnTarget,
adore::view::ALimitLineEnRoute checkpoint_on_source,
adore::view::ALimitLineEnRoute checkpoint_on_target,
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 
)
inline

reference for vehicle lateral position Constructor. Initializes references and constraints by linking them to required data abstraction views and parameters.

Parameters
lcvview for lane changing (determines direction of lane change, as well as source and target lane)
plonlongitudinal planning paramters
platlateral planning parameters
pvehvehicle parameters
ptrajectorytrajectory generation parameters
Here is the call graph for this function:

Member Function Documentation

◆ setGap()

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

◆ setSpeedScale()

template<int K, int P>
void adore::fun::BasicLaneChangePlanner< K, P >::setSpeedScale ( double  value)
inline

setSpeedScale - define reference speed to be a certain percentage of the

Here is the call graph for this function:
Here is the caller graph for this function:

Member Data Documentation

◆ breakAtHorizon_

template<int K, int P>
BreakAtHorizon adore::fun::BasicLaneChangePlanner< K, P >::breakAtHorizon_
private

plan to reduce speed to standstill inside visible range

◆ curvatureSpeedLimit_

template<int K, int P>
CurvatureSpeedLimitPredict adore::fun::BasicLaneChangePlanner< K, P >::curvatureSpeedLimit_
private

do not exceed lateral acceleration constraints in curve

◆ dontDriveBackwards_

template<int K, int P>
DontDriveBackwards adore::fun::BasicLaneChangePlanner< K, P >::dontDriveBackwards_
private

only drive forwards

◆ followPrecedingVehicleOnSource_

template<int K, int P>
FollowPrecedingVehicle_BreakingCurve adore::fun::BasicLaneChangePlanner< K, P >::followPrecedingVehicleOnSource_
private

constraint enforcing vehicle to follow next vehicle on source lane

◆ followPrecedingVehicleOnTarget_

template<int K, int P>
FollowPrecedingVehicle_BreakingCurve adore::fun::BasicLaneChangePlanner< K, P >::followPrecedingVehicleOnTarget_
private

constraint enforcing vehicle to follow next vehicle on target lane

◆ headingConstraintLB_

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

constraint for yaw angle deviation from road direction

◆ headingConstraintUB_

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

constraint for yaw angle deviation from road direction

◆ laneChangeIntoGapReference_

template<int K, int P>
LaneChangeIntoGapReference adore::fun::BasicLaneChangePlanner< K, P >::laneChangeIntoGapReference_
private

◆ laneWidthSpeedLimitLFV_

template<int K, int P>
LaneWidthSpeedLimitLFV adore::fun::BasicLaneChangePlanner< K, P >::laneWidthSpeedLimitLFV_
private

constraint enforcing slow movement through narrow gaps

◆ lateralAccelerationConstraintLB_

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

constraint for ay

◆ lateralAccelerationConstraintUB_

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

constraint for ay

◆ lateralAccelerationReference_

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

curvature supression

◆ lateralJerkReference_

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

jerk supression

◆ lateralOffsetConstraint_left_

template<int K, int P>
LateralOffsetConstraintLC adore::fun::BasicLaneChangePlanner< 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::BasicLaneChangePlanner< K, P >::lateralOffsetConstraint_right_
private

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

◆ lfvSpeedLimit_onSource_

template<int K, int P>
LFVSpeedLimit adore::fun::BasicLaneChangePlanner< K, P >::lfvSpeedLimit_onSource_
private

speed limit

◆ lfvSpeedLimit_onTarget_

template<int K, int P>
LFVSpeedLimit adore::fun::BasicLaneChangePlanner< K, P >::lfvSpeedLimit_onTarget_
private

speed limit

◆ longitudinalAccelerationConstraintLB_

template<int K, int P>
LongitudinalAccelerationConstraint adore::fun::BasicLaneChangePlanner< K, P >::longitudinalAccelerationConstraintLB_
private

constraint for ax

◆ longitudinalAccelerationConstraintUB_

template<int K, int P>
LongitudinalAccelerationConstraint adore::fun::BasicLaneChangePlanner< K, P >::longitudinalAccelerationConstraintUB_
private

constraint for ax

◆ lowerBoundSGapToPrecedingVehicleOnTarget_

template<int K, int P>
LowerBoundSGapToPrecedingVehicle adore::fun::BasicLaneChangePlanner< K, P >::lowerBoundSGapToPrecedingVehicleOnTarget_
private

◆ nominalReferenceSpeed_

template<int K, int P>
NominalReferenceSpeed adore::fun::BasicLaneChangePlanner< K, P >::nominalReferenceSpeed_
private

speed reference

◆ stopAtBottleneckLFV_

template<int K, int P>
StopAtBottleneckLFV adore::fun::BasicLaneChangePlanner< K, P >::stopAtBottleneckLFV_
private

@TODO: rework this for lcv, constraint enforcing vehicle to stop, if road is too narrow

◆ stopAtCheckPointOnSource_

template<int K, int P>
AdhereToNextLimitLine adore::fun::BasicLaneChangePlanner< K, P >::stopAtCheckPointOnSource_
private

constraint enforcing vehicle to stop at next checkpoint_on_source

◆ stopAtCheckPointOnTarget_

template<int K, int P>
AdhereToNextLimitLine adore::fun::BasicLaneChangePlanner< K, P >::stopAtCheckPointOnTarget_
private

constraint enforcing vehicle to stop at next checkpoint_on_target

◆ stopAtNextGoalPoint_

template<int K, int P>
StopAtNextGoalPoint adore::fun::BasicLaneChangePlanner< K, P >::stopAtNextGoalPoint_
private

constraint enforcing vehicle to stop, if goal point is reached

◆ stopAtRedLightOnSource_

template<int K, int P>
AdhereToNextLimitLine adore::fun::BasicLaneChangePlanner< K, P >::stopAtRedLightOnSource_
private

constraint enforcing vehicle to stop at next controlled connection, if it is switched to red

◆ stopAtRedLightOnTarget_

template<int K, int P>
AdhereToNextLimitLine adore::fun::BasicLaneChangePlanner< K, P >::stopAtRedLightOnTarget_
private

constraint enforcing vehicle to stop at next controlled connection, if it is switched to red


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