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

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>