control-pd.hh
Go to the documentation of this file.
1 /*
2  * Copyright 2010,
3  * François Bleibel,
4  * Olivier Stasse,
5  *
6  * CNRS/AIST
7  *
8  */
9 
10 #ifndef __SOT_Control_PD_HH__
11 #define __SOT_Control_PD_HH__
12 
13 /* --------------------------------------------------------------------- */
14 /* --- INCLUDE --------------------------------------------------------- */
15 /* --------------------------------------------------------------------- */
16 
17 /* Matrix */
19 
20 /* SOT */
21 #include <dynamic-graph/entity.h>
24 
25 /* --------------------------------------------------------------------- */
26 /* --- API ------------------------------------------------------------- */
27 /* --------------------------------------------------------------------- */
28 
29 #if defined(WIN32)
30 #if defined(control_pd_EXPORTS)
31 #define ControlPD_EXPORT __declspec(dllexport)
32 #else
33 #define ControlPD_EXPORT __declspec(dllimport)
34 #endif
35 #else
36 #define ControlPD_EXPORT
37 #endif
38 
39 namespace dynamicgraph {
40 namespace sot {
41 
42 /* --------------------------------------------------------------------- */
43 /* --- CLASS ----------------------------------------------------------- */
44 /* --------------------------------------------------------------------- */
45 
47  public: /* --- CONSTRUCTOR ---- */
48  ControlPD(const std::string &name);
49 
50  public: /* --- INIT --- */
51  void init(const double &step);
52 
53  public: /* --- CONSTANTS --- */
54  /* Default values. */
55  static const double TIME_STEP_DEFAULT; // = 0.001
56 
57  public: /* --- ENTITY INHERITANCE --- */
58  static const std::string CLASS_NAME;
59  virtual void display(std::ostream &os) const;
60  virtual const std::string &getClassName(void) const { return CLASS_NAME; }
61 
62  protected:
63  /* Parameters of the torque-control function:
64  * tau = kp * (qd-q) + kd* (dqd-dq) */
65  double TimeStep;
66 
67  public: /* --- SIGNALS --- */
77 
78  protected:
79  dynamicgraph::Vector &computeControl(dynamicgraph::Vector &tau, int t);
82  dynamicgraph::Vector &getPositionError(dynamicgraph::Vector &position_error,
83  int t);
84  dynamicgraph::Vector &getVelocityError(dynamicgraph::Vector &velocity_error,
85  int t);
86 };
87 
88 } // namespace sot
89 } // namespace dynamicgraph
90 
91 #endif // #ifndef __SOT_Control_PD_HH__
Eigen::VectorXd Vector
dynamicgraph::Vector velocity_error_
Definition: control-pd.hh:81
static const double TIME_STEP_DEFAULT
Definition: control-pd.hh:55
SignalTimeDependent< dynamicgraph::Vector, int > velocityErrorSOUT
Definition: control-pd.hh:76
SignalPtr< dynamicgraph::Vector, int > KpSIN
Definition: control-pd.hh:68
SignalPtr< dynamicgraph::Vector, int > desiredvelocitySIN
Definition: control-pd.hh:73
SignalPtr< dynamicgraph::Vector, int > desiredpositionSIN
Definition: control-pd.hh:71
void init(bool compute_local_aabb=true)
#define ControlPD_EXPORT
Definition: control-pd.hh:36
SignalPtr< dynamicgraph::Vector, int > velocitySIN
Definition: control-pd.hh:72
SignalPtr< dynamicgraph::Vector, int > KdSIN
Definition: control-pd.hh:69
Transform3f t
SignalTimeDependent< dynamicgraph::Vector, int > controlSOUT
Definition: control-pd.hh:74
SignalTimeDependent< dynamicgraph::Vector, int > positionErrorSOUT
Definition: control-pd.hh:75
static const std::string CLASS_NAME
Definition: control-pd.hh:58
dynamicgraph::Vector position_error_
Definition: control-pd.hh:80
virtual const std::string & getClassName(void) const
Definition: control-pd.hh:60
SignalPtr< dynamicgraph::Vector, int > positionSIN
Definition: control-pd.hh:70


sot-core
Author(s): Olivier Stasse, ostasse@laas.fr
autogenerated on Wed Jun 21 2023 02:51:26