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

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>