pitasc_library - skills/skill_cartesian_tracking.xml
Model definitions
line 8: skill_cartesian_tracking
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_cartesian_tracking" prototype="skill_cartesian">
9 <meta>
10 <member id="description">Keeps on aligning the tool frame with a target frame</member>
11 <member id="visibility">basic</member>
12 </meta>
13
14 <data>
15 <!-- Task description -->
16 <type id="axes" prototype="string_csv">
17 <meta>
18 <member id="description">List of axes to be aligned.</member>
19 <clone prototype="restrictions">
20 <clone prototype="enum">x, y, z, a, b, c</clone>
21 </clone>
22 <member id="visibility">basic</member>
23 </meta>
24 <data>x, y, z, a, b, c</data>
25 </type>
26 <type id="target_offsets" prototype="float_csv">
27 <meta>
28 <member id="description">Offsets of the axes to be aligned. Must be the same number of values as for 'axes'. If no value is provided, 0 is used for all axes.</member>
29 <clone prototype="restrictions">
30 <clone prototype="float_csv_min">-10.0, -10.0, -10.0, -3.14, -3.14, -3.14</clone>
31 <clone prototype="float_csv_max">10.0, 10.0, 10.0, 3.14, 3.14, 3.14</clone>
32 </clone>
33 <member id="visibility">basic</member>
34 </meta>
35 <data></data>
36 </type>
37
38 <!-- Setpoint generation -->
39 <type id="trajectory_duration" prototype="float_parameter">
40 <meta>
41 <member id="description">Duration of the trajectory in [s]. '0' means as fast as possible. Is expanded accordingly if in conflict with maximal linear veloctiy.</member>
42 <member id="visibility">expert</member>
43 </meta>
44 <data>0</data>
45 </type>
46
47 <!-- Control -->
48 <type id="max_linear_velocity" prototype="float_parameter">
49 <meta>
50 <member id="description">Max linear velocity.</member>
51 <member id="visibility">basic</member>
52 </meta>
53 <data>1.0</data>
54 </type>
55 <type id="max_angular_velocity" prototype="float_parameter">
56 <meta>
57 <member id="description">Max angular velocity.</member>
58 <member id="visibility">basic</member>
59 </meta>
60 <data>1.5</data>
61 </type>
62 <type id="linear_controller_gain" prototype="float_parameter">
63 <meta>
64 <member id="description">Specifies the approx. linear gain of the controller transfer function for Cartesian positions (i.e. x,y and z).</member>
65 <member id="visibility">expert</member>
66 </meta>
67 <data>3</data>
68 </type>
69 <type id="angular_controller_gain" prototype="float_parameter">
70 <meta>
71 <member id="description">Specifies the approx. linear gain of the controller transfer function for Cartesian angles (i.e. a,b and c).</member>
72 <member id="visibility">expert</member>
73 </meta>
74 <data>3</data>
75 </type>
76
77 <!-- Implementation details below: -->
78
79 <member id="tasks">
80 <clone id="tracking" prototype="task"> <!-- how to specify visibility here? leave on hidden? -->
81 <member id="coordinates" reference_id="axes"/>
82 <member id="prefix" reference_id="collections.target_to_tool.prefix"/>
83
84 <member id="setpoint_generators">
85 <clone id="setpoint" prototype="cosine_setpoint">
86 <member id="data_source">
87 <reference reference_id="collections.target_to_tool.chains[0]"/>
88 </member>
89 <member id="desired" reference_id="target_offsets"/>
90 <member id="coordinates" reference_id="coordinates"/>
91 <member id="prefix" reference_id="prefix"/>
92 <member id="duration" reference_id="trajectory_duration"/>
93 <member id="max_vel_groups">
94 <reference reference_id="max_linear_velocity"/>
95 <reference reference_id="max_angular_velocity"/>
96 </member>
97 <member id="symbol_groups">
98 <clone id="position_coordinates" prototype="string_csv">x, y, z</clone>
99 <clone id="orientation_coordinates" prototype="string_csv">a, b, c</clone>
100 </member>
101
102 </clone>
103 </member>
104
105 <member id="controllers">
106 <!-- position controller -->
107 <clone prototype="tanh_controller">
108 <member id="max_output" reference_id="max_linear_velocity"/>
109 <member id="P_lin" reference_id="linear_controller_gain"/>
110 <member id="data_source">
111 <reference reference_id="collections.target_to_tool.chains[0]"/>
112 </member>
113 <member id="setpoint_generator">
114 <reference reference_id="setpoint_generators.setpoint"/>
115 </member>
116 <member id="coordinates" reference_id="setpoint_generators.setpoint.symbol_groups.position_coordinates"/>
117 <member id="prefix" reference_id="prefix"/>
118 </clone>
119
120 <!-- orientation controller -->
121 <clone prototype="tanh_controller">
122 <member id="max_output" reference_id="max_angular_velocity"/>
123 <member id="P_lin" reference_id="angular_controller_gain"/>
124 <member id="data_source">
125 <reference reference_id="collections.target_to_tool.chains[0]"/>
126 </member>
127 <member id="setpoint_generator">
128 <reference reference_id="setpoint_generators.setpoint"/>
129 </member>
130 <member id="coordinates" reference_id="setpoint_generators.setpoint.symbol_groups.orientation_coordinates"/>
131 <member id="prefix" reference_id="prefix"/>
132 </clone>
133 </member>
134 </clone>
135 </member>
136 <member id="tasks.meta.visibility">hidden</member>
137
138 </data>
139 </type>
140
141 </models>
142
143</pitasc>