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