VR-Forces 4.6 Class Documentation
Home
Modules
Namespaces
Classes
Files
Examples
Behavior Models
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
include
vrfmodel
surfaceEntityPilotController.h
Go to the documentation of this file.
1
/*******************************************************************************
2
** Copyright (c) 2007 MAK Technologies, Inc.
3
** All rights reserved.
4
*******************************************************************************/
5
8
11
#pragma once
12
13
#include "
vrfobjcore/singleTaskControllerComponent.h
"
14
16
#define REDUCED_ACCELERATION_FACTOR 0.5
17
18
#define PROPORTIONAL_SPEED_CONTROL 1.0
19
20
21
22
23
#define DIRECT_HEADING_CONTROL_ANGLE 0.5
24
25
26
27
28
29
#define HEADING_GOAL_EPSILON 0.001
30
class DtString;
31
class
DtSimManager
;
32
class
DtAnalogOutputPort
;
33
class
DtBooleanOutputPort
;
34
class
DtSurfaceEntityActuator
;
35
class
DtVrfMovingObjectStateRepository
;
36
class
DtSurfaceEntityParameters
;
37
class
DtSurfaceEntityPilotControllerDescriptor
;
38
class
DtTaskMessage
;
39
class
DtSurfaceMovementPSR
;
40
75
76
#include "
vrfmodel/vrfmodelDefines.h
"
77
class
DT_DLL_vrfmodel
DtSurfaceEntityPilotController
:
78
public
DtSingleTaskControllerComponent
79
{
80
81
public
:
82
88
DtSurfaceEntityPilotController
(
const
DtString
& name,
89
DtVrfObject
* owner,
90
DtSimManager
* simManager,
91
DtComponentDescriptor
* desc = 0,
92
DtReaderWriterRegistry
* parentRegistry = 0);
93
97
virtual
~
DtSurfaceEntityPilotController
();
98
101
virtual
const
char
*
type
()
const
;
102
105
virtual
bool
init
();
106
109
virtual
void
tick
();
110
113
virtual
void
clearTask
();
115
virtual
bool
createSurfaceControlPortGroup();
116
118
virtual
DtVrfMovingObjectStateRepository
*
getSR
() {
return
myEntityState;}
119
125
static
DtReaderWriter
* provideOrderedSpeed(
void
* controller);
127
128
protected
:
133
virtual
void
moveToWithFinalSpeed(
const
DtVector
& localDestination,
134
const
double
cruiseSpeed,
const
double
finalSpeed);
137
virtual
void
moveToWithFinalSpeed(
const
double
goalHeading,
138
const
double
cruiseSpeed,
const
double
finalSpeed);
139
144
virtual
void
turn(
double
desiredRate);
145
151
virtual
void
turn(
double
desiredRate,
double
desiredHeading);
152
155
virtual
void
immediateNormalStop();
156
157
protected
:
168
virtual
double
calculateControlForTurn(
double
yawAngle,
169
double
desiredRate);
170
190
virtual
double
calculateNormalAcceleration(
double
cruiseSpeed,
191
double
distance
,
double
turnAngle,
double
finalSpeed);
192
197
virtual
double
calculateNormalAcceleration(
double
desiredSpeed);
198
207
virtual
double
limitedAcceleration(
double
desiredAcceleration,
208
double
desiredSpeed);
209
217
virtual
double
followerAcceleration(
double
dT,
218
double
distance
,
double
maxDeceleration,
219
double
followerSpeed,
double
leaderSpeed);
220
221
public
:
225
static
DtSimComponent
* creator(
const
DtString
& name,
226
DtVrfObject
* owner,
227
DtSimManager
* simManager,
228
DtComponentDescriptor
* desc = 0,
229
DtReaderWriterRegistry
* parentRegistry = 0);
230
231
protected
:
232
234
virtual
bool
createPortGroups
();
235
237
virtual
bool
createPorts
();
238
246
virtual
void
lookupAndCacheProcessSR();
247
251
virtual
bool
postAddComponentsInit
();
252
256
virtual
bool
decideToGiveUpTask
()
const
;
257
258
protected
:
259
261
DtSurfaceEntityPilotController
();
262
264
DtSurfaceEntityPilotController
(
265
const
DtSurfaceEntityPilotController
& orig);
266
268
const
DtSurfaceEntityPilotController
&
operator=
(
269
const
DtSurfaceEntityPilotController
& orig);
270
271
272
protected
:
273
274
DtVrfMovingObjectStateRepository
*
myEntityState
;
275
DtSurfaceEntityPilotControllerDescriptor
*
myDescriptor
;
276
278
const
DtSurfaceEntityParameters
*
myParameters
;
279
285
DtSurfaceMovementPSR
*
myProcessState
;
286
287
291
DtAnalogOutputPort
*
myAccelerationPort
;
294
DtAnalogOutputPort
*
myClampSpeedPort
;
296
DtAnalogOutputPort
*
myTurnRatePort
;
298
DtAnalogOutputPort
*
myFinalHeadingPort
;
299
303
DtOutputPortGroup
*
mySurfaceControlPortGroup
;
305
308
double
myDistanceSquared
;
309
310
};
Document ID: Generated on Thu Apr 12 03:15:37 EDT 2018 from SVN revision 187986
Copyright © 2005-2018 VT MÄK. All Rights Reserved (
www.mak.com
)