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