pitasc_library - monitors/geometry.xml
Model definitions
line 7: monitor_wait_for_transform
line 40: monitor_distance
line 115: monitor_relative_distance
line 177: monitor_frame_in_box
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>