60 virtual double getValue(
double t,
double s,
double ds)
const override
158 virtual void update(
double t0,
double s0,
double ds0)
override
225 throw std::runtime_error(
"unknown gap state in LaneChangePhaseExtimator");
236 virtual void update(
double t0,
double s0,
double ds0)
override
251 double object_v0 =
object.getCurrentSpeed();
252 double delay =
t0_ -
object.getObservationTime();
253 double object_s0 =
object.getCurrentProgress() -
object.getLength()*0.5 - to_front + delay * object_v0;
257 double buffer =
sgap_;
300 virtual double getValue(
double t,
double s,
double ds)
const override
387 virtual void update(
double t0,
double s0,
double ds0)
override
435 virtual double getValue(
double t,
double s,
double ds)
const override
443 virtual void update(
double t0,
double s0,
double ds0)
override
486 virtual double getValue(
double t,
double s,
double ds)
const override
551 virtual void update(
double t0,
double s0,
double ds0)
override
605 double dl,dr,dlc,drc;
663 const double dc = (dl+dr)*0.5;
665 if(dlc<ref && ref<drc)ref = dc;
666 else if(dlc<ref)ref = dlc;
667 else if(ref<drc)ref = drc;
671 virtual void update(
double t0,
double s0,
double ds0)
override
709 virtual void update(
double t0,
double s0,
double ds0)
override
742 virtual void update(
double t0,
double s0,
double ds0)
override
800 virtual double getUB(
int dim,
int der,
double t,
double s,
double ds)
const override
802 if (dim == 0 && der == 0)
814 else if (dim == 1 && der == 0)
845 virtual double getLB(
int dim,
int der,
double t,
double s,
double ds)
const override
847 if (dim == 0 && der == 0)
859 else if (dim == 1 && der == 0)
890 if (dim == 0 && der == 0)
906 if (dim == 1 && der == 0)
941 virtual void update(
double t0,
double s0,
double ds0)
override
951 for (
auto &
object : traffic_original_lane)
953 double object_v0 =
object.getCurrentSpeed();
954 double delay =
t0_ -
object.getObservationTime();
955 double object_s0 =
object.getCurrentProgress() -
object.getLength() * 0.5 - to_front + delay * object_v0;
967 double s_lead_coord = 1.0e6;
968 auto object_it = traffic_target_lane.begin();
969 for (; object_it != traffic_target_lane.end(); ++object_it)
971 double object_v0 = object_it->getCurrentSpeed();
972 double delay =
t0_ - object_it->getObservationTime();
973 double object_s0 = object_it->getCurrentProgress() - object_it->getLength() * 0.5 - to_front + delay * object_v0;
979 s_lead_coord = object_s0;
986 double s_chase_coord = -1.0e6;
987 if (object_it != traffic_target_lane.begin())
989 std::advance(object_it, -1);
990 double object_v0 = object_it->getCurrentSpeed();
991 double delay =
t0_ - object_it->getObservationTime();
992 double object_s0 = object_it->getCurrentProgress() + object_it->getLength() * 0.5 + to_rear + delay * object_v0;
996 s_chase_coord = object_s0;
1005 s_ = 0.5 * (s_chase_coord + 0.1 *
v_chase_t0_ + s0 + 0.1 * ds0);
1013 s_ = s0 + 0.1 * ds0;
Definition: anominalplanner.h:52
ConstraintDirection
Definition: anominalplanner.h:55
@ LB
Definition: anominalplanner.h:56
@ UB
Definition: anominalplanner.h:56
Definition: anominalplanner.h:96
Definition: lanechangeconstraintsandreferences.h:278
virtual int getDimension() override
Definition: lanechangeconstraintsandreferences.h:401
adore::params::APLateralPlanner * plat_
Definition: lanechangeconstraintsandreferences.h:283
double width_
Definition: lanechangeconstraintsandreferences.h:284
double hard_safety_distance_
Definition: lanechangeconstraintsandreferences.h:285
LaneChangePhaseEstimator * phaseEstimator_
Definition: lanechangeconstraintsandreferences.h:281
adore::view::ALaneChangeView * lcv_
Definition: lanechangeconstraintsandreferences.h:280
double soft_safety_distance_
Definition: lanechangeconstraintsandreferences.h:286
virtual void update(double t0, double s0, double ds0) override
Definition: lanechangeconstraintsandreferences.h:387
ConstraintDirection direction_
Definition: lanechangeconstraintsandreferences.h:288
AdvancedLateralOffsetConstraintLC(adore::view::ALaneChangeView *lcv, LaneChangePhaseEstimator *phaseEstimator, adore::params::APVehicle *pv, adore::params::APLateralPlanner *plat, ConstraintDirection direction)
Definition: lanechangeconstraintsandreferences.h:291
void setGap(adore::view::AGap *gap)
Definition: lanechangeconstraintsandreferences.h:298
double min_control_space_
Definition: lanechangeconstraintsandreferences.h:287
adore::view::AGap * gap_
Definition: lanechangeconstraintsandreferences.h:289
virtual double getValue(double t, double s, double ds) const override
Definition: lanechangeconstraintsandreferences.h:300
adore::params::APVehicle * pv_
Definition: lanechangeconstraintsandreferences.h:282
virtual int getDerivative() override
Definition: lanechangeconstraintsandreferences.h:405
virtual ConstraintDirection getDirection() override
Definition: lanechangeconstraintsandreferences.h:397
Definition: lanechangeconstraintsandreferences.h:693
virtual int getDimension() override
Definition: lanechangeconstraintsandreferences.h:712
virtual void update(double t0, double s0, double ds0) override
Definition: lanechangeconstraintsandreferences.h:709
adore::view::ALaneChangeView * lcv_
Definition: lanechangeconstraintsandreferences.h:695
CancelMergeReference(adore::view::ALaneChangeView *lcv)
Definition: lanechangeconstraintsandreferences.h:697
virtual bool getValueIfAvailable(double t, double s, double ds, double &ref) const override
Definition: lanechangeconstraintsandreferences.h:699
virtual int getDerivative() override
Definition: lanechangeconstraintsandreferences.h:716
Definition: lanechangeconstraintsandreferences.h:726
ContinueLCReference(adore::view::ALaneChangeView *lcv)
Definition: lanechangeconstraintsandreferences.h:730
adore::view::ALaneChangeView * lcv_
Definition: lanechangeconstraintsandreferences.h:728
virtual void update(double t0, double s0, double ds0) override
Definition: lanechangeconstraintsandreferences.h:742
virtual bool getValueIfAvailable(double t, double s, double ds, double &ref) const override
Definition: lanechangeconstraintsandreferences.h:732
virtual int getDerivative() override
Definition: lanechangeconstraintsandreferences.h:749
virtual int getDimension() override
Definition: lanechangeconstraintsandreferences.h:745
Definition: lanechangeconstraintsandreferences.h:417
virtual int getDerivative() override
Definition: lanechangeconstraintsandreferences.h:455
virtual ConstraintDirection getDirection() override
Definition: lanechangeconstraintsandreferences.h:447
virtual int getDimension() override
Definition: lanechangeconstraintsandreferences.h:451
FollowPrecedingVehicleOnLaneToBeLeft_BrakingCurve(adore::view::ALane *lane, LaneChangePhaseEstimator *phaseEstimator, const adore::params::APVehicle *pveh, const adore::params::APTacticalPlanner *ptac, const adore::params::APTrajectoryGeneration *pgen)
Definition: lanechangeconstraintsandreferences.h:422
fun::FollowPrecedingVehicle_BreakingCurve * fpv
Definition: lanechangeconstraintsandreferences.h:419
~FollowPrecedingVehicleOnLaneToBeLeft_BrakingCurve()
Definition: lanechangeconstraintsandreferences.h:431
virtual double getValue(double t, double s, double ds) const override
Definition: lanechangeconstraintsandreferences.h:435
virtual void update(double t0, double s0, double ds0) override
Definition: lanechangeconstraintsandreferences.h:443
LaneChangePhaseEstimator * phaseEstimator_
Definition: lanechangeconstraintsandreferences.h:420
Definition: basicconstraintsandreferences.h:917
virtual double getValue(double t, double s, double ds) const override
Definition: basicconstraintsandreferences.h:934
virtual void update(double t0, double s0, double ds0) override
Definition: basicconstraintsandreferences.h:940
Definition: lanechangeconstraintsandreferences.h:579
double d_
Definition: lanechangeconstraintsandreferences.h:589
double width_
Definition: lanechangeconstraintsandreferences.h:585
adore::view::AGap * gap_
Definition: lanechangeconstraintsandreferences.h:584
double i_grid_
lateral grid scale
Definition: lanechangeconstraintsandreferences.h:590
double hard_safety_distance_
Definition: lanechangeconstraintsandreferences.h:586
virtual void update(double t0, double s0, double ds0) override
Definition: lanechangeconstraintsandreferences.h:671
double soft_safety_distance_
Definition: lanechangeconstraintsandreferences.h:587
virtual int getDerivative() override
Definition: lanechangeconstraintsandreferences.h:683
LaneChangeIntoGapReference(adore::view::ALaneChangeView *lcv, adore::params::APVehicle *pv, adore::params::APLateralPlanner *plat, double i_grid=0.0)
Definition: lanechangeconstraintsandreferences.h:592
virtual int getDimension() override
Definition: lanechangeconstraintsandreferences.h:679
double min_control_space_
Definition: lanechangeconstraintsandreferences.h:588
adore::params::APLateralPlanner * plat_
Definition: lanechangeconstraintsandreferences.h:583
void setGap(adore::view::AGap *gap)
Definition: lanechangeconstraintsandreferences.h:594
adore::view::ALaneChangeView * lcv_
Definition: lanechangeconstraintsandreferences.h:581
adore::params::APVehicle * pv_
Definition: lanechangeconstraintsandreferences.h:582
virtual bool getValueIfAvailable(double t, double s, double ds, double &ref) const override
Definition: lanechangeconstraintsandreferences.h:596
Definition: lanechangeconstraintsandreferences.h:189
double t0_
Definition: lanechangeconstraintsandreferences.h:201
virtual void update(double t0, double s0, double ds0) override
Definition: lanechangeconstraintsandreferences.h:236
adore::view::ALaneChangeView * lcv_
Definition: lanechangeconstraintsandreferences.h:191
adore::params::APTacticalPlanner * ptac_
Definition: lanechangeconstraintsandreferences.h:195
LaneChangePhaseEstimator(adore::view::ALaneChangeView *lcv, adore::params::APVehicle *pv, adore::params::APLateralPlanner *plat, adore::params::APTrajectoryGeneration *pgen, adore::params::APTacticalPlanner *ptac)
Definition: lanechangeconstraintsandreferences.h:203
void setGap(adore::view::AGap *gap)
Definition: lanechangeconstraintsandreferences.h:205
adore::params::APTrajectoryGeneration * pgen_
Definition: lanechangeconstraintsandreferences.h:194
adore::params::APLateralPlanner * plat_
Definition: lanechangeconstraintsandreferences.h:193
adore::params::APVehicle * pveh_
Definition: lanechangeconstraintsandreferences.h:192
double sgap_
Definition: lanechangeconstraintsandreferences.h:200
double width_
Definition: lanechangeconstraintsandreferences.h:197
double v_front_t0_
Definition: lanechangeconstraintsandreferences.h:199
double s_front_t0_
Definition: lanechangeconstraintsandreferences.h:198
adore::view::AGap * gap_
Definition: lanechangeconstraintsandreferences.h:196
virtual int getDerivative() override
Definition: lanechangeconstraintsandreferences.h:268
LaneChangePhase getLaneChangePhase(double t, double s)
Definition: lanechangeconstraintsandreferences.h:207
virtual int getDimension() override
Definition: lanechangeconstraintsandreferences.h:264
virtual bool getValueIfAvailable(double t, double s, double ds, double &ref) const override
Definition: lanechangeconstraintsandreferences.h:232
Definition: lanechangeconstraintsandreferences.h:40
virtual int getDerivative() override
Definition: lanechangeconstraintsandreferences.h:176
double hard_safety_distance_
Definition: lanechangeconstraintsandreferences.h:46
adore::view::AGap * gap_
Definition: lanechangeconstraintsandreferences.h:50
ConstraintDirection direction_
Definition: lanechangeconstraintsandreferences.h:49
adore::params::APVehicle * pv_
Definition: lanechangeconstraintsandreferences.h:43
void setGap(adore::view::AGap *gap)
Definition: lanechangeconstraintsandreferences.h:58
adore::params::APLateralPlanner * plat_
Definition: lanechangeconstraintsandreferences.h:44
LateralOffsetConstraintLC(adore::view::ALaneChangeView *lcv, adore::params::APVehicle *pv, adore::params::APLateralPlanner *plat, ConstraintDirection direction)
Definition: lanechangeconstraintsandreferences.h:52
adore::view::ALaneChangeView * lcv_
Definition: lanechangeconstraintsandreferences.h:42
virtual double getValue(double t, double s, double ds) const override
Definition: lanechangeconstraintsandreferences.h:60
double width_
Definition: lanechangeconstraintsandreferences.h:45
double soft_safety_distance_
Definition: lanechangeconstraintsandreferences.h:47
virtual int getDimension() override
Definition: lanechangeconstraintsandreferences.h:172
virtual void update(double t0, double s0, double ds0) override
Definition: lanechangeconstraintsandreferences.h:158
double min_control_space_
Definition: lanechangeconstraintsandreferences.h:48
virtual ConstraintDirection getDirection() override
Definition: lanechangeconstraintsandreferences.h:168
Definition: lanechangeconstraintsandreferences.h:468
virtual int getDimension() override
Definition: lanechangeconstraintsandreferences.h:564
adore::view::ALaneChangeView * lcv_
Definition: lanechangeconstraintsandreferences.h:470
virtual int getDerivative() override
Definition: lanechangeconstraintsandreferences.h:568
virtual void update(double t0, double s0, double ds0) override
Definition: lanechangeconstraintsandreferences.h:551
ConstraintDirection direction_
Definition: lanechangeconstraintsandreferences.h:477
virtual double getValue(double t, double s, double ds) const override
Definition: lanechangeconstraintsandreferences.h:486
adore::params::APVehicle * pv_
Definition: lanechangeconstraintsandreferences.h:471
double soft_safety_distance_
Definition: lanechangeconstraintsandreferences.h:475
double hard_safety_distance_
Definition: lanechangeconstraintsandreferences.h:474
LateralOffsetConstraintLM(adore::view::ALaneChangeView *lcv, adore::params::APVehicle *pv, adore::params::APLateralPlanner *plat, ConstraintDirection direction)
Definition: lanechangeconstraintsandreferences.h:479
virtual ConstraintDirection getDirection() override
Definition: lanechangeconstraintsandreferences.h:560
adore::params::APLateralPlanner * plat_
Definition: lanechangeconstraintsandreferences.h:472
double width_
Definition: lanechangeconstraintsandreferences.h:473
double min_control_space_
Definition: lanechangeconstraintsandreferences.h:476
Definition: lanechangeconstraintsandreferences.h:759
adore::view::ALaneChangeView * lcv_
Definition: lanechangeconstraintsandreferences.h:762
double s_front_t0_
Definition: lanechangeconstraintsandreferences.h:766
virtual double getUB(int dim, int der, double t, double s, double ds) const override
getUB returns the upper bound for the offset's der's derivative in dimension dim
Definition: lanechangeconstraintsandreferences.h:800
double s_
Definition: lanechangeconstraintsandreferences.h:773
double v_lead_t0_
Definition: lanechangeconstraintsandreferences.h:769
virtual void update(double t0, double s0, double ds0) override
update update all constraints and references
Definition: lanechangeconstraintsandreferences.h:941
const adore::params::APVehicle * pveh_
Definition: lanechangeconstraintsandreferences.h:764
void setGapCoordinate(double s)
Definition: lanechangeconstraintsandreferences.h:1032
double getFrontBound(double t) const
Definition: lanechangeconstraintsandreferences.h:1016
virtual double getLB(int dim, int der, double t, double s, double ds) const override
getLB returns the lower bound for the offset's der's derivative in dimension dim
Definition: lanechangeconstraintsandreferences.h:845
double s_chase_t0_
Definition: lanechangeconstraintsandreferences.h:770
virtual bool getReferenceIfAvailable(int dim, int der, double t, double s, double ds, double &ref) const override
getReferenceIfAvailable returns true if the reference for the dimension and derivative is available a...
Definition: lanechangeconstraintsandreferences.h:888
double getChaseBound(double t) const
Definition: lanechangeconstraintsandreferences.h:1024
double getGapCoordinate() const
Definition: lanechangeconstraintsandreferences.h:1028
adore::view::ALane * lfv_
Definition: lanechangeconstraintsandreferences.h:761
const adore::params::APTacticalPlanner * ptac_
Definition: lanechangeconstraintsandreferences.h:763
gapState getGapState(double t) const
Definition: lanechangeconstraintsandreferences.h:788
StdGapConstraintAndReference(adore::view::ALane *lfv, adore::view::ALaneChangeView *lcv, const adore::params::APVehicle *pveh, const adore::params::APTacticalPlanner *ptac, const adore::params::APTrajectoryGeneration *pgen)
Definition: lanechangeconstraintsandreferences.h:782
double s_lead_t0_
Definition: lanechangeconstraintsandreferences.h:768
double t0_
Definition: lanechangeconstraintsandreferences.h:772
double v_front_t0_
Definition: lanechangeconstraintsandreferences.h:767
double getLeadBound(double t) const
Definition: lanechangeconstraintsandreferences.h:1020
const adore::params::APTrajectoryGeneration * pgen_
Definition: lanechangeconstraintsandreferences.h:765
gapState
Definition: lanechangeconstraintsandreferences.h:775
@ gapClosed
Definition: lanechangeconstraintsandreferences.h:778
@ gapOpen
Definition: lanechangeconstraintsandreferences.h:776
@ gapOpening
Definition: lanechangeconstraintsandreferences.h:777
double v_chase_t0_
Definition: lanechangeconstraintsandreferences.h:771
abstract class containing parameters related to configuring the lateral planner
Definition: ap_lateral_planner.h:26
virtual double getMinimumLateralControlSpace() const =0
getMinimumLateralControlSpace returns the minimum desired lateral control space: If vehicle has more ...
virtual double getLateralGridScale() const =0
getLateralGridScale returns the size of a grid step d for lateral variations of a maneuver: maneuver ...
virtual double getHardSafetyDistanceToLaneBoundary() const =0
getHardSafetyDistanceToLaneBoundary returns the minimum distance between lane boundary and vehicle si...
virtual double getSoftSafetyDistanceToLaneBoundary() const =0
getSoftSafetyDistanceToLaneBoundary returns the minimum distance between lane boundary and vehicle si...
abstract classs containing parameters to configure aspects and constraints of the tactical planner
Definition: ap_tactical_planner.h:25
virtual double getFrontSGap() const =0
virtual double getRearSGap() const =0
virtual double getRearTimeGap() const =0
virtual double getFrontTimeGap() const =0
abstract class containing parameters to configure the behaviour of trajectory generation
Definition: ap_trajectory_generation.h:26
virtual double get_rho() const =0
cor to planning point: movement of planning point shall planned by the trajectory planner
abstract class for vehicle configuration related paremeters
Definition: ap_vehicle.h:29
virtual double get_b() const =0
rear axle to cog
virtual double get_bodyWidth() const =0
virtual double get_d() const =0
rear border to rear axle
virtual double get_a() const =0
cog to front axle
virtual double get_c() const =0
front axle to front border
defines a gap in traffic, into which a merge may be planned
Definition: agap.h:25
@ OPEN
Definition: agap.h:30
@ CLOSED
Definition: agap.h:31
@ OPENING
Definition: agap.h:29
virtual EGapState getState(double s, double t)=0
get the state of the gap at a certain time, depending on ego position
Definition: alanechangeview.h:27
virtual direction getLCDirection() const =0
virtual double getProgressOfGateOpen() const =0
virtual double getOffsetOfDestinationOuterBorder(double s)=0
@ LEFT
Definition: alanechangeview.h:43
virtual ALane * getTargetLane()=0
virtual double getProgressOfGateClosed() const =0
virtual double getOffsetOfSeparatingBorder(double s)=0
virtual double getOffsetOfStartOuterBorder(double s)=0
virtual ALane * getSourceLane()=0
virtual const TrafficQueue & getOnLaneTraffic() const =0
virtual double getOffsetOfRightBorder(double s)=0
virtual bool isValid() const =0
virtual double getOffsetOfLeftBorder(double s)=0
LaneChangePhase
Definition: lanechangeconstraintsandreferences.h:30
@ undefined
Definition: lanechangeconstraintsandreferences.h:34
@ transition
Definition: lanechangeconstraintsandreferences.h:32
@ postTransition
Definition: lanechangeconstraintsandreferences.h:33
@ preTransition
Definition: lanechangeconstraintsandreferences.h:31
T min(T a, T b, T c, T d)
Definition: adoremath.h:663
std::vector< TrafficObject > TrafficQueue
Definition: trafficobject.h:183
Definition: areaofeffectconverter.h:20