skill_concurrency.xml

This example application shows the usage of a skill hierarchy.

With a low priority, the robot tracks target1 (“my_tracker”). With a high priority, the robot sequencially moves up and down along the z axis (“my_hierarchy”). After six seconds, the application terminates.

Models used

File contents

  1<?xml version="1.0" encoding="UTF-8"?>
  2
  3<!-- This example application shows the usage of a skill hierarchy.
  4
  5With a low priority, the robot tracks target1 ("my_tracker"). With a high
  6priority, the robot sequencially moves up and down along the z axis
  7("my_hierarchy"). After six seconds, the application terminates.
  8-->
  9
 10<pitasc>
 11
 12    <models>
 13        <include package="pitasc_library" file="models/pitasc.xml"/>
 14        <include package="pitasc_library" file="models/skills.xml"/>
 15
 16        <include package="pitasc_library" file="universal_robots/ur.xml"/>
 17    </models>
 18
 19    <clone prototype="project">
 20
 21        <member id="configuration">
 22            <clone id="configuration" prototype="default_configuration"/>
 23        </member>
 24
 25        <member id="environment">
 26            <clone prototype="robot_ur5">
 27                <member id="robot_driver.max_velocity">2.0</member>
 28                <member id="robot_driver.max_acceleration">3.0</member>
 29            </clone>
 30        </member>
 31
 32        <member id="applications">
 33            <clone id="my_application" prototype="skill_sequence">
 34
 35                <!-- Use this robot for this skill and all its subskills -->
 36                <member id="robot" reference_id="environment.robot_ur5"/>
 37
 38                <!-- Add skills -->
 39                <member id="skills">
 40
 41                    <!-- First move to start position -->
 42                    <clone prototype="skill_lin">
 43                        <member id="tool_frame">tool</member>
 44                        <member id="target_frame">target1</member>
 45                    </clone>
 46
 47
 48                    <!-- Hierarchy: Move down (-z) and to target1 -->
 49                    <clone prototype="skill_concurrency">
 50                        <member id="skill_name">my_hierarchy</member>
 51                        <member id="skills">
 52
 53                            <clone prototype="skill_sequence">
 54                                <member id="skills">
 55
 56                                    <!-- Move along axis (high priority) -->
 57                                    <clone prototype="skill_cartesian_velocity">
 58                                        <member id="skill_name">move_down</member>
 59                                        <member id="tool_frame">tool</member>
 60                                        <member id="velocity_frame">target1</member>
 61                                        <member id="axes">z</member>
 62                                        <member id="velocities">-0.02</member>
 63                                        <member id="monitors">
 64                                            <clone prototype="monitor_duration">
 65                                                <member id="duration">2.0</member>
 66                                            </clone>
 67                                        </member>
 68                                    </clone>
 69
 70                                    <!-- Move along axis (high priority) -->
 71                                    <clone prototype="skill_cartesian_velocity">
 72                                        <member id="skill_name">move_up</member>
 73                                        <member id="velocity_frame">target1</member>
 74                                        <member id="tool_frame">tool</member>
 75                                        <member id="axes">z</member>
 76                                        <member id="velocities">0.02</member>
 77                                        <member id="monitors">
 78                                            <clone prototype="monitor_duration">
 79                                                <member id="duration">2.0</member>
 80                                            </clone>
 81                                        </member>
 82                                    </clone>
 83
 84                                    <!-- Move along axis (high priority) -->
 85                                    <clone prototype="skill_cartesian_velocity">
 86                                        <member id="skill_name">move_down_again</member>
 87                                        <member id="velocity_frame">target1</member>
 88                                        <member id="tool_frame">tool</member>
 89                                        <member id="axes">z</member>
 90                                        <member id="velocities">-0.02</member>
 91                                        <member id="monitors">
 92                                            <clone prototype="monitor_duration">
 93                                                <member id="duration">2.0</member>
 94                                            </clone>
 95                                        </member>
 96                                    </clone>
 97                                </member>
 98                            </clone>
 99
100                            <!-- Track frame (low priority) to constrain remaining axes -->
101                            <clone prototype="skill_cartesian_tracking">
102                                <member id="skill_name">my_tracker</member>
103                                <member id="tool_frame">tool</member>
104                                <member id="target_frame">target1</member>
105                            </clone>
106
107                        </member>
108
109                        <!-- Quit after 6 seconds -->
110                        <member id="monitors">
111                            <clone prototype="monitor_duration">
112                                <member id="duration">6.0</member>
113                            </clone>
114                        </member>
115
116                    </clone>
117
118
119                </member>
120
121            </clone>
122        </member>
123
124    </clone>
125
126</pitasc>