pitasc_library - skills/skill_guarded_sequence.xml

Model definitions

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>