pitasc_library - skills/spherical/skill_conical_helix.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/pitasc.xml"/>
  7
  8        <include package="pitasc_library" file="skills/spherical/skill_spherical_velocity.xml"/>
  9        <include package="pitasc_library" file="skills/spherical/skill_spherical_tracking.xml"/>
 10
 11        <type id="skill_conical_helix" prototype="skill_sequence">
 12            <meta>
 13                <member id="description">A skill that performs a conical helix around z axis of the specified pivot_frame</member>
 14                <member id="categories">single_robot, velocity_controlled</member>
 15            </meta>
 16
 17            <data>
 18                <!-- Public -->
 19                <type id="tool_frame" prototype="string_parameter">
 20                    <meta>
 21                        <member id="description">
 22                            The used tool frame.
 23                        </member>
 24                        <member id="visibility">basic</member>
 25                    </meta>
 26                    <data>tool</data>
 27                </type>
 28
 29                <!-- Public -->
 30                <type id="pivot_frame" prototype="string_parameter">
 31                    <meta>
 32                        <member id="description">
 33                            The pivot point (i.e. tip of the cone).
 34                        </member>
 35                        <member id="visibility">basic</member>
 36                    </meta>
 37                    <data>pivot_point</data>
 38                </type>
 39
 40                <type id="start_radius" prototype="float_parameter">
 41                    <meta>
 42                        <member id="description">
 43                            Distance from the desired start point to the origin of pivot_frame [m].
 44                        </member>
 45                        <member id="visibility">basic</member>
 46                    </meta>
 47                    <data>0.001</data>
 48                </type>
 49
 50                 <type id="end_radius" prototype="float_csv">
 51                    <meta>
 52                        <member id="description">
 53                            Distance from the desired end point to the origin of pivot_frame [m]. Max. one value allowed.
 54                        </member>
 55                        <member id="visibility">basic</member>
 56                    </meta>
 57                    <data>0.1</data>
 58                </type>
 59
 60                <type id="start_phi" prototype="float_parameter">
 61                    <meta>
 62                        <member id="description">
 63                            Initial value of angle phi (in x-y-plane of pivot_frame) [rad].
 64                        </member>
 65                        <member id="visibility">basic</member>
 66                    </meta>
 67                    <data>0</data>
 68                </type>
 69
 70                <type id="half_opening_angle" prototype="float_parameter">
 71                    <meta>
 72                        <member id="description">
 73                            Half of the opening angle of the cone [rad].
 74                        </member>
 75                        <member id="visibility">basic</member>
 76                    </meta>
 77                    <data>0.4</data>
 78               </type>
 79
 80               <type id="tool_direction" data_type="list:float_parameter" prototype="base">
 81                   <meta>
 82                        <member id="description">
 83                            The rpy tool orientation (a,b,c) in [rad]. Default pointing towards the origin of pivot_frame.
 84                        </member>
 85                        <member id="visibility">basic</member>
 86                    </meta>
 87                    <data>
 88                        <clone id="a" prototype="float_parameter">3.1415</clone>
 89                        <clone id="b" prototype="float_parameter">0</clone>
 90                        <clone id="c" prototype="float_parameter">0</clone>
 91                    </data>
 92               </type>
 93
 94                <type id="helix_linear_velocity" prototype="float_parameter">
 95                    <meta>
 96                        <member id="description">
 97                            The speed of the motion in radial direction
 98                        </member>
 99                        <member id="visibility">basic</member>
100                    </meta>
101                    <data>0.005</data>
102                </type>
103
104                <type id="helix_angular_velocity" prototype="float_parameter">
105                    <meta>
106                        <member id="description">
107                            The speed of the rotation movement.
108                        </member>
109                        <member id="visibility">basic</member>
110                    </meta>
111                    <data>0.5</data>
112                </type>
113
114                <!-- Implementation details below: -->
115
116                <type id="des_velocities" data_type="list:float_parameter" prototype="base">
117                    <meta>
118                        <member id="description">Defines the helix velocities</member>
119                        <member id="visibility">hidden</member>
120                    </meta>
121                    <data>
122                        <reference reference_id="helix_angular_velocity" />
123                        <reference reference_id="helix_linear_velocity" />
124                    </data>
125                </type>
126
127                <type id="start_offsets" data_type="list:float_parameter" prototype="base">
128                    <meta>
129                        <member id="description">Defines the helix - phi, theta, r, a, b, c</member>
130                        <member id="visibility">hidden</member>
131                    </meta>
132                    <data>
133                        <reference reference_id="start_phi" />
134                        <reference reference_id="half_opening_angle" />
135                        <reference reference_id="start_radius" />
136                        <reference reference_id="tool_direction.a" />
137                        <reference reference_id="tool_direction.b" />
138                        <reference reference_id="tool_direction.c" />
139                    </data>
140                </type>
141
142                <type id="constant_offsets" data_type="list:float_parameter" prototype="base">
143                    <meta>
144                        <member id="description">Defines the helix - constant offsets (theta, a, b, c)</member>
145                        <member id="visibility">hidden</member>
146                    </meta>
147                    <data>
148                        <reference reference_id="half_opening_angle" />
149                        <reference reference_id="tool_direction.a" />
150                        <reference reference_id="tool_direction.b" />
151                        <reference reference_id="tool_direction.c" />
152                    </data>
153                </type>
154
155                <!-- Add skills -->
156                <member id="skills">
157
158                  <!-- move to start position -->
159                  <clone prototype="skill_spherical_positioning">
160                      <member id="tool_frame" reference_id="tool_frame" />
161                      <member id="target_frame" reference_id="pivot_frame" />
162                      <member id="target_offsets" reference_id="start_offsets" />
163                  </clone>
164
165                    <clone prototype="skill_concurrency">
166                        <member id="skills">
167                            <clone prototype="skill_spherical_velocity">
168                                <member id="tool_frame" reference_id="tool_frame" />"
169                                <member id="target_frame" reference_id="pivot_frame" />
170                                <member id="axes">phi, r</member>
171                                <member id="velocities" reference_id="des_velocities" />
172                                <member id="monitors">
173                                    <clone prototype="monitor_threshold">
174                                        <member id="provider" reference_id="collections.target_to_tool.chains[0]"/>
175                                        <member id="coordinates">r</member>
176                                        <member id="prefix" reference_id="collections.target_to_tool.prefix"/>
177                                        <member id="operator">absolute_greater</member>
178                                        <member id="thresholds" reference_id="end_radius"/>
179                                    </clone>
180                                </member>
181                            </clone>
182                            <clone id="hold" prototype="skill_spherical_tracking">
183                                <member id="tool_frame" reference_id="tool_frame" />
184                                <member id="target_frame" reference_id="pivot_frame" />
185                                <member id="axes">theta, a, b, c</member>
186                                <member id="target_offsets" reference_id="constant_offsets" />
187                            </clone>
188                        </member>
189                    </clone>
190
191                </member>
192                <member id="skills.meta.visibility">expert</member>
193
194            </data>
195        </type>
196    </models>
197</pitasc>