pitasc_library - skills/skill_cartesian_tracking.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_cartesian.xml"/>
  7
  8        <type id="skill_cartesian_tracking" prototype="skill_cartesian">
  9            <meta>
 10                <member id="description">Keeps on aligning the tool frame with a target frame</member>
 11                <member id="visibility">basic</member>
 12            </meta>
 13
 14            <data>
 15                <!-- Task description -->
 16                <type id="axes" prototype="string_csv">
 17                    <meta>
 18                        <member id="description">List of axes to be aligned.</member>
 19                        <clone prototype="restrictions">
 20                            <clone prototype="enum">x, y, z, a, b, c</clone>
 21                        </clone>
 22                        <member id="visibility">basic</member>
 23                    </meta>
 24                    <data>x, y, z, a, b, c</data>
 25                </type>
 26                <type id="target_offsets" prototype="float_csv">
 27                    <meta>
 28                        <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>
 29                        <clone prototype="restrictions">
 30                            <clone prototype="float_csv_min">-10.0, -10.0, -10.0, -3.14, -3.14, -3.14</clone>
 31                            <clone prototype="float_csv_max">10.0, 10.0, 10.0, 3.14, 3.14, 3.14</clone>
 32                        </clone>
 33                        <member id="visibility">basic</member>
 34                    </meta>
 35                    <data></data>
 36                </type>
 37
 38                <!-- Setpoint generation -->
 39                <type id="trajectory_duration" prototype="float_parameter">
 40                    <meta>
 41                        <member id="description">Duration of the trajectory in [s]. '0' means as fast as possible. Is expanded accordingly if in conflict with maximal linear veloctiy.</member>
 42                        <member id="visibility">expert</member>
 43                    </meta>
 44                    <data>0</data>
 45                </type>
 46
 47                <!-- Control -->
 48                <type id="max_linear_velocity" prototype="float_parameter">
 49                    <meta>
 50                        <member id="description">Max linear velocity.</member>
 51                        <member id="visibility">basic</member>
 52                    </meta>
 53                    <data>1.0</data>
 54                </type>
 55                <type id="max_angular_velocity" prototype="float_parameter">
 56                    <meta>
 57                        <member id="description">Max angular velocity.</member>
 58                        <member id="visibility">basic</member>
 59                    </meta>
 60                    <data>1.5</data>
 61                </type>
 62                <type id="linear_controller_gain" prototype="float_parameter">
 63                    <meta>
 64                        <member id="description">Specifies the approx. linear gain of the controller transfer function for Cartesian positions (i.e. x,y and z).</member>
 65                        <member id="visibility">expert</member>
 66                    </meta>
 67                    <data>3</data>
 68                </type>
 69                <type id="angular_controller_gain" prototype="float_parameter">
 70                    <meta>
 71                        <member id="description">Specifies the approx. linear gain of the controller transfer function for Cartesian angles (i.e. a,b and c).</member>
 72                        <member id="visibility">expert</member>
 73                    </meta>
 74                    <data>3</data>
 75                </type>
 76
 77                <!-- Implementation details below: -->
 78
 79                <member id="tasks">
 80                    <clone id="tracking" prototype="task"> <!-- how to specify visibility here? leave on hidden? -->
 81                        <member id="coordinates" reference_id="axes"/>
 82                        <member id="prefix" reference_id="collections.target_to_tool.prefix"/>
 83
 84                        <member id="setpoint_generators">
 85                            <clone id="setpoint" prototype="cosine_setpoint">
 86                                <member id="data_source">
 87                                    <reference reference_id="collections.target_to_tool.chains[0]"/>
 88                                </member>
 89                                <member id="desired" reference_id="target_offsets"/>
 90                                <member id="coordinates" reference_id="coordinates"/>
 91                                <member id="prefix" reference_id="prefix"/>
 92                                <member id="duration" reference_id="trajectory_duration"/>
 93                                <member id="max_vel_groups">
 94                                    <reference reference_id="max_linear_velocity"/>
 95                                    <reference reference_id="max_angular_velocity"/>
 96                                </member>
 97                                <member id="symbol_groups">
 98                                    <clone id="position_coordinates" prototype="string_csv">x, y, z</clone>
 99                                    <clone id="orientation_coordinates" prototype="string_csv">a, b, c</clone>
100                                </member>
101
102                            </clone>
103                        </member>
104
105                        <member id="controllers">
106                            <!-- position controller -->
107                            <clone prototype="tanh_controller">
108                                <member id="max_output" reference_id="max_linear_velocity"/>
109                                <member id="P_lin" reference_id="linear_controller_gain"/>
110                                <member id="data_source">
111                                    <reference reference_id="collections.target_to_tool.chains[0]"/>
112                                </member>
113                                <member id="setpoint_generator">
114                                    <reference reference_id="setpoint_generators.setpoint"/>
115                                </member>
116                                <member id="coordinates" reference_id="setpoint_generators.setpoint.symbol_groups.position_coordinates"/>
117                                <member id="prefix" reference_id="prefix"/>
118                            </clone>
119
120                            <!-- orientation controller -->
121                            <clone prototype="tanh_controller">
122                                <member id="max_output" reference_id="max_angular_velocity"/>
123                                <member id="P_lin" reference_id="angular_controller_gain"/>
124                                <member id="data_source">
125                                    <reference reference_id="collections.target_to_tool.chains[0]"/>
126                                </member>
127                                <member id="setpoint_generator">
128                                    <reference reference_id="setpoint_generators.setpoint"/>
129                                </member>
130                                <member id="coordinates" reference_id="setpoint_generators.setpoint.symbol_groups.orientation_coordinates"/>
131                                <member id="prefix" reference_id="prefix"/>
132                            </clone>
133                        </member>
134                    </clone>
135                </member>
136                <member id="tasks.meta.visibility">hidden</member>
137
138            </data>
139        </type>
140
141    </models>
142
143</pitasc>