wbc
CartesianPosPDController.hpp
Go to the documentation of this file.
1#ifndef WBC_CONTROLLERS_CARTPOSPDCONTROLLER_HPP
2#define WBC_CONTROLLERS_CARTPOSPDCONTROLLER_HPP
3
4#include "../types/Pose.hpp"
5#include "../types/Twist.hpp"
7#include <memory>
8
9namespace wbc {
10
41class CartesianPosPDController {
42protected:
43 uint dim_controller;
44 types::Twist control_out_vel;
45 types::SpatialAcceleration control_out_acc;
46 Eigen::VectorXd u;
47 Eigen::VectorXd u_max;
48 Eigen::VectorXd p_gain;
49 Eigen::VectorXd i_gain;
50 Eigen::VectorXd d_gain;
51 Eigen::VectorXd ff_gain;
52 Eigen::VectorXd windup_term;
53 Eigen::VectorXd error_accumulated;
54 Eigen::VectorXd x;
55 Eigen::VectorXd v;
56 Eigen::VectorXd rx;
57 Eigen::VectorXd rv;
58 Eigen::VectorXd ra;
59 types::Twist pose_diff;
60
61public:
63 CartesianPosPDController();
65 const types::Twist& update(const types::Pose& ref_pose,
66 const types::Twist& ref_twist,
67 const types::Pose& pose);
69 const types::SpatialAcceleration& update(const types::Pose& ref_pose,
70 const types::Twist& ref_twist,
71 const types::SpatialAcceleration& ref_acc,
72 const types::Pose& pose,
73 const types::Twist& twist);
75 void setPGain(const Eigen::VectorXd &gain);
77 const Eigen::VectorXd& pGain(){return p_gain;}
79 void setIGain(const Eigen::VectorXd &gain);
81 const Eigen::VectorXd& iGain(){return i_gain;}
83 void setDGain(const Eigen::VectorXd &gain);
85 const Eigen::VectorXd& dGain(){return d_gain;}
87 void setFFGain(const Eigen::VectorXd &gain);
89 const Eigen::VectorXd& ffGain(){return ff_gain;}
91 void setMaxCtrlOutput(const Eigen::VectorXd &max_ctrl_out);
93 const Eigen::VectorXd& maxCtrlOutput(){return u_max;}
95 void setWindup(const Eigen::VectorXd &windup_terms);
97 const Eigen::VectorXd& windup(){return windup_term;}
98
107 void applySaturation(const Eigen::VectorXd& in, const Eigen::VectorXd& max, Eigen::VectorXd &out);
108};
109using CartesianPosPDControllerPtr = std::shared_ptr<CartesianPosPDController>;
110
111}
112#endif
Definition ContactsAccelerationConstraint.cpp:3