forces_with_description.xml
This example application shows the usage of some force skills. Move to a target, establishes a contact, pushes for some seconds, keeps on pushing while moving in another direction (slide), returns to the initial target
Models used
monitor_duration: lines 78, 125, 169, 283
skill_app: lines 36, 202, 241
skill_guarded_approach: lines 59, 225, 264
skill_guarded_lin: lines 138
skill_guarded_slide: lines 109
skill_insert: lines 155
skill_lin: lines 53, 132, 184, 219, 258
skill_push: lines 68, 273
skill_push_duration: lines 84, 289
skill_push_settle: lines 95
skill_relative_ptp: lines 49, 215, 254
File contents
1<?xml version="1.0" encoding="UTF-8"?>
2
3<!-- This example application shows the usage of some force skills.
4Move to a target, establishes a contact, pushes for some seconds,
5keeps on pushing while moving in another direction (slide), returns to the initial target
6-->
7
8<pitasc>
9
10 <models>
11 <include package="pitasc_library" file="models/pitasc.xml" />
12 <include package="pitasc_library" file="models/skills.xml" />
13
14 <include package="pitasc_library" file="universal_robots/ur.xml" />
15 </models>
16
17 <clone prototype="project">
18
19 <member id="configuration">
20 <clone id="configuration" prototype="default_configuration" />
21 </member>
22
23 <member id="environment">
24 <clone prototype="robot_ur5">
25 <member id="robot_driver.max_velocity">2.0</member>
26 <member id="robot_driver.max_acceleration">3.0</member>
27 <member id="components">
28 <clone prototype="force_sensor">
29 <member id="wrench_topic">wrench</member>
30 </clone>
31 </member>
32 </clone>
33 </member>
34
35 <member id="applications">
36 <clone id="force" prototype="skill_app">
37
38 <!-- <meta>
39 <member id="description">The amount of time to wait until triggering</member>
40 <member id="visibility">required</member>
41 </meta> -->
42
43 <member id="robot" reference_id="environment.robot_ur5" />
44
45 <!-- Skills -->
46 <member id="skills">
47
48 <!-- First move to start position -->
49 <clone prototype="skill_relative_ptp">
50 <member id="relative_joint_state">0, 0, 0, -0.01, 0, 0</member>
51 </clone>
52
53 <clone prototype="skill_lin">
54 <member id="tool_frame">tool</member>
55 <member id="target_frame">start_position</member>
56 </clone>
57
58 <!-- Moves along z until it hits something-->
59 <clone prototype="skill_guarded_approach">
60 <member id="control_frame">start_position</member>
61 <member id="tool_frame">tool</member>
62 <member id="axes">z</member>
63 <member id="velocities">0.02</member>
64 <member id="max_forces">10.0</member>
65 </clone>
66
67 <!-- Pushes in z direction -->
68 <clone prototype="skill_push">
69 <member id="tool_frame">tool</member>
70 <member id="force_frame">start_position</member>
71 <member id="axes">z</member>
72 <member id="target_forces">7</member>
73 <member id="compliance">0.0005</member>
74 <member id="corner_frequency">7</member>
75
76 <!-- transition -->
77 <member id="monitors">
78 <clone prototype="monitor_duration">
79 <member id="duration">1.0</member>
80 </clone>
81 </member>
82 </clone>
83
84 <clone prototype="skill_push_duration">
85 <member id="tool_frame">tool</member>
86 <member id="force_frame">start_position</member>
87 <member id="axes">z</member>
88 <member id="target_forces">30</member>
89 <member id="compliance">0.0005</member>
90 <member id="corner_frequency">7</member>
91
92 <member id="duration">1</member>
93 </clone>
94
95 <clone prototype="skill_push_settle">
96 <member id="tool_frame">tool</member>
97 <member id="force_frame">start_position</member>
98 <member id="axes">z</member>
99 <member id="target_forces">5</member>
100 <member id="compliance">0.0005</member>
101 <member id="corner_frequency">7</member>
102
103 <member id="thresholds">1.0</member>
104 <member id="samples">25</member>
105 </clone>
106
107 <!-- Position, velocity AND force control! -->
108 <!-- Move in y, push in z and keep the rest -->
109 <clone prototype="skill_guarded_slide">
110 <member id="tool_frame">tool</member>
111 <member id="control_frame">start_position</member>
112
113 <!-- moving -->
114 <member id="move_axes">y</member>
115 <member id="velocities">0.02</member>
116
117 <!-- pushing -->
118 <member id="force_axes">z</member>
119 <member id="target_forces">5.0</member>
120
121 <member id="max_forces">10</member>
122
123 <!-- transition -->
124 <member id="monitors">
125 <clone prototype="monitor_duration">
126 <member id="duration">3.0</member>
127 </clone>
128 </member>
129 </clone>
130
131 <!-- Back to start position -->
132 <clone prototype="skill_lin">
133 <member id="tool_frame">tool</member>
134 <member id="target_frame">start_position</member>
135 </clone>
136
137 <!-- Guarded lin -->
138 <clone prototype="skill_guarded_lin">
139 <member id="tool_frame">tool</member>
140 <member id="target_frame">start_position</member>
141 <member id="target_offsets">0, 0, 0.1, 0, 0, 0</member>
142 <member id="max_forces">5.0</member>
143 <member id="monitor_axes">z</member>
144 <member id="max_linear_velocity">0.02</member>
145
146 <!-- Raises an exception when a force occurs -->
147 <member id="transitions">
148 <clone prototype="transition">
149 <member id="event">exception</member>
150 <member id="target">back</member>
151 </clone>
152 </member>
153 </clone>
154
155 <clone prototype="skill_insert">
156 <member id="tool_frame">tool</member>
157 <member id="target_frame">marker</member>
158
159 <member id="force_axes">x, y, z</member>
160
161 <member id="track_axes">a,b,c</member>
162 <member id="track_offsets">0,0,0</member>
163
164 <member id="target_forces">0, 0, 18</member>
165 <member id="compliance">0.001</member>
166 <member id="corner_frequency">7</member>
167
168 <member id="monitors">
169 <clone prototype="monitor_duration">
170 <member id="duration">1.0</member>
171 <!-- <member id="event">succeded</member> -->
172 </clone>
173 <!-- <clone prototype="monitor_distance">
174 <member id="reference_frame">start_position</member>
175 <member id="frame">tool</member>
176 <member id="coordinates">x</member>
177 <member id="distances">0.01</member>
178 <member id="operator">greater</member>
179 </clone> -->
180 </member>
181 </clone>
182
183 <!-- Back to start position -->
184 <clone id="back" prototype="skill_lin">
185 <member id="tool_frame">tool</member>
186 <member id="target_frame">start_position</member>
187 </clone>
188
189 </member>
190
191 </clone>
192 <!-- <member id="force.description">This example application shows the usage of
193 some
194 force skills.
195 Move to a target, establishes a contact, pushes for some seconds,
196 keeps on pushing while moving in another direction (slide), returns to the initial
197 target</member> -->
198 <member id="force.color">brown</member>
199 <member id="force.group">errors</member>
200
201
202 <clone id="screw" prototype="skill_app">
203
204 <!-- <meta>
205 <member id="description">The amount of time to wait until triggering</member>
206 <member id="visibility">required</member>
207 </meta> -->
208
209 <member id="robot" reference_id="environment.robot_ur5" />
210
211 <!-- Skills -->
212 <member id="skills">
213
214 <!-- First move to start position -->
215 <clone prototype="skill_relative_ptp">
216 <member id="relative_joint_state">0, 0, 0, -0.01, 0, 0</member>
217 </clone>
218
219 <clone prototype="skill_lin">
220 <member id="tool_frame">tool</member>
221 <member id="target_frame">start_position</member>
222 </clone>
223
224 <!-- Moves along z until it hits something-->
225 <clone prototype="skill_guarded_approach">
226 <member id="control_frame">start_position</member>
227 <member id="tool_frame">tool</member>
228 <member id="axes">z</member>
229 <member id="velocities">0.02</member>
230 <member id="max_forces">10.0</member>
231 </clone>
232
233
234 </member>
235
236 </clone>
237 <member id="screw.tooltip">This application establishes a contact, then
238 screws
239 a screw until it is done and moves back to the start position</member>
240
241 <clone id="unscrew" prototype="skill_app">
242
243 <!-- <meta>
244 <member id="description">The amount of time to wait until triggering</member>
245 <member id="visibility">required</member>
246 </meta> -->
247
248 <member id="robot" reference_id="environment.robot_ur5" />
249
250 <!-- Skills -->
251 <member id="skills">
252
253 <!-- First move to start position -->
254 <clone prototype="skill_relative_ptp">
255 <member id="relative_joint_state">0, 0, 0, -0.01, 0, 0</member>
256 </clone>
257
258 <clone prototype="skill_lin">
259 <member id="tool_frame">tool</member>
260 <member id="target_frame">start_position</member>
261 </clone>
262
263 <!-- Moves along z until it hits something-->
264 <clone prototype="skill_guarded_approach">
265 <member id="control_frame">start_position</member>
266 <member id="tool_frame">tool</member>
267 <member id="axes">z</member>
268 <member id="velocities">0.02</member>
269 <member id="max_forces">10.0</member>
270 </clone>
271
272 <!-- Pushes in z direction -->
273 <clone prototype="skill_push">
274 <member id="tool_frame">tool</member>
275 <member id="force_frame">start_position</member>
276 <member id="axes">z</member>
277 <member id="target_forces">7</member>
278 <member id="compliance">0.0005</member>
279 <member id="corner_frequency">7</member>
280
281 <!-- transition -->
282 <member id="monitors">
283 <clone prototype="monitor_duration">
284 <member id="duration">1.0</member>
285 </clone>
286 </member>
287 </clone>
288
289 <clone prototype="skill_push_duration">
290 <member id="tool_frame">tool</member>
291 <member id="force_frame">start_position</member>
292 <member id="axes">z</member>
293 <member id="target_forces">30</member>
294 <member id="compliance">0.0005</member>
295 <member id="corner_frequency">7</member>
296
297 <member id="duration">1</member>
298 </clone>
299
300
301 </member>
302
303 </clone>
304 <member id="unscrew.tooltip">This application establishes a contact, then unscrews a
305 screw until it is completely exited then drops the screw and moves back to the start
306 position</member>
307 <member id="unscrew.color">green</member>
308 <member id="unscrew.group">errors</member>
309
310
311 </member>
312
313 </clone>
314
315</pitasc>