pitasc_library - skills/cylindrical/skill_cylindrical_tracking.xml
Model definitions
line 9: skill_cylindrical_tracking
line 119: skill_cylindrical_positioning
File contents
1<?xml version="1.0" encoding="UTF-8"?>
2
3<pitasc>
4
5 <models>
6 <include package="pitasc_library" file="models/pitasc.xml"/>
7 <include package="pitasc_library" file="skills/cylindrical/skill_cylindrical.xml"/>
8
9 <type id="skill_cylindrical_tracking" prototype="skill_cylindrical">
10 <meta>
11 <member id="description">Cylindrical coordinates</member>
12 <member id="categories">single_robot, position_controlled</member>
13 </meta>
14 <data>
15 <!-- When no rotations for a, b, c are given, the x-axis will point away from the target's z-axis -->
16 <type id="axes" prototype="string_csv">
17 <meta>
18 <member id="description">List of axes to be aligned.</member>
19 <member id="visibility">basic</member>
20 <clone prototype="restrictions">
21 <clone prototype="enum">r, phi, z, a, b, c</clone>
22 </clone>
23 </meta>
24 <data>r, phi, 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'.</member>
29 <member id="visibility">basic</member>
30 <clone prototype="restrictions">
31 <clone prototype="float_csv_min">-10.0, -3.14, -10.0, -3.14, -3.14, -3.14</clone>
32 <clone prototype="float_csv_max">10.0, 3.14, 10.0, 3.14, 3.14, 3.14</clone>
33 </clone>
34 </meta>
35 <data>0, 0, 0, 0, 0, 0</data>
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>1.0</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="linear_controller_gain" prototype="float_parameter">
54 <meta>
55 <member id="description">Equivalent proportional controller in linear region.</member>
56 <member id="visibility">expert</member>
57 </meta>
58 <data>3</data>
59 </type>
60 <type id="angular_controller_gain" prototype="float_parameter">
61 <meta>
62 <member id="description">Equivalent proportional controller in linear region.</member>
63 <member id="visibility">expert</member>
64 </meta>
65 <data>3</data>
66 </type>
67
68 <!-- Implementation details below: -->
69
70 <member id="tasks">
71 <clone id="tracking" prototype="task">
72 <member id="coordinates" reference_id="axes"/>
73 <member id="prefix" reference_id="collections.target_to_tool.prefix"/>
74
75 <member id="setpoint_generators">
76 <clone id="setpoint" prototype="constant_setpoint">
77 <member id="desired" reference_id="target_offsets"/>
78 <member id="coordinates" reference_id="coordinates"/>
79 <member id="prefix" reference_id="prefix"/>
80 </clone>
81 </member>
82
83 <member id="controllers">
84 <!-- position controller -->
85 <clone prototype="tanh_controller">
86 <member id="max_output" reference_id="max_linear_velocity"/>
87 <member id="P_lin" reference_id="linear_controller_gain"/>
88 <member id="data_source">
89 <reference reference_id="collections.target_to_tool.chains[0]"/>
90 </member>
91 <member id="setpoint_generator">
92 <reference reference_id="setpoint_generators.setpoint"/>
93 </member>
94 <member id="coordinates">r, z</member>
95 <member id="prefix" reference_id="prefix"/>
96 </clone>
97
98 <!-- orientation controller -->
99 <clone prototype="tanh_controller">
100 <member id="max_output" reference_id="max_angular_velocity"/>
101 <member id="P_lin" reference_id="angular_controller_gain"/>
102 <member id="data_source">
103 <reference reference_id="collections.target_to_tool.chains[0]"/>
104 </member>
105 <member id="setpoint_generator">
106 <reference reference_id="setpoint_generators.setpoint"/>
107 </member>
108 <member id="coordinates">a, b, c, phi</member>
109 <member id="prefix" reference_id="prefix"/>
110 </clone>
111 </member>
112 </clone>
113 </member>
114 <member id="tasks.meta.visibility">hidden</member>
115
116 </data>
117 </type>
118
119 <type id="skill_cylindrical_positioning" prototype="skill_cylindrical_tracking">
120 <meta>
121 <member id="description">Cylindrical coordinates</member>
122 <member id="categories">single_robot, position_controlled</member>
123 </meta>
124 <data>
125 <!-- Coordination -->
126 <type id="positioning_monitor" prototype="monitor_control_error">
127 <meta>
128 <member id="description">Checks whether the target frame has been reached.</member>
129 <member id="visibility">expert</member>
130 </meta>
131 <data>
132 <member id="controllers" reference_id="tasks.tracking.controllers"/>
133 <member id="coordinates" reference_id="axes"/>
134 <member id="prefix" reference_id="collections.target_to_tool.prefix"/>
135 <member id="thresholds">0.001, 0.005, 0.001, 0.005, 0.005, 0.005</member>
136 </data>
137 </type>
138 <member id="monitors">
139 <reference reference_id="positioning_monitor"/>
140 </member>
141 </data>
142 </type>
143
144 </models>
145
146</pitasc>