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

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>