pitasc_library - skills/skill_lin_time_optimal.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_time_optimal" prototype="skill_cartesian">
  9            <meta>
 10                <member id="description">LIN movement from the current pose to the target. Follows a
 11                    time-optimal trajectory with constant acceleration.</member>
 12                <member id="visibility">basic</member>
 13            </meta>
 14
 15            <data>
 16                <!-- Task description -->
 17                <type id="axes" prototype="string_csv">
 18                    <meta>
 19                        <member id="description">List of axes to be aligned.</member>
 20                        <clone prototype="restrictions">
 21                            <clone prototype="enum">x, y, z, a, b, c</clone>
 22                        </clone>
 23                        <member id="visibility">basic</member>
 24                    </meta>
 25                    <data>x, y, z, a, b, c</data>
 26                </type>
 27                <type id="target_offsets" prototype="float_csv">
 28                    <meta>
 29                        <member id="description">Offsets of the axes to be aligned. Must be the same
 30                            number of values as for 'axes'. If no value is provided, 0 is used for
 31                            all axes.</member>
 32                        <clone prototype="restrictions">
 33                            <clone prototype="float_csv_min">-10.0, -10.0, -10.0, -3.14, -3.14,
 34                                -3.14</clone>
 35                            <clone prototype="float_csv_max">10.0, 10.0, 10.0, 3.14, 3.14, 3.14</clone>
 36                        </clone>
 37                        <member id="visibility">basic</member>
 38                    </meta>
 39                    <data></data>
 40                </type>
 41
 42                <!-- Setpoint generation -->
 43                <type id="trajectory_duration" prototype="float_parameter">
 44                    <meta>
 45                        <member id="description">Duration of the trajectory in [s]. '0' means as
 46                            fast as possible. Is expanded accordingly if in conflict with maximal
 47                            linear veloctiy.</member>
 48                        <member id="visibility">expert</member>
 49                    </meta>
 50                    <data>0</data>
 51                </type>
 52
 53                <!-- Control -->
 54                <type id="max_linear_velocity" prototype="float_parameter">
 55                    <meta>
 56                        <member id="description">Max linear velocity.</member>
 57                        <member id="visibility">basic</member>
 58                    </meta>
 59                    <data>1.0</data>
 60                </type>
 61                <type id="max_angular_velocity" prototype="float_parameter">
 62                    <meta>
 63                        <member id="description">Max angular velocity.</member>
 64                        <member id="visibility">basic</member>
 65                    </meta>
 66                    <data>1.5</data>
 67                </type>
 68                <type id="max_linear_acceleration" prototype="float_parameter">
 69                    <meta>
 70                        <member id="description">Max linear acceleration.</member>
 71                        <member id="visibility">basic</member>
 72                    </meta>
 73                    <data>1.0</data>
 74                </type>
 75                <type id="max_angular_acceleration" prototype="float_parameter">
 76                    <meta>
 77                        <member id="description">Max angular acceleration.</member>
 78                        <member id="visibility">basic</member>
 79                    </meta>
 80                    <data>3.0</data>
 81                </type>
 82                <type id="max_linear_jerk" prototype="float_parameter">
 83                    <meta>
 84                        <member id="description">Max linear jerk.</member>
 85                        <member id="visibility">basic</member>
 86                    </meta>
 87                    <data>1.00001</data>
 88                </type>
 89                <type id="max_angular_jerk" prototype="float_parameter">
 90                    <meta>
 91                        <member id="description">Max angular jerk.</member>
 92                        <member id="visibility">basic</member>
 93                    </meta>
 94                    <data>1.0001</data>
 95                </type>
 96
 97                <type id="linear_controller_gain" prototype="float_parameter">
 98                    <meta>
 99                        <member id="description">Specifies the approx. linear gain of the controller
100                            transfer function for Cartesian positions (i.e. x,y and z).</member>
101                        <member id="visibility">expert</member>
102                    </meta>
103                    <data>3</data>
104                </type>
105                <type id="angular_controller_gain" prototype="float_parameter">
106                    <meta>
107                        <member id="description">Specifies the approx. angular gain of the
108                            controller transfer function for Cartesian angles (i.e. a,b and c).</member>
109                        <member id="visibility">expert</member>
110                    </meta>
111                    <data>3</data>
112                </type>
113                <type id="linear_ff_controller_gain" prototype="float_parameter">
114                    <meta>
115                        <member id="description">Specifies the linear velocity feed-forward gain of
116                            the controller</member>
117                        <member id="visibility">expert</member>
118                    </meta>
119                    <data>0.7</data>
120                </type>
121                <type id="angular_ff_controller_gain" prototype="float_parameter">
122                    <meta>
123                        <member id="description">Specifies the angular velocity feed-forward gain of
124                            the controller</member>
125                        <member id="visibility">expert</member>
126                    </meta>
127                    <data>0.7</data>
128                </type>
129
130                <type id="positioning_accuracy" prototype="float_csv">
131                    <meta>
132                        <member id="description">Positioning accuracy for x y z a b c in m resp. rad</member>
133                        <member id="visibility">basic</member>
134                    </meta>
135                    <data>0.001, 0.001, 0.001, 0.005, 0.005, 0.005</data>
136                </type>
137
138                <!-- Coordination -->
139                <type id="positioning_monitor" prototype="monitor_distance">
140                    <meta>
141                        <member id="description">Checks whether the target frame has been reached.</member>
142                        <member id="visibility">expert</member>
143                    </meta>
144                    <data>
145                        <member id="reference_frame" reference_id="target_frame" />
146                        <member id="target_offsets" reference_id="target_offsets" />
147                        <member id="frame" reference_id="tool_frame" />
148                        <member id="coordinates" reference_id="axes" />
149                        <member id="distance_coordinates">x, y, z, a, b, c</member>
150                        <member id="distances" reference_id="positioning_accuracy" />
151                        <member id="operator">absolute_less</member>
152
153                    </data>
154                </type>
155
156                <member id="positioning_monitor.distance_coordinates.meta.visibility">expert</member>
157                <member id="positioning_monitor.operator.meta.visibility">hidden</member>
158
159                <member id="monitors">
160                    <reference reference_id="positioning_monitor" />
161                </member>
162
163                <!-- Implementation details below: -->
164
165                <member id="tasks">
166                    <clone id="tracking" prototype="task"> <!-- how to specify visibility here? leave
167                        on hidden? -->
168                        <member id="coordinates" reference_id="axes" />
169                        <member id="prefix" reference_id="collections.target_to_tool.prefix" />
170
171                        <member id="setpoint_generators">
172                            <clone id="setpoint" prototype="time_optimal_setpoint">
173                                <member id="data_source">
174                                    <reference reference_id="collections.target_to_tool.chains[0]" />
175                                </member>
176                                <member id="desired" reference_id="target_offsets" />
177                                <member id="coordinates" reference_id="coordinates" />
178                                <member id="prefix" reference_id="prefix" />
179                                <member id="duration" reference_id="trajectory_duration" />
180                                <member id="max_vel_groups">
181                                    <reference reference_id="max_linear_velocity" />
182                                    <reference reference_id="max_angular_velocity" />
183                                </member>
184                                <member id="max_acc_groups">
185                                    <reference reference_id="max_linear_acceleration" />
186                                    <reference reference_id="max_angular_acceleration" />
187                                </member>
188                                <member id="max_jrk_groups">
189                                    <reference reference_id="max_linear_jerk" />
190                                    <reference reference_id="max_angular_jerk" />
191                                </member>
192                                <member id="symbol_groups">
193                                    <clone id="position_coordinates" prototype="string_csv">x, y, z</clone>
194                                    <clone id="orientation_coordinates" prototype="string_csv">a, b,
195                                        c</clone>
196                                </member>
197
198                            </clone>
199                        </member>
200
201                        <member id="controllers">
202                            <!-- position controller -->
203                            <clone prototype="trajectory_p_controller">
204                                <!-- <member id="limit" reference_id="max_linear_velocity"/> -->
205                                <member id="gain" reference_id="linear_controller_gain" />
206                                <member id="limit">10.0</member>
207                                <member id="ff_gain" reference_id="linear_ff_controller_gain" />
208                                <member id="data_source">
209                                    <reference reference_id="collections.target_to_tool.chains[0]" />
210                                </member>
211                                <member id="setpoint_generator">
212                                    <reference reference_id="setpoint_generators.setpoint" />
213                                </member>
214                                <member id="coordinates"
215                                    reference_id="setpoint_generators.setpoint.symbol_groups.position_coordinates" />
216                                <member id="prefix" reference_id="prefix" />
217                            </clone>
218
219                            <!-- orientation controller -->
220                            <clone prototype="trajectory_p_controller">
221                                <!-- <member id="limit" reference_id="max_angular_velocity"/>-->
222                                <member id="gain" reference_id="angular_controller_gain" />
223                                <member id="limit">30.0</member>
224                                <member id="ff_gain" reference_id="angular_ff_controller_gain" />
225                                <member id="data_source">
226                                    <reference reference_id="collections.target_to_tool.chains[0]" />
227                                </member>
228                                <member id="setpoint_generator">
229                                    <reference reference_id="setpoint_generators.setpoint" />
230                                </member>
231                                <member id="coordinates"
232                                    reference_id="setpoint_generators.setpoint.symbol_groups.orientation_coordinates" />
233                                <member id="prefix" reference_id="prefix" />
234                            </clone>
235                        </member>
236                    </clone>
237                </member>
238                <member id="tasks.meta.visibility">hidden</member>
239
240            </data>
241        </type>
242
243    </models>
244
245</pitasc>