9 #include <matrix/vlVector.h>
10 #include <matrix/vlTaitBryan.h>
11 #include <matrix/coordTransform.h>
33 #define DT_ROAD_MOVE_COAST_DECEL_FRACTION 0.5
37 #define DT_ROAD_MOVE_DESTROYED_DECELERATION -5.0
69 virtual void movementComplete();
86 virtual void updateRailAndWorldPosition(
DtRoadSegment* currentSeg,
double newAccel,
87 double dT,
double simTime = 0.0);
93 virtual void updateNoMovement();
98 virtual double offLaneDistanceThreshold()
const;
102 virtual DtVector steeringTargetPosition()
const;
106 virtual DtVector closestPositionInLane()
const;
111 virtual void updateFromPSR(
const DtVector localPos,
DtRailSegment * currentSeg);
120 virtual void updateLaneAcquisitionStatus(
const DtRoadSegment* segment);
123 virtual double fuelUsed(
double speed)
const;
129 virtual void kinematicUpdate(
const double oldSpeed,
const double accel,
130 const double dt,
double& deltaPosition,
double& newSpeed,
131 double &actualAccel);
148 virtual void doKinematicUpdateAlongRail(
151 const int roadLaneNum,
152 const double oldPositionInLane,
153 const double oldSpeed,
155 double & newPositionInLane,
156 double & newLateralOffset,
157 double & laneChangeHeadingOffset,
159 double & newRotationRate);
176 virtual void computePositionInDownstreamSegment(
179 double & newPositionInLane,
180 const double newLateralOffset,
181 double &segmentCurveHeadingOffset,
182 DtVector& localPosition,
204 virtual void updateLateralOffset(
const double currentOffset,
205 const double distanceBetweenLanes,
const double speed,
207 double & newLateralOffset,
double& newHeadingOffset,
208 double &headingChangeRate);
217 virtual void updatePsrWithNewState(
218 const int roadLaneNum,
219 const bool isSwitchingLanes,
220 const int roadSegmentIndex,
221 const double positionInLane,
222 double lateralOffset,
223 const double heading,
224 const double newSpeed,
225 const double newAccel,
236 virtual void computeBodyMotionVectors(
const double speed,
237 const double accel,
const double turnRate,
const double dt,
238 DtVector & bodyVelocity, DtVector & bodyAcceleration);
245 virtual void computeRepositoryUpdateVariables(
246 const DtVector & newLocalPosition,
247 const DtVector & newBodyVelocity,
248 const DtVector & newBodyAcceleration,
249 const DtDcm & newLocalOrientation,
250 const double newRotationRate,
251 DtVector & newRelativeVelocity,
252 DtVector & newRelativeAcceleration,
253 DtTaitBryan & newLocalOrientationTb,
254 DtVector & newBodyRotationalVelocity
263 virtual void useFuel(
double fuelUsed);
265 virtual bool isEntityImmobilized();
272 virtual double fuelLeft()
const;
291 virtual void updateRepository(
const DtVector & localPosition,
292 const DtVector & localVelocity,
const DtVector & localAcceleration,
293 const DtTaitBryan & localOrientation,
const DtVector& rotationalVelocity,
321 virtual void calculateOrientationAndPosition(
322 const DtVector& newLocalProjectedLocation,
const double newHeading,
323 DtDcm& newLocalOrientation, DtVector& newLocalPosition);
328 virtual void calculateOriginLocation(
329 const DtVector & turnCenterLocation,
330 const double heading,
331 DtVector & originLocation);
344 bool groundClamp(
const double heading,
const DtVector& location,
351 void groundClampHighFidelity(
const double heading,
const DtVector& location,
359 void groundClampLowFidelity(
const double heading,
const DtVector& location,
378 virtual void steerTowardLane(
DtRoadSegment* segment,
const double desiredAcceleration);
388 virtual double lookAheadDistance()
const;
391 virtual bool createAutoActuatorPorts();
396 virtual bool createThrottlePort();
397 virtual bool createSteeringPort();
398 virtual bool createBrakePort();
399 virtual bool createGearPort();
400 virtual bool createParkingBrakePort();
DtConstrainedIntegerOutputPort is a version of DtIntegerOutputPort which will constrain any outgoing ...
Definition: constrainedIntegerIOPort.h:53
DtRoadMovementController * myController
Definition: roadMovementUpdater.h:422
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
This class is used to interface with the terrain a particular entity is "attached" to...
Definition: attachedTerrain.h:57
Description: This repository holds all information that is common to all the forms of all objects wit...
Definition: vrfMovingObjectStateRepository.h:31
DtOutputPortGroup * myAutomotiveControlPortGroup
Output Port Group Name: automotive-control Output Port Group Description: Collection of control outpu...
Definition: roadMovementUpdater.h:489
Instances of DtBooleanOutputPort are output ports through which data producers can send boolean data...
Definition: boolIOPort.h:45
DtRailSegment are segments entities can follow when using the rail movement system.
Definition: railSegment.h:20
Instances of DtRailMovementControllerPSR are used to hold the shared/checkpointable data for a rail m...
Definition: railMovementControllerPSR.h:48
DtConstrainedIntegerOutputPort * myGearPort
Output Port Name: gear Output Port Description: Output Port Range: Output Port Default Value: Outp...
Definition: roadMovementUpdater.h:478
DtRailMovementControllerPSR * myRailMovementPSR
Definition: roadMovementUpdater.h:423
DtRoadMovementController is a movement controller that models an entity's movement along a road path...
Definition: roadMovementController.h:65
DtOutputPortGroup is a data port group of a data provider. It may contain any number of DtOutputPorts...
Definition: outputPortGroup.h:34
DtConstrainedAnalogOutputPort is a version of DtAnalogOutputPort which will constrain any outgoing va...
Definition: constrainedAnalogIOPort.h:57
Models an entity moving along a generated road path. Provides a kinematics-based model of an entity m...
Definition: roadMovementUpdater.h:48
const DtAttachedTerrain * myAttachedTerrain
Used to ground clamp the entity– TODO how we ground clamp, ie get access to terrain may change...
Definition: roadMovementUpdater.h:428
DtVector myLocalNewTargetPosition
For visualization, when acquiring lane.
Definition: roadMovementUpdater.h:442
DtUpdateRepositoryOutputPortGroup * myUpdateRepositoryOutputPortGroup
When in acquiring-lane.
Definition: roadMovementUpdater.h:436
DtVector myLocalEquivalentInLanePosition
Definition: roadMovementUpdater.h:443
bool myUseHighFidelityGroundClamping
Definition: roadMovementUpdater.h:429
DtConstrainedAnalogOutputPort * myBrakePort
Output Port Name: brake Output Port Description: Output Port Range: 0. to 1. Output Port Default Val...
Definition: roadMovementUpdater.h:471
bool myWarnedAboutImmobilizedOnce
To warn user about new immobilization just once.
Definition: roadMovementUpdater.h:439
DtBooleanOutputPort * myParkingBrakePort
Output Port Name: parking-brake Output Port Description: Output Port Default Value: True Output Grou...
Definition: roadMovementUpdater.h:484
DT_DLL_DEBUGDRAWRENDERER void init(makVrv::DtDe &de)
Work function for the plugin initialization.
Description of one segment of a road.
Definition: roadSegment.h:406
bool myDrivingOnLeft
Definition: roadMovementUpdater.h:430
DtUpdateRepositoryOutputPortGroup is a data port group of a data consumer that contains methods and p...
Definition: updateRepositoryOutputPortGroup.h:31
DtConstrainedAnalogOutputPort * mySteeringPort
Output Port Name: steering Output Port Description: Output Port Range: -1.0 to 1.0 Output Port Default Value: Output Group Parent: automotive-control.
Definition: roadMovementUpdater.h:464
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Member to allow for access to platform specific data.
Definition: roadMovementUpdater.h:446
DtConstrainedAnalogOutputPort * myThrottlePort
Output Port Name: throttle Output Port Description: Output Port Range: 0. to 1. Output Port Default ...
Definition: roadMovementUpdater.h:457
A locally simulated VRF object.
Definition: localObject.h:98
A DtComponentDescriptor that has parameters that indicate how an entity should move along a rail segm...
Definition: roadMovementDescriptor.h:25