pitasc_library - skills/cylindrical/skill_cylindrical_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="models/pitasc.xml"/>
  7        <include package="pitasc_library" file="skills/cylindrical/skill_cylindrical.xml"/>
  8
  9        <type id="skill_cylindrical_tracking" prototype="skill_cylindrical">
 10            <meta>
 11                <member id="description">Cylindrical coordinates</member>
 12                <member id="categories">single_robot, position_controlled</member>
 13            </meta>
 14            <data>
 15                <!-- When no rotations for a, b, c are given, the x-axis will point away from the target's z-axis -->
 16                <type id="axes" prototype="string_csv">
 17                    <meta>
 18                        <member id="description">List of axes to be aligned.</member>
 19                        <member id="visibility">basic</member>
 20                        <clone prototype="restrictions">
 21                            <clone prototype="enum">r, phi, z, a, b, c</clone>
 22                        </clone>
 23                    </meta>
 24                    <data>r, phi, 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'.</member>
 29                        <member id="visibility">basic</member>
 30                        <clone prototype="restrictions">
 31                            <clone prototype="float_csv_min">-10.0, -3.14, -10.0, -3.14, -3.14, -3.14</clone>
 32                            <clone prototype="float_csv_max">10.0, 3.14, 10.0, 3.14, 3.14, 3.14</clone>
 33                        </clone>
 34                    </meta>
 35                    <data>0, 0, 0, 0, 0, 0</data>
 36                </type>
 37
 38                <!-- Control -->
 39                <type id="max_linear_velocity" prototype="float_parameter">
 40                    <meta>
 41                        <member id="description">Max linear velocity.</member>
 42                        <member id="visibility">basic</member>
 43                    </meta>
 44                    <data>1.0</data>
 45                </type>
 46                <type id="max_angular_velocity" prototype="float_parameter">
 47                    <meta>
 48                        <member id="description">Max angular velocity.</member>
 49                        <member id="visibility">basic</member>
 50                    </meta>
 51                    <data>1.5</data>
 52                </type>
 53                <type id="linear_controller_gain" prototype="float_parameter">
 54                    <meta>
 55                        <member id="description">Equivalent proportional controller in linear region.</member>
 56                        <member id="visibility">expert</member>
 57                    </meta>
 58                    <data>3</data>
 59                </type>
 60                <type id="angular_controller_gain" prototype="float_parameter">
 61                    <meta>
 62                        <member id="description">Equivalent proportional controller in linear region.</member>
 63                        <member id="visibility">expert</member>
 64                    </meta>
 65                    <data>3</data>
 66                </type>
 67
 68                <!-- Implementation details below: -->
 69
 70                <member id="tasks">
 71                    <clone id="tracking" prototype="task">
 72                        <member id="coordinates" reference_id="axes"/>
 73                        <member id="prefix" reference_id="collections.target_to_tool.prefix"/>
 74
 75                        <member id="setpoint_generators">
 76                            <clone id="setpoint" prototype="constant_setpoint">
 77                                <member id="desired" reference_id="target_offsets"/>
 78                                <member id="coordinates" reference_id="coordinates"/>
 79                                <member id="prefix" reference_id="prefix"/>
 80                            </clone>
 81                        </member>
 82
 83                        <member id="controllers">
 84                            <!-- position controller -->
 85                            <clone prototype="tanh_controller">
 86                                <member id="max_output" reference_id="max_linear_velocity"/>
 87                                <member id="P_lin" reference_id="linear_controller_gain"/>
 88                                <member id="data_source">
 89                                    <reference reference_id="collections.target_to_tool.chains[0]"/>
 90                                </member>
 91                                <member id="setpoint_generator">
 92                                    <reference reference_id="setpoint_generators.setpoint"/>
 93                                </member>
 94                                <member id="coordinates">r, z</member>
 95                                <member id="prefix" reference_id="prefix"/>
 96                            </clone>
 97
 98                            <!-- orientation controller -->
 99                            <clone prototype="tanh_controller">
100                                <member id="max_output" reference_id="max_angular_velocity"/>
101                                <member id="P_lin" reference_id="angular_controller_gain"/>
102                                <member id="data_source">
103                                    <reference reference_id="collections.target_to_tool.chains[0]"/>
104                                </member>
105                                <member id="setpoint_generator">
106                                    <reference reference_id="setpoint_generators.setpoint"/>
107                                </member>
108                                <member id="coordinates">a, b, c, phi</member>
109                                <member id="prefix" reference_id="prefix"/>
110                            </clone>
111                        </member>
112                    </clone>
113                </member>
114                <member id="tasks.meta.visibility">hidden</member>
115
116            </data>
117        </type>
118
119        <type id="skill_cylindrical_positioning" prototype="skill_cylindrical_tracking">
120            <meta>
121                <member id="description">Cylindrical coordinates</member>
122                <member id="categories">single_robot, position_controlled</member>
123            </meta>
124            <data>
125                <!-- Coordination -->
126                <type id="positioning_monitor" prototype="monitor_control_error">
127                    <meta>
128                        <member id="description">Checks whether the target frame has been reached.</member>
129                        <member id="visibility">expert</member>
130                    </meta>
131                    <data>
132                        <member id="controllers" reference_id="tasks.tracking.controllers"/>
133                        <member id="coordinates" reference_id="axes"/>
134                        <member id="prefix" reference_id="collections.target_to_tool.prefix"/>
135                        <member id="thresholds">0.001, 0.005, 0.001, 0.005, 0.005, 0.005</member>
136                    </data>
137                </type>
138                <member id="monitors">
139                    <reference reference_id="positioning_monitor"/>
140                </member>
141            </data>
142        </type>
143
144    </models>
145
146</pitasc>