50 virtual bool init()
override;
54 virtual const char*
type()
const override;
68 virtual double mildAccelerationConstant()
const;
70 virtual double standardAccelerationConstant()
const;
72 virtual double hardAccelerationConstant()
const;
74 virtual double maxAccelerationConstant()
const;
80 virtual double currentAccelerationToUse()
const;
103 virtual double computeSpeedForFastestTurn(
104 const double latAccelLimit = 0.0)
const;
110 virtual double speedForFastestTurn()
const;
111 virtual void setSpeedForFastestTurn(
double speed);
134 virtual double approximateThrottle(
double desiredSpeed,
double headingError = 0.0);
147 double speedConstraintForHeadingError(
148 const double headingError,
const double maxAccel = 0.0)
const;
159 virtual double calculateSteering(
double currentHeading,
double
160 desiredHeading)
const;
163 virtual double calculateCurrentBrakingDistance()
const;
170 virtual bool createAutomotiveControlPortGroup();
171 virtual bool createThrottlePort();
172 virtual bool createSteeringPort();
173 virtual bool createBrakePort();
174 virtual bool createGearPort();
175 virtual bool createParkingBrakePort();
186 virtual void setThrottleFromAcceleration(
const double signedAccel);
190 virtual double decelerationSoilFactor()
const;
199 virtual double tractionFactorFromSoilAndWeather()
const;
206 virtual double calcSteeringForTurnInPlace();
211 virtual double calcThrottleForTurnInPlace();
215 virtual double calcBrakeForTurnInPlace();
224 virtual int calcGearForTurnInPlace();
229 virtual double calcSteeringForPivot();
234 virtual double calcThrottleForPivot();
239 virtual double calcSteeringForKTurn();
244 virtual double calcThrottleForKTurn();
249 virtual double calcBrakeForKTurn();
256 virtual double findSpeedForKTurn();
261 virtual double findHeadingForKTurn();
264 virtual void setHeadingToTurnTo(
double headingToTurnTo);
265 virtual double headingToTurnTo()
const;
268 virtual double calculateHeadingToTurnTo();
271 virtual void setTurnToMode(
int headingToTurnTo);
272 virtual int turnToMode()
const;
277 virtual void setKTurnReverseGoalHeading(
double kTurnReverseGoalHeading);
278 virtual double kTurnReverseGoalHeading()
const;
283 virtual void setKTurnReverseComplete(
bool kTurnReverseComplete);
284 virtual bool kTurnReverseComplete()
const;
289 static void setSpeedCallback(
DtSimMessage * msg,
void * usrData);
309 virtual void lookupAndCacheProcessSR();
DtConstrainedIntegerOutputPort is a version of DtIntegerOutputPort which will constrain any outgoing ...
Definition: constrainedIntegerIOPort.h:53
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
DtConstrainedIntegerOutputPort * myGearPort
Output Port Name: gear Output Port Description: Output Port Range: Output Port Default Value: Outp...
Definition: groundAutoControllerComponent.h:368
Description: This repository holds all information that is common to all the forms of local ground en...
Definition: groundVehicleStateRepository.h:30
bool myHaveWarnedAboutNoPivotSpeed
Flag to make sure a warning is printed only the first time. Mutable so it can be modified in otherwis...
Definition: groundAutoControllerComponent.h:405
DtAutomotivePSR * myProcessState
Pointer to a process state repository used to store state data associated with this component...
Definition: groundAutoControllerComponent.h:388
virtual bool postAddComponentsInit() override
Calls enableTaskTypes()
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: groundAutoControllerComponent.h:354
virtual const char * type() const override=0
Returns a string identifies the class type of component. Type values are defined in compTypes...
Instances of DtBooleanOutputPort are output ports through which data producers can send boolean data...
Definition: boolIOPort.h:45
This class provides a base class for all controllers that are capable of executing a DtSimTask...
Definition: singleTaskControllerComponent.h:22
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
Definition: readerWriterRegistry.h:39
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
virtual double headingErrorRequiringMinTurnRadius() const
Definition: groundAutoControllerComponent.h:149
virtual bool init() override
Calls setRadio()
double mySpeedLastTick
For derivative control in approximateThrottle. Noteānot added to process state; on scenario reload...
Definition: groundAutoControllerComponent.h:393
Instances of DtAutomotivePSR are used to hold the shared/checkpointable data for an automotive system...
Definition: automotivePSR.h:45
double mySpeedForFastestTurn
Caches the value computed in init() with computeSpeedForFastestTurn.
Definition: groundAutoControllerComponent.h:399
File: simMsg.h.
Definition: simMessage.h:35
virtual bool createPorts()
Called by init. Derived classes should override this method to create all their input/output ports an...
virtual bool decideToGiveUpTask() const
This function is used to determine if the controller should give up trying to execute the current tas...
class DtSoilFactors:
Definition: soilFactors.h:31
virtual bool createPortGroups()
Called by init. Derived classes should override this method to create all their input/output port gro...
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:96
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
virtual void clearTask() override
If component is currently tasked, calls clearPendingSubtasks(), sets the tasked flag to false...
DtConstrainedAnalogOutputPort * myBrakePort
Output Port Name: brake Output Port Description: Output Port Range: 0. to 1. Output Port Default Val...
Definition: groundAutoControllerComponent.h:361
DtConstrainedAnalogOutputPort * myThrottlePort
Output Port Name: throttle Output Port Description: Output Port Range: 0. to 1. Output Port Default ...
Definition: groundAutoControllerComponent.h:347
double myAccumulatedSpeedError
For integral speed control.
Definition: groundAutoControllerComponent.h:396
DtOutputPortGroup * myAutomotiveControlPortGroup
Output Port Group Name: automotive-control Output Port Group Description: Collection of control outpu...
Definition: groundAutoControllerComponent.h:379
DtBooleanOutputPort * myParkingBrakePort
Output Port Name: parking-brake Output Port Description: Output Port Default Value: True Output Grou...
Definition: groundAutoControllerComponent.h:374
A DtTaskMsg is a DtRadioMsg with a pointer to a task. The type of the taskMsg is just the type of the...
Definition: taskMessage.h:21
DtPlatformLocalObjectFacade myPlatformLocalObjectFacade
Definition: groundAutoControllerComponent.h:401
DtGroundVehicleStateRepository * myGroundVehicleState
Definition: groundAutoControllerComponent.h:337
DtGroundAutoControllerComponent is a base controller that holds capabilitites common to all automotiv...
Definition: groundAutoControllerComponent.h:34
A locally simulated VRF object.
Definition: localObject.h:98