63 EIGEN_MAKE_ALIGNED_OPERATOR_NEW;
64 WaypointRefGen(
const std::string& simObjectName, ISimObjectCreator*
const creator);
66 const double* DesiredQuaternion(
const double T,
const double*
const X);
67 const double* DesiredHeading(
const double T,
const double*
const X);
68 const double* DesiredHeadingRate(
const double T,
const double*
const X);
69 const double* CrossTrackError(
const double T,
const double*
const X);
70 const double* DesiredPosition(
const double T,
const double*
const X);
71 const double* DesiredSpeed(
const double T,
const double*
const X);
72 void OdeFcn(
const double T,
const double *
const X,
double *
const )
const{}
73 void FinalSetup(
const double T,
const double*
const X, ISimObjectCreator*
const creator);
74 void Compute(
const double T,
const double*
const X)
const;
77 #ifdef FH_VISUALIZATION
78 void RenderInit(Ogre::Root*
const ogreRoot, ISimObjectCreator*
const creator);
79 void RenderUpdate(
const double T,
const double*
const X);
84 ISignalPort* m_adStatePositionPort;
85 ISignalPort* m_adStateVelocityPort;
86 ICommonComputation *m_Compute;
88 mutable std::vector<Waypoint> m_aWPList;
90 mutable Eigen::Vector3d m_adStatePosition;
91 Eigen::Vector3d m_adStateVelocity;
92 Eigen::Vector3d m_adStateVelocity_Desired;
94 std::string sideslipCompensation;
96 double initialPosition[3];
98 mutable double desiredHeading;
99 mutable double desiredHeadingRate;
100 mutable double crosstrackError;
101 double m_dLookaheadDistance;
103 double m_dSideSlipAngle;
105 double m_adStateTheta_Desired[4];
106 mutable double desiredPosition[3];
107 mutable double m_desiredSpeed;
110 int iCurrentWaypointNumber;
112 std::vector<double> waypoint_n;
113 std::vector<double> waypoint_e;
114 std::vector<double> waypoint_d;
115 std::vector<double> waypoint_r;
116 std::vector<double> waypoint_leg_speed;
117 double m_sectionType;
119 std::vector<Eigen::Vector3d> legstart;
120 std::vector<Eigen::Vector3d> legend;
121 std::vector<Eigen::Vector3d> circle_center;
122 std::vector<double> circle_radius;
124 #ifdef FH_VISUALIZATION
125 Ogre::SceneNode** m_wpNodes;
126 Ogre::SceneNode** m_legNodes;
128 Ogre::SceneNode** m_turnNodes;
129 Ogre::SceneNode** m_circNodes;
131 Ogre::SceneNode* m_LOSNode;
132 Ogre::SceneNode* m_TargetPointNode;
134 Ogre::ManualObject* sigth;
WaypointRefGen(const std::string &simObjectName, ISimObjectCreator *const creator)
reads parameters, registers states, input/output ports and shared resources