guarded_sequence.xml

This example application shows the usage of some force skills with guarded sequence.

Models used

File contents

  1<?xml version="1.0" encoding="UTF-8"?>
  2
  3<!-- This example application shows the usage of some force skills with guarded sequence.
  4-->
  5
  6<pitasc>
  7
  8    <models>
  9        <include package="pitasc_library" file="models/pitasc.xml" />
 10        <include package="pitasc_library" file="models/skills.xml" />
 11
 12        <include package="pitasc_library" file="universal_robots/ur.xml" />
 13    </models>
 14
 15    <clone prototype="project">
 16
 17        <member id="configuration">
 18            <clone id="configuration" prototype="default_configuration" />
 19        </member>
 20
 21        <member id="environment">
 22            <clone prototype="robot_ur5">
 23                <member id="robot_driver.max_velocity">2.0</member>
 24                <member id="robot_driver.max_acceleration">3.0</member>
 25                <member id="components">
 26                    <clone prototype="force_sensor">
 27                        <member id="wrench_topic">wrench</member>
 28                    </clone>
 29                </member>
 30            </clone>
 31        </member>
 32
 33        <member id="applications">
 34            <clone id="simple_forces" prototype="skill_sequence">
 35
 36                <member id="robot" reference_id="environment.robot_ur5" />
 37
 38                <!-- Skills -->
 39                <member id="skills">
 40
 41                    <!-- First move to start position -->
 42                    <clone prototype="skill_relative_ptp">
 43                        <member id="relative_joint_state">0, 0, 0, -0.01, 0, 0</member>
 44                    </clone>
 45
 46                    <clone prototype="skill_lin">
 47                        <member id="tool_frame">tool</member>
 48                        <member id="target_frame">start_position</member>
 49                    </clone>
 50
 51                    <!-- Raises an exception when a force occurs -->
 52                    <clone prototype="skill_guarded_sequence">
 53                        <member id="force_measurement_frame">tool</member>
 54                        <member id="max_forces">10.0,10.0,10.0</member>
 55                        <member id="monitor_axes">x,y,z</member>
 56                        <member id="event">exception</member>
 57                        <member id="protected_skills">
 58
 59                            <clone prototype="skill_lin_time_optimal_ruckig">
 60                                <member id="tool_frame">tool</member>
 61                                <member id="target_frame">start_position</member>
 62                                <member id="target_offsets">0, 0, -0.1, 0, 0, 0</member>
 63                                <member id="max_linear_velocity">0.1</member>
 64                            </clone>
 65                            <clone prototype="skill_lin_time_optimal_ruckig">
 66                                <member id="tool_frame">tool</member>
 67                                <member id="target_frame">start_position</member>
 68                                <member id="target_offsets">0, 0, 0.2, 0, 0, 0</member>
 69                                <member id="max_linear_velocity">0.1</member>
 70                            </clone>
 71                        </member>
 72                        <member id="transitions">
 73                            <clone prototype="transition">
 74                                <member id="event">exception</member>
 75                                <member id="target">back</member>
 76                            </clone>
 77                        </member>
 78                    </clone>
 79
 80                    <clone id="starting_position" prototype="skill_lin_time_optimal_ruckig">
 81                        <member id="tool_frame">tool</member>
 82                        <member id="target_frame">start_position</member>
 83                        <member id="target_offsets">0, 0, -0.1, 0, 0, 0</member>
 84                    </clone>
 85
 86                    <clone id="back" prototype="skill_lin_time_optimal_ruckig">
 87                        <member id="tool_frame">tool</member>
 88                        <member id="target_frame">start_position</member>
 89                    </clone>
 90
 91                    <!-- You can also use this skill with a start skill, that will be executed
 92                    before the monitoring forces. Typcially, you would use this in conjunction with
 93                    a "tare" skill that zeros the forces -->
 94                    <clone prototype="skill_guarded_sequence_with_start">
 95                        <member id="force_measurement_frame">tool</member>
 96                        <member id="max_forces">10.0,10.0,10.0</member>
 97                        <member id="monitor_axes">x,y,z</member>
 98                        <member id="event">exception</member>
 99                        <clone id="start_skill" prototype="skill_lin_time_optimal_ruckig">
100                            <member id="tool_frame">tool</member>
101                            <member id="target_frame">start_position</member>
102                            <member id="target_offsets">0, 0, -0.05, 0, 0, 0</member>
103                            <member id="max_linear_velocity">1.0</member>
104                        </clone>
105                        <member id="protected_skills">
106                            <clone prototype="skill_lin_time_optimal_ruckig">
107                                <member id="tool_frame">tool</member>
108                                <member id="target_frame">start_position</member>
109                                <member id="target_offsets">0, 0, -0.1, 0, 0, 0</member>
110                                <member id="max_linear_velocity">0.1</member>
111                            </clone>
112                            <clone prototype="skill_lin_time_optimal_ruckig">
113                                <member id="tool_frame">tool</member>
114                                <member id="target_frame">start_position</member>
115                                <member id="target_offsets">0, 0, 0.2, 0, 0, 0</member>
116                                <member id="max_linear_velocity">0.1</member>
117                            </clone>
118                        </member>
119                        <member id="transitions">
120                            <clone prototype="transition">
121                                <member id="event">exception</member>
122                                <member id="target">back_second</member>
123                            </clone>
124                        </member>
125                    </clone>
126
127                    <clone prototype="skill_lin_time_optimal_ruckig">
128                        <member id="tool_frame">tool</member>
129                        <member id="target_frame">start_position</member>
130                        <member id="target_offsets">0, 0, -0.1, 0, 0, 0</member>
131                    </clone>
132
133                    <clone id="back_second" prototype="skill_lin_time_optimal_ruckig">
134                        <member id="tool_frame">tool</member>
135                        <member id="target_frame">start_position</member>
136                    </clone>
137
138
139                </member>
140
141            </clone>
142
143        </member>
144
145    </clone>
146
147</pitasc>