124 virtual double combinedAcceleration(
126 const double desiredDecelToUse,
127 const double tickPeriod,
128 const double currentSpeed,
129 const double orderedSpeed,
130 const int laneNumber,
131 const double positionInLane,
132 const double laneSpaceRequired,
133 const double laneChangeWidth,
134 const double maxAcceleration,
135 const double maxLateralAccel,
137 bool & pathContinues,
138 double & distanceToLaneEnd,
139 double & freeFlowAccel,
140 double &orderedSpeedAccel,
195 virtual int selectedLane(
198 const bool currentLaneContinues,
199 const double distanceToLaneEnd,
200 const double positionInLane,
201 const double currentSpeed,
202 const double currentLaneAcceleration,
203 const double freeFlowAcceleration,
204 const double tickPeriod,
205 const double desiredDecelToUse,
206 const double maxLateralAccel,
208 int& desiredFutureLane,
217 virtual double oldLaneObstacleConstraint(
219 const double currentPosition,
const double currentOffset,
221 const double desiredDecelToUse,
const double dt,
222 const double accelForNoObstacle,
const double currentSpeed,
223 const int currentLaneN, std::vector<DtVector>& obstacleLocations,
224 std::vector<std::vector<DtVector> >& debugBoxes,
bool debug =
false);
230 virtual double distanceNeededToChangeLanes(
231 const double minTurnRadius,
232 const double distanceBetweenLanes,
245 double followConvoyAcceleration(
246 const double currentSpeed,
const double tickPeriod,
247 const double deceleration,
248 const double convoyGap,
249 const DtSimObject* leadVehicle,
bool debug =
false);
254 virtual double orderedSpeedAcceleration(
const double currentSpeed,
255 const double orderedSpeed,
271 const double dt,
bool debug =
false)
283 double downstreamTcdAccelConstraint(
285 const double desiredDecelToUse,
286 const double dt,
const double currentSpeed,
const int roadLaneN,
287 const double positionAlongLane,
288 const double maxAccel,
const double maxLateralAccel,
312 virtual double downstreamCurveAccelConstraint(
314 const double desiredDecelToUse,
315 const double dt,
const double currentSpeed,
const int roadLaneN,
316 const double positionAlongLane,
317 const double maxAccel,
const double maxLateralAccel,
bool debug =
false);
329 virtual double downstreamSpeedLimitAccelConstraint(
DtRoadSegment* currentSegment,
330 const double desiredDecelToUse,
331 const double dt,
const double currentSpeed,
bool debug =
false);
364 virtual double laneEndAccelConstraint(
366 const double desiredDecelToUse,
367 const double dt,
const double currentSpeed,
const int roadLaneN,
368 const double positionAlongLane,
369 const double extraSpaceRequired,
370 const double maxAccel,
371 bool & laneContinues,
372 double & distanceToLaneEnd,
bool & pathContinues,
bool debug =
false);
395 virtual double obstacleAccelConstraint(
398 const double maxAcceleration,
399 const double desiredDecelToUse,
const double dt,
const double currentSpeed,
400 const int roadLaneN,
const double positionAlongLane,
401 const double spaceNeeded,
402 double& obstacleDistanceAhead,
403 double& obstacleSpeed, std::vector<std::vector<DtVector> > & debugBoxes, std::vector<DtVector>& obstacleLocations,
bool debug =
false);
433 virtual double completeLaneChangeMnvrAccelConstraint(
437 const double accelForNoObstacle,
const double currentSpeed,
438 const double completionFraction,
439 const double completionDistance,
bool debug =
false);
449 virtual bool laneConstrainedBelowFreeFlow(
const double currentLaneAcceleration,
450 const double otherLaneAcceleration,
451 const double tickPeriod,
452 const double currentSpeed);
462 virtual bool mergeGapAvailableBehind(
const DtRoadSegment* currentRoadSegment,
463 const int roadLaneNum,
const double positionInLane,
464 const double nominalDecel,
const double tickPeriod,
465 const double ownSpeed,
bool debug =
false);
virtual double maxDesignDriverLateralAcceleration_G()
Typical value (see AASHTO Green Book), civilian driver comfort level. In Gs. This is used as an assum...
Definition: roadDrivingLogic.h:33
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
virtual double maximumLaneChangeTurnAngle()
The maximum angle a vehicle makes with the lane direction when it is changing lanes (slowly)...
Definition: roadDrivingLogic.h:66
virtual double maxForcedDecelForGapAcceptance()
When the vehicle is considering merging into an adjacent lane, the deceleration required of a vehicle...
Definition: roadDrivingLogic.h:93
virtual double desiredDecelerationFractionOfMax()
This could be overridden to use an entity-specific "aggressiveness" parameter.
Definition: roadDrivingLogic.h:38
DtRoadMovementController * myParentController
Definition: roadDrivingLogic.h:469
virtual double desiredAccelerationFractionOfMax()
This could be overridden to use an entity-specific "aggressiveness" parameter.
Definition: roadDrivingLogic.h:42
DtRoadMovementController is a movement controller that models an entity's movement along a road path...
Definition: roadMovementController.h:65
virtual double minimumCurveSpeed()
A minimum speed to go around curves, especially artificially sharp curves generated by awkwardly form...
Definition: roadDrivingLogic.h:60
virtual double laneEndCheckLookaheadTime()
The time before reaching the end of a lane that the entity starts to prefer to be in a lane that cont...
Definition: roadDrivingLogic.h:79
virtual double laneSwitchDecisionAccelThreshold()
The difference in acceleration between an adjacent lane and the current lane that will trigger a lane...
Definition: roadDrivingLogic.h:85
virtual double extraAccelConstraint(const double currentSpeed, const double dt, bool debug=false)
A placeholder for user extension. This function is called whether the entity is following a convoy ve...
Definition: roadDrivingLogic.h:270
The moving-object-param parameter type is used for objects that are capable of movement, such as individual entities and aggregates. DtMovingObjectParameters; holds all of the configurable parameters for the DtVrfMovingObjectStateRepository class. Parameters include support points, maximum speed, maximum reverse speed, turning radius, maximum slope, ordered speed, maximum acceleration, maximum deceleration, and fuel efficiency. Aggregates are moving objects and have this parameter type. All of the platform-specific parameter types derive from this one. .
Definition: movingObjectParameters.h:32
virtual double desiredFixedHeadway()
The desired fixed gap between cars when one is following the other (very slowly, or stopped)...
Definition: roadDrivingLogic.h:52
Represents a single simulation object in the exercise. Object may be VRF simulation, or non-VRF simulated, and may be simulated by the local sim engine, or by a remote sim engine. Only public (external) state of the object is available. All data is read-only. All access to data of the object is thread safe within the simulation frame.
Definition: simObject.h:79
Description of one segment of a road.
Definition: roadSegment.h:394
An object containing functions to find obstructions in road segments in a road path; part of a DtRoad...
Definition: roadObstructionFinder.h:30
virtual double laneChangeFractionToClearLane()
The fraction of a lane change maneuver that a vehicle has to complete before it can ignore obstacles ...
Definition: roadDrivingLogic.h:72
Definition: roadDrivingLogic.h:18
virtual double desiredLateralAccelerationFractionOfMax()
This could be overridden to use an entity-specific "aggressiveness" parameter.
Definition: roadDrivingLogic.h:46