AuboStudio SDK 0.6.3

move_node.h
浏览该文件的文档.
1 #ifndef AUBO_SCOPE_MOVE_NODE_H
2 #define AUBO_SCOPE_MOVE_NODE_H
3
4 #include <aubo_caps/domain/program/nodes/program_node.h>
5 #include <aubo_caps/domain/feature/feature.h>
6 #include <aubo_caps/domain/tcp/tcp.h>
7 #include <aubo_caps/domain/variable/feature_variable.h>
8
9 namespace arcs {
10 namespace aubo_scope {
11 ARCS_CLASS_FORWARD(MoveNode);
12
13 class ARCS_ABI_EXPORT MoveNode : public ProgramNode
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 */
35 MOVE_L,
36
37 MOVE_S,
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 */
53 IGNORE_ACTIVE_TCP,
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
62 enum FeatureSelectionType : int
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 */
69 UNRESOLVED_FEATURE,
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_ABI_EXPORT
#define ARCS_ABI_EXPORT
Definition: class_forward.h:16
arcs::aubo_scope::MoveNode
Definition: move_node.h:14
arcs::aubo_scope::MoveNode::getToolAcceleration
double getToolAcceleration()
arcs::aubo_scope::MoveNode::getBlend
double getBlend()
arcs::aubo_scope::MoveNode::setUseJoints
void setUseJoints(bool use)
arcs::aubo_scope::MoveNode::setJointSpeed
void setJointSpeed(double joint_speed)
arcs::aubo_scope::MoveNode::setJointAcceleration
void setJointAcceleration(double joint_acceleration)
arcs::aubo_scope::MoveNode::setFeature
void setFeature(FeaturePtr feature)
arcs::aubo_scope::MoveNode::FeatureSelectionType
FeatureSelectionType
Definition: move_node.h:63
arcs::aubo_scope::MoveNode::UNRESOLVED_FEATURE
@ UNRESOLVED_FEATURE
The selected feature is no longer available (e.g.
Definition: move_node.h:69
arcs::aubo_scope::MoveNode::getTcpSelectionType
TcpSelectionType getTcpSelectionType()
arcs::aubo_scope::MoveNode::getConfigType
ConfigType getConfigType()
This method returns the type of configuration.
arcs::aubo_scope::MoveNode::setTcpSelectionType
void setTcpSelectionType(TcpSelectionType type)
arcs::aubo_scope::MoveNode::MoveNode
MoveNode()
arcs::aubo_scope::MoveNode::setToolAcceleration
void setToolAcceleration(double tool_acceleration)
arcs::aubo_scope::MoveNode::getFeature
FeaturePtr getFeature()
arcs::aubo_scope::MoveNode::getUseJoints
bool getUseJoints()
arcs::aubo_scope::MoveNode::getJointAcceleration
double getJointAcceleration()
arcs::aubo_scope::MoveNode::TcpSelectionType
TcpSelectionType
Definition: move_node.h:41
arcs::aubo_scope::MoveNode::IGNORE_ACTIVE_TCP
@ IGNORE_ACTIVE_TCP
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
arcs::aubo_scope::MoveNode::getToolSpeed
double getToolSpeed()
arcs::aubo_scope::MoveNode::setConfigType
void setConfigType(ConfigType type)
arcs::aubo_scope::MoveNode::ConfigType
ConfigType
Definition: move_node.h:17
arcs::aubo_scope::MoveNode::MOVE_L
@ MOVE_L
Definition: move_node.h:35
arcs::aubo_scope::MoveNode::MOVE_S
@ MOVE_S
Definition: move_node.h:37
arcs::aubo_scope::MoveNode::getTCPSelection
TCPPtr getTCPSelection()
arcs::aubo_scope::MoveNode::setTCPSelection
void setTCPSelection(TCPPtr tcp_selection)
arcs::aubo_scope::MoveNode::getJointSpeed
double getJointSpeed()
arcs::aubo_scope::MoveNode::setToolSpeed
void setToolSpeed(double tool_speed)
arcs::aubo_scope::MoveNode::~MoveNode
virtual ~MoveNode()
arcs::aubo_scope::MoveNode::setFeature
void setFeature(FeatureVariablePtr feature_variable)
arcs::aubo_scope::MoveNode::setBlend
void setBlend(double blend)
arcs::aubo_scope::MoveNode::MoveNode
MoveNode(MoveNode &f)
arcs::aubo_scope::MoveNode::MoveNode
MoveNode(MoveNode &&f)
arcs::aubo_scope::ProgramNode
Definition: program_node.h:19
feature.h
feature_variable.h
arcs::aubo_scope::ARCS_CLASS_FORWARD
ARCS_CLASS_FORWARD(GripForceCapability)
arcs
Definition: contribution_provider.h:7
program_node.h
tcp.h