pitasc_library - skills/skill_guarded_sequence.xml
Model definitions
line 9: skill_guarded_sequence
line 94: skill_guarded_sequence_with_start
File contents
1<?xml version="1.0" encoding="UTF-8"?>
2
3<pitasc>
4
5 <models>
6 <include package="pitasc_library" file="models/coordination.xml" />
7 <include package="pitasc_library" file="skills/skill_force.xml" />
8
9 <type id="skill_guarded_sequence" prototype="skill_concurrency">
10 <meta>
11 <member id="description">A skill that stops execution of the sub-skills if a
12 specific force is detected.</member>
13 <member id="categories">single_robot, force_controlled, composition</member>
14 </meta>
15 <data>
16
17 <type id="protected_skills" data_type="list:skill" prototype="base">
18 <meta>
19 <member id="description">Sub-skills that are executed in sequence.</member>
20 <member id="visibility">required</member>
21 </meta>
22 </type>
23
24 <type id="force_measurement_frame" prototype="frame">
25 <meta>
26 <member id="visibility">basic</member>
27 <member id="description">The frame in which the force is detected.</member>
28 </meta>
29 </type>
30
31 <type id="max_forces" prototype="float_csv">
32 <meta>
33 <member id="description">Forces in [N].</member>
34 <member id="visibility">basic</member>
35 </meta>
36 <data>10.0,10.0,10.0</data>
37 </type>
38
39 <type id="monitor_axes" prototype="string_csv">
40 <meta>
41 <member id="description">The directions that are monitored for occuring
42 forces (can be multiple axes).</member>
43 <member id="visibility">basic</member>
44 <clone prototype="restrictions">
45 <clone prototype="enum">x, y, z</clone>
46 </clone>
47 </meta>
48 <data>x,y,z</data>
49 </type>
50
51 <type id="event" prototype="string_parameter">
52 <meta>
53 <member id="description">The event to be triggered when force limit is
54 reached.</member>
55 <member id="visibility">basic</member>
56 </meta>
57 <data>succeeded</data>
58 </type>
59
60
61 <clone id="force_skill" prototype="skill_force">
62 <member id="force_frame" reference_id="force_measurement_frame" />
63 </clone>
64 <member id="force_skill.meta.visibility">expert</member>
65
66 <clone id="seq_skill" prototype="skill_sequence">
67 <member id="skills" reference_id="protected_skills" />
68 </clone>
69 <member id="seq_skill.meta.visibility">expert</member>
70
71
72 <member id="monitors">
73 <clone id="force_threshold" prototype="monitor_threshold">
74 <member id="provider"
75 reference_id="force_skill.collections.force_chain.chains[0]" />
76 <member id="coordinates" reference_id="monitor_axes" />
77 <member id="prefix"
78 reference_id="force_skill.collections.force_chain.prefix" />
79 <member id="operator">absolute_greater</member>
80 <member id="thresholds" reference_id="max_forces" />
81 <member id="event" reference_id="event" />
82 </clone>
83 </member>
84
85 <member id="skills">
86 <reference reference_id="seq_skill" />
87 <reference reference_id="force_skill" />
88 </member>
89 <member id="skills.meta.visibility">expert</member>
90
91 </data>
92 </type>
93
94 <type id="skill_guarded_sequence_with_start" prototype="skill_sequence">
95 <meta>
96 <member id="description">A guarded skill sequence that also as some startup skills</member>
97 <member id="categories">single_robot, force_controlled, composition</member>
98 </meta>
99
100 <data>
101 <type id="protected_skills" data_type="list:skill" prototype="base">
102 <meta>
103 <member id="description">Sub-skills that are executed in sequence.</member>
104 <member id="visibility">required</member>
105 </meta>
106 </type>
107
108 <type id="start_skill" prototype="skill">
109 <meta>
110 <member id="description">Startup skills.</member>
111 <member id="visibility">required</member>
112 </meta>
113 <data>
114 </data>
115 </type>
116
117 <type id="force_measurement_frame" prototype="frame">
118 <meta>
119 <member id="visibility">basic</member>
120 <member id="description">measureing frame.</member>
121 </meta>
122 <data>tool0</data>
123 </type>
124
125 <type id="max_forces" prototype="float_csv">
126 <meta>
127 <member id="description">Forces in [N].</member>
128 <member id="visibility">basic</member>
129 </meta>
130 <data>10.0</data>
131 </type>
132
133 <type id="monitor_axes" prototype="string_csv">
134 <meta>
135 <member id="description">The directions that are monitored for occuring
136 forces (can be multiple axes).</member>
137 <member id="visibility">basic</member>
138 <clone prototype="restrictions">
139 <clone prototype="enum">x, y, z</clone>
140 </clone>
141 </meta>
142 <data>x</data>
143 </type>
144
145 <type id="event" prototype="string_parameter">
146 <meta>
147 <member id="description">The event to be triggered when force limit is
148 reached.</member>
149 <member id="visibility">basic</member>
150 </meta>
151 <data>succeeded</data>
152 </type>
153
154
155 <member id="skills">
156 <!-- <clone id="start_skill" prototype="skill_sequence">
157 <member id="skills" reference_id="start_skill" />
158 </clone> -->
159 <reference reference_id="start_skill" />
160 <clone id="guarded_skills" prototype="skill_guarded_sequence">
161 <member id="protected_skills" reference_id="protected_skills" />
162 <member id="force_measurement_frame" reference_id="force_measurement_frame" />
163 <member id="max_forces" reference_id="max_forces" />
164 <member id="monitor_axes" reference_id="monitor_axes" />
165 <member id="event" reference_id="event" />
166 </clone>
167 </member>
168
169 </data>
170 </type>
171
172
173 </models>
174
175</pitasc>