sot-core  4.11.6
Hierarchical task solver plug-in for dynamic-graph.
task.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_TASK_H__
11 #define __SOT_TASK_H__
12 
13 /* --------------------------------------------------------------------- */
14 /* --- INCLUDE --------------------------------------------------------- */
15 /* --------------------------------------------------------------------- */
16 
17 /* Matrix */
18 #include <dynamic-graph/linear-algebra.h>
19 
20 /* STD */
21 #include <string>
22 
23 /* SOT */
25 #include <sot/core/flags.hh>
27 
29 
30 /* --------------------------------------------------------------------- */
31 /* --- API ------------------------------------------------------------- */
32 /* --------------------------------------------------------------------- */
33 
34 #if defined(WIN32)
35 #if defined task_EXPORTS
36 #define SOTTASK_EXPORT __declspec(dllexport)
37 #else
38 #define SOTTASK_EXPORT __declspec(dllimport)
39 #endif
40 #else
41 #define SOTTASK_EXPORT
42 #endif
43 
44 /* --------------------------------------------------------------------- */
45 /* --- CLASS ----------------------------------------------------------- */
46 /* --------------------------------------------------------------------- */
70 namespace dynamicgraph {
71 namespace sot {
72 
74 public:
75  typedef std::list<FeatureAbstract *> FeatureList_t;
76 
77 protected:
80 
81  DYNAMIC_GRAPH_ENTITY_DECL();
82 
83 public:
84  Task(const std::string &n);
85  void initCommands(void);
86 
87  void addFeature(FeatureAbstract &s);
88  void addFeatureFromName(const std::string &name);
89  void clearFeatureList(void);
90  FeatureList_t &getFeatureList(void) { return featureList; }
91 
92  void setControlSelection(const Flags &act);
93  void addControlSelection(const Flags &act);
94  void clearControlSelection(void);
95 
96  void setWithDerivative(const bool &s);
97  bool getWithDerivative(void);
98 
99  /* --- COMPUTATION --- */
100  dynamicgraph::Vector &computeError(dynamicgraph::Vector &error, int time);
101  VectorMultiBound &computeTaskExponentialDecrease(VectorMultiBound &errorRef,
102  int time);
103  dynamicgraph::Matrix &computeJacobian(dynamicgraph::Matrix &J, int time);
104  dynamicgraph::Vector &computeErrorTimeDerivative(dynamicgraph::Vector &res,
105  int time);
106 
107  /* --- SIGNALS ------------------------------------------------------------ */
108 public:
109  dynamicgraph::SignalPtr<double, int> controlGainSIN;
110  dynamicgraph::SignalPtr<double, int> dampingGainSINOUT;
111  dynamicgraph::SignalPtr<Flags, int> controlSelectionSIN;
112  dynamicgraph::SignalTimeDependent<dynamicgraph::Vector, int> errorSOUT;
113  dynamicgraph::SignalTimeDependent<dynamicgraph::Vector, int>
115 
116  /* --- DISPLAY ------------------------------------------------------------ */
117  void display(std::ostream &os) const;
118 
119  /* --- Writing graph --- */
120  virtual std::ostream &writeGraph(std::ostream &os) const;
121 };
122 
123 } /* namespace sot */
124 } /* namespace dynamicgraph */
125 
126 #endif /* #ifndef __SOT_TASK_H__ */
dynamicgraph::sot::Task::errorSOUT
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, int > errorSOUT
Definition: task.hh:112
dynamicgraph::sot::Task::FeatureList_t
std::list< FeatureAbstract * > FeatureList_t
Definition: task.hh:75
dynamicgraph::sot::Task::withDerivative
bool withDerivative
Definition: task.hh:79
dynamicgraph
Definition: abstract-sot-external-interface.hh:17
dynamicgraph::sot::VectorMultiBound
std::vector< MultiBound > VectorMultiBound
Definition: multi-bound.hh:69
feature-abstract.hh
dynamicgraph::sot::TaskAbstract
Definition: task-abstract.hh:48
dynamicgraph::sot::FeatureAbstract
This class gives the abstract definition of a feature.
Definition: feature-abstract.hh:75
dynamicgraph::sot::Task::featureList
FeatureList_t featureList
Definition: task.hh:78
dynamicgraph::sot::Task::controlSelectionSIN
dynamicgraph::SignalPtr< Flags, int > controlSelectionSIN
Definition: task.hh:111
dynamicgraph::sot::Task::getFeatureList
FeatureList_t & getFeatureList(void)
Definition: task.hh:90
SOTTASK_EXPORT
#define SOTTASK_EXPORT
Definition: task.hh:41
flags.hh
dynamicgraph::sot::Task::dampingGainSINOUT
dynamicgraph::SignalPtr< double, int > dampingGainSINOUT
Definition: task.hh:110
exception-task.hh
dynamicgraph::sot::Task
Class that defines the basic elements of a task.
Definition: task.hh:73
task-abstract.hh
dynamicgraph::sot::Flags
Definition: flags.hh:32
dynamicgraph::sot::Task::errorTimeDerivativeSOUT
dynamicgraph::SignalTimeDependent< dynamicgraph::Vector, int > errorTimeDerivativeSOUT
Definition: task.hh:114
dynamicgraph::sot::Task::controlGainSIN
dynamicgraph::SignalPtr< double, int > controlGainSIN
Definition: task.hh:109