LRAUV  revA
Navigator.h
Go to the documentation of this file.
1 
10 #ifndef NAVIGATOR_H_
11 #define NAVIGATOR_H_
12 
13 // include parent class
14 #include "component/SyncComponent.h" // should include component/Component.h in turn
15 // include classes that define any object that is a member of this class
16 #include "data/Matrix3x3.h"
17 #include "data/Point3D.h"
18 // forward declare classes for which this class includes a pointer
19 class ConfigReader;
22 
31 {
32 public:
33 
34  friend class DeadReckoner;
35 
36  Navigator( const Str& name, const Module* module ); // TODO: Can we remove the module arg somehow? all navigators are going to be in the navigationModule.
37 
38  virtual ~Navigator();
39 
40  virtual void initialize( void )
41  {}
42 
43  virtual void run( void )
44  {}
45 
46 protected:
47 
53 
58 
63 
69 
72 
75  double accuracyPremultiplier_; // configuration variable to allow the user to make one navigator preferred over others
76  int inputMeasurementStartupAllowance_; // seconds to wait after startup before considering lack of data a fault
78  // bool orientationIsValid_, velocityIsValid_; // flags to keep track of whether supporting data is valid and was read successfully
79  Timestamp orientationReadTime_, velocityReadTime_; // timestamps to track when valid orientation and velocity data was last read
80  Timespan orientationStaleAfter_, velocityStaleAfter_; // timspans to define when data is considered stale
81  double timeFix_, latitudeFix_, longitudeFix_; // geographic position of most recent fix (GPS, maybe acoustic in future...)
82  double lastTimeFix_, lastLatitudeFix_, lastLongitudeFix_; // geographic position of last fix (GPS, maybe acoustic in future...)
83  double horizontalPathLengthSinceLastFix_; // length in meters of the path in the horizontal plane since the last external fix (used to trigger DR error calculations)
85  Matrix3x3 rotationFromVehicleToNavigationFrame_; // vehicle orientation as a rotation matrix
88  double latitude_, longitude_, depth_; // geographic position of new estimate
89  double lastLatitude_, lastLongitude_, lastDepth_; // estimated geographic position at end of last cycle
91 
92  // read config parameters
93  void readConfigs( void );
94 
95  // check for a position fix from an external source
96  void readExternalFix( void );
97 
98  // get the orientation of the vehicle as a rotation matrix
99  void readVehicleOrientation( void );
100 
101  virtual void readVehicleVelocity( void )
102  {}
103 
104  // write the estimated position of the vehicle
105  void writeVehiclePosition( void );
106 
107  // evaluate and report the residual between the position estimate and an external fix
108  void evaluateAndRecordFixResidual( void );
109 };
110 
111 #endif /* NAVIGATOR_H_ */
UniversalDataReader * longitudeFixReader_
Definition: Navigator.h:56
double lastLatitudeFix_
Definition: Navigator.h:82
Contains a 3x3 array of double precision floating point numbers, along with methods for performing co...
Definition: Matrix3x3.h:27
double lastDepth_
Definition: Navigator.h:89
virtual void readVehicleVelocity(void)
Definition: Navigator.h:101
Contains the SyncComponent class definition.
Timespan orientationStaleAfter_
Definition: Navigator.h:80
double lastLongitude_
Definition: Navigator.h:89
virtual ~Navigator()
Definition: Navigator.cpp:71
A DataAccessor that reads values from the Slate Contains a default dataValue that must not be NULL...
Definition: UniversalDataReader.h:26
double depthAccuracy_
Definition: Navigator.h:90
double horizontalPathLengthSinceLastFix_
Definition: Navigator.h:83
UniversalDataWriter * fixDistanceMadeGoodWriter_
Definition: Navigator.h:64
Timespan velocityStaleAfter_
Definition: Navigator.h:80
ConfigReader * accuracyPremultiplierConfigReader_
Definition: Navigator.h:50
double latitude_
Definition: Navigator.h:88
int inputMeasurementStartupAllowance_
Definition: Navigator.h:76
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: UniversalDataWriter.h:24
Matrix3x3 rotationFromVehicleToNavigationFrame_
Definition: Navigator.h:85
DataWriter * elapsedSinceVelocityReadWriter_
Definition: Navigator.h:71
void writeVehiclePosition(void)
Definition: Navigator.cpp:163
Timespan class, represents a delta of time.
Definition: Timestamp.h:248
void readExternalFix(void)
Definition: Navigator.cpp:87
Timestamp orientationReadTime_
Definition: Navigator.h:79
UniversalDataWriter * fixResidualDistanceWriter_
Definition: Navigator.h:66
Contains the Point3D class definition.
UniversalDataWriter * horizontalPathLengthSinceLastFixWriter_
Definition: Navigator.h:62
double lastLatitude_
Definition: Navigator.h:89
UniversalDataWriter * fixHorizontalPathLengthSinceLastFixWriter_
Definition: Navigator.h:65
double lastTimeFix_
Definition: Navigator.h:82
Definition: UniversalDataReader.h:74
A DataAccessor that writes values to the Slate via its associated DataElement.
Definition: DataWriter.h:27
ConfigReader * velocityStaleAfterConfigReader_
Definition: Navigator.h:52
UniversalDataWriter * latitudeWriter_
Definition: Navigator.h:59
double timeFix_
Definition: Navigator.h:81
Wraps three double precision (8-byte) floating point numbers.
Definition: Point3D.h:28
Point3D displacementRelativeToGroundInNavigationFrame_
Definition: Navigator.h:87
void readConfigs(void)
Definition: Navigator.cpp:74
double longitude_
Definition: Navigator.h:88
double longitudeFix_
Definition: Navigator.h:81
ConfigReader * orientationStaleAfterConfigReader_
Definition: Navigator.h:51
Module is the abstract base class for a collection of Component objects that can be contained in a lo...
Definition: Module.h:45
double lastLongitudeFix_
Definition: Navigator.h:82
Timestamp velocityReadTime_
Definition: Navigator.h:79
Replacement for standard template class string.
Definition: Str.h:12
ConfigReader * verbosityLevelConfigReader_
Definition: Navigator.h:48
Abstract Base class for components that generate navigation estimates.
Definition: SyncComponent.h:195
Timestamp navTimeStamp_
Definition: Navigator.h:77
double latitudeFix_
Definition: Navigator.h:81
double longitudeAccuracy_
Definition: Navigator.h:90
Definition: ConfigReader.h:13
double accuracyPremultiplier_
Definition: Navigator.h:75
ConfigReader * allowableFailuresConfigReader_
Definition: Navigator.h:49
UniversalDataWriter * fixResidualBearingWriter_
Definition: Navigator.h:67
virtual void run(void)
The actual "payload" of the component.
Definition: Navigator.h:43
General navigator class.
Definition: Navigator.h:30
Contains the Matrix3x3 class definition.
double horizontalPathLengthSinceLastFixAccuracy_
Definition: Navigator.h:90
Navigator(const Str &name, const Module *module)
Definition: Navigator.cpp:21
DataWriter * elapsedSinceOrientationReadWriter_
Definition: Navigator.h:70
double latitudeAccuracy_
Definition: Navigator.h:90
double depth_
Definition: Navigator.h:88
double timeAccuracy_
Definition: Navigator.h:90
UniversalBlobReader * vehicleOrientationReader_
Definition: Navigator.h:57
General dead reckoner class.
Definition: DeadReckoner.h:25
int verbosity_
Definition: Navigator.h:73
void evaluateAndRecordFixResidual(void)
Definition: Navigator.cpp:254
UniversalDataReader * timeFixReader_
Definition: Navigator.h:54
int allowableFailures_
Definition: Navigator.h:74
Timestamp startTime_
Definition: Navigator.h:77
UniversalDataWriter * depthWriter_
Definition: Navigator.h:61
UniversalDataReader * latitudeFixReader_
Definition: Navigator.h:55
Point3D velocityRelativeToGroundInVehicleFrame_
Definition: Navigator.h:84
void readVehicleOrientation(void)
Definition: Navigator.cpp:142
UniversalDataWriter * longitudeWriter_
Definition: Navigator.h:60
virtual void initialize(void)
Provide a space for initialization before being run.
Definition: Navigator.h:40
Point3D velocityRelativeToGroundInNavigationFrame_
Definition: Navigator.h:86
Represents absolute times.
Definition: Timestamp.h:31
UniversalDataWriter * fixResidualPercentDistanceTraveledWriter_
Definition: Navigator.h:68