pitasc_library - monitors/geometry.xml

Model definitions

File contents

  1<?xml version="1.0" encoding="UTF-8"?>
  2
  3<pitasc>
  4
  5    <models>
  6
  7        <type id="monitor_wait_for_transform" prototype="monitor">
  8            <meta>
  9                <member id="description">Triggers when a frame becomes available.</member>
 10                <member id="categories">geometry</member>
 11                <member id="implementation">
 12                    <clone prototype="orocos">
 13                        <member id="package">cppitasc_monitors</member>
 14                        <member id="component">MonitorCheckTransform</member>
 15                    </clone>
 16                </member>
 17            </meta>
 18            <data>
 19                <type id="frame" prototype="string_parameter">
 20                    <meta>
 21                        <member id="description">Transform target to wait for.</member>
 22                        <member id="visibility">required</member>
 23                    </meta>
 24                </type>
 25
 26                <type id="parent_frame" prototype="string_parameter">  <!-- TODO: Rename! -->
 27                    <meta>
 28                        <member id="description">Transform source frame to wait for.</member>
 29                        <member id="visibility">basic</member>
 30                    </meta>
 31                    <data>world</data>
 32                </type>
 33
 34                <reference prototype="kinematic_graph" reference_id="configuration.kinematic_graph"/>
 35                <member id="kinematic_graph.meta.visibility">hidden</member>
 36            </data>
 37        </type>
 38
 39
 40        <type id="monitor_distance" prototype="monitor">
 41            <meta>
 42                <member id="description">Triggers when each frame's coordinate relative to a reference frame exceeds a certain threshold.
 43
 44                Every coordinate is handled individually. Triggers when true for every coordinate.
 45                </member>
 46                <member id="categories">geometry</member>
 47                <member id="implementation">
 48                    <clone prototype="orocos">
 49                        <member id="package">cppitasc_monitors</member>
 50                        <member id="component">MonitorBoxDistance</member>
 51                    </clone>
 52                </member>
 53                <member id="visibility">expert</member>
 54            </meta>
 55            <data>
 56                <type id="reference_frame" prototype="frame">
 57                    <meta>
 58                        <member id="description">Static frame from which the moving frame is observed (e.g. world).</member>
 59                        <member id="visibility">required</member>
 60                    </meta>
 61                </type>
 62
 63                <type id="frame" prototype="frame">
 64                    <meta>
 65                        <member id="description">Moving frame</member>
 66                        <member id="visibility">required</member>
 67                    </meta>
 68                </type>
 69
 70                <type id="coordinates" prototype="string_csv">
 71                    <meta>
 72                        <member id="description">Observed axes.</member>
 73                        <!-- <clone prototype="restrictions">
 74                            <clone prototype="enum">x, y, z, a, b, c</clone>
 75                        </clone> -->
 76                        <member id="visibility">required</member>
 77                    </meta>
 78                </type>
 79
 80                <type id="distance_coordinates" prototype="string_csv">
 81                    <meta>
 82                        <member id="description">Possible axes names that can be given in the member `coordinates`. The given `distances` are aligned to the axes given here.</member>
 83                        <member id="visibility">hidden</member>
 84                    </meta>
 85                </type>
 86                <member id="distance_coordinates" reference_id="coordinates"/>
 87
 88                <type id="distances" prototype="float_csv">
 89                    <meta>
 90                        <member id="description">Distances threshold (m or rad). Aligned to the `distance_coordinates` member.</member>
 91                        <member id="visibility">required</member>
 92                    </meta>
 93                </type>
 94
 95                <type id="target_offsets" prototype="float_csv">
 96                    <meta>
 97                        <member id="description">Offsets to the target. There must be as many values as there are `coordinates`. If no value is given, 0 is used for all coordinates.</member>
 98                        <member id="visibility">basic</member>
 99                    </meta>
100                    <data></data>
101                </type>
102
103                <type id="operator" prototype="operator">
104                    <meta>
105                        <member id="visibility">required</member>
106                    </meta>
107                </type>
108
109                <reference prototype="kinematic_graph" reference_id="configuration.kinematic_graph"/>
110                <member id="kinematic_graph.meta.visibility">hidden</member>
111            </data>
112        </type>
113
114
115        <type id="monitor_relative_distance" prototype="monitor_distance">
116            <meta>
117                <member id="description">Triggers when a frame moved a certain relative distance.</member>
118                <member id="categories">geometry</member>
119                <member id="implementation">
120                    <clone prototype="orocos">
121                        <member id="package">cppitasc_monitors</member>
122                        <member id="component">MonitorRelativeBoxDistance</member>
123                    </clone>
124                </member>
125            </meta>
126        </type>
127
128        <type id="monitor_ptp_distance" prototype="monitor">
129            <meta>
130                <member id="description">Compares distances of the current joint states and the target joints states to the given distances values.</member>
131                <member id="categories">geometry</member>
132                <member id="implementation">
133                    <clone prototype="orocos">
134                        <member id="package">cppitasc_monitors</member>
135                        <member id="component">MonitorPtpDistance</member>
136                    </clone>
137                </member>
138            </meta>
139            <data>
140                <type id="robot_driver" prototype="robot_driver">
141                    <meta>
142                        <member id="description">Robot driver which joint states shall be observed.</member>
143                        <member id="visibility">required</member>
144                    </meta>
145                </type>
146
147                <type id="target_joint_states" prototype="float_csv">
148                    <meta>
149                        <member id="description">Target joint states</member>
150                        <member id="visibility">required</member>
151                    </meta>
152                </type>
153                <type id="coordinates" prototype="string_csv">
154                    <meta>
155                        <member id="description">Observed joints.</member>
156                        <member id="visibility">required</member>
157                    </meta>
158                </type>
159
160                <type id="distances" prototype="float_csv">
161                    <meta>
162                        <member id="description">Distances threshold (rad). Aligned to the `coordinates` member.</member>
163                        <member id="visibility">required</member>
164                    </meta>
165                </type>
166
167                <type id="operator" prototype="operator">
168                    <meta>
169                        <member id="visibility">required</member>
170                    </meta>
171                </type>
172
173            </data>
174        </type>
175
176
177        <type id="monitor_frame_in_box" prototype="monitor_distance">
178            <meta>
179                <member id="description">Check whether a frame lies inside a bounding box.</member>
180                <member id="categories">geometry</member>
181            </meta>
182            <data>
183                <type id="frame" prototype="frame">
184                    <meta>
185                        <member id="description">Name of the frame to check.</member>
186                        <member id="visibility">required</member>
187                    </meta>
188                </type>
189
190                <type id="box_center_frame" prototype="frame">
191                    <meta>
192                        <member id="description">Name of the frame in the center of the box.</member>
193                        <member id="visibility">required</member>
194                    </meta>
195                </type>
196
197                <type id="edge_length_xyz" prototype="float_csv">
198                    <meta>
199                        <member id="description">Size of the box in x, y and direction.</member>
200                        <member id="visibility">required</member>
201                    </meta>
202                </type>
203
204                <!-- Implementation details below: -->
205
206                <member id="reference_frame" reference_id="box_center_frame"/>
207                <member id="reference_frame.meta.visibility">hidden</member>
208
209                <member id="distances" reference_id="edge_length_xyz"/>
210                <member id="distances.meta.visibility">hidden</member>
211
212                <member id="coordinates">x,y,z</member>
213                <member id="coordinates.meta.visibility">expert</member>
214
215                <member id="operator">absolute_less_equal</member>
216                <member id="operator.meta.visibility">hidden</member>
217
218                <reference prototype="kinematic_graph" reference_id="configuration.kinematic_graph"/>
219                <member id="kinematic_graph.meta.visibility">hidden</member>
220            </data>
221        </type>
222
223    </models>
224
225</pitasc>