forces.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 73, 120, 164
skill_guarded_approach: lines 54
skill_guarded_lin: lines 133
skill_guarded_slide: lines 104
skill_insert: lines 150
skill_lin: lines 48, 127, 179
skill_push: lines 63
skill_push_duration: lines 79
skill_push_settle: lines 90
skill_relative_ptp: lines 44
skill_sequence: lines 36
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 prototype="skill_sequence">
37
38 <member id="robot" reference_id="environment.robot_ur5"/>
39
40 <!-- Skills -->
41 <member id="skills">
42
43 <!-- First move to start position -->
44 <clone prototype="skill_relative_ptp">
45 <member id="relative_joint_state">0, 0, 0, -0.01, 0, 0</member>
46 </clone>
47
48 <clone prototype="skill_lin">
49 <member id="tool_frame">tool</member>
50 <member id="target_frame">start_position</member>
51 </clone>
52
53 <!-- Moves along z until it hits something-->
54 <clone prototype="skill_guarded_approach">
55 <member id="control_frame">start_position</member>
56 <member id="tool_frame">tool</member>
57 <member id="axes">z</member>
58 <member id="velocities">0.02</member>
59 <member id="max_forces">10.0</member>
60 </clone>
61
62 <!-- Pushes in z direction -->
63 <clone prototype="skill_push">
64 <member id="tool_frame">tool</member>
65 <member id="force_frame">start_position</member>
66 <member id="axes">z</member>
67 <member id="target_forces">7</member>
68 <member id="compliance">0.0005</member>
69 <member id="corner_frequency">7</member>
70
71 <!-- transition -->
72 <member id="monitors">
73 <clone prototype="monitor_duration">
74 <member id="duration">1.0</member>
75 </clone>
76 </member>
77 </clone>
78
79 <clone prototype="skill_push_duration">
80 <member id="tool_frame">tool</member>
81 <member id="force_frame">start_position</member>
82 <member id="axes">z</member>
83 <member id="target_forces">30</member>
84 <member id="compliance">0.0005</member>
85 <member id="corner_frequency">7</member>
86
87 <member id="duration">1</member>
88 </clone>
89
90 <clone prototype="skill_push_settle">
91 <member id="tool_frame">tool</member>
92 <member id="force_frame">start_position</member>
93 <member id="axes">z</member>
94 <member id="target_forces">5</member>
95 <member id="compliance">0.0005</member>
96 <member id="corner_frequency">7</member>
97
98 <member id="thresholds">1.0</member>
99 <member id="samples">25</member>
100 </clone>
101
102 <!-- Position, velocity AND force control! -->
103 <!-- Move in y, push in z and keep the rest -->
104 <clone prototype="skill_guarded_slide">
105 <member id="tool_frame">tool</member>
106 <member id="control_frame">start_position</member>
107
108 <!-- moving -->
109 <member id="move_axes">y</member>
110 <member id="velocities">0.02</member>
111
112 <!-- pushing -->
113 <member id="force_axes">z</member>
114 <member id="target_forces">5.0</member>
115
116 <member id="max_forces">10</member>
117
118 <!-- transition -->
119 <member id="monitors">
120 <clone prototype="monitor_duration">
121 <member id="duration">3.0</member>
122 </clone>
123 </member>
124 </clone>
125
126 <!-- Back to start position -->
127 <clone prototype="skill_lin">
128 <member id="tool_frame">tool</member>
129 <member id="target_frame">start_position</member>
130 </clone>
131
132 <!-- Guarded lin -->
133 <clone prototype="skill_guarded_lin">
134 <member id="tool_frame">tool</member>
135 <member id="target_frame">start_position</member>
136 <member id="target_offsets">0, 0, 0.1, 0, 0, 0</member>
137 <member id="max_forces">5.0</member>
138 <member id="monitor_axes">z</member>
139 <member id="max_linear_velocity">0.02</member>
140
141 <!-- Raises an exception when a force occurs -->
142 <member id="transitions">
143 <clone prototype="transition">
144 <member id="event">exception</member>
145 <member id="target">back</member>
146 </clone>
147 </member>
148 </clone>
149
150 <clone prototype="skill_insert">
151 <member id="tool_frame">tool</member>
152 <member id="target_frame">marker</member>
153
154 <member id="force_axes">x, y, z</member>
155
156 <member id="track_axes">a,b,c</member>
157 <member id="track_offsets">0,0,0</member>
158
159 <member id="target_forces">0, 0, 18</member>
160 <member id="compliance">0.001</member>
161 <member id="corner_frequency">7</member>
162
163 <member id="monitors">
164 <clone prototype="monitor_duration">
165 <member id="duration">1.0</member>
166 <!-- <member id="event">succeded</member> -->
167 </clone>
168 <!-- <clone prototype="monitor_distance">
169 <member id="reference_frame">start_position</member>
170 <member id="frame">tool</member>
171 <member id="coordinates">x</member>
172 <member id="distances">0.01</member>
173 <member id="operator">greater</member>
174 </clone> -->
175 </member>
176 </clone>
177
178 <!-- Back to start position -->
179 <clone id="back" prototype="skill_lin">
180 <member id="tool_frame">tool</member>
181 <member id="target_frame">start_position</member>
182 </clone>
183
184 </member>
185
186 </clone>
187 </member>
188
189 </clone>
190
191</pitasc>