00001
00002
00003
00004
00005
00006
00007
00008 #ifndef SERVOCONTROLLER_H_
00009 #define SERVOCONTROLLER_H_
00010
00011 #include <jsw.h>
00012
00013 namespace uvsim
00014 {
00015
00016 class ServoController
00017 {
00018 public:
00022 ServoController (float dSmooth, float windupGaurd, float maxCmd, float minCmd);
00023
00027 void initialize();
00028
00032 void update(float cmd, float feedback, float kP, float kI, float kD);
00033 private:
00034 float m_windupGaurd;
00035 float m_dSmooth;
00036 float m_errP, m_errI, m_errD, m_errPPrev;
00037 timeval m_timePrev, m_timePres;
00038 double m_dt;
00039 float m_out;
00040 float m_cmdM, m_cmdB;
00041
00042 };
00043 }
00044
00045 #endif