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 u_max;
33 Eigen::VectorXd u;
34
35public:
36 JointPosPDController(uint dim);
37
39 const Eigen::VectorXd& update(const Eigen::VectorXd& ref_pos,
40 const Eigen::VectorXd& ref_vel,
41 const Eigen::VectorXd& pos);
42
44 const Eigen::VectorXd& update(const Eigen::VectorXd& ref_pos,
45 const Eigen::VectorXd& ref_vel,
46 const Eigen::VectorXd& ref_acc,
47 const Eigen::VectorXd& pos,
48 const Eigen::VectorXd& vel);
49
51 void setPGain(const Eigen::VectorXd &gain);
53 const Eigen::VectorXd& pGain(){return p_gain;}
55 void setDGain(const Eigen::VectorXd &gain);
57 const Eigen::VectorXd& dGain(){return d_gain;}
59 void setMaxCtrlOutput(const Eigen::VectorXd &max_ctrl_out);
61 const Eigen::VectorXd& maxCtrlOutput(){return u_max;}
70 void applySaturation(const Eigen::VectorXd& in, const Eigen::VectorXd& max, Eigen::VectorXd &out);
71};
72using JointPosPDControllerPtr = std::shared_ptr<JointPosPDController>;
73
74}
75#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:70
Eigen::VectorXd d_gain
Definition JointPosPDController.hpp:31
JointPosPDController(uint dim)
Definition JointPosPDController.cpp:5
Eigen::VectorXd p_gain
Definition JointPosPDController.hpp:30
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:11
void setMaxCtrlOutput(const Eigen::VectorXd &max_ctrl_out)
Definition JointPosPDController.cpp:65
const Eigen::VectorXd & dGain()
Definition JointPosPDController.hpp:57
void setPGain(const Eigen::VectorXd &gain)
Definition JointPosPDController.cpp:55
void setDGain(const Eigen::VectorXd &gain)
Definition JointPosPDController.cpp:60
Eigen::VectorXd u_max
Definition JointPosPDController.hpp:32
Eigen::VectorXd u
Definition JointPosPDController.hpp:33
const Eigen::VectorXd & pGain()
Definition JointPosPDController.hpp:53
uint dim_controller
Definition JointPosPDController.hpp:29
const Eigen::VectorXd & maxCtrlOutput()
Definition JointPosPDController.hpp:61
Definition ContactsAccelerationConstraint.cpp:3
std::shared_ptr< JointPosPDController > JointPosPDControllerPtr
Definition JointPosPDController.hpp:72