wbc
PIDController.hpp
Go to the documentation of this file.
1#ifndef PID_CONTROLLER_HPP
2#define PID_CONTROLLER_HPP
3
4#include <Eigen/Core>
5#include "PIDCtrlParams.hpp"
6
7namespace wbc{
8
31protected:
34 Eigen::VectorXd control_error;
35 Eigen::VectorXd prev_control_error;
36 Eigen::VectorXd dead_zone;
37 Eigen::VectorXd max_ctrl_output;
38 Eigen::VectorXd integral;
39 Eigen::VectorXd derivative;
40 Eigen::VectorXd control_output;
41 Eigen::VectorXd setpoint;
42 Eigen::VectorXd feedback;
43
44public:
46 virtual ~PIDController(){}
47
49 void update(const double delta_t);
50
51 void setPID(const PIDCtrlParams &params);
53 void setMaxCtrlOutput(const Eigen::VectorXd &max);
54 const Eigen::VectorXd &maxCtrlOutput(){return max_ctrl_output;}
55 void setDeadZone(const Eigen::VectorXd &dz);
56 const Eigen::VectorXd &deadZone(){return dead_zone;}
57 void applySaturation(const Eigen::VectorXd& in, const Eigen::VectorXd& max, Eigen::VectorXd &out);
58 void applyDeadZone(const Eigen::VectorXd& in, const Eigen::VectorXd& min, Eigen::VectorXd& out);
59 uint getDimension(){return dimension;}
60 Eigen::VectorXd getControlError(){return control_error;}
61
62 virtual const Eigen::VectorXd& computeDerivative(const double delta_t);
63};
64
65}
66
67#endif
Eigen::VectorXd getControlError()
Definition PIDController.hpp:60
Eigen::VectorXd prev_control_error
Definition PIDController.hpp:35
Eigen::VectorXd control_error
Definition PIDController.hpp:34
void setMaxCtrlOutput(const Eigen::VectorXd &max)
Definition PIDController.cpp:72
virtual ~PIDController()
Definition PIDController.hpp:46
Eigen::VectorXd dead_zone
Definition PIDController.hpp:36
void update(const double delta_t)
Definition PIDController.cpp:23
void applySaturation(const Eigen::VectorXd &in, const Eigen::VectorXd &max, Eigen::VectorXd &out)
Definition PIDController.cpp:43
void applyDeadZone(const Eigen::VectorXd &in, const Eigen::VectorXd &min, Eigen::VectorXd &out)
Definition PIDController.cpp:51
uint dimension
Definition PIDController.hpp:33
void setDeadZone(const Eigen::VectorXd &dz)
Definition PIDController.cpp:77
Eigen::VectorXd feedback
Definition PIDController.hpp:42
virtual const Eigen::VectorXd & computeDerivative(const double delta_t)
Definition PIDController.cpp:82
PIDCtrlParams pid_params
Definition PIDController.hpp:32
PIDController(uint dimension)
Definition PIDController.cpp:8
Eigen::VectorXd derivative
Definition PIDController.hpp:39
Eigen::VectorXd setpoint
Definition PIDController.hpp:41
void setPID(const PIDCtrlParams &params)
Definition PIDController.cpp:64
Eigen::VectorXd integral
Definition PIDController.hpp:38
uint getDimension()
Definition PIDController.hpp:59
Eigen::VectorXd max_ctrl_output
Definition PIDController.hpp:37
const Eigen::VectorXd & maxCtrlOutput()
Definition PIDController.hpp:54
Eigen::VectorXd control_output
Definition PIDController.hpp:40
const PIDCtrlParams & getPID()
Definition PIDController.hpp:52
const Eigen::VectorXd & deadZone()
Definition PIDController.hpp:56
Definition PIDCtrlParams.hpp:8
Definition ContactsAccelerationConstraint.cpp:3