pitasc_library - skills/skill_pivot.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        <include package="pitasc_library" file="skills/skill_apply_force.xml"/>
  8        <include package="pitasc_library" file="skills/skill_relative_lin.xml"/>
  9
 10        <type id="skill_pivot" prototype="skill_concurrency">
 11            <meta>
 12                <member id="description">Rotates while pushing</member>
 13                <member id="categories">single_robot, force_controlled</member>
 14            </meta>
 15
 16            <data>
 17
 18                <type id="tool_frame" prototype="frame">
 19                    <meta>
 20                        <member id="description">Name of the tool frame</member>
 21                        <member id="visibility">required</member>
 22                    </meta>
 23                </type>
 24
 25                <type id="control_frame" prototype="frame">
 26                    <meta>
 27                        <member id="description">Name of the frame that defines the direction of rotation and forces</member>
 28                        <member id="visibility">required</member>
 29                    </meta>
 30                </type>
 31
 32
 33                <!-- Force parameters: -->
 34                <type id="force_axes" prototype="string_csv">
 35                    <meta>
 36                        <member id="description">List of axes.</member>
 37                        <clone prototype="restrictions">
 38                            <clone prototype="enum">x, y, z, a, b, c</clone>
 39                        </clone>
 40                        <member id="visibility">basic</member>
 41                    </meta>
 42                    <data>y, z</data>
 43                </type>
 44
 45                <type id="target_forces" prototype="float_csv">
 46                    <meta>
 47                        <member id="description">Forces and torques to be applied. Must be the same number of values as for 'axes'.</member>
 48                        <clone prototype="restrictions">
 49                            <clone prototype="float_csv_min">-100.0, -100.0, -100.0, -10.0, -10.0, -10.0</clone>
 50                            <clone prototype="float_csv_max">100.0, 100.0, 100.0, 10.0, 10.0, 10.0</clone>
 51                        </clone>
 52                        <member id="visibility">basic</member>
 53                    </meta>
 54                    <data>5, 5</data>
 55                </type>
 56
 57                <type id="compliance" prototype="float_parameter">
 58                    <meta>
 59                        <member id="description">Force controller gain</member>
 60                        <clone prototype="restrictions">
 61                            <clone prototype="float_min">0.00001</clone>
 62                            <clone prototype="float_max">0.1</clone>
 63                        </clone>
 64                        <member id="visibility">basic</member>
 65                    </meta>
 66                    <data>0.002</data>
 67                </type>
 68
 69                <type id="corner_frequency" prototype="float_parameter">
 70                    <meta>
 71                        <member id="description">Force controller corner frequency</member>
 72                        <clone prototype="restrictions">
 73                            <clone prototype="float_min">1.0</clone>
 74                            <clone prototype="float_max">50.0</clone>
 75                        </clone>
 76                        <member id="visibility">basic</member>
 77                    </meta>
 78                    <data>5.0</data>
 79                </type>
 80
 81
 82                <!-- Track parameters: -->
 83                <type id="rotation_axes" prototype="string_csv">
 84                    <meta>
 85                        <member id="description">List of axes to be aligned.</member>
 86                        <clone prototype="restrictions">
 87                            <clone prototype="enum">x, y, z, a, b, c</clone>
 88                        </clone>
 89                        <member id="visibility">basic</member>
 90                    </meta>
 91                    <data>a</data>
 92                </type>
 93
 94                <type id="rotation_offsets" prototype="float_csv">
 95                    <meta>
 96                        <member id="description">Offsets of the axes to be aligned. Must be the same number of values as for 'axes'. If no value is provided, 0 is used for all axes.</member>
 97                        <clone prototype="restrictions">
 98                            <clone prototype="float_csv_min">-10.0, -10.0, -10.0, -3.14, -3.14, -3.14</clone>
 99                            <clone prototype="float_csv_max">10.0, 10.0, 10.0, 3.14, 3.14, 3.14</clone>
100                        </clone>
101                        <member id="visibility">basic</member>
102                    </meta>
103                    <data></data>
104                </type>
105
106                <type id="max_angular_velocity" prototype="float_parameter">
107                    <meta>
108                        <member id="description">Max angular velocity.</member>
109                        <member id="visibility">basic</member>
110                    </meta>
111                    <data>1.5</data>
112                </type>
113
114                <!-- Implementation details below: -->
115
116                <clone id="force" prototype="skill_apply_force">
117                    <member id="force_frame" reference_id="control_frame"/>
118                    <member id="axes" reference_id="force_axes"/>
119                    <member id="target_forces" reference_id="target_forces"/>
120                    <member id="compliance" reference_id="compliance"/>
121                    <member id="corner_frequency" reference_id="corner_frequency"/>
122                </clone>
123                <member id="force.meta.visibility">expert</member>
124
125                <clone id="rotation" prototype="skill_lin">
126                    <member id="tool_frame" reference_id="tool_frame"/>
127                    <member id="target_frame" reference_id="control_frame"/>
128                    <member id="axes" reference_id="rotation_axes"/>
129                    <member id="target_offsets" reference_id="rotation_offsets"/>
130                    <member id="max_angular_velocity" reference_id="max_angular_velocity"/>
131                </clone>
132                <member id="rotation.meta.visibility">expert</member>
133
134                <clone id="hold" prototype="skill_hold_pose">
135                    <member id="tool_frame" reference_id="tool_frame"/>
136                </clone>
137                <member id="hold.meta.visibility">expert</member>
138
139                <member id="skills">
140                    <reference reference_id="force"/>
141                    <reference reference_id="rotation"/>
142                    <reference reference_id="hold"/>
143                </member>
144                <member id="skills.meta.visibility">expert</member>
145
146                <member id="collections.meta.visibility">hidden</member>
147                <member id="loops.meta.visibility">hidden</member>
148                <member id="tasks.meta.visibility">hidden</member>
149
150            </data>
151      </type>
152
153    </models>
154
155</pitasc>