public interface Synchronization extends LmrsParameters
Copyright (c) 2013-2019 Delft University of Technology, PO Box 5, 2600 AA, Delft, the Netherlands. All rights reserved.
BSD-style license. See OpenTrafficSim License.
Modifier and Type | Field and Description |
---|---|
static Synchronization |
ACTIVE
Synchronization where a suitable leader is actively targeted, in relation to infrastructure.
|
static Synchronization |
ALIGN_GAP
Synchronization by following the adjacent leader or aligning with the middle of the gap, whichever allows the largest
acceleration.
|
static Synchronization |
DEADEND
Synchronization that only includes stopping for a dead-end.
|
static Synchronization |
PASSIVE
Synchronization where current leaders are taken.
|
static Synchronization |
PASSIVE_MOVING
Synchronization where current leaders are taken.
|
Modifier and Type | Method and Description |
---|---|
static boolean |
canBeAhead(HeadwayGTU adjacentVehicle,
Length xCur,
int nCur,
Speed ownSpeed,
Length ownLength,
Speed tagSpeed,
double dCoop,
Acceleration b,
Duration tMin,
Duration tMax,
Length x0,
Duration t0,
Duration lc,
double desire)
Returns whether a driver estimates it can be ahead of an adjacent vehicle for merging.
|
static Acceleration |
gentleUrgency(Acceleration a,
double desire,
Parameters params)
Return limited deceleration.
|
static HeadwayGTU |
getFollower(HeadwayGTU gtu,
PerceptionCollectable<HeadwayGTU,LaneBasedGTU> leaders,
HeadwayGTU follower,
Length ownLength)
Returns the upstream gtu of the given gtu.
|
static Length |
getMergeDistance(LanePerception perception,
LateralDirectionality lat)
Returns the distance to the next merge, stopping within this distance is futile for a lane change.
|
static HeadwayGTU |
getTargetLeader(HeadwayGTU gtu,
SortedSet<HeadwayGTU> leaders)
Returns the leader of one gtu from a set.
|
static PerceptionCollectable<HeadwayGTU,LaneBasedGTU> |
removeAllUpstreamOfConflicts(PerceptionCollectable<HeadwayGTU,LaneBasedGTU> set,
LanePerception perception,
RelativeLane relativeLane)
Removes all GTUs from the set, that are found upstream on the conflicting lane of a conflict in the current lane.
|
static Length |
requiredBufferSpace(Speed speed,
int nCur,
Length x0,
Duration t0,
Duration lc,
double dCoop)
Returns the required buffer space to perform a lane change and further lane changes.
|
static Acceleration |
stopForEnd(Length xCur,
Length xMerge,
Parameters params,
Speed ownSpeed,
CarFollowingModel cfm,
SpeedLimitInfo sli)
Calculates acceleration to stop for a split or dead-end, accounting for infrastructure.
|
Acceleration |
synchronize(LanePerception perception,
Parameters params,
SpeedLimitInfo sli,
CarFollowingModel cfm,
double desire,
LateralDirectionality lat,
LmrsData lmrsData)
Determine acceleration for synchronization.
|
static Acceleration |
tagAlongAcceleration(HeadwayGTU leader,
Speed followerSpeed,
Length followerLength,
Speed tagSpeed,
double desire,
Parameters params,
SpeedLimitInfo sli,
CarFollowingModel cfm)
Calculates acceleration by following an adjacent vehicle, with tagging along if desire is not very high and speed is low.
|
static final Synchronization DEADEND
static final Synchronization PASSIVE
static final Synchronization ALIGN_GAP
static final Synchronization PASSIVE_MOVING
static final Synchronization ACTIVE
static Length getMergeDistance(LanePerception perception, LateralDirectionality lat) throws OperationalPlanException
perception
- LanePerception; perceptionlat
- LateralDirectionality; lateral directionOperationalPlanException
- if there is no infrastructure perceptionAcceleration synchronize(LanePerception perception, Parameters params, SpeedLimitInfo sli, CarFollowingModel cfm, double desire, LateralDirectionality lat, LmrsData lmrsData) throws ParameterException, OperationalPlanException
perception
- LanePerception; perceptionparams
- Parameters; parameterssli
- SpeedLimitInfo; speed limit infocfm
- CarFollowingModel; car-following modeldesire
- double; level of lane change desirelat
- LateralDirectionality; lateral direction for synchronizationlmrsData
- LmrsData; LMRS dataParameterException
- if a parameter is not definedOperationalPlanException
- perception exceptionstatic PerceptionCollectable<HeadwayGTU,LaneBasedGTU> removeAllUpstreamOfConflicts(PerceptionCollectable<HeadwayGTU,LaneBasedGTU> set, LanePerception perception, RelativeLane relativeLane) throws OperationalPlanException
set
- PerceptionCollectable<HeadwayGTU,LaneBasedGTU>; set of GTUsperception
- LanePerception; perceptionrelativeLane
- RelativeLane; relative laneOperationalPlanException
- if the IntersectionPerception
category is not presentstatic Acceleration gentleUrgency(Acceleration a, double desire, Parameters params) throws ParameterException
b
for d < dCoop
. Beyond dCoop
the limit
is a linear interpolation between b
and bCrit
.a
- Acceleration; acceleration to limitdesire
- double; lane change desireparams
- Parameters; parametersParameterException
- when parameter is no available or value out of rangestatic HeadwayGTU getFollower(HeadwayGTU gtu, PerceptionCollectable<HeadwayGTU,LaneBasedGTU> leaders, HeadwayGTU follower, Length ownLength)
gtu
- HeadwayGTU; gtuleaders
- PerceptionCollectable<HeadwayGTU,LaneBasedGTU>; leaders of own vehiclefollower
- HeadwayGTU; following vehicle of own vehicleownLength
- Length; own vehicle lengthstatic Acceleration tagAlongAcceleration(HeadwayGTU leader, Speed followerSpeed, Length followerLength, Speed tagSpeed, double desire, Parameters params, SpeedLimitInfo sli, CarFollowingModel cfm) throws ParameterException
leader
- HeadwayGTU; leaderfollowerSpeed
- Speed; follower speedfollowerLength
- Length; follower lengthtagSpeed
- Speed; maximum tag along speeddesire
- double; lane change desireparams
- Parameters; parameterssli
- SpeedLimitInfo; speed limit infocfm
- CarFollowingModel; car-following modelParameterException
- if a parameter is not presentstatic boolean canBeAhead(HeadwayGTU adjacentVehicle, Length xCur, int nCur, Speed ownSpeed, Length ownLength, Speed tagSpeed, double dCoop, Acceleration b, Duration tMin, Duration tMax, Length x0, Duration t0, Duration lc, double desire) throws ParameterException
adjacentVehicle
- HeadwayGTU; adjacent vehiclexCur
- Length; remaining distancenCur
- int; number of lane changes to performownSpeed
- Speed; own speedownLength
- Length; own lengthtagSpeed
- Speed; maximum tag along speeddCoop
- double; cooperation thresholdb
- Acceleration; critical decelerationtMin
- Duration; minimum headwaytMax
- Duration; normal headwayx0
- Length; anticipation distancet0
- Duration; anticipation timelc
- Duration; lane change durationdesire
- double; lane change desireParameterException
- if parameter is not definedstatic Length requiredBufferSpace(Speed speed, int nCur, Length x0, Duration t0, Duration lc, double dCoop)
speed
- Speed; representative speednCur
- int; number of required lane changesx0
- Length; anticipation distancet0
- Duration; anticipation timelc
- Duration; lane change durationdCoop
- double; cooperation thresholdstatic Acceleration stopForEnd(Length xCur, Length xMerge, Parameters params, Speed ownSpeed, CarFollowingModel cfm, SpeedLimitInfo sli) throws ParameterException
xCur
- Length; remaining distance to endxMerge
- Length; distance until merge pointparams
- Parameters; parametersownSpeed
- Speed; own speedcfm
- CarFollowingModel; car-following modelsli
- SpeedLimitInfo; speed limit infoParameterException
- if parameter is not definedstatic HeadwayGTU getTargetLeader(HeadwayGTU gtu, SortedSet<HeadwayGTU> leaders)
gtu
- HeadwayGTU; gtuleaders
- SortedSet<HeadwayGTU>; leadersCopyright © 2014–2019 Delft University of Technology. All rights reserved.