neck-limitation.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_NeckLimitation_H__
11 #define __SOT_NeckLimitation_H__
12 
13 /* --------------------------------------------------------------------- */
14 /* --- INCLUDE --------------------------------------------------------- */
15 /* --------------------------------------------------------------------- */
16 
17 /* Matrix */
19 
20 /* SOT */
22 #include <dynamic-graph/entity.h>
23 
25 
26 /* STD */
27 #include <list>
28 #include <map>
29 #include <string>
30 
31 /* --------------------------------------------------------------------- */
32 /* --- API ------------------------------------------------------------- */
33 /* --------------------------------------------------------------------- */
34 
35 #if defined(WIN32)
36 #if defined(neck_limitation_EXPORTS)
37 #define NeckLimitation_EXPORT __declspec(dllexport)
38 #else
39 #define NeckLimitation_EXPORT __declspec(dllimport)
40 #endif
41 #else
42 #define NeckLimitation_EXPORT
43 #endif
44 
45 /* --------------------------------------------------------------------- */
46 /* --- CLASS ----------------------------------------------------------- */
47 /* --------------------------------------------------------------------- */
48 
49 namespace dynamicgraph {
50 namespace sot {
51 
53  public:
54  static const std::string CLASS_NAME;
55  virtual const std::string &getClassName(void) const { return CLASS_NAME; }
56 
57  protected:
58  unsigned int panRank, tiltRank;
59  static const unsigned int PAN_RANK_DEFAULT;
60  static const unsigned int TILT_RANK_DEFAULT;
61 
62  /* The limitation is: sgn.Tilt >= Pan.alpha + beta, with alpha the linear
63  * coefficient and beta the affine one, and sgn is +1 or -1. */
64  double coeffLinearPan, coeffAffinePan;
65  double signTilt;
66  static const double COEFF_LINEAR_DEFAULT;
67  static const double COEFF_AFFINE_DEFAULT;
68  static const double SIGN_TILT_DEFAULT;
69 
70  public: /* --- CONSTRUCTION --- */
71  NeckLimitation(const std::string &name);
72  virtual ~NeckLimitation(void);
73 
74  public: /* --- SIGNAL --- */
77 
78  public: /* --- FUNCTIONS --- */
79  dynamicgraph::Vector &computeJointLimitation(
80  dynamicgraph::Vector &jointLimited, const int &timeSpec);
81 
82  public: /* --- PARAMS --- */
83  virtual void display(std::ostream &os) const;
84 };
85 
86 } /* namespace sot */
87 } /* namespace dynamicgraph */
88 
89 #endif // #ifndef __SOT_NeckLimitation_H__
Eigen::VectorXd Vector
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, int > jointSOUT
static const double SIGN_TILT_DEFAULT
static const unsigned int TILT_RANK_DEFAULT
static const double COEFF_LINEAR_DEFAULT
static const std::string CLASS_NAME
virtual const std::string & getClassName(void) const
static const double COEFF_AFFINE_DEFAULT
static const unsigned int PAN_RANK_DEFAULT
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > jointSIN
#define NeckLimitation_EXPORT


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