AuboCaps  0.6.0
move_node.h
Go to the documentation of this file.
1 #ifndef AUBO_SCOPE_MOVE_NODE_H
2 #define AUBO_SCOPE_MOVE_NODE_H
3 
8 
9 namespace arcs {
10 namespace aubo_scope {
11 ARCS_CLASS_FORWARD(MoveNode);
12 
14 {
15 public:
16  enum ConfigType : int
17  {
18 
19  /**
20  * <p>
21  * Movement type is MoveJ.
22  * </p>
23  *
24  * The config instance can be cast to {@link MoveJMoveNodeConfig}.
25  */
26  MOVE_J = 0,
27 
28  /**
29  * <p>
30  * Movement type is MoveL.
31  * </p>
32  *
33  * The config instance can be cast to {@link MoveLMoveNodeConfig}.
34  */
36 
38  };
39 
40  enum TcpSelectionType : int
41  {
42 
43  /**
44  * Motions are adjusted to the currently active TCP. The TCP is
45  * determined during runtime of the program.
46  */
47  USE_ACTIVE_TCP = 0,
48 
49  /**
50  * No TCP is used and the motion under this Move command will be with
51  * respect to the tool output flange.
52  */
54 
55  /**
56  * A specific TCP is selected. <br>
57  * The TCPSelection instance can be cast to {@link MoveNodeTCP}.
58  */
59  MOVE_TCP
60  };
61 
63  {
64  /**
65  * The selected feature is no longer available (e.g. because the user
66  * has removed the feature in the Installation or the needed
67  * Installation is not currently loaded)
68  */
70 
71  /**
72  * Feature is selected.
73  * The Selection instance can be cast to {@link MoveNodeFeature}
74  */
75  FEATURE
76  };
77 
78  MoveNode(MoveNode &f);
79  MoveNode(MoveNode &&f);
80  virtual ~MoveNode();
81 
82  /**
83  * This method returns the type of configuration. Cast this instance
84  * appropriately to have access to specific getters.
85  *
86  * @return the type of this config.
87  */
88  ConfigType getConfigType();
89  void setConfigType(ConfigType type);
90 
91  bool getUseJoints();
92  void setUseJoints(bool use);
93 
94  /**
95  * <p>
96  * Set joint speed parameter for the MoveJ configuration.
97  * </p>
98  *
99  * The parameter applies to the movement of the robot arm, from the previous
100  * position through the waypoints under the Move node.
101  *
102  * @param joint_speed The shared joint speed to be achieved, not
103  * <code>null</code>.
104  * @param jointSpeedErrorHandler Error handler for handling validation. If
105  * using {@link ErrorHandler#AUTO_CORRECT}, this will clamp the value to the
106  * nearest valid joint speed value.
107  * @return This builder.
108  */
109  void setJointSpeed(double joint_speed);
110  double getJointSpeed();
111 
112  /**
113  * <p>
114  * Set joint acceleration parameter for the MoveJ configuration.
115  * </p>
116  *
117  * The parameter applies to the movement of the robot arm, from the previous
118  * position through the waypoints under the Move node.
119  *
120  * @param joint_acceleration The shared joint acceleration to be used, not
121  * <code>null</code>.
122  * @param joint_accelerationErrorHandler Error handler for handling
123  * validation. If using {@link ErrorHandler#AUTO_CORRECT}, this will clamp
124  * the value to the nearest valid joint acceleration value.
125  * @return This builder.
126  */
127  void setJointAcceleration(double joint_acceleration);
128  double getJointAcceleration();
129 
130  /**
131  * <p>
132  * Set the TCP selection for the MoveJ configuration.
133  * </p>
134  *
135  * <p>
136  * The TCP will be set as the active TCP before the movement of the robot
137  * arm, from the previous position through the waypoints under the Move
138  * node, is performed.
139  * </p>
140  *
141  * See {@link TCPSelection} which can be created using the {@link
142  * TCPSelectionFactory} interface.
143  *
144  * @param tcp_selection The TCP setting to be applied.
145  * @return This builder.
146  */
147  void setTCPSelection(TCPPtr tcp_selection);
148  TCPPtr getTCPSelection();
149 
150  /**
151  * <p>
152  * Set tool speed parameter for the MoveL configuration.
153  * </p>
154  *
155  * The parameter applies to the movement of the robot arm, from the previous
156  * position through the waypoints under the Move node.
157  *
158  * @param tool_speed The shared tool speed to be achieved, not
159  * <code>null</code>.
160  * @param toolSpeedErrorHandler Error handler for handling validation. If
161  * using {@link ErrorHandler#AUTO_CORRECT}, this will clamp the value to the
162  * nearest valid tool speed value.
163  * @return This builder.
164  */
165  void setToolSpeed(double tool_speed);
166  double getToolSpeed();
167 
168  /**
169  * <p>
170  * Set tool acceleration parameter for the MoveL configuration.
171  * </p>
172  *
173  * The parameter applies to the movement of the robot arm, from the previous
174  * position through the waypoints under the Move node.
175  *
176  * @param tool_acceleration The shared tool acceleration to be used, not
177  * <code>null</code>.
178  * @param toolAccelerationErrorHandler Error handler for handling
179  * validation. If using {@link ErrorHandler#AUTO_CORRECT}, this will clamp
180  * the value to the nearest valid tool acceleration value.
181  * @return This builder.
182  */
183  void setToolAcceleration(double tool_acceleration);
184  double getToolAcceleration();
185 
186  /**
187  * <p>
188  * Set feature for the MoveL configuration.
189  * </p>
190  *
191  * The feature will be used for the movement of the robot arm, from the
192  * previous position through the waypoints under the Move node.
193  *
194  * @param feature The shared feature for this movement, not
195  * <code>null</code>.
196  * @return This builder.
197  */
198  void setFeature(FeaturePtr feature);
199  void setFeature(FeatureVariablePtr feature_variable);
200  FeaturePtr getFeature();
201 
202  /**
203  * <p>
204  * Set the blend parameter for the MoveP configuration.
205  * </p>
206  *
207  * The blend parameter will be used between all waypoints in the movement of
208  * the robot arm, from the previous position through the waypoint under the
209  * Move node.
210  *
211  * @param blend The shared blend used in the motion of this Move node, not
212  * <code>null</code>.
213  * @param blendErrorHandler Error handler for handling validation. If using
214  * {@link ErrorHandler#AUTO_CORRECT}, this will clamp the value to the
215  * nearest valid blend value.
216  * @return This builder.
217  */
218  void setBlend(double blend);
219  double getBlend();
220 
221  void setTcpSelectionType(TcpSelectionType type);
222  TcpSelectionType getTcpSelectionType();
223 
224 private:
225  friend class DataSwitch;
226  MoveNode();
227  void *d_{ nullptr };
228 };
229 
230 } // namespace aubo_scope
231 } // namespace arcs
232 #endif // AUBO_SCOPE_MOVE_NODE_H
ARCS_CLASS_FORWARD(GripForceCapability)
No TCP is used and the motion under this Move command will be with respect to the tool output flange...
Definition: move_node.h:53
The selected feature is no longer available (e.g.
Definition: move_node.h:69
#define ARCS_ABI_EXPORT
Definition: class_forward.h:16