position_pid.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 68, 107, 146, 186
script_measurement_publisher: lines 75, 114, 153, 193
skill_cartesian_tracking_pid: lines 53, 92, 131, 171
skill_lin: lines 48, 87, 126, 165, 205
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 <clone prototype="skill_cartesian_tracking_pid">
54 <member id="tool_frame">tool</member>
55 <member id="target_frame">start_position</member>
56 <member id="target_offsets">0,0,-0.05, 0,0,0</member>
57 <member id="K">0.3</member>
58 <member id="Tv">0.01</member>
59 <member id="Tn">0.51</member>
60 <member id="Tp">0.001</member>
61 <member id="u_i_limit">0.01</member>
62
63 <member id="I_flag">false</member>
64 <member id="D_flag">false</member>
65
66 <!-- Quit after 5 seconds -->
67 <member id="monitors">
68 <clone prototype="monitor_duration">
69 <member id="duration">5.0</member>
70 </clone>
71 </member>
72
73 <member id="scripts">
74 <!-- publish measurements to a ros topic-->
75 <clone prototype="script_measurement_publisher">
76 <member id="provider"
77 reference_id="collections.target_to_tool.chains[0]" />
78 <member id="topic">tool_position</member>
79 <member id="coordinates">x,y,z</member>
80 </clone>
81 </member>
82
83 </clone>
84
85
86 <!-- Back to start position -->
87 <clone id="back" prototype="skill_lin">
88 <member id="tool_frame">tool</member>
89 <member id="target_frame">start_position</member>
90 </clone>
91
92 <clone prototype="skill_cartesian_tracking_pid">
93 <member id="tool_frame">tool</member>
94 <member id="target_frame">start_position</member>
95 <member id="target_offsets">0,0,-0.05, 0,0,0</member>
96 <member id="K">0.3</member>
97 <member id="Tv">0.5</member>
98 <member id="Tn">0.5</member>
99 <member id="Tp">0.05</member>
100 <member id="u_i_limit">0.01</member>
101
102 <member id="I_flag">false</member>
103 <member id="D_flag">true</member>
104
105 <!-- Quit after 5 seconds -->
106 <member id="monitors">
107 <clone prototype="monitor_duration">
108 <member id="duration">5.0</member>
109 </clone>
110 </member>
111
112 <member id="scripts">
113 <!-- publish measurements to a ros topic-->
114 <clone prototype="script_measurement_publisher">
115 <member id="provider"
116 reference_id="collections.target_to_tool.chains[0]" />
117 <member id="topic">tool_position</member>
118 <member id="coordinates">x,y,z</member>
119 </clone>
120 </member>
121
122 </clone>
123
124
125 <!-- Back to start position -->
126 <clone id="back" prototype="skill_lin">
127 <member id="tool_frame">tool</member>
128 <member id="target_frame">start_position</member>
129 </clone>
130
131 <clone prototype="skill_cartesian_tracking_pid">
132 <member id="tool_frame">tool</member>
133 <member id="target_frame">start_position</member>
134 <member id="target_offsets">0,0,-0.05, 0,0,0</member>
135 <member id="K">0.18</member>
136 <member id="Tv">0.01</member>
137 <member id="Tn">100.0</member>
138 <member id="Tp">0.001</member>
139 <member id="u_i_limit">0.01</member>
140
141 <member id="I_flag">true</member>
142 <member id="D_flag">false</member>
143
144 <!-- Quit after 5 seconds -->
145 <member id="monitors">
146 <clone prototype="monitor_duration">
147 <member id="duration">5.0</member>
148 </clone>
149 </member>
150
151 <member id="scripts">
152 <!-- publish measurements to a ros topic-->
153 <clone prototype="script_measurement_publisher">
154 <member id="provider"
155 reference_id="collections.target_to_tool.chains[0]" />
156 <member id="topic">tool_position</member>
157 <member id="coordinates">x,y,z</member>
158 </clone>
159 </member>
160
161 </clone>
162
163
164 <!-- Back to start position -->
165 <clone id="back" prototype="skill_lin">
166 <member id="tool_frame">tool</member>
167 <member id="target_frame">start_position</member>
168 </clone>
169
170
171 <clone prototype="skill_cartesian_tracking_pid">
172 <member id="tool_frame">tool</member>
173 <member id="target_frame">start_position</member>
174 <member id="target_offsets">0,0,-0.05, 0,0,0</member>
175 <member id="K">0.3</member>
176 <member id="Tv">0.01</member>
177 <member id="Tn">0.5</member>
178 <member id="Tp">0.001</member>
179 <member id="u_i_limit">0.01</member>
180
181 <member id="I_flag">true</member>
182 <member id="D_flag">true</member>
183
184 <!-- Quit after 5 seconds -->
185 <member id="monitors">
186 <clone prototype="monitor_duration">
187 <member id="duration">5.0</member>
188 </clone>
189 </member>
190
191 <member id="scripts">
192 <!-- publish measurements to a ros topic-->
193 <clone prototype="script_measurement_publisher">
194 <member id="provider"
195 reference_id="collections.target_to_tool.chains[0]" />
196 <member id="topic">tool_position</member>
197 <member id="coordinates">x,y,z</member>
198 </clone>
199 </member>
200
201 </clone>
202
203
204 <!-- Back to start position -->
205 <clone id="back" prototype="skill_lin">
206 <member id="tool_frame">tool</member>
207 <member id="target_frame">start_position</member>
208 </clone>
209
210 </member>
211
212 </clone>
213 </member>
214
215 </clone>
216
217</pitasc>