Conscience Core
CommandFollowKinematicTrajectory.h
Go to the documentation of this file.
1 #ifndef ConscienceEnvironmentInteractionCommandFollowKinematicTrajectory_h
2 #define ConscienceEnvironmentInteractionCommandFollowKinematicTrajectory_h
3 
4 #include "./Command.h"
6 
7 using std::string;
8 using std::vector;
9 
12 
13  public:
14  inline static const CommandTypeId COMMAND_ID = "FOLLOW_KINEMATIC_TRAJECTORY";
15 
17  ptr<CscEntityReflexion> entityReflexion,
18 
19  int knowledgeId,
20  const CscState *currentState,
21  string membreToMove,
22  string membreRelative,
23  string targetEntityObjectName,
24  /*
25  shapeWithObject allow to chose wich shape the different object draw in space.
26  There are two possibilities : line or sinusoid
27  */
28  string shapeWithObject,
29  /*
30  The different shapeBegin X, Y and Z allow to chose first object’s position
31  */
32  float shapeBeginX,
33  float shapeBeginY,
34  float shapeBeginZ,
35  /*
36  The different direction X, Y or Z allow to chose objects’ directions.
37  With the shape line is simply the line’s leading coefficients from shapeBegin X, Y and Z.
38  With the shape sinusoid is directionX and directionY is the sinusoid’s amplitude in X and Y, directionZ is for the step value in Z (of object) = cos(i) * directionZ with i == a multiple of 0.3
39  */
40  float directionX,
41  float directionY,
42  float directionZ,
43  /*
44  Positionnement to reach with membreToMove in X, Y and Z
45  */
46  float distanceFromTargetX,
47  float distanceFromTargetY,
48  float distanceFromTargetZ,
49  /*
50  euler objective in X,Y and Z to reach with membreToMove
51  */
52  float targetEulerX,
53  float targetEulerY,
54  float targetEulerZ,
55  /*
56  Positionnement ponderation for evaluation to reach with membreToMove in X, Y and Z
57  */
58  float distanceFromTargetPonderationX,
59  float distanceFromTargetPonderationY,
60  float distanceFromTargetPonderationZ,
61  /*
62  euler ponderation objective for evaluation in X,Y and Z to reach with membreToMove
63  */
64  float targetEulerPonderationX,
65  float targetEulerPonderationY,
66  float targetEulerPonderationZ,
67  /*
68  duration of each state
69  */
70  float stateDuration,
71  /*
72  duration between each state
73  */
74  float stateDelay,
75  float processAt);
76 
78  delete currentState;
79  }
80 
81  int getKnowledgeId();
82  const CscState *getCurrentState();
83  string getMembreToMove();
84  string getMembreRelative();
85  string getTargetEntityObjectName();
86  float getDistanceFromTargetX();
87  float getDistanceFromTargetY();
88  float getDistanceFromTargetZ();
89  float getTargetEulerX();
90  float getTargetEulerY();
91  float getTargetEulerZ();
92  float getDistanceFromTargetPonderationX();
93  float getDistanceFromTargetPonderationY();
94  float getDistanceFromTargetPonderationZ();
95  float getTargetEulerPonderationX();
96  float getTargetEulerPonderationY();
97  float getTargetEulerPonderationZ();
98 
99  protected:
100  const CscCommandExecutionResultSequence * doExecute(CscEnvironmentSimulator &environmentSimulator) override;
102  return entityReflexion;
103  }
104  private:
105 
106  ptr<CscEntityReflexion> entityReflexion;
107 
108  const int knowledgeId;
109  const CscState *const currentState;
110  const string membreToMove;
111  const string membreRelative;
112  const string targetEntityObjectName;
113  const string shapeWithObject;
114  const float shapeBeginX;
115  const float shapeBeginY;
116  const float shapeBeginZ;
117  const float directionX;
118  const float directionY;
119  const float directionZ;
120  const float distanceFromTargetX;
121  const float distanceFromTargetY;
122  const float distanceFromTargetZ;
123  const float targetEulerX;
124  const float targetEulerY;
125  const float targetEulerZ;
126  const float distanceFromTargetPonderationX;
127  const float distanceFromTargetPonderationY;
128  const float distanceFromTargetPonderationZ;
129  const float targetEulerPonderationX;
130  const float targetEulerPonderationY;
131  const float targetEulerPonderationZ;
132  bool outputTypes[4];
133  const float processAt;
134  const float stateDuration;
135  const float stateDelay;
136  };
137 
138 COMMAND_REGISTER(CommandFollowKinematicTrajectory,
140  int,
141  const CscState *,
142  string,
143  string,
144  string,
145  string,
146  float,
147  float,
148  float,
149  float,
150  float,
151  float,
152  float,
153  float,
154  float,
155  float,
156  float,
157  float,
158  float,
159  float,
160  float,
161  float,
162  float,
163  float,
164  float,
165  float,
166  float);
167 
168 }
169 
170 #endif
CSC_DLL_IMPORTEXPORT
#define CSC_DLL_IMPORTEXPORT
Definition: os.h:31
conscience_core::bridging::commands::CommandFollowKinematicTrajectory::getEntityReflexion
ptr< CscEntityReflexion > getEntityReflexion() const override
Definition: CommandFollowKinematicTrajectory.h:101
Command.h
conscience_core::bridging::commands::result::CscCommandExecutionResultSequence
Definition: CommandExecutionResultSequence.h:15
conscience_core::bridging::commands::CommandTypeId
string CommandTypeId
Definition: Command.h:29
conscience_core::bridging::commands::CommandFollowKinematicTrajectory
Definition: CommandFollowKinematicTrajectory.h:11
conscience_core::bridging::commands
Definition: cartographyCommands.cpp:4
CscState
Definition: CscState.h:24
conscience_core::bridging::commands::CscCommand
Definition: Command.h:40
conscience_core::bridging::commands::CommandFollowKinematicTrajectory::~CommandFollowKinematicTrajectory
~CommandFollowKinematicTrajectory()
Definition: CommandFollowKinematicTrajectory.h:77
CscEnvironmentSimulator
Definition: CscEnvironmentSimulator.h:35
conscience_core::bridging::commands::COMMAND_REGISTER
COMMAND_REGISTER(CommandFollowKinematicTrajectory, ptr< CscEntityReflexion >, int, const CscState *, string, string, string, string, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float, float)
CscCommandAutoParse.h
ptr
std::shared_ptr< T > ptr
Definition: CscCommon.h:29