pitasc_library - skills/skill_approach.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_lin.xml"/>
  8
  9        <type id="skill_approach" prototype="skill_sequence">
 10            <meta>
 11                <member id="description">A skill approaching a target frame in two steps</member>
 12                <member id="categories">single_robot, position_controlled</member>
 13            </meta>
 14            <data>
 15
 16                <type id="tool_frame" prototype="frame">
 17                    <meta>
 18                        <member id="description">Name of the tool frame.</member>
 19                        <member id="visibility">required</member>
 20                    </meta>
 21                </type>
 22
 23                <type id="target_frame" prototype="frame">
 24                    <meta>
 25                        <member id="description">Name of the target frame.</member>
 26                        <member id="visibility">required</member>
 27                    </meta>
 28                </type>
 29
 30
 31                <type id="axes" prototype="string_csv">
 32                    <meta>
 33                        <member id="description">List of axes to be aligned.</member>
 34                        <clone prototype="restrictions">
 35                            <clone prototype="enum">x, y, z, a, b, c</clone>
 36                        </clone>
 37                        <member id="visibility">basic</member>
 38                    </meta>
 39                    <data>x, y, z, a, b, c</data>
 40                </type>
 41
 42                <type id="approach_offsets" prototype="float_csv">
 43                    <meta>
 44                        <member id="description">Offsets of the axes during the approach. Must be the same number of values as for 'axes'. If no value is provided, 0 is used for all axes.</member>
 45                        <clone prototype="restrictions">
 46                            <clone prototype="float_csv_min">-10.0, -10.0, -10.0, -3.14, -3.14, -3.14</clone>
 47                            <clone prototype="float_csv_max">10.0, 10.0, 10.0, 3.14, 3.14, 3.14</clone>
 48                        </clone>
 49                        <member id="visibility">required</member>
 50                    </meta>
 51                    <data>0, 0, 0, 0, 0, 0</data>
 52                </type>
 53
 54                <type id="target_offsets" prototype="float_csv">
 55                    <meta>
 56                        <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>
 57                        <clone prototype="restrictions">
 58                            <clone prototype="float_csv_min">-10.0, -10.0, -10.0, -3.14, -3.14, -3.14</clone>
 59                            <clone prototype="float_csv_max">10.0, 10.0, 10.0, 3.14, 3.14, 3.14</clone>
 60                        </clone>
 61                        <member id="visibility">basic</member>
 62                    </meta>
 63                    <data>0, 0, 0, 0, 0, 0</data>
 64                </type>
 65
 66
 67                <type id="max_linear_velocity" prototype="float_parameter">
 68                    <meta>
 69                        <member id="description">Max linear velocity.</member>
 70                        <member id="visibility">basic</member>
 71                    </meta>
 72                    <data>1.0</data>
 73                </type>
 74                <type id="max_angular_velocity" prototype="float_parameter">
 75                    <meta>
 76                        <member id="description">Max angular velocity.</member>
 77                        <member id="visibility">basic</member>
 78                    </meta>
 79                    <data>1.5</data>
 80                </type>
 81                <type id="linear_controller_gain" prototype="float_parameter">
 82                    <meta>
 83                        <member id="description">Equivalent proportional controller in linear region.</member>
 84                        <member id="visibility">expert</member>
 85                    </meta>
 86                    <data>3</data>
 87                </type>
 88                <type id="angular_controller_gain" prototype="float_parameter">
 89                    <meta>
 90                        <member id="description">Equivalent proportional controller in linear region.</member>
 91                        <member id="visibility">expert</member>
 92                    </meta>
 93                    <data>3</data>
 94                </type>
 95
 96                <!-- Implementation details below: -->
 97
 98                <clone id="approach" prototype="skill_lin">
 99                    <member id="skill_name">approach</member>
100                    <member id="tool_frame" reference_id="tool_frame"/>
101                    <member id="target_frame" reference_id="target_frame"/>
102                    <member id="linear_controller_gain" reference_id="linear_controller_gain"/>
103                    <member id="angular_controller_gain" reference_id="angular_controller_gain"/>
104                    <member id="max_linear_velocity" reference_id="max_linear_velocity"/>
105                    <member id="max_angular_velocity" reference_id="max_angular_velocity"/>
106                    <member id="axes" reference_id="axes"/>
107                    <member id="target_offsets" reference_id="approach_offsets"/>
108                    <member id="positioning_monitor.distances">0.01, 0.01, 0.01, 0.05, 0.05, 0.05</member>
109                </clone>
110                <member id="approach.meta.visibility">expert</member>
111
112                <clone id="target" prototype="skill_lin">
113                    <member id="skill_name">target</member>
114                    <member id="tool_frame" reference_id="tool_frame"/>
115                    <member id="target_frame" reference_id="target_frame"/>
116                    <member id="linear_controller_gain" reference_id="linear_controller_gain"/>
117                    <member id="angular_controller_gain" reference_id="angular_controller_gain"/>
118                    <member id="max_linear_velocity" reference_id="max_linear_velocity"/>
119                    <member id="max_angular_velocity" reference_id="max_angular_velocity"/>
120                    <member id="axes" reference_id="axes"/>
121                    <member id="target_offsets" reference_id="target_offsets"/>
122                </clone>
123                <member id="target.meta.visibility">expert</member>
124
125                <member id="skills">
126                    <reference reference_id="approach"/>
127                    <reference reference_id="target"/>
128                </member>
129                <member id="skills.meta.visibility">expert</member>
130
131            </data>
132        </type>
133
134    </models>
135
136</pitasc>