LRAUV  revA
HorizontalControlIF.h
Go to the documentation of this file.
1 
13 #ifndef HORIZONTALCONTROLIF_H_
14 #define HORIZONTALCONTROLIF_H_
15 
16 #include "data/ElementURI.h"
17 
28 {
31 static const Str NAME( "HorizontalControl" );
32 
33 // Include common ConfigURIs -- must be in namespace and follow definition of NAME
35 
38 static const DataURI HORIZONTAL_MODE( NAME, "horizontalMode", Units::ENUM );
39 static const DataURI LATITUDE_CMD( NAME, "latitudeCmd", Units::DEGREE, DOUBLE6 );
40 static const DataURI LONGITUDE_CMD( NAME, "longitudeCmd", Units::DEGREE, DOUBLE6 );
41 static const DataURI HEADING_CMD( NAME, "headingCmd", Units::RADIAN );
42 static const DataURI HEADING_RATE_CMD( NAME, "headingRateCmd", Units::RADIAN_PER_SECOND );
43 static const DataURI RUDDER_ANGLE_CMD( NAME, "rudderAngleCmd", Units::RADIAN );
44 static const DataURI BEARING_CMD( NAME, "bearingCmd", Units::RADIAN );
45 
47 static const ConfigURI KD_HEADING_CFG( NAME, "kdHeading", Units::SECOND ); // Derivative gain
48 static const ConfigURI KI_HEADING_CFG( NAME, "kiHeading", Units::RECIPROCAL_SECOND ); // Integral gain
49 static const ConfigURI KP_HEADING_CFG( NAME, "kpHeading", Units::RATIO ); // Proportional gain
50 static const ConfigURI KWP_HEADING_CFG( NAME, "kwpHeading", Units::RADIAN_PER_METER ); // Cross-track error gain
51 static const ConfigURI KIWP_HEADING_CFG( NAME, "kiwpHeading", Units::RADIAN_PER_SECOND_PER_METER ); // Cross-track integral error gain
52 static const ConfigURI MAX_HDG_ACCEL_CFG( NAME, "maxHdgAccel", Units::RADIAN_PER_SECOND_SQUARED ); // Max turn accel
53 static const ConfigURI MAX_HDG_INT_CFG( NAME, "maxHdgInt", Units::RADIAN ); // Max cmded rudder from hdg int
54 static const ConfigURI MAX_HDG_RATE_CFG( NAME, "maxHdgRate", Units::RADIAN_PER_SECOND ); // Max turn rate
55 static const ConfigURI MAX_KXTE_CFG( NAME, "maxKxte", Units::RADIAN ); // Max heading correction due to kwpHeading
56 static const ConfigURI RUD_DEADBAND_CFG( NAME, "rudDeadband", Units::RADIAN ); // Degree of rounding in output values
57 static const ConfigURI RUD_LIMIT_CFG( NAME, "rudLimit", Units::RADIAN ); // Max rudder angle
58 
60 static const DataURI HEADING_INTERNAL( NAME, "headingInternal", Units::RADIAN );
61 static const DataURI SMOOTH_HEADING_INTERNAL( NAME, "smoothHeadingInternal", Units::RADIAN );
62 static const DataURI HEADING_INTEGRAL_INTERNAL( NAME, "headingIntegralInternal", Units::RADIAN );
63 static const DataURI XTE_INTEGRAL_INTERNAL( NAME, "xteIntegralInternal", Units::RADIAN );
64 static const DataURI BEARING_INTERNAL( NAME, "bearingInternal", Units::RADIAN );
65 static const DataURI XTE_INTERNAL( NAME, "xteInternal", Units::METER );
66 static const DataURI KXTE_INTERNAL( NAME, "kxteInternal", Units::RADIAN );
67 
69 static const DataURI RUDDER_ANGLE_ACTION( NAME, "rudderAngleAction", Units::RADIAN );
70 
72 typedef enum
73 {
74  NONE, // Heading is not controlled
75  WAYPOINT, // Proceed towards the specified waypoint
76  HEADING, // Maintain the specified heading
77  HEADING_RATE, // Maintain a specified heading rate
78  RUDDER_ANGLE, // Maintain a specified rudder angle
80 
81 } // namespace HorizontalControlIF
82 
83 #endif /*HORIZONTALCONTROLIF_H_*/
static const BaseUnit RADIAN_PER_SECOND
Definition: Units.h:95
Definition: BinaryDataType.h:57
static const BaseUnit RADIAN_PER_SECOND_PER_METER
Definition: Units.h:96
static const BaseUnit SECOND
Definition: Units.h:43
Definition: HorizontalControlIF.h:74
Definition: HorizontalControlIF.h:78
Definition: ElementURI.h:166
static const BaseUnit RADIAN
Definition: Units.h:60
HorizontalMode
Defines heading modes.
Definition: HorizontalControlIF.h:72
static const BaseUnit RADIAN_PER_SECOND_SQUARED
Definition: Units.h:97
static const BaseUnit RATIO
Definition: Units.h:209
Replacement for standard template class string.
Definition: Str.h:12
Specifies URIs shared by components that can be loaded from modules at startup Designed to be include...
Definition: HorizontalControlIF.h:75
Contains the ElementURI class definition.
Definition: HorizontalControlIF.h:76
static const BaseUnit RADIAN_PER_METER
Definition: Units.h:94
Definition: HorizontalControlIF.h:77
Definition: ElementURI.h:229
static const BaseUnit ENUM
Definition: Units.h:229
static const Unit DEGREE
Definition: Units.h:132
static const BaseUnit RECIPROCAL_SECOND
Definition: Units.h:101
static const BaseUnit METER
Definition: Units.h:42
Specifies the interface details for the HeadingControl component in the ControlModule.
Definition: HorizontalControlIF.h:27