pitasc_library - skills/skill_lin_trajectory.xml

Model definitions

File contents

  1<?xml version="1.0" encoding="UTF-8"?>
  2
  3<pitasc>
  4
  5    <models>
  6        <include package="pitasc_library" file="skills/skill_cartesian.xml"/>
  7
  8        <type id="skill_lin_trajectory_base" prototype="skill_cartesian">
  9            <meta>
 10                <member id="description">Base class for linear trajectories.
 11                
 12                Care: Setting target offsets for the waypoints for orientation can cause euler angle issues.
 13                </member>
 14                <member id="visibility">expert</member>
 15            </meta>
 16
 17            <data>
 18                <!-- Task description -->
 19                <type id="axes" prototype="string_csv">
 20                    <meta>
 21                        <member id="description">List of axes to be aligned.</member>
 22                        <member id="visibility">basic</member>
 23                        <clone prototype="restrictions">
 24                            <clone prototype="enum">x, y, z, a, b, c</clone>
 25                        </clone>
 26                    </meta>
 27                    <data>x, y, z, a, b, c</data>
 28                </type>
 29
 30                <!-- Setpoint generation -->
 31                <type id="waypoints" data_type="list:lin_trajectory_waypoint" prototype="base">
 32                    <meta>
 33                        <member id="description">List of joint_trajectory_waypoint to move through with blending</member>
 34                        <member id="visibility">required</member>
 35                    </meta>
 36                </type>
 37
 38                <!-- Control -->
 39                <type id="max_linear_velocity" prototype="float_parameter">
 40                    <meta>
 41                        <member id="description">Max linear velocity.</member>
 42                        <member id="visibility">basic</member>
 43                    </meta>
 44                    <data>0.2</data>
 45                </type>
 46                <type id="max_angular_velocity" prototype="float_parameter">
 47                    <meta>
 48                        <member id="description">Max angular velocity.</member>
 49                        <member id="visibility">basic</member>
 50                    </meta>
 51                    <data>1.5</data>
 52                </type>
 53                <type id="max_linear_acceleration" prototype="float_parameter">
 54                    <meta>
 55                        <member id="description">Max linear acceleration.</member>
 56                        <member id="visibility">basic</member>
 57                    </meta>
 58                    <data>1.0</data>
 59                </type>
 60                <type id="max_angular_acceleration" prototype="float_parameter">
 61                    <meta>
 62                        <member id="description">Max angular acceleration. If not set, a default value (three times the linear acceleration) is used.</member>
 63                        <member id="visibility">basic</member>
 64                    </meta>
 65                </type>
 66                <type id="linear_controller_gain" prototype="float_parameter">
 67                    <meta>
 68                        <member id="description">Specifies the approx. linear gain of the controller transfer function for Cartesian positions (i.e. x,y and z).</member>
 69                        <member id="visibility">expert</member>
 70                    </meta>
 71                    <data>3</data>
 72                </type>
 73                <type id="angular_controller_gain" prototype="float_parameter">
 74                    <meta>
 75                        <member id="description">Specifies the approx. linear gain of the controller transfer function for Cartesian angles (i.e. a,b and c).</member>
 76                        <member id="visibility">expert</member>
 77                    </meta>
 78                    <data>3</data>
 79                </type>
 80                <type id="linear_ff_controller_gain" prototype="float_parameter">
 81                    <meta>
 82                        <member id="description">Specifies the velocity feed-forward gain of the controller</member>
 83                        <member id="visibility">expert</member>
 84                    </meta>
 85                    <data>0.8</data>
 86                </type>
 87                <type id="angular_ff_controller_gain" prototype="float_parameter">
 88                    <meta>
 89                        <member id="description">Specifies the velocity feed-forward gain of the controller</member>
 90                        <member id="visibility">expert</member>
 91                    </meta>
 92                    <data>0.8</data>
 93                </type>
 94
 95                <type id="positioning_monitor" prototype="monitor_distance">
 96                    <meta>
 97                        <member id="description">Checks whether the target frame has been reached.</member>
 98                        <member id="visibility">expert</member>
 99                    </meta>
100                    <data>
101                        <member id="reference_frame" reference_id="waypoints[-1].target_frame"/>
102                        <member id="target_offsets" reference_id="waypoints[-1].target_offsets"/>
103                        <member id="frame" reference_id="tool_frame"/>
104                        <member id="coordinates" reference_id="axes"/>
105                        <member id="distance_coordinates">x, y, z, a, b, c</member>
106                        <member id="distances">0.001, 0.001, 0.001, 0.005, 0.005, 0.005</member>
107                        <member id="operator">absolute_less</member>
108
109                    </data>
110                </type>
111
112                <member id="monitors">
113                    <reference reference_id="positioning_monitor"/>
114                </member>
115
116                <member id="target_frame" reference_id="waypoints[-1].target_frame"/>
117                <member id="target_frame.meta.description">Target frame is set automatically. Must not be overwritten!</member>
118
119                <member id="tasks">
120                    <clone id="tracking" prototype="task">
121                        <member id="coordinates" reference_id="axes"/>
122                        <member id="prefix" reference_id="collections.target_to_tool.prefix"/>
123
124                        <member id="setpoint_generators">
125                            <clone id="setpoint" prototype="lin_blending_setpoint">
126                                <member id="data_source">
127                                    <reference reference_id="collections.target_to_tool.chains[0]"/>
128                                </member>
129                                <member id="desired" reference_id="waypoints[-1].target_offsets"/>
130                                <member id="coordinates" reference_id="coordinates"/>
131                                <member id="prefix" reference_id="prefix"/>
132
133                                <member id="max_pos_vel" reference_id="max_linear_velocity"/>
134                                <member id="max_rot_vel" reference_id="max_angular_velocity"/>
135                                <member id="max_pos_acc" reference_id="max_linear_acceleration"/>
136                                <member id="pos_symbols">x, y, z</member>
137                                <member id="rot_symbols">a, b, c</member>
138                                <member id="target_frame" reference_id="target_frame" />
139                                <member id="waypoints" reference_id="waypoints" />
140
141                            </clone>
142                        </member>
143
144                    </clone>
145                </member>
146
147            </data>
148        </type>
149
150        <type id="skill_lin_trajectory" prototype="skill_lin_trajectory_base">
151            <meta>
152                <member id="description">Moves along given blending points with blending distances to the target frame.
153                
154                Care: Setting target offsets for the waypoints for orientation can cause euler angle issues.
155                </member>
156                <member id="visibility">basic</member>
157            </meta>
158
159            <data>
160                <member id="tasks">
161                    <member id="tracking">
162                        <member id="controllers">
163                            <!-- position controller -->
164                            <clone prototype="trajectory_p_controller">
165                                <!-- <member id="limit" reference_id="max_linear_velocity"/> -->
166                                <member id="gain" reference_id="linear_controller_gain"/>
167                                <member id="limit">10.0</member>
168                                <member id="ff_gain" reference_id="linear_ff_controller_gain"/>
169                                <member id="data_source">
170                                    <reference reference_id="collections.target_to_tool.chains[0]"/>
171                                </member>
172                                <member id="setpoint_generator">
173                                    <reference reference_id="setpoint_generators.setpoint"/>
174                                </member>
175                                <member id="coordinates" reference_id="setpoint_generators.setpoint.pos_symbols"/>
176                                <member id="prefix" reference_id="prefix"/>
177                            </clone>
178
179                            <!-- orientation controller -->
180                            <clone prototype="trajectory_p_controller">
181                                <!-- <member id="limit" reference_id="max_angular_velocity"/>-->
182                                <member id="gain" reference_id="angular_controller_gain"/>
183                                <member id="limit">30.0</member>
184                                <member id="ff_gain" reference_id="angular_ff_controller_gain"/>
185                                <member id="data_source">
186                                    <reference reference_id="collections.target_to_tool.chains[0]"/>
187                                </member>
188                                <member id="setpoint_generator">
189                                    <reference reference_id="setpoint_generators.setpoint"/>
190                                </member>
191                                <member id="coordinates" reference_id="setpoint_generators.setpoint.rot_symbols"/>
192                                <member id="prefix" reference_id="prefix"/>
193                            </clone>
194                        </member>
195                    </member>
196                </member>
197
198            </data>
199        </type>
200
201
202        <type id="skill_lin_trajectory_pd" prototype="skill_lin_trajectory_base">
203            <meta>
204                <member id="description">Moves along given blending points with blending distances to the target frame. Controlled by pd controller</member>
205                <member id="visibility">expert</member>
206            </meta>
207
208            <data>
209                <member id="tasks">
210                    <member id="tracking">
211                        <member id="controllers">
212                            <!-- position controller -->
213                            <clone prototype="trajectory_pd_controller">
214                                <!-- <member id="max_output" reference_id="max_linear_velocity"/>
215                                <member id="P_lin" reference_id="linear_controller_gain"/> -->
216                                <member id="compliance" reference_id="linear_controller_gain"/>
217                                <member id="f0_hz">10.0</member>
218                                <member id="ff_gain" reference_id="linear_ff_controller_gain"/>
219                                <member id="data_source">
220                                    <reference reference_id="collections.target_to_tool.chains[0]"/>
221                                </member>
222                                <member id="setpoint_generator">
223                                    <reference reference_id="setpoint_generators.setpoint"/>
224                                </member>
225                                <member id="coordinates" reference_id="setpoint_generators.setpoint.pos_symbols"/>
226                                <member id="prefix" reference_id="prefix"/>
227                            </clone>
228
229                            <!-- orientation controller -->
230                            <clone prototype="trajectory_pd_controller">
231                                <!-- <member id="max_output" reference_id="max_angular_velocity"/>
232                                <member id="P_lin" reference_id="angular_controller_gain"/> -->
233                                <member id="compliance" reference_id="angular_controller_gain"/>
234                                <member id="f0_hz">10.0</member>
235                                <member id="ff_gain" reference_id="angular_ff_controller_gain"/>
236                                <member id="data_source">
237                                    <reference reference_id="collections.target_to_tool.chains[0]"/>
238                                </member>
239                                <member id="setpoint_generator">
240                                    <reference reference_id="setpoint_generators.setpoint"/>
241                                </member>
242                                <member id="coordinates" reference_id="setpoint_generators.setpoint.rot_symbols"/>
243                                <member id="prefix" reference_id="prefix"/>
244                            </clone>
245                        </member>
246                    </member>
247                </member>
248
249            </data>
250        </type>
251
252    </models>
253
254</pitasc>