pitasc_library - skills/skill_lin_time_optimal.xml
Model definitions
line 8: skill_lin_time_optimal
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>