VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
groundAutoControllerComponent.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2015 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 #pragma once
12 
15 
16 class DtString;
19 class DtTaskMessage;
20 class DtSoilFactors;
21 class DtAutomotivePSR;
25 
35 {
36 public:
37 
41  DtLocalObject* owner,
42  DtSimulationServices* simManager,
43  DtComponentDescriptor* desc = 0,
44  DtReaderWriterRegistry* parentRegistry = 0);
45 
48 
50  virtual bool init();
51 
54  virtual const char* type() const;
55 
58  virtual void clearTask();
59 
79  virtual double approximateThrottle(double desiredSpeed, double headingError = 0.0);
80  virtual double headingErrorRequiringMinTurnRadius() { return 0.5; }
81 
90  virtual double calculateSteering(double currentHeading, double
91  desiredHeading) const;
92 
93 
94  virtual double calculateCurrentBrakingDistance() const;
95 
98  virtual bool createAutomotiveControlPortGroup();
99  virtual bool createThrottlePort();
100  virtual bool createSteeringPort();
101  virtual bool createBrakePort();
102  virtual bool createGearPort();
103  virtual bool createParkingBrakePort();
104 
105  virtual DtConstrainedAnalogOutputPort * throttlePort();
106  virtual DtConstrainedAnalogOutputPort * steeringPort();
107  virtual DtConstrainedAnalogOutputPort * brakePort();
108  virtual DtConstrainedIntegerOutputPort * gearPort();
109  virtual DtBooleanOutputPort * parkingBrakePort();
110 
111  virtual double decelerationSoilFactor() const;
112 
118  virtual double calcSteeringForTurnInPlace();
119 
123  virtual double calcThrottleForTurnInPlace();
124 
127  virtual double calcBrakeForTurnInPlace();
128 
136  virtual int calcGearForTurnInPlace();
137 
141  virtual double calcSteeringForPivot();
142 
146  virtual double calcThrottleForPivot();
147 
151  virtual double calcSteeringForKTurn();
152 
156  virtual double calcThrottleForKTurn();
157 
161  virtual double calcBrakeForKTurn();
162 
168  virtual double findSpeedForKTurn();
169 
173  virtual double findHeadingForKTurn();
174 
176  virtual void setHeadingToTurnTo(double headingToTurnTo);
177  virtual double headingToTurnTo() const;
178 
180  virtual double calculateHeadingToTurnTo();
181 
183  virtual void setTurnToMode(int headingToTurnTo);
184  virtual int turnToMode() const;
185 
189  virtual void setKTurnReverseGoalHeading(double kTurnReverseGoalHeading);
190  virtual double kTurnReverseGoalHeading() const;
191 
195  virtual void setKTurnReverseComplete(bool kTurnReverseComplete);
196  virtual bool kTurnReverseComplete() const;
197 
201  static void setSpeedCallback(DtSimMessage * msg, void * usrData);
202  virtual void processSetSpeed(DtSimMessage * msg);
204 
205 protected:
207  virtual bool createPorts();
208 
210  virtual bool createPortGroups();
211 
219  virtual void lookupAndCacheProcessSR();
220 
223  virtual bool postAddComponentsInit();
224 
225  virtual const DtSoilFactors * currentSoilFactors() const;
226 
229  virtual bool decideToGiveUpTask() const;
230 
231 private:
232 
235 
238  orig);
239 
243 
244 
245 protected:
246 
248 
251 
258 
265 
272 
279 
285 
290 
292 
299 
304 
307 
312 
314 };
DtConstrainedIntegerOutputPort is a version of DtIntegerOutputPort which will constrain any outgoing ...
Definition: constrainedIntegerIOPort.h:53
virtual double headingErrorRequiringMinTurnRadius()
Definition: groundAutoControllerComponent.h:80
#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:278
Description: This repository holds all information that is common to all the forms of local ground en...
Definition: groundVehicleStateRepository.h:30
DtAutomotivePSR * myProcessState
Pointer to a process state repository used to store state data associated with this component...
Definition: groundAutoControllerComponent.h:298
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:264
double myMaxMinRadiusSpeed
Caches the value sqrt(max lateral acceleration * min turn radius) for use in the approximateThrottle ...
Definition: groundAutoControllerComponent.h:311
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:20
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
virtual const char * type() const =0
Returns a string identifies the class type of component. Type values are defined in compTypes...
DtOutputPortGroup is a data port group of a data provider. It may contain any number of DtOutputPorts...
Definition: outputPortGroup.h:34
virtual bool init()
Calls setRadio()
DtConstrainedAnalogOutputPort is a version of DtAnalogOutputPort which will constrain any outgoing va...
Definition: constrainedAnalogIOPort.h:57
virtual void clearTask()
If component is currently tasked, calls clearPendingSubtasks(), sets the tasked flag to false...
double mySpeedLastTick
For derivative control in approximateThrottle. Note–not added to process state; on scenario reload...
Definition: groundAutoControllerComponent.h:303
Instances of DtAutomotivePSR are used to hold the shared/checkpointable data for an automotive system...
Definition: automotivePSR.h:36
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:90
const DtTaskControllerComponent & operator=(const DtTaskControllerComponent &orig)
assignment operator
DtConstrainedAnalogOutputPort * myBrakePort
Output Port Name: brake Output Port Description: Output Port Range: 0. to 1. Output Port Default Val...
Definition: groundAutoControllerComponent.h:271
DtConstrainedAnalogOutputPort * myThrottlePort
Output Port Name: throttle Output Port Description: Output Port Range: 0. to 1. Output Port Default ...
Definition: groundAutoControllerComponent.h:257
double myAccumulatedSpeedError
For integral speed control.
Definition: groundAutoControllerComponent.h:306
DtOutputPortGroup * myAutomotiveControlPortGroup
Output Port Group Name: automotive-control Output Port Group Description: Collection of control outpu...
Definition: groundAutoControllerComponent.h:289
virtual bool postAddComponentsInit()
Calls enableTaskTypes()
DtBooleanOutputPort * myParkingBrakePort
Output Port Name: parking-brake Output Port Description: Output Port Default Value: True Output Grou...
Definition: groundAutoControllerComponent.h:284
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:313
DtGroundVehicleStateRepository * myGroundVehicleState
Definition: groundAutoControllerComponent.h:247
DtGroundAutoControllerComponent is a base controller that holds capabilitites common to all automotiv...
Definition: groundAutoControllerComponent.h:34
A locally simulated VRF object. Holds all internal and external data for the object, and provides access to both the current frame and next frame state data for the object. All current frame data is read-only, and next-frame data can be written to. No thread safety guarantees are made on this object during the simulation frame and it should only be accessed by the thread that is simulating the object.
Definition: localObject.h:86

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)