00001 /* 00002 * VMSaturation.hpp 00003 * 00004 * Created on: Dec 14, 2011 00005 * Author: mriedel 00006 */ 00007 00008 #ifndef VMSATURATION_HPP_ 00009 #define VMSATURATION_HPP_ 00010 00011 #include <telekyb_defines/telekyb_defines.hpp> 00012 #include <tk_trajprocessor/TrajectoryModule.hpp> 00013 00014 #include <telekyb_base/Options.hpp> 00015 00016 #include <telekyb_base/Time.hpp> 00017 00018 using namespace TELEKYB_NAMESPACE; 00019 00020 namespace telekyb_traj { 00021 00022 class VMSaturationOptions : public OptionContainer { 00023 public: 00024 Option<double>* tMaxVel; 00025 Option<double>* tMaxVelRate; 00026 VMSaturationOptions(); 00027 }; 00028 00029 class VMSaturation : public TrajectoryModule { 00030 protected: 00031 VMSaturationOptions options; 00032 00033 Velocity3D lastVelocity; 00034 Timer lastVelocityTimer; 00035 00036 public: 00037 VMSaturation(); 00038 00039 virtual void initialize(); 00040 virtual void destroy(); 00041 00042 // set back to intial conditions 00043 virtual void willTurnActive(); 00044 00045 // called after turning inactive 00046 virtual void didTurnInactive(); 00047 00048 virtual bool trajectoryStep(const TKState& currentState, TKTrajectory& trajInput); 00049 00050 }; 00051 00052 } /* namespace telekyb_traj */ 00053 #endif /* VMSATURATION_HPP_ */