forces_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_parallel">
 54                        <member id="skills">
 55
 56                            <clone prototype="skill_apply_force_pid">
 57                                <member id="force_frame">start_position</member>
 58                                <member id="axes">z</member>
 59                                <member id="target_forces">30</member>
 60                                <member id="K">0.005</member>
 61                                <member id="Tv">0.0001</member>
 62                                <member id="Tn">10.1</member>
 63                                <member id="Tp">0.001</member>
 64                                <member id="u_i_limit">0.01</member>
 65
 66                                <member id="I_flag">false</member>
 67                                <member id="D_flag">false</member>
 68
 69                                <!-- Tv ~ Kd  -->
 70                                <!-- Tn ~ 1/Ki -->
 71                                <!-- <member id="compliance">0.002</member> -->
 72                                <!-- <member id="corner_frequency">5.0</member> -->
 73                            </clone>
 74
 75                            <clone prototype="skill_hold_pose">
 76                                <member id="tool_frame">tool</member>
 77                                <member id="axes">x, y, z, a, b, c</member>
 78                            </clone>
 79
 80                        </member>
 81                        <member id="monitors">
 82                            <clone prototype="monitor_duration">
 83                                <member id="event">succeeded</member>
 84                                <member id="duration">5.0</member>
 85                            </clone>
 86
 87                        </member>
 88                    </clone>
 89
 90
 91                    <!-- Back to start position -->
 92                    <clone id="back" prototype="skill_lin">
 93                        <member id="tool_frame">tool</member>
 94                        <member id="target_frame">start_position</member>
 95                    </clone>
 96
 97
 98                    <clone prototype="skill_parallel">
 99                        <member id="skills">
100
101                            <clone prototype="skill_apply_force_pid">
102                                <member id="force_frame">start_position</member>
103                                <member id="axes">z</member>
104                                <member id="target_forces">30</member>
105                                <member id="K">0.005</member>
106                                <member id="Tv">0.0001</member>
107                                <member id="Tn">10.1</member>
108                                <member id="Tp">0.001</member>
109                                <member id="u_i_limit">0.01</member>
110
111                                <member id="I_flag">false</member>
112                                <member id="D_flag">true</member>
113
114                                <!-- Tv ~ Kd  -->
115                                <!-- Tn ~ 1/Ki -->
116                                <!-- <member id="compliance">0.002</member> -->
117                                <!-- <member id="corner_frequency">5.0</member> -->
118                            </clone>
119
120                            <clone prototype="skill_hold_pose">
121                                <member id="tool_frame">tool</member>
122                                <member id="axes">x, y, z, a, b, c</member>
123                            </clone>
124
125                        </member>
126                        <member id="monitors">
127                            <clone prototype="monitor_duration">
128                                <member id="event">succeeded</member>
129                                <member id="duration">5.0</member>
130                            </clone>
131
132                        </member>
133                    </clone>
134
135                    <!-- Back to start position -->
136                    <clone id="back" prototype="skill_lin">
137                        <member id="tool_frame">tool</member>
138                        <member id="target_frame">start_position</member>
139                    </clone>
140
141                    <clone prototype="skill_parallel">
142                        <member id="skills">
143
144                            <clone prototype="skill_apply_force_pid">
145                                <member id="force_frame">start_position</member>
146                                <member id="axes">z</member>
147                                <member id="target_forces">30</member>
148                                <member id="K">0.005</member>
149                                <member id="Tv">0.0001</member>
150                                <member id="Tn">10.1</member>
151                                <member id="Tp">0.001</member>
152                                <member id="u_i_limit">0.01</member>
153
154                                <member id="I_flag">true</member>
155                                <member id="D_flag">true</member>
156
157                                <!-- Tv ~ Kd  -->
158                                <!-- Tn ~ 1/Ki -->
159                                <!-- <member id="compliance">0.002</member> -->
160                                <!-- <member id="corner_frequency">5.0</member> -->
161                            </clone>
162
163                            <clone prototype="skill_hold_pose">
164                                <member id="tool_frame">tool</member>
165                                <member id="axes">x, y, z, a, b, c</member>
166                            </clone>
167
168                        </member>
169                        <member id="monitors">
170                            <clone prototype="monitor_duration">
171                                <member id="event">succeeded</member>
172                                <member id="duration">5.0</member>
173                            </clone>
174
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
185                </member>
186
187            </clone>
188        </member>
189
190    </clone>
191
192</pitasc>