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  std::size_t panRank, tiltRank;
59  static const std::size_t PAN_RANK_DEFAULT;
60  static const std::size_t 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 sigtime_t &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__
dynamicgraph::sot::NeckLimitation::signTilt
double signTilt
Definition: neck-limitation.hh:65
dynamicgraph::sot::NeckLimitation::COEFF_AFFINE_DEFAULT
static const double COEFF_AFFINE_DEFAULT
Definition: neck-limitation.hh:67
dynamicgraph::sot::NeckLimitation::jointSIN
dynamicgraph::SignalPtr< dynamicgraph::Vector, sigtime_t > jointSIN
Definition: neck-limitation.hh:75
dynamicgraph::SignalPtr< dynamicgraph::Vector, sigtime_t >
dynamicgraph
dynamicgraph::Entity
NeckLimitation_EXPORT
#define NeckLimitation_EXPORT
Definition: neck-limitation.hh:42
dynamicgraph::sot::NeckLimitation::tiltRank
std::size_t tiltRank
Definition: neck-limitation.hh:58
dynamicgraph::sot::NeckLimitation::PAN_RANK_DEFAULT
static const std::size_t PAN_RANK_DEFAULT
Definition: neck-limitation.hh:59
dynamicgraph::sot::NeckLimitation::SIGN_TILT_DEFAULT
static const double SIGN_TILT_DEFAULT
Definition: neck-limitation.hh:68
dynamicgraph::sigtime_t
int64_t sigtime_t
dynamicgraph::sot::NeckLimitation::coeffLinearPan
double coeffLinearPan
Definition: neck-limitation.hh:64
dynamicgraph::sot::NeckLimitation::COEFF_LINEAR_DEFAULT
static const double COEFF_LINEAR_DEFAULT
Definition: neck-limitation.hh:66
all-signals.h
display
dynamicgraph::Vector
Eigen::VectorXd Vector
linear-algebra.h
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, sigtime_t >
dynamicgraph::sot::NeckLimitation::jointSOUT
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, sigtime_t > jointSOUT
Definition: neck-limitation.hh:76
dynamicgraph::sot::NeckLimitation
Definition: neck-limitation.hh:52
dynamicgraph::sot::NeckLimitation::CLASS_NAME
static const std::string CLASS_NAME
Definition: neck-limitation.hh:54
task-abstract.hh
dynamicgraph::sot::NeckLimitation::getClassName
virtual const std::string & getClassName(void) const
Definition: neck-limitation.hh:55
compile.name
name
Definition: compile.py:23
dynamicgraph::sot::NeckLimitation::TILT_RANK_DEFAULT
static const std::size_t TILT_RANK_DEFAULT
Definition: neck-limitation.hh:60


sot-core
Author(s): Olivier Stasse, ostasse@laas.fr
autogenerated on Tue Oct 24 2023 02:26:31