wbc
JointPosPDController.hpp
Go to the documentation of this file.
1#ifndef WBC_CONTROLLERS_JOINTPOSPDCONTROLLER_HPP
2#define WBC_CONTROLLERS_JOINTPOSPDCONTROLLER_HPP
3
4#include <Eigen/Core>
5#include <memory>
6
7namespace wbc {
8
28protected:
30 Eigen::VectorXd p_gain;
31 Eigen::VectorXd d_gain;
32 Eigen::VectorXd ff_gain;
33 Eigen::VectorXd u_max;
34 Eigen::VectorXd u;
35
36public:
37 JointPosPDController(uint dim);
38
40 const Eigen::VectorXd& update(const Eigen::VectorXd& ref_pos,
41 const Eigen::VectorXd& ref_vel,
42 const Eigen::VectorXd& pos);
43
45 const Eigen::VectorXd& update(const Eigen::VectorXd& ref_pos,
46 const Eigen::VectorXd& ref_vel,
47 const Eigen::VectorXd& ref_acc,
48 const Eigen::VectorXd& pos,
49 const Eigen::VectorXd& vel);
50
52 void setPGain(const Eigen::VectorXd &gain);
54 const Eigen::VectorXd& pGain(){return p_gain;}
56 void setDGain(const Eigen::VectorXd &gain);
58 const Eigen::VectorXd& dGain(){return d_gain;}
60 void setFFGain(const Eigen::VectorXd &gain);
62 const Eigen::VectorXd& ffGain(){return ff_gain;}
64 void setMaxCtrlOutput(const Eigen::VectorXd &max_ctrl_out);
66 const Eigen::VectorXd& maxCtrlOutput(){return u_max;}
75 void applySaturation(const Eigen::VectorXd& in, const Eigen::VectorXd& max, Eigen::VectorXd &out);
76};
77using JointPosPDControllerPtr = std::shared_ptr<JointPosPDController>;
78
79}
80#endif // WBC_CONTROLLERS_JOINTPOSPDCONTROLLER_HPP
void applySaturation(const Eigen::VectorXd &in, const Eigen::VectorXd &max, Eigen::VectorXd &out)
Apply Saturation on the control output. If one or more values of <in> are bigger than the Corrrespond...
Definition JointPosPDController.cpp:78
Eigen::VectorXd d_gain
Definition JointPosPDController.hpp:31
JointPosPDController(uint dim)
Definition JointPosPDController.cpp:5
Eigen::VectorXd p_gain
Definition JointPosPDController.hpp:30
void setFFGain(const Eigen::VectorXd &gain)
Definition JointPosPDController.cpp:68
const Eigen::VectorXd & update(const Eigen::VectorXd &ref_pos, const Eigen::VectorXd &ref_vel, const Eigen::VectorXd &pos)
Compute velocity level control output.
Definition JointPosPDController.cpp:12
void setMaxCtrlOutput(const Eigen::VectorXd &max_ctrl_out)
Definition JointPosPDController.cpp:73
const Eigen::VectorXd & dGain()
Definition JointPosPDController.hpp:58
void setPGain(const Eigen::VectorXd &gain)
Definition JointPosPDController.cpp:58
void setDGain(const Eigen::VectorXd &gain)
Definition JointPosPDController.cpp:63
const Eigen::VectorXd & ffGain()
Definition JointPosPDController.hpp:62
Eigen::VectorXd u_max
Definition JointPosPDController.hpp:33
Eigen::VectorXd u
Definition JointPosPDController.hpp:34
const Eigen::VectorXd & pGain()
Definition JointPosPDController.hpp:54
uint dim_controller
Definition JointPosPDController.hpp:29
Eigen::VectorXd ff_gain
Definition JointPosPDController.hpp:32
const Eigen::VectorXd & maxCtrlOutput()
Definition JointPosPDController.hpp:66
Definition ContactsAccelerationConstraint.cpp:3
std::shared_ptr< JointPosPDController > JointPosPDControllerPtr
Definition JointPosPDController.hpp:77