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

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>