18 #ifndef _GAZEBO_PID_HH_
19 #define _GAZEBO_PID_HH_
36 class GZ_COMMON_VISIBLE
PID
47 public:
PID(
double _p = 0.0,
double _i = 0.0,
double _d = 0.0,
48 double _imax = 0.0,
double _imin = 0.0,
49 double _cmdMax = 0.0,
double _cmdMin = 0.0);
52 public:
virtual ~
PID();
63 public:
void Init(
double _p = 0.0,
double _i = 0.0,
double _d = 0.0,
64 double _imax = 0.0,
double _imin = 0.0,
65 double _cmdMax = 0.0,
double _cmdMin = 0.0);
69 public:
void SetPGain(
double _p);
73 public:
void SetIGain(
double _i);
77 public:
void SetDGain(
double _d);
81 public:
void SetIMax(
double _i);
85 public:
void SetIMin(
double _i);
89 public:
void SetCmdMax(
double _c);
93 public:
void SetCmdMin(
double _c);
97 public:
double GetPGain()
const;
101 public:
double GetIGain()
const;
105 public:
double GetDGain()
const;
109 public:
double GetIMax()
const;
113 public:
double GetIMin()
const;
117 public:
double GetCmdMax()
const;
121 public:
double GetCmdMin()
const;
134 public:
void SetCmd(
double _cmd);
138 public:
double GetCmd();
144 public:
void GetErrors(
double &_pe,
double &_ie,
double &_de);
154 this->pGain = _p.pGain;
155 this->iGain = _p.iGain;
156 this->dGain = _p.dGain;
157 this->iMax = _p.iMax;
158 this->iMin = _p.iMin;
159 this->cmdMax = _p.cmdMax;
160 this->cmdMin = _p.cmdMin;
161 this->pErrLast = _p.pErrLast;
162 this->pErr = _p.pErr;
163 this->iErr = _p.iErr;
164 this->dErr = _p.dErr;
172 public:
void Reset();
175 private:
double pErrLast;
178 private:
double pErr;
181 private:
double iErr;
184 private:
double dErr;
187 private:
double pGain;
190 private:
double iGain;
193 private:
double dGain;
196 private:
double iMax;
199 private:
double iMin;
205 private:
double cmdMax;
208 private:
double cmdMin;
PID & operator=(const PID &_p)
Assignment operator.
Definition: PID.hh:149
GAZEBO_VISIBLE void Init(google::protobuf::Message &_message, const std::string &_id="")
Initialize a message.
Generic PID controller class.
Definition: PID.hh:36
A Time class, can be used to hold wall- or sim-time.
Definition: Time.hh:44