public abstract class AbstractGTUFollowingModel extends Object implements GTUFollowingModel
Copyright (c) 2013-2015 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 DualAccelerationStep |
TOODANGEROUS
Return value if lane change causes immediate collision.
|
| Constructor and Description |
|---|
AbstractGTUFollowingModel() |
| Modifier and Type | Method and Description |
|---|---|
DualAccelerationStep |
computeAcceleration(LaneBasedGTU referenceGTU,
Collection<HeadwayGTU> otherGTUs,
org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> speedLimit)
Compute the lowest accelerations (or most severe decelerations) that would be used if a referenceGTU is present
(inserted, or not removed) in a set of other GTUs.
If any GTU in the set of otherGTUs has a null headway (indicating that the other GTU is in fact parallel to the referenceGTU), prohibitive decelerations shall be returned. Two AccelerationStep values are returned in a DualAccelerationStep. TODO We should probably add a be ready to stop before argument to prevent vehicles that cannot see their leader, or should slow down for a crossing from accelerating to unsafe speeds. |
AccelerationStep |
computeAcceleration(LaneBasedGTU follower,
org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> leaderSpeed,
org.djunits.value.vdouble.scalar.DoubleScalar.Rel<org.djunits.unit.LengthUnit> headway,
org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> speedLimit)
Compute the acceleration that would be used to follow a leader.
TODO We should probably add a be ready to stop before argument to prevent vehicles that cannot see their leader, or should slow down for a crossing from accelerating to unsafe speeds. |
AccelerationStep |
computeAccelerationWithNoLeader(LaneBasedGTU gtu,
org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> speedLimit)
Compute the acceleration that would be used if the is not leader in sight.
|
org.djunits.value.vdouble.scalar.DoubleScalar.Rel<org.djunits.unit.LengthUnit> |
minimumHeadway(org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> followerSpeed,
org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> leaderSpeed,
org.djunits.value.vdouble.scalar.DoubleScalar.Rel<org.djunits.unit.LengthUnit> precision,
org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> speedLimit,
org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> followerMaximumSpeed)
Compute the minimum net headway given the speed of the follower and the leader.
At the returned headway, the follower would decelerate with it's maximum comfortable deceleration. |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitcomputeAcceleration, getLongName, getName, getStepSize, maximumSafeDecelerationpublic static final DualAccelerationStep TOODANGEROUS
public final DualAccelerationStep computeAcceleration(LaneBasedGTU referenceGTU, Collection<HeadwayGTU> otherGTUs, org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> speedLimit) throws RemoteException, NetworkException
computeAcceleration in interface GTUFollowingModelreferenceGTU - LaneBasedGTU; the GTU for which the accelerations are computedotherGTUs - Collection<HeadwayGTU>; the other GTUs. A negative headway value indicates that the other GTU is a
follower. NB. If the referenceGTU is contained in this Collection, it is ignored.speedLimit - DoubleScalar.Abs<SpeedUnit>; the local speed limitRemoteException - in case of simulator reachability problemsNetworkException - on network inconsistencypublic final AccelerationStep computeAcceleration(LaneBasedGTU follower, org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> leaderSpeed, org.djunits.value.vdouble.scalar.DoubleScalar.Rel<org.djunits.unit.LengthUnit> headway, org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> speedLimit) throws RemoteException
computeAcceleration in interface GTUFollowingModelfollower - LaneBasedGTU; the GTU for which acceleration is computedleaderSpeed - DoubleScalar.Abs<SpeedUnit>; the speed of the leaderheadway - DoubleScalar.Rel<LengthUnit>; the headway of the leaderspeedLimit - DoubleScalarAbs<SpeedUnit>; the local speed limitRemoteException - in case of simulator reachability problemspublic final AccelerationStep computeAccelerationWithNoLeader(LaneBasedGTU gtu, org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> speedLimit) throws RemoteException, NetworkException
computeAccelerationWithNoLeader in interface GTUFollowingModelgtu - LaneBasedGTU; the GTU for which acceleration is computedspeedLimit - DoubleScalar.Abs<SpeedUnit>; the local speed limitRemoteException - in case of simulator reachability problemsNetworkException - on network inconsistencypublic final org.djunits.value.vdouble.scalar.DoubleScalar.Rel<org.djunits.unit.LengthUnit> minimumHeadway(org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> followerSpeed,
org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> leaderSpeed,
org.djunits.value.vdouble.scalar.DoubleScalar.Rel<org.djunits.unit.LengthUnit> precision,
org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> speedLimit,
org.djunits.value.vdouble.scalar.DoubleScalar.Abs<org.djunits.unit.SpeedUnit> followerMaximumSpeed)
throws RemoteException
minimumHeadway in interface GTUFollowingModelfollowerSpeed - DoubleScalar.Abs<SpeedUnit>; speed of the followerleaderSpeed - DoubleScalar.Abs<SpeedUnit>; speed of the leaderprecision - DoubleScalar.Rel<LengthUnit>; the required precision of the result (must be > 0)speedLimit - DoubleScalar.Abs<SpeedUnit>; the local speed limitfollowerMaximumSpeed - DoubleScalar.Abs<SpeedUnit>; the maximum speed that the follower can drive atRemoteException - on communications failureCopyright © 2014–2015 Delft University of Technology. All rights reserved.