pitasc_library - skills/skill_lin_trajectory.xml
Model definitions
line 8: skill_lin_trajectory_base
line 150: skill_lin_trajectory
line 202: skill_lin_trajectory_pd
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>