simple_count.xml

This example application shows a minimal project that uses the counter skill

Models used

File contents

  1<?xml version="1.0" encoding="UTF-8"?>
  2
  3<!-- This example application shows a minimal project that uses the counter skill
  4-->
  5
  6<pitasc>
  7
  8    <models>
  9        <!-- Include pitasc -->
 10        <include package="pitasc_library" file="models/pitasc.xml"/>
 11
 12        <!-- Include the UR5 -->
 13        <include package="pitasc_library" file="universal_robots/ur.xml"/>
 14
 15        <!-- Include the idle skill -->
 16        <include package="pitasc_library" file="models/skills.xml"/>
 17
 18    </models>
 19
 20    <!-- Create a project -->
 21    <clone prototype="project">
 22
 23        <member id="configuration">
 24            <!-- Use the default configuration with recommended settings -->
 25            <clone id="configuration" prototype="default_configuration"/>
 26        </member>
 27
 28        <member id="environment">
 29            <!-- Add a UR5 -->
 30            <clone prototype="robot_ur5"/>
 31        </member>
 32
 33        <member id="applications">
 34
 35            <!-- Use a skill sequence as a container -->
 36            <clone prototype="skill_sequence">
 37
 38                <!-- Use the UR5 for this skill (and for its subskill) -->
 39                <member id="robot" reference_id="environment.robot_ur5"/>
 40
 41                <!-- Add subskill(s) -->
 42                <member id="skills">
 43
 44                    <!-- needed, because pitasc does not create the robot publisher otherwise -->
 45                    <clone prototype="skill_relative_ptp">
 46                        <member id="relative_joint_state">0, 0, 0, 0, 0, 0</member>
 47                    </clone>
 48
 49                    <!-- Idle for 3 seconds -->
 50                    <clone id="skill_test" prototype="skill_idle_duration">
 51                        <member id="duration">0.5</member>
 52                    </clone>
 53
 54                    <!-- Basic usage of the counter condition skill, every
 55                         time the skill is executed, the counter gets ++
 56                         and is switched to repeat target.
 57                         If the condition is reached, it is switched to
 58                         condition_target
 59                     -->
 60                    <clone id="first_level" prototype="skill_counter_condition">
 61                        <member id="repeat_target">skill_test</member>
 62                        <member id="condition_target">succeeded</member>
 63                        <member id="count">10</member>
 64                    </clone>
 65
 66
 67                    <!-- You can also use the monitor, which immediatle triggers
 68                         a event based on the condition variable
 69                     -->
 70                    <clone id="monitor_test" prototype="skill_idle">
 71
 72                        <member id="monitors">
 73                            <clone prototype="monitor_execution_counter">
 74                                <member id="event">yay</member>
 75                                <member id="count">5</member>
 76                            </clone>
 77                            <clone prototype="monitor_duration">
 78                                <member id="event">nope</member>
 79                                <member id="duration">1.0</member>
 80                            </clone>
 81
 82                        </member>
 83                        <member id="transitions">
 84                            <clone prototype="transition">
 85                                <member id="event">nope</member>
 86                                <member id="target">monitor_test</member>
 87                            </clone>
 88                            <clone prototype="transition">
 89                                <member id="event">yay</member>
 90                                <member id="target">succeeded</member>
 91                            </clone>
 92                        </member>
 93                    </clone>
 94
 95                    <clone id="test_monitor_reject_fire" prototype="skill_idle_duration">
 96                        <member id="duration">0.5</member>
 97                    </clone>
 98
 99                    <clone id="monitor_reject_fire" prototype="skill_idle">
100
101                        <member id="monitors">
102                            <clone prototype="monitor_execution_counter">
103                                <member id="event">yay</member>
104                                <member id="count">5</member>
105                                <member id="fire_on_reject">true</member>
106                                <member id="reject_event">nope</member>
107                            </clone>
108                        </member>
109                        <member id="transitions">
110                            <clone prototype="transition">
111                                <member id="event">nope</member>
112                                <member id="target">test_monitor_reject_fire</member>
113                            </clone>
114                            <clone prototype="transition">
115                                <member id="event">yay</member>
116                                <member id="target">succeeded</member>
117                            </clone>
118                        </member>
119                    </clone>
120
121
122                </member>
123
124            </clone>
125
126        </member>
127
128    </clone>
129
130</pitasc>