pitasc_library - skills/skill_ptp_time_optimal.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_joint_space.xml"/>
  7
  8        <type id="skill_ptp_time_optimal" prototype="skill_joint_space">
  9            <meta>
 10                <member id="description">Keeps on tracking a joint configuration using a time-optimal trajectory</member>
 11            </meta>
 12
 13            <data>
 14
 15                <!-- Task description -->
 16                <type id="joint_names" prototype="string_csv">
 17                    <meta>
 18                        <member id="description">Joint names of the target pose.</member>
 19                        <member id="visibility">basic</member>
 20                    </meta>
 21                </type>
 22                <member id="joint_names" reference_id="robot.joint_names"/>
 23
 24                <type id="target_joint_state" prototype="float_csv">
 25                    <meta>
 26                        <member id="description">Joint values of the target pose.</member>
 27                        <member id="visibility">required</member>
 28                    </meta>
 29                </type>
 30
 31                <type id="trajectory_duration" prototype="float_parameter">
 32                    <meta>
 33                        <member id="description">Duration of the trajectory in [s]; '0' means as fast as possible. The realized duration can be longer if the original value conflicts with maximal velocity.</member>
 34                        <member id="visibility">basic</member>
 35                    </meta>
 36                    <data>0</data>
 37                </type>
 38
 39                <!-- Control -->
 40                <type id="max_angular_velocity" prototype="float_parameter">
 41                    <meta>
 42                        <member id="description">Max angular velocity.</member>
 43                        <member id="visibility">basic</member>
 44                    </meta>
 45                    <data>1.0</data>
 46                </type>
 47                <type id="max_angular_acceleration" prototype="float_parameter">
 48                    <meta>
 49                        <member id="description">Max angular acceleration.</member>
 50                        <member id="visibility">basic</member>
 51                    </meta>
 52                    <data>1.0</data>
 53                </type>
 54                <type id="angular_controller_gain" prototype="float_parameter">
 55                    <meta>
 56                        <member id="description">
 57                            Specifies the angular controller gain for joint position control.
 58                        </member>
 59                        <member id="visibility">expert</member>
 60                    </meta>
 61                    <data>3.0</data>
 62                </type>
 63                <type id="angular_ff_controller_gain" prototype="float_parameter">
 64                    <meta>
 65                        <member id="description">
 66                            Specifies the angular velocity-feed-forward controller gain for joint position control.
 67                        </member>
 68                        <member id="visibility">expert</member>
 69                    </meta>
 70                    <data>0.7</data>
 71                </type>
 72
 73                <type id="joint_positioning_accuracy" prototype="float_csv">
 74                    <meta>
 75                        <member id="description">Threshold around the target joint state to consider it reached by the robot. One entry for all OR one entry for each joint.</member>
 76                        <member id="visibility">basic</member>
 77                    </meta>
 78                    <data>0.01</data>
 79                </type>
 80
 81                <type id="positioning_monitor" prototype="monitor_ptp_distance">
 82                    <meta>
 83                        <member id="description">Checks whether the target joint state has been reached</member>
 84                        <member id="visibility">expert</member>
 85                    </meta>
 86                    <data>
 87                        <member id="robot_driver" reference_id="robot.robot_driver"/>
 88                        <member id="coordinates" reference_id="tasks.tracking.coordinates"/>
 89                        <member id="distances" reference_id="joint_positioning_accuracy"/>
 90                        <member id="target_joint_states" reference_id="target_joint_state" />
 91                        <member id="operator">absolute_less_equal</member>
 92                    </data>
 93                </type>
 94
 95                <member id="monitors">
 96                    <reference reference_id="positioning_monitor"/>
 97                </member>
 98
 99                <!-- Implementation details below: -->
100
101                <member id="tasks">
102                    <clone id="tracking" prototype="task">
103                        <member id="coordinates" reference_id="joint_names"/><!-- already prefixed -->
104
105                        <member id="setpoint_generators">
106                            <clone id="setpoint" prototype="time_optimal_setpoint">
107                                <member id="data_source">
108                                    <reference prototype="robot_driver" reference_id="robot.robot_driver"/>
109                                </member>
110                                <member id="desired" reference_id="target_joint_state"/>
111                                <member id="coordinates" reference_id="coordinates"/>
112                                <member id="prefix" reference_id="prefix"/>
113                                <member id="duration" reference_id="trajectory_duration"/>
114                                <member id="max_vel_groups">
115                                    <reference reference_id="max_angular_velocity"/>
116                                </member>
117                                <member id="max_acc_groups">
118                                    <reference reference_id="max_angular_acceleration"/>
119                                </member>
120                                <clone id="joints_as_groups" prototype="string_csv_disassembled_as_csv_list">
121                                    <reference reference_id="joint_names" />
122                                </clone>
123                                <member id="symbol_groups" reference_id="joints_as_groups" />
124                            </clone>
125                        </member>
126
127                        <member id="controllers">
128                            <clone prototype="trajectory_p_controller">
129                                <member id="gain" reference_id="angular_controller_gain"/>
130                                <member id="limit" reference_id="max_angular_velocity"/>
131                                <member id="ff_gain" reference_id="angular_ff_controller_gain"/>
132                                <member id="data_source">
133                                    <reference prototype="robot_driver" reference_id="robot.robot_driver"/>
134                                </member>
135                                <member id="setpoint_generator">
136                                    <reference reference_id="setpoint_generators.setpoint"/>
137                                </member>
138                                <member id="coordinates" reference_id="coordinates"/>
139                                <member id="prefix" reference_id="prefix"/>
140                            </clone>
141                        </member>
142                    </clone>
143                </member>
144                <member id="tasks.meta.visibility">hidden</member>
145
146            </data>
147        </type>
148
149    </models>
150
151</pitasc>