sot-core  4.11.4
Hierarchical task solver plug-in for dynamic-graph.
gripper-control.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_SOTGRIPPERCONTROL_H__
11 #define __SOT_SOTGRIPPERCONTROL_H__
12 
13 /* --------------------------------------------------------------------- */
14 /* --- INCLUDE --------------------------------------------------------- */
15 /* --------------------------------------------------------------------- */
16 
17 /* Matrix */
18 #include <dynamic-graph/linear-algebra.h>
19 
20 /* SOT */
21 #include <dynamic-graph/all-signals.h>
22 #include <dynamic-graph/entity.h>
23 #include <sot/core/flags.hh>
24 
25 /* STD */
26 #include <string>
27 
28 /* --------------------------------------------------------------------- */
29 /* --- API ------------------------------------------------------------- */
30 /* --------------------------------------------------------------------- */
31 
32 #if defined(WIN32)
33 #if defined(gripper_control_EXPORTS)
34 #define SOTGRIPPERCONTROL_EXPORT __declspec(dllexport)
35 #else
36 #define SOTGRIPPERCONTROL_EXPORT __declspec(dllimport)
37 #endif
38 #else
39 #define SOTGRIPPERCONTROL_EXPORT
40 #endif
41 
42 /* --------------------------------------------------------------------- */
43 /* --- CLASS ----------------------------------------------------------- */
44 /* --------------------------------------------------------------------- */
45 
46 namespace dynamicgraph {
47 namespace sot {
48 
56 protected:
57  double offset;
58  static const double OFFSET_DEFAULT;
60  dynamicgraph::Vector factor;
61 
62 public:
63  GripperControl(void);
64 
66  // if the torque limit is reached, the normalized position is reduced by
67  // (offset)
68  void computeIncrement(const dynamicgraph::Vector &torques,
69  const dynamicgraph::Vector &torqueLimits,
70  const dynamicgraph::Vector &currentNormVel);
71 
73  dynamicgraph::Vector &
74  computeDesiredPosition(const dynamicgraph::Vector &currentPos,
75  const dynamicgraph::Vector &desiredPos,
76  const dynamicgraph::Vector &torques,
77  const dynamicgraph::Vector &torqueLimits,
78  dynamicgraph::Vector &referencePos);
79 
84  static dynamicgraph::Vector &selector(const dynamicgraph::Vector &fullsize,
85  const Flags &selec,
86  dynamicgraph::Vector &desPos);
87 };
88 
89 /* --------------------------------------------------------------------- */
90 /* --- PLUGIN ---------------------------------------------------------- */
91 /* --------------------------------------------------------------------- */
92 
94  : public dynamicgraph::Entity,
95  public GripperControl {
96  DYNAMIC_GRAPH_ENTITY_DECL();
97 
98 public:
100 
101 public: /* --- CONSTRUCTION --- */
102  GripperControlPlugin(const std::string &name);
103  virtual ~GripperControlPlugin(void);
104 
105  /* --- DOCUMENTATION --- */
106  virtual std::string getDocString() const;
107 
108 public: /* --- SIGNAL --- */
109  /* --- INPUTS --- */
110  dynamicgraph::SignalPtr<dynamicgraph::Vector, int> positionSIN;
111  dynamicgraph::SignalPtr<dynamicgraph::Vector, int> positionDesSIN;
112  dynamicgraph::SignalPtr<dynamicgraph::Vector, int> torqueSIN;
113  dynamicgraph::SignalPtr<dynamicgraph::Vector, int> torqueLimitSIN;
114  dynamicgraph::SignalPtr<Flags, int> selectionSIN;
115 
116  /* --- INTERMEDIARY --- */
117  dynamicgraph::SignalPtr<dynamicgraph::Vector, int> positionFullSizeSIN;
118  dynamicgraph::SignalTimeDependent<dynamicgraph::Vector, int>
120  dynamicgraph::SignalPtr<dynamicgraph::Vector, int> torqueFullSizeSIN;
121  dynamicgraph::SignalTimeDependent<dynamicgraph::Vector, int> torqueReduceSOUT;
122  dynamicgraph::SignalPtr<dynamicgraph::Vector, int> torqueLimitFullSizeSIN;
123  dynamicgraph::SignalTimeDependent<dynamicgraph::Vector, int>
125 
126  /* --- OUTPUTS --- */
127  dynamicgraph::SignalTimeDependent<dynamicgraph::Vector, int>
129 
130 public: /* --- COMMANDLINE --- */
131  void initCommands();
132 
133  void setOffset(const double &value);
134 };
135 
136 } /* namespace sot */
137 } /* namespace dynamicgraph */
138 
139 #endif // #ifndef __SOT_SOTGRIPPERCONTROL_H__
dynamicgraph
Definition: abstract-sot-external-interface.hh:17
dynamicgraph::sot::GripperControlPlugin::torqueReduceSOUT
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, int > torqueReduceSOUT
Definition: gripper-control.hh:121
dynamicgraph::sot::GripperControlPlugin::torqueLimitSIN
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > torqueLimitSIN
Definition: gripper-control.hh:113
dynamicgraph::sot::GripperControlPlugin::desiredPositionSOUT
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, int > desiredPositionSOUT
Definition: gripper-control.hh:128
dynamicgraph::sot::GripperControlPlugin::positionSIN
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > positionSIN
Definition: gripper-control.hh:110
dynamicgraph::sot::GripperControlPlugin::torqueSIN
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > torqueSIN
Definition: gripper-control.hh:112
dynamicgraph::sot::GripperControlPlugin::positionFullSizeSIN
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > positionFullSizeSIN
Definition: gripper-control.hh:117
dynamicgraph::sot::GripperControl
The goal of this entity is to ensure that the maximal torque will not be exceeded during a grasping t...
Definition: gripper-control.hh:55
flags.hh
dynamicgraph::sot::GripperControlPlugin
Definition: gripper-control.hh:93
dynamicgraph::sot::GripperControlPlugin::torqueFullSizeSIN
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > torqueFullSizeSIN
Definition: gripper-control.hh:120
dynamicgraph::sot::GripperControlPlugin::selectionSIN
dynamicgraph::SignalPtr< Flags, int > selectionSIN
Definition: gripper-control.hh:114
dynamicgraph::sot::GripperControlPlugin::torqueLimitReduceSOUT
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, int > torqueLimitReduceSOUT
Definition: gripper-control.hh:124
dynamicgraph::sot::GripperControlPlugin::positionDesSIN
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > positionDesSIN
Definition: gripper-control.hh:111
dynamicgraph::sot::GripperControlPlugin::positionReduceSOUT
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, int > positionReduceSOUT
Definition: gripper-control.hh:119
dynamicgraph::sot::GripperControl::OFFSET_DEFAULT
static const double OFFSET_DEFAULT
Definition: gripper-control.hh:58
SOTGRIPPERCONTROL_EXPORT
#define SOTGRIPPERCONTROL_EXPORT
Definition: gripper-control.hh:39
dynamicgraph::sot::Flags
Definition: flags.hh:32
dynamicgraph::sot::GripperControl::offset
double offset
Definition: gripper-control.hh:57
dynamicgraph::sot::GripperControlPlugin::torqueLimitFullSizeSIN
dynamicgraph::SignalPtr< dynamicgraph::Vector, int > torqueLimitFullSizeSIN
Definition: gripper-control.hh:122
dynamicgraph::sot::GripperControlPlugin::calibrationStarted
bool calibrationStarted
Definition: gripper-control.hh:99
dynamicgraph::sot::GripperControl::factor
dynamicgraph::Vector factor
The multiplication.
Definition: gripper-control.hh:60