lin_time_optimal_ruckig.xml
This example application shows a minimal project.
A UR5 moves to a target (LIN). Then the application terminates.
Models used
script_measurement_logger: lines 78, 92, 124, 141, 180, 195, 229, 244, 283, 298, 332, 347
script_measurement_publisher: lines 72, 85, 118, 134, 173, 189, 222, 238, 276, 292, 325, 341
skill_lin: lines 50
skill_lin_time_optimal: lines 56, 102
skill_lin_time_optimal_ruckig: lines 157, 209, 260, 312
skill_sequence: lines 41
File contents
1<?xml version="1.5" encoding="UTF-8"?>
2
3<!-- This example application shows a minimal project.
4
5A UR5 moves to a target (LIN). Then the application terminates.
6-->
7
8<pitasc>
9
10 <models>
11 <!-- Include pitasc -->
12 <include package="pitasc_library" file="models/pitasc.xml" />
13
14 <!-- Include the UR5 -->
15 <include package="pitasc_library" file="universal_robots/ur.xml" />
16
17 <!-- Include the skills -->
18 <include package="pitasc_library" file="models/skills.xml" />
19
20 </models>
21
22 <!-- Create a project -->
23 <clone prototype="project">
24
25 <member id="configuration">
26 <!-- Use the default configuration with recommended settings -->
27 <clone id="configuration" prototype="default_configuration" />
28 </member>
29
30 <member id="environment">
31 <!-- Add a UR5 -->
32 <clone prototype="robot_ur5">
33 <member id="robot_driver.max_velocity">2.0</member>
34 <member id="robot_driver.max_acceleration">3.0</member>
35 </clone>
36 </member>
37
38 <member id="applications">
39
40 <!-- Use a skill sequence as a container -->
41 <clone prototype="skill_sequence">
42
43 <!-- Use the UR5 for this skill (and for its subskill) -->
44 <member id="robot" reference_id="environment.robot_ur5" />
45
46 <!-- Add subskill(s) -->
47 <member id="skills">
48
49 <!-- Move to target1 (lin) -->
50 <clone prototype="skill_lin">
51 <member id="tool_frame">tool</member>
52 <member id="target_frame">target2</member>
53 </clone>
54
55 <!-- Move to target3-->
56 <clone prototype="skill_lin_time_optimal">
57 <member id="tool_frame">tool</member>
58 <member id="target_frame">target3</member>
59 <member id="max_linear_velocity">1.5</member>
60 <member id="max_angular_velocity">1.5</member>
61
62 <member id="max_linear_acceleration">1.5</member>
63 <member id="max_angular_acceleration">1.5</member>
64
65 <member id="max_linear_jerk">10.1</member>
66 <member id="max_angular_jerk">10.1</member>
67
68 <!-- <member id="trajectory_duration">1.5</member> -->
69 <!-- <member id="target_offsets">0.0, 0.0, 0.0, 1.57, 0, 0</member> -->
70
71 <member id="scripts">
72 <clone prototype="script_measurement_publisher">
73 <member id="provider"
74 reference_id="tasks.tracking.setpoint_generators.setpoint" />
75 <member id="topic">setpoint</member>
76 <member id="coordinates">x,y,z,a,b,c</member>
77 </clone>
78 <clone prototype="script_measurement_logger">
79 <member id="provider"
80 reference_id="tasks.tracking.setpoint_generators.setpoint" />
81 <member id="file_name"> {rospkg
82 pitasc_common}/examples/skills/logs/{%F}_{%T}_target3_lin_time_optimal_ruckig_orig_setpoint.csv</member>
83 </clone>
84
85 <clone prototype="script_measurement_publisher">
86 <member id="provider"
87 reference_id="collections.target_to_tool.chains[0]" />
88 <member id="topic">tool_position</member>
89 <member id="coordinates">x,y,z,a,b,c</member>
90 </clone>
91
92 <clone prototype="script_measurement_logger">
93 <member id="provider"
94 reference_id="collections.target_to_tool.chains[0]" />
95 <member id="file_name"> {rospkg
96 pitasc_common}/examples/skills/logs/{%F}_{%T}_target3_lin_time_optimal_ruckig_orig_is_point.csv</member>
97 </clone>
98
99 </member>
100 </clone>
101
102 <clone prototype="skill_lin_time_optimal">
103 <member id="tool_frame">tool</member>
104 <member id="target_frame">target2</member>
105 <member id="max_linear_velocity">1.5</member>
106 <member id="max_angular_velocity">1.5</member>
107
108 <member id="max_linear_acceleration">1.5</member>
109 <member id="max_angular_acceleration">1.5</member>
110
111 <member id="max_linear_jerk">10.1</member>
112 <member id="max_angular_jerk">10.1</member>
113
114 <!-- <member id="trajectory_duration">1.5</member> -->
115 <!-- <member id="target_offsets">0.0, 0.0, 0.0, 1.57, 0, 0</member> -->
116
117 <member id="scripts">
118 <clone prototype="script_measurement_publisher">
119 <member id="provider"
120 reference_id="tasks.tracking.setpoint_generators.setpoint" />
121 <member id="topic">setpoint</member>
122 <member id="coordinates">x,y,z,a,b,c</member>
123 </clone>
124 <clone prototype="script_measurement_logger">
125 <member id="provider"
126 reference_id="tasks.tracking.setpoint_generators.setpoint" />
127 <member id="file_name"> {rospkg
128 pitasc_common}/examples/skills/logs/{%F}_{%T}_target2_lin_time_optimal_ruckig_orig_setpoint.csv</member>
129 <member id="use_simple_filter_keys">True</member> <!-- allows to
130 specify the filter without the chain... -->
131 <member id="filter">x,y,z,a,b,c</member>
132 </clone>
133
134 <clone prototype="script_measurement_publisher">
135 <member id="provider"
136 reference_id="collections.target_to_tool.chains[0]" />
137 <member id="topic">tool_position</member>
138 <member id="coordinates">x,y,z,a,b,c</member>
139 </clone>
140
141 <clone prototype="script_measurement_logger">
142 <member id="provider"
143 reference_id="collections.target_to_tool.chains[0]" />
144 <member id="file_name"> {rospkg
145 pitasc_common}/examples/skills/logs/{%F}_{%T}_target2_lin_time_optimal_ruckig_orig_is_point.csv</member>
146 <member id="use_simple_filter_keys">True</member> <!-- allows to
147 specify the filter without the chain... -->
148 <member id="filter">x,y,z,a,b,c</member>
149 </clone>
150
151 </member>
152 </clone>
153
154 <!-- LOW JERK -->
155
156 <!-- Move to target3-->
157 <clone prototype="skill_lin_time_optimal_ruckig">
158 <member id="tool_frame">tool</member>
159 <member id="target_frame">target3</member>
160 <member id="max_linear_velocity">1.5</member>
161 <member id="max_angular_velocity">1.5</member>
162
163 <member id="max_linear_acceleration">1.5</member>
164 <member id="max_angular_acceleration">1.5</member>
165
166 <member id="max_linear_jerk">0.1</member>
167 <member id="max_angular_jerk">0.1</member>
168
169 <!-- <member id="trajectory_duration">1.5</member> -->
170 <!-- <member id="target_offsets">0.0, 0.0, 0.0, 1.57, 0, 0</member> -->
171
172 <member id="scripts">
173 <clone prototype="script_measurement_publisher">
174 <member id="provider"
175 reference_id="tasks.tracking.setpoint_generators.setpoint" />
176 <member id="topic">setpoint</member>
177 <member id="coordinates">x,y,z,a,b,c</member>
178 </clone>
179
180 <clone prototype="script_measurement_logger">
181 <member id="provider"
182 reference_id="tasks.tracking.setpoint_generators.setpoint" />
183 <member id="file_name"> {rospkg
184 pitasc_common}/examples/skills/logs/{%F}_{%T}_target3_lin_time_optimal_ruckig_low_jerk_setpoint.csv</member>
185 <member id="use_simple_filter_keys">True</member> <!-- allows to
186 specify the filter without the chain... -->
187 <member id="filter">x,y,z,a,b,c</member>
188 </clone>
189 <clone prototype="script_measurement_publisher">
190 <member id="provider"
191 reference_id="collections.target_to_tool.chains[0]" />
192 <member id="topic">tool_position</member>
193 <member id="coordinates">x,y,z,a,b,c</member>
194 </clone>
195 <clone prototype="script_measurement_logger">
196 <member id="provider"
197 reference_id="collections.target_to_tool.chains[0]" />
198 <member id="file_name"> {rospkg
199 pitasc_common}/examples/skills/logs/{%F}_{%T}_target3_lin_time_optimal_ruckig_low_jerk_is_point.csv</member>
200 <member id="use_simple_filter_keys">True</member> <!-- allows to
201 specify the filter without the chain... -->
202 <member id="filter">x,y,z,a,b,c</member>
203 </clone>
204 </member>
205
206 </clone>
207
208 <!-- Move to target3-->
209 <clone prototype="skill_lin_time_optimal_ruckig">
210 <member id="tool_frame">tool</member>
211 <member id="target_frame">target2</member>
212 <member id="max_linear_velocity">1.5</member>
213 <member id="max_angular_velocity">1.5</member>
214
215 <member id="max_linear_acceleration">1.5</member>
216 <member id="max_angular_acceleration">1.5</member>
217
218 <member id="max_linear_jerk">0.1</member>
219 <member id="max_angular_jerk">0.1</member>
220
221 <member id="scripts">
222 <clone prototype="script_measurement_publisher">
223 <member id="provider"
224 reference_id="tasks.tracking.setpoint_generators.setpoint" />
225 <member id="topic">setpoint</member>
226 <member id="coordinates">x,y,z,a,b,c</member>
227 </clone>
228
229 <clone prototype="script_measurement_logger">
230 <member id="provider"
231 reference_id="tasks.tracking.setpoint_generators.setpoint" />
232 <member id="file_name"> {rospkg
233 pitasc_common}/examples/skills/logs/{%F}_{%T}_target2_lin_time_optimal_ruckig_low_jerk_setpoint.csv</member>
234 <member id="use_simple_filter_keys">True</member> <!-- allows to
235 specify the filter without the chain... -->
236 <member id="filter">x,y,z,a,b,c</member>
237 </clone>
238 <clone prototype="script_measurement_publisher">
239 <member id="provider"
240 reference_id="collections.target_to_tool.chains[0]" />
241 <member id="topic">tool_position</member>
242 <member id="coordinates">x,y,z,a,b,c</member>
243 </clone>
244 <clone prototype="script_measurement_logger">
245 <member id="provider"
246 reference_id="collections.target_to_tool.chains[0]" />
247 <member id="file_name"> {rospkg
248 pitasc_common}/examples/skills/logs/{%F}_{%T}_target2_lin_time_optimal_ruckig_low_jerk_is_point.csv</member>
249 <member id="use_simple_filter_keys">True</member> <!-- allows to
250 specify the filter without the chain... -->
251 <member id="filter">x,y,z,a,b,c</member>
252 </clone>
253 </member>
254
255 </clone>
256
257
258 <!-- HIGH JERK -->
259 <!-- Move to target3-->
260 <clone prototype="skill_lin_time_optimal_ruckig">
261 <member id="tool_frame">tool</member>
262 <member id="target_frame">target3</member>
263 <member id="max_linear_velocity">1.5</member>
264 <member id="max_angular_velocity">1.5</member>
265
266 <member id="max_linear_acceleration">1.5</member>
267 <member id="max_angular_acceleration">1.5</member>
268
269 <member id="max_linear_jerk">5.0</member>
270 <member id="max_angular_jerk">5.0</member>
271
272 <!-- <member id="trajectory_duration">1.5</member> -->
273 <!-- <member id="target_offsets">0.0, 0.0, 0.0, 1.57, 0, 0</member> -->
274
275 <member id="scripts">
276 <clone prototype="script_measurement_publisher">
277 <member id="provider"
278 reference_id="tasks.tracking.setpoint_generators.setpoint" />
279 <member id="topic">setpoint</member>
280 <member id="coordinates">x,y,z,a,b,c</member>
281 </clone>
282
283 <clone prototype="script_measurement_logger">
284 <member id="provider"
285 reference_id="tasks.tracking.setpoint_generators.setpoint" />
286 <member id="file_name"> {rospkg
287 pitasc_common}/examples/skills/logs/{%F}_{%T}_target3_lin_time_optimal_ruckig_high_jerk_setpoint.csv</member>
288 <member id="use_simple_filter_keys">True</member> <!-- allows to
289 specify the filter without the chain... -->
290 <member id="filter">x,y,z,a,b,c</member>
291 </clone>
292 <clone prototype="script_measurement_publisher">
293 <member id="provider"
294 reference_id="collections.target_to_tool.chains[0]" />
295 <member id="topic">tool_position</member>
296 <member id="coordinates">x,y,z,a,b,c</member>
297 </clone>
298 <clone prototype="script_measurement_logger">
299 <member id="provider"
300 reference_id="collections.target_to_tool.chains[0]" />
301 <member id="file_name"> {rospkg
302 pitasc_common}/examples/skills/logs/{%F}_{%T}_target3_lin_time_optimal_ruckig_high_jerk_is_point.csv</member>
303 <member id="use_simple_filter_keys">True</member> <!-- allows to
304 specify the filter without the chain... -->
305 <member id="filter">x,y,z,a,b,c</member>
306 </clone>
307 </member>
308
309 </clone>
310
311 <!-- Move to target3-->
312 <clone prototype="skill_lin_time_optimal_ruckig">
313 <member id="tool_frame">tool</member>
314 <member id="target_frame">target2</member>
315 <member id="max_linear_velocity">1.5</member>
316 <member id="max_angular_velocity">1.5</member>
317
318 <member id="max_linear_acceleration">1.5</member>
319 <member id="max_angular_acceleration">1.5</member>
320
321 <member id="max_linear_jerk">5.0</member>
322 <member id="max_angular_jerk">5.0</member>
323
324 <member id="scripts">
325 <clone prototype="script_measurement_publisher">
326 <member id="provider"
327 reference_id="tasks.tracking.setpoint_generators.setpoint" />
328 <member id="topic">setpoint</member>
329 <member id="coordinates">x,y,z,a,b,c</member>
330 </clone>
331
332 <clone prototype="script_measurement_logger">
333 <member id="provider"
334 reference_id="tasks.tracking.setpoint_generators.setpoint" />
335 <member id="file_name"> {rospkg
336 pitasc_common}/examples/skills/logs/{%F}_{%T}_target2_lin_time_optimal_ruckig_high_jerk_setpoint.csv</member>
337 <member id="use_simple_filter_keys">True</member> <!-- allows to
338 specify the filter without the chain... -->
339 <member id="filter">x,y,z,a,b,c</member>
340 </clone>
341 <clone prototype="script_measurement_publisher">
342 <member id="provider"
343 reference_id="collections.target_to_tool.chains[0]" />
344 <member id="topic">tool_position</member>
345 <member id="coordinates">x,y,z,a,b,c</member>
346 </clone>
347 <clone prototype="script_measurement_logger">
348 <member id="provider"
349 reference_id="collections.target_to_tool.chains[0]" />
350 <member id="file_name"> {rospkg
351 pitasc_common}/examples/skills/logs/{%F}_{%T}_target2_lin_time_optimal_ruckig_high_jerk_is_point.csv</member>
352 <member id="use_simple_filter_keys">True</member> <!-- allows to
353 specify the filter without the chain... -->
354 <member id="filter">x,y,z,a,b,c</member>
355 </clone>
356 </member>
357
358 </clone>
359
360
361 </member>
362
363 </clone>
364
365 </member>
366
367 </clone>
368
369</pitasc>