00001 /* 00002 * YawControl.hpp 00003 * 00004 * Created on: Oct 27, 2011 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef YAWCONTROL_HPP_ 00009 #define YAWCONTROL_HPP_ 00010 00011 #include <telekyb_defines/telekyb_defines.hpp> 00012 #include <telekyb_base/Options.hpp> 00013 #include <telekyb_base/Messages.hpp> 00014 00015 #include <tk_ctrlalgo/YawCtrlDefines.hpp> 00016 00017 00018 namespace TELEKYB_NAMESPACE { 00019 00020 class YawControlOptions : public OptionContainer { 00021 public: 00022 Option<double>* tPropGain; 00023 Option<double>* tIntGain; 00024 Option<double>* tIntGainInfluenceSaturation; 00025 Option<double>* tPropGainExt; 00026 Option<double>* tDerivGainExt; 00027 Option<bool> *tAbsolutAngleControl; 00028 00029 YawControlOptions(); 00030 }; 00031 00032 class YawControl { 00033 private: 00034 YawControlOptions options; 00035 ros::Time lastTime, currentTime; 00036 float integralYawError; 00037 00038 public: 00039 YawControl(); 00040 virtual ~YawControl(); 00041 00042 void run(const TKTrajectory& input, const TKState& currentState,YawCtrlOutput& output); 00043 }; 00044 00045 } 00046 00047 #endif /* YAWCONTROL_HPP_ */