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