VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simpleRotaryWingPilot.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2006 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
15 #include <matrix/vlDcm.h>
16 #include <matrix/vlVector.h>
18 
19 class DtString;
20 class DtSimManager;
22 class Coordinate_System;
23 class DtVectorInputPort;
24 
36 {
37 public:
38 
41  DtSimpleRotaryWingPilot(const DtString& name,
42  DtVrfObject* owner,
43  DtSimManager* simManager,
44  DtComponentDescriptor* desc = 0,
45  DtReaderWriterRegistry* parentRegistry = 0);
46 
48  virtual ~DtSimpleRotaryWingPilot();
49 
52  virtual bool init();
53 
54  virtual bool createPorts();
55 
58  virtual const char* type() const;
59 
61  virtual void tick();
62 
66  static DtSimComponent * creator(const DtString& name,
67  DtVrfObject* owner,
68  DtSimManager* simManager,
69  DtComponentDescriptor* desc = 0,
70  DtReaderWriterRegistry* parentRegistry = 0);
71 
72  virtual bool taskVisualizationsActive() const;
73  virtual void updateTaskVisualizations();
74 
75 private:
78 
81 
84 
85 protected:
92  virtual void computeDesiredLinearAccel(DtVector& desiredHorizBodyAccel,
93  double& desiredYawAccel);
94 
105  virtual void computeDesiredTopoAccelToPosition(const double maxAccel, const double period,
106  DtVector& desiredTopoAccel, double& yawAccel);
107 
113  virtual void computeDesiredTopoAccelToVelocity(const DtVector& desiredVel, const double period,
114  DtVector& desiredTopoAccel);
115 
123  virtual double desiredHeadingWithNoMoveGoal();
124 
127  virtual void computeDesiredTopoAccelToHeading(const double desiredHeading, const double desiredSpeed,
128  const double period, DtVector& desiredTopoAccel);
129 
131 
133  virtual void checkLandNoFuel();
134 
143  virtual void findEarthCurveDeltaPosition(DtVector fromPosition,
144  DtVector toPosition, DtVector& deltaPosition,
145  Coordinate_System* coordinateSystem);
146 
150  virtual void limitAccelFromMaxForwardSpeed(const DtVector& topoVelocity,
151  const double speedAtGoal,
152  const double period,
153  DtVector& desiredTopoAccel);
154 
164  //virtual double limitAccelFromMaxAcceleration(const double desiredAccel);
165 
171  virtual void limitAccelFromMaxAcceleration(DtVector& horizBodyAccel);
172 
177  virtual void computeTopoDeltaPosition(DtVector& topoDeltaPosition);
178 
182  virtual void computeTopoDesiredEndVelocity(const DtVector& topoXyDeltaPos,
183  DtVector& topoXyEndDirection,
184  double& topoXyEndSpeed);
185 
192  virtual void computeAccelerationTowardGoal(const DtVector& topoCurrentXyVel,
193  const DtVector& topoVelDirAtGoalPt, const double horizDesSpeedAtGoal,
194  const DtVector& horizDeltaPos, const double period,
195  double& maxAccelTowardGoal);
196 
200  virtual void computeAccelerationPerpendicularToGoal(const DtVector& topoCurrentXyVel,
201  const DtVector& topoVelDirAtGoalPt,
202  const DtVector& horizDeltaPos, const double maxAccel, const double delayTime,
203  double& maxAccelTowardGoal);
204 
212  virtual void computeVerticalAcceleration(const DtVector& topoDeltaPos,
213  const double downSpeed,
214  const double period,
215  double& desiredZAccel);
216 
230  virtual double accelFromConstraintsAvoidingOvershoot(
231  const double maxDecel, const double maxAccel, const double period, double speed,
232  double targetDist, const double speedAtTarget);
233 
238  virtual bool isCloseToGoalPosition(const DtVector& topoDeltaPos);
240 
251  virtual void setCollectiveAndCyclicFromAccel(const DtVector& desiredAcceleration);
252 
253  virtual void setPedalFromDesiredYawAcceleration(const double yawAccel);
254 
256  virtual void setThrottle();
257 
259 
262  virtual DtReal terrainAvoidanceVelocity() const;
263 
268  virtual void calculateTargetAlignmentAngle(DtReal& alignmentAngle) const;
269 
272  virtual void computeYawAccelerationToHeading(const double headingToPoint,
273  const double period,
274  double& yawAccel);
275 
277  virtual void getTransformationMatrices();
278 
281 
289  virtual double stationaryGoalSpeedThreshold(){ return 0.5; }
290 
295  virtual double catchUpSpeedFactor(){ return 1.5; }
296 
297  protected:
299 
300 
301 
302 
303 
304 
307 
310 
312  DtDcm myBodyToRef;
313 
316 
319 
322 
323 public:
324 
328  static DtReal xyDistSquared(DtVector a, DtVector b);
329 
330 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)