iCub Agent-Space
agents.h
1 #include "agentspace/agentspace.h"
2 
3 #include <QtGui/QApplication>
4 #include "headcontrolgui.h"
5 #include "armcontrolgui.h"
6 #include "worldgui.h"
7 
8 #include <yarp/os/all.h>
9 #include <yarp/sig/all.h>
10 #include <yarp/dev/all.h>
11 
12 #include <string>
13 #include <iostream>
14 #include <sstream>
15 
24 /******************** Config Block ********************/
36 typedef struct {
37  string agentName;
38  string jointBlock;
39  string speedBlock;
41  string yarpDevice;
42  string yarpLocal;
43  string yarpRemote;
45 } ConfBlock;
46 
51 typedef struct {
52  string agentName;
53  string velocityBlock;
54  string encodersBlock;
55  string yarpDevice;
56  string yarpLocal;
57  string yarpRemote;
60 
65 typedef struct {
66  string agentName;
67  string encodersBlock;
68  string yarpDevice;
69  string yarpLocal;
70  string yarpRemote;
71  int startTime;
72  int period;
75 
80 typedef struct {
81  string agentName;
82  string portName;
83  string deviceName;
84  string outBlock;
85  string message;
86  int startTime;
87  int period;
89 } SensorBlock;
90 
95 typedef struct {
96  string agentName;
97  string inBlock;
98  string outBlock;
99  string posBlock;
100  int startTime;
101  int period;
102 } AgentBlock;
112 /******************** Motor Agent ********************/
113 
118 class MotorAgent : public Agent {
119  private:
120  yarp::dev::PolyDriver driver;
121  yarp::dev::IPositionControl *pos;
122  yarp::dev::IVelocityControl *vel;
123  yarp::dev::IEncoders *encs;
124  yarp::dev::IControlLimits *iLim;
125  yarp::sig::Vector encoders;
126  yarp::sig::Vector commands;
127  yarp::sig::Vector speeds;
128  yarp::sig::Vector accelerations;
129  yarp::sig::Vector def_commands;
130  yarp::sig::Vector def_speeds;
131  ConfBlock conf;
132  double min;
133  double max;
134 
135  protected:
137  void init (string args);
139  void sense_select_act(int pid);
140  public:
145  MotorAgent(string confBlock);
146  ~MotorAgent();
147 };
148 
149 /******************** Velovity Motor Agent ********************/
155 class VelocityMotorAgent : public Agent {
156  private:
157  yarp::dev::PolyDriver driver;
158  yarp::dev::IVelocityControl *vel;
159  yarp::dev::IEncoders *encs;
160  yarp::sig::Vector encoders;
161  yarp::sig::Vector commands;
162  yarp::sig::Vector def_commands;
163  VelocityBlock conf;
164 
165  protected:
167  void init (string args);
169  void sense_select_act(int pid);
170  public:
175  VelocityMotorAgent(string velocityBlock);
177 };
178 
179 /******************** Position Control Agent ********************/
184 class PositionAgent : public Agent {
185  private:
186  yarp::dev::PolyDriver driver;
187  yarp::dev::IEncoders *encs;
188  yarp::sig::Vector encoders;
189  PositionBlock conf;
190 
191  protected:
193  void init (string args);
195  void sense_select_act(int pid);
196  public:
201  PositionAgent(string posBlock);
202  ~PositionAgent();
203 };
213 /******************** Camera Senzor Agent ********************/
218 class CamSensorAgent : public Agent {
219  private:
220  yarp::os::BufferedPort<yarp::sig::ImageOf<yarp::sig::PixelRgb> > *imagePort;
221  SensorBlock conf;
222 
223  protected:
225  void init (string args);
227  void sense_select_act(int pid);
228  public:
233  CamSensorAgent(string sensorBlock);
234  ~CamSensorAgent();
235 };
236 
237 /******************** Hand Position Agent ********************/
242 class HandPosSensorAgent : public Agent {
243  private:
244  yarp::os::Bottle reply;
245  yarp::os::Port *port;
246  yarp::sig::Vector position;
247  SensorBlock conf;
248 
249  protected:
251  void init (string args);
253  void sense_select_act(int pid);
254  public:
259  HandPosSensorAgent(string sensorBlock);
261 };
262 
263 /******************** Intertial Senzor Agent ********************/
268 class InertialSensorAgent : public Agent {
269  private:
270  yarp::os::BufferedPort<yarp::sig::Vector> *port;
271  yarp::sig::Vector respond;
272  SensorBlock conf;
273 
274  protected:
276  void init (string args);
278  void sense_select_act(int pid);
279  public:
284  InertialSensorAgent(string sensorBlock);
286 };
287 
288 /******************** Touch Senzor Agent ********************/
293 class TouchSensorAgent : public Agent {
294  private:
295  yarp::os::BufferedPort<yarp::sig::Vector> *port;
296  yarp::sig::Vector respond;
297  SensorBlock conf;
298 
299  protected:
301  void init (string args);
303  void sense_select_act(int pid);
304  public:
309  TouchSensorAgent(string sensorBlock);
310  ~TouchSensorAgent();
311 };
int startTime
Definition: agents.h:100
TouchSensorAgent(string sensorBlock)
Definition: agents.cpp:371
Definition: agents.h:36
string yarpLocal
Definition: agents.h:69
string jointBlock
Definition: agents.h:38
string agentName
Definition: agents.h:52
void sense_select_act(int pid)
Reads the data from iCub and writes them to block in Space.
Definition: agents.cpp:244
string yarpDevice
Definition: agents.h:68
string inBlock
Definition: agents.h:97
Definition: agents.h:218
string portName
Definition: agents.h:82
void sense_select_act(int pid)
Reads the data from iCub and writes them to block in Space.
Definition: agents.cpp:361
MotorAgent(string confBlock)
Definition: agents.cpp:90
string deviceName
Definition: agents.h:83
void sense_select_act(int pid)
Reads the data from iCub and writes them to block in Space.
Definition: agents.cpp:283
PositionAgent(string posBlock)
Definition: agents.cpp:214
void init(string args)
Called by constructor of Agent class. Reads configuration block and sets variables.
Definition: agents.cpp:172
string encodersBlock
Definition: agents.h:67
CamSensorAgent(string sensorBlock)
Definition: agents.cpp:255
int startTime
Definition: agents.h:86
string message
Definition: agents.h:85
string yarpDevice
Definition: agents.h:55
Definition: agents.h:95
Definition: agents.h:184
string yarpLocal
Definition: agents.h:56
HandPosSensorAgent(string sensorBlock)
Definition: agents.cpp:294
Definition: agents.h:268
string yarpRemote
Definition: agents.h:70
string agentName
Definition: agents.h:81
InertialSensorAgent(string sensorBlock)
Definition: agents.cpp:332
string speedBlock
Definition: agents.h:39
string posBlock
Definition: agents.h:99
void sense_select_act(int pid)
Reads the data from iCub and writes them to block in Space.
Definition: agents.cpp:201
int startTime
Definition: agents.h:71
string outBlock
Definition: agents.h:98
int period
Definition: agents.h:72
void init(string args)
Called by constructor of Agent class. Reads configuration block and sets variables.
Definition: agents.cpp:343
string agentName
Definition: agents.h:66
Definition: agents.h:51
VelocityMotorAgent(string velocityBlock)
Definition: agents.cpp:160
string yarpDevice
Definition: agents.h:41
string agentName
Definition: agents.h:37
string agentName
Definition: agents.h:96
void init(string args)
Called by constructor of Agent class. Reads configuration block and sets variables.
Definition: agents.cpp:264
Definition: agents.h:155
string accelerationBlock
Definition: agents.h:40
string yarpLocal
Definition: agents.h:42
void sense_select_act(int pid)
Reads the data from block and sends it to actuators of iCub.
Definition: agents.cpp:137
string yarpRemote
Definition: agents.h:43
int period
Definition: agents.h:87
void sense_select_act(int pid)
Reads the data from iCub and writes them to block in Space.
Definition: agents.cpp:323
int period
Definition: agents.h:101
string yarpRemote
Definition: agents.h:57
Definition: agents.h:118
Definition: agents.h:293
string velocityBlock
Definition: agents.h:53
string outBlock
Definition: agents.h:84
string encodersBlock
Definition: agents.h:54
void init(string args)
Called by constructor of Agent class. Reads configuration block and sets variables.
Definition: agents.cpp:225
Definition: agents.h:242
void sense_select_act(int pid)
Reads the data from block and sends it to actuators of iCub.
Definition: agents.cpp:56
void init(string args)
Called by constructor of Agent class. Reads configuration block and sets variables.
Definition: agents.cpp:305
Definition: agents.h:80
void init(string args)
Called by constructor of Agent class. Reads configuration block and sets variables.
Definition: agents.cpp:102
Definition: agents.h:65
void init(string args)
Called by constructor of Agent class. Reads configuration block and sets variables.
Definition: agents.cpp:8