pitasc_library - skills/skill_guarded_lin.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="skills/skill_lin.xml"/>
  7        <include package="pitasc_library" file="skills/skill_force.xml"/>
  8
  9        <type id="skill_guarded_lin" prototype="skill_concurrency">
 10            <meta>
 11                <member id="description">Causes a linear motion until a specified force value is reached</member>
 12                <member id="categories">single_robot, force_controlled</member>
 13            </meta>
 14
 15            <data>
 16
 17                <type id="tool_frame" prototype="frame">
 18                    <meta>
 19                        <member id="description">Name of the tool frame.</member>
 20                        <member id="visibility">required</member>
 21                    </meta>
 22                </type>
 23
 24                <type id="target_frame" prototype="frame">
 25                    <meta>
 26                        <member id="description">Name of the target frame.</member>
 27                        <member id="visibility">required</member>
 28                    </meta>
 29                </type>
 30
 31                <type id="axes" prototype="string_csv">
 32                    <meta>
 33                        <member id="description">List of axes to be aligned.</member>
 34                        <member id="visibility">basic</member>
 35                        <clone prototype="restrictions">
 36                            <clone prototype="enum">x, y, z, a, b, c</clone>
 37                        </clone>
 38                    </meta>
 39                    <data>x, y, z, a, b, c</data>
 40                </type>
 41
 42                <type id="target_offsets" prototype="float_csv">
 43                    <meta>
 44                        <member id="description">Offsets of the axes to be aligned. Must be the same number of values as for 'axes'.</member>
 45                        <member id="visibility">basic</member>
 46                        <clone prototype="restrictions">
 47                            <clone prototype="float_csv_min">-10.0, -10.0, -10.0, -3.14, -3.14, -3.14</clone>
 48                            <clone prototype="float_csv_max">10.0, 10.0, 10.0, 3.14, 3.14, 3.14</clone>
 49                        </clone>
 50                    </meta>
 51                    <data>0, 0, 0, 0, 0, 0</data>
 52                </type>
 53
 54                <type id="max_linear_velocity" prototype="float_parameter">
 55                    <meta>
 56                        <member id="description">
 57                            Max linear velocity.
 58                        </member>
 59                        <member id="visibility">basic</member>
 60                    </meta>
 61                    <data>1.0</data>
 62                </type>
 63
 64                <type id="max_angular_velocity" prototype="float_parameter">
 65                    <meta>
 66                        <member id="description">
 67                            Max angular velocity.
 68                        </member>
 69                        <member id="visibility">basic</member>
 70                    </meta>
 71                    <data>1.5</data>
 72                </type>
 73
 74                <type id="linear_controller_gain" prototype="float_parameter">
 75                    <meta>
 76                        <member id="description">
 77                            Specifies the approx. linear gain of the controller transfer function for Cartesian positions (i.e. x,y and z).
 78                        </member>
 79                        <member id="visibility">expert</member>
 80                    </meta>
 81                    <data>3</data>
 82                </type>
 83
 84                <type id="angular_controller_gain" prototype="float_parameter">
 85                    <meta>
 86                        <member id="description">
 87                            Specifies the approx. linear gain of the controller transfer function for Cartesian angles (i.e. a,b and c).
 88                        </member>
 89                        <member id="visibility">expert</member>
 90                    </meta>
 91                    <data>3</data>
 92                </type>
 93
 94                <type id="max_forces" prototype="float_csv">
 95                    <meta>
 96                        <member id="description">Forces in [N].</member>
 97                        <member id="visibility">basic</member>
 98                    </meta>
 99                    <data>10.0</data>
100                </type>
101
102                <type id="monitor_axes" prototype="string_csv">
103                    <meta>
104                        <member id="description">The directions that are monitored for occuring forces (can be multiple axes).</member>
105                        <member id="visibility">basic</member>
106                        <clone prototype="restrictions">
107                            <clone prototype="enum">x, y, z</clone>
108                        </clone>
109                    </meta>
110                    <data>x</data>
111                </type>
112
113                <!-- Implementation details below: -->
114
115                <clone id="move_skill" prototype="skill_lin">
116                    <member id="tool_frame" reference_id="tool_frame"/>
117                    <member id="target_frame" reference_id="target_frame"/>
118                    <member id="axes" reference_id="axes"/>
119                    <member id="target_offsets" reference_id="target_offsets"/>
120                    <member id="max_linear_velocity" reference_id="max_linear_velocity"/>
121                    <member id="max_angular_velocity" reference_id="max_angular_velocity"/>
122                    <member id="linear_controller_gain" reference_id="linear_controller_gain"/>
123                    <member id="angular_controller_gain" reference_id="angular_controller_gain"/>
124                </clone>
125                <member id="move_skill.meta.visibility">expert</member>
126
127                <clone id="force_skill" prototype="skill_force">
128                    <member id="force_frame" reference_id="target_frame"/>
129                </clone>
130                <member id="force_skill.meta.visibility">expert</member>
131
132                <member id="monitors">
133                    <clone id="force_threshold" prototype="monitor_threshold">
134                        <member id="provider" reference_id="force_skill.collections.force_chain.chains[0]"/>
135                        <member id="coordinates" reference_id="monitor_axes"/>
136                        <member id="prefix" reference_id="force_skill.collections.force_chain.prefix"/>
137                        <member id="operator">absolute_greater</member>
138                        <member id="thresholds" reference_id="max_forces"/>
139                    </clone>
140                </member>
141
142                <member id="skills">
143                    <reference reference_id="move_skill"/>
144                    <reference reference_id="force_skill"/>
145                </member>
146                <member id="skills.meta.visibility">expert</member>
147
148            </data>
149        </type>
150
151    </models>
152
153</pitasc>