15 #include <matrix/vlDcm.h>
16 #include <matrix/vlVector.h>
59 virtual const char*
type()
const;
99 virtual void computeDesiredLinearAccel(
DtVector& desiredHorizBodyAccel,
100 double& desiredYawAccel);
112 virtual void computeDesiredTopoAccelToPosition(
const double maxAccel,
const double period,
113 DtVector& desiredTopoAccel,
double& yawAccel);
120 virtual void computeDesiredTopoAccelToVelocity(
const DtVector& desiredVel,
const double period,
130 virtual double desiredHeadingWithNoMoveGoal();
134 virtual void computeDesiredTopoAccelToHeading(
const double desiredHeading,
const double desiredSpeed,
135 const double period,
DtVector& desiredTopoAccel);
140 virtual void checkLandNoFuel();
150 virtual void findEarthCurveDeltaPosition(
DtVector fromPosition,
157 virtual void limitAccelFromMaxForwardSpeed(
const DtVector& topoVelocity,
159 const double speedAtGoal,
160 const double distToGoal,
164 virtual void limitAccelForGoalDistanceAndVelocity(
166 const DtVector& horizBodyCurrVelocity,
const double period,
186 virtual void limitAccelFromMaxAcceleration(
DtVector& horizBodyAccel);
192 virtual void computeTopoDeltaPosition(
DtVector& topoDeltaPosition);
197 virtual void computeTopoDesiredEndVelocity(
const DtVector& topoXyDeltaPos,
199 double& topoXyEndSpeed);
205 virtual double limitedVerticalControlAcceleration(
const double verticalControlAccel,
206 const double verticalError,
const double currentVerticalVelocity,
const double period);
212 virtual bool isCloseToGoalPosition(
const DtVector& topoDeltaPos);
226 virtual void setCollectiveAndCyclicFromAccel(
const DtVector& desiredAcceleration);
228 virtual void setPedalFromDesiredYawAcceleration(
const double yawAccel);
231 virtual void setThrottle();
243 virtual DtReal terrainAvoidanceVelocity()
const;
251 virtual void calculateTargetAlignmentAngle(DtReal& headingToTarget)
const;
255 virtual void computeYawAccelerationToHeading(
const double headingToPoint,
260 virtual void getTransformationMatrices();
264 virtual void clearControlState();
284 virtual void lookupAndCacheProcessSR();
#define DT_DLL_vrfmodel
This file is used to determine how to build.
Definition: vrfmodelDefines.h:24
virtual bool postAddComponentsInit() override
Calls enableTaskTypes()
DtRotaryWingPilotDescriptor * myPilotDescriptor
A pointer to the descriptor for this controller.
Definition: simpleRotaryWingPilot.h:300
virtual bool taskVisualizationsActive() const
Returns true if task visualizations are currently active for this component. Default behavior is to r...
void limitAccelForFixedFlightSlope(DtVector &topoEntToGoal, DtVector &topoCurrentVel, double period, DtVector &desiredTopoAccel)
Limit the acceleration in the Z direction so that the Z speed is a proportion of the horizontal speed...
virtual void tick()
Reads the data from the guidance ports into the state repository.
DtVector myLastIntegralDistError
Definition: simpleRotaryWingPilot.h:318
DtDcm myBodyToRef
The local orientation matrix.
Definition: simpleRotaryWingPilot.h:303
virtual double stationaryGoalSpeedThreshold()
Constants.
Definition: simpleRotaryWingPilot.h:276
Definition: rotaryWingFlightPSR.h:30
A readable, writable type whose name is the name of a component and that has a list of component name...
Definition: componentDescriptor.h:49
DtRotaryWingPilotDescriptor is a component descriptor for helicopter flight involving destination poi...
Definition: rotaryWingPilotDescriptor.h:25
DtSimpleRotaryWingPilot is a controller that represents the autopilot aspects of a rotary-wing pilot...
Definition: simpleRotaryWingPilot.h:36
Definition: readerWriterRegistry.h:39
const DtRotaryWingPilotController & operator=(const DtRotaryWingPilotController &orig)
assignment operator; not implemented
virtual bool createPorts()
Overridden to create rotary wing ports.
virtual void updateTaskVisualizations()
Called to update task visualizations after every tick. Implemented by subclasses. ...
Definition: simComponent.h:437
Definition: coordSystem.h:54
virtual bool init()
Overridden to initialize myRotaryWingEntityState.
DtDcm myTopoToBodyHeadingDcm
The 2D rotation about the yaw axis only.
Definition: simpleRotaryWingPilot.h:312
DtRotaryWingFlightPSR * myProcessState
Definition: simpleRotaryWingPilot.h:314
DtVector myLastDistError
PID state variables. In topo coordinates.
Definition: simpleRotaryWingPilot.h:317
DtDcm myLocalToTopoDcm
The local to topographic coordinate transformation matrix.
Definition: simpleRotaryWingPilot.h:306
virtual double catchUpSpeedFactor()
When moving toward a moving goal, how much faster than the goal's speed the entity is allowed to move...
Definition: simpleRotaryWingPilot.h:282
DtDcm myTopoToLocalDcm
The topographic to local coordinate transformation matrix.
Definition: simpleRotaryWingPilot.h:309
Central access point of all non-object-specific the services and managers that are available for use ...
Definition: simulationServices.h:95
The DtSimComponent class is the base class for the entire simulation model component hierarchy...
Definition: simComponent.h:91
virtual const char * type() const
Returns a string identifies the class type of component. Type values are defined in compTypes...
static DtSimComponent * creator(const DtString &name, DtLocalObject *owner, DtSimulationServices *simManager, DtComponentDescriptor *desc=0, DtReaderWriterRegistry *parentRegistry=0)
The DtRotaryWingPilotController class creates the rotary-wing-control port group needed to control ro...
Definition: rotaryWingPilotController.h:38
double myLastYawError
D state variable for yaw control.
Definition: simpleRotaryWingPilot.h:321
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